HomeGetting StartedColor SystemTypographySpacingIconographyLayoutInstallationUsageAngularBlazorReactSvelteVueThemingTypographyCustomizationCSS-Only ComponentsFormsIconsIllustrationsAccessibilityGlobal ConfigurationTailwind CSSSass LibraryForge MCP ServerDropdown OptionsFocus Indicator ClippingAll componentsButtonButton AreaChipFloating Action ButtonIcon ButtonSplit ButtonAutocompleteButton ToggleCalendarCheckboxChip FieldColor PickerDate PickerDate Range PickerFile PickerLabelRadioSelectSliderSwitchText FieldTime PickerApp BarApp LauncherDrawerMenuPaginatorSkip LinkStepperTabsView SwitcherAccordionApp LayoutCardDividerExpansion PanelScaffoldSplit ViewStackStructured CardToolbarBadgeBannerBusy IndicatorCircular ProgressDialogInline MessageLinear ProgressPage StateSkeletonToastTooltipAvatarIconKeyLabel ValueListMeterSecretTableTimelineTimestampTreeKeyboard ShortcutPopoverIntroductionColorTypographySpacingShapeBorderElevationLayeringAnimationUsageIcon LibraryBlocksRoadmapChangelogBlog

App Bar

App bars are headers used to display branding, navigation, and actions at the top of an application.

Overview

The app bar serves as a user’s primary navigation hub, containing everything needed to navigate within the current application, access other applications, and customize their experience. It provides persistent access to essential functionality including application identity, search capabilities, notifications, help resources, and user account management across all application contexts.

The app bar maintains consistent placement and functionality across different screen sizes and device types, ensuring users always have access to core navigation and utility functions regardless of their current location within the application.

Usage

forge-app-bar lays out branding and top-level actions through its logo, title, start, center, and end slots, plus elevation, theme, and themeMode. Reserve the start slot for navigation (typically a menu button that opens a drawer), the center slot for app-wide search, and the end slot for a small set of purpose-built buttons: help, notifications, an app launcher, and the user’s profile.

Rules

Do
Maintain consistent app bar presence across all application screens.Keep the menu button visible at every screen size for apps with a dismissible navigation drawer.Reserve center-slot search for apps that are primarily search-driven; place search near the component it searches otherwise.Order end-slot actions consistently: help, notifications, app launcher, then profile.
Don't
Don't crowd the end slot with more actions than help, notifications, an app launcher, and profile.Don't duplicate primary navigation in both the app bar and a drawer — pick one place for it.Don't use app bar search for a filter that's local to a single component on the page.Don’t place links in the app bar — use appropriate navigation patterns instead.Don’t place item-specific actions in the app bar — keep them contextual to affected content.Don't put page-specific actions like Save, Edit, Delete, or Submit in the app bar — they go in the page's body header toolbar.

Structure

Place a logo in the logo slot and a title in the title slot (or set titleText directly), navigation in start, search in center, and action buttons in end.

An app bar composed from every slot at once: menu button, logo, search, and end actions.

Theme

Set theme to tint the app bar, and themeMode to inherit (the default, applying that theme globally to the app bar and its children) or scoped (limiting it to just the app bar itself).

A themed app bar, scoped so the theme doesn't leak to the rest of the page.

Theming pitfalls

With the default themeMode="inherit", global theme tokens cascade to every child element — including popovers and dialogs opened from the app bar, which can end up styled with the wrong colors. Switch to themeMode="scoped" to stop that cascade.

Scoping the theme comes with a tradeoff: elements placed directly in the app bar no longer inherit its colors automatically either. Set theme="app-bar" to opt a child back in — but it’s only supported on forge-button, forge-icon-button, and forge-tab-bar. The app bar’s own preset buttons (menu, help, notification) and forge-user-profile already set this for you.

For any other element, reference the app bar’s scoped tokens directly — --forge-app-bar-theme-foreground and --forge-app-bar-theme-background-muted:

