fonde_ui 0.13.0 copy "fonde_ui: ^0.13.0" to clipboard
fonde_ui: ^0.13.0 copied to clipboard

Desktop-first Flutter UI utility components with native-like interaction and zoom scaling support.

Fonde UI #

Desktop-first Flutter UI utility components optimized for native-like interaction, with zoom scaling support.

  • Fonde (pronounced fond) β€” named after fond de veau.

Screenshot

Live Demo

Overview #

fonde_ui is a Flutter UI utility component library for desktop applications, developed for RinneGraph. It provides improved multi-pane layouts, instant feedback interaction, and zoom scaling support out-of-the-box.

Platform Support #

  • Flutter: >=3.41.2
  • Dart: ^3.7.0
  • Platforms: macOS, Windows, Linux, iOS, Android

Goals #

Fonde UI's goal is to provide operational and visual comfort in desktop apps β€” achieving the same feel as native applications using Flutter. In Fonde UI, comfort takes priority over visual richness.

Features #

  • πŸ–₯️ Desktop-first β€” Optimized for desktop applications over mobile, with interactions and layouts tailored for keyboard, mouse, and large screens
  • ⚑ Native-like interaction β€” Instant feedback and restrained animations for smooth operation
  • 🎨 Flat design β€” Clean, simple visuals inspired by Figma, with smooth-curve corners throughout
  • πŸͺŸ Multi-pane layout β€” Built-in support for a three-pane window with a vertical Launch Bar
  • πŸ” Zoom scaling support β€” All components scale uniformly with zoom, ensuring a consistent look at any size
  • πŸ”‹ Batteries included β€” Handy widgets tuned for desktop applications, ready to use out of the box
  • 🏠️ Customizable appearance β€” Supports dark mode, color themes, and custom fonts
  • 🌐 Cross-platform β€” Runs on macOS, Windows, Linux, iOS, and Android

UI Utility Components #

Layout #

  • Scaffold β€” three-pane window layout with Launch Bar, resizable primary/secondary sidebars, and main content area
  • Master Detail Layout β€” master/detail split with synchronized selection
  • Tab View β€” tab bar and content area
  • Split Pane β€” draggable resizable split pane with minimum width constraints
  • Panel β€” themed container with background and border
  • Section
  • Scroll View
  • Toolbar β€” main, primary/secondary sidebar variants
  • Launch Bar β€” vertical icon navigation bar with top/bottom sections; collapses to icons-only
  • Sidebar β€” resizable primary and secondary areas; standard and floating panel (macOS) styles
  • Sidebar List β€” filled, subtle, and inset item styles

Data View #

  • Table View β€” sortable/resizable/reorderable columns, single/multi-row selection, row reordering, leading/trailing row widgets, and visual customization (header divider, column dividers, stripe rows)
  • Outline View β€” collapsible tree-style list
  • List Tile β€” single/double-tap aware, hover highlight

Buttons #

  • Button β€” squircle corners, multiple size and style variants
  • Icon Button
  • Icon Label Button
  • Segmented Button
  • Split Button β€” primary action with secondary dropdown
  • Button Group
  • Overflow Menu Button β€” collapses excess items into a popup menu
  • Context Menu

  • Overflow Menu

  • Dropdown Menu β€” macOS-style press-drag-release selection, keyboard navigation. No submenu support yet.

    Dropdown Menu

  • Popup Menu

Input #

  • Text Field β€” zoom-scalable, squircle border, cursor and selection fully functional on desktop
  • Search Field β€” with optional suggestion overlay
  • Tags Field β€” inline tag editing; keyboard navigation (←/β†’ to move between tags, Backspace for 2-step delete, Delete, Escape)
  • Number Field β€” numeric input with βˆ’ / + buttons, min/max/step
  • Checkbox β€” rectangle/circle shape; filled/outline/iconOnly fill style
  • Radio Button
  • Switch β€” toggle switch; compact and wide styles
  • Expansion Tile
  • Date Picker β€” monthly calendar, single and range selection
  • Slider
  • Color Picker β€” HSV canvas, hue/alpha sliders, palette swatches, eyedropper

Feedback #

  • Dialog β€” modal dialog
  • Confirmation Dialog
  • Toast
  • Snack Bar
  • Popover β€” directional, auto-dismiss, animated
  • Notification Overlay
  • Tooltip
  • Linear Progress Indicator
  • Circular Progress Indicator

Typography #

  • Text β€” semantic variants: page title, body, caption, code, table, and more

Visual #

  • Divider
  • Tag
  • Container
  • Selection Decorator
  • Rectangle Border β€” Figma-style squircle border container
  • Eye Dropper β€” in-window color sampling with zoom loupe

Interaction #

  • Gesture Detector β€” single/double tap without delay; hover and cursor support
  • Draggable
  • Shortcut Scope

Platform #

  • Platform Menus β€” macOS native menu bar

Design Tokens #

  • Spacing β€” zoomable spacing (4px grid)
  • Padding β€” zoomable padding
  • Border Radius β€” smooth squircle curve
  • Border

State Management #

fonde_ui uses plain Flutter state management (ChangeNotifier + InheritedWidget).

Theme, accessibility config, and sidebar state are accessible via BuildContext extensions from any widget's build method.

Setup #

Add to your pubspec.yaml:

dependencies:
  fonde_ui: ^0.9.0

Minimal Example #

import 'package:fonde_ui/fonde_ui.dart';

void main() {
  runApp(
    FondeApp(
      title: 'My App',
      home: FondeScaffold(
        toolbar: MyToolbar(),
        content: MyContent(),
      ),
    ),
  );
}

FondeApp wraps MaterialApp internally.

FondeScaffold β€” Multi-pane Layout #

FondeScaffold provides the top-level window layout for desktop apps:

[ Launch Bar | Primary Sidebar | Main Content | Secondary Sidebar ]
  • Launch Bar β€” vertical icon bar on the far left, split into top (main) and bottom (meta) sections
  • Primary Sidebar β€” resizable (240–480px), collapsible; supports standard and floating panel (macOS) styles
  • Secondary Sidebar β€” resizable (200–400px), collapsible
  • Main Content β€” fills remaining space
FondeScaffold(
  toolbar: FondeMainToolbar(children: [...]),
  launchBar: FondeLaunchBar(
    topItems: [
      FondeLaunchBarItem(icon: LucideIcons.house, label: 'Home', logicalIndex: 0, onTap: () {}),
    ],
    bottomItems: [
      FondeLaunchBarItem(icon: LucideIcons.settings, label: 'Settings', logicalIndex: 99),
    ],
    selectedIndex: 0,
  ),
  primarySidebar: FondeSidebar(
    child: FondeSidebarList(children: [...]),
  ),
  content: MyMainContent(),
)

Sidebar visibility and width are controlled via FondeSidebarControllerScope:

// Toggle primary sidebar
FondeSidebarControllerScope.primaryOf(context)?.toggle();

Documentation #

Full documentation is under preparation. In the meantime, refer to the example app for usage demonstrations.

For LLM context, load llms.txt.

License #

Apache License 2.0

Apps Created with Fonde UI #

6
likes
150
points
52
downloads

Documentation

API reference

Publisher

verified publisherszktty.jp

Weekly Downloads

Desktop-first Flutter UI utility components with native-like interaction and zoom scaling support.

Repository (GitHub)
View/report issues

Topics

#widget #user-interface #design #components #desktop

License

Apache-2.0 (license)

Dependencies

flutter, flutter_localizations

More

Packages that depend on fonde_ui