Nash UI

pub package License: NU-FUL v1.0 Flutter

A modern, scalable, production-ready Flutter Design System built on Material 3.

nash_ui provides an opinionated design-token engine, theme factories, a responsive framework, an animation library, a complete catalog of reusable widgets, and full-screen UI templates — everything you need to ship beautiful, consistent apps faster.


Features

  • Design tokens — colors, typography, spacing, radius, shadows, gradients, borders, opacity, dimensions, icons, durations, curves, elevation, and image tokens.
  • Theme engine — NashTheme.light(), NashTheme.dark(), NashTheme.amoled() and fully custom themes via a ThemeExtension.
  • Responsive framework — AppResponsive, screen types, breakpoints and responsive number extensions (10.w, 20.h, 16.r, 5.v).
  • Animation library — fade, slide, scale, rotate, bounce, shake, ripple, hover, hero, page and shared-axis transitions, with reduced motion support.
  • Accessibility — WCAG AA/AAA compliance tokens, focus ring, touch targets, semantic announcements, and platform-adaptive widgets.
  • Widget catalog — buttons, inputs, cards, selection, media, feedback, lists, indicators, dialogs, charts, loading states, drag & drop, rich text editor, pickers, stepper, data table, notifications, and misc widgets.
  • Navigation — bottom navigation, navigation rail, sidebar, drawer, top navigation and breadcrumb.
  • Localization — number, currency, date, time, and compact formatting.
  • Full-screen templates — login, register, forgot password, dashboard, settings, profile, chat, learning, finance, medical, e-commerce, social, admin and analytics.
  • Utilities — validators, formatters, token exporter, and date/color/number/ animation/file/image/permission/device helpers.
  • Quality — fully documented public API, unit/widget/golden tests and a GitHub Actions CI/CD workflow.

Getting started

Add the dependency

From pub.dev:

flutter pub add nash_ui

Or add it directly to your pubspec.yaml:

dependencies:
  nash_ui: ^1.4.0

Then run:

flutter pub get

Quick start

import 'package:flutter/material.dart';
import 'package:nash_ui/nash_ui.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: NashTheme.light(),
      darkTheme: NashTheme.dark(),
      home: const MyHomePage(),
    );
  }
}

class MyHomePage extends StatelessWidget {
  const MyHomePage({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: NashAppBar(title: 'Dashboard'),
      body: Padding(
        padding: const EdgeInsets.all(16),
        child: Column(
          children: const <Widget>[
            PrimaryButton(
              label: 'Get started',
              icon: Icons.rocket_launch_outlined,
            ),
            SizedBox(height: 16),
            NashTextField(label: 'Email', hint: 'you@example.com'),
          ],
        ),
      ),
    );
  }
}

Themes

Every theme factory is built from a seed color using the Material 3 color system.

Theme Description
NashTheme.light() Default light theme from the brand palette.
NashTheme.dark() Dark theme from the brand palette.
NashTheme.amoled() True-black (AMOLED) theme.
NashTheme.custom(colorScheme: ...) Fully custom theme from any ColorScheme.
MaterialApp(
  theme: NashTheme.light(seedColor: const Color(0xFF10B981)),
  darkTheme: NashTheme.dark(seedColor: const Color(0xFF10B981)),
  themeMode: ThemeMode.system,
)

See Themes for details on tokens and customization.

Responsive

final AppScreenType type = AppResponsive.screenTypeOf(context);
if (type.isDesktop) {
  return const NashSidebar(...);
}
return const BottomNavBar(...);

For pixel-perfect scaling against a design reference:

AppResponsive(
  designWidth: 390,
  designHeight: 844,
  child: const MyApp(),
)

See Responsive for the full breakpoint reference.

Widget catalog

Category Widgets
Buttons PrimaryButton, SecondaryButton, OutlineButton, NashTextButton, NashIconButton, FloatingButton, LoadingButton, NashGlassButton, NashGradientBorderButton, NashSlideButton, NashSplitButton, NashHoldButton, NashSocialButton, NashButtonGroup
Inputs NashTextField, PasswordField, EmailField, NumberField, PhoneField, SearchField, OtpField, NashDropdown, DateField, MultiSelect, NashRichTextEditor
Selection NashCheckbox, NashRadio, NashSwitch, NashChip, NashSegmentedButton
Cards NashCard, GlassCard, GlowCard, GradientCard, StatisticCard, DashboardCard, ProductCard, UserCard, MedicalCard, LearningCard
Media NashAvatar, NashImage, NashNetworkImage
Feedback NashSnackbar, NashBanner, NashTooltip, NashNotificationCenter
Navigation NashNavigationRail, BottomNavBar, NavDrawer, Breadcrumb, NashAppBar, NashTabBar
Dialogs NashDialog, NashBottomSheet, ActionSheet, NashPopupMenu, NashAdaptiveDialog, NashAdaptiveActionSheet
Charts LineChart, BarChart, PieChart
Loading NashLoader, CircularProgress, LinearProgress, Skeleton, SkeletonList, SkeletonGrid, Shimmer, LoadingScreen
Indicators NashBadge, progress indicators
Data NashEnhancedDataTable, NashTablePagination, NashDraggableList, NashDropZone, NashDraggable
Pickers showNashStyledTimePicker, showNashDateRangeDialog, showNashDurationPicker, showNashTimeRangePicker
Stepper NashStepper (horizontal/vertical), NashStepState
Adaptive NashAdaptiveScaffold, NashAdaptiveSwitch, NashAdaptiveProgress, NashPlatform
Accessibility NashFocusRing, NashTouchTarget, NashAccessibilityProvider, NashSemanticsAnnouncer, NashAccessibleButton
Misc NashCalendar, NashRating, NashTimeline, NashTag, NashReducedMotion, NashZIndexed
UX screens Loading, empty state, no internet, 404, error, success, maintenance, permission, update required

