
Design Systems
- 742 installs
- 215 repo stars
- Updated June 9, 2026
- mindrally/skills
design-systems is a frontend design skill that helps developers generate and maintain consistent, accessible UI foundations and scalable component libraries across digital products.
About
design-systems is a comprehensive agent skill from mindrally/skills that encodes best practices for building and governing design systems. The skill walks through auditing existing UI, defining design tokens, structuring component libraries, implementing theming architecture, and establishing accessibility-compliant UI governance. Developers reach for design-systems when starting a new component library, consolidating inconsistent colors and typography, or scaling theming across multiple web surfaces rather than styling pages ad hoc.
- Comprehensive foundation covering color systems, typography, spacing, icons and imagery
- Component architecture enforcing atomic, reusable elements with clear APIs
- Semantic color tokens for success, warning, error and info states with WCAG compliance
- Light and dark mode variants plus responsive spacing behavior
- Maintainable CSS custom properties and documented usage guidelines
Design Systems by the numbers
- 742 all-time installs (skills.sh)
- +24 installs in the week ending Aug 4, 2026 (Skillselion tracking)
- Ranked #495 of 1,880 Design & UI/UX skills by installs in the Skillselion catalog
- Security screen: MEDIUM risk (skills.sh audit)
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/mindrally/skills --skill design-systemsAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 742 |
|---|---|
| repo stars | ★ 215 |
| Security audit | 3 / 3 scanners passed |
| Last updated | June 9, 2026 |
| Repository | mindrally/skills ↗ |
How do you build a scalable accessible design system?
Generate and maintain consistent, accessible UI foundations and component libraries across web products.
Who is it for?
Frontend developers standardizing colors, typography, spacing, and components across a growing web product.
Skip if: One-off page styling with no plan for reusable tokens, components, or cross-product consistency.
When should I use this skill?
Creating design tokens, building a component library, setting up theming, or establishing UI governance processes.
What you get
Design tokens, component inventory, theming architecture, and UI governance guidelines for a product.
- design tokens
- component library spec
- theming guidelines
Files
Design Systems Best Practices
Guidelines for creating and maintaining design systems that ensure visual consistency, accessibility compliance, and scalable component architecture across digital products.
Workflow: Setting Up a Design System
1. Audit existing UI — Inventory current components, colors, typography, and spacing across the product to identify inconsistencies and reusable patterns. 2. Define design tokens — Establish primitive tokens (colors, spacing, typography, shadows) as CSS custom properties or a token format (e.g., Style Dictionary) that serves as the single source of truth. 3. Build foundational components — Create atomic components (Button, Input, Text, Icon) that consume design tokens and expose a clear props API with TypeScript types. 4. Compose patterns and layouts — Assemble atomic components into higher-order patterns (forms, cards, navigation) with documented usage guidelines. 5. Set up documentation and Storybook — Configure Storybook with stories for every component variant, state, and accessibility annotation. Publish as a living style guide. 6. Integrate testing and governance — Add visual regression tests (e.g., Chromatic), accessibility linting (e.g., axe-core), and a contribution/review process for new components. 7. Ship and iterate — Publish the library as a versioned package, gather consumer feedback, and run regular accessibility and performance audits.
Foundation Elements
Color System
- Define primary, secondary, and accent colors
- Include semantic colors for success, warning, error, info states
- Ensure all color combinations meet WCAG contrast requirements
- Document color usage guidelines and contexts
- Provide light and dark mode variants
Typography
- Establish a type scale with consistent ratios
- Define font families for headings and body text
- Set line heights and letter spacing standards
- Document font weights and their usage
- Ensure readability across screen sizes
Spacing System
- Define consistent spacing scale (4px, 8px, 16px, 24px, etc.)
- Create layout primitives for common patterns
- Document margin and padding conventions
- Ensure responsive spacing behavior
- Use CSS custom properties for maintainability
Icons and Imagery
- Maintain consistent icon style and sizing
- Define icon grid and stroke weights
- Document icon naming conventions
- Optimize assets for web performance
- Provide multiple formats when needed (SVG, PNG)
Component Architecture
Component Structure
- Create atomic, reusable components
- Define clear component APIs (props/attributes)
- Document variants and states
- Ensure components are accessible by default
- Provide clear naming conventions
Component States
- Default state
- Hover state
- Focus state (keyboard navigation)
- Active/pressed state
- Disabled state
- Loading state
- Error state
Component Variants
- Size variants (small, medium, large)
- Color/theme variants
- Layout variants
- Contextual variants
Accessibility Requirements
- Follow WCAG 2.1 AA guidelines minimum
- Use semantic HTML elements
- Provide ARIA labels where needed
- Ensure keyboard navigation
- Test with screen readers
- Maintain color contrast ratios
- Support reduced motion preferences
Documentation Standards
Component Documentation
- Purpose and use cases
- Props/API reference
- Code examples
- Do's and don'ts
- Accessibility notes
- Related components
Pattern Documentation
- When to use
- Anatomy breakdown
- Behavior specifications
- Responsive considerations
- Edge cases
Implementation Guidelines
CSS Architecture
- Use CSS custom properties for tokens
- Implement utility classes for common patterns
- Follow BEM or similar naming convention
- Ensure specificity is manageable
- Support theming and customization
Component Libraries
- Framework-agnostic when possible
- Tree-shakeable exports
- TypeScript support
- Comprehensive test coverage
- Storybook integration
Governance
Contribution Guidelines
- How to propose new components
- Review and approval process
- Versioning strategy
- Breaking change policy
- Deprecation process
Maintenance
- Regular accessibility audits
- Performance monitoring
- Browser compatibility testing
- Documentation updates
- Community feedback incorporation
Design Tokens
Token Categories
- Colors
- Typography (font sizes, weights, line heights)
- Spacing
- Border radius
- Shadows
- Breakpoints
- Animation durations
- Z-index values
Token Implementation
:root {
/* Colors */
--color-primary-500: #0066cc;
--color-neutral-100: #f5f5f5;
/* Spacing */
--space-1: 4px;
--space-2: 8px;
--space-4: 16px;
/* Typography */
--font-size-sm: 0.875rem;
--font-size-base: 1rem;
--font-size-lg: 1.125rem;
/* Shadows */
--shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
--shadow-md: 0 4px 6px rgba(0, 0, 0, 0.1);
}Example: React Button Component Using Design Tokens
import React from "react";
interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
variant?: "primary" | "secondary" | "danger";
size?: "sm" | "md" | "lg";
loading?: boolean;
}
const sizeStyles: Record<string, React.CSSProperties> = {
sm: { padding: "var(--space-1) var(--space-2)", fontSize: "var(--font-size-sm)" },
md: { padding: "var(--space-2) var(--space-4)", fontSize: "var(--font-size-base)" },
lg: { padding: "var(--space-3) var(--space-6)", fontSize: "var(--font-size-lg)" },
};
export const Button: React.FC<ButtonProps> = ({
variant = "primary",
size = "md",
loading = false,
disabled,
children,
...props
}) => (
<button
style={{
...sizeStyles[size],
backgroundColor: `var(--color-${variant}-500)`,
color: "var(--color-neutral-100)",
borderRadius: "var(--radius-md)",
boxShadow: "var(--shadow-sm)",
cursor: disabled || loading ? "not-allowed" : "pointer",
opacity: disabled ? 0.5 : 1,
}}
disabled={disabled || loading}
aria-busy={loading}
{...props}
>
{loading ? "Loading…" : children}
</button>
);Example: Storybook Configuration
// .storybook/preview.ts
import type { Preview } from "@storybook/react";
import "../src/tokens.css"; // import design tokens globally
const preview: Preview = {
parameters: {
a11y: { element: "#storybook-root" },
backgrounds: {
default: "light",
values: [
{ name: "light", value: "#ffffff" },
{ name: "dark", value: "#1a1a1a" },
],
},
},
};
export default preview;Quality Assurance
- Visual regression testing
- Accessibility automated testing
- Cross-browser testing
- Performance benchmarking
- Component unit testing
- Integration testing
When evolving the design system, validate changes against WCAG 2.1 AA, run visual regression tests, and ensure token updates propagate correctly across all consuming applications.
Related skills
How it compares
Choose design-systems over single-framework UI skills when the goal is cross-product token governance and library architecture, not just component syntax in one stack.
FAQ
When should a developer use the design-systems skill?
design-systems applies when creating design tokens, building component libraries, implementing theming architecture, or establishing UI governance—any task requiring visual consistency and accessible scalable components.
What does the design-systems workflow start with?
design-systems begins by auditing existing UI—inventorying current components, colors, typography, and spacing—to surface inconsistencies before defining tokens and library structure.
Is Design Systems safe to install?
skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.