Skip to main content

Panel

A bordered surface for one subject, with a head and a body.

airflow_prod pipeline failed on its last run 12 min ago
<mm-panel heading="Needs attention" icon="notifications" count="3" link-href="/attention">
<mm-list>
<mm-list-item href="/pipelines/airflow_prod">
<mm-status-pill slot="start" state="failed"></mm-status-pill>
airflow_prod pipeline failed on its last run
<mm-text slot="end" variant="mono-dense" tone="tertiary">12 min ago</mm-text>
</mm-list-item>
</mm-list>
</mm-panel>

Guidance​

Panels group one subject on a page, such as Needs attention, Pipelines or Activity on Home. A panel is mm-surface with a 1px mm-rule border and radius-md, and no shadow: the step from paper to surface is enough. The head has an optional 16px mm-text-3 icon, a 13px/650 title in a real heading (text face, never display), an optional count and one right-aligned "View all" link in ink, underlined on hover and focus.

The body is usually an mm-list or a table, edge to edge (padding="none", the default). Use padding="default" for prose or a form. Never put cards or other panels inside a panel: separate its parts with hairlines or spacing. Nesting one panel in another warns in the console.

loading shows skeleton lines (after 200ms, for at least 400ms) and marks the body busy. empty swaps the body for the empty slot, usually a compact mm-empty-state.

Properties​

PropertyAttributeTypeDefaultDescription
headingheadingstring''The title, rendered in a real heading.
levellevelnumber2Outline level of the title, 1 to 6.
iconiconstring''Leading Material Symbols icon for the head.
countcountnumber | undefinedA count shown after the title, such as the number of items needing attention.
linkHreflink-hrefstring''Href of the head link.
linkLabellink-labelstring''Text of the head link. Defaults to "View all".
paddingpadding'none' | 'default''none'none (default, for lists and tables) or default (space-4 by space-5).
loadingloadingbooleanfalseShows skeleton lines in the body and marks it busy.
emptyemptybooleanfalseShows the empty slot instead of the body.

Slots​

SlotDescription
DefaultThe body: an mm-list, a table or content.
headingThe title, if it needs markup. Otherwise use heading.
linkOne link at the end of the head, if link-href is not enough.
actionsSmall buttons in the head, before the link.
emptyShown instead of the body when empty is set.
footerA footer under a hairline.

CSS parts​

PartDescription
panelThe outer box.
headThe head row.
iconThe head icon.
headingThe mm-heading.
countThe count.
linkThe built-in "View all" link.
bodyThe body.
footerThe footer.

Examples​

Every state of mm-panel in Storybook, with keyboard and screen reader tests.