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

A comprehensive Flutter design system package that provides consistent theming, typography, spacing, and UI components for Nebux applications.

1.0.1 #

Fixed #

  • Fixed issue_tracker URL in pubspec.yaml (removed .git suffix that made it unreachable)
  • Fixed homepage and repository URLs in pubspec.yaml (removed .git suffix)
  • Removed 7 unnecessary imports in country_picker_pro2 flagged by pub.dev static analysis (lints_core)

1.0.0 #

This is the first stable release of Nebux Design System, marking the completion of a 9-sprint governance-driven stabilization effort from v0.1.18 to v1.0.0.

Highlights #

  • 81%+ test coverage with 633 tests (up from 0 tests at project start)
  • Full typography system: all 10 typography roles now include height and letterSpacing values aligned with Material Design 3
  • Accurate theme mapping: NebuxTypography.fromThemeData() correctly maps heading→headlineMedium, section→titleLarge, label→labelLarge
  • Frozen public API surface: documented in doc/API-SURFACE.md
  • CI enforcement: coverage threshold at 60%, publish dry-run gate, analysis with --fatal-infos

Fixed (since v0.3.1) #

  • NebuxTypography TextStyles now include height and letterSpacing for all 10 roles (heading, section, content, paragraph, caption, label, primaryAction, secondaryAction, formInput, placeholder) — resolves typography rendering inconsistencies across platforms
  • NebuxTypography.fromThemeData() mapping corrected: heading now maps to headlineMedium (was labelLarge), section to titleLarge (was labelMedium), label to labelLarge (was labelSmall)

Added #

  • 391 new tests across core, components, and country picker modules
  • doc/API-SURFACE.md updated to v1.0.0 with complete symbol catalog

Changed #

  • CI coverage threshold raised from 30% to 60%

Migration from v0.3.1 #

Typography height/letterSpacing values are now baked into NebuxTypography.standard() and .custom() factories. If you were manually setting these on overrides, the defaults may now conflict — review your NebuxTypography.withOverrides() calls. See doc/MIGRATION.md for details.


0.3.1 #

Fixed #

  • NbxTextFormFieldWidget text style now uses textPrimary semantic token instead of black (dark mode fix)
  • flutter_cache_manager added as explicit dependency (was transitive-only)

Added #

  • AppBarConfig.dividerThickness — configurable divider thickness for NbxScaffold (default: 0.2)
  • ADR-003: Vendored Country Picker architectural decision documented
  • Package-level dartdoc on lib/nebux_design_system.dart
  • Comprehensive dartdoc across 140+ public symbols
  • doc/MIGRATION.md — consolidated migration guide for all breaking versions
  • CI coverage threshold enforcement (60% minimum)
  • Publish workflow validation gate (dart pub publish --dry-run)

Documentation #

  • v0.3.0 migration guide completed with before/after examples
  • Country picker parameter deprecation roadmap documented

0.3.0 #

Breaking Changes #

  • Translation loading is now async — CountryLocalizations.load() calls TranslationLoader.instance.load() internally. No consumer action needed if using the standard LocalizationsDelegate pattern.

Migration note: The public API is unchanged. If you use the standard delegate pattern, no code changes are needed:

// Before (v0.2.x) and After (v0.3.0) — identical usage
MaterialApp(
  localizationsDelegates: [
    CountryLocalizations.delegate,
    // ...other delegates
  ],
)

The delegate now loads translations from JSON assets asynchronously under the hood, but CountryLocalizations.delegate works the same way. If you previously used CountryProvider directly, it has been removed — use CountryDecoder instead (available since v0.2.x).

Added #

  • TranslationLoader — singleton utility for loading country name translations from JSON assets with in-memory caching
  • CountryPickerSearchConfig — immutable config class for search bar styling
  • CountryPickerAppBarConfig — immutable config class for app bar styling
  • CountryPickerStyleConfig — immutable config class for flag/text styling
  • NbxPhoneFieldWidget.noCountryHelperText — configurable helper text when no country selected (default: 'Select a country first')
  • TranslationLoader.isLanguageCodeSupported() — check if a language code is supported
  • TranslationLoader.supportedLocalesWithVariants — complete list of supported locales including script variants

Fixed #

  • NbxTextFieldWithStateWidget dispose ordering — super.dispose() now called after controller disposal (was before, risking use-after-dispose)

