45 lines
1.1 KiB
Dart
45 lines
1.1 KiB
Dart
import 'package:flutter/material.dart';
|
|
|
|
import '../tema/pluriwave_theme.dart';
|
|
|
|
abstract final class PluriLayout {
|
|
static const double horizontal = 16;
|
|
static const double sectionGap = 12;
|
|
static const double panelGap = 12;
|
|
static const double compactGap = 8;
|
|
static const double bottomChromeInset = 146;
|
|
|
|
static const EdgeInsets pageListPadding = EdgeInsets.fromLTRB(
|
|
0,
|
|
0,
|
|
0,
|
|
bottomChromeInset,
|
|
);
|
|
|
|
static const EdgeInsets pageContentPadding = EdgeInsets.symmetric(
|
|
horizontal: horizontal,
|
|
);
|
|
|
|
static const EdgeInsets sheetPadding = EdgeInsets.all(18);
|
|
}
|
|
|
|
class PluriPanelColumn extends StatelessWidget {
|
|
const PluriPanelColumn({super.key, required this.children, this.gap});
|
|
|
|
final List<Widget> children;
|
|
final double? gap;
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
final resolvedGap = gap ?? context.pluriTokens.spacingSm + 4;
|
|
return Column(
|
|
children: [
|
|
for (var i = 0; i < children.length; i++) ...[
|
|
if (i > 0) SizedBox(height: resolvedGap),
|
|
children[i],
|
|
],
|
|
],
|
|
);
|
|
}
|
|
}
|