네이티브 플랫폼
Todae는 브라우저를 다시 구현하지 않고 그 위에 만들어집니다. 아래 기능을 JavaScript 대체 구현 없이 사용하므로, 이 기능들이 있는 브라우저가 곧 Todae가 지원하는 브라우저입니다. 별도의 지원 매트릭스는 없습니다.
- CSS 앵커 포지셔닝: 팝오버와 툴팁을 트리거 옆에 배치하고,
position-try-fallbacks로 뷰포트 가장자리에서 뒤집습니다. 없으면: 표면이 트리거 옆에 배치되지 않고 뷰포트 왼쪽 위 모서리 근처에 놓입니다. - Popover API:
Popover.Root와Tooltip.Root를 최상위 레이어에 표시합니다. Todae에 필수입니다. <dialog>와showModal():Dialog.Root와BottomSheet.Root의 최상위 레이어,::backdrop, inert가 되는 뒤 페이지, Escape,<form method="dialog">에 씁니다. Todae에 필수입니다. 스크림은::backdrop에서 Todae의 사용자 정의 속성을 읽으며, 현재 브라우저에서는::backdrop이 다이얼로그에서 이를 상속합니다. 상속하지 않는 오래된 엔진에서는 스크림 색이 보이지 않습니다.closedby:dismissOnEscape={false}인BottomSheet에서 브라우저가 Escape를 무시하게 합니다. 없으면: Escape가 여전히 닫기를 요청하고, Todae가 시트를 열린 채로 둡니다.inert: 칩 측정용 사본을 숨깁니다. Todae에 필수입니다.<details name>: 하나만 열리는 아코디언. 없으면: 한 그룹의 여러 디스클로저가 동시에 열릴 수 있습니다.::details-content: 디스클로저 내용을 서서히 나타냅니다. 없으면: 내용이 바로 나타납니다.field-sizing: content:autoGrow를 쓴Field.Textarea. 없으면: textarea가 rows 높이를 유지하고 스크롤됩니다.:has():Field와Chip의 포커스 링과 장식 요소 레이아웃,Alert의 열 배치, 모달<dialog>가 열려 있는 동안 페이지 스크롤 멈춤(:modal과 함께). Todae에 필수입니다.scrollbar-gutter: 모달<dialog>가 페이지 스크롤을 멈추는 동안 스크롤바 자리를 유지합니다. 없으면: 모달이 열릴 때 페이지가 스크롤바 너비만큼 밀립니다.- 캐스케이드 레이어: Todae의 리셋, 토큰, 컴포넌트와 회사 테마의 순서를 정합니다. Todae에 필수입니다.
- 상대 색상 문법:
color.bg.selected처럼 토큰에서 만든 반투명 색상. Todae에 필수입니다. @starting-style:Dialog진입 전환. 없으면: 다이얼로그가 전환 없이 나타납니다.dvh단위: 모바일 브라우저 UI를 따르는Dialog와BottomSheet높이. Todae에 필수입니다.
가장 중요한 동작은 실제 브라우저(Playwright를 통한 Chromium)에서 테스트합니다. 겹쳐 쌓인 오버레이 사이의 Escape 순서, 모달 포커스와 복원, 뷰포트 가장자리에서의 뒤집기, 칩 오버플로 측정, 바텀 시트 드래그입니다. 모든 문서 예시도 그곳에서 axe로 검사합니다.