Buttons help people take actions, such as sending an email, sharing a document, or liking
a comment. Five variants cover the full emphasis range, from elevated and filled down to text.
The Button component implements the Material Design 3 Buttons pattern: five emphasis levels (elevated, filled, tonal, outlined, text), each available in any
color role, plus a chrome-less bare variant.
Under the hood it renders Bits UI's Button.Root, wraps
content with the shared Layer state-layer/ripple overlay,
and supports a leading icon, a loading state, and rendering as an <a> via href.
import { Button } from '@noxlovette/material'; See it live, with Controls, in Storybook rather than a hand-rolled preview here.
Pick a variant matching the action's emphasis, and a color role matching its concept:
<script lang="ts">
import { Button } from '@noxlovette/material';
</script>
<Button variant="filled" color="primary" iconProps={{ name: 'send' }}>
Send
</Button>
<Button variant="outlined" color="primary">Cancel</Button> Native semantics
Renders Bits UI's Button.Root as a native <button> (or <a> when href is set), giving default keyboard activation and role support.
Disabled state
disabled removes the button from the tab order and exposes the disabled attribute to assistive tech.
Loading state
loading swaps the content for a LoadingIndicator while keeping the button's footprint stable.