nebux_design_system 1.0.1
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_trackerURL inpubspec.yaml(removed.gitsuffix that made it unreachable) - Fixed
homepageandrepositoryURLs inpubspec.yaml(removed.gitsuffix) - Removed 7 unnecessary imports in
country_picker_pro2flagged 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
heightandletterSpacingvalues 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) #
NebuxTypographyTextStyles now includeheightandletterSpacingfor all 10 roles (heading, section, content, paragraph, caption, label, primaryAction, secondaryAction, formInput, placeholder) — resolves typography rendering inconsistencies across platformsNebuxTypography.fromThemeData()mapping corrected: heading now maps toheadlineMedium(waslabelLarge), section totitleLarge(waslabelMedium), label tolabelLarge(waslabelSmall)
Added #
- 391 new tests across core, components, and country picker modules
doc/API-SURFACE.mdupdated 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 #
NbxTextFormFieldWidgettext style now usestextPrimarysemantic token instead ofblack(dark mode fix)flutter_cache_manageradded as explicit dependency (was transitive-only)
Added #
AppBarConfig.dividerThickness— configurable divider thickness forNbxScaffold(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()callsTranslationLoader.instance.load()internally. No consumer action needed if using the standardLocalizationsDelegatepattern.
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 cachingCountryPickerSearchConfig— immutable config class for search bar stylingCountryPickerAppBarConfig— immutable config class for app bar stylingCountryPickerStyleConfig— immutable config class for flag/text stylingNbxPhoneFieldWidget.noCountryHelperText— configurable helper text when no country selected (default: 'Select a country first')TranslationLoader.isLanguageCodeSupported()— check if a language code is supportedTranslationLoader.supportedLocalesWithVariants— complete list of supported locales including script variants
Fixed #
NbxTextFieldWithStateWidgetdispose 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)AlphaScrollerwidget — 258 LOC orphaned widget (never imported)- 33 Dart translation files (~8,248 LOC) — replaced by 33 JSON assets
CountryProviderclass — unused duplicate ofCountryDecoder- 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
TranslationLoadersource 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
NbxInputStateenum (neutral,success,error) toNbxInputParametershelperText— supporting text displayed below the input fieldinputState— visual state with automatic border color and suffix icon changesshowCharacterCounter— shows built-in character counter whenmaxLengthis set- Success state automatically adds green border and check icon
-
NbxScaffoldconfiguration:BodyConfig.extendBodyBehindAppBar— now configurable (was hardcoded totrue)
-
NbxButtonspinner color:ButtonStateConfig.loadingColor— custom color for the loading spinner- When not set, spinner color is derived from button variant for proper contrast
-
NbxPhoneFieldWidgetvisual indicator:- Shows "Select a country first" helper text when phone input is read-only due to missing country selection
Improvements #
- Semantic token migration:
NbxDividerWidgetnow usesdividersemantic token instead of hardcodedblackNbxScaffolddivider usesdividertoken instead ofColors.grey.shade500- Text field cursor color uses
textPrimaryinstead ofColors.black - Focused input border uses
focustoken instead of hardcodedColors.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 settingsNbxImageProgressConfig— progress indicator settingsNbxImageStyleConfig— visual styling (border, shadow, color, etc.)
-
Architecture Decision Records (ADRs):
doc/adr/001-naming-convention.md— formalNebuxvsNbxprefix rulesdoc/adr/002-config-class-policy.md— when to use@freezedvs plain classes
-
API Surface Documentation:
doc/API-SURFACE.mdcatalogs the stable v0.2.0 public API -
Factory extensions for
NbxNetworkImage:NbxNetworkImageExtensions.circular()— circular profile imagesNbxNetworkImageExtensions.square()— square thumbnailsNbxNetworkImageExtensions.rounded()— rounded corner images
Fixes #
- Removed
debugPrintfromNbxTextFieldWithStateWidget.dispose()that polluted test output
Tests #
- Added 14 new tests for config classes and
NbxNetworkImageextensions - All 182 tests pass
0.2.0-dev.2 - 2026-02-19 #
-
NEW: Default color palettes via static factories
NebuxColors.standardLight()— light theme default paletteNebuxColors.standardDark()— dark theme default paletteNebuxColorThemes.standard()— bundled light + dark theme
-
NEW: Color tokens added to
NebuxColorssurface— for card backgrounds, input fillsdivider— for separator linesoverlay— for modal scrim/overlayfocus— 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.dartupdated to use new APIs (suffixIconType, standardLight)
0.2.0-dev.1 - 2026-02-19 #
-
BREAKING: Validation architecture consolidated
singleLineFormatternow only applies whenmaxLines == 1(or null)- Multi-line inputs no longer have
FilteringTextInputFormatter.singleLineFormatterapplied
-
NEW: All
*ValidationRulesclasses now exportedTextValidationRules,EmailValidationRules,PasswordValidationRules,NumberValidationRules,PhoneValidationRulesaccessible from public API
-
NEW: Added
baseparameter toNebuxTypography.withOverrides()for test customization -
NEW: Added optional
typographyparameter toNebuxTheme.fromJson()to avoid google_fonts network calls -
DOCS: Comprehensive dartdoc for
NbxTextFieldWidgetandNbxTextFormFieldWidget- Clear guidance: use
NbxTextFieldWidgetfor standalone inputs,NbxTextFormFieldWidgetfor Form integration
- Clear guidance: use
-
TESTS: Added widget tests for
NbxTextFieldWidgetandNbxTextFormFieldWidget -
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
@Deprecatedfor ≥ 1 minor version before removal - API stability tiers:
stable,experimental,internal
-
MIGRATION GUIDE: Documented 0.1.17 → 0.1.18 breaking change in CHANGELOG
customValidator→validator+onValidationResultshowEyeIcon→suffixIconType: NbxSuffixIconType.eyeshowCancelIcon→suffixIconType: NbxSuffixIconType.cancelshowSuffixIcon/forceShowSuffixIcon→suffixIconType
-
API LEAK FIX: Removed direct
app_shimmerre-export- Created
lib/src/components/shimmers/export.dartbarrel file - Created
NbxShimmerwrapper widget with Nebux theming - Existing shimmer components now properly exported through new barrel
- Fixed shimmer documentation: "BB Center" → "Nebux Design System"
- Created
-
RESIDUAL FIXES:
NebuxUtils.isWebnow useskIsWebfromflutter/foundation.dart- Deleted unused
NebuxAppBarwidget (zero references in codebase) - Fixed
NbxButtonloading 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.dartwith theme wrapper utilities for widget tests - Added comprehensive test directory structure mirroring
lib/src/ - Replaced placeholder
country_picker_pro_test.dartwith real test suite
- Created
-
CORE TESTS:
ColorConverter: parsing (hex, int, Color), toJson, error handlingNebuxColors: constructor, fromJson/toJson roundtrip, lerp edge casesNebuxFontSize: standard, custom, merge, copyWithNebuxTypography: custom factory, withOverrides, fromThemeData, mergeNebuxTheme: custom, fromJson, copyWith, lerp, createThemeData
-
VALIDATION TESTS:
ValidationRule: validate, condition-based skipping, CustomValidationRulesTextValidationRules: minLength, maxLength, onlyLetters, noNumbersEmailValidationRules: validFormat, minLength, yahooOnly, domainOnlyPasswordValidationRules: minLength, hasNumbers, hasLetters, hasUppercase, hasLowercase, hasSpecialChars, hasNumbersAndLettersNbxInputValidator: 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
--coverageflag to test step for coverage reporting
0.1.18 - 2026-02-18 #
-
BREAKING CHANGE: Refactored
NbxInputParametersvalidation API for a clean separation of concerns- Removed
customValidator— replaced byvalidator+onValidationResult - Removed
showEyeIcon,showCancelIcon,showSuffixIcon,forceShowSuffixIcon— replaced bysuffixIconType - Added
validator: String? Function(String? value)?— pure validator following the native FlutterFormField.validatorcontract (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 forFuture.delayedworkarounds in consumers - Added
suffixIconType: NbxSuffixIconType— enum (none,eye,cancel) to declare the automatic suffix icon; ignored when a customsuffixIconwidget is provided - Added
NbxSuffixIconTypeenum tonbx_inputs_enum.dart - Updated
NbxCountryPickerInputto exposevalidatorandonValidationResult(replacingcustomValidator) - Updated
NbxPhoneFieldWidgetinternal validator to use the new contract (removedFuture.delayed) - Fixed
buildSuffixIconto always respect a customsuffixIconwidget before applying the read-only guard
- Removed
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
requiredErrorMessagetocustomValidatorwhen field is empty and required- Previously,
inputValidatorreturnedrequiredErrorMessageearly without callingcustomValidator, 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 withInputExternalErrorWidget)
- Previously,
-
CI: Removed
developbranch from CI trigger- CI now only runs on PRs targeting
mainto avoid noise during frequent develop updates
- CI now only runs on PRs targeting
0.1.16 - 2026-02-16 #
- NEW FEATURE: Added
showErrorText,customValidator, and border customization options toNbxCountryPickerInput- Introduced
showErrorTextparameter to control error message visibility in country picker input - Added
customValidatorcallback for custom validation logic - Added border customization support for greater styling flexibility
- Introduced
0.1.15 - 2026-02-15 #
-
NEW FEATURE: Added
showErrorTextparameter toNbxInputParametersto control error message visibility- Introduced
showErrorTextboolean parameter (defaults totrue) inNbxInputParameters - When set to
false, hides the error text below input fields while preserving validation behavior - Updated
NbxInputDecorationExtensionto conditionally apply error text style based on the parameter
- Introduced
-
ENHANCEMENT: Enhanced letter validation to include accented characters
- Updated
TextValidationRules.onlyLettersregex to support accented characters (ñ, á, é, í, ó, ú, ü and their uppercase variants) - Improved input validation for Spanish and other Latin-based language inputs
- Updated
-
CI/CD: Added GitHub Actions for automated CI, release and publishing
ci.yml: runsflutter analyzeandflutter teston PRs to main/developrelease.yml: creates git tag and GitHub Release on PR merge to mainpublish.yml: publishes to pub.dev via OIDC (workflow_dispatch)- Excluded
country_picker_pro2andexamplefrom static analysis
-
DOCS: Rewrote README with concise documentation and all current components
-
CHORE: Improved pub.dev score (130 → 160)
- Added
example/example.dartwith a complete usage sample - Updated
google_fontsfrom^6.2.1to^8.0.1 - Updated
tomlfrom^0.16.0to^0.18.0 - Bumped minimum Dart SDK to
^3.9.0and Flutter to>=3.29.0 - Removed orphan file
country_json copy.dartwith invalid naming
- Added
0.1.13 - 2025-12-03 #
- NEW FEATURE: Added
onBeforeOpencallback toNbxCountryPickerInput- Introduced
onBeforeOpenasync callback to validation before opening the country picker - Updated
_openCountryPickerto await the callback result
- Introduced
0.1.12 - 2025-12-01 #
-
NEW FEATURE: Enhanced country selection functionality with custom country list support
- Added
getCountriesByCodesmethod inCountryProviderto retrieve countries based on a list of country codes - Updated
countrySelector,CountryListView, andshowCountryListViewto accept a custom list of countries for improved flexibility - Modified
NbxCountryPickerModalParametersto include acountriesparameter, 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
- Added
-
REFACTOR: Removed
countryPreferredparameter and updated documentation for country selection- Removed the
countryPreferredparameter fromcountrySelector,CountryListView, and related components to streamline the country selection process - Updated documentation to reflect the new
countriesparameter, 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
- Removed the
0.1.11 - 2025-11-29 #
-
NEW FEATURE: Added
maxLinesparameter toNbxCountryPickerInputandNbxCountryPickerParameters- Introduced optional
maxLinesparameter inNbxCountryPickerParametersto control the maximum number of lines for the input field - Updated
NbxCountryPickerInputto utilize themaxLinesparameter, enhancing input flexibility - Adjusted
NbxTextFormFieldWidgetto reflect the newmaxLinesproperty in its text display - Improved country picker input customization options
- Introduced optional
0.1.9 - 2025-11-24 #
-
NEW FEATURE: Added
findByPhoneCodemethod toCountryProviderfor enhanced country selection- Implemented method to retrieve a country based on its phone code
- Returns
nullif no matching country is found, improving error handling - Enhanced country picker functionality with better phone code lookup capabilities
-
REFACTOR: Enhanced
NbxButtonwidget 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
NbxAppBarlayout 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
NebuxTypographyfor 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
NbxPhoneFieldWidgetlayout- Adjusted
crossAxisAlignmentfromstarttoendfor improved visual alignment - Enhanced layout consistency in phone input fields
- Adjusted
-
CHORE: Updated repository links in
pubspec.yamlto 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_shimmerpackage as transitive dependency inpubspec.lock - Updated local package version references
- Added
0.1.7 - 2025-01-27 #
- FIX: Updated package dependencies and version constraints
- Fixed
app_shimmerdependency 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
- Fixed
0.1.6 - 2025-01-27 #
- FIX: Updated package dependencies and version constraints
- Fixed
app_shimmerdependency 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
- Fixed
0.1.4 - 2025-10-06 #
- REFACTOR: Chip configuration and list tile integration
- Added
ChipConfigutility to centralize chip parameters (label, labelStyle, colors, density, onTap) - Updated internal components to consume
ChipConfigfor improved reusability and maintainability - Refactored
AppListTileWithChipto remove chip-specific parameters and accept aChipConfig - Improved documentation consistency using the custom doc template
- No breaking API changes; backwards-compatible migration path provided via config object
- Added
0.1.3 - 2025-01-27 #
- FIX: Updated
NbxAppBarto automatically imply leading button for better Material Design compliance- Fixed
automaticallyImplyLeadingbehavior to properly handle leading button display - Refactored
NbxScaffolddecoration property for improved customization options - Enhanced component consistency with Material Design guidelines
- Fixed
0.1.2 - 2025-01-27 #
- REFACTOR: Enhanced
NbxAppBarcomponent with improved leading button handling- Refactored leading button logic for better clarity and maintainability
- Changed default
centerTitlebehavior fromtruetofalseinAppBarConfigfor better alignment with Material Design guidelines - Improved
titleSpacinglogic to properly handle cases when no leading button is present - Set
automaticallyImplyLeadingtofalsefor more predictable behavior - Enhanced code organization by extracting leading button building logic
0.1.0 - 2025-09-30 #
- NEW FEATURE: Enhanced Country model with
minLengthandmaxLengthproperties for improved phone number validation- Added
minLengthproperty to Country model for minimum phone number length validation - Added
maxLengthproperty 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
- Added
0.0.13 #
- REFACTOR:
NbxAppBarimprovements for clarity and predictable spacing- Adjusted
titleSpacinglogic to better align with MaterialAppBarexpectations - Simplified status bar brightness handling by removing redundant branches
- Minor cleanups for readability and consistency
- Adjusted
0.0.12 #
- BREAKING CHANGE: Refactored
NbxButtoncomponent 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
- Introduced configuration-based architecture with specialized config classes:
0.0.11 #
- REFACTOR: Enhanced
NbxButtonrendering logic with improved clarity and modularity- Introduced dedicated
_buildTextWidgetmethod 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
NbxButtoncomponent - Added proper text overflow handling with
TextOverflow.fadeandmaxLines: 2 - Improved text alignment and spacing with
CrossAxisAlignment.centerandTextAlign.center - Added
Flexiblewrapper for better text layout flexibility
- Introduced dedicated
0.0.10 #
- ENHANCEMENT: Added
isSelectedproperty toNbxButtonto indicate selection state with corresponding background/foreground style updates - REFACTOR: Simplified
NbxButtonvariant rendering by replacing if-else with switch-case and consolidating text style application - CHORE: Commented out
repositoryandissue_trackerfields inpubspec.yamlfor 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_propackage 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
NbxCountryPickerInputcomponent - 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
isDisabledtoenabledfor 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_flutterdependency for better performance and smaller bundle size - Enhanced
NebuxAppBarwith customizable icon support, removing dependency on FontAwesome icons - Refactored
NbxSocialLoginButtonto support custom icons instead of FontAwesome icons - Improved input field styling with enhanced
enabledBorderconfiguration inNbxInputDecorationExtension - 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