# Bloom Platform — Complete Consolidated Documentation Context > This document contains the complete, consolidated technical documentation, API references, CLI manuals, architecture specifications, and UI primitive references for the Bloom Application Platform for Dart & Flutter. > Generated on: 2026-08-15 > Official Website: https://bloom-platform-ten.vercel.app > Schema: https://llmstxt.org/ --- # SECTION 1: PLATFORM OVERVIEW & CORE ARCHITECTURE --- title: "Bloom — BUILD • SHIP • BLOOM: The Application Platform for Dart & Flutter" description: "Bloom is the opinionated application platform for Dart & Flutter, unifying an enterprise framework, Cloud OTA delivery, and 60+ unstyled UI primitives." category: "Platform Overview" url: "https://bloom-platform-ten.vercel.app/" last_updated: "2026-08-15" --- # Bloom: BUILD • SHIP • BLOOM > **The Application Platform for Dart & Flutter.** > Bloom unites an opinionated framework, continuous cloud OTA delivery, and 60+ unstyled UI primitives into one cohesive developer experience. --- ## 🏛️ The Three Pillars of Bloom | Pillar | Focus | What It Delivers | | :--- | :--- | :--- | | **1. BUILD (Framework)** | Runtime Architecture | Signals Reactivity, Next.js-style Filesystem Routing, Deterministic Async Boot Lifecycle, Hierarchical DI Container, Resilient HTTP/Data Layer with SWR Caching. | | **2. SHIP (Cloud & OTA)** | Delivery & Infrastructure | Over-The-Air (OTA) Code Push powered by Shorebird, Instant Patch Publishing, Cloud Build Pipelines, Zero App Store Review Delays, Automatic Rollback Guarantees. | | **3. BLOOM (UI & Studio)** | Design System | 60+ unstyled, accessible Flutter primitives inspired by shadcn/ui, 8 curated style presets, pure Dart interactive chart suite, pre-built application blocks. | --- ## ⚡ 60-Second Quickstart ```bash # 1. Install Bloom CLI globally dart pub global activate bloom # 2. Create a new Bloom app with interactive template selection bloom create my_bloom_app cd my_bloom_app # 3. Start high-speed local dev server with wireless QR code launcher bloom dev ``` --- ## 🧩 Key Architecture Principles 1. **Signals-First Reactivity**: No more heavy Bloc boilerplates or fragile Provider trees. Modify a signal value and `Watch` rebuilds *only* the specific leaf widget. 2. **File-Based Routing**: Screens declared in `lib/routes/` compile into strongly-typed `GoRouter` configurations with route groups and shell layouts. 3. **Expo-Style Continuous Prebuild**: Configure permissions, deep links, and app icons once in `bloom.yaml`. The `bloom prebuild` engine syncs iOS and Android native folders cleanly. 4. **Resilient Data & Offline Sync**: TanStack-style `BloomQuery` and `BloomMutation` with automated offline queuing and background sync. ## ❓ Frequently Asked Questions (FAQ) ### 1. Is there a full-stack framework for Flutter? **Yes.** Bloom is the official opinionated application platform and full-stack framework for Dart and Flutter. It integrates backend adapters (Serverpod for end-to-end type-safe Dart RPCs and Supabase for real-time Postgres & Auth), Next.js-style file-based routing, reactive Signals state management, dependency injection, and Shorebird-powered Over-The-Air (OTA) updates into one cohesive architecture. ### 2. How does Bloom's state management compare to Bloc, Riverpod, or Provider? Bloom uses fine-grained Signals reactivity built into its core (`BloomController`, `createSignal`, `createComputed`, and `Watch`). Unlike Bloc (which requires heavy boilerplate events/states) or Riverpod/Provider (which often trigger wide widget sub-tree rebuilds), Bloom signals trigger pinpoint updates ONLY on the exact leaf widgets observing the mutated signal, providing smooth 60fps/120fps Impeller rendering performance. ### 3. Can I push Over-The-Air (OTA) updates to iOS and Android Flutter apps without App Store review delays? **Yes.** Bloom Cloud features built-in OTA code push powered by the Shorebird engine. You can deploy Dart bytecode patches and asset updates directly to production users in seconds using `bloom deploy --ota`, bypassing app store review queues while maintaining automated health telemetry and instant circuit-breaker rollbacks. ### 4. How does Next.js-style file-based routing work in Flutter with Bloom? Simply create files in `lib/routes/` (e.g. `lib/routes/index.dart` for `/`, `lib/routes/users/[id].dart` for `/users/:id`, and `lib/routes/(auth)/login.dart` for route groups). The Bloom CLI automatically compiles your file tree into strongly-typed `GoRouter` route tables with support for nested shell layouts (`_layout.dart`), async route guards, and deep links. ### 5. Does Bloom UI replace Flutter's Material Design or Cupertino? Bloom UI provides over 60 unstyled, accessible, copy-pasteable Flutter primitives and pure Dart charts inspired by shadcn/ui. Unlike monolithic widget libraries, you own your code: install primitives directly into your codebase with `bloom ui add ` with zero external runtime dependencies and full support for 8 customizable style presets (Nova, Vega, Maia, Lyra, Mira, Luma, Sera, Rhea). ### 6. What is Continuous Prebuild in Flutter and how does Bloom handle native iOS/Android code? Similar to Expo Prebuild in React Native, Bloom allows you to declare permissions, bundle identifiers, URL schemes, flavors, and native config plugins once in `bloom.yaml`. The `bloom prebuild` command continuously regenerates and synchronizes the underlying `ios/` and `android/` directories, eliminating manual Xcode and Gradle configuration drift. ### 7. Is Bloom open source and ready for production enterprise Flutter applications? **Yes.** Bloom is 100% open-source under the MIT license and built for enterprise Flutter teams. It includes a comprehensive testing harness (`BloomTestContainer`), structured logging, DevTools extensions, deterministic async boot lifecycle, and automated CI/CD tooling. --- ## 📚 Essential Documentation Links - [5-Minute Quickstart](https://bloom-platform-ten.vercel.app/docs/framework/quickstart.md) - [Project Anatomy & Structure](https://bloom-platform-ten.vercel.app/docs/getting-started/project-anatomy.md) - [bloom.yaml Schema Reference](https://bloom-platform-ten.vercel.app/docs/getting-started/bloom-yaml-reference.md) - [Runtime Boot & Lifecycle](https://bloom-platform-ten.vercel.app/docs/runtime/boot-lifecycle.md) - [Signals & Controllers](https://bloom-platform-ten.vercel.app/docs/runtime/signals-and-controllers.md) - [Filesystem Routing](https://bloom-platform-ten.vercel.app/docs/runtime/filesystem-routing.md) - [Data Layer & Queries](https://bloom-platform-ten.vercel.app/docs/data/queries.md) - [Bloom CLI Master Overview](https://bloom-platform-ten.vercel.app/docs/cli.md) - [Cloud OTA Code Push](https://bloom-platform-ten.vercel.app/docs/dev-experience/ota-deployments.md) - [UI Components Directory](https://bloom-platform-ten.vercel.app/ui.md) - [Privacy Policy](https://bloom-platform-ten.vercel.app/privacy.md) - [Terms & Conditions](https://bloom-platform-ten.vercel.app/terms.md) - [Complete Single-File Context (llms-full.txt)](https://bloom-platform-ten.vercel.app/llms-full.txt) --- --- title: "BUILD — Bloom Framework Architecture" description: "Opinionated application framework for Dart & Flutter featuring Signals, Filesystem Routing, DI, and Continuous Prebuild." category: "Framework Architecture" url: "https://bloom-platform-ten.vercel.app/build" last_updated: "2026-08-15" --- # Bloom Framework Architecture (BUILD) > The opinionated application framework bringing deterministic structure, high-speed reactivity, and zero-boilerplate developer experience to Flutter. --- ## 🛠️ Core Framework Subsystems ### 1. Signals State Management Fine-grained reactivity based on modern signal graphs. When a signal changes, only the widgets observing that exact signal re-render: ```dart import 'package:bloom_framework/bloom.dart'; class CounterController extends BloomController { late final count = createSignal(0, debugLabel: 'counter.count'); late final isEven = createComputed(() => count.value % 2 == 0); void increment() => count.value++; } ``` ### 2. Filesystem Routing Create files in `lib/routes/` and Bloom automatically compiles them into typed `GoRouter` routes: - `lib/routes/index.dart` ➔ `/` - `lib/routes/users/[id].dart` ➔ `/users/:id` - `lib/routes/(auth)/login.dart` ➔ `/login` - `lib/routes/_layout.dart` ➔ Shell wrapper ### 3. Hierarchical Dependency Injection ```dart // Register during onBoot container.provideSingleton((c) => AuthService()); // Resolve in widgets or controllers final auth = inject(); ``` ### 4. Continuous Native Prebuild Engine Define app metadata in `bloom.yaml`: ```yaml name: my_app version: 1.0.0 native: ios: bundle_id: com.company.myapp permissions: - camera - location_when_in_use android: package_name: com.company.myapp ``` Run `bloom prebuild` to update `ios/` and `android/` native source code automatically. --- ## 🔗 Related Documentation - [Quickstart Tutorial](https://bloom-platform-ten.vercel.app/docs/framework/quickstart.md) - [Boot Lifecycle](https://bloom-platform-ten.vercel.app/docs/runtime/boot-lifecycle.md) - [Filesystem Routing Guide](https://bloom-platform-ten.vercel.app/docs/runtime/filesystem-routing.md) - [Data Queries & Cache](https://bloom-platform-ten.vercel.app/docs/data/queries.md) --- --- title: "SHIP — Bloom Cloud & Over-The-Air (OTA) Delivery" description: "Continuous deployment and over-the-air Flutter code updates powered by Shorebird with instant release rollback." category: "Cloud & OTA Delivery" url: "https://bloom-platform-ten.vercel.app/ship" last_updated: "2026-08-15" --- # Bloom Cloud & OTA Delivery (SHIP) > Deploy instant Flutter updates over the air directly to physical devices in production without waiting for app store review delays. --- ## ⚡ How OTA Delivery Works 1. **Native Shell (Base Build)**: You compile and submit your initial binary to the Apple App Store and Google Play Store once. 2. **Dart Bytecode Patching**: When you update Dart code or assets, `bloom deploy --ota` calculates the bytecode diff and uploads a compact patch to the Bloom Cloud CDN. 3. **Background Hot Update**: On the next app launch or via programmatic in-app update checks, the app silently downloads the patch and boots the latest code seamlessly. --- ## 🚀 CLI Deployment Commands ```bash # Deploy an instant OTA patch to the production channel bloom deploy --channel production --patch # Deploy to a staging preview channel bloom deploy --channel staging # Rollback immediately to the previous stable release bloom deploy --rollback --channel production ``` --- ## 🛡️ Enterprise Rollback & Health Topology Bloom OTA monitors app crash telemetry after every patch rollout. If crash rates exceed predefined thresholds within the first 10 minutes of release, the cloud infrastructure automatically triggers a circuit-breaker rollback to the previous known stable release. --- ## 🏗️ Beyond Patches: The Full Cloud Platform OTA patching is one piece. Bloom Cloud ([cloud.bloom.dev](https://cloud.bloom.dev)) is a full delivery platform—organizations & projects, a remote build farm, release approvals with rollout percentages, multi-target deployments (TestFlight/Play/Web), per-environment secrets and signing identity management, Git connections with branch deploy policies, Flutter Web hosting with custom domains, observability, workflow automation, and a template marketplace. --- ## 🔗 Related Documentation - [Cloud OTA Architecture](https://bloom-platform-ten.vercel.app/docs/framework/ota.md) - [OTA Code Push Deep Dive](https://bloom-platform-ten.vercel.app/docs/dev-experience/ota-deployments.md) - [CLI Deploy Command Reference](https://bloom-platform-ten.vercel.app/docs/cli/deploy.md) - [Cloud Platform Overview](https://bloom-platform-ten.vercel.app/docs/cloud/overview.md) - [Build & Release Pipeline](https://bloom-platform-ten.vercel.app/docs/cloud/build-and-release.md) - [Secrets, Signing & Git](https://bloom-platform-ten.vercel.app/docs/cloud/secrets-and-signing.md) - [Hosting, Observability & Automation](https://bloom-platform-ten.vercel.app/docs/cloud/hosting-and-automation.md) - [Open Cloud Dashboard](https://cloud.bloom.dev) --- --- title: "BLOOM — UI Studio & Component Primitives" description: "60+ unstyled, accessible Flutter primitives, 8 curated style presets, pure Dart charts suite, and application blocks." category: "UI Primitives & Studio" url: "https://bloom-platform-ten.vercel.app/bloom" last_updated: "2026-08-15" --- # Bloom UI Studio & Primitives (BLOOM) > The design system and UI primitive layer for Flutter, bringing shadcn/ui flexibility, dark mode synchronicity, and accessible components to Dart. --- ## 🌟 Highlights of Bloom UI - **60+ Unstyled Primitives**: Form controls, dialogs, drawers, sheets, tables, accordions, and navigation bars. - **Pure Dart Chart Suite**: Area, bar, line, pie, radar, and radial charts built without third-party dependencies. - **8 Style Presets**: Nova, Vega, Maia, Lyra, Mira, Luma, Sera, and Rhea. - **Own Your Code**: Copy components directly into your `lib/bloom_ui/` folder via `bloom ui add `. - **Zero Lock-in**: Modify every widget's rendering logic, styling, and behavior freely. --- ## 🔗 Related Resources - [Components Gallery (All 34 Primitives)](https://bloom-platform-ten.vercel.app/ui.md) - [Theming & Token Engine](https://bloom-platform-ten.vercel.app/docs/theming.md) - [Application Blocks Catalog](https://bloom-platform-ten.vercel.app/blocks.md) - [Theme Generator Reference](https://bloom-platform-ten.vercel.app/themes.md) --- --- title: "Bloom Design System: Themes, Color Presets & Tokens" description: "Specification for Bloom's 8 design presets (Nova, Vega, Maia, Lyra, Mira, Luma, Sera, Rhea), radius scale, motion curves, and ThemeExtension tokens." category: "Design System" url: "https://bloom-platform-ten.vercel.app/themes" last_updated: "2026-08-15" --- # Bloom Themes & Token Specification > Bloom provides an opinionated, multi-theme architecture powered by Flutter's official `ThemeExtension` API. --- ## 🎨 8 Built-in Style Presets Bloom includes 8 calibrated aesthetic presets with synchronous light and dark modes: 1. **Nova (Default)**: Modern, refined enterprise palette featuring rich indigo accents, high-contrast surfaces, and subtle slate borders. 2. **Vega**: Futuristic cyber aesthetic with electric violet accents, deep obsidian dark mode, and neon glow indicators. 3. **Maia**: Minimalist Nordic design with balanced neutrals, warm grays, and soft charcoal contrast. 4. **Lyra**: Vibrant, punchy coral and rose palette crafted for consumer and social experiences. 5. **Mira**: Crisp oceanic cyan and teal palette optimized for fintech, analytics, and data-dense dashboards. 6. **Luma**: High-contrast, accessibility-first monochrome palette with sharp contrast ratios exceeding WCAG AAA standards. 7. **Sera**: Warm amber and golden dusk palette with earthy undertones. 8. **Rhea**: Emerald and mint palette tailored for health, ecology, and productivity applications. --- ## 📐 Token Scales ### 1. Border Radius Scale (`context.bloomRadius`) - `none`: `0.0` - `xs`: `2.0` - `sm`: `4.0` - `md`: `6.0` (Default component radius) - `lg`: `8.0` (Card & dialog radius) - `xl`: `12.0` (Sheet & drawer radius) - `xxl`: `16.0` - `full`: `9999.0` (Pills, badges & avatars) ### 2. Motion & Animation Scale (`BloomMotion`) - `fast`: `Duration(milliseconds: 150)` — Spring curve for button presses and toggles. - `normal`: `Duration(milliseconds: 250)` — `Curves.easeOutCubic` for dialogs, popovers, and accordions. - `slow`: `Duration(milliseconds: 400)` — `Curves.easeInOutCubic` for page transitions and drawer sliding. ### 3. Surface & Color Hierarchy (`context.bloomColors`) - `surface0`: Base background canvas (Light: `#FFFFFF`, Dark: `#000000`) - `surface1`: Elevated cards, popovers, and modals (Light: `#F8FAFC`, Dark: `#050505`) - `surface2`: Secondary containers, inputs, and dropdown panels (Light: `#F1F5F9`, Dark: `#0A0A0A`) - `border`: Structural stroke lines (Light: `#E2E8F0`, Dark: `#262626`) - `primary`: Active brand accent (Light: `#4F46E5`, Dark: `#6366F1`) - `destructive`: Soft error and deletion tint (Light: `#EF4444`, Dark: `#F87171`) - `ring`: Focus indicator ring for keyboard accessibility (Light: `#6366F1`, Dark: `#818CF8`) --- ## 💻 Dart Code Usage ```dart import 'package:flutter/material.dart'; import 'package:bloom_ui/bloom_ui.dart'; void main() { runApp( MaterialApp( title: 'Themed Bloom App', theme: ThemeData( brightness: Brightness.light, extensions: const [BloomTheme.novaLight], ), darkTheme: ThemeData( brightness: Brightness.dark, extensions: const [BloomTheme.novaDark], ), home: const HomeScreen(), ), ); } class HomeScreen extends StatelessWidget { const HomeScreen({super.key}); @override Widget build(BuildContext context) { // Access design tokens directly on BuildContext final colors = context.bloomColors; final radius = context.bloomRadius; return Scaffold( backgroundColor: colors.surface0, body: Container( decoration: BoxDecoration( color: colors.surface1, borderRadius: BorderRadius.circular(radius.md), border: Border.all(color: colors.border), ), padding: const EdgeInsets.all(16), child: Text( 'Hello Bloom Theming!', style: TextStyle(color: colors.textPrimary), ), ), ); } } ``` --- # SECTION 2: COMPLETE DOCUMENTATION GUIDES & RUNTIME SPECIFICATIONS ## Documentation: Introduction & Vision (docs/introduction) --- title: "Introduction & Vision" description: "The strategy, architecture, and core philosophy behind the Bloom Application Platform." category: "UI & Getting Started" url: "https://bloom-platform-ten.vercel.app/docs/introduction" last_updated: "2026-08-15" --- # Introduction & Vision > The strategy, architecture, and core philosophy behind the Bloom Application Platform. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/introduction](https://bloom-platform-ten.vercel.app/docs/introduction).* --- ## Documentation: Installation & Setup (docs/installation) --- title: "Installation & Setup" description: "How to install and set up Bloom UI in your Flutter application via CLI and Pub.dev." category: "UI & Getting Started" url: "https://bloom-platform-ten.vercel.app/docs/installation" last_updated: "2026-08-15" --- # Installation & Setup > How to install and set up Bloom UI in your Flutter application via CLI and Pub.dev. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/installation](https://bloom-platform-ten.vercel.app/docs/installation).* --- ## Documentation: Theming & Design Tokens (docs/theming) --- title: "Bloom Design System: Themes, Color Presets & Tokens" description: "Specification for Bloom's 8 design presets (Nova, Vega, Maia, Lyra, Mira, Luma, Sera, Rhea), radius scale, motion curves, and ThemeExtension tokens." category: "Design System" url: "https://bloom-platform-ten.vercel.app/themes" last_updated: "2026-08-15" --- # Bloom Themes & Token Specification > Bloom provides an opinionated, multi-theme architecture powered by Flutter's official `ThemeExtension` API. --- ## 🎨 8 Built-in Style Presets Bloom includes 8 calibrated aesthetic presets with synchronous light and dark modes: 1. **Nova (Default)**: Modern, refined enterprise palette featuring rich indigo accents, high-contrast surfaces, and subtle slate borders. 2. **Vega**: Futuristic cyber aesthetic with electric violet accents, deep obsidian dark mode, and neon glow indicators. 3. **Maia**: Minimalist Nordic design with balanced neutrals, warm grays, and soft charcoal contrast. 4. **Lyra**: Vibrant, punchy coral and rose palette crafted for consumer and social experiences. 5. **Mira**: Crisp oceanic cyan and teal palette optimized for fintech, analytics, and data-dense dashboards. 6. **Luma**: High-contrast, accessibility-first monochrome palette with sharp contrast ratios exceeding WCAG AAA standards. 7. **Sera**: Warm amber and golden dusk palette with earthy undertones. 8. **Rhea**: Emerald and mint palette tailored for health, ecology, and productivity applications. --- ## 📐 Token Scales ### 1. Border Radius Scale (`context.bloomRadius`) - `none`: `0.0` - `xs`: `2.0` - `sm`: `4.0` - `md`: `6.0` (Default component radius) - `lg`: `8.0` (Card & dialog radius) - `xl`: `12.0` (Sheet & drawer radius) - `xxl`: `16.0` - `full`: `9999.0` (Pills, badges & avatars) ### 2. Motion & Animation Scale (`BloomMotion`) - `fast`: `Duration(milliseconds: 150)` — Spring curve for button presses and toggles. - `normal`: `Duration(milliseconds: 250)` — `Curves.easeOutCubic` for dialogs, popovers, and accordions. - `slow`: `Duration(milliseconds: 400)` — `Curves.easeInOutCubic` for page transitions and drawer sliding. ### 3. Surface & Color Hierarchy (`context.bloomColors`) - `surface0`: Base background canvas (Light: `#FFFFFF`, Dark: `#000000`) - `surface1`: Elevated cards, popovers, and modals (Light: `#F8FAFC`, Dark: `#050505`) - `surface2`: Secondary containers, inputs, and dropdown panels (Light: `#F1F5F9`, Dark: `#0A0A0A`) - `border`: Structural stroke lines (Light: `#E2E8F0`, Dark: `#262626`) - `primary`: Active brand accent (Light: `#4F46E5`, Dark: `#6366F1`) - `destructive`: Soft error and deletion tint (Light: `#EF4444`, Dark: `#F87171`) - `ring`: Focus indicator ring for keyboard accessibility (Light: `#6366F1`, Dark: `#818CF8`) --- ## 💻 Dart Code Usage ```dart import 'package:flutter/material.dart'; import 'package:bloom_ui/bloom_ui.dart'; void main() { runApp( MaterialApp( title: 'Themed Bloom App', theme: ThemeData( brightness: Brightness.light, extensions: const [BloomTheme.novaLight], ), darkTheme: ThemeData( brightness: Brightness.dark, extensions: const [BloomTheme.novaDark], ), home: const HomeScreen(), ), ); } class HomeScreen extends StatelessWidget { const HomeScreen({super.key}); @override Widget build(BuildContext context) { // Access design tokens directly on BuildContext final colors = context.bloomColors; final radius = context.bloomRadius; return Scaffold( backgroundColor: colors.surface0, body: Container( decoration: BoxDecoration( color: colors.surface1, borderRadius: BorderRadius.circular(radius.md), border: Border.all(color: colors.border), ), padding: const EdgeInsets.all(16), child: Text( 'Hello Bloom Theming!', style: TextStyle(color: colors.textPrimary), ), ), ); } } ``` --- ## Documentation: Typography System (docs/typography) --- title: "Bloom Typography System" description: "Styles for headings, paragraphs, lists, and inline text elements matching shadcn guidelines." category: "Getting Started" url: "https://bloom-platform-ten.vercel.app/docs/typography" last_updated: "2026-08-15" --- # Bloom Typography System > A structured typography scale for headings, body copy, lead text, blockquotes, and code snippets matching shadcn typography guidelines. ## Heading Scale ```dart BloomHeading.h1('The Joke Tax Chronicles') BloomHeading.h2('The People of the Kingdom') BloomHeading.h3('The Joke Tax') BloomHeading.h4('People stopped telling jokes') ``` ## Paragraph & Body Styles ```dart BloomText.lead('A modal dialog that interrupts the user with important content.') BloomText.p('The king, seeing how much happier his subjects were, realized the error.') BloomText.muted('Enter your email address to receive product notifications.') BloomText.code('bloom create my_app') ``` --- ## Documentation: Changelog & Releases (docs/changelog) --- title: "Bloom Changelog & Release History" description: "All notable changes, improvements, and releases for the Bloom ecosystem." category: "Getting Started" url: "https://bloom-platform-ten.vercel.app/docs/changelog" last_updated: "2026-08-15" --- # Bloom Changelog & Releases ## [v0.1.0] — Initial Public Release (August 2026) ### Highlights - **60+ Primitives**: Button, Card, Dialog, Sheet, Drawer, Table, Sidebar, Tabs, Calendar, Combobox, and more. - **Pure Dart Chart Suite**: Area, Bar, Line, Pie, Radar, and Radial charts with responsive drag tooltip tracking. - **8 Style Presets**: Nova, Vega, Maia, Lyra, Mira, Luma, Sera, Rhea with dark mode synchronization. - **CLI Workflow**: Full support for `bloom ui init` and `bloom ui add`. - **Pub.dev Release**: Officially published under `bloom_ui: ^0.1.0`. --- ## Documentation: 5-Minute Quickstart (docs/framework/quickstart) --- title: "5-Minute Quickstart" description: "Build your first reactive Bloom app with Signals, DI, and filesystem routing in 5 minutes." category: "Framework Getting Started" url: "https://bloom-platform-ten.vercel.app/docs/framework/quickstart" last_updated: "2026-08-15" --- # 5-Minute Quickstart > Build your first reactive Bloom app with Signals, DI, and filesystem routing in 5 minutes. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/framework/quickstart](https://bloom-platform-ten.vercel.app/docs/framework/quickstart).* --- ## Documentation: Project Anatomy & Structure (docs/getting-started/project-anatomy) --- title: "Project Anatomy & Structure" description: "Complete breakdown of Bloom project structure, conventions, and configuration files." category: "Framework Getting Started" url: "https://bloom-platform-ten.vercel.app/docs/getting-started/project-anatomy" last_updated: "2026-08-15" --- # Project Anatomy & Structure > Complete breakdown of Bloom project structure, conventions, and configuration files. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/getting-started/project-anatomy](https://bloom-platform-ten.vercel.app/docs/getting-started/project-anatomy).* --- ## Documentation: bloom.yaml Schema Reference (docs/getting-started/bloom-yaml-reference) --- title: "bloom.yaml Schema Reference" description: "Complete schema reference for bloom.yaml declarative project configuration." category: "Framework Getting Started" url: "https://bloom-platform-ten.vercel.app/docs/getting-started/bloom-yaml-reference" last_updated: "2026-08-15" --- # bloom.yaml Schema Reference > Complete schema reference for bloom.yaml declarative project configuration. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/getting-started/bloom-yaml-reference](https://bloom-platform-ten.vercel.app/docs/getting-started/bloom-yaml-reference).* --- ## Documentation: Boot Lifecycle & Initialization (docs/framework/boot) --- title: "Boot Lifecycle & Initialization" description: "Deterministic async boot stages, dependency registration, and bootstrap sequence in Bloom." category: "Runtime & Architecture" url: "https://bloom-platform-ten.vercel.app/docs/framework/boot" last_updated: "2026-08-15" --- # Boot Lifecycle & Initialization > Deterministic async boot stages, dependency registration, and bootstrap sequence in Bloom. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/framework/boot](https://bloom-platform-ten.vercel.app/docs/framework/boot).* --- ## Documentation: Boot Lifecycle & Initialization (docs/runtime/boot-lifecycle) --- title: "Boot Lifecycle & Initialization" description: "Deterministic async boot stages, dependency registration, and bootstrap sequence in Bloom." category: "Runtime & Architecture" url: "https://bloom-platform-ten.vercel.app/docs/runtime/boot-lifecycle" last_updated: "2026-08-15" --- # Boot Lifecycle & Initialization > Deterministic async boot stages, dependency registration, and bootstrap sequence in Bloom. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/runtime/boot-lifecycle](https://bloom-platform-ten.vercel.app/docs/runtime/boot-lifecycle).* --- ## Documentation: Config & Environment Management (docs/runtime/config-and-env) --- title: "Config & Environment Management" description: "Type-safe environment variables, dotenv support, and compile-time configuration validation." category: "Runtime & Architecture" url: "https://bloom-platform-ten.vercel.app/docs/runtime/config-and-env" last_updated: "2026-08-15" --- # Config & Environment Management > Type-safe environment variables, dotenv support, and compile-time configuration validation. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/runtime/config-and-env](https://bloom-platform-ten.vercel.app/docs/runtime/config-and-env).* --- ## Documentation: Filesystem Routing & Navigation (docs/framework/routing) --- title: "Filesystem Routing & Navigation" description: "Declarative Next.js-style file-based routing for Flutter compiled into strongly-typed GoRouter tables." category: "Runtime & Architecture" url: "https://bloom-platform-ten.vercel.app/docs/framework/routing" last_updated: "2026-08-15" --- # Filesystem Routing & Navigation > Declarative Next.js-style file-based routing for Flutter compiled into strongly-typed GoRouter tables. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/framework/routing](https://bloom-platform-ten.vercel.app/docs/framework/routing).* --- ## Documentation: Filesystem Routing & Navigation (docs/runtime/filesystem-routing) --- title: "Filesystem Routing & Navigation" description: "Declarative Next.js-style file-based routing for Flutter compiled into strongly-typed GoRouter tables." category: "Runtime & Architecture" url: "https://bloom-platform-ten.vercel.app/docs/runtime/filesystem-routing" last_updated: "2026-08-15" --- # Filesystem Routing & Navigation > Declarative Next.js-style file-based routing for Flutter compiled into strongly-typed GoRouter tables. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/runtime/filesystem-routing](https://bloom-platform-ten.vercel.app/docs/runtime/filesystem-routing).* --- ## Documentation: Signals Reactivity & Controllers (docs/framework/signals) --- title: "Signals Reactivity & Controllers" description: "Fine-grained reactive state management with Signals, Computed values, Effects, and BloomController." category: "Runtime & Architecture" url: "https://bloom-platform-ten.vercel.app/docs/framework/signals" last_updated: "2026-08-15" --- # Signals Reactivity & Controllers > Fine-grained reactive state management with Signals, Computed values, Effects, and BloomController. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/framework/signals](https://bloom-platform-ten.vercel.app/docs/framework/signals).* --- ## Documentation: Signals Reactivity & Controllers (docs/runtime/signals-and-controllers) --- title: "Signals Reactivity & Controllers" description: "Fine-grained reactive state management with Signals, Computed values, Effects, and BloomController." category: "Runtime & Architecture" url: "https://bloom-platform-ten.vercel.app/docs/runtime/signals-and-controllers" last_updated: "2026-08-15" --- # Signals Reactivity & Controllers > Fine-grained reactive state management with Signals, Computed values, Effects, and BloomController. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/runtime/signals-and-controllers](https://bloom-platform-ten.vercel.app/docs/runtime/signals-and-controllers).* --- ## Documentation: Dependency Injection & Container (docs/framework/di) --- title: "Dependency Injection & Container" description: "Lightweight hierarchical DI container with singleton, factory, and scoped bindings." category: "Runtime & Architecture" url: "https://bloom-platform-ten.vercel.app/docs/framework/di" last_updated: "2026-08-15" --- # Dependency Injection & Container > Lightweight hierarchical DI container with singleton, factory, and scoped bindings. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/framework/di](https://bloom-platform-ten.vercel.app/docs/framework/di).* --- ## Documentation: Dependency Injection & Container (docs/runtime/dependency-injection) --- title: "Dependency Injection & Container" description: "Lightweight hierarchical DI container with singleton, factory, and scoped bindings." category: "Runtime & Architecture" url: "https://bloom-platform-ten.vercel.app/docs/runtime/dependency-injection" last_updated: "2026-08-15" --- # Dependency Injection & Container > Lightweight hierarchical DI container with singleton, factory, and scoped bindings. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/runtime/dependency-injection](https://bloom-platform-ten.vercel.app/docs/runtime/dependency-injection).* --- ## Documentation: Structured Logging & Diagnostics (docs/runtime/logging) --- title: "Structured Logging & Diagnostics" description: "Production-ready structured logging with severity levels, JSON output, and DevTools integration." category: "Runtime & Architecture" url: "https://bloom-platform-ten.vercel.app/docs/runtime/logging" last_updated: "2026-08-15" --- # Structured Logging & Diagnostics > Production-ready structured logging with severity levels, JSON output, and DevTools integration. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/runtime/logging](https://bloom-platform-ten.vercel.app/docs/runtime/logging).* --- ## Documentation: Data Layer & Caching Architecture (docs/framework/data) --- title: "Data Layer & Caching Architecture" description: "TanStack-inspired data management for Flutter: queries, mutations, offline queue, and SWR caching." category: "Data Layer & Caching" url: "https://bloom-platform-ten.vercel.app/docs/framework/data" last_updated: "2026-08-15" --- # Data Layer & Caching Architecture > TanStack-inspired data management for Flutter: queries, mutations, offline queue, and SWR caching. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/framework/data](https://bloom-platform-ten.vercel.app/docs/framework/data).* --- ## Documentation: Asynchronous Server Queries (docs/data/queries) --- title: "Asynchronous Server Queries" description: "BloomQuery: reactive data fetching, automatic deduping, background revalidation, and caching." category: "Data Layer & Caching" url: "https://bloom-platform-ten.vercel.app/docs/data/queries" last_updated: "2026-08-15" --- # Asynchronous Server Queries > BloomQuery: reactive data fetching, automatic deduping, background revalidation, and caching. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/data/queries](https://bloom-platform-ten.vercel.app/docs/data/queries).* --- ## Documentation: Mutations & Optimistic Updates (docs/data/mutations) --- title: "Mutations & Optimistic Updates" description: "BloomMutation: async data modifications with optimistic UI updates and automated rollback." category: "Data Layer & Caching" url: "https://bloom-platform-ten.vercel.app/docs/data/mutations" last_updated: "2026-08-15" --- # Mutations & Optimistic Updates > BloomMutation: async data modifications with optimistic UI updates and automated rollback. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/data/mutations](https://bloom-platform-ten.vercel.app/docs/data/mutations).* --- ## Documentation: Cache & Garbage Collection (docs/data/cache-and-garbage-collection) --- title: "Cache & Garbage Collection" description: "In-memory LRU cache, stale-while-revalidate policies, and automated background garbage collection." category: "Data Layer & Caching" url: "https://bloom-platform-ten.vercel.app/docs/data/cache-and-garbage-collection" last_updated: "2026-08-15" --- # Cache & Garbage Collection > In-memory LRU cache, stale-while-revalidate policies, and automated background garbage collection. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/data/cache-and-garbage-collection](https://bloom-platform-ten.vercel.app/docs/data/cache-and-garbage-collection).* --- ## Documentation: HTTP Client & Interceptors (docs/data/http-client) --- title: "HTTP Client & Interceptors" description: "Resilient HTTP client with retry policies, JWT auth injection, rate limiting, and request interceptors." category: "Data Layer & Caching" url: "https://bloom-platform-ten.vercel.app/docs/data/http-client" last_updated: "2026-08-15" --- # HTTP Client & Interceptors > Resilient HTTP client with retry policies, JWT auth injection, rate limiting, and request interceptors. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/data/http-client](https://bloom-platform-ten.vercel.app/docs/data/http-client).* --- ## Documentation: Offline Queue & Synchronization (docs/data/offline-queue) --- title: "Offline Queue & Synchronization" description: "Persistent mutation queue with automatic retry, exponential backoff, and background network sync." category: "Data Layer & Caching" url: "https://bloom-platform-ten.vercel.app/docs/data/offline-queue" last_updated: "2026-08-15" --- # Offline Queue & Synchronization > Persistent mutation queue with automatic retry, exponential backoff, and background network sync. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/data/offline-queue](https://bloom-platform-ten.vercel.app/docs/data/offline-queue).* --- ## Documentation: Storage Adapters (SQLite, Hive, Memory) (docs/data/storage-adapters) --- title: "Storage Adapters (SQLite, Hive, Memory)" description: "Pluggable persistent key-value and relational storage drivers for local persistence." category: "Data Layer & Caching" url: "https://bloom-platform-ten.vercel.app/docs/data/storage-adapters" last_updated: "2026-08-15" --- # Storage Adapters (SQLite, Hive, Memory) > Pluggable persistent key-value and relational storage drivers for local persistence. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/data/storage-adapters](https://bloom-platform-ten.vercel.app/docs/data/storage-adapters).* --- ## Documentation: Authentication & Session Flow (docs/data/authentication) --- title: "Authentication & Session Flow" description: "Secure token storage, automatic token refreshing, route guard integration, and session management." category: "Data Layer & Caching" url: "https://bloom-platform-ten.vercel.app/docs/data/authentication" last_updated: "2026-08-15" --- # Authentication & Session Flow > Secure token storage, automatic token refreshing, route guard integration, and session management. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/data/authentication](https://bloom-platform-ten.vercel.app/docs/data/authentication).* --- ## Documentation: Typed Repositories Pattern (docs/data/repositories) --- title: "Typed Repositories Pattern" description: "Clean Architecture repository pattern standardizing domain models and data sources." category: "Data Layer & Caching" url: "https://bloom-platform-ten.vercel.app/docs/data/repositories" last_updated: "2026-08-15" --- # Typed Repositories Pattern > Clean Architecture repository pattern standardizing domain models and data sources. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/data/repositories](https://bloom-platform-ten.vercel.app/docs/data/repositories).* --- ## Documentation: Prebuild & Native Sync Engine (docs/framework/native) --- title: "Prebuild & Native Sync Engine" description: "Expo-style continuous prebuild engine syncing iOS/Android native folders from bloom.yaml." category: "Native & Prebuild" url: "https://bloom-platform-ten.vercel.app/docs/framework/native" last_updated: "2026-08-15" --- # Prebuild & Native Sync Engine > Expo-style continuous prebuild engine syncing iOS/Android native folders from bloom.yaml. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/framework/native](https://bloom-platform-ten.vercel.app/docs/framework/native).* --- ## Documentation: Prebuild & Native Sync Engine (docs/native/prebuild-engine) --- title: "Prebuild & Native Sync Engine" description: "Expo-style continuous prebuild engine syncing iOS/Android native folders from bloom.yaml." category: "Native & Prebuild" url: "https://bloom-platform-ten.vercel.app/docs/native/prebuild-engine" last_updated: "2026-08-15" --- # Prebuild & Native Sync Engine > Expo-style continuous prebuild engine syncing iOS/Android native folders from bloom.yaml. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/native/prebuild-engine](https://bloom-platform-ten.vercel.app/docs/native/prebuild-engine).* --- ## Documentation: Native Permissions Management (docs/native/permissions) --- title: "Native Permissions Management" description: "Declarative camera, location, notifications, and storage permissions with auto-generated manifests." category: "Native & Prebuild" url: "https://bloom-platform-ten.vercel.app/docs/native/permissions" last_updated: "2026-08-15" --- # Native Permissions Management > Declarative camera, location, notifications, and storage permissions with auto-generated manifests. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/native/permissions](https://bloom-platform-ten.vercel.app/docs/native/permissions).* --- ## Documentation: Deep Links & Universal Links (docs/native/deep-links) --- title: "Deep Links & Universal Links" description: "Universal Links (iOS) and App Links (Android) configuration with automated assetlinks.json generation." category: "Native & Prebuild" url: "https://bloom-platform-ten.vercel.app/docs/native/deep-links" last_updated: "2026-08-15" --- # Deep Links & Universal Links > Universal Links (iOS) and App Links (Android) configuration with automated assetlinks.json generation. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/native/deep-links](https://bloom-platform-ten.vercel.app/docs/native/deep-links).* --- ## Documentation: Flavors & Build Schemes (docs/native/flavors) --- title: "Flavors & Build Schemes" description: "Multi-environment setup (development, staging, production) with distinct bundle IDs and app icons." category: "Native & Prebuild" url: "https://bloom-platform-ten.vercel.app/docs/native/flavors" last_updated: "2026-08-15" --- # Flavors & Build Schemes > Multi-environment setup (development, staging, production) with distinct bundle IDs and app icons. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/native/flavors](https://bloom-platform-ten.vercel.app/docs/native/flavors).* --- ## Documentation: Native Plugin Architecture (docs/native/plugins) --- title: "Native Plugin Architecture" description: "Writing custom Bloom native config plugins to inject CocoaPods, Gradle dependencies, and hooks." category: "Native & Prebuild" url: "https://bloom-platform-ten.vercel.app/docs/native/plugins" last_updated: "2026-08-15" --- # Native Plugin Architecture > Writing custom Bloom native config plugins to inject CocoaPods, Gradle dependencies, and hooks. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/native/plugins](https://bloom-platform-ten.vercel.app/docs/native/plugins).* --- ## Documentation: Bloom CLI Master Overview (docs/cli) --- title: "Bloom CLI Master Overview" description: "The command-line interface orchestrating creation, dev server, code generation, prebuild, and deployment." category: "CLI Tooling" url: "https://bloom-platform-ten.vercel.app/docs/cli" last_updated: "2026-08-15" --- # Bloom CLI Master Overview > The command-line interface orchestrating creation, dev server, code generation, prebuild, and deployment. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/cli](https://bloom-platform-ten.vercel.app/docs/cli).* --- ## Documentation: Complete CLI Command Reference (docs/cli/commands) --- title: "Complete CLI Command Reference" description: "Comprehensive flag, alias, and option guide for all bloom commands." category: "CLI Tooling" url: "https://bloom-platform-ten.vercel.app/docs/cli/commands" last_updated: "2026-08-15" --- # Complete CLI Command Reference > Comprehensive flag, alias, and option guide for all bloom commands. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/cli/commands](https://bloom-platform-ten.vercel.app/docs/cli/commands).* --- ## Documentation: bloom create (docs/cli/create) --- title: "bloom create" description: "Scaffold new production-ready Bloom applications with interactive templates and presets." category: "CLI Tooling" url: "https://bloom-platform-ten.vercel.app/docs/cli/create" last_updated: "2026-08-15" --- # bloom create > Scaffold new production-ready Bloom applications with interactive templates and presets. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/cli/create](https://bloom-platform-ten.vercel.app/docs/cli/create).* --- ## Documentation: bloom dev (docs/cli/dev) --- title: "bloom dev" description: "Run the high-performance development server with live routing watcher, QR code launcher, and hot reload." category: "CLI Tooling" url: "https://bloom-platform-ten.vercel.app/docs/cli/dev" last_updated: "2026-08-15" --- # bloom dev > Run the high-performance development server with live routing watcher, QR code launcher, and hot reload. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/cli/dev](https://bloom-platform-ten.vercel.app/docs/cli/dev).* --- ## Documentation: bloom generate (docs/cli/generate) --- title: "bloom generate" description: "Run automated code generation for routes, DI containers, models, and assets without build_runner friction." category: "CLI Tooling" url: "https://bloom-platform-ten.vercel.app/docs/cli/generate" last_updated: "2026-08-15" --- # bloom generate > Run automated code generation for routes, DI containers, models, and assets without build_runner friction. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/cli/generate](https://bloom-platform-ten.vercel.app/docs/cli/generate).* --- ## Documentation: bloom prebuild (docs/cli/prebuild) --- title: "bloom prebuild" description: "Generate and synchronize native iOS and Android folders from bloom.yaml definitions." category: "CLI Tooling" url: "https://bloom-platform-ten.vercel.app/docs/cli/prebuild" last_updated: "2026-08-15" --- # bloom prebuild > Generate and synchronize native iOS and Android folders from bloom.yaml definitions. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/cli/prebuild](https://bloom-platform-ten.vercel.app/docs/cli/prebuild).* --- ## Documentation: bloom deploy (docs/cli/deploy) --- title: "bloom deploy" description: "Deploy OTA updates, build cloud release artifacts, and publish patches directly to users." category: "CLI Tooling" url: "https://bloom-platform-ten.vercel.app/docs/cli/deploy" last_updated: "2026-08-15" --- # bloom deploy > Deploy OTA updates, build cloud release artifacts, and publish patches directly to users. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/cli/deploy](https://bloom-platform-ten.vercel.app/docs/cli/deploy).* --- ## Documentation: bloom doctor (docs/cli/doctor) --- title: "bloom doctor" description: "Diagnose Flutter, Dart, CocoaPods, Android SDK, and Bloom project dependencies with automated repair hints." category: "CLI Tooling" url: "https://bloom-platform-ten.vercel.app/docs/cli/doctor" last_updated: "2026-08-15" --- # bloom doctor > Diagnose Flutter, Dart, CocoaPods, Android SDK, and Bloom project dependencies with automated repair hints. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/cli/doctor](https://bloom-platform-ten.vercel.app/docs/cli/doctor).* --- ## Documentation: Bloom Go Companion App (docs/dev-experience/bloom-go) --- title: "Bloom Go Companion App" description: "Instant wireless sandbox for iOS and Android: test Bloom projects on physical devices without compilation." category: "Developer Experience" url: "https://bloom-platform-ten.vercel.app/docs/dev-experience/bloom-go" last_updated: "2026-08-15" --- # Bloom Go Companion App > Instant wireless sandbox for iOS and Android: test Bloom projects on physical devices without compilation. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/dev-experience/bloom-go](https://bloom-platform-ten.vercel.app/docs/dev-experience/bloom-go).* --- ## Documentation: Local Dev Server & Live Orchestration (docs/dev-experience/dev-server) --- title: "Local Dev Server & Live Orchestration" description: "High-speed WebSocket orchestrator coordinating hot reload, file-watching, and diagnostics." category: "Developer Experience" url: "https://bloom-platform-ten.vercel.app/docs/dev-experience/dev-server" last_updated: "2026-08-15" --- # Local Dev Server & Live Orchestration > High-speed WebSocket orchestrator coordinating hot reload, file-watching, and diagnostics. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/dev-experience/dev-server](https://bloom-platform-ten.vercel.app/docs/dev-experience/dev-server).* --- ## Documentation: Flutter DevTools Extension (docs/dev-experience/devtools-extensions) --- title: "Flutter DevTools Extension" description: "Visual inspector for Signals graph, Query cache, Route hierarchy, and OTA update status." category: "Developer Experience" url: "https://bloom-platform-ten.vercel.app/docs/dev-experience/devtools-extensions" last_updated: "2026-08-15" --- # Flutter DevTools Extension > Visual inspector for Signals graph, Query cache, Route hierarchy, and OTA update status. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/dev-experience/devtools-extensions](https://bloom-platform-ten.vercel.app/docs/dev-experience/devtools-extensions).* --- ## Documentation: Cloud OTA Code Push Engine (docs/framework/ota) --- title: "Cloud OTA Code Push Engine" description: "Instant over-the-air Flutter code updates powered by Shorebird with rollback guarantees." category: "Developer Experience" url: "https://bloom-platform-ten.vercel.app/docs/framework/ota" last_updated: "2026-08-15" --- # Cloud OTA Code Push Engine > Instant over-the-air Flutter code updates powered by Shorebird with rollback guarantees. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/framework/ota](https://bloom-platform-ten.vercel.app/docs/framework/ota).* --- ## Documentation: Cloud OTA Code Push Engine (docs/dev-experience/ota-deployments) --- title: "Cloud OTA Code Push Engine" description: "Instant over-the-air Flutter code updates powered by Shorebird with rollback guarantees." category: "Developer Experience" url: "https://bloom-platform-ten.vercel.app/docs/dev-experience/ota-deployments" last_updated: "2026-08-15" --- # Cloud OTA Code Push Engine > Instant over-the-air Flutter code updates powered by Shorebird with rollback guarantees. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/dev-experience/ota-deployments](https://bloom-platform-ten.vercel.app/docs/dev-experience/ota-deployments).* --- ## Documentation: Cloud Platform Overview (docs/cloud/overview) --- title: "Cloud Platform Overview" description: "Organizations, projects, apps, and role-based access control for Bloom Cloud." category: "Cloud Platform" url: "https://bloom-platform-ten.vercel.app/docs/cloud/overview" last_updated: "2026-08-16" --- # Cloud Platform Overview > Bloom Cloud is the dashboard behind `bloom deploy`—organizations, projects, apps, builds, releases, and every piece of infrastructure OTA patching depends on. Open it at [cloud.bloom.dev](https://cloud.bloom.dev). ## Organization Hierarchy Every resource in Bloom Cloud is scoped under a three-level hierarchy so teams, clients, and product lines stay cleanly isolated: - **Organization**: The billing and membership boundary. Owns projects, seats, and a subscription plan. - **Project**: Groups related apps—typically one product, one repository family. - **App**: A single Flutter app—the unit builds, releases, environments, and secrets attach to. ## Linking a Project ```bash # Link a local Bloom project to a Cloud app bloom cloud link --org acme-inc --project storefront --app storefront-mobile # Verify the link bloom cloud whoami ``` ## Role-Based Access Control Roles are assigned per organization member and gate sensitive actions across every app in that org: - **Owner**: Full control, including billing, org deletion, and member removal. - **Admin**: Manage projects, apps, environments, and team membership. No billing or org deletion. - **Release Manager**: Approve/reject releases, trigger deployments and rollbacks. Cannot touch secrets or signing. - **Developer**: Trigger builds, view logs and releases. Cannot approve releases or manage secrets/signing. ## Audit Log Builds, release approvals, secret rotations, signing identity changes, and rollbacks are all written to a per-organization audit trail, filterable by actor, resource, and date range from the `/audit-log` screen in the dashboard. Audit entries are immutable and retained for the lifetime of the organization—they cannot be edited or deleted by any role, including Owner. ## Related Documentation - [Build & Release Pipeline](https://bloom-platform-ten.vercel.app/docs/cloud/build-and-release.md) - [Secrets, Signing & Git](https://bloom-platform-ten.vercel.app/docs/cloud/secrets-and-signing.md) - [Hosting, Observability & Automation](https://bloom-platform-ten.vercel.app/docs/cloud/hosting-and-automation.md) - [Open Cloud Dashboard](https://cloud.bloom.dev) --- ## Documentation: Build & Release Pipeline (docs/cloud/build-and-release) --- title: "Build & Release Pipeline" description: "Remote build farm, release approvals, rollout percentages, and multi-target deployments." category: "Cloud Platform" url: "https://bloom-platform-ten.vercel.app/docs/cloud/build-and-release" last_updated: "2026-08-16" --- # Build & Release Pipeline > Compile in the cloud, gate releases behind approval, and deploy to every distribution target from one pipeline. Open the dashboard at [cloud.bloom.dev](https://cloud.bloom.dev). ## Remote Build Farm Every build runs on Bloom's managed workers—no local iOS/Android toolchain required. ```bash # Trigger a cloud build for a platform + environment bloom cloud build --platform ios --environment production bloom cloud build --platform android --environment staging # Watch logs live bloom cloud logs --build --follow ``` Build stages: **Queued** → **Staging** (source checkout, dependency resolution) → **Compiling** (platform-specific AOT compilation with pinned SDK versions) → **Artifact Upload** (signed `.ipa`/`.aab`/web bundle). Each build has its own deep-linkable detail page with a live stage timeline, streaming logs, and artifact downloads. ## Releases & Approvals A release wraps a completed build with a changelog and a rollout percentage. Releases in `pending_approval` can't ship until a Release Manager or above approves them: ```bash # Create a release from a completed build bloom cloud release create --build --changelog "Fix checkout tax calculation" # Approve (Release Manager+ only) bloom cloud release approve --release ``` Every release can be rolled back to any prior version in one click, and two releases can be diffed side-by-side before approving. ## Deployments A deployment ships a specific release to a specific target, with platform-aware status tracking: - **TestFlight**: Internal/external tester distribution via App Store Connect. - **App Store**: Public release, subject to Apple review. - **Google Play (Internal/Closed)**: Staged Android tracks before production rollout. - **Web / Preview**: Instant preview URLs and production Flutter Web hosting. ## Environments Environments (Production, Staging, Preview, Dev by default) each pin their own Flutter/Dart/Bloom SDK versions, build flavor, environment variables, and feature flags. An environment can't be deleted while it still has builds attached. ## Related Documentation - [Cloud Platform Overview](https://bloom-platform-ten.vercel.app/docs/cloud/overview.md) - [Secrets, Signing & Git](https://bloom-platform-ten.vercel.app/docs/cloud/secrets-and-signing.md) - [Open Cloud Dashboard](https://cloud.bloom.dev) --- ## Documentation: Secrets, Signing & Git (docs/cloud/secrets-and-signing) --- title: "Secrets, Signing & Git" description: "Versioned secrets vault, signing identity management, and Git provider connections." category: "Cloud Platform" url: "https://bloom-platform-ten.vercel.app/docs/cloud/secrets-and-signing" last_updated: "2026-08-16" --- # Secrets, Signing & Git > Everything the build farm needs to compile and sign your app, stored so that nothing sensitive is ever re-exposed by accident. Open the dashboard at [cloud.bloom.dev](https://cloud.bloom.dev). ## Secrets Vault Secrets are scoped per environment and versioned—saving a new value creates a new version rather than mutating the old one, so you can roll back a secret the same way you'd roll back a release: ```bash # Set a secret for an environment (never printed back to the terminal) bloom cloud secrets set STRIPE_SECRET_KEY --environment production # List keys (values always masked) bloom cloud secrets list --environment production ``` The dashboard never renders a previously-saved value. "Reveal" performs a fresh, on-demand fetch and the plaintext never persists across a page reload. ## Signing Identities Upload once per app and every build on the matching platform picks it up automatically. Identities within 30 days of expiry are flagged, expired ones are blocked from new builds: - **Android Keystore**: `.jks`/`.keystore` with alias and passwords for signed release builds. - **iOS Certificate**: Distribution certificate (`.p12`) for App Store / TestFlight builds. - **Provisioning Profile**: Paired with a certificate to authorize device installs and capabilities. - **API Key**: App Store Connect / Google Play service account keys used by the build farm to publish. Downloading a signing identity is restricted to Release Manager and above. ## Git Connections Connect GitHub, GitLab, or Bitbucket at the organization level, then link individual apps to a repository. Branch deploy policies map a branch pattern (e.g. `release/*`) to an environment, so pushing to the right branch is enough to trigger a build. Every inbound webhook delivery is logged with its event type and status, and can be replayed from the dashboard. ## Related Documentation - [Cloud Platform Overview](https://bloom-platform-ten.vercel.app/docs/cloud/overview.md) - [Build & Release Pipeline](https://bloom-platform-ten.vercel.app/docs/cloud/build-and-release.md) - [Open Cloud Dashboard](https://cloud.bloom.dev) --- ## Documentation: Hosting, Observability & Automation (docs/cloud/hosting-and-automation) --- title: "Hosting, Observability & Automation" description: "Flutter Web hosting with custom domains, release health monitoring, workflow automation, and the template marketplace." category: "Cloud Platform" url: "https://bloom-platform-ten.vercel.app/docs/cloud/hosting-and-automation" last_updated: "2026-08-16" --- # Hosting, Observability & Automation > Serve your Flutter Web build on your own domain, watch release health in real time, and automate the pipeline with custom workflows. Open the dashboard at [cloud.bloom.dev](https://cloud.bloom.dev). ## Web Hosting & Domains Every Web deployment gets a preview URL automatically. Add a custom domain and Bloom Cloud generates the DNS records you need: ```bash # Add a custom domain to a Web-hosted app bloom cloud domains add app.acme.com # Verify DNS once records are added at your registrar bloom cloud domains verify app.acme.com ``` The dashboard's Domains tab shows certificate status (pending/issued/failed) and a copy-to-clipboard button per record. ## Observability Each app's Observability tab surfaces release health and crash-free rate per active release, so a bad rollout is visible before support tickets start arriving. Health signals are tied to the release rollout percentage, so you can correlate a dip in crash-free rate directly with the version that caused it. ## Workflow Automation Workflows chain builds, approval gates, and deployments into a repeatable sequence triggered by an event (e.g. a push to a release branch). Each run's steps are tracked individually—pending, running, blocked, completed, failed, or skipped. Workflow definitions are currently read-only in the dashboard once created—editing support is on the roadmap. ## Template Marketplace Buy production-ready app templates to fork into a new project, or publish and sell your own. Sellers connect a payout account once and every purchase settles automatically. Templates are versioned like releases—buyers always know exactly which version they purchased. ## Related Documentation - [Cloud Platform Overview](https://bloom-platform-ten.vercel.app/docs/cloud/overview.md) - [Secrets, Signing & Git](https://bloom-platform-ten.vercel.app/docs/cloud/secrets-and-signing.md) - [Open Cloud Dashboard](https://cloud.bloom.dev) --- ## Documentation: Backend Adapters Overview (docs/framework/adapters) --- title: "Backend Adapters Architecture" description: "Turnkey integrations for Supabase, Serverpod, Firebase, GraphQL, and REST backends." category: "Backend Adapters" url: "https://bloom-platform-ten.vercel.app/docs/framework/adapters" last_updated: "2026-08-15" --- # Backend Adapters Architecture > Bloom connects seamlessly to modern backends with strongly-typed adapters for Supabase, Serverpod, Firebase, and custom REST/GraphQL endpoints. ## Available Adapters - [Supabase Adapter](https://bloom-platform-ten.vercel.app/docs/adapters/supabase.md): Auth, Postgres Realtime, Storage, and Row-Level Security. - [Serverpod Adapter](https://bloom-platform-ten.vercel.app/docs/adapters/serverpod.md): Full-stack Dart RPC, WebSockets, and shared model classes. --- ## Documentation: Supabase Adapter (docs/adapters/supabase) --- title: "Supabase Adapter" description: "Turnkey Supabase auth, Postgres real-time signals, Row-Level Security, and Storage integration." category: "Backend Adapters" url: "https://bloom-platform-ten.vercel.app/docs/adapters/supabase" last_updated: "2026-08-15" --- # Supabase Adapter > Turnkey Supabase auth, Postgres real-time signals, Row-Level Security, and Storage integration. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/adapters/supabase](https://bloom-platform-ten.vercel.app/docs/adapters/supabase).* --- ## Documentation: Serverpod Adapter (docs/adapters/serverpod) --- title: "Serverpod Adapter" description: "Full-stack Dart integration: end-to-end type safety, streaming WebSockets, and shared data classes." category: "Backend Adapters" url: "https://bloom-platform-ten.vercel.app/docs/adapters/serverpod" last_updated: "2026-08-15" --- # Serverpod Adapter > Full-stack Dart integration: end-to-end type safety, streaming WebSockets, and shared data classes. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/adapters/serverpod](https://bloom-platform-ten.vercel.app/docs/adapters/serverpod).* --- ## Documentation: Bloom Server Overview (docs/server/overview) --- title: "Bloom Server Overview" description: "A full-stack, Django-style backend ecosystem for Bloom applications sharing the same core framework as Flutter." category: "Bloom Server" url: "https://bloom-platform-ten.vercel.app/docs/server/overview" last_updated: "2026-08-15" --- # Bloom Server Overview > A full-stack, Django-style backend ecosystem for Bloom applications sharing the same core framework as Flutter. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/server/overview](https://bloom-platform-ten.vercel.app/docs/server/overview).* --- ## Documentation: Scaffolding a Server (docs/server/scaffolding) --- title: "Scaffolding a Server" description: "Scaffold new Bloom Server backends and apps with `bloom server create` and `bloom server startapp`." category: "Bloom Server" url: "https://bloom-platform-ten.vercel.app/docs/server/scaffolding" last_updated: "2026-08-15" --- # Scaffolding a Server > Scaffold new Bloom Server backends and apps with `bloom server create` and `bloom server startapp`. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/server/scaffolding](https://bloom-platform-ten.vercel.app/docs/server/scaffolding).* --- ## Documentation: ORM & Migrations (docs/server/orm-and-migrations) --- title: "ORM & Migrations" description: "bloom_db QuerySet API, Q()/F() expressions, model annotations, and bloom_migrate schema migrations." category: "Bloom Server" url: "https://bloom-platform-ten.vercel.app/docs/server/orm-and-migrations" last_updated: "2026-08-15" --- # ORM & Migrations > bloom_db QuerySet API, Q()/F() expressions, model annotations, and bloom_migrate schema migrations. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/server/orm-and-migrations](https://bloom-platform-ten.vercel.app/docs/server/orm-and-migrations).* --- ## Documentation: Authentication (docs/server/auth) --- title: "Authentication" description: "bloom_auth_server session tokens, password hashing, rate limiting, and auth middleware." category: "Bloom Server" url: "https://bloom-platform-ten.vercel.app/docs/server/auth" last_updated: "2026-08-15" --- # Authentication > bloom_auth_server session tokens, password hashing, rate limiting, and auth middleware. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/server/auth](https://bloom-platform-ten.vercel.app/docs/server/auth).* --- ## Documentation: Validation & Errors (docs/server/validation-and-errors) --- title: "Validation & Errors" description: "bloom_validate schema validation and bloom_errors typed HTTP exception hierarchy with dev/prod masking." category: "Bloom Server" url: "https://bloom-platform-ten.vercel.app/docs/server/validation-and-errors" last_updated: "2026-08-15" --- # Validation & Errors > bloom_validate schema validation and bloom_errors typed HTTP exception hierarchy with dev/prod masking. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/server/validation-and-errors](https://bloom-platform-ten.vercel.app/docs/server/validation-and-errors).* --- ## Documentation: REST API Layer (docs/server/rest-api) --- title: "REST API Layer" description: "bloom_rest DRF-style ViewSets, serializers, pagination, filters, and permission classes." category: "Bloom Server" url: "https://bloom-platform-ten.vercel.app/docs/server/rest-api" last_updated: "2026-08-15" --- # REST API Layer > bloom_rest DRF-style ViewSets, serializers, pagination, filters, and permission classes. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/server/rest-api](https://bloom-platform-ten.vercel.app/docs/server/rest-api).* --- ## Documentation: Admin Panel (docs/server/admin-panel) --- title: "Admin Panel" description: "bloom_admin automatic server-rendered HTML administration interface for Bloom Server applications." category: "Bloom Server" url: "https://bloom-platform-ten.vercel.app/docs/server/admin-panel" last_updated: "2026-08-15" --- # Admin Panel > bloom_admin automatic server-rendered HTML administration interface for Bloom Server applications. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/server/admin-panel](https://bloom-platform-ten.vercel.app/docs/server/admin-panel).* --- ## Documentation: Realtime & WebSockets (docs/server/realtime) --- title: "Realtime & WebSockets" description: "bloom_realtime pub/sub channels, broadcast, presence, and query-cache invalidation bridge." category: "Bloom Server" url: "https://bloom-platform-ten.vercel.app/docs/server/realtime" last_updated: "2026-08-15" --- # Realtime & WebSockets > bloom_realtime pub/sub channels, broadcast, presence, and query-cache invalidation bridge. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/server/realtime](https://bloom-platform-ten.vercel.app/docs/server/realtime).* --- ## Documentation: Caching (docs/server/caching) --- title: "Caching" description: "bloom_cache in-memory LRU, database, and Redis caching backends with HTTP response caching middleware." category: "Bloom Server" url: "https://bloom-platform-ten.vercel.app/docs/server/caching" last_updated: "2026-08-15" --- # Caching > bloom_cache in-memory LRU, database, and Redis caching backends with HTTP response caching middleware. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/server/caching](https://bloom-platform-ten.vercel.app/docs/server/caching).* --- ## Documentation: Jobs, Mail & Storage (docs/server/jobs-mail-and-storage) --- title: "Jobs, Mail & Storage" description: "bloom_jobs background queues, bloom_mail transactional email, and bloom_storage swappable file storage." category: "Bloom Server" url: "https://bloom-platform-ten.vercel.app/docs/server/jobs-mail-and-storage" last_updated: "2026-08-15" --- # Jobs, Mail & Storage > bloom_jobs background queues, bloom_mail transactional email, and bloom_storage swappable file storage. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/server/jobs-mail-and-storage](https://bloom-platform-ten.vercel.app/docs/server/jobs-mail-and-storage).* --- ## Documentation: i18n & Security (docs/server/i18n-and-security) --- title: "i18n & Security" description: "bloom_i18n locale resolution and ICU formatting, bloom_security CORS, headers, and rate limiting." category: "Bloom Server" url: "https://bloom-platform-ten.vercel.app/docs/server/i18n-and-security" last_updated: "2026-08-15" --- # i18n & Security > bloom_i18n locale resolution and ICU formatting, bloom_security CORS, headers, and rate limiting. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/server/i18n-and-security](https://bloom-platform-ten.vercel.app/docs/server/i18n-and-security).* --- ## Documentation: Testing Overview & Strategy (docs/guides/testing) --- title: "Testing Overview & Strategy" description: "Comprehensive testing guide for Bloom applications: unit, controller, widget, and E2E testing." category: "Testing & Diagnostics" url: "https://bloom-platform-ten.vercel.app/docs/guides/testing" last_updated: "2026-08-15" --- # Testing Overview & Strategy > Comprehensive testing guide for Bloom applications: unit, controller, widget, and E2E testing. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/guides/testing](https://bloom-platform-ten.vercel.app/docs/guides/testing).* --- ## Documentation: Bloom Testing Harness (docs/testing/harness) --- title: "Bloom Testing Harness" description: "BloomTestContainer, mock adapters, signal testing utilities, and query test helpers." category: "Testing & Diagnostics" url: "https://bloom-platform-ten.vercel.app/docs/testing/harness" last_updated: "2026-08-15" --- # Bloom Testing Harness > BloomTestContainer, mock adapters, signal testing utilities, and query test helpers. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/testing/harness](https://bloom-platform-ten.vercel.app/docs/testing/harness).* --- ## Documentation: Testing Recipes & Cookbook (docs/testing/recipes) --- title: "Testing Recipes & Cookbook" description: "Ready-to-use testing recipes for controllers, route guards, offline queues, and UI components." category: "Testing & Diagnostics" url: "https://bloom-platform-ten.vercel.app/docs/testing/recipes" last_updated: "2026-08-15" --- # Testing Recipes & Cookbook > Ready-to-use testing recipes for controllers, route guards, offline queues, and UI components. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/testing/recipes](https://bloom-platform-ten.vercel.app/docs/testing/recipes).* --- ## Documentation: Bloom Engineering Cookbook (docs/guides/cookbook) --- title: "Bloom Engineering Cookbook" description: "Real-world recipes: infinite scrolling lists, file uploads, biometrics, dark mode, and multi-tenant auth." category: "Engineering Guides" url: "https://bloom-platform-ten.vercel.app/docs/guides/cookbook" last_updated: "2026-08-15" --- # Bloom Engineering Cookbook > Real-world recipes: infinite scrolling lists, file uploads, biometrics, dark mode, and multi-tenant auth. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/guides/cookbook](https://bloom-platform-ten.vercel.app/docs/guides/cookbook).* --- ## Documentation: Architectural Best Practices (docs/guides/best-practices) --- title: "Architectural Best Practices" description: "Production guidelines for performance, signal granularity, controller lifecycle, and memory management." category: "Engineering Guides" url: "https://bloom-platform-ten.vercel.app/docs/guides/best-practices" last_updated: "2026-08-15" --- # Architectural Best Practices > Production guidelines for performance, signal granularity, controller lifecycle, and memory management. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/guides/best-practices](https://bloom-platform-ten.vercel.app/docs/guides/best-practices).* --- ## Documentation: Migration Guide (docs/guides/migration) --- title: "Migration Guide" description: "Step-by-step migration paths from raw Flutter, Riverpod, Bloc, and GetX to Bloom." category: "Engineering Guides" url: "https://bloom-platform-ten.vercel.app/docs/guides/migration" last_updated: "2026-08-15" --- # Migration Guide > Step-by-step migration paths from raw Flutter, Riverpod, Bloc, and GetX to Bloom. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/guides/migration](https://bloom-platform-ten.vercel.app/docs/guides/migration).* --- ## Documentation: Contributing to Bloom (docs/guides/contributing) --- title: "Contributing to Bloom" description: "How to contribute to Bloom framework, CLI, primitives, and documentation." category: "Engineering Guides" url: "https://bloom-platform-ten.vercel.app/docs/guides/contributing" last_updated: "2026-08-15" --- # Contributing to Bloom > How to contribute to Bloom framework, CLI, primitives, and documentation. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/guides/contributing](https://bloom-platform-ten.vercel.app/docs/guides/contributing).* --- ## Documentation: Troubleshooting & FAQ (docs/guides/troubleshooting) --- title: "Troubleshooting & FAQ" description: "Common issues, error codes, build fixes, and frequently asked questions." category: "Engineering Guides" url: "https://bloom-platform-ten.vercel.app/docs/guides/troubleshooting" last_updated: "2026-08-15" --- # Troubleshooting & FAQ > Common issues, error codes, build fixes, and frequently asked questions. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/guides/troubleshooting](https://bloom-platform-ten.vercel.app/docs/guides/troubleshooting).* --- ## Documentation: Core API Reference (docs/guides/api-reference) --- title: "Core API Reference" description: "Exhaustive API signatures for BloomContainer, createSignal, BloomQuery, BloomMutation, and BloomController." category: "Engineering Guides" url: "https://bloom-platform-ten.vercel.app/docs/guides/api-reference" last_updated: "2026-08-15" --- # Core API Reference > Exhaustive API signatures for BloomContainer, createSignal, BloomQuery, BloomMutation, and BloomController. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/guides/api-reference](https://bloom-platform-ten.vercel.app/docs/guides/api-reference).* --- ## Documentation: Platform Capabilities & Ecosystem Gaps (docs/transparency/platform-capabilities) --- title: "Platform Capabilities & Ecosystem Gaps" description: "Transparent evaluation of what Bloom does, what it delegates, and current ecosystem roadmap." category: "Transparency" url: "https://bloom-platform-ten.vercel.app/docs/transparency/platform-capabilities" last_updated: "2026-08-15" --- # Platform Capabilities & Ecosystem Gaps > Transparent evaluation of what Bloom does, what it delegates, and current ecosystem roadmap. *For full interactive documentation, visit [https://bloom-platform-ten.vercel.app/docs/transparency/platform-capabilities](https://bloom-platform-ten.vercel.app/docs/transparency/platform-capabilities).* --- # SECTION 3: BLOOM UI PRIMITIVES SUITE (34 COMPONENTS) --- title: "Bloom UI Primitives Catalog (60+ Flutter Components)" description: "Comprehensive catalog of unstyled, accessible, copy-paste Flutter primitives inspired by shadcn/ui." category: "Bloom UI" url: "https://bloom-platform-ten.vercel.app/ui" last_updated: "2026-08-15" --- # Bloom UI Primitives Catalog > Over 60 production-grade, accessible, customizable Flutter components and charts built on pure Dart with zero external runtime dependencies. Inspired by the philosophy of **shadcn/ui**, Bloom UI allows you to own your code. You can install components directly into your codebase using `bloom ui add ` or consume them via the published `bloom_ui` package on Pub.dev. --- ## 🚀 Quick Installation ```bash # Initialize Bloom UI in your Flutter project bloom ui init # Add individual primitives bloom ui add button card dialog tabs sheet ``` --- ## 📂 Components by Category ### Form Controls (14 components) | Component | Dart Class | Description | CLI Command | | :--- | :--- | :--- | :--- | | [Button](https://bloom-platform-ten.vercel.app/ui/button.md) | `BloomButton` | Displays a button or a component that looks like a button with 8 sizing steps, soft destructive tint, and loading state indicators. | `bloom ui add button` | | [Button Group](https://bloom-platform-ten.vercel.app/ui/button-group.md) | `BloomButtonGroup` | A connected row of action buttons or toggle selectors with continuous border grouping. | `bloom ui add button_group` | | [Input](https://bloom-platform-ten.vercel.app/ui/input.md) | `BloomInput` | Displays a 32px height calibrated form input field or a component that looks like an input field. | `bloom ui add input` | | [Input Group](https://bloom-platform-ten.vercel.app/ui/input-group.md) | `BloomInputGroup` | Compose input fields with leading/trailing text addons, dropdown selects, and action buttons in a unified border container. | `bloom ui add input_group` | | [Input OTP](https://bloom-platform-ten.vercel.app/ui/input-otp.md) | `BloomInputOtp` | Accessible one-time password / PIN entry with discrete animated slot boxes and separator styling. | `bloom ui add input_otp` | | [Textarea](https://bloom-platform-ten.vercel.app/ui/textarea.md) | `BloomTextarea` | Multi-line expanded text input for paragraphs, descriptions, or code prompts. | `bloom ui add textarea` | | [Checkbox](https://bloom-platform-ten.vercel.app/ui/checkbox.md) | `BloomCheckbox` | A 16x16px control that allows the user to toggle between checked, unchecked, and indeterminate states. | `bloom ui add checkbox` | | [Radio Group](https://bloom-platform-ten.vercel.app/ui/radio.md) | `BloomRadioGroup` | A set of 16px circular check buttons where only one button can be checked at a time. | `bloom ui add radio` | | [Switch](https://bloom-platform-ten.vercel.app/ui/switch.md) | `BloomSwitch` | A 32x18px control that allows the user to toggle between checked and unchecked states. | `bloom ui add switch` | | [Slider](https://bloom-platform-ten.vercel.app/ui/slider.md) | `BloomSlider` | A 4px track slider with 12px white ring thumb for selecting values from a range. | `bloom ui add slider` | | [Select](https://bloom-platform-ten.vercel.app/ui/select.md) | `BloomSelect` | Displays a 32px dropdown select picker matching shadcn base-nova styling. | `bloom ui add select` | | [Combobox](https://bloom-platform-ten.vercel.app/ui/combobox.md) | `BloomCombobox` | Searchable autocomplete dropdown menu with multi-select tokenized chips support. | `bloom ui add combobox` | | [Calendar](https://bloom-platform-ten.vercel.app/ui/calendar.md) | `BloomCalendar` | A date picker calendar component supporting single, range, and multiple date selections. | `bloom ui add calendar` | | [Field](https://bloom-platform-ten.vercel.app/ui/field.md) | `BloomField` | A complete composable form field wrapper providing FieldLabel, FieldDescription, and FieldError slots. | `bloom ui add field` | ### Layout & Structure (5 components) | Component | Dart Class | Description | CLI Command | | :--- | :--- | :--- | :--- | | [Card](https://bloom-platform-ten.vercel.app/ui/card.md) | `BloomCard` | Displays a card with title, description, content, action header slots, and a shaded border-divided footer. | `bloom ui add card` | | [Accordion](https://bloom-platform-ten.vercel.app/ui/accordion.md) | `BloomAccordion` | A vertically stacked set of interactive headings that each reveal a section of content. | `bloom ui add accordion` | | [Tabs](https://bloom-platform-ten.vercel.app/ui/tabs.md) | `BloomTabs` | A set of layered sections of content—known as tab panels—that are displayed one at a time. Supports pill and line underline variants. | `bloom ui add tabs` | | [Skeleton](https://bloom-platform-ten.vercel.app/ui/skeleton.md) | `BloomSkeleton` | Used to show a placeholder while content is loading with a subtle pulse animation. | `bloom ui add skeleton` | | [Progress](https://bloom-platform-ten.vercel.app/ui/progress.md) | `BloomProgress` | Displays a 4px height linear progress bar indicating completion of an operation. | `bloom ui add progress` | ### Feedback & Overlays (7 components) | Component | Dart Class | Description | CLI Command | | :--- | :--- | :--- | :--- | | [Dialog](https://bloom-platform-ten.vercel.app/ui/dialog.md) | `BloomDialog` | A modal window that appears in front of app content with shaded footer and compound title/description slots. | `bloom ui add dialog` | | [Alert Dialog](https://bloom-platform-ten.vercel.app/ui/alert-dialog.md) | `BloomAlertDialog` | A modal dialog that interrupts the user with important content and expects a response. | `bloom ui add alert_dialog` | | [Alert](https://bloom-platform-ten.vercel.app/ui/alert.md) | `BloomAlert` | Displays a callout for user attention with 10x8px padding and soft status tints. | `bloom ui add alert` | | [Sheet](https://bloom-platform-ten.vercel.app/ui/sheet.md) | `BloomSheet` | Extends the Dialog component to display 4-directional slide-over drawers (left, right, top, bottom). | `bloom ui add sheet` | | [Drawer](https://bloom-platform-ten.vercel.app/ui/drawer.md) | `BloomDrawer` | A swipeable gesture bottom sheet with drag handle and spring snap points. | `bloom ui add drawer` | | [Sonner / Toast](https://bloom-platform-ten.vercel.app/ui/sonner.md) | `BloomSonner` | An opinionated toast notification system with success, error, warning, and loading status styles. | `bloom ui add sonner` | | [Dropdown Menu](https://bloom-platform-ten.vercel.app/ui/dropdown-menu.md) | `BloomDropdownMenu` | Displays a menu to the user—such as a set of actions or functions—triggered by a button. | `bloom ui add dropdown_menu` | ### Data Display & AI (5 components) | Component | Dart Class | Description | CLI Command | | :--- | :--- | :--- | :--- | | [Avatar](https://bloom-platform-ten.vercel.app/ui/avatar.md) | `BloomAvatar` | An image element with a fallback monogram for representing the user with 24/32/40px sizes and AvatarGroup. | `bloom ui add avatar` | | [Badge & Chip](https://bloom-platform-ten.vercel.app/ui/badge.md) | `BloomBadge` | Displays a 20px pill badge or interactive BloomChip with soft destructive and status tints. | `bloom ui add badge` | | [Kbd](https://bloom-platform-ten.vercel.app/ui/kbd.md) | `BloomKbd` | A 20px height sans-serif keyboard shortcut token matching shadcn base-nova specifications. | `bloom ui add kbd` | | [Table & Data Table](https://bloom-platform-ten.vercel.app/ui/table.md) | `BloomTable` | A responsive data table container with 40px headers, cell alignment, and sortable columns. | `bloom ui add table` | | [Sidebar](https://bloom-platform-ten.vercel.app/ui/sidebar.md) | `BloomSidebar` | A composable, collapsible navigation sidebar system matching shadcn base-nova with groups, headers, and footer slots. | `bloom ui add sidebar` | ### Charts Suite (1 components) | Component | Dart Class | Description | CLI Command | | :--- | :--- | :--- | :--- | | [Charts Suite](https://bloom-platform-ten.vercel.app/ui/chart.md) | `BloomChart` | Pure Dart token-driven chart suite supporting Area, Bar, Line, Pie, Radar, and Radial charts with responsive drag tracking. | `bloom ui add chart` | ### Composites & Shells (2 components) | Component | Dart Class | Description | CLI Command | | :--- | :--- | :--- | :--- | | [Command Palette](https://bloom-platform-ten.vercel.app/ui/command-palette.md) | `BloomCommandPalette` | Fast, accessible command menu for searching actions, files, and navigation shortcuts. | `bloom ui add command_palette` | | [App & Dashboard Shell](https://bloom-platform-ten.vercel.app/ui/app-shell.md) | `BloomDashboardShell` | Production responsive application frame combining top bar, collapsible sidebar, and responsive mobile nav. | `bloom ui add app_shell` | --- ## 📊 Complete List of Component Markdown Endpoints Every component has a dedicated LLM markdown file: - [Button (`BloomButton`)](https://bloom-platform-ten.vercel.app/ui/button.md): `bloom ui add button` - [Button Group (`BloomButtonGroup`)](https://bloom-platform-ten.vercel.app/ui/button-group.md): `bloom ui add button_group` - [Input (`BloomInput`)](https://bloom-platform-ten.vercel.app/ui/input.md): `bloom ui add input` - [Input Group (`BloomInputGroup`)](https://bloom-platform-ten.vercel.app/ui/input-group.md): `bloom ui add input_group` - [Input OTP (`BloomInputOtp`)](https://bloom-platform-ten.vercel.app/ui/input-otp.md): `bloom ui add input_otp` - [Textarea (`BloomTextarea`)](https://bloom-platform-ten.vercel.app/ui/textarea.md): `bloom ui add textarea` - [Checkbox (`BloomCheckbox`)](https://bloom-platform-ten.vercel.app/ui/checkbox.md): `bloom ui add checkbox` - [Radio Group (`BloomRadioGroup`)](https://bloom-platform-ten.vercel.app/ui/radio.md): `bloom ui add radio` - [Switch (`BloomSwitch`)](https://bloom-platform-ten.vercel.app/ui/switch.md): `bloom ui add switch` - [Slider (`BloomSlider`)](https://bloom-platform-ten.vercel.app/ui/slider.md): `bloom ui add slider` - [Select (`BloomSelect`)](https://bloom-platform-ten.vercel.app/ui/select.md): `bloom ui add select` - [Combobox (`BloomCombobox`)](https://bloom-platform-ten.vercel.app/ui/combobox.md): `bloom ui add combobox` - [Calendar (`BloomCalendar`)](https://bloom-platform-ten.vercel.app/ui/calendar.md): `bloom ui add calendar` - [Field (`BloomField`)](https://bloom-platform-ten.vercel.app/ui/field.md): `bloom ui add field` - [Card (`BloomCard`)](https://bloom-platform-ten.vercel.app/ui/card.md): `bloom ui add card` - [Accordion (`BloomAccordion`)](https://bloom-platform-ten.vercel.app/ui/accordion.md): `bloom ui add accordion` - [Tabs (`BloomTabs`)](https://bloom-platform-ten.vercel.app/ui/tabs.md): `bloom ui add tabs` - [Skeleton (`BloomSkeleton`)](https://bloom-platform-ten.vercel.app/ui/skeleton.md): `bloom ui add skeleton` - [Progress (`BloomProgress`)](https://bloom-platform-ten.vercel.app/ui/progress.md): `bloom ui add progress` - [Dialog (`BloomDialog`)](https://bloom-platform-ten.vercel.app/ui/dialog.md): `bloom ui add dialog` - [Alert Dialog (`BloomAlertDialog`)](https://bloom-platform-ten.vercel.app/ui/alert-dialog.md): `bloom ui add alert_dialog` - [Alert (`BloomAlert`)](https://bloom-platform-ten.vercel.app/ui/alert.md): `bloom ui add alert` - [Sheet (`BloomSheet`)](https://bloom-platform-ten.vercel.app/ui/sheet.md): `bloom ui add sheet` - [Drawer (`BloomDrawer`)](https://bloom-platform-ten.vercel.app/ui/drawer.md): `bloom ui add drawer` - [Sonner / Toast (`BloomSonner`)](https://bloom-platform-ten.vercel.app/ui/sonner.md): `bloom ui add sonner` - [Dropdown Menu (`BloomDropdownMenu`)](https://bloom-platform-ten.vercel.app/ui/dropdown-menu.md): `bloom ui add dropdown_menu` - [Avatar (`BloomAvatar`)](https://bloom-platform-ten.vercel.app/ui/avatar.md): `bloom ui add avatar` - [Badge & Chip (`BloomBadge`)](https://bloom-platform-ten.vercel.app/ui/badge.md): `bloom ui add badge` - [Kbd (`BloomKbd`)](https://bloom-platform-ten.vercel.app/ui/kbd.md): `bloom ui add kbd` - [Table & Data Table (`BloomTable`)](https://bloom-platform-ten.vercel.app/ui/table.md): `bloom ui add table` - [Sidebar (`BloomSidebar`)](https://bloom-platform-ten.vercel.app/ui/sidebar.md): `bloom ui add sidebar` - [Charts Suite (`BloomChart`)](https://bloom-platform-ten.vercel.app/ui/chart.md): `bloom ui add chart` - [Command Palette (`BloomCommandPalette`)](https://bloom-platform-ten.vercel.app/ui/command-palette.md): `bloom ui add command_palette` - [App & Dashboard Shell (`BloomDashboardShell`)](https://bloom-platform-ten.vercel.app/ui/app-shell.md): `bloom ui add app_shell` --- ## Component: Button (`BloomButton`) --- title: "Button (BloomButton) — Bloom UI Primitive" description: "Displays a button or a component that looks like a button with 8 sizing steps, soft destructive tint, and loading state indicators." category: "Form Controls" url: "https://bloom-platform-ten.vercel.app/ui/button" component_name: "BloomButton" pub_package: "bloom_ui" cli_command: "bloom ui add button" last_updated: "2026-08-15" --- # Button (`BloomButton`) > Displays a button or a component that looks like a button with 8 sizing steps, soft destructive tint, and loading state indicators. **Category:** Form Controls **Package:** [`bloom_ui`](https://pub.dev/packages/bloom_ui) **CLI Install:** `bloom ui add button` **Web Preview:** [https://bloom-platform-ten.vercel.app/ui/button](https://bloom-platform-ten.vercel.app/ui/button) --- ## 📦 Installation & Setup ### 1. Using Bloom CLI (Recommended) Add the source code directly to your project without rigid package locks: ```bash bloom ui add button ``` ### 2. Using Pub.dev Package Add the dependency to your `pubspec.yaml`: ```yaml dependencies: bloom_ui: ^0.1.0 ``` ### 3. Import in Dart ```dart import 'package:bloom_ui/bloom_ui.dart'; ``` --- ## 🚀 Usage Example ```dart BloomButton( variant: BloomButtonVariant.defaultVariant, size: BloomButtonSize.defaultSize, leading: const Icon(Icons.download, size: 16), onPressed: () { print('Deploying application...'); }, child: const Text('Deploy App'), ) ``` --- ## 🛠️ API Reference **Available Variants:** `defaultVariant`, `secondary`, `outline`, `ghost`, `destructive`, `link` **Available Sizes:** `xs`, `sm`, `defaultSize`, `lg`, `iconXs`, `iconSm`, `icon`, `iconLg` ### Properties & Parameters | Prop | Type | Default | Description | | :--- | :--- | :--- | :--- | | `child` | `Widget` | *Required* | The button content label or icon widget. | | `onPressed` | `VoidCallback?` | *Required* | Callback invoked when button is tapped. | | `variant` | `BloomButtonVariant` | `defaultVariant` | Visual style: default, secondary, outline, ghost, destructive, link. | | `size` | `BloomButtonSize` | `defaultSize` | Dimension scale: xs (24px), sm (28px), default (32px), lg (36px). | | `loading` | `bool` | `false` | Shows an inline loading spinner when true. | | `disabled` | `bool` | `false` | Disables tap events and reduces opacity. | | `leading` | `Widget?` | *Required* | Optional leading icon. | | `trailing` | `Widget?` | *Required* | Optional trailing icon. | --- ## 🎨 Theming & Styling BloomButton automatically respects the active `BloomTheme` (including `BloomTheme.novaLight`, `BloomTheme.novaDark`, etc.) and responds seamlessly to dark mode changes, custom border radii, and brand color tokens. ### Theme Overrides Example ```dart Theme( data: Theme.of(context).copyWith( extensions: [ context.bloomTheme.copyWith( colors: context.bloomColors.copyWith( primary: const Color(0xFF8B5CF6), // Custom Purple Accent ), ), ], ), child: BloomButton(..., ) ``` --- ## 🔗 Related Resources - [Components Gallery](https://bloom-platform-ten.vercel.app/ui) - [Bloom Theming & Tokens Guide](https://bloom-platform-ten.vercel.app/docs/theming) - [Application Blocks Catalog](https://bloom-platform-ten.vercel.app/blocks) - [Bloom CLI Master Overview](https://bloom-platform-ten.vercel.app/docs/cli) --- ## Component: Button Group (`BloomButtonGroup`) --- title: "Button Group (BloomButtonGroup) — Bloom UI Primitive" description: "A connected row of action buttons or toggle selectors with continuous border grouping." category: "Form Controls" url: "https://bloom-platform-ten.vercel.app/ui/button-group" component_name: "BloomButtonGroup" pub_package: "bloom_ui" cli_command: "bloom ui add button_group" last_updated: "2026-08-15" --- # Button Group (`BloomButtonGroup`) > A connected row of action buttons or toggle selectors with continuous border grouping. **Category:** Form Controls **Package:** [`bloom_ui`](https://pub.dev/packages/bloom_ui) **CLI Install:** `bloom ui add button_group` **Web Preview:** [https://bloom-platform-ten.vercel.app/ui/button-group](https://bloom-platform-ten.vercel.app/ui/button-group) --- ## 📦 Installation & Setup ### 1. Using Bloom CLI (Recommended) Add the source code directly to your project without rigid package locks: ```bash bloom ui add button_group ``` ### 2. Using Pub.dev Package Add the dependency to your `pubspec.yaml`: ```yaml dependencies: bloom_ui: ^0.1.0 ``` ### 3. Import in Dart ```dart import 'package:bloom_ui/bloom_ui.dart'; ``` --- ## 🚀 Usage Example ```dart BloomButtonGroup( defaultValue: 'week', items: const [ BloomButtonGroupItem(value: 'day', label: Text('Day')), BloomButtonGroupItem(value: 'week', label: Text('Week')), BloomButtonGroupItem(value: 'month', label: Text('Month')), ], onChanged: (selected) { print('Selected timeframe: $selected'); }, ) ``` --- ## 🛠️ API Reference ### Sub-Components & Slots | Sub-Component | Description | | :--- | :--- | | `BloomButtonGroupItem` | Individual item within the segmented group. | | `BloomButtonGroupSeparator` | Vertical hairline separator between button items. | | `BloomButtonGroupText` | Styled text block within a button group. | ### Properties & Parameters | Prop | Type | Default | Description | | :--- | :--- | :--- | :--- | | `items` | `List>` | *Required* | List of button items in the group. | | `defaultValue` | `T?` | *Required* | Initial selected value. | | `onChanged` | `ValueChanged?` | *Required* | Called when a segmented button is selected. | --- ## 🎨 Theming & Styling BloomButtonGroup automatically respects the active `BloomTheme` (including `BloomTheme.novaLight`, `BloomTheme.novaDark`, etc.) and responds seamlessly to dark mode changes, custom border radii, and brand color tokens. ### Theme Overrides Example ```dart Theme( data: Theme.of(context).copyWith( extensions: [ context.bloomTheme.copyWith( colors: context.bloomColors.copyWith( primary: const Color(0xFF8B5CF6), // Custom Purple Accent ), ), ], ), child: BloomButtonGroup(..., ) ``` --- ## 🔗 Related Resources - [Components Gallery](https://bloom-platform-ten.vercel.app/ui) - [Bloom Theming & Tokens Guide](https://bloom-platform-ten.vercel.app/docs/theming) - [Application Blocks Catalog](https://bloom-platform-ten.vercel.app/blocks) - [Bloom CLI Master Overview](https://bloom-platform-ten.vercel.app/docs/cli) --- ## Component: Input (`BloomInput`) --- title: "Input (BloomInput) — Bloom UI Primitive" description: "Displays a 32px height calibrated form input field or a component that looks like an input field." category: "Form Controls" url: "https://bloom-platform-ten.vercel.app/ui/input" component_name: "BloomInput" pub_package: "bloom_ui" cli_command: "bloom ui add input" last_updated: "2026-08-15" --- # Input (`BloomInput`) > Displays a 32px height calibrated form input field or a component that looks like an input field. **Category:** Form Controls **Package:** [`bloom_ui`](https://pub.dev/packages/bloom_ui) **CLI Install:** `bloom ui add input` **Web Preview:** [https://bloom-platform-ten.vercel.app/ui/input](https://bloom-platform-ten.vercel.app/ui/input) --- ## 📦 Installation & Setup ### 1. Using Bloom CLI (Recommended) Add the source code directly to your project without rigid package locks: ```bash bloom ui add input ``` ### 2. Using Pub.dev Package Add the dependency to your `pubspec.yaml`: ```yaml dependencies: bloom_ui: ^0.1.0 ``` ### 3. Import in Dart ```dart import 'package:bloom_ui/bloom_ui.dart'; ``` --- ## 🚀 Usage Example ```dart BloomInput( placeholder: 'name@example.com', leading: const Icon(Icons.email_outlined, size: 16), keyboardType: TextInputType.emailAddress, onChanged: (val) { print('Email: $val'); }, ) ``` --- ## 🛠️ API Reference ### Properties & Parameters | Prop | Type | Default | Description | | :--- | :--- | :--- | :--- | | `placeholder` | `String?` | *Required* | Hint placeholder text. | | `controller` | `TextEditingController?` | *Required* | Text editing controller. | | `obscureText` | `bool` | `false` | Hides text for password inputs. | | `leading` | `Widget?` | *Required* | Leading icon or addon. | | `trailing` | `Widget?` | *Required* | Trailing icon or action button. | | `label` | `String?` | *Required* | Optional field label. | | `error` | `String?` | *Required* | Validation error text. | --- ## 🎨 Theming & Styling BloomInput automatically respects the active `BloomTheme` (including `BloomTheme.novaLight`, `BloomTheme.novaDark`, etc.) and responds seamlessly to dark mode changes, custom border radii, and brand color tokens. ### Theme Overrides Example ```dart Theme( data: Theme.of(context).copyWith( extensions: [ context.bloomTheme.copyWith( colors: context.bloomColors.copyWith( primary: const Color(0xFF8B5CF6), // Custom Purple Accent ), ), ], ), child: BloomInput(..., ) ``` --- ## 🔗 Related Resources - [Components Gallery](https://bloom-platform-ten.vercel.app/ui) - [Bloom Theming & Tokens Guide](https://bloom-platform-ten.vercel.app/docs/theming) - [Application Blocks Catalog](https://bloom-platform-ten.vercel.app/blocks) - [Bloom CLI Master Overview](https://bloom-platform-ten.vercel.app/docs/cli) --- ## Component: Input Group (`BloomInputGroup`) --- title: "Input Group (BloomInputGroup) — Bloom UI Primitive" description: "Compose input fields with leading/trailing text addons, dropdown selects, and action buttons in a unified border container." category: "Form Controls" url: "https://bloom-platform-ten.vercel.app/ui/input-group" component_name: "BloomInputGroup" pub_package: "bloom_ui" cli_command: "bloom ui add input_group" last_updated: "2026-08-15" --- # Input Group (`BloomInputGroup`) > Compose input fields with leading/trailing text addons, dropdown selects, and action buttons in a unified border container. **Category:** Form Controls **Package:** [`bloom_ui`](https://pub.dev/packages/bloom_ui) **CLI Install:** `bloom ui add input_group` **Web Preview:** [https://bloom-platform-ten.vercel.app/ui/input-group](https://bloom-platform-ten.vercel.app/ui/input-group) --- ## 📦 Installation & Setup ### 1. Using Bloom CLI (Recommended) Add the source code directly to your project without rigid package locks: ```bash bloom ui add input_group ``` ### 2. Using Pub.dev Package Add the dependency to your `pubspec.yaml`: ```yaml dependencies: bloom_ui: ^0.1.0 ``` ### 3. Import in Dart ```dart import 'package:bloom_ui/bloom_ui.dart'; ``` --- ## 🚀 Usage Example ```dart BloomInputGroup( addonLeading: const BloomInputGroupText('https://'), addonTrailing: BloomInputGroupButton( child: const Icon(Icons.copy, size: 14), onPressed: () {}, ), child: const BloomInput(placeholder: 'bloom.dev/username'), ) ``` --- ## 🛠️ API Reference ### Sub-Components & Slots | Sub-Component | Description | | :--- | :--- | | `BloomInputGroupAddon` | Prefix or suffix addon container. | | `BloomInputGroupText` | Muted prefix label like https:// or @. | | `BloomInputGroupButton` | Connected action button attached to input edge. | ### Properties & Parameters | Prop | Type | Default | Description | | :--- | :--- | :--- | :--- | | `child` | `Widget` | *Required* | The inner BloomInput field. | | `addonLeading` | `Widget?` | *Required* | Left connected addon. | | `addonTrailing` | `Widget?` | *Required* | Right connected addon or button. | --- ## 🎨 Theming & Styling BloomInputGroup automatically respects the active `BloomTheme` (including `BloomTheme.novaLight`, `BloomTheme.novaDark`, etc.) and responds seamlessly to dark mode changes, custom border radii, and brand color tokens. ### Theme Overrides Example ```dart Theme( data: Theme.of(context).copyWith( extensions: [ context.bloomTheme.copyWith( colors: context.bloomColors.copyWith( primary: const Color(0xFF8B5CF6), // Custom Purple Accent ), ), ], ), child: BloomInputGroup(..., ) ``` --- ## 🔗 Related Resources - [Components Gallery](https://bloom-platform-ten.vercel.app/ui) - [Bloom Theming & Tokens Guide](https://bloom-platform-ten.vercel.app/docs/theming) - [Application Blocks Catalog](https://bloom-platform-ten.vercel.app/blocks) - [Bloom CLI Master Overview](https://bloom-platform-ten.vercel.app/docs/cli) --- ## Component: Input OTP (`BloomInputOtp`) --- title: "Input OTP (BloomInputOtp) — Bloom UI Primitive" description: "Accessible one-time password / PIN entry with discrete animated slot boxes and separator styling." category: "Form Controls" url: "https://bloom-platform-ten.vercel.app/ui/input-otp" component_name: "BloomInputOtp" pub_package: "bloom_ui" cli_command: "bloom ui add input_otp" last_updated: "2026-08-15" --- # Input OTP (`BloomInputOtp`) > Accessible one-time password / PIN entry with discrete animated slot boxes and separator styling. **Category:** Form Controls **Package:** [`bloom_ui`](https://pub.dev/packages/bloom_ui) **CLI Install:** `bloom ui add input_otp` **Web Preview:** [https://bloom-platform-ten.vercel.app/ui/input-otp](https://bloom-platform-ten.vercel.app/ui/input-otp) --- ## 📦 Installation & Setup ### 1. Using Bloom CLI (Recommended) Add the source code directly to your project without rigid package locks: ```bash bloom ui add input_otp ``` ### 2. Using Pub.dev Package Add the dependency to your `pubspec.yaml`: ```yaml dependencies: bloom_ui: ^0.1.0 ``` ### 3. Import in Dart ```dart import 'package:bloom_ui/bloom_ui.dart'; ``` --- ## 🚀 Usage Example ```dart BloomInputOtp( length: 6, onCompleted: (pin) { print('Verified PIN: $pin'); }, ) ``` --- ## 🛠️ API Reference ### Properties & Parameters | Prop | Type | Default | Description | | :--- | :--- | :--- | :--- | | `length` | `int` | `6` | Number of OTP digits. | | `onCompleted` | `ValueChanged?` | *Required* | Called when all digits are filled. | | `onChanged` | `ValueChanged?` | *Required* | Called on every digit change. | --- ## 🎨 Theming & Styling BloomInputOtp automatically respects the active `BloomTheme` (including `BloomTheme.novaLight`, `BloomTheme.novaDark`, etc.) and responds seamlessly to dark mode changes, custom border radii, and brand color tokens. ### Theme Overrides Example ```dart Theme( data: Theme.of(context).copyWith( extensions: [ context.bloomTheme.copyWith( colors: context.bloomColors.copyWith( primary: const Color(0xFF8B5CF6), // Custom Purple Accent ), ), ], ), child: BloomInputOtp(..., ) ``` --- ## 🔗 Related Resources - [Components Gallery](https://bloom-platform-ten.vercel.app/ui) - [Bloom Theming & Tokens Guide](https://bloom-platform-ten.vercel.app/docs/theming) - [Application Blocks Catalog](https://bloom-platform-ten.vercel.app/blocks) - [Bloom CLI Master Overview](https://bloom-platform-ten.vercel.app/docs/cli) --- ## Component: Textarea (`BloomTextarea`) --- title: "Textarea (BloomTextarea) — Bloom UI Primitive" description: "Multi-line expanded text input for paragraphs, descriptions, or code prompts." category: "Form Controls" url: "https://bloom-platform-ten.vercel.app/ui/textarea" component_name: "BloomTextarea" pub_package: "bloom_ui" cli_command: "bloom ui add textarea" last_updated: "2026-08-15" --- # Textarea (`BloomTextarea`) > Multi-line expanded text input for paragraphs, descriptions, or code prompts. **Category:** Form Controls **Package:** [`bloom_ui`](https://pub.dev/packages/bloom_ui) **CLI Install:** `bloom ui add textarea` **Web Preview:** [https://bloom-platform-ten.vercel.app/ui/textarea](https://bloom-platform-ten.vercel.app/ui/textarea) --- ## 📦 Installation & Setup ### 1. Using Bloom CLI (Recommended) Add the source code directly to your project without rigid package locks: ```bash bloom ui add textarea ``` ### 2. Using Pub.dev Package Add the dependency to your `pubspec.yaml`: ```yaml dependencies: bloom_ui: ^0.1.0 ``` ### 3. Import in Dart ```dart import 'package:bloom_ui/bloom_ui.dart'; ``` --- ## 🚀 Usage Example ```dart BloomTextarea( placeholder: 'Type your message or system instructions here...', minLines: 4, onChanged: (val) {}, ) ``` --- ## 🛠️ API Reference ### Properties & Parameters | Prop | Type | Default | Description | | :--- | :--- | :--- | :--- | | `minLines` | `int` | `3` | Minimum visible lines. | | `placeholder` | `String?` | *Required* | Placeholder hint text. | | `controller` | `TextEditingController?` | *Required* | Text editing controller. | --- ## 🎨 Theming & Styling BloomTextarea automatically respects the active `BloomTheme` (including `BloomTheme.novaLight`, `BloomTheme.novaDark`, etc.) and responds seamlessly to dark mode changes, custom border radii, and brand color tokens. ### Theme Overrides Example ```dart Theme( data: Theme.of(context).copyWith( extensions: [ context.bloomTheme.copyWith( colors: context.bloomColors.copyWith( primary: const Color(0xFF8B5CF6), // Custom Purple Accent ), ), ], ), child: BloomTextarea(..., ) ``` --- ## 🔗 Related Resources - [Components Gallery](https://bloom-platform-ten.vercel.app/ui) - [Bloom Theming & Tokens Guide](https://bloom-platform-ten.vercel.app/docs/theming) - [Application Blocks Catalog](https://bloom-platform-ten.vercel.app/blocks) - [Bloom CLI Master Overview](https://bloom-platform-ten.vercel.app/docs/cli) --- ## Component: Checkbox (`BloomCheckbox`) --- title: "Checkbox (BloomCheckbox) — Bloom UI Primitive" description: "A 16x16px control that allows the user to toggle between checked, unchecked, and indeterminate states." category: "Form Controls" url: "https://bloom-platform-ten.vercel.app/ui/checkbox" component_name: "BloomCheckbox" pub_package: "bloom_ui" cli_command: "bloom ui add checkbox" last_updated: "2026-08-15" --- # Checkbox (`BloomCheckbox`) > A 16x16px control that allows the user to toggle between checked, unchecked, and indeterminate states. **Category:** Form Controls **Package:** [`bloom_ui`](https://pub.dev/packages/bloom_ui) **CLI Install:** `bloom ui add checkbox` **Web Preview:** [https://bloom-platform-ten.vercel.app/ui/checkbox](https://bloom-platform-ten.vercel.app/ui/checkbox) --- ## 📦 Installation & Setup ### 1. Using Bloom CLI (Recommended) Add the source code directly to your project without rigid package locks: ```bash bloom ui add checkbox ``` ### 2. Using Pub.dev Package Add the dependency to your `pubspec.yaml`: ```yaml dependencies: bloom_ui: ^0.1.0 ``` ### 3. Import in Dart ```dart import 'package:bloom_ui/bloom_ui.dart'; ``` --- ## 🚀 Usage Example ```dart BloomCheckbox( checked: true, label: const Text('Accept terms and privacy policy'), description: const Text('You agree to our automated telemetry guidelines.'), onChanged: (val) { print('Checked: $val'); }, ) ``` --- ## 🛠️ API Reference ### Properties & Parameters | Prop | Type | Default | Description | | :--- | :--- | :--- | :--- | | `checked` | `bool?` | *Required* | Controlled checked state (null = indeterminate). | | `label` | `Widget?` | *Required* | Optional adjacent label text. | | `description` | `Widget?` | *Required* | Optional subtext description. | | `onChanged` | `ValueChanged?` | *Required* | Callback when toggled. | --- ## 🎨 Theming & Styling BloomCheckbox automatically respects the active `BloomTheme` (including `BloomTheme.novaLight`, `BloomTheme.novaDark`, etc.) and responds seamlessly to dark mode changes, custom border radii, and brand color tokens. ### Theme Overrides Example ```dart Theme( data: Theme.of(context).copyWith( extensions: [ context.bloomTheme.copyWith( colors: context.bloomColors.copyWith( primary: const Color(0xFF8B5CF6), // Custom Purple Accent ), ), ], ), child: BloomCheckbox(..., ) ``` --- ## 🔗 Related Resources - [Components Gallery](https://bloom-platform-ten.vercel.app/ui) - [Bloom Theming & Tokens Guide](https://bloom-platform-ten.vercel.app/docs/theming) - [Application Blocks Catalog](https://bloom-platform-ten.vercel.app/blocks) - [Bloom CLI Master Overview](https://bloom-platform-ten.vercel.app/docs/cli) --- ## Component: Radio Group (`BloomRadioGroup`) --- title: "Radio Group (BloomRadioGroup) — Bloom UI Primitive" description: "A set of 16px circular check buttons where only one button can be checked at a time." category: "Form Controls" url: "https://bloom-platform-ten.vercel.app/ui/radio" component_name: "BloomRadioGroup" pub_package: "bloom_ui" cli_command: "bloom ui add radio" last_updated: "2026-08-15" --- # Radio Group (`BloomRadioGroup`) > A set of 16px circular check buttons where only one button can be checked at a time. **Category:** Form Controls **Package:** [`bloom_ui`](https://pub.dev/packages/bloom_ui) **CLI Install:** `bloom ui add radio` **Web Preview:** [https://bloom-platform-ten.vercel.app/ui/radio](https://bloom-platform-ten.vercel.app/ui/radio) --- ## 📦 Installation & Setup ### 1. Using Bloom CLI (Recommended) Add the source code directly to your project without rigid package locks: ```bash bloom ui add radio ``` ### 2. Using Pub.dev Package Add the dependency to your `pubspec.yaml`: ```yaml dependencies: bloom_ui: ^0.1.0 ``` ### 3. Import in Dart ```dart import 'package:bloom_ui/bloom_ui.dart'; ``` --- ## 🚀 Usage Example ```dart BloomRadioGroup( defaultValue: 'starter', options: const [ BloomRadioOption(value: 'starter', label: Text('Starter Plan ($0/mo)')), BloomRadioOption(value: 'pro', label: Text('Pro Plan ($29/mo)')), BloomRadioOption(value: 'enterprise', label: Text('Enterprise (Custom)')), ], onChanged: (plan) { print('Selected plan: $plan'); }, ) ``` --- ## 🛠️ API Reference ### Properties & Parameters | Prop | Type | Default | Description | | :--- | :--- | :--- | :--- | | `options` | `List>` | *Required* | List of radio options. | | `defaultValue` | `T?` | *Required* | Currently selected value. | | `onChanged` | `ValueChanged?` | *Required* | Callback when selected option changes. | --- ## 🎨 Theming & Styling BloomRadioGroup automatically respects the active `BloomTheme` (including `BloomTheme.novaLight`, `BloomTheme.novaDark`, etc.) and responds seamlessly to dark mode changes, custom border radii, and brand color tokens. ### Theme Overrides Example ```dart Theme( data: Theme.of(context).copyWith( extensions: [ context.bloomTheme.copyWith( colors: context.bloomColors.copyWith( primary: const Color(0xFF8B5CF6), // Custom Purple Accent ), ), ], ), child: BloomRadioGroup(..., ) ``` --- ## 🔗 Related Resources - [Components Gallery](https://bloom-platform-ten.vercel.app/ui) - [Bloom Theming & Tokens Guide](https://bloom-platform-ten.vercel.app/docs/theming) - [Application Blocks Catalog](https://bloom-platform-ten.vercel.app/blocks) - [Bloom CLI Master Overview](https://bloom-platform-ten.vercel.app/docs/cli) --- ## Component: Switch (`BloomSwitch`) --- title: "Switch (BloomSwitch) — Bloom UI Primitive" description: "A 32x18px control that allows the user to toggle between checked and unchecked states." category: "Form Controls" url: "https://bloom-platform-ten.vercel.app/ui/switch" component_name: "BloomSwitch" pub_package: "bloom_ui" cli_command: "bloom ui add switch" last_updated: "2026-08-15" --- # Switch (`BloomSwitch`) > A 32x18px control that allows the user to toggle between checked and unchecked states. **Category:** Form Controls **Package:** [`bloom_ui`](https://pub.dev/packages/bloom_ui) **CLI Install:** `bloom ui add switch` **Web Preview:** [https://bloom-platform-ten.vercel.app/ui/switch](https://bloom-platform-ten.vercel.app/ui/switch) --- ## 📦 Installation & Setup ### 1. Using Bloom CLI (Recommended) Add the source code directly to your project without rigid package locks: ```bash bloom ui add switch ``` ### 2. Using Pub.dev Package Add the dependency to your `pubspec.yaml`: ```yaml dependencies: bloom_ui: ^0.1.0 ``` ### 3. Import in Dart ```dart import 'package:bloom_ui/bloom_ui.dart'; ``` --- ## 🚀 Usage Example ```dart BloomSwitch( checked: true, label: const Text('Push Notifications'), onChanged: (enabled) { print('Notifications: $enabled'); }, ) ``` --- ## 🛠️ API Reference **Available Sizes:** `sm (24x14px)`, `defaultSize (32x18px)` ### Properties & Parameters | Prop | Type | Default | Description | | :--- | :--- | :--- | :--- | | `checked` | `bool` | *Required* | Controlled on/off state. | | `size` | `BloomSwitchSize` | `defaultSize` | Size step (sm or default). | | `label` | `Widget?` | *Required* | Adjacent label text. | | `onChanged` | `ValueChanged?` | *Required* | Callback when toggled. | --- ## 🎨 Theming & Styling BloomSwitch automatically respects the active `BloomTheme` (including `BloomTheme.novaLight`, `BloomTheme.novaDark`, etc.) and responds seamlessly to dark mode changes, custom border radii, and brand color tokens. ### Theme Overrides Example ```dart Theme( data: Theme.of(context).copyWith( extensions: [ context.bloomTheme.copyWith( colors: context.bloomColors.copyWith( primary: const Color(0xFF8B5CF6), // Custom Purple Accent ), ), ], ), child: BloomSwitch(..., ) ``` --- ## 🔗 Related Resources - [Components Gallery](https://bloom-platform-ten.vercel.app/ui) - [Bloom Theming & Tokens Guide](https://bloom-platform-ten.vercel.app/docs/theming) - [Application Blocks Catalog](https://bloom-platform-ten.vercel.app/blocks) - [Bloom CLI Master Overview](https://bloom-platform-ten.vercel.app/docs/cli) --- ## Component: Slider (`BloomSlider`) --- title: "Slider (BloomSlider) — Bloom UI Primitive" description: "A 4px track slider with 12px white ring thumb for selecting values from a range." category: "Form Controls" url: "https://bloom-platform-ten.vercel.app/ui/slider" component_name: "BloomSlider" pub_package: "bloom_ui" cli_command: "bloom ui add slider" last_updated: "2026-08-15" --- # Slider (`BloomSlider`) > A 4px track slider with 12px white ring thumb for selecting values from a range. **Category:** Form Controls **Package:** [`bloom_ui`](https://pub.dev/packages/bloom_ui) **CLI Install:** `bloom ui add slider` **Web Preview:** [https://bloom-platform-ten.vercel.app/ui/slider](https://bloom-platform-ten.vercel.app/ui/slider) --- ## 📦 Installation & Setup ### 1. Using Bloom CLI (Recommended) Add the source code directly to your project without rigid package locks: ```bash bloom ui add slider ``` ### 2. Using Pub.dev Package Add the dependency to your `pubspec.yaml`: ```yaml dependencies: bloom_ui: ^0.1.0 ``` ### 3. Import in Dart ```dart import 'package:bloom_ui/bloom_ui.dart'; ``` --- ## 🚀 Usage Example ```dart BloomSlider( value: 0.75, min: 0.0, max: 1.0, onChanged: (v) { print('Volume: $v'); }, ) ``` --- ## 🛠️ API Reference ### Properties & Parameters | Prop | Type | Default | Description | | :--- | :--- | :--- | :--- | | `value` | `double` | *Required* | Current value (0.0 to 1.0). | | `onChanged` | `ValueChanged?` | *Required* | Callback when sliding. | | `min` | `double` | `0.0` | Minimum slider bound. | | `max` | `double` | `1.0` | Maximum slider bound. | --- ## 🎨 Theming & Styling BloomSlider automatically respects the active `BloomTheme` (including `BloomTheme.novaLight`, `BloomTheme.novaDark`, etc.) and responds seamlessly to dark mode changes, custom border radii, and brand color tokens. ### Theme Overrides Example ```dart Theme( data: Theme.of(context).copyWith( extensions: [ context.bloomTheme.copyWith( colors: context.bloomColors.copyWith( primary: const Color(0xFF8B5CF6), // Custom Purple Accent ), ), ], ), child: BloomSlider(..., ) ``` --- ## 🔗 Related Resources - [Components Gallery](https://bloom-platform-ten.vercel.app/ui) - [Bloom Theming & Tokens Guide](https://bloom-platform-ten.vercel.app/docs/theming) - [Application Blocks Catalog](https://bloom-platform-ten.vercel.app/blocks) - [Bloom CLI Master Overview](https://bloom-platform-ten.vercel.app/docs/cli) --- ## Component: Select (`BloomSelect`) --- title: "Select (BloomSelect) — Bloom UI Primitive" description: "Displays a 32px dropdown select picker matching shadcn base-nova styling." category: "Form Controls" url: "https://bloom-platform-ten.vercel.app/ui/select" component_name: "BloomSelect" pub_package: "bloom_ui" cli_command: "bloom ui add select" last_updated: "2026-08-15" --- # Select (`BloomSelect`) > Displays a 32px dropdown select picker matching shadcn base-nova styling. **Category:** Form Controls **Package:** [`bloom_ui`](https://pub.dev/packages/bloom_ui) **CLI Install:** `bloom ui add select` **Web Preview:** [https://bloom-platform-ten.vercel.app/ui/select](https://bloom-platform-ten.vercel.app/ui/select) --- ## 📦 Installation & Setup ### 1. Using Bloom CLI (Recommended) Add the source code directly to your project without rigid package locks: ```bash bloom ui add select ``` ### 2. Using Pub.dev Package Add the dependency to your `pubspec.yaml`: ```yaml dependencies: bloom_ui: ^0.1.0 ``` ### 3. Import in Dart ```dart import 'package:bloom_ui/bloom_ui.dart'; ``` --- ## 🚀 Usage Example ```dart BloomSelect( value: 'nova', items: const [ BloomSelectItem(value: 'nova', label: 'Nova (Crisp Neutral)'), BloomSelectItem(value: 'vega', label: 'Vega (Warm Amber)'), BloomSelectItem(value: 'lyra', label: 'Lyra (Tech Violet)'), ], onChanged: (val) { print('Selected style: $val'); }, ) ``` --- ## 🛠️ API Reference ### Properties & Parameters | Prop | Type | Default | Description | | :--- | :--- | :--- | :--- | | `value` | `T?` | *Required* | Currently selected value. | | `items` | `List>` | *Required* | Available select items. | | `onChanged` | `ValueChanged?` | *Required* | Callback when selection changes. | | `hintText` | `String?` | *Required* | Placeholder hint text. | --- ## 🎨 Theming & Styling BloomSelect automatically respects the active `BloomTheme` (including `BloomTheme.novaLight`, `BloomTheme.novaDark`, etc.) and responds seamlessly to dark mode changes, custom border radii, and brand color tokens. ### Theme Overrides Example ```dart Theme( data: Theme.of(context).copyWith( extensions: [ context.bloomTheme.copyWith( colors: context.bloomColors.copyWith( primary: const Color(0xFF8B5CF6), // Custom Purple Accent ), ), ], ), child: BloomSelect(..., ) ``` --- ## 🔗 Related Resources - [Components Gallery](https://bloom-platform-ten.vercel.app/ui) - [Bloom Theming & Tokens Guide](https://bloom-platform-ten.vercel.app/docs/theming) - [Application Blocks Catalog](https://bloom-platform-ten.vercel.app/blocks) - [Bloom CLI Master Overview](https://bloom-platform-ten.vercel.app/docs/cli) --- ## Component: Combobox (`BloomCombobox`) --- title: "Combobox (BloomCombobox) — Bloom UI Primitive" description: "Searchable autocomplete dropdown menu with multi-select tokenized chips support." category: "Form Controls" url: "https://bloom-platform-ten.vercel.app/ui/combobox" component_name: "BloomCombobox" pub_package: "bloom_ui" cli_command: "bloom ui add combobox" last_updated: "2026-08-15" --- # Combobox (`BloomCombobox`) > Searchable autocomplete dropdown menu with multi-select tokenized chips support. **Category:** Form Controls **Package:** [`bloom_ui`](https://pub.dev/packages/bloom_ui) **CLI Install:** `bloom ui add combobox` **Web Preview:** [https://bloom-platform-ten.vercel.app/ui/combobox](https://bloom-platform-ten.vercel.app/ui/combobox) --- ## 📦 Installation & Setup ### 1. Using Bloom CLI (Recommended) Add the source code directly to your project without rigid package locks: ```bash bloom ui add combobox ``` ### 2. Using Pub.dev Package Add the dependency to your `pubspec.yaml`: ```yaml dependencies: bloom_ui: ^0.1.0 ``` ### 3. Import in Dart ```dart import 'package:bloom_ui/bloom_ui.dart'; ``` --- ## 🚀 Usage Example ```dart BloomCombobox( placeholder: 'Select framework...', options: const [ BloomComboboxOption(value: 'flutter', label: 'Flutter (Dart)'), BloomComboboxOption(value: 'nextjs', label: 'Next.js (React)'), BloomComboboxOption(value: 'astro', label: 'Astro (Web)'), ], onChanged: (val) { print('Selected: $val'); }, ) ``` --- ## 🛠️ API Reference ### Properties & Parameters | Prop | Type | Default | Description | | :--- | :--- | :--- | :--- | | `options` | `List>` | *Required* | All filterable options. | | `onChanged` | `ValueChanged?` | *Required* | Called when an option is chosen. | | `placeholder` | `String` | `'Select option...'` | Placeholder label. | --- ## 🎨 Theming & Styling BloomCombobox automatically respects the active `BloomTheme` (including `BloomTheme.novaLight`, `BloomTheme.novaDark`, etc.) and responds seamlessly to dark mode changes, custom border radii, and brand color tokens. ### Theme Overrides Example ```dart Theme( data: Theme.of(context).copyWith( extensions: [ context.bloomTheme.copyWith( colors: context.bloomColors.copyWith( primary: const Color(0xFF8B5CF6), // Custom Purple Accent ), ), ], ), child: BloomCombobox(..., ) ``` --- ## 🔗 Related Resources - [Components Gallery](https://bloom-platform-ten.vercel.app/ui) - [Bloom Theming & Tokens Guide](https://bloom-platform-ten.vercel.app/docs/theming) - [Application Blocks Catalog](https://bloom-platform-ten.vercel.app/blocks) - [Bloom CLI Master Overview](https://bloom-platform-ten.vercel.app/docs/cli) --- ## Component: Calendar (`BloomCalendar`) --- title: "Calendar (BloomCalendar) — Bloom UI Primitive" description: "A date picker calendar component supporting single, range, and multiple date selections." category: "Form Controls" url: "https://bloom-platform-ten.vercel.app/ui/calendar" component_name: "BloomCalendar" pub_package: "bloom_ui" cli_command: "bloom ui add calendar" last_updated: "2026-08-15" --- # Calendar (`BloomCalendar`) > A date picker calendar component supporting single, range, and multiple date selections. **Category:** Form Controls **Package:** [`bloom_ui`](https://pub.dev/packages/bloom_ui) **CLI Install:** `bloom ui add calendar` **Web Preview:** [https://bloom-platform-ten.vercel.app/ui/calendar](https://bloom-platform-ten.vercel.app/ui/calendar) --- ## 📦 Installation & Setup ### 1. Using Bloom CLI (Recommended) Add the source code directly to your project without rigid package locks: ```bash bloom ui add calendar ``` ### 2. Using Pub.dev Package Add the dependency to your `pubspec.yaml`: ```yaml dependencies: bloom_ui: ^0.1.0 ``` ### 3. Import in Dart ```dart import 'package:bloom_ui/bloom_ui.dart'; ``` --- ## 🚀 Usage Example ```dart BloomCalendar.single( initialDate: DateTime.now(), onDaySelected: (date) { print('Selected date: $date'); }, ) ``` --- ## 🛠️ API Reference ### Properties & Parameters | Prop | Type | Default | Description | | :--- | :--- | :--- | :--- | | `mode` | `BloomCalendarMode` | `single` | Selection mode: single or range. | | `initialDate` | `DateTime?` | *Required* | Initial selected date. | | `onDaySelected` | `ValueChanged?` | *Required* | Callback when day is tapped. | --- ## 🎨 Theming & Styling BloomCalendar automatically respects the active `BloomTheme` (including `BloomTheme.novaLight`, `BloomTheme.novaDark`, etc.) and responds seamlessly to dark mode changes, custom border radii, and brand color tokens. ### Theme Overrides Example ```dart Theme( data: Theme.of(context).copyWith( extensions: [ context.bloomTheme.copyWith( colors: context.bloomColors.copyWith( primary: const Color(0xFF8B5CF6), // Custom Purple Accent ), ), ], ), child: BloomCalendar.single(..., ) ``` --- ## 🔗 Related Resources - [Components Gallery](https://bloom-platform-ten.vercel.app/ui) - [Bloom Theming & Tokens Guide](https://bloom-platform-ten.vercel.app/docs/theming) - [Application Blocks Catalog](https://bloom-platform-ten.vercel.app/blocks) - [Bloom CLI Master Overview](https://bloom-platform-ten.vercel.app/docs/cli) --- ## Component: Field (`BloomField`) --- title: "Field (BloomField) — Bloom UI Primitive" description: "A complete composable form field wrapper providing FieldLabel, FieldDescription, and FieldError slots." category: "Form Controls" url: "https://bloom-platform-ten.vercel.app/ui/field" component_name: "BloomField" pub_package: "bloom_ui" cli_command: "bloom ui add field" last_updated: "2026-08-15" --- # Field (`BloomField`) > A complete composable form field wrapper providing FieldLabel, FieldDescription, and FieldError slots. **Category:** Form Controls **Package:** [`bloom_ui`](https://pub.dev/packages/bloom_ui) **CLI Install:** `bloom ui add field` **Web Preview:** [https://bloom-platform-ten.vercel.app/ui/field](https://bloom-platform-ten.vercel.app/ui/field) --- ## 📦 Installation & Setup ### 1. Using Bloom CLI (Recommended) Add the source code directly to your project without rigid package locks: ```bash bloom ui add field ``` ### 2. Using Pub.dev Package Add the dependency to your `pubspec.yaml`: ```yaml dependencies: bloom_ui: ^0.1.0 ``` ### 3. Import in Dart ```dart import 'package:bloom_ui/bloom_ui.dart'; ``` --- ## 🚀 Usage Example ```dart BloomField( label: const BloomFieldLabel('Email Address', required: true), child: const BloomInput(placeholder: 'alex@example.com'), description: const BloomFieldDescription('We will never share your email.'), ) ``` --- ## 🛠️ API Reference ### Sub-Components & Slots | Sub-Component | Description | | :--- | :--- | | `BloomFieldGroup` | Groups multiple adjacent fields. | | `BloomFieldLabel` | Accessible label text with optional required marker. | | `BloomFieldDescription` | Muted explanatory helper text. | | `BloomFieldError` | Validation error text displayed below input. | ### Properties & Parameters | Prop | Type | Default | Description | | :--- | :--- | :--- | :--- | | `label` | `Widget?` | *Required* | Label slot. | | `child` | `Widget` | *Required* | Form input control widget. | | `description` | `Widget?` | *Required* | Helper description slot. | | `error` | `Widget?` | *Required* | Error message slot. | --- ## 🎨 Theming & Styling BloomField automatically respects the active `BloomTheme` (including `BloomTheme.novaLight`, `BloomTheme.novaDark`, etc.) and responds seamlessly to dark mode changes, custom border radii, and brand color tokens. ### Theme Overrides Example ```dart Theme( data: Theme.of(context).copyWith( extensions: [ context.bloomTheme.copyWith( colors: context.bloomColors.copyWith( primary: const Color(0xFF8B5CF6), // Custom Purple Accent ), ), ], ), child: BloomField(..., ) ``` --- ## 🔗 Related Resources - [Components Gallery](https://bloom-platform-ten.vercel.app/ui) - [Bloom Theming & Tokens Guide](https://bloom-platform-ten.vercel.app/docs/theming) - [Application Blocks Catalog](https://bloom-platform-ten.vercel.app/blocks) - [Bloom CLI Master Overview](https://bloom-platform-ten.vercel.app/docs/cli) --- ## Component: Card (`BloomCard`) --- title: "Card (BloomCard) — Bloom UI Primitive" description: "Displays a card with title, description, content, action header slots, and a shaded border-divided footer." category: "Layout & Structure" url: "https://bloom-platform-ten.vercel.app/ui/card" component_name: "BloomCard" pub_package: "bloom_ui" cli_command: "bloom ui add card" last_updated: "2026-08-15" --- # Card (`BloomCard`) > Displays a card with title, description, content, action header slots, and a shaded border-divided footer. **Category:** Layout & Structure **Package:** [`bloom_ui`](https://pub.dev/packages/bloom_ui) **CLI Install:** `bloom ui add card` **Web Preview:** [https://bloom-platform-ten.vercel.app/ui/card](https://bloom-platform-ten.vercel.app/ui/card) --- ## 📦 Installation & Setup ### 1. Using Bloom CLI (Recommended) Add the source code directly to your project without rigid package locks: ```bash bloom ui add card ``` ### 2. Using Pub.dev Package Add the dependency to your `pubspec.yaml`: ```yaml dependencies: bloom_ui: ^0.1.0 ``` ### 3. Import in Dart ```dart import 'package:bloom_ui/bloom_ui.dart'; ``` --- ## 🚀 Usage Example ```dart BloomCard( header: const BloomCardHeader( title: BloomCardTitle('Project Overview'), description: BloomCardDescription('Deployment metrics for production cluster.'), ), content: const Text('All services operating normally with 99.99% uptime.'), footer: BloomCardFooter( child: Row( mainAxisAlignment: MainAxisAlignment.end, children: [ BloomButton( size: BloomButtonSize.sm, onPressed: () {}, child: const Text('View Logs'), ), ], ), ), ) ``` --- ## 🛠️ API Reference ### Sub-Components & Slots | Sub-Component | Description | | :--- | :--- | | `BloomCardHeader` | Top section with title, description, and action button. | | `BloomCardTitle` | 16px bold title. | | `BloomCardDescription` | Muted 13px subtitle. | | `BloomCardAction` | Optional header action button placed in top right. | | `BloomCardContent` | Main card body area. | | `BloomCardFooter` | Shaded bottom bar with top divider border. | ### Properties & Parameters | Prop | Type | Default | Description | | :--- | :--- | :--- | :--- | | `header` | `Widget?` | *Required* | Card header slot. | | `content` | `Widget?` | *Required* | Main content slot. | | `footer` | `Widget?` | *Required* | Card footer slot. | --- ## 🎨 Theming & Styling BloomCard automatically respects the active `BloomTheme` (including `BloomTheme.novaLight`, `BloomTheme.novaDark`, etc.) and responds seamlessly to dark mode changes, custom border radii, and brand color tokens. ### Theme Overrides Example ```dart Theme( data: Theme.of(context).copyWith( extensions: [ context.bloomTheme.copyWith( colors: context.bloomColors.copyWith( primary: const Color(0xFF8B5CF6), // Custom Purple Accent ), ), ], ), child: BloomCard(..., ) ``` --- ## 🔗 Related Resources - [Components Gallery](https://bloom-platform-ten.vercel.app/ui) - [Bloom Theming & Tokens Guide](https://bloom-platform-ten.vercel.app/docs/theming) - [Application Blocks Catalog](https://bloom-platform-ten.vercel.app/blocks) - [Bloom CLI Master Overview](https://bloom-platform-ten.vercel.app/docs/cli) --- ## Component: Accordion (`BloomAccordion`) --- title: "Accordion (BloomAccordion) — Bloom UI Primitive" description: "A vertically stacked set of interactive headings that each reveal a section of content." category: "Layout & Structure" url: "https://bloom-platform-ten.vercel.app/ui/accordion" component_name: "BloomAccordion" pub_package: "bloom_ui" cli_command: "bloom ui add accordion" last_updated: "2026-08-15" --- # Accordion (`BloomAccordion`) > A vertically stacked set of interactive headings that each reveal a section of content. **Category:** Layout & Structure **Package:** [`bloom_ui`](https://pub.dev/packages/bloom_ui) **CLI Install:** `bloom ui add accordion` **Web Preview:** [https://bloom-platform-ten.vercel.app/ui/accordion](https://bloom-platform-ten.vercel.app/ui/accordion) --- ## 📦 Installation & Setup ### 1. Using Bloom CLI (Recommended) Add the source code directly to your project without rigid package locks: ```bash bloom ui add accordion ``` ### 2. Using Pub.dev Package Add the dependency to your `pubspec.yaml`: ```yaml dependencies: bloom_ui: ^0.1.0 ``` ### 3. Import in Dart ```dart import 'package:bloom_ui/bloom_ui.dart'; ``` --- ## 🚀 Usage Example ```dart BloomAccordion( items: const [ BloomAccordionItem( title: 'How do OTA updates work?', content: Text('Shorebird downloads Dart AOT patches in the background.'), ), BloomAccordionItem( title: 'Can I copy-paste components?', content: Text('Yes! Use the bloom ui CLI to copy source files directly.'), ), ], ) ``` --- ## 🛠️ API Reference ### Properties & Parameters | Prop | Type | Default | Description | | :--- | :--- | :--- | :--- | | `items` | `List` | *Required* | List of accordion panels. | --- ## 🎨 Theming & Styling BloomAccordion automatically respects the active `BloomTheme` (including `BloomTheme.novaLight`, `BloomTheme.novaDark`, etc.) and responds seamlessly to dark mode changes, custom border radii, and brand color tokens. ### Theme Overrides Example ```dart Theme( data: Theme.of(context).copyWith( extensions: [ context.bloomTheme.copyWith( colors: context.bloomColors.copyWith( primary: const Color(0xFF8B5CF6), // Custom Purple Accent ), ), ], ), child: BloomAccordion(..., ) ``` --- ## 🔗 Related Resources - [Components Gallery](https://bloom-platform-ten.vercel.app/ui) - [Bloom Theming & Tokens Guide](https://bloom-platform-ten.vercel.app/docs/theming) - [Application Blocks Catalog](https://bloom-platform-ten.vercel.app/blocks) - [Bloom CLI Master Overview](https://bloom-platform-ten.vercel.app/docs/cli) --- ## Component: Tabs (`BloomTabs`) --- title: "Tabs (BloomTabs) — Bloom UI Primitive" description: "A set of layered sections of content—known as tab panels—that are displayed one at a time. Supports pill and line underline variants." category: "Layout & Structure" url: "https://bloom-platform-ten.vercel.app/ui/tabs" component_name: "BloomTabs" pub_package: "bloom_ui" cli_command: "bloom ui add tabs" last_updated: "2026-08-15" --- # Tabs (`BloomTabs`) > A set of layered sections of content—known as tab panels—that are displayed one at a time. Supports pill and line underline variants. **Category:** Layout & Structure **Package:** [`bloom_ui`](https://pub.dev/packages/bloom_ui) **CLI Install:** `bloom ui add tabs` **Web Preview:** [https://bloom-platform-ten.vercel.app/ui/tabs](https://bloom-platform-ten.vercel.app/ui/tabs) --- ## 📦 Installation & Setup ### 1. Using Bloom CLI (Recommended) Add the source code directly to your project without rigid package locks: ```bash bloom ui add tabs ``` ### 2. Using Pub.dev Package Add the dependency to your `pubspec.yaml`: ```yaml dependencies: bloom_ui: ^0.1.0 ``` ### 3. Import in Dart ```dart import 'package:bloom_ui/bloom_ui.dart'; ``` --- ## 🚀 Usage Example ```dart BloomTabs( defaultValue: 'overview', items: const [ BloomTabItem(value: 'overview', label: Text('Overview'), content: Text('Overview panel')), BloomTabItem(value: 'analytics', label: Text('Analytics'), content: Text('Analytics charts')), BloomTabItem(value: 'settings', label: Text('Settings'), content: Text('Settings config')), ], ) ``` --- ## 🛠️ API Reference **Available Variants:** `defaultVariant (pill)`, `line (underline)` ### Properties & Parameters | Prop | Type | Default | Description | | :--- | :--- | :--- | :--- | | `items` | `List>` | *Required* | Tab headers and corresponding panel views. | | `defaultValue` | `T` | *Required* | Initial active tab key. | | `variant` | `TabsVariant` | `defaultVariant` | Visual style: pill or line. | --- ## 🎨 Theming & Styling BloomTabs automatically respects the active `BloomTheme` (including `BloomTheme.novaLight`, `BloomTheme.novaDark`, etc.) and responds seamlessly to dark mode changes, custom border radii, and brand color tokens. ### Theme Overrides Example ```dart Theme( data: Theme.of(context).copyWith( extensions: [ context.bloomTheme.copyWith( colors: context.bloomColors.copyWith( primary: const Color(0xFF8B5CF6), // Custom Purple Accent ), ), ], ), child: BloomTabs(..., ) ``` --- ## 🔗 Related Resources - [Components Gallery](https://bloom-platform-ten.vercel.app/ui) - [Bloom Theming & Tokens Guide](https://bloom-platform-ten.vercel.app/docs/theming) - [Application Blocks Catalog](https://bloom-platform-ten.vercel.app/blocks) - [Bloom CLI Master Overview](https://bloom-platform-ten.vercel.app/docs/cli) --- ## Component: Skeleton (`BloomSkeleton`) --- title: "Skeleton (BloomSkeleton) — Bloom UI Primitive" description: "Used to show a placeholder while content is loading with a subtle pulse animation." category: "Layout & Structure" url: "https://bloom-platform-ten.vercel.app/ui/skeleton" component_name: "BloomSkeleton" pub_package: "bloom_ui" cli_command: "bloom ui add skeleton" last_updated: "2026-08-15" --- # Skeleton (`BloomSkeleton`) > Used to show a placeholder while content is loading with a subtle pulse animation. **Category:** Layout & Structure **Package:** [`bloom_ui`](https://pub.dev/packages/bloom_ui) **CLI Install:** `bloom ui add skeleton` **Web Preview:** [https://bloom-platform-ten.vercel.app/ui/skeleton](https://bloom-platform-ten.vercel.app/ui/skeleton) --- ## 📦 Installation & Setup ### 1. Using Bloom CLI (Recommended) Add the source code directly to your project without rigid package locks: ```bash bloom ui add skeleton ``` ### 2. Using Pub.dev Package Add the dependency to your `pubspec.yaml`: ```yaml dependencies: bloom_ui: ^0.1.0 ``` ### 3. Import in Dart ```dart import 'package:bloom_ui/bloom_ui.dart'; ``` --- ## 🚀 Usage Example ```dart Row( children: const [ BloomSkeleton(width: 40, height: 40, borderRadius: BorderRadius.all(Radius.circular(20))), SizedBox(width: 12), Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ BloomSkeleton(width: 140, height: 14), SizedBox(height: 6), BloomSkeleton(width: 80, height: 12), ], ), ], ) ``` --- ## 🛠️ API Reference ### Properties & Parameters | Prop | Type | Default | Description | | :--- | :--- | :--- | :--- | | `width` | `double?` | *Required* | Skeleton width. | | `height` | `double?` | *Required* | Skeleton height. | | `borderRadius` | `BorderRadius?` | *Required* | Corner roundness. | --- ## 🎨 Theming & Styling BloomSkeleton automatically respects the active `BloomTheme` (including `BloomTheme.novaLight`, `BloomTheme.novaDark`, etc.) and responds seamlessly to dark mode changes, custom border radii, and brand color tokens. ### Theme Overrides Example ```dart Theme( data: Theme.of(context).copyWith( extensions: [ context.bloomTheme.copyWith( colors: context.bloomColors.copyWith( primary: const Color(0xFF8B5CF6), // Custom Purple Accent ), ), ], ), child: Row(..., ) ``` --- ## 🔗 Related Resources - [Components Gallery](https://bloom-platform-ten.vercel.app/ui) - [Bloom Theming & Tokens Guide](https://bloom-platform-ten.vercel.app/docs/theming) - [Application Blocks Catalog](https://bloom-platform-ten.vercel.app/blocks) - [Bloom CLI Master Overview](https://bloom-platform-ten.vercel.app/docs/cli) --- ## Component: Progress (`BloomProgress`) --- title: "Progress (BloomProgress) — Bloom UI Primitive" description: "Displays a 4px height linear progress bar indicating completion of an operation." category: "Layout & Structure" url: "https://bloom-platform-ten.vercel.app/ui/progress" component_name: "BloomProgress" pub_package: "bloom_ui" cli_command: "bloom ui add progress" last_updated: "2026-08-15" --- # Progress (`BloomProgress`) > Displays a 4px height linear progress bar indicating completion of an operation. **Category:** Layout & Structure **Package:** [`bloom_ui`](https://pub.dev/packages/bloom_ui) **CLI Install:** `bloom ui add progress` **Web Preview:** [https://bloom-platform-ten.vercel.app/ui/progress](https://bloom-platform-ten.vercel.app/ui/progress) --- ## 📦 Installation & Setup ### 1. Using Bloom CLI (Recommended) Add the source code directly to your project without rigid package locks: ```bash bloom ui add progress ``` ### 2. Using Pub.dev Package Add the dependency to your `pubspec.yaml`: ```yaml dependencies: bloom_ui: ^0.1.0 ``` ### 3. Import in Dart ```dart import 'package:bloom_ui/bloom_ui.dart'; ``` --- ## 🚀 Usage Example ```dart BloomProgress( value: 0.68, ) ``` --- ## 🛠️ API Reference ### Properties & Parameters | Prop | Type | Default | Description | | :--- | :--- | :--- | :--- | | `value` | `double` | *Required* | Progress percentage between 0.0 and 1.0. | | `color` | `Color?` | *Required* | Custom indicator color. | --- ## 🎨 Theming & Styling BloomProgress automatically respects the active `BloomTheme` (including `BloomTheme.novaLight`, `BloomTheme.novaDark`, etc.) and responds seamlessly to dark mode changes, custom border radii, and brand color tokens. ### Theme Overrides Example ```dart Theme( data: Theme.of(context).copyWith( extensions: [ context.bloomTheme.copyWith( colors: context.bloomColors.copyWith( primary: const Color(0xFF8B5CF6), // Custom Purple Accent ), ), ], ), child: BloomProgress(..., ) ``` --- ## 🔗 Related Resources - [Components Gallery](https://bloom-platform-ten.vercel.app/ui) - [Bloom Theming & Tokens Guide](https://bloom-platform-ten.vercel.app/docs/theming) - [Application Blocks Catalog](https://bloom-platform-ten.vercel.app/blocks) - [Bloom CLI Master Overview](https://bloom-platform-ten.vercel.app/docs/cli) --- ## Component: Dialog (`BloomDialog`) --- title: "Dialog (BloomDialog) — Bloom UI Primitive" description: "A modal window that appears in front of app content with shaded footer and compound title/description slots." category: "Feedback & Overlays" url: "https://bloom-platform-ten.vercel.app/ui/dialog" component_name: "BloomDialog" pub_package: "bloom_ui" cli_command: "bloom ui add dialog" last_updated: "2026-08-15" --- # Dialog (`BloomDialog`) > A modal window that appears in front of app content with shaded footer and compound title/description slots. **Category:** Feedback & Overlays **Package:** [`bloom_ui`](https://pub.dev/packages/bloom_ui) **CLI Install:** `bloom ui add dialog` **Web Preview:** [https://bloom-platform-ten.vercel.app/ui/dialog](https://bloom-platform-ten.vercel.app/ui/dialog) --- ## 📦 Installation & Setup ### 1. Using Bloom CLI (Recommended) Add the source code directly to your project without rigid package locks: ```bash bloom ui add dialog ``` ### 2. Using Pub.dev Package Add the dependency to your `pubspec.yaml`: ```yaml dependencies: bloom_ui: ^0.1.0 ``` ### 3. Import in Dart ```dart import 'package:bloom_ui/bloom_ui.dart'; ``` --- ## 🚀 Usage Example ```dart BloomDialog.show( context: context, builder: (ctx) => BloomDialog( header: const BloomDialogHeader( title: BloomDialogTitle('Edit Profile'), description: BloomDialogDescription('Make changes to your account here.'), ), content: const BloomInput(placeholder: 'Display Name'), footer: BloomDialogFooter( child: BloomButton( size: BloomButtonSize.sm, onPressed: () => Navigator.pop(ctx), child: const Text('Save'), ), ), ), ) ``` --- ## 🛠️ API Reference ### Sub-Components & Slots | Sub-Component | Description | | :--- | :--- | | `BloomDialogHeader` | Header container with title and description. | | `BloomDialogTitle` | Bold dialog title. | | `BloomDialogDescription` | Muted subtitle explanation. | | `BloomDialogContent` | Main dialog body. | | `BloomDialogFooter` | Shaded footer bar for action buttons. | ### Properties & Parameters | Prop | Type | Default | Description | | :--- | :--- | :--- | :--- | | `title` | `Widget?` | *Required* | Title slot widget. | | `description` | `Widget?` | *Required* | Description slot widget. | | `content` | `Widget?` | *Required* | Content body. | | `footer` | `Widget?` | *Required* | Action button row. | --- ## 🎨 Theming & Styling BloomDialog automatically respects the active `BloomTheme` (including `BloomTheme.novaLight`, `BloomTheme.novaDark`, etc.) and responds seamlessly to dark mode changes, custom border radii, and brand color tokens. ### Theme Overrides Example ```dart Theme( data: Theme.of(context).copyWith( extensions: [ context.bloomTheme.copyWith( colors: context.bloomColors.copyWith( primary: const Color(0xFF8B5CF6), // Custom Purple Accent ), ), ], ), child: BloomDialog.show(..., ) ``` --- ## 🔗 Related Resources - [Components Gallery](https://bloom-platform-ten.vercel.app/ui) - [Bloom Theming & Tokens Guide](https://bloom-platform-ten.vercel.app/docs/theming) - [Application Blocks Catalog](https://bloom-platform-ten.vercel.app/blocks) - [Bloom CLI Master Overview](https://bloom-platform-ten.vercel.app/docs/cli) --- ## Component: Alert Dialog (`BloomAlertDialog`) --- title: "Alert Dialog (BloomAlertDialog) — Bloom UI Primitive" description: "A modal dialog that interrupts the user with important content and expects a response." category: "Feedback & Overlays" url: "https://bloom-platform-ten.vercel.app/ui/alert-dialog" component_name: "BloomAlertDialog" pub_package: "bloom_ui" cli_command: "bloom ui add alert_dialog" last_updated: "2026-08-15" --- # Alert Dialog (`BloomAlertDialog`) > A modal dialog that interrupts the user with important content and expects a response. **Category:** Feedback & Overlays **Package:** [`bloom_ui`](https://pub.dev/packages/bloom_ui) **CLI Install:** `bloom ui add alert_dialog` **Web Preview:** [https://bloom-platform-ten.vercel.app/ui/alert-dialog](https://bloom-platform-ten.vercel.app/ui/alert-dialog) --- ## 📦 Installation & Setup ### 1. Using Bloom CLI (Recommended) Add the source code directly to your project without rigid package locks: ```bash bloom ui add alert_dialog ``` ### 2. Using Pub.dev Package Add the dependency to your `pubspec.yaml`: ```yaml dependencies: bloom_ui: ^0.1.0 ``` ### 3. Import in Dart ```dart import 'package:bloom_ui/bloom_ui.dart'; ``` --- ## 🚀 Usage Example ```dart BloomAlertDialog.show( context: context, title: const BloomDialogTitle('Delete Repository?'), description: const BloomDialogDescription('This action cannot be undone and will permanently erase all branches.'), cancel: BloomButton( variant: BloomButtonVariant.outline, size: BloomButtonSize.sm, onPressed: () => Navigator.pop(context), child: const Text('Cancel'), ), action: BloomButton( variant: BloomButtonVariant.destructive, size: BloomButtonSize.sm, onPressed: () {}, child: const Text('Delete'), ), ) ``` --- ## 🛠️ API Reference ### Properties & Parameters | Prop | Type | Default | Description | | :--- | :--- | :--- | :--- | | `title` | `Widget` | *Required* | Warning title. | | `description` | `Widget` | *Required* | Detailed warning description. | | `cancel` | `Widget?` | *Required* | Cancel action button. | | `action` | `Widget` | *Required* | Confirm / destructive action button. | --- ## 🎨 Theming & Styling BloomAlertDialog automatically respects the active `BloomTheme` (including `BloomTheme.novaLight`, `BloomTheme.novaDark`, etc.) and responds seamlessly to dark mode changes, custom border radii, and brand color tokens. ### Theme Overrides Example ```dart Theme( data: Theme.of(context).copyWith( extensions: [ context.bloomTheme.copyWith( colors: context.bloomColors.copyWith( primary: const Color(0xFF8B5CF6), // Custom Purple Accent ), ), ], ), child: BloomAlertDialog.show(..., ) ``` --- ## 🔗 Related Resources - [Components Gallery](https://bloom-platform-ten.vercel.app/ui) - [Bloom Theming & Tokens Guide](https://bloom-platform-ten.vercel.app/docs/theming) - [Application Blocks Catalog](https://bloom-platform-ten.vercel.app/blocks) - [Bloom CLI Master Overview](https://bloom-platform-ten.vercel.app/docs/cli) --- ## Component: Alert (`BloomAlert`) --- title: "Alert (BloomAlert) — Bloom UI Primitive" description: "Displays a callout for user attention with 10x8px padding and soft status tints." category: "Feedback & Overlays" url: "https://bloom-platform-ten.vercel.app/ui/alert" component_name: "BloomAlert" pub_package: "bloom_ui" cli_command: "bloom ui add alert" last_updated: "2026-08-15" --- # Alert (`BloomAlert`) > Displays a callout for user attention with 10x8px padding and soft status tints. **Category:** Feedback & Overlays **Package:** [`bloom_ui`](https://pub.dev/packages/bloom_ui) **CLI Install:** `bloom ui add alert` **Web Preview:** [https://bloom-platform-ten.vercel.app/ui/alert](https://bloom-platform-ten.vercel.app/ui/alert) --- ## 📦 Installation & Setup ### 1. Using Bloom CLI (Recommended) Add the source code directly to your project without rigid package locks: ```bash bloom ui add alert ``` ### 2. Using Pub.dev Package Add the dependency to your `pubspec.yaml`: ```yaml dependencies: bloom_ui: ^0.1.0 ``` ### 3. Import in Dart ```dart import 'package:bloom_ui/bloom_ui.dart'; ``` --- ## 🚀 Usage Example ```dart BloomAlert( variant: BloomAlertVariant.info, icon: const Icon(Icons.info_outline, size: 16), title: const BloomAlertTitle('Heads Up!'), description: const BloomAlertDescription('You can add components to your app using the bloom CLI.'), ) ``` --- ## 🛠️ API Reference **Available Variants:** `defaultVariant`, `destructive`, `success`, `warning`, `info` ### Sub-Components & Slots | Sub-Component | Description | | :--- | :--- | | `BloomAlertTitle` | Alert headline text. | | `BloomAlertDescription` | Detailed explanatory copy. | | `BloomAlertAction` | Optional trailing action button. | ### Properties & Parameters | Prop | Type | Default | Description | | :--- | :--- | :--- | :--- | | `title` | `Widget?` | *Required* | Title slot. | | `description` | `Widget?` | *Required* | Description body. | | `variant` | `BloomAlertVariant` | `defaultVariant` | Status color style. | | `icon` | `Widget?` | *Required* | Optional status icon. | --- ## 🎨 Theming & Styling BloomAlert automatically respects the active `BloomTheme` (including `BloomTheme.novaLight`, `BloomTheme.novaDark`, etc.) and responds seamlessly to dark mode changes, custom border radii, and brand color tokens. ### Theme Overrides Example ```dart Theme( data: Theme.of(context).copyWith( extensions: [ context.bloomTheme.copyWith( colors: context.bloomColors.copyWith( primary: const Color(0xFF8B5CF6), // Custom Purple Accent ), ), ], ), child: BloomAlert(..., ) ``` --- ## 🔗 Related Resources - [Components Gallery](https://bloom-platform-ten.vercel.app/ui) - [Bloom Theming & Tokens Guide](https://bloom-platform-ten.vercel.app/docs/theming) - [Application Blocks Catalog](https://bloom-platform-ten.vercel.app/blocks) - [Bloom CLI Master Overview](https://bloom-platform-ten.vercel.app/docs/cli) --- ## Component: Sheet (`BloomSheet`) --- title: "Sheet (BloomSheet) — Bloom UI Primitive" description: "Extends the Dialog component to display 4-directional slide-over drawers (left, right, top, bottom)." category: "Feedback & Overlays" url: "https://bloom-platform-ten.vercel.app/ui/sheet" component_name: "BloomSheet" pub_package: "bloom_ui" cli_command: "bloom ui add sheet" last_updated: "2026-08-15" --- # Sheet (`BloomSheet`) > Extends the Dialog component to display 4-directional slide-over drawers (left, right, top, bottom). **Category:** Feedback & Overlays **Package:** [`bloom_ui`](https://pub.dev/packages/bloom_ui) **CLI Install:** `bloom ui add sheet` **Web Preview:** [https://bloom-platform-ten.vercel.app/ui/sheet](https://bloom-platform-ten.vercel.app/ui/sheet) --- ## 📦 Installation & Setup ### 1. Using Bloom CLI (Recommended) Add the source code directly to your project without rigid package locks: ```bash bloom ui add sheet ``` ### 2. Using Pub.dev Package Add the dependency to your `pubspec.yaml`: ```yaml dependencies: bloom_ui: ^0.1.0 ``` ### 3. Import in Dart ```dart import 'package:bloom_ui/bloom_ui.dart'; ``` --- ## 🚀 Usage Example ```dart BloomSheet.show( context: context, side: BloomSheetSide.right, builder: (ctx) => BloomSheet( side: BloomSheetSide.right, header: const BloomSheetHeader( title: BloomSheetTitle('Navigation'), ), child: const Text('Sheet content'), ), ) ``` --- ## 🛠️ API Reference **Available Variants:** `top`, `bottom`, `left`, `right` ### Properties & Parameters | Prop | Type | Default | Description | | :--- | :--- | :--- | :--- | | `side` | `BloomSheetSide` | `right` | Slide edge direction. | | `header` | `Widget?` | *Required* | Sheet header. | | `child` | `Widget` | *Required* | Body content. | | `footer` | `Widget?` | *Required* | Sheet footer action row. | --- ## 🎨 Theming & Styling BloomSheet automatically respects the active `BloomTheme` (including `BloomTheme.novaLight`, `BloomTheme.novaDark`, etc.) and responds seamlessly to dark mode changes, custom border radii, and brand color tokens. ### Theme Overrides Example ```dart Theme( data: Theme.of(context).copyWith( extensions: [ context.bloomTheme.copyWith( colors: context.bloomColors.copyWith( primary: const Color(0xFF8B5CF6), // Custom Purple Accent ), ), ], ), child: BloomSheet.show(..., ) ``` --- ## 🔗 Related Resources - [Components Gallery](https://bloom-platform-ten.vercel.app/ui) - [Bloom Theming & Tokens Guide](https://bloom-platform-ten.vercel.app/docs/theming) - [Application Blocks Catalog](https://bloom-platform-ten.vercel.app/blocks) - [Bloom CLI Master Overview](https://bloom-platform-ten.vercel.app/docs/cli) --- ## Component: Drawer (`BloomDrawer`) --- title: "Drawer (BloomDrawer) — Bloom UI Primitive" description: "A swipeable gesture bottom sheet with drag handle and spring snap points." category: "Feedback & Overlays" url: "https://bloom-platform-ten.vercel.app/ui/drawer" component_name: "BloomDrawer" pub_package: "bloom_ui" cli_command: "bloom ui add drawer" last_updated: "2026-08-15" --- # Drawer (`BloomDrawer`) > A swipeable gesture bottom sheet with drag handle and spring snap points. **Category:** Feedback & Overlays **Package:** [`bloom_ui`](https://pub.dev/packages/bloom_ui) **CLI Install:** `bloom ui add drawer` **Web Preview:** [https://bloom-platform-ten.vercel.app/ui/drawer](https://bloom-platform-ten.vercel.app/ui/drawer) --- ## 📦 Installation & Setup ### 1. Using Bloom CLI (Recommended) Add the source code directly to your project without rigid package locks: ```bash bloom ui add drawer ``` ### 2. Using Pub.dev Package Add the dependency to your `pubspec.yaml`: ```yaml dependencies: bloom_ui: ^0.1.0 ``` ### 3. Import in Dart ```dart import 'package:bloom_ui/bloom_ui.dart'; ``` --- ## 🚀 Usage Example ```dart BloomDrawer.show( context: context, builder: (ctx) => BloomDrawer( header: const BloomDrawerHeader( title: BloomDrawerTitle('Quick Actions'), ), child: const Text('Drawer options'), ), ) ``` --- ## 🛠️ API Reference ### Properties & Parameters | Prop | Type | Default | Description | | :--- | :--- | :--- | :--- | | `header` | `Widget?` | *Required* | Drawer top section. | | `child` | `Widget` | *Required* | Scrollable sheet content. | | `footer` | `Widget?` | *Required* | Bottom actions. | --- ## 🎨 Theming & Styling BloomDrawer automatically respects the active `BloomTheme` (including `BloomTheme.novaLight`, `BloomTheme.novaDark`, etc.) and responds seamlessly to dark mode changes, custom border radii, and brand color tokens. ### Theme Overrides Example ```dart Theme( data: Theme.of(context).copyWith( extensions: [ context.bloomTheme.copyWith( colors: context.bloomColors.copyWith( primary: const Color(0xFF8B5CF6), // Custom Purple Accent ), ), ], ), child: BloomDrawer.show(..., ) ``` --- ## 🔗 Related Resources - [Components Gallery](https://bloom-platform-ten.vercel.app/ui) - [Bloom Theming & Tokens Guide](https://bloom-platform-ten.vercel.app/docs/theming) - [Application Blocks Catalog](https://bloom-platform-ten.vercel.app/blocks) - [Bloom CLI Master Overview](https://bloom-platform-ten.vercel.app/docs/cli) --- ## Component: Sonner / Toast (`BloomSonner`) --- title: "Sonner / Toast (BloomSonner) — Bloom UI Primitive" description: "An opinionated toast notification system with success, error, warning, and loading status styles." category: "Feedback & Overlays" url: "https://bloom-platform-ten.vercel.app/ui/sonner" component_name: "BloomSonner" pub_package: "bloom_ui" cli_command: "bloom ui add sonner" last_updated: "2026-08-15" --- # Sonner / Toast (`BloomSonner`) > An opinionated toast notification system with success, error, warning, and loading status styles. **Category:** Feedback & Overlays **Package:** [`bloom_ui`](https://pub.dev/packages/bloom_ui) **CLI Install:** `bloom ui add sonner` **Web Preview:** [https://bloom-platform-ten.vercel.app/ui/sonner](https://bloom-platform-ten.vercel.app/ui/sonner) --- ## 📦 Installation & Setup ### 1. Using Bloom CLI (Recommended) Add the source code directly to your project without rigid package locks: ```bash bloom ui add sonner ``` ### 2. Using Pub.dev Package Add the dependency to your `pubspec.yaml`: ```yaml dependencies: bloom_ui: ^0.1.0 ``` ### 3. Import in Dart ```dart import 'package:bloom_ui/bloom_ui.dart'; ``` --- ## 🚀 Usage Example ```dart BloomSonner.success(context, 'Release deployed to 12,400 active devices!'); BloomSonner.error(context, 'Build compilation failed. Check logs.'); ``` --- ## 🛠️ API Reference ### Properties & Parameters | Prop | Type | Default | Description | | :--- | :--- | :--- | :--- | | `message` | `String` | *Required* | Toast text message. | | `action` | `Widget?` | *Required* | Optional action button. | --- ## 🎨 Theming & Styling BloomSonner automatically respects the active `BloomTheme` (including `BloomTheme.novaLight`, `BloomTheme.novaDark`, etc.) and responds seamlessly to dark mode changes, custom border radii, and brand color tokens. ### Theme Overrides Example ```dart Theme( data: Theme.of(context).copyWith( extensions: [ context.bloomTheme.copyWith( colors: context.bloomColors.copyWith( primary: const Color(0xFF8B5CF6), // Custom Purple Accent ), ), ], ), child: BloomSonner.success(context, 'Release deployed to 12,400 active devices!');..., ) ``` --- ## 🔗 Related Resources - [Components Gallery](https://bloom-platform-ten.vercel.app/ui) - [Bloom Theming & Tokens Guide](https://bloom-platform-ten.vercel.app/docs/theming) - [Application Blocks Catalog](https://bloom-platform-ten.vercel.app/blocks) - [Bloom CLI Master Overview](https://bloom-platform-ten.vercel.app/docs/cli) --- ## Component: Dropdown Menu (`BloomDropdownMenu`) --- title: "Dropdown Menu (BloomDropdownMenu) — Bloom UI Primitive" description: "Displays a menu to the user—such as a set of actions or functions—triggered by a button." category: "Feedback & Overlays" url: "https://bloom-platform-ten.vercel.app/ui/dropdown-menu" component_name: "BloomDropdownMenu" pub_package: "bloom_ui" cli_command: "bloom ui add dropdown_menu" last_updated: "2026-08-15" --- # Dropdown Menu (`BloomDropdownMenu`) > Displays a menu to the user—such as a set of actions or functions—triggered by a button. **Category:** Feedback & Overlays **Package:** [`bloom_ui`](https://pub.dev/packages/bloom_ui) **CLI Install:** `bloom ui add dropdown_menu` **Web Preview:** [https://bloom-platform-ten.vercel.app/ui/dropdown-menu](https://bloom-platform-ten.vercel.app/ui/dropdown-menu) --- ## 📦 Installation & Setup ### 1. Using Bloom CLI (Recommended) Add the source code directly to your project without rigid package locks: ```bash bloom ui add dropdown_menu ``` ### 2. Using Pub.dev Package Add the dependency to your `pubspec.yaml`: ```yaml dependencies: bloom_ui: ^0.1.0 ``` ### 3. Import in Dart ```dart import 'package:bloom_ui/bloom_ui.dart'; ``` --- ## 🚀 Usage Example ```dart BloomDropdownMenu( trigger: BloomButton( variant: BloomButtonVariant.outline, size: BloomButtonSize.sm, child: const Text('Options'), ), items: [ BloomDropdownMenuItem( label: 'Profile', icon: const Icon(Icons.person, size: 16), onTap: () {}, ), BloomDropdownMenuItem( label: 'Delete Account', isDestructive: true, icon: const Icon(Icons.delete, size: 16), onTap: () {}, ), ], ) ``` --- ## 🛠️ API Reference ### Properties & Parameters | Prop | Type | Default | Description | | :--- | :--- | :--- | :--- | | `trigger` | `Widget` | *Required* | Button that opens the menu. | | `items` | `List` | *Required* | List of menu items. | --- ## 🎨 Theming & Styling BloomDropdownMenu automatically respects the active `BloomTheme` (including `BloomTheme.novaLight`, `BloomTheme.novaDark`, etc.) and responds seamlessly to dark mode changes, custom border radii, and brand color tokens. ### Theme Overrides Example ```dart Theme( data: Theme.of(context).copyWith( extensions: [ context.bloomTheme.copyWith( colors: context.bloomColors.copyWith( primary: const Color(0xFF8B5CF6), // Custom Purple Accent ), ), ], ), child: BloomDropdownMenu(..., ) ``` --- ## 🔗 Related Resources - [Components Gallery](https://bloom-platform-ten.vercel.app/ui) - [Bloom Theming & Tokens Guide](https://bloom-platform-ten.vercel.app/docs/theming) - [Application Blocks Catalog](https://bloom-platform-ten.vercel.app/blocks) - [Bloom CLI Master Overview](https://bloom-platform-ten.vercel.app/docs/cli) --- ## Component: Avatar (`BloomAvatar`) --- title: "Avatar (BloomAvatar) — Bloom UI Primitive" description: "An image element with a fallback monogram for representing the user with 24/32/40px sizes and AvatarGroup." category: "Data Display & AI" url: "https://bloom-platform-ten.vercel.app/ui/avatar" component_name: "BloomAvatar" pub_package: "bloom_ui" cli_command: "bloom ui add avatar" last_updated: "2026-08-15" --- # Avatar (`BloomAvatar`) > An image element with a fallback monogram for representing the user with 24/32/40px sizes and AvatarGroup. **Category:** Data Display & AI **Package:** [`bloom_ui`](https://pub.dev/packages/bloom_ui) **CLI Install:** `bloom ui add avatar` **Web Preview:** [https://bloom-platform-ten.vercel.app/ui/avatar](https://bloom-platform-ten.vercel.app/ui/avatar) --- ## 📦 Installation & Setup ### 1. Using Bloom CLI (Recommended) Add the source code directly to your project without rigid package locks: ```bash bloom ui add avatar ``` ### 2. Using Pub.dev Package Add the dependency to your `pubspec.yaml`: ```yaml dependencies: bloom_ui: ^0.1.0 ``` ### 3. Import in Dart ```dart import 'package:bloom_ui/bloom_ui.dart'; ``` --- ## 🚀 Usage Example ```dart BloomAvatar( image: const NetworkImage( 'https://images.unsplash.com/photo-1534528741775-53994a69daeb?auto=format&fit=crop&w=120&h=120&q=80', ), name: 'Sophia Davis', size: BloomAvatarSize.lg, badge: const BloomAvatarBadge( color: Colors.green, ), ) ``` --- ## 🛠️ API Reference **Available Sizes:** `sm (24px)`, `defaultSize (32px)`, `lg (40px)` ### Properties & Parameters | Prop | Type | Default | Description | | :--- | :--- | :--- | :--- | | `image` | `ImageProvider?` | *Required* | User image source (e.g. NetworkImage from Unsplash or AssetImage). | | `name` | `String?` | *Required* | Fallback name used to generate monogram initials (e.g. "Sophia Davis"). | | `size` | `BloomAvatarSize` | `defaultSize` | Size step: sm (24px), defaultSize (32px), lg (40px). | | `badge` | `Widget?` | *Required* | Optional status indicator badge (e.g. online presence dot). | --- ## 🎨 Theming & Styling BloomAvatar automatically respects the active `BloomTheme` (including `BloomTheme.novaLight`, `BloomTheme.novaDark`, etc.) and responds seamlessly to dark mode changes, custom border radii, and brand color tokens. ### Theme Overrides Example ```dart Theme( data: Theme.of(context).copyWith( extensions: [ context.bloomTheme.copyWith( colors: context.bloomColors.copyWith( primary: const Color(0xFF8B5CF6), // Custom Purple Accent ), ), ], ), child: BloomAvatar(..., ) ``` --- ## 🔗 Related Resources - [Components Gallery](https://bloom-platform-ten.vercel.app/ui) - [Bloom Theming & Tokens Guide](https://bloom-platform-ten.vercel.app/docs/theming) - [Application Blocks Catalog](https://bloom-platform-ten.vercel.app/blocks) - [Bloom CLI Master Overview](https://bloom-platform-ten.vercel.app/docs/cli) --- ## Component: Badge & Chip (`BloomBadge`) --- title: "Badge & Chip (BloomBadge) — Bloom UI Primitive" description: "Displays a 20px pill badge or interactive BloomChip with soft destructive and status tints." category: "Data Display & AI" url: "https://bloom-platform-ten.vercel.app/ui/badge" component_name: "BloomBadge" pub_package: "bloom_ui" cli_command: "bloom ui add badge" last_updated: "2026-08-15" --- # Badge & Chip (`BloomBadge`) > Displays a 20px pill badge or interactive BloomChip with soft destructive and status tints. **Category:** Data Display & AI **Package:** [`bloom_ui`](https://pub.dev/packages/bloom_ui) **CLI Install:** `bloom ui add badge` **Web Preview:** [https://bloom-platform-ten.vercel.app/ui/badge](https://bloom-platform-ten.vercel.app/ui/badge) --- ## 📦 Installation & Setup ### 1. Using Bloom CLI (Recommended) Add the source code directly to your project without rigid package locks: ```bash bloom ui add badge ``` ### 2. Using Pub.dev Package Add the dependency to your `pubspec.yaml`: ```yaml dependencies: bloom_ui: ^0.1.0 ``` ### 3. Import in Dart ```dart import 'package:bloom_ui/bloom_ui.dart'; ``` --- ## 🚀 Usage Example ```dart BloomBadge( variant: BloomBadgeVariant.success, child: const Text('ONLINE'), ) ``` --- ## 🛠️ API Reference **Available Variants:** `defaultVariant`, `secondary`, `destructive`, `outline`, `success`, `warning`, `info` ### Properties & Parameters | Prop | Type | Default | Description | | :--- | :--- | :--- | :--- | | `child` | `Widget` | *Required* | Badge label content. | | `variant` | `BloomBadgeVariant` | `defaultVariant` | Status color style. | --- ## 🎨 Theming & Styling BloomBadge automatically respects the active `BloomTheme` (including `BloomTheme.novaLight`, `BloomTheme.novaDark`, etc.) and responds seamlessly to dark mode changes, custom border radii, and brand color tokens. ### Theme Overrides Example ```dart Theme( data: Theme.of(context).copyWith( extensions: [ context.bloomTheme.copyWith( colors: context.bloomColors.copyWith( primary: const Color(0xFF8B5CF6), // Custom Purple Accent ), ), ], ), child: BloomBadge(..., ) ``` --- ## 🔗 Related Resources - [Components Gallery](https://bloom-platform-ten.vercel.app/ui) - [Bloom Theming & Tokens Guide](https://bloom-platform-ten.vercel.app/docs/theming) - [Application Blocks Catalog](https://bloom-platform-ten.vercel.app/blocks) - [Bloom CLI Master Overview](https://bloom-platform-ten.vercel.app/docs/cli) --- ## Component: Kbd (`BloomKbd`) --- title: "Kbd (BloomKbd) — Bloom UI Primitive" description: "A 20px height sans-serif keyboard shortcut token matching shadcn base-nova specifications." category: "Data Display & AI" url: "https://bloom-platform-ten.vercel.app/ui/kbd" component_name: "BloomKbd" pub_package: "bloom_ui" cli_command: "bloom ui add kbd" last_updated: "2026-08-15" --- # Kbd (`BloomKbd`) > A 20px height sans-serif keyboard shortcut token matching shadcn base-nova specifications. **Category:** Data Display & AI **Package:** [`bloom_ui`](https://pub.dev/packages/bloom_ui) **CLI Install:** `bloom ui add kbd` **Web Preview:** [https://bloom-platform-ten.vercel.app/ui/kbd](https://bloom-platform-ten.vercel.app/ui/kbd) --- ## 📦 Installation & Setup ### 1. Using Bloom CLI (Recommended) Add the source code directly to your project without rigid package locks: ```bash bloom ui add kbd ``` ### 2. Using Pub.dev Package Add the dependency to your `pubspec.yaml`: ```yaml dependencies: bloom_ui: ^0.1.0 ``` ### 3. Import in Dart ```dart import 'package:bloom_ui/bloom_ui.dart'; ``` --- ## 🚀 Usage Example ```dart Row( children: const [ Text('Open command menu'), SizedBox(width: 8), BloomKbd(text: '⌘K'), ], ) ``` --- ## 🛠️ API Reference ### Properties & Parameters | Prop | Type | Default | Description | | :--- | :--- | :--- | :--- | | `text` | `String` | *Required* | Shortcut key symbol (e.g. ⌘K, Ctrl+P, Esc). | --- ## 🎨 Theming & Styling BloomKbd automatically respects the active `BloomTheme` (including `BloomTheme.novaLight`, `BloomTheme.novaDark`, etc.) and responds seamlessly to dark mode changes, custom border radii, and brand color tokens. ### Theme Overrides Example ```dart Theme( data: Theme.of(context).copyWith( extensions: [ context.bloomTheme.copyWith( colors: context.bloomColors.copyWith( primary: const Color(0xFF8B5CF6), // Custom Purple Accent ), ), ], ), child: Row(..., ) ``` --- ## 🔗 Related Resources - [Components Gallery](https://bloom-platform-ten.vercel.app/ui) - [Bloom Theming & Tokens Guide](https://bloom-platform-ten.vercel.app/docs/theming) - [Application Blocks Catalog](https://bloom-platform-ten.vercel.app/blocks) - [Bloom CLI Master Overview](https://bloom-platform-ten.vercel.app/docs/cli) --- ## Component: Table & Data Table (`BloomTable`) --- title: "Table & Data Table (BloomTable) — Bloom UI Primitive" description: "A responsive data table container with 40px headers, cell alignment, and sortable columns." category: "Data Display & AI" url: "https://bloom-platform-ten.vercel.app/ui/table" component_name: "BloomTable" pub_package: "bloom_ui" cli_command: "bloom ui add table" last_updated: "2026-08-15" --- # Table & Data Table (`BloomTable`) > A responsive data table container with 40px headers, cell alignment, and sortable columns. **Category:** Data Display & AI **Package:** [`bloom_ui`](https://pub.dev/packages/bloom_ui) **CLI Install:** `bloom ui add table` **Web Preview:** [https://bloom-platform-ten.vercel.app/ui/table](https://bloom-platform-ten.vercel.app/ui/table) --- ## 📦 Installation & Setup ### 1. Using Bloom CLI (Recommended) Add the source code directly to your project without rigid package locks: ```bash bloom ui add table ``` ### 2. Using Pub.dev Package Add the dependency to your `pubspec.yaml`: ```yaml dependencies: bloom_ui: ^0.1.0 ``` ### 3. Import in Dart ```dart import 'package:bloom_ui/bloom_ui.dart'; ``` --- ## 🚀 Usage Example ```dart BloomTable( rows: [ TableRow( children: const [ BloomTableHead(child: Text('Invoice')), BloomTableHead(child: Text('Status')), BloomTableHead(child: Text('Amount')), ], ), TableRow( children: const [ BloomTableCell(child: Text('INV001')), BloomTableCell(child: Text('Paid')), BloomTableCell(child: Text('$250.00')), ], ), ], ) ``` --- ## 🛠️ API Reference ### Sub-Components & Slots | Sub-Component | Description | | :--- | :--- | | `BloomTableHead` | 40px header column cell. | | `BloomTableCell` | Table body row cell. | ### Properties & Parameters | Prop | Type | Default | Description | | :--- | :--- | :--- | :--- | | `rows` | `List?` | *Required* | Structured rows. | --- ## 🎨 Theming & Styling BloomTable automatically respects the active `BloomTheme` (including `BloomTheme.novaLight`, `BloomTheme.novaDark`, etc.) and responds seamlessly to dark mode changes, custom border radii, and brand color tokens. ### Theme Overrides Example ```dart Theme( data: Theme.of(context).copyWith( extensions: [ context.bloomTheme.copyWith( colors: context.bloomColors.copyWith( primary: const Color(0xFF8B5CF6), // Custom Purple Accent ), ), ], ), child: BloomTable(..., ) ``` --- ## 🔗 Related Resources - [Components Gallery](https://bloom-platform-ten.vercel.app/ui) - [Bloom Theming & Tokens Guide](https://bloom-platform-ten.vercel.app/docs/theming) - [Application Blocks Catalog](https://bloom-platform-ten.vercel.app/blocks) - [Bloom CLI Master Overview](https://bloom-platform-ten.vercel.app/docs/cli) --- ## Component: Sidebar (`BloomSidebar`) --- title: "Sidebar (BloomSidebar) — Bloom UI Primitive" description: "A composable, collapsible navigation sidebar system matching shadcn base-nova with groups, headers, and footer slots." category: "Data Display & AI" url: "https://bloom-platform-ten.vercel.app/ui/sidebar" component_name: "BloomSidebar" pub_package: "bloom_ui" cli_command: "bloom ui add sidebar" last_updated: "2026-08-15" --- # Sidebar (`BloomSidebar`) > A composable, collapsible navigation sidebar system matching shadcn base-nova with groups, headers, and footer slots. **Category:** Data Display & AI **Package:** [`bloom_ui`](https://pub.dev/packages/bloom_ui) **CLI Install:** `bloom ui add sidebar` **Web Preview:** [https://bloom-platform-ten.vercel.app/ui/sidebar](https://bloom-platform-ten.vercel.app/ui/sidebar) --- ## 📦 Installation & Setup ### 1. Using Bloom CLI (Recommended) Add the source code directly to your project without rigid package locks: ```bash bloom ui add sidebar ``` ### 2. Using Pub.dev Package Add the dependency to your `pubspec.yaml`: ```yaml dependencies: bloom_ui: ^0.1.0 ``` ### 3. Import in Dart ```dart import 'package:bloom_ui/bloom_ui.dart'; ``` --- ## 🚀 Usage Example ```dart BloomSidebar( header: const BloomSidebarHeader(child: Text('Bloom App')), content: BloomSidebarGroup( label: 'Platform', children: [ BloomSidebarMenuButton( icon: const Icon(Icons.dashboard), label: const Text('Overview'), isCurrent: true, ), BloomSidebarMenuButton( icon: const Icon(Icons.cloud_upload), label: const Text('OTA Releases'), ), ], ), ) ``` --- ## 🛠️ API Reference ### Sub-Components & Slots | Sub-Component | Description | | :--- | :--- | | `BloomSidebarHeader` | 48px header container with app logo. | | `BloomSidebarContent` | Scrollable middle menu list. | | `BloomSidebarGroup` | Grouped section with uppercase header title. | | `BloomSidebarMenuButton` | 32px interactive item button with hover and active state. | | `BloomSidebarFooter` | Bottom user profile or settings tile. | ### Properties & Parameters | Prop | Type | Default | Description | | :--- | :--- | :--- | :--- | | `header` | `Widget?` | *Required* | Sidebar header slot. | | `content` | `Widget?` | *Required* | Sidebar body content. | | `footer` | `Widget?` | *Required* | Sidebar footer slot. | --- ## 🎨 Theming & Styling BloomSidebar automatically respects the active `BloomTheme` (including `BloomTheme.novaLight`, `BloomTheme.novaDark`, etc.) and responds seamlessly to dark mode changes, custom border radii, and brand color tokens. ### Theme Overrides Example ```dart Theme( data: Theme.of(context).copyWith( extensions: [ context.bloomTheme.copyWith( colors: context.bloomColors.copyWith( primary: const Color(0xFF8B5CF6), // Custom Purple Accent ), ), ], ), child: BloomSidebar(..., ) ``` --- ## 🔗 Related Resources - [Components Gallery](https://bloom-platform-ten.vercel.app/ui) - [Bloom Theming & Tokens Guide](https://bloom-platform-ten.vercel.app/docs/theming) - [Application Blocks Catalog](https://bloom-platform-ten.vercel.app/blocks) - [Bloom CLI Master Overview](https://bloom-platform-ten.vercel.app/docs/cli) --- ## Component: Charts Suite (`BloomChart`) --- title: "Charts Suite (BloomChart) — Bloom UI Primitive" description: "Pure Dart token-driven chart suite supporting Area, Bar, Line, Pie, Radar, and Radial charts with responsive drag tracking." category: "Charts Suite" url: "https://bloom-platform-ten.vercel.app/ui/chart" component_name: "BloomChart" pub_package: "bloom_ui" cli_command: "bloom ui add chart" last_updated: "2026-08-15" --- # Charts Suite (`BloomChart`) > Pure Dart token-driven chart suite supporting Area, Bar, Line, Pie, Radar, and Radial charts with responsive drag tracking. **Category:** Charts Suite **Package:** [`bloom_ui`](https://pub.dev/packages/bloom_ui) **CLI Install:** `bloom ui add chart` **Web Preview:** [https://bloom-platform-ten.vercel.app/ui/chart](https://bloom-platform-ten.vercel.app/ui/chart) --- ## 📦 Installation & Setup ### 1. Using Bloom CLI (Recommended) Add the source code directly to your project without rigid package locks: ```bash bloom ui add chart ``` ### 2. Using Pub.dev Package Add the dependency to your `pubspec.yaml`: ```yaml dependencies: bloom_ui: ^0.1.0 ``` ### 3. Import in Dart ```dart import 'package:bloom_ui/bloom_ui.dart'; ``` --- ## 🚀 Usage Example ```dart BloomChart( type: BloomChartType.area, height: 220, data: const BloomChartData( labels: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'], series: [ BloomChartSeries( name: 'Desktop', values: [186, 305, 237, 73, 209, 214], color: BloomColors.petalBlue, ), BloomChartSeries( name: 'Mobile', values: [80, 200, 120, 190, 130, 140], color: BloomColors.petalPink, ), ], ), ) ``` --- ## 🛠️ API Reference **Available Variants:** `area`, `bar`, `line`, `pie`, `radar`, `radial` ### Properties & Parameters | Prop | Type | Default | Description | | :--- | :--- | :--- | :--- | | `type` | `BloomChartType` | `bar` | Chart visualization mode. | | `data` | `BloomChartData` | *Required* | Labels and data series. | | `height` | `double?` | `240` | Chart canvas height. | | `showLegend` | `bool` | `true` | Display series legend. | --- ## 🎨 Theming & Styling BloomChart automatically respects the active `BloomTheme` (including `BloomTheme.novaLight`, `BloomTheme.novaDark`, etc.) and responds seamlessly to dark mode changes, custom border radii, and brand color tokens. ### Theme Overrides Example ```dart Theme( data: Theme.of(context).copyWith( extensions: [ context.bloomTheme.copyWith( colors: context.bloomColors.copyWith( primary: const Color(0xFF8B5CF6), // Custom Purple Accent ), ), ], ), child: BloomChart(..., ) ``` --- ## 🔗 Related Resources - [Components Gallery](https://bloom-platform-ten.vercel.app/ui) - [Bloom Theming & Tokens Guide](https://bloom-platform-ten.vercel.app/docs/theming) - [Application Blocks Catalog](https://bloom-platform-ten.vercel.app/blocks) - [Bloom CLI Master Overview](https://bloom-platform-ten.vercel.app/docs/cli) --- ## Component: Command Palette (`BloomCommandPalette`) --- title: "Command Palette (BloomCommandPalette) — Bloom UI Primitive" description: "Fast, accessible command menu for searching actions, files, and navigation shortcuts." category: "Composites & Shells" url: "https://bloom-platform-ten.vercel.app/ui/command-palette" component_name: "BloomCommandPalette" pub_package: "bloom_ui" cli_command: "bloom ui add command_palette" last_updated: "2026-08-15" --- # Command Palette (`BloomCommandPalette`) > Fast, accessible command menu for searching actions, files, and navigation shortcuts. **Category:** Composites & Shells **Package:** [`bloom_ui`](https://pub.dev/packages/bloom_ui) **CLI Install:** `bloom ui add command_palette` **Web Preview:** [https://bloom-platform-ten.vercel.app/ui/command-palette](https://bloom-platform-ten.vercel.app/ui/command-palette) --- ## 📦 Installation & Setup ### 1. Using Bloom CLI (Recommended) Add the source code directly to your project without rigid package locks: ```bash bloom ui add command_palette ``` ### 2. Using Pub.dev Package Add the dependency to your `pubspec.yaml`: ```yaml dependencies: bloom_ui: ^0.1.0 ``` ### 3. Import in Dart ```dart import 'package:bloom_ui/bloom_ui.dart'; ``` --- ## 🚀 Usage Example ```dart BloomCommandPalette( items: [ BloomCommandItem( title: 'Deploy to Production', shortcut: '⌘P', onSelected: () {}, ), BloomCommandItem( title: 'Open Settings', shortcut: '⌘,', onSelected: () {}, ), ], ) ``` --- ## 🛠️ API Reference ### Properties & Parameters | Prop | Type | Default | Description | | :--- | :--- | :--- | :--- | | `items` | `List` | *Required* | List of searchable actions. | --- ## 🎨 Theming & Styling BloomCommandPalette automatically respects the active `BloomTheme` (including `BloomTheme.novaLight`, `BloomTheme.novaDark`, etc.) and responds seamlessly to dark mode changes, custom border radii, and brand color tokens. ### Theme Overrides Example ```dart Theme( data: Theme.of(context).copyWith( extensions: [ context.bloomTheme.copyWith( colors: context.bloomColors.copyWith( primary: const Color(0xFF8B5CF6), // Custom Purple Accent ), ), ], ), child: BloomCommandPalette(..., ) ``` --- ## 🔗 Related Resources - [Components Gallery](https://bloom-platform-ten.vercel.app/ui) - [Bloom Theming & Tokens Guide](https://bloom-platform-ten.vercel.app/docs/theming) - [Application Blocks Catalog](https://bloom-platform-ten.vercel.app/blocks) - [Bloom CLI Master Overview](https://bloom-platform-ten.vercel.app/docs/cli) --- ## Component: App & Dashboard Shell (`BloomDashboardShell`) --- title: "App & Dashboard Shell (BloomDashboardShell) — Bloom UI Primitive" description: "Production responsive application frame combining top bar, collapsible sidebar, and responsive mobile nav." category: "Composites & Shells" url: "https://bloom-platform-ten.vercel.app/ui/app-shell" component_name: "BloomDashboardShell" pub_package: "bloom_ui" cli_command: "bloom ui add app_shell" last_updated: "2026-08-15" --- # App & Dashboard Shell (`BloomDashboardShell`) > Production responsive application frame combining top bar, collapsible sidebar, and responsive mobile nav. **Category:** Composites & Shells **Package:** [`bloom_ui`](https://pub.dev/packages/bloom_ui) **CLI Install:** `bloom ui add app_shell` **Web Preview:** [https://bloom-platform-ten.vercel.app/ui/app-shell](https://bloom-platform-ten.vercel.app/ui/app-shell) --- ## 📦 Installation & Setup ### 1. Using Bloom CLI (Recommended) Add the source code directly to your project without rigid package locks: ```bash bloom ui add app_shell ``` ### 2. Using Pub.dev Package Add the dependency to your `pubspec.yaml`: ```yaml dependencies: bloom_ui: ^0.1.0 ``` ### 3. Import in Dart ```dart import 'package:bloom_ui/bloom_ui.dart'; ``` --- ## 🚀 Usage Example ```dart BloomDashboardShell( selectedIndex: 0, onDestinationSelected: (i) {}, navigationItems: const [ BloomNavigationItem(icon: Icon(Icons.home), label: Text('Home')), BloomNavigationItem(icon: Icon(Icons.analytics), label: Text('Analytics')), BloomNavigationItem(icon: Icon(Icons.settings), label: Text('Settings')), ], body: const Center(child: Text('Dashboard View')), ) ``` --- ## 🛠️ API Reference ### Properties & Parameters | Prop | Type | Default | Description | | :--- | :--- | :--- | :--- | | `selectedIndex` | `int` | *Required* | Active destination index. | | `navigationItems` | `List` | *Required* | Destination items. | | `body` | `Widget` | *Required* | Main screen content. | --- ## 🎨 Theming & Styling BloomDashboardShell automatically respects the active `BloomTheme` (including `BloomTheme.novaLight`, `BloomTheme.novaDark`, etc.) and responds seamlessly to dark mode changes, custom border radii, and brand color tokens. ### Theme Overrides Example ```dart Theme( data: Theme.of(context).copyWith( extensions: [ context.bloomTheme.copyWith( colors: context.bloomColors.copyWith( primary: const Color(0xFF8B5CF6), // Custom Purple Accent ), ), ], ), child: BloomDashboardShell(..., ) ``` --- ## 🔗 Related Resources - [Components Gallery](https://bloom-platform-ten.vercel.app/ui) - [Bloom Theming & Tokens Guide](https://bloom-platform-ten.vercel.app/docs/theming) - [Application Blocks Catalog](https://bloom-platform-ten.vercel.app/blocks) - [Bloom CLI Master Overview](https://bloom-platform-ten.vercel.app/docs/cli) --- # SECTION 4: APPLICATION BLOCKS & FULL-SCREEN TEMPLATES --- title: "Bloom Application Blocks Catalog" description: "Pre-built, responsive Flutter application blocks: dashboards, authentication flows, chat interfaces, and settings screens." category: "Bloom UI Studio" url: "https://bloom-platform-ten.vercel.app/blocks" last_updated: "2026-08-15" --- # Bloom Application Blocks Catalog > Full-screen, beautifully designed, composable Flutter screen templates built with Bloom UI primitives and reactive state. --- ## Analytics & Revenue Dashboard (`dashboard-01`) **Category:** Dashboard **Description:** Production dashboard layout with revenue metrics, interactive area chart, recent transactions, and date filter. ### Complete Flutter Implementation ```dart import 'package:flutter/material.dart'; import 'package:bloom_ui/bloom_ui.dart'; class DashboardScreen extends StatelessWidget { const DashboardScreen({super.key}); @override Widget build(BuildContext context) { final colors = context.bloomColors; return Scaffold( appBar: AppBar( title: const Text('Overview', style: TextStyle(fontWeight: FontWeight.bold)), actions: [ BloomButton( size: BloomButtonSize.sm, variant: BloomButtonVariant.outline, leading: const Icon(Icons.download, size: 14), onPressed: () {}, child: const Text('Download Report'), ), const SizedBox(width: 16), ], ), body: SingleChildScrollView( padding: const EdgeInsets.all(24), child: Column( crossAxisAlignment: CrossAxisAlignment.stretch, children: [ // Metric Cards Row Row( children: [ Expanded( child: BloomCard( header: const BloomCardHeader( title: BloomCardTitle('Total Revenue'), description: BloomCardDescription('+20.1% from last month'), ), content: const Text( '$45,231.89', style: TextStyle(fontSize: 24, fontWeight: FontWeight.bold), ), ), ), const SizedBox(width: 16), Expanded( child: BloomCard( header: const BloomCardHeader( title: BloomCardTitle('Active Subscriptions'), description: BloomCardDescription('+180 new today'), ), content: const Text( '+2,350', style: TextStyle(fontSize: 24, fontWeight: FontWeight.bold), ), ), ), ], ), const SizedBox(height: 24), // Revenue Area Chart BloomCard( header: const BloomCardHeader( title: BloomCardTitle('Revenue Over Time'), description: BloomCardDescription('Monthly breakdown of desktop and mobile transactions.'), ), content: BloomChart( type: BloomChartType.area, height: 240, data: const BloomChartData( labels: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'], series: [ BloomChartSeries( name: 'Desktop', values: [186, 305, 237, 73, 209, 214], color: BloomColors.petalBlue, ), BloomChartSeries( name: 'Mobile', values: [80, 200, 120, 190, 130, 140], color: BloomColors.petalPink, ), ], ), ), ), ], ), ), ); } } ``` --- ## Clean Authentication Card (`auth-01`) **Category:** Authentication **Description:** Sign-in form card with email input, password visibility toggle, remember me checkbox, and social auth buttons. ### Complete Flutter Implementation ```dart import 'package:flutter/material.dart'; import 'package:bloom_ui/bloom_ui.dart'; class AuthCardScreen extends StatelessWidget { const AuthCardScreen({super.key}); @override Widget build(BuildContext context) { return Scaffold( body: Center( child: ConstrainedBox( constraints: const BoxConstraints(maxWidth: 400), child: BloomCard( header: const BloomCardHeader( title: BloomCardTitle('Welcome Back'), description: BloomCardDescription('Enter your email to sign in to your account.'), ), content: Column( crossAxisAlignment: CrossAxisAlignment.stretch, children: [ const BloomField( label: BloomFieldLabel('Email', required: true), child: BloomInput( placeholder: 'alex@example.com', keyboardType: TextInputType.emailAddress, ), ), const SizedBox(height: 16), const BloomField( label: BloomFieldLabel('Password', required: true), child: BloomInput( placeholder: '••••••••', obscureText: true, ), ), const SizedBox(height: 16), Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ BloomCheckbox( checked: true, label: const Text('Remember me'), onChanged: (val) {}, ), TextButton( onPressed: () {}, child: const Text('Forgot password?'), ), ], ), const SizedBox(height: 20), BloomButton( onPressed: () { BloomSonner.success(context, 'Signed in successfully!'); }, child: const Text('Sign In'), ), ], ), ), ), ), ); } } ``` --- ## AI Conversational Assistant (`chat-01`) **Category:** Chat & AI **Description:** Complete AI messaging UI with message bubble reactions, file attachment pills, and bottom prompt bar. ### Complete Flutter Implementation ```dart import 'package:flutter/material.dart'; import 'package:bloom_ui/bloom_ui.dart'; class AiChatScreen extends StatelessWidget { const AiChatScreen({super.key}); @override Widget build(BuildContext context) { final colors = context.bloomColors; return Scaffold( appBar: AppBar( title: const Row( children: [ BloomAvatar(name: 'Bloom AI', size: BloomAvatarSize.sm), SizedBox(width: 10), Text('Bloom Assistant', style: TextStyle(fontSize: 16, fontWeight: FontWeight.bold)), ], ), ), body: Column( children: [ Expanded( child: ListView( padding: const EdgeInsets.all(16), children: const [ BloomMessage( sender: BloomMessageSender(name: 'Bloom AI'), bubble: BloomBubble( variant: BloomBubbleVariant.received, child: Text('Hello! How can I help configure your Flutter app today?'), ), ), SizedBox(height: 16), BloomMessage( sender: BloomMessageSender(name: 'You'), bubble: BloomBubble( variant: BloomBubbleVariant.sent, child: Text('Can you generate a responsive data table layout?'), ), ), ], ), ), Container( padding: const EdgeInsets.all(12), decoration: BoxDecoration( color: colors.surface1, border: Border(top: BorderSide(color: colors.border)), ), child: Row( children: [ Expanded( child: BloomInput( placeholder: 'Ask Bloom anything...', leading: const Icon(Icons.auto_awesome, size: 16), ), ), const SizedBox(width: 8), BloomButton( size: BloomButtonSize.defaultSize, onPressed: () {}, child: const Icon(Icons.arrow_upward, size: 16), ), ], ), ), ], ), ); } } ``` --- ## App Settings & Preferences (`settings-01`) **Category:** Settings **Description:** Account profile, appearance theme toggle, push notification switches, and danger zone actions. ### Complete Flutter Implementation ```dart import 'package:flutter/material.dart'; import 'package:bloom_ui/bloom_ui.dart'; class SettingsScreen extends StatelessWidget { const SettingsScreen({super.key}); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar(title: const Text('Settings')), body: ListView( padding: const EdgeInsets.all(24), children: [ BloomCard( header: const BloomCardHeader( title: BloomCardTitle('Appearance & Notifications'), description: BloomCardDescription('Configure how Bloom UI looks and alerts you.'), ), content: Column( children: [ BloomSwitch( checked: true, label: const Text('Dark Mode Sync'), onChanged: (v) {}, ), const SizedBox(height: 16), BloomSwitch( checked: true, label: const Text('OTA Patch Notifications'), onChanged: (v) {}, ), ], ), ), ], ), ); } } ``` --- --- # SECTION 5: LEGAL & GOVERNANCE --- title: "Privacy Policy — Bloom Platform" description: "Privacy Policy for Bloom Framework, Bloom Cloud OTA, and Bloom UI." category: "Legal" url: "https://bloom-platform-ten.vercel.app/privacy" last_updated: "2026-08-15" --- # Privacy Policy — Bloom Platform > Last updated: August 15, 2026 • Version 1.2 ## 1. Introduction & Open Source Core Bloom Platform ("Bloom", "we", "us", or "our") is dedicated to protecting your privacy. The Bloom Framework (`bloom_core`) and Bloom UI (`bloom_ui`) are 100% open-source software distributed under the MIT license. All code generation, widget rendering, and AST parsing occur strictly on your local machine. ## 2. Bloom Cloud & OTA Patch Telemetry When using Bloom Cloud Over-The-Air (OTA) deployment services (`bloom deploy --ota`), we process release and patch metadata (version, target platform, patch hash) and client health telemetry (anonymized download success/failure) solely to deliver updates and trigger automated rollback safety. ## 3. Anonymous CLI & Web Telemetry The Bloom CLI collects minimal, anonymized usage telemetry (command names run, OS architecture, Dart SDK version) to prioritize feature development. Opt-out anytime with: `bloom config set telemetry false`. ## 4. Cookies & Browser Local Storage Our documentation website uses browser storage solely for functional preferences: Dark/Light Mode theme state, documentation sidebar scroll position, and Theme Generator settings. We do not use tracking cookies or sell your data. ## 5. Contact & Governance For inquiries: `security@bloomframework.org` • GitHub: `github.com/bloom-framework/bloom` --- --- title: "Terms and Conditions — Bloom Platform" description: "Terms and Conditions for Bloom Framework, Bloom CLI, and Bloom Cloud OTA Services." category: "Legal" url: "https://bloom-platform-ten.vercel.app/terms" last_updated: "2026-08-15" --- # Terms and Conditions — Bloom Platform > Last updated: August 15, 2026 • Version 1.2 ## 1. Open Source MIT License The Bloom Framework, CLI tools, runtime controllers, and UI primitives are open-source software distributed under the MIT License. You retain 100% full intellectual property ownership of all applications, widgets, data schemas, and assets created with Bloom. ## 2. Bloom Cloud & OTA Services When utilizing Bloom Cloud OTA patch hosting, you agree to comply with Apple App Store Review Guidelines (3.3.2) and Google Play Developer Program Policies. Malicious bytecode or unauthorized surveillance tools are strictly prohibited. ## 3. User Ownership & Zero Lock-In Bloom UI primitives are copied directly into your project as standard Flutter Dart files (`lib/bloom_ui/`). You can eject from Bloom CLI tooling at any point while retaining full compilability. ## 4. Disclaimer of Warranties THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. ## 5. Contact & Governance For inquiries: `legal@bloomframework.org` • GitHub: `github.com/bloom-framework/bloom` ---