Create

General

Frame

New
Copy page View as Markdown Open in ChatGPT Open in Claude

A muted container that groups panels with a header and footer, separated or stacked.

Usage#

app.component.ts
import { WDS_FRAME } from '@wds/angular/frame';

Examples#

Default#

Frame title Frame description Frame content Frame footer

Separated panels#

Panels are separate cards with a small space between them, which grows with spacing.

Section header Description for the section

Separated panel

Section description

Separated panel

Section description

Stacked panels#

stacked joins adjacent panels into one block: no space, no inner corners and a single border between them.

Section header Description for the section

Stacked panel

Section description

Stacked panel

Section description

Dense#

dense removes the inset around the panels, so they sit flush with the frame border.

Section header Description for the section

Dense panel

Section description

Dense panel

Section description

Without outer border#

variant="ghost" drops the outer border.

No outer border This frame uses variant="ghost" to remove the outer border.

The outer container of this frame has no border, only the background and panels are visible.

Inverse#

variant="inverse" swaps the backgrounds: the frame takes the page background and the panels a muted one.

Inverse The frame takes the page background, the panels a muted one.

Billing

Next invoice on November 1

Usage

12,480 of 20,000 requests this month

Spacing#

spacing sets the padding of the panels, header and footer. The header and footer stay aligned with the panel content.

spacing="xs"

Panel content

Panel content

spacing="sm"

Panel content

Panel content

spacing="default"

Panel content

Panel content

spacing="lg"

Panel content

Panel content

Custom radius#

--wds-frame-radius sets the outer radius. The panel radius follows it, minus the inset, so both corners stay parallel.

Server logs Recent activity and errors

Auth service

Successfully logged in user: admin

Database

Query execution time: 12ms

Storage

Upload complete: image.png

wds-frame-footer holds notes or actions below the panels.

Team members Invite people to collaborate on this project.

Owner

[email protected]

1 of 5 seats used

Invite

Fit#

In a frame with a set height, panels fill the remaining space. fit sizes a panel to its content.

Fit Panels fill the height of the frame unless they have fit.

fit: sized to its content

Fills the remaining height

API References#

wds-frame#

Frame: a muted container that groups panels with an optional header and footer. Panels sit inside the frame's corner (concentric radius); stacked joins them into one block.

Attributes

AttributeTypeDefaultDescription
variantWdsFrameVariant'default'Visual style: inverse swaps the backgrounds of the frame and the panels, ghost drops the outer border.
spacingWdsFrameSpacing'default'Padding of the panels, header and footer, and the space between separated panels.
stackedbooleanfalseJoins adjacent panels into one block: no space, no inner corners, a single border between them.
densebooleanfalseRemoves the inset around the panels: they sit flush with the frame border.

Slots

SlotDescription
(default)wds-frame-header, wds-frame-panel and wds-frame-footer elements.

CSS parts (::part)

PartDescription
frameThe frame container.

CSS custom properties

PropertyDescription
--wds-frame-radiusOuter border radius (default --wds-radius-xl).
--wds-frame-panel-radiusRadius of the panels (default: the outer radius minus the inset).
--wds-frame-gapSpace between the header, panels and footer (default 3px).
--wds-frame-paddingInset of the panels from the frame edge (default 3px).
--wds-frame-backgroundFrame background.
--wds-frame-borderFrame border color.
--wds-frame-panel-backgroundPanel background.
--wds-frame-panel-borderPanel border color.

wds-frame-panel#

Frame panel: a raised card inside wds-frame. Its padding follows the frame's spacing.

Attributes

AttributeTypeDefaultDescription
fitbooleanfalseSizes the panel to its content instead of filling the remaining height of the frame.

Slots

SlotDescription
(default)Panel content.

CSS custom properties

PropertyDescription
--wds-frame-panel-paddingInner padding (by default from the frame's spacing).

wds-frame-header#

Frame header: a title and a description above the panels, aligned with the panel content.

Slots

SlotDescription
(default)wds-frame-title, wds-frame-description or any content.

wds-frame-title#

Frame title: the heading of wds-frame-header.

Attributes

AttributeTypeDefaultDescription
levelnumber3Heading level for screen readers (aria-level).

Slots

SlotDescription
(default)Title text.

wds-frame-description#

Frame description: muted text below wds-frame-title.

Slots

SlotDescription
(default)Description text.

Frame footer: notes or actions below the panels, aligned with the panel content.

Slots

SlotDescription
(default)Footer content.

Accessibility#

Screen reader#

wds-frame is a presentational container: it adds no landmark or role. Wrap it in a <section> with aria-labelledby when it marks a section of the page.

wds-frame-title is a heading (role="heading") with aria-level from level (default 3). Set level so it fits the page outline.

Headings inside panels are your own markup: use the level that follows the frame title.

Keyboard support#

The frame has no keyboard interaction of its own. Controls inside follow the page tab sequence.

Footer