tomeui 0.3.5
tomeui: ^0.3.5 copied to clipboard
Tome UI: a Flutter UI toolkit built directly on the widgets layer, standalone from material and cupertino.
Tome UI #
A Flutter UI toolkit built directly on the widgets layer, standalone from material and cupertino.
The only Flutter surface it depends on is flutter/widgets.dart, which it
re-exports, so a single import covers both the toolkit and the widgets layer
beneath it:
import 'package:tomeui/tomeui.dart';
Requires Flutter 3.44 or newer and Dart 3.12.2 or newer.
Installation #
flutter pub add tomeui
Optional companion packages:
- tomeui_desktop: native desktop
window controls through
window_manager. - tomeui_clickwheel: click-wheel input, focus navigation, and wheel-driven lists and grids.
Usage #
import 'package:tomeui/tomeui.dart';
void main() {
runApp(const TomeApp(
home: Scaffold(body: Center(child: Text('Hello, TomeUI'))),
));
}
Explore the widgets in the playground.
Development #
Recipes are in the Justfile:
just bootstrap # resolve dependencies for the whole workspace
just analyze # analyze the Dart sources
just test # run the toolkit, clickwheel, and playground tests
just check # resolve, analyze, and test
From the dart-packages workspace root, prefix with the package name:
just tomeui test.
The repository is a Dart workspace. Companion packages resolve tomeui locally
during development and from pub.flutter-io.cn when installed by consumers.
Publishing #
GitHub Actions validates pull requests and publishes shared version bumps merged
into main using a single vX.Y.Z tag. All three libraries use the same version
and publish together, in dependency order.
The commands below remain available for local validation and manual publishing.
Update all three package versions to the same stable X.Y.Z, update matching
dependency constraints and all three changelogs, then
commit the release changes before publishing. Each publish task resolves,
analyzes, and tests the workspace first, then publishes the committed files
from a temporary copy. Git and tar must be available on PATH.
just publish all --dry-run # validate archives without uploading
just publish all --force # publish tomeui, then desktop, then clickwheel
The playground is never published. Each child package is excluded from the root package archive and published separately.
To resume an interrupted manual release, select a remaining package:
just publish desktop --force
just publish clickwheel --force
tomeui, tomeui_desktop, and tomeui_clickwheel are also accepted as package
selectors. Existing pub.flutter-io.cn versions must be bumped before publishing again.
Omit --force for pub's interactive confirmation. Pub uses your configured
Google account and prompts for authentication if needed.
To choose a Flutter SDK explicitly:
just --set flutter /path/to/flutter/bin/flutter publish all --dry-run
License #
TomeUI, including its desktop and clickwheel packages, is licensed under the MIT License, copyright © 2026 Chris Hendrickson.
Bundled fonts retain their own licenses: Recursive (OFL 1.1) and Symbols Nerd Font Mono and its component icon sets.
Web playground #
Explore the TomeUI Playground. CI builds it for pull requests and main. After main passes the workspace checks and web build, it deploys to GitHub Pages independently of package releases.
Build locally with just playground-web (output: playground/build/web).
The default base path is /tomeui/; use just playground-web / when serving
from a domain root.
GitHub Pages must use GitHub Actions as its publishing source in repository
Settings → Pages. The github-pages environment should allow deployments
from the main branch. The workflow uses the repository's built-in token;
no deployment secret is needed.