auraa_ui 2.1.0
auraa_ui: ^2.1.0 copied to clipboard
UI Component Library Inspired by material-tailwind and shadcnui, NextUI , Chakra UI
Craft stunning Flutter UIs with modular, highly-customisable components inspired by ShadCN UI, NextUI, and Chakra UI.
v2.0.0 introduces breaking changes. See the Migration Guide below.
Installation #
flutter pub add auraa_ui
import 'package:auraa_ui/aura_ui.dart';
Theming #
Wire AuraUI into Flutter's standard theming system once at the app level:
MaterialApp(
theme: ThemeData(
extensions: [
AuraUITheme(
buttonRadius: 12,
cardRadius: 8,
containerRadius: 4,
),
],
),
)
All AuraUI components read from AuraUITheme automatically. No global singletons needed.
Widget Catalog #
🎠 Carousel #
A single unified carousel with auto-play, dot/line indicators, prev/next buttons, and optional per-item tap callbacks.
AuraUICarousel(
pageController: PageController(),
items: [
CarouselItem(imageUrl: 'https://example.com/img1.jpg'),
CarouselItem(
imageUrl: 'https://example.com/img2.jpg',
onTap: () => print('tapped slide 2'),
),
],
indicatorType: CarouselIndicatorType.dot, // or .line
showButtons: true,
duration: const Duration(seconds: 4),
)
🔲 Buttons #
AuiButton is the single button widget with named constructors for every common variant.
// Elevated (default)
AuiButton(
onPressed: () {},
child: const Text('Click me'),
)
// Size variants
AuiButton.small(onPressed: () {}, child: const Text('Small'))
AuiButton.medium(onPressed: () {}, child: const Text('Medium'))
AuiButton.large(onPressed: () {}, child: const Text('Large'))
// Shape variants
AuiButton.rounded(onPressed: () {}, child: const Text('Pill'))
AuiButton.outlined(onPressed: () {}, borderColor: Colors.blue, child: const Text('Outlined'))
AuiButton.text(onPressed: () {}, child: const Text('Text'))
// Full-width
AuiButton.block(onPressed: () {}, child: const Text('Full width'))
// Disabled
AuiButton(onPressed: () {}, disabled: true, child: const Text('Disabled'))
// Soft / ghost variant
AuiButton(
onPressed: () {},
soft: true,
borderColor: Colors.purple,
child: const Text('Soft'),
)
// Icon + label (compose freely)
AuiButton(
onPressed: () {},
child: Row(children: [
const Icon(Icons.send),
const SizedBox(width: 8),
const Text('Send'),
]),
)
🔔 Toasts #
// Solid background
AuiToast.simple(
context: context,
text: 'Saved successfully!',
color: Colors.green,
textColor: Colors.white,
);
// Light / ghost background
AuiToast.light(
context: context,
text: 'Changes saved',
color: Colors.blue,
textColor: Colors.blue,
);
// With icon
AuiToast.withIcon(
context: context,
text: 'Upload complete',
icon: Icons.cloud_done,
iconColor: Colors.white,
color: Colors.teal,
textColor: Colors.white,
);
// All methods accept optional width and duration:
AuiToast.simple(
context: context,
text: 'Custom size',
color: Colors.red,
textColor: Colors.white,
width: 400,
duration: const Duration(seconds: 3),
);
💬 Dialogs #
AuiDialog.show(
context: context,
title: 'Confirm deletion',
content: const Text('This action cannot be undone.'),
actions: [
TextButton(onPressed: () => Navigator.pop(context), child: const Text('Cancel')),
ElevatedButton(onPressed: () {}, child: const Text('Delete')),
],
);
✨ Sparkle Text #
SparklesText(
sparklesCount: 12,
firstColor: Color(0xFF9E7AFF),
secondColor: Color(0xFFFE8BBB),
child: Text(
'Magic ✨',
style: TextStyle(fontSize: 32, fontWeight: FontWeight.bold),
),
)
Migration from 1.x to 2.0 #
Carousel #
// 1.x — two separate widgets
AuraUICarousel(images: ['https://...'], pageController: ...)
AuraUICarouselTappable(items: [CarouselItem(imageUrl: '...', onTap: () {})], ...)
// 2.0 — one widget, onTap is optional
AuraUICarousel(
items: [
CarouselItem(imageUrl: 'https://...'), // no tap
CarouselItem(imageUrl: 'https://...', onTap: () {}), // with tap
],
pageController: ...,
)
Dialog #
// 1.x
AuiDialog.static(context: context, title: 'Hi')
// 2.0
AuiDialog.show(context: context, title: 'Hi')
Toasts #
// 1.x
simpleToastMessage(text: 'Hi', color: Colors.green, textColour: Colors.white, context: context)
lightBackgroundToastMessage(...)
iconMessage(...)
// 2.0
AuiToast.simple(text: 'Hi', color: Colors.green, textColor: Colors.white, context: context)
AuiToast.light(...)
AuiToast.withIcon(...)
All old names are removed in v2.0.0. Update your call sites using the migration examples above.
Features #
- Modular, composable components with sensible defaults
- Full theming via
AuraUITheme(ThemeExtension) - Every component is highly customisable with
WidgetStatePropertysupport - Zero extra dependencies — built entirely on Flutter's own primitives
- Tested with widget tests
Contributing #
Calling on all the trendsetting Flutter enthusiasts! ❤️🔥 Join forces as we pioneer the creation of the ultimate Flutter UI library. Let's make waves together! 🚀
Please refer to our contribution guidelines and say hi on Instagram