12
12
// See the License for the specific language governing permissions and
13
13
// limitations under the License.
14
14
15
- import 'package:material_color_utilities/scheme/scheme.dart' ;
15
+ import 'package:material_color_utilities/hct/hct.dart' ;
16
+ import 'package:material_color_utilities/scheme/scheme_content.dart' ;
17
+ import 'package:material_color_utilities/scheme/scheme_tonal_spot.dart' ;
16
18
import 'package:test/test.dart' ;
17
19
18
20
import './utils/color_matcher.dart' ;
19
21
20
22
void main () {
21
23
test ('blue light scheme' , () {
22
- final scheme = Scheme .light (0xff0000ff );
23
- expect (scheme.primary, isColor (0xff343dff ));
24
+ final scheme = SchemeTonalSpot (
25
+ sourceColorHct: Hct .fromInt (0xff0000ff ),
26
+ isDark: false ,
27
+ contrastLevel: 0.0 ,
28
+ );
29
+ expect (scheme.primary, isColor (0xff555992 ));
24
30
});
25
31
26
32
test ('blue dark scheme' , () {
27
- final scheme = Scheme .dark (0xff0000ff );
33
+ final scheme = SchemeTonalSpot (
34
+ sourceColorHct: Hct .fromInt (0xff0000ff ),
35
+ isDark: true ,
36
+ contrastLevel: 0.0 ,
37
+ );
28
38
expect (scheme.primary, isColor (0xffbec2ff ));
29
39
});
30
40
31
41
test ('3rd party light scheme' , () async {
32
- final scheme = Scheme .light (0xff6750a4 );
33
- expect (scheme.primary, isColor (0xff6750a4 ));
42
+ final scheme = SchemeTonalSpot (
43
+ sourceColorHct: Hct .fromInt (0xff6750a4 ),
44
+ isDark: false ,
45
+ contrastLevel: 0.0 ,
46
+ );
47
+
48
+ expect (scheme.primary, isColor (0xff65558f ));
34
49
expect (scheme.secondary, isColor (0xff625b71 ));
35
50
expect (scheme.tertiary, isColor (0xff7e5260 ));
36
- expect (scheme.surface, isColor (0xfffffbff ));
37
- expect (scheme.onSurface, isColor (0xff1c1b1e ));
51
+ expect (scheme.surface, isColor (0xfffdf7ff ));
52
+ expect (scheme.onSurface, isColor (0xff1d1b20 ));
38
53
});
39
54
40
55
test ('3rd party dark scheme' , () async {
41
- final scheme = Scheme .dark (0xff6750a4 );
42
- expect (scheme.primary, isColor (0xffcfbcff ));
56
+ final scheme = SchemeTonalSpot (
57
+ sourceColorHct: Hct .fromInt (0xff6750a4 ),
58
+ isDark: true ,
59
+ contrastLevel: 0.0 ,
60
+ );
61
+ expect (scheme.primary, isColor (0xffcfbdfe ));
43
62
expect (scheme.secondary, isColor (0xffcbc2db ));
44
63
expect (scheme.tertiary, isColor (0xffefb8c8 ));
45
- expect (scheme.surface, isColor (0xff1c1b1e ));
46
- expect (scheme.onSurface, isColor (0xffe6e1e6 ));
64
+ expect (scheme.surface, isColor (0xff141218 ));
65
+ expect (scheme.onSurface, isColor (0xffe6e0e9 ));
47
66
});
48
67
49
68
test ('light scheme from high chroma color' , () async {
50
- final scheme = Scheme .light (0xfffa2bec );
51
- expect (scheme.primary, isColor (0xffab00a2 ));
69
+ final scheme = SchemeTonalSpot (
70
+ sourceColorHct: Hct .fromInt (0xfffa2bec ),
71
+ isDark: false ,
72
+ contrastLevel: 0.0 ,
73
+ );
74
+ expect (scheme.primary, isColor (0xff814c77 ));
52
75
expect (scheme.onPrimary, isColor (0xffffffff ));
53
76
expect (scheme.primaryContainer, isColor (0xffffd7f3 ));
54
- expect (scheme.onPrimaryContainer, isColor (0xff390035 ));
77
+ expect (scheme.onPrimaryContainer, isColor (0xff340830 ));
55
78
expect (scheme.secondary, isColor (0xff6e5868 ));
56
79
expect (scheme.onSecondary, isColor (0xffffffff ));
57
80
expect (scheme.secondaryContainer, isColor (0xfff8daee ));
@@ -64,26 +87,30 @@ void main() {
64
87
expect (scheme.onError, isColor (0xffffffff ));
65
88
expect (scheme.errorContainer, isColor (0xffffdad6 ));
66
89
expect (scheme.onErrorContainer, isColor (0xff410002 ));
67
- expect (scheme.background, isColor (0xfffffbff ));
68
- expect (scheme.onBackground, isColor (0xff1f1a1d ));
69
- expect (scheme.surface, isColor (0xfffffbff ));
70
- expect (scheme.onSurface, isColor (0xff1f1a1d ));
90
+ expect (scheme.background, isColor (0xfffff7f9 ));
91
+ expect (scheme.onBackground, isColor (0xff201a1e ));
92
+ expect (scheme.surface, isColor (0xfffff7f9 ));
93
+ expect (scheme.onSurface, isColor (0xff201a1e ));
71
94
expect (scheme.surfaceVariant, isColor (0xffeedee7 ));
72
95
expect (scheme.onSurfaceVariant, isColor (0xff4e444b ));
73
96
expect (scheme.outline, isColor (0xff80747b ));
74
97
expect (scheme.outlineVariant, isColor (0xffd2c2cb ));
75
98
expect (scheme.shadow, isColor (0xff000000 ));
76
99
expect (scheme.scrim, isColor (0xff000000 ));
77
- expect (scheme.inverseSurface, isColor (0xff342f32 ));
78
- expect (scheme.inverseOnSurface, isColor (0xfff8eef2 ));
79
- expect (scheme.inversePrimary, isColor (0xffffabee ));
100
+ expect (scheme.inverseSurface, isColor (0xff362e33 ));
101
+ expect (scheme.inverseOnSurface, isColor (0xfffaedf3 ));
102
+ expect (scheme.inversePrimary, isColor (0xfff3b2e4 ));
80
103
});
81
104
82
105
test ('dark scheme from high chroma color' , () async {
83
- final scheme = Scheme .dark (0xfffa2bec );
84
- expect (scheme.primary, isColor (0xffffabee ));
85
- expect (scheme.onPrimary, isColor (0xff5c0057 ));
86
- expect (scheme.primaryContainer, isColor (0xff83007b ));
106
+ final scheme = SchemeTonalSpot (
107
+ sourceColorHct: Hct .fromInt (0xfffa2bec ),
108
+ isDark: true ,
109
+ contrastLevel: 0.0 ,
110
+ );
111
+ expect (scheme.primary, isColor (0xfff3b2e4 ));
112
+ expect (scheme.onPrimary, isColor (0xff4d1f47 ));
113
+ expect (scheme.primaryContainer, isColor (0xff67355e ));
87
114
expect (scheme.onPrimaryContainer, isColor (0xffffd7f3 ));
88
115
expect (scheme.secondary, isColor (0xffdbbed1 ));
89
116
expect (scheme.onSecondary, isColor (0xff3e2a39 ));
@@ -96,85 +123,95 @@ void main() {
96
123
expect (scheme.error, isColor (0xffffb4ab ));
97
124
expect (scheme.onError, isColor (0xff690005 ));
98
125
expect (scheme.errorContainer, isColor (0xff93000a ));
99
- expect (scheme.onErrorContainer, isColor (0xffffb4ab ));
100
- expect (scheme.background, isColor (0xff1f1a1d ));
101
- expect (scheme.onBackground, isColor (0xffeae0e4 ));
102
- expect (scheme.surface, isColor (0xff1f1a1d ));
103
- expect (scheme.onSurface, isColor (0xffeae0e4 ));
126
+ expect (scheme.onErrorContainer, isColor (0xffffdad6 ));
127
+ expect (scheme.background, isColor (0xff181216 ));
128
+ expect (scheme.onBackground, isColor (0xffecdfe5 ));
129
+ expect (scheme.surface, isColor (0xff181216 ));
130
+ expect (scheme.onSurface, isColor (0xffecdfe5 ));
104
131
expect (scheme.surfaceVariant, isColor (0xff4e444b ));
105
132
expect (scheme.onSurfaceVariant, isColor (0xffd2c2cb ));
106
133
expect (scheme.outline, isColor (0xff9a8d95 ));
107
134
expect (scheme.outlineVariant, isColor (0xff4e444b ));
108
135
expect (scheme.shadow, isColor (0xff000000 ));
109
136
expect (scheme.scrim, isColor (0xff000000 ));
110
- expect (scheme.inverseSurface, isColor (0xffeae0e4 ));
111
- expect (scheme.inverseOnSurface, isColor (0xff342f32 ));
112
- expect (scheme.inversePrimary, isColor (0xffab00a2 ));
137
+ expect (scheme.inverseSurface, isColor (0xffecdfe5 ));
138
+ expect (scheme.inverseOnSurface, isColor (0xff362e33 ));
139
+ expect (scheme.inversePrimary, isColor (0xff814c77 ));
113
140
});
114
141
115
142
test ('light content scheme from high chroma color' , () async {
116
- final scheme = Scheme .lightContent (0xfffa2bec );
117
- expect (scheme.primary, isColor (0xffab00a2 ));
143
+ final scheme = SchemeContent (
144
+ sourceColorHct: Hct .fromInt (0xfffa2bec ),
145
+ isDark: false ,
146
+ contrastLevel: 0.0 ,
147
+ );
148
+
149
+ expect (scheme.primary, isColor (0xff92008b ));
118
150
expect (scheme.onPrimary, isColor (0xffffffff ));
119
- expect (scheme.primaryContainer, isColor (0xffffd7f3 ));
120
- expect (scheme.onPrimaryContainer, isColor (0xff390035 ));
121
- expect (scheme.secondary, isColor (0xff7f4e75 ));
151
+ expect (scheme.primaryContainer, isColor (0xffd100c6 ));
152
+ expect (scheme.onPrimaryContainer, isColor (0xffffffff ));
153
+ expect (scheme.secondary, isColor (0xff9e2d93 ));
122
154
expect (scheme.onSecondary, isColor (0xffffffff ));
123
- expect (scheme.secondaryContainer, isColor (0xffffd7f3 ));
124
- expect (scheme.onSecondaryContainer, isColor (0xff330b2f ));
125
- expect (scheme.tertiary, isColor (0xff9c4323 ));
155
+ expect (scheme.secondaryContainer, isColor (0xffff83ec ));
156
+ expect (scheme.onSecondaryContainer, isColor (0xff4a0045 ));
157
+ expect (scheme.tertiary, isColor (0xffa30326 ));
126
158
expect (scheme.onTertiary, isColor (0xffffffff ));
127
- expect (scheme.tertiaryContainer, isColor (0xffffdbd0 ));
128
- expect (scheme.onTertiaryContainer, isColor (0xff390c00 ));
159
+ expect (scheme.tertiaryContainer, isColor (0xffd83546 ));
160
+ expect (scheme.onTertiaryContainer, isColor (0xffffffff ));
129
161
expect (scheme.error, isColor (0xffba1a1a ));
130
162
expect (scheme.onError, isColor (0xffffffff ));
131
163
expect (scheme.errorContainer, isColor (0xffffdad6 ));
132
164
expect (scheme.onErrorContainer, isColor (0xff410002 ));
133
- expect (scheme.background, isColor (0xfffffbff ));
134
- expect (scheme.onBackground, isColor (0xff1f1a1d ));
135
- expect (scheme.surface, isColor (0xfffffbff ));
136
- expect (scheme.onSurface, isColor (0xff1f1a1d ));
137
- expect (scheme.surfaceVariant, isColor (0xffeedee7 ));
138
- expect (scheme.onSurfaceVariant, isColor (0xff4e444b ));
139
- expect (scheme.outline, isColor (0xff80747b ));
140
- expect (scheme.outlineVariant, isColor (0xffd2c2cb ));
165
+ expect (scheme.background, isColor (0xfffff7f9 ));
166
+ expect (scheme.onBackground, isColor (0xff251722 ));
167
+ expect (scheme.surface, isColor (0xfffff7f9 ));
168
+ expect (scheme.onSurface, isColor (0xff251722 ));
169
+ expect (scheme.surfaceVariant, isColor (0xfff9daee ));
170
+ expect (scheme.onSurfaceVariant, isColor (0xff564050 ));
171
+ expect (scheme.outline, isColor (0xff897081 ));
172
+ expect (scheme.outlineVariant, isColor (0xffdcbed2 ));
141
173
expect (scheme.shadow, isColor (0xff000000 ));
142
174
expect (scheme.scrim, isColor (0xff000000 ));
143
- expect (scheme.inverseSurface, isColor (0xff342f32 ));
144
- expect (scheme.inverseOnSurface, isColor (0xfff8eef2 ));
175
+ expect (scheme.inverseSurface, isColor (0xff3b2c37 ));
176
+ expect (scheme.inverseOnSurface, isColor (0xffffebf6 ));
145
177
expect (scheme.inversePrimary, isColor (0xffffabee ));
146
178
});
147
179
148
180
test ('dark content scheme from high chroma color' , () async {
149
- final scheme = Scheme .darkContent (0xfffa2bec );
181
+ final scheme = SchemeContent (
182
+ sourceColorHct: Hct .fromInt (0xfffa2bec ),
183
+ isDark: true ,
184
+ contrastLevel: 0.0 ,
185
+ );
186
+
150
187
expect (scheme.primary, isColor (0xffffabee ));
151
188
expect (scheme.onPrimary, isColor (0xff5c0057 ));
152
- expect (scheme.primaryContainer, isColor (0xff83007b ));
153
- expect (scheme.onPrimaryContainer, isColor (0xffffd7f3 ));
154
- expect (scheme.secondary, isColor (0xfff0b4e1 ));
155
- expect (scheme.onSecondary, isColor (0xff4b2145 ));
156
- expect (scheme.secondaryContainer, isColor (0xff64375c ));
157
- expect (scheme.onSecondaryContainer, isColor (0xffffd7f3 ));
158
- expect (scheme.tertiary, isColor (0xffffb59c ));
159
- expect (scheme.onTertiary, isColor (0xff5c1900 ));
160
- expect (scheme.tertiaryContainer, isColor (0xff7d2c0d ));
161
- expect (scheme.onTertiaryContainer, isColor (0xffffdbd0 ));
189
+ expect (scheme.primaryContainer, isColor (0xfffa2bec ));
190
+ expect (scheme.onPrimaryContainer, isColor (0xff000000 ));
191
+ expect (scheme.secondary, isColor (0xffffabee ));
192
+ expect (scheme.onSecondary, isColor (0xff5c0057 ));
193
+ expect (scheme.secondaryContainer, isColor (0xff840f7c ));
194
+ expect (scheme.onSecondaryContainer, isColor (0xffffd9f3 ));
195
+ expect (scheme.tertiary, isColor (0xffffb3b2 ));
196
+ expect (scheme.onTertiary, isColor (0xff680014 ));
197
+ expect (scheme.tertiaryContainer, isColor (0xffff525f ));
198
+ expect (scheme.onTertiaryContainer, isColor (0xff000000 ));
162
199
expect (scheme.error, isColor (0xffffb4ab ));
163
200
expect (scheme.onError, isColor (0xff690005 ));
164
201
expect (scheme.errorContainer, isColor (0xff93000a ));
165
- expect (scheme.onErrorContainer, isColor (0xffffb4ab ));
166
- expect (scheme.background, isColor (0xff1f1a1d ));
167
- expect (scheme.onBackground, isColor (0xffeae0e4 ));
168
- expect (scheme.surface, isColor (0xff1f1a1d ));
169
- expect (scheme.onSurface, isColor (0xffeae0e4 ));
170
- expect (scheme.surfaceVariant, isColor (0xff4e444b ));
171
- expect (scheme.onSurfaceVariant, isColor (0xffd2c2cb ));
172
- expect (scheme.outline, isColor (0xff9a8d95 ));
173
- expect (scheme.outlineVariant, isColor (0xff4e444b ));
202
+ expect (scheme.onErrorContainer, isColor (0xffffdad6 ));
203
+ expect (scheme.background, isColor (0xff1c0f19 ));
204
+ expect (scheme.onBackground, isColor (0xfff4dceb ));
205
+ expect (scheme.surface, isColor (0xff1c0f19 ));
206
+ expect (scheme.onSurface, isColor (0xfff4dceb ));
207
+ expect (scheme.surfaceVariant, isColor (0xff564050 ));
208
+ expect (scheme.onSurfaceVariant, isColor (0xffdcbed2 ));
209
+ expect (scheme.outline, isColor (0xffa4899b ));
210
+ expect (scheme.outlineVariant, isColor (0xff564050 ));
174
211
expect (scheme.shadow, isColor (0xff000000 ));
175
212
expect (scheme.scrim, isColor (0xff000000 ));
176
- expect (scheme.inverseSurface, isColor (0xffeae0e4 ));
177
- expect (scheme.inverseOnSurface, isColor (0xff342f32 ));
213
+ expect (scheme.inverseSurface, isColor (0xfff4dceb ));
214
+ expect (scheme.inverseOnSurface, isColor (0xff3b2c37 ));
178
215
expect (scheme.inversePrimary, isColor (0xffab00a2 ));
179
216
});
180
217
}
0 commit comments