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.
0.3.5 #
- No library changes; the shared version moves with
tomeui_clickwheel, whose wheel list can now carry a header that scrolls away with its rows.
Changelog #
0.3.4 #
- An indeterminate
Progress.barshuttles its segment between the ends of the track, easing into each turn, instead of parking at one end and jumping back to the other.
0.3.3 #
- The published pubspec no longer names the repository workspace. Pub uploads the file as it is, and a hosted package that declares a workspace broke
dart testanddart runin dependents' workspace members whenever pub rebuilt their package graph.
0.3.2 #
- No library changes; the shared version moves with
tomeui_clickwheel.
0.3.1 #
- No library changes; the shared version moves with
tomeui_clickwheel.
0.3.0 #
- Scroll tall dialogs as one card, including their title and actions, while preserving scrim dismissal.
0.2.0 #
- Adopt a shared version and automated releases for all TomeUI libraries.
0.1.0 #
-
First pub.dev release, with MIT licensing and complete bundled font notices.
-
Keep the skeleton shimmer's base opaque when subtle surfaces are translucent.
-
Preserve the text selection menu when a right-click first focuses a field.
-
tomeui_clickwheeljoins the repository (inclickwheel/besidedesktop/): the click-wheel grammar for devices that are a wheel, five buttons, and a small screen.ClickWheelInputturns the hardware's keys into intents and parses the power button's taps and holds;WheelListis the wheel-native list, one selection model in a fixed shape for menus and a lazy shape for libraries. Its changelog carries the details. -
Tome no longer depends on
window_manager. The window behind [TitleBar] now speaks through a seam —WindowShell, with aNoWindowdefault whose every action is a quiet no-op — and the plugin-backed shell moved to a new package,tomeui_desktop(indesktop/beside this one). Embedded targets (flutter-pi and friends) take tomeui alone and never ship a desktop plugin.What a desktop app must change: add
tomeui_desktopto its dependencies and callinstallWindowShell()(frompackage:tomeui_desktop) inmain, beforeTitleBar.claimWindow(). That's the whole migration —claimWindow(), the drag-to-move, the double-click maximise, and the window buttons then behave exactly as before. An app that skips the install keeps working, but as if off desktop: the bar is a bar, the window buttons act on nothing, andclaimWindow()no longer hides the native chrome. Custom shells (a test double, another windowing plugin) go the same way: extendWindowShelland assignWindowShell.instance. -
NavListstands its rows a small gap apart (NavListStyle.rowGap, one space step): the rounded selection reads as its own shape rather than a band cut out of a solid column. A group's fold carries the gap inside itself, so a shut one still takes up nothing at all. -
A closed
Selectshows the chosen option'sleadingbeside its label — the face at rest matches the face in the list, and the hidden width copies measure it too. -
EmptyStatehugs its words: a card the caller centers in the empty room, not a wash over all of it — the inner Center that swallowed every slot is gone. -
NavListkeys a group's fold by its destinations' values instead of theNavGroupinstance: parents rebuild sidebars constantly with fresh entry objects, and every fold used to snap back open when they did. -
Sliderlearns anaxis:Axis.verticalstands the line up — the thumb travels bottom-to-top, more is up, taps and drags ride the vertical axis, and the ticks turn with it. -
Bundle two fonts (licenses alongside): Recursive, one variable file (MONO, CASL, wght 300-1000, slnt, CRSV) offered to the type scale as
Typography.recursive()—codebecomes Recursive Mono through the MONO axis rather than a second family; and Symbols Nerd Font Mono, bound glyph-by-glyph asNerdFontIcons(10,617 constants, generated bytool/generate_nerd_font_icons.pyfrom the font's own glyph names). -
Surfacepaints its hairline ring in the foreground instead of laying it out: aContainerfolds a decoration border into its padding, so a row that gained or lost its ring on hover grew by a hairline and shifted every sibling below it. Hover dressing is visual-only now. -
Selectfills a stated width: given a tight width, the trigger spreads — answer at the start, chevron at the far end — instead of both drifting toward the center. Left loose it hugs its widest option, as before. -
Rename the
Swatch.neutralcolor set toSwatch.ash: Tailwind's name for the gray collided with the palette's semanticneutralrole, andPalette(neutral: Swatch.neutral)read like a tautology. -
Buttonholds its center in a looseFlexible: squeezed for width, the label yields (and can ellipsize) instead of overflowing. FixesSelectoverflowing its own trigger in a narrow field. -
TitleBar.claimWindow(): one call beforerunApphides the native title bar (holding the window until the first frame), so an app needs no directwindow_managerdependency to let aTitleBarbe the window's chrome. -
Re-export
LucideIconsfromtomeui.dart: apps can reach glyphs beyond the semantic [Icons] tokens through the single tomeui import, without a direct dependency onlucide_icons_flutter. -
Initial release of the complete toolkit, built on
flutter/widgets.dart.