galaxy-uniapp-mcp-server
Version:
Galaxy组件库到UniApp组件转换MCP服务器 - 支持跨平台组件转换、兼容性分析和项目集成
112 lines • 12.6 kB
JSON
{
"id": "KitoC_curly-cheetah-59",
"name": "curly-cheetah-59",
"category": "buttons",
"author": "KitoC",
"description": "curly-cheetah-59 组件 (button, animation, interactive)",
"tags": [
"button",
"animation",
"interactive"
],
"original": {
"html": "<button>\n <div class=\"blackhole\">\n <span class=\"rocket-path\">\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"rocket\"> <g> <path d=\"M0 0h24v24H0z\" fill=\"none\"></path> <path d=\"M8.498 20h7.004A6.523 6.523 0 0 1 12 23.502 6.523 6.523 0 0 1 8.498 20zM18 14.805l2 2.268V19H4v-1.927l2-2.268V9c0-3.483 2.504-6.447 6-7.545C15.496 2.553 18 5.517 18 9v5.805zM12 11a2 2 0 1 0 0-4 2 2 0 0 0 0 4z\"></path> </g> </svg>\n </span>\n <span class=\"ring\">\n <span class=\"block\"></span>\n </span>\n </div>\n <span class=\"text\">Don't get lost</span>\n</button>",
"css": "/* From Uiverse.io by KitoC - Tags: button */\nbutton {\n --black-hole-color-2: rgb(242, 122, 42);\n --black-hole-color: rgb(230, 148, 93);\n font-size: 17px;\n position: relative;\n background: #212121;\n padding: 0.5em;\n border: 2px solid var(--black-hole-color);\n border-radius: 8px;\n}\n\nbutton:hover {\n border: 2px solid var(--black-hole-color-2);\n animation: alert 1s alternate infinite linear;\n}\n\n.blackhole {\n padding: 3em;\n background-color: black;\n color: var(--black-hole-color);\n position: absolute;\n animation: wiggle 3s alternate-reverse infinite linear;\n top: -1em;\n left: -8em;\n}\n\n.blackhole, .blackhole::after, .blackhole::before, .blackhole .ring, .blackhole .ring::after {\n content: \"\";\n border: 2px solid var(--black-hole-color);\n border-radius: 50%;\n box-shadow: 0 0 3em,\n 0 0 1em;\n}\n\n.blackhole::after, .blackhole::before {\n animation: writhe 3s alternate-reverse infinite linear;\n}\n\n.blackhole::before {\n position: absolute;\n width: calc(100% + 0.5em);\n height: calc(100% + 0.5em);\n top: -9px;\n left: -7px;\n}\n\n.blackhole::after {\n position: absolute;\n width: calc(100% + 8px);\n height: calc(100% + 8px);\n top: -6px;\n left: -5px;\n}\n\n.blackhole .ring, .blackhole .ring::after {\n content: \"\";\n position: absolute;\n left: -50%;\n width: 200%;\n border-top: none;\n height: 2em;\n border-width: 5px;\n box-shadow: 0px 5px 10px var(--black-hole-color);\n}\n\n.blackhole .ring, .blackhole .ring::after {\n animation: ring-writhe 3s alternate-reverse infinite linear;\n}\n\n.blackhole .block {\n position: absolute;\n z-index: 90;\n content: \"\";\n background-color: black;\n top: -20%;\n left: 25%;\n width: 50%;\n height: 10px;\n}\n\n.blackhole .ring::after {\n width: 110%;\n left: -8%;\n}\n\n.blackhole .rocket {\n fill: white;\n height: 30px;\n transform: rotate(-140deg);\n animation: idle 1s alternate-reverse infinite linear;\n}\n\n.blackhole .rocket-path {\n position: absolute;\n top: -60px;\n right: -60px;\n}\n\nbutton:hover .rocket-path, button:focus .rocket-path {\n z-index: 100;\n animation: engine-start 0.2s alternate-reverse infinite linear;\n}\n\nbutton:focus .rocket-path {\n animation: descend 1.2s linear forwards, \n descend-dissapear 0.1s linear forwards;\n animation-delay: 0s, 1s;\n}\n\nbutton .text {\n display: flex;\n color: white;\n}\n\n@keyframes idle {\n from {\n transform: rotate(-130deg);\n }\n\n to {\n transform: rotate(-140deg);\n }\n}\n\n@keyframes alert {\n from {\n box-shadow: 0 0 0 var(--black-hole-color);\n }\n\n to {\n box-shadow: 0 0 8px var(--black-hole-color);\n }\n}\n\n@keyframes engine-start {\n from {\n transform: scale(1);\n }\n\n to {\n transform: scale(1.05);\n }\n}\n\n@keyframes descend {\n from {\n top: -60px;\n right: -60px;\n transform: scale(1);\n }\n\n to {\n top: -10px;\n right: -10px;\n transform: scale(0.8);\n }\n}\n\n@keyframes descend-dissapear {\n from {\n top: -10px;\n right: -10px;\n transform: scale(1);\n }\n\n to {\n top: 20px;\n right: 20px;\n transform: scale(0);\n }\n}\n\n@keyframes writhe {\n from {\n box-shadow: -4px -3px 35px var(--black-hole-color-2),\n -4px -3px 5px;\n transform: translateX(-1px) scale(1);\n }\n\n to {\n box-shadow: 4px 3px 35px,\n 4px 3px 5px var(--black-hole-color-2);\n transform: translateX(1px) scale(0.95);\n }\n}\n\n@keyframes wiggle {\n from {\n transform: translateX(-3px);\n }\n\n to {\n transform: translateX(3px);\n }\n}\n\n@keyframes ring-writhe {\n from {\n transform: translateX(-2px) scale(1);\n box-shadow: -2px 5px 10px var(--black-hole-color);\n }\n\n to {\n box-shadow: 2px 5px 10px var(--black-hole-color-2);\n transform: translateX(2px) scale(0.95);\n }\n}",
"file_path": "/mnt/persist/workspace/Buttons/KitoC_curly-cheetah-59.html"
},
"uniapp": {
"template": "<button></button>\n <view class=\"blackhole\"></view>\n <text class=\"rocket-path\"></text>\n <view viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"rocket\"> <g> <path d=\"M0 0h24v24H0z\" fill=\"none\"></path> <path d=\"M8.498 20h7.004A6.523 6.523 0 0 1 12 23.502 6.523 6.523 0 0 1 8.498 20zM18 14.805l2 2.268V19H4v-1.927l2-2.268V9c0-3.483 2.504-6.447 6-7.545C15.496 2.553 18 5.517 18 9v5.805zM12 11a2 2 0 1 0 0-4 2 2 0 0 0 0 4z\"></path> </g> </view>\n </span>\n <text class=\"ring\"></text>\n <text class=\"block\"></text>\n </span>\n </div>\n <text class=\"text\">Don't get lost</text>\n</button>",
"script": "export default {\n name: 'GalaxyCurlyCheetah59',\n props: {\n // 根据组件类型动态生成props\n },\n data() {\n return {\n // 组件状态\n };\n },\n methods: {\n // 组件方法\n }\n}",
"style": "\n/* From Uiverse.io by KitoC - Tags: button */\nbutton {\n --black-hole-color-2: rgb(242, 122, 42);\n --black-hole-color: rgb(230, 148, 93);\n font-size: 34rpx;\n position: relative;\n background: #212121;\n padding: 0.5em;\n border: 4rpx solid var(--black-hole-color);\n border-radius: 16rpx;\n}\n\nbutton:hover {\n border: 4rpx solid var(--black-hole-color-2);\n animation: alert 1s alternate infinite linear;\n}\n\n.blackhole {\n padding: 3em;\n background-color: black;\n color: var(--black-hole-color);\n position: absolute;\n animation: wiggle 3s alternate-reverse infinite linear;\n top: -1em;\n left: -8em;\n}\n\n.blackhole, .blackhole::after, .blackhole::before, .blackhole .ring, .blackhole .ring::after {\n content: \"\";\n border: 4rpx solid var(--black-hole-color);\n border-radius: 50%;\n /* #ifdef H5 */\n /* #ifdef H5 */\n box-shadow: 0 0 3em,\n 0 0 1em;\n /* #endif */\n /* #ifdef MP */\n border: 1rpx solid rgba(0,0,0,0.1);\n /* #endif */\n /* #endif */\n}\n\n.blackhole::after, .blackhole::before {\n animation: writhe 3s alternate-reverse infinite linear;\n}\n\n.blackhole::before {\n position: absolute;\n width: calc(100% + 0.5em);\n height: calc(100% + 0.5em);\n top: -18rpx;\n left: -14rpx;\n}\n\n.blackhole::after {\n position: absolute;\n width: calc(100% + 16rpx);\n height: calc(100% + 16rpx);\n top: -12rpx;\n left: -10rpx;\n}\n\n.blackhole .ring, .blackhole .ring::after {\n content: \"\";\n position: absolute;\n left: -50%;\n width: 200%;\n border-top: none;\n height: 2em;\n border-width: 10rpx;\n /* #ifdef H5 */\n /* #ifdef H5 */\n box-shadow: 0rpx 10rpx 20rpx var(--black-hole-color);\n /* #endif */\n /* #ifdef MP */\n border: 1rpx solid rgba(0,0,0,0.1);\n /* #endif */\n /* #endif */\n}\n\n.blackhole .ring, .blackhole .ring::after {\n animation: ring-writhe 3s alternate-reverse infinite linear;\n}\n\n.blackhole .block {\n position: absolute;\n z-index: 90;\n content: \"\";\n background-color: black;\n top: -20%;\n left: 25%;\n width: 50%;\n height: 20rpx;\n}\n\n.blackhole .ring::after {\n width: 110%;\n left: -8%;\n}\n\n.blackhole .rocket {\n fill: white;\n height: 60rpx;\n transform: rotate(-140deg);\n animation: idle 1s alternate-reverse infinite linear;\n}\n\n.blackhole .rocket-path {\n position: absolute;\n top: -120rpx;\n right: -120rpx;\n}\n\nbutton:hover .rocket-path, button:focus .rocket-path {\n z-index: 100;\n animation: engine-start 0.2s alternate-reverse infinite linear;\n}\n\nbutton:focus .rocket-path {\n animation: descend 1.2s linear forwards, \n descend-dissapear 0.1s linear forwards;\n animation-delay: 0s, 1s;\n}\n\nbutton .text {\n display: flex;\n color: white;\n}\n\n@keyframes idle {\n from {\n transform: rotate(-130deg);\n }\n\n to {\n transform: rotate(-140deg);\n }\n}\n\n@keyframes alert {\n from {\n /* #ifdef H5 */\n /* #ifdef H5 */\n box-shadow: 0 0 0 var(--black-hole-color);\n /* #endif */\n /* #ifdef MP */\n border: 1rpx solid rgba(0,0,0,0.1);\n /* #endif */\n /* #endif */\n }\n\n to {\n /* #ifdef H5 */\n /* #ifdef H5 */\n box-shadow: 0 0 16rpx var(--black-hole-color);\n /* #endif */\n /* #ifdef MP */\n border: 1rpx solid rgba(0,0,0,0.1);\n /* #endif */\n /* #endif */\n }\n}\n\n@keyframes engine-start {\n from {\n transform: scale(1);\n }\n\n to {\n transform: scale(1.05);\n }\n}\n\n@keyframes descend {\n from {\n top: -120rpx;\n right: -120rpx;\n transform: scale(1);\n }\n\n to {\n top: -20rpx;\n right: -20rpx;\n transform: scale(0.8);\n }\n}\n\n@keyframes descend-dissapear {\n from {\n top: -20rpx;\n right: -20rpx;\n transform: scale(1);\n }\n\n to {\n top: 40rpx;\n right: 40rpx;\n transform: scale(0);\n }\n}\n\n@keyframes writhe {\n from {\n /* #ifdef H5 */\n /* #ifdef H5 */\n box-shadow: -8rpx -6rpx 70rpx var(--black-hole-color-2),\n -8rpx -6rpx 10rpx;\n /* #endif */\n /* #ifdef MP */\n border: 1rpx solid rgba(0,0,0,0.1);\n /* #endif */\n /* #endif */\n transform: translateX(-2rpx) scale(1);\n }\n\n to {\n /* #ifdef H5 */\n /* #ifdef H5 */\n box-shadow: 8rpx 6rpx 70rpx,\n 8rpx 6rpx 10rpx var(--black-hole-color-2);\n /* #endif */\n /* #ifdef MP */\n border: 1rpx solid rgba(0,0,0,0.1);\n /* #endif */\n /* #endif */\n transform: translateX(2rpx) scale(0.95);\n }\n}\n\n@keyframes wiggle {\n from {\n transform: translateX(-6rpx);\n }\n\n to {\n transform: translateX(6rpx);\n }\n}\n\n@keyframes ring-writhe {\n from {\n transform: translateX(-4rpx) scale(1);\n /* #ifdef H5 */\n /* #ifdef H5 */\n box-shadow: -4rpx 10rpx 20rpx var(--black-hole-color);\n /* #endif */\n /* #ifdef MP */\n border: 1rpx solid rgba(0,0,0,0.1);\n /* #endif */\n /* #endif */\n }\n\n to {\n /* #ifdef H5 */\n /* #ifdef H5 */\n box-shadow: 4rpx 10rpx 20rpx var(--black-hole-color-2);\n /* #endif */\n /* #ifdef MP */\n border: 1rpx solid rgba(0,0,0,0.1);\n /* #endif */\n /* #endif */\n transform: translateX(4rpx) scale(0.95);\n }\n}\n\n",
"component_name": "GalaxyCurlyCheetah59"
},
"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 属性"
],
"alternatives": []
},
"mp-alipay": {
"supported": true,
"issues": [
"不支持 box-shadow 属性"
],
"alternatives": []
},
"app-plus": {
"supported": true,
"issues": [],
"alternatives": []
}
},
"performance": {
"complexity": "high",
"bundle_size": 4258,
"render_cost": "high",
"memory_usage": "high"
},
"dependencies": [],
"examples": [
{
"title": "",
"description": "",
"code": ""
}
],
"created_at": "2025-07-31T07:55:33.758Z",
"updated_at": "2025-07-31T07:55:33.758Z"
}