See Widgets for the full API reference.

Templates

Full-screen, production-ready layouts:

AuthTemplates.login, AuthTemplates.signup, AuthTemplates.forgotPassword, DashboardHeader, SettingsTemplate, ProfileTemplate, ChatTemplate, LearningTemplate, FinanceTemplate, MedicalTemplate, EcommerceTemplate, SocialTemplate, AdminTemplate, AnalyticsTemplate.

See Templates.

Utilities

Validators (Validators), formatters (NashFormatter), and helpers for dates, colors, numbers, animations, files, images, permissions and devices. See Utilities.

Documentation

Guide Description
Getting started Setup, dependency and first app
Design tokens Colors, typography, spacing, radius, shadows
Themes Light/dark/AMOLED/custom themes
Responsive Breakpoints and screen helpers
Animations Motion library reference
Widgets Widget catalog with examples
Templates Full-screen template layouts
Utilities Validators, formatters and helpers
Testing Unit, widget, golden and integration tests

Example application

A complete demo app is included under example/ showcasing theme switching, responsive preview, the animation gallery, the widget catalog, forms, charts, a dashboard and the template gallery.

cd example
flutter run

Testing

flutter analyze
flutter test                # unit + widget + golden tests
flutter test --update-goldens test/golden_test.dart   # refresh golden images

cd example
flutter test integration_test/app_test.dart -d windows  # integration tests

See Testing.

License

Nash UI is licensed under the Nash UI Free Use License (NU-FUL) v1.0.

  • Free for Application Development: You may install and use Nash UI as a dependency in personal, educational, open-source, client, commercial, and enterprise Flutter applications completely free of charge and royalty-free.
  • Application Ownership: You retain full, exclusive ownership and licensing rights over your own application source code, assets, and business logic that integrate Nash UI.
  • Source Code Protection: You may not modify, fork, copy, redistribute, sublicense, resell, or create derivative packages/libraries from the Nash UI source code without prior written permission from the copyright holder.

Copyright © 2026 Nashwan Taha Nheli. All rights reserved.

See the LICENSE file for the complete terms and conditions.

Disclaimer: This license is a custom proprietary free-use license (source-available for dependency use, not an OSI-approved open-source license). Commercial users should review the full terms with their legal counsel.

Libraries

