orient_ui 0.2.0 copy "orient_ui: ^0.2.0" to clipboard
orient_ui: ^0.2.0 copied to clipboard

Flutter Widgets without Material or Cupertino

Orient UI

Design system for Flutter without Material or Cupertino! 😍

Live DemoSee in ProductionGithubPub.dev

Orient UI Components

Features #

  • 🌍 Cross-platform. Works on iOS, Android, Web, macOS, Windows, and Linux.
  • 🎨 No Material or Cupertino. Neutral design system with total freedom to customize.
  • 📦 You own the code. Generated files are yours to modify however you want.
  • 🔓 No lock-in. No dependency on a package, just plain Dart files in your project.

💡 Why Orient UI? #

UserOrient is a feedback SDK for Flutter apps.

Its web dashboard and mobile app is built with this design system.

Now it's yours to build web and desktop apps with Flutter easier (and also mobile apps).

Want to say thanks? Use UserOrient SDK in your Flutter apps, it's cool!

Warning

Early development. API may change.

Note

Building in public on X/Twitter. Your feedback and contributions are welcomed!

🎬 Getting Started #

1. Install the CLI #

dart pub global activate orient_ui

2. Initialize #

Navigate to your Flutter project and run:

orient_ui init

This creates lib/styling.dart in your project. You own this file: move it wherever you want (e.g., lib/core/styling.dart).

3. Wrap Your App #

Wrap your MaterialApp with the Styling widget:

import 'package:your_app/styling.dart'; // adjust path if you moved it

void main() {
  runApp(
    Styling(
      brightness: Brightness.light, // or Brightness.dark
      child: MaterialApp(
        home: MyHomePage(),
      ),
    ),
  );
}

4. Add Components #

orient_ui add button

This creates lib/button.dart. Move it wherever you want (e.g., lib/widgets/button.dart).

Important: Update the import inside the component file to match where you placed styling.dart:

// In button.dart, update this line:
import 'package:your_app/styling.dart'; // adjust to your path

5. Use Components #

import 'package:your_app/button.dart'; // your path

Button(
  label: 'Click me',
  onPressed: () {},
)

📦 Available Commands #

orient_ui init          # Initialize styling system
orient_ui add           # List available components
orient_ui add <widget>  # Add a specific widget

🎨 Components #

Available Now #

  • ✅ Button (6 variants)
  • ✅ Spinner
  • ✅ NavBar (Navigation Rail + Bottom Bar)
  • ✅ Toast
  • ✅ EmptyState
  • ✅ CopyButton
  • ✅ Popup
  • ✅ AlertPopup
  • ✅ ConfirmationPopup

Coming Soon #

  • ❌ TextField
  • ❌ ListTile
  • ❌ TabBar
  • ❌ SwitchListTile
  • ❌ RadioListTile
  • ❌ Menu

✅ Quality #

Tests

All widgets are tested for rendering, interaction, accessibility, and theming.

✨ Customizing Colors #

The styling.dart file contains AppColors with light and dark theme defaults. Edit them to match your brand:

static const light = AppColors(
  primary: Color(0xFF18181B),       // your primary color
  primaryForeground: Color(0xFFFAFAFA),
  // ... customize all colors
);

📄 License #

MIT


Built by the team at UserOrient

23
likes
150
points
766
downloads

Publisher

verified publisheruserorient.com

Weekly Downloads

Flutter Widgets without Material or Cupertino

Homepage
Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

flutter, http

More

Packages that depend on orient_ui