chrome:shell.skip

generated:catalog.entry.fab.title

generated:catalog.entry.fab.description

@xngui/components/fab
@xngui/components/fab

chrome:demo.section

chrome:demo.preview

demo-preview:hints.category.navigation:
Tab
demo-preview:hints.category.focus:
Focus
demo-preview:hints.category.shortcuts:
Enter / Space
demo-preview:projection.slots-label:
[xStart] ng-content [xEnd]
import { Component } from '@angular/core';
import { XFab } from '@xngui/components/fab';
import { XIcon } from '@xngui/icons';
 
@Component({
selector: 'app-example',
imports: [XFab, XIcon],
templateUrl: './fab.component.html',
})
export class ExampleComponent {
protected onClicked(event: { originalEvent: MouseEvent }): void {
// handle click
}
protected onFocused(): void {
// handle focus
}
protected onBlurred(): void {
// handle blur
}
}

chrome:demo.events.title

chrome:demo.events.empty

chrome:demo.api.title

x-fab

chrome:demo.api.col.property
chrome:demo.api.col.type
chrome:demo.api.col.default
chrome:demo.api.col.description
size
XSize
—
Visual size tier — falls back to XConfigService when unset.
density
XDensity
—
Spacing offsets — orthogonal to `size`; falls back to XConfigService when unset.
variant
XVariant
—
Color role — falls back to XConfigService when unset.
appearance
XAppearance
—
Surface treatment — falls back to XConfigService when unset.
disabled
boolean
—
Prevents interaction and sets `aria-disabled`.
loading
boolean
false
Shows spinner and blocks interaction — sets `aria-busy`.
ripple
boolean
—
Material-style press ripple — falls back to XConfigService when unset.
ariaLabel chrome:demo.api.required
string
—
Accessible name — required.
label
string
—
Optional extended FAB label rendered after the projected icon.