Skip to content

Detail page layout ​

Header, optional tabs, then a two-column body: main content and a sidebar.

Open in demo
Open in demo

Usage ​

main takes two of three columns and sidebar the third, from the lg breakpoint up. With no sidebar, main takes all three, so a page without one does not sit in two thirds of the screen.

Below lg the two stack, sidebar last.

The main column carries min-w-0. A grid item's automatic minimum size is its min-content width, so one wide child, such as a table with a minimum width, would push the item past its own track and the card would run off the screen instead of the table scrolling inside it.

API ​

Source: src/shared/components/common/pages/DetailPageLayout.vue

Props ​

PropTypeDefaultDescription
titlestring—Forwarded to the page header.

Emits ​

None.

Slots ​

SlotDescription
breadcrumbForwarded to the page header.
descriptionForwarded to the page header.
actionsForwarded to the page header.
tabsBetween the header and the body.
mainThe wide column.
sidebarThe narrow column, rendered as an <aside>.

Accessibility ​

  • The sidebar is a real <aside>, so it is announced as complementary content rather than as more of the page.
  • The main column can shrink, so a wide table scrolls inside it instead of the layout scrolling sideways.