Skip to content

Menu

Radix Dropdown Menu on glass-strong, with labels, separators, radio groups and a danger tone. Typeahead and arrow keys work out of the box.

import { useState } from 'react'; import { Button, MenuContent, MenuItem, MenuLabel, MenuRadioGroup, MenuRadioItem, MenuRoot, MenuSeparator, MenuTrigger, toast, } from '@andrewbehma/glass-ui';

Playground

Menu.tsx
import { useState } from 'react';
import {
Button,
MenuContent,
MenuItem,
MenuLabel,
MenuRadioGroup,
MenuRadioItem,
MenuRoot,
MenuSeparator,
MenuTrigger,
toast,
} from '@andrewbehma/glass-ui';
function Example() {
const [sort, setSort] = useState('updated');
return (
<MenuRoot>
<MenuTrigger asChild>
<Button>Actions</Button>
</MenuTrigger>
<MenuContent>
<MenuItem onSelect={() => toast('Renamed')}>Rename</MenuItem>
<MenuItem onSelect={() => toast('Duplicated')}>Duplicate</MenuItem>
<MenuSeparator />
<MenuLabel>Sort by</MenuLabel>
<MenuRadioGroup value={sort} onValueChange={setSort}>
<MenuRadioItem value="updated">Last updated</MenuRadioItem>
<MenuRadioItem value="name">Name</MenuRadioItem>
</MenuRadioGroup>
<MenuSeparator />
<MenuItem tone="danger" onSelect={() => toast.error('Archived')}>Archive</MenuItem>
</MenuContent>
</MenuRoot>
);
}