Wintermuted UI Theme

Overview

A shared CSS and JavaScript design system package that standardizes visual language across Wintermuted projects. The package provides design tokens, base resets, and component styles that can be consumed as a full theme or as modular CSS entry points.

The goal is to keep UI quality consistent while reducing styling drift between repositories such as the blog, CV, and supporting documentation sites.

Screenshots

What I Built

I built a package-first theme system with a static docs surface for validation and onboarding.

Core package scope

  • Design tokens in CSS custom properties for color, text hierarchy, spacing, radius, and shadows.
  • Base element styles for typography and form defaults.
  • Reusable components for cards, buttons, badges, tags, side navigation, code blocks, gallery patterns, and supporting layout primitives.
  • Light and dark theme support via the data-theme attribute.

Consumption model

  • Full import: one-line import for fast adoption.
  • Modular imports: selective component CSS for narrow use cases.
  • Local linking workflow for testing changes in consumer repos before publishing.

Documentation workflow

  • Multi-page static docs in showcase/ for component-specific examples.
  • Real screenshot gallery used by this project page to document current visual states.
  • Local server workflow for rapid review and capture updates.

Current Implementation Scope

Today the package is optimized for static and app-shell style interfaces where consistent tokens and lightweight component classes are more important than framework-specific abstractions.

The strongest current coverage areas are:

  • Documentation and content-heavy pages (cards, typography, navigation).
  • Data presentation patterns (tables, chart wrappers, gallery tiles).
  • Form controls and status messaging for operational UIs.

Integration Workflow

Typical adoption flow in a consumer app:

  1. Install @wintermuted/ui-theme.
  2. Import the full bundle (or selected module files) at the app entry point.
  3. Apply wm- component classes in templates and map app-specific selectors to theme tokens.
  4. Validate light/dark appearance and interaction states in local preview.
  5. Capture screenshots and update docs when component behavior changes.