calsee_themes 2.1.0
calsee_themes: ^2.1.0 copied to clipboard
Endless generated themes for Flutter apps: swipe for a new look in twelve families, with themed keys, backdrops and displays. From Calsee.
2.1.0 #
Every family now follows a ThemeIntent's colours.
- Liquid Glass, Neumorphism, Retro, Neo-brutalism, Y2K Aero, Paper & ink, Cyberpunk, Vaporwave and Bauhaus follow colours, brightness and chroma, and keep their own look: "red" Cyberpunk is red neon.
- The first colour goes on the operators (Claymorphism: on its body),
and the rest of the palette turns with it. The second colour sets
=, the third the function keys. - Claymorphism follows the colour fully, body included.
- A key a colour is named for always shows it, even where the family left it white, grey or black, and muted colours stay visible.
- A colour's brightness and chroma lean (navy leans dark) now comes from
the first colour only.
effectiveBrightnessandeffectiveChromafollow suit;v4Brightnessandv4Chromakeep the 2.0.0 reading. steerableFamilieslists every family;familySteerableAttells which followed colours at an older engine version.- Engine version 5. Unsteered themes are unchanged, and themes steered with 2.0.0 (engine v4) reproduce exactly.
2.0.0 #
Steering: generate themes that match a description.
Breaking #
-
ThemeVarianthas a new value,steered. Add it to exhaustive switches. A steered spec rebuilds like a generated one:case ThemeVariant.generated || ThemeVariant.steered: return FeedEntry.ofSpec(spec).resolve(accessible: accessible);
New #
ThemeIntent: colours (26 named), light or dark, chroma, harmony and a name. Pass it toCalseeThemeController(intent:),CalseeScope(intent:),ThemeFeed.steerorThemeGenerator.generate(intent:). The feed shows endless variations, starting at the intent's centre, and every guardrail still runs.- Material 3 Expressive, NeoPOP and Claymorphism honour steering
(
steerableFamilies); other families take only the name.intent.reportFor(family)lists what a family can't follow. - For on-device models:
ThemeIntent.parse(lenient, never throws),ThemeIntent.vocabulary,ThemeIntent.jsonSchema()andThemeIntent.promptFragment(). - Steered themes share as 25-symbol codes. Use
entry.shareCodeandFeedEntry.fromSharePayloadinstead of encoding codes by hand;shareCodeStatustells an invalid code from one made by a newer app. - Includes the 1.1.1 Vaporwave font fix.
Compatibility #
- New themes use engine version 4. Unsteered themes look the same as in 1.x, and saved or shared 1.x themes reproduce exactly.
- Apps on 1.x can't open share codes or saved feeds made by 2.0.0: they report an unsupported engine version or an invalid code, never a different theme.
decodeShareCodealso accepts 25-symbol codes (29 characters with hyphens).
1.1.1 #
- Vaporwave's π and its maths operator glyphs (+ − × ÷ = ±) now draw in the bundled Roboto Flex as intended. Its fallback font list named Roboto Flex without the package prefix, so every app drew them in the platform font. A test now checks that every font name the package uses carries the prefix.
1.1.0 #
- Form controls drawn by the theme:
CalseeCheckbox,CalseeRadio,CalseeSwitch,CalseeSegmented,CalseeSlider,CalseeDropdown,CalseeExpandableandCalseeTextField. Selected states wear the accent face, unselected ones the plain face, and their marks use the face's label colour (≥ 4.5:1). They have screen-reader semantics and follow Reduce Motion and Bold Text. CalseeScopeprepares the next themes between changes (key art, shape morphs and transitions for the key sizes on screen), so the frame that shows a new theme no longer builds them. On the web, a theme change on a busy screen went from up to 119 ms of build work to under 35 ms.CalseeKey.iconwith alabelno longer overflows its key on faces that leave less room for content (some Material 3 Expressive shapes); the icon and label shrink to fit, as text labels do.- The example app is now a kids' maths game, and the README images, pub.dev screenshots, guide and live gallery show it.
1.0.0 #
First public release.
- An endless, seeded feed of generated themes in twelve families: Claymorphism, Liquid Glass, NeoPOP, Retro, Cyberpunk, Paper & Ink, Neumorphism, Y2K Aero, Vaporwave, Neo-brutalism, Material 3 Expressive and Bauhaus. Themes are bit-exact: a seed shows the same theme on every device.
- Drop-in widgets:
CalseeScope,CalseeKey,CalseeSurface,CalseeBackdrop,CalseeDisplayPanel,CalseeReadoutandCalseeSwipeArea. - Contrast guardrails on every theme, an accessible mode with stricter contrast, and support for High Contrast, Reduce Motion and Bold Text.
- Bundled OFL fonts: apps declare none.
- Supports Flutter 3.35 and newer.