Removed #

  • countries.dart — 7,575 LOC of dead code (never imported)
  • AlphaScroller widget — 258 LOC orphaned widget (never imported)
  • 33 Dart translation files (~8,248 LOC) — replaced by 33 JSON assets
  • CountryProvider class — unused duplicate of CountryDecoder
  • Duplicate Locale('lv') entry in country decoder

Optimized #

  • Grid scroll animation: 77 hardcoded if-else width breakpoints → mathematical formula (140 lines removed)
  • Locale mapping: deduplicated from 2 switch statements to single TranslationLoader source of truth
  • Country picker component: 65.8% LOC reduction (24,745 → 8,453 LOC), 72.3% file reduction (47 → 13 files)

0.2.1 - 2026-02-19 #

New Features #

  • Input field states: Added NbxInputState enum (neutral, success, error) to NbxInputParameters

    • helperText — supporting text displayed below the input field
    • inputState — visual state with automatic border color and suffix icon changes
    • showCharacterCounter — shows built-in character counter when maxLength is set
    • Success state automatically adds green border and check icon
  • NbxScaffold configuration:

    • BodyConfig.extendBodyBehindAppBar — now configurable (was hardcoded to true)
  • NbxButton spinner color:

    • ButtonStateConfig.loadingColor — custom color for the loading spinner
    • When not set, spinner color is derived from button variant for proper contrast
  • NbxPhoneFieldWidget visual indicator:

    • Shows "Select a country first" helper text when phone input is read-only due to missing country selection

Improvements #

  • Semantic token migration:
    • NbxDividerWidget now uses divider semantic token instead of hardcoded black
    • NbxScaffold divider uses divider token instead of Colors.grey.shade500
    • Text field cursor color uses textPrimary instead of Colors.black
    • Focused input border uses focus token instead of hardcoded Colors.black

Tests #

  • Added tests for input states, scaffold configuration, button spinner, and semantic tokens

0.2.0 - 2026-02-20 #

This release stabilizes the public API surface before v1.0.0. Breaking changes are introduced to improve API ergonomics and type safety.

Breaking Changes #

1. NbxInputParameters no longer accepts BuildContext

The context parameter has been removed from NbxInputParameters. Context is now passed to the inputDecoration() method when needed.

Before (v0.2.0-dev.2):

NbxTextFieldWidget(
  NbxInputParameters(
    context: context,  // ❌ No longer accepted
    isRequired: false,
    inputType: NbxInputType.text,
    labelText: 'Search',
  ),
)

After (v0.2.0):

NbxTextFieldWidget(
  NbxInputParameters(
    isRequired: false,
    inputType: NbxInputType.text,
    labelText: 'Search',
  ),
)
// context is passed internally by the widget

2. NbxNetworkImage constructor restructured

The widget now uses config classes instead of 33 individual parameters. This improves readability and makes the API more discoverable.

Before (v0.2.0-dev.2):

NbxNetworkImage(
  imageUrl: 'https://example.com/image.png',
  memCacheWidth: 100,
  memCacheHeight: 100,
  fadeInDuration: Duration(milliseconds: 500),
  borderRadius: BorderRadius.circular(8),
  // ... 29 more parameters
)

After (v0.2.0):

NbxNetworkImage(
  imageUrl: 'https://example.com/image.png',
  cacheConfig: NbxImageCacheConfig(
    memCacheWidth: 100,
    memCacheHeight: 100,
  ),
  animationConfig: NbxImageAnimationConfig(
    fadeInDuration: Duration(milliseconds: 500),
  ),
  styleConfig: NbxImageStyleConfig(
    borderRadius: BorderRadius.circular(8),
  ),
)

3. NbxNetworkImage.cacheManager is now properly typed

Before: dynamic cacheManager
After: BaseCacheManager? cacheManager (in NbxImageCacheConfig)

New Features #

  • Config classes for NbxNetworkImage:

    • NbxImageCacheConfig — cache settings (memCache, diskCache, cacheKey, cacheManager)
    • NbxImageAnimationConfig — fade animation settings
    • NbxImageProgressConfig — progress indicator settings
    • NbxImageStyleConfig — visual styling (border, shadow, color, etc.)
  • Architecture Decision Records (ADRs):

    • doc/adr/001-naming-convention.md — formal Nebux vs Nbx prefix rules
    • doc/adr/002-config-class-policy.md — when to use @freezed vs plain classes
  • API Surface Documentation: doc/API-SURFACE.md catalogs the stable v0.2.0 public API

  • Factory extensions for NbxNetworkImage:

    • NbxNetworkImageExtensions.circular() — circular profile images
    • NbxNetworkImageExtensions.square() — square thumbnails
    • NbxNetworkImageExtensions.rounded() — rounded corner images

