Skip to main content

cupertino_native_better 2.7.1 copy "cupertino_native_better: ^2.7.1" to clipboard
cupertino_native_better: ^2.7.1 copied to clipboard

PlatformiOSmacOS

The real iOS 26 and iOS 27 Liquid Glass controls in Flutter: native tab bars, buttons, menus, sliders, switches, alerts and sheets, with Cupertino fallbacks.

example/lib/main.dart

import 'package:cupertino_native_better/cupertino_native_better.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart' show DefaultMaterialLocalizations;
import 'demos/slider.dart';
import 'showcase/showcase_app.dart' show buildShowcaseScene;
import 'demos/switch.dart';
import 'demos/date_picker.dart';
import 'demos/stepper.dart';
import 'demos/color_well.dart';
import 'demos/page_control.dart';
import 'demos/segmented_control.dart';
import 'demos/icon.dart';
import 'demos/popup_menu_button.dart';
import 'demos/action_sheet.dart';
import 'demos/context_menu.dart';
import 'demos/popover.dart';
import 'demos/button.dart';
import 'demos/search_bar.dart';
import 'demos/glass_button_group.dart';
import 'demos/progress_indicator.dart';
import 'demos/pop_up_button.dart';
import 'demos/gauge.dart';
import 'demos/scroll_edge_effect.dart';
import 'demos/overlay_test.dart';
import 'demos/app_bar.dart';
import 'demos/issues_test.dart';
import 'demos/iphone_duo_demo.dart';
import 'demos/native_tab_bar_demo.dart';
import 'demos/native_sheet_demo.dart';
import 'demos/sidebar_demo.dart';
import 'demos/split_window_demo.dart';
import 'demos/bottom_nav_test.dart';
import 'demos/bottom_nav_indexed_test.dart';
import 'demos/bottom_nav_custom_icons_test.dart';
import 'demos/issue2_modal_shadow_test.dart';
import 'demos/issue28_checked_state_test.dart';
import 'demos/cnbutton_modal_halo_test.dart';
import 'demos/glass_widgets_modal_halo_test.dart';
import 'demos/issue29_artifact_test.dart';
import 'demos/issue29_transition_test.dart';
import 'demos/issue31_no_search_test.dart';
import 'demos/issue31_textfield_disappear_test.dart';
import 'demos/issue36_liquid_glass_modal_test.dart';
import 'demos/issue37_appbar_button_halo_test.dart';
import 'demos/issue53_cnbutton_under_sheet_test.dart';
import 'demos/issue40_button_label_style_test.dart';
import 'demos/issue46_cntoast_context_test.dart';
import 'demos/issue62_tabbar_gesture_arena_test.dart';
import 'demos/issue70_tabbar_background_test.dart';
import 'demos/issue43_glass_interactable_under_modal_test.dart';
import 'demos/issue50_glass_button_group_dumbbell_test.dart';
import 'demos/issue60_tabbar_labels_after_pop_test.dart';
import 'demos/issue65_gesture_arena_components_test.dart';
import 'demos/issue68_tabbar_rapid_taps_test.dart';
import 'demos/issue76_popup_gesture_test.dart';
import 'demos/issue124_button_dialog_halo_test.dart';
import 'demos/issue126_search_bar_controller_test.dart';
import 'demos/issue127_popover_present_after_test.dart';
import 'demos/issue128_floating_island_resize_test.dart';
import 'demos/issue129_popover_rows_test.dart';
import 'demos/issue130_icon_replace_color_test.dart';
import 'demos/issue131_split_tab_action_test.dart';
import 'demos/issue132_icon_only_tab_bar_test.dart';
import 'demos/issue134_search_bar_state_test.dart';
import 'demos/issue135_popover_gauge_failure_test.dart';
import 'demos/issue136_tab_bar_measure_search_test.dart';
import 'demos/issue137_slider_seek_test.dart';
import 'demos/issue138_context_menu_preview_test.dart';
import 'demos/issue141_popup_menu_button_test.dart';
import 'demos/issue142_tab_bar_font_rtl_test.dart';
import 'demos/issue143_segmented_font_labels_test.dart';
import 'demos/issue144_alert_font_rtl_test.dart';
import 'demos/issue146_tab_rail_pushed_page_test.dart';
import 'demos/issue147_popup_label_change_test.dart';
import 'demos/issue149_glass_button_under_sheet_test.dart';
import 'demos/issue156_glass_button_package_sheet_test.dart';
import 'demos/issue151_thumbless_slider_seek_test.dart';
import 'demos/issue153_button_label_color_light_dark_test.dart';
import 'demos/issue154_button_label_width_padding_test.dart';
import 'demos/pr64_liquid_glass_safe_area_test.dart';
import 'demos/pr66_glass_image_asset_tint_test.dart';
import 'demos/pr67_icon_supersample_test.dart';
import 'demos/pr69_glass_effect_test.dart';
import 'demos/pr72_glass_resize_test.dart';
import 'demos/pr74_tabbar_glass_background_test.dart';
import 'demos/pr77_liquid_glass_parts_test.dart';
import 'demos/pr78_action_sheet_test.dart';
import 'demos/pr79_alert_test.dart';
import 'demos/pr82_tabbar_font_first_build_test.dart';
import 'demos/issue103_tabbar_items_change_test.dart';
import 'demos/issue105_tabbar_dot_badge_test.dart';
import 'demos/tabbar_split_five_items_test.dart';
import 'demos/tabbar_item_menus_test.dart';
import 'demos/pr96_99_icon_tap_placeholder_test.dart';
import 'demos/pr97_98_tabbar_mount_test.dart';
import 'demos/pr100_tabbar_font_runtime_test.dart';
import 'demos/pr94_tab_accessory_null_test.dart';
import 'demos/pr84_system_brightness_test.dart';
import 'demos/pr85_tabbar_icon_precache_test.dart';
import 'demos/pr87_tabbar_selection_after_sheet_test.dart';
import 'demos/issue55_popup_menu_destructive_test.dart';
import 'demos/popup_menu_submenus_test.dart';
import 'demos/pr106_popup_menu_rebuild_test.dart';
import 'demos/pr42_tabbar_iconsize_customicon_test.dart';
import 'demos/issue33_svg_tabbar_test.dart';
import 'demos/stack_positioned_tabbar_test.dart';
import 'demos/tabbar_split_search_clip_test.dart';
import 'demos/alert.dart';
import 'demos/tab_bar_demo.dart';
import 'demos/toolbar.dart';
import 'demos/search_scaffold.dart';

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({super.key});

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  bool _isDarkMode = false;
  Color _accentColor = CupertinoColors.systemBlue;

  void _toggleTheme() {
    setState(() {
      _isDarkMode = !_isDarkMode;
    });
  }

  void _setAccentColor(Color color) {
    setState(() {
      _accentColor = color;
    });
  }

  @override
  Widget build(BuildContext context) {
    return CupertinoApp(
      // The banner covers the top-right corner, where the theme toggle sits on
      // macOS and the camera sits on the iPhone Duo outer display (#88).
      debugShowCheckedModeBanner: false,
      // Issue #31 fix: register the observer at the app-level navigator so
      // CNTabBar can detect modals/sheets pushed via the root navigator
      // (default for `showCupertinoSheet`, `showCupertinoModalPopup`, etc.)
      // and auto-hide its native UITabBar to avoid z-order conflicts with
      // Flutter-rendered modal content (e.g. Material TextFields).
      navigatorObservers: [CNTabBarRouteObserver()],
      // Provide Material + Cupertino localizations at the root so demos can
      // freely mix `showModalBottomSheet` (Material) with Cupertino routes
      // without adding the `flutter_localizations` package. Default English
      // strings are sufficient for the demo app.
      localizationsDelegates: const [
        DefaultMaterialLocalizations.delegate,
        DefaultCupertinoLocalizations.delegate,
        DefaultWidgetsLocalizations.delegate,
      ],
      theme: CupertinoThemeData(
        brightness: _isDarkMode ? Brightness.dark : Brightness.light,
        primaryColor: _accentColor,
      ),
      home: HomePage(
        isDarkMode: _isDarkMode,
        onToggleTheme: _toggleTheme,
        accentColor: _accentColor,
        onSelectAccentColor: _setAccentColor,
      ),
    );
  }
}

