## yako-dev/flutter-settings-ui — v3.0.0…v4.0.0

_132 commits._

### Features
- **feat(example): add the Linux runner** (bd1b8af)
- **feat(example): open the showcase from the gallery** (e17011e)
- **feat(example): show System, Windows and GNOME Settings in the split view demo** (caccd5c)
- **feat(split): give the macOS, Windows and GNOME styles their own split view look** (eb238fe)
- **feat(example): add a showcase screen for the README images** (fdba5cf)
- **feat(example): match the GNOME 48+ Power page with its two tabs** (178db8a)
- **feat: add AdwaitaPanDownIcon for GNOME combo rows** (bdd648a)
- **feat(split): support the macOS, Windows and GNOME styles in SettingsSplitView** (f90a032)
- **feat(example): add a split view demo** (60ffbf0)
- **feat: add SettingsSplitView and SettingsDestination** (8d97b0c)
- **feat(theme): add selected tile and list pane colors** (b066d65)
- **feat(example): add a Windows 11 Display settings replica** (b0741a5)
- **feat: add a Windows 11 (Fluent) style for DevicePlatform.windows** (0de139b)
- **feat(example): add a macOS System Settings replica and a macOS runner** (bc66de3)
- **feat: add a macOS System Settings style** (de4066f)
- **feat(example): add a GNOME Settings Power replica and URL launch options** (7326b0c)
- **feat: add a GNOME (libadwaita) style for Linux** (f9973b5)
- **feat(ios): add an iOS 26+ Liquid Glass switch drawn in Flutter** (844739e)
- **feat: match the 2026 iOS, Android and Chrome settings look** (c67dc15)
- **feat: warn in debug builds when no material_ui theme is found** (c4f9701)

### Fixes
- **fix(a11y): make every tile its own semantics node** (c78ad41)
- **fix(linux): grow the GNOME page column with the body text** (8efb4de)
- **fix(split): label the switches of the macOS and Windows sidebar rows** (ef8beac)
- **Merge branch 'fix/qa-split' into integration/4.0-all** (52a0fa4)
- **Merge branch 'fix/qa-release' into integration/4.0-all** (7845e84)
- **Merge branch 'fix/qa-tiles' into integration/4.0-all** (923d175)
- **fix(split): keep a clicked row's focus ring hidden until a key is pressed** (878e594)
- **fix(split): scale the GNOME sidebar with the text on Android 14+** (936afde)
- **fix(split): Windows pill origin, one-line page title, rail menu button** (5cafaf2)
- **fix(split): let go of a sidebar row's pressed fill when a scroll starts** (b6a460b)
- **fix(split): keep the keyboard focus across layout changes** (a40aa38)
- **fix(split): desktop sidebar keyboard: arrows, clicks, switches, rings** (971af63)
- **fix(example): keep the macOS replica's toolbar below a phone's status bar** (b43e2d5)
- **fix(example): follow dark mode in the Material 3 demo and Android replica** (ea5a076)
- **fix(example): open --route screens without a navigation error** (ff0dfb5)
- **fix(example): keep the Windows showcase avatar inside the rail item** (9ae6e2e)
- **fix(example): make the demo switches toggle** (4b0cc5c)
- **fix(linux): make the GNOME switch knob follow a finger from where it touched** (335a052)
- **fix(linux): let go of a GNOME row's pressed fill when a scroll starts on it** (9160830)
- **fix(example): don't crash the split view demo in the Fuchsia style** (6833573)
- **fix(sections): host Material widgets and style custom tiles on Windows and GNOME cards** (6314643)
- **fix(split): put the selected state on the desktop sidebar rows** (02df917)
- **fix(macos): keep the button role of a disabled row with onPressed** (35bb3c4)
- **fix(tiles): give every switch the tile title as its semantics label** (68de561)
- **fix(split): forget removed pages and follow custom-section tiles** (7dd9fb0)
- **fix(split): build the Windows compact rail without MaterialLocalizations** (9ffcc50)
- **fix(split): let a re-keyed view take over its controller** (c179f9a)
- **fix(split): handle back for routes pushed from the list pane in one pane** (81e76ec)
- **fix(tiles): make disabled iOS, Android and web tiles ignore the keyboard** (a1b314c)
- **fix(theme): make a forced brightness dark or light on Android and web** (1bf2ff0)
- **fix(example): size the showcase icons for the desktop sidebars** (334c671)
- **fix(split): start keyboard focus in the list pane** (4458d0b)
- **fix(split): create the Windows pane pill controller in initState** (cdbe600)
- **fix(split): let the keyboard focus move between the panes** (b5b1877)
- **fix(example): keep the showcase switch check visible on Android** (0d46188)
- **fix(example): match the real macOS toolbar and pop-up rows** (a6abc3e)
- **fix: leave 30pt after a footer in the macOS style** (d4210f0)
- **fix(example): align the Windows Display replica's title with Settings** (5c04ead)
- **fix: match real Windows 11 Settings screenshots in the Windows style** (b80f36b)
- **fix(ios): fit tile descriptions to the width the tile gets** (087093a)
- **fix: don't tint a macOS row while its switch is held** (9a2abab)
- **fix: wire up brightness, alignment, paddings and empty sections** (93b0fd4)
- **Merge pull request #202 from mmng-a/fix/ios-value-alignment** (21cfb09)
- **fix: keep iOS tile values visible next to long titles** (bbba8f4)
- **Merge branch 'master' into fix/ios-value-alignment** (1a945b5)
- **fix: migrate to `material_ui` and `cupertino_ui ` packages** (ee4866a)
- **fix: refine iOS tile value layout** (e33a0dd)
- **fix: show value for simple tiles on iOS** (e3ac0d3)
- **fix: point README image URL to master branch** (b729a33)

