Toolbar

The top and bottom bars of a phone screen: navigation, a title, a search field and actions over the content. Desktop layouts have their own composition, so a toolbar never renders from 768px up.

import { Toolbar, ToolbarLeading, ToolbarTitle, ToolbarTrailing } from "@plexui/vue/components/Toolbar";

Examples

Toolbar is a phone component: under 768px it renders, from 768px up it takes no space. Each example shows the phone view.

Overview

Orders

Order 1024Paid
Order 1025Paid
Order 1026Paid
Order 1027Paid
Order 1028Paid
Order 1029Paid
Order 1030Paid
Order 1031Paid
Order 1032Paid
Order 1033Paid
Order 1034Paid
Order 1035Paid
Order 1036Paid
Order 1037Paid
Order 1038Paid
Order 1039Paid
Order 1040Paid
Order 1041Paid
Order 1042Paid
Order 1043Paid
Order 1044Paid
Order 1045Paid
Order 1046Paid
Order 1047Paid

Titles

titleStyle
titleAlign

Orders

24 orders

Order 1024Paid
Order 1025Paid
Order 1026Paid
Order 1027Paid
Order 1028Paid
Order 1029Paid
Order 1030Paid
Order 1031Paid
Order 1032Paid
Order 1033Paid
Order 1034Paid
Order 1035Paid
Order 1036Paid
Order 1037Paid
Order 1038Paid
Order 1039Paid
Order 1040Paid
Order 1041Paid
Order 1042Paid
Order 1043Paid
Order 1044Paid
Order 1045Paid
Order 1046Paid
Order 1047Paid

Group

Order 1024Paid
Order 1025Paid
Order 1026Paid
Order 1027Paid
Order 1028Paid
Order 1029Paid
Order 1030Paid
Order 1031Paid
Order 1032Paid
Order 1033Paid
Order 1034Paid
Order 1035Paid
Order 1036Paid
Order 1037Paid
Order 1038Paid
Order 1039Paid
Order 1040Paid
Order 1041Paid
Order 1042Paid
Order 1043Paid
Order 1044Paid
Order 1045Paid
Order 1046Paid
Order 1047Paid
Order 1024Paid
Order 1025Paid
Order 1026Paid
Order 1027Paid
Order 1028Paid
Order 1029Paid
Order 1030Paid
Order 1031Paid
Order 1032Paid
Order 1033Paid
Order 1034Paid
Order 1035Paid
Order 1036Paid
Order 1037Paid
Order 1038Paid
Order 1039Paid
Order 1040Paid
Order 1041Paid
Order 1042Paid
Order 1043Paid
Order 1044Paid
Order 1045Paid
Order 1046Paid
Order 1047Paid

Bottom

content

Orders

Order 1024Paid
Order 1025Paid
Order 1026Paid
Order 1027Paid
Order 1028Paid
Order 1029Paid
Order 1030Paid
Order 1031Paid
Order 1032Paid
Order 1033Paid
Order 1034Paid
Order 1035Paid
Order 1036Paid
Order 1037Paid
Order 1038Paid
Order 1039Paid
Order 1040Paid
Order 1041Paid
Order 1042Paid
Order 1043Paid
Order 1044Paid
Order 1045Paid
Order 1046Paid
Order 1047Paid

Background

background

Orders

Order 1024Paid
Order 1025Paid
Order 1026Paid
Order 1027Paid
Order 1028Paid
Order 1029Paid
Order 1030Paid
Order 1031Paid
Order 1032Paid
Order 1033Paid
Order 1034Paid
Order 1035Paid
Order 1036Paid
Order 1037Paid
Order 1038Paid
Order 1039Paid
Order 1040Paid
Order 1041Paid
Order 1042Paid
Order 1043Paid
Order 1044Paid
Order 1045Paid
Order 1046Paid
Order 1047Paid

Disabled

New order

Order 1024Paid
Order 1025Paid
Order 1026Paid
Order 1027Paid
Order 1028Paid
Order 1029Paid
Order 1030Paid
Order 1031Paid
Order 1032Paid
Order 1033Paid
Order 1034Paid
Order 1035Paid
Order 1036Paid
Order 1037Paid
Order 1038Paid
Order 1039Paid
Order 1040Paid
Order 1041Paid
Order 1042Paid
Order 1043Paid
Order 1044Paid
Order 1045Paid
Order 1046Paid
Order 1047Paid

Sheet

Hosts

A toolbar places itself by its parent:

  • In Page, the top bar covers the content below the device's top safe area, and PageContent starts below it. The bottom bar stays below the content, which scrolls under it. Under 768px a top toolbar replaces PageHeader and a bottom toolbar replaces PageFooter, so one page can keep its desktop header and its phone toolbar side by side.
  • In a Dialog Sheet, the top bar starts with the grabber, hides the Sheet's own bar and Close button, and leaves DialogHeader to name the dialog. Its title is hidden from assistive technology there. A bottom bar replaces DialogFooter.

