Skip to content
CAI
Software that uses CAICheck a score

yako-dev/flutter-settings-ui

65.6

Adequate · 19 September 2026

2.9k

lines of production code

Dart

with C++

1

measurement over time

CAI band scale
CAI lens gauges

What this system is

This system is a Flutter library that provides a unified settings user interface component, automatically adapting its visual style to match the native look and feel of Android, iOS, and Web platforms. It renders scrollable lists of settings sections and tiles with platform-specific theming, layout, and interaction behaviors. The package includes comprehensive widget tests and an example application to demonstrate integration and platform-specific implementations.

Features

Example app scaffolded with native platform settings screens and integration tests

The example application has been restructured to include dedicated screens for Android and iOS native settings, demonstrating platform-specific UI implementations using the settings\_ui library. This update adds integration tests to verify the rendering and interaction of these gallery screens, including navigation and theme toggling, while also updating the underlying Android and iOS project configurations to support the v2 Flutter embedding.

example · high confidence

Introduction of SettingsList widget with platform-aware theming and layout

The \lib/src/list/settings\_list.dart\ file introduces the \SettingsList\ widget, which renders a scrollable list of settings sections. It supports Material and Cupertino application types, automatically detecting the platform or allowing explicit override. The widget applies platform-specific default padding (e.g., vertical padding on web, horizontal padding on wide screens) and merges light/dark themes based on the current brightness. It also exposes a \scrollController\ parameter for external scroll control and allows customization of alignment, physics, and cross-axis alignment.

lib/src/list · high confidence

New public API entry point for settings UI components

The library now exposes a consolidated \lib/settings\_ui.dart\ entry point that re-exports the core settings list, sections, tiles, platform utilities, and theme definitions. This allows consumers to import the entire settings UI package with a single statement, simplifying integration and ensuring consistent access to all public components.

lib · high confidence

Platform-aware theming and platform detection utilities

Added platform detection logic and a new theming system to the settings UI. A new \PlatformUtils\ class detects the current device platform (Android, iOS, Web, etc.) to enable platform-specific styling. The \SettingsTheme\ and \SettingsThemeData\ classes provide a centralized way to manage theme properties like colors and text styles, while \ThemeProvider\ applies distinct visual styles for Android (Material 3 derived), iOS/macOS/Windows (Cupertino system colors), and Web (Material 3 with card backgrounds), ensuring the settings interface matches the native look and feel of each platform.

lib/src/utils · high confidence

Platform-specific settings section rendering

Settings sections now render with distinct visual styles tailored to the target platform. On Android, sections use a simple list layout with configurable margins and title padding. On iOS, sections apply specific border radii to tiles based on their position (top/bottom) and handle divider visibility, mimicking native iOS settings groups. On Web, sections are wrapped in a Card with rounded corners and elevation, featuring a fixed-height title area and dividers between tiles. The \SettingsSection\ widget acts as a dispatcher, selecting the appropriate platform-specific implementation (Android, iOS, or Web) based on the current theme's platform setting.

lib/src/sections · high confidence

Behavioural changes

Settings UI package v3.0.0: Material 3 theming and new tile options

The settings\_ui package has been updated to version 3.0.0, introducing a breaking change that requires Flutter \>=3.16.0 and Dart SDK \>=3.5.0. Android and Web themes now derive colors from the app's \Theme.of(context).colorScheme\ (Material 3), though custom color overrides via \SettingsThemeData\ remain supported. New features include a \compact\ parameter on \SettingsTile\ for denser layouts, \crossAxisAlignment\ on \SettingsList\, and additional text styling fields (\titleTextStyle\, \tileTextStyle\, etc.) in \SettingsThemeData\. Several bugs are fixed, including iOS value text overflow, RTL chevron direction, and web switch color issues. The codebase also migrates to super-parameters and updates deprecated APIs.

(repo-wide) · high confidence

Fixes

Redesigned settings tiles with platform-specific rendering and disabled-state fixes

The settings tile widgets have been refactored to use distinct platform implementations (Android, iOS, and Web) that correctly handle disabled states, trailing icons, and padding. Users will see that disabled tiles now properly appear inactive across all platforms, and the visual styling of trailing icons and switch controls adapts to the current theme and platform guidelines. The iOS tile now supports a dedicated title description widget, while the Web tile ensures consistent border radius and vertical padding.

lib/src/tiles · high confidence

Test coverage

Added comprehensive Flutter widget tests for the settings UI

Added a full suite of widget tests for the settings UI components, including \SettingsList\, \SettingsSection\, and \SettingsTile\ variants across Android, iOS, Web, and other platforms. The new test coverage in \test/settings\_tests/\ verifies correct rendering of platform-specific tiles, proper handling of RTL chevron directions, compact tile parameters, and disabled switch colors on Web. Additionally, regression tests were added for v3.0.0 bug fixes, such as iOS value overflow and platform override behavior, ensuring these issues do not reoccur.

test · high confidence

Dependencies

Update Flutter SDK constraints and example project configuration

The package and its example app now require Flutter 3.16.0+ and Dart 3.5.0+. The example app has been regenerated with modern Android Gradle plugin 8.3.2 and Kotlin 1.9.24, and updated iOS CocoaPods configuration. The main package's dev dependency has been updated to flutter\_lints ^5.0.0.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Baseline

  • First survey — no prior run to compare against. CAI 66.

Lenses

  • Code Health 87
  • Architecture 100
  • Maturity 55
  • Readiness 58
  • Security 85
  • Domain Modelling 100

Changes since last survey

  • 226 commits — 165 feature/other, 61 fixes

By area

  • lib/src — 70 commits
  • (repo) — 55 commits
  • (root) — 48 commits
  • example/lib — 16 commits
  • example/ios — 11 commits
  • .github/workflows — 9 commits
  • assets/v2 — 3 commits
  • assets/dark_mode_animation.gif — 2 commits
  • example/.flutter-plugins-dependencies — 2 commits
  • example/android — 2 commits
  • test/widget_test.dart — 2 commits
  • .idea/libraries — 1 commit
  • assets/v3 — 1 commit
  • example/linux — 1 commit
  • example/test — 1 commit
  • example/windows — 1 commit
  • test/settings_tests — 1 commit

Notable commits

  • fix: Fix README.md format
  • fix: Fix UI glitch for iOS switch tile.
  • fix: Fix a problem when the subtitle is too long in iOS.
  • fix: Fix app bar
  • fix: Fix conflict
  • fix: Fix cupertino toggle bug. Closes #51
  • fix: Fix default settings theme Update README.md
  • fix: Fix grammatical issues
  • fix: Fix issue with short subtitle in a switch tile.
  • fix: Fix of colors and onTaps
  • fix: Fix onTap bug
  • fix: Fix overflow issues in iOS, add rtl compatibility.
  • fix: Fix type cast error
  • fix: Fixed 'trailing' when used 'SettingsTile.switchTile'. Fixed color scheme on web version. Update WebChromeSettings in example.
  • fix: Fixed InkWell splash not showing up on Android
  • fix: Fixed double trailing on iOS devices and padding in the project example. Version update
  • fix: Fixed enabled not working on iOS
  • fix: Fixed iOS dividers
  • fix: Fixed overflow on cupertino_settings_item.dart
  • fix: Fixed subtitle not showing for Cupertino 'SwitchTile'
  • …and 206 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

yako-dev/flutter-settings-ui was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 19 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 69736239b39319a12c91bb84304fbb7221702a4f — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-13a154b7f5d1.