{
  "id": "kleenpulse_dangerous-horse-41",
  "name": "dangerous-horse-41",
  "category": "buttons",
  "author": "kleenpulse",
  "description": "dangerous-horse-41 组件 (gradient, button, animation, interactive)",
  "tags": [
    "gradient",
    "button",
    "animation",
    "interactive"
  ],
  "original": {
    "html": "<button class=\"btn\">\n    Button\n</button>",
    "css": "/* From Uiverse.io by kleenpulse - Tags: gradient, button */\n.btn {\n  --border-color: linear-gradient(-45deg, #ffae00, #7e03aa, #00fffb);\n  --border-width: .125em;\n  --curve-size: .5em;\n  --blur: 30px;\n  --bg: #080312;\n  --color: #afffff;\n  color: var(--color);\n    /* use position: relative; so that BG is only for .btn */\n  position: relative;\n  isolation: isolate;\n  display: inline-grid;\n  place-content: center;\n  padding: .5em 1.5em;\n  font-size: 17px;\n  border: 0;\n  text-transform: uppercase;\n  box-shadow: 10px 10px 20px rgba(0, 0, 0, .6);\n  clip-path: polygon(\n            /* Top-left */\n            0% var(--curve-size),\n\n            var(--curve-size) 0,\n            /* top-right */\n            100% 0,\n            100% calc(100% - var(--curve-size)),\n\n            /* bottom-right 1 */\n            calc(100% - var(--curve-size)) 100%,\n            /* bottom-right 2 */\n            0 100%);\n  transition: color 250ms;\n}\n\n.btn::after,\n.btn::before {\n  content: '';\n  position: absolute;\n  inset: 0;\n}\n\n.btn::before {\n  background: var(--border-color);\n  background-size: 300% 300%;\n  animation: move-bg7234 5s ease infinite;\n  z-index: -2;\n}\n\n@keyframes move-bg7234 {\n  0% {\n    background-position: 31% 0%\n  }\n\n  50% {\n    background-position: 70% 100%\n  }\n\n  100% {\n    background-position: 31% 0%\n  }\n}\n\n.btn::after {\n  background: var(--bg);\n  z-index: -1;\n  clip-path: polygon(\n            /* Top-left */\n            var(--border-width) \n            calc(var(--curve-size) + var(--border-width) * .5),\n\n            calc(var(--curve-size) + var(--border-width) * .5) var(--border-width),\n\n            /* top-right */\n            calc(100% - var(--border-width)) \n            var(--border-width),\n\n            calc(100% - var(--border-width)) \n            calc(100% - calc(var(--curve-size) + var(--border-width) * .5)),\n\n            /* bottom-right 1 */\n            calc(100% - calc(var(--curve-size) + var(--border-width) * .5)) calc(100% - var(--border-width)),\n            /* bottom-right 2 */\n            var(--border-width) calc(100% - var(--border-width)));\n  transition: clip-path 500ms;\n}\n\n.btn:where(:hover, :focus)::after {\n  clip-path: polygon(\n                /* Top-left */\n                calc(100% - var(--border-width)) \n\n                calc(100% - calc(var(--curve-size) + var(--border-width) * 0.5)),\n    \n                calc(100% - var(--border-width))\n\n                var(--border-width),\n    \n                /* top-right */\n                calc(100% - var(--border-width))\n\n                 var(--border-width),\n    \n                calc(100% - var(--border-width)) \n\n                calc(100% - calc(var(--curve-size) + var(--border-width) * .5)),\n    \n                /* bottom-right 1 */\n                calc(100% - calc(var(--curve-size) + var(--border-width) * .5)) \n                calc(100% - var(--border-width)),\n\n                /* bottom-right 2 */\n                calc(100% - calc(var(--curve-size) + var(--border-width) * 0.5))\n                calc(100% - var(--border-width)));\n  transition: 200ms;\n}\n\n.btn:where(:hover, :focus) {\n  color: #fff;\n}",
    "file_path": "/mnt/persist/workspace/Buttons/kleenpulse_dangerous-horse-41.html"
  },
  "uniapp": {
    "template": "<button class=\"btn\"></button>\n    Button\n</button>",
    "script": "export default {\n  name: 'GalaxyDangerousHorse41',\n  props: {\n    // 根据组件类型动态生成props\n  },\n  data() {\n    return {\n      // 组件状态\n    };\n  },\n  methods: {\n    // 组件方法\n  }\n}",
    "style": "\n/* From Uiverse.io by kleenpulse - Tags: gradient, button */\n.btn {\n  --border-color: linear-gradient(-45deg, #ffae00, #7e03aa, #00fffb);\n  --border-width: .125em;\n  --curve-size: .5em;\n  --blur: 60rpx;\n  --bg: #080312;\n  --color: #afffff;\n  color: var(--color);\n    /* use position: relative; so that BG is only for .btn */\n  position: relative;\n  isolation: isolate;\n  display: inline-grid;\n  place-content: center;\n  padding: .5em 1.5em;\n  font-size: 34rpx;\n  border: 0;\n  text-transform: uppercase;\n  /* #ifdef H5 */\n  /* #ifdef H5 */\n  box-shadow: 20rpx 20rpx 40rpx rgba(0, 0, 0, .6);\n  /* #endif */\n  /* #ifdef MP */\n  border: 1rpx solid rgba(0,0,0,0.1);\n  /* #endif */\n  /* #endif */\n  \n  transition: color 250ms;\n}\n\n.btn::after,\n.btn::before {\n  content: '';\n  position: absolute;\n  inset: 0;\n}\n\n.btn::before {\n  background: var(--border-color);\n  background-size: 300% 300%;\n  animation: move-bg7234 5s ease infinite;\n  z-index: -2;\n}\n\n@keyframes move-bg7234 {\n  0% {\n    background-position: 31% 0%\n  }\n\n  50% {\n    background-position: 70% 100%\n  }\n\n  100% {\n    background-position: 31% 0%\n  }\n}\n\n.btn::after {\n  background: var(--bg);\n  z-index: -1;\n  \n  transition: clip-path 500ms;\n}\n\n.btn:where(:hover, :focus)::after {\n  \n  transition: 200ms;\n}\n\n.btn:where(:hover, :focus) {\n  color: #fff;\n}\n",
    "component_name": "GalaxyDangerousHorse41"
  },
  "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": [
        "不支持 box-shadow 属性",
        "不支持 clip-path 属性"
      ],
      "alternatives": []
    },
    "mp-alipay": {
      "supported": true,
      "issues": [
        "不支持 box-shadow 属性",
        "不支持 clip-path 属性"
      ],
      "alternatives": []
    },
    "app-plus": {
      "supported": true,
      "issues": [],
      "alternatives": []
    }
  },
  "performance": {
    "complexity": "high",
    "bundle_size": 3143,
    "render_cost": "high",
    "memory_usage": "high"
  },
  "dependencies": [],
  "examples": [
    {
      "title": "",
      "description": "",
      "code": ""
    }
  ],
  "created_at": "2025-07-31T07:55:37.113Z",
  "updated_at": "2025-07-31T07:55:37.113Z"
}