UNPKG

galaxy-uniapp-mcp-server

Version:

Galaxy组件库到UniApp组件转换MCP服务器 - 支持跨平台组件转换、兼容性分析和项目集成

108 lines 11.8 kB
{ "id": "gustavofusco_lazy-starfish-84", "name": "lazy-starfish-84", "category": "buttons", "author": "gustavofusco", "description": "lazy-starfish-84 组件 (button, animation, interactive)", "tags": [ "button", "animation", "interactive" ], "original": { "html": "<div class=\"container\">\n <button class=\"button\">\n <div class=\"button__line\"></div>\n <div class=\"button__line\"></div>\n <span class=\"button__text\">Hover Me</span>\n <div class=\"button__drow1\"></div>\n <div class=\"button__drow2\"></div>\n </button> \n</div>", "css": "/* From Uiverse.io by gustavofusco - Tags: button */\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: #00135C;\n letter-spacing: 2px;\n transition: all .3s ease;\n border: none;\n background: transparent;\n}\n\n.button__text {\n display: flex;\n justify-content: center;\n align-items: center;\n width: 100%;\n height: 100%;\n}\n\n.button::before,\n.button::after,\n.button__text::before,\n.button__text::before {\n content: '';\n position: absolute;\n height: 3px;\n border-radius: 2px;\n background: #00135C;\n transition: all .5s ease;\n}\n\n.button::before {\n top: 0;\n left: 54px;\n width: calc(100% - 56px * 2 - 16px);\n}\n\n.button::after {\n top: 0;\n right: 54px;\n width: 8px;\n}\n\n.button__text::before {\n bottom: 0;\n right: 54px;\n width: calc(100% - 56px * 2 - 16px);\n}\n\n.button__text::after {\n top: 0;\n right: 54px;\n width: 8px;\n}\n\n.button__line {\n position: absolute;\n top: 0;\n width: 56px;\n height: 100%;\n overflow: hidden;\n}\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: #00135C;\n}\n\n.button__line:nth-child(1),\n.button__line:nth-child(1)::before {\n left: 0;\n}\n\n.button__line:nth-child(2),\n.button__line:nth-child(2)::before {\n right: 0;\n}\n\n.button:hover {\n letter-spacing: 6px;\n}\n\n.button:hover::before,\n.button:hover .button__text::before {\n width: 8px;\n}\n\n.button:hover::after,\n.button:hover .button__text::after {\n width: calc(100% - 56px * 2 - 16px);\n}\n\n.button__drow1,\n.button__drow2 {\n position: absolute;\n z-index: -1;\n border: 1rem;\n transform-origin: 1rem 1rem;\n}\n\n.button__drow1 {\n top: -1rem;\n left: 40px;\n width: 2rem;\n height: 0;\n transform: rotate(30deg);\n}\n\n.button__drow2 {\n top: 44px;\n left: 77px;\n width: 2rem;\n height: 0;\n transform: rotate(-127deg);\n}\n\n.button__drow1::before,\n.button__drow1::after,\n.button__drow2::before,\n.button__drow2::after {\n content: '';\n position: absolute;\n}\n\n.button__drow1::before {\n bottom: 0;\n left: 0;\n width: 0;\n height: 2rem;\n border-radius: 1rem;\n transform-origin: 1rem 1rem;\n transform: rotate(-60deg);\n}\n\n.button__drow1::after {\n top: -10px;\n left: 45px;\n width: 0;\n height: 2rem;\n border-radius: 1rem;\n transform-origin: 1rem 1rem;\n transform: rotate(-69deg);\n}\n\n.button__drow2::before {\n bottom: 0;\n left: 0;\n width: 0;\n height: 2rem;\n border-radius: 1rem;\n transform-origin: 1rem 1rem;\n transform: rotate(-146deg);\n}\n\n.button__drow1::after {\n bottom: 26px;\n left: -40px;\n width: 0;\n height: 2rem;\n border-radius: 1rem;\n transform-origin: 1rem 1rem;\n transform: rotate(-262deg);\n}\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: dodgerblue;\n}\n\n.button:hover .button__drow1 {\n animation: drow1 ease-in .06s;\n animation-fill-mode: forwards;\n}\n\n.button:hover .button__drow1::before {\n animation: drow2 linear .08s .06s;\n animation-fill-mode: forwards;\n}\n\n.button:hover .button__drow1::after {\n animation: drow3 linear .03s .14s;\n animation-fill-mode: forwards;\n}\n\n.button:hover .button__drow2 {\n animation: drow4 linear .06s .2s;\n animation-fill-mode: forwards;\n}\n\n.button:hover .button__drow2::before {\n animation: drow3 linear .03s .26s;\n animation-fill-mode: forwards;\n}\n\n.button:hover .button__drow2::after {\n animation: drow5 linear .06s .32s;\n animation-fill-mode: forwards;\n}\n\n@keyframes drow1 {\n 0% {\n height: 0;\n }\n\n 100% {\n height: 100px;\n }\n}\n\n@keyframes drow2 {\n 0% {\n width: 0;\n opacity: 0;\n }\n\n 10% {\n opacity: 0;\n }\n\n 11% {\n opacity: 1;\n }\n\n 100% {\n height: 120px;\n }\n}\n\n@keyframes drow3 {\n 0% {\n height: 0;\n }\n\n 100% {\n height: 80px;\n }\n}\n\n@keyframes drow4 {\n 0% {\n height: 0;\n }\n\n 100% {\n height: 120px;\n }\n}\n\n@keyframes drow5 {\n 0% {\n height: 0;\n }\n\n 100% {\n height: 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}", "file_path": "/mnt/persist/workspace/Buttons/gustavofusco_lazy-starfish-84.html" }, "uniapp": { "template": "<view class=\"container\"></view>\n <button class=\"button\"></button>\n <view class=\"button__line\"></view>\n <view class=\"button__line\"></view>\n <text class=\"button__text\">Hover Me</text>\n <view class=\"button__drow1\"></view>\n <view class=\"button__drow2\"></view>\n </button> \n</div>", "script": "export default {\n name: 'GalaxyLazyStarfish84',\n props: {\n // 根据组件类型动态生成props\n },\n data() {\n return {\n // 组件状态\n };\n },\n methods: {\n // 组件方法\n }\n}", "style": "\n/* From Uiverse.io by gustavofusco - Tags: button */\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: #00135C;\n letter-spacing: 4rpx;\n transition: all .3s ease;\n border: none;\n background: transparent;\n}\n\n.button__text {\n display: flex;\n justify-content: center;\n align-items: center;\n width: 100%;\n height: 100%;\n}\n\n.button::before,\n.button::after,\n.button__text::before,\n.button__text::before {\n content: '';\n position: absolute;\n height: 6rpx;\n border-radius: 4rpx;\n background: #00135C;\n transition: all .5s ease;\n}\n\n.button::before {\n top: 0;\n left: 108rpx;\n width: calc(100% - 112rpx * 2 - 32rpx);\n}\n\n.button::after {\n top: 0;\n right: 108rpx;\n width: 16rpx;\n}\n\n.button__text::before {\n bottom: 0;\n right: 108rpx;\n width: calc(100% - 112rpx * 2 - 32rpx);\n}\n\n.button__text::after {\n top: 0;\n right: 108rpx;\n width: 16rpx;\n}\n\n.button__line {\n position: absolute;\n top: 0;\n width: 112rpx;\n height: 100%;\n overflow: hidden;\n}\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: #00135C;\n}\n\n.button__line:nth-child(1),\n.button__line:nth-child(1)::before {\n left: 0;\n}\n\n.button__line:nth-child(2),\n.button__line:nth-child(2)::before {\n right: 0;\n}\n\n.button:hover {\n letter-spacing: 12rpx;\n}\n\n.button:hover::before,\n.button:hover .button__text::before {\n width: 16rpx;\n}\n\n.button:hover::after,\n.button:hover .button__text::after {\n width: calc(100% - 112rpx * 2 - 32rpx);\n}\n\n.button__drow1,\n.button__drow2 {\n position: absolute;\n z-index: -1;\n border: 1rem;\n transform-origin: 1rem 1rem;\n}\n\n.button__drow1 {\n top: -1rem;\n left: 80rpx;\n width: 2rem;\n height: 0;\n transform: rotate(30deg);\n}\n\n.button__drow2 {\n top: 88rpx;\n left: 154rpx;\n width: 2rem;\n height: 0;\n transform: rotate(-127deg);\n}\n\n.button__drow1::before,\n.button__drow1::after,\n.button__drow2::before,\n.button__drow2::after {\n content: '';\n position: absolute;\n}\n\n.button__drow1::before {\n bottom: 0;\n left: 0;\n width: 0;\n height: 2rem;\n border-radius: 1rem;\n transform-origin: 1rem 1rem;\n transform: rotate(-60deg);\n}\n\n.button__drow1::after {\n top: -20rpx;\n left: 90rpx;\n width: 0;\n height: 2rem;\n border-radius: 1rem;\n transform-origin: 1rem 1rem;\n transform: rotate(-69deg);\n}\n\n.button__drow2::before {\n bottom: 0;\n left: 0;\n width: 0;\n height: 2rem;\n border-radius: 1rem;\n transform-origin: 1rem 1rem;\n transform: rotate(-146deg);\n}\n\n.button__drow1::after {\n bottom: 52rpx;\n left: -80rpx;\n width: 0;\n height: 2rem;\n border-radius: 1rem;\n transform-origin: 1rem 1rem;\n transform: rotate(-262deg);\n}\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: dodgerblue;\n}\n\n.button:hover .button__drow1 {\n animation: drow1 ease-in .06s;\n animation-fill-mode: forwards;\n}\n\n.button:hover .button__drow1::before {\n animation: drow2 linear .08s .06s;\n animation-fill-mode: forwards;\n}\n\n.button:hover .button__drow1::after {\n animation: drow3 linear .03s .14s;\n animation-fill-mode: forwards;\n}\n\n.button:hover .button__drow2 {\n animation: drow4 linear .06s .2s;\n animation-fill-mode: forwards;\n}\n\n.button:hover .button__drow2::before {\n animation: drow3 linear .03s .26s;\n animation-fill-mode: forwards;\n}\n\n.button:hover .button__drow2::after {\n animation: drow5 linear .06s .32s;\n animation-fill-mode: forwards;\n}\n\n@keyframes drow1 {\n 0% {\n height: 0;\n }\n\n 100% {\n height: 200rpx;\n }\n}\n\n@keyframes drow2 {\n 0% {\n width: 0;\n opacity: 0;\n }\n\n 10% {\n opacity: 0;\n }\n\n 11% {\n opacity: 1;\n }\n\n 100% {\n height: 240rpx;\n }\n}\n\n@keyframes drow3 {\n 0% {\n height: 0;\n }\n\n 100% {\n height: 160rpx;\n }\n}\n\n@keyframes drow4 {\n 0% {\n height: 0;\n }\n\n 100% {\n height: 240rpx;\n }\n}\n\n@keyframes drow5 {\n 0% {\n height: 0;\n }\n\n 100% {\n height: 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\n\n\n\n", "component_name": "GalaxyLazyStarfish84" }, "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": 4417, "render_cost": "high", "memory_usage": "high" }, "dependencies": [], "examples": [ { "title": "", "description": "", "code": "" } ], "created_at": "2025-07-31T07:55:36.904Z", "updated_at": "2025-07-31T07:55:36.904Z" }