{
  "id": "mobinkakei_pink-deer-76",
  "name": "pink-deer-76",
  "category": "loaders",
  "author": "mobinkakei",
  "description": "pink-deer-76 组件 (loader, wifi, animation)",
  "tags": [
    "loader",
    "wifi",
    "animation"
  ],
  "original": {
    "html": "<div id=\"wifi-loader\">\n    <svg class=\"circle-outer\" viewBox=\"0 0 86 86\">\n        <circle class=\"back\" cx=\"43\" cy=\"43\" r=\"40\"></circle>\n        <circle class=\"front\" cx=\"43\" cy=\"43\" r=\"40\"></circle>\n        <circle class=\"new\" cx=\"43\" cy=\"43\" r=\"40\"></circle>\n    </svg>\n    <svg class=\"circle-middle\" viewBox=\"0 0 60 60\">\n        <circle class=\"back\" cx=\"30\" cy=\"30\" r=\"27\"></circle>\n        <circle class=\"front\" cx=\"30\" cy=\"30\" r=\"27\"></circle>\n    </svg>\n    <svg class=\"circle-inner\" viewBox=\"0 0 34 34\">\n        <circle class=\"back\" cx=\"17\" cy=\"17\" r=\"14\"></circle>\n        <circle class=\"front\" cx=\"17\" cy=\"17\" r=\"14\"></circle>\n    </svg>\n    <div class=\"text\" data-text=\"Searching\"></div>\n</div>",
    "css": "/* From Uiverse.io by mobinkakei - Tags: loader, wifi */\n#wifi-loader {\n  --background: #62abff;\n  --front-color: #4f29f0;\n  --back-color: #c3c8de;\n  --text-color: #414856;\n  width: 64px;\n  height: 64px;\n  border-radius: 50px;\n  position: relative;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}\n\n#wifi-loader svg {\n  position: absolute;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}\n\n#wifi-loader svg circle {\n  position: absolute;\n  fill: none;\n  stroke-width: 6px;\n  stroke-linecap: round;\n  stroke-linejoin: round;\n  transform: rotate(-100deg);\n  transform-origin: center;\n}\n\n#wifi-loader svg circle.back {\n  stroke: var(--back-color);\n}\n\n#wifi-loader svg circle.front {\n  stroke: var(--front-color);\n}\n\n#wifi-loader svg.circle-outer {\n  height: 86px;\n  width: 86px;\n}\n\n#wifi-loader svg.circle-outer circle {\n  stroke-dasharray: 62.75 188.25;\n}\n\n#wifi-loader svg.circle-outer circle.back {\n  animation: circle-outer135 1.8s ease infinite 0.3s;\n}\n\n#wifi-loader svg.circle-outer circle.front {\n  animation: circle-outer135 1.8s ease infinite 0.15s;\n}\n\n#wifi-loader svg.circle-middle {\n  height: 60px;\n  width: 60px;\n}\n\n#wifi-loader svg.circle-middle circle {\n  stroke-dasharray: 42.5 127.5;\n}\n\n#wifi-loader svg.circle-middle circle.back {\n  animation: circle-middle6123 1.8s ease infinite 0.25s;\n}\n\n#wifi-loader svg.circle-middle circle.front {\n  animation: circle-middle6123 1.8s ease infinite 0.1s;\n}\n\n#wifi-loader svg.circle-inner {\n  height: 34px;\n  width: 34px;\n}\n\n#wifi-loader svg.circle-inner circle {\n  stroke-dasharray: 22 66;\n}\n\n#wifi-loader svg.circle-inner circle.back {\n  animation: circle-inner162 1.8s ease infinite 0.2s;\n}\n\n#wifi-loader svg.circle-inner circle.front {\n  animation: circle-inner162 1.8s ease infinite 0.05s;\n}\n\n#wifi-loader .text {\n  position: absolute;\n  bottom: -40px;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  text-transform: lowercase;\n  font-weight: 500;\n  font-size: 14px;\n  letter-spacing: 0.2px;\n}\n\n#wifi-loader .text::before, #wifi-loader .text::after {\n  content: attr(data-text);\n}\n\n#wifi-loader .text::before {\n  color: var(--text-color);\n}\n\n#wifi-loader .text::after {\n  color: var(--front-color);\n  animation: text-animation76 3.6s ease infinite;\n  position: absolute;\n  left: 0;\n}\n\n@keyframes circle-outer135 {\n  0% {\n    stroke-dashoffset: 25;\n  }\n\n  25% {\n    stroke-dashoffset: 0;\n  }\n\n  65% {\n    stroke-dashoffset: 301;\n  }\n\n  80% {\n    stroke-dashoffset: 276;\n  }\n\n  100% {\n    stroke-dashoffset: 276;\n  }\n}\n\n@keyframes circle-middle6123 {\n  0% {\n    stroke-dashoffset: 17;\n  }\n\n  25% {\n    stroke-dashoffset: 0;\n  }\n\n  65% {\n    stroke-dashoffset: 204;\n  }\n\n  80% {\n    stroke-dashoffset: 187;\n  }\n\n  100% {\n    stroke-dashoffset: 187;\n  }\n}\n\n@keyframes circle-inner162 {\n  0% {\n    stroke-dashoffset: 9;\n  }\n\n  25% {\n    stroke-dashoffset: 0;\n  }\n\n  65% {\n    stroke-dashoffset: 106;\n  }\n\n  80% {\n    stroke-dashoffset: 97;\n  }\n\n  100% {\n    stroke-dashoffset: 97;\n  }\n}\n\n@keyframes text-animation76 {\n  0% {\n    clip-path: inset(0 100% 0 0);\n  }\n\n  50% {\n    clip-path: inset(0);\n  }\n\n  100% {\n    clip-path: inset(0 0 0 100%);\n  }\n}",
    "file_path": "/mnt/persist/workspace/loaders/mobinkakei_pink-deer-76.html"
  },
  "uniapp": {
    "template": "<view id=\"wifi-loader\"></view>\n    <view class=\"circle-outer\" viewBox=\"0 0 86 86\"></view>\n        <circle class=\"back\" cx=\"43\" cy=\"43\" r=\"40\"></circle>\n        <circle class=\"front\" cx=\"43\" cy=\"43\" r=\"40\"></circle>\n        <circle class=\"new\" cx=\"43\" cy=\"43\" r=\"40\"></circle>\n    </svg>\n    <view class=\"circle-middle\" viewBox=\"0 0 60 60\"></view>\n        <circle class=\"back\" cx=\"30\" cy=\"30\" r=\"27\"></circle>\n        <circle class=\"front\" cx=\"30\" cy=\"30\" r=\"27\"></circle>\n    </svg>\n    <view class=\"circle-inner\" viewBox=\"0 0 34 34\"></view>\n        <circle class=\"back\" cx=\"17\" cy=\"17\" r=\"14\"></circle>\n        <circle class=\"front\" cx=\"17\" cy=\"17\" r=\"14\"></circle>\n    </svg>\n    <view class=\"text\" data-text=\"Searching\"></view>\n</div>",
    "script": "export default {\n  name: 'GalaxyPinkDeer76',\n  props: {\n    // 根据组件类型动态生成props\n  },\n  data() {\n    return {\n      // 组件状态\n    };\n  },\n  methods: {\n    // 组件方法\n  }\n}",
    "style": "\n/* From Uiverse.io by mobinkakei - Tags: loader, wifi */\n#wifi-loader {\n  --background: #62abff;\n  --front-color: #4f29f0;\n  --back-color: #c3c8de;\n  --text-color: #414856;\n  width: 128rpx;\n  height: 128rpx;\n  border-radius: 100rpx;\n  position: relative;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}\n\n#wifi-loader svg {\n  position: absolute;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}\n\n#wifi-loader svg circle {\n  position: absolute;\n  fill: none;\n  stroke-width: 12rpx;\n  stroke-linecap: round;\n  stroke-linejoin: round;\n  transform: rotate(-100deg);\n  transform-origin: center;\n}\n\n#wifi-loader svg circle.back {\n  stroke: var(--back-color);\n}\n\n#wifi-loader svg circle.front {\n  stroke: var(--front-color);\n}\n\n#wifi-loader svg.circle-outer {\n  height: 172rpx;\n  width: 172rpx;\n}\n\n#wifi-loader svg.circle-outer circle {\n  stroke-dasharray: 62.75 188.25;\n}\n\n#wifi-loader svg.circle-outer circle.back {\n  animation: circle-outer135 1.8s ease infinite 0.3s;\n}\n\n#wifi-loader svg.circle-outer circle.front {\n  animation: circle-outer135 1.8s ease infinite 0.15s;\n}\n\n#wifi-loader svg.circle-middle {\n  height: 120rpx;\n  width: 120rpx;\n}\n\n#wifi-loader svg.circle-middle circle {\n  stroke-dasharray: 42.5 127.5;\n}\n\n#wifi-loader svg.circle-middle circle.back {\n  animation: circle-middle6123 1.8s ease infinite 0.25s;\n}\n\n#wifi-loader svg.circle-middle circle.front {\n  animation: circle-middle6123 1.8s ease infinite 0.1s;\n}\n\n#wifi-loader svg.circle-inner {\n  height: 68rpx;\n  width: 68rpx;\n}\n\n#wifi-loader svg.circle-inner circle {\n  stroke-dasharray: 22 66;\n}\n\n#wifi-loader svg.circle-inner circle.back {\n  animation: circle-inner162 1.8s ease infinite 0.2s;\n}\n\n#wifi-loader svg.circle-inner circle.front {\n  animation: circle-inner162 1.8s ease infinite 0.05s;\n}\n\n#wifi-loader .text {\n  position: absolute;\n  bottom: -80rpx;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  text-transform: lowercase;\n  font-weight: 500;\n  font-size: 28rpx;\n  letter-spacing: 0.4rpx;\n}\n\n#wifi-loader .text::before, #wifi-loader .text::after {\n  content: attr(data-text);\n}\n\n#wifi-loader .text::before {\n  color: var(--text-color);\n}\n\n#wifi-loader .text::after {\n  color: var(--front-color);\n  animation: text-animation76 3.6s ease infinite;\n  position: absolute;\n  left: 0;\n}\n\n@keyframes circle-outer135 {\n  0% {\n    stroke-dashoffset: 25;\n  }\n\n  25% {\n    stroke-dashoffset: 0;\n  }\n\n  65% {\n    stroke-dashoffset: 301;\n  }\n\n  80% {\n    stroke-dashoffset: 276;\n  }\n\n  100% {\n    stroke-dashoffset: 276;\n  }\n}\n\n@keyframes circle-middle6123 {\n  0% {\n    stroke-dashoffset: 17;\n  }\n\n  25% {\n    stroke-dashoffset: 0;\n  }\n\n  65% {\n    stroke-dashoffset: 204;\n  }\n\n  80% {\n    stroke-dashoffset: 187;\n  }\n\n  100% {\n    stroke-dashoffset: 187;\n  }\n}\n\n@keyframes circle-inner162 {\n  0% {\n    stroke-dashoffset: 9;\n  }\n\n  25% {\n    stroke-dashoffset: 0;\n  }\n\n  65% {\n    stroke-dashoffset: 106;\n  }\n\n  80% {\n    stroke-dashoffset: 97;\n  }\n\n  100% {\n    stroke-dashoffset: 97;\n  }\n}\n\n@keyframes text-animation76 {\n  0% {\n    \n  }\n\n  50% {\n    \n  }\n\n  100% {\n    \n  }\n}\n \n",
    "component_name": "GalaxyPinkDeer76"
  },
  "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": "是否禁用"
    }
  ],
  "events": [],
  "slots": [
    {
      "name": "",
      "description": "",
      "props": []
    }
  ],
  "compatibility": {
    "h5": {
      "supported": true,
      "issues": [],
      "alternatives": []
    },
    "mp-weixin": {
      "supported": true,
      "issues": [
        "不支持 clip-path 属性"
      ],
      "alternatives": []
    },
    "mp-alipay": {
      "supported": true,
      "issues": [
        "不支持 clip-path 属性"
      ],
      "alternatives": []
    },
    "app-plus": {
      "supported": true,
      "issues": [],
      "alternatives": []
    }
  },
  "performance": {
    "complexity": "high",
    "bundle_size": 3872,
    "render_cost": "high",
    "memory_usage": "high"
  },
  "dependencies": [],
  "examples": [
    {
      "title": "",
      "description": "",
      "code": ""
    }
  ],
  "created_at": "2025-07-31T07:55:42.360Z",
  "updated_at": "2025-07-31T07:55:42.360Z"
}