[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6GTCPB9F326DAZ9RRXEB9J9":3,"skill-same:01M6GTCPB9F326DAZ9RRXEB9J9":466},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":28,"publishedAt":49,"linkOnly":50,"markdownContent":51,"markdownBody":52,"frontMatter":53,"refName":56,"commitSha":57,"skillDirectory":58,"forksCount":59,"repositoryHtmlUrl":60,"repositoryHomepageUrl":6,"ownerHtmlUrl":61,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":62,"install":63,"resources":76},"01M6GTCPB9F326DAZ9RRXEB9J9","ck:ui-styling",null,"Style UIs with shadcn\u002Fui components (Radix UI + Tailwind CSS). Use for accessible components, themes, dark mode, responsive layouts, design systems, color customization.","yosnap\u002Fdevdock","yosnap","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F66257788?v=4","01M6GSRTCX7DZKZ29PPYZNEFQG","Paulo Guachizaca","01M6GSRTH6M80S52Z0FSXKVYK4",6,"MIT","https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000015","视觉设计","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48],"ui styling","ck:ui styling","ui","styling","use","mode","color","themes","ui components","dark mode","layout","responsive","design","radix ui","Tailwind","shadcn","design systems","component","components","css","2026-11-10 10:12:30",false,"---\nname: ck:ui-styling\ndescription: Style UIs with shadcn\u002Fui components (Radix UI + Tailwind CSS). Use for accessible components, themes, dark mode, responsive layouts, design systems, color customization.\nlicense: MIT\nversion: 1.0.0\nargument-hint: \"[component or layout]\"\n---\n\n# UI Styling Skill\n\nComprehensive skill for creating beautiful, accessible user interfaces combining shadcn\u002Fui components, Tailwind CSS utility styling, and canvas-based visual design systems.\n\n## Reference\n\n- shadcn\u002Fui: https:\u002F\u002Fui.shadcn.com\u002Fllms.txt\n- Tailwind CSS: https:\u002F\u002Ftailwindcss.com\u002Fdocs\n\n## When to Use This Skill\n\nUse when:\n- Building UI with React-based frameworks (Next.js, Vite, Remix, Astro)\n- Implementing accessible components (dialogs, forms, tables, navigation)\n- Styling with utility-first CSS approach\n- Creating responsive, mobile-first layouts\n- Implementing dark mode and theme customization\n- Building design systems with consistent tokens\n- Generating visual designs, posters, or brand materials\n- Rapid prototyping with immediate visual feedback\n- Adding complex UI patterns (data tables, charts, command palettes)\n\n## Core Stack\n\n### Component Layer: shadcn\u002Fui\n- Pre-built accessible components via Radix UI primitives\n- Copy-paste distribution model (components live in your codebase)\n- TypeScript-first with full type safety\n- Composable primitives for complex UIs\n- CLI-based installation and management\n\n### Styling Layer: Tailwind CSS\n- Utility-first CSS framework\n- Build-time processing with zero runtime overhead\n- Mobile-first responsive design\n- Consistent design tokens (colors, spacing, typography)\n- Automatic dead code elimination\n\n### Visual Design Layer: Canvas\n- Museum-quality visual compositions\n- Philosophy-driven design approach\n- Sophisticated visual communication\n- Minimal text, maximum visual impact\n- Systematic patterns and refined aesthetics\n\n## Quick Start\n\n### Component + Styling Setup\n\n**Install shadcn\u002Fui with Tailwind:**\n```bash\nnpx shadcn@latest init\n```\n\nCLI prompts for framework, TypeScript, paths, and theme preferences. This configures both shadcn\u002Fui and Tailwind CSS.\n\n**Add components:**\n```bash\nnpx shadcn@latest add button card dialog form\n```\n\n**Use components with utility styling:**\n```tsx\nimport { Button } from \"@\u002Fcomponents\u002Fui\u002Fbutton\"\nimport { Card, CardHeader, CardTitle, CardContent } from \"@\u002Fcomponents\u002Fui\u002Fcard\"\n\nexport function Dashboard() {\n  return (\n    \u003Cdiv className=\"container mx-auto p-6 grid gap-6 md:grid-cols-2 lg:grid-cols-3\">\n      \u003CCard className=\"hover:shadow-lg transition-shadow\">\n        \u003CCardHeader>\n          \u003CCardTitle className=\"text-2xl font-bold\">Analytics\u003C\u002FCardTitle>\n        \u003C\u002FCardHeader>\n        \u003CCardContent className=\"space-y-4\">\n          \u003Cp className=\"text-muted-foreground\">View your metrics\u003C\u002Fp>\n          \u003CButton variant=\"default\" className=\"w-full\">\n            View Details\n          \u003C\u002FButton>\n        \u003C\u002FCardContent>\n      \u003C\u002FCard>\n    \u003C\u002Fdiv>\n  )\n}\n```\n\n### Alternative: Tailwind-Only Setup\n\n**Vite projects:**\n```bash\nnpm install -D tailwindcss @tailwindcss\u002Fvite\n```\n\n```javascript\n\u002F\u002F vite.config.ts\nimport tailwindcss from '@tailwindcss\u002Fvite'\nexport default { plugins: [tailwindcss()] }\n```\n\n```css\n\u002F* src\u002Findex.css *\u002F\n@import \"tailwindcss\";\n```\n\n## Component Library Guide\n\n**Comprehensive component catalog with usage patterns, installation, and composition examples.**\n\nSee: `references\u002Fshadcn-components.md`\n\nCovers:\n- Form & input components (Button, Input, Select, Checkbox, Date Picker, Form validation)\n- Layout & navigation (Card, Tabs, Accordion, Navigation Menu)\n- Overlays & dialogs (Dialog, Drawer, Popover, Toast, Command)\n- Feedback & status (Alert, Progress, Skeleton)\n- Display components (Table, Data Table, Avatar, Badge)\n\n## Theme & Customization\n\n**Theme configuration, CSS variables, dark mode implementation, and component customization.**\n\nSee: `references\u002Fshadcn-theming.md`\n\nCovers:\n- Dark mode setup with next-themes\n- CSS variable system\n- Color customization and palettes\n- Component variant customization\n- Theme toggle implementation\n\n## Accessibility Patterns\n\n**ARIA patterns, keyboard navigation, screen reader support, and accessible component usage.**\n\nSee: `references\u002Fshadcn-accessibility.md`\n\nCovers:\n- Radix UI accessibility features\n- Keyboard navigation patterns\n- Focus management\n- Screen reader announcements\n- Form validation accessibility\n\n## Tailwind Utilities\n\n**Core utility classes for layout, spacing, typography, colors, borders, and shadows.**\n\nSee: `references\u002Ftailwind-utilities.md`\n\nCovers:\n- Layout utilities (Flexbox, Grid, positioning)\n- Spacing system (padding, margin, gap)\n- Typography (font sizes, weights, alignment, line height)\n- Colors and backgrounds\n- Borders and shadows\n- Arbitrary values for custom styling\n\n## Responsive Design\n\n**Mobile-first breakpoints, responsive utilities, and adaptive layouts.**\n\nSee: `references\u002Ftailwind-responsive.md`\n\nCovers:\n- Mobile-first approach\n- Breakpoint system (sm, md, lg, xl, 2xl)\n- Responsive utility patterns\n- Container queries\n- Max-width queries\n- Custom breakpoints\n\n## Tailwind Customization\n\n**Config file structure, custom utilities, plugins, and theme extensions.**\n\nSee: `references\u002Ftailwind-customization.md`\n\nCovers:\n- @theme directive for custom tokens\n- Custom colors and fonts\n- Spacing and breakpoint extensions\n- Custom utility creation\n- Custom variants\n- Layer organization (@layer base, components, utilities)\n- Apply directive for component extraction\n\n## Visual Design System\n\n**Canvas-based design philosophy, visual communication principles, and sophisticated compositions.**\n\nSee: `references\u002Fcanvas-design-system.md`\n\nCovers:\n- Design philosophy approach\n- Visual communication over text\n- Systematic patterns and composition\n- Color, form, and spatial design\n- Minimal text integration\n- Museum-quality execution\n- Multi-page design systems\n\n## Utility Scripts\n\n**Python automation for component installation and configuration generation.**\n\n### shadcn_add.py\nAdd shadcn\u002Fui components with dependency handling:\n```bash\npython scripts\u002Fshadcn_add.py button card dialog\n```\n\n### tailwind_config_gen.py\nGenerate tailwind.config.js with custom theme:\n```bash\npython scripts\u002Ftailwind_config_gen.py --colors brand:blue --fonts display:Inter\n```\n\n## Best Practices\n\n1. **Component Composition**: Build complex UIs from simple, composable primitives\n2. **Utility-First Styling**: Use Tailwind classes directly; extract components only for true repetition\n3. **Mobile-First Responsive**: Start with mobile styles, layer responsive variants\n4. **Accessibility-First**: Leverage Radix UI primitives, add focus states, use semantic HTML\n5. **Design Tokens**: Use consistent spacing scale, color palettes, typography system\n6. **Dark Mode Consistency**: Apply dark variants to all themed elements\n7. **Performance**: Leverage automatic CSS purging, avoid dynamic class names\n8. **TypeScript**: Use full type safety for better DX\n9. **Visual Hierarchy**: Let composition guide attention, use spacing and color intentionally\n10. **Expert Craftsmanship**: Every detail matters - treat UI as a craft\n\n## Reference Navigation\n\n**Component Library**\n- `references\u002Fshadcn-components.md` - Complete component catalog\n- `references\u002Fshadcn-theming.md` - Theming and customization\n- `references\u002Fshadcn-accessibility.md` - Accessibility patterns\n\n**Styling System**\n- `references\u002Ftailwind-utilities.md` - Core utility classes\n- `references\u002Ftailwind-responsive.md` - Responsive design\n- `references\u002Ftailwind-customization.md` - Configuration and extensions\n\n**Visual Design**\n- `references\u002Fcanvas-design-system.md` - Design philosophy and canvas workflows\n\n**Automation**\n- `scripts\u002Fshadcn_add.py` - Component installation\n- `scripts\u002Ftailwind_config_gen.py` - Config generation\n\n## Common Patterns\n\n**Form with validation:**\n```tsx\nimport { useForm } from \"react-hook-form\"\nimport { zodResolver } from \"@hookform\u002Fresolvers\u002Fzod\"\nimport * as z from \"zod\"\nimport { Form, FormField, FormItem, FormLabel, FormControl, FormMessage } from \"@\u002Fcomponents\u002Fui\u002Fform\"\nimport { Input } from \"@\u002Fcomponents\u002Fui\u002Finput\"\nimport { Button } from \"@\u002Fcomponents\u002Fui\u002Fbutton\"\n\nconst schema = z.object({\n  email: z.string().email(),\n  password: z.string().min(8)\n})\n\nexport function LoginForm() {\n  const form = useForm({\n    resolver: zodResolver(schema),\n    defaultValues: { email: \"\", password: \"\" }\n  })\n\n  return (\n    \u003CForm {...form}>\n      \u003Cform onSubmit={form.handleSubmit(console.log)} className=\"space-y-6\">\n        \u003CFormField control={form.control} name=\"email\" render={({ field }) => (\n          \u003CFormItem>\n            \u003CFormLabel>Email\u003C\u002FFormLabel>\n            \u003CFormControl>\n              \u003CInput type=\"email\" {...field} \u002F>\n            \u003C\u002FFormControl>\n            \u003CFormMessage \u002F>\n          \u003C\u002FFormItem>\n        )} \u002F>\n        \u003CButton type=\"submit\" className=\"w-full\">Sign In\u003C\u002FButton>\n      \u003C\u002Fform>\n    \u003C\u002FForm>\n  )\n}\n```\n\n**Responsive layout with dark mode:**\n```tsx\n\u003Cdiv className=\"min-h-screen bg-white dark:bg-gray-900\">\n  \u003Cdiv className=\"container mx-auto px-4 py-8\">\n    \u003Cdiv className=\"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6\">\n      \u003CCard className=\"bg-white dark:bg-gray-800 border-gray-200 dark:border-gray-700\">\n        \u003CCardContent className=\"p-6\">\n          \u003Ch3 className=\"text-xl font-semibold text-gray-900 dark:text-white\">\n            Content\n          \u003C\u002Fh3>\n        \u003C\u002FCardContent>\n      \u003C\u002FCard>\n    \u003C\u002Fdiv>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\n```\n\n## Resources\n\n- shadcn\u002Fui Docs: https:\u002F\u002Fui.shadcn.com\n- Tailwind CSS Docs: https:\u002F\u002Ftailwindcss.com\n- Radix UI: https:\u002F\u002Fradix-ui.com\n- Tailwind UI: https:\u002F\u002Ftailwindui.com\n- Headless UI: https:\u002F\u002Fheadlessui.com\n- v0 (AI UI Generator): https:\u002F\u002Fv0.dev\n","# UI Styling Skill\n\nComprehensive skill for creating beautiful, accessible user interfaces combining shadcn\u002Fui components, Tailwind CSS utility styling, and canvas-based visual design systems.\n\n## Reference\n\n- shadcn\u002Fui: https:\u002F\u002Fui.shadcn.com\u002Fllms.txt\n- Tailwind CSS: https:\u002F\u002Ftailwindcss.com\u002Fdocs\n\n## When to Use This Skill\n\nUse when:\n- Building UI with React-based frameworks (Next.js, Vite, Remix, Astro)\n- Implementing accessible components (dialogs, forms, tables, navigation)\n- Styling with utility-first CSS approach\n- Creating responsive, mobile-first layouts\n- Implementing dark mode and theme customization\n- Building design systems with consistent tokens\n- Generating visual designs, posters, or brand materials\n- Rapid prototyping with immediate visual feedback\n- Adding complex UI patterns (data tables, charts, command palettes)\n\n## Core Stack\n\n### Component Layer: shadcn\u002Fui\n- Pre-built accessible components via Radix UI primitives\n- Copy-paste distribution model (components live in your codebase)\n- TypeScript-first with full type safety\n- Composable primitives for complex UIs\n- CLI-based installation and management\n\n### Styling Layer: Tailwind CSS\n- Utility-first CSS framework\n- Build-time processing with zero runtime overhead\n- Mobile-first responsive design\n- Consistent design tokens (colors, spacing, typography)\n- Automatic dead code elimination\n\n### Visual Design Layer: Canvas\n- Museum-quality visual compositions\n- Philosophy-driven design approach\n- Sophisticated visual communication\n- Minimal text, maximum visual impact\n- Systematic patterns and refined aesthetics\n\n## Quick Start\n\n### Component + Styling Setup\n\n**Install shadcn\u002Fui with Tailwind:**\n```bash\nnpx shadcn@latest init\n```\n\nCLI prompts for framework, TypeScript, paths, and theme preferences. This configures both shadcn\u002Fui and Tailwind CSS.\n\n**Add components:**\n```bash\nnpx shadcn@latest add button card dialog form\n```\n\n**Use components with utility styling:**\n```tsx\nimport { Button } from \"@\u002Fcomponents\u002Fui\u002Fbutton\"\nimport { Card, CardHeader, CardTitle, CardContent } from \"@\u002Fcomponents\u002Fui\u002Fcard\"\n\nexport function Dashboard() {\n  return (\n    \u003Cdiv className=\"container mx-auto p-6 grid gap-6 md:grid-cols-2 lg:grid-cols-3\">\n      \u003CCard className=\"hover:shadow-lg transition-shadow\">\n        \u003CCardHeader>\n          \u003CCardTitle className=\"text-2xl font-bold\">Analytics\u003C\u002FCardTitle>\n        \u003C\u002FCardHeader>\n        \u003CCardContent className=\"space-y-4\">\n          \u003Cp className=\"text-muted-foreground\">View your metrics\u003C\u002Fp>\n          \u003CButton variant=\"default\" className=\"w-full\">\n            View Details\n          \u003C\u002FButton>\n        \u003C\u002FCardContent>\n      \u003C\u002FCard>\n    \u003C\u002Fdiv>\n  )\n}\n```\n\n### Alternative: Tailwind-Only Setup\n\n**Vite projects:**\n```bash\nnpm install -D tailwindcss @tailwindcss\u002Fvite\n```\n\n```javascript\n\u002F\u002F vite.config.ts\nimport tailwindcss from '@tailwindcss\u002Fvite'\nexport default { plugins: [tailwindcss()] }\n```\n\n```css\n\u002F* src\u002Findex.css *\u002F\n@import \"tailwindcss\";\n```\n\n## Component Library Guide\n\n**Comprehensive component catalog with usage patterns, installation, and composition examples.**\n\nSee: `references\u002Fshadcn-components.md`\n\nCovers:\n- Form & input components (Button, Input, Select, Checkbox, Date Picker, Form validation)\n- Layout & navigation (Card, Tabs, Accordion, Navigation Menu)\n- Overlays & dialogs (Dialog, Drawer, Popover, Toast, Command)\n- Feedback & status (Alert, Progress, Skeleton)\n- Display components (Table, Data Table, Avatar, Badge)\n\n## Theme & Customization\n\n**Theme configuration, CSS variables, dark mode implementation, and component customization.**\n\nSee: `references\u002Fshadcn-theming.md`\n\nCovers:\n- Dark mode setup with next-themes\n- CSS variable system\n- Color customization and palettes\n- Component variant customization\n- Theme toggle implementation\n\n## Accessibility Patterns\n\n**ARIA patterns, keyboard navigation, screen reader support, and accessible component usage.**\n\nSee: `references\u002Fshadcn-accessibility.md`\n\nCovers:\n- Radix UI accessibility features\n- Keyboard navigation patterns\n- Focus management\n- Screen reader announcements\n- Form validation accessibility\n\n## Tailwind Utilities\n\n**Core utility classes for layout, spacing, typography, colors, borders, and shadows.**\n\nSee: `references\u002Ftailwind-utilities.md`\n\nCovers:\n- Layout utilities (Flexbox, Grid, positioning)\n- Spacing system (padding, margin, gap)\n- Typography (font sizes, weights, alignment, line height)\n- Colors and backgrounds\n- Borders and shadows\n- Arbitrary values for custom styling\n\n## Responsive Design\n\n**Mobile-first breakpoints, responsive utilities, and adaptive layouts.**\n\nSee: `references\u002Ftailwind-responsive.md`\n\nCovers:\n- Mobile-first approach\n- Breakpoint system (sm, md, lg, xl, 2xl)\n- Responsive utility patterns\n- Container queries\n- Max-width queries\n- Custom breakpoints\n\n## Tailwind Customization\n\n**Config file structure, custom utilities, plugins, and theme extensions.**\n\nSee: `references\u002Ftailwind-customization.md`\n\nCovers:\n- @theme directive for custom tokens\n- Custom colors and fonts\n- Spacing and breakpoint extensions\n- Custom utility creation\n- Custom variants\n- Layer organization (@layer base, components, utilities)\n- Apply directive for component extraction\n\n## Visual Design System\n\n**Canvas-based design philosophy, visual communication principles, and sophisticated compositions.**\n\nSee: `references\u002Fcanvas-design-system.md`\n\nCovers:\n- Design philosophy approach\n- Visual communication over text\n- Systematic patterns and composition\n- Color, form, and spatial design\n- Minimal text integration\n- Museum-quality execution\n- Multi-page design systems\n\n## Utility Scripts\n\n**Python automation for component installation and configuration generation.**\n\n### shadcn_add.py\nAdd shadcn\u002Fui components with dependency handling:\n```bash\npython scripts\u002Fshadcn_add.py button card dialog\n```\n\n### tailwind_config_gen.py\nGenerate tailwind.config.js with custom theme:\n```bash\npython scripts\u002Ftailwind_config_gen.py --colors brand:blue --fonts display:Inter\n```\n\n## Best Practices\n\n1. **Component Composition**: Build complex UIs from simple, composable primitives\n2. **Utility-First Styling**: Use Tailwind classes directly; extract components only for true repetition\n3. **Mobile-First Responsive**: Start with mobile styles, layer responsive variants\n4. **Accessibility-First**: Leverage Radix UI primitives, add focus states, use semantic HTML\n5. **Design Tokens**: Use consistent spacing scale, color palettes, typography system\n6. **Dark Mode Consistency**: Apply dark variants to all themed elements\n7. **Performance**: Leverage automatic CSS purging, avoid dynamic class names\n8. **TypeScript**: Use full type safety for better DX\n9. **Visual Hierarchy**: Let composition guide attention, use spacing and color intentionally\n10. **Expert Craftsmanship**: Every detail matters - treat UI as a craft\n\n## Reference Navigation\n\n**Component Library**\n- `references\u002Fshadcn-components.md` - Complete component catalog\n- `references\u002Fshadcn-theming.md` - Theming and customization\n- `references\u002Fshadcn-accessibility.md` - Accessibility patterns\n\n**Styling System**\n- `references\u002Ftailwind-utilities.md` - Core utility classes\n- `references\u002Ftailwind-responsive.md` - Responsive design\n- `references\u002Ftailwind-customization.md` - Configuration and extensions\n\n**Visual Design**\n- `references\u002Fcanvas-design-system.md` - Design philosophy and canvas workflows\n\n**Automation**\n- `scripts\u002Fshadcn_add.py` - Component installation\n- `scripts\u002Ftailwind_config_gen.py` - Config generation\n\n## Common Patterns\n\n**Form with validation:**\n```tsx\nimport { useForm } from \"react-hook-form\"\nimport { zodResolver } from \"@hookform\u002Fresolvers\u002Fzod\"\nimport * as z from \"zod\"\nimport { Form, FormField, FormItem, FormLabel, FormControl, FormMessage } from \"@\u002Fcomponents\u002Fui\u002Fform\"\nimport { Input } from \"@\u002Fcomponents\u002Fui\u002Finput\"\nimport { Button } from \"@\u002Fcomponents\u002Fui\u002Fbutton\"\n\nconst schema = z.object({\n  email: z.string().email(),\n  password: z.string().min(8)\n})\n\nexport function LoginForm() {\n  const form = useForm({\n    resolver: zodResolver(schema),\n    defaultValues: { email: \"\", password: \"\" }\n  })\n\n  return (\n    \u003CForm {...form}>\n      \u003Cform onSubmit={form.handleSubmit(console.log)} className=\"space-y-6\">\n        \u003CFormField control={form.control} name=\"email\" render={({ field }) => (\n          \u003CFormItem>\n            \u003CFormLabel>Email\u003C\u002FFormLabel>\n            \u003CFormControl>\n              \u003CInput type=\"email\" {...field} \u002F>\n            \u003C\u002FFormControl>\n            \u003CFormMessage \u002F>\n          \u003C\u002FFormItem>\n        )} \u002F>\n        \u003CButton type=\"submit\" className=\"w-full\">Sign In\u003C\u002FButton>\n      \u003C\u002Fform>\n    \u003C\u002FForm>\n  )\n}\n```\n\n**Responsive layout with dark mode:**\n```tsx\n\u003Cdiv className=\"min-h-screen bg-white dark:bg-gray-900\">\n  \u003Cdiv className=\"container mx-auto px-4 py-8\">\n    \u003Cdiv className=\"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6\">\n      \u003CCard className=\"bg-white dark:bg-gray-800 border-gray-200 dark:border-gray-700\">\n        \u003CCardContent className=\"p-6\">\n          \u003Ch3 className=\"text-xl font-semibold text-gray-900 dark:text-white\">\n            Content\n          \u003C\u002Fh3>\n        \u003C\u002FCardContent>\n      \u003C\u002FCard>\n    \u003C\u002Fdiv>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\n```\n\n## Resources\n\n- shadcn\u002Fui Docs: https:\u002F\u002Fui.shadcn.com\n- Tailwind CSS Docs: https:\u002F\u002Ftailwindcss.com\n- Radix UI: https:\u002F\u002Fradix-ui.com\n- Tailwind UI: https:\u002F\u002Ftailwindui.com\n- Headless UI: https:\u002F\u002Fheadlessui.com\n- v0 (AI UI Generator): https:\u002F\u002Fv0.dev\n",{"name":5,"license":15,"version":54,"description":7,"argument-hint":55},"1.0.0","[component or layout]","main","564d425e7432c375e7fe7e0de9fc079d03078178",".opencode\u002Fskills\u002Fui-styling",4,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock","https:\u002F\u002Fgithub.com\u002Fyosnap","2026-05-20 17:03:32",{"source":8,"skillName":5,"commands":64,"prompt":74,"zipAvailable":75},[65,68,71],{"tool":66,"command":67},"npx","npx skills add yosnap\u002Fdevdock --skill \"ck:ui-styling\"",{"tool":69,"command":70},"bunx","bunx skills add yosnap\u002Fdevdock --skill \"ck:ui-styling\"",{"tool":72,"command":73},"pnpm","pnpm dlx skills add yosnap\u002Fdevdock --skill \"ck:ui-styling\"","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002FSKILL.md",true,[77,83,89,93,97,101,105,109,113,117,121,125,129,133,137,141,145,149,153,157,161,165,169,173,177,181,185,189,193,197,201,205,209,213,216,220,224,228,231,235,239,243,247,251,255,259,263,267,271,275,279,283,287,291,294,298,301,305,309,313,317,321,325,329,333,337,340,344,347,351,355,359,363,367,371,375,379,383,386,390,394,398,404,408,412,416,420,424,428,432,438,442,446,450,454,458,462],{"path":78,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":81,"sourceHtmlUrl":82},"canvas-fonts\u002FArsenalSC-OFL.txt","REFERENCE","参考文档",4373,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FArsenalSC-OFL.txt",{"path":84,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":87,"sourceHtmlUrl":88},"canvas-fonts\u002FArsenalSC-Regular.ttf","ASSET","资产文件",165848,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FArsenalSC-Regular.ttf",{"path":90,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":91,"sourceHtmlUrl":92},"canvas-fonts\u002FBigShoulders-Bold.ttf",94528,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FBigShoulders-Bold.ttf",{"path":94,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":95,"sourceHtmlUrl":96},"canvas-fonts\u002FBigShoulders-OFL.txt",4397,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FBigShoulders-OFL.txt",{"path":98,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":99,"sourceHtmlUrl":100},"canvas-fonts\u002FBigShoulders-Regular.ttf",94396,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FBigShoulders-Regular.ttf",{"path":102,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":103,"sourceHtmlUrl":104},"canvas-fonts\u002FBoldonse-OFL.txt",4390,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FBoldonse-OFL.txt",{"path":106,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":107,"sourceHtmlUrl":108},"canvas-fonts\u002FBoldonse-Regular.ttf",77168,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FBoldonse-Regular.ttf",{"path":110,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":111,"sourceHtmlUrl":112},"canvas-fonts\u002FBricolageGrotesque-Bold.ttf",90952,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FBricolageGrotesque-Bold.ttf",{"path":114,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":115,"sourceHtmlUrl":116},"canvas-fonts\u002FBricolageGrotesque-OFL.txt",4403,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FBricolageGrotesque-OFL.txt",{"path":118,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":119,"sourceHtmlUrl":120},"canvas-fonts\u002FBricolageGrotesque-Regular.ttf",90920,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FBricolageGrotesque-Regular.ttf",{"path":122,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":123,"sourceHtmlUrl":124},"canvas-fonts\u002FCrimsonPro-Bold.ttf",107352,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FCrimsonPro-Bold.ttf",{"path":126,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":127,"sourceHtmlUrl":128},"canvas-fonts\u002FCrimsonPro-Italic.ttf",108828,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FCrimsonPro-Italic.ttf",{"path":130,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":131,"sourceHtmlUrl":132},"canvas-fonts\u002FCrimsonPro-OFL.txt",4394,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FCrimsonPro-OFL.txt",{"path":134,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":135,"sourceHtmlUrl":136},"canvas-fonts\u002FCrimsonPro-Regular.ttf",106696,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FCrimsonPro-Regular.ttf",{"path":138,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":139,"sourceHtmlUrl":140},"canvas-fonts\u002FDMMono-OFL.txt",4392,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FDMMono-OFL.txt",{"path":142,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":143,"sourceHtmlUrl":144},"canvas-fonts\u002FDMMono-Regular.ttf",48852,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FDMMono-Regular.ttf",{"path":146,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":147,"sourceHtmlUrl":148},"canvas-fonts\u002FEricaOne-OFL.txt",4410,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FEricaOne-OFL.txt",{"path":150,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":151,"sourceHtmlUrl":152},"canvas-fonts\u002FEricaOne-Regular.ttf",24872,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FEricaOne-Regular.ttf",{"path":154,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":155,"sourceHtmlUrl":156},"canvas-fonts\u002FGeistMono-Bold.ttf",78304,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FGeistMono-Bold.ttf",{"path":158,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":159,"sourceHtmlUrl":160},"canvas-fonts\u002FGeistMono-OFL.txt",4388,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FGeistMono-OFL.txt",{"path":162,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":163,"sourceHtmlUrl":164},"canvas-fonts\u002FGeistMono-Regular.ttf",78232,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FGeistMono-Regular.ttf",{"path":166,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":167,"sourceHtmlUrl":168},"canvas-fonts\u002FGloock-OFL.txt",4381,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FGloock-OFL.txt",{"path":170,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":171,"sourceHtmlUrl":172},"canvas-fonts\u002FGloock-Regular.ttf",95156,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FGloock-Regular.ttf",{"path":174,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":175,"sourceHtmlUrl":176},"canvas-fonts\u002FIBMPlexMono-Bold.ttf",136008,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FIBMPlexMono-Bold.ttf",{"path":178,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":179,"sourceHtmlUrl":180},"canvas-fonts\u002FIBMPlexMono-OFL.txt",4363,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FIBMPlexMono-OFL.txt",{"path":182,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":183,"sourceHtmlUrl":184},"canvas-fonts\u002FIBMPlexMono-Regular.ttf",133796,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FIBMPlexMono-Regular.ttf",{"path":186,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":187,"sourceHtmlUrl":188},"canvas-fonts\u002FIBMPlexSerif-Bold.ttf",161000,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FIBMPlexSerif-Bold.ttf",{"path":190,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":191,"sourceHtmlUrl":192},"canvas-fonts\u002FIBMPlexSerif-BoldItalic.ttf",169840,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FIBMPlexSerif-BoldItalic.ttf",{"path":194,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":195,"sourceHtmlUrl":196},"canvas-fonts\u002FIBMPlexSerif-Italic.ttf",170004,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FIBMPlexSerif-Italic.ttf",{"path":198,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":199,"sourceHtmlUrl":200},"canvas-fonts\u002FIBMPlexSerif-Regular.ttf",160380,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FIBMPlexSerif-Regular.ttf",{"path":202,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":203,"sourceHtmlUrl":204},"canvas-fonts\u002FInstrumentSans-Bold.ttf",68084,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FInstrumentSans-Bold.ttf",{"path":206,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":207,"sourceHtmlUrl":208},"canvas-fonts\u002FInstrumentSans-BoldItalic.ttf",70004,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FInstrumentSans-BoldItalic.ttf",{"path":210,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":211,"sourceHtmlUrl":212},"canvas-fonts\u002FInstrumentSans-Italic.ttf",69900,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FInstrumentSans-Italic.ttf",{"path":214,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":115,"sourceHtmlUrl":215},"canvas-fonts\u002FInstrumentSans-OFL.txt","https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FInstrumentSans-OFL.txt",{"path":217,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":218,"sourceHtmlUrl":219},"canvas-fonts\u002FInstrumentSans-Regular.ttf",68028,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FInstrumentSans-Regular.ttf",{"path":221,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":222,"sourceHtmlUrl":223},"canvas-fonts\u002FInstrumentSerif-Italic.ttf",70868,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FInstrumentSerif-Italic.ttf",{"path":225,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":226,"sourceHtmlUrl":227},"canvas-fonts\u002FInstrumentSerif-Regular.ttf",69312,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FInstrumentSerif-Regular.ttf",{"path":229,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":131,"sourceHtmlUrl":230},"canvas-fonts\u002FItaliana-OFL.txt","https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FItaliana-OFL.txt",{"path":232,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":233,"sourceHtmlUrl":234},"canvas-fonts\u002FItaliana-Regular.ttf",27184,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FItaliana-Regular.ttf",{"path":236,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":237,"sourceHtmlUrl":238},"canvas-fonts\u002FJetBrainsMono-Bold.ttf",114828,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FJetBrainsMono-Bold.ttf",{"path":240,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":241,"sourceHtmlUrl":242},"canvas-fonts\u002FJetBrainsMono-OFL.txt",4399,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FJetBrainsMono-OFL.txt",{"path":244,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":245,"sourceHtmlUrl":246},"canvas-fonts\u002FJetBrainsMono-Regular.ttf",114904,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FJetBrainsMono-Regular.ttf",{"path":248,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":249,"sourceHtmlUrl":250},"canvas-fonts\u002FJura-Light.ttf",154308,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FJura-Light.ttf",{"path":252,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":253,"sourceHtmlUrl":254},"canvas-fonts\u002FJura-Medium.ttf",154488,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FJura-Medium.ttf",{"path":256,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":257,"sourceHtmlUrl":258},"canvas-fonts\u002FJura-OFL.txt",4380,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FJura-OFL.txt",{"path":260,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":261,"sourceHtmlUrl":262},"canvas-fonts\u002FLibreBaskerville-OFL.txt",4449,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FLibreBaskerville-OFL.txt",{"path":264,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":265,"sourceHtmlUrl":266},"canvas-fonts\u002FLibreBaskerville-Regular.ttf",147584,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FLibreBaskerville-Regular.ttf",{"path":268,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":269,"sourceHtmlUrl":270},"canvas-fonts\u002FLora-Bold.ttf",133828,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FLora-Bold.ttf",{"path":272,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":273,"sourceHtmlUrl":274},"canvas-fonts\u002FLora-BoldItalic.ttf",140332,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FLora-BoldItalic.ttf",{"path":276,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":277,"sourceHtmlUrl":278},"canvas-fonts\u002FLora-Italic.ttf",139328,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FLora-Italic.ttf",{"path":280,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":281,"sourceHtmlUrl":282},"canvas-fonts\u002FLora-OFL.txt",4423,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FLora-OFL.txt",{"path":284,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":285,"sourceHtmlUrl":286},"canvas-fonts\u002FLora-Regular.ttf",133888,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FLora-Regular.ttf",{"path":288,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":289,"sourceHtmlUrl":290},"canvas-fonts\u002FNationalPark-Bold.ttf",79208,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FNationalPark-Bold.ttf",{"path":292,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":241,"sourceHtmlUrl":293},"canvas-fonts\u002FNationalPark-OFL.txt","https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FNationalPark-OFL.txt",{"path":295,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":296,"sourceHtmlUrl":297},"canvas-fonts\u002FNationalPark-Regular.ttf",76424,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FNationalPark-Regular.ttf",{"path":299,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":179,"sourceHtmlUrl":300},"canvas-fonts\u002FNothingYouCouldDo-OFL.txt","https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FNothingYouCouldDo-OFL.txt",{"path":302,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":303,"sourceHtmlUrl":304},"canvas-fonts\u002FNothingYouCouldDo-Regular.ttf",32020,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FNothingYouCouldDo-Regular.ttf",{"path":306,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":307,"sourceHtmlUrl":308},"canvas-fonts\u002FOutfit-Bold.ttf",55392,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FOutfit-Bold.ttf",{"path":310,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":311,"sourceHtmlUrl":312},"canvas-fonts\u002FOutfit-OFL.txt",4389,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FOutfit-OFL.txt",{"path":314,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":315,"sourceHtmlUrl":316},"canvas-fonts\u002FOutfit-Regular.ttf",54912,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FOutfit-Regular.ttf",{"path":318,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":319,"sourceHtmlUrl":320},"canvas-fonts\u002FPixelifySans-Medium.ttf",51072,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FPixelifySans-Medium.ttf",{"path":322,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":323,"sourceHtmlUrl":324},"canvas-fonts\u002FPixelifySans-OFL.txt",4395,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FPixelifySans-OFL.txt",{"path":326,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":327,"sourceHtmlUrl":328},"canvas-fonts\u002FPoiretOne-OFL.txt",4366,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FPoiretOne-OFL.txt",{"path":330,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":331,"sourceHtmlUrl":332},"canvas-fonts\u002FPoiretOne-Regular.ttf",45244,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FPoiretOne-Regular.ttf",{"path":334,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":335,"sourceHtmlUrl":336},"canvas-fonts\u002FRedHatMono-Bold.ttf",34420,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FRedHatMono-Bold.ttf",{"path":338,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":131,"sourceHtmlUrl":339},"canvas-fonts\u002FRedHatMono-OFL.txt","https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FRedHatMono-OFL.txt",{"path":341,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":342,"sourceHtmlUrl":343},"canvas-fonts\u002FRedHatMono-Regular.ttf",34488,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FRedHatMono-Regular.ttf",{"path":345,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":131,"sourceHtmlUrl":346},"canvas-fonts\u002FSilkscreen-OFL.txt","https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FSilkscreen-OFL.txt",{"path":348,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":349,"sourceHtmlUrl":350},"canvas-fonts\u002FSilkscreen-Regular.ttf",31960,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FSilkscreen-Regular.ttf",{"path":352,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":353,"sourceHtmlUrl":354},"canvas-fonts\u002FSmoochSans-Medium.ttf",59704,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FSmoochSans-Medium.ttf",{"path":356,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":357,"sourceHtmlUrl":358},"canvas-fonts\u002FSmoochSans-OFL.txt",4396,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FSmoochSans-OFL.txt",{"path":360,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":361,"sourceHtmlUrl":362},"canvas-fonts\u002FTektur-Medium.ttf",76248,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FTektur-Medium.ttf",{"path":364,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":365,"sourceHtmlUrl":366},"canvas-fonts\u002FTektur-OFL.txt",4385,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FTektur-OFL.txt",{"path":368,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":369,"sourceHtmlUrl":370},"canvas-fonts\u002FTektur-Regular.ttf",75604,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FTektur-Regular.ttf",{"path":372,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":373,"sourceHtmlUrl":374},"canvas-fonts\u002FWorkSans-Bold.ttf",191304,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FWorkSans-Bold.ttf",{"path":376,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":377,"sourceHtmlUrl":378},"canvas-fonts\u002FWorkSans-BoldItalic.ttf",175772,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FWorkSans-BoldItalic.ttf",{"path":380,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":381,"sourceHtmlUrl":382},"canvas-fonts\u002FWorkSans-Italic.ttf",174280,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FWorkSans-Italic.ttf",{"path":384,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":95,"sourceHtmlUrl":385},"canvas-fonts\u002FWorkSans-OFL.txt","https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FWorkSans-OFL.txt",{"path":387,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":388,"sourceHtmlUrl":389},"canvas-fonts\u002FWorkSans-Regular.ttf",188916,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FWorkSans-Regular.ttf",{"path":391,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":392,"sourceHtmlUrl":393},"canvas-fonts\u002FYoungSerif-OFL.txt",4398,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FYoungSerif-OFL.txt",{"path":395,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":396,"sourceHtmlUrl":397},"canvas-fonts\u002FYoungSerif-Regular.ttf",105136,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fcanvas-fonts\u002FYoungSerif-Regular.ttf",{"path":399,"resourceType":400,"resourceTypeDesc":401,"sizeBytes":402,"sourceHtmlUrl":403},"LICENSE.txt","LICENSE","许可证",11357,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002FLICENSE.txt",{"path":405,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":406,"sourceHtmlUrl":407},"references\u002Fcanvas-design-system.md",7888,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Freferences\u002Fcanvas-design-system.md",{"path":409,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":410,"sourceHtmlUrl":411},"references\u002Fshadcn-accessibility.md",9976,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Freferences\u002Fshadcn-accessibility.md",{"path":413,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":414,"sourceHtmlUrl":415},"references\u002Fshadcn-components.md",11155,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Freferences\u002Fshadcn-components.md",{"path":417,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":418,"sourceHtmlUrl":419},"references\u002Fshadcn-theming.md",8672,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Freferences\u002Fshadcn-theming.md",{"path":421,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":422,"sourceHtmlUrl":423},"references\u002Ftailwind-customization.md",10171,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Freferences\u002Ftailwind-customization.md",{"path":425,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":426,"sourceHtmlUrl":427},"references\u002Ftailwind-responsive.md",8270,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Freferences\u002Ftailwind-responsive.md",{"path":429,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":430,"sourceHtmlUrl":431},"references\u002Ftailwind-utilities.md",9980,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Freferences\u002Ftailwind-utilities.md",{"path":433,"resourceType":434,"resourceTypeDesc":435,"sizeBytes":436,"sourceHtmlUrl":437},"scripts\u002F.coverage","SCRIPT","脚本",53248,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fscripts\u002F.coverage",{"path":439,"resourceType":434,"resourceTypeDesc":435,"sizeBytes":440,"sourceHtmlUrl":441},"scripts\u002Frequirements.txt",444,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fscripts\u002Frequirements.txt",{"path":443,"resourceType":434,"resourceTypeDesc":435,"sizeBytes":444,"sourceHtmlUrl":445},"scripts\u002Fshadcn_add.py",7991,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fscripts\u002Fshadcn_add.py",{"path":447,"resourceType":434,"resourceTypeDesc":435,"sizeBytes":448,"sourceHtmlUrl":449},"scripts\u002Ftailwind_config_gen.py",13643,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fscripts\u002Ftailwind_config_gen.py",{"path":451,"resourceType":434,"resourceTypeDesc":435,"sizeBytes":452,"sourceHtmlUrl":453},"scripts\u002Ftests\u002Fcoverage-ui.json",35121,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fscripts\u002Ftests\u002Fcoverage-ui.json",{"path":455,"resourceType":434,"resourceTypeDesc":435,"sizeBytes":456,"sourceHtmlUrl":457},"scripts\u002Ftests\u002Frequirements.txt",52,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fscripts\u002Ftests\u002Frequirements.txt",{"path":459,"resourceType":434,"resourceTypeDesc":435,"sizeBytes":460,"sourceHtmlUrl":461},"scripts\u002Ftests\u002Ftest_shadcn_add.py",9920,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fscripts\u002Ftests\u002Ftest_shadcn_add.py",{"path":463,"resourceType":434,"resourceTypeDesc":435,"sizeBytes":464,"sourceHtmlUrl":465},"scripts\u002Ftests\u002Ftest_tailwind_config_gen.py",12158,"https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-styling\u002Fscripts\u002Ftests\u002Ftest_tailwind_config_gen.py",[467,497,522,549,571,590],{"skillNo":468,"name":469,"nameZh":6,"description":470,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":471,"licenseFileUrl":6,"sourceHtmlUrl":472,"categories":473,"keywords":477,"publishedAt":49},"01M6GTDPSDZFE0XCFKBK39BT2J","ck:web-testing","Web testing with Playwright, Vitest, k6. E2E\u002Funit\u002Fintegration\u002Fload\u002Fsecurity\u002Fvisual\u002Fa11y testing. Use for test automation, flakiness, Core Web Vitals, mobile gestures, cross-browser.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fweb-testing\u002FSKILL.md",[474],{"categoryNo":475,"categoryName":476,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",[478,479,480,481,482,483,484,485,486,487,488,489,33,490,491,492,493,494,495,496],"testing","web","web testing","ck:web testing","security","gestures","automation","core","browser","k6","e2e","vitest","mobile","visual","type","web vitals","unit","load","cross-browser",{"skillNo":498,"name":499,"nameZh":6,"description":500,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":501,"categories":502,"keywords":503,"publishedAt":49},"01M6GTDJ0QR9Z531TG8C3B2GN3","ck:web-frameworks","Build with Next.js (App Router, RSC, SSR, ISR), Turborepo monorepos. Use for React apps, server rendering, build optimization, caching strategies, shared dependencies.","https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fweb-frameworks\u002FSKILL.md",[],[479,504,505,506,507,508,509,510,511,512,33,513,514,515,516,517,518,519,520,521],"web frameworks","frameworks","ck:web frameworks","react","ssr","framework","server","turborepo","Optimization","router","next","caching","strategies","shared","feature","app","apps","rendering",{"skillNo":523,"name":524,"nameZh":6,"description":525,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":526,"categories":527,"keywords":531,"publishedAt":49},"01M6GTCF8WB87S84M4EQZVCRDG","ck:threejs","Build 3D web apps with Three.js (WebGL\u002FWebGPU). 556 searchable examples, 60 API classes, 20 use cases. Actions: create 3D scene, load model, add animation, implement physics, build VR\u002FXR. Topics: GLTF loader, PBR materials, particle effects, shadows, post-processing, compute shaders, TSL. Integrations: WebGPU, physics engines, spatial audio.","https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fthreejs\u002FSKILL.md",[528],{"categoryNo":529,"categoryName":530,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口",[532,524,533,534,535,536,537,538,539,540,541,542,543,544,518,520,545,546,547,548],"threejs","webgpu","create","shaders","actions","api","Animation","3D","Audio","model","integrations","three","physics","add","processing","post-processing","vr",{"skillNo":550,"name":551,"nameZh":6,"description":552,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":553,"categories":554,"keywords":555,"publishedAt":49},"01M6GTBBA0E5D1CVZZTFG4HPV3","ck:sequential-thinking","Apply step-by-step analysis for complex problems with revision capability. Use for multi-step reasoning, hypothesis verification, adaptive planning, problem decomposition, course correction.","https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fsequential-thinking\u002FSKILL.md",[],[556,557,558,559,560,561,562,563,564,33,565,566,567,568,569,570],"sequential thinking","thinking","ck:sequential thinking","planning","reasoning","verification","hypothesis","analysis","analyze","decomposition","problem","multi","with","course","revision",{"skillNo":572,"name":573,"nameZh":6,"description":574,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":575,"categories":576,"keywords":580,"publishedAt":49},"01M6GTB26Y169PZFEX59Q9KM7F","ck:research","Research technical solutions, analyze architectures, gather requirements thoroughly. Use for technology evaluation, best practices research, solution design, scalability\u002Fsecurity\u002Fmaintainability analysis.","https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fresearch\u002FSKILL.md",[577],{"categoryNo":578,"categoryName":579,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000021","资料检索与研究",[581,573,41,482,582,583,563,564,584,33,585,586,587,588,589],"research","best practices","Evaluation","technical","scalability","technology","requirements","maintainability","architectures",{"skillNo":591,"name":592,"nameZh":6,"description":593,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":594,"categories":595,"keywords":598,"publishedAt":49},"01M6GT9QNR0TKPCVJSVV1JX8WB","ck:plan","Plan implementations, design architectures, create technical roadmaps with detailed phases. Use for feature planning, system design, solution architecture, implementation strategy, phase documentation.","https:\u002F\u002Fgithub.com\u002Fyosnap\u002Fdevdock\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fplan\u002FSKILL.md",[596,597],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},[599,592,41,600,601,559,602,603,604,605,606,584,607,33,608,609,518,589,610,568],"plan","architecture","documentation","implementation strategy","red-team","team","system","archive","strategy","system design","task","feature planning"]