forge-app-bar forge-avatar {
  --forge-avatar-background: var(--forge-app-bar-theme-foreground);
  --forge-avatar-color: var(--forge-theme-text-high);
}

forge-app-bar-menu-button is a preset icon button — defaulting to a hamburger icon — for opening navigation from the start slot.

A menu button in the start slot, ready to open a drawer.

forge-app-bar-search wraps a slotted <input> with search styling and an icon, through value, placeholder, and disabled, and fires forge-app-bar-search-input on Enter.

Search in the center slot, styled for the app bar.

Help button

forge-app-bar-help-button is a preset icon button that opens a dropdown menu of options — help links, docs, support contacts.

A help button opening a menu of options.

Notification button

forge-app-bar-notification-button pairs a preset bell icon with a badge, controlled through showBadge, count, dot, and theme.

A notification button showing an unread dot.

User profile

Use forge-user-profile in the end slot to show the signed-in user. It renders an avatar button that opens a popover with their fullName and email, any link-slotted profile links, an optional themeToggle, and a sign-out action, firing forge-user-profile-sign-out when it’s clicked.

Deprecated

forge-app-bar-profile-button is deprecated in favor of forge-user-profile. It remains available but is frozen — no new features, and possible removal in a future release.

A user profile in the end slot, opening a popover with profile links, a theme toggle, and sign out.

App bars are headers used to display branding, navigation, and actions at the top of an application. They typically contain a logo, title, and various action items.

import "@tylertech/forge/app-bar";
Properties
PropertyAttributeTypeDefaultDescription
titleTexttitle-textstring''The text to display in the title.
elevationelevationAppBarElevation'raised'The elevation of the app bar.
themethemeAppBarTheme''The theme of the app bar.
hrefhrefstring''The href that will be used to make the logo and title area a clickable link.
targettargetstring''The `<a>` target of the logo + title area link when `href` is set.
themeModetheme-modeAppBarThemeMode'inherit'Controls how the theme is applied. `inherit` will apply the global theme to the app bar and all child components. `scoped` will only apply the theme to the app bar and not set any global tokens.
Events
NameTypeDescription
forge-app-bar-navigateCustomEvent<void>Fires when the app bar is clicked.
Slots
NameDescription
logoReserved for the brand logo.
titleReserved for the application title. This will overwrite the `titleText` property/attribute.
startPlaces content at the beginning of the app bar.
centerPlaces content in the center of the app bar.
endPlaces content at the end of the app bar.
CSS Parts
NameDescription
::part(root)The root container element.
::part(title)The title element.
CSS Custom Properties
NameDescription
--forge-app-bar-backgroundThe background color of the app bar.
--forge-app-bar-foregroundThe text color of the app bar.
--forge-app-bar-theme-foregroundThe text color of the app bar when using the **scoped theme mode**.
--forge-app-bar-theme-foreground-mutedThe muted text color of the app bar when using the **scoped theme mode**.
--forge-app-bar-z-indexThe `z-index` of the app bar.
--forge-app-bar-elevationThe elevation of the app bar.
--forge-app-bar-heightThe height of the app bar.
--forge-app-bar-row-paddingThe inline padding of the app bar.
--forge-app-bar-logo-gapThe space between the logo and title.
--forge-app-bar-title-paddingThe padding around the title element.
--forge-app-bar-columnsThe grid column track sizes.
--forge-app-bar-transition-durationThe transition duration for animations.
--forge-app-bar-transition-timingThe transition timing function for animations.

Keyboard interaction

Every sub-component slotted into the app bar — menu button, search, help, notifications, profile — needs to be reachable and operable using only the keyboard.

Heading hierarchy

The title slot renders as an <h1> by default. If you override it with your own content, use a real heading element, and keep only one <h1> per page — a new heading hierarchy started deliberately (inside a dialog, for example) is the one exception. The app bar itself renders as a <header> landmark.

Loading Forge chat…