Davidhorn design system

One vocabulary, two platforms, every Davidhorn product.

Justin is the shared design system behind Davidhorn's web and mobile apps. Tokens, type, color and motion are derived from a single Figma source and generated for both Svelte and Compose Multiplatform — so a screen built in Capture KMP feels exactly like one built in Ark on the web.

Web · @davidhorn/justin Draft

Justin for Svelte

Svelte 5 component library used by Ark, Capture's web admin, and the Davidhorn marketing site. Plain CSS with Material 3 Expressive tokens, ITCSS layers, accessibility-first.

14 components

Explore →
Android + iOS · com.davidhorn.justin Draft

Justin for KMP

Compose Multiplatform component library for Davidhorn's mobile fleet, primarily Capture 2.0. Identical token vocabulary, same typography, same color roles.

7 components

Explore →

Why Justin

  • Shared tokens

    Colors, spacing, typography and radii live in one Figma file and are generated into both Svelte CSS variables and KMP Kotlin objects. Update once, both platforms follow.

  • HTML first

    Native elements before custom widgets. CSS before JavaScript. Accessible by default — no retrofit.

  • Material 3 Expressive

    Built on Material 3 Expressive's vocabulary, customised to Davidhorn's brand. Familiar to anyone who has used Material, distinctive enough to feel like Davidhorn.