app_ui_kit 0.0.1+4
app_ui_kit: ^0.0.1+4 copied to clipboard
A comprehensive Flutter UI kit with theming, components, and design presets.
app_ui_kit #
A comprehensive Flutter UI kit with theming, component library, design presets, headless state management, and Google Fonts integration.
Features #
๐จ 12 Design Presets #
Quickly theme your app with brand-inspired presets: Default, Vercel, Airbnb, Apple, Spotify, Vibrant, High Contrast, Starbucks, Linear, Notion, MongoDB, and Raycast. Each preset defines colors, typography, and border radii โ applied automatically to 30+ Material sub-themes.
๐งฉ 30+ Widget Components #
- App Bars:
AppBarV1,TabBarV1,PersistentHeaderV1 - Buttons:
AppButton(with icon factory),AppOutlineButton,AppTextButton - Inputs:
BaseTextField,InputField,PasswordField,PhoneField,SearchInputField,SearchFeatureField+Validatorsutility - Dialogs:
ActionDialog,BottomSheetSelectContent,ToastV1 - Frames:
IconFrame,ListFrame,ProfileFrame,ScreenFrame - Scaffolds:
BaseScaffold,ScaffoldV1,LoadingOverlayV1 - States:
LoadingIndicator,LoadingShimmer,InfoDisplay - Custom Widgets:
CustomIcon,DividerV1,Dot,ExpansionTileV1,HyperLinkText,InitialsDisplay,ListTileV1,PasswordStrengthChecker
All adaptive widgets automatically render Material or Cupertino variants based on platform.
๐ง Headless State Management #
Lightweight ChangeNotifier-based state management with HeadlessValueController, ToggleController, and HeadlessBuilder widget. Zero external state management dependencies โ no hooks, no providers, no blocs.
๐ Helpers #
DateTimeHelper, DialogHelper, InteractionHelper, SliverHelper, SnackBarHelper, ToastHelper.
๐ค Google Fonts Integration #
When a fontFamily is provided (e.g., 'Inter', 'Roboto'), the theme builder automatically resolves it via GoogleFonts.getFont(). Works with any Google Font โ no manual font asset setup required. System fonts (.SF Pro Display, Airbnb Cereal) fall back gracefully.
๐งช 180 Passing Tests #
Full test coverage across all components, presets, themes, helpers, and controllers.
Getting started #
Add app_ui_kit to your pubspec.yaml:
dependencies:
app_ui_kit:
path: path/to/app_ui_kit
Requires Dart SDK ^3.9.2 and Flutter >=3.35.4.
Usage #
Using the config system (recommended) #
import 'package:app_ui_kit/app_ui_kit.dart';
void main() {
AppUiKit.initialize(
config: AppUiKitConfig(
preset: AppUiKitPreset.spotify,
fontFamily: 'Inter',
),
);
runApp(const App());
}
class App extends StatelessWidget {
const App({super.key});
@override
Widget build(BuildContext context) {
final themes = AppUiKit.themes;
return MaterialApp(
theme: themes.lightTheme,
darkTheme: themes.darkTheme,
themeMode: themes.themeMode,
home: const HomeScreen(),
);
}
}
Quick start with a design preset #
import 'package:app_ui_kit/app_ui_kit.dart';
class App extends StatelessWidget {
const App({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: AppTheme.build(preset: DesignPreset.apple),
home: const HomeScreen(),
);
}
}
Using components #
AppButton(
text: 'Get Started',
type: AppButtonType.primary,
onTap: () {},
)
ActionDialog(
title: 'Confirm',
subtitle: 'Are you sure?',
primaryText: 'Yes',
secondaryText: 'No',
onPrimary: () => print('Confirmed'),
onSecondary: () => print('Cancelled'),
)
BaseTextField(
hintText: 'Enter your email',
labelText: 'Email',
prefixIcon: Icon(Icons.email_outlined),
)
Components #
| Category | Widgets |
|---|---|
| App Bars | AppBarV1, TabBarV1, PersistentHeaderV1 |
| Buttons | AppButton, AppOutlineButton, AppTextButton |
| Inputs | BaseTextField, InputField, PasswordField, PhoneField, SearchInputField, SearchFeatureField |
| Dialogs | ActionDialog, BottomSheetSelectContent, ToastV1 |
| Frames | IconFrame, ListFrame, ProfileFrame, ScreenFrame |
| Scaffolds | BaseScaffold, AppScaffold, LoadingOverlayV1 |
| States | LoadingIndicator, LoadingShimmer, InfoDisplay |
| Custom | CustomIcon, DividerV1, Dot, ExpansionTileV1, HyperLinkText, InitialsDisplay, ListTileV1, PasswordStrengthChecker |
Presets #
| Preset | Font Family | Seed Color |
|---|---|---|
| Default | System | #4F46E5 |
| Vercel | Inter |
#000000 |
| Airbnb | Airbnb Cereal |
#FF385C |
| Apple | .SF Pro Display |
#007AFF |
| Spotify | Inter |
#1ED760 |
| Vibrant | System | #7C3AED |
| High Contrast | System | #000000 |
| Starbucks | System | #006241 |
| Linear | Inter |
#5E6AD2 |
| Notion | System | #0075DE |
| MongoDB | System | #00ED64 |
| Raycast | System | #FFFFFF |
Additional information #
- Run tests:
flutter test - Analyze:
flutter analyze - Browse the example app in the
example/directory to see all components in action:cd example && flutter run