Put the Back button of a phone screen in the toolbar only. A desktop layout shows its own navigation, such as a sidebar or breadcrumbs.

API

Toolbar

PropTypeDefaultDescription
placement"top" | "bottom""top"Top bar with 44px targets, or bottom bar with 48px targets
titleStyle"inline" | "large" | "compact-large" | "compact-medium""inline"Size and place of ToolbarTitle in a top bar
titleAlign"center" | "start""center"Alignment of an inline title. Large and compact titles always start at the leading edge
background"soft" | "hard" | "glass" | "solid""glass" at the top, "soft" at the bottomHow the bar meets the content scrolled under it, see Background. edge is the earlier name of soft
classstring—Class of the bar

All other attributes fall through to the bar.

ToolbarTitle

PropTypeDefaultDescription
subtitlestring—Second, smaller line below the title. The subtitle slot takes precedence
as"h1" | "h2" | "h3""h1"Heading level of the title

Parts

PartElementPurpose
ToolbarLeading<div>Back, Close or menu controls at the leading edge
ToolbarTitle<h1>Title of the screen, with an optional subtitle
ToolbarContent<div>Middle content: a search field, a main action or a segmented control. fill stretches it across the row
ToolbarGroup<div role="group">Related buttons in one capsule
ToolbarTrailing<div>Actions at the trailing edge

Styling

Buttons, capsules and the search field in a toolbar use the shared mobile glass of iOS 26: a light fill over a frosted backdrop that turns the content under a control into a smudge, an outline that darkens whatever lies under it, a thin rim of light along the top and bottom edges and a sheen darker at the top and lighter at the bottom. At rest the glass casts no shadow; once content is under the bar, it does. Icons take a 24px box in both bars, labels are 17px medium. NavigationButton keeps its own glyph sizes.

Toolbar reads these component tokens. Override them at any scope to restyle it:

  • --toolbar-gutter, --toolbar-bottom-gutter: side padding of the top and bottom bars (default 16px and 28px)
  • --toolbar-top-item-size, --toolbar-bottom-item-size: button and field height (default 44px and 48px)
  • --toolbar-top-item-gap, --toolbar-bottom-item-gap: gap between items (default 10px and 12px)
  • --toolbar-group-padding, --toolbar-group-gap: inner padding and spacing of a capsule in the top bar (default 2px and 12px; 4px and 6px in the bottom bar)
  • --toolbar-padding-bottom: space below the top row (default 10px)
  • --toolbar-sheet-padding-top: space for the grabber in a Sheet (default 16px)
  • --toolbar-bottom-padding-top, --toolbar-bottom-padding-bottom: padding of the bottom bar (default 4px, and the bottom safe area less 6px, at least 16px: the 48px items stand 28px above the screen's edge over the 34px home indicator inset, as in iOS 26 Mail and Contacts)
  • --mobile-glass-background, --mobile-glass-sheen, --mobile-glass-shadow, --mobile-glass-shadow-raised, --mobile-glass-backdrop-filter: glass of the buttons, capsules and search field, at rest and with content under the bar
  • --toolbar-title-font-size, --toolbar-large-title-font-size, --toolbar-medium-title-font-size: title sizes (default 17px, 34px and 22px)
  • --toolbar-large-title-gap: space between the row of controls and a large title (default 21px)
  • --toolbar-icon-size, --toolbar-icon-size-sm, --toolbar-search-icon-size: icon boxes of the buttons, of a button with iconSize="sm" and of the search field (default 26px, 23.56px and 23.75px). A symbol with less ink, as PlusLg, takes iconSize="sm", and a search field takes SearchSm, so they draw the 17.67px plus and the 16.33px magnifier of iOS 26
  • --toolbar-search-gutter, --toolbar-search-icon-gap: space before the magnifier and between it and the text (default 10.54px and 6.43px: the magnifier's ink starts 14px into the field and the text's ink at 41.67px)
  • --toolbar-search-font-weight, --toolbar-search-placeholder-color: the search text in Regular (400) and its placeholder in the secondary label color (default light-dark(var(--alpha-40), var(--alpha-60)))
  • --toolbar-background: color of the fading edge and of a hard, glass or solid bar (defaults to the Sheet or page canvas)
  • --page-bar-hard-line: line of a hard bar (default light-dark(rgb(0 0 0 / 12%), var(--color-border)), the iOS 26 kit's Hard edge)
  • --page-bar-line, --page-bar-veil-opacity: hairline and opacity of a glass bar (default light-dark(rgb(0 0 0 / 10%), var(--color-border)) and light-dark(72%, 60%))
  • --toolbar-prominent-disabled-background, --toolbar-prominent-disabled-color: capsule and label of a disabled prominent action (default light-dark(var(--alpha-12), var(--alpha-20)) and light-dark(var(--gray-0), var(--alpha-30))). A disabled glass button keeps the glass and takes --mobile-label-tertiary