Componentsv2.189.1
Iconsv1.19.0
MCPv0.8.62
Tokensv0.34.3

A Panel wraps related content, sometimes separated by borders, within a minimally-styled container.

Anatomy

  1. Container: Wraps all child content. Styles include rounded borders and default padding.
  2. Header (optional): Includes the title, optional description, and actions.
  3. Icon button (optional): Supplementary action the user can take.
  4. Secondary button (optional): Alternative action the user can take.
  5. Primary button (optional): Recommended action the user can take.
  6. Content area: Panel content. Can be divided into sections and separated with borders.

Guidelines

When to use

Panels serve as the primary surface component used for grouping related content or actions on the page. Bordered containers organize content neatly into visually distinct sections, making pages easier for users to navigate and understand.

Consider Panels as containers for the following use cases:

  • Content grouping: Settings pages, detail views, and dashboards use Panels to organize related information into scannable blocks.
  • Data presentation: Tables, lists, and charts are commonly wrapped inside a Panel to establish a clear container with optional headers and actions.
  • Forms and configuration: Panels provide structure for form sections, especially when a page contains multiple form groups.

Panel vs Card

Panels and Cards are visually similar components used to group related information together. However, it's important to understand the difference as they are not interchangeable:

  • Panels are inline structural containers that organize page content into bordered sections.
  • Cards are smaller, self-contained surfaces often used for selectable or clickable items within a grid or list.

Best practices

Using section borders

To elevate the user experience, enable borders to cleanly separate sections for easier understanding. A common use case would be separating form sections.

Profile details

Notification preferences

Do: Use section borders to visually separate groups within a panel.

Loading and empty states

When no data is available or loading indicators must be shown, keep Panels intact for a consistent layout experience.

Service accounts

No service accounts found.

Do: Maintain Panels when loading or empty states are necessary.

No service accounts found.

Don't: Remove the Panel when there's no data.

Configurations

The Panel's internal grid allows the flexibility of its subcomponents to be used in any way while letting it maintain a consistent visual structure.

See the most common Panel configurations below.

API keys

These keys allow you to send data to Customer.io's API.

Key list content

Header and content

The most common configuration includes a header with a title, optional description, and actions above a single content section. This layout is ideal for settings panels, detail views, and data tables.

Data out

Events sent to this destination over the selected period.

Filter controls

Chart or table content

Multiple sections

Multiple sections group distinct content areas within a single panel. This layout is common for analytics cards with filter controls above charts or tables, and settings pages with separate form groups.

Event settings

Select the events you want to send from this source.

Form content

Header, content, and footer

Actions are placed within the footer below the main content. This layout is preferred for forms or multi-step flows within modals where primary actions are placed at the bottom of the container.

Standalone content that only needs a bordered container.

Content only

Panels may be built with only body content. This configuration is best used for wrapping full-width content such as tables, authentication forms, or standalone content blocks.

Appearance

Borders

Borders visually divide Panel sections for a more organized look and feel. Borders are enabled either on the Panel as a whole or individually by section.

First section

Second section

Third section

Borders

Enabling section borders adds a separator between each section, making distinct content areas easier to visually scan.

First section

Second section

Third section

No borders

Without borders, section padding collapses into a single gap, creating a smooth transition between content areas.

Inset content

Inset extends content edge-to-edge within the Panel by ignoring the default padding. Use it for full-width elements like tables, images, or colored backgrounds that should bleed to the Panel edges. When placed first or last, it inherits the Panel's border radius.

Activity log

Full-width table or content area

Inset

Insets are best used for full-bleed content.

Padding

Section padding is set by default but can be disabled with a component prop. Disabling section padding will allow its content to sit flush against its edges, similar to an inset. This can be used to individually manage a single section's padding.

This section has default padding.

Padding

Section padding by default keeps content away from the Panel's edges.

This section has no padding.

No padding

Disabling padding lets content extend to the panel edges. Useful for tables, lists, or other elements that handle their own spacing.

Content

Action labels

Action labels should be direct about what action will take place when activated. Use the Panel title's noun to reinforce the label.

Service accounts

Account list

Do: Use direct verbs or verb phrases.

Descriptions

Descriptions add additional information to support the title. They're best used to explain the Panel's purpose or provide guidance.

Sending domains

Verified domains used for email delivery.

Domain list

Do: Descriptions should add context that supplements the title.

Sending domains

Your sending domains.

Domain list

Don't: Descriptions should not repeat the title.

Titles

Panel titles should be short nouns or noun phrases that best describe the content. Avoid verbs or action-oriented titles. The title explains what the panel contains, not what the user should do.

API keys

Manage API keys for this workspace.

Key list

Do: Use nouns or noun phrases to describe the content.

Manage your API keys

Create, edit, and delete API keys for this workspace.

Key list

Don't: Use verbs to tell the user what actions to take.