settings_ui_plus 0.2.3 copy "settings_ui_plus: ^0.2.3" to clipboard
settings_ui_plus: ^0.2.3 copied to clipboard

Build native-looking settings screens in minutes. A single API that adapts to Material and Cupertino design guidelines automatically.

0.2.3 #

  • Added dartdoc comments to all public API members for full documentation coverage.
  • Removed unnecessary library name to fix unnecessary_library_name lint.

0.2.2 #

  • Fixed LICENSE file formatting so pub.dev correctly recognizes Apache-2.0.

0.2.1 #

Accessibility & Platform Fidelity #

  • Semantics enrichment — all interactive tiles now expose button: true and hint: 'Double-tap to activate' for screen readers.
  • Material disabled opacity — disabled tiles render at 38% opacity per Material 3 guidelines (previously no visual change).
  • iOS minimum touch target — all iOS tiles enforce a 44pt minimum height per Apple HIG.
  • iOS press feedback — replaced background-color swap with Opacity(0.7) for a smoother, more native press effect.
  • Keyboard focus color — Material InkWell now shows a primary-tinted focus ring for keyboard navigation.
  • Expand animation accessibility — expandable sections respect MediaQuery.disableAnimations, collapsing instantly when system animations are off.
  • RTL support — iOS tile descriptions use EdgeInsetsDirectional for correct right-to-left layout.

Visual Fixes #

  • Font sizes aligned — Material tiles use 16px (M3 bodyLarge), iOS tiles use 17px (San Francisco default).
  • Padding grid alignment — Material uses 16dp grid, iOS uses 12pt (8pt grid) for consistent spacing.
  • iOS chevron size — reduced from 18pt to 14pt to match Apple HIG.
  • Hover alpha — increased from 30 to 50 for better visibility on desktop.
  • Dark mode contrast — iOS dark-mode title color changed to rgba(152, 152, 159) for WCAG-compliant contrast.
  • Divider thickness — standardized to 1.0 across all platforms.
  • Web section title padding — made symmetric (start: 6, end: 6).

Fixes #

  • Switch default consistencyCupertinoSwitch now defaults to false (was true) when no initialValue is provided.
  • CupertinoSwitch native disabled — uses activeTrackColor instead of deprecated activeColor; lets the native widget handle its own disabled appearance.
  • Slider label — Material slider now shows a value popup label when sliderDivisions is set.
  • Long-press state reset — press state is now cleared before invoking onLongPress callbacks to avoid stuck highlight.
  • Empty section guard — Material sections with no tiles, title, or footer return SizedBox.shrink() instead of rendering an empty card.

0.2.0 #

New features #

  • SettingsTile.sliderTile — new constructor for inline slider controls with sliderValue, sliderMin, sliderMax, sliderDivisions, onSliderChanged, and sliderActiveColor. Renders a Material Slider or Cupertino CupertinoSlider based on platform.
  • SettingsTile.radioTile — new constructor for single-select option groups with platform-native checkmark rendering.
  • Expandable sectionsSettingsSection gains expandable and initiallyExpanded parameters with smooth animated collapse/expand and a rotating disclosure icon.
  • Section footersSettingsSection gains an optional footer widget for help text or disclaimers below tiles.
  • onLongPress callback on all tile constructors (SettingsTile, .navigation, .switchTile, .radioTile, .sliderTile).
  • Text-style themingSettingsThemeData now includes titleTextStyle, descriptionTextStyle, and sectionTitleTextStyle for full typographic control.
  • Desktop hover & cursor — Material tiles show a hover highlight and appropriate mouse cursor on desktop platforms.
  • AccessibilitySemantics wrappers on all interactive tiles (Material and iOS) for screen-reader support.

Fixes #

  • Fixed iOS tile press state using redundant Future.delayed — now handled cleanly by gesture callbacks.
  • Fixed Material divider not respecting SettingsThemeData.dividerColor.
  • Fixed IOSSettingsTileAdditionalInfo.of() silently returning a fallback widget — now throws a clear assertion when used outside an IOSSettingsSection.
  • Fixed crash when SettingsSection.tiles list is empty on iOS.
  • Fixed MediaQuery.of(context).sizeMediaQuery.sizeOf(context) in three locations (avoids unnecessary rebuilds).
  • Fixed Windows platform routing — sections, tiles, and theme now consistently use Material layout and colors.
  • Fixed missing settingsSectionBackground and dividerColor in Android dark theme.
  • Fixed missing tileDescriptionTextColor in iOS dark theme.

Improvements #

  • Extracted ExpandableSectionMixin — shared expand/collapse animation logic is now DRY across Material and iOS sections.
  • Text overflow handling — tile titles (max 2 lines) and descriptions (max 3 lines) now show ellipsis instead of overflowing.
  • iOS disabled state — disabled tiles on iOS now render at 50% opacity for clearer visual feedback.
  • Radio tile selected background — selected radio tiles on Material show a subtle primary-color tint.
  • ThemeProvider caching — platform themes are now cached to avoid unnecessary allocations on every rebuild.
  • Better error messageSettingsTheme.of() now throws an assertion with a clear message if used outside a SettingsList.
  • Removed dead WebSettingsSection and WebSettingsTile files (web already routes to Material implementations).
  • Exported ApplicationType enum from the barrel file.
  • Added dartdoc comments to all public API classes.
  • Cleaned up indentation issues in MaterialSettingsTile and SettingsList.
  • Updated README with full feature documentation.

0.1.0 #

  • Breaking: Removed DevicePlatform.device sentinel value. Use null (auto-detect) or a specific platform instead.
  • Breaking: ThemeProvider.getTheme() no longer requires a BuildContext parameter.
  • Merged duplicate Android/Web platform tiles into MaterialSettingsTile.
  • Merged duplicate Android/Web platform sections into MaterialSettingsSection.
  • Fixed web tiles not dimming title/icon/subtitle when enabled: false.
  • Fixed web theme missing inactiveTitleColor and inactiveSubtitleColor.
  • Fixed SettingsTheme.updateShouldNotify to compare data instead of always returning true.
  • Fixed IOSSettingsTileAdditionalInfo.updateShouldNotify to compare fields.
  • Replaced deprecated textScaleFactor with MediaQuery.textScalerOf.
  • Replaced deprecated Switch.activeColor / CupertinoSwitch.activeColor with activeTrackColor.
  • Modernized constructors with super.key and super.child.
  • Reorganized ThemeProvider color constants into dedicated palette classes.
  • Hidden PlatformUtils from public API (only DevicePlatform is exported).
  • Added == / hashCode to SettingsThemeData.
  • Added widget tests.
  • Added example app.
  • Updated README with API reference and usage examples.
1
likes
0
points
24
downloads

Publisher

verified publisherfaizahmaddae.com

Weekly Downloads

Build native-looking settings screens in minutes. A single API that adapts to Material and Cupertino design guidelines automatically.

Repository (GitHub)
View/report issues

Topics

#settings #ui #preferences

License

unknown (license)

Dependencies

flutter

More

Packages that depend on settings_ui_plus