Runtime theming
Initialize primary and secondary colors once, then update them live with CaravaggioUI.updateColors and CColorsBuilder.
Flutter UI package · v1.0.4
CaravaggioUI streamlines your UI workflow with theme-aware components, design tokens, and runtime color customization — so you ship polished interfaces faster.
flutter pub add caravaggio_ui
Why CaravaggioUI
From typography and gradients to complex scaffolds and data views — built with flexibility and consistency at the core.
Initialize primary and secondary colors once, then update them live with CaravaggioUI.updateColors and CColorsBuilder.
Shared spacing, radius, shadows, and semantic colors via AppSpacing, AppRadius, AppShadow, and AppColors.
Buttons, text fields, autocomplete, dropdowns, date & time pickers, checkboxes, and radio groups with four visual styles each.
Gradient scaffolds, pill tabs, popups, bottom sheets, toasts, carousels, and list tiles — ready to drop into your app.
Theme-aware CGradient presets and CText factory constructors with chainable style modifiers.
Tables, circular indicators, progress bars, animated loaders, and loading wrappers for complete user feedback loops.
Component library
Explore the full catalog in the example app or API documentation.
CTextCGradientCButtonCTextFieldCAutocompleteCDropdownCDatePickerCTimePickerCCheckboxCRadioGroupCScaffoldCTabsCPopupCModalBottomSheetCToastCWrapperCIconBadgeCCarouselCTagChipCTileCTableCCircularIndicatorCCircularProgressIndicatorCLinearProgressIndicatorCLoaderAppRadiusAppSpacingAppShadowAppColorsCColorsInteractive demos for every component — colors, forms, scaffolds, dialogs, carousels, and more.
Browse demosGet started
Add the package, initialize the theme, wrap your app with CToast, and start building.
flutter pub add caravaggio_ui
void main() {
CaravaggioUI.initialize(
primaryColor: const Color(0xFF662D8C),
secondaryColor: const Color(0xFFED1E79),
);
runApp(const MainApp());
}
MaterialApp(
theme: CUI.themeData,
builder: (context, child) =>
CToast(child: child ?? const SizedBox.shrink()),
home: const HomeScreen(),
);
CButton.elevated(
gradient: CGradient.primaryToSecondary,
onPressed: () {},
child: CText.label('Press me'),
);
CColorsBuilder(
builder: (context) => CScaffold(
title: CText.title('Hello'),
body: CText.body('Welcome to CaravaggioUI'),
),
);
Install from pub.dev, explore the example app, and dive into the documentation.