bc_ui library

Classes

BCAccordion
HeroUI Native Accordion (accordion.css / accordion.constants.ts): a column of collapsible sections.
BCAccordionContent
The body revealed when its BCAccordionItem expands.
BCAccordionController
Owns a BCAccordion's set of expanded item values, so the accordion can be driven from outside without lifting the set into your own setState.
BCAccordionIndicator
The chevron at the trailing edge of a BCAccordionTrigger, rotating 0 → -180° on a spring (mass 4, stiffness 1000, damping 140) as its item expands.
BCAccordionItem
One collapsible section: usually a BCAccordionTrigger followed by a BCAccordionContent.
BCAccordionTrigger
The row that toggles its BCAccordionItem: child on the leading side, the indicator flush to the trailing edge.
BCAnchoredOverlayController
Controller for a BCAnchoredOverlay.
BCAppHeader
A top app bar built from bc_ui tokens.
BCAvatar
BCAvatarFallback
BCAvatarImage
BCBottomNav
A bottom navigation bar styled to the bc_ui / heroui design system.
BCBottomNavItem
A single destination in a BCBottomNav.
A provider's brand mark, painted as vector art at size.
BCBreakpoints
BCButton
HeroUI Native Button.
BCCalendar
A month calendar: header with a month/year toggle and arrows, weekday row, and a swipeable grid of days.
BCCard
HeroUI Native Card: a BCSurface with Header/Body/Footer/Title/Description slots (card.tsx renders Root directly onto Surface).
BCCardBody
BCCardDescription
Card description: text-base, muted (card.css card__description).
BCCardFooter
BCCardHeader
BCCardTitle
Card title: text-lg, medium weight, foreground (card.css card__label).
BCCheckbox
HeroUI Native Checkbox (checkbox.css): 24×24 with 8px continuous corners, field background + field shadow (primary), accent overlay with a spring-scaled check when selected (stiffness 1200, damping 120); danger colors when invalid.
BCChip
HeroUI Native Chip (chip.css): variant × color background matrix, medium-weight label, gap 4, self-start.
BCCloseButton
HeroUI Native CloseButton: a 32px tertiary icon-only button with a muted close icon (close-button.tsx: Button tertiary/sm/iconOnly with the root height overridden to 32 by close-button.css).
BCColorsDark
BCColorsLight
HeroUI Native semantic color palettes, precomputed from the oklch source tokens in heroui-native/src/styles/variables.css and the color-mix(in oklab, ...) formulas in theme.css. Regenerate with the gen_colors.py script if upstream tokens change — do not hand-edit individual values.
BCControlField
HeroUI Native ControlField (control-field.css): a row (gap 12) pairing a control (Switch, Checkbox, Radio…) with a label and optional description; tapping anywhere activates the control.
BCDateField
A date-picker field styled like BCInput, with a trailing calendar icon.
BCDatePickerDialog
The calendar in a modal dialog. Kept as a standalone entry point: final date = await BCDatePickerDialog.show(context, ...);
BCDateTimePicker
A date and time field: a read-only input that opens day/hour/minute wheels in a popover, a dialog or a bottom sheet.
BCDateTimeWheel
Scrolling day + time wheels, in the style of iOS pickers but built from bc_ui tokens.
BCDescription
HeroUI Native Description: muted helper text that fades in on mount (description.css, 150ms ease-out).
BCDialog
HeroUI Native Dialog.
BCDialogContent
Dialog surface (dialog.css): overlay background, 20px padding, 24px continuous corners, overlay shadow (1px white hairline in dark mode).
BCDialogDescription
Dialog description: text-base, muted.
BCDialogTitle
Dialog title: text-lg, medium, foreground.
BCDuration
BCEmptyState
A placeholder shown when there's no content to display — empty inboxes, zero search results, first-run prompts, and so on.
BCEmptyStateAvatarCluster
Helper for a HeroUI-style overlapping avatar-group illustration, matching the "With avatar group" empty-state design. Purely decorative.
BCFab
A circular floating action button (accent background, soft shadow, press-scale feedback). For an expandable menu use BCSpeedDial.
BCFieldError
HeroUI Native FieldError: danger-colored validation message that fades in on mount (field-error.css, 150ms ease-out).
BCFlipCard
A card that flips between front and back with a 3D rotation.
BCHeaderIconButton
A round 40px icon button for BCAppHeader leading/action slots.
BCInput
HeroUI Native Input (input.css): min-height 48, 12px horizontal padding, 14px continuous corners, field background + field shadow (primary) or default background (secondary), 2px accent focus outline (danger when invalid), muted placeholder.
BCInputOTP
BCInputOTPGroup
BCInputOTPSeparator
BCInputOTPSlot
BCInputOTPSlotCaret
BCInputOTPSlotPlaceholder
BCInputOTPSlotValue
BCLabel
HeroUI Native Label: medium-weight field label with an optional required asterisk (label.css).
BCLinkButton
HeroUI Native LinkButton: a ghost-variant button with no highlight feedback, auto height and no padding (link-button.tsx enforces these).
BCListGroup
HeroUI Native ListGroup (list-group.css): a zero-padding BCSurface stacking BCListGroupItems with hairline separators between them.
BCListGroupItem
A list row: prefix | title/description | suffix, 16px padding, gap 12, press highlight (no scale).
BCLoadingOverlay
Covers a page or a section while work is in flight: fades a backdrop in, blocks input underneath, and centers an indicator with an optional label.
BCMenu
HeroUI Native Menu (menu.css): an anchored overlay list — overlay background, 24px continuous corners, px6/py12, items with 16px-radius press highlight.
BCMenuItem
Menu row (menu.css menu__item): gap 10, px10/py8, radius 16, press highlight; danger variant colors the title/icon.
BCMenuLabel
Section label (menu.css menu__label): text-sm, medium, muted.
BCMenuSeparator
BCMotion
HeroUI Native animation constants, collected from the per-component *.constants.ts / *.animation.ts files. Reanimated spring parameters map 1:1 onto Flutter's SpringDescription (same physics model).
BCNavDrawer
Vertical navigation for expanded and larger windows, or as a slide-over on compact ones (Material 3 "navigation drawer", styled from bc_ui tokens).
BCNavDrawerDestination
A selectable destination. Only these count towards selectedIndex.
BCNavDrawerDivider
A hairline rule between groups.
BCNavDrawerItem
An entry in a BCNavDrawer: a destination, a section label, or a rule.
BCNavDrawerSection
A muted heading above a group of destinations.
BCNavRail
Vertical navigation for medium and larger windows — the counterpart to BCBottomNav on compact ones (Material 3 "navigation rail", styled from bc_ui tokens).
BCNavRailDestination
A destination in a BCNavRail.
BCPasswordInput
A BCInput preset for passwords with a visibility toggle suffix.
BCPhoneField
An international phone field: a country picker in the field's prefix, and a number that groups itself as you type.
BCPhoneNumber
A phone number as a country plus a national significant number.
BCPopover
HeroUI Native Popover (popover.css): an anchored overlay card (overlay background, px16/py12, 24px continuous corners, overlay shadow) that scales in from the anchor.
BCPopoverDescription
Popover description: text-base, muted, 1.375 line-height.
BCPopoverTitle
Popover title: text-lg, medium, foreground.
BCPressable
Port of HeroUI Native's PressableFeedback engine.
BCProgress
Determinate and indeterminate progress, linear or circular (Material 3 "progress indicators", drawn from bc_ui tokens).
BCRadio<T>
HeroUI Native Radio (radio.css): a row with label/description content and a trailing 24px round indicator — field background when idle, accent when selected (danger when invalid), with a 10px fading thumb.
BCRadioGroup<T>
HeroUI Native RadioGroup: provides the selected value to descendant BCRadios via an inherited scope.
BCRadius
HeroUI Native radius scale — all multiples of the 8px base radius (--radius: 0.5rem in heroui-native/src/styles/variables.css).
BCRange
A start/end pair for BCRangeSlider.
BCRangeSlider
Two-thumb slider for choosing a range — price filters, date windows, thresholds. Shares BCSlider's metrics and spring so the two read as one family.
BCRating
A star (or custom-icon) rating control.
BCRibbon
A merchandising ribbon for product cards — 'Hot Sale', 'Nearby', '-30%', 'Best deal'.
BCScrollShadow
HeroUI Native ScrollShadow: fades the edges of a scrollable while more content is available in that direction (200ms fade, scroll-shadow sources). Wrap the scrollable; the shadows are painted over its edges in the container color (defaults to the background token).
BCSearchField
HeroUI Native SearchField (search-field.css): an BCInput with a leading search icon (absolute left 12) and an animated 24×24 clear button (absolute right 12) that appears while the field has text.
BCSelect<T>
HeroUI Native Select (select.css): a surface-styled trigger (py12/px16, radius 16, surface shadow) with a rotating chevron, opening an option list (overlay bg, p12, radius 24) with accent check indicators.
BCSelectItem<T>
BCSeparator
HeroUI Native Separator (separator.css): hairline (thin) or 6px (thick) line in the separator token color.
BCShadows
Shadow values from heroui-native/src/styles/variables.css.
BCShadowSet
A HeroUI shadow token: a list of layered outer shadows plus an optional 1px inner hairline used where the CSS source specifies an inset shadow (dark-mode overlays). The hairline is rendered as an inside-stroke border by the consuming widget, which is visually identical to a 1px zero-blur inset shadow.
BCShapes
Corner shape helpers. HeroUI Native sets borderCurve: 'continuous' (iOS squircle) on most rounded components; RoundedSuperellipseBorder is Flutter's exact equivalent of Apple's continuous corner curve.
BCSizes
BCSkeleton
BCSkeletonAnimation
BCSkeletonGroup
HeroUI Native SkeletonGroup: cascades isLoading, variant, and animation to descendant BCSkeletons via an inherited scope (skeleton-group.tsx passes the same values through context).
BCSkeletonPulseAnimation
BCSkeletonShimmerAnimation
BCSlider
HeroUI Native Slider (slider.css): 20px-tall default track with 12px radius, accent fill, and a 28×20 accent thumb container holding an accent-foreground knob. The thumb snaps with a soft spring (mass 0.5, stiffness 200, damping 15).
BCSliverAppHeader
A pinned sliver header with an iOS-style large title that collapses into the compact toolbar title as the list scrolls.
BCSocialAuthButton
A social sign-in button: a BCButton with a provider's brand mark as its start content.
BCSpacing
HeroUI Native spacing — tailwind's 4px unit (--spacing: 0.25rem).
BCSpeedDial
An expandable FAB (speed dial): tapping the button reveals a stack of labelled action pills over a dim or blurred backdrop, and the button's icon morphs to openIcon. Items and labels anchor to alignment.
BCSpeedDialItem
A single action inside a BCSpeedDial.
BCSpinner
HeroUI Native Spinner: a gradient ring rotating 360° every 1000ms (linear). Sizes 16/24/32; default color resolves to accent (spinner.tsx colorMap).
BCSurface
HeroUI Native Surface: the base container for non-overlay components (surface.css) — 16px padding, 24px continuous corners, surface shadow.
BCSwitch
HeroUI Native Switch (switch.css / switch.animation.ts): 48×24 pill track (default → accent, 150ms), 28×20 pill thumb sliding from left 2 to 18 with a stiff spring (mass 2, stiffness 1600, damping 120), thumb color white → accent-foreground, root press scale.
BCTabItem<T>
BCTabs<T>
HeroUI Native Tabs (tabs.css): a segmented control.
BCTabsController<T>
Shared state for a BCTabs bar and the BCTabView it drives.
BCTabView<T>
The swipeable panels behind a BCTabs bar.
BCTagGroup<T>
HeroUI Native TagGroup (tag-group.css): a wrapping list (gap 8) of selectable pills; selected tags use the accent-soft background and foreground.
BCTagItem<T>
BCText
HeroUI Native Text: typography with the library's type scale.
BCTextArea
HeroUI Native TextArea (text-area.css): a 128px-tall multiline BCInput with 8px vertical padding.
BCTextField
HeroUI Native TextField: a vertical stack (gap 6, text-field.css) of Label / Input / Description / ErrorMessage parts that share invalid, disabled, and required state through an inherited scope.
BCTextFieldDescription
BCTextFieldError
BCTextFieldInput
BCTextFieldLabel
BCTheme
BCThemeExtension
The full HeroUI Native semantic token set as a Flutter ThemeExtension.
BCThemeOverrides
BCTimeField
A time-picker field styled like BCInput, with a trailing clock icon.
BCTimePickerDialog
The time wheels in a modal dialog, with Cancel / Confirm. Kept as a standalone entry point: final time = await BCTimePickerDialog.show(context, ...);
BCTimeWheel
Hour / minute (and AM/PM) scroll wheels.
BCToast
HeroUI Native Toast.
BCToastData
BCToastProvider
BCToggleButton
A button that stays visually "on" while selected — Like, Save, Bookmark, mute, and similar sticky actions.
BCToggleButtonGroup<T>
A row of BCToggleButtons behaving as a set — single-select (like a segmented choice) or multi-select (like formatting toggles).
BCToggleButtonOption<T>
One option inside a BCToggleButtonGroup.
BCToolbar
A bar of actions for the current screen — Material 3 "toolbars", the bottom-of-screen counterpart to BCAppHeader.
BCTypography
HeroUI Native typography — Inter with tailwind v4's default text scale.

