Help and releases
Browser support
The supported browsers and every platform feature Oddkin uses, with how it is adopted and what happens below its baseline. Generated from the compatibility registry.
Supported browsers
| Browser | Version |
|---|---|
| Chrome | 130 and later |
| Chrome for Android | 130 and later |
| Edge | 130 and later |
| Firefox | 132 and later |
| Firefox for Android | 132 and later |
| Safari | 18.2 and later |
| Safari on iOS | 18.2 and later |
Platform features
| Feature | Kind | Adoption | Without the feature |
|---|---|---|---|
customizable-select | css | enhancement | A styled native <select>: the closed control takes the field look with Oddkin's chevron (appearance: none); the engine draws the open picker and its options, with native semantics, keyboard behaviour, validation, and form participation. |
dialog-closedby | html | enhancement | The dialog emulates closedby: with `any`, a press on the backdrop closes it after a cancelable cancel; with `none`, Escape is cancelled. |
element-reflection | api | enhancement | A card is a named region only with label; without it, no landmark role is set. |
field-sizing | css | enhancement | Textareas have a fixed initial row count with user resizing; long content scrolls. odd-textarea's resize="auto" measures its height (scrollHeight) as its value or width changes where the engine has no field sizing: the contract's auto-growing field needs it below the floor's field-sizing support. Native and script sizing never run together. |
forced-color-adjust | css | enhancement | An engine without the property has no forced colours mode (Safari), so the colours show as authored. |
move-before | api | enhancement | Moves remove and re-insert nodes, restoring focus and selection afterwards. |
resize-cursors | css | enhancement | The separator shows the pointer cursor; touch devices show no cursor at all. |
starting-style | css | enhancement | Overlays and disclosures open and close immediately; visibility, inertness, and focus change at once. |
trusted-types | api | enhancement | Static template markup is parsed through the same code path without a policy object. |
aspect-ratio | css | foundation | Required: every supported browser has it. |
cascade-layers | css | foundation | Required: every supported browser has it. |
color-scheme | css | foundation | Required: every supported browser has it. |
constructed-stylesheets | api | foundation | Required: every supported browser has it. |
container-queries | css | foundation | Required: every supported browser has it. |
cursor-keywords | css | foundation | Required: every supported browser has it. |
custom-properties | css | foundation | Required: every supported browser has it. |
custom-states | css | foundation | Required: every supported browser has it. |
delegates-focus | api | foundation | Required: every supported browser has it. |
dialog-element | api | foundation | Required: every supported browser has it. |
dir-pseudo | css | foundation | Required: every supported browser has it. |
dynamic-viewport-units | css | foundation | Required: every supported browser has it. |
flexbox-gap | css | foundation | Required: every supported browser has it. |
focus-selectors | css | foundation | Required: every supported browser has it. |
form-associated-custom-elements | api | foundation | Required: every supported browser has it. |
grid-intrinsic | css | foundation | Required: every supported browser has it. |
has-selector | css | foundation | Required: every supported browser has it. |
import-maps | html | foundation | Required: every supported browser has it. |
interaction-media-features | css | foundation | Required: every supported browser has it. |
logical-properties | css | foundation | Required: every supported browser has it. |
min-max-clamp | css | foundation | Required: every supported browser has it. |
overflow-wrap-anywhere | css | foundation | Required: every supported browser has it. |
popover-api | api | foundation | Required: every supported browser has it. |
preference-media-features | css | foundation | Required: every supported browser has it. |
resize | css | foundation | Required: every supported browser has it. |
scrollbar-gutter | css | foundation | Required: every supported browser has it. |
shadow-styling | css | foundation | Required: every supported browser has it. |
subgrid | css | foundation | Required: every supported browser has it. |
system-colors | css | foundation | Required: every supported browser has it. |
text-wrap-balance | css | foundation | Required: every supported browser has it. |
where-is | css | foundation | Required: every supported browser has it. |
wide-gamut-color | css | foundation | Required: every supported browser has it. |
The full matrix, with the browser data versions it was computed from, is docs/compatibility/matrix.md.