fluent_2 0.0.4 copy "fluent_2: ^0.0.4" to clipboard
fluent_2: ^0.0.4 copied to clipboard

Microsoft Fluent 2 components for Flutter web and desktop: 90+ widgets, 20 chart types, tokens, theming, a11y and 135 locales. No Material.

Fluent 2 for Flutter

fluent_2

Microsoft Fluent 2 for Flutter — web & desktop.
90+ components, 20 chart types, 4 themes, 135 locales.
Built on package:flutter/widgets.dart. Zero Material. Zero Cupertino.

pub version live showroom CI no material MIT

▶ Open the live showroom  ·  Components  ·  Charts  ·  Theme


Install #

dependencies:
  fluent_2: ^0.0.1
import 'package:fluent_2/fluent_2.dart';

void main() => runApp(
  FluentApp(
    theme: FluentThemeData.light(),
    darkTheme: FluentThemeData.dark(),
    themeMode: FluentThemeMode.system,
    home: const Home(),
  ),
);

One import gets you components and tokens — fluent_2 re-exports fluent_2_core.


Showcase #

Every image below is a real render of the widgets in this package, captured from the showroom in both themes. Nothing here is a mockup.

Buttons #

Light Dark
Buttons light Buttons dark

Text inputs #

Light Dark
Inputs light Inputs dark

Selection controls #

Light Dark
Selection light Selection dark

Surfaces & people #

Light Dark
Surfaces light Surfaces dark
Light Dark
Navigation light Navigation dark
Light Dark
Menu light Menu dark

Data grid #

Light Dark
Data grid light Data grid dark

Calendar #

Light Dark
Calendar light Calendar dark

Status & progress #

Light Dark
Feedback light Feedback dark

Charts #

A full port of the Fluent UI React charting library — axes, legends, callouts, annotations, and a declarative (Plotly-schema) entry point included.

Light Dark
Charts light Charts dark
Bar charts light Bar charts dark

What's in the box #

Buttons Button · CompoundButton · MenuButton · SplitButton · ToggleButton
Inputs Input · Textarea · SearchBox · SpinButton · Dropdown · Dropdown options · Slider · Switch · Checkbox · Radio + RadioGroup · Rating · SwatchPicker · ColorPicker (ColorArea · ColorSlider · AlphaSlider) · TagPicker · Field · Label · InfoLabel · InfoButton · Link
Date & time Calendar · DatePicker · TimePicker
Surfaces Card (header/footer/preview) · Accordion · Acrylic · Avatar · AvatarGroup · Badge · CounterBadge · PresenceBadge · Persona · Carousel · Divider · ProgressBar · Skeleton · Spinner · StatusIndicator · Tag · InteractionTag · Tooltip · MessageBar
Navigation Nav · NavDrawer · TabList · Breadcrumb · Tree · Toolbar · ListItem · DataGrid · Hamburger
Overlays Dialog · Drawer · Menu · MenuItem · Popover · TeachingPopover · Toast + Toaster
Charts Area · Line · VerticalBar · GroupedVerticalBar · VerticalStackedBar · HorizontalBar · HorizontalBarWithAxis · Donut · Funnel · Gauge · Gantt · HeatMap · Polar · Sankey · Scatter · Sparkline · ChartTable · Declarative (Plotly schema) · Vega declarative · Annotation layers

Every component ships a companion *Style class, so a widget can be restyled without a fork and without a copyWith chain.


Theming #

Four ready themes, and brand ramps generated from a single key colour — a Dart port of Microsoft's Theme Designer algorithm (two quadratic béziers through CIE Lab, sampled against a per-hue lightness table, chroma-snapped into sRGB).

FluentThemeData.light();        FluentThemeData.dark();
FluentThemeData.teamsDark();    // own token table, not dark + Teams ramp
FluentThemeData.highContrast(); // 8 Windows system colours, no brand ramp

FluentThemeData.light(
  brand: FluentBrandRamp.fromKeyColor(
    const Color(0xFF7B2D8E),
    vibrancy: 0.5,   // both bézier control points
    hueTorsion: 0.2, // rotate through neighbouring hues (-0.5…0.5)
  ),
);

Verbatim upstream ramps are there too, for fidelity to Microsoft's shipped themes: FluentBrandRamp.web, .teams, .teamsV21, .office, .communicationBlue.

Tokens, not magic numbers:

final theme = FluentTheme.of(context);
theme.colors.brandBackground;           // alias token
theme.typography.subtitle1;             // type ramp
theme.shadow(FluentElevation.shadow8);  // two-layer elevation
FluentSpacing.l;                        // 16
FluentRadius.medium;                    // 4
FluentDuration.normal;                  // 200ms
FluentCurve.decelerateMid;              // entrance easing

Accessibility, i18n, RTL #

  • Keyboard first. Every interactive component has a focus path (FocusableActionDetector) and a visible focus indicator.
  • Screen readers. Semantics labels on every control, including per-chart descriptions and data tables behind each visualisation.
  • High contrast. A first-class theme, covered by its own golden images — not an afterthought.
  • 135 locales, 32 languages, generated from ARB and checked in, so the published package needs no build step.
  • RTL is a layout mode, not a mirror hack: Arabic, Hebrew, Persian and Urdu are part of the test matrix.
FluentApp(
  supportedLocales: FluentLocalizations.supportedLocales,
  localizationsDelegates: const <LocalizationsDelegate<dynamic>>[
    FluentLocalizations.delegate,
  ],
);

How the fidelity is proven #

Question Answered by
Does it match the Figma spec? Numeric fixtures — resolved sizes, paddings, radii, strokes and ARGB fills compared to values extracted from the Fluent 2 Figma file.
Did it change since last commit? 264 golden images: one per component per theme, light / dark / high contrast.
Does it match Fluent UI React v9? Story-for-story parity with the React Storybook — 90 documented pages, rebuilt as the showroom you can open above.
Is Material creeping back in? melos run no-material fails the build on any material.dart or cupertino.dart import.

Example #

The example/ directory is the showroom itself — a hand-written clone of the Fluent UI React v9 Storybook, deployed on every push to main:

https://b1digital.github.io/fluent_ui_2_flutter/

cd example
flutter run -d chrome

Package Purpose
fluent_2_core Tokens, theming, FluentApp — shared foundation, re-exported here.
fluent_2_fonts Platform font facade; open-source Selawik on Web and Windows.

License #

MIT © ICITECH Teknoloji A.Ş. Fluent 2 is a design system by Microsoft; this is an independent Flutter implementation and is not affiliated with or endorsed by Microsoft.

3
likes
160
points
273
downloads
screenshot

Documentation

Documentation
API reference

Publisher

verified publishericitech.com.tr

Weekly Downloads

Microsoft Fluent 2 components for Flutter web and desktop: 90+ widgets, 20 chart types, tokens, theming, a11y and 135 locales. No Material.

Repository (GitHub)
View/report issues

Topics

#fluent #design-system #ui #widget #chart

License

MIT (license)

Dependencies

fluent_2_core, flutter, intl

More

Packages that depend on fluent_2