Docs Components Uncategorized

ToggleButton

React example follows below.
ts
import { ToggleButton } from "@grassroot/ui-react";
const toggleButtonFixture = {
id: "toggle-button",
label: "Notifications",
defaultPressed: true,
} satisfies {
id: string;
label: string;
defaultPressed: boolean;
};
export default function ToggleButtonDemo() {
return (
<ToggleButton defaultPressed={toggleButtonFixture.defaultPressed}>
{toggleButtonFixture.label}
</ToggleButton>
);
}
ts
<script setup lang="ts">
import { ToggleButton } from "@grassroot/ui-vue";
const toggleButtonFixture = {
id: "toggle-button",
label: "Notifications",
defaultPressed: true,
} satisfies {
id: string;
label: string;
defaultPressed: boolean;
};
</script>
<template>
<ToggleButton :default-pressed="toggleButtonFixture.defaultPressed" @update:pressed="() => {}">
{{ toggleButtonFixture.label }}
</ToggleButton>
</template>
ts
import { Component } from "@angular/core";
const toggleButtonFixture = {
id: "toggle-button",
label: "Notifications",
defaultPressed: true,
} satisfies {
id: string;
label: string;
defaultPressed: boolean;
};
import { GrassrootToggleButton } from "@grassroot/ui-angular";
@Component({
selector: "app-toggle-button-demo",
standalone: true,
imports: [GrassrootToggleButton],
host: { style: "display: contents" },
template: `
<grassroot-toggle-button [defaultPressed]="fixture.defaultPressed">{{
fixture.label
}}</grassroot-toggle-button>
`,
})
export class ToggleButtonDemoComponent {
protected readonly fixture = toggleButtonFixture;
}
export default ToggleButtonDemoComponent;
ts
<script lang="ts">
import { ToggleButton } from "@grassroot/ui-svelte";
const toggleButtonFixture = {
id: "toggle-button",
label: "Notifications",
defaultPressed: true,
} satisfies {
id: string;
label: string;
defaultPressed: boolean;
};
</script>
<ToggleButton defaultPressed={toggleButtonFixture.defaultPressed}>
{toggleButtonFixture.label}
</ToggleButton>
ts
/** @jsxImportSource solid-js */
import { ToggleButton } from "@grassroot/ui-solid";
const toggleButtonFixture = {
id: "toggle-button",
label: "Notifications",
defaultPressed: true,
} satisfies {
id: string;
label: string;
defaultPressed: boolean;
};
export default function ToggleButtonDemo() {
return (
<ToggleButton defaultPressed={toggleButtonFixture.defaultPressed}>
{toggleButtonFixture.label}
</ToggleButton>
);
}

Installation

API Reference

Import

import { ToggleButton } from "@grassroot/ui-react";

Props

Prop
Type
Default
Requirement
Description
pressed
boolean | undefined
—
optional
—
defaultPressed
boolean | undefined
—
optional
—
onPressedChange
((pressed: boolean) => void) | undefined
—
optional
—
variant
ButtonVariant | undefined
"ghost"
optional
Visual style.
size
ButtonSize | undefined
"md"
optional
—
tone
ButtonTone | undefined
"accent"
optional
—
Prop
pressed
Type
boolean | undefined
Default
—
Requirement
optional
Description
—
Prop
defaultPressed
Type
boolean | undefined
Default
—
Requirement
optional
Description
—
Prop
onPressedChange
Type
((pressed: boolean) => void) | undefined
Default
—
Requirement
optional
Description
—
Prop
variant
Type
ButtonVariant | undefined
Default
"ghost"
Requirement
optional
Description
Visual style.
Prop
size
Type
ButtonSize | undefined
Default
"md"
Requirement
optional
Description
—
Prop
tone
Type
ButtonTone | undefined
Default
"accent"
Requirement
optional
Description
—

Events

EventPayload
onPressedChange((pressed: boolean) => void) | undefined

Content regions

  • children

Native attributes

Standard DOM and ARIA attributes not listed above spread onto the root element.

Import

import { ToggleButton } from "@grassroot/ui-vue";

Props

