mervey_ui_kit 0.4.0 copy "mervey_ui_kit: ^0.4.0" to clipboard
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. message is required (the host localizes it); margin, icon and duration are optional. Fill/border derive from glassForeground so 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 uses viewPadding.top instead of padding.top, which a parent sheet's MediaQuery.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's BottomSheetThemeData. Three mutually-exclusive sizing modes: content-height (default), fill: true (full-height scrolling panel that clears the status bar and home indicator), and heightFactor: (partial picker). It reserves room for the native drag handle and insets the bottom safe area for bounded modes.

  • Breaking: removed AppBottomSheet, AppBottomSheetHeader, and showAppBottomSheet. They painted their own surface + drag handle, which drifted from sheets opened directly via showModalBottomSheet. Drive the look from BottomSheetThemeData and open with showAppModalSheet instead.

    Migration: replace showAppBottomSheet(context, builder: (_) => AppBottomSheet(child: x)) with showAppModalSheet(context, builder: (_) => x), and set the sheet surface / shape / dragHandleSize on your app theme's BottomSheetThemeData. AppSheetDragHandle stays available for manual composition.

0.2.0 #

  • Single source of truth for the host brand. AppButton's primary Cupertino variant now fills with AppColorPalette.brandPrimary (and tints its label with onBrand) read off the installed ThemeExtension, matching the Material variant and the secondary Cupertino variant. Previously it used CupertinoButton.filled, which painted from CupertinoTheme.primaryColor and fell back to the default iOS blue when the brand palette was not also wired into the Cupertino theme.
  • AppTheme.wrapWithCupertino / cupertinoThemeOf now inherit the brand from the AppColorPalette / AppTypographyTokens already installed on the Material theme, so configuring palette: once on light / dark brands both platforms — no second wiring step. Explicit arguments to cupertinoThemeOf still override the inherited tokens.

0.1.0 #

Initial release.

  • Requires Dart >= 3.6.0 and Flutter >= 3.27.0 (uses Color.withValues(alpha:)).
  • Adaptive Material/Cupertino theming entry point (AppTheme.light, AppTheme.dark) with optional palette, typography and icons overrides.
  • Semantic color palette (AppColorPalette) with .light() / .dark() factories and neutral Material defaults; brand overrides via named parameters. toColorScheme fills the Material 3 surface-container ramp, outline / outlineVariant and surfaceTint so M3 widgets stay aligned with the palette.
  • Cupertino theme builder (AppTheme.cupertinoTheme / cupertinoThemeOf) returns a fully populated CupertinoThemeData on every platform; wrapWithCupertino still gates installation to iOS.
  • Design tokens: AppSpacing, AppRadii, AppFonts, AppTextStyles, AppTypographyTokens, AppIconTokens. Font defaults are null → 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.
  • AppDialogAction exposes dismissOnPress so callers can keep the dialog open for validation / async work.
  • Context extensions: context.colors, context.typography, context.icons.
0
likes
150
points
132
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Adaptive Material/Cupertino design system: theming tokens, semantic color palette and reusable widgets that pick the right backend per platform.

Topics

#design-system #theming #material #cupertino #widget

License

MIT (license)

Dependencies

flutter

More

Packages that depend on mervey_ui_kit