carpenter_units 0.2.0
carpenter_units: ^0.2.0 copied to clipboard
Typed physical UI units for Carpenter tooling and runtimes.
example/lib/main.dart
import 'package:carpenter_units/carpenter_units.dart';
import 'package:flutter/material.dart';
void main() => runApp(const UnitsExampleApp());
class UnitsExampleApp extends StatelessWidget {
const UnitsExampleApp({super.key});
@override
Widget build(BuildContext context) {
const units = [Px(12), Rem(1.25), Em(.8), Milliseconds(200), Seconds(.5)];
const lengthContext = LengthUnitContext(
rootFontSize: 16,
currentFontSize: 20,
);
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: const Text('carpenter_units')),
body: ListView(
children: [
for (final unit in units)
ListTile(
title: Text(unit.canonical),
subtitle: Text(switch (unit) {
LengthUnit() => '${unit.resolve(lengthContext)} logical px',
TimeUnit() => unit.toDuration().toString(),
}),
),
],
),
),
);
}
}