accessibility/accessibility
Exports for the accessibility layer.
accessibility/accessibility_tokens
animation/animated_button
animation/animated_container
animation/animation
Exports for the animation layer.
animation/bounce
animation/duration
animation/fade
animation/hero
animation/hover
animation/page_transition
animation/reduced_motion
animation/ripple
animation/scale
animation/shared_axis_transition
animation/slide
borders/border
colors/brand_colors
colors/colors
Exports for the colors layer.
colors/palette
dimensions/dimensions
elevation/elevation
Exports for the elevation layer.
elevation/elevation_tokens
extensions/color_extensions
extensions/context_extensions
extensions/date_extensions
extensions/extensions
Exports for the extensions layer.
extensions/padding_extensions
extensions/string_extensions
extensions/theme_extensions
extensions/widget_extensions
gradients/brand_gradients
gradients/gradients
icons/app_icons
icons/icons
layouts/container
layouts/flex
layouts/gap
layouts/grid
layouts/layouts
Exports for the layouts layer.
layouts/padding
layouts/position
layouts/responsive
layouts/rtl_aware_row
localization/localization
media/image_tokens
nash_ui
Nash UI — a modern, scalable, production-ready Flutter design system.
opacity/opacity
radius/app_radius
radius/radius
responsive/breakpoint
responsive/responsive
Exports for the responsive layer.
responsive/responsive_extensions
responsive/responsive_grid
responsive/responsive_layout
responsive/screen_type
services/async_builder
services/clipboard
services/logger
services/services
Exports for the services layer.
services/storage
shadows/shadow
shadows/shadows
spacing/app_spacing
spacing/spacing
theme/app_theme
theme/theme
theme/theme_builder
theme/theme_extension
typography/app_typography
typography/font_weight
typography/responsive_typography
typography/typography
utils/animation_utils
utils/color_utils
utils/date_utils
utils/device_utils
utils/file_utils
utils/formatter
utils/helpers
utils/image_utils
utils/number_utils
utils/permission_utils
utils/rtl_utils
utils/token_exporter
utils/utils
Exports for the utils layer.
utils/validators
Validation helpers and extension methods for common field checks.
widgets/adaptive/adaptive
widgets/buttons/button_group
widgets/buttons/buttons
Exports for the buttons layer.
widgets/buttons/floating_button
widgets/buttons/glass_button
widgets/buttons/gradient_border_button
widgets/buttons/hold_button
widgets/buttons/icon_button
widgets/buttons/loading_button
widgets/buttons/outline_button
widgets/buttons/primary_button
widgets/buttons/secondary_button
widgets/buttons/slide_button
widgets/buttons/social_button
widgets/buttons/split_button
widgets/buttons/text_button
widgets/cards/card
widgets/cards/cards
Exports for the cards layer.
widgets/cards/content_cards
widgets/cards/dashboard_card
widgets/cards/domain_cards
widgets/charts/chart_widgets
widgets/charts/charts
Exports for the charts layer.
widgets/charts/nash_charts
widgets/data_table/data_table
Exports for the data_table layer.
widgets/data_table/enhanced_data_table
widgets/dialogs/action_sheet
widgets/dialogs/bottom_sheet
widgets/dialogs/command_palette
widgets/dialogs/dialog
widgets/dialogs/dialogs
Exports for the dialogs layer.
widgets/dialogs/draggable_sheet
widgets/dialogs/popover
widgets/drag_drop/drag_drop
Exports for the drag_drop layer.
widgets/drag_drop/drag_drop_widgets
widgets/feedback/connectivity_banner
widgets/feedback/error_boundary
widgets/feedback/feedback
Exports for the feedback layer.
widgets/feedback/snackbar
widgets/feedback/toast
widgets/feedback/tooltip
widgets/forms/form_helpers
widgets/forms/form_wizard
widgets/forms/forms
Exports for the forms layer.
widgets/forms/nash_form
widgets/indicators/circular_progress
widgets/indicators/indicators
Exports for the indicators layer.
widgets/indicators/linear_progress
widgets/indicators/loader
widgets/inputs/color_picker
widgets/inputs/date_field
widgets/inputs/date_picker
widgets/inputs/email_field
widgets/inputs/file_upload
widgets/inputs/inputs
Exports for the inputs layer.
widgets/inputs/multi_select
widgets/inputs/number_field
widgets/inputs/otp_field
widgets/inputs/password_field
widgets/inputs/phone_field
widgets/inputs/search_field
widgets/inputs/sliders
widgets/inputs/text_field
widgets/layouts/split_view
widgets/lists/data_table
widgets/lists/expansion_tile
widgets/lists/infinite_list
widgets/lists/list_tile
widgets/lists/lists
Exports for the lists layer.
widgets/lists/pagination
widgets/lists/settings_tile
widgets/lists/stat_tile
widgets/lists/tree_view
widgets/loading/loading
Exports for the loading layer.
widgets/loading/loading_widgets
widgets/loading/shimmer
widgets/media/avatar
widgets/media/image
widgets/media/image_tokens
widgets/media/media
Exports for the media layer.
widgets/media/network_image
widgets/misc/badge
widgets/misc/calendar
widgets/misc/code_block
widgets/misc/copy_button
widgets/misc/misc
Exports for the misc layer.
widgets/misc/rating
widgets/misc/stepper
widgets/misc/tag
widgets/misc/timeline
widgets/navigation/app_bar
widgets/navigation/bottom_nav_bar
Exports for the navigation layer.
widgets/navigation/tab_bar
widgets/notifications/notification_center
widgets/notifications/notifications
Exports for the notifications layer.
widgets/pickers/pickers
widgets/rich_text/rich_text
Exports for the rich_text layer.
widgets/rich_text/rich_text_editor
widgets/selection/controls
widgets/selection/segmented_button
widgets/selection/selection
Exports for the selection layer.
widgets/templates/admin_template
widgets/templates/analytics_template
widgets/templates/auth_templates
widgets/templates/chat_template
widgets/templates/ecommerce_template
widgets/templates/finance_template
widgets/templates/learning_template
widgets/templates/medical_template
widgets/templates/onboarding_templates
widgets/templates/profile_template
widgets/templates/settings_template
widgets/templates/social_template
widgets/templates/templates
Exports for the templates layer.
widgets/ux/ux
Exports for the ux layer.
widgets/ux/ux_states
widgets/widgets
Top-level export for the widgets layer.