Pagination
Cross-platform extension. iOS 26 doesn't surface explicit page numbers — paged content uses an infinite scroll with
LiqPageControldots instead. This control follows the shadcn/ui and forui.dev page-number convention. liqkit_ui ships it rendered in iOS 26 visual language (Liquid Glass surfaces, San Francisco type, iOS color palette) so it composes cleanly with the rest of the library, but the interaction model itself is web-native rather than iOS-canonical.
LiqPagination is the iOS 26 page-number selector used to navigate
paged content such as a table of results or a photo album. It renders
a previous-page button, a list of page numbers, and a next-page
button. When there are many pages the page-number list collapses with
ellipses around currentPage (e.g. 1 … 4 5 6 … 12).
When onPageChanged is null the entire control is rendered at 40%
opacity and taps are no-ops.
Default
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 paginationDefaultBuilder(BuildContext context) { return SnippetFrame( child: LiqDemo<int>( initial: 4, builder: (page, set) => LiqPagination(currentPage: page, totalPages: 12, onPageChanged: set), ), );}
Compact
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 paginationCompactBuilder(BuildContext context) { return SnippetFrame( child: LiqDemo<int>( initial: 1, builder: (page, set) => LiqPagination( currentPage: page, totalPages: 24, compact: true, onPageChanged: set, ), ), );}