### Backend
- **Merge pull request #210 from yako-dev/release/4.0.0** (4d23233)
- **Merge branch 'integration/desktop' into integration/4.0-all** (bd4b4e9)
- **Merge branch 'feat/macos-style' into integration/desktop** (3c2ec5d)
- **Merge branch 'feat/windows-style' into integration/desktop** (f7d5a05)
- **Merge branch 'feat/linux-style' into integration/desktop** (e0cb660)
- **Merge branch 'feat/split-view' into integration/4.0-all** (3b5dec7)
- **Merge branch 'feat/macos-style' into integration/4.0-all** (2a1129c)
- **Merge branch 'feat/windows-style' into integration/4.0-all** (5b69839)
- **Merge branch 'feat/linux-style' into integration/4.0-all** (50e68fd)
- **Move agent instructions to AGENTS.md** (be0322e)
- **Merge pull request #208 from yako-dev/chore/prepare-4.0.0** (d9a77a4)
- **Merge pull request #207 from SlayerOrnstein/ui-migration** (3fba98e)

### Tests
- **test(example): pick a style in the split view demo on a device** (cd0eb60)
- **test(example): fix the integration test on short screens, add split view flows** (01660ec)
- **test(split): check the macOS footer spacing in a split view's detail pane** (6ba1ce6)
- **test: cover the macOS style inside a CupertinoApp** (a36ea13)

### Docs
- **docs: agent-first README with the 4.0 header images** (86d400b)
- **docs(llms): add a recipe for building a settings screen** (ec4caaa)
- **docs(readme): describe tile semantics for screen readers** (7f3a9b8)
- **docs(readme): bring the split view, GNOME sizes and brightness facts up to date** (84348c6)
- **docs(changelog): list the fixes from the 4.0.0 release candidate review** (1246137)
- **docs: bring AGENTS.md and llms.txt up to date with the RC fixes** (04e5c68)
- **docs(split): say what happens when a picked page's tile goes away** (778eadc)
- **docs(split): fix the semanticsSelected docs of the macOS and Windows rows** (e2b7228)
- **docs(split): describe routes pushed from the list pane in one pane** (c235d0f)
- **docs(tiles): correct the SettingsTile field docs** (4c07a06)
- **docs(example): replace the Flutter boilerplate README** (506dd54)
- **docs(lib): document the 3.x API that pub.dev showed without docs** (1752364)
- **docs(agents): write down the release order** (3dfc3aa)
- **docs(readme): correct the theme table, the platform default and a snippet** (47efbc0)
- **docs(changelog): fix the iOS header claim, credit contributors, list the docs** (df08247)
- **docs(llms): list everything 4.0 adds, fix the header claim, add known issues** (9173ed7)
- **docs(split): describe the macOS, Windows and GNOME split views** (085eb0a)
- **docs(example): list the showcase launch screen** (5147dd2)
- **docs: note the macOS spacing after footers in AGENTS.md** (bf5d5ab)
- **docs: document the split view and destinations** (a716168)
- **docs: document the macOS style and MacosSettingsSwitch** (12fe16c)
- **docs: document the Windows 11 style and FluentSettingsSwitch** (5ebf15d)
- **docs: document the GNOME style for Linux** (677d25d)
- **docs: update README, AGENTS.md and add llms.txt for 4.0.0** (4f17a1d)
- **docs: increase cover image height from 400px to 560px** (9de4fea)
- **docs: update README with real screenshots and fix platform claims** (3d9758b)
- **docs: rewrite README with full API reference and examples** (65d3a25)

### Chore
- **chore: release 4.0.0** (051897c)
- **style(split): format the split view regression tests** (c13a1d3)
- **chore: ignore coverage/** (ab9123b)
- **chore(pubspec): complete the description, add links, topics and screenshots** (7346399)
- **chore(release): keep build output and unused images out of the package** (e5f7d9f)
- **chore: stop tracking flutter-settings-ui.iml** (df951cf)
- **style(test): format a list test the same with Dart 3.12 and 3.13** (e1752e6)
- **refactor(list): resolve the list style through an inheritable config** (662838a)
- **style(test): format two tests the same way on Dart 3.12 and 3.13** (186b86a)
- **style(example): format for the Dart 3.12 language version** (47c57fe)
- **chore: keep AGENTS.md out of the published package** (d0d275e)
- **chore(example): drop the signing team from the iOS project** (e865e84)
- **chore: prepare 4.0.0 release notes and docs** (d153f39)
- **chore(example): move iOS runner to UIScene lifecycle** (3f525a9)
- **ci: check formatting with dart format** (963cdcd)
- **chore: release 4.0.0** (4352d0b)
- **style: format with dart format for Dart 3.12** (957bf75)
- **chore: lower SDK constraints** (80c2c1e)
- **chore: minimum update to AGP so example compiles** (d671283)
- **chore: bump version to 3.0.1 and update README dependencies** (6973623)

_Recap by [Repo Wrapped](https://repowrapped.com/gh/yako-dev/flutter-settings-ui?utm_source=github-action)._