Skip to contentAsheeUIAsheeUI

The portable surface

Every name `asheeui` offers on both platforms, generated from `PORTABLE_API`.

The umbrella is the intersection, not the union: a name is on it only when both renderers publish it under the same name and the same contract. The list is declared once, in PORTABLE_API in @asheeui/core, and both umbrella entries are generated from it, so the two branches cannot differ.

There are 182 names (90 from @asheeui/core, 92 from the branch renderer), plus the platform-specific AsheeConfig alias.

What is not here

A name only one renderer has is not on the umbrella. It stays with the renderer that owns it, so a shared file that imports it is a compile error on the platform that lacks it — which is the point. The compatibility matrix (@asheeui/core/dev) records the classification, and the umbrella guard (pnpm check:umbrella) fails when the list and the matrix disagree.

import { Breadcrumb } from "@asheeui/web";        // web-only
import { RowList, TabBar } from "@asheeui/native"; // native-only

The section kit is on its own subpath, because it is composition vocabulary rather than the component inventory: ActionGroup and SectionHeading come from asheeui/section-kit. The web-only SkipLink stays on @asheeui/web/section-kit.

Adding a name

A name becomes portable in three steps: both renderers publish it, the matrix classifies it shared or shared-api, and the name is added to PORTABLE_API with its kind and source. The generator writes it into both umbrella entries, and the guard fails until the two agree. Editing this page is not one of the steps: rerun node scripts/build-portable-surface.mjs.

Components

Render on both platforms under the same name and the same props.

Name Published by Support
Accordion the renderer shared-api
Alert the renderer shared
AuthLayout the renderer shared-api
Autocomplete the renderer shared-api
Avatar the renderer shared
Badge the renderer shared
Button the renderer shared
CTA the renderer shared-api
Calendar the renderer shared-api
Card the renderer shared
Carousel the renderer shared-api
Centered the renderer shared-api
Chip the renderer shared
Clipboard the renderer shared-api
Container the renderer shared-api
CopyButton the renderer shared
DataTable the renderer shared-api
DocsLayout the renderer shared-api
Drawer the renderer shared-api
Dropdown the renderer shared
Dropmenu the renderer shared-api
EmptyState the renderer shared
ErrorState the renderer shared
FeatureGrid the renderer shared-api
FileUpload the renderer shared-api
Footer the renderer shared-api
Form the renderer shared
Grid the renderer shared-api
HStack the renderer shared
Hero the renderer shared-api
Image the renderer shared
Input the renderer shared
Link the renderer shared-api
LoadingState the renderer shared
MarketingLayout the renderer shared-api
Marquee the renderer shared-api
Modal the renderer shared-api
MultiSelect the renderer shared-api
Navbar the renderer shared-api
Page the renderer shared-api
PageContent the renderer shared
PageFooter the renderer shared
PageHeader the renderer shared
Pagination the renderer shared-api
PasswordInput the renderer shared
PinInput the renderer shared
PricingCard the renderer shared-api
Radio the renderer shared
RadioGroup the renderer shared
SearchInput the renderer shared
Section the renderer shared
Sidebar the renderer shared-api
SidebarLayout the renderer shared-api
Skeleton the renderer shared
Spinner the renderer shared
Split the renderer shared-api
Stack the renderer shared
Stepper the renderer shared
Switch the renderer shared
Table the renderer shared-api
Tabs the renderer shared-api
Testimonials the renderer shared-api
Text the renderer shared-api
Textarea the renderer shared
ToastItem the renderer shared
Tooltip the renderer shared-api
Typography the renderer shared-api
VStack the renderer shared

Providers

Wrap an application once; both renderers read the same provider.

Name Published by Support
AsheeUIProvider the renderer shared
ToastProvider the renderer shared-api

Hooks

Read state the same way on both platforms.

Name Published by Support
useAshee the renderer shared
useAsheeConfig the renderer shared
useBreakpoint the renderer shared
usePrefersReducedMotion the renderer shared
useReduceMotion the renderer shared
useSidebarCollapse the renderer shared
useTheme the renderer shared
useToast the renderer shared

Helpers

A pure function both renderers publish.

