A Panel wraps related content, sometimes separated by borders, within a minimally-styled container.
PanelHeader (with PanelTitle, optional PanelDescription, and PanelActions) above a single PanelSection. Use for settings panels, detail views, and data tables.PanelHeader above two or more PanelSections. Use for analytics with filter controls above a chart or table, and settings pages with separate form groups.PanelFooter below the content. Use for forms or multi-step flows within modals where primary actions sit at the bottom.PanelSection with no header. Use for full-width content such as tables, authentication forms, or standalone content blocks.withSectionBorders) on the Panel to add a separator between each section, making distinct content areas easier to scan. Use them to cleanly divide form sections.PanelInset for full-bleed content that extends edge-to-edge by ignoring the Panel's default padding — tables, images, or colored backgrounds. When placed first or last, it inherits the Panel's border radius.withPadding={false} on PanelSection) to let content sit flush against the edges, like an inset. Use for tables, lists, or elements that manage their own spacing.PanelHeader, PanelSection, PanelFooter, PanelInset, PanelTitle, PanelDescription, and PanelActions.PanelTitle renders a Heading (defaults to level="3", color="bold"). PanelDescription renders a Paragraph (defaults to variant="secondary"). PanelActions renders a ButtonGroup with groupVariant="spaced".PanelHeader and PanelFooter are specialized PanelSection wrappers with layout styling — they accept the same withBorder and withPadding props.PanelSection renders a PanelInset plus padding and border classes. withPadding={false} drops the padding class, making the section behave like a bare PanelInset.withSectionBorders on Panel propagates through context to every descendant PanelSection, PanelHeader, and PanelFooter. Override per section with withBorder on the individual section.withTabs on Panel applies a negative top margin and removes the top-left border radius to visually attach the Panel to a Tabs component above it.backgroundColor="base".as (default "div"; PanelTitle defaults to a heading element, PanelDescription to "p").children. Ember: yield content in the default block, prefix component names with Pluma (<PlumaPanel>, <PlumaPanelHeader>, <PlumaPanelSection>), and pass args with @ syntax (@withSectionBorders={{true}}).