ultimateuiux by clownnvd/claude-code-skills
npx skills add https://github.com/clownnvd/claude-code-skills --skill ultimateuiux适用于网页和移动应用的全面设计指南。包含 93 种样式、121 个调色板、81 种字体配对、130 条 UX 指南、35 种图表类型、79 种组件模式、62 种动画、65 条 WCAG 2.2 标准、46 种响应式模式、46 条深色模式规则,以及涵盖 13 种技术栈的 60 种设计令牌。提供基于 BM25 排名和优先级推荐的可搜索数据库。
在以下情况下参考这些指南:
| 优先级 | 类别 | 影响 | 领域 |
|---|---|---|---|
| 1 | 无障碍访问 | 关键 | ux |
| 2 | 触摸与交互 | 关键 | ux |
| 3 | 性能 | 高 | ux |
Comprehensive design guide for web and mobile applications. Contains 93 styles, 121 color palettes, 81 font pairings, 130 UX guidelines, 35 chart types, 79 component patterns, 62 animations, 65 WCAG 2.2 criteria, 46 responsive patterns, 46 dark mode rules, and 60 design tokens across 13 technology stacks. Searchable database with BM25 ranking and priority-based recommendations.
Reference these guidelines when:
| Priority | Category | Impact | Domain |
|---|---|---|---|
| 1 | Accessibility | CRITICAL | ux |
| 2 | Touch & Interaction | CRITICAL | ux |
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
| 4 | 布局与响应式 | 高 | ux |
| 5 | 字体排版与颜色 | 中 | typography, color |
| 6 | 动画 | 中 | ux |
| 7 | 样式选择 | 中 | style, product |
| 8 | 图表与数据 | 低 | chart |
color-contrast - 普通文本的最小对比度比为 4.5:1focus-states - 交互元素上可见的焦点环alt-text - 为有意义的图像提供描述性替代文本aria-labels - 为纯图标按钮提供 aria-labelkeyboard-nav - Tab 键顺序与视觉顺序一致form-labels - 使用带 for 属性的 label 标签touch-target-size - 最小 44x44px 的触摸目标hover-vs-tap - 主要交互使用点击/轻触loading-buttons - 异步操作期间禁用按钮error-feedback - 在问题附近提供清晰的错误信息cursor-pointer - 为可点击元素添加 cursor-pointerimage-optimization - 使用 WebP、srcset、懒加载reduced-motion - 检查 prefers-reduced-motioncontent-jumping - 为异步内容预留空间viewport-meta - width=device-width initial-scale=1readable-font-size - 移动端正文文本最小 16pxhorizontal-scroll - 确保内容适应视口宽度z-index-management - 定义 z-index 层级(10, 20, 30, 50)line-height - 正文文本使用 1.5-1.75 行高line-length - 每行限制在 65-75 个字符font-pairing - 标题/正文字体风格匹配duration-timing - 微交互使用 150-300ms 时长transform-performance - 使用 transform/opacity,而非 width/heightloading-states - 骨架屏或加载指示器style-match - 样式与产品类型匹配consistency - 所有页面使用相同样式no-emoji-icons - 使用 SVG 图标,而非表情符号chart-type - 图表类型与数据类型匹配color-guidance - 使用无障碍调色板data-table - 为无障碍访问提供表格替代方案使用下面的 CLI 工具搜索特定领域。
检查是否已安装 Python:
python3 --version || python --version
如果未安装 Python,请根据用户的操作系统进行安装:
macOS:
brew install python3
Ubuntu/Debian:
sudo apt update && sudo apt install python3
Windows:
winget install Python.Python.3.12
当用户请求 UI/UX 工作(设计、构建、创建、实现、审查、修复、改进)时,遵循以下工作流程:
从用户请求中提取关键信息:
html-tailwind始终以 --design-system 开始,以获取包含推理的全面推荐:
python3 skills/ui-ux-pro-max/scripts/search.py "<product_type> <industry> <keywords>" --design-system [-p "Project Name"]
此命令:
ui-reasoning.csv 中的推理规则以选择最佳匹配示例:
python3 skills/ui-ux-pro-max/scripts/search.py "beauty spa wellness service" --design-system -p "Serenity Spa"
要保存设计系统以跨会话进行分层检索,请添加 --persist:
python3 skills/ui-ux-pro-max/scripts/search.py "<query>" --design-system --persist -p "Project Name"
这将创建:
design-system/MASTER.md — 包含所有设计规则的全局单一事实来源design-system/pages/ — 用于存放页面特定覆盖的文件夹使用页面特定覆盖:
python3 skills/ui-ux-pro-max/scripts/search.py "<query>" --design-system --persist -p "Project Name" --page "dashboard"
这还会创建:
design-system/pages/dashboard.md — 页面特定的、与主文件不同的规则分层检索的工作原理:
design-system/pages/checkout.mddesign-system/MASTER.md上下文感知的检索提示:
I am building the [Page Name] page. Please read design-system/MASTER.md.
Also check if design-system/pages/[page-name].md exists.
If the page file exists, prioritize its rules.
If not, use the Master rules exclusively.
Now, generate the code...
获取设计系统后,使用领域搜索获取更多细节:
python3 skills/ui-ux-pro-max/scripts/search.py "<keyword>" --domain <domain> [-n <max_results>]
何时使用详细搜索:
| 需求 | 领域 | 示例 |
|---|---|---|
| 更多样式选项 | style | --domain style "glassmorphism dark" |
| 图表推荐 | chart | --domain chart "real-time dashboard" |
| UX 最佳实践 | ux | --domain ux "animation accessibility" |
| 替代字体 | typography | --domain typography "elegant luxury" |
| 落地页结构 | landing | --domain landing "hero social-proof" |
| 动画模式 | animation | --domain animation "hover button loading" |
| 组件模式 | component | --domain component "modal dialog form" |
| 响应式设计 | responsive | --domain responsive "container query fluid" |
| 深色模式规则 | darkmode | --domain darkmode "background contrast OLED" |
| 设计令牌 | tokens | --domain tokens "spacing shadow elevation" |
| WCAG 无障碍访问 | a11y | --domain a11y "focus keyboard contrast" |
获取特定于实现的最佳实践。如果用户未指定技术栈,默认使用 html-tailwind。
python3 skills/ui-ux-pro-max/scripts/search.py "<keyword>" --stack html-tailwind
可用技术栈:html-tailwind, react, nextjs, vue, svelte, swiftui, react-native, flutter, shadcn, jetpack-compose
| 领域 | 用途 | 示例关键词 |
|---|---|---|
product | 产品类型推荐 | SaaS, e-commerce, portfolio, healthcare, beauty, service |
style | UI 样式、颜色、效果 | glassmorphism, minimalism, dark mode, brutalism, view transitions |
typography | 字体配对、Google Fonts | elegant, playful, professional, variable font, Vietnamese |
color | 按产品类型划分的调色板 | saas, ecommerce, healthcare, AI/ML, Web3, EdTech |
landing | 页面结构、CTA 策略 | hero, testimonial, pricing, AI demo, developer, PLG |
chart | 图表类型、库推荐 | trend, funnel, flamegraph, embedding, gantt, topology |
ux | 最佳实践、反模式 | scroll-driven, view transitions, container queries, WCAG 2.2 |
react | React/Next.js 性能 | waterfall, bundle, suspense, memo, rerender, cache |
web | Web 界面指南 | aria, focus, semantic, CLS, preconnect, dark mode |
animation | 微交互、过渡效果 | hover, click, loading, skeleton, scroll, toast, fade |
component | 组件最佳实践 | button, modal, form, table, toast, dropdown, carousel |
responsive | 断点、容器查询 | mobile-first, fluid, clamp, srcset, container query |
darkmode | 深色模式设计指南 | dark theme, OLED, surface color, contrast, toggle |
tokens | 设计令牌、间距、阴影 | spacing, shadow, elevation, z-index, border-radius, scale |
a11y | WCAG 2.2 无障碍访问 | wcag, contrast, screen reader, focus, keyboard, aria |
blueprint | 网站克隆蓝图 | resend, claudekit, clone, recreate, rebuild, replicate |
prompt | AI 提示词、CSS 关键词 | (style name) |
| 技术栈 | 关注点 |
|---|---|
html-tailwind | Tailwind 工具类、响应式、无障碍访问(默认) |
react | 状态、钩子、性能、模式 |
nextjs | SSR、路由、图片、API 路由 |
vue | 组合式 API、Pinia、Vue Router |
svelte | Runes、stores、SvelteKit |
swiftui | 视图、状态、导航、动画 |
react-native | 组件、导航、列表 |
flutter | 组件、状态、布局、主题 |
shadcn | shadcn/ui 组件、主题、表单、模式 |
jetpack-compose | 可组合项、修饰符、状态提升、重组 |
用户请求: "Làm landing page cho dịch vụ chăm sóc da chuyên nghiệp"
python3 skills/ui-ux-pro-max/scripts/search.py "beauty spa wellness service elegant" --design-system -p "Serenity Spa"
输出: 包含模式、样式、颜色、字体排版、效果和反模式的完整设计系统。
# 获取动画和无障碍访问的 UX 指南
python3 skills/ui-ux-pro-max/scripts/search.py "animation accessibility" --domain ux
# 如果需要,获取替代字体排版选项
python3 skills/ui-ux-pro-max/scripts/search.py "elegant luxury serif" --domain typography
python3 skills/ui-ux-pro-max/scripts/search.py "layout responsive form" --stack html-tailwind
然后: 综合设计系统 + 详细搜索并实现设计。
--design-system 标志支持两种输出格式:
# ASCII 框(默认)- 最适合终端显示
python3 skills/ui-ux-pro-max/scripts/search.py "fintech crypto" --design-system
# Markdown - 最适合文档
python3 skills/ui-ux-pro-max/scripts/search.py "fintech crypto" --design-system -f markdown
这些是经常被忽视、导致 UI 看起来不专业的问题:
| 规则 | 应该做 | 不应该做 |
|---|---|---|
| 不使用表情符号图标 | 使用 SVG 图标(Heroicons, Lucide, Simple Icons) | 使用 🎨 🚀 ⚙️ 等表情符号作为 UI 图标 |
| 稳定的悬停状态 | 悬停时使用颜色/不透明度过渡 | 使用导致布局偏移的缩放变换 |
| 正确的品牌标志 | 从 Simple Icons 研究官方 SVG | 猜测或使用错误的标志路径 |
| 一致的图标尺寸 | 使用固定的 viewBox(24x24)配合 w-6 h-6 | 随意混合不同尺寸的图标 |
| 规则 | 应该做 | 不应该做 |
|---|---|---|
| 光标指针 | 为所有可点击/可悬停的卡片添加 cursor-pointer | 在交互元素上保留默认光标 |
| 悬停反馈 | 提供视觉反馈(颜色、阴影、边框) | 没有指示元素是可交互的 |
| 平滑过渡 | 使用 transition-colors duration-200 | 状态瞬间改变或过慢(>500ms) |
| 规则 | 应该做 | 不应该做 |
|---|---|---|
| 玻璃卡片浅色模式 | 使用 bg-white/80 或更高不透明度 | 使用 bg-white/10(太透明) |
| 文本对比度浅色 | 文本使用 #0F172A (slate-900) | 正文文本使用 #94A3B8 (slate-400) |
| 弱化文本浅色 | 至少使用 #475569 (slate-600) | 使用 gray-400 或更浅的颜色 |
| 边框可见性 | 浅色模式使用 border-gray-200 | 使用 border-white/10(不可见) |
| 规则 | 应该做 | 不应该做 |
|---|---|---|
| 浮动导航栏 | 添加 top-4 left-4 right-4 间距 | 将导航栏固定在 top-0 left-0 right-0 |
| 内容内边距 | 考虑固定导航栏的高度 | 让内容隐藏在固定元素后面 |
| 一致的最大宽度 | 使用相同的 max-w-6xl 或 max-w-7xl | 混合使用不同的容器宽度 |
在交付 UI 代码之前,验证以下项目:
cursor-pointerprefers-reduced-motion当用户说 "recreate Claude"、"clone Claude UI"、"rebuild Claude"、"tái tạo Claude" 或类似内容时 — 直接使用此蓝图,无需运行搜索脚本。
完整知识库: memory/claude-ui-flows.md 截图: screenshots/flows/ (100+ 张截图)
| 令牌 | 值 |
|---|---|
| 背景 | #F9F6F0 (暖奶油色) |
| 表面 | #FFFFFF |
| 主要文本 | #0F0F0F |
| 品牌强调色 | #C96A4A (珊瑚色 — 标志、发送按钮) |
| CTA 按钮 | bg-black text-white |
| 输入框边框 | #E0E0E0 |
| 标题字体 | 衬线体(类似 Georgia) |
| 正文字体 | 系统无衬线体 |
| 边框半径 | rounded-lg (8px) 输入框,rounded-full 药丸形 |
| 侧边栏 | 仅图标垂直布局,折叠时宽 48px |
// 主布局:侧边栏 + 内容区
<div className="flex h-screen bg-[#F9F6F0]">
<Sidebar /> {/* w-12 折叠 / w-64 展开 */}
<main className="flex-1 flex flex-col">
<TopBar />
<ChatArea />
<ChatInput />
</main>
</div>
<div className="border border-gray-200 rounded-xl bg-white p-3 shadow-sm">
<textarea placeholder="How can I help you today?" />
<div className="flex items-center justify-between mt-2">
<div className="flex gap-2">
<button>+</button> {/* 附件 */}
<button>⚡</button> {/* 样式 */}
</div>
<div className="flex items-center gap-2">
<span>Claude Sonnet 4 ↓</span>
<button className="bg-[#C96A4A] text-white rounded-full w-8 h-8">↑</button>
</div>
</div>
</div>
<div className="flex flex-col items-center justify-center flex-1">
<h1 className="text-3xl font-serif text-gray-900">
✳ How was your day, {userName}?
</h1>
<ChatInput />
<div className="flex gap-2 mt-3">
{["Create","Strategize","Write","Learn","Code"].map(label => (
<button className="px-3 py-1.5 rounded-full border border-gray-300 text-sm">{label}</button>
))}
</div>
</div>
// 折叠状态(仅图标)
<nav className="w-12 flex flex-col items-center py-4 gap-4 border-r border-gray-200">
<MenuIcon />
<NewChatButton className="bg-[#C96A4A] rounded-full w-8 h-8" />
<ChatsIcon />
<ProjectsIcon />
<ArtifactsIcon />
{/* 间隔 */}
<UserAvatar className="mt-auto" />
</nav>
// 展开状态
<nav className="w-64 flex flex-col py-4 border-r border-gray-200">
<span className="font-semibold px-4">Claude</span>
<NewChatButton>New chat</NewChatButton>
<NavItem>Chats</NavItem>
<NavItem badge="Upgrade">Projects</NavItem>
<NavItem>Artifacts</NavItem>
<Section title="Starred">{starredItems}</Section>
<Section title="Recents">{recentChats}</Section>
<UserMenu /> {/* 底部 */}
</nav>
<div className="flex min-h-screen">
<aside className="w-48 p-6">
<h2>Settings</h2>
<nav>
{["Profile","Appearance","Account","Privacy","Billing","Connectors"].map(tab => (
<a className={active === tab ? "font-medium bg-gray-100 rounded" : ""}>{tab}</a>
))}
</nav>
</aside>
<main className="flex-1 p-8 max-w-3xl">
{/* 标签页内容 */}
</main>
</div>
// 颜色模式选择器 — 3 个预览卡片
<div className="grid grid-cols-3 gap-4">
{["Light","Match system","Dark"].map(mode => (
<label className="border-2 rounded-xl p-4 cursor-pointer">
<ModePreview mode={mode} />
<span>{mode}</span>
</label>
))}
</div>
// 字体选择器 — 3 个选项
<div className="grid grid-cols-3 gap-4">
{["Default","Match system","Dyslexic friendly"].map(font => (
<label className="border-2 rounded-xl p-6 text-center cursor-pointer">
<span className="text-3xl">Aa</span>
<span>{font}</span>
</label>
))}
</div>
// 3 个层级:免费 / 专业版 / 高级版
<div className="grid grid-cols-3 gap-6">
{plans.map(plan => (
<div className="border rounded-2xl p-6">
<PlanIcon />
<h3>{plan.name}</h3>
<p className="text-sm text-gray-500">{plan.description}</p>
<div className="text-3xl font-bold">{plan.price}</div>
<button className="w-full bg-black text-white rounded-lg py-2 mt-4">{plan.cta}</button>
<ul className="mt-4 space-y-2">
{plan.features.map(f => <li className="flex gap-2">✓ {f}</li>)}
</ul>
</div>
))}
</div>
// 分步进行,每屏一个问题,居中,极简界面
<div className="min-h-screen bg-[#F9F6F0] flex flex-col items-center justify-center">
<Logo className="mb-8" />
<div className="max-w-md w-full px-4">
{/* 步骤 1:姓名 */}
<p>Before we get started, what should I call you?</p>
<div className="flex border rounded-lg mt-4">
<input placeholder="Enter your name" className="flex-1 p-3" />
<button className="bg-black text-white px-4 rounded-r-lg">→</button>
</div>
{/* 步骤 2:主题选择器 */}
<p>What are you into? Pick three topics.</p>
<div className="flex flex-wrap gap-2">
{topics.map(t => <button className="px-4 py-2 border rounded-full">{t}</button>)}
</div>
<button className="bg-gray-800 text-white px-6 py-2 rounded-full">Let's go</button>
</div>
</div>
// 分割:左侧 = 表单,右侧 = 演示预览
<div className="min-h-screen grid grid-cols-2">
<div className="flex flex-col items-center justify-center p-12">
<Logo />
<h1 className="text-3xl font-serif">Your ideas, amplified</h1>
<p className="text-gray-500 mt-2">Privacy-first AI that helps you create in confidence.</p>
<button className="w-full border rounded-lg py-3 mt-8 flex items-center justify-center gap-2">
<GoogleIcon /> Continue with Google
</button>
<div className="text-center text-gray-400 my-4">OR</div>
<input type="email" placeholder="Enter your personal or work email" className="w-full border rounded-lg p-3" />
<button className="w-full bg-black text-white rounded-lg py-3 mt-3">Continue with email</button>
</div>
<div className="bg-gray-50 flex items-center justify-center p-12">
{/* 演示聊天预览 */}
<DemoChatPreview />
</div>
</div>
#F9F6F0 — 非纯白色每周安装次数
1
仓库
首次出现
今天
安全审计
安装于
zencoder1
amp1
cline1
openclaw1
opencode1
cursor1
| 3 | Performance | HIGH | ux |
| 4 | Layout & Responsive | HIGH | ux |
| 5 | Typography & Color | MEDIUM | typography, color |
| 6 | Animation | MEDIUM | ux |
| 7 | Style Selection | MEDIUM | style, product |
| 8 | Charts & Data | LOW | chart |
color-contrast - Minimum 4.5:1 ratio for normal textfocus-states - Visible focus rings on interactive elementsalt-text - Descriptive alt text for meaningful imagesaria-labels - aria-label for icon-only buttonskeyboard-nav - Tab order matches visual orderform-labels - Use label with for attributetouch-target-size - Minimum 44x44px touch targetshover-vs-tap - Use click/tap for primary interactionsloading-buttons - Disable button during async operationserror-feedback - Clear error messages near problemcursor-pointer - Add cursor-pointer to clickable elementsimage-optimization - Use WebP, srcset, lazy loadingreduced-motion - Check prefers-reduced-motioncontent-jumping - Reserve space for async contentviewport-meta - width=device-width initial-scale=1readable-font-size - Minimum 16px body text on mobilehorizontal-scroll - Ensure content fits viewport widthz-index-management - Define z-index scale (10, 20, 30, 50)line-height - Use 1.5-1.75 for body textline-length - Limit to 65-75 characters per linefont-pairing - Match heading/body font personalitiesduration-timing - Use 150-300ms for micro-interactionstransform-performance - Use transform/opacity, not width/heightloading-states - Skeleton screens or spinnersstyle-match - Match style to product typeconsistency - Use same style across all pagesno-emoji-icons - Use SVG icons, not emojischart-type - Match chart type to data typecolor-guidance - Use accessible color palettesdata-table - Provide table alternative for accessibilitySearch specific domains using the CLI tool below.
Check if Python is installed:
python3 --version || python --version
If Python is not installed, install it based on user's OS:
macOS:
brew install python3
Ubuntu/Debian:
sudo apt update && sudo apt install python3
Windows:
winget install Python.Python.3.12
When user requests UI/UX work (design, build, create, implement, review, fix, improve), follow this workflow:
Extract key information from user request:
html-tailwindAlways start with--design-system to get comprehensive recommendations with reasoning:
python3 skills/ui-ux-pro-max/scripts/search.py "<product_type> <industry> <keywords>" --design-system [-p "Project Name"]
This command:
ui-reasoning.csv to select best matchesExample:
python3 skills/ui-ux-pro-max/scripts/search.py "beauty spa wellness service" --design-system -p "Serenity Spa"
To save the design system for hierarchical retrieval across sessions , add --persist:
python3 skills/ui-ux-pro-max/scripts/search.py "<query>" --design-system --persist -p "Project Name"
This creates:
design-system/MASTER.md — Global Source of Truth with all design rulesdesign-system/pages/ — Folder for page-specific overridesWith page-specific override:
python3 skills/ui-ux-pro-max/scripts/search.py "<query>" --design-system --persist -p "Project Name" --page "dashboard"
This also creates:
design-system/pages/dashboard.md — Page-specific deviations from MasterHow hierarchical retrieval works:
design-system/pages/checkout.mddesign-system/MASTER.md exclusivelyContext-aware retrieval prompt:
I am building the [Page Name] page. Please read design-system/MASTER.md.
Also check if design-system/pages/[page-name].md exists.
If the page file exists, prioritize its rules.
If not, use the Master rules exclusively.
Now, generate the code...
After getting the design system, use domain searches to get additional details:
python3 skills/ui-ux-pro-max/scripts/search.py "<keyword>" --domain <domain> [-n <max_results>]
When to use detailed searches:
| Need | Domain | Example |
|---|---|---|
| More style options | style | --domain style "glassmorphism dark" |
| Chart recommendations | chart | --domain chart "real-time dashboard" |
| UX best practices | ux | --domain ux "animation accessibility" |
| Alternative fonts | typography | --domain typography "elegant luxury" |
| Landing structure | landing | --domain landing "hero social-proof" |
| Animation patterns | animation | --domain animation "hover button loading" |
| Component patterns | component | --domain component "modal dialog form" |
| Responsive design | responsive | --domain responsive "container query fluid" |
| Dark mode rules | darkmode | --domain darkmode "background contrast OLED" |
| Design tokens | tokens | --domain tokens "spacing shadow elevation" |
| WCAG accessibility | a11y | --domain a11y "focus keyboard contrast" |
Get implementation-specific best practices. If user doesn't specify a stack, default tohtml-tailwind.
python3 skills/ui-ux-pro-max/scripts/search.py "<keyword>" --stack html-tailwind
Available stacks: html-tailwind, react, nextjs, vue, svelte, swiftui, react-native, flutter, shadcn, jetpack-compose
| Domain | Use For | Example Keywords |
|---|---|---|
product | Product type recommendations | SaaS, e-commerce, portfolio, healthcare, beauty, service |
style | UI styles, colors, effects | glassmorphism, minimalism, dark mode, brutalism, view transitions |
typography | Font pairings, Google Fonts | elegant, playful, professional, variable font, Vietnamese |
color | Color palettes by product type | saas, ecommerce, healthcare, AI/ML, Web3, EdTech |
landing | Page structure, CTA strategies | hero, testimonial, pricing, AI demo, developer, PLG |
chart | Chart types, library recommendations | trend, funnel, flamegraph, embedding, gantt, topology |
ux | Best practices, anti-patterns | scroll-driven, view transitions, container queries, WCAG 2.2 |
react | React/Next.js performance | waterfall, bundle, suspense, memo, rerender, cache |
web | Web interface guidelines | aria, focus, semantic, CLS, preconnect, dark mode |
animation | Micro-interactions, transitions | hover, click, loading, skeleton, scroll, toast, fade |
component | Component best practices | button, modal, form, table, toast, dropdown, carousel |
responsive | Breakpoints, container queries | mobile-first, fluid, clamp, srcset, container query |
darkmode | Dark mode design guide | dark theme, OLED, surface color, contrast, toggle |
tokens | Design tokens, spacing, shadows | spacing, shadow, elevation, z-index, border-radius, scale |
a11y | WCAG 2.2 accessibility | wcag, contrast, screen reader, focus, keyboard, aria |
blueprint | Site cloning blueprints | resend, claudekit, clone, recreate, rebuild, replicate |
prompt | AI prompts, CSS keywords | (style name) |
| Stack | Focus |
|---|---|
html-tailwind | Tailwind utilities, responsive, a11y (DEFAULT) |
react | State, hooks, performance, patterns |
nextjs | SSR, routing, images, API routes |
vue | Composition API, Pinia, Vue Router |
svelte | Runes, stores, SvelteKit |
swiftui | Views, State, Navigation, Animation |
react-native | Components, Navigation, Lists |
flutter | Widgets, State, Layout, Theming |
shadcn | shadcn/ui components, theming, forms, patterns |
jetpack-compose | Composables, Modifiers, State Hoisting, Recomposition |
User request: "Làm landing page cho dịch vụ chăm sóc da chuyên nghiệp"
python3 skills/ui-ux-pro-max/scripts/search.py "beauty spa wellness service elegant" --design-system -p "Serenity Spa"
Output: Complete design system with pattern, style, colors, typography, effects, and anti-patterns.
# Get UX guidelines for animation and accessibility
python3 skills/ui-ux-pro-max/scripts/search.py "animation accessibility" --domain ux
# Get alternative typography options if needed
python3 skills/ui-ux-pro-max/scripts/search.py "elegant luxury serif" --domain typography
python3 skills/ui-ux-pro-max/scripts/search.py "layout responsive form" --stack html-tailwind
Then: Synthesize design system + detailed searches and implement the design.
The --design-system flag supports two output formats:
# ASCII box (default) - best for terminal display
python3 skills/ui-ux-pro-max/scripts/search.py "fintech crypto" --design-system
# Markdown - best for documentation
python3 skills/ui-ux-pro-max/scripts/search.py "fintech crypto" --design-system -f markdown
These are frequently overlooked issues that make UI look unprofessional:
| Rule | Do | Don't |
|---|---|---|
| No emoji icons | Use SVG icons (Heroicons, Lucide, Simple Icons) | Use emojis like 🎨 🚀 ⚙️ as UI icons |
| Stable hover states | Use color/opacity transitions on hover | Use scale transforms that shift layout |
| Correct brand logos | Research official SVG from Simple Icons | Guess or use incorrect logo paths |
| Consistent icon sizing | Use fixed viewBox (24x24) with w-6 h-6 | Mix different icon sizes randomly |
| Rule | Do | Don't |
|---|---|---|
| Cursor pointer | Add cursor-pointer to all clickable/hoverable cards | Leave default cursor on interactive elements |
| Hover feedback | Provide visual feedback (color, shadow, border) | No indication element is interactive |
| Smooth transitions | Use transition-colors duration-200 | Instant state changes or too slow (>500ms) |
| Rule | Do | Don't |
|---|---|---|
| Glass card light mode | Use bg-white/80 or higher opacity | Use bg-white/10 (too transparent) |
| Text contrast light | Use #0F172A (slate-900) for text | Use #94A3B8 (slate-400) for body text |
| Muted text light | Use #475569 (slate-600) minimum | Use gray-400 or lighter |
| Border visibility | Use border-gray-200 in light mode | Use border-white/10 (invisible) |
| Rule | Do | Don't |
|---|---|---|
| Floating navbar | Add top-4 left-4 right-4 spacing | Stick navbar to top-0 left-0 right-0 |
| Content padding | Account for fixed navbar height | Let content hide behind fixed elements |
| Consistent max-width | Use same max-w-6xl or max-w-7xl | Mix different container widths |
Before delivering UI code, verify these items:
cursor-pointerprefers-reduced-motion respectedWhen user says "recreate Claude", "clone Claude UI", "rebuild Claude", "tái tạo Claude", or similar — use this blueprint directly without running search scripts.
Full knowledge base: memory/claude-ui-flows.md Screenshots: screenshots/flows/ (100+ screens)
| Token | Value |
|---|---|
| Background | #F9F6F0 (warm cream) |
| Surface | #FFFFFF |
| Text primary | #0F0F0F |
| Brand accent | #C96A4A (coral — logo, send btn) |
| CTA button | bg-black text-white |
| Input border | #E0E0E0 |
| Font heading | Serif (Georgia-like) |
| Font body | System sans-serif |
| Border radius | rounded-lg (8px) inputs, rounded-full pills |
| Sidebar | Icon-only vertical, 48px wide collapsed |
// Main layout: sidebar + content
<div className="flex h-screen bg-[#F9F6F0]">
<Sidebar /> {/* w-12 collapsed / w-64 expanded */}
<main className="flex-1 flex flex-col">
<TopBar />
<ChatArea />
<ChatInput />
</main>
</div>
<div className="border border-gray-200 rounded-xl bg-white p-3 shadow-sm">
<textarea placeholder="How can I help you today?" />
<div className="flex items-center justify-between mt-2">
<div className="flex gap-2">
<button>+</button> {/* attach */}
<button>⚡</button> {/* style */}
</div>
<div className="flex items-center gap-2">
<span>Claude Sonnet 4 ↓</span>
<button className="bg-[#C96A4A] text-white rounded-full w-8 h-8">↑</button>
</div>
</div>
</div>
<div className="flex flex-col items-center justify-center flex-1">
<h1 className="text-3xl font-serif text-gray-900">
✳ How was your day, {userName}?
</h1>
<ChatInput />
<div className="flex gap-2 mt-3">
{["Create","Strategize","Write","Learn","Code"].map(label => (
<button className="px-3 py-1.5 rounded-full border border-gray-300 text-sm">{label}</button>
))}
</div>
</div>
// Collapsed (icon only)
<nav className="w-12 flex flex-col items-center py-4 gap-4 border-r border-gray-200">
<MenuIcon />
<NewChatButton className="bg-[#C96A4A] rounded-full w-8 h-8" />
<ChatsIcon />
<ProjectsIcon />
<ArtifactsIcon />
{/* spacer */}
<UserAvatar className="mt-auto" />
</nav>
// Expanded
<nav className="w-64 flex flex-col py-4 border-r border-gray-200">
<span className="font-semibold px-4">Claude</span>
<NewChatButton>New chat</NewChatButton>
<NavItem>Chats</NavItem>
<NavItem badge="Upgrade">Projects</NavItem>
<NavItem>Artifacts</NavItem>
<Section title="Starred">{starredItems}</Section>
<Section title="Recents">{recentChats}</Section>
<UserMenu /> {/* bottom */}
</nav>
<div className="flex min-h-screen">
<aside className="w-48 p-6">
<h2>Settings</h2>
<nav>
{["Profile","Appearance","Account","Privacy","Billing","Connectors"].map(tab => (
<a className={active === tab ? "font-medium bg-gray-100 rounded" : ""}>{tab}</a>
))}
</nav>
</aside>
<main className="flex-1 p-8 max-w-3xl">
{/* tab content */}
</main>
</div>
// Color mode picker — 3 preview cards
<div className="grid grid-cols-3 gap-4">
{["Light","Match system","Dark"].map(mode => (
<label className="border-2 rounded-xl p-4 cursor-pointer">
<ModePreview mode={mode} />
<span>{mode}</span>
</label>
))}
</div>
// Font picker — 3 options
<div className="grid grid-cols-3 gap-4">
{["Default","Match system","Dyslexic friendly"].map(font => (
<label className="border-2 rounded-xl p-6 text-center cursor-pointer">
<span className="text-3xl">Aa</span>
<span>{font}</span>
</label>
))}
</div>
// 3 tiers: Free / Pro / Max
<div className="grid grid-cols-3 gap-6">
{plans.map(plan => (
<div className="border rounded-2xl p-6">
<PlanIcon />
<h3>{plan.name}</h3>
<p className="text-sm text-gray-500">{plan.description}</p>
<div className="text-3xl font-bold">{plan.price}</div>
<button className="w-full bg-black text-white rounded-lg py-2 mt-4">{plan.cta}</button>
<ul className="mt-4 space-y-2">
{plan.features.map(f => <li className="flex gap-2">✓ {f}</li>)}
</ul>
</div>
))}
</div>
// Step-by-step, one question per screen, centered, minimal chrome
<div className="min-h-screen bg-[#F9F6F0] flex flex-col items-center justify-center">
<Logo className="mb-8" />
<div className="max-w-md w-full px-4">
{/* Step 1: Name */}
<p>Before we get started, what should I call you?</p>
<div className="flex border rounded-lg mt-4">
<input placeholder="Enter your name" className="flex-1 p-3" />
<button className="bg-black text-white px-4 rounded-r-lg">→</button>
</div>
{/* Step 2: Topic picker */}
<p>What are you into? Pick three topics.</p>
<div className="flex flex-wrap gap-2">
{topics.map(t => <button className="px-4 py-2 border rounded-full">{t}</button>)}
</div>
<button className="bg-gray-800 text-white px-6 py-2 rounded-full">Let's go</button>
</div>
</div>
// Split: left = form, right = demo preview
<div className="min-h-screen grid grid-cols-2">
<div className="flex flex-col items-center justify-center p-12">
<Logo />
<h1 className="text-3xl font-serif">Your ideas, amplified</h1>
<p className="text-gray-500 mt-2">Privacy-first AI that helps you create in confidence.</p>
<button className="w-full border rounded-lg py-3 mt-8 flex items-center justify-center gap-2">
<GoogleIcon /> Continue with Google
</button>
<div className="text-center text-gray-400 my-4">OR</div>
<input type="email" placeholder="Enter your personal or work email" className="w-full border rounded-lg p-3" />
<button className="w-full bg-black text-white rounded-lg py-3 mt-3">Continue with email</button>
</div>
<div className="bg-gray-50 flex items-center justify-center p-12">
{/* Demo chat preview */}
<DemoChatPreview />
</div>
</div>
#F9F6F0 — NOT pure whiteWeekly Installs
1
Repository
First Seen
Today
Security Audits
Installed on
zencoder1
amp1
cline1
openclaw1
opencode1
cursor1
React 组合模式指南:Vercel 组件架构最佳实践,提升代码可维护性
109,600 周安装