flawless_core 0.1.0-alpha.7 copy "flawless_core: ^0.1.0-alpha.7" to clipboard
flawless_core: ^0.1.0-alpha.7 copied to clipboard

Core contracts, tokens, and primitives for the Flawless design system.

example/flawless_core_example.dart

import 'package:flawless_core/flawless_core.dart';

// Example implementation of the abstract contracts
class ExampleColorScheme implements FlawlessColorScheme {
  @override
  String get primary => '#6200EE';
  @override
  String get secondary => '#03DAC6';
  @override
  String get background => '#FFFFFF';
  @override
  String get surface => '#F5F5F5';
  @override
  String get error => '#B00020';
  @override
  String get onPrimary => '#FFFFFF';
  @override
  String get onSecondary => '#000000';
  @override
  String get onBackground => '#000000';
  @override
  String get onSurface => '#000000';
  @override
  String get onError => '#FFFFFF';
}

class ExampleTypography implements FlawlessTypography {
  @override
  FlawlessTextStyle get displayLarge => ExampleTextStyle();
  @override
  FlawlessTextStyle get displayMedium => ExampleTextStyle();
  @override
  FlawlessTextStyle get displaySmall => ExampleTextStyle();
  @override
  FlawlessTextStyle get headlineLarge => ExampleTextStyle();
  @override
  FlawlessTextStyle get headlineMedium => ExampleTextStyle();
  @override
  FlawlessTextStyle get headlineSmall => ExampleTextStyle();
  @override
  FlawlessTextStyle get bodyLarge => ExampleTextStyle();
  @override
  FlawlessTextStyle get bodyMedium => ExampleTextStyle();
  @override
  FlawlessTextStyle get bodySmall => ExampleTextStyle();
}

class ExampleTextStyle implements FlawlessTextStyle {
  @override
  String get fontFamily => 'Roboto';
  @override
  double get fontSize => 16.0;
  @override
  double get letterSpacing => 0.5;
  @override
  double get height => 1.2;
  @override
  String get fontWeight => 'normal';
}

class ExampleComponentProperties implements FlawlessComponentProperties {
  @override
  Map<String, dynamic> get properties =>
      {'borderRadius': 8.0, 'elevation': 2.0};
}

class ExampleDesignSystem implements FlawlessDesignSystem {
  @override
  FlawlessColorScheme get colorScheme => ExampleColorScheme();
  @override
  FlawlessTypography get typography => ExampleTypography();
  @override
  Map<String, FlawlessComponentProperties> get componentProperties => {
        'button': ExampleComponentProperties(),
        'card': ExampleComponentProperties(),
      };
  @override
  FlawlessSpacing get spacing => _ExampleSpacing();
  @override
  FlawlessMotion get motion => _ExampleMotion();
}

class _ExampleSpacing implements FlawlessSpacing {
  @override
  double get xxs => 4;
  @override
  double get xs => 8;
  @override
  double get sm => 12;
  @override
  double get md => 16;
  @override
  double get lg => 24;
  @override
  double get xl => 32;
  @override
  double get xxl => 40;
}

class _ExampleMotion implements FlawlessMotion {
  @override
  Duration get fast => const Duration(milliseconds: 150);
  @override
  Duration get normal => const Duration(milliseconds: 250);
  @override
  Duration get slow => const Duration(milliseconds: 350);
  @override
  String get easingStandard => 'standard';
  @override
  String get easingDecelerate => 'decelerate';
  @override
  String get easingAccelerate => 'accelerate';
}

void main() {
  final designSystem = ExampleDesignSystem();
  print('Primary color: \\${designSystem.colorScheme.primary}');
  print(
      'Button border radius: \\${designSystem.componentProperties['button']?.properties['borderRadius']}');
}
0
likes
160
points
26
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Core contracts, tokens, and primitives for the Flawless design system.

Homepage
Repository (GitHub)
View/report issues
Contributing

Topics

#design-system #ui #tokens #theming #dart

License

MIT (license)

More

Packages that depend on flawless_core