For AI agents: the complete documentation index is available at https://ifhover.github.io/leaf-ui/en/llms.txt, the full documentation bundle is available at https://ifhover.github.io/leaf-ui/en/llms-full.txt, and this page is available as Markdown at https://ifhover.github.io/leaf-ui/en/guide/compatibility.md.

Browser compatibility

Use the current or previous stable release of Chrome, Edge, Firefox or Safari.

Minimum versions

BrowserMinimum version
Google Chrome109 or later
Microsoft Edge109 or later
Mozilla Firefox121 or later
Safari16.4 or later

These versions are Leaf UI's minimum support targets, not a claim that every version has been tested. IE, legacy Edge (EdgeHTML) and older WebViews are outside the supported range.

Features and fallbacks

CapabilityImplementation and fallback
Derived colorsJavaScript emits concrete color variables; static palettes support initial rendering and standalone CSS
Background blurStandard and WebKit-prefixed filters; unsupported filters use a darker translucent mask; disable with maskBlur={false}
Entrance motionKeyframes fade the mask; without @starting-style, some content appears immediately and remains usable
Web AnimationsLayout updates immediately when Element.animate is unavailable
ResizeObserverOptional observers are guarded; window resize continues to measure layouts. Third-party virtualization requires modern browsers
IntersectionObserverInfinite scrolling offers a manual load button
Reduced motionSystem preferences and theme.motion={false} are honored
Forced colorsKeyboard focus and native selection indicators remain visible; text and ARIA communicate status
<ConfigProvider maskBlur={false} theme={{ primaryColor: '#635bff', appearance: 'dark' }}>
  <App />
</ConfigProvider>

Use concrete hex/rgb/hsl/named colors through theme and tokens. A server cannot resolve CSS variables: var(...) colors resolve after mounting and synchronize when ancestor class/style attributes change. Pass concrete colors for a deterministic SSR first frame. Changing only a base CSS color does not recalculate the full palette.

Validation coverage

CI covers Chromium, Firefox, WebKit, React 18/19, SSR and package exports. WebKit coverage does not imply physical Safari/iOS coverage. Local Firefox currently fails to launch (spawn UNKNOWN) and is not recorded as passed. See packages/react/ACCESSIBILITY.md in the repository for executed checks and manual limits.