This section documents Mzizi’s components: the registry and design system that
support the language, served through
api.mzizi.dev and browsable at
mzizi.dev/components. It is not documentation for the
language itself; the ecosystem page draws the line. Rust components
(Mzizi Roots) lead. The React components are the React build:
they keep working, but they are deprioritised.design-system/ folder in mzizi-dev/mzizi-registry (arriving with
mzizi-registry#418), which is the copy to change.
Guiding philosophy
The design system is built for the reality of African infrastructure. A user on a 2G connection is not an edge case; it is the primary case. Four pillars shape the decisions:- Local-first — data and UI work offline, syncing when connectivity returns.
- Mobile-first — most access is on mobile devices with constrained bandwidth and lower-end hardware.
- Open source and sovereign — no dependency on infrastructure the ecosystem does not control.
- Open data — transparent data pipelines.
- Language-inclusive — the font stack covers African languages with full diacritics. African languages are first-class, not localisations.
- Accessible by default — WCAG 7:1, 4.5:1 and 3:1 contrast with APCA 3.0, 17px body text, and a 49px hit region on every control, with 14px inset, 7px gaps and 1.5 line height as the spacing floor. See the Bundu floor and the spacing floor.
- Performant on constrained devices — lazy loading, memory-pressure monitoring and sequential mount queues.
- Offline-capable — components and patterns degrade gracefully.
Explore
Design tokens
The Seven African Minerals, the semantic status categories, and how a value flows from N1
to everything above it.
Typography
Font stack, type scale, heading hierarchy, and when serif rather than sans.
Layout
Breakpoints, the spacing scale, container patterns and grid shapes.
Motion
Timing, easing, enter and exit patterns, and reduced-motion behaviour.
Icons
Icon conventions, the size scale, and accessible icon-only controls.
Accessibility
WCAG and APCA contrast thresholds, hit regions, keyboard navigation, screen readers.
The Bundu floor
The minimums on every device: 17px body, 14px captions, a 49px hit region, and how to
migrate.
The spacing floor
The space nothing goes under: 14px inset, 7px gaps, 1.5 body line height.
Internationalisation
Why Noto Sans, text direction, and locale-aware number and date formatting.