liqkit_ui
Containers

Drawer

LiqDrawer is the iOS 26 side-anchored panel surface. It slides in from the left or right screen edge over a dimmed scrim and is typically used for navigation or secondary content.

The widget itself renders a static drawer surface — useful for static demos and tests. For programmatic presentation with the slide-in animation, dimmed scrim, and dismiss-on-scrim-tap or Escape key, use LiqDrawerOverlay.show().

Left

// ignore_for_file: file_names // hyphenated name required by snippet manifest conventionimport 'package:docs_snippets/src/snippet_frame.dart';import 'package:flutter/material.dart';import 'package:liqkit_ui/liqkit_ui.dart';/// Snippet builder consumed by `apps/docs_snippets/lib/src/routes.g.dart`.Widget drawerLeftBuilder(BuildContext context) {  return const SnippetFrame(    maxWidth: 620,    height: 260,    surface: SnippetFrameSurface.liquidThemed,    surfacePadding: EdgeInsets.zero,    surfaceScrimOpacity: 0.4,    child: Stack(      children: <Widget>[        Positioned.fill(          left: 240,          child: DecoratedBox(            decoration: BoxDecoration(color: Color(0x3300A887)),            child: Center(              child: Icon(Icons.mail_outline, color: Color(0x66FFFFFF)),            ),          ),        ),        Align(          alignment: Alignment.centerLeft,          child: LiqDrawer(            width: 240,            child: Column(              crossAxisAlignment: CrossAxisAlignment.start,              children: <Widget>[                Text(                  'Navigation',                  style: TextStyle(fontWeight: FontWeight.w600),                ),                SizedBox(height: 16),                Text('Inbox'),                SizedBox(height: 10),                Text('Sent'),                SizedBox(height: 10),                Text('Drafts'),              ],            ),          ),        ),      ],    ),  );}
// ignore_for_file: file_names // hyphenated name required by snippet manifest conventionimport 'package:docs_snippets/src/snippet_frame.dart';import 'package:flutter/material.dart';import 'package:liqkit_ui/liqkit_ui.dart';/// Snippet builder consumed by `apps/docs_snippets/lib/src/routes.g.dart`.Widget drawerRightBuilder(BuildContext context) {  return const SnippetFrame(    maxWidth: 620,    height: 260,    surface: SnippetFrameSurface.liquidThemed,    surfacePadding: EdgeInsets.zero,    surfaceScrimOpacity: 0.4,    child: Stack(      children: <Widget>[        Positioned.fill(          right: 240,          child: DecoratedBox(            decoration: BoxDecoration(color: Color(0x332C7DFF)),            child: Center(child: Icon(Icons.tune, color: Color(0x66FFFFFF))),          ),        ),        Align(          alignment: Alignment.centerRight,          child: LiqDrawer(            side: LiqDrawerSide.right,            width: 240,            child: Column(              crossAxisAlignment: CrossAxisAlignment.start,              children: <Widget>[                Text('Filters', style: TextStyle(fontWeight: FontWeight.w600)),                SizedBox(height: 16),                Text('Unread'),                SizedBox(height: 10),                Text('Starred'),                SizedBox(height: 10),                Text('Archived'),              ],            ),          ),        ),      ],    ),  );}

Collapsed

// ignore_for_file: file_names // hyphenated name required by snippet manifest conventionimport 'package:docs_snippets/src/snippet_frame.dart';import 'package:flutter/material.dart';import 'package:liqkit_ui/liqkit_ui.dart';/// Snippet builder consumed by `apps/docs_snippets/lib/src/routes.g.dart`.Widget drawerCollapsedBuilder(BuildContext context) {  return const SnippetFrame(    maxWidth: 620,    height: 260,    surface: SnippetFrameSurface.liquidThemed,    surfacePadding: EdgeInsets.zero,    surfaceScrimOpacity: 0.32,    child: Stack(      children: <Widget>[        Positioned.fill(          left: 72,          child: DecoratedBox(            decoration: BoxDecoration(color: Color(0x332C7DFF)),            child: Center(              child: Text(                'Content',                style: TextStyle(                  color: Color(0x99FFFFFF),                  fontWeight: FontWeight.w600,                ),              ),            ),          ),        ),        Align(          alignment: Alignment.centerLeft,          child: LiqDrawer(            collapsed: true,            collapsedWidth: 72,            padding: EdgeInsets.symmetric(vertical: 16, horizontal: 12),            child: Column(              mainAxisAlignment: MainAxisAlignment.start,              children: <Widget>[                Icon(Icons.inbox, size: 22),                SizedBox(height: 18),                Icon(Icons.send_outlined, size: 22),                SizedBox(height: 18),                Icon(Icons.drafts_outlined, size: 22),              ],            ),          ),        ),      ],    ),  );}

On this page