fifty_ui library
FDL v2 styled Flutter components for the fifty.dev ecosystem.
This package provides a comprehensive set of widgets that follow the
Fifty Design Language v2 specification, built on top of fifty_tokens
and fifty_theme.
All components feature:
- Burgundy primary color (FDL v2 brand)
- Mode-aware colors (dark and light mode support)
- Motion animations using FDL timing tokens
- WCAG 2.1 AA compliant accessibility
- Manrope font family
Getting Started
- Add the package to your
pubspec.yaml:
dependencies:
fifty_ui:
path: ../fifty_ui
fifty_theme:
path: ../fifty_theme
- Wrap your app with the Fifty theme:
import 'package:fifty_theme/fifty_theme.dart';
import 'package:fifty_ui/fifty_ui.dart';
MaterialApp(
theme: FiftyTheme.dark(),
home: MyApp(),
);
- Use the components:
FiftyButton(
label: 'DEPLOY',
onPressed: () => handleDeploy(),
variant: FiftyButtonVariant.primary,
)
Components
Buttons
- FiftyButton - Primary action button with variants (heights: 36/48/56)
- FiftyIconButton - Circular icon button
Inputs
- FiftyTextField - Text input with 48px height and xl radius
- FiftySwitch - Kinetic toggle (ON = slateGrey, NOT primary!)
- FiftySlider - Range slider with mode-aware styling
- FiftyDropdown - Dropdown selector with xl radius
- FiftyCheckbox - Multi-select boolean control with v2 styling
- FiftyRadio - Single-select option control with v2 styling
Controls
- FiftySegmentedControl - Pill-style segmented control (NEW in v2)
Containers
- FiftyCard - Card container with xxl/xxxl radius and md shadow
Display
- FiftyChip - Tag/label component
- FiftyDivider - Themed divider
- FiftyDataSlate - Key-value display panel
- FiftyBadge - Status indicator
- FiftyAvatar - User avatar
- FiftyProgressBar - Linear progress indicator
- FiftyStatCard - Metric/KPI display card
- FiftyListTile - List item with icon, title, trailing content
- FiftyLoadingIndicator - Text-based loading indicator
Feedback
- FiftySnackbar - Toast notification
- FiftyDialog - Modal dialog with xxxl radius
- FiftyTooltip - Hover tooltip
Organisms
- FiftyNavBar - Floating navigation bar with glassmorphism
- FiftyHero - Dramatic headline text with Manrope font
Molecules
- FiftyCodeBlock - Code display with syntax highlighting
Utils
- GlowContainer - Reusable glow animation wrapper
- KineticEffect - Hover/press scale animation wrapper
- GlitchEffect - RGB chromatic aberration effect
- HalftonePainter - CustomPainter for halftone dot patterns
- HalftoneOverlay - Widget wrapper for halftone textures
Classes
- FiftyAvatar
- A circular avatar with FDL v2 styling.
- FiftyBadge
- A small status indicator badge with FDL v2 styling.
- FiftyButton
- A styled button following the Fifty Design Language v2.
- FiftyCard
- A card container with FDL v2 styling.
- FiftyCheckbox
- A checkbox control following FDL v2 styling.
- FiftyChip
- A chip/tag component with FDL v2 styling.
- FiftyCodeBlock
- A terminal-style code display component with FDL v2 styling.
- FiftyCursor
- FiftyCursor
- FiftyDataSlate
- A terminal-style key-value display panel with FDL v2 styling.
- FiftyDialog
- A modal dialog with FDL v2 styling.
- FiftyDivider
- A themed divider following FDL v2 styling.
-
FiftyDropdown<
T> - A styled dropdown selector following FDL v2 design principles.
-
FiftyDropdownItem<
T> - A dropdown menu item for FiftyDropdown.
- FiftyHero
- Dramatic headline text with Manrope font.
- FiftyHeroSection
- A hero section with title and optional subtitle.
- FiftyIconButton
- A circular icon button with FDL v2 styling.
- FiftyInfoRow
- FiftyInfoRow
- FiftyLabeledIconButton
- FiftyLabeledIconButton
- FiftyListTile
- A list tile component for displaying items with icon, title, and trailing content.
- FiftyLoadingIndicator
- FDL-compliant loading indicator using text sequences.
- A floating "Dynamic Island" style navigation bar with FDL v2 styling.
- An item in FiftyNavBar.
- FiftyNavPill
- FiftyNavPillBar
- Data class for navigation pill items.
- FiftyProgressBar
- A linear progress bar with FDL v2 styling.
- FiftyProgressCard
- A progress card for displaying metrics with a progress bar.
-
FiftyRadio<
T> - A radio button control following FDL v2 styling.
-
FiftyRadioCard<
T> - A card-style radio button control following FDL v2 styling.
- FiftySectionHeader
- FiftySectionHeader
-
FiftySegment<
T> - A segment option for FiftySegmentedControl.
-
FiftySegmentedControl<
T> - A segmented control following FDL v2 styling.
- FiftySettingsRow
- FiftySettingsRow
- FiftySlider
- A styled slider following FDL v2 design principles.
- FiftySnackbar
- A themed snackbar with FDL v2 styling.
- FiftyStatCard
- A metric/stat card for displaying KPIs with trend indicators.
- FiftyStatusIndicator
- FiftyStatusIndicator
- FiftySwitch
- A kinetic toggle switch following FDL v2 styling.
- FiftyTextField
- A text field with FDL v2 styling.
- FiftyTooltip
- A wrapper widget that adds a FDL v2 styled tooltip on hover.
- GlitchEffect
- RGB chromatic aberration (glitch) effect.
- GlowContainer
- A reusable container that handles focus/hover glow animation.
- HalftoneOverlay
- A widget that displays a halftone texture overlay.
- HalftonePainter
- A CustomPainter that draws a halftone dot pattern.
- KineticEffect
- A reusable hover/press animation wrapper that provides kinetic feedback.
Enums
- FiftyBadgeVariant
- Badge variants for different semantic meanings.
- FiftyBorderStyle
- Border style options for FiftyTextField.
- FiftyButtonSize
- Button sizes for different contexts.
- FiftyButtonVariant
- Button variants following the Fifty Design Language v2.
- FiftyCardSize
- Card size variants for FiftyCard.
- FiftyChipVariant
- Chip variants for different semantic meanings.
- FiftyCursorStyle
- Cursor style options for FiftyTextField.
- FiftyHeroSize
- Hero text size variants.
- FiftyIconButtonSize
- Icon button sizes.
- FiftyIconButtonVariant
- Icon button variants following FDL v2.
- FiftyLabeledIconButtonSize
- Size variants for FiftyLabeledIconButton.
- FiftyLabeledIconButtonStyle
- Style variants for FiftyLabeledIconButton.
- FiftyLoadingSize
- Loading indicator sizes.
- FiftyLoadingStyle
- Loading indicator styles following FDL.
- Navigation bar style variants.
- FiftyPrefixStyle
- Prefix style options for FiftyTextField.
- FiftySectionHeaderSize
- Size variants for the section header.
- FiftySegmentedControlVariant
- Visual variants for FiftySegmentedControl.
- FiftySnackbarVariant
- Snackbar variants for different message types.
- FiftyStatTrend
- Trend direction for stat cards.
- FiftyStatusSize
- Size variants for the status indicator.
- FiftyStatusState
- Status states for the indicator.
- FiftySwitchSize
- Size variants for FiftySwitch.
- FiftyTextFieldShape
- Shape options for FiftyTextField.
Functions
-
showFiftyDialog<
T> ({required BuildContext context, required WidgetBuilder builder, bool barrierDismissible = true}) → Future< T?> - Helper function to show a FiftyDialog with proper animation.