remix_fortal 0.1.0-beta.1 copy "remix_fortal: ^0.1.0-beta.1" to clipboard
remix_fortal: ^0.1.0-beta.1 copied to clipboard

Fortal is a Radix Themes-inspired preset theme and widget catalog built on Remix.

Fortal #

A Radix Themes-inspired preset theme and widget catalog for Remix.

Remix gives you complete freedom to build any design system, which also means it ships no theme of its own. Fortal is the ready-made alternative: a comprehensive set of prebuilt styles based on Radix Themes 3.3.0, providing a polished, modern UI out of the box while remaining fully customizable.

Fortal lives in its own package so that remix stays genuinely theme-free. If you are building your own design system on Remix, you pay nothing for a theme you never use — no token tables, no Radix color data, no parity contract.

Installation #

flutter pub add remix_fortal

remix_fortal depends on remix and does not re-export it. Import both when you need base Remix widgets alongside Fortal ones.

Quick Start #

Wrap your app with FortalScope to provide the design tokens, then use the Fortal* widgets. Named constructors select a fixed variant; use the unnamed constructor with variant: when the choice is dynamic:

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return FortalScope(
      child: WidgetsApp(
        color: Colors.white,
        builder: (_, _) => Center(
          child: FortalButton.solid(
            onPressed: () {},
            label: 'Fortal Button',
          ),
        ),
      ),
    );
  }
}

FortalScope is a MixScope. Place it above your app widget so that overlay and route content inherits the tokens.

Customizing Fortal styles #

Fortal widgets call the matching fortal*Style recipe internally. Use those recipes directly when you need a custom Remix widget composition:

import 'package:flutter/material.dart';
import 'package:remix/remix.dart';
import 'package:remix_fortal/remix_fortal.dart';

final style = fortalButtonStyle(variant: FortalButtonVariant.solid)
  .borderRadiusAll(const Radius.circular(8))
  .paddingX(32)
  .onHovered(.scale(1.05));

Design tokens #

Fortal styles are built on a token system that includes:

  • Colors: 12-step accent and gray scales (powered by Radix Colors)
  • Spacing: 9-step spacing scale
  • Border Radius: 6-step radius scale
  • Shadows: 6-level shadow system
  • Typography: 9-size type scale
  • Border Widths: Consistent stroke weights

You can use these tokens directly in your own styles:

import 'package:remix/remix.dart';
import 'package:remix_fortal/remix_fortal.dart';

final style = ButtonStyler()
  .color(FortalTokens.accent9())
  .paddingAll(FortalTokens.space4())
  .borderRadiusAll(FortalTokens.radius3())
  .label(TextStyler().color(FortalTokens.accentContrast()));

Covered components #

Every Remix component has a matching Fortal recipe and generated widget:

Interactive Elements #

  • FortalButton, FortalIconButton, FortalSwitch, FortalToggle
  • FortalCheckbox, FortalRadio, FortalSlider

Input Components #

  • FortalTextField, FortalTextArea, FortalSelect

Display Components #

  • FortalAvatar, FortalBadge, FortalCard, FortalDataList
  • FortalDataTable, FortalDivider, FortalProgress
  • FortalSkeleton, FortalSpinner

Layout & Navigation #

  • FortalTabBar, FortalTab, FortalTabView, FortalAccordion
  • FortalMenu, FortalSegmentedControl, FortalToggleGroup

There is no FortalTabs: the behavioral root stays RemixTabs, which takes no style. The same applies to the other behavioral roots (RemixRadioGroup, RemixCheckboxGroup, RemixAccordionGroup).

Overlays #

  • FortalDialog, FortalTooltip, FortalPopover, FortalCallout

Radix parity #

Fortal's mapping to Radix Themes 3.3.0 is enforced by a checked-in parity contract (reference/radix_themes_3_3_0/) verified in CI. Every mapped family documents its upstream selectors, supported style props, and the tests that cover them.

Built on Remix #

Fortal is a preset, not a fork. Every Fortal* widget is a thin generated wrapper that calls the corresponding Remix* constructor with a fortal*Style() recipe. Anything you can do with Remix, you can do with Fortal — and you can drop down to plain Remix stylers at any point.

License #

BSD-3-Clause. See LICENSE.

0
likes
150
points
0
downloads

Documentation

Documentation
API reference

Publisher

verified publisherleoafarias.com

Weekly Downloads

Fortal is a Radix Themes-inspired preset theme and widget catalog built on Remix.

Repository (GitHub)
View/report issues

Topics

#design-system #ui #widget #styling #mix

License

BSD-3-Clause (license)

Dependencies

flutter, mix, mix_annotations, naked_ui, remix

More

Packages that depend on remix_fortal