Browser and platform support matrix

mandatory

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 N2 stable / N2 major
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).

Source: ../home/koder/dev/koder/meta/docs/stack/specs/develop/browser-support.kmd