orient_ui 0.7.0
orient_ui: ^0.7.0 copied to clipboard
Theming and components for Flutter. Works with Material, Cupertino, or on its own.
Orient UI
Theming and widgets for Flutter. Works with Material, Cupertino, or on its own.
Live Demo β’ See in Production β’ Pub.dev
π§© What is Orient UI? #
Orient UI gives you two things:
Styleis a simple, Material-independent theming system. Colors, typography, radii, durations, breakpoints. All in one file you own. NoThemeExtension, no boilerplate.- Widgets are neutral widgets (buttons, toggles, popovers, navigation, and more) that work on mobile, web, and desktop.
Use both, or just the theming. Your call.
πͺ© Why Orient UI? #
- Nothing to replace. Keep your
MaterialApp, yourScaffold, your existing widgets. Orient UI sits alongside them. - You own the code. Every file lives in your project. Change anything you want. No package lock-in.
- Cross-platform. Responsive layouts, hover states, keyboard navigation. Mobile, web, and desktop.
- Zero dependencies. Nothing added to your pubspec.
π Getting Started #
1. Install the CLI #
dart pub global activate orient_ui
2. Add theming #
orient_ui init
This creates lib/style.dart with light/dark colors, typography, radii, durations, and breakpoints. You own this file. Move it, rename it, extend it.
Use it anywhere:
final ColorTokens colors = context.style.colors;
final TextStyle heading = context.typography.heading;
That's it. If all you need is theming, you're done.
3. Add widgets (optional) #
orient_ui add button
This creates lib/button.dart. Update the style import to match where you placed style.dart:
import 'package:your_app/style.dart'; // adjust to your path
Button(
label: 'Click me',
onPressed: () {},
)
Dark Mode #
Widgets follow system brightness by default. To control it manually:
Style(
brightness: Brightness.dark,
child: MaterialApp(
home: MyHomePage(),
),
)
𧬠Customizing #
Open style.dart and make it yours. Add color tokens, change typography scales, adjust breakpoints.
final ColorTokens _colorsLight = ColorTokens(
background: Color(0xFFFFFFFF),
foreground: Color(0xFF2A2A2A),
accent: Color(0xFF18181B),
// ... change these to match your brand
);
πΊοΈ Roadmap #
Available Now #
- β Button (6 variants)
- β Spinner
- β NavBar (Navigation Rail + Bottom Bar)
- β Toast
- β EmptyState
- β CopyButton
- β Popup
- β AlertPopup
- β ConfirmationPopup
- β SearchField
- β CardBox
- β Tile
- β Toggle
- β ToggleTile
- β SingleChoice
- β SingleChoiceTile
- β MultiChoice
- β MultiChoiceTile
- β Typography
- β Picker
- β InfoBanner
- β PopoverMenu
- β TappableIcon
- β SegmentBar
- β Tag
- β Tabs
Coming Soon #
- β TextField
- β VerticalTile
- β AdaptivePageTransition
- β DashedBorder
Try them at the interactive demo.
π§ͺ Quality #
All widgets are tested.
License #
Built by UserOrient