Fixes #

  • Removed debugPrint from NbxTextFieldWithStateWidget.dispose() that polluted test output

Tests #

  • Added 14 new tests for config classes and NbxNetworkImage extensions
  • All 182 tests pass

0.2.0-dev.2 - 2026-02-19 #

  • NEW: Default color palettes via static factories

    • NebuxColors.standardLight() — light theme default palette
    • NebuxColors.standardDark() — dark theme default palette
    • NebuxColorThemes.standard() — bundled light + dark theme
  • NEW: Color tokens added to NebuxColors

    • surface — for card backgrounds, input fills
    • divider — for separator lines
    • overlay — for modal scrim/overlay
    • focus — for input focus rings
  • NEW: Full NebuxTheme.createThemeData() implementation

    • Complete ColorScheme mapping from NebuxColors
    • AppBarTheme, CardTheme, DividerTheme, InputDecorationTheme
    • Button themes: Elevated, Outlined, Text, Filled
    • FloatingActionButtonTheme, IconTheme
    • TextTheme mapped from NebuxTypography roles
  • NEW: NebuxColorsLerp.lerp() extension for proper color interpolation

  • FIX: Removed duplicate method definitions in NebuxTheme

  • FIX: example/example.dart updated to use new APIs (suffixIconType, standardLight)

0.2.0-dev.1 - 2026-02-19 #

  • BREAKING: Validation architecture consolidated

    • singleLineFormatter now only applies when maxLines == 1 (or null)
    • Multi-line inputs no longer have FilteringTextInputFormatter.singleLineFormatter applied
  • NEW: All *ValidationRules classes now exported

    • TextValidationRules, EmailValidationRules, PasswordValidationRules, NumberValidationRules, PhoneValidationRules accessible from public API
  • NEW: Added base parameter to NebuxTypography.withOverrides() for test customization

  • NEW: Added optional typography parameter to NebuxTheme.fromJson() to avoid google_fonts network calls

  • DOCS: Comprehensive dartdoc for NbxTextFieldWidget and NbxTextFormFieldWidget

    • Clear guidance: use NbxTextFieldWidget for standalone inputs, NbxTextFormFieldWidget for Form integration
  • TESTS: Added widget tests for NbxTextFieldWidget and NbxTextFormFieldWidget

  • FIX: Resolved google_fonts async errors in tests by using NebuxTypography.custom('Roboto', null) consistently

0.1.20 - 2026-02-19 #

  • DEAD CODE CLEANUP: Removed ~203 lines of commented-out code from NebuxTheme.createThemeData()

  • SEMVER GOVERNANCE: Established formal versioning policy in CONTRIBUTING.md

    • Versioning policy: patch = bug fixes; minor = new features + deprecations; major = removals
    • Deprecation runway: symbols must be @Deprecated for ≥ 1 minor version before removal
    • API stability tiers: stable, experimental, internal
  • MIGRATION GUIDE: Documented 0.1.17 → 0.1.18 breaking change in CHANGELOG

    • customValidatorvalidator + onValidationResult
    • showEyeIconsuffixIconType: NbxSuffixIconType.eye
    • showCancelIconsuffixIconType: NbxSuffixIconType.cancel
    • showSuffixIcon / forceShowSuffixIconsuffixIconType
  • API LEAK FIX: Removed direct app_shimmer re-export

    • Created lib/src/components/shimmers/export.dart barrel file
    • Created NbxShimmer wrapper widget with Nebux theming
    • Existing shimmer components now properly exported through new barrel
    • Fixed shimmer documentation: "BB Center" → "Nebux Design System"
  • RESIDUAL FIXES:

    • NebuxUtils.isWeb now uses kIsWeb from flutter/foundation.dart
    • Deleted unused NebuxAppBar widget (zero references in codebase)
    • Fixed NbxButton loading spinner color to be theme-aware

