{
  "id": "Admin12121_white-husky-41",
  "name": "white-husky-41",
  "category": "loaders",
  "author": "Admin12121",
  "description": "white-husky-41 组件 (loader, 3d loader, animation)",
  "tags": [
    "loader",
    "3d loader",
    "animation"
  ],
  "original": {
    "html": "<div class=\"content\">\n   <div class=\"planet\">\n      <div class=\"ring\"></div>\n         <div class=\"cover-ring\"></div>\n      <div class=\"spots\">\n         <span></span>\n         <span></span>\n         <span></span>\n         <span></span>\n         <span></span>\n         <span></span>\n         <span></span>\n\n      </div>\n   </div>\n   <p>loading</p>\n</div>",
    "css": "/* From Uiverse.io by Admin12121 - Tags: loader, 3d loader */\n.content {\n  width: 300px;\n  height: 300px;\n  position: relative;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}\n\n.content .planet {\n  width: 65%;\n  height: 65%;\n  background-color: #546c8c;\n  border-radius: 100%;\n  position: absolute;\n  display: flex;\n  align-items: center;\n  transform-origin: center center;\n  box-shadow: inset 2px -10px 0px rgba(0, 0, 0, 0.1);\n  animation: planet 5s ease infinite alternate;\n  /* planet ring */\n  /* to cover the back of the ring */\n  /* planet spots */\n}\n\n@keyframes planet {\n  0% {\n    transform: rotate(10deg);\n  }\n\n  100% {\n    transform: rotate(-10deg);\n  }\n}\n\n.content .planet .ring {\n  position: absolute;\n  width: 300px;\n  height: 300px;\n  border-radius: 100%;\n  background-color: #bacbd9;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  transform-origin: 33% center;\n  box-shadow: 2px -10px 0px rgba(0, 0, 0, 0.1), inset -5px -10px 0px rgba(0, 0, 0, 0.1);\n  animation: ring 3s ease infinite;\n  /* small ball */\n  /* inner ring */\n}\n\n@keyframes ring {\n  0% {\n    transform: rotateX(110deg) rotateZ(0deg) translate(-50px, 5px);\n  }\n\n  100% {\n    transform: rotateX(110deg) rotateZ(360deg) translate(-50px, 5px);\n  }\n}\n\n.content .planet .ring:before {\n  content: \"\";\n  position: absolute;\n  width: 10px;\n  height: 30px;\n  border-radius: 100%;\n  background-color: #7ea1bf;\n  z-index: 2;\n  left: calc(0px - 5px);\n  box-shadow: inset -3px 3px 0px rgba(0, 0, 0, 0.2);\n}\n\n.content .planet .ring:after {\n  content: \"\";\n  position: absolute;\n  width: 240px;\n  height: 240px;\n  border-radius: 100%;\n  background-color: #7ea1bf;\n  box-shadow: inset 2px -10px 0px rgba(0, 0, 0, 0.1);\n}\n\n.content .planet .cover-ring {\n  position: absolute;\n  width: 100%;\n  height: 50%;\n  border-bottom-left-radius: 80%;\n  border-bottom-right-radius: 80%;\n  border-top-left-radius: 100px;\n  border-top-right-radius: 100px;\n  transform: translate(0px, -17px);\n  background-color: #546c8c;\n  z-index: 2;\n  box-shadow: inset 0px -2px 0px rgba(0, 0, 0, 0.1);\n}\n\n.content .planet .spots {\n  width: 100%;\n  height: 100%;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  position: absolute;\n  z-index: 2;\n}\n\n.content .planet .spots span {\n  width: 30px;\n  height: 30px;\n  background-color: #3c4359;\n  position: absolute;\n  border-radius: 100%;\n  box-shadow: inset -2px 3px 0px rgba(0, 0, 0, 0.3);\n  animation: dots 5s ease infinite alternate;\n}\n\n@keyframes dots {\n  0% {\n    box-shadow: inset -3px 3px 0px rgba(0, 0, 0, 0.3);\n  }\n\n  100% {\n    box-shadow: inset 3px 3px 0px rgba(0, 0, 0, 0.3);\n  }\n}\n\n.content .planet .spots span:nth-child(1) {\n  top: 20px;\n  right: 50px;\n}\n\n.content .planet .spots span:nth-child(2) {\n  top: 40px;\n  left: 50px;\n  width: 15px;\n  height: 15px;\n}\n\n.content .planet .spots span:nth-child(3) {\n  top: 80px;\n  left: 20px;\n  width: 25px;\n  height: 25px;\n}\n\n.content .planet .spots span:nth-child(4) {\n  top: 80px;\n  left: 90px;\n  width: 40px;\n  height: 40px;\n}\n\n.content .planet .spots span:nth-child(5) {\n  top: 160px;\n  left: 70px;\n  width: 15px;\n  height: 15px;\n}\n\n.content .planet .spots span:nth-child(6) {\n  top: 165px;\n  left: 125px;\n  width: 10px;\n  height: 10px;\n}\n\n.content .planet .spots span:nth-child(7) {\n  top: 90px;\n  left: 150px;\n  width: 15px;\n  height: 15px;\n}\n\n.content p {\n  color: #bacbd9;\n  font-size: 14px;\n  z-index: 2;\n  position: absolute;\n  bottom: -20px;\n  font-family: \"Roboto Mono\", monospace;\n  animation: text 4s ease infinite;\n  width: 100px;\n  text-align: center;\n}\n\n@keyframes text {\n  0% {\n    transform: translateX(-30px);\n    letter-spacing: 0px;\n    color: #bacbd9;\n  }\n\n  25% {\n    letter-spacing: 3px;\n    color: #7ea1bf;\n  }\n\n  50% {\n    transform: translateX(30px);\n    letter-spacing: 0px;\n    color: #bacbd9;\n  }\n\n  75% {\n    letter-spacing: 3px;\n    color: #7ea1bf;\n  }\n\n  100% {\n    transform: translateX(-30px);\n    letter-spacing: 0px;\n    color: #bacbd9;\n  }\n}",
    "file_path": "/mnt/persist/workspace/loaders/Admin12121_white-husky-41.html"
  },
  "uniapp": {
    "template": "<view class=\"content\"></view>\n   <view class=\"planet\"></view>\n      <view class=\"ring\"></view>\n         <view class=\"cover-ring\"></view>\n      <view class=\"spots\"></view>\n         <text></text>\n         <text></text>\n         <text></text>\n         <text></text>\n         <text></text>\n         <text></text>\n         <text></text>\n\n      </div>\n   </div>\n   <text>loading</text>\n</div>",
    "script": "export default {\n  name: 'GalaxyWhiteHusky41',\n  props: {\n    // 根据组件类型动态生成props\n  },\n  data() {\n    return {\n      // 组件状态\n    };\n  },\n  methods: {\n    // 组件方法\n  }\n}",
    "style": "\n/* From Uiverse.io by Admin12121 - Tags: loader, 3d loader */\n.content {\n  width: 600rpx;\n  height: 600rpx;\n  position: relative;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}\n\n.content .planet {\n  width: 65%;\n  height: 65%;\n  background-color: #546c8c;\n  border-radius: 100%;\n  position: absolute;\n  display: flex;\n  align-items: center;\n  transform-origin: center center;\n  /* #ifdef H5 */\n  /* #ifdef H5 */\n  box-shadow: inset 4rpx -20rpx 0rpx rgba(0, 0, 0, 0.1);\n  /* #endif */\n  /* #ifdef MP */\n  border: 1rpx solid rgba(0,0,0,0.1);\n  /* #endif */\n  /* #endif */\n  animation: planet 5s ease infinite alternate;\n  /* planet ring */\n  /* to cover the back of the ring */\n  /* planet spots */\n}\n\n@keyframes planet {\n  0% {\n    transform: rotate(10deg);\n  }\n\n  100% {\n    transform: rotate(-10deg);\n  }\n}\n\n.content .planet .ring {\n  position: absolute;\n  width: 600rpx;\n  height: 600rpx;\n  border-radius: 100%;\n  background-color: #bacbd9;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  transform-origin: 33% center;\n  /* #ifdef H5 */\n  /* #ifdef H5 */\n  box-shadow: 4rpx -20rpx 0rpx rgba(0, 0, 0, 0.1), inset -10rpx -20rpx 0rpx rgba(0, 0, 0, 0.1);\n  /* #endif */\n  /* #ifdef MP */\n  border: 1rpx solid rgba(0,0,0,0.1);\n  /* #endif */\n  /* #endif */\n  animation: ring 3s ease infinite;\n  /* small ball */\n  /* inner ring */\n}\n\n@keyframes ring {\n  0% {\n    transform: rotateX(110deg) rotateZ(0deg) translate(-100rpx, 10rpx);\n  }\n\n  100% {\n    transform: rotateX(110deg) rotateZ(360deg) translate(-100rpx, 10rpx);\n  }\n}\n\n.content .planet .ring:before {\n  content: \"\";\n  position: absolute;\n  width: 20rpx;\n  height: 60rpx;\n  border-radius: 100%;\n  background-color: #7ea1bf;\n  z-index: 2;\n  left: calc(0rpx - 10rpx);\n  /* #ifdef H5 */\n  /* #ifdef H5 */\n  box-shadow: inset -6rpx 6rpx 0rpx 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}\n\n.content .planet .ring:after {\n  content: \"\";\n  position: absolute;\n  width: 480rpx;\n  height: 480rpx;\n  border-radius: 100%;\n  background-color: #7ea1bf;\n  /* #ifdef H5 */\n  /* #ifdef H5 */\n  box-shadow: inset 4rpx -20rpx 0rpx rgba(0, 0, 0, 0.1);\n  /* #endif */\n  /* #ifdef MP */\n  border: 1rpx solid rgba(0,0,0,0.1);\n  /* #endif */\n  /* #endif */\n}\n\n.content .planet .cover-ring {\n  position: absolute;\n  width: 100%;\n  height: 50%;\n  border-bottom-left-radius: 80%;\n  border-bottom-right-radius: 80%;\n  border-top-left-radius: 200rpx;\n  border-top-right-radius: 200rpx;\n  transform: translate(0rpx, -34rpx);\n  background-color: #546c8c;\n  z-index: 2;\n  /* #ifdef H5 */\n  /* #ifdef H5 */\n  box-shadow: inset 0rpx -4rpx 0rpx rgba(0, 0, 0, 0.1);\n  /* #endif */\n  /* #ifdef MP */\n  border: 1rpx solid rgba(0,0,0,0.1);\n  /* #endif */\n  /* #endif */\n}\n\n.content .planet .spots {\n  width: 100%;\n  height: 100%;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  position: absolute;\n  z-index: 2;\n}\n\n.content .planet .spots span {\n  width: 60rpx;\n  height: 60rpx;\n  background-color: #3c4359;\n  position: absolute;\n  border-radius: 100%;\n  /* #ifdef H5 */\n  /* #ifdef H5 */\n  box-shadow: inset -4rpx 6rpx 0rpx rgba(0, 0, 0, 0.3);\n  /* #endif */\n  /* #ifdef MP */\n  border: 1rpx solid rgba(0,0,0,0.1);\n  /* #endif */\n  /* #endif */\n  animation: dots 5s ease infinite alternate;\n}\n\n@keyframes dots {\n  0% {\n    /* #ifdef H5 */\n  /* #ifdef H5 */\n  box-shadow: inset -6rpx 6rpx 0rpx rgba(0, 0, 0, 0.3);\n  /* #endif */\n  /* #ifdef MP */\n  border: 1rpx solid rgba(0,0,0,0.1);\n  /* #endif */\n  /* #endif */\n  }\n\n  100% {\n    /* #ifdef H5 */\n  /* #ifdef H5 */\n  box-shadow: inset 6rpx 6rpx 0rpx rgba(0, 0, 0, 0.3);\n  /* #endif */\n  /* #ifdef MP */\n  border: 1rpx solid rgba(0,0,0,0.1);\n  /* #endif */\n  /* #endif */\n  }\n}\n\n.content .planet .spots span:nth-child(1) {\n  top: 40rpx;\n  right: 100rpx;\n}\n\n.content .planet .spots span:nth-child(2) {\n  top: 80rpx;\n  left: 100rpx;\n  width: 30rpx;\n  height: 30rpx;\n}\n\n.content .planet .spots span:nth-child(3) {\n  top: 160rpx;\n  left: 40rpx;\n  width: 50rpx;\n  height: 50rpx;\n}\n\n.content .planet .spots span:nth-child(4) {\n  top: 160rpx;\n  left: 180rpx;\n  width: 80rpx;\n  height: 80rpx;\n}\n\n.content .planet .spots span:nth-child(5) {\n  top: 320rpx;\n  left: 140rpx;\n  width: 30rpx;\n  height: 30rpx;\n}\n\n.content .planet .spots span:nth-child(6) {\n  top: 330rpx;\n  left: 250rpx;\n  width: 20rpx;\n  height: 20rpx;\n}\n\n.content .planet .spots span:nth-child(7) {\n  top: 180rpx;\n  left: 300rpx;\n  width: 30rpx;\n  height: 30rpx;\n}\n\n.content p {\n  color: #bacbd9;\n  font-size: 28rpx;\n  z-index: 2;\n  position: absolute;\n  bottom: -40rpx;\n  font-family: \"Roboto Mono\", monospace;\n  animation: text 4s ease infinite;\n  width: 200rpx;\n  text-align: center;\n}\n\n@keyframes text {\n  0% {\n    transform: translateX(-60rpx);\n    letter-spacing: 0rpx;\n    color: #bacbd9;\n  }\n\n  25% {\n    letter-spacing: 6rpx;\n    color: #7ea1bf;\n  }\n\n  50% {\n    transform: translateX(60rpx);\n    letter-spacing: 0rpx;\n    color: #bacbd9;\n  }\n\n  75% {\n    letter-spacing: 6rpx;\n    color: #7ea1bf;\n  }\n\n  100% {\n    transform: translateX(-60rpx);\n    letter-spacing: 0rpx;\n    color: #bacbd9;\n  }\n}\n",
    "component_name": "GalaxyWhiteHusky41"
  },
  "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": [
        "不支持 box-shadow 属性"
      ],
      "alternatives": []
    },
    "mp-alipay": {
      "supported": true,
      "issues": [
        "不支持 box-shadow 属性"
      ],
      "alternatives": []
    },
    "app-plus": {
      "supported": true,
      "issues": [],
      "alternatives": []
    }
  },
  "performance": {
    "complexity": "high",
    "bundle_size": 4331,
    "render_cost": "high",
    "memory_usage": "high"
  },
  "dependencies": [],
  "examples": [
    {
      "title": "",
      "description": "",
      "code": ""
    }
  ],
  "created_at": "2025-07-31T07:55:38.870Z",
  "updated_at": "2025-07-31T07:55:38.870Z"
}