liqkit_ui
Navigation

Pagination

Cross-platform extension. iOS 26 doesn't surface explicit page numbers — paged content uses an infinite scroll with LiqPageControl dots 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,          ),    ),  );}

On this page