Skip to content

Introduction to Sparkle

Welcome to Sparkle, a comprehensive TypeScript-first design system built for modern web and mobile applications. Sparkle provides a unified approach to building beautiful, accessible, and consistent user interfaces across platforms.

  • Battle-tested components with comprehensive test coverage
  • Automated visual regression testing ensures consistency
  • Built-in accessibility compliance (WCAG 2.1 AA)
  • Performance optimized with tree-shaking and minimal bundle impact
  • Type Safety: Catch errors at compile time, not runtime
  • IntelliSense: Rich autocomplete and documentation in your IDE
  • Self-Documenting: Types serve as living documentation
  • Refactoring Confidence: Make large-scale changes safely
  • Unified Design Tokens: Same colors, spacing, typography across web and mobile
  • Smart Adapters: Automatically converts design tokens for different platforms
  • Consistent Experience: Users get the same visual language everywhere
  • WCAG 2.1 AA compliance out of the box
  • Screen Reader Support with proper ARIA implementation
  • Keyboard Navigation for all interactive elements
  • Focus Management with visible, accessible focus indicators
  • Component Playground: Interactive Storybook with live editing
  • Auto-Generated Docs: Documentation that stays in sync with your code
  • Error Testing: Built-in utilities for testing error states
  • Hot Reload: Instant feedback during development

Sparkle is organized as a pnpm workspace with focused packages that work together seamlessly:

@sparkle/
β”œβ”€β”€ ui/ # 🎨 React component library
β”œβ”€β”€ theme/ # 🌈 Design tokens and theme providers
β”œβ”€β”€ types/ # πŸ“ Shared TypeScript definitions
β”œβ”€β”€ utils/ # πŸ”§ Utility functions and React hooks
β”œβ”€β”€ error-testing/# πŸ§ͺ Error testing framework
└── config/ # βš™οΈ Shared build configurations

Each package has clear responsibilities and minimal dependencies:

@sparkle/ui
β”œβ”€β”€ @sparkle/theme # ← Design tokens & theming
β”œβ”€β”€ @sparkle/types # ← TypeScript definitions
└── @sparkle/utils # ← Shared utilities
@sparkle/theme
└── @sparkle/types # ← Core type definitions
@sparkle/utils
└── @sparkle/types # ← Type safety everywhere

This architecture means you can:

  • Install only what you need - Use just @sparkle/theme for design tokens
  • Avoid circular dependencies - Clean, predictable import paths
  • Scale confidently - Add new packages without breaking existing ones
  • Update incrementally - Each package versions independently

Ready to start building with Sparkle? Here’s your path to success:

Ready to get started? Here’s your roadmap:

Find guides for your specific needs: