# Design System Layers Comprehensive guide to all layers of a professional design system. Use this as a reference when extracting design patterns from references or creating new design systems. ## Visual Foundation ### Colors **Extract and document:** - **Primary colors**: Main brand colors (usually 1-2 colors with 50-900 shades) - **Secondary colors**: Supporting colors for variety - **Neutral colors**: Grays for text, borders, backgrounds (50-900 shades) - **Semantic colors**: Success (green), Error (red), Warning (yellow), Info (blue) - **Surface colors**: Page background, card background, overlays - **Text colors**: Primary text, secondary text, disabled text, link colors **Usage context for each color:** - When to use primary vs secondary - Text color on different backgrounds - Hover/active state colors - Focus ring colors **Accessibility requirements:** - Text on background must meet WCAG AA (4.5:1 for body, 3:1 for large text) - Interactive elements need sufficient contrast - Focus indicators must be clearly visible **Color psychology considerations:** - What emotions do these colors evoke? - Industry appropriateness - Cultural considerations ### Typography **Font families:** - Heading font (display/decorative) - Body font (readable, clear) - Monospace font (for code) - Fallback fonts for each **Type scale (size, weight, line-height, letter-spacing):** - H1 - Page titles (3-4rem, bold, tight line-height) - H2 - Section headings (2-2.5rem, bold/semibold) - H3 - Subsection headings (1.5-2rem, semibold) - H4 - Component headings (1.25-1.5rem, medium/semibold) - H5 - Small headings (1.125-1.25rem, medium) - Body Large - Emphasis text (1.125rem, regular) - Body - Default text (1rem, regular, 1.6 line-height) - Body Small - Supporting text (0.875rem, regular) - Caption - Metadata/labels (0.75rem, regular, tight) **Hierarchy rules:** - When to use each heading level - Maximum heading levels per page - Spacing between headings **Responsive typography:** - How sizes scale across breakpoints - Fluid typography formulas if applicable ### Spacing System **Base unit**: 4px or 8px (most common) **Scale**: 0, 0.25rem, 0.5rem, 0.75rem, 1rem, 1.25rem, 1.5rem, 2rem, 2.5rem, 3rem, 4rem, 5rem, 6rem, 8rem **Application:** - Component internal padding - Margins between elements - Grid/layout gutters - Section spacing **Rhythm principles:** - Consistent vertical rhythm - Proportional relationships - Optical adjustments when needed ### Shadows & Elevation **Elevation scale (0-5):** - **0**: Flat (no shadow) - **1**: Subtle lift (sm shadow) - hoverable cards - **2**: Raised (md shadow) - default cards - **3**: Floating (lg shadow) - dropdown menus - **4**: Overlay (xl shadow) - modals - **5**: Maximum (2xl shadow) - important overlays **Shadow specifications:** - Y-offset, blur, spread, color with alpha - Multiple shadows for depth - Colored shadows for brand personality **When to use each level:** - Default state vs hover state - Static vs interactive elements - Context-appropriate elevation ## Layout & Structure ### Grid System **Container:** - Max-width per breakpoint - Horizontal padding/margins - Centering behavior **Grid specifications:** - Number of columns (typically 12) - Gutter width - Responsive behavior - Subgrids for nested layouts **Breakpoints:** - Mobile: 320px-767px - Tablet: 768px-1023px - Desktop: 1024px-1439px - Wide: 1440px+ ### Layout Patterns **Common patterns to document:** - Single column (mobile-first) - Two column (sidebar + main) - Three column (sidebar + main + aside) - Grid layouts (cards, galleries) - Asymmetric layouts **Content flow:** - Reading order - Visual hierarchy - Whitespace usage ## Component Architecture ### Button Components **Variants:** - **Primary**: Main actions (solid background, primary color) - **Secondary**: Alternative actions (outlined or muted background) - **Ghost/Text**: Subtle actions (transparent, colored text) - **Destructive**: Dangerous actions (red, warning indicators) **Sizes:** - Small: Tight spaces, secondary actions - Medium: Default size - Large: Hero sections, primary CTAs **States:** - Default: Base appearance - Hover: Cursor feedback (darker/lighter, shadow) - Active: Click feedback (even darker, inset shadow) - Focus: Keyboard navigation (outline/ring) - Disabled: Not interactive (reduced opacity, no hover) - Loading: Spinner + disabled state **Anatomy:** - Padding (horizontal and vertical) - Border radius - Font size and weight - Icon spacing if applicable - Minimum touch target (44x44px mobile) ### Input Components **Text input variants:** - Default - With icon (leading/trailing) - With helper text - With error message **States:** - Empty - Filled - Focus - Error - Disabled - Read-only **Validation:** - Error styling (red border, error icon) - Success styling (green border, check icon) - Inline validation timing ### Card Components **Anatomy:** - Padding - Border/shadow - Border radius - Background color **Variants:** - Basic (content only) - With image (header image) - With actions (buttons/links) - Interactive (clickable) **States:** - Default - Hover (if interactive) - Active/Selected ### Navigation Components **Navbar:** - Logo placement and sizing - Navigation items layout - Mobile hamburger menu - Sticky/fixed behavior **Tabs:** - Active/inactive states - Underline/background indicator - Spacing between tabs **Breadcrumbs:** - Separator style - Link vs text - Truncation on mobile ### Form Components **Checkbox:** - Checked/unchecked/indeterminate - Size and spacing - Label alignment **Radio buttons:** - Similar to checkbox - Group spacing **Select dropdown:** - Trigger appearance - Dropdown menu styling - Selected state - Multi-select behavior **Toggle switch:** - On/off states - Size variants - Label placement ## Motion & Interaction ### Animation Principles **Duration scale:** - Fast (150ms): Small changes, micro-interactions - Normal (250ms): Default transitions - Slow (350ms): Complex animations, page transitions **Easing functions:** - **Ease-out**: Accelerate then decelerate (default) - **Ease-in**: Start slow, accelerate - **Ease-in-out**: Smooth start and end - **Linear**: Constant speed (loading indicators) **Animation types:** - **Fade**: Opacity changes - **Slide**: Position changes - **Scale**: Size changes - **Rotate**: Transform rotations - **Combined**: Multiple properties ### Interaction Patterns **Hover feedback:** - Color change - Shadow elevation - Scale (subtle, 102-105%) - Underline for links **Click/tap feedback:** - Slight scale down (98%) - Darker color - Ripple effect (Material Design) **Loading states:** - Skeleton screens (preserve layout) - Spinners (for small areas) - Progress bars (known duration) **Transition patterns:** - Page transitions (fade/slide) - Modal appearances (scale + fade) - Drawer slides (slide from edge) - Toast notifications (slide from top/bottom) ## Accessibility Standards ### WCAG 2.1 Level AA Requirements **Color contrast:** - Body text (16px-): 4.5:1 minimum - Large text (18px+ regular, 14px+ bold): 3:1 minimum - UI components: 3:1 minimum **Focus indicators:** - Visible outline or ring - Minimum 2px width - High contrast with background - Not relying on color alone **Keyboard navigation:** - All interactive elements keyboard accessible - Logical tab order - Skip links for long navigation - Escape key closes modals/dropdowns **Screen reader support:** - Semantic HTML elements - ARIA labels for icons - ARIA live regions for dynamic content - Alt text for images **Touch targets:** - Minimum 44x44px (iOS guideline) - Sufficient spacing between targets - Larger on mobile devices ### Best Practices **Forms:** - Labels associated with inputs - Error messages clearly identified - Required field indicators **Images:** - Descriptive alt text - Decorative images have empty alt - Complex images have extended descriptions **Tables:** - Table headers (th) properly used - Caption or aria-label for context - Sortable columns clearly indicated ## Content & Voice ### Writing Guidelines **Voice characteristics:** - Tone: Professional, friendly, helpful, etc. - Personality: Formal vs casual - Brand values reflected **Microcopy patterns:** - Button labels: Verb-first, action-oriented ("Get Started", "Save Changes") - Error messages: Clear, helpful, actionable - Success messages: Positive, confirmatory - Empty states: Encouraging, guiding **Content hierarchy:** - Headlines: Clear, benefit-driven - Body: Scannable, concise - CTAs: Compelling, specific ## Iconography ### Icon System **Style:** - Outline vs filled vs duotone - Stroke width consistency - Corner radius treatment - Optical balance **Sizing:** - Small: 16px (inline with text) - Medium: 24px (default) - Large: 32px+ (feature icons) **Usage:** - When to use icons vs text - Icon + text label vs icon alone - Decorative vs functional icons **Accessibility:** - Functional icons need labels - ARIA attributes for screen readers - Don't rely on icons alone for critical info ## Imagery ### Image Guidelines **Aspect ratios:** - Hero images: 16:9 or 21:9 - Portraits: 3:4 or 2:3 - Squares: 1:1 **Treatments:** - Border radius application - Overlays for text legibility - Filters (grayscale, blur, etc.) **Quality standards:** - Resolution requirements - Compression guidelines - Format recommendations (WebP, AVIF) **Placeholder handling:** - Skeleton screens - Blur-up technique - Dominant color backgrounds ## Implementation Notes ### CSS Variables Generate CSS custom properties from design tokens: ```css :root { --color-primary-500: #0ea5e9; --spacing-4: 1rem; --shadow-md: 0 4px 6px rgba(0,0,0,0.1); --radius-md: 0.5rem; } ``` ### Utility Classes Consider generating utility classes: - Color classes: `.text-primary`, `.bg-neutral-100` - Spacing classes: `.p-4`, `.m-8`, `.gap-6` - Typography classes: `.text-h1`, `.text-body` ### Component Examples Provide code examples for each component showing all variants and states in actual HTML/CSS. ## Quality Assurance ### Design Review Checklist - [ ] All colors from defined palette - [ ] Typography scale applied consistently - [ ] Spacing follows system - [ ] Components match specifications - [ ] Accessibility requirements met - [ ] Responsive across breakpoints - [ ] Interactive states implemented - [ ] Loading/error states handled - [ ] Browser compatibility verified - [ ] Performance optimized