pixel_ui 0.3.0
pixel_ui: ^0.3.0 copied to clipboard
Pixel-art design system for Flutter. Parametric shapes, interactive buttons, and bundled pixel font.
Changelog #
0.3.0 — 2026-04-24 #
Added #
-
PixelTheme/PixelBoxTheme/PixelButtonTheme—ThemeExtension-based pixel defaults. Wire once withpixelUiTheme(...)onMaterialApp.themeand any descendantPixelBox/PixelButtoninherits its style (#8). -
pixelUiTheme({base, pixelTheme, boxTheme, buttonTheme})factory returns aThemeDatawith pixel extensions registered; explicitboxTheme/buttonThemeoverride slots onpixelTheme. Preserves unrelated extensions onbase. -
context.pixelTheme<T>()shorthand forTheme.of(context).extension<T>(). -
PixelShapePainterBuildertypedef +PixelBox.painteroptional prop +PixelBoxTheme.painterslot now active: inject a customCustomPainterwithout forkingPixelBox(#9). Precedence:painterprop > theme.painter > defaultPixelShapePainter. -
PixelButton.disabledStyleoptional parameter — explicitPixelShapeStyleshown whenonPressedisnull. Unspecified keeps the existing behavior (normalStylerendered at 50% opacity). -
PixelShadowStyle { solid, stipple }enum +PixelShadow.stylefield (default.solid, backward compatible).stipplerenders the drop shadow as a 1-pixel checker pattern — retro "dithered" aesthetic alongside the existing solid look (#11). Tuner gains astyledropdown and emitsstyle: PixelShadowStyle.stippleonly when non-default. -
PixelBox.label+PixelBox.labelLeftInset— overlay a widget on the top border with a painter-level carve-out ([ TITLE ]━━━━━).PixelBoxCutoutvalue object +PixelShapePainter.labelCutoutlet the painter skip the underlying border/fill cells. Builder signature ofPixelShapePainterBuildergains an optional namedlabelCutoutparam; existing custom painters that don't declare it need to be updated (#10). Tuner adds a label editor with live text input.
Changed #
PixelBox.styleandPixelButton.normalStyleare now optional. When omitted they resolve from the ancestor theme; asserts if neither is available. Existing call sites that pass these props explicitly are unaffected.
0.2.1 — 2026-04-23 #
Added #
- Bundled
MulmaruMonofont family (SIL OFL 1.1) for code, terminal-style UI, and fixed-width layouts. PixelText.mulmaruMono(...)factory andPixelText.mulmaruMonoFontFamilyconstant. Signature identical toPixelText.mulmaru(...).
Notes #
- Font source: mushsooni/mulmaru v1.0 release. SHA256
34a1641eb4e94449b26192321e8e0c2bd4f07ef3674fac8abed33d8953a7f70d.
0.2.0 — 2026-04-23 #
Added #
- Official platform support: Web, macOS, Linux, Windows (in addition to existing iOS, Android).
.github/workflows/build.ymlCI workflow that builds the example app on 6 OS/target combinations.- README "Platforms" section documenting verification level for each platform.
Changed #
- example app showcase is now constrained to 480px max width on wide viewports (desktop, web), keeping the mobile-style layout centered. Mobile rendering is unaffected.
0.1.2 — 2026-04-22 #
Added #
- README hero image and gallery section embedding the 5 pub.dev screenshots.
0.1.1 — 2026-04-22 #
Added #
- pub.dev screenshots (5) generated via golden tests from
test/screenshots/scenes/. tool/update_screenshots.shregenerates goldens and syncs them todoc/screenshots/.
0.1.0 — 2026-04-22 #
Initial public release.
Features #
PixelCorners: asymmetric per-corner stair pattern with.sharp/.xs/.sm/.md/.lg/.xlstatic presets.PixelShadow: pixel drop shadow with.sm/.md/.lgfactory constructors (offsets 1/2/4).PixelTexture: deterministic LCG noise overlay.PixelShapeStyle: composable shape style with sentinel-basedcopyWith(nullclears, omit preserves).PixelShapePainter: low-levelCustomPainterfor pixel rendering.PixelBox: container widget with automatic size resolution by logical ratio.PixelButton: interactive pixel button with normal/pressed styles, press-down animation, andSemanticsintegration.PixelText: static namespace exposingmulmaruFontFamily/mulmaruPackageconstants and amulmaru()TextStyle factory.- Bundled Mulmaru Proportional pixel font (SIL OFL 1.1).
Bundled font integrity #
assets/fonts/Mulmaru.ttfSHA-256:02545e10374c0797be32df8670e18663c6ab73eea6966bb98f4ffd0283138810- Size: 1,606,948 bytes
- Source: https://github.com/mushsooni/mulmaru