Redesign Antidote section: horizontal disclosure, gallery sidebar, detection callout

- Replace tabbed pattern viewer with animated horizontal disclosure
  (inspired by jh3y/XJWNMOO): CSS Grid column transitions, hover to
  expand, rotated vertical labels, icon anchored at bottom
- Don't/Do toggle in each panel (defaults to Don't)
- Gallery of Shame as 2-column thumbnail sidebar beside the disclosure
- Detection callout as horizontal strip below
- Responsive: stacks at 1060px, gallery becomes 3-col grid
- Remove all em dashes from anti-pattern text (AI slop tell)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Paul Bakaus
2026-03-30 16:52:11 -07:00
co-authored by Claude Opus 4.6
parent f683f413c8
commit bdc23f02c7
15 changed files with 832 additions and 604 deletions
+34 -34
View File
@@ -12,12 +12,12 @@ This skill guides creation of distinctive, production-grade frontend interfaces
Design skills produce generic output without project context. You MUST have confirmed design context before doing any design work.
**Required context** every design skill needs at minimum:
**Required context** (every design skill needs at minimum):
- **Target audience**: Who uses this product and in what context?
- **Use cases**: What jobs are they trying to get done?
- **Brand personality/tone**: How should the interface feel?
Individual skills may require additional context — check the skill's preparation section for specifics.
Individual skills may require additional context. Check the skill's preparation section for specifics.
**CRITICAL**: You cannot infer this context by reading the codebase. Code tells you what was built, not who it's for or what it should feel like. Only the creator can provide this context.
@@ -36,7 +36,7 @@ Commit to a BOLD aesthetic direction:
- **Constraints**: Technical requirements (framework, performance, accessibility).
- **Differentiation**: What makes this UNFORGETTABLE? What's the one thing someone will remember?
**CRITICAL**: Choose a clear conceptual direction and execute it with precision. Bold maximalism and refined minimalism both work—the key is intentionality, not intensity.
**CRITICAL**: Choose a clear conceptual direction and execute it with precision. Bold maximalism and refined minimalism both work. The key is intentionality, not intensity.
Then implement working code that is:
- Production-grade and functional
@@ -53,9 +53,9 @@ Choose fonts that are beautiful, unique, and interesting. Pair a distinctive dis
**DO**: Use a modular type scale with fluid sizing (clamp)
**DO**: Vary font weights and sizes to create clear visual hierarchy
**DON'T**: Use overused fontsInter, Roboto, Arial, Open Sans, system defaults
**DON'T**: Use overused fonts like Inter, Roboto, Arial, Open Sans, or system defaults
**DON'T**: Use monospace typography as lazy shorthand for "technical/developer" vibes
**DON'T**: Put large icons with rounded corners above every heading—they rarely add value and make sites look templated
**DON'T**: Put large icons with rounded corners above every heading. They rarely add value and make sites look templated
### Color & Theme
*Consult [color reference](reference/color-and-contrast.md) for OKLCH, palettes, and dark mode.*
@@ -63,64 +63,64 @@ Choose fonts that are beautiful, unique, and interesting. Pair a distinctive dis
Commit to a cohesive palette. Dominant colors with sharp accents outperform timid, evenly-distributed palettes.
**DO**: Use modern CSS color functions (oklch, color-mix, light-dark) for perceptually uniform, maintainable palettes
**DO**: Tint your neutrals toward your brand hue—even a subtle hint creates subconscious cohesion
**DON'T**: Use gray text on colored backgroundsit looks washed out; use a shade of the background color instead
**DON'T**: Use pure black (#000) or pure white (#fff)—always tint; pure black/white never appears in nature
**DO**: Tint your neutrals toward your brand hue. Even a subtle hint creates subconscious cohesion
**DON'T**: Use gray text on colored backgrounds; it looks washed out. Use a shade of the background color instead
**DON'T**: Use pure black (#000) or pure white (#fff). Always tint; pure black/white never appears in nature
**DON'T**: Use the AI color palette: cyan-on-dark, purple-to-blue gradients, neon accents on dark backgrounds
**DON'T**: Use gradient text for "impact"—especially on metrics or headings; it's decorative rather than meaningful
**DON'T**: Default to dark mode with glowing accents—it looks "cool" without requiring actual design decisions
**DON'T**: Use gradient text for "impact," especially on metrics or headings. It's decorative rather than meaningful
**DON'T**: Default to dark mode with glowing accents. It looks "cool" without requiring actual design decisions
### Layout & Space
*Consult [spatial reference](reference/spatial-design.md) for grids, rhythm, and container queries.*
Create visual rhythm through varied spacingnot the same padding everywhere. Embrace asymmetry and unexpected compositions. Break the grid intentionally for emphasis.
Create visual rhythm through varied spacing, not the same padding everywhere. Embrace asymmetry and unexpected compositions. Break the grid intentionally for emphasis.
**DO**: Create visual rhythm through varied spacingtight groupings, generous separations
**DO**: Create visual rhythm through varied spacing: tight groupings, generous separations
**DO**: Use fluid spacing with clamp() that breathes on larger screens
**DO**: Use asymmetry and unexpected compositions; break the grid intentionally for emphasis
**DON'T**: Wrap everything in cards—not everything needs a container
**DON'T**: Nest cards inside cards—visual noise, flatten the hierarchy
**DON'T**: Use identical card gridssame-sized cards with icon + heading + text, repeated endlessly
**DON'T**: Use the hero metric layout templatebig number, small label, supporting stats, gradient accent
**DON'T**: Center everything—left-aligned text with asymmetric layouts feels more designed
**DON'T**: Use the same spacing everywhere—without rhythm, layouts feel monotonous
**DON'T**: Wrap everything in cards. Not everything needs a container
**DON'T**: Nest cards inside cards. Visual noise; flatten the hierarchy
**DON'T**: Use identical card grids (same-sized cards with icon + heading + text, repeated endlessly)
**DON'T**: Use the hero metric layout template (big number, small label, supporting stats, gradient accent)
**DON'T**: Center everything. Left-aligned text with asymmetric layouts feels more designed
**DON'T**: Use the same spacing everywhere. Without rhythm, layouts feel monotonous
### Visual Details
**DO**: Use intentional, purposeful decorative elements that reinforce brand
**DON'T**: Use glassmorphism everywhereblur effects, glass cards, glow borders used decoratively rather than purposefully
**DON'T**: Use rounded elements with thick colored border on one side—a lazy accent that almost never looks intentional
**DON'T**: Use sparklines as decoration—tiny charts that look sophisticated but convey nothing meaningful
**DON'T**: Use rounded rectangles with generic drop shadows—safe, forgettable, could be any AI output
**DON'T**: Use modals unless there's truly no better alternative—modals are lazy
**DON'T**: Use glassmorphism everywhere (blur effects, glass cards, glow borders used decoratively rather than purposefully)
**DON'T**: Use rounded elements with thick colored border on one side. A lazy accent that almost never looks intentional
**DON'T**: Use sparklines as decoration. Tiny charts that look sophisticated but convey nothing meaningful
**DON'T**: Use rounded rectangles with generic drop shadows. Safe, forgettable, could be any AI output
**DON'T**: Use modals unless there's truly no better alternative. Modals are lazy
### Motion
*Consult [motion reference](reference/motion-design.md) for timing, easing, and reduced motion.*
Focus on high-impact moments: one well-orchestrated page load with staggered reveals creates more delight than scattered micro-interactions.
**DO**: Use motion to convey state changesentrances, exits, feedback
**DO**: Use motion to convey state changes: entrances, exits, feedback
**DO**: Use exponential easing (ease-out-quart/quint/expo) for natural deceleration
**DO**: For height animations, use grid-template-rows transitions instead of animating height directly
**DON'T**: Animate layout properties (width, height, padding, margin)—use transform and opacity only
**DON'T**: Use bounce or elastic easing—they feel dated and tacky; real objects decelerate smoothly
**DON'T**: Animate layout properties (width, height, padding, margin). Use transform and opacity only
**DON'T**: Use bounce or elastic easing. They feel dated and tacky; real objects decelerate smoothly
### Interaction
*Consult [interaction reference](reference/interaction-design.md) for forms, focus, and loading patterns.*
Make interactions feel fast. Use optimistic UIupdate immediately, sync later.
Make interactions feel fast. Use optimistic UI: update immediately, sync later.
**DO**: Use progressive disclosure—start simple, reveal sophistication through interaction (basic options first, advanced behind expandable sections; hover states that reveal secondary actions)
**DO**: Use progressive disclosure. Start simple, reveal sophistication through interaction (basic options first, advanced behind expandable sections; hover states that reveal secondary actions)
**DO**: Design empty states that teach the interface, not just say "nothing here"
**DO**: Make every interactive surface feel intentional and responsive
**DON'T**: Repeat the same informationredundant headers, intros that restate the heading
**DON'T**: Make every button primary—use ghost buttons, text links, secondary styles; hierarchy matters
**DON'T**: Repeat the same information (redundant headers, intros that restate the heading)
**DON'T**: Make every button primary. Use ghost buttons, text links, secondary styles; hierarchy matters
### Responsive
*Consult [responsive reference](reference/responsive-design.md) for mobile-first, fluid design, and container queries.*
**DO**: Use container queries (@container) for component-level responsiveness
**DO**: Adapt the interface for different contexts—don't just shrink it
**DON'T**: Hide critical functionality on mobile—adapt the interface, don't amputate it
**DO**: Adapt the interface for different contexts, not just shrink it
**DON'T**: Hide critical functionality on mobile. Adapt the interface, don't amputate it
### UX Writing
*Consult [ux-writing reference](reference/ux-writing.md) for labels, errors, and empty states.*
@@ -136,7 +136,7 @@ Make interactions feel fast. Use optimistic UI—update immediately, sync later.
A distinctive interface should make someone ask "how was this made?" not "which AI made this?"
Review the DON'T guidelines above—they are the fingerprints of AI-generated work from 2024-2025.
Review the DON'T guidelines above. They are the fingerprints of AI-generated work from 2024-2025.
---
@@ -146,7 +146,7 @@ Match implementation complexity to the aesthetic vision. Maximalist designs need
Interpret creatively and make unexpected choices that feel genuinely designed for the context. No design should be the same. Vary between light and dark themes, different fonts, different aesthetics. NEVER converge on common choices across generations.
Remember: the model is capable of extraordinary creative work. Don't hold back—show what can truly be created when thinking outside the box and committing fully to a distinctive vision.
Remember: the model is capable of extraordinary creative work. Don't hold back. Show what can truly be created when thinking outside the box and committing fully to a distinctive vision.
---
+34 -34
View File
@@ -12,12 +12,12 @@ This skill guides creation of distinctive, production-grade frontend interfaces
Design skills produce generic output without project context. You MUST have confirmed design context before doing any design work.
**Required context** every design skill needs at minimum:
**Required context** (every design skill needs at minimum):
- **Target audience**: Who uses this product and in what context?
- **Use cases**: What jobs are they trying to get done?
- **Brand personality/tone**: How should the interface feel?
Individual skills may require additional context — check the skill's preparation section for specifics.
Individual skills may require additional context. Check the skill's preparation section for specifics.
**CRITICAL**: You cannot infer this context by reading the codebase. Code tells you what was built, not who it's for or what it should feel like. Only the creator can provide this context.
@@ -36,7 +36,7 @@ Commit to a BOLD aesthetic direction:
- **Constraints**: Technical requirements (framework, performance, accessibility).
- **Differentiation**: What makes this UNFORGETTABLE? What's the one thing someone will remember?
**CRITICAL**: Choose a clear conceptual direction and execute it with precision. Bold maximalism and refined minimalism both work—the key is intentionality, not intensity.
**CRITICAL**: Choose a clear conceptual direction and execute it with precision. Bold maximalism and refined minimalism both work. The key is intentionality, not intensity.
Then implement working code that is:
- Production-grade and functional
@@ -53,9 +53,9 @@ Choose fonts that are beautiful, unique, and interesting. Pair a distinctive dis
**DO**: Use a modular type scale with fluid sizing (clamp)
**DO**: Vary font weights and sizes to create clear visual hierarchy
**DON'T**: Use overused fontsInter, Roboto, Arial, Open Sans, system defaults
**DON'T**: Use overused fonts like Inter, Roboto, Arial, Open Sans, or system defaults
**DON'T**: Use monospace typography as lazy shorthand for "technical/developer" vibes
**DON'T**: Put large icons with rounded corners above every heading—they rarely add value and make sites look templated
**DON'T**: Put large icons with rounded corners above every heading. They rarely add value and make sites look templated
### Color & Theme
*Consult [color reference](reference/color-and-contrast.md) for OKLCH, palettes, and dark mode.*
@@ -63,64 +63,64 @@ Choose fonts that are beautiful, unique, and interesting. Pair a distinctive dis
Commit to a cohesive palette. Dominant colors with sharp accents outperform timid, evenly-distributed palettes.
**DO**: Use modern CSS color functions (oklch, color-mix, light-dark) for perceptually uniform, maintainable palettes
**DO**: Tint your neutrals toward your brand hue—even a subtle hint creates subconscious cohesion
**DON'T**: Use gray text on colored backgroundsit looks washed out; use a shade of the background color instead
**DON'T**: Use pure black (#000) or pure white (#fff)—always tint; pure black/white never appears in nature
**DO**: Tint your neutrals toward your brand hue. Even a subtle hint creates subconscious cohesion
**DON'T**: Use gray text on colored backgrounds; it looks washed out. Use a shade of the background color instead
**DON'T**: Use pure black (#000) or pure white (#fff). Always tint; pure black/white never appears in nature
**DON'T**: Use the AI color palette: cyan-on-dark, purple-to-blue gradients, neon accents on dark backgrounds
**DON'T**: Use gradient text for "impact"—especially on metrics or headings; it's decorative rather than meaningful
**DON'T**: Default to dark mode with glowing accents—it looks "cool" without requiring actual design decisions
**DON'T**: Use gradient text for "impact," especially on metrics or headings. It's decorative rather than meaningful
**DON'T**: Default to dark mode with glowing accents. It looks "cool" without requiring actual design decisions
### Layout & Space
*Consult [spatial reference](reference/spatial-design.md) for grids, rhythm, and container queries.*
Create visual rhythm through varied spacingnot the same padding everywhere. Embrace asymmetry and unexpected compositions. Break the grid intentionally for emphasis.
Create visual rhythm through varied spacing, not the same padding everywhere. Embrace asymmetry and unexpected compositions. Break the grid intentionally for emphasis.
**DO**: Create visual rhythm through varied spacingtight groupings, generous separations
**DO**: Create visual rhythm through varied spacing: tight groupings, generous separations
**DO**: Use fluid spacing with clamp() that breathes on larger screens
**DO**: Use asymmetry and unexpected compositions; break the grid intentionally for emphasis
**DON'T**: Wrap everything in cards—not everything needs a container
**DON'T**: Nest cards inside cards—visual noise, flatten the hierarchy
**DON'T**: Use identical card gridssame-sized cards with icon + heading + text, repeated endlessly
**DON'T**: Use the hero metric layout templatebig number, small label, supporting stats, gradient accent
**DON'T**: Center everything—left-aligned text with asymmetric layouts feels more designed
**DON'T**: Use the same spacing everywhere—without rhythm, layouts feel monotonous
**DON'T**: Wrap everything in cards. Not everything needs a container
**DON'T**: Nest cards inside cards. Visual noise; flatten the hierarchy
**DON'T**: Use identical card grids (same-sized cards with icon + heading + text, repeated endlessly)
**DON'T**: Use the hero metric layout template (big number, small label, supporting stats, gradient accent)
**DON'T**: Center everything. Left-aligned text with asymmetric layouts feels more designed
**DON'T**: Use the same spacing everywhere. Without rhythm, layouts feel monotonous
### Visual Details
**DO**: Use intentional, purposeful decorative elements that reinforce brand
**DON'T**: Use glassmorphism everywhereblur effects, glass cards, glow borders used decoratively rather than purposefully
**DON'T**: Use rounded elements with thick colored border on one side—a lazy accent that almost never looks intentional
**DON'T**: Use sparklines as decoration—tiny charts that look sophisticated but convey nothing meaningful
**DON'T**: Use rounded rectangles with generic drop shadows—safe, forgettable, could be any AI output
**DON'T**: Use modals unless there's truly no better alternative—modals are lazy
**DON'T**: Use glassmorphism everywhere (blur effects, glass cards, glow borders used decoratively rather than purposefully)
**DON'T**: Use rounded elements with thick colored border on one side. A lazy accent that almost never looks intentional
**DON'T**: Use sparklines as decoration. Tiny charts that look sophisticated but convey nothing meaningful
**DON'T**: Use rounded rectangles with generic drop shadows. Safe, forgettable, could be any AI output
**DON'T**: Use modals unless there's truly no better alternative. Modals are lazy
### Motion
*Consult [motion reference](reference/motion-design.md) for timing, easing, and reduced motion.*
Focus on high-impact moments: one well-orchestrated page load with staggered reveals creates more delight than scattered micro-interactions.
**DO**: Use motion to convey state changesentrances, exits, feedback
**DO**: Use motion to convey state changes: entrances, exits, feedback
**DO**: Use exponential easing (ease-out-quart/quint/expo) for natural deceleration
**DO**: For height animations, use grid-template-rows transitions instead of animating height directly
**DON'T**: Animate layout properties (width, height, padding, margin)—use transform and opacity only
**DON'T**: Use bounce or elastic easing—they feel dated and tacky; real objects decelerate smoothly
**DON'T**: Animate layout properties (width, height, padding, margin). Use transform and opacity only
**DON'T**: Use bounce or elastic easing. They feel dated and tacky; real objects decelerate smoothly
### Interaction
*Consult [interaction reference](reference/interaction-design.md) for forms, focus, and loading patterns.*
Make interactions feel fast. Use optimistic UIupdate immediately, sync later.
Make interactions feel fast. Use optimistic UI: update immediately, sync later.
**DO**: Use progressive disclosure—start simple, reveal sophistication through interaction (basic options first, advanced behind expandable sections; hover states that reveal secondary actions)
**DO**: Use progressive disclosure. Start simple, reveal sophistication through interaction (basic options first, advanced behind expandable sections; hover states that reveal secondary actions)
**DO**: Design empty states that teach the interface, not just say "nothing here"
**DO**: Make every interactive surface feel intentional and responsive
**DON'T**: Repeat the same informationredundant headers, intros that restate the heading
**DON'T**: Make every button primary—use ghost buttons, text links, secondary styles; hierarchy matters
**DON'T**: Repeat the same information (redundant headers, intros that restate the heading)
**DON'T**: Make every button primary. Use ghost buttons, text links, secondary styles; hierarchy matters
### Responsive
*Consult [responsive reference](reference/responsive-design.md) for mobile-first, fluid design, and container queries.*
**DO**: Use container queries (@container) for component-level responsiveness
**DO**: Adapt the interface for different contexts—don't just shrink it
**DON'T**: Hide critical functionality on mobile—adapt the interface, don't amputate it
**DO**: Adapt the interface for different contexts, not just shrink it
**DON'T**: Hide critical functionality on mobile. Adapt the interface, don't amputate it
### UX Writing
*Consult [ux-writing reference](reference/ux-writing.md) for labels, errors, and empty states.*
@@ -136,7 +136,7 @@ Make interactions feel fast. Use optimistic UI—update immediately, sync later.
A distinctive interface should make someone ask "how was this made?" not "which AI made this?"
Review the DON'T guidelines above—they are the fingerprints of AI-generated work from 2024-2025.
Review the DON'T guidelines above. They are the fingerprints of AI-generated work from 2024-2025.
---
@@ -146,7 +146,7 @@ Match implementation complexity to the aesthetic vision. Maximalist designs need
Interpret creatively and make unexpected choices that feel genuinely designed for the context. No design should be the same. Vary between light and dark themes, different fonts, different aesthetics. NEVER converge on common choices across generations.
Remember: Claude is capable of extraordinary creative work. Don't hold back—show what can truly be created when thinking outside the box and committing fully to a distinctive vision.
Remember: Claude is capable of extraordinary creative work. Don't hold back. Show what can truly be created when thinking outside the box and committing fully to a distinctive vision.
---
+34 -34
View File
@@ -11,12 +11,12 @@ This skill guides creation of distinctive, production-grade frontend interfaces
Design skills produce generic output without project context. You MUST have confirmed design context before doing any design work.
**Required context** every design skill needs at minimum:
**Required context** (every design skill needs at minimum):
- **Target audience**: Who uses this product and in what context?
- **Use cases**: What jobs are they trying to get done?
- **Brand personality/tone**: How should the interface feel?
Individual skills may require additional context — check the skill's preparation section for specifics.
Individual skills may require additional context. Check the skill's preparation section for specifics.
**CRITICAL**: You cannot infer this context by reading the codebase. Code tells you what was built, not who it's for or what it should feel like. Only the creator can provide this context.
@@ -35,7 +35,7 @@ Commit to a BOLD aesthetic direction:
- **Constraints**: Technical requirements (framework, performance, accessibility).
- **Differentiation**: What makes this UNFORGETTABLE? What's the one thing someone will remember?
**CRITICAL**: Choose a clear conceptual direction and execute it with precision. Bold maximalism and refined minimalism both work—the key is intentionality, not intensity.
**CRITICAL**: Choose a clear conceptual direction and execute it with precision. Bold maximalism and refined minimalism both work. The key is intentionality, not intensity.
Then implement working code that is:
- Production-grade and functional
@@ -52,9 +52,9 @@ Choose fonts that are beautiful, unique, and interesting. Pair a distinctive dis
**DO**: Use a modular type scale with fluid sizing (clamp)
**DO**: Vary font weights and sizes to create clear visual hierarchy
**DON'T**: Use overused fontsInter, Roboto, Arial, Open Sans, system defaults
**DON'T**: Use overused fonts like Inter, Roboto, Arial, Open Sans, or system defaults
**DON'T**: Use monospace typography as lazy shorthand for "technical/developer" vibes
**DON'T**: Put large icons with rounded corners above every heading—they rarely add value and make sites look templated
**DON'T**: Put large icons with rounded corners above every heading. They rarely add value and make sites look templated
### Color & Theme
*Consult [color reference](reference/color-and-contrast.md) for OKLCH, palettes, and dark mode.*
@@ -62,64 +62,64 @@ Choose fonts that are beautiful, unique, and interesting. Pair a distinctive dis
Commit to a cohesive palette. Dominant colors with sharp accents outperform timid, evenly-distributed palettes.
**DO**: Use modern CSS color functions (oklch, color-mix, light-dark) for perceptually uniform, maintainable palettes
**DO**: Tint your neutrals toward your brand hue—even a subtle hint creates subconscious cohesion
**DON'T**: Use gray text on colored backgroundsit looks washed out; use a shade of the background color instead
**DON'T**: Use pure black (#000) or pure white (#fff)—always tint; pure black/white never appears in nature
**DO**: Tint your neutrals toward your brand hue. Even a subtle hint creates subconscious cohesion
**DON'T**: Use gray text on colored backgrounds; it looks washed out. Use a shade of the background color instead
**DON'T**: Use pure black (#000) or pure white (#fff). Always tint; pure black/white never appears in nature
**DON'T**: Use the AI color palette: cyan-on-dark, purple-to-blue gradients, neon accents on dark backgrounds
**DON'T**: Use gradient text for "impact"—especially on metrics or headings; it's decorative rather than meaningful
**DON'T**: Default to dark mode with glowing accents—it looks "cool" without requiring actual design decisions
**DON'T**: Use gradient text for "impact," especially on metrics or headings. It's decorative rather than meaningful
**DON'T**: Default to dark mode with glowing accents. It looks "cool" without requiring actual design decisions
### Layout & Space
*Consult [spatial reference](reference/spatial-design.md) for grids, rhythm, and container queries.*
Create visual rhythm through varied spacingnot the same padding everywhere. Embrace asymmetry and unexpected compositions. Break the grid intentionally for emphasis.
Create visual rhythm through varied spacing, not the same padding everywhere. Embrace asymmetry and unexpected compositions. Break the grid intentionally for emphasis.
**DO**: Create visual rhythm through varied spacingtight groupings, generous separations
**DO**: Create visual rhythm through varied spacing: tight groupings, generous separations
**DO**: Use fluid spacing with clamp() that breathes on larger screens
**DO**: Use asymmetry and unexpected compositions; break the grid intentionally for emphasis
**DON'T**: Wrap everything in cards—not everything needs a container
**DON'T**: Nest cards inside cards—visual noise, flatten the hierarchy
**DON'T**: Use identical card gridssame-sized cards with icon + heading + text, repeated endlessly
**DON'T**: Use the hero metric layout templatebig number, small label, supporting stats, gradient accent
**DON'T**: Center everything—left-aligned text with asymmetric layouts feels more designed
**DON'T**: Use the same spacing everywhere—without rhythm, layouts feel monotonous
**DON'T**: Wrap everything in cards. Not everything needs a container
**DON'T**: Nest cards inside cards. Visual noise; flatten the hierarchy
**DON'T**: Use identical card grids (same-sized cards with icon + heading + text, repeated endlessly)
**DON'T**: Use the hero metric layout template (big number, small label, supporting stats, gradient accent)
**DON'T**: Center everything. Left-aligned text with asymmetric layouts feels more designed
**DON'T**: Use the same spacing everywhere. Without rhythm, layouts feel monotonous
### Visual Details
**DO**: Use intentional, purposeful decorative elements that reinforce brand
**DON'T**: Use glassmorphism everywhereblur effects, glass cards, glow borders used decoratively rather than purposefully
**DON'T**: Use rounded elements with thick colored border on one side—a lazy accent that almost never looks intentional
**DON'T**: Use sparklines as decoration—tiny charts that look sophisticated but convey nothing meaningful
**DON'T**: Use rounded rectangles with generic drop shadows—safe, forgettable, could be any AI output
**DON'T**: Use modals unless there's truly no better alternative—modals are lazy
**DON'T**: Use glassmorphism everywhere (blur effects, glass cards, glow borders used decoratively rather than purposefully)
**DON'T**: Use rounded elements with thick colored border on one side. A lazy accent that almost never looks intentional
**DON'T**: Use sparklines as decoration. Tiny charts that look sophisticated but convey nothing meaningful
**DON'T**: Use rounded rectangles with generic drop shadows. Safe, forgettable, could be any AI output
**DON'T**: Use modals unless there's truly no better alternative. Modals are lazy
### Motion
*Consult [motion reference](reference/motion-design.md) for timing, easing, and reduced motion.*
Focus on high-impact moments: one well-orchestrated page load with staggered reveals creates more delight than scattered micro-interactions.
**DO**: Use motion to convey state changesentrances, exits, feedback
**DO**: Use motion to convey state changes: entrances, exits, feedback
**DO**: Use exponential easing (ease-out-quart/quint/expo) for natural deceleration
**DO**: For height animations, use grid-template-rows transitions instead of animating height directly
**DON'T**: Animate layout properties (width, height, padding, margin)—use transform and opacity only
**DON'T**: Use bounce or elastic easing—they feel dated and tacky; real objects decelerate smoothly
**DON'T**: Animate layout properties (width, height, padding, margin). Use transform and opacity only
**DON'T**: Use bounce or elastic easing. They feel dated and tacky; real objects decelerate smoothly
### Interaction
*Consult [interaction reference](reference/interaction-design.md) for forms, focus, and loading patterns.*
Make interactions feel fast. Use optimistic UIupdate immediately, sync later.
Make interactions feel fast. Use optimistic UI: update immediately, sync later.
**DO**: Use progressive disclosure—start simple, reveal sophistication through interaction (basic options first, advanced behind expandable sections; hover states that reveal secondary actions)
**DO**: Use progressive disclosure. Start simple, reveal sophistication through interaction (basic options first, advanced behind expandable sections; hover states that reveal secondary actions)
**DO**: Design empty states that teach the interface, not just say "nothing here"
**DO**: Make every interactive surface feel intentional and responsive
**DON'T**: Repeat the same informationredundant headers, intros that restate the heading
**DON'T**: Make every button primary—use ghost buttons, text links, secondary styles; hierarchy matters
**DON'T**: Repeat the same information (redundant headers, intros that restate the heading)
**DON'T**: Make every button primary. Use ghost buttons, text links, secondary styles; hierarchy matters
### Responsive
*Consult [responsive reference](reference/responsive-design.md) for mobile-first, fluid design, and container queries.*
**DO**: Use container queries (@container) for component-level responsiveness
**DO**: Adapt the interface for different contexts—don't just shrink it
**DON'T**: Hide critical functionality on mobile—adapt the interface, don't amputate it
**DO**: Adapt the interface for different contexts, not just shrink it
**DON'T**: Hide critical functionality on mobile. Adapt the interface, don't amputate it
### UX Writing
*Consult [ux-writing reference](reference/ux-writing.md) for labels, errors, and empty states.*
@@ -135,7 +135,7 @@ Make interactions feel fast. Use optimistic UI—update immediately, sync later.
A distinctive interface should make someone ask "how was this made?" not "which AI made this?"
Review the DON'T guidelines above—they are the fingerprints of AI-generated work from 2024-2025.
Review the DON'T guidelines above. They are the fingerprints of AI-generated work from 2024-2025.
---
@@ -145,7 +145,7 @@ Match implementation complexity to the aesthetic vision. Maximalist designs need
Interpret creatively and make unexpected choices that feel genuinely designed for the context. No design should be the same. Vary between light and dark themes, different fonts, different aesthetics. NEVER converge on common choices across generations.
Remember: GPT is capable of extraordinary creative work. Don't hold back—show what can truly be created when thinking outside the box and committing fully to a distinctive vision.
Remember: GPT is capable of extraordinary creative work. Don't hold back. Show what can truly be created when thinking outside the box and committing fully to a distinctive vision.
---
+34 -34
View File
@@ -10,12 +10,12 @@ This skill guides creation of distinctive, production-grade frontend interfaces
Design skills produce generic output without project context. You MUST have confirmed design context before doing any design work.
**Required context** every design skill needs at minimum:
**Required context** (every design skill needs at minimum):
- **Target audience**: Who uses this product and in what context?
- **Use cases**: What jobs are they trying to get done?
- **Brand personality/tone**: How should the interface feel?
Individual skills may require additional context — check the skill's preparation section for specifics.
Individual skills may require additional context. Check the skill's preparation section for specifics.
**CRITICAL**: You cannot infer this context by reading the codebase. Code tells you what was built, not who it's for or what it should feel like. Only the creator can provide this context.
@@ -34,7 +34,7 @@ Commit to a BOLD aesthetic direction:
- **Constraints**: Technical requirements (framework, performance, accessibility).
- **Differentiation**: What makes this UNFORGETTABLE? What's the one thing someone will remember?
**CRITICAL**: Choose a clear conceptual direction and execute it with precision. Bold maximalism and refined minimalism both work—the key is intentionality, not intensity.
**CRITICAL**: Choose a clear conceptual direction and execute it with precision. Bold maximalism and refined minimalism both work. The key is intentionality, not intensity.
Then implement working code that is:
- Production-grade and functional
@@ -51,9 +51,9 @@ Choose fonts that are beautiful, unique, and interesting. Pair a distinctive dis
**DO**: Use a modular type scale with fluid sizing (clamp)
**DO**: Vary font weights and sizes to create clear visual hierarchy
**DON'T**: Use overused fontsInter, Roboto, Arial, Open Sans, system defaults
**DON'T**: Use overused fonts like Inter, Roboto, Arial, Open Sans, or system defaults
**DON'T**: Use monospace typography as lazy shorthand for "technical/developer" vibes
**DON'T**: Put large icons with rounded corners above every heading—they rarely add value and make sites look templated
**DON'T**: Put large icons with rounded corners above every heading. They rarely add value and make sites look templated
### Color & Theme
*Consult [color reference](reference/color-and-contrast.md) for OKLCH, palettes, and dark mode.*
@@ -61,64 +61,64 @@ Choose fonts that are beautiful, unique, and interesting. Pair a distinctive dis
Commit to a cohesive palette. Dominant colors with sharp accents outperform timid, evenly-distributed palettes.
**DO**: Use modern CSS color functions (oklch, color-mix, light-dark) for perceptually uniform, maintainable palettes
**DO**: Tint your neutrals toward your brand hue—even a subtle hint creates subconscious cohesion
**DON'T**: Use gray text on colored backgroundsit looks washed out; use a shade of the background color instead
**DON'T**: Use pure black (#000) or pure white (#fff)—always tint; pure black/white never appears in nature
**DO**: Tint your neutrals toward your brand hue. Even a subtle hint creates subconscious cohesion
**DON'T**: Use gray text on colored backgrounds; it looks washed out. Use a shade of the background color instead
**DON'T**: Use pure black (#000) or pure white (#fff). Always tint; pure black/white never appears in nature
**DON'T**: Use the AI color palette: cyan-on-dark, purple-to-blue gradients, neon accents on dark backgrounds
**DON'T**: Use gradient text for "impact"—especially on metrics or headings; it's decorative rather than meaningful
**DON'T**: Default to dark mode with glowing accents—it looks "cool" without requiring actual design decisions
**DON'T**: Use gradient text for "impact," especially on metrics or headings. It's decorative rather than meaningful
**DON'T**: Default to dark mode with glowing accents. It looks "cool" without requiring actual design decisions
### Layout & Space
*Consult [spatial reference](reference/spatial-design.md) for grids, rhythm, and container queries.*
Create visual rhythm through varied spacingnot the same padding everywhere. Embrace asymmetry and unexpected compositions. Break the grid intentionally for emphasis.
Create visual rhythm through varied spacing, not the same padding everywhere. Embrace asymmetry and unexpected compositions. Break the grid intentionally for emphasis.
**DO**: Create visual rhythm through varied spacingtight groupings, generous separations
**DO**: Create visual rhythm through varied spacing: tight groupings, generous separations
**DO**: Use fluid spacing with clamp() that breathes on larger screens
**DO**: Use asymmetry and unexpected compositions; break the grid intentionally for emphasis
**DON'T**: Wrap everything in cards—not everything needs a container
**DON'T**: Nest cards inside cards—visual noise, flatten the hierarchy
**DON'T**: Use identical card gridssame-sized cards with icon + heading + text, repeated endlessly
**DON'T**: Use the hero metric layout templatebig number, small label, supporting stats, gradient accent
**DON'T**: Center everything—left-aligned text with asymmetric layouts feels more designed
**DON'T**: Use the same spacing everywhere—without rhythm, layouts feel monotonous
**DON'T**: Wrap everything in cards. Not everything needs a container
**DON'T**: Nest cards inside cards. Visual noise; flatten the hierarchy
**DON'T**: Use identical card grids (same-sized cards with icon + heading + text, repeated endlessly)
**DON'T**: Use the hero metric layout template (big number, small label, supporting stats, gradient accent)
**DON'T**: Center everything. Left-aligned text with asymmetric layouts feels more designed
**DON'T**: Use the same spacing everywhere. Without rhythm, layouts feel monotonous
### Visual Details
**DO**: Use intentional, purposeful decorative elements that reinforce brand
**DON'T**: Use glassmorphism everywhereblur effects, glass cards, glow borders used decoratively rather than purposefully
**DON'T**: Use rounded elements with thick colored border on one side—a lazy accent that almost never looks intentional
**DON'T**: Use sparklines as decoration—tiny charts that look sophisticated but convey nothing meaningful
**DON'T**: Use rounded rectangles with generic drop shadows—safe, forgettable, could be any AI output
**DON'T**: Use modals unless there's truly no better alternative—modals are lazy
**DON'T**: Use glassmorphism everywhere (blur effects, glass cards, glow borders used decoratively rather than purposefully)
**DON'T**: Use rounded elements with thick colored border on one side. A lazy accent that almost never looks intentional
**DON'T**: Use sparklines as decoration. Tiny charts that look sophisticated but convey nothing meaningful
**DON'T**: Use rounded rectangles with generic drop shadows. Safe, forgettable, could be any AI output
**DON'T**: Use modals unless there's truly no better alternative. Modals are lazy
### Motion
*Consult [motion reference](reference/motion-design.md) for timing, easing, and reduced motion.*
Focus on high-impact moments: one well-orchestrated page load with staggered reveals creates more delight than scattered micro-interactions.
**DO**: Use motion to convey state changesentrances, exits, feedback
**DO**: Use motion to convey state changes: entrances, exits, feedback
**DO**: Use exponential easing (ease-out-quart/quint/expo) for natural deceleration
**DO**: For height animations, use grid-template-rows transitions instead of animating height directly
**DON'T**: Animate layout properties (width, height, padding, margin)—use transform and opacity only
**DON'T**: Use bounce or elastic easing—they feel dated and tacky; real objects decelerate smoothly
**DON'T**: Animate layout properties (width, height, padding, margin). Use transform and opacity only
**DON'T**: Use bounce or elastic easing. They feel dated and tacky; real objects decelerate smoothly
### Interaction
*Consult [interaction reference](reference/interaction-design.md) for forms, focus, and loading patterns.*
Make interactions feel fast. Use optimistic UIupdate immediately, sync later.
Make interactions feel fast. Use optimistic UI: update immediately, sync later.
**DO**: Use progressive disclosure—start simple, reveal sophistication through interaction (basic options first, advanced behind expandable sections; hover states that reveal secondary actions)
**DO**: Use progressive disclosure. Start simple, reveal sophistication through interaction (basic options first, advanced behind expandable sections; hover states that reveal secondary actions)
**DO**: Design empty states that teach the interface, not just say "nothing here"
**DO**: Make every interactive surface feel intentional and responsive
**DON'T**: Repeat the same informationredundant headers, intros that restate the heading
**DON'T**: Make every button primary—use ghost buttons, text links, secondary styles; hierarchy matters
**DON'T**: Repeat the same information (redundant headers, intros that restate the heading)
**DON'T**: Make every button primary. Use ghost buttons, text links, secondary styles; hierarchy matters
### Responsive
*Consult [responsive reference](reference/responsive-design.md) for mobile-first, fluid design, and container queries.*
**DO**: Use container queries (@container) for component-level responsiveness
**DO**: Adapt the interface for different contexts—don't just shrink it
**DON'T**: Hide critical functionality on mobile—adapt the interface, don't amputate it
**DO**: Adapt the interface for different contexts, not just shrink it
**DON'T**: Hide critical functionality on mobile. Adapt the interface, don't amputate it
### UX Writing
*Consult [ux-writing reference](reference/ux-writing.md) for labels, errors, and empty states.*
@@ -134,7 +134,7 @@ Make interactions feel fast. Use optimistic UI—update immediately, sync later.
A distinctive interface should make someone ask "how was this made?" not "which AI made this?"
Review the DON'T guidelines above—they are the fingerprints of AI-generated work from 2024-2025.
Review the DON'T guidelines above. They are the fingerprints of AI-generated work from 2024-2025.
---
@@ -144,7 +144,7 @@ Match implementation complexity to the aesthetic vision. Maximalist designs need
Interpret creatively and make unexpected choices that feel genuinely designed for the context. No design should be the same. Vary between light and dark themes, different fonts, different aesthetics. NEVER converge on common choices across generations.
Remember: the model is capable of extraordinary creative work. Don't hold back—show what can truly be created when thinking outside the box and committing fully to a distinctive vision.
Remember: the model is capable of extraordinary creative work. Don't hold back. Show what can truly be created when thinking outside the box and committing fully to a distinctive vision.
---
+34 -34
View File
@@ -9,12 +9,12 @@ This skill guides creation of distinctive, production-grade frontend interfaces
Design skills produce generic output without project context. You MUST have confirmed design context before doing any design work.
**Required context** every design skill needs at minimum:
**Required context** (every design skill needs at minimum):
- **Target audience**: Who uses this product and in what context?
- **Use cases**: What jobs are they trying to get done?
- **Brand personality/tone**: How should the interface feel?
Individual skills may require additional context — check the skill's preparation section for specifics.
Individual skills may require additional context. Check the skill's preparation section for specifics.
**CRITICAL**: You cannot infer this context by reading the codebase. Code tells you what was built, not who it's for or what it should feel like. Only the creator can provide this context.
@@ -33,7 +33,7 @@ Commit to a BOLD aesthetic direction:
- **Constraints**: Technical requirements (framework, performance, accessibility).
- **Differentiation**: What makes this UNFORGETTABLE? What's the one thing someone will remember?
**CRITICAL**: Choose a clear conceptual direction and execute it with precision. Bold maximalism and refined minimalism both work—the key is intentionality, not intensity.
**CRITICAL**: Choose a clear conceptual direction and execute it with precision. Bold maximalism and refined minimalism both work. The key is intentionality, not intensity.
Then implement working code that is:
- Production-grade and functional
@@ -50,9 +50,9 @@ Choose fonts that are beautiful, unique, and interesting. Pair a distinctive dis
**DO**: Use a modular type scale with fluid sizing (clamp)
**DO**: Vary font weights and sizes to create clear visual hierarchy
**DON'T**: Use overused fontsInter, Roboto, Arial, Open Sans, system defaults
**DON'T**: Use overused fonts like Inter, Roboto, Arial, Open Sans, or system defaults
**DON'T**: Use monospace typography as lazy shorthand for "technical/developer" vibes
**DON'T**: Put large icons with rounded corners above every heading—they rarely add value and make sites look templated
**DON'T**: Put large icons with rounded corners above every heading. They rarely add value and make sites look templated
### Color & Theme
*Consult [color reference](reference/color-and-contrast.md) for OKLCH, palettes, and dark mode.*
@@ -60,64 +60,64 @@ Choose fonts that are beautiful, unique, and interesting. Pair a distinctive dis
Commit to a cohesive palette. Dominant colors with sharp accents outperform timid, evenly-distributed palettes.
**DO**: Use modern CSS color functions (oklch, color-mix, light-dark) for perceptually uniform, maintainable palettes
**DO**: Tint your neutrals toward your brand hue—even a subtle hint creates subconscious cohesion
**DON'T**: Use gray text on colored backgroundsit looks washed out; use a shade of the background color instead
**DON'T**: Use pure black (#000) or pure white (#fff)—always tint; pure black/white never appears in nature
**DO**: Tint your neutrals toward your brand hue. Even a subtle hint creates subconscious cohesion
**DON'T**: Use gray text on colored backgrounds; it looks washed out. Use a shade of the background color instead
**DON'T**: Use pure black (#000) or pure white (#fff). Always tint; pure black/white never appears in nature
**DON'T**: Use the AI color palette: cyan-on-dark, purple-to-blue gradients, neon accents on dark backgrounds
**DON'T**: Use gradient text for "impact"—especially on metrics or headings; it's decorative rather than meaningful
**DON'T**: Default to dark mode with glowing accents—it looks "cool" without requiring actual design decisions
**DON'T**: Use gradient text for "impact," especially on metrics or headings. It's decorative rather than meaningful
**DON'T**: Default to dark mode with glowing accents. It looks "cool" without requiring actual design decisions
### Layout & Space
*Consult [spatial reference](reference/spatial-design.md) for grids, rhythm, and container queries.*
Create visual rhythm through varied spacingnot the same padding everywhere. Embrace asymmetry and unexpected compositions. Break the grid intentionally for emphasis.
Create visual rhythm through varied spacing, not the same padding everywhere. Embrace asymmetry and unexpected compositions. Break the grid intentionally for emphasis.
**DO**: Create visual rhythm through varied spacingtight groupings, generous separations
**DO**: Create visual rhythm through varied spacing: tight groupings, generous separations
**DO**: Use fluid spacing with clamp() that breathes on larger screens
**DO**: Use asymmetry and unexpected compositions; break the grid intentionally for emphasis
**DON'T**: Wrap everything in cards—not everything needs a container
**DON'T**: Nest cards inside cards—visual noise, flatten the hierarchy
**DON'T**: Use identical card gridssame-sized cards with icon + heading + text, repeated endlessly
**DON'T**: Use the hero metric layout templatebig number, small label, supporting stats, gradient accent
**DON'T**: Center everything—left-aligned text with asymmetric layouts feels more designed
**DON'T**: Use the same spacing everywhere—without rhythm, layouts feel monotonous
**DON'T**: Wrap everything in cards. Not everything needs a container
**DON'T**: Nest cards inside cards. Visual noise; flatten the hierarchy
**DON'T**: Use identical card grids (same-sized cards with icon + heading + text, repeated endlessly)
**DON'T**: Use the hero metric layout template (big number, small label, supporting stats, gradient accent)
**DON'T**: Center everything. Left-aligned text with asymmetric layouts feels more designed
**DON'T**: Use the same spacing everywhere. Without rhythm, layouts feel monotonous
### Visual Details
**DO**: Use intentional, purposeful decorative elements that reinforce brand
**DON'T**: Use glassmorphism everywhereblur effects, glass cards, glow borders used decoratively rather than purposefully
**DON'T**: Use rounded elements with thick colored border on one side—a lazy accent that almost never looks intentional
**DON'T**: Use sparklines as decoration—tiny charts that look sophisticated but convey nothing meaningful
**DON'T**: Use rounded rectangles with generic drop shadows—safe, forgettable, could be any AI output
**DON'T**: Use modals unless there's truly no better alternative—modals are lazy
**DON'T**: Use glassmorphism everywhere (blur effects, glass cards, glow borders used decoratively rather than purposefully)
**DON'T**: Use rounded elements with thick colored border on one side. A lazy accent that almost never looks intentional
**DON'T**: Use sparklines as decoration. Tiny charts that look sophisticated but convey nothing meaningful
**DON'T**: Use rounded rectangles with generic drop shadows. Safe, forgettable, could be any AI output
**DON'T**: Use modals unless there's truly no better alternative. Modals are lazy
### Motion
*Consult [motion reference](reference/motion-design.md) for timing, easing, and reduced motion.*
Focus on high-impact moments: one well-orchestrated page load with staggered reveals creates more delight than scattered micro-interactions.
**DO**: Use motion to convey state changesentrances, exits, feedback
**DO**: Use motion to convey state changes: entrances, exits, feedback
**DO**: Use exponential easing (ease-out-quart/quint/expo) for natural deceleration
**DO**: For height animations, use grid-template-rows transitions instead of animating height directly
**DON'T**: Animate layout properties (width, height, padding, margin)—use transform and opacity only
**DON'T**: Use bounce or elastic easing—they feel dated and tacky; real objects decelerate smoothly
**DON'T**: Animate layout properties (width, height, padding, margin). Use transform and opacity only
**DON'T**: Use bounce or elastic easing. They feel dated and tacky; real objects decelerate smoothly
### Interaction
*Consult [interaction reference](reference/interaction-design.md) for forms, focus, and loading patterns.*
Make interactions feel fast. Use optimistic UIupdate immediately, sync later.
Make interactions feel fast. Use optimistic UI: update immediately, sync later.
**DO**: Use progressive disclosure—start simple, reveal sophistication through interaction (basic options first, advanced behind expandable sections; hover states that reveal secondary actions)
**DO**: Use progressive disclosure. Start simple, reveal sophistication through interaction (basic options first, advanced behind expandable sections; hover states that reveal secondary actions)
**DO**: Design empty states that teach the interface, not just say "nothing here"
**DO**: Make every interactive surface feel intentional and responsive
**DON'T**: Repeat the same informationredundant headers, intros that restate the heading
**DON'T**: Make every button primary—use ghost buttons, text links, secondary styles; hierarchy matters
**DON'T**: Repeat the same information (redundant headers, intros that restate the heading)
**DON'T**: Make every button primary. Use ghost buttons, text links, secondary styles; hierarchy matters
### Responsive
*Consult [responsive reference](reference/responsive-design.md) for mobile-first, fluid design, and container queries.*
**DO**: Use container queries (@container) for component-level responsiveness
**DO**: Adapt the interface for different contexts—don't just shrink it
**DON'T**: Hide critical functionality on mobile—adapt the interface, don't amputate it
**DO**: Adapt the interface for different contexts, not just shrink it
**DON'T**: Hide critical functionality on mobile. Adapt the interface, don't amputate it
### UX Writing
*Consult [ux-writing reference](reference/ux-writing.md) for labels, errors, and empty states.*
@@ -133,7 +133,7 @@ Make interactions feel fast. Use optimistic UI—update immediately, sync later.
A distinctive interface should make someone ask "how was this made?" not "which AI made this?"
Review the DON'T guidelines above—they are the fingerprints of AI-generated work from 2024-2025.
Review the DON'T guidelines above. They are the fingerprints of AI-generated work from 2024-2025.
---
@@ -143,7 +143,7 @@ Match implementation complexity to the aesthetic vision. Maximalist designs need
Interpret creatively and make unexpected choices that feel genuinely designed for the context. No design should be the same. Vary between light and dark themes, different fonts, different aesthetics. NEVER converge on common choices across generations.
Remember: Gemini is capable of extraordinary creative work. Don't hold back—show what can truly be created when thinking outside the box and committing fully to a distinctive vision.
Remember: Gemini is capable of extraordinary creative work. Don't hold back. Show what can truly be created when thinking outside the box and committing fully to a distinctive vision.
---
+34 -34
View File
@@ -10,12 +10,12 @@ This skill guides creation of distinctive, production-grade frontend interfaces
Design skills produce generic output without project context. You MUST have confirmed design context before doing any design work.
**Required context** every design skill needs at minimum:
**Required context** (every design skill needs at minimum):
- **Target audience**: Who uses this product and in what context?
- **Use cases**: What jobs are they trying to get done?
- **Brand personality/tone**: How should the interface feel?
Individual skills may require additional context — check the skill's preparation section for specifics.
Individual skills may require additional context. Check the skill's preparation section for specifics.
**CRITICAL**: You cannot infer this context by reading the codebase. Code tells you what was built, not who it's for or what it should feel like. Only the creator can provide this context.
@@ -34,7 +34,7 @@ Commit to a BOLD aesthetic direction:
- **Constraints**: Technical requirements (framework, performance, accessibility).
- **Differentiation**: What makes this UNFORGETTABLE? What's the one thing someone will remember?
**CRITICAL**: Choose a clear conceptual direction and execute it with precision. Bold maximalism and refined minimalism both work—the key is intentionality, not intensity.
**CRITICAL**: Choose a clear conceptual direction and execute it with precision. Bold maximalism and refined minimalism both work. The key is intentionality, not intensity.
Then implement working code that is:
- Production-grade and functional
@@ -51,9 +51,9 @@ Choose fonts that are beautiful, unique, and interesting. Pair a distinctive dis
**DO**: Use a modular type scale with fluid sizing (clamp)
**DO**: Vary font weights and sizes to create clear visual hierarchy
**DON'T**: Use overused fontsInter, Roboto, Arial, Open Sans, system defaults
**DON'T**: Use overused fonts like Inter, Roboto, Arial, Open Sans, or system defaults
**DON'T**: Use monospace typography as lazy shorthand for "technical/developer" vibes
**DON'T**: Put large icons with rounded corners above every heading—they rarely add value and make sites look templated
**DON'T**: Put large icons with rounded corners above every heading. They rarely add value and make sites look templated
### Color & Theme
*Consult [color reference](reference/color-and-contrast.md) for OKLCH, palettes, and dark mode.*
@@ -61,64 +61,64 @@ Choose fonts that are beautiful, unique, and interesting. Pair a distinctive dis
Commit to a cohesive palette. Dominant colors with sharp accents outperform timid, evenly-distributed palettes.
**DO**: Use modern CSS color functions (oklch, color-mix, light-dark) for perceptually uniform, maintainable palettes
**DO**: Tint your neutrals toward your brand hue—even a subtle hint creates subconscious cohesion
**DON'T**: Use gray text on colored backgroundsit looks washed out; use a shade of the background color instead
**DON'T**: Use pure black (#000) or pure white (#fff)—always tint; pure black/white never appears in nature
**DO**: Tint your neutrals toward your brand hue. Even a subtle hint creates subconscious cohesion
**DON'T**: Use gray text on colored backgrounds; it looks washed out. Use a shade of the background color instead
**DON'T**: Use pure black (#000) or pure white (#fff). Always tint; pure black/white never appears in nature
**DON'T**: Use the AI color palette: cyan-on-dark, purple-to-blue gradients, neon accents on dark backgrounds
**DON'T**: Use gradient text for "impact"—especially on metrics or headings; it's decorative rather than meaningful
**DON'T**: Default to dark mode with glowing accents—it looks "cool" without requiring actual design decisions
**DON'T**: Use gradient text for "impact," especially on metrics or headings. It's decorative rather than meaningful
**DON'T**: Default to dark mode with glowing accents. It looks "cool" without requiring actual design decisions
### Layout & Space
*Consult [spatial reference](reference/spatial-design.md) for grids, rhythm, and container queries.*
Create visual rhythm through varied spacingnot the same padding everywhere. Embrace asymmetry and unexpected compositions. Break the grid intentionally for emphasis.
Create visual rhythm through varied spacing, not the same padding everywhere. Embrace asymmetry and unexpected compositions. Break the grid intentionally for emphasis.
**DO**: Create visual rhythm through varied spacingtight groupings, generous separations
**DO**: Create visual rhythm through varied spacing: tight groupings, generous separations
**DO**: Use fluid spacing with clamp() that breathes on larger screens
**DO**: Use asymmetry and unexpected compositions; break the grid intentionally for emphasis
**DON'T**: Wrap everything in cards—not everything needs a container
**DON'T**: Nest cards inside cards—visual noise, flatten the hierarchy
**DON'T**: Use identical card gridssame-sized cards with icon + heading + text, repeated endlessly
**DON'T**: Use the hero metric layout templatebig number, small label, supporting stats, gradient accent
**DON'T**: Center everything—left-aligned text with asymmetric layouts feels more designed
**DON'T**: Use the same spacing everywhere—without rhythm, layouts feel monotonous
**DON'T**: Wrap everything in cards. Not everything needs a container
**DON'T**: Nest cards inside cards. Visual noise; flatten the hierarchy
**DON'T**: Use identical card grids (same-sized cards with icon + heading + text, repeated endlessly)
**DON'T**: Use the hero metric layout template (big number, small label, supporting stats, gradient accent)
**DON'T**: Center everything. Left-aligned text with asymmetric layouts feels more designed
**DON'T**: Use the same spacing everywhere. Without rhythm, layouts feel monotonous
### Visual Details
**DO**: Use intentional, purposeful decorative elements that reinforce brand
**DON'T**: Use glassmorphism everywhereblur effects, glass cards, glow borders used decoratively rather than purposefully
**DON'T**: Use rounded elements with thick colored border on one side—a lazy accent that almost never looks intentional
**DON'T**: Use sparklines as decoration—tiny charts that look sophisticated but convey nothing meaningful
**DON'T**: Use rounded rectangles with generic drop shadows—safe, forgettable, could be any AI output
**DON'T**: Use modals unless there's truly no better alternative—modals are lazy
**DON'T**: Use glassmorphism everywhere (blur effects, glass cards, glow borders used decoratively rather than purposefully)
**DON'T**: Use rounded elements with thick colored border on one side. A lazy accent that almost never looks intentional
**DON'T**: Use sparklines as decoration. Tiny charts that look sophisticated but convey nothing meaningful
**DON'T**: Use rounded rectangles with generic drop shadows. Safe, forgettable, could be any AI output
**DON'T**: Use modals unless there's truly no better alternative. Modals are lazy
### Motion
*Consult [motion reference](reference/motion-design.md) for timing, easing, and reduced motion.*
Focus on high-impact moments: one well-orchestrated page load with staggered reveals creates more delight than scattered micro-interactions.
**DO**: Use motion to convey state changesentrances, exits, feedback
**DO**: Use motion to convey state changes: entrances, exits, feedback
**DO**: Use exponential easing (ease-out-quart/quint/expo) for natural deceleration
**DO**: For height animations, use grid-template-rows transitions instead of animating height directly
**DON'T**: Animate layout properties (width, height, padding, margin)—use transform and opacity only
**DON'T**: Use bounce or elastic easing—they feel dated and tacky; real objects decelerate smoothly
**DON'T**: Animate layout properties (width, height, padding, margin). Use transform and opacity only
**DON'T**: Use bounce or elastic easing. They feel dated and tacky; real objects decelerate smoothly
### Interaction
*Consult [interaction reference](reference/interaction-design.md) for forms, focus, and loading patterns.*
Make interactions feel fast. Use optimistic UIupdate immediately, sync later.
Make interactions feel fast. Use optimistic UI: update immediately, sync later.
**DO**: Use progressive disclosure—start simple, reveal sophistication through interaction (basic options first, advanced behind expandable sections; hover states that reveal secondary actions)
**DO**: Use progressive disclosure. Start simple, reveal sophistication through interaction (basic options first, advanced behind expandable sections; hover states that reveal secondary actions)
**DO**: Design empty states that teach the interface, not just say "nothing here"
**DO**: Make every interactive surface feel intentional and responsive
**DON'T**: Repeat the same informationredundant headers, intros that restate the heading
**DON'T**: Make every button primary—use ghost buttons, text links, secondary styles; hierarchy matters
**DON'T**: Repeat the same information (redundant headers, intros that restate the heading)
**DON'T**: Make every button primary. Use ghost buttons, text links, secondary styles; hierarchy matters
### Responsive
*Consult [responsive reference](reference/responsive-design.md) for mobile-first, fluid design, and container queries.*
**DO**: Use container queries (@container) for component-level responsiveness
**DO**: Adapt the interface for different contexts—don't just shrink it
**DON'T**: Hide critical functionality on mobile—adapt the interface, don't amputate it
**DO**: Adapt the interface for different contexts, not just shrink it
**DON'T**: Hide critical functionality on mobile. Adapt the interface, don't amputate it
### UX Writing
*Consult [ux-writing reference](reference/ux-writing.md) for labels, errors, and empty states.*
@@ -134,7 +134,7 @@ Make interactions feel fast. Use optimistic UI—update immediately, sync later.
A distinctive interface should make someone ask "how was this made?" not "which AI made this?"
Review the DON'T guidelines above—they are the fingerprints of AI-generated work from 2024-2025.
Review the DON'T guidelines above. They are the fingerprints of AI-generated work from 2024-2025.
---
@@ -144,7 +144,7 @@ Match implementation complexity to the aesthetic vision. Maximalist designs need
Interpret creatively and make unexpected choices that feel genuinely designed for the context. No design should be the same. Vary between light and dark themes, different fonts, different aesthetics. NEVER converge on common choices across generations.
Remember: Claude is capable of extraordinary creative work. Don't hold back—show what can truly be created when thinking outside the box and committing fully to a distinctive vision.
Remember: Claude is capable of extraordinary creative work. Don't hold back. Show what can truly be created when thinking outside the box and committing fully to a distinctive vision.
---
+34 -34
View File
@@ -12,12 +12,12 @@ This skill guides creation of distinctive, production-grade frontend interfaces
Design skills produce generic output without project context. You MUST have confirmed design context before doing any design work.
**Required context** every design skill needs at minimum:
**Required context** (every design skill needs at minimum):
- **Target audience**: Who uses this product and in what context?
- **Use cases**: What jobs are they trying to get done?
- **Brand personality/tone**: How should the interface feel?
Individual skills may require additional context — check the skill's preparation section for specifics.
Individual skills may require additional context. Check the skill's preparation section for specifics.
**CRITICAL**: You cannot infer this context by reading the codebase. Code tells you what was built, not who it's for or what it should feel like. Only the creator can provide this context.
@@ -36,7 +36,7 @@ Commit to a BOLD aesthetic direction:
- **Constraints**: Technical requirements (framework, performance, accessibility).
- **Differentiation**: What makes this UNFORGETTABLE? What's the one thing someone will remember?
**CRITICAL**: Choose a clear conceptual direction and execute it with precision. Bold maximalism and refined minimalism both work—the key is intentionality, not intensity.
**CRITICAL**: Choose a clear conceptual direction and execute it with precision. Bold maximalism and refined minimalism both work. The key is intentionality, not intensity.
Then implement working code that is:
- Production-grade and functional
@@ -53,9 +53,9 @@ Choose fonts that are beautiful, unique, and interesting. Pair a distinctive dis
**DO**: Use a modular type scale with fluid sizing (clamp)
**DO**: Vary font weights and sizes to create clear visual hierarchy
**DON'T**: Use overused fontsInter, Roboto, Arial, Open Sans, system defaults
**DON'T**: Use overused fonts like Inter, Roboto, Arial, Open Sans, or system defaults
**DON'T**: Use monospace typography as lazy shorthand for "technical/developer" vibes
**DON'T**: Put large icons with rounded corners above every heading—they rarely add value and make sites look templated
**DON'T**: Put large icons with rounded corners above every heading. They rarely add value and make sites look templated
### Color & Theme
*Consult [color reference](reference/color-and-contrast.md) for OKLCH, palettes, and dark mode.*
@@ -63,64 +63,64 @@ Choose fonts that are beautiful, unique, and interesting. Pair a distinctive dis
Commit to a cohesive palette. Dominant colors with sharp accents outperform timid, evenly-distributed palettes.
**DO**: Use modern CSS color functions (oklch, color-mix, light-dark) for perceptually uniform, maintainable palettes
**DO**: Tint your neutrals toward your brand hue—even a subtle hint creates subconscious cohesion
**DON'T**: Use gray text on colored backgroundsit looks washed out; use a shade of the background color instead
**DON'T**: Use pure black (#000) or pure white (#fff)—always tint; pure black/white never appears in nature
**DO**: Tint your neutrals toward your brand hue. Even a subtle hint creates subconscious cohesion
**DON'T**: Use gray text on colored backgrounds; it looks washed out. Use a shade of the background color instead
**DON'T**: Use pure black (#000) or pure white (#fff). Always tint; pure black/white never appears in nature
**DON'T**: Use the AI color palette: cyan-on-dark, purple-to-blue gradients, neon accents on dark backgrounds
**DON'T**: Use gradient text for "impact"—especially on metrics or headings; it's decorative rather than meaningful
**DON'T**: Default to dark mode with glowing accents—it looks "cool" without requiring actual design decisions
**DON'T**: Use gradient text for "impact," especially on metrics or headings. It's decorative rather than meaningful
**DON'T**: Default to dark mode with glowing accents. It looks "cool" without requiring actual design decisions
### Layout & Space
*Consult [spatial reference](reference/spatial-design.md) for grids, rhythm, and container queries.*
Create visual rhythm through varied spacingnot the same padding everywhere. Embrace asymmetry and unexpected compositions. Break the grid intentionally for emphasis.
Create visual rhythm through varied spacing, not the same padding everywhere. Embrace asymmetry and unexpected compositions. Break the grid intentionally for emphasis.
**DO**: Create visual rhythm through varied spacingtight groupings, generous separations
**DO**: Create visual rhythm through varied spacing: tight groupings, generous separations
**DO**: Use fluid spacing with clamp() that breathes on larger screens
**DO**: Use asymmetry and unexpected compositions; break the grid intentionally for emphasis
**DON'T**: Wrap everything in cards—not everything needs a container
**DON'T**: Nest cards inside cards—visual noise, flatten the hierarchy
**DON'T**: Use identical card gridssame-sized cards with icon + heading + text, repeated endlessly
**DON'T**: Use the hero metric layout templatebig number, small label, supporting stats, gradient accent
**DON'T**: Center everything—left-aligned text with asymmetric layouts feels more designed
**DON'T**: Use the same spacing everywhere—without rhythm, layouts feel monotonous
**DON'T**: Wrap everything in cards. Not everything needs a container
**DON'T**: Nest cards inside cards. Visual noise; flatten the hierarchy
**DON'T**: Use identical card grids (same-sized cards with icon + heading + text, repeated endlessly)
**DON'T**: Use the hero metric layout template (big number, small label, supporting stats, gradient accent)
**DON'T**: Center everything. Left-aligned text with asymmetric layouts feels more designed
**DON'T**: Use the same spacing everywhere. Without rhythm, layouts feel monotonous
### Visual Details
**DO**: Use intentional, purposeful decorative elements that reinforce brand
**DON'T**: Use glassmorphism everywhereblur effects, glass cards, glow borders used decoratively rather than purposefully
**DON'T**: Use rounded elements with thick colored border on one side—a lazy accent that almost never looks intentional
**DON'T**: Use sparklines as decoration—tiny charts that look sophisticated but convey nothing meaningful
**DON'T**: Use rounded rectangles with generic drop shadows—safe, forgettable, could be any AI output
**DON'T**: Use modals unless there's truly no better alternative—modals are lazy
**DON'T**: Use glassmorphism everywhere (blur effects, glass cards, glow borders used decoratively rather than purposefully)
**DON'T**: Use rounded elements with thick colored border on one side. A lazy accent that almost never looks intentional
**DON'T**: Use sparklines as decoration. Tiny charts that look sophisticated but convey nothing meaningful
**DON'T**: Use rounded rectangles with generic drop shadows. Safe, forgettable, could be any AI output
**DON'T**: Use modals unless there's truly no better alternative. Modals are lazy
### Motion
*Consult [motion reference](reference/motion-design.md) for timing, easing, and reduced motion.*
Focus on high-impact moments: one well-orchestrated page load with staggered reveals creates more delight than scattered micro-interactions.
**DO**: Use motion to convey state changesentrances, exits, feedback
**DO**: Use motion to convey state changes: entrances, exits, feedback
**DO**: Use exponential easing (ease-out-quart/quint/expo) for natural deceleration
**DO**: For height animations, use grid-template-rows transitions instead of animating height directly
**DON'T**: Animate layout properties (width, height, padding, margin)—use transform and opacity only
**DON'T**: Use bounce or elastic easing—they feel dated and tacky; real objects decelerate smoothly
**DON'T**: Animate layout properties (width, height, padding, margin). Use transform and opacity only
**DON'T**: Use bounce or elastic easing. They feel dated and tacky; real objects decelerate smoothly
### Interaction
*Consult [interaction reference](reference/interaction-design.md) for forms, focus, and loading patterns.*
Make interactions feel fast. Use optimistic UIupdate immediately, sync later.
Make interactions feel fast. Use optimistic UI: update immediately, sync later.
**DO**: Use progressive disclosure—start simple, reveal sophistication through interaction (basic options first, advanced behind expandable sections; hover states that reveal secondary actions)
**DO**: Use progressive disclosure. Start simple, reveal sophistication through interaction (basic options first, advanced behind expandable sections; hover states that reveal secondary actions)
**DO**: Design empty states that teach the interface, not just say "nothing here"
**DO**: Make every interactive surface feel intentional and responsive
**DON'T**: Repeat the same informationredundant headers, intros that restate the heading
**DON'T**: Make every button primary—use ghost buttons, text links, secondary styles; hierarchy matters
**DON'T**: Repeat the same information (redundant headers, intros that restate the heading)
**DON'T**: Make every button primary. Use ghost buttons, text links, secondary styles; hierarchy matters
### Responsive
*Consult [responsive reference](reference/responsive-design.md) for mobile-first, fluid design, and container queries.*
**DO**: Use container queries (@container) for component-level responsiveness
**DO**: Adapt the interface for different contexts—don't just shrink it
**DON'T**: Hide critical functionality on mobile—adapt the interface, don't amputate it
**DO**: Adapt the interface for different contexts, not just shrink it
**DON'T**: Hide critical functionality on mobile. Adapt the interface, don't amputate it
### UX Writing
*Consult [ux-writing reference](reference/ux-writing.md) for labels, errors, and empty states.*
@@ -136,7 +136,7 @@ Make interactions feel fast. Use optimistic UI—update immediately, sync later.
A distinctive interface should make someone ask "how was this made?" not "which AI made this?"
Review the DON'T guidelines above—they are the fingerprints of AI-generated work from 2024-2025.
Review the DON'T guidelines above. They are the fingerprints of AI-generated work from 2024-2025.
---
@@ -146,7 +146,7 @@ Match implementation complexity to the aesthetic vision. Maximalist designs need
Interpret creatively and make unexpected choices that feel genuinely designed for the context. No design should be the same. Vary between light and dark themes, different fonts, different aesthetics. NEVER converge on common choices across generations.
Remember: Claude is capable of extraordinary creative work. Don't hold back—show what can truly be created when thinking outside the box and committing fully to a distinctive vision.
Remember: Claude is capable of extraordinary creative work. Don't hold back. Show what can truly be created when thinking outside the box and committing fully to a distinctive vision.
---
+34 -34
View File
@@ -10,12 +10,12 @@ This skill guides creation of distinctive, production-grade frontend interfaces
Design skills produce generic output without project context. You MUST have confirmed design context before doing any design work.
**Required context** every design skill needs at minimum:
**Required context** (every design skill needs at minimum):
- **Target audience**: Who uses this product and in what context?
- **Use cases**: What jobs are they trying to get done?
- **Brand personality/tone**: How should the interface feel?
Individual skills may require additional context — check the skill's preparation section for specifics.
Individual skills may require additional context. Check the skill's preparation section for specifics.
**CRITICAL**: You cannot infer this context by reading the codebase. Code tells you what was built, not who it's for or what it should feel like. Only the creator can provide this context.
@@ -34,7 +34,7 @@ Commit to a BOLD aesthetic direction:
- **Constraints**: Technical requirements (framework, performance, accessibility).
- **Differentiation**: What makes this UNFORGETTABLE? What's the one thing someone will remember?
**CRITICAL**: Choose a clear conceptual direction and execute it with precision. Bold maximalism and refined minimalism both work—the key is intentionality, not intensity.
**CRITICAL**: Choose a clear conceptual direction and execute it with precision. Bold maximalism and refined minimalism both work. The key is intentionality, not intensity.
Then implement working code that is:
- Production-grade and functional
@@ -51,9 +51,9 @@ Choose fonts that are beautiful, unique, and interesting. Pair a distinctive dis
**DO**: Use a modular type scale with fluid sizing (clamp)
**DO**: Vary font weights and sizes to create clear visual hierarchy
**DON'T**: Use overused fontsInter, Roboto, Arial, Open Sans, system defaults
**DON'T**: Use overused fonts like Inter, Roboto, Arial, Open Sans, or system defaults
**DON'T**: Use monospace typography as lazy shorthand for "technical/developer" vibes
**DON'T**: Put large icons with rounded corners above every heading—they rarely add value and make sites look templated
**DON'T**: Put large icons with rounded corners above every heading. They rarely add value and make sites look templated
### Color & Theme
*Consult [color reference](reference/color-and-contrast.md) for OKLCH, palettes, and dark mode.*
@@ -61,64 +61,64 @@ Choose fonts that are beautiful, unique, and interesting. Pair a distinctive dis
Commit to a cohesive palette. Dominant colors with sharp accents outperform timid, evenly-distributed palettes.
**DO**: Use modern CSS color functions (oklch, color-mix, light-dark) for perceptually uniform, maintainable palettes
**DO**: Tint your neutrals toward your brand hue—even a subtle hint creates subconscious cohesion
**DON'T**: Use gray text on colored backgroundsit looks washed out; use a shade of the background color instead
**DON'T**: Use pure black (#000) or pure white (#fff)—always tint; pure black/white never appears in nature
**DO**: Tint your neutrals toward your brand hue. Even a subtle hint creates subconscious cohesion
**DON'T**: Use gray text on colored backgrounds; it looks washed out. Use a shade of the background color instead
**DON'T**: Use pure black (#000) or pure white (#fff). Always tint; pure black/white never appears in nature
**DON'T**: Use the AI color palette: cyan-on-dark, purple-to-blue gradients, neon accents on dark backgrounds
**DON'T**: Use gradient text for "impact"—especially on metrics or headings; it's decorative rather than meaningful
**DON'T**: Default to dark mode with glowing accents—it looks "cool" without requiring actual design decisions
**DON'T**: Use gradient text for "impact," especially on metrics or headings. It's decorative rather than meaningful
**DON'T**: Default to dark mode with glowing accents. It looks "cool" without requiring actual design decisions
### Layout & Space
*Consult [spatial reference](reference/spatial-design.md) for grids, rhythm, and container queries.*
Create visual rhythm through varied spacingnot the same padding everywhere. Embrace asymmetry and unexpected compositions. Break the grid intentionally for emphasis.
Create visual rhythm through varied spacing, not the same padding everywhere. Embrace asymmetry and unexpected compositions. Break the grid intentionally for emphasis.
**DO**: Create visual rhythm through varied spacingtight groupings, generous separations
**DO**: Create visual rhythm through varied spacing: tight groupings, generous separations
**DO**: Use fluid spacing with clamp() that breathes on larger screens
**DO**: Use asymmetry and unexpected compositions; break the grid intentionally for emphasis
**DON'T**: Wrap everything in cards—not everything needs a container
**DON'T**: Nest cards inside cards—visual noise, flatten the hierarchy
**DON'T**: Use identical card gridssame-sized cards with icon + heading + text, repeated endlessly
**DON'T**: Use the hero metric layout templatebig number, small label, supporting stats, gradient accent
**DON'T**: Center everything—left-aligned text with asymmetric layouts feels more designed
**DON'T**: Use the same spacing everywhere—without rhythm, layouts feel monotonous
**DON'T**: Wrap everything in cards. Not everything needs a container
**DON'T**: Nest cards inside cards. Visual noise; flatten the hierarchy
**DON'T**: Use identical card grids (same-sized cards with icon + heading + text, repeated endlessly)
**DON'T**: Use the hero metric layout template (big number, small label, supporting stats, gradient accent)
**DON'T**: Center everything. Left-aligned text with asymmetric layouts feels more designed
**DON'T**: Use the same spacing everywhere. Without rhythm, layouts feel monotonous
### Visual Details
**DO**: Use intentional, purposeful decorative elements that reinforce brand
**DON'T**: Use glassmorphism everywhereblur effects, glass cards, glow borders used decoratively rather than purposefully
**DON'T**: Use rounded elements with thick colored border on one side—a lazy accent that almost never looks intentional
**DON'T**: Use sparklines as decoration—tiny charts that look sophisticated but convey nothing meaningful
**DON'T**: Use rounded rectangles with generic drop shadows—safe, forgettable, could be any AI output
**DON'T**: Use modals unless there's truly no better alternative—modals are lazy
**DON'T**: Use glassmorphism everywhere (blur effects, glass cards, glow borders used decoratively rather than purposefully)
**DON'T**: Use rounded elements with thick colored border on one side. A lazy accent that almost never looks intentional
**DON'T**: Use sparklines as decoration. Tiny charts that look sophisticated but convey nothing meaningful
**DON'T**: Use rounded rectangles with generic drop shadows. Safe, forgettable, could be any AI output
**DON'T**: Use modals unless there's truly no better alternative. Modals are lazy
### Motion
*Consult [motion reference](reference/motion-design.md) for timing, easing, and reduced motion.*
Focus on high-impact moments: one well-orchestrated page load with staggered reveals creates more delight than scattered micro-interactions.
**DO**: Use motion to convey state changesentrances, exits, feedback
**DO**: Use motion to convey state changes: entrances, exits, feedback
**DO**: Use exponential easing (ease-out-quart/quint/expo) for natural deceleration
**DO**: For height animations, use grid-template-rows transitions instead of animating height directly
**DON'T**: Animate layout properties (width, height, padding, margin)—use transform and opacity only
**DON'T**: Use bounce or elastic easing—they feel dated and tacky; real objects decelerate smoothly
**DON'T**: Animate layout properties (width, height, padding, margin). Use transform and opacity only
**DON'T**: Use bounce or elastic easing. They feel dated and tacky; real objects decelerate smoothly
### Interaction
*Consult [interaction reference](reference/interaction-design.md) for forms, focus, and loading patterns.*
Make interactions feel fast. Use optimistic UIupdate immediately, sync later.
Make interactions feel fast. Use optimistic UI: update immediately, sync later.
**DO**: Use progressive disclosure—start simple, reveal sophistication through interaction (basic options first, advanced behind expandable sections; hover states that reveal secondary actions)
**DO**: Use progressive disclosure. Start simple, reveal sophistication through interaction (basic options first, advanced behind expandable sections; hover states that reveal secondary actions)
**DO**: Design empty states that teach the interface, not just say "nothing here"
**DO**: Make every interactive surface feel intentional and responsive
**DON'T**: Repeat the same informationredundant headers, intros that restate the heading
**DON'T**: Make every button primary—use ghost buttons, text links, secondary styles; hierarchy matters
**DON'T**: Repeat the same information (redundant headers, intros that restate the heading)
**DON'T**: Make every button primary. Use ghost buttons, text links, secondary styles; hierarchy matters
### Responsive
*Consult [responsive reference](reference/responsive-design.md) for mobile-first, fluid design, and container queries.*
**DO**: Use container queries (@container) for component-level responsiveness
**DO**: Adapt the interface for different contexts—don't just shrink it
**DON'T**: Hide critical functionality on mobile—adapt the interface, don't amputate it
**DO**: Adapt the interface for different contexts, not just shrink it
**DON'T**: Hide critical functionality on mobile. Adapt the interface, don't amputate it
### UX Writing
*Consult [ux-writing reference](reference/ux-writing.md) for labels, errors, and empty states.*
@@ -134,7 +134,7 @@ Make interactions feel fast. Use optimistic UI—update immediately, sync later.
A distinctive interface should make someone ask "how was this made?" not "which AI made this?"
Review the DON'T guidelines above—they are the fingerprints of AI-generated work from 2024-2025.
Review the DON'T guidelines above. They are the fingerprints of AI-generated work from 2024-2025.
---
@@ -144,7 +144,7 @@ Match implementation complexity to the aesthetic vision. Maximalist designs need
Interpret creatively and make unexpected choices that feel genuinely designed for the context. No design should be the same. Vary between light and dark themes, different fonts, different aesthetics. NEVER converge on common choices across generations.
Remember: the model is capable of extraordinary creative work. Don't hold back—show what can truly be created when thinking outside the box and committing fully to a distinctive vision.
Remember: the model is capable of extraordinary creative work. Don't hold back. Show what can truly be created when thinking outside the box and committing fully to a distinctive vision.
---
+34 -34
View File
@@ -12,12 +12,12 @@ This skill guides creation of distinctive, production-grade frontend interfaces
Design skills produce generic output without project context. You MUST have confirmed design context before doing any design work.
**Required context** every design skill needs at minimum:
**Required context** (every design skill needs at minimum):
- **Target audience**: Who uses this product and in what context?
- **Use cases**: What jobs are they trying to get done?
- **Brand personality/tone**: How should the interface feel?
Individual skills may require additional context — check the skill's preparation section for specifics.
Individual skills may require additional context. Check the skill's preparation section for specifics.
**CRITICAL**: You cannot infer this context by reading the codebase. Code tells you what was built, not who it's for or what it should feel like. Only the creator can provide this context.
@@ -36,7 +36,7 @@ Commit to a BOLD aesthetic direction:
- **Constraints**: Technical requirements (framework, performance, accessibility).
- **Differentiation**: What makes this UNFORGETTABLE? What's the one thing someone will remember?
**CRITICAL**: Choose a clear conceptual direction and execute it with precision. Bold maximalism and refined minimalism both work—the key is intentionality, not intensity.
**CRITICAL**: Choose a clear conceptual direction and execute it with precision. Bold maximalism and refined minimalism both work. The key is intentionality, not intensity.
Then implement working code that is:
- Production-grade and functional
@@ -53,9 +53,9 @@ Choose fonts that are beautiful, unique, and interesting. Pair a distinctive dis
**DO**: Use a modular type scale with fluid sizing (clamp)
**DO**: Vary font weights and sizes to create clear visual hierarchy
**DON'T**: Use overused fontsInter, Roboto, Arial, Open Sans, system defaults
**DON'T**: Use overused fonts like Inter, Roboto, Arial, Open Sans, or system defaults
**DON'T**: Use monospace typography as lazy shorthand for "technical/developer" vibes
**DON'T**: Put large icons with rounded corners above every heading—they rarely add value and make sites look templated
**DON'T**: Put large icons with rounded corners above every heading. They rarely add value and make sites look templated
### Color & Theme
*Consult [color reference](reference/color-and-contrast.md) for OKLCH, palettes, and dark mode.*
@@ -63,64 +63,64 @@ Choose fonts that are beautiful, unique, and interesting. Pair a distinctive dis
Commit to a cohesive palette. Dominant colors with sharp accents outperform timid, evenly-distributed palettes.
**DO**: Use modern CSS color functions (oklch, color-mix, light-dark) for perceptually uniform, maintainable palettes
**DO**: Tint your neutrals toward your brand hue—even a subtle hint creates subconscious cohesion
**DON'T**: Use gray text on colored backgroundsit looks washed out; use a shade of the background color instead
**DON'T**: Use pure black (#000) or pure white (#fff)—always tint; pure black/white never appears in nature
**DO**: Tint your neutrals toward your brand hue. Even a subtle hint creates subconscious cohesion
**DON'T**: Use gray text on colored backgrounds; it looks washed out. Use a shade of the background color instead
**DON'T**: Use pure black (#000) or pure white (#fff). Always tint; pure black/white never appears in nature
**DON'T**: Use the AI color palette: cyan-on-dark, purple-to-blue gradients, neon accents on dark backgrounds
**DON'T**: Use gradient text for "impact"—especially on metrics or headings; it's decorative rather than meaningful
**DON'T**: Default to dark mode with glowing accents—it looks "cool" without requiring actual design decisions
**DON'T**: Use gradient text for "impact," especially on metrics or headings. It's decorative rather than meaningful
**DON'T**: Default to dark mode with glowing accents. It looks "cool" without requiring actual design decisions
### Layout & Space
*Consult [spatial reference](reference/spatial-design.md) for grids, rhythm, and container queries.*
Create visual rhythm through varied spacingnot the same padding everywhere. Embrace asymmetry and unexpected compositions. Break the grid intentionally for emphasis.
Create visual rhythm through varied spacing, not the same padding everywhere. Embrace asymmetry and unexpected compositions. Break the grid intentionally for emphasis.
**DO**: Create visual rhythm through varied spacingtight groupings, generous separations
**DO**: Create visual rhythm through varied spacing: tight groupings, generous separations
**DO**: Use fluid spacing with clamp() that breathes on larger screens
**DO**: Use asymmetry and unexpected compositions; break the grid intentionally for emphasis
**DON'T**: Wrap everything in cards—not everything needs a container
**DON'T**: Nest cards inside cards—visual noise, flatten the hierarchy
**DON'T**: Use identical card gridssame-sized cards with icon + heading + text, repeated endlessly
**DON'T**: Use the hero metric layout templatebig number, small label, supporting stats, gradient accent
**DON'T**: Center everything—left-aligned text with asymmetric layouts feels more designed
**DON'T**: Use the same spacing everywhere—without rhythm, layouts feel monotonous
**DON'T**: Wrap everything in cards. Not everything needs a container
**DON'T**: Nest cards inside cards. Visual noise; flatten the hierarchy
**DON'T**: Use identical card grids (same-sized cards with icon + heading + text, repeated endlessly)
**DON'T**: Use the hero metric layout template (big number, small label, supporting stats, gradient accent)
**DON'T**: Center everything. Left-aligned text with asymmetric layouts feels more designed
**DON'T**: Use the same spacing everywhere. Without rhythm, layouts feel monotonous
### Visual Details
**DO**: Use intentional, purposeful decorative elements that reinforce brand
**DON'T**: Use glassmorphism everywhereblur effects, glass cards, glow borders used decoratively rather than purposefully
**DON'T**: Use rounded elements with thick colored border on one side—a lazy accent that almost never looks intentional
**DON'T**: Use sparklines as decoration—tiny charts that look sophisticated but convey nothing meaningful
**DON'T**: Use rounded rectangles with generic drop shadows—safe, forgettable, could be any AI output
**DON'T**: Use modals unless there's truly no better alternative—modals are lazy
**DON'T**: Use glassmorphism everywhere (blur effects, glass cards, glow borders used decoratively rather than purposefully)
**DON'T**: Use rounded elements with thick colored border on one side. A lazy accent that almost never looks intentional
**DON'T**: Use sparklines as decoration. Tiny charts that look sophisticated but convey nothing meaningful
**DON'T**: Use rounded rectangles with generic drop shadows. Safe, forgettable, could be any AI output
**DON'T**: Use modals unless there's truly no better alternative. Modals are lazy
### Motion
*Consult [motion reference](reference/motion-design.md) for timing, easing, and reduced motion.*
Focus on high-impact moments: one well-orchestrated page load with staggered reveals creates more delight than scattered micro-interactions.
**DO**: Use motion to convey state changesentrances, exits, feedback
**DO**: Use motion to convey state changes: entrances, exits, feedback
**DO**: Use exponential easing (ease-out-quart/quint/expo) for natural deceleration
**DO**: For height animations, use grid-template-rows transitions instead of animating height directly
**DON'T**: Animate layout properties (width, height, padding, margin)—use transform and opacity only
**DON'T**: Use bounce or elastic easing—they feel dated and tacky; real objects decelerate smoothly
**DON'T**: Animate layout properties (width, height, padding, margin). Use transform and opacity only
**DON'T**: Use bounce or elastic easing. They feel dated and tacky; real objects decelerate smoothly
### Interaction
*Consult [interaction reference](reference/interaction-design.md) for forms, focus, and loading patterns.*
Make interactions feel fast. Use optimistic UIupdate immediately, sync later.
Make interactions feel fast. Use optimistic UI: update immediately, sync later.
**DO**: Use progressive disclosure—start simple, reveal sophistication through interaction (basic options first, advanced behind expandable sections; hover states that reveal secondary actions)
**DO**: Use progressive disclosure. Start simple, reveal sophistication through interaction (basic options first, advanced behind expandable sections; hover states that reveal secondary actions)
**DO**: Design empty states that teach the interface, not just say "nothing here"
**DO**: Make every interactive surface feel intentional and responsive
**DON'T**: Repeat the same informationredundant headers, intros that restate the heading
**DON'T**: Make every button primary—use ghost buttons, text links, secondary styles; hierarchy matters
**DON'T**: Repeat the same information (redundant headers, intros that restate the heading)
**DON'T**: Make every button primary. Use ghost buttons, text links, secondary styles; hierarchy matters
### Responsive
*Consult [responsive reference](reference/responsive-design.md) for mobile-first, fluid design, and container queries.*
**DO**: Use container queries (@container) for component-level responsiveness
**DO**: Adapt the interface for different contexts—don't just shrink it
**DON'T**: Hide critical functionality on mobile—adapt the interface, don't amputate it
**DO**: Adapt the interface for different contexts, not just shrink it
**DON'T**: Hide critical functionality on mobile. Adapt the interface, don't amputate it
### UX Writing
*Consult [ux-writing reference](reference/ux-writing.md) for labels, errors, and empty states.*
@@ -136,7 +136,7 @@ Make interactions feel fast. Use optimistic UI—update immediately, sync later.
A distinctive interface should make someone ask "how was this made?" not "which AI made this?"
Review the DON'T guidelines above—they are the fingerprints of AI-generated work from 2024-2025.
Review the DON'T guidelines above. They are the fingerprints of AI-generated work from 2024-2025.
---
@@ -146,7 +146,7 @@ Match implementation complexity to the aesthetic vision. Maximalist designs need
Interpret creatively and make unexpected choices that feel genuinely designed for the context. No design should be the same. Vary between light and dark themes, different fonts, different aesthetics. NEVER converge on common choices across generations.
Remember: the model is capable of extraordinary creative work. Don't hold back—show what can truly be created when thinking outside the box and committing fully to a distinctive vision.
Remember: the model is capable of extraordinary creative work. Don't hold back. Show what can truly be created when thinking outside the box and committing fully to a distinctive vision.
---
+34 -34
View File
@@ -12,12 +12,12 @@ This skill guides creation of distinctive, production-grade frontend interfaces
Design skills produce generic output without project context. You MUST have confirmed design context before doing any design work.
**Required context** every design skill needs at minimum:
**Required context** (every design skill needs at minimum):
- **Target audience**: Who uses this product and in what context?
- **Use cases**: What jobs are they trying to get done?
- **Brand personality/tone**: How should the interface feel?
Individual skills may require additional context — check the skill's preparation section for specifics.
Individual skills may require additional context. Check the skill's preparation section for specifics.
**CRITICAL**: You cannot infer this context by reading the codebase. Code tells you what was built, not who it's for or what it should feel like. Only the creator can provide this context.
@@ -36,7 +36,7 @@ Commit to a BOLD aesthetic direction:
- **Constraints**: Technical requirements (framework, performance, accessibility).
- **Differentiation**: What makes this UNFORGETTABLE? What's the one thing someone will remember?
**CRITICAL**: Choose a clear conceptual direction and execute it with precision. Bold maximalism and refined minimalism both work—the key is intentionality, not intensity.
**CRITICAL**: Choose a clear conceptual direction and execute it with precision. Bold maximalism and refined minimalism both work. The key is intentionality, not intensity.
Then implement working code that is:
- Production-grade and functional
@@ -53,9 +53,9 @@ Choose fonts that are beautiful, unique, and interesting. Pair a distinctive dis
**DO**: Use a modular type scale with fluid sizing (clamp)
**DO**: Vary font weights and sizes to create clear visual hierarchy
**DON'T**: Use overused fontsInter, Roboto, Arial, Open Sans, system defaults
**DON'T**: Use overused fonts like Inter, Roboto, Arial, Open Sans, or system defaults
**DON'T**: Use monospace typography as lazy shorthand for "technical/developer" vibes
**DON'T**: Put large icons with rounded corners above every heading—they rarely add value and make sites look templated
**DON'T**: Put large icons with rounded corners above every heading. They rarely add value and make sites look templated
### Color & Theme
*Consult [color reference](reference/color-and-contrast.md) for OKLCH, palettes, and dark mode.*
@@ -63,64 +63,64 @@ Choose fonts that are beautiful, unique, and interesting. Pair a distinctive dis
Commit to a cohesive palette. Dominant colors with sharp accents outperform timid, evenly-distributed palettes.
**DO**: Use modern CSS color functions (oklch, color-mix, light-dark) for perceptually uniform, maintainable palettes
**DO**: Tint your neutrals toward your brand hue—even a subtle hint creates subconscious cohesion
**DON'T**: Use gray text on colored backgroundsit looks washed out; use a shade of the background color instead
**DON'T**: Use pure black (#000) or pure white (#fff)—always tint; pure black/white never appears in nature
**DO**: Tint your neutrals toward your brand hue. Even a subtle hint creates subconscious cohesion
**DON'T**: Use gray text on colored backgrounds; it looks washed out. Use a shade of the background color instead
**DON'T**: Use pure black (#000) or pure white (#fff). Always tint; pure black/white never appears in nature
**DON'T**: Use the AI color palette: cyan-on-dark, purple-to-blue gradients, neon accents on dark backgrounds
**DON'T**: Use gradient text for "impact"—especially on metrics or headings; it's decorative rather than meaningful
**DON'T**: Default to dark mode with glowing accents—it looks "cool" without requiring actual design decisions
**DON'T**: Use gradient text for "impact," especially on metrics or headings. It's decorative rather than meaningful
**DON'T**: Default to dark mode with glowing accents. It looks "cool" without requiring actual design decisions
### Layout & Space
*Consult [spatial reference](reference/spatial-design.md) for grids, rhythm, and container queries.*
Create visual rhythm through varied spacingnot the same padding everywhere. Embrace asymmetry and unexpected compositions. Break the grid intentionally for emphasis.
Create visual rhythm through varied spacing, not the same padding everywhere. Embrace asymmetry and unexpected compositions. Break the grid intentionally for emphasis.
**DO**: Create visual rhythm through varied spacingtight groupings, generous separations
**DO**: Create visual rhythm through varied spacing: tight groupings, generous separations
**DO**: Use fluid spacing with clamp() that breathes on larger screens
**DO**: Use asymmetry and unexpected compositions; break the grid intentionally for emphasis
**DON'T**: Wrap everything in cards—not everything needs a container
**DON'T**: Nest cards inside cards—visual noise, flatten the hierarchy
**DON'T**: Use identical card gridssame-sized cards with icon + heading + text, repeated endlessly
**DON'T**: Use the hero metric layout templatebig number, small label, supporting stats, gradient accent
**DON'T**: Center everything—left-aligned text with asymmetric layouts feels more designed
**DON'T**: Use the same spacing everywhere—without rhythm, layouts feel monotonous
**DON'T**: Wrap everything in cards. Not everything needs a container
**DON'T**: Nest cards inside cards. Visual noise; flatten the hierarchy
**DON'T**: Use identical card grids (same-sized cards with icon + heading + text, repeated endlessly)
**DON'T**: Use the hero metric layout template (big number, small label, supporting stats, gradient accent)
**DON'T**: Center everything. Left-aligned text with asymmetric layouts feels more designed
**DON'T**: Use the same spacing everywhere. Without rhythm, layouts feel monotonous
### Visual Details
**DO**: Use intentional, purposeful decorative elements that reinforce brand
**DON'T**: Use glassmorphism everywhereblur effects, glass cards, glow borders used decoratively rather than purposefully
**DON'T**: Use rounded elements with thick colored border on one side—a lazy accent that almost never looks intentional
**DON'T**: Use sparklines as decoration—tiny charts that look sophisticated but convey nothing meaningful
**DON'T**: Use rounded rectangles with generic drop shadows—safe, forgettable, could be any AI output
**DON'T**: Use modals unless there's truly no better alternative—modals are lazy
**DON'T**: Use glassmorphism everywhere (blur effects, glass cards, glow borders used decoratively rather than purposefully)
**DON'T**: Use rounded elements with thick colored border on one side. A lazy accent that almost never looks intentional
**DON'T**: Use sparklines as decoration. Tiny charts that look sophisticated but convey nothing meaningful
**DON'T**: Use rounded rectangles with generic drop shadows. Safe, forgettable, could be any AI output
**DON'T**: Use modals unless there's truly no better alternative. Modals are lazy
### Motion
*Consult [motion reference](reference/motion-design.md) for timing, easing, and reduced motion.*
Focus on high-impact moments: one well-orchestrated page load with staggered reveals creates more delight than scattered micro-interactions.
**DO**: Use motion to convey state changesentrances, exits, feedback
**DO**: Use motion to convey state changes: entrances, exits, feedback
**DO**: Use exponential easing (ease-out-quart/quint/expo) for natural deceleration
**DO**: For height animations, use grid-template-rows transitions instead of animating height directly
**DON'T**: Animate layout properties (width, height, padding, margin)—use transform and opacity only
**DON'T**: Use bounce or elastic easing—they feel dated and tacky; real objects decelerate smoothly
**DON'T**: Animate layout properties (width, height, padding, margin). Use transform and opacity only
**DON'T**: Use bounce or elastic easing. They feel dated and tacky; real objects decelerate smoothly
### Interaction
*Consult [interaction reference](reference/interaction-design.md) for forms, focus, and loading patterns.*
Make interactions feel fast. Use optimistic UIupdate immediately, sync later.
Make interactions feel fast. Use optimistic UI: update immediately, sync later.
**DO**: Use progressive disclosure—start simple, reveal sophistication through interaction (basic options first, advanced behind expandable sections; hover states that reveal secondary actions)
**DO**: Use progressive disclosure. Start simple, reveal sophistication through interaction (basic options first, advanced behind expandable sections; hover states that reveal secondary actions)
**DO**: Design empty states that teach the interface, not just say "nothing here"
**DO**: Make every interactive surface feel intentional and responsive
**DON'T**: Repeat the same informationredundant headers, intros that restate the heading
**DON'T**: Make every button primary—use ghost buttons, text links, secondary styles; hierarchy matters
**DON'T**: Repeat the same information (redundant headers, intros that restate the heading)
**DON'T**: Make every button primary. Use ghost buttons, text links, secondary styles; hierarchy matters
### Responsive
*Consult [responsive reference](reference/responsive-design.md) for mobile-first, fluid design, and container queries.*
**DO**: Use container queries (@container) for component-level responsiveness
**DO**: Adapt the interface for different contexts—don't just shrink it
**DON'T**: Hide critical functionality on mobile—adapt the interface, don't amputate it
**DO**: Adapt the interface for different contexts, not just shrink it
**DON'T**: Hide critical functionality on mobile. Adapt the interface, don't amputate it
### UX Writing
*Consult [ux-writing reference](reference/ux-writing.md) for labels, errors, and empty states.*
@@ -136,7 +136,7 @@ Make interactions feel fast. Use optimistic UI—update immediately, sync later.
A distinctive interface should make someone ask "how was this made?" not "which AI made this?"
Review the DON'T guidelines above—they are the fingerprints of AI-generated work from 2024-2025.
Review the DON'T guidelines above. They are the fingerprints of AI-generated work from 2024-2025.
---
@@ -146,7 +146,7 @@ Match implementation complexity to the aesthetic vision. Maximalist designs need
Interpret creatively and make unexpected choices that feel genuinely designed for the context. No design should be the same. Vary between light and dark themes, different fonts, different aesthetics. NEVER converge on common choices across generations.
Remember: the model is capable of extraordinary creative work. Don't hold back—show what can truly be created when thinking outside the box and committing fully to a distinctive vision.
Remember: the model is capable of extraordinary creative work. Don't hold back. Show what can truly be created when thinking outside the box and committing fully to a distinctive vision.
---
+60 -113
View File
@@ -93,132 +93,79 @@ function renderPatternsWithTabs(patterns, antipatterns) {
const container = document.getElementById("patterns-categories");
if (!container || !patterns || !antipatterns) return;
// Create a map of antipatterns by category name
const antipatternMap = {};
antipatterns.forEach(cat => {
antipatternMap[cat.name] = cat.items;
});
antipatterns.forEach(cat => { antipatternMap[cat.name] = cat.items; });
// Generate unique IDs for tabs
const tabId = (name) => `pattern-tab-${name.toLowerCase().replace(/\s+/g, '-')}`;
const panelId = (name) => `pattern-panel-${name.toLowerCase().replace(/\s+/g, '-')}`;
const icons = ['Aa', '&#9673;', '&#9638;', '&#10697;', '&#9881;', '&#9113;', '&#9998;', '&#9998;'];
// Build tabs with WAI-ARIA attributes
const tabsHTML = patterns
.map((category, i) => `<button
class="pattern-tab${i === 0 ? ' active' : ''}"
data-tab="${escapeHtml(category.name)}"
role="tab"
id="${tabId(category.name)}"
aria-selected="${i === 0 ? 'true' : 'false'}"
aria-controls="${panelId(category.name)}"
tabindex="${i === 0 ? '0' : '-1'}"
>${escapeHtml(category.name)}</button>`)
.join("");
// Build panels with WAI-ARIA attributes
const panelsHTML = patterns
.map((category, i) => {
const antiItems = antipatternMap[category.name] || [];
return `
<div
class="pattern-panel${i === 0 ? ' active' : ''}"
data-panel="${escapeHtml(category.name)}"
role="tabpanel"
id="${panelId(category.name)}"
aria-labelledby="${tabId(category.name)}"
${i !== 0 ? 'hidden' : ''}
>
<div class="pattern-columns">
<div class="pattern-column pattern-column--anti">
<span class="pattern-column-label" id="dont-label-${i}">Don't</span>
<ul class="pattern-list" aria-labelledby="dont-label-${i}">
${antiItems.map((item) => `<li class="pattern-item pattern-item--anti">${escapeHtml(item)}</li>`).join("")}
</ul>
const itemsHTML = patterns.map((category, i) => {
const antiItems = antipatternMap[category.name] || [];
const totalCount = antiItems.length + category.items.length;
return `
<li class="disclosure-item" data-active="${i === 0 ? 'true' : 'false'}" data-index="${i}">
<button class="disclosure-tab" aria-expanded="${i === 0 ? 'true' : 'false'}">
<span class="disclosure-tab-label">${escapeHtml(category.name)}</span>
<span class="disclosure-tab-icon">${icons[i] || '&#8226;'}</span>
</button>
<div class="disclosure-content">
<div class="disclosure-toggle">
<button class="disclosure-toggle-btn disclosure-toggle-btn--anti is-active" data-show="anti">Don't</button>
<button class="disclosure-toggle-btn disclosure-toggle-btn--do" data-show="do">Do</button>
</div>
<div class="pattern-column pattern-column--do">
<span class="pattern-column-label" id="do-label-${i}">Do</span>
<ul class="pattern-list" aria-labelledby="do-label-${i}">
${category.items.map((item) => `<li class="pattern-item pattern-item--do">${escapeHtml(item)}</li>`).join("")}
</ul>
<div class="disclosure-content-inner">
<div class="disclosure-columns">
<div class="disclosure-col" data-col="anti">
<ul>${antiItems.map(item => `<li>${escapeHtml(item)}</li>`).join('')}</ul>
</div>
<div class="disclosure-col" data-col="do" hidden>
<ul>${category.items.map(item => `<li>${escapeHtml(item)}</li>`).join('')}</ul>
</div>
</div>
</div>
</div>
</div>
`;
})
.join("");
</li>`;
}).join('');
container.innerHTML = `
<div class="pattern-tabs" role="tablist" aria-label="Pattern categories">${tabsHTML}</div>
<div class="pattern-panels">${panelsHTML}</div>
`;
container.innerHTML = `<ul class="disclosure-list">${itemsHTML}</ul>`;
const tabs = container.querySelectorAll('.pattern-tab');
const panels = container.querySelectorAll('.pattern-panel');
const list = container.querySelector('.disclosure-list');
const items = list.querySelectorAll('.disclosure-item');
// Function to switch tabs
const switchTab = (newTab) => {
const tabName = newTab.dataset.tab;
// Update ARIA attributes on all tabs
tabs.forEach(t => {
t.classList.remove('active');
t.setAttribute('aria-selected', 'false');
t.setAttribute('tabindex', '-1');
});
// Activate the new tab
newTab.classList.add('active');
newTab.setAttribute('aria-selected', 'true');
newTab.setAttribute('tabindex', '0');
newTab.focus();
// Update panels
panels.forEach(p => {
p.classList.remove('active');
p.setAttribute('hidden', '');
});
const escapedName = CSS.escape(tabName);
const activePanel = container.querySelector(`[data-panel="${escapedName}"]`);
if (!activePanel) return;
activePanel.classList.add('active');
activePanel.removeAttribute('hidden');
const activate = (event) => {
const closest = event.target.closest('.disclosure-item');
if (!closest) return;
const index = [...items].indexOf(closest);
const cols = [...items].map((item, i) => {
item.dataset.active = (index === i).toString();
item.querySelector('.disclosure-tab').setAttribute('aria-expanded', index === i ? 'true' : 'false');
return index === i ? '10fr' : '1fr';
}).join(' ');
list.style.setProperty('grid-template-columns', cols);
};
// Tab click handling
tabs.forEach(tab => {
tab.addEventListener('click', () => switchTab(tab));
});
// Sync article width for content sizing
const syncWidth = () => {
const w = Math.max(...[...items].map(i => i.offsetWidth));
list.style.setProperty('--dl-article-width', w);
};
window.addEventListener('resize', syncWidth);
syncWidth();
// Keyboard navigation (Arrow keys, Home, End)
tabs.forEach((tab, index) => {
tab.addEventListener('keydown', (e) => {
let targetIndex = index;
list.addEventListener('pointermove', activate);
list.addEventListener('click', activate);
list.addEventListener('focus', activate, true);
switch (e.key) {
case 'ArrowLeft':
case 'ArrowUp':
e.preventDefault();
targetIndex = index === 0 ? tabs.length - 1 : index - 1;
break;
case 'ArrowRight':
case 'ArrowDown':
e.preventDefault();
targetIndex = index === tabs.length - 1 ? 0 : index + 1;
break;
case 'Home':
e.preventDefault();
targetIndex = 0;
break;
case 'End':
e.preventDefault();
targetIndex = tabs.length - 1;
break;
default:
return;
}
switchTab(tabs[targetIndex]);
// Don't/Do toggle within each card
list.addEventListener('click', (e) => {
const btn = e.target.closest('.disclosure-toggle-btn');
if (!btn) return;
e.stopPropagation();
const item = btn.closest('.disclosure-item');
const show = btn.dataset.show;
item.querySelectorAll('.disclosure-toggle-btn').forEach(b => b.classList.remove('is-active'));
btn.classList.add('is-active');
item.querySelectorAll('.disclosure-col').forEach(col => {
col.hidden = col.dataset.col !== show;
});
});
}
+350 -108
View File
@@ -1947,203 +1947,445 @@ code {
border-top: 1px solid var(--color-mist);
}
/* Patterns - tabbed layout */
.patterns-categories {
/* Animated horizontal disclosure (inspired by jh3y/XJWNMOO) */
.antidote-grid {
margin-bottom: var(--spacing-xl);
}
/* Tab bar */
.pattern-tabs {
display: flex;
flex-wrap: wrap;
gap: var(--spacing-xs);
margin-bottom: var(--spacing-lg);
.disclosure-list {
--dl-gap: 6px;
--dl-base: 52px;
--dl-speed: 0.5s;
--dl-easing: linear(0 0%, 0.15 4%, 0.29 8%, 0.42 13%, 0.53 17%, 0.63 22%, 0.71 27%, 0.78 32%, 0.84 37%, 0.89 42%, 0.93 48%, 0.95 54%, 0.98 60%, 0.99 67%, 1 75%, 1 100%);
list-style: none;
padding: 0;
margin: 0;
display: grid;
grid-template-columns: 10fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
gap: var(--dl-gap);
height: clamp(320px, 38dvh, 420px);
transition: grid-template-columns var(--dl-speed) var(--dl-easing);
}
.pattern-tab {
.disclosure-item {
position: relative;
overflow: hidden;
min-width: var(--dl-base);
border-radius: 8px;
border: 1px solid var(--color-mist);
background: white;
cursor: pointer;
}
/* Tab: label + icon inside each item, absolutely positioned */
.disclosure-tab {
position: absolute;
inset: 0;
display: flex;
flex-direction: column;
justify-content: space-between;
align-items: center;
padding: 0;
background: none;
border: none;
border-bottom: 2px solid transparent;
font-family: var(--font-body);
font-size: 0.875rem;
color: var(--color-ash);
padding: var(--spacing-xs) var(--spacing-sm);
cursor: pointer;
transition: color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);
width: 100%;
height: 100%;
}
.pattern-tab:hover {
color: var(--color-charcoal);
}
.pattern-tab.active {
color: var(--color-ink);
.disclosure-tab-label {
position: absolute;
top: var(--spacing-sm);
left: calc(var(--dl-base) * 0.5);
transform-origin: 0 50%;
rotate: 90deg;
font-family: var(--font-body);
font-size: 0.8125rem;
font-weight: 500;
border-bottom-color: var(--color-accent);
text-transform: uppercase;
color: var(--color-ink);
letter-spacing: 0.03em;
white-space: nowrap;
opacity: 0.5;
transition: opacity calc(var(--dl-speed) * 1.2) var(--dl-easing);
}
.pattern-tab:focus-visible {
outline: 2px solid var(--color-accent);
outline-offset: 2px;
border-radius: 4px;
.disclosure-tab-icon {
position: absolute;
bottom: var(--spacing-sm);
left: 50%;
transform: translateX(-50%);
font-size: 1rem;
color: var(--color-accent);
font-weight: 600;
opacity: 0.5;
transition: opacity calc(var(--dl-speed) * 1.2) var(--dl-easing);
}
/* Panels */
.pattern-panel {
display: none;
.disclosure-item[data-active='true'] .disclosure-tab-label {
opacity: 1;
}
.pattern-panel.active {
display: block;
.disclosure-item[data-active='true'] .disclosure-tab-icon {
opacity: 0;
}
.pattern-columns {
display: grid;
grid-template-columns: 1fr 1fr;
gap: var(--spacing-xl);
/* Expanded content: absolutely positioned, sized to article width */
.disclosure-content {
position: absolute;
top: 0;
left: 0;
width: calc(var(--dl-article-width, 600) * 1px);
height: 100%;
display: flex;
flex-direction: column;
overflow: hidden;
opacity: 0;
transition: opacity calc(var(--dl-speed) * 1.2) var(--dl-easing);
}
@media (max-width: 768px) {
.pattern-columns {
grid-template-columns: 1fr;
gap: var(--spacing-md);
}
.disclosure-item[data-active='true'] .disclosure-content {
opacity: 1;
transition-delay: calc(var(--dl-speed) * 0.2);
}
.pattern-column-label {
display: block;
font-size: 0.6875rem;
.disclosure-content-inner {
padding: var(--spacing-sm) var(--spacing-md) var(--spacing-md) calc(var(--dl-base) + var(--spacing-sm));
flex: 1;
overflow-y: auto;
overflow-x: hidden;
}
.disclosure-columns {
display: flex;
flex-direction: column;
gap: var(--spacing-sm);
}
/* Toggle between don't/do — fixed header inside disclosure content */
.disclosure-toggle {
display: inline-flex;
gap: 0;
border: 1px solid var(--color-mist);
border-radius: 5px;
overflow: hidden;
flex-shrink: 0;
align-self: flex-end;
margin: var(--spacing-sm) var(--spacing-sm) 0 0;
}
.disclosure-toggle-btn {
font-family: var(--font-body);
font-size: 0.625rem;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.1em;
margin-bottom: var(--spacing-sm);
letter-spacing: 0.05em;
border: none;
padding: 3px 10px;
cursor: pointer;
background: none;
color: var(--color-ash);
transition: background var(--duration-fast), color var(--duration-fast);
}
.pattern-column--anti .pattern-column-label {
.disclosure-toggle-btn + .disclosure-toggle-btn {
border-left: 1px solid var(--color-mist);
}
.disclosure-toggle-btn.is-active {
background: oklch(97% 0.005 350);
color: var(--color-ink);
}
.disclosure-toggle-btn--anti.is-active {
color: var(--color-accent);
}
.pattern-column--do .pattern-column-label {
.disclosure-toggle-btn--do.is-active {
color: var(--color-success, #22c55e);
}
/* Pattern list styles */
.pattern-list {
.disclosure-col[hidden] {
display: none;
}
.disclosure-col ul {
list-style: none;
padding: 0;
margin: 0;
display: flex;
flex-direction: column;
gap: var(--spacing-xs);
gap: 6px;
}
.pattern-item {
font-size: 0.8125rem;
padding-left: var(--spacing-md);
.disclosure-col li {
font-size: 0.9375rem;
line-height: 1.55;
padding-left: var(--spacing-sm);
position: relative;
line-height: 1.5;
color: var(--color-charcoal);
overflow-wrap: break-word;
word-break: break-word;
}
/* Anti-pattern items - muted */
.pattern-item--anti {
color: var(--color-ash);
.disclosure-col-label {
display: block;
font-size: 0.625rem;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.1em;
margin-bottom: 8px;
}
.pattern-item--anti::before {
content: '×';
.disclosure-col-label--anti { color: var(--color-accent); }
.disclosure-col-label--do { color: var(--color-success, #22c55e); }
.disclosure-col[data-col='anti'] li::before {
content: '\00d7';
position: absolute;
left: 0;
color: var(--color-accent);
font-weight: 600;
}
/* Pattern items - prominent */
.pattern-item--do {
color: var(--color-charcoal);
}
.pattern-item--do::before {
content: '✓';
.disclosure-col[data-col='do'] li::before {
content: '\2713';
position: absolute;
left: 0;
color: var(--color-success, #22c55e);
font-weight: 600;
}
/* Contribution inline link */
.contribute-inline {
font-size: 0.875rem;
color: var(--color-ash);
margin-top: var(--spacing-md);
/* Mobile: vertical stack */
@media (max-width: 768px) {
.disclosure-list {
grid-template-columns: 1fr;
grid-template-rows: 10fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
height: auto;
min-height: 500px;
transition: grid-template-rows var(--dl-speed) var(--dl-easing);
}
.disclosure-item {
min-width: 0;
min-height: var(--dl-base);
}
.disclosure-tab-label {
rotate: none;
top: 50%;
left: var(--spacing-md);
transform: translateY(-50%);
}
.disclosure-tab-icon {
bottom: 50%;
left: auto;
right: var(--spacing-md);
transform: translateY(50%);
}
.disclosure-content-inner {
padding: calc(var(--dl-base) + var(--spacing-sm)) var(--spacing-md) var(--spacing-md);
}
.disclosure-columns {
grid-template-columns: 1fr;
gap: var(--spacing-md);
}
}
.contribute-inline a {
/* Antidote row: cards + gallery sidebar */
.antidote-row {
display: flex;
gap: var(--spacing-lg);
align-items: stretch;
margin-bottom: var(--spacing-lg);
}
.antidote-row .antidote-grid {
flex: 1;
min-width: 0;
margin-bottom: 0;
}
/* Gallery sidebar */
.gallery-sidebar {
flex: 0 0 32%;
min-width: 0;
max-width: 400px;
border: 1px solid var(--color-mist);
border-radius: 12px;
padding: var(--spacing-sm);
display: flex;
flex-direction: column;
gap: var(--spacing-xs);
overflow: hidden;
max-height: clamp(320px, 38dvh, 420px);
}
.gallery-sidebar-title {
font-family: var(--font-display);
font-size: 1.125rem;
font-weight: 600;
color: var(--color-ink);
padding: var(--spacing-xs) var(--spacing-xs) 0;
}
.gallery-sidebar-scroll {
flex: 1;
overflow-y: auto;
display: grid;
grid-template-columns: 1fr 1fr;
gap: 6px;
scrollbar-width: none;
}
.gallery-sidebar-scroll::-webkit-scrollbar { display: none; }
.gallery-sidebar-card {
display: flex;
flex-direction: column;
gap: 4px;
padding: 4px;
border-radius: 8px;
text-decoration: none;
overflow: hidden;
transition: background var(--duration-fast) var(--ease-out);
}
.gallery-sidebar-card:hover {
background: oklch(97% 0.005 350);
}
.gallery-sidebar-card img {
width: 100%;
height: 72px;
object-fit: cover;
object-position: top left;
border-radius: 6px;
border: 1px solid var(--color-mist);
}
.gallery-sidebar-label {
font-size: 0.6875rem;
font-weight: 600;
color: var(--color-charcoal);
padding: 0 2px;
}
.gallery-sidebar-link {
font-size: 0.75rem;
font-weight: 500;
color: var(--color-accent);
text-decoration: none;
text-align: center;
padding: var(--spacing-xs) 0 0;
border-top: 1px solid var(--color-mist);
}
.contribute-inline a:hover {
.gallery-sidebar-link:hover {
text-decoration: underline;
}
/* Critique callout — inline note below tabs */
.critique-callout {
border-top: 1px solid var(--color-mist);
padding-top: var(--spacing-md);
margin-bottom: var(--spacing-md);
/* Detection callout — horizontal below cards */
.detection-callout {
margin-bottom: var(--spacing-xl);
border: 1px solid var(--color-mist);
border-radius: 8px;
padding: var(--spacing-sm) var(--spacing-md);
}
.detection-callout-inner {
display: flex;
align-items: baseline;
gap: var(--spacing-sm);
align-items: center;
gap: var(--spacing-md);
flex-wrap: wrap;
}
.detection-badge {
font-family: var(--font-mono);
font-size: 0.625rem;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.05em;
color: var(--color-accent);
border: 1px solid var(--color-accent);
padding: 2px 10px;
border-radius: 99px;
flex-shrink: 0;
}
.detection-desc {
flex: 1;
font-size: 0.8125rem;
color: var(--color-ash);
line-height: 1.55;
}
.critique-callout-body {
display: contents;
}
.critique-callout-title {
display: none;
}
.critique-callout-text {
color: var(--color-ash);
min-width: 200px;
}
.critique-callout-text code {
.detection-desc code {
font-family: var(--font-mono);
font-size: 0.8125rem;
color: var(--color-charcoal);
}
.critique-callout-links {
display: flex;
gap: var(--spacing-sm);
.detection-cmd {
flex-shrink: 0;
}
.critique-callout-link {
font-family: var(--font-mono);
font-size: 0.8125rem;
font-weight: 500;
color: var(--color-accent);
text-decoration: none;
color: var(--color-charcoal);
background: oklch(96% 0.005 350);
padding: 6px 14px;
border-radius: 6px;
white-space: nowrap;
}
.critique-callout-link:hover {
text-decoration: underline;
.detection-cmd::before {
content: '\279C ';
color: var(--color-accent);
}
.critique-callout-link--secondary {
@media (max-width: 1060px) {
.antidote-row {
flex-direction: column;
}
.gallery-sidebar {
flex: none;
width: 100%;
max-width: none;
max-height: none;
}
.gallery-sidebar-scroll {
grid-template-columns: repeat(3, 1fr);
}
}
@media (max-width: 600px) {
.gallery-sidebar-scroll {
grid-template-columns: 1fr 1fr;
}
}
/* (gallery teaser styles moved to gallery-sidebar above) */
/* Antidote footer */
.antidote-footer {
text-align: center;
}
.antidote-suggest-link {
font-size: 0.8125rem;
color: var(--color-ash);
font-weight: 400;
text-decoration: none;
}
.critique-callout-link--secondary:hover {
color: var(--color-charcoal);
.antidote-suggest-link:hover {
color: var(--color-accent);
text-decoration: underline;
}
/* ============================================
File diff suppressed because one or more lines are too long
+47 -8
View File
@@ -163,17 +163,56 @@
<h2 class="section-title">The Antidote</h2>
</div>
<div class="antidote-content">
<p class="section-lead" data-reveal>AI-generated UIs share the same tells. Impeccable curates the patterns and anti-patterns across typography, color, layout, motion, and more, plus an automated detector that catches 16 of them in your code.</p>
<p class="section-lead" data-reveal>Every AI model learned from the same templates. Without intervention, they all produce the same predictable mistakes. Impeccable names them, detects them, and teaches the AI to avoid them.</p>
<!-- Patterns by category with tabs -->
<div class="patterns-categories" id="patterns-categories">
<!-- Rendered by JS -->
<!-- Anti-pattern cards + gallery teaser side by side -->
<div class="antidote-row" data-reveal>
<div class="antidote-grid" id="patterns-categories">
<!-- Rendered by JS -->
</div>
<div class="gallery-sidebar">
<h3 class="gallery-sidebar-title">Gallery of Shame</h3>
<div class="gallery-sidebar-scroll">
<a href="/antipattern-examples/purple-gradients.html" class="gallery-sidebar-card">
<img src="antipattern-images/purple-gradients.png" alt="Purple gradient UI" loading="lazy">
<span class="gallery-sidebar-label">Purple Gradients</span>
</a>
<a href="/antipattern-examples/thick-border-cards.html" class="gallery-sidebar-card">
<img src="antipattern-images/thick-border-cards.png" alt="Thick border accent cards" loading="lazy">
<span class="gallery-sidebar-label">Side-Tab Cards</span>
</a>
<a href="/antipattern-examples/cardocalypse.html" class="gallery-sidebar-card">
<img src="antipattern-images/cardocalypse.png" alt="Cards nested inside cards" loading="lazy">
<span class="gallery-sidebar-label">Cardocalypse</span>
</a>
<a href="/antipattern-examples/inter-everywhere.html" class="gallery-sidebar-card">
<img src="antipattern-images/inter-everywhere.png" alt="Inter font everywhere" loading="lazy">
<span class="gallery-sidebar-label">Inter Everywhere</span>
</a>
<a href="/antipattern-examples/layout-templates.html" class="gallery-sidebar-card">
<img src="antipattern-images/layout-templates.png" alt="Generic layout templates" loading="lazy">
<span class="gallery-sidebar-label">Template Layouts</span>
</a>
<a href="/antipattern-examples/bad-contrast.html" class="gallery-sidebar-card">
<img src="antipattern-images/bad-contrast.png" alt="Low contrast text" loading="lazy">
<span class="gallery-sidebar-label">Bad Contrast</span>
</a>
</div>
<a href="/gallery" class="gallery-sidebar-link">View all &rarr;</a>
</div>
</div>
<div class="critique-callout" data-reveal>
<span class="critique-callout-text"><code>/critique</code> catches all of these. 16 are flagged deterministically with visual browser overlays. The rest through LLM analysis.</span>
<a href="/gallery" class="critique-callout-link">Gallery of Shame &rarr;</a>
<a href="https://github.com/pbakaus/impeccable/issues/new?labels=pattern&title=Pattern%20suggestion%3A%20" class="critique-callout-link critique-callout-link--secondary">Suggest a pattern &rarr;</a>
<!-- Detection callout (full width below) -->
<div class="detection-callout" data-reveal>
<div class="detection-callout-inner">
<span class="detection-badge">Deterministic</span>
<p class="detection-desc">25 patterns are caught automatically by the CLI and browser overlay -- no LLM needed. The rest are caught by <code>/critique</code> through design analysis.</p>
<code class="detection-cmd">npx impeccable detect src/</code>
</div>
</div>
<div class="antidote-footer" data-reveal>
<a href="https://github.com/pbakaus/impeccable/issues/new?labels=pattern&title=Pattern%20suggestion%3A%20" class="antidote-suggest-link">Suggest a pattern &rarr;</a>
</div>
</div>
</section>
+34 -34
View File
@@ -12,12 +12,12 @@ This skill guides creation of distinctive, production-grade frontend interfaces
Design skills produce generic output without project context. You MUST have confirmed design context before doing any design work.
**Required context** every design skill needs at minimum:
**Required context** (every design skill needs at minimum):
- **Target audience**: Who uses this product and in what context?
- **Use cases**: What jobs are they trying to get done?
- **Brand personality/tone**: How should the interface feel?
Individual skills may require additional context — check the skill's preparation section for specifics.
Individual skills may require additional context. Check the skill's preparation section for specifics.
**CRITICAL**: You cannot infer this context by reading the codebase. Code tells you what was built, not who it's for or what it should feel like. Only the creator can provide this context.
@@ -36,7 +36,7 @@ Commit to a BOLD aesthetic direction:
- **Constraints**: Technical requirements (framework, performance, accessibility).
- **Differentiation**: What makes this UNFORGETTABLE? What's the one thing someone will remember?
**CRITICAL**: Choose a clear conceptual direction and execute it with precision. Bold maximalism and refined minimalism both work—the key is intentionality, not intensity.
**CRITICAL**: Choose a clear conceptual direction and execute it with precision. Bold maximalism and refined minimalism both work. The key is intentionality, not intensity.
Then implement working code that is:
- Production-grade and functional
@@ -53,9 +53,9 @@ Choose fonts that are beautiful, unique, and interesting. Pair a distinctive dis
**DO**: Use a modular type scale with fluid sizing (clamp)
**DO**: Vary font weights and sizes to create clear visual hierarchy
**DON'T**: Use overused fontsInter, Roboto, Arial, Open Sans, system defaults
**DON'T**: Use overused fonts like Inter, Roboto, Arial, Open Sans, or system defaults
**DON'T**: Use monospace typography as lazy shorthand for "technical/developer" vibes
**DON'T**: Put large icons with rounded corners above every heading—they rarely add value and make sites look templated
**DON'T**: Put large icons with rounded corners above every heading. They rarely add value and make sites look templated
### Color & Theme
→ *Consult [color reference](reference/color-and-contrast.md) for OKLCH, palettes, and dark mode.*
@@ -63,64 +63,64 @@ Choose fonts that are beautiful, unique, and interesting. Pair a distinctive dis
Commit to a cohesive palette. Dominant colors with sharp accents outperform timid, evenly-distributed palettes.
**DO**: Use modern CSS color functions (oklch, color-mix, light-dark) for perceptually uniform, maintainable palettes
**DO**: Tint your neutrals toward your brand hue—even a subtle hint creates subconscious cohesion
**DON'T**: Use gray text on colored backgroundsit looks washed out; use a shade of the background color instead
**DON'T**: Use pure black (#000) or pure white (#fff)—always tint; pure black/white never appears in nature
**DO**: Tint your neutrals toward your brand hue. Even a subtle hint creates subconscious cohesion
**DON'T**: Use gray text on colored backgrounds; it looks washed out. Use a shade of the background color instead
**DON'T**: Use pure black (#000) or pure white (#fff). Always tint; pure black/white never appears in nature
**DON'T**: Use the AI color palette: cyan-on-dark, purple-to-blue gradients, neon accents on dark backgrounds
**DON'T**: Use gradient text for "impact"—especially on metrics or headings; it's decorative rather than meaningful
**DON'T**: Default to dark mode with glowing accents—it looks "cool" without requiring actual design decisions
**DON'T**: Use gradient text for "impact," especially on metrics or headings. It's decorative rather than meaningful
**DON'T**: Default to dark mode with glowing accents. It looks "cool" without requiring actual design decisions
### Layout & Space
→ *Consult [spatial reference](reference/spatial-design.md) for grids, rhythm, and container queries.*
Create visual rhythm through varied spacingnot the same padding everywhere. Embrace asymmetry and unexpected compositions. Break the grid intentionally for emphasis.
Create visual rhythm through varied spacing, not the same padding everywhere. Embrace asymmetry and unexpected compositions. Break the grid intentionally for emphasis.
**DO**: Create visual rhythm through varied spacingtight groupings, generous separations
**DO**: Create visual rhythm through varied spacing: tight groupings, generous separations
**DO**: Use fluid spacing with clamp() that breathes on larger screens
**DO**: Use asymmetry and unexpected compositions; break the grid intentionally for emphasis
**DON'T**: Wrap everything in cards—not everything needs a container
**DON'T**: Nest cards inside cards—visual noise, flatten the hierarchy
**DON'T**: Use identical card gridssame-sized cards with icon + heading + text, repeated endlessly
**DON'T**: Use the hero metric layout templatebig number, small label, supporting stats, gradient accent
**DON'T**: Center everything—left-aligned text with asymmetric layouts feels more designed
**DON'T**: Use the same spacing everywhere—without rhythm, layouts feel monotonous
**DON'T**: Wrap everything in cards. Not everything needs a container
**DON'T**: Nest cards inside cards. Visual noise; flatten the hierarchy
**DON'T**: Use identical card grids (same-sized cards with icon + heading + text, repeated endlessly)
**DON'T**: Use the hero metric layout template (big number, small label, supporting stats, gradient accent)
**DON'T**: Center everything. Left-aligned text with asymmetric layouts feels more designed
**DON'T**: Use the same spacing everywhere. Without rhythm, layouts feel monotonous
### Visual Details
**DO**: Use intentional, purposeful decorative elements that reinforce brand
**DON'T**: Use glassmorphism everywhereblur effects, glass cards, glow borders used decoratively rather than purposefully
**DON'T**: Use rounded elements with thick colored border on one side—a lazy accent that almost never looks intentional
**DON'T**: Use sparklines as decoration—tiny charts that look sophisticated but convey nothing meaningful
**DON'T**: Use rounded rectangles with generic drop shadows—safe, forgettable, could be any AI output
**DON'T**: Use modals unless there's truly no better alternative—modals are lazy
**DON'T**: Use glassmorphism everywhere (blur effects, glass cards, glow borders used decoratively rather than purposefully)
**DON'T**: Use rounded elements with thick colored border on one side. A lazy accent that almost never looks intentional
**DON'T**: Use sparklines as decoration. Tiny charts that look sophisticated but convey nothing meaningful
**DON'T**: Use rounded rectangles with generic drop shadows. Safe, forgettable, could be any AI output
**DON'T**: Use modals unless there's truly no better alternative. Modals are lazy
### Motion
→ *Consult [motion reference](reference/motion-design.md) for timing, easing, and reduced motion.*
Focus on high-impact moments: one well-orchestrated page load with staggered reveals creates more delight than scattered micro-interactions.
**DO**: Use motion to convey state changesentrances, exits, feedback
**DO**: Use motion to convey state changes: entrances, exits, feedback
**DO**: Use exponential easing (ease-out-quart/quint/expo) for natural deceleration
**DO**: For height animations, use grid-template-rows transitions instead of animating height directly
**DON'T**: Animate layout properties (width, height, padding, margin)—use transform and opacity only
**DON'T**: Use bounce or elastic easing—they feel dated and tacky; real objects decelerate smoothly
**DON'T**: Animate layout properties (width, height, padding, margin). Use transform and opacity only
**DON'T**: Use bounce or elastic easing. They feel dated and tacky; real objects decelerate smoothly
### Interaction
→ *Consult [interaction reference](reference/interaction-design.md) for forms, focus, and loading patterns.*
Make interactions feel fast. Use optimistic UIupdate immediately, sync later.
Make interactions feel fast. Use optimistic UI: update immediately, sync later.
**DO**: Use progressive disclosure—start simple, reveal sophistication through interaction (basic options first, advanced behind expandable sections; hover states that reveal secondary actions)
**DO**: Use progressive disclosure. Start simple, reveal sophistication through interaction (basic options first, advanced behind expandable sections; hover states that reveal secondary actions)
**DO**: Design empty states that teach the interface, not just say "nothing here"
**DO**: Make every interactive surface feel intentional and responsive
**DON'T**: Repeat the same informationredundant headers, intros that restate the heading
**DON'T**: Make every button primary—use ghost buttons, text links, secondary styles; hierarchy matters
**DON'T**: Repeat the same information (redundant headers, intros that restate the heading)
**DON'T**: Make every button primary. Use ghost buttons, text links, secondary styles; hierarchy matters
### Responsive
→ *Consult [responsive reference](reference/responsive-design.md) for mobile-first, fluid design, and container queries.*
**DO**: Use container queries (@container) for component-level responsiveness
**DO**: Adapt the interface for different contexts—don't just shrink it
**DON'T**: Hide critical functionality on mobile—adapt the interface, don't amputate it
**DO**: Adapt the interface for different contexts, not just shrink it
**DON'T**: Hide critical functionality on mobile. Adapt the interface, don't amputate it
### UX Writing
→ *Consult [ux-writing reference](reference/ux-writing.md) for labels, errors, and empty states.*
@@ -136,7 +136,7 @@ Make interactions feel fast. Use optimistic UI—update immediately, sync later.
A distinctive interface should make someone ask "how was this made?" not "which AI made this?"
Review the DON'T guidelines above—they are the fingerprints of AI-generated work from 2024-2025.
Review the DON'T guidelines above. They are the fingerprints of AI-generated work from 2024-2025.
---
@@ -146,7 +146,7 @@ Match implementation complexity to the aesthetic vision. Maximalist designs need
Interpret creatively and make unexpected choices that feel genuinely designed for the context. No design should be the same. Vary between light and dark themes, different fonts, different aesthetics. NEVER converge on common choices across generations.
Remember: {{model}} is capable of extraordinary creative work. Don't hold back—show what can truly be created when thinking outside the box and committing fully to a distinctive vision.
Remember: {{model}} is capable of extraordinary creative work. Don't hold back. Show what can truly be created when thinking outside the box and committing fully to a distinctive vision.
---