/* * The showcase's own chrome: what its frame needs beyond the layout components, the text classes * and the shared interaction classes (plan step 38) — a brand wordmark, the search box's own * geometry, a small icon avatar, an example's card and its code sample. Everything else the frame * draws is a layout component with its props, or a `md-*` text class; this file is only what those * two do not cover. * * In `material.components`: the showcase is one more thing drawn over the foundation and the * layout components, exactly where `components/error-page.css` sits for the same reason (a whole * page's own chrome, not a reusable package component, but still something an application's own * unlayered CSS should outrank without a specificity fight). Keyed on `data-md-showcase-*` hooks, * never a bare element selector, since this file is always bundled together with `all.css` * (`ShowcaseAssetController`) and must not restyle anything outside the showcase's own pages. * * No imports: batch 1 (the frame — layout, index, section, shell, the example component) uses no * selector this file needs to draw over, only tokens already in `all.css`, which the bundle always * carries ahead of this file. A later batch that needs a component's own hook imports its * stylesheet here, as every other package file does. */ @layer material.reset, material.tokens, material.base, material.layout, material.components, material.text, material.visibility; @layer material.components { [data-md-showcase] { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } /* The rail's wordmark: `md-type-title-lg md-truncate md-focus-ring` cover the type, the ellipsis and the ring; `display: block` gives the truncated text a width to ellipsize within, and the corner rounds the ring to match the state layer every other rail control draws (foundation/interaction.css's `md-focus-ring` takes its shape from the element). */ [data-md-showcase-brand] { display: block; border-radius: var(--md-sys-shape-corner-xs); } /* The search bar fills the app bar's search slot. */ [data-md-showcase-search] { width: 100%; } [data-md-showcase-search-hint] { padding: var(--md-sys-measurement-space125) var(--md-sys-measurement-space200); } /* A kbd in running text: the search hint's "/", and the intro paragraph's own. */ [data-md-showcase-kbd] { display: inline-block; border-radius: var(--md-sys-shape-corner-xs); background-color: var(--md-sys-color-surface-container-highest); padding: 0 var(--md-sys-measurement-space75); } /* One search result: title over kind and context, centred in a 56px row (space700, M3's list row) the way a menu item is. */ [data-md-showcase-search-result] { display: flex; flex-direction: column; justify-content: center; min-height: var(--md-sys-measurement-space700); padding: var(--md-sys-measurement-space100) var(--md-sys-measurement-space200); } /* The bottom breathing room under a showcase page's content, inside the pane's own margins. */ [data-md-showcase-page] { padding-block-end: var(--md-sys-measurement-space600); } /* Each section's group of components on the overview: a tonal box behind its icon, the way a list's leading icon sits in a container (M3's small tonal container). */ [data-md-showcase-section-icon] { display: grid; place-items: center; width: var(--md-sys-measurement-space600); height: var(--md-sys-measurement-space600); border-radius: var(--md-sys-shape-corner-lg); background-color: var(--md-sys-color-secondary-container); color: var(--md-sys-color-on-secondary-container); } /* Each `
`'s own `

`, inside a still-Tailwind sections/*.blade.php partial this batch does not rewrite: the page's own `

` already names the section, so the heading inside it is for assistive technology only — the same declarations as `md-visually-hidden` (text.css), applied by structure because a class cannot reach into an @include'd partial. */ [data-md-showcase-sections] > section > h2 { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border-width: 0; } /* An example: scroll-margin so a hash link (the search result, the "next section" nav) lands clear of the sticky app bar above it. */ [data-md-showcase-example] { scroll-margin-top: var(--md-sys-measurement-space900); } [data-md-showcase-code-summary] { display: inline-block; cursor: pointer; border-radius: var(--md-sys-shape-corner-xs); } [data-md-showcase-code] { margin-top: var(--md-sys-measurement-space100); overflow-x: auto; border-radius: var(--md-sys-shape-corner-sm); background-color: var(--md-sys-color-surface-container-highest); padding: var(--md-sys-measurement-space125); } }