{
  "id": "Lucaasbre_happy-elephant-36",
  "name": "happy-elephant-36",
  "category": "buttons",
  "author": "Lucaasbre",
  "description": "happy-elephant-36 组件 (button, animated, gradients, svg, css effect, multicolor, button hover effect, 2d button, animation, gradient, interactive)",
  "tags": [
    "button",
    "animated",
    "gradients",
    "svg",
    "css effect",
    "multicolor",
    "button hover effect",
    "2d button",
    "animation",
    "gradient",
    "interactive"
  ],
  "original": {
    "html": "<div class=\"container\">\n  <span class=\"span-text\">\n    <svg height=\"20pt\" width=\"20pt\" viewBox=\"0 0 20 20\" style=\"isolation:isolate\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns=\"http://www.w3.org/2000/svg\">\n      <defs>\n        <clipPath id=\"_clipPath_bC9TwUVn0M3ipVC8aHmmX7RNkfzJwdgL\">\n          <rect height=\"20\" width=\"20\"></rect>\n        </clipPath>\n      </defs>\n      <g clip-path=\"url(#_clipPath_bC9TwUVn0M3ipVC8aHmmX7RNkfzJwdgL)\">\n        <rect fill-opacity=\"0\" style=\"fill:rgb(1,0,1)\" height=\"20\" width=\"20\"></rect>\n        <path stroke-miterlimit=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke=\"rgb(0,0,0)\" stroke-width=\"1\" fill=\"rgb(0,0,0)\" d=\"M 10 1 L 10 9 L 15 9 L 10 19 L 10 12 L 5 12 L 10 1 Z\"></path>\n      </g>\n    </svg>\n    Join now\n  </span>\n  <button class=\"button\">\n    <span class=\"span-outside\"> </span>\n    <div class=\"circles\">\n      <span class=\"circle\"> </span>\n      <span class=\"circle\"> </span>\n      <span class=\"circle\"> </span>\n      <span class=\"circle\"> </span>\n      <span class=\"circle\"> </span>\n      <span class=\"circle\"> </span>\n      <span class=\"circle\"> </span>\n      <span class=\"circle\"> </span>\n      <span class=\"circle\"> </span>\n      <span class=\"circle\"> </span>\n      <span class=\"circle\"> </span>\n      <span class=\"circle\"> </span>\n      <span class=\"circle\"> </span>\n      <span class=\"circle\"> </span>\n      <span class=\"circle\"> </span>\n    </div>\n  </button>\n</div>",
    "css": "/* From Uiverse.io by Lucaasbre  - Tags: button, animated, gradients, svg, css effect, multicolor, button hover effect , 2d button */\n.container {\n  position: relative;\n  width: 300px;\n  height: 100px;\n  border-radius: 30px;\n  overflow: hidden;\n  cursor: pointer;\n}\n\n.button {\n  border: none;\n  width: 200%;\n  height: 100%;\n  background: linear-gradient(\n      75deg,\n      rgb(170, 55, 200) 10%,\n      rgb(235, 100, 130) 20%,\n      rgb(245, 95, 90) 40%,\n      rgb(245, 110, 30) 60%,\n      rgb(235, 100, 130) 80%,\n      rgb(170, 55, 200) 90%\n    ),\n    linear-gradient(\n      75deg,\n      rgb(170, 55, 200) 0%,\n      rgb(235, 100, 130) 20%,\n      rgb(245, 95, 90) 40%,\n      rgb(245, 110, 30) 60%,\n      rgb(235, 100, 130) 80%,\n      rgb(170, 55, 200) 100%\n    );\n  background-size: 50% 100%;\n  animation: moveGradient 3s linear infinite paused;\n}\n\n.container:hover .button {\n  animation-play-state: running;\n}\n\n.container:active {\n  scale: 0.95;\n}\n\n@keyframes moveGradient {\n  0% {\n    background-position: 0 0;\n  }\n  100% {\n    background-position: 100% 0;\n  }\n}\n\n.span-text {\n  position: absolute;\n  z-index: 3;\n  width: 100%;\n  height: 100%;\n  text-align: center;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n}\n\n.span-outside {\n  width: 300px;\n  height: 95px;\n  justify-content: center;\n  align-items: center;\n  display: flex;\n  border-radius: 30px;\n  border: 2px solid rgba(255, 255, 255, 0.7);\n  background-color: #ffffff10;\n  filter: blur(1px);\n  z-index: 3;\n}\n\n.span-text > svg {\n  position: relative;\n  width: 25px;\n  height: 25px;\n  margin-right: 5px;\n}\n\n.circles .circle {\n  position: absolute;\n  background-color: #fff;\n  width: 200px;\n  height: 200px;\n  border-radius: 50%;\n}\n\n.circles .circle:nth-child(1) {\n  position: absolute;\n  background-color: rgba(255, 255, 255, 0.2);\n  filter: blur(20px);\n  top: -80px;\n  left: 180px;\n}\n\n.circles .circle:nth-child(2) {\n  position: absolute;\n  background-color: rgba(255, 255, 255, 0.3);\n  border-radius: 0;\n  filter: blur(10px);\n  top: -10px;\n  left: -50px;\n}\n\n.circles .circle:nth-child(3) {\n  position: absolute;\n  background-color: rgba(255, 255, 255, 0.8);\n  border-radius: 10px 80px 80px 40px;\n  width: 60px;\n  height: 40px;\n  top: 30px;\n  left: 35px;\n  filter: blur(10px);\n}\n\n.circles .circle:nth-child(4) {\n  position: absolute;\n  background-color: #fff;\n  rotate: 10deg;\n  width: 40px;\n  height: 40px;\n  top: 60px;\n  left: 130px;\n  filter: blur(20px);\n}\n\n.circles .circle:nth-child(5) {\n  position: absolute;\n  background-color: #fff;\n  width: 70px;\n  height: 70px;\n  top: 25px;\n  left: 250px;\n  filter: blur(18px);\n}\n\n.circles .circle:nth-child(6) {\n  position: absolute;\n  background-color: #fff;\n  rotate: 10deg;\n  width: 40px;\n  height: 40px;\n  top: 30px;\n  left: 190px;\n  filter: blur(10px);\n}\n\n.circles .circle:nth-child(7) {\n  position: absolute;\n  background-color: transparent;\n  border-radius: 0 0 0 20px;\n  border-left: 2px solid #fff;\n  border-bottom: 2px solid #fff;\n  width: 210px;\n  height: 20px;\n  top: 0px;\n  left: 20px;\n  filter: blur(2px);\n}\n\n.circles .circle:nth-child(8) {\n  position: absolute;\n  background-color: transparent;\n  border-radius: 0;\n  border-bottom: 6px solid #fff;\n  width: 60px;\n  height: 20px;\n  top: 60px;\n  left: 60px;\n  filter: blur(5px);\n}\n\n.circles .circle:nth-child(9) {\n  position: absolute;\n  background-color: transparent;\n  border-radius: 0 20px 0 0;\n  border-right: 2px solid #fff;\n  border-top: 2px solid #fff;\n  width: 50px;\n  height: 20px;\n  top: 19px;\n  right: 20px;\n  filter: blur(2px);\n}\n\n.circles .circle:nth-child(10) {\n  position: absolute;\n  background-color: transparent;\n  border-radius: 0 20px;\n  border-left: 2px solid #fff;\n  border-bottom: 2px solid #fff;\n  width: 30px;\n  height: 50px;\n  bottom: 10px;\n  right: -10px;\n  filter: blur(2px);\n}\n\n.circles .circle:nth-child(11) {\n  position: absolute;\n  background-color: transparent;\n  border-radius: 0 20px 0 0;\n  border-right: 2px solid #fff;\n  border-top: 2px solid #fff;\n  width: 50px;\n  height: 20px;\n  bottom: 1px;\n  right: 20px;\n  filter: blur(2px);\n}\n\n.circles .circle:nth-child(12) {\n  position: absolute;\n  background-color: transparent;\n  border-radius: 0 0 0 20px;\n  border-left: 2px solid #fff;\n  border-bottom: 2px solid #fff;\n  width: 210px;\n  height: 20px;\n  bottom: 20px;\n  left: 20px;\n  filter: blur(2px);\n}\n\n.circles .circle:nth-child(13) {\n  position: absolute;\n  background-color: transparent;\n  border-radius: 0 20px 0 0;\n  border-right: 2px solid #fff;\n  border-top: 2px solid #fff;\n  width: 20px;\n  height: 50px;\n  top: 10px;\n  left: 0px;\n  filter: blur(2px);\n}\n\n.circles .circle:nth-child(14) {\n  position: absolute;\n  background-color: white;\n  border-radius: 0 0 80px 40px;\n  width: 90px;\n  height: 20px;\n  top: 0px;\n  left: 20px;\n  filter: blur(9px);\n}\n\n.circles .circle:nth-child(15) {\n  position: absolute;\n  background-color: transparent;\n  border-radius: 0;\n  border-bottom: 6px solid #fff;\n  width: 60px;\n  height: 20px;\n  top: 0px;\n  left: 30px;\n  filter: blur(3px);\n}",
    "file_path": "/mnt/persist/workspace/Buttons/Lucaasbre_happy-elephant-36.html"
  },
  "uniapp": {
    "template": "<view class=\"container\"></view>\n  <text class=\"span-text\"></text>\n    <view height=\"20pt\" width=\"20pt\" viewBox=\"0 0 20 20\" style=\"isolation:isolate\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns=\"http://www.w3.org/2000/svg\"></view>\n      <defs>\n        <clipPath id=\"_clipPath_bC9TwUVn0M3ipVC8aHmmX7RNkfzJwdgL\">\n          <rect height=\"20\" width=\"20\"></rect>\n        </clipPath>\n      </defs>\n      <g clip-path=\"url(#_clipPath_bC9TwUVn0M3ipVC8aHmmX7RNkfzJwdgL)\">\n        <rect fill-opacity=\"0\" style=\"fill:rgb(1,0,1)\" height=\"20\" width=\"20\"></rect>\n        <path stroke-miterlimit=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke=\"rgb(0,0,0)\" stroke-width=\"1\" fill=\"rgb(0,0,0)\" d=\"M 10 1 L 10 9 L 15 9 L 10 19 L 10 12 L 5 12 L 10 1 Z\"></path>\n      </g>\n    </svg>\n    Join now\n  </span>\n  <button class=\"button\"></button>\n    <text class=\"span-outside\"> </text>\n    <view class=\"circles\"></view>\n      <text class=\"circle\"> </text>\n      <text class=\"circle\"> </text>\n      <text class=\"circle\"> </text>\n      <text class=\"circle\"> </text>\n      <text class=\"circle\"> </text>\n      <text class=\"circle\"> </text>\n      <text class=\"circle\"> </text>\n      <text class=\"circle\"> </text>\n      <text class=\"circle\"> </text>\n      <text class=\"circle\"> </text>\n      <text class=\"circle\"> </text>\n      <text class=\"circle\"> </text>\n      <text class=\"circle\"> </text>\n      <text class=\"circle\"> </text>\n      <text class=\"circle\"> </text>\n    </div>\n  </button>\n</div>",
    "script": "export default {\n  name: 'GalaxyHappyElephant36',\n  props: {\n    // 根据组件类型动态生成props\n  },\n  data() {\n    return {\n      // 组件状态\n    };\n  },\n  methods: {\n    // 组件方法\n  }\n}",
    "style": "\n/* From Uiverse.io by Lucaasbre  - Tags: button, animated, gradients, svg, css effect, multicolor, button hover effect , 2d button */\n.container {\n  position: relative;\n  width: 600rpx;\n  height: 200rpx;\n  border-radius: 60rpx;\n  overflow: hidden;\n  /* #ifdef H5 */\n  cursor: pointer;\n  /* #endif */\n}\n\n.button {\n  border: none;\n  width: 200%;\n  height: 100%;\n  background: linear-gradient(\n      75deg,\n      rgb(170, 55, 200) 10%,\n      rgb(235, 100, 130) 20%,\n      rgb(245, 95, 90) 40%,\n      rgb(245, 110, 30) 60%,\n      rgb(235, 100, 130) 80%,\n      rgb(170, 55, 200) 90%\n    ),\n    linear-gradient(\n      75deg,\n      rgb(170, 55, 200) 0%,\n      rgb(235, 100, 130) 20%,\n      rgb(245, 95, 90) 40%,\n      rgb(245, 110, 30) 60%,\n      rgb(235, 100, 130) 80%,\n      rgb(170, 55, 200) 100%\n    );\n  background-size: 50% 100%;\n  animation: moveGradient 3s linear infinite paused;\n}\n\n.container:hover .button {\n  animation-play-state: running;\n}\n\n.container:active {\n  scale: 0.95;\n}\n\n@keyframes moveGradient {\n  0% {\n    background-position: 0 0;\n  }\n  100% {\n    background-position: 100% 0;\n  }\n}\n\n.span-text {\n  position: absolute;\n  z-index: 3;\n  width: 100%;\n  height: 100%;\n  text-align: center;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n}\n\n.span-outside {\n  width: 600rpx;\n  height: 190rpx;\n  justify-content: center;\n  align-items: center;\n  display: flex;\n  border-radius: 60rpx;\n  border: 4rpx solid rgba(255, 255, 255, 0.7);\n  background-color: #ffffff10;\n  \n  z-index: 3;\n}\n\n.span-text > svg {\n  position: relative;\n  width: 50rpx;\n  height: 50rpx;\n  margin-right: 10rpx;\n}\n\n.circles .circle {\n  position: absolute;\n  background-color: #fff;\n  width: 400rpx;\n  height: 400rpx;\n  border-radius: 50%;\n}\n\n.circles .circle:nth-child(1) {\n  position: absolute;\n  background-color: rgba(255, 255, 255, 0.2);\n  \n  top: -160rpx;\n  left: 360rpx;\n}\n\n.circles .circle:nth-child(2) {\n  position: absolute;\n  background-color: rgba(255, 255, 255, 0.3);\n  border-radius: 0;\n  \n  top: -20rpx;\n  left: -100rpx;\n}\n\n.circles .circle:nth-child(3) {\n  position: absolute;\n  background-color: rgba(255, 255, 255, 0.8);\n  border-radius: 20rpx 160rpx 160rpx 80rpx;\n  width: 120rpx;\n  height: 80rpx;\n  top: 60rpx;\n  left: 70rpx;\n  \n}\n\n.circles .circle:nth-child(4) {\n  position: absolute;\n  background-color: #fff;\n  rotate: 10deg;\n  width: 80rpx;\n  height: 80rpx;\n  top: 120rpx;\n  left: 260rpx;\n  \n}\n\n.circles .circle:nth-child(5) {\n  position: absolute;\n  background-color: #fff;\n  width: 140rpx;\n  height: 140rpx;\n  top: 50rpx;\n  left: 500rpx;\n  \n}\n\n.circles .circle:nth-child(6) {\n  position: absolute;\n  background-color: #fff;\n  rotate: 10deg;\n  width: 80rpx;\n  height: 80rpx;\n  top: 60rpx;\n  left: 380rpx;\n  \n}\n\n.circles .circle:nth-child(7) {\n  position: absolute;\n  background-color: transparent;\n  border-radius: 0 0 0 40rpx;\n  border-left: 4rpx solid #fff;\n  border-bottom: 4rpx solid #fff;\n  width: 420rpx;\n  height: 40rpx;\n  top: 0rpx;\n  left: 40rpx;\n  \n}\n\n.circles .circle:nth-child(8) {\n  position: absolute;\n  background-color: transparent;\n  border-radius: 0;\n  border-bottom: 12rpx solid #fff;\n  width: 120rpx;\n  height: 40rpx;\n  top: 120rpx;\n  left: 120rpx;\n  \n}\n\n.circles .circle:nth-child(9) {\n  position: absolute;\n  background-color: transparent;\n  border-radius: 0 40rpx 0 0;\n  border-right: 4rpx solid #fff;\n  border-top: 4rpx solid #fff;\n  width: 100rpx;\n  height: 40rpx;\n  top: 38rpx;\n  right: 40rpx;\n  \n}\n\n.circles .circle:nth-child(10) {\n  position: absolute;\n  background-color: transparent;\n  border-radius: 0 40rpx;\n  border-left: 4rpx solid #fff;\n  border-bottom: 4rpx solid #fff;\n  width: 60rpx;\n  height: 100rpx;\n  bottom: 20rpx;\n  right: -20rpx;\n  \n}\n\n.circles .circle:nth-child(11) {\n  position: absolute;\n  background-color: transparent;\n  border-radius: 0 40rpx 0 0;\n  border-right: 4rpx solid #fff;\n  border-top: 4rpx solid #fff;\n  width: 100rpx;\n  height: 40rpx;\n  bottom: 2rpx;\n  right: 40rpx;\n  \n}\n\n.circles .circle:nth-child(12) {\n  position: absolute;\n  background-color: transparent;\n  border-radius: 0 0 0 40rpx;\n  border-left: 4rpx solid #fff;\n  border-bottom: 4rpx solid #fff;\n  width: 420rpx;\n  height: 40rpx;\n  bottom: 40rpx;\n  left: 40rpx;\n  \n}\n\n.circles .circle:nth-child(13) {\n  position: absolute;\n  background-color: transparent;\n  border-radius: 0 40rpx 0 0;\n  border-right: 4rpx solid #fff;\n  border-top: 4rpx solid #fff;\n  width: 40rpx;\n  height: 100rpx;\n  top: 20rpx;\n  left: 0rpx;\n  \n}\n\n.circles .circle:nth-child(14) {\n  position: absolute;\n  background-color: white;\n  border-radius: 0 0 160rpx 80rpx;\n  width: 180rpx;\n  height: 40rpx;\n  top: 0rpx;\n  left: 40rpx;\n  \n}\n\n.circles .circle:nth-child(15) {\n  position: absolute;\n  background-color: transparent;\n  border-radius: 0;\n  border-bottom: 12rpx solid #fff;\n  width: 120rpx;\n  height: 40rpx;\n  top: 0rpx;\n  left: 60rpx;\n  \n}\n\n",
    "component_name": "GalaxyHappyElephant36"
  },
  "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": [
        "不支持 filter 属性",
        "不支持 cursor 属性"
      ],
      "alternatives": []
    },
    "mp-alipay": {
      "supported": true,
      "issues": [
        "不支持 filter 属性",
        "不支持 cursor 属性"
      ],
      "alternatives": []
    },
    "app-plus": {
      "supported": true,
      "issues": [],
      "alternatives": []
    }
  },
  "performance": {
    "complexity": "high",
    "bundle_size": 6451,
    "render_cost": "high",
    "memory_usage": "high"
  },
  "dependencies": [],
  "examples": [
    {
      "title": "",
      "description": "",
      "code": ""
    }
  ],
  "created_at": "2025-07-31T07:55:33.856Z",
  "updated_at": "2025-07-31T07:55:33.856Z"
}