@plumeria/headlessui
Wrapper component library that seamlessly integrates Radix UI with Plumeria styleName abstraction layer.
@plumeria/headlessui is a set of components that wrap Radix UI primitives.
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
<DialogTrigger styleName={styles.primary}>Open</DialogTrigger>;Interactive Demo
Below is a live demo of all six components from @plumeria/headlessui, styled with Plumeria.
Dialog
Popover
Tooltip
Accordion
Tabs
Collapsible
Component API
The following six component groups are exported. All components support ref forwarding and props spread.
Dialog
Build accessible modal dialogs.
Dialog— wrapsDialog.RootDialogTrigger— wrapsDialog.TriggerDialogPortal— wrapsDialog.PortalDialogOverlay— wrapsDialog.OverlayDialogContent— wrapsDialog.ContentDialogTitle— wrapsDialog.TitleDialogDescription— wrapsDialog.DescriptionDialogClose— wrapsDialog.Close
Popover
Display a popup anchored to a trigger element.
Popover— wrapsPopover.RootPopoverTrigger— wrapsPopover.TriggerPopoverPortal— wrapsPopover.PortalPopoverContent— wrapsPopover.ContentPopoverClose— wrapsPopover.ClosePopoverArrow— wrapsPopover.ArrowPopoverAnchor— wrapsPopover.Anchor
Tooltip
Show brief supplementary information on hover or focus.
TooltipProvider— wrapsTooltip.ProviderTooltip— wrapsTooltip.RootTooltipTrigger— wrapsTooltip.TriggerTooltipPortal— wrapsTooltip.PortalTooltipContent— wrapsTooltip.ContentTooltipArrow— wrapsTooltip.Arrow
Accordion
Expandable/collapsible panels triggered by header clicks.
Accordion— wrapsAccordion.RootAccordionItem— wrapsAccordion.ItemAccordionHeader— wrapsAccordion.HeaderAccordionTrigger— wrapsAccordion.TriggerAccordionContent— wrapsAccordion.Content
Tabs
Organize content across switchable tab panels.
Tabs— wrapsTabs.RootTabsList— wrapsTabs.ListTabsTrigger— wrapsTabs.TriggerTabsContent— wrapsTabs.Content
Collapsible
Toggle visibility of a content region.
Collapsible— wrapsCollapsible.RootCollapsibleTrigger— wrapsCollapsible.TriggerCollapsibleContent— wrapsCollapsible.Content