{
  "id": "harman-kanda_purple-falcon-85",
  "name": "purple-falcon-85",
  "category": "loaders",
  "author": "harman-kanda",
  "description": "purple-falcon-85 组件 (loader, animation)",
  "tags": [
    "loader",
    "animation"
  ],
  "original": {
    "html": "<svg class=\"pl\" width=\"128px\" height=\"128px\" viewBox=\"0 0 128 128\" xmlns=\"http://www.w3.org/2000/svg\">\n  <circle class=\"pl__ring1\" cx=\"64\" cy=\"64\" r=\"60\" fill=\"none\" stroke=\"hsl(3,90%,55%)\" stroke-width=\"8\" transform=\"rotate(-90,64,64)\" stroke-linecap=\"round\" stroke-dasharray=\"377 377\" stroke-dashoffset=\"-376.4\"></circle>\n  <circle class=\"pl__ring2\" cx=\"64\" cy=\"64\" r=\"52.5\" fill=\"none\" stroke=\"hsl(13,90%,55%)\" stroke-width=\"7\" transform=\"rotate(-90,64,64)\" stroke-linecap=\"round\" stroke-dasharray=\"329.9 329.9\" stroke-dashoffset=\"-329.3\"></circle>\n  <circle class=\"pl__ring3\" cx=\"64\" cy=\"64\" r=\"46\" fill=\"none\" stroke=\"hsl(23,90%,55%)\" stroke-width=\"6\" transform=\"rotate(-90,64,64)\" stroke-linecap=\"round\" stroke-dasharray=\"289 289\" stroke-dashoffset=\"-288.6\"></circle>\n  <circle class=\"pl__ring4\" cx=\"64\" cy=\"64\" r=\"40.5\" fill=\"none\" stroke=\"hsl(33,90%,55%)\" stroke-width=\"5\" transform=\"rotate(-90,64,64)\" stroke-linecap=\"round\" stroke-dasharray=\"254.5 254.5\" stroke-dashoffset=\"-254\"></circle>\n  <circle class=\"pl__ring5\" cx=\"64\" cy=\"64\" r=\"36\" fill=\"none\" stroke=\"hsl(43,90%,55%)\" stroke-width=\"4\" transform=\"rotate(-90,64,64)\" stroke-linecap=\"round\" stroke-dasharray=\"226.2 226.2\" stroke-dashoffset=\"-225.8\"></circle>\n  <circle class=\"pl__ring6\" cx=\"64\" cy=\"64\" r=\"32.5\" fill=\"none\" stroke=\"hsl(53,90%,55%)\" stroke-width=\"3\" transform=\"rotate(-90,64,64)\" stroke-linecap=\"round\" stroke-dasharray=\"204.2 204.2\" stroke-dashoffset=\"-203.9\"></circle>\n</svg>",
    "css": "/* From Uiverse.io by harman-kanda - Tags: loader */\n/* From cssbuttons.io by @harmankanda.github.io/New */\n\n.pl {\n width: 5em;\n height: 5em;\n}\n\n.pl circle {\n transform-box: fill-box;\n transform-origin: 50% 50%;\n}\n\n.pl__ring1 {\n animation: ring1 4s 0s ease-in-out infinite;\n}\n\n.pl__ring2 {\n animation: ring2 4s 0.04s ease-in-out infinite;\n}\n\n.pl__ring3 {\n animation: ring3 4s 0.08s ease-in-out infinite;\n}\n\n.pl__ring4 {\n animation: ring4 4s 0.12s ease-in-out infinite;\n}\n\n.pl__ring5 {\n animation: ring5 4s 0.16s ease-in-out infinite;\n}\n\n.pl__ring6 {\n animation: ring6 4s 0.2s ease-in-out infinite;\n}\n\n/* Animations */\n@keyframes ring1 {\n from {\n  stroke-dashoffset: -376.237129776;\n  transform: rotate(-0.25turn);\n  animation-timing-function: ease-in;\n }\n\n 23% {\n  stroke-dashoffset: -94.247778;\n  transform: rotate(1turn);\n  animation-timing-function: ease-out;\n }\n\n 46%, 50% {\n  stroke-dashoffset: -376.237129776;\n  transform: rotate(2.25turn);\n  animation-timing-function: ease-in;\n }\n\n 73% {\n  stroke-dashoffset: -94.247778;\n  transform: rotate(3.5turn);\n  animation-timing-function: ease-out;\n }\n\n 96%, to {\n  stroke-dashoffset: -376.237129776;\n  transform: rotate(4.75turn);\n }\n}\n\n@keyframes ring2 {\n from {\n  stroke-dashoffset: -329.207488554;\n  transform: rotate(-0.25turn);\n  animation-timing-function: ease-in;\n }\n\n 23% {\n  stroke-dashoffset: -82.46680575;\n  transform: rotate(1turn);\n  animation-timing-function: ease-out;\n }\n\n 46%, 50% {\n  stroke-dashoffset: -329.207488554;\n  transform: rotate(2.25turn);\n  animation-timing-function: ease-in;\n }\n\n 73% {\n  stroke-dashoffset: -82.46680575;\n  transform: rotate(3.5turn);\n  animation-timing-function: ease-out;\n }\n\n 96%, to {\n  stroke-dashoffset: -329.207488554;\n  transform: rotate(4.75turn);\n }\n}\n\n@keyframes ring3 {\n from {\n  stroke-dashoffset: -288.4484661616;\n  transform: rotate(-0.25turn);\n  animation-timing-function: ease-in;\n }\n\n 23% {\n  stroke-dashoffset: -72.2566298;\n  transform: rotate(1turn);\n  animation-timing-function: ease-out;\n }\n\n 46%, 50% {\n  stroke-dashoffset: -288.4484661616;\n  transform: rotate(2.25turn);\n  animation-timing-function: ease-in;\n }\n\n 73% {\n  stroke-dashoffset: -72.2566298;\n  transform: rotate(3.5turn);\n  animation-timing-function: ease-out;\n }\n\n 96%, to {\n  stroke-dashoffset: -288.4484661616;\n  transform: rotate(4.75turn);\n }\n}\n\n@keyframes ring4 {\n from {\n  stroke-dashoffset: -253.9600625988;\n  transform: rotate(-0.25turn);\n  animation-timing-function: ease-in;\n }\n\n 23% {\n  stroke-dashoffset: -63.61725015;\n  transform: rotate(1turn);\n  animation-timing-function: ease-out;\n }\n\n 46%, 50% {\n  stroke-dashoffset: -253.9600625988;\n  transform: rotate(2.25turn);\n  animation-timing-function: ease-in;\n }\n\n 73% {\n  stroke-dashoffset: -63.61725015;\n  transform: rotate(3.5turn);\n  animation-timing-function: ease-out;\n }\n\n 96%, to {\n  stroke-dashoffset: -253.9600625988;\n  transform: rotate(4.75turn);\n }\n}\n\n@keyframes ring5 {\n from {\n  stroke-dashoffset: -225.7422778656;\n  transform: rotate(-0.25turn);\n  animation-timing-function: ease-in;\n }\n\n 23% {\n  stroke-dashoffset: -56.5486668;\n  transform: rotate(1turn);\n  animation-timing-function: ease-out;\n }\n\n 46%, 50% {\n  stroke-dashoffset: -225.7422778656;\n  transform: rotate(2.25turn);\n  animation-timing-function: ease-in;\n }\n\n 73% {\n  stroke-dashoffset: -56.5486668;\n  transform: rotate(3.5turn);\n  animation-timing-function: ease-out;\n }\n\n 96%, to {\n  stroke-dashoffset: -225.7422778656;\n  transform: rotate(4.75turn);\n }\n}\n\n@keyframes ring6 {\n from {\n  stroke-dashoffset: -203.795111962;\n  transform: rotate(-0.25turn);\n  animation-timing-function: ease-in;\n }\n\n 23% {\n  stroke-dashoffset: -51.05087975;\n  transform: rotate(1turn);\n  animation-timing-function: ease-out;\n }\n\n 46%, 50% {\n  stroke-dashoffset: -203.795111962;\n  transform: rotate(2.25turn);\n  animation-timing-function: ease-in;\n }\n\n 73% {\n  stroke-dashoffset: -51.05087975;\n  transform: rotate(3.5turn);\n  animation-timing-function: ease-out;\n }\n\n 96%, to {\n  stroke-dashoffset: -203.795111962;\n  transform: rotate(4.75turn);\n }\n}",
    "file_path": "/mnt/persist/workspace/loaders/harman-kanda_purple-falcon-85.html"
  },
  "uniapp": {
    "template": "<view class=\"pl\" width=\"128px\" height=\"128px\" viewBox=\"0 0 128 128\" xmlns=\"http://www.w3.org/2000/svg\"></view>\n  <circle class=\"pl__ring1\" cx=\"64\" cy=\"64\" r=\"60\" fill=\"none\" stroke=\"hsl(3,90%,55%)\" stroke-width=\"8\" transform=\"rotate(-90,64,64)\" stroke-linecap=\"round\" stroke-dasharray=\"377 377\" stroke-dashoffset=\"-376.4\"></circle>\n  <circle class=\"pl__ring2\" cx=\"64\" cy=\"64\" r=\"52.5\" fill=\"none\" stroke=\"hsl(13,90%,55%)\" stroke-width=\"7\" transform=\"rotate(-90,64,64)\" stroke-linecap=\"round\" stroke-dasharray=\"329.9 329.9\" stroke-dashoffset=\"-329.3\"></circle>\n  <circle class=\"pl__ring3\" cx=\"64\" cy=\"64\" r=\"46\" fill=\"none\" stroke=\"hsl(23,90%,55%)\" stroke-width=\"6\" transform=\"rotate(-90,64,64)\" stroke-linecap=\"round\" stroke-dasharray=\"289 289\" stroke-dashoffset=\"-288.6\"></circle>\n  <circle class=\"pl__ring4\" cx=\"64\" cy=\"64\" r=\"40.5\" fill=\"none\" stroke=\"hsl(33,90%,55%)\" stroke-width=\"5\" transform=\"rotate(-90,64,64)\" stroke-linecap=\"round\" stroke-dasharray=\"254.5 254.5\" stroke-dashoffset=\"-254\"></circle>\n  <circle class=\"pl__ring5\" cx=\"64\" cy=\"64\" r=\"36\" fill=\"none\" stroke=\"hsl(43,90%,55%)\" stroke-width=\"4\" transform=\"rotate(-90,64,64)\" stroke-linecap=\"round\" stroke-dasharray=\"226.2 226.2\" stroke-dashoffset=\"-225.8\"></circle>\n  <circle class=\"pl__ring6\" cx=\"64\" cy=\"64\" r=\"32.5\" fill=\"none\" stroke=\"hsl(53,90%,55%)\" stroke-width=\"3\" transform=\"rotate(-90,64,64)\" stroke-linecap=\"round\" stroke-dasharray=\"204.2 204.2\" stroke-dashoffset=\"-203.9\"></circle>\n</svg>",
    "script": "export default {\n  name: 'GalaxyPurpleFalcon85',\n  props: {\n    // 根据组件类型动态生成props\n  },\n  data() {\n    return {\n      // 组件状态\n    };\n  },\n  methods: {\n    // 组件方法\n  }\n}",
    "style": "\n/* From Uiverse.io by harman-kanda - Tags: loader */\n/* From cssbuttons.io by @harmankanda.github.io/New */\n\n.pl {\n width: 5em;\n height: 5em;\n}\n\n.pl circle {\n transform-box: fill-box;\n transform-origin: 50% 50%;\n}\n\n.pl__ring1 {\n animation: ring1 4s 0s ease-in-out infinite;\n}\n\n.pl__ring2 {\n animation: ring2 4s 0.04s ease-in-out infinite;\n}\n\n.pl__ring3 {\n animation: ring3 4s 0.08s ease-in-out infinite;\n}\n\n.pl__ring4 {\n animation: ring4 4s 0.12s ease-in-out infinite;\n}\n\n.pl__ring5 {\n animation: ring5 4s 0.16s ease-in-out infinite;\n}\n\n.pl__ring6 {\n animation: ring6 4s 0.2s ease-in-out infinite;\n}\n\n/* Animations */\n@keyframes ring1 {\n from {\n  stroke-dashoffset: -376.237129776;\n  transform: rotate(-0.25turn);\n  animation-timing-function: ease-in;\n }\n\n 23% {\n  stroke-dashoffset: -94.247778;\n  transform: rotate(1turn);\n  animation-timing-function: ease-out;\n }\n\n 46%, 50% {\n  stroke-dashoffset: -376.237129776;\n  transform: rotate(2.25turn);\n  animation-timing-function: ease-in;\n }\n\n 73% {\n  stroke-dashoffset: -94.247778;\n  transform: rotate(3.5turn);\n  animation-timing-function: ease-out;\n }\n\n 96%, to {\n  stroke-dashoffset: -376.237129776;\n  transform: rotate(4.75turn);\n }\n}\n\n@keyframes ring2 {\n from {\n  stroke-dashoffset: -329.207488554;\n  transform: rotate(-0.25turn);\n  animation-timing-function: ease-in;\n }\n\n 23% {\n  stroke-dashoffset: -82.46680575;\n  transform: rotate(1turn);\n  animation-timing-function: ease-out;\n }\n\n 46%, 50% {\n  stroke-dashoffset: -329.207488554;\n  transform: rotate(2.25turn);\n  animation-timing-function: ease-in;\n }\n\n 73% {\n  stroke-dashoffset: -82.46680575;\n  transform: rotate(3.5turn);\n  animation-timing-function: ease-out;\n }\n\n 96%, to {\n  stroke-dashoffset: -329.207488554;\n  transform: rotate(4.75turn);\n }\n}\n\n@keyframes ring3 {\n from {\n  stroke-dashoffset: -288.4484661616;\n  transform: rotate(-0.25turn);\n  animation-timing-function: ease-in;\n }\n\n 23% {\n  stroke-dashoffset: -72.2566298;\n  transform: rotate(1turn);\n  animation-timing-function: ease-out;\n }\n\n 46%, 50% {\n  stroke-dashoffset: -288.4484661616;\n  transform: rotate(2.25turn);\n  animation-timing-function: ease-in;\n }\n\n 73% {\n  stroke-dashoffset: -72.2566298;\n  transform: rotate(3.5turn);\n  animation-timing-function: ease-out;\n }\n\n 96%, to {\n  stroke-dashoffset: -288.4484661616;\n  transform: rotate(4.75turn);\n }\n}\n\n@keyframes ring4 {\n from {\n  stroke-dashoffset: -253.9600625988;\n  transform: rotate(-0.25turn);\n  animation-timing-function: ease-in;\n }\n\n 23% {\n  stroke-dashoffset: -63.61725015;\n  transform: rotate(1turn);\n  animation-timing-function: ease-out;\n }\n\n 46%, 50% {\n  stroke-dashoffset: -253.9600625988;\n  transform: rotate(2.25turn);\n  animation-timing-function: ease-in;\n }\n\n 73% {\n  stroke-dashoffset: -63.61725015;\n  transform: rotate(3.5turn);\n  animation-timing-function: ease-out;\n }\n\n 96%, to {\n  stroke-dashoffset: -253.9600625988;\n  transform: rotate(4.75turn);\n }\n}\n\n@keyframes ring5 {\n from {\n  stroke-dashoffset: -225.7422778656;\n  transform: rotate(-0.25turn);\n  animation-timing-function: ease-in;\n }\n\n 23% {\n  stroke-dashoffset: -56.5486668;\n  transform: rotate(1turn);\n  animation-timing-function: ease-out;\n }\n\n 46%, 50% {\n  stroke-dashoffset: -225.7422778656;\n  transform: rotate(2.25turn);\n  animation-timing-function: ease-in;\n }\n\n 73% {\n  stroke-dashoffset: -56.5486668;\n  transform: rotate(3.5turn);\n  animation-timing-function: ease-out;\n }\n\n 96%, to {\n  stroke-dashoffset: -225.7422778656;\n  transform: rotate(4.75turn);\n }\n}\n\n@keyframes ring6 {\n from {\n  stroke-dashoffset: -203.795111962;\n  transform: rotate(-0.25turn);\n  animation-timing-function: ease-in;\n }\n\n 23% {\n  stroke-dashoffset: -51.05087975;\n  transform: rotate(1turn);\n  animation-timing-function: ease-out;\n }\n\n 46%, 50% {\n  stroke-dashoffset: -203.795111962;\n  transform: rotate(2.25turn);\n  animation-timing-function: ease-in;\n }\n\n 73% {\n  stroke-dashoffset: -51.05087975;\n  transform: rotate(3.5turn);\n  animation-timing-function: ease-out;\n }\n\n 96%, to {\n  stroke-dashoffset: -203.795111962;\n  transform: rotate(4.75turn);\n }\n}\n",
    "component_name": "GalaxyPurpleFalcon85"
  },
  "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": [],
      "alternatives": []
    },
    "mp-alipay": {
      "supported": true,
      "issues": [],
      "alternatives": []
    },
    "app-plus": {
      "supported": true,
      "issues": [],
      "alternatives": []
    }
  },
  "performance": {
    "complexity": "high",
    "bundle_size": 5519,
    "render_cost": "high",
    "memory_usage": "high"
  },
  "dependencies": [],
  "examples": [
    {
      "title": "",
      "description": "",
      "code": ""
    }
  ],
  "created_at": "2025-07-31T07:55:42.193Z",
  "updated_at": "2025-07-31T07:55:42.193Z"
}