@plumeria/headlessui
Wrapper component library that seamlessly integrates Radix UI with Plumeria styleName abstraction layer.
@plumeria/headlessui is a curated set of essential headless primitives, built on Radix UI
Installation headlessui
To use the headlessui integrated into Radix UI, configuration of @plumeria/core and your bundler is required.
Please refer to the Installation section for details.
npm i @plumeria/headlessuiyarn add @plumeria/headlessuipnpm i @plumeria/headlessuiHow styleName works
When styleName is passed to a custom component, it is automatically compiled to className and style at the call site — before the component ever runs.
Therefore, each @plumeria/headlessui component does not need to know about styleName at all; it simply spreads ...props onto the underlying Radix primitive.
import * as css from '@plumeria/core';
import { DialogTrigger } from '@plumeria/headlessui';
const styles = css.create({
primary: {
padding: '10px',
backgroundColor: 'navy',
color: '#fff',
},
});
// styleName is compiled to className="xxxxxxxx" at this call site
<Dialog.Trigger styleName={styles.primary}>Open</Dialog.Trigger>;Interactive Demo
Below is a live demo of all six components from @plumeria/headlessui, styled with Plumeria.
Dialog
Popover
Tooltip
Accordion
Tabs
Collapsible
DropdownMenu
Select
Checkbox
Switch
RadioGroup
Slider
ContextMenu
Right click hereMenubar
NavigationMenu
Toast
Toggle
ToggleGroup
ScrollArea
AlertDialog
Components
The following twenty component groups are exported. All components support ref forwarding and props spread.
Accordion
ItemHeaderTriggerContent
AlertDialog
TriggerPortalOverlayContentTitleDescriptionActionCancel
Checkbox
Indicator
Collapsible
TriggerContent
ContextMenu
TriggerPortalContentGroupLabelItemCheckboxItemRadioGroupRadioItemItemIndicatorSeparatorArrowSubSubTriggerSubContent
Dialog
TriggerPortalOverlayContentTitleDescriptionClose
DropdownMenu
TriggerPortalContentGroupLabelItemCheckboxItemRadioGroupRadioItemItemIndicatorSeparatorArrowSubSubTriggerSubContent
Menubar
MenuTriggerPortalContentGroupLabelItemCheckboxItemRadioGroupRadioItemItemIndicatorSeparatorArrowSubSubTriggerSubContent
NavigationMenu
SubListItemTriggerLinkIndicatorContentViewport
Popover
TriggerPortalContentCloseArrowAnchor
RadioGroup
ItemIndicator
ScrollArea
ViewportScrollbarThumbCorner
Select
TriggerValueIconPortalContentViewportGroupLabelItemItemTextItemIndicatorScrollUpButtonScrollDownButtonSeparatorArrow
Slider
TrackRangeThumb
Switch
Thumb
Tabs
ListTriggerContent
Toast
ProviderViewportTitleDescriptionActionClose
Toggle
ToggleGroup
Item
Tooltip
ProviderTriggerPortalContentArrow