Enums

BCAccordionSelectionMode
How many BCAccordionItems a BCAccordion keeps open at once.
BCAccordionVariant
A BCAccordion's look. default is a reserved word in Dart, so heroui's default variant is defaultVariant — the same rename BCSurfaceVariant uses.
BCAppHeaderVariant
How a BCAppHeader paints itself behind the content it sits over.
BCAvatarColor
BCAvatarSize
BCAvatarStatus
BCAvatarVariant
BCBottomNavLabels
How labels are displayed in a BCBottomNav.
BCBottomNavVariant
BCBrandLogoStyle
How a provider's mark is coloured inside a BCSocialAuthButton.
BCButtonSize
BCButtonVariant
Button variants from heroui-native (button.css).
BCCardVariant
BCCheckboxVariant
BCChipColor
BCChipSize
BCChipVariant
BCEmptyStateVariant
Visual container style for BCEmptyState.
BCFabAlignment
Which corner a FAB / speed dial anchors to (controls how the speed-dial items and their labels align).
BCFabBackdrop
Backdrop shown behind an open BCSpeedDial.
BCInputOTPVariant
BCInputVariant
BCLinkButtonSize
BCLoadingBackdrop
How the content behind a BCLoadingOverlay is treated while loading.
BCMenuItemVariant
BCNavDrawerVariant
BCNavRailLabels
How labels are displayed in a collapsed BCNavRail.
BCOverlayAlignment
Horizontal alignment of the overlay relative to its anchor.
BCOverlayPlacement
Vertical placement preference for an anchored overlay.
BCPickerPresentation
How a picker field surfaces its content.
BCPressFeedback
Which press feedback a BCPressable renders.
BCProgressColor
BCProgressSize
BCProgressVariant
BCRadioVariant
BCRatingSize
BCRibbonColor
BCRibbonForm
The shape a ribbon takes on a card.
BCRibbonPosition
Corner or edge the ribbon attaches to. start/end follow the ambient Directionality, so a topStart ribbon sits top-right in RTL.
BCRibbonSize
BCRibbonVariant
Fill treatment, matching the rest of the library's variant prop.
BCSelectPresentation
How a BCSelect surfaces its options.
BCSeparatorOrientation
BCSeparatorVariant
BCSkeletonVariant
BCSocialProvider
Identity providers with a bundled brand mark.
BCSpinnerColor
BCSpinnerSize
BCSurfaceVariant
BCTabsVariant
BCTagGroupSelectionMode
BCTagSize
BCTagVariant
BCTextColor
BCTextType
Type scale from heroui-native's Text component (text.css).
BCTextWeight
BCToastPlacement
Which screen edge toasts stack against (toast.animation.ts placement).
BCToastVariant
BCToggleButtonSize
BCToggleButtonVariant
Selected-state styling for BCToggleButton.
BCToolbarAxis
BCToolbarVariant
IsoCode

Extensions

BCContext on BuildContext

Typedefs

BCDateTimePickerPresentation = BCPickerPresentation
Former name of BCPickerPresentation, from when only the date-and-time picker had presentations.