Semantic theme class reference
Stable Flowershow CSS hooks grouped by the UI areas that emit them.
Flowershow themes start with custom properties,
then use semantic classes when a component needs more specific treatment. This
page is generated from
default-theme.css
and currently documents 348 styled class selectors:
346 stable semantic hooks and 2 non-contract
compatibility utilities.
Stability contract
The semantic component, element, state, and variant hooks listed here are a public theme-author API. Removing or renaming one, or changing what UI element it represents, is a breaking change for themes. Adding a hook is non-breaking. State and Variant hooks are stable in name but only appear when their owning component enters that state; do not assume every page renders every hook.
The list is exhaustive for classes styled by default-theme.css. The final
compatibility section is drift-checked but explicitly excluded from the public
API. Emitted-only class names and raw utility classes used inside component
source are not an authoring contract unless they appear in a semantic table on
this page.
Structural wrappers shown in DOM sketches but absent from their accompanying tables provide nesting context only; they are not stable hooks. Structure is still controlled by Flowershow core: these hooks change presentation, not which components render or their order.
Kinds used below:
- Hook — component or semantic element.
- Element — BEM-style child written with
__. - Variant — alternative treatment written with
--. - State — conditional
is-*,has-*, orno-*hook. - Compatibility — styled utility retained for compatibility, not public API.
Related non-class hooks
Callouts use data attributes rather than classes:
[data-callout][data-callout-type="note"](and other callout types)[data-callout-title][data-callout-body]
Scope callout overrides below .rendered-mdx so they outrank the base
attribute selectors without relying on source order.
Site layout and page shell
Top-level site grid, responsive rails, and shell variants.
DOM shape
.site-layout[.no-nav]
├─ .site-navbar (optional)
├─ .site-body (structural wrapper)
│ ├─ .site-subnav (optional)
│ ├─ .page-hero-container (optional)
│ └─ .layout-inner[.has-sidebar | .has-toc | .has-sidebar-and-toc]
│ ├─ .layout-inner-left
│ ├─ .layout-inner-center (structural wrapper)
│ │ └─ main.page-main (structural wrapper)
│ └─ .layout-inner-right
└─ .site-footer
| Class | Kind |
|---|---|
.layout-inner | Hook |
.layout-inner-left | Hook |
.layout-inner-right | Hook |
.site-body | Hook |
.site-layout | Hook |
Navbar and mobile navigation
Desktop navbar, dropdowns, mobile navigation, theme switch, and visitor controls.
DOM shape
.site-navbar
├─ .site-navbar-inner
│ ├─ .site-navbar-site-name
│ ├─ .site-navbar-links-container
│ │ ├─ .site-navbar-link
│ │ └─ .site-navbar-dropdown
│ └─ .site-navbar-mobile-nav-button
└─ .mobile-nav
.site-navbar.site-navbar--custom (_navbar.html)
└─ .site-navbar-inner
├─ .site-navbar-custom
├─ .site-navbar-search-container (optional)
└─ .site-navbar-theme-switch-container (optional)
| Class | Kind |
|---|---|
.mobile-nav | Hook |
.mobile-nav-cta-button | Hook |
.mobile-nav-dropdown | Hook |
.mobile-nav-dropdown-icon | Hook |
.mobile-nav-dropdown-item | Hook |
.mobile-nav-dropdown-panel | Hook |
.mobile-nav-dropdown-trigger | Hook |
.mobile-nav-link | Hook |
.mobile-nav-links-container | Hook |
.mobile-nav-social-link | Hook |
.mobile-nav-social-links-container | Hook |
.mobile-nav-tree | Hook |
.mobile-nav-tree-container | Hook |
.mobile-nav-tree-item-children | Hook |
.mobile-nav-tree-item-icon | Hook |
.mobile-nav-tree-item-self | Hook |
.site-navbar | Hook |
.site-navbar–custom | Variant |
.site-navbar-cta-button | Hook |
.site-navbar-custom | Hook |
.site-navbar-dropdown | Hook |
.site-navbar-dropdown-icon | Hook |
.site-navbar-dropdown-item | Hook |
.site-navbar-dropdown-panel | Hook |
.site-navbar-dropdown-trigger | Hook |
.site-navbar-inner | Hook |
.site-navbar-link | Hook |
.site-navbar-links-container | Hook |
.site-navbar-mobile-nav-button | Hook |
.site-navbar-mobile-nav-icon | Hook |
.site-navbar-search-container | Hook |
.site-navbar-site-logo | Hook |
.site-navbar-site-name | Hook |
.site-navbar-site-title | Hook |
.site-navbar-social-link-icon | Hook |
.site-navbar-social-links-container | Hook |
.site-navbar-theme-switch-container | Hook |
.theme-switch | Hook |
.theme-switch-icon | Hook |
.visitor-logout-button | Hook |
.visitor-logout-button-icon | Hook |
Subnavigation, sidebar, and site tree
Breadcrumbs, desktop site tree, and the small-screen sidebar drawer.
DOM shape
.site-subnav
├─ .site-subnav-breadcrumbs
└─ .site-subnav-menu-button
.layout-inner-left
└─ .site-sidebar
└─ .site-tree
body (dialog portal)
└─ .sidebar-drawer-panel
└─ .site-tree
| Class | Kind |
|---|---|
.sidebar-drawer-backdrop | Hook |
.sidebar-drawer-close | Hook |
.sidebar-drawer-close-icon | Hook |
.sidebar-drawer-header | Hook |
.sidebar-drawer-panel | Hook |
.site-sidebar | Hook |
.site-subnav | Hook |
.site-subnav-menu-button | Hook |
.site-subnav-menu-icon | Hook |
.site-tree | Hook |
.site-tree-disclosure-panel | Hook |
.site-tree-item | Hook |
.site-tree-item-children | Hook |
.site-tree-item-icon | Hook |
.site-tree-item-self | Hook |
.site-tree-item-text | Hook |
Page header, hero, and rendered content
Page identity, hero content, Markdown body, code controls, images, and task-list hooks.
DOM shape
.page-hero-container
└─ .page-hero[.has-image | .image-full]
main.page-main (structural wrapper)
├─ .page-header
│ ├─ .page-header-title
│ ├─ .page-header-description
│ └─ .page-header-metadata-container
└─ .page-body (structural wrapper)
└─ .rendered-mdx[.is-plain]
| Class | Kind |
|---|---|
.contains-task-list | Hook |
.heading-link | Hook |
.page-header | Hook |
.page-header-actions | Hook |
.page-header-author-avatar | Hook |
.page-header-author-name | Hook |
.page-header-authors-avatars-container | Hook |
.page-header-authors-container | Hook |
.page-header-breadcrumb-item | Hook |
.page-header-breadcrumb-link | Hook |
.page-header-breadcrumb-separator | Hook |
.page-header-breadcrumbs | Hook |
.page-header-breadcrumbs-list | Hook |
.page-header-date | Hook |
.page-header-date-icon | Hook |
.page-header-description | Hook |
.page-header-image | Hook |
.page-header-image-container | Hook |
.page-header-metadata-container | Hook |
.page-header-reading-time | Hook |
.page-header-reading-time-icon | Hook |
.page-header-tags | Hook |
.page-header-title | Hook |
.page-header-title-row | Hook |
.page-hero | Hook |
.page-hero-container | Hook |
.page-hero-content | Hook |
.page-hero-content-container | Hook |
.page-hero-cta | Hook |
.page-hero-ctas-container | Hook |
.page-hero-description | Hook |
.page-hero-image | Hook |
.page-hero-image-container | Hook |
.page-hero-title | Hook |
.pre-container | Hook |
.pre-copy-button | Hook |
.pre-icon | Hook |
.pre-sr | Hook |
.rendered-mdx | Hook |
Post pages
Individual posts: dated pages in a blog/ or posts/ folder, pages of a folder listed by its own layout: list page that is a dated feed, or pages with layout: post. The header keeps the .page-header-* classes; tags move to the article footer. Custom properties: --post-max-width, --post-wide-max-width, --post-body-size, --post-hero-max-height, --post-hero-radius, --post-avatar-size, --post-meta-color, --post-eyebrow-color, --post-rule-color.
DOM shape
.layout-inner-center.post-layout
└─ main.page-main
├─ article.post-page[data-layout="post"]
│ ├─ header.page-header.post-header
│ │ ├─ nav.page-header-breadcrumbs.post-eyebrow (folders above the post)
│ │ ├─ h1.page-header-title
│ │ ├─ p.page-header-description.post-dek
│ │ ├─ .page-header-metadata-container.post-byline[data-avatars]
│ │ │ ├─ .page-header-authors-container.post-byline-authors
│ │ │ │ ├─ .page-header-authors-avatars-container.post-byline-avatars > img.page-header-author-avatar.post-byline-avatar
│ │ │ │ └─ .page-header-authors-names-container.post-byline-names > .page-header-author-name
│ │ │ └─ .post-byline-meta > .page-header-date > time, .page-header-reading-time
│ │ └─ figure.post-hero > img.post-hero-img, figcaption.post-hero-caption
│ ├─ .page-body > .rendered-mdx#mdxpage
│ └─ footer.post-footer > .page-header-tags.post-tags > .tag-pill
├─ nav.post-nav > a.post-nav-link.post-nav-link--prev | --next > .post-nav-label, .post-nav-title (or .post-nav-placeholder)
└─ section.post-read-more > h2.post-read-more-title, section.list-component.list-component--grid (the listing grid cards)
| Class | Kind |
|---|---|
.post-byline | Hook |
.post-byline-authors | Hook |
.post-byline-avatars | Hook |
.post-byline-meta | Hook |
.post-byline-names | Hook |
.post-dek | Hook |
.post-eyebrow | Hook |
.post-footer | Hook |
.post-header | Hook |
.post-hero | Hook |
.post-hero-caption | Hook |
.post-hero-img | Hook |
.post-layout | Hook |
.post-nav | Hook |
.post-nav-label | Hook |
.post-nav-link | Hook |
.post-nav-link–next | Variant |
.post-nav-placeholder | Hook |
.post-nav-title | Hook |
.post-page | Hook |
.post-read-more | Hook |
.post-read-more-title | Hook |
.post-tags | Hook |
Table of contents
The page ToC rail and recursively nested ToC items.
DOM shape
.page-toc-container
└─ .toc
├─ .toc-title
└─ .toc-item
├─ .toc-item-self
└─ .toc-item-children
| Class | Kind |
|---|---|
.page-toc-container | Hook |
.toc | Hook |
.toc-item | Hook |
.toc-item-children | Hook |
.toc-item-self | Hook |
.toc-title | Hook |
Lists, cards, skeletons, and pagination
Collection/blog listing cards, empty and error states, loading placeholders, and pagination controls.
DOM shape
.layout-inner-center.listing-layout[data-view] (page-level listings: the page column)
└─ main.page-main > div.listing-page[data-view] (layout: list, zero-config blog/posts)
├─ header.page-header > .page-header-title-row > h1.page-header-title, .page-header-actions > a.listing-page-feed-link > svg.listing-page-feed-icon, span.listing-page-feed-label (feed link when the site has RSS on)
└─ .page-body > .rendered-mdx#mdxpage > .listing-page-intro (the page's own text), .listing-page-listing (the rule, then the listing)
section.list-component[.list-component--list | --grid | --compact | --people | --magazine][data-view][data-media][data-media-side][data-ratio][data-listing-notes] (div without data-view for legacy <List />)
├─ .list-component-magazine-top[data-layout=solo|pair|trio|lead-more|full] (magazine, page 1)
│ ├─ article.list-component-item.list-component-item--featured (the hero)
│ ├─ .list-component-magazine-side > article.list-component-item.list-component-item--card
│ └─ .list-component-magazine-more > h2.list-component-section-heading, article.list-component-item.list-component-item--brief
├─ .list-component-magazine-rest (magazine: the remaining rows, after h2.list-component-section-heading)
├─ h2.list-component-group-heading (optional, with group)
├─ article.list-component-item[.list-component-item--featured] / .list-component-skeleton-item (legacy only)
│ ├─ .list-component-item-media > a.list-component-item-media-link > img.list-component-item-media-img (item image or defaultImage)
│ │ | .list-component-item-media.list-component-item-media--placeholder[aria-hidden] (empty accent-tinted tile: grid card, or list/magazine row when at least half the items have an image; off with defaultImage: none)
│ │ | .list-component-item-media.list-component-item-media--placeholder[aria-hidden] > span.list-component-item-initials (people view, no photo)
│ └─ .list-component-item-content
│ ├─ .list-component-item-eyebrow > span
│ ├─ .list-component-item-headline > a.list-component-item-headline-link
│ ├─ .list-component-item-summary
│ ├─ .list-component-item-meta
│ │ ├─ time.list-component-item-date
│ │ ├─ .list-component-item-authors > .list-component-item-avatars > img.list-component-item-author-avatar, .list-component-item-author, .list-component-item-authors-more
│ │ └─ .list-component-item-meta-value[data-field]
│ └─ .list-component-item-footnote (legacy only)
└─ nav.list-component-pagination
├─ .list-component-pagination-nav > .list-component-pagination-button[.is-disabled]
└─ .list-component-pagination-pages
.list-component-empty (no matching pages)
.list-component-error[.list-component-error--block] (items failed to load / invalid block)
| Class | Kind |
|---|---|
.list-component | Hook |
.list-component–compact | Variant |
.list-component–grid | Variant |
.list-component–list | Variant |
.list-component–magazine | Variant |
.list-component–people | Variant |
.list-component-empty | Hook |
.list-component-error | Hook |
.list-component-error–block | Variant |
.list-component-error-keys | Hook |
.list-component-error-list | Hook |
.list-component-error-title | Hook |
.list-component-group-heading | Hook |
.list-component-item | Hook |
.list-component-item–brief | Variant |
.list-component-item–card | Variant |
.list-component-item–featured | Variant |
.list-component-item-author | Hook |
.list-component-item-author-avatar | Hook |
.list-component-item-authors | Hook |
.list-component-item-authors-more | Hook |
.list-component-item-avatars | Hook |
.list-component-item-content | Hook |
.list-component-item-date | Hook |
.list-component-item-eyebrow | Hook |
.list-component-item-footnote | Hook |
.list-component-item-headline | Hook |
.list-component-item-headline-link | Hook |
.list-component-item-initials | Hook |
.list-component-item-media | Hook |
.list-component-item-media–placeholder | Variant |
.list-component-item-media-img | Hook |
.list-component-item-media-link | Hook |
.list-component-item-meta | Hook |
.list-component-item-meta-value | Hook |
.list-component-item-summary | Hook |
.list-component-magazine-more | Hook |
.list-component-magazine-rest | Hook |
.list-component-magazine-side | Hook |
.list-component-magazine-top | Hook |
.list-component-pagination | Hook |
.list-component-pagination-button | Hook |
.list-component-pagination-button–next | Variant |
.list-component-pagination-button–prev | Variant |
.list-component-pagination-button-icon | Hook |
.list-component-pagination-button-icon–next | Variant |
.list-component-pagination-button-icon–prev | Variant |
.list-component-pagination-ellipsis | Hook |
.list-component-pagination-nav | Hook |
.list-component-pagination-nav–end | Variant |
.list-component-pagination-page-button | Hook |
.list-component-pagination-page-button–current | Variant |
.list-component-pagination-page-button–other | Variant |
.list-component-pagination-pages | Hook |
.list-component-section-heading | Hook |
.list-component-skeleton | Hook |
.list-component-skeleton-content | Hook |
.list-component-skeleton-eyebrow | Hook |
.list-component-skeleton-footnote | Hook |
.list-component-skeleton-headline | Hook |
.list-component-skeleton-item | Hook |
.list-component-skeleton-media | Hook |
.list-component-skeleton-media-placeholder | Hook |
.list-component-skeleton-summary | Hook |
.listing-layout | Hook |
.listing-page | Hook |
.listing-page-feed-icon | Hook |
.listing-page-feed-link | Hook |
.listing-page-intro | Hook |
.listing-page-listing | Hook |
Tag index and per-tag pages
Generated navigation pages for the /tags index and each /tags/{tag} listing, plus the inline tag pill emitted in rendered content.
DOM shape
.tags-page (structural wrapper)
├─ .tags-page-header
│ └─ .tags-page-title
├─ .tags-page-empty (empty state)
├─ ul.tag-index (/tags index)
│ └─ .tag-index-item
│ ├─ .tag-pill
│ └─ .tag-index-count
└─ ol.tag-page-list (/tags/{tag})
└─ .tag-page-list-item
└─ .tag-page-list-description
| Class | Kind |
|---|---|
.tag-index | Hook |
.tag-index-count | Hook |
.tag-index-item | Hook |
.tag-page-list | Hook |
.tag-page-list-description | Hook |
.tag-page-list-item | Hook |
.tag-pill | Hook |
.tags-page-empty | Hook |
.tags-page-header | Hook |
.tags-page-title | Hook |
Changelog
Built-in changelog timeline for changelog/ folders (or folders with layout: changelog), single CHANGELOG.md files (or pages with layout: changelog), and the single-entry page.
DOM shape
.changelog
├─ .changelog-header
│ ├─ .changelog-title
│ └─ .changelog-intro
├─ ol.changelog-entries
│ └─ li.changelog-entry[.is-unreleased]
│ ├─ .changelog-entry-meta
│ │ └─ .changelog-entry-meta-inner
│ │ ├─ .changelog-entry-date
│ │ ├─ .changelog-entry-compare (CHANGELOG.md)
│ │ ├─ .changelog-entry-version
│ │ └─ .changelog-entry-authors
│ │ └─ .changelog-entry-author
│ └─ .changelog-entry-content
│ ├─ .changelog-entry-title
│ ├─ .changelog-entry-description
│ ├─ .changelog-entry-media
│ └─ .changelog-entry-body.rendered-mdx
└─ .changelog-pagination
└─ .changelog-pagination-inner
└─ .changelog-pagination-count
article.changelog-single (entry page)
├─ .changelog-back
├─ .changelog-entry-meta
└─ .changelog-entry-title … .changelog-entry-body
.changelog-entry-nav
├─ .changelog-entry-nav-older
└─ .changelog-entry-nav-newer
| Class | Kind |
|---|---|
.changelog | Hook |
.changelog-back | Hook |
.changelog-entries | Hook |
.changelog-entry | Hook |
.changelog-entry-author | Hook |
.changelog-entry-authors | Hook |
.changelog-entry-body | Hook |
.changelog-entry-compare | Hook |
.changelog-entry-content | Hook |
.changelog-entry-date | Hook |
.changelog-entry-description | Hook |
.changelog-entry-media | Hook |
.changelog-entry-meta | Hook |
.changelog-entry-meta-inner | Hook |
.changelog-entry-nav | Hook |
.changelog-entry-nav-newer | Hook |
.changelog-entry-title | Hook |
.changelog-entry-version | Hook |
.changelog-header | Hook |
.changelog-intro | Hook |
.changelog-pagination | Hook |
.changelog-pagination-count | Hook |
.changelog-pagination-inner | Hook |
.changelog-single | Hook |
.changelog-title | Hook |
Search button and modal
Search launch control, modal shell, result states, and hit content.
DOM shape
.search-button
.search-modal
├─ .search-modal-backdrop
└─ .search-modal-card-container
└─ .search-modal-card
├─ .search-modal-input-container
└─ .search-modal-results
| Class | Kind |
|---|---|
.search-button | Hook |
.search-icon | Hook |
.search-modal | Hook |
.search-modal-backdrop | Hook |
.search-modal-card | Hook |
.search-modal-card-container | Hook |
.search-modal-close-button | Hook |
.search-modal-close-icon | Hook |
.search-modal-error-icon | Hook |
.search-modal-error-icon-text | Hook |
.search-modal-highlight | Hook |
.search-modal-hit-content | Hook |
.search-modal-hit-link | Hook |
.search-modal-hit-title | Hook |
.search-modal-hits-item | Hook |
.search-modal-hits-list | Hook |
.search-modal-input | Hook |
.search-modal-input-container | Hook |
.search-modal-loading-spinner | Hook |
.search-modal-results | Hook |
.search-modal-results-container | Hook |
.search-modal-stalled-spinner | Hook |
.search-modal-status-container | Hook |
.search-modal-status-content | Hook |
.search-modal-status-icon | Hook |
.search-modal-status-message | Hook |
.search-modal-status-submessage | Hook |
.search-placeholder | Hook |
.search-shortcut-hint | Hook |
Footer
Publication identity, navigation groups, social links, and copyright, or a custom footer rendered from _footer.html (Premium).
DOM shape
.site-footer
└─ .site-footer-inner
└─ .site-footer-content-grid
├─ .site-footer-publication-section
└─ .site-footer-navigation-section
.site-footer.site-footer--custom (_footer.html)
└─ .site-footer-inner
└─ .site-footer-custom
| Class | Kind |
|---|---|
.site-footer | Hook |
.site-footer-content-grid | Hook |
.site-footer-copyright | Hook |
.site-footer-custom | Hook |
.site-footer-inner | Hook |
.site-footer-navigation-grid | Hook |
.site-footer-navigation-group | Hook |
.site-footer-navigation-link | Hook |
.site-footer-navigation-list | Hook |
.site-footer-navigation-section | Hook |
.site-footer-navigation-title | Hook |
.site-footer-publication-name | Hook |
.site-footer-publication-section | Hook |
.site-footer-social-icon | Hook |
.site-footer-social-link | Hook |
.site-footer-social-links | Hook |
Backlinks, edit controls, and comments
Blocks rendered after the main page content.
DOM shape
.layout-inner-center (structural wrapper)
├─ main.page-main (structural wrapper)
├─ .page-edit-button-container
├─ .page-backlinks-container
│ └─ .page-backlinks-list
└─ .page-comments-container
| Class | Kind |
|---|---|
.page-backlinks-container | Hook |
.page-backlinks-item | Hook |
.page-backlinks-list | Hook |
.page-backlinks-title | Hook |
.page-comments-container | Hook |
.page-edit-button | Hook |
.page-edit-button-container | Hook |
Graph, canvas, PDF, image lightbox, and media embeds
Graph panels/modals and document/media rendering surfaces.
DOM shape
.graph-mini-panel / .graph-modal
.canvas-node-content
.image-lightbox-trigger (zoomable image)
.image-lightbox (dialog)
.pdf-viewer
├─ .pdf-header
└─ .pdf-scroll-area
└─ .pdf-page
| Class | Kind |
|---|---|
.canvas-control-btn | Hook |
.canvas-controls | Hook |
.canvas-fullwidth | Hook |
.canvas-node | Hook |
.canvas-node-content | Hook |
.canvas-page | Hook |
.canvas-world | Hook |
.graph-mini-panel | Hook |
.graph-mini-panel__action-btn | Element |
.graph-mini-panel__actions | Element |
.graph-mini-panel__label | Element |
.graph-mini-panel–loading | Variant |
.graph-modal | Hook |
.graph-modal__close | Element |
.graph-modal__header | Element |
.graph-modal__inner | Element |
.graph-modal__title | Element |
.image-lightbox | Hook |
.image-lightbox-spinner | Hook |
.image-lightbox-trigger | Hook |
.pdf-error | Hook |
.pdf-filename | Hook |
.pdf-header | Hook |
.pdf-loading | Hook |
.pdf-page | Hook |
.pdf-page-count | Hook |
.pdf-scroll-area | Hook |
.pdf-viewer | Hook |
Error and not-found pages
Public error cards, diagnostic stacks, and 404 presentation.
DOM shape
.error-page / .not-found
└─ *-inner
├─ *-title
├─ *-subtitle
└─ *-description
| Class | Kind |
|---|---|
.error-card | Hook |
.error-card-icon | Hook |
.error-card-link | Hook |
.error-card-message | Hook |
.error-card-stack | Hook |
.error-card-title | Hook |
.error-page | Hook |
.error-page-description | Hook |
.error-page-inner | Hook |
.error-page-subtitle | Hook |
.error-page-title | Hook |
.not-found | Hook |
.not-found-description | Hook |
.not-found-hint | Hook |
.not-found-inner | Hook |
.not-found-subtitle | Hook |
.not-found-title | Hook |
Shared states and layout variants
Conditional presence, open/current, image, and layout modifiers.
DOM shape
Owning semantic hook
└─ .is-* / .has-* / .no-* / .image-full
| Class | Kind | Owner |
|---|---|---|
.has-image | State | .page-hero |
.has-sidebar | State | .layout-inner |
.has-sidebar-and-toc | State | .layout-inner |
.has-toc | State | .layout-inner |
.image-full | Variant | .page-hero |
.is-canvas | State | undefined |
.is-collapsible | State | .site-tree-item-self / .mobile-nav-tree-item-self |
.is-current | State | .site-tree-item-self / .mobile-nav-tree-item-self |
.is-disabled | State | .list-component-pagination-button |
.is-open | State | navigation dropdowns and collapsible tree items |
.is-plain | State | .rendered-mdx |
.is-scrolled | State | .site-navbar |
.is-unreleased | State | .changelog-entry |
.no-nav | State | .site-layout |
Compatibility utilities (not public API)
Selectors retained for exhaustive drift tracking but excluded from the semantic theme-author contract.
CSS layer
@layer utilities
├─ .prose
└─ .overflow-hidden
| Class | Kind |
|---|---|
.overflow-hidden | Compatibility |
.prose | Compatibility |
Generated by node scripts/theme-class-reference.mjs --write. Run
pnpm docs:theme-classes:check to verify that this page matches the current
stylesheet.