0.1.19 - 2026-02-19 #

  • TEST FOUNDATION: Established test infrastructure with ≥42% coverage on non-vendored code

    • Created test/helpers/nebux_test_helpers.dart with theme wrapper utilities for widget tests
    • Added comprehensive test directory structure mirroring lib/src/
    • Replaced placeholder country_picker_pro_test.dart with real test suite
  • CORE TESTS:

    • ColorConverter: parsing (hex, int, Color), toJson, error handling
    • NebuxColors: constructor, fromJson/toJson roundtrip, lerp edge cases
    • NebuxFontSize: standard, custom, merge, copyWith
    • NebuxTypography: custom factory, withOverrides, fromThemeData, merge
    • NebuxTheme: custom, fromJson, copyWith, lerp, createThemeData
  • VALIDATION TESTS:

    • ValidationRule: validate, condition-based skipping, CustomValidationRules
    • TextValidationRules: minLength, maxLength, onlyLetters, noNumbers
    • EmailValidationRules: validFormat, minLength, yahooOnly, domainOnly
    • PasswordValidationRules: minLength, hasNumbers, hasLetters, hasUppercase, hasLowercase, hasSpecialChars, hasNumbersAndLetters
    • NbxInputValidator: validate for all NbxInputType values, validateWithRules, validateWithRulesAndCustomError, static validators
  • WIDGET TESTS:

    • NbxButton: 4 variants (filled, outline, text, danger), loading state, disabled state, expanded layout, leading/trailing icons
  • CI: Added --coverage flag to test step for coverage reporting

0.1.18 - 2026-02-18 #

  • BREAKING CHANGE: Refactored NbxInputParameters validation API for a clean separation of concerns

    • Removed customValidator — replaced by validator + onValidationResult
    • Removed showEyeIcon, showCancelIcon, showSuffixIcon, forceShowSuffixIcon — replaced by suffixIconType
    • Added validator: String? Function(String? value)? — pure validator following the native Flutter FormField.validator contract (returns error string or null)
    • Added onValidationResult: void Function(String? errorMessage)? — notification callback invoked synchronously with the final validation result after every validation cycle (null = valid). Eliminates the need for Future.delayed workarounds in consumers
    • Added suffixIconType: NbxSuffixIconType — enum (none, eye, cancel) to declare the automatic suffix icon; ignored when a custom suffixIcon widget is provided
    • Added NbxSuffixIconType enum to nbx_inputs_enum.dart
    • Updated NbxCountryPickerInput to expose validator and onValidationResult (replacing customValidator)
    • Updated NbxPhoneFieldWidget internal validator to use the new contract (removed Future.delayed)
    • Fixed buildSuffixIcon to always respect a custom suffixIcon widget before applying the read-only guard

Migration Guide (0.1.17 → 0.1.18) #

Old API New API Notes
customValidator: (value) => ... validator: (value) => ... Returns error string or null
showEyeIcon: true suffixIconType: NbxSuffixIconType.eye For password fields
showCancelIcon: true suffixIconType: NbxSuffixIconType.cancel Clear button
showSuffixIcon: true suffixIconType: NbxSuffixIconType.eye or .cancel Choose specific type
forceShowSuffixIcon: true N/A Suffix icon now always visible when type is set

Example migration:

// Before (0.1.17)
NbxTextFieldWidget(
  parameters: NbxInputParameters(
    customValidator: (value) => value?.isEmpty == true ? 'Required' : null,
    showEyeIcon: true,
  ),
);

// After (0.1.18)
NbxTextFieldWidget(
  parameters: NbxInputParameters(
    validator: (value) => value?.isEmpty == true ? 'Required' : null,
    onValidationResult: (error) => print(error ?? 'Valid'),
    suffixIconType: NbxSuffixIconType.eye,
  ),
);

0.1.17 - 2026-02-16 #

  • FIX: Forward requiredErrorMessage to customValidator when field is empty and required

    • Previously, inputValidator returned requiredErrorMessage early without calling customValidator, preventing external error notifiers from capturing required-field errors
    • Now calls customValidator(requiredErrorMessage) before returning, allowing consumers to handle the required error externally (e.g., shadow-style inputs with InputExternalErrorWidget)
  • CI: Removed develop branch from CI trigger

    • CI now only runs on PRs targeting main to avoid noise during frequent develop updates

0.1.16 - 2026-02-16 #

  • NEW FEATURE: Added showErrorText, customValidator, and border customization options to NbxCountryPickerInput
    • Introduced showErrorText parameter to control error message visibility in country picker input
    • Added customValidator callback for custom validation logic
    • Added border customization support for greater styling flexibility

