Sintia System Design
A Flutter design system package with configurable theming, and UI components. Built to give consuming apps full control over colors and typography while keeping UI consistency.
Installation
Add the package to your pubspec.yaml:
dependencies:
sintia_system_design: ^0.0.1
Then run:
flutter pub get
Setup
Configure the theme in your app's main.dart using SintiaThemeConfig and SintiaTheme:
import 'package:sintia_system_design/sintia_system_design.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
const config = SintiaThemeConfig(
primaryColor: Colors.blue,
secondaryColor: Colors.indigo,
primaryFont: 'YourPrimaryFont',
secondaryFont: 'YourSecondaryFont',
tertiaryFont: 'YourTertiaryFont', // optional
);
return MaterialApp(
theme: SintiaTheme.light(config),
darkTheme: SintiaTheme.dark(config),
home: const MyHomePage(),
);
}
}
Fonts must be registered in your app's
pubspec.yaml. The package is font-source agnostic — use local assets or any font package likegoogle_fonts.
Font roles
| Text roles | Font used |
|---|---|
display*, headline* |
primaryFont |
title*, body* |
secondaryFont |
label* |
tertiaryFont if provided, otherwise secondaryFont |
Components
SintiaText
A styled text widget that wraps Flutter's Text.
SintiaText(
'Hello World',
style: TextStyle(fontSize: 16),
maxLines: 2,
overflow: TextOverflow.ellipsis,
)
SintiaCard
A surface container with consistent border, shadow, and radius tokens applied.
SintiaCard(
padding: EdgeInsets.all(SintiaSizes.size2),
child: Text('Card content'),
)
Design Tokens
Colors — AppColors
Semantic color palette and gray scale:
AppColors.statusDanger01
AppColors.statusSuccess01
AppColors.statusWarning
AppColors.statusDisabled
AppColors.scale00 // white
AppColors.scale06 // darkest gray
Sizes — SintiaSizes
Spacing and border radius tokens based on a Fibonacci-like scale:
SintiaSizes.size1 // 10
SintiaSizes.size2 // 20
SintiaSizes.size3 // 30
// ...up to size9
SintiaSizes.radius1 // 10
SintiaSizes.radius2 // 20
Shadows — SintiaShadows
Three elevation levels:
SintiaShadows.s1 // subtle
SintiaShadows.s2 // medium
SintiaShadows.s3 // strong
Elevations — SintiaElevations
SintiaElevations.s1 // 2
SintiaElevations.s2 // 4
// ...up to s6
Extensions
BuildContext
Quick access to theme properties:
context.theme
context.colorScheme
context.textTheme
context.primaryColor
context.errorColor
TextStyle
Compose styles fluently:
someStyle.primary(context) // applies colorScheme.primary
someStyle.secondary(context) // applies colorScheme.secondary
someStyle.withColor(AppColors.statusDanger01)
Links
- Website: sintia.tech
- Repository: github.com/sintia-tech/sintia-system-design
- Issues: github.com/sintia-tech/sintia-system-design/issues
Libraries
- atoms/app_bar/sintia_app_bar_title
- atoms/sintia_card
- atoms/sintia_text
- extensions/build_context/responsive_extension
- extensions/build_context/theme_extension
- extensions/sintia_preview
- extensions/text_style_extension
- foundation/colors
- foundation/theme/sintia_theme_config
- foundation/theme/sintia_themes
- models/sintia_app_bar_action
- molecules/app_bar/sintia_app_bar_leading
- molecules/app_bar/sintia_app_bar_title_section
- molecules/app_bar/sintia_app_bar_trailing
- molecules/sintia_text_field
- organisms/sintia_app_bar
- organisms/sintia_dialog
- sintia_system_design
- tokens/breakpoints
- tokens/colors
- tokens/elevations
- tokens/shadows
- tokens/sizes