{
  "id": "Yaya12085_happy-emu-100",
  "name": "happy-emu-100",
  "category": "buttons",
  "author": "Yaya12085",
  "description": "happy-emu-100 组件 (button, animation, gradient, interactive)",
  "tags": [
    "button",
    "animation",
    "gradient",
    "interactive"
  ],
  "original": {
    "html": "<button class=\"space-button\">\n  <div class=\"planet\"></div>\n  <div class=\"flex\">\n  <svg class=\"moon\" viewBox=\"0 0 36 36\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" aria-hidden=\"true\" role=\"img\" preserveAspectRatio=\"xMidYMid meet\" fill=\"#000000\"><g id=\"SVGRepo_bgCarrier\" stroke-width=\"0\"></g><g id=\"SVGRepo_tracerCarrier\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></g><g id=\"SVGRepo_iconCarrier\"> <circle fill=\"#66757F\" cx=\"18\" cy=\"18\" r=\"18\"> </circle> <g fill=\"#5B6876\"> <circle cx=\"10.5\" cy=\"8.5\" r=\"3.5\"> </circle> <circle cx=\"20\" cy=\"16\" r=\"3\"> </circle> <circle cx=\"21.5\" cy=\"27.5\" r=\"3.5\"> </circle> <circle cx=\"21\" cy=\"6\" r=\"2\"> </circle> <circle cx=\"3\" cy=\"18\" r=\"1\"> </circle> <circle cx=\"30\" cy=\"9\" r=\"1\"> </circle> <circle cx=\"15\" cy=\"31\" r=\"1\"> </circle> <circle cx=\"32\" cy=\"19\" r=\"2\"> </circle> <circle cx=\"10\" cy=\"23\" r=\"2\"> </circle> </g> </g></svg>\n  <span class=\"title\">Launch</span>\n  </div>\n  <svg class=\"rocket\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 369.998 369.997\" xml:space=\"preserve\" stroke=\"#ffffff\"><g id=\"SVGRepo_bgCarrier\" stroke-width=\"0\"></g><g id=\"SVGRepo_tracerCarrier\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></g><g id=\"SVGRepo_iconCarrier\"> <g> <g> <g> <path d=\"M369.993,6.919c0.022-1.846-0.692-3.622-1.998-4.927c-1.303-1.302-3.083-2.023-4.924-1.991 c-3.591,0.057-88.576,2.038-143.287,56.748l-69.377,69.377c-16.128-5.68-71.071-16.34-148.411,60.994 c-2.354,2.356-2.656,6.065-0.72,8.777c0.221,0.31,0.461,0.594,0.728,0.859c2.026,2.025,5.166,2.593,7.816,1.291 c0.524-0.259,49.841-24.086,76.021-7.355l-17.168,17.167c-0.417,0.417-0.776,0.887-1.074,1.394 c-0.723,1.257-17.33,31.098,22.357,70.779c39.684,39.685,69.528,23.085,70.774,22.356c0.516-0.297,0.977-0.658,1.396-1.075 l17.168-17.167c16.732,26.181-7.093,75.494-7.349,76.023c-1.304,2.65-0.743,5.784,1.288,7.817 c0.046,0.042,0.082,0.077,0.125,0.118c2.666,2.557,6.902,2.522,9.523-0.103c0.132-0.128,0.25-0.263,0.371-0.397 c76.917-77.14,66.282-131.926,60.607-148.026l69.378-69.377C367.946,95.494,369.932,10.512,369.993,6.919z M281.903,142.187 c-14.941,14.938-39.155,14.937-54.089,0.001c-14.934-14.933-14.935-39.148,0.003-54.087c14.933-14.934,39.15-14.934,54.086,0 C296.835,103.036,296.835,127.253,281.903,142.187z\"></path> <path d=\"M89.388,320.865c-13.427,2.338-27.286,3.275-40.898,3.05c-1.157-0.021-2.344-1.417-2.341-2.36 c-0.002-2.062,0.049-5.066,0.101-7.127c0.076-3.013,0.204-6.021,0.364-9.033c0.378-6.827,0.937-13.676,1.943-20.44 c1.753-11.837,4.423-23.442,8.838-34.591c0.604-1.519,1.277-3.005,1.827-4.55c-12.384,5.298-22.051,15.85-28.861,27.224 c-6.624,11.057-10.913,23.427-13.293,36.067c-1.408,7.462-2.138,15.042-2.244,22.631c-0.049,4.196-0.316,9.271,1.142,13.295 c2.066,5.717,7.382,9.51,13.398,9.925c5.402,0.369,10.822,0.298,16.233-0.06c24.582-1.622,50.85-10.177,68.109-28.474 c4.245-4.746,7.948-9.744,10.52-15.605c-6.14,2.262-12.1,4.765-18.438,6.474C100.367,318.75,94.917,319.903,89.388,320.865z\"></path> </g> </g> </g> </g></svg>\n</button>",
    "css": "/* From Uiverse.io by Yaya12085 - Tags: button */\n.space-button {\n  position: relative;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: space-between;\n  width: 200px;\n  height: 60px;\n  background-color: #293944;\n  background-image: radial-gradient(93% 87% at 87% 89%, rgba(0, 0, 0, 0.23) 0%, transparent 86.18%), radial-gradient(66% 87% at 26% 20%, rgba(255, 255, 255, 0.41) 0%, rgba(255, 255, 255, 0) 69.79%, rgba(255, 255, 255, 0) 100%);\n  border: none;\n  border-radius: 10px;\n  cursor: pointer;\n  perspective: 1000px;\n  transform: translateY(-3px);\n  overflow: hidden;\n  padding: 0 20px;\n  box-shadow: 2px 19px 31px rgba(0, 0, 0, 0.2);\n  transition: transform 0.3s ease-out;\n}\n\n.title {\n  color: wheat;\n  font-weight: bold;\n  margin-right: 10px;\n  font-size: 20px;\n}\n\n.planet {\n  content: \"\";\n  position: absolute;\n  width: 15px;\n  height: 15px;\n  top: 10px;\n  left: 10px;\n  background-color: rgb(224, 236, 224);\n  border-radius: 50%;\n  perspective: 1000px;\n  transform-style: preserve-3d;\n  box-shadow: inset rgb(211, 203, 177) -20px -20px 70px;\n}\n\n.planet::before {\n  position: absolute;\n  content: \"\";\n  width: 25px;\n  height: 25px;\n  border: solid 6px rgb(187, 173, 173);\n  border-radius: 50%;\n  top: -30%;\n  left: -30%;\n  transform: rotate3d(0.8, 0.2, 0, 75deg);\n  box-sizing: border-box;\n}\n\n.space-button:after {\n  content: \"\";\n  position: absolute;\n  bottom: -50%;\n  left: 0;\n  width: 100%;\n  height: 100%;\n  background-color: #688ACC;\n  transform-origin: bottom center;\n  transition: transform 600ms cubic-bezier(0.48, 0, 0.12, 1);\n  transform: skewY(10deg) scaleY(0);\n  z-index: 2;\n}\n\n.space-button:hover:after {\n  transform-origin: bottom center;\n  transform: skewY(9.3deg) scaleY(2);\n}\n\n.space-button:active {\n  transform: translateY(0);\n  box-shadow: 2px 19px 31px rgba(0, 0, 0, 0.2);\n  border: 1px solid rgba(30, 255, 0, 0.171);\n}\n\n.space-button .rocket {\n  display: block;\n  position: absolute;\n  opacity: 0;\n  bottom: 10%;\n  border: 0;\n  height: 40%;\n  transform: translateY(225%) translateX(-50%);\n  transition: all 500ms cubic-bezier(0.48, 0, 0.12, 1);\n  z-index: 3;\n}\n\n.flex {\n  display: flex;\n  flex-direction: row-reverse;\n  align-items: center;\n  justify-content: flex-start;\n  padding: 0 20px;\n  height: 100%;\n  width: 100%;\n}\n\n.space-button:hover .rocket {\n  fill: white;\n  animation: shake_3019 .1s infinite;\n  transform: translateX(-50%) translateY(-100%);\n  opacity: 1;\n  transition: all .9s cubic-bezier(0.48, 0, 0.12, 1);\n}\n\n.space-button:focus .rocket {\n  animation: push_3019 5s ease-in infinite;\n}\n\n@keyframes push_3019 {\n  0% {\n    transform: rotate(-45deg) translateY(0px);\n  }\n\n  33% {\n    transform: translateY(-500px);\n  }\n\n  65% {\n    transform: rotate(180deg);\n  }\n\n  66% {\n    transform: rotate(-45deg) translateY(0px);\n  }\n\n  100% {\n    transform: rotate(-45deg);\n  }\n}\n\n@keyframes shake_3019 {\n  0% {\n    transform: rotate(-45deg) translateX(-1px) translateY(1px);\n  }\n\n  100% {\n    transform: rotate(-45deg) translateX(1px) translateY(-1px);\n  }\n}",
    "file_path": "/mnt/persist/workspace/Buttons/Yaya12085_happy-emu-100.html"
  },
  "uniapp": {
    "template": "<button class=\"space-button\"></button>\n  <view class=\"planet\"></view>\n  <view class=\"flex\"></view>\n  <view class=\"moon\" viewBox=\"0 0 36 36\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" aria-hidden=\"true\" role=\"img\" preserveAspectRatio=\"xMidYMid meet\" fill=\"#000000\"><g id=\"SVGRepo_bgCarrier\" stroke-width=\"0\"></g><g id=\"SVGRepo_tracerCarrier\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></g><g id=\"SVGRepo_iconCarrier\"> <circle fill=\"#66757F\" cx=\"18\" cy=\"18\" r=\"18\"> </circle> <g fill=\"#5B6876\"> <circle cx=\"10.5\" cy=\"8.5\" r=\"3.5\"> </circle> <circle cx=\"20\" cy=\"16\" r=\"3\"> </circle> <circle cx=\"21.5\" cy=\"27.5\" r=\"3.5\"> </circle> <circle cx=\"21\" cy=\"6\" r=\"2\"> </circle> <circle cx=\"3\" cy=\"18\" r=\"1\"> </circle> <circle cx=\"30\" cy=\"9\" r=\"1\"> </circle> <circle cx=\"15\" cy=\"31\" r=\"1\"> </circle> <circle cx=\"32\" cy=\"19\" r=\"2\"> </circle> <circle cx=\"10\" cy=\"23\" r=\"2\"> </circle> </g> </g></view>\n  <text class=\"title\">Launch</text>\n  </div>\n  <view class=\"rocket\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 369.998 369.997\" xml:space=\"preserve\" stroke=\"#ffffff\"><g id=\"SVGRepo_bgCarrier\" stroke-width=\"0\"></g><g id=\"SVGRepo_tracerCarrier\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></g><g id=\"SVGRepo_iconCarrier\"> <g> <g> <g> <path d=\"M369.993,6.919c0.022-1.846-0.692-3.622-1.998-4.927c-1.303-1.302-3.083-2.023-4.924-1.991 c-3.591,0.057-88.576,2.038-143.287,56.748l-69.377,69.377c-16.128-5.68-71.071-16.34-148.411,60.994 c-2.354,2.356-2.656,6.065-0.72,8.777c0.221,0.31,0.461,0.594,0.728,0.859c2.026,2.025,5.166,2.593,7.816,1.291 c0.524-0.259,49.841-24.086,76.021-7.355l-17.168,17.167c-0.417,0.417-0.776,0.887-1.074,1.394 c-0.723,1.257-17.33,31.098,22.357,70.779c39.684,39.685,69.528,23.085,70.774,22.356c0.516-0.297,0.977-0.658,1.396-1.075 l17.168-17.167c16.732,26.181-7.093,75.494-7.349,76.023c-1.304,2.65-0.743,5.784,1.288,7.817 c0.046,0.042,0.082,0.077,0.125,0.118c2.666,2.557,6.902,2.522,9.523-0.103c0.132-0.128,0.25-0.263,0.371-0.397 c76.917-77.14,66.282-131.926,60.607-148.026l69.378-69.377C367.946,95.494,369.932,10.512,369.993,6.919z M281.903,142.187 c-14.941,14.938-39.155,14.937-54.089,0.001c-14.934-14.933-14.935-39.148,0.003-54.087c14.933-14.934,39.15-14.934,54.086,0 C296.835,103.036,296.835,127.253,281.903,142.187z\"></path> <path d=\"M89.388,320.865c-13.427,2.338-27.286,3.275-40.898,3.05c-1.157-0.021-2.344-1.417-2.341-2.36 c-0.002-2.062,0.049-5.066,0.101-7.127c0.076-3.013,0.204-6.021,0.364-9.033c0.378-6.827,0.937-13.676,1.943-20.44 c1.753-11.837,4.423-23.442,8.838-34.591c0.604-1.519,1.277-3.005,1.827-4.55c-12.384,5.298-22.051,15.85-28.861,27.224 c-6.624,11.057-10.913,23.427-13.293,36.067c-1.408,7.462-2.138,15.042-2.244,22.631c-0.049,4.196-0.316,9.271,1.142,13.295 c2.066,5.717,7.382,9.51,13.398,9.925c5.402,0.369,10.822,0.298,16.233-0.06c24.582-1.622,50.85-10.177,68.109-28.474 c4.245-4.746,7.948-9.744,10.52-15.605c-6.14,2.262-12.1,4.765-18.438,6.474C100.367,318.75,94.917,319.903,89.388,320.865z\"></path> </g> </g> </g> </g></view>\n</button>",
    "script": "export default {\n  name: 'GalaxyHappyEmu100',\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 */\n.space-button {\n  position: relative;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: space-between;\n  width: 400rpx;\n  height: 120rpx;\n  background-color: #293944;\n  background-image: radial-gradient(93% 87% at 87% 89%, rgba(0, 0, 0, 0.23) 0%, transparent 86.18%), radial-gradient(66% 87% at 26% 20%, rgba(255, 255, 255, 0.41) 0%, rgba(255, 255, 255, 0) 69.79%, rgba(255, 255, 255, 0) 100%);\n  border: none;\n  border-radius: 20rpx;\n  /* #ifdef H5 */\n  cursor: pointer;\n  /* #endif */\n  perspective: 2000rpx;\n  transform: translateY(-6rpx);\n  overflow: hidden;\n  padding: 0 40rpx;\n  /* #ifdef H5 */\n  /* #ifdef H5 */\n  box-shadow: 4rpx 38rpx 62rpx rgba(0, 0, 0, 0.2);\n  /* #endif */\n  /* #ifdef MP */\n  border: 1rpx solid rgba(0,0,0,0.1);\n  /* #endif */\n  /* #endif */\n  transition: transform 0.3s ease-out;\n}\n\n.title {\n  color: wheat;\n  font-weight: bold;\n  margin-right: 20rpx;\n  font-size: 40rpx;\n}\n\n.planet {\n  content: \"\";\n  position: absolute;\n  width: 30rpx;\n  height: 30rpx;\n  top: 20rpx;\n  left: 20rpx;\n  background-color: rgb(224, 236, 224);\n  border-radius: 50%;\n  perspective: 2000rpx;\n  transform-style: preserve-3d;\n  /* #ifdef H5 */\n  /* #ifdef H5 */\n  box-shadow: inset rgb(211, 203, 177) -40rpx -40rpx 140rpx;\n  /* #endif */\n  /* #ifdef MP */\n  border: 1rpx solid rgba(0,0,0,0.1);\n  /* #endif */\n  /* #endif */\n}\n\n.planet::before {\n  position: absolute;\n  content: \"\";\n  width: 50rpx;\n  height: 50rpx;\n  border: solid 12rpx rgb(187, 173, 173);\n  border-radius: 50%;\n  top: -30%;\n  left: -30%;\n  transform: rotate3d(0.8, 0.2, 0, 75deg);\n  box-sizing: border-box;\n}\n\n.space-button:after {\n  content: \"\";\n  position: absolute;\n  bottom: -50%;\n  left: 0;\n  width: 100%;\n  height: 100%;\n  background-color: #688ACC;\n  transform-origin: bottom center;\n  transition: transform 600ms cubic-bezier(0.48, 0, 0.12, 1);\n  transform: skewY(10deg) scaleY(0);\n  z-index: 2;\n}\n\n.space-button:hover:after {\n  transform-origin: bottom center;\n  transform: skewY(9.3deg) scaleY(2);\n}\n\n.space-button:active {\n  transform: translateY(0);\n  /* #ifdef H5 */\n  /* #ifdef H5 */\n  box-shadow: 4rpx 38rpx 62rpx rgba(0, 0, 0, 0.2);\n  /* #endif */\n  /* #ifdef MP */\n  border: 1rpx solid rgba(0,0,0,0.1);\n  /* #endif */\n  /* #endif */\n  border: 2rpx solid rgba(30, 255, 0, 0.171);\n}\n\n.space-button .rocket {\n  display: block;\n  position: absolute;\n  opacity: 0;\n  bottom: 10%;\n  border: 0;\n  height: 40%;\n  transform: translateY(225%) translateX(-50%);\n  transition: all 500ms cubic-bezier(0.48, 0, 0.12, 1);\n  z-index: 3;\n}\n\n.flex {\n  display: flex;\n  flex-direction: row-reverse;\n  align-items: center;\n  justify-content: flex-start;\n  padding: 0 40rpx;\n  height: 100%;\n  width: 100%;\n}\n\n.space-button:hover .rocket {\n  fill: white;\n  animation: shake_3019 .1s infinite;\n  transform: translateX(-50%) translateY(-100%);\n  opacity: 1;\n  transition: all .9s cubic-bezier(0.48, 0, 0.12, 1);\n}\n\n.space-button:focus .rocket {\n  animation: push_3019 5s ease-in infinite;\n}\n\n@keyframes push_3019 {\n  0% {\n    transform: rotate(-45deg) translateY(0rpx);\n  }\n\n  33% {\n    transform: translateY(-1000rpx);\n  }\n\n  65% {\n    transform: rotate(180deg);\n  }\n\n  66% {\n    transform: rotate(-45deg) translateY(0rpx);\n  }\n\n  100% {\n    transform: rotate(-45deg);\n  }\n}\n\n@keyframes shake_3019 {\n  0% {\n    transform: rotate(-45deg) translateX(-2rpx) translateY(2rpx);\n  }\n\n  100% {\n    transform: rotate(-45deg) translateX(2rpx) translateY(-2rpx);\n  }\n}\n\n\n\n\n",
    "component_name": "GalaxyHappyEmu100"
  },
  "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 属性",
        "不支持 cursor 属性"
      ],
      "alternatives": []
    },
    "mp-alipay": {
      "supported": true,
      "issues": [
        "不支持 box-shadow 属性",
        "不支持 cursor 属性"
      ],
      "alternatives": []
    },
    "app-plus": {
      "supported": true,
      "issues": [],
      "alternatives": []
    }
  },
  "performance": {
    "complexity": "high",
    "bundle_size": 6077,
    "render_cost": "high",
    "memory_usage": "high"
  },
  "dependencies": [],
  "examples": [
    {
      "title": "",
      "description": "",
      "code": ""
    }
  ],
  "created_at": "2025-07-31T07:55:35.216Z",
  "updated_at": "2025-07-31T07:55:35.216Z"
}