2021-05-25 21:53:54 +00:00
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
|
|
|
|
class BrandCards {
|
2022-06-05 19:36:32 +00:00
|
|
|
static Widget big({required final Widget child}) => _BrandCard(
|
2022-05-24 18:55:39 +00:00
|
|
|
padding: const EdgeInsets.symmetric(
|
2021-05-25 21:53:54 +00:00
|
|
|
horizontal: 20,
|
|
|
|
vertical: 15,
|
|
|
|
),
|
|
|
|
shadow: bigShadow,
|
|
|
|
borderRadius: BorderRadius.circular(20),
|
2022-05-24 18:55:39 +00:00
|
|
|
child: child,
|
2021-05-25 21:53:54 +00:00
|
|
|
);
|
2022-06-05 19:36:32 +00:00
|
|
|
static Widget small({required final Widget child}) => _BrandCard(
|
2022-05-24 18:55:39 +00:00
|
|
|
padding: const EdgeInsets.symmetric(
|
2021-05-25 21:53:54 +00:00
|
|
|
horizontal: 15,
|
|
|
|
vertical: 10,
|
|
|
|
),
|
|
|
|
shadow: bigShadow,
|
|
|
|
borderRadius: BorderRadius.circular(10),
|
2022-05-24 18:55:39 +00:00
|
|
|
child: child,
|
2021-05-25 21:53:54 +00:00
|
|
|
);
|
2022-06-05 19:36:32 +00:00
|
|
|
static Widget outlined({required final Widget child}) => _OutlinedCard(
|
2022-02-16 07:01:05 +00:00
|
|
|
child: child,
|
|
|
|
);
|
2022-06-05 22:40:34 +00:00
|
|
|
static Widget filled({
|
|
|
|
required final Widget child,
|
|
|
|
final bool tertiary = false,
|
|
|
|
}) =>
|
2022-05-30 23:06:08 +00:00
|
|
|
_FilledCard(
|
|
|
|
tertiary: tertiary,
|
2022-05-19 17:43:25 +00:00
|
|
|
child: child,
|
|
|
|
);
|
2021-05-25 21:53:54 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
class _BrandCard extends StatelessWidget {
|
|
|
|
const _BrandCard({
|
|
|
|
required this.child,
|
|
|
|
required this.padding,
|
|
|
|
required this.shadow,
|
|
|
|
required this.borderRadius,
|
2022-06-05 19:36:32 +00:00
|
|
|
});
|
2021-05-25 21:53:54 +00:00
|
|
|
|
|
|
|
final Widget child;
|
|
|
|
final EdgeInsets padding;
|
|
|
|
final List<BoxShadow> shadow;
|
|
|
|
final BorderRadius borderRadius;
|
|
|
|
|
|
|
|
@override
|
2022-06-05 19:36:32 +00:00
|
|
|
Widget build(final BuildContext context) => Container(
|
|
|
|
decoration: BoxDecoration(
|
|
|
|
color: Theme.of(context).colorScheme.surface,
|
|
|
|
borderRadius: borderRadius,
|
|
|
|
boxShadow: shadow,
|
|
|
|
),
|
|
|
|
padding: padding,
|
|
|
|
child: child,
|
|
|
|
);
|
2021-05-25 21:53:54 +00:00
|
|
|
}
|
|
|
|
|
2022-02-16 07:01:05 +00:00
|
|
|
class _OutlinedCard extends StatelessWidget {
|
|
|
|
const _OutlinedCard({
|
|
|
|
required this.child,
|
2022-06-05 19:36:32 +00:00
|
|
|
});
|
2022-02-16 07:01:05 +00:00
|
|
|
|
|
|
|
final Widget child;
|
|
|
|
@override
|
2022-06-05 19:36:32 +00:00
|
|
|
Widget build(final BuildContext context) => Card(
|
|
|
|
elevation: 0.0,
|
|
|
|
shape: RoundedRectangleBorder(
|
|
|
|
borderRadius: const BorderRadius.all(Radius.circular(12)),
|
|
|
|
side: BorderSide(
|
|
|
|
color: Theme.of(context).colorScheme.outline,
|
|
|
|
),
|
2022-02-16 07:01:05 +00:00
|
|
|
),
|
2022-06-05 19:36:32 +00:00
|
|
|
clipBehavior: Clip.antiAlias,
|
|
|
|
child: child,
|
|
|
|
);
|
2022-02-16 07:01:05 +00:00
|
|
|
}
|
|
|
|
|
2022-05-19 17:43:25 +00:00
|
|
|
class _FilledCard extends StatelessWidget {
|
2022-06-05 19:36:32 +00:00
|
|
|
const _FilledCard({
|
|
|
|
required this.child,
|
|
|
|
required this.tertiary,
|
|
|
|
});
|
2022-05-19 17:43:25 +00:00
|
|
|
|
|
|
|
final Widget child;
|
2022-05-30 23:06:08 +00:00
|
|
|
final bool tertiary;
|
2022-05-19 17:43:25 +00:00
|
|
|
@override
|
2022-06-05 19:36:32 +00:00
|
|
|
Widget build(final BuildContext context) => Card(
|
|
|
|
elevation: 0.0,
|
|
|
|
shape: const RoundedRectangleBorder(
|
|
|
|
borderRadius: BorderRadius.all(Radius.circular(12)),
|
|
|
|
),
|
|
|
|
clipBehavior: Clip.antiAlias,
|
|
|
|
color: tertiary
|
|
|
|
? Theme.of(context).colorScheme.tertiaryContainer
|
|
|
|
: Theme.of(context).colorScheme.surfaceVariant,
|
|
|
|
child: child,
|
|
|
|
);
|
2022-05-19 17:43:25 +00:00
|
|
|
}
|
|
|
|
|
2022-06-05 19:36:32 +00:00
|
|
|
final List<BoxShadow> bigShadow = [
|
2021-05-25 21:53:54 +00:00
|
|
|
BoxShadow(
|
2022-05-24 18:55:39 +00:00
|
|
|
offset: const Offset(0, 4),
|
2021-05-25 21:53:54 +00:00
|
|
|
blurRadius: 8,
|
|
|
|
color: Colors.black.withOpacity(.08),
|
|
|
|
)
|
|
|
|
];
|