Ariakit
/

Toolbar with Select

Rendering Select as a ToolbarItem inside a Toolbar.

import "./style.css";
import { useState } from "react";
import * as Ariakit from "@ariakit/react";
import * as icons from "./icons.tsx";
const options = [
{ value: "Align Left", icon: icons.alignLeft },
{ value: "Align Center", icon: icons.alignCenter },
{ value: "Align Right", icon: icons.alignRight },
];
export default function Example() {
const [value, setValue] = useState("Align Left");
const selectedIcon = options.find((option) => option.value === value)?.icon;
return (
<Ariakit.Toolbar className="toolbar">
<Ariakit.ToolbarItem className="button secondary">
{icons.bold} Bold
<Ariakit.ToolbarItem className="button secondary">
{icons.italic} Italic
<Ariakit.ToolbarItem className="button secondary">
{icons.underline} Underline
<Ariakit.ToolbarSeparator className="separator" />
<Ariakit.SelectProvider value={value} setValue={setValue}>
aria-label="Text alignment"
className="button secondary"
>
{selectedIcon} {value} <Ariakit.SelectArrow />
<Ariakit.SelectPopover gutter={4} className="popover">
{options.map((option) => (
key={option.value}
value={option.value}
className="select-item"
>
{option.icon} {option.value}
))}
);
}

Stay tuned

Join 1,000+ subscribers and receive monthly tips & updates on new Ariakit content.

No spam. Unsubscribe anytime. Read latest issue