Build beautiful Flutter apps with copy-paste components
fluttercn is a collection of beautifully designed, accessible Flutter components that you can copy and paste directly into your apps. Think of it as your component library—built with Flutter, for Flutter developers.
- 🎨 Beautiful Components - Carefully crafted UI components following Flutter design principles
- 📦 Copy-Paste Philosophy - Components are copied directly into your project, giving you complete ownership
- 🎯 Zero Dependencies - No external packages required, just Flutter
- 🚀 Easy to Use - Simple CLI tool to add components to your project
- 🎨 Fully Customizable - Modify, extend, or customize components however you need
- ♿ Accessible - Built with accessibility in mind
Install the fluttercn CLI globally using Dart's pub:
dart pub global activate fluttercnImportant: Make sure ~/.pub-cache/bin is in your PATH:
export PATH="$PATH":"$HOME/.pub-cache/bin"To make this permanent, add the above line to your shell profile (~/.zshrc, ~/.bashrc, etc.).
- Initialize fluttercn in your Flutter project:
cd your-flutter-project
fluttercn init- List available components:
fluttercn list- Add a component:
fluttercn add button
fluttercn add cardThat's it! Components are copied to lib/widgets/common/ in your project.
Visit our documentation website for:
- Complete component reference
- Usage examples
- Theming guide
- Best practices
This repository contains three main parts:
dart-cli/- The fluttercn CLI tool (Dart package)playground/- Flutter app for developing and testing componentswww/- Documentation website (Next.js)
- Card - Flexible card component with header, content, and footer
- Button - Customizable button with multiple variants and sizes
- Avatar - Versatile avatar with network, asset, and initials fallback
- Badge - Badge, count badge, and status badge primitives
- Checkbox - Animated checkbox with tristate support
More components are coming soon! Check the documentation for the complete list.
We welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-component) - Develop your component in the
playground/directory - Test thoroughly
- Submit a pull request
For detailed instructions, see CONTRIBUTING.md.
This project is licensed under the BSD-3-Clause License - see the LICENSE file for details.
Inspired by shadcn/ui and its philosophy of production ready components.