Atomic Flutter Kit

A modern atomic design system for Flutter applications following umituz.com standards. Built with Flutter 3.16+ and modern Dart patterns.

Features

  • 🎨 Modern Design Tokens: Colors, typography, spacing, shadows, borders, and animations
  • 🧱 Atomic Components: Reusable UI components following atomic design principles
  • πŸš€ Performance Optimized: Built with Flutter best practices for 60fps performance
  • πŸ“± Responsive: Mobile-first design with responsive utilities
  • 🌈 Theme Support: Light/dark mode ready with customizable themes
  • β™Ώ Accessible: WCAG 2.1 AA compliant components
  • πŸ“ TypeScript-like DX: Strongly typed with excellent IDE support

Installation

Add atomic_flutter_kit to your pubspec.yaml:

dependencies:
  atomic_flutter_kit: ^0.12.2

Then run:

flutter pub get

Usage

Import the package

import 'package:atomic_flutter_kit/atomic_flutter_kit.dart';

Design Tokens

Colors

// Primary colors
AtomicColors.primary
AtomicColors.primaryLight
AtomicColors.primaryDark

// Semantic colors
AtomicColors.success
AtomicColors.warning
AtomicColors.error
AtomicColors.info

// Text colors
AtomicColors.textPrimary
AtomicColors.textSecondary

// Utility methods
AtomicColors.withAlpha(AtomicColors.primary, 0.5)
AtomicColors.primaryGradient

Spacing

// Spacing values
AtomicSpacing.xs  // 8
AtomicSpacing.sm  // 12
AtomicSpacing.md  // 16
AtomicSpacing.lg  // 24

// EdgeInsets helpers
AtomicSpacing.allMd
AtomicSpacing.horizontalLg
AtomicSpacing.symmetric(horizontal: AtomicSpacing.md, vertical: AtomicSpacing.sm)

Typography

// Text styles
AtomicTypography.headlineLarge
AtomicTypography.bodyMedium
AtomicTypography.labelSmall

// With colors
AtomicTypography.headlineLargePrimary
AtomicTypography.bodyMediumSecondary

Components

AtomicButton

AtomicButton(
  label: 'Click Me',
  onPressed: () {
    // Handle press
  },
  variant: AtomicButtonVariant.primary,
  size: AtomicButtonSize.medium,
  icon: Icons.add,
  isLoading: false,
  isFullWidth: false,
)

AtomicCard

AtomicCard(
  child: Text('Card content'),
  padding: AtomicSpacing.allLg,
  shadow: AtomicCardShadow.medium,
  onTap: () {
    // Handle tap
  },
  borderRadius: AtomicBorders.lg,
)

AtomicTextField

AtomicTextField(
  controller: _controller,
  label: 'Email',
  hint: 'Enter your email',
  prefixIcon: Icons.email,
  validator: (value) {
    if (value == null || value.isEmpty) {
      return 'Email is required';
    }
    return null;
  },
  borderType: AtomicTextFieldBorderType.outlined,
)

Example

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

class LoginScreen extends StatelessWidget {
  final _emailController = TextEditingController();
  final _passwordController = TextEditingController();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Padding(
        padding: AtomicSpacing.allXl,
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Text(
              'Welcome Back',
              style: AtomicTypography.headlineLargePrimary,
            ),
            SizedBox(height: AtomicSpacing.xl),
            AtomicCard(
              child: Column(
                children: [
                  AtomicTextField(
                    controller: _emailController,
                    label: 'Email',
                    prefixIcon: Icons.email,
                    keyboardType: TextInputType.emailAddress,
                  ),
                  SizedBox(height: AtomicSpacing.md),
                  AtomicTextField(
                    controller: _passwordController,
                    label: 'Password',
                    prefixIcon: Icons.lock,
                    obscureText: true,
                  ),
                  SizedBox(height: AtomicSpacing.lg),
                  AtomicButton(
                    label: 'Login',
                    onPressed: () {
                      // Handle login
                    },
                    isFullWidth: true,
                  ),
                ],
              ),
            ),
          ],
        ),
      ),
    );
  }
}

Components Roadmap

βœ… Available

Atoms (Basic Components)

  • AtomicButton
  • AtomicIconButton
  • AtomicCard
  • AtomicGradientContainer
  • AtomicCollapseBox
  • AtomicSmoothContainer / AtomicAnimatedSmoothContainer
  • AtomicTextField
  • AtomicSlider / AtomicRangeSlider
  • AtomicSwitch
  • AtomicCheckbox
  • AtomicRadio
  • AtomicIcon
  • AtomicLoader
  • AtomicChip
  • AtomicShimmer
  • AtomicBadge
  • AtomicToast
  • AtomicAlert
  • AtomicTag
  • AtomicProgress / AtomicProgressCard / AtomicStepProgress
  • AtomicAvatar
  • AtomicText
  • AtomicImage / AtomicSvg
  • AtomicDivider
  • AtomicDialog
  • AtomicBottomSheet
  • AtomicTooltip / AtomicRichTooltip

