Skip to main content

prism_settings 0.1.0 copy "prism_settings: ^0.1.0" to clipboard
prism_settings: ^0.1.0 copied to clipboard

Ready-made adaptive settings screens for Flutter — tiles, toggles, sliders, dropdowns, and sections with built-in search. Two-pane on wide windows. Part of the Prism package family.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:prism_settings/prism_settings.dart';

/// Demo app for prism_settings.
void main() => runApp(const DemoApp());

/// Root widget: a themed settings screen.
class DemoApp extends StatelessWidget {
  /// Creates the demo.
  const DemoApp({super.key});

  @override
  Widget build(BuildContext context) {
    final controller = PrismSettingsController(
      initialValues: const {'darkMode': true, 'fontSize': 1.0},
    );
    return MaterialApp(
      home: PrismSettingsPage(
        controller: controller,
        searchable: true,
        sections: [
          PrismSettingsSection(
            title: 'Appearance',
            tiles: [
              const PrismSwitchTile(
                common: PrismTileCommon(
                  key: 'darkMode',
                  title: 'Dark mode',
                  subtitle: 'Follow the system setting',
                  leading: Icons.dark_mode,
                ),
              ),
              const PrismSliderTile(
                common: PrismTileCommon(
                  key: 'fontSize',
                  title: 'Text size',
                  leading: Icons.text_fields,
                ),
                min: 0.5,
                max: 2,
                divisions: 6,
              ),
            ],
          ),
          PrismSettingsSection(
            title: 'General',
            tiles: [
              PrismDropdownTile<String>(
                common: const PrismTileCommon(
                  key: 'language',
                  title: 'Language',
                  leading: Icons.language,
                ),
                items: const ['English', 'العربية', 'Français'],
                itemLabel: (item) => item,
              ),
              const PrismCheckboxTile(
                common: PrismTileCommon(
                  key: 'analytics',
                  title: 'Share anonymous analytics',
                  leading: Icons.analytics,
                ),
              ),
              const PrismActionTile(
                common: PrismTileCommon(
                  key: 'about',
                  title: 'About this app',
                  leading: Icons.info,
                ),
              ),
            ],
          ),
        ],
      ),
    );
  }
}
0
likes
150
points
37
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Ready-made adaptive settings screens for Flutter — tiles, toggles, sliders, dropdowns, and sections with built-in search. Two-pane on wide windows. Part of the Prism package family.

Repository (GitHub)
View/report issues

Topics

#settings #preferences #widget #ui

License

MIT (license)

Dependencies

flutter, prism_adaptive_scaffold

More

Packages that depend on prism_settings