mervey_ui_kit 0.4.0
mervey_ui_kit: ^0.4.0 copied to clipboard
Adaptive Material/Cupertino design system: theming tokens, semantic color palette and reusable widgets that pick the right backend per platform.
0.4.0 #
- Added
showAppCopiedToast— a translucent, bordered "Copied" pill toast (frosted-glass foreground) that replaces the default snackbar for copy-to-clipboard confirmations.messageis required (the host localizes it);margin,iconanddurationare optional. Fill/border derive fromglassForegroundso the pill adapts to light/dark. Migrated out of the chats feature so other surfaces (profile, …) can reuse it.
0.3.1 #
- Fixed
showAppModalSheet(fill: true)rising to the very top of the screen when opened from inside another modal sheet (nested picker). The fill height now usesviewPadding.topinstead ofpadding.top, which a parent sheet'sMediaQuery.removePadding(removeTop:true)zeroes — so nested and top-level fill sheets keep the same status-bar gap and drag handle.
0.3.0 #
-
Added
showAppModalSheet— a single modal-sheet opener whose chrome (surface, rounded top, drag handle) comes entirely from the host app'sBottomSheetThemeData. Three mutually-exclusive sizing modes: content-height (default),fill: true(full-height scrolling panel that clears the status bar and home indicator), andheightFactor:(partial picker). It reserves room for the native drag handle and insets the bottom safe area for bounded modes. -
Breaking: removed
AppBottomSheet,AppBottomSheetHeader, andshowAppBottomSheet. They painted their own surface + drag handle, which drifted from sheets opened directly viashowModalBottomSheet. Drive the look fromBottomSheetThemeDataand open withshowAppModalSheetinstead.Migration: replace
showAppBottomSheet(context, builder: (_) => AppBottomSheet(child: x))withshowAppModalSheet(context, builder: (_) => x), and set the sheet surface / shape /dragHandleSizeon your app theme'sBottomSheetThemeData.AppSheetDragHandlestays available for manual composition.
0.2.0 #
- Single source of truth for the host brand.
AppButton's primary Cupertino variant now fills withAppColorPalette.brandPrimary(and tints its label withonBrand) read off the installedThemeExtension, matching the Material variant and the secondary Cupertino variant. Previously it usedCupertinoButton.filled, which painted fromCupertinoTheme.primaryColorand fell back to the default iOS blue when the brand palette was not also wired into the Cupertino theme. AppTheme.wrapWithCupertino/cupertinoThemeOfnow inherit the brand from theAppColorPalette/AppTypographyTokensalready installed on the Material theme, so configuringpalette:once onlight/darkbrands both platforms — no second wiring step. Explicit arguments tocupertinoThemeOfstill override the inherited tokens.
0.1.0 #
Initial release.
- Requires Dart
>= 3.6.0and Flutter>= 3.27.0(usesColor.withValues(alpha:)). - Adaptive Material/Cupertino theming entry point (
AppTheme.light,AppTheme.dark) with optionalpalette,typographyandiconsoverrides. - Semantic color palette (
AppColorPalette) with.light()/.dark()factories and neutral Material defaults; brand overrides via named parameters.toColorSchemefills the Material 3 surface-container ramp,outline/outlineVariantandsurfaceTintso M3 widgets stay aligned with the palette. - Cupertino theme builder (
AppTheme.cupertinoTheme/cupertinoThemeOf) returns a fully populatedCupertinoThemeDataon every platform;wrapWithCupertinostill gates installation to iOS. - Design tokens:
AppSpacing,AppRadii,AppFonts,AppTextStyles,AppTypographyTokens,AppIconTokens. Font defaults arenull→ system fonts on every platform; no third-party fonts ship with the kit. - Components:
AppButton,AppGlassButton,AppTextField,AppSearchField,AppCard,AppTappableCard,AppBottomSheet,AppDialog,AppNavbar,AppPill,AppPillTabs,AppScaffold,AppSnackBar,AppSwitch,AvatarInitials,BadgedIcon,IconActionButton,LoadingState,ErrorState,EmptyState,showInputDialog. AppDialogActionexposesdismissOnPressso callers can keep the dialog open for validation / async work.- Context extensions:
context.colors,context.typography,context.icons.