{
  "id": "d3uceY_unlucky-rat-66",
  "name": "unlucky-rat-66",
  "category": "buttons",
  "author": "d3uceY",
  "description": "unlucky-rat-66 组件 (icon, animation, red, button, hover, active, rounded, download, interactive)",
  "tags": [
    "icon",
    "animation",
    "red",
    "button",
    "hover",
    "active",
    "rounded",
    "download",
    "interactive"
  ],
  "original": {
    "html": "<button class=\"download-btn pixel-corners\">\n  <div class=\"button-content\">\n    <div class=\"svg-container\">\n      <svg class=\"download-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\n        <path d=\"M19.479 10.092c-.212-3.951-3.473-7.092-7.479-7.092-4.005 0-7.267 3.141-7.479 7.092-2.57.463-4.521 2.706-4.521 5.408 0 3.037 2.463 5.5 5.5 5.5h13c3.037 0 5.5-2.463 5.5-5.5 0-2.702-1.951-4.945-4.521-5.408zm-7.479 6.908l-4-4h3v-4h2v4h3l-4 4z\"></path>\n      </svg>\n    </div>\n    <div class=\"text-container\">\n      <div class=\"text\">Download</div>\n    </div>\n  </div>\n</button>",
    "css": "/* From Uiverse.io by d3uceY  - Tags: icon, animation, red, button, hover, active, rounded, download */\n.download-btn {\n  height: 45px;\n  width: 95px;\n  cursor: pointer;\n  background: white;\n  border: none;\n  background: #ff0021;\n  border-radius: 30px;\n  overflow: hidden;\n}\n\n.button-content {\n  transform: translateY(-45px);\n  transition: all 250ms ease-in-out;\n}\n\n.svg-container,\n.text-container {\n  height: 45px;\n  width: 100%;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}\n\n.text-container .text {\n  font-size: 13px;\n  color: #fff;\n  font-weight: 600;\n  opacity: 1;\n  transition: opacity ease-in-out 250ms;\n}\n\n.download-icon {\n  height: 25px;\n  width: 25px;\n  fill: #fff;\n  opacity: 0;\n  transition: opacity ease-in-out 250ms;\n}\n\n/* hover state for the button */\n.download-btn:hover .button-content {\n  transform: translateY(0px);\n}\n\n.download-btn:hover .text {\n  opacity: 0;\n}\n\n.download-btn:hover .download-icon {\n  opacity: 1;\n}\n\n.download-btn:focus .download-icon {\n  -webkit-animation: heartbeat 1.5s ease-in-out infinite both;\n  animation: heartbeat 1.5s ease-in-out infinite both;\n}\n\n@-webkit-keyframes heartbeat {\n  from {\n    -webkit-transform: scale(1);\n    transform: scale(1);\n    -webkit-transform-origin: center center;\n    transform-origin: center center;\n    -webkit-animation-timing-function: ease-out;\n    animation-timing-function: ease-out;\n  }\n  10% {\n    -webkit-transform: scale(0.91);\n    transform: scale(0.91);\n    -webkit-animation-timing-function: ease-in;\n    animation-timing-function: ease-in;\n  }\n  17% {\n    -webkit-transform: scale(0.98);\n    transform: scale(0.98);\n    -webkit-animation-timing-function: ease-out;\n    animation-timing-function: ease-out;\n  }\n  33% {\n    -webkit-transform: scale(0.87);\n    transform: scale(0.87);\n    -webkit-animation-timing-function: ease-in;\n    animation-timing-function: ease-in;\n  }\n  45% {\n    -webkit-transform: scale(1);\n    transform: scale(1);\n    -webkit-animation-timing-function: ease-out;\n    animation-timing-function: ease-out;\n  }\n}\n@keyframes heartbeat {\n  from {\n    -webkit-transform: scale(1);\n    transform: scale(1);\n    -webkit-transform-origin: center center;\n    transform-origin: center center;\n    -webkit-animation-timing-function: ease-out;\n    animation-timing-function: ease-out;\n  }\n  10% {\n    -webkit-transform: scale(0.91);\n    transform: scale(0.91);\n    -webkit-animation-timing-function: ease-in;\n    animation-timing-function: ease-in;\n  }\n  17% {\n    -webkit-transform: scale(0.98);\n    transform: scale(0.98);\n    -webkit-animation-timing-function: ease-out;\n    animation-timing-function: ease-out;\n  }\n  33% {\n    -webkit-transform: scale(0.87);\n    transform: scale(0.87);\n    -webkit-animation-timing-function: ease-in;\n    animation-timing-function: ease-in;\n  }\n  45% {\n    -webkit-transform: scale(1);\n    transform: scale(1);\n    -webkit-animation-timing-function: ease-out;\n    animation-timing-function: ease-out;\n  }\n}\n\n/* hover state for the button */",
    "file_path": "/mnt/persist/workspace/Buttons/d3uceY_unlucky-rat-66.html"
  },
  "uniapp": {
    "template": "<button class=\"download-btn pixel-corners\"></button>\n  <view class=\"button-content\"></view>\n    <view class=\"svg-container\"></view>\n      <view class=\"download-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"></view>\n        <path d=\"M19.479 10.092c-.212-3.951-3.473-7.092-7.479-7.092-4.005 0-7.267 3.141-7.479 7.092-2.57.463-4.521 2.706-4.521 5.408 0 3.037 2.463 5.5 5.5 5.5h13c3.037 0 5.5-2.463 5.5-5.5 0-2.702-1.951-4.945-4.521-5.408zm-7.479 6.908l-4-4h3v-4h2v4h3l-4 4z\"></path>\n      </svg>\n    </div>\n    <view class=\"text-container\"></view>\n      <view class=\"text\">Download</view>\n    </div>\n  </div>\n</button>",
    "script": "export default {\n  name: 'GalaxyUnluckyRat66',\n  props: {\n    // 根据组件类型动态生成props\n  },\n  data() {\n    return {\n      // 组件状态\n    };\n  },\n  methods: {\n    // 组件方法\n  }\n}",
    "style": "\n/* From Uiverse.io by d3uceY  - Tags: icon, animation, red, button, hover, active, rounded, download */\n.download-btn {\n  height: 90rpx;\n  width: 190rpx;\n  /* #ifdef H5 */\n  cursor: pointer;\n  /* #endif */\n  background: white;\n  border: none;\n  background: #ff0021;\n  border-radius: 60rpx;\n  overflow: hidden;\n}\n\n.button-content {\n  transform: translateY(-90rpx);\n  transition: all 250ms ease-in-out;\n}\n\n.svg-container,\n.text-container {\n  height: 90rpx;\n  width: 100%;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}\n\n.text-container .text {\n  font-size: 26rpx;\n  color: #fff;\n  font-weight: 600;\n  opacity: 1;\n  transition: opacity ease-in-out 250ms;\n}\n\n.download-icon {\n  height: 50rpx;\n  width: 50rpx;\n  fill: #fff;\n  opacity: 0;\n  transition: opacity ease-in-out 250ms;\n}\n\n/* hover state for the button */\n.download-btn:hover .button-content {\n  transform: translateY(0rpx);\n}\n\n.download-btn:hover .text {\n  opacity: 0;\n}\n\n.download-btn:hover .download-icon {\n  opacity: 1;\n}\n\n.download-btn:focus .download-icon {\n  -webkit-animation: heartbeat 1.5s ease-in-out infinite both;\n  animation: heartbeat 1.5s ease-in-out infinite both;\n}\n\n@-webkit-keyframes heartbeat {\n  from {\n    -webkit-transform: scale(1);\n    transform: scale(1);\n    -webkit-transform-origin: center center;\n    transform-origin: center center;\n    -webkit-animation-timing-function: ease-out;\n    animation-timing-function: ease-out;\n  }\n  10% {\n    -webkit-transform: scale(0.91);\n    transform: scale(0.91);\n    -webkit-animation-timing-function: ease-in;\n    animation-timing-function: ease-in;\n  }\n  17% {\n    -webkit-transform: scale(0.98);\n    transform: scale(0.98);\n    -webkit-animation-timing-function: ease-out;\n    animation-timing-function: ease-out;\n  }\n  33% {\n    -webkit-transform: scale(0.87);\n    transform: scale(0.87);\n    -webkit-animation-timing-function: ease-in;\n    animation-timing-function: ease-in;\n  }\n  45% {\n    -webkit-transform: scale(1);\n    transform: scale(1);\n    -webkit-animation-timing-function: ease-out;\n    animation-timing-function: ease-out;\n  }\n}\n@keyframes heartbeat {\n  from {\n    -webkit-transform: scale(1);\n    transform: scale(1);\n    -webkit-transform-origin: center center;\n    transform-origin: center center;\n    -webkit-animation-timing-function: ease-out;\n    animation-timing-function: ease-out;\n  }\n  10% {\n    -webkit-transform: scale(0.91);\n    transform: scale(0.91);\n    -webkit-animation-timing-function: ease-in;\n    animation-timing-function: ease-in;\n  }\n  17% {\n    -webkit-transform: scale(0.98);\n    transform: scale(0.98);\n    -webkit-animation-timing-function: ease-out;\n    animation-timing-function: ease-out;\n  }\n  33% {\n    -webkit-transform: scale(0.87);\n    transform: scale(0.87);\n    -webkit-animation-timing-function: ease-in;\n    animation-timing-function: ease-in;\n  }\n  45% {\n    -webkit-transform: scale(1);\n    transform: scale(1);\n    -webkit-animation-timing-function: ease-out;\n    animation-timing-function: ease-out;\n  }\n}\n\n/* hover state for the button */\n\n",
    "component_name": "GalaxyUnluckyRat66"
  },
  "platforms": {
    "h5": true,
    "mp-weixin": true,
    "mp-alipay": true,
    "mp-baidu": true,
    "mp-toutiao": true,
    "app-plus": true
  },
  "props": [
    {
      "name": "disabled",
      "type": "Boolean",
      "default": false,
      "required": false,
      "description": "是否禁用"
    },
    {
      "name": "text",
      "type": "String",
      "default": "按钮",
      "required": false,
      "description": "按钮文字"
    },
    {
      "name": "type",
      "type": "String",
      "default": "primary",
      "required": false,
      "description": "按钮类型"
    }
  ],
  "events": [
    {
      "name": "click",
      "description": "点击事件",
      "parameters": [
        "event"
      ]
    }
  ],
  "slots": [
    {
      "name": "",
      "description": "",
      "props": []
    }
  ],
  "compatibility": {
    "h5": {
      "supported": true,
      "issues": [],
      "alternatives": []
    },
    "mp-weixin": {
      "supported": true,
      "issues": [
        "不支持 cursor 属性"
      ],
      "alternatives": []
    },
    "mp-alipay": {
      "supported": true,
      "issues": [
        "不支持 cursor 属性"
      ],
      "alternatives": []
    },
    "app-plus": {
      "supported": true,
      "issues": [],
      "alternatives": []
    }
  },
  "performance": {
    "complexity": "high",
    "bundle_size": 3622,
    "render_cost": "high",
    "memory_usage": "high"
  },
  "dependencies": [],
  "examples": [
    {
      "title": "",
      "description": "",
      "code": ""
    }
  ],
  "created_at": "2025-07-31T07:55:36.273Z",
  "updated_at": "2025-07-31T07:55:36.273Z"
}