-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathspacing.dart
67 lines (62 loc) · 1.51 KB
/
spacing.dart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import 'package:equatable/equatable.dart';
/// Literal representation for all the constant spacing values available
enum Spacing {
xxxSmall,
xxSmall,
xSmall,
small,
medium,
large,
xLarge,
xxLarge,
xxxLarge,
}
/// A set of raw values for each [Spacing.values]
class RawSpacings extends Equatable {
const RawSpacings(
this.xxxSmall,
this.xxSmall,
this.xSmall,
this.small,
this.medium,
this.large,
this.xLarge,
this.xxLarge,
this.xxxLarge,
);
final double xxxSmall;
final double xxSmall;
final double xSmall;
final double small;
final double medium;
final double large;
final double xLarge;
final double xxLarge;
final double xxxLarge;
@override
List<Object?> get props => [
xxxSmall,
xxSmall,
xSmall,
small,
medium,
large,
xLarge,
xxLarge,
xxxLarge,
];
}
/// Provides all [Spacing] values as instance properties
///
/// This mixin exists solely to make things less verbose in widgets that heavily uses [Spacing] and its utilities
mixin SpacingMixin {
Spacing get xxxSmallSpacing => Spacing.xxxSmall;
Spacing get xxSmallSpacing => Spacing.xxSmall;
Spacing get xSmallSpacing => Spacing.xSmall;
Spacing get smallSpacing => Spacing.small;
Spacing get mediumSpacing => Spacing.medium;
Spacing get largeSpacing => Spacing.large;
Spacing get xLargeSpacing => Spacing.xLarge;
Spacing get xxLargeSpacing => Spacing.xxLarge;
Spacing get xxxLargeSpacing => Spacing.xxxLarge;
}