liqkit_ui
Containers

Carousel

LiqCarousel is the iOS 26 horizontal carousel — a paged, snap-to-page slider for browsing cards, photos, or arbitrary widgets. The viewport defaults to 0.92 so the next and previous edges peek in on either side, and a LiqPageControl page-dot indicator renders beneath the viewport.

Auto-advance is opt-in. When enabled, the carousel ticks to the next item every autoplayInterval; auto-advance pauses while the user is dragging and resumes one interval after the drag ends.

Default

// ignore_for_file: file_names // hyphenated name required by snippet manifest conventionimport 'package:docs_snippets/src/snippet_frame.dart';import 'package:flutter/widgets.dart';import 'package:liqkit_ui/liqkit_ui.dart';const TextStyle _slideText = TextStyle(  color: Color(0xFFFFFFFF),  fontSize: 24,  fontWeight: FontWeight.w600,);const List<Widget> _items = <Widget>[  ColoredBox(    color: Color(0xFF34C759),    child: Center(child: Text('Slide 1', style: _slideText)),  ),  ColoredBox(    color: Color(0xFF007AFF),    child: Center(child: Text('Slide 2', style: _slideText)),  ),  ColoredBox(    color: Color(0xFFFF9500),    child: Center(child: Text('Slide 3', style: _slideText)),  ),];/// Snippet builder consumed by `apps/docs_snippets/lib/src/routes.g.dart`.Widget carouselDefaultBuilder(BuildContext context) {  return SnippetFrame(    maxWidth: 360,    child: LiqCarousel(height: 180, items: _items),  );}

Autoplay

// ignore_for_file: file_names // hyphenated name required by snippet manifest conventionimport 'package:docs_snippets/src/snippet_frame.dart';import 'package:flutter/widgets.dart';import 'package:liqkit_ui/liqkit_ui.dart';const TextStyle _slideText = TextStyle(  color: Color(0xFFFFFFFF),  fontSize: 24,  fontWeight: FontWeight.w600,);const List<Widget> _items = <Widget>[  ColoredBox(    color: Color(0xFF34C759),    child: Center(child: Text('Slide 1', style: _slideText)),  ),  ColoredBox(    color: Color(0xFF007AFF),    child: Center(child: Text('Slide 2', style: _slideText)),  ),  ColoredBox(    color: Color(0xFFFF9500),    child: Center(child: Text('Slide 3', style: _slideText)),  ),];/// Snippet builder consumed by `apps/docs_snippets/lib/src/routes.g.dart`.Widget carouselAutoplayBuilder(BuildContext context) {  return SnippetFrame(    maxWidth: 360,    child: LiqCarousel(      height: 180,      autoplay: true,      autoplayInterval: const Duration(seconds: 3),      items: _items,    ),  );}

No Indicator

// ignore_for_file: file_names // hyphenated name required by snippet manifest conventionimport 'package:docs_snippets/src/snippet_frame.dart';import 'package:flutter/widgets.dart';import 'package:liqkit_ui/liqkit_ui.dart';const TextStyle _slideText = TextStyle(  color: Color(0xFFFFFFFF),  fontSize: 24,  fontWeight: FontWeight.w600,);const List<Widget> _items = <Widget>[  ColoredBox(    color: Color(0xFF34C759),    child: Center(child: Text('Slide 1', style: _slideText)),  ),  ColoredBox(    color: Color(0xFF007AFF),    child: Center(child: Text('Slide 2', style: _slideText)),  ),  ColoredBox(    color: Color(0xFFFF9500),    child: Center(child: Text('Slide 3', style: _slideText)),  ),];/// Snippet builder consumed by `apps/docs_snippets/lib/src/routes.g.dart`.Widget carouselNoIndicatorBuilder(BuildContext context) {  return SnippetFrame(    maxWidth: 360,    child: LiqCarousel(height: 180, showIndicator: false, items: _items),  );}