You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs: update README with real screenshots and fix platform claims
- Replace placeholder images with actual screenshots from example app
- Add Material 3 demo screenshot showing ColorScheme seed colors
- Fix platform description: macOS/Windows use Cupertino, Linux uses Material
- Restore original cover image showing Android, iOS, and Web/browser
- Add comprehensive quick start, tile types, theming, and API reference sections
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
A Flutter package for building native-looking settings screens across **Android, iOS, Web, macOS, Windows, and Linux**from a single API. The UI automatically adapts to each platform's visual style — Material for Android/Web/Linux, Cupertino for iOS/macOS/Windows.
7
+
A Flutter package for building settings screens that look native on **Android**, **iOS**, and **Web** — all from a single API. The UI automatically adapts to each platform's visual style: Material for Android, Cupertino for iOS, and a card-based Web layout. Also runs on macOS, Windows, Linux, and Fuchsia (macOS/Windows use the Cupertino style; Linux uses Material).
On Android and Web, colors are automatically derived from your app's `ColorScheme`. No configuration needed — if you use `ThemeData(colorSchemeSeed: ...)` or a custom `ColorScheme`, the settings list will match.
208
+
On Android and Web, colors are automatically derived from your app's `ColorScheme`. No extra configuration needed — seed colors, light/dark mode, and custom `ColorScheme` all work out of the box.
Pass a `SettingsThemeData` to `lightTheme` and/or `darkTheme` on `SettingsList` to override individual colors. Any field you leave `null` falls back to the platform default.
226
+
Any field left `null` falls back to the platform default derived from your `ColorScheme`.
225
227
226
228
```dart
227
229
SettingsList(
@@ -239,7 +241,7 @@ SettingsList(
239
241
)
240
242
```
241
243
242
-
### Custom fonts and text styles
244
+
### Custom text styles
243
245
244
246
```dart
245
247
SettingsList(
@@ -256,20 +258,17 @@ SettingsList(
256
258
)
257
259
```
258
260
259
-
### Disabled state colors
261
+
### Disabled tiles
260
262
261
263
```dart
262
264
SettingsTile.switchTile(
263
265
title: const Text('Feature'),
264
266
initialValue: false,
265
-
onToggle: null, // passing null disables the tile
267
+
onToggle: null, // null disables interaction
266
268
enabled: false,
267
269
)
268
-
```
269
-
270
-
To control the color of the switch when disabled:
271
270
272
-
```dart
271
+
// Control the disabled switch color:
273
272
SettingsList(
274
273
lightTheme: const SettingsThemeData(
275
274
inactiveSwitchColor: Colors.grey,
@@ -284,8 +283,6 @@ SettingsList(
284
283
285
284
### Scroll controller
286
285
287
-
Pass a `ScrollController` to programmatically scroll the list:
288
-
289
286
```dart
290
287
final _controller = ScrollController();
291
288
@@ -294,7 +291,7 @@ SettingsList(
294
291
sections: [
295
292
SettingsSection(
296
293
tiles: [
297
-
SettingsTile.navigation(
294
+
SettingsTile(
298
295
title: const Text('Jump to bottom'),
299
296
onPressed: (_) => _controller.animateTo(
300
297
_controller.position.maxScrollExtent,
@@ -310,18 +307,14 @@ SettingsList(
310
307
311
308
### Compact tiles
312
309
313
-
Reduce tile height with `compact: true` for dense layouts:
314
-
315
310
```dart
316
311
SettingsTile(
317
312
title: const Text('Option'),
318
-
compact: true,
313
+
compact: true, // halves the vertical padding
319
314
)
320
315
```
321
316
322
-
### Embedding inside a scroll view
323
-
324
-
When placing `SettingsList` inside another scrollable widget (e.g. a `ListView` or `CustomScrollView`), set `shrinkWrap: true` and provide non-scrolling physics:
317
+
### Embedding inside another scroll view
325
318
326
319
```dart
327
320
SettingsList(
@@ -331,9 +324,9 @@ SettingsList(
331
324
)
332
325
```
333
326
334
-
### Wide screen / web alignment
327
+
### Wide screen alignment
335
328
336
-
On screens wider than 810 dp the list automatically adds horizontal padding to keep content centered. To left-align instead:
329
+
On screens wider than 810 dp, the list auto-centers. To left-align:
337
330
338
331
```dart
339
332
SettingsList(
@@ -344,18 +337,14 @@ SettingsList(
344
337
345
338
### CupertinoApp support
346
339
347
-
If your app uses `CupertinoApp` instead of `MaterialApp`, set `applicationType` accordingly so brightness is read from the correct theme:
348
-
349
340
```dart
341
+
// Pure CupertinoApp:
350
342
SettingsList(
351
343
applicationType: ApplicationType.cupertino,
352
344
sections: [ /* ... */ ],
353
345
)
354
-
```
355
346
356
-
For apps that use `MaterialApp` on Android and `CupertinoApp` on iOS:
357
-
358
-
```dart
347
+
// MaterialApp on Android, CupertinoApp on iOS:
359
348
SettingsList(
360
349
applicationType: ApplicationType.both,
361
350
sections: [ /* ... */ ],
@@ -370,16 +359,16 @@ SettingsList(
370
359
371
360
| Parameter | Type | Default | Description |
372
361
|---|---|---|---|
373
-
|`sections`|`List<AbstractSettingsSection>`| required |The list of sections to display |
362
+
|`sections`|`List<AbstractSettingsSection>`| required |Sections to display |
374
363
|`platform`|`DevicePlatform?`|`device`| Force a specific platform style |
375
-
|`lightTheme`|`SettingsThemeData?`| — |Color/style overrides for light mode |
376
-
|`darkTheme`|`SettingsThemeData?`| — |Color/style overrides for dark mode |
364
+
|`lightTheme`|`SettingsThemeData?`| — |Overrides for light mode |
365
+
|`darkTheme`|`SettingsThemeData?`| — |Overrides for dark mode |
0 commit comments