Browser Support
This page defines the browser support contract for the FDIC Design System as it is currently shipped.
Support is set by the runtime features already in the repository, not by an aspirational roadmap. The current floor is driven by shipped color-token behavior, registered custom properties, and native overlay primitives.
Support target
Use the current and previous stable release of the supported browser engines, with these minimum versions as the published floor:
| Browser | Supported floor | Why it matters |
|---|---|---|
| Chrome | 123+ | Required for light-dark(), which the token runtime uses directly. |
| Edge | 123+ | Mirrors the Chromium support floor used by the same token runtime. |
| Firefox | 128+ | Required for both @property and the relative oklch(from ...) syntax used in shipped tokens and component styles. |
| Safari | 17.5+ | Required for light-dark() and aligns with the current drawer transition model. |
The root browserslist entry matches this floor so tooling and docs describe the same contract.
Required platform features
These features are part of the shipped runtime with no separate legacy path:
light-dark()for semantic color tokens in@jflamb/fdic-ds-tokens/styles.css- Relative color syntax such as
oklch(from var(--fdic-color-primary-500) l c h / 0.08) @propertyregistration for interactive overlay color tokens- Native
<dialog>behavior for modal drawer mode viashowModal()
If a browser does not support those features, core theming and overlay behavior no longer match the published design-system contract.
Progressive enhancement
These features are already shipped, but failure to support them degrades presentation more than basic function:
- Popover API behavior in components such as
fd-menuand thefd-labelInfoTip @starting-styleandtransition-behavior: allow-discretefor smoother drawer entry and exit motion- Top-layer styling hooks such as
:popover-openanddialog::backdrop
In those cases, the intended behavior is a reduced interaction or animation experience rather than a different fallback implementation.
Feature checkpoints
The current floor is based on the highest hard requirement among the features already in the repo:
| Feature | Chrome / Edge | Firefox | Safari | Notes |
|---|---|---|---|---|
light-dark() | 123 | 120 | 17.5 | Hard requirement for token-driven light/dark appearance. |
Relative oklch(from ...) syntax | 122 | 128 | 16.4 partial, 18 full | The repo uses direct channel references rather than complex channel math. |
@property | 85 | 128 | 16.4 | Hard requirement for registered custom properties in the token runtime. |
| Popover API surface | 114 | 125 | 17 | Used by fd-menu and fd-label. |
@starting-style | 117 | 129 | 17.5 | Used by fd-drawer for entry transitions. |
transition-behavior: allow-discrete | 117 | 129 | 17.4 | Used by fd-drawer for discrete dialog/backdrop transitions. |
HTMLDialogElement.showModal() | 37 | 98 | 15.4 | Used by modal drawer mode. |
Implications for component work
- The documented floor now unblocks future work that depends on Popover-based overlays, including the deferred
fd-selectormigration. - New CSS platform features should be introduced only when they fit within this matrix or degrade cleanly above it.
- When a component depends on a newer feature than this page allows, document that explicitly before shipping the change.
Sources
- MDN browser compatibility data for
light-dark() - MDN browser compatibility data for
@property - MDN browser compatibility data for
@starting-style - MDN browser compatibility data for
transition-behavior - MDN browser compatibility data for
HTMLDialogElement.showModal() - MDN browser compatibility data for Popover-related
HTMLElementAPIs