๐ง Scrizer
Scrizer is a lightweight and scalable UI toolkit built for Flutter that provides responsive typography, spacing, and layout utilities based on screen size and orientation.
๐ One-time init. Global access to
Scrizer.scale
&Scrizer.typography
.
๐ก Why Scrizer?
Because scaling manually across devices is painful. Scrizer gives you:
- ๐ง Smart, responsive typography
- ๐งฑ Modular layout helpers
- โ๏ธ Consistency across all screen sizes
๐ Features
- ๐ Responsive scaling for width, height, gaps, icons, and padding
- โ๏ธ Typography with dynamic font scaling
- โ Custom device type detection
- ๐งฑ Reusable widgets for responsive text and layout spacing
- ๐ง Centralized screen info through the Scrizer singleton
๐ฆ Installation
dependencies:
scrizer: <latest-version>
๐งฐ Usage
1. Wrap Your App with ScrizerLayout
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return ScrizerLayout(
child: MaterialApp(
title: 'Scrizer App',
home: HomeScreen(),
),
);
}
}
2. Use ScrizerText
for scalable text
ScrizerText(
'Hello World',
fontSize: 16,
style: TextStyle(fontWeight: FontWeight.bold),
)
Or use the typography styles:
Text(
'Hello',
style: Scrizer.typography.titleLarge,
)
3. Add spacing with ScrizerGap
Column(
children: [
Text('Above'),
ScrizerGap.v(16),
Text('Below'),
],
)
4. Use responsive padding
Container(
padding: Scrizer.scale.paddingAll(12),
child: ...
)
๐งพ Important Notes
-
Scrizer.initialize(context)
is automatically called inScrizerLayout
. -
Always access typography and scaler via
Scrizer.typography
andScrizer.scale
, not directly via their classes. -
Scrizer.fontSize(size)
is a shortcut forScrizer.typography.scale(size)
.
๐ค Typography API
Scrizer provides a consistent set of text styles that scale with screen size.
Style Name | Usage Example |
---|---|
displayLarge |
Hero titles |
displayMedium |
Big headers |
headlineMedium |
Page titles |
titleMedium |
Section titles |
bodyLarge |
Main content text |
bodySmall |
Secondary info or meta |
caption |
Hints, footnotes |
link |
Tappable links (underline + color) |
๐ Scale API
Scrizer.scale.width(100); // scales width responsively
Scrizer.scale.height(50); // scales height responsively
Scrizer.scale.radius(12); // responsive border radius
Scrizer.scale.paddingAll(16); // uniform padding
Scrizer.scale.icon(24); // icon size that scales
๐ Example
Padding(
padding: Scrizer.scale.paddingSymmetric(h: 12, v: 8),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
ScrizerText('Title', style: Scrizer.typography.titleMedium),
ScrizerGap.v(12),
ScrizerText('Body text here', fontSize: 14),
],
),
)
๐ ๏ธ Roadmap
x
Typography systemx
Layout wrappers
๐งโ๐ป Author
Made with โค๏ธ by @Mbouziani
๐ License
MIT License