scrizer 1.3.4
scrizer: ^1.3.4 copied to clipboard
A lightweight and scalable UI toolkit for Flutter that provides responsive typography, spacing, and layout utilities based on screen size and orientation.
π§ 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.typographyandScrizer.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 #
- β Typography system
- β Layout wrappers
- β Support for text direction (RTL)
- β Theme integration
- β Custom breakpoints
π§βπ» Author #
Made with β€οΈ by @Mbouziani
π License #
MIT License