fifty_tokens 1.0.3 copy "fifty_tokens: ^1.0.3" to clipboard
fifty_tokens: ^1.0.3 copied to clipboard

Design tokens for the fifty.dev ecosystem - colors, typography, spacing, motion, and more.

example/fifty_tokens_example.dart

// ignore_for_file: avoid_print

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

void main() {
  // ============================================================================
  // FIFTY TOKENS V2 EXAMPLE
  // Demonstrating FDL v2 "Sophisticated Warm" design tokens
  // ============================================================================

  // ---------------------------------------------------------------------------
  // COLORS (Sophisticated Warm palette)
  // ---------------------------------------------------------------------------

  // Core palette
  print('BURGUNDY (primary): ${FiftyColors.burgundy}'); // #88292F
  print('BURGUNDY_HOVER: ${FiftyColors.burgundyHover}'); // #6E2126
  print('CREAM: ${FiftyColors.cream}'); // #FEFEE3
  print('DARK_BURGUNDY: ${FiftyColors.darkBurgundy}'); // #1A0D0E
  print('SLATE_GREY (secondary): ${FiftyColors.slateGrey}'); // #335C67
  print('HUNTER_GREEN (success): ${FiftyColors.hunterGreen}'); // #4B644A
  print('POWDER_BLUSH: ${FiftyColors.powderBlush}'); // #FFC9B9
  print('SURFACE_DARK: ${FiftyColors.surfaceDark}'); // #2A1517

  // Semantic aliases
  print('Primary: ${FiftyColors.primary}');
  print('Secondary: ${FiftyColors.secondary}');
  print('Success: ${FiftyColors.success}');

  // ---------------------------------------------------------------------------
  // TYPOGRAPHY (Manrope unified font)
  // ---------------------------------------------------------------------------

  // Font family
  print('Font family: ${FiftyTypography.fontFamily}'); // Manrope

  // Type scale (v2)
  print('Display Large: ${FiftyTypography.displayLarge}px'); // 32px
  print('Display Medium: ${FiftyTypography.displayMedium}px'); // 24px
  print('Title Large: ${FiftyTypography.titleLarge}px'); // 20px
  print('Title Medium: ${FiftyTypography.titleMedium}px'); // 18px
  print('Body Large: ${FiftyTypography.bodyLarge}px'); // 16px
  print('Body Medium: ${FiftyTypography.bodyMedium}px'); // 14px
  print('Label Large: ${FiftyTypography.labelLarge}px'); // 14px

  // Font weights
  print('Regular: ${FiftyTypography.regular}');
  print('Medium: ${FiftyTypography.medium}');
  print('Bold: ${FiftyTypography.bold}');
  print('Extra Bold: ${FiftyTypography.extraBold}');

  // ---------------------------------------------------------------------------
  // SPACING (4px base, tight density)
  // ---------------------------------------------------------------------------

  print('Base unit: ${FiftySpacing.base}px'); // 4px
  print('Tight gap: ${FiftySpacing.tight}px'); // 8px
  print('Standard gap: ${FiftySpacing.standard}px'); // 12px

  // ---------------------------------------------------------------------------
  // RADII (Complete scale)
  // ---------------------------------------------------------------------------

  print('None: ${FiftyRadii.none}px'); // 0px
  print('Small: ${FiftyRadii.sm}px'); // 4px
  print('Medium: ${FiftyRadii.md}px'); // 8px
  print('Large: ${FiftyRadii.lg}px'); // 12px
  print('XL: ${FiftyRadii.xl}px'); // 16px
  print('XXL: ${FiftyRadii.xxl}px'); // 24px
  print('XXXL: ${FiftyRadii.xxxl}px'); // 32px
  print('Full: ${FiftyRadii.full}px'); // 9999px

  // ---------------------------------------------------------------------------
  // MOTION
  // ---------------------------------------------------------------------------

  print('Instant: ${FiftyMotion.instant}'); // 0ms
  print('Fast: ${FiftyMotion.fast}'); // 150ms
  print('Compiling: ${FiftyMotion.compiling}'); // 300ms
  print('System Load: ${FiftyMotion.systemLoad}'); // 800ms

  // ---------------------------------------------------------------------------
  // SHADOWS (v2 - Soft, sophisticated)
  // ---------------------------------------------------------------------------

  print('Shadow SM: ${FiftyShadows.sm}');
  print('Shadow MD: ${FiftyShadows.md}');
  print('Shadow LG: ${FiftyShadows.lg}');
  print('Shadow Primary: ${FiftyShadows.primary}');
  print('Shadow Glow: ${FiftyShadows.glow}');

  // ---------------------------------------------------------------------------
  // GRADIENTS (v2 - New)
  // ---------------------------------------------------------------------------

  print('Gradient Primary: ${FiftyGradients.primary}');
  print('Gradient Progress: ${FiftyGradients.progress}');
  print('Gradient Surface: ${FiftyGradients.surface}');

  // ---------------------------------------------------------------------------
  // EXAMPLE: Building a Card (v2 style)
  // ---------------------------------------------------------------------------

  final cardDecoration = BoxDecoration(
    color: FiftyColors.surfaceDark,
    borderRadius: FiftyRadii.xxlRadius,
    border: Border.all(
      color: FiftyColors.borderDark,
      width: 1,
    ),
    boxShadow: FiftyShadows.md,
  );

  print('Card decoration: $cardDecoration');

  // ---------------------------------------------------------------------------
  // EXAMPLE: Primary Button with Shadow
  // ---------------------------------------------------------------------------

  final buttonDecoration = BoxDecoration(
    color: FiftyColors.burgundy,
    borderRadius: FiftyRadii.xlRadius,
    boxShadow: FiftyShadows.primary,
  );

  print('Button decoration: $buttonDecoration');

  // ---------------------------------------------------------------------------
  // EXAMPLE: Display Text Style
  // ---------------------------------------------------------------------------

  const displayStyle = TextStyle(
    fontFamily: FiftyTypography.fontFamily,
    fontSize: FiftyTypography.displayLarge,
    fontWeight: FiftyTypography.extraBold,
    color: FiftyColors.cream,
    height: FiftyTypography.lineHeightDisplay,
    letterSpacing: FiftyTypography.letterSpacingDisplay,
  );

  print('Display style: $displayStyle');

  // ---------------------------------------------------------------------------
  // EXAMPLE: Body Text Style
  // ---------------------------------------------------------------------------

  const bodyStyle = TextStyle(
    fontFamily: FiftyTypography.fontFamily,
    fontSize: FiftyTypography.bodyLarge,
    fontWeight: FiftyTypography.medium,
    color: FiftyColors.cream,
    height: FiftyTypography.lineHeightBody,
    letterSpacing: FiftyTypography.letterSpacingBody,
  );

  print('Body style: $bodyStyle');
}
0
likes
160
points
60
downloads

Publisher

unverified uploader

Weekly Downloads

Design tokens for the fifty.dev ecosystem - colors, typography, spacing, motion, and more.

Homepage
Repository (GitHub)
View/report issues

Topics

#flutter #design-tokens #design-system #theming

Documentation

API reference

License

MIT (license)

Dependencies

flutter, google_fonts

More

Packages that depend on fifty_tokens