0.1.15 - 2026-02-15 #

  • NEW FEATURE: Added showErrorText parameter to NbxInputParameters to control error message visibility

    • Introduced showErrorText boolean parameter (defaults to true) in NbxInputParameters
    • When set to false, hides the error text below input fields while preserving validation behavior
    • Updated NbxInputDecorationExtension to conditionally apply error text style based on the parameter
  • ENHANCEMENT: Enhanced letter validation to include accented characters

    • Updated TextValidationRules.onlyLetters regex to support accented characters (ñ, á, é, í, ó, ú, ü and their uppercase variants)
    • Improved input validation for Spanish and other Latin-based language inputs
  • CI/CD: Added GitHub Actions for automated CI, release and publishing

    • ci.yml: runs flutter analyze and flutter test on PRs to main/develop
    • release.yml: creates git tag and GitHub Release on PR merge to main
    • publish.yml: publishes to pub.dev via OIDC (workflow_dispatch)
    • Excluded country_picker_pro2 and example from static analysis
  • DOCS: Rewrote README with concise documentation and all current components

  • CHORE: Improved pub.dev score (130 → 160)

    • Added example/example.dart with a complete usage sample
    • Updated google_fonts from ^6.2.1 to ^8.0.1
    • Updated toml from ^0.16.0 to ^0.18.0
    • Bumped minimum Dart SDK to ^3.9.0 and Flutter to >=3.29.0
    • Removed orphan file country_json copy.dart with invalid naming

0.1.13 - 2025-12-03 #

  • NEW FEATURE: Added onBeforeOpen callback to NbxCountryPickerInput
    • Introduced onBeforeOpen async callback to validation before opening the country picker
    • Updated _openCountryPicker to await the callback result

0.1.12 - 2025-12-01 #

  • NEW FEATURE: Enhanced country selection functionality with custom country list support

    • Added getCountriesByCodes method in CountryProvider to retrieve countries based on a list of country codes
    • Updated countrySelector, CountryListView, and showCountryListView to accept a custom list of countries for improved flexibility
    • Modified NbxCountryPickerModalParameters to include a countries parameter, allowing for custom country lists in the picker
    • Adjusted validation logic to ensure compatibility between custom countries and other parameters
    • Enhanced country picker functionality with better customization options
  • REFACTOR: Removed countryPreferred parameter and updated documentation for country selection

    • Removed the countryPreferred parameter from countrySelector, CountryListView, and related components to streamline the country selection process
    • Updated documentation to reflect the new countries parameter, allowing for custom country lists instead of preferred countries
    • Adjusted related code to ensure compatibility with the updated country selection logic
    • Improved API consistency by consolidating country selection parameters

0.1.11 - 2025-11-29 #

  • NEW FEATURE: Added maxLines parameter to NbxCountryPickerInput and NbxCountryPickerParameters

    • Introduced optional maxLines parameter in NbxCountryPickerParameters to control the maximum number of lines for the input field
    • Updated NbxCountryPickerInput to utilize the maxLines parameter, enhancing input flexibility
    • Adjusted NbxTextFormFieldWidget to reflect the new maxLines property in its text display
    • Improved country picker input customization options

0.1.9 - 2025-11-24 #

  • NEW FEATURE: Added findByPhoneCode method to CountryProvider for enhanced country selection

    • Implemented method to retrieve a country based on its phone code
    • Returns null if no matching country is found, improving error handling
    • Enhanced country picker functionality with better phone code lookup capabilities
  • REFACTOR: Enhanced NbxButton widget structure and documentation

    • Improved widget properties and methods organization for better clarity and maintainability
    • Updated documentation comments following custom doc template for clearer parameter descriptions
    • Introduced helper methods to streamline button style and content building
    • Removed legacy constructor to simplify API and encourage use of configuration classes
    • Enhanced code readability and maintainability
  • REFACTOR: Simplified NbxAppBar layout and improved title rendering

    • Removed leading button logic from app bar for cleaner architecture
    • Adjusted title spacing based on presence of leading button in appBarConfig
    • Updated title widget to conditionally include leading button within a Row for better layout management
    • Improved component structure and predictability
  • FIX: Updated font sizes and weights in NebuxTypography for consistency

    • Adjusted font sizes for content, caption, heading, and section styles to align with design specifications
    • Updated documentation comments to reflect new font sizes and weights
    • Improved typography consistency across the design system
  • ENHANCEMENT: Improved NbxPhoneFieldWidget layout

    • Adjusted crossAxisAlignment from start to end for improved visual alignment
    • Enhanced layout consistency in phone input fields
  • CHORE: Updated repository links in pubspec.yaml to reflect new ownership

    • Changed homepage, repository, and issue tracker URLs to point to new GitHub account
    • Updated package metadata for better maintainability
  • CHORE: Updated package dependencies

    • Added app_shimmer package as transitive dependency in pubspec.lock
    • Updated local package version references

