nova_ui 1.0.1 copy "nova_ui: ^1.0.1" to clipboard
nova_ui: ^1.0.1 copied to clipboard

A modern Flutter UI framework with reusable widgets, design system components, and beautiful developer-friendly APIs.

Nova UI #

pub package pub points likes MIT License

A modern Flutter UI framework with reusable widgets, design system components, and beautiful developer-friendly APIs.


Features #

  • NovaButton — filled, outlined, text variants · loading state · icon support · disabled state
  • NovaTextField — label · validation · password toggle · multiline · theme-aware borders
  • NovaContainer — tappable · elevation shorthand · gradient · clip support
  • NovaCard — zero-config card with shadow and rounded corners
  • NovaTheme — one-line light/dark theme setup
  • NovaColors — semantic theme-aware colors + raw swatches
  • NovaSpacing — spacing scale + gap widgets + EdgeInsets helpers
  • NovaRadius — border radius tokens + directional helpers
  • Null safety · Material 3 · Dark mode · All platforms

Installation #

dependencies:
  nova_ui: ^1.0.1
flutter pub get

Quick Start #

import 'package:nova_ui/nova_ui.dart';

// 1. Setup theme
MaterialApp(
  theme: NovaTheme.light(),
  darkTheme: NovaTheme.dark(),
  themeMode: ThemeMode.system,
)

// 2. Use widgets
NovaButton(
  text: 'Login',
  onPressed: () {},
)

NovaTextField(
  label: 'Email',
  hintText: 'you@example.com',
  validator: (v) => v!.isEmpty ? 'Required' : null,
)

NovaCard(
  onTap: () {},
  child: Text('Hello Nova UI'),
)

Widgets #

NovaButton #

// Filled (default)
NovaButton(text: 'Submit', onPressed: () {})

// Outlined
NovaButton(
  text: 'Cancel',
  variant: NovaButtonVariant.outlined,
  onPressed: () {},
)

// Loading
NovaButton(text: 'Saving...', loading: true, onPressed: () {})

// Disabled
NovaButton(text: 'Unavailable', onPressed: null)

// With icon
NovaButton(
  text: 'Upload',
  icon: Icon(Icons.upload),
  onPressed: () {},
)

NovaTextField #

// Basic
NovaTextField(label: 'Name', hintText: 'Enter your name')

// Password — auto visibility toggle
NovaTextField(
  label: 'Password',
  obscureText: true,
)

// With validation (inside Form widget)
NovaTextField(
  label: 'Email',
  validator: (v) => v!.contains('@') ? null : 'Invalid email',
)

// Multiline
NovaTextField(label: 'Bio', maxLines: 4)

NovaContainer #

// Tappable
NovaContainer(
  onTap: () {},
  elevation: 4,
  borderRadius: NovaRadius.lg,
  child: Text('Tap me'),
)

// Gradient
NovaContainer(
  height: 120,
  borderRadius: NovaRadius.xl,
  gradient: LinearGradient(colors: [Colors.purple, Colors.blue]),
  child: Center(child: Text('Gradient')),
)

NovaCard #

// Zero config
NovaCard(child: Text('Simple card'))

// Tappable
NovaCard(
  onTap: () {},
  child: ListTile(title: Text('Tap to open')),
)

Design System #

NovaTheme #

MaterialApp(
  theme: NovaTheme.light(),
  darkTheme: NovaTheme.dark(),
  themeMode: ThemeMode.system,
)

// Custom brand color
MaterialApp(
  theme: NovaTheme.light(seedColor: Colors.teal),
  darkTheme: NovaTheme.dark(seedColor: Colors.teal),
)

NovaColors #

// Semantic — theme-aware (dark mode automatic)
color: NovaColors.primary(context)
color: NovaColors.surface(context)
color: NovaColors.textSecondary(context)
color: NovaColors.success(context)

// Raw swatches
color: NovaColors.indigo[500]
color: NovaColors.slate[200]

NovaSpacing #

// Raw values
SizedBox(height: NovaSpacing.md)   // 16px
SizedBox(width: NovaSpacing.sm)    // 8px

// Gap widgets (vertical)
NovaSpacing.gapSm    // 8px
NovaSpacing.gapMd    // 16px
NovaSpacing.gapLg    // 24px

// EdgeInsets helpers
padding: NovaSpacing.paddingMd       // all sides 16px
padding: NovaSpacing.paddingPage     // h:24 v:16
padding: NovaSpacing.paddingH(20)    // horizontal only

NovaRadius #

borderRadius: NovaRadius.sm     // 8px
borderRadius: NovaRadius.md     // 12px
borderRadius: NovaRadius.lg     // 16px
borderRadius: NovaRadius.full   // pill shape

BuildContext extensions #

context.isDark              // bool
context.novaPrimary         // Color
context.novaSurface         // Color
context.novaTextPrimary     // Color
context.novaTextSecondary   // Color
context.novaScheme          // ColorScheme

Roadmap #

Version Widgets
1.0.2 NovaLoader, NovaDialog
1.0.3 NovaToast, NovaBottomSheet
1.0.4 NovaShimmer, NovaAvatar

Contributing #

Contributions are welcome! Please open an issue first to discuss changes.

License #

MIT © 2026 flutterbysunny

4
likes
0
points
264
downloads

Publisher

unverified uploader

Weekly Downloads

A modern Flutter UI framework with reusable widgets, design system components, and beautiful developer-friendly APIs.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter

More

Packages that depend on nova_ui