Skip to content

Component Overview

vyuh_cdx_ui exports a focused catalog of widget families, and the CDX UI docs also cover sibling UI packages such as cdx_panes, vyuh_table, vyuh_timelines, vyuh_command_palette, and cdx_field_formatting. This page is the authoritative index — one row per component or package surface, grouped by family, with a one-line description and a link to the deep-dive page.

For background on the underlying contracts (theme tokens, overlay positioning, interaction model), see the Concepts section.

Theme

TypePurposePage
CdxConfigThemeExtension — control radius, padding, height, hover/selected tint, status paletteTheming
createCdxThemeFactory producing a ThemeData with all CDX component themes wired inTheming
CdxConfig.of(context)Scale-aware resolver for control sizing, gaps, icon size, and status paletteDensity & Sizing

Buttons

WidgetPurposePage
Button.filled / .outlined / .textLabel + optional icon, async loading state, destructive variantButtons
Button.iconIcon-only button — compact for dense rows, isActive for toggle barsButtons
Button.toggleFilterChip-based on/off toggleButtons
SplitActionButtonPrimary action joined to a caret menu — filled / outlined / textButtons
CdxSegmentedTabsPill-style segmented selector with sliding indicatorButtons
CdxDismissAffordanceCompact close glyph for chips, inputs, filter rowsButtons
AlertsNotificationsButtonBell icon with unread-count BadgeButtons

Dialogs

WidgetPurposePage
DialogShellSized container — header + content + optional footerDialogs
ConfirmationDialog.info / .error / .confirm / .destructiveStandard four confirmation flavorsDialogs
DialogHeader / DialogFooter / DialogAction / DialogMessageComposable primitives for custom dialogsDialogs
DialogVariantstandard / primary / destructive / error chromeDialogs
MessageSeverityerror / warning / success / info for footer messagesDialogs
WidgetPurposePage
Dropdown<T>Single-select with sync / async / query-driven options, optional searchDropdowns
MultiSelectDropdown<T>Multi-select panel with checkbox tiles, async search, "select shown" / "clear all"Dropdowns
DropdownFormField<T>FormField adapter for DropdownDropdowns
ActionMenuSealed ActionMenuItem (action / divider / header) — three-dot menus, user menusDropdowns
ActionMenuItem.customFree-form embedded menu content such as sliders or inline controlsDropdowns
DropdownTrigger.field / .button / .iconPre-built trigger variantsDropdowns
DropdownController<T> / DropdownState<T>Imperative API + observable snapshotDropdowns

Pickers

WidgetPurposePage
DateTimePickerEditable text field + popover, DateTimePickerMode.date / .time / .dateTime, Today quick-jumpPickers
CdxDateRangePickerRange field with two-tap calendar popoverPickers
DateTimePopoverInline calendar + scroll-time popover (used by DateTimePicker)Pickers
CdxDateRangePopover / CdxSingleDatePopoverCalendar grids with shadcn-style range visualsPickers
TimeScrollPickeriOS-style hour + minute scroll columns with minuteStepPickers
TimeStepper◀ 22 ▶ compact stepper with scroll-wheel + direct-editPickers
DateTimeInputFormatterTextInputFormatter enforcing DD/MM/YYYY HH:mm-style patternsPickers

Cards

WidgetPurposePage
SectionCardHeader (icon + title + trailing) + body, plus SectionCard.stateful (loading/error/empty)Cards
CompactCardLow-profile card for list items — leading / trailing / footer slotsCards
HeroCardSelectable visual tile with hero icon + title + selection checkCards
StatTile / StatGridCompact metric tile and responsive metric gridCards

Badges, Chips & Banners

WidgetPurposePage
StatusBadge (+ .primary / .secondary / .tertiary / .error / .neutral / .tinted / .compact / .count)Status pills with rectangle / pill / rounded shapesBadges
StatusBadgeColorSchemeSealed strategy — explicit / primary / secondary / tertiary / error / neutral / tintedBadges
CdxChipFilter / token chip — selected, onDeleted, labelBuilder, compactBadges
Banner.warning / .critical / .success / .info / .neutralStatus banner card — BannerType paletteBadges
UnderConstructionOverlay + UnderConstructionControllerApp-wide "under construction" banner registryBadges

Inputs

WidgetPurposePage
CdxSliderLabeled slider with icon, top / trailing / none label position, compact densityInputs
RemarksFieldLive-formatting rich text input via textf (bold, italic, highlight, code)Inputs
RemarksTextRead-only renderer for the same markupInputs
FormattingToolbarBold / italic / highlight / underline / strike / code / superscript / subscriptInputs
CdxFieldLabelStandard form-field label with required asterisk + focus / error coloringInputs

State Views

WidgetPurposePage
AsyncView<T>Future<T> / Stream<T> / direct data with loading / error / empty / content branchesState Views
LoadingStateCentered CircularProgress + optional messageState Views
EmptyStateIcon + title + subtitle + optional actionState Views
ErrorStateTappable error icon → diagnostics dialog (timestamp, type, message, stack)State Views
RouteErrorViewFull-page error surface for GoRouter.errorBuilderState Views

