desktop_ui_kit 0.5.0 copy "desktop_ui_kit: ^0.5.0" to clipboard
desktop_ui_kit: ^0.5.0 copied to clipboard

Platform-adaptive desktop widgets for Flutter with native OS conventions and keyboard navigation.

desktop_ui_kit #

pub package License: MIT GitHub

A comprehensive, platform-adaptive desktop widget library for Flutter.

Native OS conventions. Keyboard-first. Fully accessible.

Targets Windows (Fluent Design), macOS (Human Interface Guidelines), and Linux (GNOME/GTK) from a single codebase.


Features #

  • Platform-Adaptive Theming — Design tokens, light/dark/high-contrast, auto-detects platform fonts (Segoe UI, SF Pro, Cantarell)
  • Desktop Widgets — 17 widgets across form controls, layout, and core categories
  • Keyboard-First — Shortcuts, focus management, accessible by design
  • Desktop-Convenient — Status bar, toolbars, panel layouts, window management primitives
  • Accessible — Full Semantics tree on every widget, high-contrast mode support
  • Zero Dependencies — Flutter SDK only, no third-party packages

Installation #

dependencies:
  desktop_ui_kit: ^0.3.0

Quick Start #

import 'package:flutter/material.dart';
import 'package:desktop_ui_kit/desktop_ui_kit.dart';

void main() {
  runApp(const DesktopApp(home: MyHomePage()));
}

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Column(
        children: [
          DesktopMenuBar(groups: [
            DesktopMenuGroup('File', [
              DesktopMenuEntry(label: 'Open', onPressed: () {}),
              DesktopMenuEntry(label: 'Save', onPressed: () {}),
            ]),
          ]),
          Expanded(
            child: Center(
              child: DesktopButton(
                label: 'Hello Desktop',
                icon: Icons.desktop_windows,
                onPressed: () {},
              ),
            ),
          ),
        ],
      ),
    );
  }
}

Widgets #

Form Controls #

Widget Description
DesktopTextField Labels, hints, prefix/suffix icons, validation states, obscure text
DesktopDropdown Floating overlay, keyboard navigation, search, custom option builders
DesktopCheckbox Tri-state with indeterminate support, check icon
DesktopRadio Group selection with native styling
DesktopSwitch Animated on/off toggle with smooth transitions

Layout #

Widget Description
DesktopTabBar Scrollable tabs with close buttons, drag reorder, keyboard nav (arrows, Ctrl+W)
DesktopTabView Animated tab transitions, lazy loading, custom empty states
DesktopToolbar Horizontal action bar with buttons, separators, spacers, custom widgets
DesktopDockPanel Collapsible side panel with drag-to-resize and title bar actions
DesktopPanelGroup Multi-panel container with tabbed switching and collapsed icons

Core #

Widget Description
DesktopButton Primary, secondary, ghost, danger variants with loading state
DesktopDialog Modal dialog with title bar, content, and action bar
DesktopDataTable Sortable columns, selectable rows, resizable headers
DesktopTreeView Expandable tree with icons, selection, custom depth
DesktopSplitPanel Horizontal or vertical draggable splitter
DesktopMenuBar Native-style top menu bar with groups and keyboard shortcuts
DesktopCommandPalette VS Code-style fuzzy-search command palette

Theming #

Design Tokens #

DesktopTokens.spaceMd        // 12px
DesktopTokens.radiusLg       // 6px
DesktopTokens.iconSm         // 16px
DesktopTokens.inputHeight    // 32px
DesktopTokens.tooltipDelay   // 500ms
DesktopTokens.elevation(2)   // Shadow list

Color Schemes #

DesktopColorScheme.light
DesktopColorScheme.dark

// Custom:
final custom = DesktopColorScheme.light.copyWith(accent: Colors.red);

Typography #

final typography = DesktopTextStyle.platformAdaptive(colorScheme: colorScheme);
typography.heading1  // 32px bold, platform font family
typography.body      // 14px regular
typography.code      // Monospace stack

Platform Support #

Platform Status
Windows Supported
macOS Supported
Linux Supported
Android Not in scope
iOS Not in scope
Web Limited

Contact #

Created by Ali Rajabalirajab.dev@gmail.com

License #

MIT

0
likes
0
points
378
downloads

Documentation

Documentation

Publisher

unverified uploader

Weekly Downloads

Platform-adaptive desktop widgets for Flutter with native OS conventions and keyboard navigation.

Repository (GitHub)
View/report issues

Topics

#desktop #ui #widget #design-system #cross-platform

Funding

Consider supporting this project:

github.com

License

unknown (license)

Dependencies

flutter

More

Packages that depend on desktop_ui_kit