Skip to content

Vyuh CDX UI

Design System Primitives

Flutter design system for the Vyuh CDX suite. A cohesive catalog of widgets — dialogs, dropdowns, pickers, cards, badges, timelines, sliders, and state views — backed by a single CdxConfig theme extension and a unified overlay/interaction layer.

Why CDX UI?

Design System Primitives

A cohesive catalog of Flutter widgets — dialogs, dropdowns, pickers, cards, badges, sliders, timelines, and state views — composed by every Vyuh CDX package.

CdxConfig Theme Extension

A single ThemeExtension governs control radius, padding, control height, hover/selected tints, and a brightness-aware status palette (success/warning/critical/info/neutral) that Material 3 does not ship.

Unified Overlay Plumbing

CdxStateLayer + CdxInteractionOverlay + buildOverlayFollower share one hover/splash/selection contract and one viewport-aware positioning algorithm across every dropdown, menu, and picker.

CDX Stack Ready

Ships with Flutter-first primitives plus CDX integrations for formatting, timelines, routing helpers, Vyuh errors, and the broader Vyuh platform where package surfaces need it.

Getting Started

Core Concepts

Component Families

FamilyComponents
ThemeCdxConfig, createCdxTheme, control/density/status tokens
ButtonsButton, SplitActionButton, CdxSegmentedTabs, CdxDismissAffordance, AlertsNotificationsButton
DialogsDialogShell, ConfirmationDialog, DialogHeader/Footer/Action/Message, DialogVariant
DropdownsDropdown, MultiSelectDropdown, ActionMenu, DropdownTrigger, DropdownFormField
PickersDateTimePicker, CdxDateRangePicker, DateTimePopover, TimeScrollPicker, TimeStepper
CardsSectionCard, CompactCard, HeroCard, StatTile, StatGrid
Badges & BannersStatusBadge, CdxChip, Banner, UnderConstructionOverlay
InputsCdxSlider, RemarksField, RemarksText, FormattingToolbar, CdxFieldLabel
State ViewsAsyncView, LoadingState, EmptyState, ErrorState, RouteErrorView
Layout & NavigationMasterDetailScaffold, LazyIndexedStack, RouteAwareTabController, Wizard
Data TablesTableWidget, TableColumn, TableConfig, TableDensity, TableTheme
PanelsCdxSlideInPanel, CdxPanelPage, CdxSlideInPanelNavigation
TimelineActivityTimeline, ActivityItem, Timeline, TimelineItem, indicators
Command PaletteCommandPalettePlugin, SearchProvider, SearchTab, PaletteItem, NavigationSearchProvider
AuthorizationDisabledOverlay, LockedSurface, RedactedValue
Filter / Animation / KeysFilterBar, ChoiceChipGroup, Beacon, SemanticKey
ProgressCircularProgress, LineProgress

Learn More

At a glance

vyuh_cdx_ui is the visual foundation of the Vyuh CDX stack. Every other CDX visual package — vyuh_entity_system_ui, vyuh_dashboard_editor, vyuh_form_editor, vyuh_workflow_editor — composes the primitives in this package so an entity detail screen, a dashboard config panel, and a workflow inspector all read as parts of the same product.

You can also use vyuh_cdx_ui directly in app code. Current package assumptions are Flutter 3.32+, Dart 3.8+, MobX for state-holding widgets, go_router for route-aware navigation helpers, cdx_field_formatting for formatted field values, and vyuh_timelines for timeline layouts. The package also participates in the Vyuh ecosystem through vyuh_core / vyuh_errors.

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

// Themed confirmation dialog
final confirm = await showDialog<bool>(
  context: context,
  builder: (_) => ConfirmationDialog.destructive(
    title: 'Delete area?',
    description: 'This action cannot be undone.',
    confirmLabel: 'Delete',
    onCancel: () => Navigator.of(context).pop(false),
    onConfirm: () => Navigator.of(context).pop(true),
  ),
);

// State-aware async wrapper
AsyncView<List<Area>>(
  future: api.getAll(),
  contentBuilder: (context, areas) => AreasList(areas: areas),
);

Packages in the CDX UI family

PackageRole
vyuh_cdx_uiDesign system primitives (this product)
cdx_panesIDE-style workspace shell with docks, navigation rail, and pane tabs
vyuh_tableTheme-driven data table with resize, reorder, pinning, row states, and pagination
vyuh_timelinesLower-level high-performance timeline primitive used by ActivityTimeline
vyuh_command_paletteVyuh command palette plugin with pluggable search providers
cdx_field_formattingFieldFormatter singleton + tag-based date/number/duration formatters
cdx_checklistChecklist editor / runner / viewer that composes CDX UI, field formatting, and Vyuh form packages

See CDX UI Packages for full dependency direction.

Component Catalog

Every widget vyuh_cdx_ui exports, grouped by family. Visit the linked pages for full API and example snippets, or browse the Component Overview for the high-level catalog.

Coming next — a unified CDX demo app

A demo exercising every CDX package together is planned. Until then, follow the Quick Start to compose a screen from CDX UI primitives.