0.1.7 - 2025-01-27 #

  • FIX: Updated package dependencies and version constraints
    • Fixed app_shimmer dependency to use proper version constraint (^1.0.0)
    • Bumped package version to 0.1.7 for proper publishing sequence
    • Improved package stability and dependency management

0.1.6 - 2025-01-27 #

  • FIX: Updated package dependencies and version constraints
    • Fixed app_shimmer dependency to use proper version constraint (^1.0.0)
    • Bumped package version to 0.1.6 for proper publishing sequence
    • Improved package stability and dependency management

0.1.4 - 2025-10-06 #

  • REFACTOR: Chip configuration and list tile integration
    • Added ChipConfig utility to centralize chip parameters (label, labelStyle, colors, density, onTap)
    • Updated internal components to consume ChipConfig for improved reusability and maintainability
    • Refactored AppListTileWithChip to remove chip-specific parameters and accept a ChipConfig
    • Improved documentation consistency using the custom doc template
    • No breaking API changes; backwards-compatible migration path provided via config object

0.1.3 - 2025-01-27 #

  • FIX: Updated NbxAppBar to automatically imply leading button for better Material Design compliance
    • Fixed automaticallyImplyLeading behavior to properly handle leading button display
    • Refactored NbxScaffold decoration property for improved customization options
    • Enhanced component consistency with Material Design guidelines

0.1.2 - 2025-01-27 #

  • REFACTOR: Enhanced NbxAppBar component with improved leading button handling
    • Refactored leading button logic for better clarity and maintainability
    • Changed default centerTitle behavior from true to false in AppBarConfig for better alignment with Material Design guidelines
    • Improved titleSpacing logic to properly handle cases when no leading button is present
    • Set automaticallyImplyLeading to false for more predictable behavior
    • Enhanced code organization by extracting leading button building logic

0.1.0 - 2025-09-30 #

  • NEW FEATURE: Enhanced Country model with minLength and maxLength properties for improved phone number validation
    • Added minLength property to Country model for minimum phone number length validation
    • Added maxLength property to Country model for maximum phone number length validation
    • Updated country JSON data to include length validation information
    • Improved country picker functionality with better phone number validation support
    • Enhanced user experience with more accurate phone number input validation

0.0.13 #

  • REFACTOR: NbxAppBar improvements for clarity and predictable spacing
    • Adjusted titleSpacing logic to better align with Material AppBar expectations
    • Simplified status bar brightness handling by removing redundant branches
    • Minor cleanups for readability and consistency

0.0.12 #

  • BREAKING CHANGE: Refactored NbxButton component architecture for improved modularity and maintainability
    • Introduced configuration-based architecture with specialized config classes:
      • ButtonIconConfig: Manages icon properties (leading/trailing icons and colors)
      • ButtonStyleConfig: Handles visual styling (variant, colors, border radius, text style)
      • ButtonStateConfig: Controls state management (loading, enabled, selected)
      • ButtonLayoutConfig: Manages layout properties (expansion behavior)
    • Added new constructor with configuration objects for better organization
    • Maintained backward compatibility with NbxButton.legacy() constructor
    • Improved code organization by reducing main widget from 275 lines to ~100 lines
    • Enhanced testability with isolated configuration classes
    • Increased component reusability through modular configuration system
    • Better separation of concerns with dedicated config files
    • Added comprehensive documentation following custom doc format
    • Improved maintainability with isolated change impact

0.0.11 #

  • REFACTOR: Enhanced NbxButton rendering logic with improved clarity and modularity
    • Introduced dedicated _buildTextWidget method to handle text rendering based on button variant
    • Simplified button child widget construction by consolidating text and icon handling
    • Enhanced readability and maintainability of the NbxButton component
    • Added proper text overflow handling with TextOverflow.fade and maxLines: 2
    • Improved text alignment and spacing with CrossAxisAlignment.center and TextAlign.center
    • Added Flexible wrapper for better text layout flexibility

