Plan step 36 (actions). <x-toast> renders data-md-toast with data-md-position, its snackbar data-md-toast-snackbar with a bound data-md-two-line, data-md-toast-content with a bound data-md-toast-wrap, and data-md-toast-action/-dismiss; no class list. toast.css draws SnackbarTokens' inverse surface, 48/68px container, the two 40px controls reaching 48px targets with their own state layer and touch target (ACT-18), the enter transition and the position-start margin that grows from medium. data-toast becomes data-md-toast-snackbar and data-toast-action becomes data-md-toast-action (snackbar.js, navigation.js's hide-on-scroll guard, NavigationBarTest, CommunicationTest); a new data-md-toast-dismiss hook names the close button. ToastTest is rewritten on the hooks and ComponentStylesheet. CommunicationTest gains the owed tests: an actioned snackbar past the default timeout, Escape on a focused one, the live region before any message, and the two-line height with Alt+G reaching the action from elsewhere on the page. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Qwx5USif3wFFmxtHg5U1g9
55 lines
1.9 KiB
CSS
55 lines
1.9 KiB
CSS
/*
|
|
* The component stylesheets already written without Tailwind (plan step 36), while the rest are
|
|
* still in tailwind.css. Each lives in `material.components`, so it can be imported anywhere in
|
|
* the entry: the layer statement, not the import order, decides where its rules rank. Step 37
|
|
* replaces this file with all.css. One block per stream, so parallel rewrites merge cleanly.
|
|
*/
|
|
|
|
@layer material.reset, material.tokens, material.base, material.layout, material.components, material.text, material.visibility;
|
|
|
|
/* Foundation components */
|
|
@import './components/icon.css';
|
|
@import './components/shape.css';
|
|
|
|
/* Actions and communication */
|
|
@import './components/loading.css';
|
|
@import './components/tooltip.css';
|
|
@import './components/badge.css';
|
|
@import './components/button.css';
|
|
@import './components/group.css';
|
|
@import './components/button-group.css';
|
|
@import './components/split-button.css';
|
|
@import './components/fab.css';
|
|
@import './components/menu-separator.css';
|
|
@import './components/menu-group.css';
|
|
@import './components/menu-item.css';
|
|
@import './components/menu.css';
|
|
@import './components/fab-menu-item.css';
|
|
@import './components/fab-menu.css';
|
|
@import './components/rich-tooltip.css';
|
|
@import './components/toast.css';
|
|
|
|
/* Inputs, selection and data */
|
|
@import './components/form.css';
|
|
@import './components/field.css';
|
|
@import './components/input.css';
|
|
@import './components/password.css';
|
|
@import './components/textarea.css';
|
|
@import './components/select.css';
|
|
@import './components/file.css';
|
|
@import './components/checkbox.css';
|
|
@import './components/radio.css';
|
|
@import './components/toggle.css';
|
|
@import './components/chip.css';
|
|
@import './components/chip-set.css';
|
|
@import './components/choices.css';
|
|
@import './components/slider.css';
|
|
@import './components/search.css';
|
|
@import './components/table.css';
|
|
@import './components/sort-header.css';
|
|
@import './components/pagination.css';
|
|
|
|
/* Containment */
|
|
|
|
/* Navigation */
|