{
  "id": "Yaya12085_perfect-newt-3",
  "name": "perfect-newt-3",
  "category": "buttons",
  "author": "Yaya12085",
  "description": "perfect-newt-3 组件 (button, challenge, hover effect, ui, animation, gradient, interactive)",
  "tags": [
    "button",
    "challenge",
    "hover effect",
    "ui",
    "animation",
    "gradient",
    "interactive"
  ],
  "original": {
    "html": "<button class=\"button\">\n  <span class=\"icon\">\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" id=\"paper-plane\">\n      <path d=\"M20.34,9.32l-14-7a3,3,0,0,0-4.08,3.9l2.4,5.37h0a1.06,1.06,0,0,1,0,.82l-2.4,5.37A3,3,0,0,0,5,22a3.14,3.14,0,0,0,1.35-.32l14-7a3,3,0,0,0,0-5.36Zm-.89,3.57-14,7a1,1,0,0,1-1.35-1.3l2.39-5.37A2,2,0,0,0,6.57,13h6.89a1,1,0,0,0,0-2H6.57a2,2,0,0,0-.08-.22L4.1,5.41a1,1,0,0,1,1.35-1.3l14,7a1,1,0,0,1,0,1.78Z\"></path>\n    </svg>\n  </span>\n  <span class=\"title\">Send Message</span>\n</button>",
    "css": "/* From Uiverse.io by Yaya12085  - Tags: button, challenge, hover effect, ui */\n.button {\n  --radius: 20px;\n  --white: #ffffff;\n  --white50: #ffffff80;\n  --white35: #ffffff59;\n  --second_white: #f8f8f8;\n  --second_white75: #f8f8f8bf;\n  --third_white: #fafbfb;\n  --gray: #cacaca;\n  --gray50: #cacaca80;\n  --black: #1c1c1c;\n  --black15: #1c1c1c26;\n  --black13: #1c1c1c21;\n  --black10: #1c1c1c1a;\n  --black5: #1c1c1c0d;\n  --black35: #1c1c1c59;\n  --black75: #1c1c1cbf;\n  --black50: #1c1c1c80;\n  position: relative;\n  width: 250px;\n  height: 80px;\n  border-radius: var(--radius);\n  background-color: var(--white);\n  background: linear-gradient(var(--white) 100%, var(--gray) 50%);\n  cursor: pointer;\n  outline: none;\n  border: none;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  gap: 6px;\n  transition: all 0.3s;\n}\n.icon {\n  position: relative;\n  left: 0;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  transform: rotate(-45deg);\n  transition: all 0.3s;\n}\n.icon #paper-plane {\n  height: 24px;\n  width: 24px;\n  fill: var(--black);\n  filter: drop-shadow(0 1px 1px var(--black35));\n}\n\n.title {\n  filter: drop-shadow(0 1px 1px var(--black35));\n  font-size: 20px;\n  color: var(--black);\n  font-weight: 600;\n  transition: all 0.3s;\n}\n\n.button::after,\n.button::before {\n  position: absolute;\n  content: \"\";\n  left: 50%;\n  top: 50%;\n  transform: translate(-50%, -50%);\n  transition: all 0.3s;\n}\n.button::before {\n  background-color: var(--white);\n  box-shadow: inset 10px 10px 15px var(--gray50),\n    inset -10px -10px 15px var(--white), 0 0 0 2px var(--white);\n  width: 90%;\n  height: 80%;\n  border-radius: calc(var(--radius) * 10);\n}\n.button::after {\n  filter: drop-shadow(0 2px 4px var(--black15)),\n    drop-shadow(0 30px 100px var(--black13)),\n    drop-shadow(0 15px 30px var(--black10)),\n    drop-shadow(0 16px 12px var(--black5));\n  box-shadow: 0 0 0 1px var(--white);\n  background-color: var(--black);\n  background: linear-gradient(0deg, var(--black50), var(--gray));\n  width: 102%;\n  height: 108%;\n  border-radius: calc(var(--radius) + 2px);\n  z-index: -1;\n  transition: all 0.1s;\n}\n\n.button:hover::after {\n  width: 101%;\n  height: 104%;\n  filter: none;\n}\n.button:active::after {\n  width: 100%;\n  height: 100%;\n  filter: none;\n}\n.button:hover .icon {\n  transform: rotate(0) translateX(50%);\n  left: calc(50% + 24px);\n}\n.button:hover .title {\n  transform: translateX(-24px);\n}",
    "file_path": "/mnt/persist/workspace/Buttons/Yaya12085_perfect-newt-3.html"
  },
  "uniapp": {
    "template": "<button class=\"button\"></button>\n  <text class=\"icon\"></text>\n    <view xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" id=\"paper-plane\"></view>\n      <path d=\"M20.34,9.32l-14-7a3,3,0,0,0-4.08,3.9l2.4,5.37h0a1.06,1.06,0,0,1,0,.82l-2.4,5.37A3,3,0,0,0,5,22a3.14,3.14,0,0,0,1.35-.32l14-7a3,3,0,0,0,0-5.36Zm-.89,3.57-14,7a1,1,0,0,1-1.35-1.3l2.39-5.37A2,2,0,0,0,6.57,13h6.89a1,1,0,0,0,0-2H6.57a2,2,0,0,0-.08-.22L4.1,5.41a1,1,0,0,1,1.35-1.3l14,7a1,1,0,0,1,0,1.78Z\"></path>\n    </svg>\n  </span>\n  <text class=\"title\">Send Message</text>\n</button>",
    "script": "export default {\n  name: 'GalaxyPerfectNewt3',\n  props: {\n    // 根据组件类型动态生成props\n  },\n  data() {\n    return {\n      // 组件状态\n    };\n  },\n  methods: {\n    // 组件方法\n  }\n}",
    "style": "\n/* From Uiverse.io by Yaya12085  - Tags: button, challenge, hover effect, ui */\n.button {\n  --radius: 40rpx;\n  --white: #ffffff;\n  --white50: #ffffff80;\n  --white35: #ffffff59;\n  --second_white: #f8f8f8;\n  --second_white75: #f8f8f8bf;\n  --third_white: #fafbfb;\n  --gray: #cacaca;\n  --gray50: #cacaca80;\n  --black: #1c1c1c;\n  --black15: #1c1c1c26;\n  --black13: #1c1c1c21;\n  --black10: #1c1c1c1a;\n  --black5: #1c1c1c0d;\n  --black35: #1c1c1c59;\n  --black75: #1c1c1cbf;\n  --black50: #1c1c1c80;\n  position: relative;\n  width: 500rpx;\n  height: 160rpx;\n  border-radius: var(--radius);\n  background-color: var(--white);\n  background: linear-gradient(var(--white) 100%, var(--gray) 50%);\n  /* #ifdef H5 */\n  cursor: pointer;\n  /* #endif */\n  outline: none;\n  border: none;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  gap: 12rpx;\n  transition: all 0.3s;\n}\n.icon {\n  position: relative;\n  left: 0;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  transform: rotate(-45deg);\n  transition: all 0.3s;\n}\n.icon #paper-plane {\n  height: 48rpx;\n  width: 48rpx;\n  fill: var(--black);\n  \n}\n\n.title {\n  \n  font-size: 40rpx;\n  color: var(--black);\n  font-weight: 600;\n  transition: all 0.3s;\n}\n\n.button::after,\n.button::before {\n  position: absolute;\n  content: \"\";\n  left: 50%;\n  top: 50%;\n  transform: translate(-50%, -50%);\n  transition: all 0.3s;\n}\n.button::before {\n  background-color: var(--white);\n  /* #ifdef H5 */\n  /* #ifdef H5 */\n  box-shadow: inset 20rpx 20rpx 30rpx var(--gray50),\n    inset -20rpx -20rpx 30rpx var(--white), 0 0 0 4rpx var(--white);\n  /* #endif */\n  /* #ifdef MP */\n  border: 1rpx solid rgba(0,0,0,0.1);\n  /* #endif */\n  /* #endif */\n  width: 90%;\n  height: 80%;\n  border-radius: calc(var(--radius) * 10);\n}\n.button::after {\n  \n  /* #ifdef H5 */\n  /* #ifdef H5 */\n  box-shadow: 0 0 0 2rpx var(--white);\n  /* #endif */\n  /* #ifdef MP */\n  border: 1rpx solid rgba(0,0,0,0.1);\n  /* #endif */\n  /* #endif */\n  background-color: var(--black);\n  background: linear-gradient(0deg, var(--black50), var(--gray));\n  width: 102%;\n  height: 108%;\n  border-radius: calc(var(--radius) + 4rpx);\n  z-index: -1;\n  transition: all 0.1s;\n}\n\n.button:hover::after {\n  width: 101%;\n  height: 104%;\n  \n}\n.button:active::after {\n  width: 100%;\n  height: 100%;\n  \n}\n.button:hover .icon {\n  transform: rotate(0) translateX(50%);\n  left: calc(50% + 48rpx);\n}\n.button:hover .title {\n  transform: translateX(-48rpx);\n}\n\n",
    "component_name": "GalaxyPerfectNewt3"
  },
  "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 属性",
        "不支持 filter 属性",
        "不支持 cursor 属性"
      ],
      "alternatives": []
    },
    "mp-alipay": {
      "supported": true,
      "issues": [
        "不支持 box-shadow 属性",
        "不支持 filter 属性",
        "不支持 cursor 属性"
      ],
      "alternatives": []
    },
    "app-plus": {
      "supported": true,
      "issues": [],
      "alternatives": []
    }
  },
  "performance": {
    "complexity": "high",
    "bundle_size": 2947,
    "render_cost": "high",
    "memory_usage": "high"
  },
  "dependencies": [],
  "examples": [
    {
      "title": "",
      "description": "",
      "code": ""
    }
  ],
  "created_at": "2025-07-31T07:55:35.225Z",
  "updated_at": "2025-07-31T07:55:35.225Z"
}