md-toolbar spec card
Identity · when to use / when NOT · decision cues · behavioural contract · do/don't · anti-patterns · full API. Paste into your agent when you're implementing with this component.
A container for controls that stay visible. Icon buttons, buttons, text
fields — optionally paired with a FAB — in two variants: docked
(bottom-anchored, replacing the legacy bottom app bar) and floating
(free-placed, pill-shaped). It implements the WAI-ARIA toolbar pattern, so
the whole cluster of buttons is a single Tab stop.
<!-- index.html <head> — the icon font the components draw from -->
<link rel="stylesheet"
href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap">
<!-- index.html — register the AWC UI elements once -->
<script type="module">
import '@awc-ui/core/define';
</script>
<md-toolbar variant="floating" aria-label="Text formatting" style="width: 100%; max-width: 600px;">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button>
<md-icon-button icon="format_underlined" aria-label="Underline"></md-icon-button>
<md-divider></md-divider>
<md-icon-button icon="format_align_left" aria-label="Align left"></md-icon-button>
<md-icon-button icon="format_align_center" aria-label="Align center"></md-icon-button>
<md-icon-button icon="format_align_right" aria-label="Align right"></md-icon-button>
</md-toolbar>// Icons need the Material Symbols stylesheet in index.html — see Installation.
import { MdDivider, MdIconButton, MdToolbar } from '@awc-ui/react';
export function Demo() {
return (
<>
<MdToolbar variant="floating" aria-label="Text formatting" style={{ width: '100%', maxWidth: '600px' }}>
<MdIconButton icon="format_bold" aria-label="Bold"></MdIconButton>
<MdIconButton icon="format_italic" aria-label="Italic"></MdIconButton>
<MdIconButton icon="format_underlined" aria-label="Underline"></MdIconButton>
<MdDivider></MdDivider>
<MdIconButton icon="format_align_left" aria-label="Align left"></MdIconButton>
<MdIconButton icon="format_align_center" aria-label="Align center"></MdIconButton>
<MdIconButton icon="format_align_right" aria-label="Align right"></MdIconButton>
</MdToolbar>
</>
);
}// Icons need the Material Symbols stylesheet in index.html — see Installation.
// app.module.ts — register the AWC UI elements once
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
import { AwcUiModule } from '@awc-ui/angular';
@NgModule({
imports: [AwcUiModule],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
})
export class AppModule {}
<!-- app.component.html -->
<md-toolbar variant="floating" aria-label="Text formatting" style="width: 100%; max-width: 600px;">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button>
<md-icon-button icon="format_underlined" aria-label="Underline"></md-icon-button>
<md-divider></md-divider>
<md-icon-button icon="format_align_left" aria-label="Align left"></md-icon-button>
<md-icon-button icon="format_align_center" aria-label="Align center"></md-icon-button>
<md-icon-button icon="format_align_right" aria-label="Align right"></md-icon-button>
</md-toolbar><script setup>
// Icons need the Material Symbols stylesheet in index.html — see Installation.
import '@awc-ui/core/define';
</script>
<template>
<md-toolbar variant="floating" aria-label="Text formatting" style="width: 100%; max-width: 600px;">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button>
<md-icon-button icon="format_underlined" aria-label="Underline"></md-icon-button>
<md-divider></md-divider>
<md-icon-button icon="format_align_left" aria-label="Align left"></md-icon-button>
<md-icon-button icon="format_align_center" aria-label="Align center"></md-icon-button>
<md-icon-button icon="format_align_right" aria-label="Align right"></md-icon-button>
</md-toolbar>
</template><script>
// Icons need the Material Symbols stylesheet in index.html — see Installation.
import '@awc-ui/core/define';
</script>
<md-toolbar variant="floating" aria-label="Text formatting" style="width: 100%; max-width: 600px;">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button>
<md-icon-button icon="format_underlined" aria-label="Underline"></md-icon-button>
<md-divider></md-divider>
<md-icon-button icon="format_align_left" aria-label="Align left"></md-icon-button>
<md-icon-button icon="format_align_center" aria-label="Align center"></md-icon-button>
<md-icon-button icon="format_align_right" aria-label="Align right"></md-icon-button>
</md-toolbar>
Already installed? See the
Installation guide for one-time package setup
(core + tokens, fonts). Each tab below shows two patterns for using
md-toolbar in your project: Option A registers every AWC UI
component at once (simplest), Option B imports only this component for
tree-shake-friendly bundles.
<!-- ─── Option A: global registration (all components) ─── -->
<script type="module">
import '@awc-ui/core/define';
</script>
<!-- ─── Option B: single import (tree-shake only md-toolbar) ─── -->
<script type="module">
import '@awc-ui/core/components/md-toolbar';
</script>
<md-toolbar></md-toolbar>// ─── Option A: typed React wrapper (registers all components) ───
// Importing from '@awc-ui/react' calls defineCustomElements() as a
// side effect, so every md-* element becomes available in the browser.
import { MdToolbar } from '@awc-ui/react';
export function Example() {
return <MdToolbar></MdToolbar>;
}
// ─── Option B: single import (tree-shake to only md-toolbar) ───
// Skip the wrapper and use the raw custom element. Smallest bundle,
// but you lose typed props/events on JSX.
import '@awc-ui/core/components/md-toolbar';
export function ExampleTreeShaken() {
return <md-toolbar></md-toolbar>;
}// ─── Option A: schema module (any md-* element accepted) ───
// Pair with `defineCustomElements(window)` in main.ts.
import { Component, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { AwcUiModule } from '@awc-ui/angular';
@Component({
standalone: true,
imports: [AwcUiModule],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
template: `<md-toolbar></md-toolbar>`,
})
export class ExampleComponent {}
// ─── Option B: typed directive (tree-shake friendly) ───
// Pair with `import '@awc-ui/core/components/md-toolbar'` in main.ts.
import { Component } from '@angular/core';
import { MdToolbar } from '@awc-ui/angular';
@Component({
standalone: true,
imports: [MdToolbar],
template: `<md-toolbar></md-toolbar>`,
})
export class ExampleTreeShakenComponent {}<!-- ─── Option A: typed Vue wrapper (registers all components) ─── -->
<script setup lang="ts">
import { MdToolbar } from '@awc-ui/vue';
</script>
<template>
<MdToolbar></MdToolbar>
</template>
<!-- ─── Option B: single import (tree-shake to only md-toolbar) ─── -->
<script setup lang="ts">
import '@awc-ui/core/components/md-toolbar';
</script>
<template>
<md-toolbar></md-toolbar>
</template><!-- ─── Option A: global registration (done once in main entry) ─── -->
<!-- main.ts: -->
<!-- import { defineCustomElements } from '@awc-ui/svelte'; -->
<!-- defineCustomElements(window); -->
<md-toolbar></md-toolbar>
<!-- ─── Option B: single import (tree-shake to only md-toolbar) ─── -->
<script lang="ts">
import '@awc-ui/core/components/md-toolbar';
</script>
<md-toolbar></md-toolbar>docked).floating).| Situation | Use instead |
|---|---|
| Actions that can hide behind a trigger | md-menu |
| The screen’s header and title | md-app-bar |
| Top-level destinations | md-navigation-bar / md-navigation-rail |
| 3+ related actions acting as one unit | md-button-group |
| One primary action alone | md-fab |
| Sibling views inside a screen | md-tabs |
| Need | Setting |
|---|---|
| Bottom bar for a screen’s main actions | variant="docked" (default) |
| A contextual pill near the content | variant="floating" |
| A column of controls | variant="floating" + layout="vertical" |
| A tinted, high-emphasis bar | color="vibrant" |
| Where controls sit along the bar | alignment="start" / "center" / "end" / "space-between" |
| A paired primary action | The fab slot |
| No toolbar semantics at all | container-semantics="generic" |
| Variant | Shape | Use for |
|---|---|---|
docked | Full-width, position: sticky | Default. A screen’s primary actions |
floating | Inline, pill-shaped, hugs its content | Contextual and formatting bars |
<!-- index.html <head> — the icon font the components draw from -->
<link rel="stylesheet"
href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap">
<!-- index.html — register the AWC UI elements once -->
<script type="module">
import '@awc-ui/core/define';
</script>
<div style="display:flex;flex-direction:column;gap:24px;inline-size:100%;">
<md-toolbar variant="docked" aria-label="Docked actions">
<md-icon-button icon="arrow_back" aria-label="Back"></md-icon-button>
<md-icon-button icon="star" aria-label="Star"></md-icon-button>
<md-icon-button icon="share" aria-label="Share"></md-icon-button>
<md-icon-button icon="delete" aria-label="Delete"></md-icon-button>
</md-toolbar>
<md-toolbar variant="floating" aria-label="Floating actions">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button>
<md-icon-button icon="link" aria-label="Insert link"></md-icon-button>
</md-toolbar>
</div>// Icons need the Material Symbols stylesheet in index.html — see Installation.
import { MdIconButton, MdToolbar } from '@awc-ui/react';
export function Demo() {
return (
<>
<div style={{ display: 'flex', flexDirection: 'column', gap: '24px', inlineSize: '100%' }}>
<MdToolbar variant="docked" aria-label="Docked actions">
<MdIconButton icon="arrow_back" aria-label="Back"></MdIconButton>
<MdIconButton icon="star" aria-label="Star"></MdIconButton>
<MdIconButton icon="share" aria-label="Share"></MdIconButton>
<MdIconButton icon="delete" aria-label="Delete"></MdIconButton>
</MdToolbar>
<MdToolbar variant="floating" aria-label="Floating actions">
<MdIconButton icon="format_bold" aria-label="Bold"></MdIconButton>
<MdIconButton icon="format_italic" aria-label="Italic"></MdIconButton>
<MdIconButton icon="link" aria-label="Insert link"></MdIconButton>
</MdToolbar>
</div>
</>
);
}// Icons need the Material Symbols stylesheet in index.html — see Installation.
// app.module.ts — register the AWC UI elements once
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
import { AwcUiModule } from '@awc-ui/angular';
@NgModule({
imports: [AwcUiModule],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
})
export class AppModule {}
<!-- app.component.html -->
<div style="display:flex;flex-direction:column;gap:24px;inline-size:100%;">
<md-toolbar variant="docked" aria-label="Docked actions">
<md-icon-button icon="arrow_back" aria-label="Back"></md-icon-button>
<md-icon-button icon="star" aria-label="Star"></md-icon-button>
<md-icon-button icon="share" aria-label="Share"></md-icon-button>
<md-icon-button icon="delete" aria-label="Delete"></md-icon-button>
</md-toolbar>
<md-toolbar variant="floating" aria-label="Floating actions">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button>
<md-icon-button icon="link" aria-label="Insert link"></md-icon-button>
</md-toolbar>
</div><script setup>
// Icons need the Material Symbols stylesheet in index.html — see Installation.
import '@awc-ui/core/define';
</script>
<template>
<div style="display:flex;flex-direction:column;gap:24px;inline-size:100%;">
<md-toolbar variant="docked" aria-label="Docked actions">
<md-icon-button icon="arrow_back" aria-label="Back"></md-icon-button>
<md-icon-button icon="star" aria-label="Star"></md-icon-button>
<md-icon-button icon="share" aria-label="Share"></md-icon-button>
<md-icon-button icon="delete" aria-label="Delete"></md-icon-button>
</md-toolbar>
<md-toolbar variant="floating" aria-label="Floating actions">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button>
<md-icon-button icon="link" aria-label="Insert link"></md-icon-button>
</md-toolbar>
</div>
</template><script>
// Icons need the Material Symbols stylesheet in index.html — see Installation.
import '@awc-ui/core/define';
</script>
<div style="display:flex;flex-direction:column;gap:24px;inline-size:100%;">
<md-toolbar variant="docked" aria-label="Docked actions">
<md-icon-button icon="arrow_back" aria-label="Back"></md-icon-button>
<md-icon-button icon="star" aria-label="Star"></md-icon-button>
<md-icon-button icon="share" aria-label="Share"></md-icon-button>
<md-icon-button icon="delete" aria-label="Delete"></md-icon-button>
</md-toolbar>
<md-toolbar variant="floating" aria-label="Floating actions">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button>
<md-icon-button icon="link" aria-label="Insert link"></md-icon-button>
</md-toolbar>
</div>color="standard" is the default; vibrant tints the container and is high
emphasis, so use it sparingly.
<!-- index.html <head> — the icon font the components draw from -->
<link rel="stylesheet"
href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap">
<!-- index.html — register the AWC UI elements once -->
<script type="module">
import '@awc-ui/core/define';
</script>
<div style="display:flex;flex-direction:column;gap:24px;inline-size:100%;">
<md-toolbar variant="floating" color="standard" aria-label="Standard">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button variant="filled" icon="add" aria-label="Add"></md-icon-button>
<md-icon-button variant="tonal" toggle icon="star" aria-label="Star"></md-icon-button>
</md-toolbar>
<md-toolbar variant="floating" color="vibrant" aria-label="Vibrant">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button variant="filled" icon="add" aria-label="Add"></md-icon-button>
<md-icon-button variant="tonal" toggle icon="star" aria-label="Star"></md-icon-button>
</md-toolbar>
<md-toolbar variant="docked" color="vibrant" aria-label="Docked vibrant">
<md-icon-button icon="arrow_back" aria-label="Back"></md-icon-button>
<md-icon-button icon="star" aria-label="Star"></md-icon-button>
<md-icon-button icon="share" aria-label="Share"></md-icon-button>
</md-toolbar>
</div>// Icons need the Material Symbols stylesheet in index.html — see Installation.
import { MdIconButton, MdToolbar } from '@awc-ui/react';
export function Demo() {
return (
<>
<div style={{ display: 'flex', flexDirection: 'column', gap: '24px', inlineSize: '100%' }}>
<MdToolbar variant="floating" color="standard" aria-label="Standard">
<MdIconButton icon="format_bold" aria-label="Bold"></MdIconButton>
<MdIconButton variant="filled" icon="add" aria-label="Add"></MdIconButton>
<MdIconButton variant="tonal" toggle icon="star" aria-label="Star"></MdIconButton>
</MdToolbar>
<MdToolbar variant="floating" color="vibrant" aria-label="Vibrant">
<MdIconButton icon="format_bold" aria-label="Bold"></MdIconButton>
<MdIconButton variant="filled" icon="add" aria-label="Add"></MdIconButton>
<MdIconButton variant="tonal" toggle icon="star" aria-label="Star"></MdIconButton>
</MdToolbar>
<MdToolbar variant="docked" color="vibrant" aria-label="Docked vibrant">
<MdIconButton icon="arrow_back" aria-label="Back"></MdIconButton>
<MdIconButton icon="star" aria-label="Star"></MdIconButton>
<MdIconButton icon="share" aria-label="Share"></MdIconButton>
</MdToolbar>
</div>
</>
);
}// Icons need the Material Symbols stylesheet in index.html — see Installation.
// app.module.ts — register the AWC UI elements once
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
import { AwcUiModule } from '@awc-ui/angular';
@NgModule({
imports: [AwcUiModule],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
})
export class AppModule {}
<!-- app.component.html -->
<div style="display:flex;flex-direction:column;gap:24px;inline-size:100%;">
<md-toolbar variant="floating" color="standard" aria-label="Standard">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button variant="filled" icon="add" aria-label="Add"></md-icon-button>
<md-icon-button variant="tonal" toggle icon="star" aria-label="Star"></md-icon-button>
</md-toolbar>
<md-toolbar variant="floating" color="vibrant" aria-label="Vibrant">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button variant="filled" icon="add" aria-label="Add"></md-icon-button>
<md-icon-button variant="tonal" toggle icon="star" aria-label="Star"></md-icon-button>
</md-toolbar>
<md-toolbar variant="docked" color="vibrant" aria-label="Docked vibrant">
<md-icon-button icon="arrow_back" aria-label="Back"></md-icon-button>
<md-icon-button icon="star" aria-label="Star"></md-icon-button>
<md-icon-button icon="share" aria-label="Share"></md-icon-button>
</md-toolbar>
</div><script setup>
// Icons need the Material Symbols stylesheet in index.html — see Installation.
import '@awc-ui/core/define';
</script>
<template>
<div style="display:flex;flex-direction:column;gap:24px;inline-size:100%;">
<md-toolbar variant="floating" color="standard" aria-label="Standard">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button variant="filled" icon="add" aria-label="Add"></md-icon-button>
<md-icon-button variant="tonal" toggle icon="star" aria-label="Star"></md-icon-button>
</md-toolbar>
<md-toolbar variant="floating" color="vibrant" aria-label="Vibrant">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button variant="filled" icon="add" aria-label="Add"></md-icon-button>
<md-icon-button variant="tonal" toggle icon="star" aria-label="Star"></md-icon-button>
</md-toolbar>
<md-toolbar variant="docked" color="vibrant" aria-label="Docked vibrant">
<md-icon-button icon="arrow_back" aria-label="Back"></md-icon-button>
<md-icon-button icon="star" aria-label="Star"></md-icon-button>
<md-icon-button icon="share" aria-label="Share"></md-icon-button>
</md-toolbar>
</div>
</template><script>
// Icons need the Material Symbols stylesheet in index.html — see Installation.
import '@awc-ui/core/define';
</script>
<div style="display:flex;flex-direction:column;gap:24px;inline-size:100%;">
<md-toolbar variant="floating" color="standard" aria-label="Standard">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button variant="filled" icon="add" aria-label="Add"></md-icon-button>
<md-icon-button variant="tonal" toggle icon="star" aria-label="Star"></md-icon-button>
</md-toolbar>
<md-toolbar variant="floating" color="vibrant" aria-label="Vibrant">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button variant="filled" icon="add" aria-label="Add"></md-icon-button>
<md-icon-button variant="tonal" toggle icon="star" aria-label="Star"></md-icon-button>
</md-toolbar>
<md-toolbar variant="docked" color="vibrant" aria-label="Docked vibrant">
<md-icon-button icon="arrow_back" aria-label="Back"></md-icon-button>
<md-icon-button icon="star" aria-label="Star"></md-icon-button>
<md-icon-button icon="share" aria-label="Share"></md-icon-button>
</md-toolbar>
</div><!-- index.html <head> — the icon font the components draw from -->
<link rel="stylesheet"
href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap">
<!-- index.html — register the AWC UI elements once -->
<script type="module">
import '@awc-ui/core/define';
</script>
<md-toolbar variant="floating" color="standard" aria-label="Icon button types">
<md-icon-button variant="standard" icon="format_bold" aria-label="Standard"></md-icon-button>
<md-icon-button variant="outlined" icon="format_italic" aria-label="Outlined"></md-icon-button>
<md-icon-button variant="filled" icon="add" aria-label="Filled"></md-icon-button>
<md-icon-button variant="tonal" toggle icon="star" aria-label="Tonal toggle"></md-icon-button>
<md-icon-button variant="tonal" toggle selected icon="favorite" aria-label="Tonal toggle, selected"></md-icon-button>
</md-toolbar>// Icons need the Material Symbols stylesheet in index.html — see Installation.
import { MdIconButton, MdToolbar } from '@awc-ui/react';
export function Demo() {
return (
<>
<MdToolbar variant="floating" color="standard" aria-label="Icon button types">
<MdIconButton variant="standard" icon="format_bold" aria-label="Standard"></MdIconButton>
<MdIconButton variant="outlined" icon="format_italic" aria-label="Outlined"></MdIconButton>
<MdIconButton variant="filled" icon="add" aria-label="Filled"></MdIconButton>
<MdIconButton variant="tonal" toggle icon="star" aria-label="Tonal toggle"></MdIconButton>
<MdIconButton variant="tonal" toggle selected icon="favorite" aria-label="Tonal toggle, selected"></MdIconButton>
</MdToolbar>
</>
);
}// Icons need the Material Symbols stylesheet in index.html — see Installation.
// app.module.ts — register the AWC UI elements once
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
import { AwcUiModule } from '@awc-ui/angular';
@NgModule({
imports: [AwcUiModule],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
})
export class AppModule {}
<!-- app.component.html -->
<md-toolbar variant="floating" color="standard" aria-label="Icon button types">
<md-icon-button variant="standard" icon="format_bold" aria-label="Standard"></md-icon-button>
<md-icon-button variant="outlined" icon="format_italic" aria-label="Outlined"></md-icon-button>
<md-icon-button variant="filled" icon="add" aria-label="Filled"></md-icon-button>
<md-icon-button variant="tonal" toggle icon="star" aria-label="Tonal toggle"></md-icon-button>
<md-icon-button variant="tonal" toggle selected icon="favorite" aria-label="Tonal toggle, selected"></md-icon-button>
</md-toolbar><script setup>
// Icons need the Material Symbols stylesheet in index.html — see Installation.
import '@awc-ui/core/define';
</script>
<template>
<md-toolbar variant="floating" color="standard" aria-label="Icon button types">
<md-icon-button variant="standard" icon="format_bold" aria-label="Standard"></md-icon-button>
<md-icon-button variant="outlined" icon="format_italic" aria-label="Outlined"></md-icon-button>
<md-icon-button variant="filled" icon="add" aria-label="Filled"></md-icon-button>
<md-icon-button variant="tonal" toggle icon="star" aria-label="Tonal toggle"></md-icon-button>
<md-icon-button variant="tonal" toggle selected icon="favorite" aria-label="Tonal toggle, selected"></md-icon-button>
</md-toolbar>
</template><script>
// Icons need the Material Symbols stylesheet in index.html — see Installation.
import '@awc-ui/core/define';
</script>
<md-toolbar variant="floating" color="standard" aria-label="Icon button types">
<md-icon-button variant="standard" icon="format_bold" aria-label="Standard"></md-icon-button>
<md-icon-button variant="outlined" icon="format_italic" aria-label="Outlined"></md-icon-button>
<md-icon-button variant="filled" icon="add" aria-label="Filled"></md-icon-button>
<md-icon-button variant="tonal" toggle icon="star" aria-label="Tonal toggle"></md-icon-button>
<md-icon-button variant="tonal" toggle selected icon="favorite" aria-label="Tonal toggle, selected"></md-icon-button>
</md-toolbar>layout="vertical" is a floating-only option — a docked bar is a row by
definition. alignment distributes the controls along the main axis.
<!-- index.html <head> — the icon font the components draw from -->
<link rel="stylesheet"
href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap">
<!-- index.html — register the AWC UI elements once -->
<script type="module">
import '@awc-ui/core/define';
</script>
<div style="display:flex;gap:24px;align-items:flex-start;">
<md-toolbar variant="floating" layout="horizontal" aria-label="Horizontal">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button>
<md-icon-button icon="format_underlined" aria-label="Underline"></md-icon-button>
</md-toolbar>
<md-toolbar variant="floating" layout="vertical" aria-label="Vertical">
<md-icon-button icon="brush" aria-label="Brush"></md-icon-button>
<md-icon-button icon="colorize" aria-label="Picker"></md-icon-button>
<md-icon-button icon="ink_eraser" aria-label="Eraser"></md-icon-button>
</md-toolbar>
</div>// Icons need the Material Symbols stylesheet in index.html — see Installation.
import { MdIconButton, MdToolbar } from '@awc-ui/react';
export function Demo() {
return (
<>
<div style={{ display: 'flex', gap: '24px', alignItems: 'flex-start' }}>
<MdToolbar variant="floating" layout="horizontal" aria-label="Horizontal">
<MdIconButton icon="format_bold" aria-label="Bold"></MdIconButton>
<MdIconButton icon="format_italic" aria-label="Italic"></MdIconButton>
<MdIconButton icon="format_underlined" aria-label="Underline"></MdIconButton>
</MdToolbar>
<MdToolbar variant="floating" layout="vertical" aria-label="Vertical">
<MdIconButton icon="brush" aria-label="Brush"></MdIconButton>
<MdIconButton icon="colorize" aria-label="Picker"></MdIconButton>
<MdIconButton icon="ink_eraser" aria-label="Eraser"></MdIconButton>
</MdToolbar>
</div>
</>
);
}// Icons need the Material Symbols stylesheet in index.html — see Installation.
// app.module.ts — register the AWC UI elements once
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
import { AwcUiModule } from '@awc-ui/angular';
@NgModule({
imports: [AwcUiModule],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
})
export class AppModule {}
<!-- app.component.html -->
<div style="display:flex;gap:24px;align-items:flex-start;">
<md-toolbar variant="floating" layout="horizontal" aria-label="Horizontal">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button>
<md-icon-button icon="format_underlined" aria-label="Underline"></md-icon-button>
</md-toolbar>
<md-toolbar variant="floating" layout="vertical" aria-label="Vertical">
<md-icon-button icon="brush" aria-label="Brush"></md-icon-button>
<md-icon-button icon="colorize" aria-label="Picker"></md-icon-button>
<md-icon-button icon="ink_eraser" aria-label="Eraser"></md-icon-button>
</md-toolbar>
</div><script setup>
// Icons need the Material Symbols stylesheet in index.html — see Installation.
import '@awc-ui/core/define';
</script>
<template>
<div style="display:flex;gap:24px;align-items:flex-start;">
<md-toolbar variant="floating" layout="horizontal" aria-label="Horizontal">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button>
<md-icon-button icon="format_underlined" aria-label="Underline"></md-icon-button>
</md-toolbar>
<md-toolbar variant="floating" layout="vertical" aria-label="Vertical">
<md-icon-button icon="brush" aria-label="Brush"></md-icon-button>
<md-icon-button icon="colorize" aria-label="Picker"></md-icon-button>
<md-icon-button icon="ink_eraser" aria-label="Eraser"></md-icon-button>
</md-toolbar>
</div>
</template><script>
// Icons need the Material Symbols stylesheet in index.html — see Installation.
import '@awc-ui/core/define';
</script>
<div style="display:flex;gap:24px;align-items:flex-start;">
<md-toolbar variant="floating" layout="horizontal" aria-label="Horizontal">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button>
<md-icon-button icon="format_underlined" aria-label="Underline"></md-icon-button>
</md-toolbar>
<md-toolbar variant="floating" layout="vertical" aria-label="Vertical">
<md-icon-button icon="brush" aria-label="Brush"></md-icon-button>
<md-icon-button icon="colorize" aria-label="Picker"></md-icon-button>
<md-icon-button icon="ink_eraser" aria-label="Eraser"></md-icon-button>
</md-toolbar>
</div><!-- index.html <head> — the icon font the components draw from -->
<link rel="stylesheet"
href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap">
<!-- index.html — register the AWC UI elements once -->
<script type="module">
import '@awc-ui/core/define';
</script>
<div style="display:flex;flex-direction:column;gap:20px;inline-size:100%;">
<md-toolbar variant="docked" alignment="start" aria-label="start"><md-icon-button icon="arrow_back" aria-label="Back"></md-icon-button><md-icon-button icon="star" aria-label="Star"></md-icon-button><md-icon-button icon="share" aria-label="Share"></md-icon-button></md-toolbar>
<md-toolbar variant="docked" alignment="center" aria-label="center"><md-icon-button icon="arrow_back" aria-label="Back"></md-icon-button><md-icon-button icon="star" aria-label="Star"></md-icon-button><md-icon-button icon="share" aria-label="Share"></md-icon-button></md-toolbar>
<md-toolbar variant="docked" alignment="end" aria-label="end"><md-icon-button icon="arrow_back" aria-label="Back"></md-icon-button><md-icon-button icon="star" aria-label="Star"></md-icon-button><md-icon-button icon="share" aria-label="Share"></md-icon-button></md-toolbar>
<md-toolbar variant="docked" alignment="space-between" aria-label="space-between"><md-icon-button icon="arrow_back" aria-label="Back"></md-icon-button><md-icon-button icon="star" aria-label="Star"></md-icon-button><md-icon-button icon="share" aria-label="Share"></md-icon-button></md-toolbar>
</div>// Icons need the Material Symbols stylesheet in index.html — see Installation.
import { MdIconButton, MdToolbar } from '@awc-ui/react';
export function Demo() {
return (
<>
<div style={{ display: 'flex', flexDirection: 'column', gap: '20px', inlineSize: '100%' }}>
<MdToolbar variant="docked" alignment="start" aria-label="start"><MdIconButton icon="arrow_back" aria-label="Back"></MdIconButton><MdIconButton icon="star" aria-label="Star"></MdIconButton><MdIconButton icon="share" aria-label="Share"></MdIconButton></MdToolbar>
<MdToolbar variant="docked" alignment="center" aria-label="center"><MdIconButton icon="arrow_back" aria-label="Back"></MdIconButton><MdIconButton icon="star" aria-label="Star"></MdIconButton><MdIconButton icon="share" aria-label="Share"></MdIconButton></MdToolbar>
<MdToolbar variant="docked" alignment="end" aria-label="end"><MdIconButton icon="arrow_back" aria-label="Back"></MdIconButton><MdIconButton icon="star" aria-label="Star"></MdIconButton><MdIconButton icon="share" aria-label="Share"></MdIconButton></MdToolbar>
<MdToolbar variant="docked" alignment="space-between" aria-label="space-between"><MdIconButton icon="arrow_back" aria-label="Back"></MdIconButton><MdIconButton icon="star" aria-label="Star"></MdIconButton><MdIconButton icon="share" aria-label="Share"></MdIconButton></MdToolbar>
</div>
</>
);
}// Icons need the Material Symbols stylesheet in index.html — see Installation.
// app.module.ts — register the AWC UI elements once
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
import { AwcUiModule } from '@awc-ui/angular';
@NgModule({
imports: [AwcUiModule],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
})
export class AppModule {}
<!-- app.component.html -->
<div style="display:flex;flex-direction:column;gap:20px;inline-size:100%;">
<md-toolbar variant="docked" alignment="start" aria-label="start"><md-icon-button icon="arrow_back" aria-label="Back"></md-icon-button><md-icon-button icon="star" aria-label="Star"></md-icon-button><md-icon-button icon="share" aria-label="Share"></md-icon-button></md-toolbar>
<md-toolbar variant="docked" alignment="center" aria-label="center"><md-icon-button icon="arrow_back" aria-label="Back"></md-icon-button><md-icon-button icon="star" aria-label="Star"></md-icon-button><md-icon-button icon="share" aria-label="Share"></md-icon-button></md-toolbar>
<md-toolbar variant="docked" alignment="end" aria-label="end"><md-icon-button icon="arrow_back" aria-label="Back"></md-icon-button><md-icon-button icon="star" aria-label="Star"></md-icon-button><md-icon-button icon="share" aria-label="Share"></md-icon-button></md-toolbar>
<md-toolbar variant="docked" alignment="space-between" aria-label="space-between"><md-icon-button icon="arrow_back" aria-label="Back"></md-icon-button><md-icon-button icon="star" aria-label="Star"></md-icon-button><md-icon-button icon="share" aria-label="Share"></md-icon-button></md-toolbar>
</div><script setup>
// Icons need the Material Symbols stylesheet in index.html — see Installation.
import '@awc-ui/core/define';
</script>
<template>
<div style="display:flex;flex-direction:column;gap:20px;inline-size:100%;">
<md-toolbar variant="docked" alignment="start" aria-label="start"><md-icon-button icon="arrow_back" aria-label="Back"></md-icon-button><md-icon-button icon="star" aria-label="Star"></md-icon-button><md-icon-button icon="share" aria-label="Share"></md-icon-button></md-toolbar>
<md-toolbar variant="docked" alignment="center" aria-label="center"><md-icon-button icon="arrow_back" aria-label="Back"></md-icon-button><md-icon-button icon="star" aria-label="Star"></md-icon-button><md-icon-button icon="share" aria-label="Share"></md-icon-button></md-toolbar>
<md-toolbar variant="docked" alignment="end" aria-label="end"><md-icon-button icon="arrow_back" aria-label="Back"></md-icon-button><md-icon-button icon="star" aria-label="Star"></md-icon-button><md-icon-button icon="share" aria-label="Share"></md-icon-button></md-toolbar>
<md-toolbar variant="docked" alignment="space-between" aria-label="space-between"><md-icon-button icon="arrow_back" aria-label="Back"></md-icon-button><md-icon-button icon="star" aria-label="Star"></md-icon-button><md-icon-button icon="share" aria-label="Share"></md-icon-button></md-toolbar>
</div>
</template><script>
// Icons need the Material Symbols stylesheet in index.html — see Installation.
import '@awc-ui/core/define';
</script>
<div style="display:flex;flex-direction:column;gap:20px;inline-size:100%;">
<md-toolbar variant="docked" alignment="start" aria-label="start"><md-icon-button icon="arrow_back" aria-label="Back"></md-icon-button><md-icon-button icon="star" aria-label="Star"></md-icon-button><md-icon-button icon="share" aria-label="Share"></md-icon-button></md-toolbar>
<md-toolbar variant="docked" alignment="center" aria-label="center"><md-icon-button icon="arrow_back" aria-label="Back"></md-icon-button><md-icon-button icon="star" aria-label="Star"></md-icon-button><md-icon-button icon="share" aria-label="Share"></md-icon-button></md-toolbar>
<md-toolbar variant="docked" alignment="end" aria-label="end"><md-icon-button icon="arrow_back" aria-label="Back"></md-icon-button><md-icon-button icon="star" aria-label="Star"></md-icon-button><md-icon-button icon="share" aria-label="Share"></md-icon-button></md-toolbar>
<md-toolbar variant="docked" alignment="space-between" aria-label="space-between"><md-icon-button icon="arrow_back" aria-label="Back"></md-icon-button><md-icon-button icon="star" aria-label="Star"></md-icon-button><md-icon-button icon="share" aria-label="Share"></md-icon-button></md-toolbar>
</div>The fab slot places a FAB beside the bar — or below it under
layout="vertical". On a floating toolbar the FAB is a separate control
with its own elevation, sitting next to the pill. On a docked toolbar it is
flattened so it reads as part of the same bottom bar.
<!-- index.html <head> — the icon font the components draw from -->
<link rel="stylesheet"
href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap">
<!-- index.html — register the AWC UI elements once -->
<script type="module">
import '@awc-ui/core/define';
</script>
<div style="display:flex;flex-direction:column;gap:28px;inline-size:100%;">
<md-toolbar variant="floating" aria-label="Floating with FAB">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button>
<md-icon-button icon="link" aria-label="Link"></md-icon-button>
<md-fab slot="fab" icon="add" aria-label="Create"></md-fab>
</md-toolbar>
<md-toolbar variant="docked" aria-label="Docked with FAB">
<md-icon-button icon="arrow_back" aria-label="Back"></md-icon-button>
<md-icon-button icon="star" aria-label="Star"></md-icon-button>
<md-icon-button icon="share" aria-label="Share"></md-icon-button>
<md-fab slot="fab" icon="add" aria-label="Create"></md-fab>
</md-toolbar>
</div>// Icons need the Material Symbols stylesheet in index.html — see Installation.
import { MdFab, MdIconButton, MdToolbar } from '@awc-ui/react';
export function Demo() {
return (
<>
<div style={{ display: 'flex', flexDirection: 'column', gap: '28px', inlineSize: '100%' }}>
<MdToolbar variant="floating" aria-label="Floating with FAB">
<MdIconButton icon="format_bold" aria-label="Bold"></MdIconButton>
<MdIconButton icon="format_italic" aria-label="Italic"></MdIconButton>
<MdIconButton icon="link" aria-label="Link"></MdIconButton>
<MdFab slot="fab" icon="add" aria-label="Create"></MdFab>
</MdToolbar>
<MdToolbar variant="docked" aria-label="Docked with FAB">
<MdIconButton icon="arrow_back" aria-label="Back"></MdIconButton>
<MdIconButton icon="star" aria-label="Star"></MdIconButton>
<MdIconButton icon="share" aria-label="Share"></MdIconButton>
<MdFab slot="fab" icon="add" aria-label="Create"></MdFab>
</MdToolbar>
</div>
</>
);
}// Icons need the Material Symbols stylesheet in index.html — see Installation.
// app.module.ts — register the AWC UI elements once
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
import { AwcUiModule } from '@awc-ui/angular';
@NgModule({
imports: [AwcUiModule],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
})
export class AppModule {}
<!-- app.component.html -->
<div style="display:flex;flex-direction:column;gap:28px;inline-size:100%;">
<md-toolbar variant="floating" aria-label="Floating with FAB">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button>
<md-icon-button icon="link" aria-label="Link"></md-icon-button>
<md-fab slot="fab" icon="add" aria-label="Create"></md-fab>
</md-toolbar>
<md-toolbar variant="docked" aria-label="Docked with FAB">
<md-icon-button icon="arrow_back" aria-label="Back"></md-icon-button>
<md-icon-button icon="star" aria-label="Star"></md-icon-button>
<md-icon-button icon="share" aria-label="Share"></md-icon-button>
<md-fab slot="fab" icon="add" aria-label="Create"></md-fab>
</md-toolbar>
</div><script setup>
// Icons need the Material Symbols stylesheet in index.html — see Installation.
import '@awc-ui/core/define';
</script>
<template>
<div style="display:flex;flex-direction:column;gap:28px;inline-size:100%;">
<md-toolbar variant="floating" aria-label="Floating with FAB">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button>
<md-icon-button icon="link" aria-label="Link"></md-icon-button>
<md-fab slot="fab" icon="add" aria-label="Create"></md-fab>
</md-toolbar>
<md-toolbar variant="docked" aria-label="Docked with FAB">
<md-icon-button icon="arrow_back" aria-label="Back"></md-icon-button>
<md-icon-button icon="star" aria-label="Star"></md-icon-button>
<md-icon-button icon="share" aria-label="Share"></md-icon-button>
<md-fab slot="fab" icon="add" aria-label="Create"></md-fab>
</md-toolbar>
</div>
</template><script>
// Icons need the Material Symbols stylesheet in index.html — see Installation.
import '@awc-ui/core/define';
</script>
<div style="display:flex;flex-direction:column;gap:28px;inline-size:100%;">
<md-toolbar variant="floating" aria-label="Floating with FAB">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button>
<md-icon-button icon="link" aria-label="Link"></md-icon-button>
<md-fab slot="fab" icon="add" aria-label="Create"></md-fab>
</md-toolbar>
<md-toolbar variant="docked" aria-label="Docked with FAB">
<md-icon-button icon="arrow_back" aria-label="Back"></md-icon-button>
<md-icon-button icon="star" aria-label="Star"></md-icon-button>
<md-icon-button icon="share" aria-label="Share"></md-icon-button>
<md-fab slot="fab" icon="add" aria-label="Create"></md-fab>
</md-toolbar>
</div>A toolbar is not limited to icon buttons. Text fields, selects, switches and chips can all live in one — and each keeps its own keyboard behaviour, as Accessibility explains.
<!-- index.html <head> — the icon font the components draw from -->
<link rel="stylesheet"
href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap">
<!-- index.html — register the AWC UI elements once -->
<script type="module">
import '@awc-ui/core/define';
</script>
<md-toolbar variant="floating" aria-label="Mixed content" style="inline-size:100%;">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button>
<md-divider></md-divider>
<md-text-field label="Find" style="inline-size: 160px;"></md-text-field>
<md-switch aria-label="Match case"></md-switch>
<md-icon-button icon="more_vert" aria-label="More"></md-icon-button>
</md-toolbar>// Icons need the Material Symbols stylesheet in index.html — see Installation.
import { MdDivider, MdIconButton, MdSwitch, MdTextField, MdToolbar } from '@awc-ui/react';
export function Demo() {
return (
<>
<MdToolbar variant="floating" aria-label="Mixed content" style={{ inlineSize: '100%' }}>
<MdIconButton icon="format_bold" aria-label="Bold"></MdIconButton>
<MdIconButton icon="format_italic" aria-label="Italic"></MdIconButton>
<MdDivider></MdDivider>
<MdTextField label="Find" style={{ inlineSize: '160px' }}></MdTextField>
<MdSwitch aria-label="Match case"></MdSwitch>
<MdIconButton icon="more_vert" aria-label="More"></MdIconButton>
</MdToolbar>
</>
);
}// Icons need the Material Symbols stylesheet in index.html — see Installation.
// app.module.ts — register the AWC UI elements once
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
import { AwcUiModule } from '@awc-ui/angular';
@NgModule({
imports: [AwcUiModule],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
})
export class AppModule {}
<!-- app.component.html -->
<md-toolbar variant="floating" aria-label="Mixed content" style="inline-size:100%;">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button>
<md-divider></md-divider>
<md-text-field label="Find" style="inline-size: 160px;"></md-text-field>
<md-switch aria-label="Match case"></md-switch>
<md-icon-button icon="more_vert" aria-label="More"></md-icon-button>
</md-toolbar><script setup>
// Icons need the Material Symbols stylesheet in index.html — see Installation.
import '@awc-ui/core/define';
</script>
<template>
<md-toolbar variant="floating" aria-label="Mixed content" style="inline-size:100%;">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button>
<md-divider></md-divider>
<md-text-field label="Find" style="inline-size: 160px;"></md-text-field>
<md-switch aria-label="Match case"></md-switch>
<md-icon-button icon="more_vert" aria-label="More"></md-icon-button>
</md-toolbar>
</template><script>
// Icons need the Material Symbols stylesheet in index.html — see Installation.
import '@awc-ui/core/define';
</script>
<md-toolbar variant="floating" aria-label="Mixed content" style="inline-size:100%;">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button>
<md-divider></md-divider>
<md-text-field label="Find" style="inline-size: 160px;"></md-text-field>
<md-switch aria-label="Match case"></md-switch>
<md-icon-button icon="more_vert" aria-label="More"></md-icon-button>
</md-toolbar>The toolbar does not clip or scroll by default — focus rings stay visible,
which is the point. M3’s guidance is to cap the action count or move the excess
into an overflow md-menu. When you must, opt in:
| Custom property | Effect |
|---|---|
--md-toolbar-overflow-x: auto | Scroll horizontally |
--md-toolbar-overflow-y: auto | Scroll a vertical floating toolbar |
--md-toolbar-flex-wrap: wrap | Wrap onto more rows instead of scrolling |
<!-- index.html <head> — the icon font the components draw from -->
<link rel="stylesheet"
href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap">
<!-- index.html — register the AWC UI elements once -->
<script type="module">
import '@awc-ui/core/define';
</script>
<div style="display:flex;flex-direction:column;gap:24px;inline-size:100%;max-inline-size:360px;">
<md-toolbar variant="floating" aria-label="Scrolling" style="--md-toolbar-overflow-x: auto;">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button>
<md-icon-button icon="format_underlined" aria-label="Underline"></md-icon-button>
<md-icon-button icon="format_align_left" aria-label="Align left"></md-icon-button>
<md-icon-button icon="format_align_center" aria-label="Align center"></md-icon-button>
<md-icon-button icon="format_align_right" aria-label="Align right"></md-icon-button>
<md-icon-button icon="link" aria-label="Link"></md-icon-button>
</md-toolbar>
<md-toolbar variant="floating" aria-label="Wrapping" style="--md-toolbar-flex-wrap: wrap;">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button>
<md-icon-button icon="format_underlined" aria-label="Underline"></md-icon-button>
<md-icon-button icon="format_align_left" aria-label="Align left"></md-icon-button>
<md-icon-button icon="format_align_center" aria-label="Align center"></md-icon-button>
<md-icon-button icon="format_align_right" aria-label="Align right"></md-icon-button>
<md-icon-button icon="link" aria-label="Link"></md-icon-button>
</md-toolbar>
</div>// Icons need the Material Symbols stylesheet in index.html — see Installation.
import { MdIconButton, MdToolbar } from '@awc-ui/react';
export function Demo() {
return (
<>
<div style={{ display: 'flex', flexDirection: 'column', gap: '24px', inlineSize: '100%', maxInlineSize: '360px' }}>
<MdToolbar variant="floating" aria-label="Scrolling" style={{ '--md-toolbar-overflow-x': 'auto' }}>
<MdIconButton icon="format_bold" aria-label="Bold"></MdIconButton>
<MdIconButton icon="format_italic" aria-label="Italic"></MdIconButton>
<MdIconButton icon="format_underlined" aria-label="Underline"></MdIconButton>
<MdIconButton icon="format_align_left" aria-label="Align left"></MdIconButton>
<MdIconButton icon="format_align_center" aria-label="Align center"></MdIconButton>
<MdIconButton icon="format_align_right" aria-label="Align right"></MdIconButton>
<MdIconButton icon="link" aria-label="Link"></MdIconButton>
</MdToolbar>
<MdToolbar variant="floating" aria-label="Wrapping" style={{ '--md-toolbar-flex-wrap': 'wrap' }}>
<MdIconButton icon="format_bold" aria-label="Bold"></MdIconButton>
<MdIconButton icon="format_italic" aria-label="Italic"></MdIconButton>
<MdIconButton icon="format_underlined" aria-label="Underline"></MdIconButton>
<MdIconButton icon="format_align_left" aria-label="Align left"></MdIconButton>
<MdIconButton icon="format_align_center" aria-label="Align center"></MdIconButton>
<MdIconButton icon="format_align_right" aria-label="Align right"></MdIconButton>
<MdIconButton icon="link" aria-label="Link"></MdIconButton>
</MdToolbar>
</div>
</>
);
}// Icons need the Material Symbols stylesheet in index.html — see Installation.
// app.module.ts — register the AWC UI elements once
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
import { AwcUiModule } from '@awc-ui/angular';
@NgModule({
imports: [AwcUiModule],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
})
export class AppModule {}
<!-- app.component.html -->
<div style="display:flex;flex-direction:column;gap:24px;inline-size:100%;max-inline-size:360px;">
<md-toolbar variant="floating" aria-label="Scrolling" style="--md-toolbar-overflow-x: auto;">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button>
<md-icon-button icon="format_underlined" aria-label="Underline"></md-icon-button>
<md-icon-button icon="format_align_left" aria-label="Align left"></md-icon-button>
<md-icon-button icon="format_align_center" aria-label="Align center"></md-icon-button>
<md-icon-button icon="format_align_right" aria-label="Align right"></md-icon-button>
<md-icon-button icon="link" aria-label="Link"></md-icon-button>
</md-toolbar>
<md-toolbar variant="floating" aria-label="Wrapping" style="--md-toolbar-flex-wrap: wrap;">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button>
<md-icon-button icon="format_underlined" aria-label="Underline"></md-icon-button>
<md-icon-button icon="format_align_left" aria-label="Align left"></md-icon-button>
<md-icon-button icon="format_align_center" aria-label="Align center"></md-icon-button>
<md-icon-button icon="format_align_right" aria-label="Align right"></md-icon-button>
<md-icon-button icon="link" aria-label="Link"></md-icon-button>
</md-toolbar>
</div><script setup>
// Icons need the Material Symbols stylesheet in index.html — see Installation.
import '@awc-ui/core/define';
</script>
<template>
<div style="display:flex;flex-direction:column;gap:24px;inline-size:100%;max-inline-size:360px;">
<md-toolbar variant="floating" aria-label="Scrolling" style="--md-toolbar-overflow-x: auto;">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button>
<md-icon-button icon="format_underlined" aria-label="Underline"></md-icon-button>
<md-icon-button icon="format_align_left" aria-label="Align left"></md-icon-button>
<md-icon-button icon="format_align_center" aria-label="Align center"></md-icon-button>
<md-icon-button icon="format_align_right" aria-label="Align right"></md-icon-button>
<md-icon-button icon="link" aria-label="Link"></md-icon-button>
</md-toolbar>
<md-toolbar variant="floating" aria-label="Wrapping" style="--md-toolbar-flex-wrap: wrap;">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button>
<md-icon-button icon="format_underlined" aria-label="Underline"></md-icon-button>
<md-icon-button icon="format_align_left" aria-label="Align left"></md-icon-button>
<md-icon-button icon="format_align_center" aria-label="Align center"></md-icon-button>
<md-icon-button icon="format_align_right" aria-label="Align right"></md-icon-button>
<md-icon-button icon="link" aria-label="Link"></md-icon-button>
</md-toolbar>
</div>
</template><script>
// Icons need the Material Symbols stylesheet in index.html — see Installation.
import '@awc-ui/core/define';
</script>
<div style="display:flex;flex-direction:column;gap:24px;inline-size:100%;max-inline-size:360px;">
<md-toolbar variant="floating" aria-label="Scrolling" style="--md-toolbar-overflow-x: auto;">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button>
<md-icon-button icon="format_underlined" aria-label="Underline"></md-icon-button>
<md-icon-button icon="format_align_left" aria-label="Align left"></md-icon-button>
<md-icon-button icon="format_align_center" aria-label="Align center"></md-icon-button>
<md-icon-button icon="format_align_right" aria-label="Align right"></md-icon-button>
<md-icon-button icon="link" aria-label="Link"></md-icon-button>
</md-toolbar>
<md-toolbar variant="floating" aria-label="Wrapping" style="--md-toolbar-flex-wrap: wrap;">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button>
<md-icon-button icon="format_underlined" aria-label="Underline"></md-icon-button>
<md-icon-button icon="format_align_left" aria-label="Align left"></md-icon-button>
<md-icon-button icon="format_align_center" aria-label="Align center"></md-icon-button>
<md-icon-button icon="format_align_right" aria-label="Align right"></md-icon-button>
<md-icon-button icon="link" aria-label="Link"></md-icon-button>
</md-toolbar>
</div>md-toolbar emits no events. It is a container: listen to the controls you
slotted into it. setFocus() is the one method, for moving focus into the
toolbar’s current roving stop programmatically.
| Property | Attribute | Type | Default | Reflects |
|---|---|---|---|---|
variant | variant | 'docked' | 'floating' | 'docked' | Yes |
color | color | 'standard' | 'vibrant' | 'standard' | Yes |
layout | layout | 'horizontal' | 'vertical' | 'horizontal' | Yes |
alignment | alignment | 'start' | 'center' | 'end' | 'space-between' | 'start' | Yes |
containerSemantics | container-semantics | 'toolbar' | 'generic' | 'toolbar' | Yes |
ariaLabelProp | aria-label | string | '' | — |
ariaLabelledby | aria-labelledby | string | '' | — |
density | density | 0 | -1 | -2 | -3 | -4 | 0 | Yes |
| Method | Parameters |
|---|---|
setFocus() | none |
| Slot | Description |
|---|---|
(default) | — |
leading | Leading (start) section |
trailing | Trailing (end) section |
fab | Paired FAB element |
Override on the host element for per-instance theming:
| Property | Description |
|---|---|
--md-toolbar-container-color | Container background |
--md-toolbar-icon-color | Slotted control tint (defaults: on-surface-variant / on-surface) |
--md-toolbar-container-shape | Border-radius |
--md-toolbar-container-height | Container height |
--md-toolbar-padding | Padding |
--md-toolbar-gap | Gap between items |
--md-toolbar-fab-gap | Gap between toolbar and FAB |
--md-toolbar-scrollbar-width | Scrollbar width for opt-in scrolling (set to |
--md-toolbar-flex-wrap | — |
--md-toolbar-overflow-x | — |
--md-toolbar-overflow-y | — |
Style internal elements through shadow DOM with ::part():
| Part | Description |
|---|---|
container | Inner container holding slotted content |
fab-container | FAB wrapper |
The toolbar implements the
WAI-ARIA toolbar pattern:
role="toolbar" on the host, one accessible name, and a roving tabindex that
turns the whole button cluster into a single Tab stop.
aria-label — set one ("Text formatting"),
or aria-labelledby when a visible label exists. An unnamed toolbar logs a
dev-mode warning.aria-orientation follows layout.aria-disabled) control stays in the roving group and
arrow-reachable, per APG — disabled toolbar items stay discoverable. The
initial Tab stop prefers an enabled control.tabindex="-1" on a native control opts it out of the group.| Key | Action |
|---|---|
Tab | Into the button cluster’s current stop; Tab again moves out — the cluster is one stop |
← / → | Move within a horizontal group, wrapping (follows reading direction under RTL) |
↑ / ↓ | Move within a vertical floating group |
Home / End | First / last control |
Space / Enter | Activate the focused control, per its own pattern |
Off-axis arrows are ignored, and modifier chords (Shift/Ctrl/Meta/Alt +
arrow) pass straight through.
This is the part that surprises people. Only activator controls rove —
md-icon-button, md-button, native <button> / <a href>, and
role="button" / menuitem / link. Everything else keeps its own Tab stop
and its own native behaviour:
| Kind | Examples |
|---|---|
| Text and value entry | <input>, <textarea>, contenteditable, md-text-field, md-select, <select>, type="range" |
| Self-managing composites | md-button-group, md-menu, role="radiogroup" |
| All toggles | md-switch, md-checkbox, md-chip, <input type="checkbox"> / radio, role="checkbox" / radio |
That is what keeps caret movement, text selection, value adjustment and each
composite’s own arrow handling working — and it means native and md-* toggles
behave identically when mixed in one bar.
<!-- index.html <head> — the icon font the components draw from -->
<link rel="stylesheet"
href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap">
<!-- index.html — register the AWC UI elements once -->
<script type="module">
import '@awc-ui/core/define';
</script>
<md-toolbar variant="floating" aria-label="Document actions" style="inline-size:100%;">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button>
<md-icon-button icon="format_underlined" aria-label="Underline" soft-disabled></md-icon-button>
<md-divider></md-divider>
<md-text-field label="Find" style="inline-size: 150px;"></md-text-field>
<md-switch aria-label="Match case"></md-switch>
<md-fab slot="fab" icon="add" aria-label="Create"></md-fab>
</md-toolbar>// Icons need the Material Symbols stylesheet in index.html — see Installation.
import { MdDivider, MdFab, MdIconButton, MdSwitch, MdTextField, MdToolbar } from '@awc-ui/react';
export function Demo() {
return (
<>
<MdToolbar variant="floating" aria-label="Document actions" style={{ inlineSize: '100%' }}>
<MdIconButton icon="format_bold" aria-label="Bold"></MdIconButton>
<MdIconButton icon="format_italic" aria-label="Italic"></MdIconButton>
<MdIconButton icon="format_underlined" aria-label="Underline" soft-disabled></MdIconButton>
<MdDivider></MdDivider>
<MdTextField label="Find" style={{ inlineSize: '150px' }}></MdTextField>
<MdSwitch aria-label="Match case"></MdSwitch>
<MdFab slot="fab" icon="add" aria-label="Create"></MdFab>
</MdToolbar>
</>
);
}// Icons need the Material Symbols stylesheet in index.html — see Installation.
// app.module.ts — register the AWC UI elements once
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
import { AwcUiModule } from '@awc-ui/angular';
@NgModule({
imports: [AwcUiModule],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
})
export class AppModule {}
<!-- app.component.html -->
<md-toolbar variant="floating" aria-label="Document actions" style="inline-size:100%;">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button>
<md-icon-button icon="format_underlined" aria-label="Underline" soft-disabled></md-icon-button>
<md-divider></md-divider>
<md-text-field label="Find" style="inline-size: 150px;"></md-text-field>
<md-switch aria-label="Match case"></md-switch>
<md-fab slot="fab" icon="add" aria-label="Create"></md-fab>
</md-toolbar><script setup>
// Icons need the Material Symbols stylesheet in index.html — see Installation.
import '@awc-ui/core/define';
</script>
<template>
<md-toolbar variant="floating" aria-label="Document actions" style="inline-size:100%;">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button>
<md-icon-button icon="format_underlined" aria-label="Underline" soft-disabled></md-icon-button>
<md-divider></md-divider>
<md-text-field label="Find" style="inline-size: 150px;"></md-text-field>
<md-switch aria-label="Match case"></md-switch>
<md-fab slot="fab" icon="add" aria-label="Create"></md-fab>
</md-toolbar>
</template><script>
// Icons need the Material Symbols stylesheet in index.html — see Installation.
import '@awc-ui/core/define';
</script>
<md-toolbar variant="floating" aria-label="Document actions" style="inline-size:100%;">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button>
<md-icon-button icon="format_underlined" aria-label="Underline" soft-disabled></md-icon-button>
<md-divider></md-divider>
<md-text-field label="Find" style="inline-size: 150px;"></md-text-field>
<md-switch aria-label="Match case"></md-switch>
<md-fab slot="fab" icon="add" aria-label="Create"></md-fab>
</md-toolbar>container-semantics="generic" drops role="toolbar", every toolbar aria-*,
and all roving / arrow navigation. Slotted controls keep their own roles,
labels and natural tab order — for a mobile or non-semantic shell.
RTL — every box metric is a logical property, so layout, alignment and the horizontal arrow keys all follow the reading direction. See RTL.
<!-- index.html <head> — the icon font the components draw from -->
<link rel="stylesheet"
href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap">
<!-- index.html — register the AWC UI elements once -->
<script type="module">
import '@awc-ui/core/define';
</script>
<div style="display:grid;grid-template-columns:auto 1fr;gap:20px 16px;align-items:center;">
<span style="inline-size:2.5rem;opacity:.65;font-size:.75rem;font-family:ui-monospace,monospace;">ltr</span>
<div dir="ltr">
<md-toolbar variant="floating" alignment="space-between" aria-label="Actions" style="inline-size:100%;">
<md-icon-button icon="arrow_back" aria-label="Back"></md-icon-button>
<md-icon-button icon="star" aria-label="Star"></md-icon-button>
<md-icon-button icon="delete" aria-label="Delete"></md-icon-button>
</md-toolbar>
</div>
<span style="inline-size:2.5rem;opacity:.65;font-size:.75rem;font-family:ui-monospace,monospace;">rtl</span>
<div dir="rtl">
<md-toolbar variant="floating" alignment="space-between" aria-label="الإجراءات" style="inline-size:100%;">
<md-icon-button icon="arrow_back" aria-label="رجوع" mirror-icon></md-icon-button>
<md-icon-button icon="star" aria-label="تمييز"></md-icon-button>
<md-icon-button icon="delete" aria-label="حذف"></md-icon-button>
</md-toolbar>
</div>
</div>// Icons need the Material Symbols stylesheet in index.html — see Installation.
import { MdIconButton, MdToolbar } from '@awc-ui/react';
export function Demo() {
return (
<>
<div style={{ display: 'grid', gridTemplateColumns: 'auto 1fr', gap: '20px 16px', alignItems: 'center' }}>
<span style={{ inlineSize: '2.5rem', opacity: '.65', fontSize: '.75rem', fontFamily: 'ui-monospace,monospace' }}>ltr</span>
<div dir="ltr">
<MdToolbar variant="floating" alignment="space-between" aria-label="Actions" style={{ inlineSize: '100%' }}>
<MdIconButton icon="arrow_back" aria-label="Back"></MdIconButton>
<MdIconButton icon="star" aria-label="Star"></MdIconButton>
<MdIconButton icon="delete" aria-label="Delete"></MdIconButton>
</MdToolbar>
</div>
<span style={{ inlineSize: '2.5rem', opacity: '.65', fontSize: '.75rem', fontFamily: 'ui-monospace,monospace' }}>rtl</span>
<div dir="rtl">
<MdToolbar variant="floating" alignment="space-between" aria-label="الإجراءات" style={{ inlineSize: '100%' }}>
<MdIconButton icon="arrow_back" aria-label="رجوع" mirror-icon></MdIconButton>
<MdIconButton icon="star" aria-label="تمييز"></MdIconButton>
<MdIconButton icon="delete" aria-label="حذف"></MdIconButton>
</MdToolbar>
</div>
</div>
</>
);
}// Icons need the Material Symbols stylesheet in index.html — see Installation.
// app.module.ts — register the AWC UI elements once
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
import { AwcUiModule } from '@awc-ui/angular';
@NgModule({
imports: [AwcUiModule],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
})
export class AppModule {}
<!-- app.component.html -->
<div style="display:grid;grid-template-columns:auto 1fr;gap:20px 16px;align-items:center;">
<span style="inline-size:2.5rem;opacity:.65;font-size:.75rem;font-family:ui-monospace,monospace;">ltr</span>
<div dir="ltr">
<md-toolbar variant="floating" alignment="space-between" aria-label="Actions" style="inline-size:100%;">
<md-icon-button icon="arrow_back" aria-label="Back"></md-icon-button>
<md-icon-button icon="star" aria-label="Star"></md-icon-button>
<md-icon-button icon="delete" aria-label="Delete"></md-icon-button>
</md-toolbar>
</div>
<span style="inline-size:2.5rem;opacity:.65;font-size:.75rem;font-family:ui-monospace,monospace;">rtl</span>
<div dir="rtl">
<md-toolbar variant="floating" alignment="space-between" aria-label="الإجراءات" style="inline-size:100%;">
<md-icon-button icon="arrow_back" aria-label="رجوع" mirror-icon></md-icon-button>
<md-icon-button icon="star" aria-label="تمييز"></md-icon-button>
<md-icon-button icon="delete" aria-label="حذف"></md-icon-button>
</md-toolbar>
</div>
</div><script setup>
// Icons need the Material Symbols stylesheet in index.html — see Installation.
import '@awc-ui/core/define';
</script>
<template>
<div style="display:grid;grid-template-columns:auto 1fr;gap:20px 16px;align-items:center;">
<span style="inline-size:2.5rem;opacity:.65;font-size:.75rem;font-family:ui-monospace,monospace;">ltr</span>
<div dir="ltr">
<md-toolbar variant="floating" alignment="space-between" aria-label="Actions" style="inline-size:100%;">
<md-icon-button icon="arrow_back" aria-label="Back"></md-icon-button>
<md-icon-button icon="star" aria-label="Star"></md-icon-button>
<md-icon-button icon="delete" aria-label="Delete"></md-icon-button>
</md-toolbar>
</div>
<span style="inline-size:2.5rem;opacity:.65;font-size:.75rem;font-family:ui-monospace,monospace;">rtl</span>
<div dir="rtl">
<md-toolbar variant="floating" alignment="space-between" aria-label="الإجراءات" style="inline-size:100%;">
<md-icon-button icon="arrow_back" aria-label="رجوع" mirror-icon></md-icon-button>
<md-icon-button icon="star" aria-label="تمييز"></md-icon-button>
<md-icon-button icon="delete" aria-label="حذف"></md-icon-button>
</md-toolbar>
</div>
</div>
</template><script>
// Icons need the Material Symbols stylesheet in index.html — see Installation.
import '@awc-ui/core/define';
</script>
<div style="display:grid;grid-template-columns:auto 1fr;gap:20px 16px;align-items:center;">
<span style="inline-size:2.5rem;opacity:.65;font-size:.75rem;font-family:ui-monospace,monospace;">ltr</span>
<div dir="ltr">
<md-toolbar variant="floating" alignment="space-between" aria-label="Actions" style="inline-size:100%;">
<md-icon-button icon="arrow_back" aria-label="Back"></md-icon-button>
<md-icon-button icon="star" aria-label="Star"></md-icon-button>
<md-icon-button icon="delete" aria-label="Delete"></md-icon-button>
</md-toolbar>
</div>
<span style="inline-size:2.5rem;opacity:.65;font-size:.75rem;font-family:ui-monospace,monospace;">rtl</span>
<div dir="rtl">
<md-toolbar variant="floating" alignment="space-between" aria-label="الإجراءات" style="inline-size:100%;">
<md-icon-button icon="arrow_back" aria-label="رجوع" mirror-icon></md-icon-button>
<md-icon-button icon="star" aria-label="تمييز"></md-icon-button>
<md-icon-button icon="delete" aria-label="حذف"></md-icon-button>
</md-toolbar>
</div>
</div>Density — density="-1…-4" locally overrides the inherited data-density
rung, shortening the bar and its controls. See Density.
<!-- index.html <head> — the icon font the components draw from -->
<link rel="stylesheet"
href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap">
<!-- index.html — register the AWC UI elements once -->
<script type="module">
import '@awc-ui/core/define';
</script>
<div style="display:grid;grid-template-columns:auto 1fr;gap:14px 16px;align-items:center;inline-size:100%;">
<span style="inline-size:2rem;opacity:.65;font-size:.75rem;font-family:ui-monospace,monospace;">0</span>
<md-toolbar density="0" variant="floating" aria-label="d0"><md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button><md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button><md-icon-button icon="link" aria-label="Link"></md-icon-button></md-toolbar>
<span style="inline-size:2rem;opacity:.65;font-size:.75rem;font-family:ui-monospace,monospace;">-1</span>
<md-toolbar density="-1" variant="floating" aria-label="d1"><md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button><md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button><md-icon-button icon="link" aria-label="Link"></md-icon-button></md-toolbar>
<span style="inline-size:2rem;opacity:.65;font-size:.75rem;font-family:ui-monospace,monospace;">-2</span>
<md-toolbar density="-2" variant="floating" aria-label="d2"><md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button><md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button><md-icon-button icon="link" aria-label="Link"></md-icon-button></md-toolbar>
<span style="inline-size:2rem;opacity:.65;font-size:.75rem;font-family:ui-monospace,monospace;">-3</span>
<md-toolbar density="-3" variant="floating" aria-label="d3"><md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button><md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button><md-icon-button icon="link" aria-label="Link"></md-icon-button></md-toolbar>
<span style="inline-size:2rem;opacity:.65;font-size:.75rem;font-family:ui-monospace,monospace;">-4</span>
<md-toolbar density="-4" variant="floating" aria-label="d4"><md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button><md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button><md-icon-button icon="link" aria-label="Link"></md-icon-button></md-toolbar>
</div>// Icons need the Material Symbols stylesheet in index.html — see Installation.
import { MdIconButton, MdToolbar } from '@awc-ui/react';
export function Demo() {
return (
<>
<div style={{ display: 'grid', gridTemplateColumns: 'auto 1fr', gap: '14px 16px', alignItems: 'center', inlineSize: '100%' }}>
<span style={{ inlineSize: '2rem', opacity: '.65', fontSize: '.75rem', fontFamily: 'ui-monospace,monospace' }}>0</span>
<MdToolbar density="0" variant="floating" aria-label="d0"><MdIconButton icon="format_bold" aria-label="Bold"></MdIconButton><MdIconButton icon="format_italic" aria-label="Italic"></MdIconButton><MdIconButton icon="link" aria-label="Link"></MdIconButton></MdToolbar>
<span style={{ inlineSize: '2rem', opacity: '.65', fontSize: '.75rem', fontFamily: 'ui-monospace,monospace' }}>-1</span>
<MdToolbar density="-1" variant="floating" aria-label="d1"><MdIconButton icon="format_bold" aria-label="Bold"></MdIconButton><MdIconButton icon="format_italic" aria-label="Italic"></MdIconButton><MdIconButton icon="link" aria-label="Link"></MdIconButton></MdToolbar>
<span style={{ inlineSize: '2rem', opacity: '.65', fontSize: '.75rem', fontFamily: 'ui-monospace,monospace' }}>-2</span>
<MdToolbar density="-2" variant="floating" aria-label="d2"><MdIconButton icon="format_bold" aria-label="Bold"></MdIconButton><MdIconButton icon="format_italic" aria-label="Italic"></MdIconButton><MdIconButton icon="link" aria-label="Link"></MdIconButton></MdToolbar>
<span style={{ inlineSize: '2rem', opacity: '.65', fontSize: '.75rem', fontFamily: 'ui-monospace,monospace' }}>-3</span>
<MdToolbar density="-3" variant="floating" aria-label="d3"><MdIconButton icon="format_bold" aria-label="Bold"></MdIconButton><MdIconButton icon="format_italic" aria-label="Italic"></MdIconButton><MdIconButton icon="link" aria-label="Link"></MdIconButton></MdToolbar>
<span style={{ inlineSize: '2rem', opacity: '.65', fontSize: '.75rem', fontFamily: 'ui-monospace,monospace' }}>-4</span>
<MdToolbar density="-4" variant="floating" aria-label="d4"><MdIconButton icon="format_bold" aria-label="Bold"></MdIconButton><MdIconButton icon="format_italic" aria-label="Italic"></MdIconButton><MdIconButton icon="link" aria-label="Link"></MdIconButton></MdToolbar>
</div>
</>
);
}// Icons need the Material Symbols stylesheet in index.html — see Installation.
// app.module.ts — register the AWC UI elements once
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
import { AwcUiModule } from '@awc-ui/angular';
@NgModule({
imports: [AwcUiModule],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
})
export class AppModule {}
<!-- app.component.html -->
<div style="display:grid;grid-template-columns:auto 1fr;gap:14px 16px;align-items:center;inline-size:100%;">
<span style="inline-size:2rem;opacity:.65;font-size:.75rem;font-family:ui-monospace,monospace;">0</span>
<md-toolbar density="0" variant="floating" aria-label="d0"><md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button><md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button><md-icon-button icon="link" aria-label="Link"></md-icon-button></md-toolbar>
<span style="inline-size:2rem;opacity:.65;font-size:.75rem;font-family:ui-monospace,monospace;">-1</span>
<md-toolbar density="-1" variant="floating" aria-label="d1"><md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button><md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button><md-icon-button icon="link" aria-label="Link"></md-icon-button></md-toolbar>
<span style="inline-size:2rem;opacity:.65;font-size:.75rem;font-family:ui-monospace,monospace;">-2</span>
<md-toolbar density="-2" variant="floating" aria-label="d2"><md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button><md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button><md-icon-button icon="link" aria-label="Link"></md-icon-button></md-toolbar>
<span style="inline-size:2rem;opacity:.65;font-size:.75rem;font-family:ui-monospace,monospace;">-3</span>
<md-toolbar density="-3" variant="floating" aria-label="d3"><md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button><md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button><md-icon-button icon="link" aria-label="Link"></md-icon-button></md-toolbar>
<span style="inline-size:2rem;opacity:.65;font-size:.75rem;font-family:ui-monospace,monospace;">-4</span>
<md-toolbar density="-4" variant="floating" aria-label="d4"><md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button><md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button><md-icon-button icon="link" aria-label="Link"></md-icon-button></md-toolbar>
</div><script setup>
// Icons need the Material Symbols stylesheet in index.html — see Installation.
import '@awc-ui/core/define';
</script>
<template>
<div style="display:grid;grid-template-columns:auto 1fr;gap:14px 16px;align-items:center;inline-size:100%;">
<span style="inline-size:2rem;opacity:.65;font-size:.75rem;font-family:ui-monospace,monospace;">0</span>
<md-toolbar density="0" variant="floating" aria-label="d0"><md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button><md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button><md-icon-button icon="link" aria-label="Link"></md-icon-button></md-toolbar>
<span style="inline-size:2rem;opacity:.65;font-size:.75rem;font-family:ui-monospace,monospace;">-1</span>
<md-toolbar density="-1" variant="floating" aria-label="d1"><md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button><md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button><md-icon-button icon="link" aria-label="Link"></md-icon-button></md-toolbar>
<span style="inline-size:2rem;opacity:.65;font-size:.75rem;font-family:ui-monospace,monospace;">-2</span>
<md-toolbar density="-2" variant="floating" aria-label="d2"><md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button><md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button><md-icon-button icon="link" aria-label="Link"></md-icon-button></md-toolbar>
<span style="inline-size:2rem;opacity:.65;font-size:.75rem;font-family:ui-monospace,monospace;">-3</span>
<md-toolbar density="-3" variant="floating" aria-label="d3"><md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button><md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button><md-icon-button icon="link" aria-label="Link"></md-icon-button></md-toolbar>
<span style="inline-size:2rem;opacity:.65;font-size:.75rem;font-family:ui-monospace,monospace;">-4</span>
<md-toolbar density="-4" variant="floating" aria-label="d4"><md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button><md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button><md-icon-button icon="link" aria-label="Link"></md-icon-button></md-toolbar>
</div>
</template><script>
// Icons need the Material Symbols stylesheet in index.html — see Installation.
import '@awc-ui/core/define';
</script>
<div style="display:grid;grid-template-columns:auto 1fr;gap:14px 16px;align-items:center;inline-size:100%;">
<span style="inline-size:2rem;opacity:.65;font-size:.75rem;font-family:ui-monospace,monospace;">0</span>
<md-toolbar density="0" variant="floating" aria-label="d0"><md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button><md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button><md-icon-button icon="link" aria-label="Link"></md-icon-button></md-toolbar>
<span style="inline-size:2rem;opacity:.65;font-size:.75rem;font-family:ui-monospace,monospace;">-1</span>
<md-toolbar density="-1" variant="floating" aria-label="d1"><md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button><md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button><md-icon-button icon="link" aria-label="Link"></md-icon-button></md-toolbar>
<span style="inline-size:2rem;opacity:.65;font-size:.75rem;font-family:ui-monospace,monospace;">-2</span>
<md-toolbar density="-2" variant="floating" aria-label="d2"><md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button><md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button><md-icon-button icon="link" aria-label="Link"></md-icon-button></md-toolbar>
<span style="inline-size:2rem;opacity:.65;font-size:.75rem;font-family:ui-monospace,monospace;">-3</span>
<md-toolbar density="-3" variant="floating" aria-label="d3"><md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button><md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button><md-icon-button icon="link" aria-label="Link"></md-icon-button></md-toolbar>
<span style="inline-size:2rem;opacity:.65;font-size:.75rem;font-family:ui-monospace,monospace;">-4</span>
<md-toolbar density="-4" variant="floating" aria-label="d4"><md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button><md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button><md-icon-button icon="link" aria-label="Link"></md-icon-button></md-toolbar>
</div>i18n — everything user-facing is either an aria-label you set on the
toolbar or one on each slotted control. Translate all of them; there is no
default string to inherit. Longer localized md-button labels widen the bar, so
re-check overflow per locale.
| Custom property | Purpose | Default |
|---|---|---|
--md-toolbar-container-color | Container background | Per colour scheme |
--md-toolbar-icon-color | Slotted standard / outlined icon ink, and inherited host text | standard: on-surface-variant · vibrant: on-surface |
--md-toolbar-container-shape | Border radius | 0 (docked) / pill (floating) |
--md-toolbar-container-height | Height — and the width of a vertical floating toolbar | 64px |
--md-toolbar-padding | Padding | 16px (docked) / 8px (floating) |
--md-toolbar-gap | Gap between items | 32px (docked) / 4px (floating) |
--md-toolbar-fab-gap | Gap to the paired FAB | 16px (docked) / 8px (floating) |
--md-toolbar-overflow-x / -overflow-y | Opt into scrolling | visible |
--md-toolbar-flex-wrap | Set wrap to wrap instead of scroll | nowrap |
--md-toolbar-scrollbar-width | scrollbar-width of the scroll container | thin |
<!-- index.html <head> — the icon font the components draw from -->
<link rel="stylesheet"
href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap">
<!-- index.html — register the AWC UI elements once -->
<script type="module">
import '@awc-ui/core/define';
</script>
<div style="display:flex;flex-direction:column;gap:24px;inline-size:100%;">
<md-toolbar variant="floating" aria-label="Compact" style="--md-toolbar-container-height: 48px; --md-toolbar-gap: 2px; --md-toolbar-padding: 4px;">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button>
<md-icon-button icon="link" aria-label="Link"></md-icon-button>
</md-toolbar>
<md-toolbar variant="floating" aria-label="Branded" style="--md-toolbar-container-color: #4527a0; --md-toolbar-icon-color: #ffffff; --md-toolbar-container-shape: 12px;">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button>
<md-icon-button icon="link" aria-label="Link"></md-icon-button>
</md-toolbar>
<md-toolbar variant="docked" aria-label="Roomy docked" style="--md-toolbar-gap: 48px; --md-toolbar-container-height: 80px; --md-toolbar-container-color: var(--md-sys-color-tertiary-container); --md-toolbar-icon-color: var(--md-sys-color-on-tertiary-container);">
<md-icon-button icon="arrow_back" aria-label="Back"></md-icon-button>
<md-icon-button icon="star" aria-label="Star"></md-icon-button>
<md-icon-button icon="share" aria-label="Share"></md-icon-button>
</md-toolbar>
</div>// Icons need the Material Symbols stylesheet in index.html — see Installation.
import { MdIconButton, MdToolbar } from '@awc-ui/react';
export function Demo() {
return (
<>
<div style={{ display: 'flex', flexDirection: 'column', gap: '24px', inlineSize: '100%' }}>
<MdToolbar variant="floating" aria-label="Compact" style={{ '--md-toolbar-container-height': '48px', '--md-toolbar-gap': '2px', '--md-toolbar-padding': '4px' }}>
<MdIconButton icon="format_bold" aria-label="Bold"></MdIconButton>
<MdIconButton icon="format_italic" aria-label="Italic"></MdIconButton>
<MdIconButton icon="link" aria-label="Link"></MdIconButton>
</MdToolbar>
<MdToolbar variant="floating" aria-label="Branded" style={{ '--md-toolbar-container-color': '#4527a0', '--md-toolbar-icon-color': '#ffffff', '--md-toolbar-container-shape': '12px' }}>
<MdIconButton icon="format_bold" aria-label="Bold"></MdIconButton>
<MdIconButton icon="format_italic" aria-label="Italic"></MdIconButton>
<MdIconButton icon="link" aria-label="Link"></MdIconButton>
</MdToolbar>
<MdToolbar variant="docked" aria-label="Roomy docked" style={{ '--md-toolbar-gap': '48px', '--md-toolbar-container-height': '80px', '--md-toolbar-container-color': 'var(--md-sys-color-tertiary-container)', '--md-toolbar-icon-color': 'var(--md-sys-color-on-tertiary-container)' }}>
<MdIconButton icon="arrow_back" aria-label="Back"></MdIconButton>
<MdIconButton icon="star" aria-label="Star"></MdIconButton>
<MdIconButton icon="share" aria-label="Share"></MdIconButton>
</MdToolbar>
</div>
</>
);
}// Icons need the Material Symbols stylesheet in index.html — see Installation.
// app.module.ts — register the AWC UI elements once
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
import { AwcUiModule } from '@awc-ui/angular';
@NgModule({
imports: [AwcUiModule],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
})
export class AppModule {}
<!-- app.component.html -->
<div style="display:flex;flex-direction:column;gap:24px;inline-size:100%;">
<md-toolbar variant="floating" aria-label="Compact" style="--md-toolbar-container-height: 48px; --md-toolbar-gap: 2px; --md-toolbar-padding: 4px;">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button>
<md-icon-button icon="link" aria-label="Link"></md-icon-button>
</md-toolbar>
<md-toolbar variant="floating" aria-label="Branded" style="--md-toolbar-container-color: #4527a0; --md-toolbar-icon-color: #ffffff; --md-toolbar-container-shape: 12px;">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button>
<md-icon-button icon="link" aria-label="Link"></md-icon-button>
</md-toolbar>
<md-toolbar variant="docked" aria-label="Roomy docked" style="--md-toolbar-gap: 48px; --md-toolbar-container-height: 80px; --md-toolbar-container-color: var(--md-sys-color-tertiary-container); --md-toolbar-icon-color: var(--md-sys-color-on-tertiary-container);">
<md-icon-button icon="arrow_back" aria-label="Back"></md-icon-button>
<md-icon-button icon="star" aria-label="Star"></md-icon-button>
<md-icon-button icon="share" aria-label="Share"></md-icon-button>
</md-toolbar>
</div><script setup>
// Icons need the Material Symbols stylesheet in index.html — see Installation.
import '@awc-ui/core/define';
</script>
<template>
<div style="display:flex;flex-direction:column;gap:24px;inline-size:100%;">
<md-toolbar variant="floating" aria-label="Compact" style="--md-toolbar-container-height: 48px; --md-toolbar-gap: 2px; --md-toolbar-padding: 4px;">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button>
<md-icon-button icon="link" aria-label="Link"></md-icon-button>
</md-toolbar>
<md-toolbar variant="floating" aria-label="Branded" style="--md-toolbar-container-color: #4527a0; --md-toolbar-icon-color: #ffffff; --md-toolbar-container-shape: 12px;">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button>
<md-icon-button icon="link" aria-label="Link"></md-icon-button>
</md-toolbar>
<md-toolbar variant="docked" aria-label="Roomy docked" style="--md-toolbar-gap: 48px; --md-toolbar-container-height: 80px; --md-toolbar-container-color: var(--md-sys-color-tertiary-container); --md-toolbar-icon-color: var(--md-sys-color-on-tertiary-container);">
<md-icon-button icon="arrow_back" aria-label="Back"></md-icon-button>
<md-icon-button icon="star" aria-label="Star"></md-icon-button>
<md-icon-button icon="share" aria-label="Share"></md-icon-button>
</md-toolbar>
</div>
</template><script>
// Icons need the Material Symbols stylesheet in index.html — see Installation.
import '@awc-ui/core/define';
</script>
<div style="display:flex;flex-direction:column;gap:24px;inline-size:100%;">
<md-toolbar variant="floating" aria-label="Compact" style="--md-toolbar-container-height: 48px; --md-toolbar-gap: 2px; --md-toolbar-padding: 4px;">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button>
<md-icon-button icon="link" aria-label="Link"></md-icon-button>
</md-toolbar>
<md-toolbar variant="floating" aria-label="Branded" style="--md-toolbar-container-color: #4527a0; --md-toolbar-icon-color: #ffffff; --md-toolbar-container-shape: 12px;">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button>
<md-icon-button icon="link" aria-label="Link"></md-icon-button>
</md-toolbar>
<md-toolbar variant="docked" aria-label="Roomy docked" style="--md-toolbar-gap: 48px; --md-toolbar-container-height: 80px; --md-toolbar-container-color: var(--md-sys-color-tertiary-container); --md-toolbar-icon-color: var(--md-sys-color-on-tertiary-container);">
<md-icon-button icon="arrow_back" aria-label="Back"></md-icon-button>
<md-icon-button icon="star" aria-label="Star"></md-icon-button>
<md-icon-button icon="share" aria-label="Share"></md-icon-button>
</md-toolbar>
</div>Every default resolves through an md-sys-color role, so a toolbar that sets no
custom properties follows the theme on its own:
<!-- index.html <head> — the icon font the components draw from -->
<link rel="stylesheet"
href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap">
<!-- index.html — register the AWC UI elements once -->
<script type="module">
import '@awc-ui/core/define';
</script>
<md-toolbar variant="floating" aria-label="Untouched defaults">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button>
<md-icon-button variant="filled" icon="add" aria-label="Add"></md-icon-button>
<md-icon-button variant="tonal" toggle selected icon="star" aria-label="Star"></md-icon-button>
</md-toolbar>// Icons need the Material Symbols stylesheet in index.html — see Installation.
import { MdIconButton, MdToolbar } from '@awc-ui/react';
export function Demo() {
return (
<>
<MdToolbar variant="floating" aria-label="Untouched defaults">
<MdIconButton icon="format_bold" aria-label="Bold"></MdIconButton>
<MdIconButton icon="format_italic" aria-label="Italic"></MdIconButton>
<MdIconButton variant="filled" icon="add" aria-label="Add"></MdIconButton>
<MdIconButton variant="tonal" toggle selected icon="star" aria-label="Star"></MdIconButton>
</MdToolbar>
</>
);
}// Icons need the Material Symbols stylesheet in index.html — see Installation.
// app.module.ts — register the AWC UI elements once
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
import { AwcUiModule } from '@awc-ui/angular';
@NgModule({
imports: [AwcUiModule],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
})
export class AppModule {}
<!-- app.component.html -->
<md-toolbar variant="floating" aria-label="Untouched defaults">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button>
<md-icon-button variant="filled" icon="add" aria-label="Add"></md-icon-button>
<md-icon-button variant="tonal" toggle selected icon="star" aria-label="Star"></md-icon-button>
</md-toolbar><script setup>
// Icons need the Material Symbols stylesheet in index.html — see Installation.
import '@awc-ui/core/define';
</script>
<template>
<md-toolbar variant="floating" aria-label="Untouched defaults">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button>
<md-icon-button variant="filled" icon="add" aria-label="Add"></md-icon-button>
<md-icon-button variant="tonal" toggle selected icon="star" aria-label="Star"></md-icon-button>
</md-toolbar>
</template><script>
// Icons need the Material Symbols stylesheet in index.html — see Installation.
import '@awc-ui/core/define';
</script>
<md-toolbar variant="floating" aria-label="Untouched defaults">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button>
<md-icon-button variant="filled" icon="add" aria-label="Add"></md-icon-button>
<md-icon-button variant="tonal" toggle selected icon="star" aria-label="Star"></md-icon-button>
</md-toolbar>| Part | Element |
|---|---|
container | The inner flex container holding slotted content |
fab-container | The FAB wrapper |
<!-- index.html <head> — the icon font the components draw from -->
<link rel="stylesheet"
href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap">
<!-- index.html — register the AWC UI elements once -->
<script type="module">
import '@awc-ui/core/define';
</script>
<style>
.parts-toolbar::part(container) { gap: 20px; padding-inline: 20px; }
.parts-toolbar::part(fab-container) { transform: translateY(-4px); }
</style>
<md-toolbar class="parts-toolbar" variant="floating" aria-label="Styled parts">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button>
<md-icon-button icon="link" aria-label="Link"></md-icon-button>
<md-fab slot="fab" icon="add" aria-label="Create"></md-fab>
</md-toolbar>// Icons need the Material Symbols stylesheet in index.html — see Installation.
import { MdFab, MdIconButton, MdToolbar } from '@awc-ui/react';
export function Demo() {
return (
<>
<style>
.parts-toolbar::part(container) { gap: 20px; padding-inline: 20px; }
.parts-toolbar::part(fab-container) { transform: translateY(-4px); }
</style>
<MdToolbar className="parts-toolbar" variant="floating" aria-label="Styled parts">
<MdIconButton icon="format_bold" aria-label="Bold"></MdIconButton>
<MdIconButton icon="format_italic" aria-label="Italic"></MdIconButton>
<MdIconButton icon="link" aria-label="Link"></MdIconButton>
<MdFab slot="fab" icon="add" aria-label="Create"></MdFab>
</MdToolbar>
</>
);
}// Icons need the Material Symbols stylesheet in index.html — see Installation.
// app.module.ts — register the AWC UI elements once
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
import { AwcUiModule } from '@awc-ui/angular';
@NgModule({
imports: [AwcUiModule],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
})
export class AppModule {}
<!-- app.component.html -->
<style>
.parts-toolbar::part(container) { gap: 20px; padding-inline: 20px; }
.parts-toolbar::part(fab-container) { transform: translateY(-4px); }
</style>
<md-toolbar class="parts-toolbar" variant="floating" aria-label="Styled parts">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button>
<md-icon-button icon="link" aria-label="Link"></md-icon-button>
<md-fab slot="fab" icon="add" aria-label="Create"></md-fab>
</md-toolbar><script setup>
// Icons need the Material Symbols stylesheet in index.html — see Installation.
import '@awc-ui/core/define';
</script>
<template>
<style>
.parts-toolbar::part(container) { gap: 20px; padding-inline: 20px; }
.parts-toolbar::part(fab-container) { transform: translateY(-4px); }
</style>
<md-toolbar class="parts-toolbar" variant="floating" aria-label="Styled parts">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button>
<md-icon-button icon="link" aria-label="Link"></md-icon-button>
<md-fab slot="fab" icon="add" aria-label="Create"></md-fab>
</md-toolbar>
</template><script>
// Icons need the Material Symbols stylesheet in index.html — see Installation.
import '@awc-ui/core/define';
</script>
<style>
.parts-toolbar::part(container) { gap: 20px; padding-inline: 20px; }
.parts-toolbar::part(fab-container) { transform: translateY(-4px); }
</style>
<md-toolbar class="parts-toolbar" variant="floating" aria-label="Styled parts">
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button>
<md-icon-button icon="link" aria-label="Link"></md-icon-button>
<md-fab slot="fab" icon="add" aria-label="Create"></md-fab>
</md-toolbar>A floating pill hugs its content by design. To embed one edge to edge — a text-editor formatting bar, say — size the host and let the container part fill it:
<!-- index.html <head> — the icon font the components draw from -->
<link rel="stylesheet"
href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap">
<!-- index.html — register the AWC UI elements once -->
<script type="module">
import '@awc-ui/core/define';
</script>
<style>
.editor-bar {
inline-size: 100%;
margin: 0;
--md-toolbar-container-shape: 0;
}
.editor-bar::part(container) { flex: 1; }
</style>
<md-toolbar class="editor-bar" variant="floating" aria-label="Editor formatting">
<md-icon-button icon="undo" aria-label="Undo"></md-icon-button>
<md-icon-button icon="redo" aria-label="Redo"></md-icon-button>
<md-divider></md-divider>
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button>
<md-icon-button icon="format_list_bulleted" aria-label="Bulleted list"></md-icon-button>
</md-toolbar>// Icons need the Material Symbols stylesheet in index.html — see Installation.
import { MdDivider, MdIconButton, MdToolbar } from '@awc-ui/react';
export function Demo() {
return (
<>
<style>
.editor-bar {
inline-size: 100%;
margin: 0;
--md-toolbar-container-shape: 0;
}
.editor-bar::part(container) { flex: 1; }
</style>
<MdToolbar className="editor-bar" variant="floating" aria-label="Editor formatting">
<MdIconButton icon="undo" aria-label="Undo"></MdIconButton>
<MdIconButton icon="redo" aria-label="Redo"></MdIconButton>
<MdDivider></MdDivider>
<MdIconButton icon="format_bold" aria-label="Bold"></MdIconButton>
<MdIconButton icon="format_italic" aria-label="Italic"></MdIconButton>
<MdIconButton icon="format_list_bulleted" aria-label="Bulleted list"></MdIconButton>
</MdToolbar>
</>
);
}// Icons need the Material Symbols stylesheet in index.html — see Installation.
// app.module.ts — register the AWC UI elements once
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
import { AwcUiModule } from '@awc-ui/angular';
@NgModule({
imports: [AwcUiModule],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
})
export class AppModule {}
<!-- app.component.html -->
<style>
.editor-bar {
inline-size: 100%;
margin: 0;
--md-toolbar-container-shape: 0;
}
.editor-bar::part(container) { flex: 1; }
</style>
<md-toolbar class="editor-bar" variant="floating" aria-label="Editor formatting">
<md-icon-button icon="undo" aria-label="Undo"></md-icon-button>
<md-icon-button icon="redo" aria-label="Redo"></md-icon-button>
<md-divider></md-divider>
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button>
<md-icon-button icon="format_list_bulleted" aria-label="Bulleted list"></md-icon-button>
</md-toolbar><script setup>
// Icons need the Material Symbols stylesheet in index.html — see Installation.
import '@awc-ui/core/define';
</script>
<template>
<style>
.editor-bar {
inline-size: 100%;
margin: 0;
--md-toolbar-container-shape: 0;
}
.editor-bar::part(container) { flex: 1; }
</style>
<md-toolbar class="editor-bar" variant="floating" aria-label="Editor formatting">
<md-icon-button icon="undo" aria-label="Undo"></md-icon-button>
<md-icon-button icon="redo" aria-label="Redo"></md-icon-button>
<md-divider></md-divider>
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button>
<md-icon-button icon="format_list_bulleted" aria-label="Bulleted list"></md-icon-button>
</md-toolbar>
</template><script>
// Icons need the Material Symbols stylesheet in index.html — see Installation.
import '@awc-ui/core/define';
</script>
<style>
.editor-bar {
inline-size: 100%;
margin: 0;
--md-toolbar-container-shape: 0;
}
.editor-bar::part(container) { flex: 1; }
</style>
<md-toolbar class="editor-bar" variant="floating" aria-label="Editor formatting">
<md-icon-button icon="undo" aria-label="Undo"></md-icon-button>
<md-icon-button icon="redo" aria-label="Redo"></md-icon-button>
<md-divider></md-divider>
<md-icon-button icon="format_bold" aria-label="Bold"></md-icon-button>
<md-icon-button icon="format_italic" aria-label="Italic"></md-icon-button>
<md-icon-button icon="format_list_bulleted" aria-label="Bulleted list"></md-icon-button>
</md-toolbar>md-toolbar::part(container) { gap: 12px;}md-app-bar ·
md-fab ·
md-icon-button ·
md-button-group ·
md-menu ·
md-navigation-bar ·
md-divider
md-toolbarTwo artefacts to give your AI agent so it generates correct UI with this component. The per-component spec answers "how do I use this exact tag?". The main-llm spec answers "which tag should I pick in the first place?".
md-toolbar spec card
Identity · when to use / when NOT · decision cues · behavioural contract · do/don't · anti-patterns · full API. Paste into your agent when you're implementing with this component.
System-prompt preamble · decision matrix · token reference · page recipes · anti-patterns. Paste into the system prompt at the start of a piece of work.