Molecules (Combined Components)

  • AtomicDropdown
  • AtomicFormField
  • AtomicNavigationBar / AtomicNavigationRail
  • AtomicAppBar / AtomicSimpleAppBar / AtomicSearchAppBar
  • AtomicListItem / AtomicUserListItem / AtomicIconListItem
  • AtomicDatePicker / AtomicSimpleDatePicker / AtomicDateRangePicker
  • AtomicTimePicker / AtomicSimpleTimePicker

🚧 Coming Soon

Organisms

  • AtomicDataTable
  • AtomicForm
  • AtomicLayout
  • AtomicStepper

Contributing

Contributions are welcome! Please read our contributing guidelines before submitting PRs.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Maintainers

Standards

This package follows:

Libraries

atomic_flutter_kit
A comprehensive atomic design system for Flutter applications.
atoms/buttons/atomic_button
atoms/buttons/atomic_button_optimized
atoms/buttons/atomic_icon_button
atoms/containers/atomic_animated_container
atoms/containers/atomic_card
atoms/containers/atomic_collapse_box
atoms/containers/atomic_gradient_container
atoms/containers/atomic_icon_box
atoms/containers/atomic_smooth_container
atoms/display/atomic_avatar
atoms/display/atomic_image
atoms/display/atomic_text
atoms/feedback/atomic_alert
atoms/feedback/atomic_badge
atoms/feedback/atomic_chip
atoms/feedback/atomic_dot_loading
atoms/feedback/atomic_loader
atoms/feedback/atomic_progress
atoms/feedback/atomic_shimmer
atoms/feedback/atomic_tag
atoms/feedback/atomic_toast
atoms/icons/atomic_icon
atoms/inputs/atomic_button_check
atoms/inputs/atomic_checkbox
atoms/inputs/atomic_radio
atoms/inputs/atomic_slider
atoms/inputs/atomic_switch
atoms/inputs/atomic_text_field
atoms/overlays/atomic_bottom_sheet
atoms/overlays/atomic_dialog
atoms/overlays/atomic_divider
atoms/overlays/atomic_tooltip
models/action_list_item
models/base_model
models/bottom_bar_item
models/icon_list_item
models/select_list_item
models/text_list_item
molecules/forms/atomic_form_field
molecules/inputs/atomic_dropdown
molecules/layouts/atomic_stacked_body
molecules/lists/atomic_list_item
molecules/navigation/atomic_app_bar
molecules/navigation/atomic_navigation_bar
molecules/pickers/atomic_date_picker
molecules/pickers/atomic_time_picker
molecules/sheets/atomic_custom_sheet_body
molecules/sheets/atomic_sheet_builder
organisms/ai_assistant/atomic_ai_assistant
organisms/auth/atomic_login_form
organisms/auth/atomic_otp_form
providers/sheet_select_controller
providers/value_controller
services/atomic_base_service
services/atomic_haptic_service
services/network/atomic_network_client
services/network/interceptors/atomic_auth_interceptor
services/network/interceptors/atomic_logging_interceptor
services/network/network
services/storage/atomic_memory_storage
services/storage/atomic_secure_storage_example
services/storage/atomic_storage_interface
services/storage/storage
templates/auth/atomic_auth_template
templates/auth/atomic_auth_template_helper
themes/atomic_theme_data
themes/atomic_theme_provider
tokens/animations/atomic_animations
tokens/borders/atomic_borders
tokens/colors/atomic_colors
tokens/enums/atomic_gender
tokens/enums/atomic_loading_state
tokens/enums/atomic_otp_status
tokens/enums/atomic_status
tokens/icons/atomic_custom_icons
tokens/shadows/atomic_shadows
tokens/spacing/atomic_spacing
tokens/typography/atomic_typography
utilities/atomic_accessibility
utilities/atomic_debouncer
utilities/atomic_responsive
utilities/atomic_responsive_utils
utils/atomic_date_time_utils
Comprehensive date and time utilities for Flutter applications.
utils/extensions/bool_extension
utils/extensions/clone_extension
utils/extensions/extensions
utils/extensions/list_extension
utils/extensions/map_extension
utils/svg_provider