altech_ui_flutter 2.0.0 copy "altech_ui_flutter: ^2.0.0" to clipboard
altech_ui_flutter: ^2.0.0 copied to clipboard

Modern, reusable, and customizable Flutter UI component library with Material 3, design tokens, and centralized theming.

altech_ui_flutter #

ALTECH Logo

Modern, reusable, and customizable Flutter UI components with Material 3, design tokens, and centralized theming.

Preview (Partial Components) #

These screenshots show only part of the component set. For the full list, check Components and run the example app.

Cards and Buttons Preview

Dialogs and Sheets Preview

Highlights #

  • Material 3 first (useMaterial3: true)
  • Light and dark theme support
  • Centralized theme system via AltechTheme
  • Token-driven design (colors, typography, spacing, radius, shadow)
  • Components optimized for white and dark backgrounds
  • Reusable + customizable API for production apps
  • Responsive helpers for dashboard-style layouts

Installation #

dependencies:
  altech_ui_flutter: ^2.0.0

Quick Start #

import 'package:altech_ui_flutter/altech_ui_flutter.dart';
import 'package:flutter/material.dart';

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      theme: AltechTheme.light(),
      darkTheme: AltechTheme.dark(),
      themeMode: ThemeMode.system,
      home: const HomePage(),
    );
  }
}

Design Tokens #

  • Colors: AltechColorTokens, AltechSemanticColors
  • Typography: AltechTypography
  • Spacing: AltechSpacing
  • Radius: AltechRadius
  • Shadow: AltechShadowTokens
final semantic = context.semanticColors;
final shadows = context.shadows;

Components #

Alerts and Feedback #

AltechAlert.show(
  context,
  title: 'Success',
  message: 'Data saved successfully',
  type: AlertType.success,
);

const AltechFeedbackBanner(
  title: 'Sync Complete',
  message: 'Workspace synced successfully.',
  type: AlertType.success,
);

Dialogs and Sheets #

AltechDialog.show(
  context,
  title: 'Delete Item?',
  message: 'This action cannot be undone.',
  confirmText: 'Delete',
  cancelText: 'Cancel',
  destructive: true,
);

AltechConfirmationDialog.show(
  context,
  title: 'Exit application?',
  message: 'Unsaved progress will be lost.',
);

AltechBottomSheet.show(
  context,
  title: 'Share Document',
  child: const Row(
    mainAxisAlignment: MainAxisAlignment.spaceEvenly,
    children: [
      AltechSheetActionItem(icon: Icons.link_rounded, label: 'Copy Link'),
      AltechSheetActionItem(icon: Icons.mail_outline_rounded, label: 'Email'),
      AltechSheetActionItem(icon: Icons.more_horiz_rounded, label: 'More'),
    ],
  ),
);

Buttons #

AltechButton(
  text: 'Primary Action',
  variant: ButtonVariant.primary,
  onPressed: () {},
)

Available variants:

  • primary
  • secondary
  • tonal
  • outline
  • text
  • destructive

Inputs and Forms #

AltechTextField(
  hintText: 'Enter your email',
  leadingIcon: Icons.email_outlined,
  trailingIcon: Icons.check_circle_outline_rounded,
);

AltechDropdownField<String>(
  hintText: 'Select role',
  prefixIcon: Icons.workspaces_outline,
  items: const [
    DropdownMenuItem(value: 'admin', child: Text('Admin')),
    DropdownMenuItem(value: 'user', child: Text('User')),
  ],
  onChanged: (value) {},
);

AltechCheckboxField(
  value: true,
  label: 'I agree to the terms and conditions',
  onChanged: (value) {},
)
AltechTopSearchBar(
  hintText: 'Search everywhere...',
  onPrimaryAction: () {},
);

AltechSidebarNavigation(
  title: 'Altech UI',
  selectedIndex: 0,
  onChanged: (index) {},
  items: const [
    AltechSidebarNavItem(label: 'Dashboard', icon: Icons.home_outlined),
    AltechSidebarNavItem(label: 'Analytics', icon: Icons.insert_chart_outlined),
  ],
);

AltechNavigationBar(
  floating: true,
  selectedIndex: 0,
  onDestinationSelected: (index) {},
  destinations: const [
    AltechNavigationDestination(icon: Icon(Icons.home_outlined), label: 'Home'),
    AltechNavigationDestination(icon: Icon(Icons.search_rounded), label: 'Search'),
  ],
)

