{
  "id": "himanshu9682_wise-shrimp-26",
  "name": "wise-shrimp-26",
  "category": "buttons",
  "author": "himanshu9682",
  "description": "wise-shrimp-26 组件 (button, animation, interactive)",
  "tags": [
    "button",
    "animation",
    "interactive"
  ],
  "original": {
    "html": "<div class=\"container\">\n  <a href=\"#\" class=\"button type--C\">\n    <div class=\"button__line\"></div>\n    <div class=\"button__line\"></div>\n    <span class=\"button__text\">ENTRY</span>\n    <div class=\"button__drow1\"></div>\n    <div class=\"button__drow2\"></div>\n  </a>\n</div>",
    "css": "/* From Uiverse.io by himanshu9682  - Tags: button */\n.type--A {\n  --line_color: #555555;\n  --back_color: #ffecf6;\n}\n.type--B {\n  --line_color: #1b1919;\n  --back_color: #e9ecff;\n}\n.type--C {\n  --line_color: #00135c;\n  --back_color: #defffa;\n}\n.button {\n  position: relative;\n  z-index: 0;\n  width: 240px;\n  height: 56px;\n  text-decoration: none;\n  font-size: 14px;\n  font-weight: bold;\n  color: var(--line_color);\n  letter-spacing: 2px;\n  transition: all 0.3s ease;\n}\n.button__text {\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  width: 100%;\n  height: 100%;\n}\n.button::before,\n.button::after,\n.button__text::before,\n.button__text::after {\n  content: \"\";\n  position: absolute;\n  height: 3px;\n  border-radius: 2px;\n  background: var(--line_color);\n  transition: all 0.5s ease;\n}\n.button::before {\n  top: 0;\n  left: 54px;\n  width: calc(100% - 56px * 2 - 16px);\n}\n.button::after {\n  top: 0;\n  right: 54px;\n  width: 8px;\n}\n.button__text::before {\n  bottom: 0;\n  right: 54px;\n  width: calc(100% - 56px * 2 - 16px);\n}\n.button__text::after {\n  bottom: 0;\n  left: 54px;\n  width: 8px;\n}\n.button__line {\n  position: absolute;\n  top: 0;\n  width: 56px;\n  height: 100%;\n  overflow: hidden;\n}\n.button__line::before {\n  content: \"\";\n  position: absolute;\n  top: 0;\n  width: 150%;\n  height: 100%;\n  box-sizing: border-box;\n  border-radius: 300px;\n  border: solid 3px var(--line_color);\n}\n.button__line:nth-child(1),\n.button__line:nth-child(1)::before {\n  left: 0;\n}\n.button__line:nth-child(2),\n.button__line:nth-child(2)::before {\n  right: 0;\n}\n.button:hover {\n  letter-spacing: 6px;\n}\n.button:hover::before,\n.button:hover .button__text::before {\n  width: 8px;\n}\n.button:hover::after,\n.button:hover .button__text::after {\n  width: calc(100% - 56px * 2 - 16px);\n}\n.button__drow1,\n.button__drow2 {\n  position: absolute;\n  z-index: -1;\n  border-radius: 16px;\n  transform-origin: 16px 16px;\n}\n.button__drow1 {\n  top: -16px;\n  left: 40px;\n  width: 32px;\n  height: 0;\n  transform: rotate(30deg);\n}\n.button__drow2 {\n  top: 44px;\n  left: 77px;\n  width: 32px;\n  height: 0;\n  transform: rotate(-127deg);\n}\n.button__drow1::before,\n.button__drow1::after,\n.button__drow2::before,\n.button__drow2::after {\n  content: \"\";\n  position: absolute;\n}\n.button__drow1::before {\n  bottom: 0;\n  left: 0;\n  width: 0;\n  height: 32px;\n  border-radius: 16px;\n  transform-origin: 16px 16px;\n  transform: rotate(-60deg);\n}\n.button__drow1::after {\n  top: -10px;\n  left: 45px;\n  width: 0;\n  height: 32px;\n  border-radius: 16px;\n  transform-origin: 16px 16px;\n  transform: rotate(69deg);\n}\n.button__drow2::before {\n  bottom: 0;\n  left: 0;\n  width: 0;\n  height: 32px;\n  border-radius: 16px;\n  transform-origin: 16px 16px;\n  transform: rotate(-146deg);\n}\n.button__drow2::after {\n  bottom: 26px;\n  left: -40px;\n  width: 0;\n  height: 32px;\n  border-radius: 16px;\n  transform-origin: 16px 16px;\n  transform: rotate(-262deg);\n}\n.button__drow1,\n.button__drow1::before,\n.button__drow1::after,\n.button__drow2,\n.button__drow2::before,\n.button__drow2::after {\n  background: var(--back_color);\n}\n.button:hover .button__drow1 {\n  animation: drow1 ease-in 0.06s;\n  animation-fill-mode: forwards;\n}\n.button:hover .button__drow1::before {\n  animation: drow2 linear 0.08s 0.06s;\n  animation-fill-mode: forwards;\n}\n.button:hover .button__drow1::after {\n  animation: drow3 linear 0.03s 0.14s;\n  animation-fill-mode: forwards;\n}\n.button:hover .button__drow2 {\n  animation: drow4 linear 0.06s 0.2s;\n  animation-fill-mode: forwards;\n}\n.button:hover .button__drow2::before {\n  animation: drow3 linear 0.03s 0.26s;\n  animation-fill-mode: forwards;\n}\n.button:hover .button__drow2::after {\n  animation: drow5 linear 0.06s 0.32s;\n  animation-fill-mode: forwards;\n}\n@keyframes drow1 {\n  0% {\n    height: 0;\n  }\n  100% {\n    height: 100px;\n  }\n}\n@keyframes drow2 {\n  0% {\n    width: 0;\n    opacity: 0;\n  }\n  10% {\n    opacity: 0;\n  }\n  11% {\n    opacity: 1;\n  }\n  100% {\n    width: 120px;\n  }\n}\n@keyframes drow3 {\n  0% {\n    width: 0;\n  }\n  100% {\n    width: 80px;\n  }\n}\n@keyframes drow4 {\n  0% {\n    height: 0;\n  }\n  100% {\n    height: 120px;\n  }\n}\n@keyframes drow5 {\n  0% {\n    width: 0;\n  }\n  100% {\n    width: 124px;\n  }\n}\n\n.container {\n  width: 100%;\n  height: 300px;\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n}\n.button:not(:last-child) {\n  margin-bottom: 64px;\n}",
    "file_path": "/mnt/persist/workspace/Buttons/himanshu9682_wise-shrimp-26.html"
  },
  "uniapp": {
    "template": "<view class=\"container\"></view>\n  <navigator href=\"#\" class=\"button type--C\"></navigator>\n    <view class=\"button__line\"></view>\n    <view class=\"button__line\"></view>\n    <text class=\"button__text\">ENTRY</text>\n    <view class=\"button__drow1\"></view>\n    <view class=\"button__drow2\"></view>\n  </a>\n</div>",
    "script": "export default {\n  name: 'GalaxyWiseShrimp26',\n  props: {\n    // 根据组件类型动态生成props\n  },\n  data() {\n    return {\n      // 组件状态\n    };\n  },\n  methods: {\n    // 组件方法\n  }\n}",
    "style": "\n/* From Uiverse.io by himanshu9682  - Tags: button */\n.type--A {\n  --line_color: #555555;\n  --back_color: #ffecf6;\n}\n.type--B {\n  --line_color: #1b1919;\n  --back_color: #e9ecff;\n}\n.type--C {\n  --line_color: #00135c;\n  --back_color: #defffa;\n}\n.button {\n  position: relative;\n  z-index: 0;\n  width: 480rpx;\n  height: 112rpx;\n  text-decoration: none;\n  font-size: 28rpx;\n  font-weight: bold;\n  color: var(--line_color);\n  letter-spacing: 4rpx;\n  transition: all 0.3s ease;\n}\n.button__text {\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  width: 100%;\n  height: 100%;\n}\n.button::before,\n.button::after,\n.button__text::before,\n.button__text::after {\n  content: \"\";\n  position: absolute;\n  height: 6rpx;\n  border-radius: 4rpx;\n  background: var(--line_color);\n  transition: all 0.5s ease;\n}\n.button::before {\n  top: 0;\n  left: 108rpx;\n  width: calc(100% - 112rpx * 2 - 32rpx);\n}\n.button::after {\n  top: 0;\n  right: 108rpx;\n  width: 16rpx;\n}\n.button__text::before {\n  bottom: 0;\n  right: 108rpx;\n  width: calc(100% - 112rpx * 2 - 32rpx);\n}\n.button__text::after {\n  bottom: 0;\n  left: 108rpx;\n  width: 16rpx;\n}\n.button__line {\n  position: absolute;\n  top: 0;\n  width: 112rpx;\n  height: 100%;\n  overflow: hidden;\n}\n.button__line::before {\n  content: \"\";\n  position: absolute;\n  top: 0;\n  width: 150%;\n  height: 100%;\n  box-sizing: border-box;\n  border-radius: 600rpx;\n  border: solid 6rpx var(--line_color);\n}\n.button__line:nth-child(1),\n.button__line:nth-child(1)::before {\n  left: 0;\n}\n.button__line:nth-child(2),\n.button__line:nth-child(2)::before {\n  right: 0;\n}\n.button:hover {\n  letter-spacing: 12rpx;\n}\n.button:hover::before,\n.button:hover .button__text::before {\n  width: 16rpx;\n}\n.button:hover::after,\n.button:hover .button__text::after {\n  width: calc(100% - 112rpx * 2 - 32rpx);\n}\n.button__drow1,\n.button__drow2 {\n  position: absolute;\n  z-index: -1;\n  border-radius: 32rpx;\n  transform-origin: 32rpx 32rpx;\n}\n.button__drow1 {\n  top: -32rpx;\n  left: 80rpx;\n  width: 64rpx;\n  height: 0;\n  transform: rotate(30deg);\n}\n.button__drow2 {\n  top: 88rpx;\n  left: 154rpx;\n  width: 64rpx;\n  height: 0;\n  transform: rotate(-127deg);\n}\n.button__drow1::before,\n.button__drow1::after,\n.button__drow2::before,\n.button__drow2::after {\n  content: \"\";\n  position: absolute;\n}\n.button__drow1::before {\n  bottom: 0;\n  left: 0;\n  width: 0;\n  height: 64rpx;\n  border-radius: 32rpx;\n  transform-origin: 32rpx 32rpx;\n  transform: rotate(-60deg);\n}\n.button__drow1::after {\n  top: -20rpx;\n  left: 90rpx;\n  width: 0;\n  height: 64rpx;\n  border-radius: 32rpx;\n  transform-origin: 32rpx 32rpx;\n  transform: rotate(69deg);\n}\n.button__drow2::before {\n  bottom: 0;\n  left: 0;\n  width: 0;\n  height: 64rpx;\n  border-radius: 32rpx;\n  transform-origin: 32rpx 32rpx;\n  transform: rotate(-146deg);\n}\n.button__drow2::after {\n  bottom: 52rpx;\n  left: -80rpx;\n  width: 0;\n  height: 64rpx;\n  border-radius: 32rpx;\n  transform-origin: 32rpx 32rpx;\n  transform: rotate(-262deg);\n}\n.button__drow1,\n.button__drow1::before,\n.button__drow1::after,\n.button__drow2,\n.button__drow2::before,\n.button__drow2::after {\n  background: var(--back_color);\n}\n.button:hover .button__drow1 {\n  animation: drow1 ease-in 0.06s;\n  animation-fill-mode: forwards;\n}\n.button:hover .button__drow1::before {\n  animation: drow2 linear 0.08s 0.06s;\n  animation-fill-mode: forwards;\n}\n.button:hover .button__drow1::after {\n  animation: drow3 linear 0.03s 0.14s;\n  animation-fill-mode: forwards;\n}\n.button:hover .button__drow2 {\n  animation: drow4 linear 0.06s 0.2s;\n  animation-fill-mode: forwards;\n}\n.button:hover .button__drow2::before {\n  animation: drow3 linear 0.03s 0.26s;\n  animation-fill-mode: forwards;\n}\n.button:hover .button__drow2::after {\n  animation: drow5 linear 0.06s 0.32s;\n  animation-fill-mode: forwards;\n}\n@keyframes drow1 {\n  0% {\n    height: 0;\n  }\n  100% {\n    height: 200rpx;\n  }\n}\n@keyframes drow2 {\n  0% {\n    width: 0;\n    opacity: 0;\n  }\n  10% {\n    opacity: 0;\n  }\n  11% {\n    opacity: 1;\n  }\n  100% {\n    width: 240rpx;\n  }\n}\n@keyframes drow3 {\n  0% {\n    width: 0;\n  }\n  100% {\n    width: 160rpx;\n  }\n}\n@keyframes drow4 {\n  0% {\n    height: 0;\n  }\n  100% {\n    height: 240rpx;\n  }\n}\n@keyframes drow5 {\n  0% {\n    width: 0;\n  }\n  100% {\n    width: 248rpx;\n  }\n}\n\n.container {\n  width: 100%;\n  height: 600rpx;\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n}\n.button:not(:last-child) {\n  margin-bottom: 128rpx;\n}\n\n",
    "component_name": "GalaxyWiseShrimp26"
  },
  "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": [],
      "alternatives": []
    },
    "mp-alipay": {
      "supported": true,
      "issues": [],
      "alternatives": []
    },
    "app-plus": {
      "supported": true,
      "issues": [],
      "alternatives": []
    }
  },
  "performance": {
    "complexity": "high",
    "bundle_size": 4642,
    "render_cost": "high",
    "memory_usage": "high"
  },
  "dependencies": [],
  "examples": [
    {
      "title": "",
      "description": "",
      "code": ""
    }
  ],
  "created_at": "2025-07-31T07:55:36.929Z",
  "updated_at": "2025-07-31T07:55:36.929Z"
}