Browser and platform support matrix
Published support contract for kds.koder.dev and every koder_web_kit consumer. Defines Tier 1 (full support, Lighthouse-tested in CI), Tier 2 (best-effort), and Tier 3 (not supported, upgrade banner). Mirrors Cedar, GOV.UK, USWDS, Mozilla Protocol practice.
Spec — Browser and platform support matrix
*tatus* v0.1.0 — Draft. Conservative defaults aligned with current Lighthouse CI configuration; tighten or relax as analytics arrive from production.
R1 — Tier 1 — full support (CI-tested)
| Browser | Versions |
|---|---|
| Chrome / Edge (Chromium) | Current stable + previous stable |
| Firefox | Current stable + previous stable |
| Safari (macOS) | Current major + previous major |
| Safari (iOS) | Current major + previous major |
| Chrome Android | Current stable |
Lighthouse CI runs against headless Chrome current stable. Every PR gates against the thresholds in tools/design-gen/lighthouserc.json.
R2 — Tier 2 — besteffort (not CItested)
| Browser | Versions |
|---|---|
| Chrome / Firefox / Safari | N |
| Samsung Internet | Last 2 majors |
| Older WebViews on Android | Chrome 100+ |
Bug reports accepted; fixes done on best-effort if the bug doesn't require a polyfill the rest of the matrix doesn't need.
R3 — Tier 3 — not supported
- Internet Explorer (any version).
- Browsers older than Tier 2 N-2.
- Browsers whose evergreen feature set lacks: CSS custom properties,
aspect-ratio, modern flexbox / grid, ES2020 modules.
Tier 3 visitors SHOULD see a non-blocking banner: "Your browser is outofdate. Some KDS pages may not render correctly. Please upgrade." Banner is dismissable; never blocks content.
R4 — JS-free baseline
Every KDS page MUST render meaningfully without JavaScript (server- rendered HTML + CSS); JavaScript MUST be progressive enhancement only.
Specifically: navigation, body content, anchor links, theme initial choice (via preferscolorscheme) all work without JS. Interactive demos, live preset switching, prop playgrounds MAY require JS — but they MUST degrade to a static screenshot or text explanation.
R5 — Performance budgets per tier
Tier 1 hits the budgets in lighthouserc.json (Performance ≥ 0.90, LCP ≤ 1500ms, CLS ≤ 0.05). Tier 2 may relax LCP to ≤ 2500ms in field data; structural Performance score ≥ 0.80.
R6 — Polyfills
KDS does NOT bundle polyfills. Consumers needing older-browser support SHOULD apply polyfills at their own integration layer. Rationale: the evergreen Tier-1 baseline already includes everything KDS uses.
R7 — Mobile platform support
koder_kit (Flutter) targets Android 7.0+ (API 24+) and iOS 14.0+ on mobile surfaces, matching Flutter SDK current minima. Web surfaces follow R1-R3 above regardless of host OS.
R8 — Public matrix page
Published at kds.koder.dev/<locale>/governance/browser-support/. Renderer pulls the data from this spec frontmatter. Any matrix change is a spec PR — never a side effect of a Lighthouse config change.
Não-escopo
- Per-product overrides — products may publish a tighter own matrix in
their README, but never claim to support a browser KDS rejects.
- Polyfill bundling (R6 stance).