import { Meta } from '@storybook/addon-docs/blocks'; # Foundations The **why** behind this codebase, as a short curriculum. Each page is a condensed, cross-linked take on one idea; the long-form source lives in `docs/reference/` (see the repo's `docs/README.md`). Read them in roughly this order. > **New here?** Follow the [Learning Path](?path=/docs/foundations-learning-path--docs) > for a paced 3-day route with exercises and self-checks. This page is the map; the > Learning Path is the route through it. ## Architecture & domain - [Domain-driven design](?path=/docs/foundations-domain-driven-design--docs) — bounded contexts + layers, dependencies pointing inward (the folder structure _is_ the architecture). - [Atomic design](?path=/docs/foundations-atomic-design--docs) — Atoms → Molecules → Organisms → Templates; a new page is composition, not new building blocks. ## Functional core - [FP in the UI](?path=/docs/foundations-fp-in-the-ui--docs) — the three functional tools behind the view. - [State machines (TEA)](?path=/docs/foundations-state-machines-tea--docs) — every form/wizard as Model → Msg → pure `reduce`. - [RemoteData & Async](?path=/docs/foundations-remotedata-async--docs) — the four async states as one value. - [Parse, don't validate](?path=/docs/foundations-parse-dont-validate--docs) — narrow untrusted `unknown` at the boundary into domain types. ## Design system - [Design tokens](?path=/docs/foundations-design-tokens--docs) — semantic `--rhc-*` tokens; no hand-written colours. - [CIBG gap register](?path=/docs/foundations-cibg-gap-register--docs) — where we diverge from the CIBG Huisstijl (ADR-0003). ## Quality & process - [Accessibility](?path=/docs/foundations-accessibility--docs) — four layered a11y tools, each catching a different bug class. - [Testing strategy](?path=/docs/foundations-testing-strategy--docs) — what to test, by layer grain. - [BDD](?path=/docs/foundations-bdd--docs) — how each test is phrased and scoped: one behaviour, in the domain's language. - [Internationalization](?path=/docs/foundations-internationalization--docs) — `$localize` for every user-visible string; the locale seam.