Cards #

const AltechCard(
  child: Text('Reusable card component'),
);

AltechMetricCard(
  title: 'Current Balance',
  value: '\$12,050.00',
  subtitle: 'Available across all accounts',
  variant: MetricCardVariant.dark,
  primaryActionLabel: 'Transfer',
  secondaryActionLabel: 'Details',
  onPrimaryAction: () {},
  onSecondaryAction: () {},
)

States and Loaders #

const AltechEmptyState(
  title: 'No Projects Found',
  message: 'Create your first project to get started.',
);

AltechErrorState(
  title: 'Oops!',
  message: 'An error occurred while loading data.',
  onRetry: () {},
);

const AltechSkeleton(width: 220, height: 16);
const AltechShimmer(width: 220, height: 16);

AltechLoadingOverlay(
  isLoading: isSubmitting,
  message: 'Processing...',
  child: YourPageContent(),
)

Avatars, Badges, Chips #

const AltechAvatar(initials: 'AL');
const AltechAvatarGroup(initials: ['JS', 'MK', 'FR']);

const AltechBadge(
  label: 'In Progress',
  variant: AltechBadgeVariant.info,
);

const AltechChip(
  label: 'Active',
  selected: true,
);

Snackbar and Toast #

AltechSnackbar.show(
  context,
  title: 'Saved',
  message: 'Changes saved successfully.',
  type: AlertType.success,
  actionLabel: 'Undo',
  onActionPressed: () {},
);

AltechToast.show(context, message: 'Saved');

Layout Helpers #

AltechResponsiveLayout(
  mobile: MobileWidget(),
  tablet: TabletWidget(),
  desktop: DesktopWidget(),
);

AltechSplitView(
  left: LeftWidget(),
  right: RightWidget(),
);

AltechDashboardShell(
  sidebar: SidebarWidget(),
  main: MainWidget(),
)

Full Exported API #

altech_ui_flutter.dart exports all public components and tokens, including:

  • Alerts: AltechAlert, AltechFeedbackBanner, AlertType
  • Dialogs: AltechDialog, AltechConfirmationDialog, AltechModal, AltechStatusPopup
  • Sheets: AltechBottomSheet, AltechSheetActionItem
  • Inputs/Forms: AltechTextField, AltechDropdownField, AltechCheckboxField
  • Navigation: AltechAppBar, AltechTopSearchBar, AltechSidebarNavigation, AltechNavigationBar
  • Cards: AltechCard, AltechMetricCard
  • States/Loaders: AltechEmptyState, AltechErrorState, AltechLoadingOverlay, AltechSkeleton, AltechShimmer
  • Feedback: AltechSnackbar, AltechToast
  • Avatar/Badge/Chip: AltechAvatar, AltechAvatarGroup, AltechBadge, AltechChip
  • Layout: AltechResponsiveLayout, AltechSplitView, AltechDashboardShell
  • Theme and tokens: AltechTheme, AltechColorTokens, AltechSemanticColors, AltechTypography, AltechSpacing, AltechRadius, AltechShadowTokens

Example App #

Run locally:

cd example
flutter run -d chrome

Project Structure #

lib/
 ├── altech_ui_flutter.dart
 └── src/
      ├── components/
      │    ├── alerts/
      │    ├── avatars/
      │    ├── badges/
      │    ├── buttons/
      │    ├── cards/
      │    ├── chips/
      │    ├── dialogs/
      │    ├── forms/
      │    ├── inputs/
      │    ├── layout/
      │    ├── loaders/
      │    ├── navigation/
      │    ├── sheets/
      │    ├── snackbars/
      │    └── states/
      ├── theme/
      │    ├── colors/
      │    ├── typography/
      │    ├── spacing/
      │    └── themes/
      ├── utils/
      └── extensions/

Publishing Notes #

Before publishing a new version:

flutter analyze
flutter test
flutter pub publish --dry-run

Then update:

  • version in pubspec.yaml
  • CHANGELOG.md with the same version

License #

MIT License.

1
likes
0
points
210
downloads

Documentation

Documentation

Publisher

verified publishermohalif.my.id

Weekly Downloads

Modern, reusable, and customizable Flutter UI component library with Material 3, design tokens, and centralized theming.

Repository (GitHub)
View/report issues

Topics

#flutter-ui #material3 #design-system #ui-components #flutter-package

License

unknown (license)

Dependencies

flutter

More

Packages that depend on altech_ui_flutter