Awesome-omni-skill fct-web-ui-ux
UI/UX design intelligence for web and mobile across 13 stacks (React, Next.js, Vue, Svelte, Tailwind, shadcn/ui, etc.). Use when building, designing, reviewing, or optimizing UI/UX for websites, dashboards, apps. Covers styles, palettes, fonts, accessibility, animation, layout.
install
source · Clone the upstream repo
git clone https://github.com/diegosouzapw/awesome-omni-skill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/development/fct-web-ui-ux" ~/.claude/skills/diegosouzapw-awesome-omni-skill-fct-web-ui-ux && rm -rf "$T"
manifest:
skills/development/fct-web-ui-ux/SKILL.mdsource content
UI/UX Design Intelligence
Searchable database of UI styles, color palettes, font pairings, and UX guidelines. Generates complete design systems with reasoning.
Priority Rules
| Priority | Category | Impact |
|---|---|---|
| 1 | Accessibility | CRITICAL |
| 2 | Touch & Interaction | CRITICAL |
| 3 | Performance | HIGH |
| 4 | Layout & Responsive | HIGH |
| 5 | Typography & Color | MEDIUM |
| 6 | Animation | MEDIUM |
| 7 | Style Selection | MEDIUM |
| 8 | Charts & Data | LOW |
Quick Reference
Accessibility (CRITICAL)
- Minimum 4.5:1 ratio for textcolor-contrast
- Visible focus rings on interactive elementsfocus-states
- Descriptive alt text for imagesalt-text
- aria-label for icon-only buttonsaria-labels
- Tab order matches visual orderkeyboard-nav
Touch & Interaction (CRITICAL)
- Minimum 44x44px touch targetstouch-target-size
- Disable button during async operationsloading-buttons
- Add cursor-pointer to clickable elementscursor-pointer
Performance (HIGH)
- Use WebP, srcset, lazy loadingimage-optimization
- Check prefers-reduced-motionreduced-motion
Layout & Responsive (HIGH)
- Minimum 16px body text on mobilereadable-font-size
- Define z-index scale (10, 20, 30, 50)z-index-management
Workflow
Step 1: Analyze Request
Extract from user request:
- Product type: SaaS, e-commerce, portfolio, dashboard, landing page
- Style keywords: minimal, playful, professional, elegant, dark mode
- Industry: healthcare, fintech, gaming, education
- Stack: React, Vue, Next.js, or default to
html-tailwind
Step 2: Generate Design System (REQUIRED)
uv run scripts/search.py "<product_type> <industry> <keywords>" --design-system [-p "Project Name"]
Returns: pattern, style, colors, typography, effects, anti-patterns.
Example:
uv run scripts/search.py "beauty spa wellness service" --design-system -p "Serenity Spa"
Step 2b: Persist Design System (Optional)
Save for hierarchical retrieval across sessions:
uv run scripts/search.py "<query>" --design-system --persist -p "Project Name"
Creates:
— Global Source of Truthdesign-system/MASTER.md
— Page-specific overridesdesign-system/pages/
With page override:
uv run scripts/search.py "<query>" --design-system --persist -p "Project Name" --page "dashboard"
Step 3: Detailed Searches (as needed)
uv run scripts/search.py "<keyword>" --domain <domain> [-n <max_results>]
| Need | Domain | Example |
|---|---|---|
| More style options | | |
| Chart recommendations | | |
| UX best practices | | |
| Alternative fonts | | |
| Landing structure | | |
Step 4: Stack Guidelines
uv run scripts/search.py "<keyword>" --stack html-tailwind
Stacks:
html-tailwind (default), react, nextjs, astro, vue, nuxtjs, nuxt-ui, svelte, swiftui, react-native, flutter, shadcn, jetpack-compose
Search Reference
Domains
| Domain | Use For |
|---|---|
| Product type recommendations |
| UI styles, colors, effects |
| Font pairings, Google Fonts |
| Color palettes by product type |
| Page structure, CTA strategies |
| Chart types, library recommendations |
| Best practices, anti-patterns |
| React/Next.js performance |
| Web interface guidelines |
Common Rules
Icons & Visual Elements
| Rule | Do | Don't |
|---|---|---|
| No emoji icons | Use SVG (Heroicons, Lucide) | Use emojis as UI icons |
| Stable hover states | Use color/opacity transitions | Use scale transforms |
| Consistent sizing | Fixed viewBox (24x24) w-6 h-6 | Mix icon sizes |
Interaction & Cursor
| Rule | Do | Don't |
|---|---|---|
| Cursor pointer | Add to clickable elements | Leave default cursor |
| Hover feedback | Visual feedback (color, shadow) | No indication of interactivity |
| Smooth transitions | | Instant or >500ms |
Light/Dark Mode Contrast
| Rule | Do | Don't |
|---|---|---|
| Glass card light mode | or higher | |
| Text contrast light | (slate-900) | (slate-400) |
| Border visibility | light mode | |
Layout & Spacing
| Rule | Do | Don't |
|---|---|---|
| Floating navbar | spacing | |
| Content padding | Account for fixed navbar | Content behind fixed elements |
| Consistent max-width | Same or | Mix container widths |
Pre-Delivery Checklist
Visual Quality
- No emojis as icons (use SVG)
- Consistent icon set (Heroicons/Lucide)
- Hover states don't cause layout shift
- Use theme colors directly (bg-primary)
Interaction
- All clickable elements have
cursor-pointer - Transitions 150-300ms
- Focus states visible
Light/Dark Mode
- Light mode text contrast 4.5:1 minimum
- Glass elements visible in light mode
- Borders visible in both modes
Layout
- Responsive at 375px, 768px, 1024px, 1440px
- No horizontal scroll on mobile
- No content behind fixed elements
Accessibility
- All images have alt text
- Form inputs have labels
-
respectedprefers-reduced-motion