I have seen a lot of DESIGN.md files. The bad ones have a list of hex colors, maybe a font name, and nothing else. People write them in five minutes and wonder why the AI output still looks generic.
The AI is not ignoring your file. It is using everything you gave it. The problem is you gave it almost nothing.
A good DESIGN.md is specific enough that an AI could rebuild your entire design system from it. A bad one leaves the AI filling in blanks with defaults. Here are the six things that separate them.
1. Color tokens with semantic names, not just hex values
Without
The AI sees #635BFF and has no idea what role it plays. It might use it as a background. It might use it as body text. It will guess.
With
The AI sees --color-primary: #635BFF and --color-primary-hover: #4F46E5 and knows exactly when to use each one. It knows primary is for CTAs, not decorative elements.
Example
--color-background: #0A0A0A; --color-surface: #111111; --color-primary: #635BFF; --color-primary-hover: #4F46E5; --color-text: #F5F5F5; --color-muted: #888888;
2. Full typography scale with weights AND letter spacing
Without
The AI defaults to font-size: 16px for everything. Or it picks random sizes. The heading ends up the same weight as the body. Nothing has hierarchy.
With
The AI knows your H1 is 36px / 700 weight / -0.03em tracking. Your body is 16px / 400 weight / -0.01em. It applies this consistently across every component it generates.
Example
--font-sans: 'Inter', system-ui, sans-serif; --text-xs: 0.75rem; /* 12px */ --text-sm: 0.875rem; /* 14px */ --text-base: 1rem; /* 16px */ --text-xl: 1.25rem; /* 20px */ --text-2xl: 1.5rem; /* 24px */ --text-3xl: 1.875rem; /* 30px */ --font-medium: 500; --font-semibold: 600; --tracking-tight: -0.03em; --tracking-normal: -0.01em;
3. A spacing scale that specifies the base unit
Without
The AI applies padding: 20px here, margin: 15px there, gap: 12px somewhere else. Nothing is consistent. The layout feels assembled, not designed.
With
The AI knows your base unit is 4px and your scale is 4, 8, 12, 16, 24, 32, 48, 64. Every gap, every padding, every margin snaps to this rhythm. The whole interface breathes consistently.
Example
/* Base unit: 4px */ --space-1: 0.25rem; /* 4px */ --space-2: 0.5rem; /* 8px */ --space-3: 0.75rem; /* 12px */ --space-4: 1rem; /* 16px */ --space-6: 1.5rem; /* 24px */ --space-8: 2rem; /* 32px */ --space-12: 3rem; /* 48px */ --space-16: 4rem; /* 64px */
4. Semantic shadow levels (card vs elevated vs modal)
Without
Every component gets box-shadow: 0 2px 4px rgba(0,0,0,0.1). The card, the dropdown, the modal, the tooltip all look the same depth. Nothing has visual hierarchy.
With
The AI uses --shadow-sm for cards, --shadow-md for dropdowns, --shadow-lg for modals. The interface has a clear Z-axis. Elements float at different heights, which tells the user what is on top of what.
Example
--shadow-sm: 0 1px 2px rgba(0,0,0,0.05); --shadow-md: 0 4px 6px rgba(0,0,0,0.07), 0 2px 4px rgba(0,0,0,0.05); --shadow-lg: 0 10px 15px rgba(0,0,0,0.1), 0 4px 6px rgba(0,0,0,0.05); --shadow-xl: 0 20px 25px rgba(0,0,0,0.15), 0 10px 10px rgba(0,0,0,0.04);
5. Motion tokens with real easing values
Without
The AI uses transition: all 0.3s ease. Every animation feels the same. A tooltip appearing uses the same easing as a page transition. Nothing feels considered.
With
The AI knows --ease-out is for elements entering the screen, --ease-in is for elements leaving, and --ease-spring is for interactive feedback. Transitions feel like physics, not CSS defaults.
Example
--duration-fast: 100ms; --duration-base: 200ms; --duration-slow: 300ms; --ease-default: cubic-bezier(0.16, 1, 0.3, 1); --ease-in: cubic-bezier(0.4, 0, 1, 1); --ease-out: cubic-bezier(0, 0, 0.2, 1); --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
6. Plain-language component guidance
Without
The AI generates a generic button. It might be the right color, but the border radius is wrong, the padding is off, and the hover state looks like an afterthought.
With
The AI reads: 'Buttons use 8px border radius, 12px horizontal padding, 500 font weight, and scale to 98% on press.' It now builds buttons that match your system every time, not just sometimes.
Example
## Components ### Buttons - border-radius: 8px - padding: 10px 16px (default), 8px 12px (sm), 12px 20px (lg) - font-weight: 500 - Active state: scale(0.98) - Disabled: opacity 0.5, cursor not-allowed ### Cards - border-radius: 12px - border: 1px solid var(--color-border) - padding: 24px - Use shadow-sm at rest, shadow-md on hover
You do not have to write this from scratch
The catalog has over 110 DESIGN.md files, each built with all six elements above. Pick one that matches your aesthetic and your use case is covered.
Browse the catalog
Every file in the catalog has all six elements. Pick one, copy it, and your next AI session starts with a real design system.
Browse designs