Product design skills

assets/design_system_doc_template.md

A supporting file of the ui-design-system skill.

Design System Documentation

System Info

FieldValue
Name[Design System Name]
Version[X.Y.Z]
Owner[Team/Person]
StatusActive / Beta / Deprecated
Last UpdatedYYYY-MM-DD

Design Principles

The following principles guide all design decisions in this system:

  1. [Principle 1 Name] - [One sentence description. Example: "Clarity over cleverness - every element should have an obvious purpose."]

  2. [Principle 2 Name] - [One sentence description. Example: "Consistency breeds confidence - similar actions should look and behave the same."]

  3. [Principle 3 Name] - [One sentence description. Example: "Accessible by default - every component must meet WCAG 2.1 AA standards."]

  4. [Principle 4 Name] - [One sentence description. Example: "Progressive disclosure - show only what is needed, reveal complexity on demand."]


Color Palette

Brand Colors

NameHexRGBUsage
Primary#[XXXXXX]rgb(X, X, X)Primary actions, links, key UI elements
Secondary#[XXXXXX]rgb(X, X, X)Secondary actions, accents
Accent#[XXXXXX]rgb(X, X, X)Highlights, badges, notifications

Neutral Colors

NameHexUsage
Gray-900#[XXXXXX]Primary text
Gray-700#[XXXXXX]Secondary text
Gray-500#[XXXXXX]Placeholder text, disabled states
Gray-300#[XXXXXX]Borders, dividers
Gray-100#[XXXXXX]Backgrounds, hover states
White#FFFFFFPage background, card background

Semantic Colors

NameHexUsage
Success#[XXXXXX]Success messages, positive indicators
Warning#[XXXXXX]Warning messages, caution indicators
Error#[XXXXXX]Error messages, destructive actions
Info#[XXXXXX]Informational messages, tips

Accessibility

  • All text colors must meet WCAG 2.1 AA contrast ratio (4.5:1 for normal text, 3:1 for large text)
  • Test with color blindness simulators
  • Never use color as the only indicator of state

Typography Scale

Font Family

  • Primary: [Font Name] (headings and body)
  • Monospace: [Font Name] (code blocks, technical content)
  • Fallback Stack: [System font stack]

Type Scale

NameSizeWeightLine HeightUsage
Display48px / 3remBold (700)1.2Hero headings
H136px / 2.25remBold (700)1.25Page titles
H228px / 1.75remSemibold (600)1.3Section headings
H322px / 1.375remSemibold (600)1.35Subsection headings
H418px / 1.125remMedium (500)1.4Card titles, labels
Body Large18px / 1.125remRegular (400)1.6Lead paragraphs
Body16px / 1remRegular (400)1.5Default body text
Body Small14px / 0.875remRegular (400)1.5Secondary text, captions
Caption12px / 0.75remRegular (400)1.4Labels, metadata

Spacing System

Base Unit: 4px

TokenValueUsage
space-14pxTight spacing (icon padding)
space-28pxCompact elements (inline items)
space-312pxRelated elements (form field gaps)
space-416pxDefault spacing (paragraph gaps)
space-520pxGroup spacing (card padding)
space-624pxSection spacing
space-832pxLarge section gaps
space-1040pxPage section dividers
space-1248pxMajor layout sections
space-1664pxPage-level spacing

Layout Spacing

  • Page margin: space-6 (mobile), space-8 (tablet), space-12 (desktop)
  • Card padding: space-5
  • Form field gap: space-3
  • Section gap: space-10

Component Library

Component Status Legend

  • Stable - Production ready, fully documented and tested
  • Beta - Functional but may change, use with awareness
  • Deprecated - Scheduled for removal, migrate to replacement
  • Planned - On roadmap, not yet available

Components

ComponentStatusDescriptionVariants
ButtonStablePrimary action triggersPrimary, Secondary, Tertiary, Danger, Ghost
InputStableText input fieldsDefault, Error, Disabled, With icon
SelectStableDropdown selectionSingle, Multi, Searchable
CheckboxStableMulti-select toggleDefault, Indeterminate, Disabled
RadioStableSingle-select optionDefault, Disabled
ToggleStableBinary on/off switchDefault, With label
ModalStableOverlay dialogSmall, Medium, Large, Fullscreen
ToastStableTemporary notificationSuccess, Error, Warning, Info
CardStableContent containerDefault, Interactive, Elevated
BadgeStableStatus indicatorSolid, Outline, Dot
AvatarStableUser representationImage, Initials, Icon
TableBetaData display gridDefault, Sortable, Selectable
TabsBetaContent organizationDefault, Underline, Pill
TooltipStableContextual informationDefault, Rich content
[New Component]Planned[Description][Variants]

Usage Guidelines

Do

  • Use components as documented (do not override internal styles)
  • Follow the spacing system for consistent layouts
  • Test components across supported browsers and screen sizes
  • Use semantic colors for their intended purpose
  • Reference design tokens instead of hardcoded values

Do Not

  • Modify component internals without contributing changes back
  • Create one-off components when an existing component fits
  • Use brand colors for semantic purposes (error, success)
  • Skip accessibility requirements for "internal" tools
  • Mix design system versions across a single application

Contribution Process

Proposing a New Component

  1. Check existing components - Verify no existing component solves the need
  2. Create proposal - Document use case, behavior, variants, accessibility requirements
  3. Design review - Present to design system team for feedback
  4. Build - Implement component following system patterns
  5. Review - Code review + design review + accessibility audit
  6. Document - Add to component library with usage guidelines
  7. Release - Publish in next minor version

Updating an Existing Component

  1. File issue - Describe the change and justification
  2. Impact assessment - Identify all instances of current usage
  3. Design + develop - Implement change with backward compatibility
  4. Migration guide - Document breaking changes if any
  5. Release - Publish with changelog entry

Reporting Issues

  • File bug reports with reproduction steps and screenshots
  • Tag with component name and severity
  • Include browser/OS information for rendering issues

On this page