Layout & Navigation

WidgetPurposePage
MasterDetailScaffold + PanelPresentation.docked / .overlay / .autoResponsive master-detail with resizable docked panel and barrier-overlay fallbackLayout
LazyIndexedStack / LazyIndexedStackBuilderIndexedStack that builds children on first selectionLayout
RouteAwareTabController / RouteAwareTabBar / RouteAwareTabBarViewTabController synced to a go_router locationLayout
RouteAwareLazyIndexedStackLazy variant of the above, indexed by tab routeLayout
Wizard + WizardController + WizardStepSidebar wizard with step indicators, sequential mode, busy gatingLayout

Panels

WidgetPurposePage
CdxSlideInPanel.showSlide-in panel from right / left / bottom with a built-in inner navigatorPanels
CdxPanelPage.pushPush a sub-page inside the panel (master/detail without nesting modals)Panels
PanelDimension.size / .fraction / .clampedWidth / height sizing strategiesPanels
CdxSlideInPanelNavigation (extension on BuildContext)dismissAndGo / dismissAndPush — close all panels, then routePanels

Data Tables

WidgetPurposePage
TableWidget<T>Generic table with pagination, resize, reorder, pinned columns, row selection, loading/error/empty statesData Tables
TableColumn<T>Text, badge, number, and custom column factories with header actions and menu item hooksData Tables
TableConfig / TableDensity / TableThemeGrouped configuration, density presets, and theme overridesData Tables
HoverColumnResizer / TableResizeStorePublic resize primitives for custom table headersData Tables

Overlays

HelperPurposePage
buildOverlayFollowerViewport-aware CompositedTransformFollower for dropdown / picker overlaysOverlays
buildOverlayMaterialStandard Material shell for overlay contentOverlays
CdxStateLayerCanonical interactive surface — hover / splash / selection / focusOverlays
CdxInteractionOverlayToken resolvers for hover / splash / highlight / mouse cursor / outlined borderOverlays

Timeline

WidgetPurposePage
ActivityTimelineWrapper around vyuh_timelines with date grouping, alternating mode, milestone bandTimeline
ActivityItem (sealed)TaskActivityItem / MilestoneActivityItem / CustomActivityItemTimeline
ActivityEntryContentTitle + actor + timestamp content layout (inline / card / compact)Timeline
Timeline / TimelineEntryLower-level timeline package surface for custom activity feedsTimeline
DotIndicator / IconIndicator / CustomIndicatorIndicator primitives from vyuh_timelinesTimeline

Command Palette

TypePurposePage
CommandPalettePluginVyuh plugin that registers the global shortcut, owns providers, and opens the palette dialogCommand Palette
CommandPaletteConfig / PlatformLaunchShortcutLaunch shortcut, tab-cycle shortcut, and auth/session canOpen gateCommand Palette
SearchProvider / SearchTab / PaletteItemProvider contract and result modelCommand Palette
NavigationSearchProviderDefault provider for route/navigation entries with optional permission gatesCommand Palette

Authorization

WidgetPurposePage
DisabledOverlayWrap any widget to render dimmed + non-interactive with optional tooltipAuthorization
LockedSurfaceFull-bleed "Access Restricted" placeholder for denied routes / sectionsAuthorization
RedactedValueInline •••• mask used in field-level redactionAuthorization

Filter / Animation / Keys / Progress

WidgetPurposePage
FilterBar (alias ChoiceChipGroup)Single-select chip strip with optional leading icon + SemanticKeyFilter & Animation
BeaconPulsing ring or glowing dot for attention / pending statesFilter & Animation
SemanticKeyDot-separated ValueKey factory for automation / testing / analyticsFilter & Animation
CircularProgress / LineProgressThemed determinate / indeterminate progressFilter & Animation

Quick import reference

Everything is exported from a single barrel:

dart
import 'package:vyuh_cdx_ui/vyuh_cdx_ui.dart';

A lighter cards sub-export covers SectionCard / CompactCard / HeroCard without pulling the rest of the catalog:

dart
import 'package:vyuh_cdx_ui/cards.dart';

When you already import the main barrel and only need SectionCard, use a show combinator to avoid duplicate card names in examples:

dart
import 'package:vyuh_cdx_ui/cards.dart' show SectionCard;

Sibling packages have their own barrels:

dart
import 'package:cdx_panes/cdx_panes.dart';
import 'package:vyuh_table/vyuh_table.dart';
import 'package:vyuh_timelines/vyuh_timelines.dart';
import 'package:vyuh_command_palette/vyuh_command_palette.dart';
import 'package:cdx_field_formatting/cdx_field_formatting.dart';

Next steps

  • Quick Start — compose primitives into a screen
  • Theming — tune CdxConfig for your brand
  • Overlays — how dropdowns, menus, and pickers share one positioning + interaction layer