docs/api-reference/widgets/toggle-widget.md
import {ToggleWidgetDemo} from '@site/src/doc-demos/widgets'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem';
<ToggleWidgetDemo />This widget renders an icon button with internal on/off state. It is useful for lightweight toggles such as layer visibility, mode switches, or filter controls.
<Tabs groupId="language"> <TabItem value="js" label="JavaScript">import {Deck} from '@deck.gl/core';
import {ToggleWidget} from '@deck.gl/widgets';
import '@deck.gl/widgets/stylesheet.css';
new Deck({
widgets: [
new ToggleWidget({
icon: `./moon.png`,
onIcon: `./sun.png`,
label: 'Color mode',
color: 'dodgerblue',
onColor: 'orange',
onChange: checked => updateLayers(checked ? 'light' : 'dark')
})
]
});
import {Deck} from '@deck.gl/core';
import {ToggleWidget} from '@deck.gl/widgets';
import '@deck.gl/widgets/stylesheet.css';
new Deck({
widgets: [
new ToggleWidget({
icon: `./moon.png`,
onIcon: `./sun.png`,
label: 'Color mode',
color: 'dodgerblue',
onColor: 'orange',
onChange: checked => updateLayers(checked ? 'light' : 'dark')
})
]
});
import React from 'react';
import DeckGL, {ToggleWidget} from '@deck.gl/react';
import '@deck.gl/widgets/stylesheet.css';
function App() {
return (
<DeckGL>
<ToggleWidget
icon="./moon.png"
onIcon="./sun.png"
label="Color mode"
color="dodgerblue"
onColor="orange"
onChange={checked => updateLayers(checked ? 'light' : 'dark')}
/>
</DeckGL>
);
}
import {ToggleWidget, type ToggleWidgetProps} from '@deck.gl/widgets';
new ToggleWidget({} satisfies ToggleWidgetProps);
ToggleWidgetProps {#togglewidgetprops}The ToggleWidget accepts the generic WidgetProps and:
initialChecked (boolean, optional) {#initialchecked}falseWhether the widget starts in the checked state.
icon (string, required) {#icon}Data URL used as the default button icon mask.
onIcon (string, optional) {#onicon}iconData URL used as the icon when the widget is checked.
label (string, optional) {#label}Tooltip message displayed while hovering over the widget.
onLabel (string, optional) {#onlabel}labelTooltip shown while the widget is checked.
color (string, optional) {#color}CSS color of the icon.
onColor (string, optional) {#oncolor}colorCSS color of the icon while the widget is checked.
onChange (function, optional) {#onchange}(checked: boolean) => void
Callback invoked after the widget toggles state.
The ToggleWidget uses the shared button theme variables described in the styling guide.