liqkit_ui
Inputs

Radio

Cross-platform extension. iOS 26 patterns this differently — single-select pickers in Settings and Mail use a checkmark on the active list row (see LiqList), not a classic radio circle. This component ships the more familiar shadcn/ui / forui.dev circle radio for cross-library parity, dressed in iOS 26 visual language (Liquid Glass surfaces, San Francisco type, iOS color palette) so it composes cleanly with the rest of the library.

LiqRadio is the iOS 26 radio circle. It is a 22pt ring that animates in a centered 12pt filled dot when its value matches the surrounding groupValue. The visible ring sits inside a 44pt tap target for comfortable hit testing and renders at 40% opacity when disabled.

Single

import 'package:docs_snippets/src/demo.dart';import 'package:docs_snippets/src/snippet_frame.dart';import 'package:flutter/widgets.dart';import 'package:liqkit_ui/liqkit_ui.dart';/// Snippet builder consumed by `apps/docs_snippets/lib/src/routes.g.dart`.Widget radioSingleBuilder(BuildContext context) {  return SnippetFrame(    child: LiqDemo<String>(      initial: 'a',      builder: (v, set) {        return Row(          mainAxisSize: MainAxisSize.min,          children: [            LiqRadio<String>(value: 'a', groupValue: v, onChanged: set),            const SizedBox(width: 16),            LiqRadio<String>(value: 'b', groupValue: v, onChanged: set),            const SizedBox(width: 16),            LiqRadio<String>(value: 'c', groupValue: v, onChanged: set),          ],        );      },    ),  );}

Group

import 'package:docs_snippets/src/demo.dart';import 'package:docs_snippets/src/snippet_frame.dart';import 'package:flutter/widgets.dart';import 'package:liqkit_ui/liqkit_ui.dart';/// Snippet builder consumed by `apps/docs_snippets/lib/src/routes.g.dart`.Widget radioGroupBuilder(BuildContext context) {  return SnippetFrame(    child: LiqDemo<String>(      initial: 'auto',      builder: (v, set) {        return LiqRadioGroup<String>(          value: v,          onChanged: set,          options: const <({String value, String label})>[            (value: 'auto', label: 'Auto'),            (value: 'light', label: 'Light'),            (value: 'dark', label: 'Dark'),          ],        );      },    ),  );}

On this page