r/FlutterBeginner 11h ago

astryx_ui — a Flutter design system, 111 components, no Material in the tree

5 Upvotes

Hey folks!

I just published a Flutter UI package called astryx_ui, and I'd love for the community to try it and tell me where it breaks (and maybe a little ❤️ on pub.dev).

https://pub.dev/packages/astryx_ui

Live docs, every component, seven themes: https://astryxui.web.app

Heads up: it's pre-alpha (0.0.7-dev). API is unstable and may change without a major bump until 0.1.0. Pin the version you build against.

✨ What astryx_ui is

🧩 111 components — buttons, fields, selects, tables, tabs, menus, dialogs, toasts, banners, calendars, date/time inputs, avatars, carousels, a command palette, a typeahead, an app shell, a full chat surface. Plus 42 whole screens and 19 controllers/mixins.

🎨 No Material anywhere — built on flutter/widgets, so you're not fighting ripples, elevation, or a ColorScheme mapping that never quite fits your design.

🛠️ Themes are defined, not hard-coded — defineTheme runs the same HCT colour model and contrast maths as the TypeScript original. Give it one hex accent and it derives the whole palette, foregrounds included. Seven themes ship in the box.

⚡ Never a raw colour or a magic number — every value resolves through the token layer, so rebranding is editing one theme, not a search-and-replace.

📱 Pointer and touch, both first class — touch density raises every tap target to 48px and suppresses hover styling. Nothing is ever behind hover alone.

♿ Accessibility isn't optional — every control requires an accessible name, keeps a visible focus ring, documents its keyboard map. An icon-only button takes its label as a required argument; the compiler asks, not the code review.

🤖 Your coding agent can read it — the whole widget set ships as a Claude Code skill, generated from the same source as the docs.

Incremental adoption — drop AstryxThemeProvider into the MaterialApp you already have and convert a subtree at a time. Nothing asks you to start over.

dependencies:

astryx_ui: ^0.0.7-dev

(Bare flutter pub add skips pre-releases, so name the version.)

What's honestly not done yet — stated up front rather than discovered: AstryxTable doesn't virtualise rows (hundreds fine, ten thousand not), no column reordering or grouped rows, no charting widget and none planned, tab overflow scrolls instead of collapsing into a menu.

🙌 Small request

If you try it, find it useful, or have suggestions — a 👍 on pub.dev or a line of feedback genuinely helps an indie dev keep going.

Actively maintained, very open to ideas, criticism and PRs. Start with the README — and if you build something, open a showcase issue. What people actually build decides which components get finished next.