About & Accessibility

The design system's philosophy and its WCAG 2.1 AA accessibility commitment.

GHDS (GH Design System) is a cross-platform design system that keeps its hand-drawn (sketchy) look and feel without compromising on consistency or accessibility.

Philosophy

See Design Principles for the full principle set behind these decisions.

Why Hand-Drawn?

Intent

The sketchy rendering is a deliberate choice, not an accident of the tooling:

When it’s appropriate

When to dial it down

In these contexts, precision and authority matter more than warmth — see principle 1.

How sketch-core implements it

@ghds/sketch-core perturbs geometry rather than drawing by hand: offset() in packages/sketch-core/src/geometry/offset.ts applies the jitter, and SketchOptions in packages/sketch-core/src/types.ts exposes the numeric knobs (roughness, bowing, hachureGap, hachureAngle, elevation) that every component reads. These knobs are token-driven, never hardcoded — the same rule as principle 2.

Roughness token scale — dialing intensity up/down

IntensityroughnessbowinghachureGaphachureAngleelevation
none / flat00flat (0)
subtle0.81tight (4)
default1.42default (8)-41raised (4)
rough / strong / cross2.44 (strong)loose (14)cross (41)

These live at the reference tier (ref.sketch.*). sys.sketch.* aliases the default/raised values so they’re theme-invariant, and each component’s comp.<component>.sketch.* tokens (e.g. comp.button.sketch.*, comp.card.sketch.*, comp.input.sketch.*) alias the sys tier in turn — never ref directly.

To dial a specific component down — a “confirm delete” button in a high-trust flow, for example — the component’s comp.*.sketch.roughness token must still resolve through sys, never skip straight to ref (the comp → sys → ref boundary applies here too). The correct path is to add a new sys-tier role (e.g. sys.sketch.roughness.subtle, aliasing ref.sketch.roughness.subtle), then repoint that component’s comp.*.sketch.roughness alias to the new sys token — documenting why with a comment. Never hardcode a numeric roughness value, and never have a comp token reference ref directly.

Accessibility Commitment

See the Accessibility Guide for keyboard interaction, focus management, ARIA patterns, and testing checklists.

License

MIT.