Inputs
Textarea
LiqTextarea is the iOS 26 multi-line text input. It renders a
rounded-rectangle surface that grows from minLines up to maxLines
before the editor starts to scroll internally.
Distinct from LiqTextField — which is a single-line pill input that
hardcodes maxLines: 1. Use LiqTextarea for paragraphs, comments,
posts, and any multi-line free-form input; use LiqTextField when the
content is a single line (search, email, password, name).
Default
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 textareaDefaultBuilder(BuildContext context) { return SnippetFrame(maxWidth: 480, child: _Demo());}class _Demo extends StatefulWidget { @override State<_Demo> createState() => _DemoState();}class _DemoState extends State<_Demo> { final TextEditingController _controller = TextEditingController(); @override void dispose() { _controller.dispose(); super.dispose(); } @override Widget build(BuildContext context) { return LiqTextarea( controller: _controller, placeholder: 'Tell us what you think…', minLines: 4, ); }}
With Counter
// 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';/// Snippet builder consumed by `apps/docs_snippets/lib/src/routes.g.dart`.Widget textareaWithCounterBuilder(BuildContext context) { return SnippetFrame(maxWidth: 480, child: _Demo());}class _Demo extends StatefulWidget { @override State<_Demo> createState() => _DemoState();}class _DemoState extends State<_Demo> { final TextEditingController _controller = TextEditingController(); @override void dispose() { _controller.dispose(); super.dispose(); } @override Widget build(BuildContext context) { return LiqTextarea( controller: _controller, placeholder: "What's happening?", maxLength: 280, showCounter: true, ); }}