Native platform
Todae builds on the browser instead of reimplementing it. It uses the features below with no JavaScript fallbacks, so a browser that has them is a browser Todae supports. There is no separate support matrix.
- CSS anchor positioning: placing popovers and tooltips next to their trigger, and flipping them at the viewport edge with
position-try-fallbacks. Without it: the surface is not placed next to its trigger and sits near the top-left corner of the viewport. - Popover API: showing
Popover.RootandTooltip.Rootin the top layer. Todae needs it. <dialog>andshowModal():Dialog.RootandBottomSheet.Root, for the top layer,::backdrop, an inert page behind, Escape, and<form method="dialog">. Todae needs it. The scrim reads Todae's custom properties from::backdrop, which inherits them from its dialog in current browsers; an older engine that does not shows no scrim color.closedby:BottomSheetwithdismissOnEscape={false}, so the browser ignores Escape. Without it: Escape still asks to close, and Todae holds the sheet open.inert: hiding the chip measuring copy. Todae needs it.<details name>: exclusive accordions. Without it: several disclosures in a group can be open at once.::details-content: fading a disclosure's content in. Without it: the content appears at once.field-sizing: content:Field.TextareawithautoGrow. Without it: the textarea keeps its rows and scrolls.:has():FieldandChipfocus rings and adornment layout, theAlertcolumns, and stopping page scroll while a modal<dialog>is open (with:modal). Todae needs it.scrollbar-gutter: keeping the page's scrollbar space while a modal<dialog>stops page scroll. Without it: the page shifts by the scrollbar's width when a modal opens.- Cascade layers: ordering Todae's reset, tokens, components and a company's theme. Todae needs it.
- Relative color syntax: translucent colors made from a token, such as
color.bg.selected. Todae needs it. @starting-style:Dialogentry transitions. Without it: the dialog appears without a transition.dvhunits:DialogandBottomSheetheights that follow mobile browser chrome. Todae needs it.
Behavior that matters most is tested in a real browser (Chromium, through Playwright): Escape order across stacked overlays, modal focus and restore, flip at the viewport edge, chip overflow measurement and bottom-sheet drag. Every docs example is also checked with axe there.