Atomix Design Flutter
A modern, scalable Design System for Flutter built with Atomic Design principles and powered by Material Design 3. Atomix provides a comprehensive set of reusable components with consistent styling, theming, and interactive documentation.
โจ Features
- ๐จ Material 3 Foundation - Built on top of Flutter's Material Design 3
- โ๏ธ Atomic Design Architecture - Organized into Atoms, Molecules, and Organisms
- ๐ Light & Dark Themes - Full support for both themes with seamless switching
- ๐ฏ Design Tokens - Consistent colors, spacing, typography, radius, and elevation
- ๐ฆ 13 Components - Production-ready, customizable components
- ๐งช Tested - Comprehensive test coverage
- ๐ Well Documented - Complete DartDoc for all public APIs
๐ฆ Installation
Add to your pubspec.yaml:
dependencies:
atomix_design_flutter: ^0.1.0
Then run:
flutter pub get
๐ Quick Start
1. Apply the Theme
import 'package:flutter/material.dart';
import 'package:atomix_design_flutter/atomix_design_flutter.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'My App',
theme: AtomixTheme.light(),
darkTheme: AtomixTheme.dark(),
themeMode: ThemeMode.system,
home: const HomePage(),
);
}
}
2. Use Components
import 'package:atomix_design_flutter/atomix_design_flutter.dart';
// Use design tokens
Container(
padding: const EdgeInsets.all(AtomixSpacing.md),
decoration: BoxDecoration(
color: AtomixColors.primary,
borderRadius: AtomixRadius.mdBorderRadius,
),
)
// Use components
AtomixButton(
label: 'Click Me',
onPressed: () {},
variant: AtomixButtonVariant.primary,
)
AtomixTextField(
label: 'Email',
hint: 'Enter your email',
prefixIcon: Icons.email,
)
AtomixCard(
variant: AtomixCardVariant.elevated,
child: Padding(
padding: const EdgeInsets.all(AtomixSpacing.lg),
child: Text('Card content'),
),
)
๐ Components
Foundation (Design Tokens)
AtomixColors- Semantic color paletteAtomixSpacing- 4px-based spacing scaleAtomixRadius- Border radius valuesAtomixElevation- Material elevation scaleAtomixTypography- Text style systemAtomixTheme- Light/dark theme configuration
Atoms
AtomixText- Text with typographyAtomixIcon- Icon componentAtomixDivider- Visual separatorAtomixSpacer- Spacing helperAtomixBadge- Status badges
Molecules
AtomixButton- Buttons with variants and statesAtomixTextField- Text input with validationAtomixChip- Selectable chipsAtomixListTile- List items
Organisms
AtomixAppBar- Application barAtomixCard- Cards with variantsAtomixDialog- Modal dialogsAtomixBottomSheet- Bottom sheets
๐จ Customization
Create custom themes:
final customTheme = AtomixTheme.themeData(
brightness: Brightness.light,
primaryColor: Colors.blue,
secondaryColor: Colors.orange,
);
๐ Documentation
For complete documentation, examples, and interactive component gallery:
- Interactive Widgetbook - Live component demos (Hosted on GitHub Pages)
- API Documentation - Complete API reference
- GitHub Repository - Source code and examples
๐ค Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
๐ค Author
Osman Armando Jimenez Cortes
- Email: osman98125@gmail.com
- GitHub: @OsmanJimenez
๐ Issues
Found a bug or have a feature request? Please open an issue on GitHub.