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.