Designing a UI System
Goal
Produce a visual identity that feels human, distinct, and premium. The system must reject the "default bootstrap/tailwind" look. It should have "soul"—intentionality in every curve, color, and gap.
When to Use
- Starting a new project.
- Rebranding an existing application.
- When a UI looks "too generic" or "like a template."
Instructions
1. The "Anti-Slop" Color Palette
Avoid the "Safe Blue" (#3B82F6) and "Cool Gray" default.
- Input: Extract the "Vibe" (e.g., "Cyber-Noir", "Organic-Calm", "Swiss-Brutalist").
- Process:
- Primary: Pick a distinct hue. If Blue, make it Electric Ultramarine or Deep Indigo, not "Link Blue".
- Neutrals: NEVER use pure gray. Tint them with the primary hue or a complementary hue (e.g., Warm Sand, Cool Slate, Blue-Black).
- Accents: Use unusual combinations (e.g., Olive Green + Acid Yellow, Navy + Coral).
- Dark Mode: Don't just invert. Use deep, rich backgrounds (Charcoal, Midnight, Deep Forest), not pure #000000.
2. Typography with Character
Stop using Inter/Roboto/System-UI by default. They are the "Times New Roman" of 2026.
- Headings: Choose a font with flavor. A sharp serif (Fraunces), a wide grotesque (Space Grotesk), or a monospaced display (JetBrains Mono).
- Body: Readable but distinct (e.g., Plus Jakarta Sans, Satoshi, IBM Plex Sans).
- Scale: Use a dramatic scale (Major Third or Perfect Fourth). Huge headings, readable body.
3. Spacing & Rhythm (The "Breath")
- Micro-Whitepace: Tight packing for data-heavy areas.
- Macro-Whitespace: Enormous gaps for marketing/editorial areas.
- Rule: If in doubt, double the padding. "Air" is luxury.
4. Radius & Depth
- Radius: Be opinionated. Either Fully Round (Pill), Soft (16px+), or Sharp (0px). Don't do the generic 4px.
- Depth: Stop using default drop shadows. Use:
- Glows: Colored shadows (
box-shadow: 0 10px 30px -10px var(--brand-color-alpha)).
- Borders: 1px solid borders in low-opacity for that "technical" look.
- Glass: Backdrop-filter blur (carefully).
5. Motion Tokens
Static UIs feel dead. Define:
--ease-elastic: cubic-bezier(0.68, -0.6, 0.32, 1.6) (Bouncy, playful).
--ease-squish: cubic-bezier(0.25, 1, 0.5, 1) (Premium, snappy).
Constraints
✅ Do
- BAN the default Tailwind color palette. You MUST generate a custom
tailwind.config.ts theme.
- BAN "Inter" as the primary font unless the brand specifically demands "invisible" type.
- ENFORCE a "Tinted Neutral" system. Grays must have a hue.
- ENFORCE 4.5:1 contrast for body text, but allow lower contrast for "decorative" large text (if accessible alternatives exist).
- Use
clamp() for fluid typography that scales with the viewport.
❌ Don't
- DO NOT use the "Start-up Blue" (#3B82F6).
- DO NOT use pure black (#000000) or pure white (#FFFFFF) for backgrounds. It harms eye comfort.
- DO NOT mix more than 2 sans-serifs. (One Serif + One Sans is the classic "Soulful" pairing).
- DO NOT forget focus states. Custom focus rings (offset, colored) are a hallmark of quality.
Output Format
tailwind.config.ts: Fully customized theme.
global.css: CSS Variables for non-Tailwind contexts.
typography.md: Rationale for font choices.
Dependencies
designer/brand-identity/SKILL.md (Source of the "Vibe")
1---2name: designing-ui-system3description: Create a unique, soulful design system that avoids generic "AI Slop." Defines tokens for color, typography, spacing, and motion that feel handcrafted and intentional.4---56# Designing a UI System78## Goal9Produce a visual identity that feels *human*, distinct, and premium. The system must reject the "default bootstrap/tailwind" look. It should have "soul"—intentionality in every curve, color, and gap.1011## When to Use12- Starting a new project.13- Rebranding an existing application.14- When a UI looks "too generic" or "like a template."1516## Instructions1718### 1. The "Anti-Slop" Color Palette19Avoid the "Safe Blue" (#3B82F6) and "Cool Gray" default.20- **Input**: Extract the "Vibe" (e.g., "Cyber-Noir", "Organic-Calm", "Swiss-Brutalist").21- **Process**:22 - **Primary**: Pick a distinct hue. If Blue, make it Electric Ultramarine or Deep Indigo, not "Link Blue".23 - **Neutrals**: NEVER use pure gray. Tint them with the primary hue or a complementary hue (e.g., Warm Sand, Cool Slate, Blue-Black).24 - **Accents**: Use unusual combinations (e.g., Olive Green + Acid Yellow, Navy + Coral).25 - **Dark Mode**: Don't just invert. Use deep, rich backgrounds (Charcoal, Midnight, Deep Forest), not pure #000000.2627### 2. Typography with Character28Stop using Inter/Roboto/System-UI by default. They are the "Times New Roman" of 2026.29- **Headings**: Choose a font with *flavor*. A sharp serif (Fraunces), a wide grotesque (Space Grotesk), or a monospaced display (JetBrains Mono).30- **Body**: Readable but distinct (e.g., Plus Jakarta Sans, Satoshi, IBM Plex Sans).31- **Scale**: Use a dramatic scale (Major Third or Perfect Fourth). Huge headings, readable body.3233### 3. Spacing & Rhythm (The "Breath")34- **Micro-Whitepace**: Tight packing for data-heavy areas.35- **Macro-Whitespace**: Enormous gaps for marketing/editorial areas.36- **Rule**: If in doubt, double the padding. "Air" is luxury.3738### 4. Radius & Depth39- **Radius**: Be opinionated. Either Fully Round (Pill), Soft (16px+), or Sharp (0px). Don't do the generic 4px.40- **Depth**: Stop using default drop shadows. Use:41 - **Glows**: Colored shadows (`box-shadow: 0 10px 30px -10px var(--brand-color-alpha)`).42 - **Borders**: 1px solid borders in low-opacity for that "technical" look.43 - **Glass**: Backdrop-filter blur (carefully).4445### 5. Motion Tokens46Static UIs feel dead. Define:47- `--ease-elastic`: `cubic-bezier(0.68, -0.6, 0.32, 1.6)` (Bouncy, playful).48- `--ease-squish`: `cubic-bezier(0.25, 1, 0.5, 1)` (Premium, snappy).4950## Constraints5152### ✅ Do53- **BAN** the default Tailwind color palette. You MUST generate a custom `tailwind.config.ts` theme.54- **BAN** "Inter" as the primary font unless the brand specifically demands "invisible" type.55- **ENFORCE** a "Tinted Neutral" system. Grays must have a hue.56- **ENFORCE** 4.5:1 contrast for body text, but allow lower contrast for "decorative" large text (if accessible alternatives exist).57- Use `clamp()` for fluid typography that scales with the viewport.585960### ❌ Don't61- DO NOT use the "Start-up Blue" (#3B82F6).62- DO NOT use pure black (#000000) or pure white (#FFFFFF) for backgrounds. It harms eye comfort.63- DO NOT mix more than 2 sans-serifs. (One Serif + One Sans is the classic "Soulful" pairing).64- DO NOT forget focus states. Custom focus rings (offset, colored) are a hallmark of quality.656667## Output Format68- `tailwind.config.ts`: Fully customized theme.69- `global.css`: CSS Variables for non-Tailwind contexts.70- `typography.md`: Rationale for font choices.7172## Dependencies73- `designer/brand-identity/SKILL.md` (Source of the "Vibe")74