Name Published by Support
cn the renderer shared
mergeObject @asheeui/core shared
resolveAnimate the renderer shared
resolveBreakpoint @asheeui/core shared
resolveCardVariant @asheeui/core shared
resolveCascade @asheeui/core shared
resolveClassKey @asheeui/core shared
resolveConfigCascade @asheeui/core shared
resolveGridColumns @asheeui/core shared
resolveRadiusKey @asheeui/core shared

Constants

A value both platforms name.

Name Published by Support
AsheeConfigContext the renderer shared
SidebarCollapseContext the renderer shared
THEME_STORAGE_KEY @asheeui/core shared
ToastContext the renderer shared
themeController the renderer shared

Types

The vocabulary a shared file types its props with.

Name Published by Support
AccordionItem @asheeui/core shared
AccordionSizeKey @asheeui/core shared
AccordionVariant @asheeui/core shared
AsheeColorRegistry @asheeui/core shared
AsheeUIProviderProps the renderer shared
AuthLayoutAlign @asheeui/core shared
AuthLayoutMediaPosition @asheeui/core shared
BreakpointName @asheeui/core shared
BreakpointState @asheeui/core shared
CardImageLoading @asheeui/core shared
CardImagePosition @asheeui/core shared
CardVariant @asheeui/core shared
CarouselItem @asheeui/core shared
CarouselVariant @asheeui/core shared
CenteredAxis @asheeui/core shared
ClipboardState the renderer shared
Color @asheeui/core shared
ColorVariant @asheeui/core shared
ColumnDef @asheeui/core shared
ContainerSize @asheeui/core shared
CtaPanel @asheeui/core shared
DrawerConfigOptions @asheeui/core shared
DrawerPlacement @asheeui/core shared
DrawerSize @asheeui/core shared
ErrorStateRole @asheeui/core shared
ExternalConfig @asheeui/core shared
FeatureGridLink the renderer shared
FeatureItem @asheeui/core shared
FooterGroup @asheeui/core shared
FooterLink the renderer shared
FooterLinkItem @asheeui/core shared
FooterVariant @asheeui/core shared
GridAlign @asheeui/core shared
GridColumns @asheeui/core shared
HeroAlign @asheeui/core shared
HeroMediaPosition @asheeui/core shared
ImageFit @asheeui/core shared
ImageRatioKey @asheeui/core shared
LinkSubstitution @asheeui/core shared
LinkUnderline @asheeui/core shared
LinkVariant @asheeui/core shared
MarketingLayoutBackground @asheeui/core shared
MarqueeAxis @asheeui/core shared
MarqueeDirection @asheeui/core shared
MarqueeSpeedPreset @asheeui/core shared
ModalPosition @asheeui/core shared
ModalSizeKey @asheeui/core shared
NavbarAlign @asheeui/core shared
NavbarLink @asheeui/core shared
NavbarLinkItem @asheeui/core shared
NavbarPosition @asheeui/core shared
NavbarVariant @asheeui/core shared
PaginationLink the renderer shared
PricingCardVariant @asheeui/core shared
PricingFeatureItem @asheeui/core shared
Radius @asheeui/core shared
SidebarCollapse the renderer shared
SidebarItem @asheeui/core shared
SidebarItems @asheeui/core shared
SidebarLayoutSide @asheeui/core shared
SidebarLayoutWidth @asheeui/core shared
SidebarLinkSubstitution @asheeui/core shared
SidebarSection @asheeui/core shared
SidebarSizeKey @asheeui/core shared
SidebarVariant @asheeui/core shared
Size @asheeui/core shared
Space @asheeui/core shared
SplitAlign @asheeui/core shared
SplitRatio @asheeui/core shared
SplitStackAt @asheeui/core shared
StackAlign @asheeui/core shared
StackDirection @asheeui/core shared
StackJustify @asheeui/core shared
StepperStep the renderer shared
Substitution @asheeui/core shared
TabItem @asheeui/core shared
TableVariant @asheeui/core shared
TabsVariant @asheeui/core shared
TestimonialItem @asheeui/core shared
ThemeName @asheeui/core shared
ThemeSelection @asheeui/core shared
ToastContextType the renderer shared
ToastItemData @asheeui/core shared
ToastPlacement @asheeui/core shared
ToastShowOptions @asheeui/core shared
ToastType @asheeui/core shared
TooltipPlacement @asheeui/core shared
TooltipSizeKey @asheeui/core shared
Variant @asheeui/core shared

Generated from PORTABLE_API by scripts/build-portable-surface.mjs. Do not edit by hand.