class HomePage extends StatelessWidget {
  const HomePage({
    super.key,
    required this.isDarkMode,
    required this.onToggleTheme,
    required this.accentColor,
    required this.onSelectAccentColor,
  });

  final bool isDarkMode;
  final VoidCallback onToggleTheme;
  final Color accentColor;
  final ValueChanged<Color> onSelectAccentColor;

  static const _systemColors = <MapEntry<String, Color>>[
    MapEntry('Red', CupertinoColors.systemRed),
    MapEntry('Orange', CupertinoColors.systemOrange),
    MapEntry('Yellow', CupertinoColors.systemYellow),
    MapEntry('Green', CupertinoColors.systemGreen),
    MapEntry('Teal', CupertinoColors.systemTeal),
    MapEntry('Blue', CupertinoColors.systemBlue),
    MapEntry('Indigo', CupertinoColors.systemIndigo),
    MapEntry('Purple', CupertinoColors.systemPurple),
    MapEntry('Pink', CupertinoColors.systemPink),
    MapEntry('Gray', CupertinoColors.systemGrey),
  ];

  @override
  Widget build(BuildContext context) {
    return CupertinoPageScaffold(
      backgroundColor: CupertinoColors.systemGroupedBackground,
      navigationBar: CupertinoNavigationBar(
        backgroundColor: CupertinoColors.systemGroupedBackground,
        border: null,
        // middle: const Text('Cupertino Native'),
        trailing: Row(
          mainAxisSize: MainAxisSize.min,
          children: [
            CNPopupMenuButton.icon(
              semanticLabel: 'Accent colour',
              buttonIcon: CNSymbol(
                'paintpalette.fill',
                size: 18,
                mode: CNSymbolRenderingMode.multicolor,
              ),
              tint: accentColor,
              items: [
                for (final entry in _systemColors)
                  CNPopupMenuItem(
                    label: entry.key,
                    icon: CNSymbol('circle.fill', size: 18, color: entry.value),
                  ),
              ],
              onSelected: (index) {
                if (index >= 0 && index < _systemColors.length) {
                  onSelectAccentColor(_systemColors[index].value);
                }
              },
            ),
            const SizedBox(width: 8),
            CNButton.icon(
              icon: CNSymbol(isDarkMode ? 'sun.max' : 'moon', size: 18),
              semanticLabel: isDarkMode
                  ? 'Switch to light mode'
                  : 'Switch to dark mode',
              onPressed: onToggleTheme,
            ),
          ],
        ),
      ),
      // SafeArea for the side insets only: on the iPhone Duo outer display the
      // status bar is vertical, on the right edge, and ListView pads only its
      // scroll axis.
      child: SafeArea(
        top: false,
        bottom: false,
        child: ListView(
          physics: const AlwaysScrollableScrollPhysics(),
          children: [
            CupertinoListSection.insetGrouped(
              header: Text('Showcase'),
              children: [
                CupertinoListTile(
                  title: Text('Display & Brightness'),
                  subtitle: Text('Segmented control, slider, switches, menu'),
                  leading: CNIcon(
                    symbol: CNSymbol('sun.max.fill', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => buildShowcaseScene('display'),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('Files'),
                  subtitle: Text('Tab bar with search, menu with submenus'),
                  leading: CNIcon(
                    symbol: CNSymbol('folder.fill', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => buildShowcaseScene('files'),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('Photos'),
                  subtitle: Text('Liquid Glass buttons over images'),
                  leading: CNIcon(
                    symbol: CNSymbol('photo.fill', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => buildShowcaseScene('photos'),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('Account'),
                  subtitle: Text('Native alert and action sheet'),
                  leading: CNIcon(
                    symbol: CNSymbol(
                      'person.crop.circle.fill',
                      color: accentColor,
                    ),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => buildShowcaseScene('account'),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('Music'),
                  subtitle: Text('CNTabBarNative: minimize, accessory, search'),
                  leading: CNIcon(
                    symbol: CNSymbol('music.note', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => buildShowcaseScene('music'),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('iPhone Duo'),
                  subtitle: Text('Vertical bar, sidebar, split at the fold'),
                  leading: CNIcon(
                    symbol: CNSymbol('iphone.gen3', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => buildShowcaseScene('duo'),
                      ),
                    );
                  },
                ),
              ],
            ),
            CupertinoListSection.insetGrouped(
              header: Text('Components'),
              children: [
                CupertinoListTile(
                  title: Text('Slider'),
                  leading: CNIcon(
                    symbol: CNSymbol('slider.horizontal.3', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const SliderDemoPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('Switch'),
                  leading: CNIcon(
                    symbol: CNSymbol('switch.2', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const SwitchDemoPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('Date Picker'),
                  leading: CNIcon(
                    symbol: CNSymbol('calendar', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const DatePickerDemoPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('Stepper'),
                  leading: CNIcon(
                    symbol: CNSymbol(
                      'plus.forwardslash.minus',
                      color: accentColor,
                    ),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const StepperDemoPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('Color Well'),
                  leading: CNIcon(
                    symbol: CNSymbol('paintpalette', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const ColorWellDemoPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('Page Control'),
                  leading: CNIcon(
                    symbol: CNSymbol('ellipsis', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const PageControlDemoPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('Segmented Control'),
                  leading: CNIcon(
                    symbol: CNSymbol('rectangle.split.3x1', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const SegmentedControlDemoPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('Icon'),
                  leading: CNIcon(symbol: CNSymbol('app', color: accentColor)),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(builder: (_) => const IconDemoPage()),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('Popup Menu Button'),
                  leading: CNIcon(
                    symbol: CNSymbol('ellipsis.circle', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const PopupMenuButtonDemoPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('Action Sheet'),
                  leading: CNIcon(
                    symbol: CNSymbol('square.and.arrow.up', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const ActionSheetDemoPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('Context Menu'),
                  leading: CNIcon(
                    symbol: CNSymbol(
                      'contextualmenu.and.cursorarrow',
                      color: accentColor,
                    ),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const ContextMenuDemoPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('Popover'),
                  leading: CNIcon(
                    symbol: CNSymbol('bubble.middle.top', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const PopoverDemoPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('Button'),
                  leading: CNIcon(
                    symbol: CNSymbol('hand.tap', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const ButtonDemoPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('Glass Button Group'),
                  leading: CNIcon(
                    symbol: CNSymbol('square.on.square', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const GlassButtonGroupDemoPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('Search Bar'),
                  leading: CNIcon(
                    symbol: CNSymbol('magnifyingglass', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const SearchBarDemoPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('Progress Indicator'),
                  leading: CNIcon(
                    symbol: CNSymbol('progress.indicator', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const ProgressIndicatorDemoPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('Pop-Up Button'),
                  leading: CNIcon(
                    symbol: CNSymbol(
                      'chevron.up.chevron.down',
                      color: accentColor,
                    ),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const PopUpButtonDemoPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('Gauge'),
                  leading: CNIcon(
                    symbol: CNSymbol('gauge.with.needle', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(builder: (_) => const GaugeDemoPage()),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('Scroll edge effect'),
                  leading: CNIcon(
                    symbol: CNSymbol(
                      'square.topthird.inset.filled',
                      color: accentColor,
                    ),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const ScrollEdgeEffectDemoPage(),
                      ),
                    );
                  },
                ),
              ],
            ),
            CupertinoListSection.insetGrouped(
              header: Text('Navigation'),
              children: [
                CupertinoListTile(
                  title: Text('iPhone Duo'),
                  subtitle: Text('Hinge, vertical bar, fold-aware layouts'),
                  leading: CNIcon(symbol: CNSymbol('book', color: accentColor)),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const IPhoneDuoDemoPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('Tab Bar'),
                  subtitle: Text('Badges, tint and font, search tab, items'),
                  leading: CNIcon(
                    symbol: CNSymbol(
                      'menubar.dock.rectangle',
                      color: accentColor,
                    ),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const TabBarDemoPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('Toolbar'),
                  subtitle: Text(
                    'Window toolbar on macOS, bottom toolbar on iOS',
                  ),
                  leading: CNIcon(
                    symbol: CNSymbol('menubar.rectangle', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const ToolbarDemoPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('Search Scaffold'),
                  subtitle: Text(
                    'Tabs and search: tab bar on iOS, toolbar on macOS',
                  ),
                  leading: CNIcon(
                    symbol: CNSymbol(
                      'magnifyingglass.circle',
                      color: accentColor,
                    ),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const SearchScaffoldDemoPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('Native Tab Bar'),
                  subtitle: Text('iOS 26 tab bar, Mac window sidebar'),
                  leading: CNIcon(
                    symbol: CNSymbol('dock.rectangle', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const NativeTabBarDemoPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('Native Sheet'),
                  leading: CNIcon(
                    symbol: CNSymbol(
                      'rectangle.bottomhalf.inset.filled',
                      color: accentColor,
                    ),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const NativeSheetDemoPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('Mac Window'),
                  subtitle: Text('Sidebar and inspector around Flutter'),
                  leading: CNIcon(
                    symbol: CNSymbol('rectangle.split.3x1', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const SplitWindowDemoPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('Sidebar'),
                  subtitle: Text('CNSidebar, CNTabRail, CNTabScaffold'),
                  leading: CNIcon(
                    symbol: CNSymbol('sidebar.left', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const SidebarDemoPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('Glass container'),
                  leading: CNIcon(
                    symbol: CNSymbol(
                      'rectangle.topthird.inset',
                      color: accentColor,
                    ),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const AppBarDemoPage(),
                      ),
                    );
                  },
                ),
              ],
            ),
            CupertinoListSection.insetGrouped(
              header: Text('Testing'),
              children: [
                CupertinoListTile(
                  title: Text('#2: Modal bottom sheet shadow'),
                  leading: CNIcon(
                    symbol: CNSymbol(
                      'rectangle.bottomthird.inset.filled',
                      color: accentColor,
                    ),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const Issue2ModalShadowTest(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('#29: Transition Artifact'),
                  leading: CNIcon(
                    symbol: CNSymbol(
                      'rectangle.on.rectangle',
                      color: accentColor,
                    ),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const Issue29TransitionTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('CNButton modal halo test'),
                  leading: CNIcon(
                    symbol: CNSymbol('square.on.square', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const CNButtonModalHaloTest(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('Glass widgets modal halo test'),
                  leading: CNIcon(
                    symbol: CNSymbol(
                      'rectangle.stack.fill',
                      color: accentColor,
                    ),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const GlassWidgetsModalHaloTest(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('#36: LiquidGlassContainer behind modal'),
                  leading: CNIcon(
                    symbol: CNSymbol(
                      'rectangle.fill.on.rectangle.fill',
                      color: accentColor,
                    ),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const Issue36LiquidGlassModalTest(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('#37: AppBar CNButton halo bleed through sheet'),
                  leading: CNIcon(
                    symbol: CNSymbol('bell.badge', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const Issue37AppBarButtonHaloTest(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('#53: CNButton under bottom sheet'),
                  leading: CNIcon(
                    symbol: CNSymbol('square.and.pencil', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const Issue53CNButtonUnderSheetTest(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('#40: CNButton label style'),
                  leading: CNIcon(
                    symbol: CNSymbol('textformat.size', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const Issue40ButtonLabelStyleTest(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('#46: CNToast use_build_context_synchronously'),
                  leading: CNIcon(
                    symbol: CNSymbol(
                      'exclamationmark.bubble',
                      color: accentColor,
                    ),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const Issue46CNToastContextTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('#62 / PR #63: CNTabBar tap gesture arena'),
                  leading: CNIcon(
                    symbol: CNSymbol('hand.tap.fill', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) =>
                            const Issue62TabBarGestureArenaTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('#70: CNTabBar backgroundColor'),
                  leading: CNIcon(
                    symbol: CNSymbol('paintpalette', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const Issue70TabBarBackgroundTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('#43: Glass interactable under modals'),
                  leading: CNIcon(
                    symbol: CNSymbol('hand.tap', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) =>
                            const Issue43GlassInteractableUnderModalTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('#50: GlassButtonGroup dumbbell'),
                  leading: CNIcon(
                    symbol: CNSymbol('capsule', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) =>
                            const Issue50GlassButtonGroupDumbbellTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('#60: TabBar labels after pop'),
                  leading: CNIcon(
                    symbol: CNSymbol('textformat.size', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) =>
                            const Issue60TabBarLabelsAfterPopTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('#65: Gesture arena, all components'),
                  leading: CNIcon(
                    symbol: CNSymbol('hand.draw', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) =>
                            const Issue65GestureArenaComponentsTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('#68: TabBar rapid taps'),
                  leading: CNIcon(
                    symbol: CNSymbol('hand.tap.fill', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const Issue68TabBarRapidTapsTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('#76: CNPopupGesture long press'),
                  leading: CNIcon(
                    symbol: CNSymbol(
                      'contextualmenu.and.cursorarrow',
                      color: accentColor,
                    ),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const Issue76PopupGestureTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('#103 / #104: TabBar items change early'),
                  leading: CNIcon(
                    symbol: CNSymbol(
                      'plus.rectangle.on.rectangle',
                      color: accentColor,
                    ),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) =>
                            const Issue103TabBarItemsChangeTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('#105: TabBar dot badge'),
                  leading: CNIcon(
                    symbol: CNSymbol('app.badge', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const Issue105TabBarDotBadgeTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('#124: Button halo under dialog'),
                  leading: CNIcon(
                    symbol: CNSymbol('square.dashed', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) =>
                            const Issue124ButtonDialogHaloTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('#126: SearchBar controller'),
                  leading: CNIcon(
                    symbol: CNSymbol('magnifyingglass', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) =>
                            const Issue126SearchBarControllerTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('#127: Present after popover'),
                  leading: CNIcon(
                    symbol: CNSymbol(
                      'rectangle.on.rectangle',
                      color: accentColor,
                    ),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) =>
                            const Issue127PopoverPresentAfterTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('#128: FloatingIsland resize'),
                  leading: CNIcon(
                    symbol: CNSymbol('capsule', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) =>
                            const Issue128FloatingIslandResizeTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('#129: Popover rows'),
                  leading: CNIcon(
                    symbol: CNSymbol(
                      'list.bullet.rectangle',
                      color: accentColor,
                    ),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const Issue129PopoverRowsTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('#130: Icon replace + colour'),
                  leading: CNIcon(
                    symbol: CNSymbol('play.circle', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) =>
                            const Issue130IconReplaceColorTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('#131: Split tab action'),
                  leading: CNIcon(
                    symbol: CNSymbol('square.and.pencil', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const Issue131SplitTabActionTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('#132: Icon-only tab bar'),
                  leading: CNIcon(
                    symbol: CNSymbol('dock.rectangle', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const Issue132IconOnlyTabBarTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('#134: Search bar state'),
                  leading: CNIcon(
                    symbol: CNSymbol('magnifyingglass', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const Issue134SearchBarStateTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('#135: Popover gauges, failures'),
                  leading: CNIcon(
                    symbol: CNSymbol(
                      'gauge.with.dots.needle.33percent',
                      color: accentColor,
                    ),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) =>
                            const Issue135PopoverGaugeFailureTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('#136: Tab bar measure, search'),
                  leading: CNIcon(
                    symbol: CNSymbol('ruler', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) =>
                            const Issue136TabBarMeasureSearchTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('#137: Slider tap to seek'),
                  leading: CNIcon(
                    symbol: CNSymbol(
                      'slider.horizontal.below.rectangle',
                      color: accentColor,
                    ),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const Issue137SliderSeekTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('#138: Context menu preview'),
                  leading: CNIcon(
                    symbol: CNSymbol('rectangle.stack', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) =>
                            const Issue138ContextMenuPreviewTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('#141: Popup menu button'),
                  leading: CNIcon(
                    symbol: CNSymbol('ellipsis.circle', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const Issue141PopupMenuButtonTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('#142: Tab bar font, RTL'),
                  leading: CNIcon(
                    symbol: CNSymbol('textformat', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const Issue142TabBarFontRtlTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('#143: Segmented font, labels'),
                  leading: CNIcon(
                    symbol: CNSymbol('rectangle.split.3x1', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) =>
                            const Issue143SegmentedFontLabelsTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('#144: Alert font, RTL'),
                  leading: CNIcon(
                    symbol: CNSymbol(
                      'exclamationmark.bubble',
                      color: accentColor,
                    ),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const Issue144AlertFontRtlTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('#146: Tab rail under a pushed page'),
                  leading: CNIcon(
                    symbol: CNSymbol('sidebar.left', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) =>
                            const Issue146TabRailPushedPageTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('#147: Popup label change'),
                  leading: CNIcon(
                    symbol: CNSymbol('arrow.up.arrow.down', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) =>
                            const Issue147PopupLabelChangeTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('#149: Glass button under a sheet'),
                  leading: CNIcon(
                    symbol: CNSymbol('xmark.circle', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) =>
                            const Issue149GlassButtonUnderSheetTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('#156: Glass button under a package sheet'),
                  leading: CNIcon(
                    symbol: CNSymbol(
                      'rectangle.bottomhalf.filled',
                      color: accentColor,
                    ),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) =>
                            const Issue156GlassButtonPackageSheetTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('#151: Thumbless slider seek'),
                  leading: CNIcon(
                    symbol: CNSymbol(
                      'slider.horizontal.below.rectangle',
                      color: accentColor,
                    ),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) =>
                            const Issue151ThumblessSliderSeekTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('#153: Button label colour light/dark'),
                  leading: CNIcon(
                    symbol: CNSymbol(
                      'circle.lefthalf.filled',
                      color: accentColor,
                    ),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) =>
                            const Issue153ButtonLabelColorLightDarkTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('#154: Button label width and padding'),
                  leading: CNIcon(
                    symbol: CNSymbol('textformat.size', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) =>
                            const Issue154ButtonLabelWidthPaddingTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('TabBar split: five items'),
                  leading: CNIcon(
                    symbol: CNSymbol(
                      'circle.righthalf.filled',
                      color: accentColor,
                    ),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const TabBarSplitFiveItemsTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('TabBar item menus'),
                  leading: CNIcon(
                    symbol: CNSymbol('plus.circle', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const TabBarItemMenusTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('PR #64: LiquidGlass safe-area clip'),
                  leading: CNIcon(
                    symbol: CNSymbol(
                      'rectangle.bottomthird.inset.filled',
                      color: accentColor,
                    ),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const Pr64LiquidGlassSafeAreaTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('PR #66: glass imageAsset tint'),
                  leading: CNIcon(
                    symbol: CNSymbol('paintbrush.pointed', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const Pr66GlassImageAssetTintTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('PR #67: icon supersampling'),
                  leading: CNIcon(
                    symbol: CNSymbol(
                      'squareshape.split.2x2',
                      color: accentColor,
                    ),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const Pr67IconSupersampleTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('PR #69: LiquidGlass config.effect'),
                  leading: CNIcon(
                    symbol: CNSymbol(
                      'circle.lefthalf.filled',
                      color: accentColor,
                    ),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const Pr69GlassEffectTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('PR #72: LiquidGlass resize'),
                  leading: CNIcon(
                    symbol: CNSymbol(
                      'arrow.up.left.and.arrow.down.right',
                      color: accentColor,
                    ),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const Pr72GlassResizeTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('PR #74: TabBar glass background'),
                  leading: CNIcon(
                    symbol: CNSymbol('dock.rectangle', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) =>
                            const Pr74TabBarGlassBackgroundTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('PR #77: LiquidGlass parts'),
                  leading: CNIcon(
                    symbol: CNSymbol(
                      'capsule.on.rectangle',
                      color: accentColor,
                    ),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const Pr77LiquidGlassPartsTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('PR #78: native action sheet'),
                  leading: CNIcon(
                    symbol: CNSymbol(
                      'list.bullet.rectangle',
                      color: accentColor,
                    ),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const Pr78ActionSheetTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('PR #79: native alert'),
                  leading: CNIcon(
                    symbol: CNSymbol(
                      'exclamationmark.bubble',
                      color: accentColor,
                    ),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const Pr79AlertTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('PR #82: TabBar font on first build'),
                  leading: CNIcon(
                    symbol: CNSymbol('textformat', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) =>
                            const Pr82TabBarFontFirstBuildTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('PR #84: system brightness'),
                  leading: CNIcon(
                    symbol: CNSymbol(
                      'circle.lefthalf.filled',
                      color: accentColor,
                    ),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const Pr84SystemBrightnessTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('PR #90: TabBar icon precache'),
                  leading: CNIcon(
                    symbol: CNSymbol('timer', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const Pr85TabBarIconPrecacheTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('PR #96 / #99: CNIcon taps and placeholder'),
                  leading: CNIcon(
                    symbol: CNSymbol('hand.tap', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) =>
                            const Pr96And99IconTapPlaceholderTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('PR #97 / #98: TabBar mount'),
                  leading: CNIcon(
                    symbol: CNSymbol('dock.rectangle', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const Pr97And98TabBarMountTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('PR #100: TabBar font at runtime'),
                  leading: CNIcon(
                    symbol: CNSymbol('textformat.size', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const Pr100TabBarFontRuntimeTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('PR #94: TabBarNative null accessory'),
                  leading: CNIcon(
                    symbol: CNSymbol('rectangle.dashed', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const Pr94TabAccessoryNullTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('#86 / PR #91: TabBar selection after sheet'),
                  leading: CNIcon(
                    symbol: CNSymbol('rectangle.stack', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) =>
                            const Pr87TabBarSelectionAfterSheetTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('#55: PopupMenu isDestructive'),
                  leading: CNIcon(
                    symbol: CNSymbol('trash', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const Issue55PopupMenuDestructiveTest(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('PopupMenu subtitles & submenus'),
                  leading: CNIcon(
                    symbol: CNSymbol('list.bullet.indent', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const PopupMenuSubmenusTest(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('PR #106: PopupMenu icons after rebuild'),
                  leading: CNIcon(
                    symbol: CNSymbol('arrow.clockwise', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const Pr106PopupMenuRebuildTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('PR #42: CNTabBar iconSize (customIcon)'),
                  leading: CNIcon(
                    symbol: CNSymbol(
                      'arrow.up.left.and.arrow.down.right',
                      color: accentColor,
                    ),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) =>
                            const Pr42TabBarIconSizeCustomIconTest(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('Stack+Positioned tab bar (clean fix attempt)'),
                  leading: CNIcon(
                    symbol: CNSymbol(
                      'rectangle.bottomthird.inset.filled',
                      color: accentColor,
                    ),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const StackPositionedTabBarTest(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('#33: SVG in CNTabBar'),
                  leading: CNIcon(
                    symbol: CNSymbol('photo.fill', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const Issue33SvgTabBarTest(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('#31: TextField disappear'),
                  leading: CNIcon(
                    symbol: CNSymbol('textformat.abc', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const Issue31TextFieldDisappearTest(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text(
                    '#31: TextField — NO search variant (hypothesis test)',
                  ),
                  leading: CNIcon(
                    symbol: CNSymbol('textformat', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const Issue31NoSearchTest(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('CNTabBar split-search clip'),
                  leading: CNIcon(
                    symbol: CNSymbol(
                      'magnifyingglass.circle',
                      color: accentColor,
                    ),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const TabBarSplitSearchClipTest(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('#29: Per-widget halo test'),
                  leading: CNIcon(
                    symbol: CNSymbol(
                      'square.on.square.dashed',
                      color: accentColor,
                    ),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const Issue29ArtifactTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('#28: Popup Checked State'),
                  leading: CNIcon(
                    symbol: CNSymbol('checkmark.circle', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const Issue28CheckedStateTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('Overlay Test'),
                  leading: CNIcon(
                    symbol: CNSymbol('square.stack.3d.up', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const OverlayTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('Issues Test'),
                  leading: CNIcon(
                    symbol: CNSymbol(
                      'exclamationmark.triangle',
                      color: accentColor,
                    ),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const IssuesTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('Bottom Nav Test (Simple)'),
                  leading: CNIcon(
                    symbol: CNSymbol(
                      'rectangle.bottomthird.inset.filled',
                      color: accentColor,
                    ),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const BottomNavTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('Bottom Nav Test (IndexedStack)'),
                  leading: CNIcon(
                    symbol: CNSymbol('square.stack.3d.up', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const BottomNavIndexedTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('Bottom Nav Test (Custom Icons)'),
                  leading: CNIcon(
                    symbol: CNSymbol('photo.artframe', color: accentColor),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(
                        builder: (_) => const BottomNavCustomIconsTestPage(),
                      ),
                    );
                  },
                ),
                CupertinoListTile(
                  title: Text('Alert'),
                  leading: CNIcon(
                    symbol: CNSymbol(
                      'exclamationmark.bubble',
                      color: accentColor,
                    ),
                  ),
                  trailing: CupertinoListTileChevron(),
                  onTap: () {
                    Navigator.of(context).push(
                      CupertinoPageRoute(builder: (_) => const AlertDemoPage()),
                    );
                  },
                ),
              ],
            ),
          ],
        ),
      ),
    );
  }
}
92
likes
160
points
17.1k
downloads
screenshot

Documentation

Documentation
API reference

Publisher

verified publishergunumdogdu.com

Weekly Downloads

The real iOS 26 and iOS 27 Liquid Glass controls in Flutter: native tab bars, buttons, menus, sliders, switches, alerts and sheets, with Cupertino fallbacks.

Repository (GitHub)
View/report issues

Topics

#ios #macos #cupertino #liquid-glass #native-widgets

License

MIT (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on cupertino_native_better

Packages that implement cupertino_native_better