Prop
Type
Default
Requirement
pressed
boolean | undefined
undefined
optional
defaultPressed
boolean | undefined
false
optional
disabled
boolean | undefined
—
optional
variant
ButtonVariant | undefined
"ghost"
optional
size
ButtonSize | undefined
"md"
optional
tone
ButtonTone | undefined
"accent"
optional
Prop
pressed
Type
boolean | undefined
Default
undefined
Requirement
optional
Prop
defaultPressed
Type
boolean | undefined
Default
false
Requirement
optional
Prop
disabled
Type
boolean | undefined
Default
—
Requirement
optional
Prop
variant
Type
ButtonVariant | undefined
Default
"ghost"
Requirement
optional
Prop
size
Type
ButtonSize | undefined
Default
"md"
Requirement
optional
Prop
tone
Type
ButtonTone | undefined
Default
"accent"
Requirement
optional

Events

EventPayload
update:pressed[pressed: boolean]

Content regions

  • default

Import

import { Component } from "@angular/core";
import { GrassrootToggleButton } from "@grassroot/ui-angular";

Props

Prop
Type
Default
Requirement
pressed
boolean
—
optional
defaultPressed
boolean
false
optional
disabled
boolean
false
optional
"aria-label"
string
undefined
optional
className
string
—
optional
variant
ButtonVariant
"ghost"
optional
size
ButtonSize
"md"
optional
tone
ButtonTone
"accent"
optional
Prop
pressed
Type
boolean
Default
—
Requirement
optional
Prop
defaultPressed
Type
boolean
Default
false
Requirement
optional
Prop
disabled
Type
boolean
Default
false
Requirement
optional
Prop
"aria-label"
Type
string
Default
undefined
Requirement
optional
Prop
className
Type
string
Default
—
Requirement
optional
Prop
variant
Type
ButtonVariant
Default
"ghost"
Requirement
optional
Prop
size
Type
ButtonSize
Default
"md"
Requirement
optional
Prop
tone
Type
ButtonTone
Default
"accent"
Requirement
optional

Events

EventPayload
pressedChangeboolean

Content regions

  • default

Import

import { ToggleButton } from "@grassroot/ui-svelte";

Props

Prop
Type
Default
Requirement
pressed
boolean
—
optional
defaultPressed
boolean
false
optional
disabled
boolean
—
optional
onPressedChange
(pressed: boolean) => void
—
optional
variant
ButtonVariant
"ghost"
optional
size
ButtonSize
"md"
optional
tone
ButtonTone
"accent"
optional
className
string
—
optional
Prop
pressed
Type
boolean
Default
—
Requirement
optional
Prop
defaultPressed
Type
boolean
Default
false
Requirement
optional
Prop
disabled
Type
boolean
Default
—
Requirement
optional
Prop
onPressedChange
Type
(pressed: boolean) => void
Default
—
Requirement
optional
Prop
variant
Type
ButtonVariant
Default
"ghost"
Requirement
optional
Prop
size
Type
ButtonSize
Default
"md"
Requirement
optional
Prop
tone
Type
ButtonTone
Default
"accent"
Requirement
optional
Prop
className
Type
string
Default
—
Requirement
optional

Events

EventPayload
onPressedChange(pressed: boolean) => void

Content regions

  • children

Import

import { ToggleButton } from "@grassroot/ui-solid";

Props

Prop
Type
Default
Requirement
pressed
boolean
—
optional
defaultPressed
boolean
—
optional
disabled
boolean
—
optional
onPressedChange
(pressed: boolean) => void
—
optional
variant
ButtonVariant
—
optional
size
ButtonSize
—
optional
tone
ButtonTone
—
optional
className
string
—
optional
Prop
pressed
Type
boolean
Default
—
Requirement
optional
Prop
defaultPressed
Type
boolean
Default
—
Requirement
optional
Prop
disabled
Type
boolean
Default
—
Requirement
optional
Prop
onPressedChange
Type
(pressed: boolean) => void
Default
—
Requirement
optional
Prop
variant
Type
ButtonVariant
Default
—
Requirement
optional
Prop
size
Type
ButtonSize
Default
—
Requirement
optional
Prop
tone
Type
ButtonTone
Default
—
Requirement
optional
Prop
className
Type
string
Default
—
Requirement
optional

Events

EventPayload
onPressedChange(pressed: boolean) => void

Content regions

  • children

Native attributes

Standard DOM and ARIA attributes not listed above spread onto the root element.