0.0.10 #

  • ENHANCEMENT: Added isSelected property to NbxButton to indicate selection state with corresponding background/foreground style updates
  • REFACTOR: Simplified NbxButton variant rendering by replacing if-else with switch-case and consolidating text style application
  • CHORE: Commented out repository and issue_tracker fields in pubspec.yaml for cleaner configuration

Country Picker Integration #

The Nebux Design System includes a custom implementation of country picker functionality based on the country_picker_pro package. This integration provides:

  • Custom Implementation: Fork of the original country_picker_pro package with enhanced Nebux theming
  • Internationalization: Full support for 25+ languages
  • Theme Integration: Seamless integration with Nebux color and typography systems
  • Enhanced Customization: Improved accessibility and styling options
  • Consistent UX: Matches the design patterns of other Nebux components

The country picker functionality is available through the NbxCountryPickerInput component and can be used for country selection in forms, user registration, and profile management.

0.0.9 #

  • NEW FEATURE: Added comprehensive country picker functionality with NbxCountryPickerInput component
  • NEW FEATURE: Integrated custom country picker implementation based on country_picker_pro package
  • NEW FEATURE: Full internationalization support (25+ languages) for country selection
  • ENHANCEMENT: Added customizable phone code display option in country picker input
  • ENHANCEMENT: Improved button component with renamed isDisabled to enabled for better clarity
  • ENHANCEMENT: Enhanced input styling with improved hint text consistency
  • ENHANCEMENT: Added flexible appBar support in NbxScaffold (now supports null appBar)
  • ENHANCEMENT: Added default SizedBox constants for standardized spacing
  • IMPROVEMENT: Refactored country selection logic with context-based theming
  • IMPROVEMENT: Updated export structure to include new country picker components
  • DEPENDENCY: Replaced external country_picker_pro dependency with custom implementation for better integration

0.0.8 #

  • BREAKING CHANGE: Refactored button variants for better clarity - renamed 'primary' to 'filled' and 'secondary' to 'text'
  • Enhanced typography system with custom factory method for flexible text style overrides
  • Improved text validation rules with named parameters for better clarity and maintainability
  • Enhanced input field styling with improved label and hint styles using textSecondary color with reduced opacity
  • Added floatingLabelStyle to input decoration for consistent theming across input fields
  • Introduced customBackgroundColor property to NbxButton for flexible background color customization
  • Enhanced NbxAppBar with customizable leading button for improved component flexibility
  • Added secondaryVariant color to NebuxColors for better theming support
  • Refined typography styles with updated font sizes for improved consistency
  • Generated new model files for enhanced component structure and theming consistency
  • Updated .gitignore configuration for better generated file management

0.0.5 #

  • BREAKING CHANGE: Removed font_awesome_flutter dependency for better performance and smaller bundle size
  • Enhanced NebuxAppBar with customizable icon support, removing dependency on FontAwesome icons
  • Refactored NbxSocialLoginButton to support custom icons instead of FontAwesome icons
  • Improved input field styling with enhanced enabledBorder configuration in NbxInputDecorationExtension
  • Better visual consistency across input components

0.0.4 #

  • Enhanced README.md with improved documentation
  • Improved package documentation and usage examples

0.0.3 #

  • Updated version to reflect latest changes in the Nebux Design System

0.0.2 #

  • Enhanced README.md with improved feature descriptions
  • Added detailed installation instructions
  • Included comprehensive usage examples for components and theming
  • Updated support contact information

0.0.1 #

  • Initial release of NebuX Design System
  • Complete theme system with light and dark mode support
  • Typography system with consistent text styles and font sizes
  • Spacing utilities for standardized layouts
  • UI Components including:
    • App bars with customizable styling
    • Button components with multiple variants
    • Text field widgets with validation
    • Network image component with caching
    • Scaffold components for consistent page structure
  • Color management system with primary, secondary, and neutral colors
  • Responsive design utilities
  • Comprehensive documentation and examples
2
likes
160
points
639
downloads

Publisher

unverified uploader

Weekly Downloads

A comprehensive Flutter design system package that provides consistent theming, typography, spacing, and UI components for Nebux applications.

Repository (GitHub)
View/report issues
Contributing

Documentation

API reference

License

MIT (license)

Dependencies

app_shimmer, cached_network_image, collection, double_back_to_exit, flutter, flutter_cache_manager, flutter_skeleton_ui, freezed_annotation, google_fonts, json_annotation, toml

More

Packages that depend on nebux_design_system