Skip to content

Commit 4a25619

Browse files
Material Engcopybara-github
authored andcommitted
Add outlineVariant and scrim colors to Scheme
PiperOrigin-RevId: 465589815
1 parent 146daf6 commit 4a25619

File tree

7 files changed

+91
-2
lines changed

7 files changed

+91
-2
lines changed

dart/CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
## NEXT
1+
## 0.2.0
22

33
- Add support for content color
44
- Correct `repository` in pubspec
55
- Rename `CamSolver` to `HctSolver`
6+
- Add `outlineVariant` and `scrim` colors
67

78
## 0.1.5
89

dart/lib/scheme/scheme.dart

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,9 @@ class Scheme {
4242
final int surfaceVariant;
4343
final int onSurfaceVariant;
4444
final int outline;
45+
final int outlineVariant;
4546
final int shadow;
47+
final int scrim;
4648
final int inverseSurface;
4749
final int inverseOnSurface;
4850
final int inversePrimary;
@@ -71,7 +73,9 @@ class Scheme {
7173
required this.surfaceVariant,
7274
required this.onSurfaceVariant,
7375
required this.outline,
76+
required this.outlineVariant,
7477
required this.shadow,
78+
required this.scrim,
7579
required this.inverseSurface,
7680
required this.inverseOnSurface,
7781
required this.inversePrimary,
@@ -111,7 +115,9 @@ class Scheme {
111115
surfaceVariant: palette.neutralVariant.get(90),
112116
onSurfaceVariant: palette.neutralVariant.get(30),
113117
outline: palette.neutralVariant.get(50),
118+
outlineVariant: palette.neutralVariant.get(80),
114119
shadow: palette.neutral.get(0),
120+
scrim: palette.neutral.get(0),
115121
inverseSurface: palette.neutral.get(20),
116122
inverseOnSurface: palette.neutral.get(95),
117123
inversePrimary: palette.primary.get(80),
@@ -141,7 +147,9 @@ class Scheme {
141147
surfaceVariant: palette.neutralVariant.get(30),
142148
onSurfaceVariant: palette.neutralVariant.get(80),
143149
outline: palette.neutralVariant.get(60),
150+
outlineVariant: palette.neutralVariant.get(30),
144151
shadow: palette.neutral.get(0),
152+
scrim: palette.neutral.get(0),
145153
inverseSurface: palette.neutral.get(90),
146154
inverseOnSurface: palette.neutral.get(20),
147155
inversePrimary: palette.primary.get(40),

dart/test/scheme_test.dart

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,9 @@ void main() {
7171
expect(scheme.surfaceVariant, isColor(0xffeedee7));
7272
expect(scheme.onSurfaceVariant, isColor(0xff4e444b));
7373
expect(scheme.outline, isColor(0xff80747b));
74+
expect(scheme.outlineVariant, isColor(0xffd2c2cb));
7475
expect(scheme.shadow, isColor(0xff000000));
76+
expect(scheme.scrim, isColor(0xff000000));
7577
expect(scheme.inverseSurface, isColor(0xff342f32));
7678
expect(scheme.inverseOnSurface, isColor(0xfff8eef2));
7779
expect(scheme.inversePrimary, isColor(0xffffabee));
@@ -102,7 +104,9 @@ void main() {
102104
expect(scheme.surfaceVariant, isColor(0xff4e444b));
103105
expect(scheme.onSurfaceVariant, isColor(0xffd2c2cb));
104106
expect(scheme.outline, isColor(0xff9a8d95));
107+
expect(scheme.outlineVariant, isColor(0xff4e444b));
105108
expect(scheme.shadow, isColor(0xff000000));
109+
expect(scheme.scrim, isColor(0xff000000));
106110
expect(scheme.inverseSurface, isColor(0xffeae0e4));
107111
expect(scheme.inverseOnSurface, isColor(0xff342f32));
108112
expect(scheme.inversePrimary, isColor(0xffab00a2));
@@ -133,7 +137,9 @@ void main() {
133137
expect(scheme.surfaceVariant, isColor(0xffeedee7));
134138
expect(scheme.onSurfaceVariant, isColor(0xff4e444b));
135139
expect(scheme.outline, isColor(0xff80747b));
140+
expect(scheme.outlineVariant, isColor(0xffd2c2cb));
136141
expect(scheme.shadow, isColor(0xff000000));
142+
expect(scheme.scrim, isColor(0xff000000));
137143
expect(scheme.inverseSurface, isColor(0xff342f32));
138144
expect(scheme.inverseOnSurface, isColor(0xfff8eef2));
139145
expect(scheme.inversePrimary, isColor(0xffffabee));
@@ -164,7 +170,9 @@ void main() {
164170
expect(scheme.surfaceVariant, isColor(0xff4e444b));
165171
expect(scheme.onSurfaceVariant, isColor(0xffd2c2cb));
166172
expect(scheme.outline, isColor(0xff9a8d95));
173+
expect(scheme.outlineVariant, isColor(0xff4e444b));
167174
expect(scheme.shadow, isColor(0xff000000));
175+
expect(scheme.scrim, isColor(0xff000000));
168176
expect(scheme.inverseSurface, isColor(0xffeae0e4));
169177
expect(scheme.inverseOnSurface, isColor(0xff342f32));
170178
expect(scheme.inversePrimary, isColor(0xffab00a2));

java/scheme/Scheme.java

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,9 @@ public class Scheme {
4848
private int surfaceVariant;
4949
private int onSurfaceVariant;
5050
private int outline;
51+
private int outlineVariant;
5152
private int shadow;
53+
private int scrim;
5254
private int inverseSurface;
5355
private int inverseOnSurface;
5456
private int inversePrimary;
@@ -79,7 +81,9 @@ public Scheme(
7981
int surfaceVariant,
8082
int onSurfaceVariant,
8183
int outline,
84+
int outlineVariant,
8285
int shadow,
86+
int scrim,
8387
int inverseSurface,
8488
int inverseOnSurface,
8589
int inversePrimary) {
@@ -107,7 +111,9 @@ public Scheme(
107111
this.surfaceVariant = surfaceVariant;
108112
this.onSurfaceVariant = onSurfaceVariant;
109113
this.outline = outline;
114+
this.outlineVariant = outlineVariant;
110115
this.shadow = shadow;
116+
this.scrim = scrim;
111117
this.inverseSurface = inverseSurface;
112118
this.inverseOnSurface = inverseOnSurface;
113119
this.inversePrimary = inversePrimary;
@@ -154,7 +160,9 @@ private static Scheme lightFromCorePalette(CorePalette core) {
154160
.withSurfaceVariant(core.n2.tone(90))
155161
.withOnSurfaceVariant(core.n2.tone(30))
156162
.withOutline(core.n2.tone(50))
163+
.withOutlineVariant(core.n2.tone(80))
157164
.withShadow(core.n1.tone(0))
165+
.withScrim(core.n1.tone(0))
158166
.withInverseSurface(core.n1.tone(20))
159167
.withInverseOnSurface(core.n1.tone(95))
160168
.withInversePrimary(core.a1.tone(80));
@@ -185,7 +193,9 @@ private static Scheme darkFromCorePalette(CorePalette core) {
185193
.withSurfaceVariant(core.n2.tone(30))
186194
.withOnSurfaceVariant(core.n2.tone(80))
187195
.withOutline(core.n2.tone(60))
196+
.withOutlineVariant(core.n2.tone(30))
188197
.withShadow(core.n1.tone(0))
198+
.withScrim(core.n1.tone(0))
189199
.withInverseSurface(core.n1.tone(90))
190200
.withInverseOnSurface(core.n1.tone(20))
191201
.withInversePrimary(core.a1.tone(40));
@@ -513,6 +523,20 @@ public Scheme withOutline(int outline) {
513523
return this;
514524
}
515525

526+
public int getOutlineVariant() {
527+
return outlineVariant;
528+
}
529+
530+
public void setOutlineVariant(int outlineVariant) {
531+
this.outlineVariant = outlineVariant;
532+
}
533+
534+
@CanIgnoreReturnValue
535+
public Scheme withOutlineVariant(int outlineVariant) {
536+
this.outlineVariant = outlineVariant;
537+
return this;
538+
}
539+
516540
public int getShadow() {
517541
return shadow;
518542
}
@@ -527,6 +551,20 @@ public Scheme withShadow(int shadow) {
527551
return this;
528552
}
529553

554+
public int getScrim() {
555+
return scrim;
556+
}
557+
558+
public void setScrim(int scrim) {
559+
this.scrim = scrim;
560+
}
561+
562+
@CanIgnoreReturnValue
563+
public Scheme withScrim(int scrim) {
564+
this.scrim = scrim;
565+
return this;
566+
}
567+
530568
public int getInverseSurface() {
531569
return inverseSurface;
532570
}
@@ -618,8 +656,12 @@ public String toString() {
618656
+ onSurfaceVariant
619657
+ ", outline="
620658
+ outline
659+
+ ", outlineVariant="
660+
+ outlineVariant
621661
+ ", shadow="
622662
+ shadow
663+
+ ", scrim="
664+
+ scrim
623665
+ ", inverseSurface="
624666
+ inverseSurface
625667
+ ", inverseOnSurface="
@@ -712,9 +754,15 @@ public boolean equals(Object object) {
712754
if (outline != scheme.outline) {
713755
return false;
714756
}
757+
if (outlineVariant != scheme.outlineVariant) {
758+
return false;
759+
}
715760
if (shadow != scheme.shadow) {
716761
return false;
717762
}
763+
if (scrim != scheme.scrim) {
764+
return false;
765+
}
718766
if (inverseSurface != scheme.inverseSurface) {
719767
return false;
720768
}
@@ -754,7 +802,9 @@ public int hashCode() {
754802
result = 31 * result + surfaceVariant;
755803
result = 31 * result + onSurfaceVariant;
756804
result = 31 * result + outline;
805+
result = 31 * result + outlineVariant;
757806
result = 31 * result + shadow;
807+
result = 31 * result + scrim;
758808
result = 31 * result + inverseSurface;
759809
result = 31 * result + inverseOnSurface;
760810
result = 31 * result + inversePrimary;

typescript/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@material/material-color-utilities",
3-
"version": "0.1.2",
3+
"version": "0.2.0",
44
"type": "module",
55
"description": "Algorithms and utilities that power the Material Design 3 (M3) color system, including choosing theme colors from images and creating tones of colors; all in a new color space.",
66
"keywords": [

typescript/scheme/scheme.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,10 +115,18 @@ export class Scheme {
115115
return this.props.outline;
116116
}
117117

118+
get outlineVariant(): number {
119+
return this.props.outlineVariant;
120+
}
121+
118122
get shadow(): number {
119123
return this.props.shadow;
120124
}
121125

126+
get scrim(): number {
127+
return this.props.scrim;
128+
}
129+
122130
get inverseSurface(): number {
123131
return this.props.inverseSurface;
124132
}
@@ -191,7 +199,9 @@ export class Scheme {
191199
surfaceVariant: core.n2.tone(90),
192200
onSurfaceVariant: core.n2.tone(30),
193201
outline: core.n2.tone(50),
202+
outlineVariant: core.n2.tone(80),
194203
shadow: core.n1.tone(0),
204+
scrim: core.n1.tone(0),
195205
inverseSurface: core.n1.tone(20),
196206
inverseOnSurface: core.n1.tone(95),
197207
inversePrimary: core.a1.tone(80)
@@ -226,7 +236,9 @@ export class Scheme {
226236
surfaceVariant: core.n2.tone(30),
227237
onSurfaceVariant: core.n2.tone(80),
228238
outline: core.n2.tone(60),
239+
outlineVariant: core.n2.tone(30),
229240
shadow: core.n1.tone(0),
241+
scrim: core.n1.tone(0),
230242
inverseSurface: core.n1.tone(90),
231243
inverseOnSurface: core.n1.tone(20),
232244
inversePrimary: core.a1.tone(40)
@@ -257,7 +269,9 @@ export class Scheme {
257269
surfaceVariant: number,
258270
onSurfaceVariant: number,
259271
outline: number,
272+
outlineVariant: number,
260273
shadow: number,
274+
scrim: number,
261275
inverseSurface: number,
262276
inverseOnSurface: number,
263277
inversePrimary: number

typescript/scheme/scheme_test.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,9 @@ describe('scheme', () => {
8080
expect(scheme.surfaceVariant).matchesColor(0xffeedee7);
8181
expect(scheme.onSurfaceVariant).matchesColor(0xff4e444b);
8282
expect(scheme.outline).matchesColor(0xff80747b);
83+
expect(scheme.outlineVariant).matchesColor(0xffd2c2cb);
8384
expect(scheme.shadow).matchesColor(0xff000000);
85+
expect(scheme.scrim).matchesColor(0xff000000);
8486
expect(scheme.inverseSurface).matchesColor(0xff342f32);
8587
expect(scheme.inverseOnSurface).matchesColor(0xfff8eef2);
8688
expect(scheme.inversePrimary).matchesColor(0xffffabee);
@@ -111,7 +113,9 @@ describe('scheme', () => {
111113
expect(scheme.surfaceVariant).matchesColor(0xff4e444b);
112114
expect(scheme.onSurfaceVariant).matchesColor(0xffd2c2cb);
113115
expect(scheme.outline).matchesColor(0xff9a8d95);
116+
expect(scheme.outlineVariant).matchesColor(0xff4e444b);
114117
expect(scheme.shadow).matchesColor(0xff000000);
118+
expect(scheme.scrim).matchesColor(0xff000000);
115119
expect(scheme.inverseSurface).matchesColor(0xffeae0e4);
116120
expect(scheme.inverseOnSurface).matchesColor(0xff342f32);
117121
expect(scheme.inversePrimary).matchesColor(0xffab00a2);
@@ -142,7 +146,9 @@ describe('scheme', () => {
142146
expect(scheme.surfaceVariant).matchesColor(0xffeedee7);
143147
expect(scheme.onSurfaceVariant).matchesColor(0xff4e444b);
144148
expect(scheme.outline).matchesColor(0xff80747b);
149+
expect(scheme.outlineVariant).matchesColor(0xffd2c2cb);
145150
expect(scheme.shadow).matchesColor(0xff000000);
151+
expect(scheme.scrim).matchesColor(0xff000000);
146152
expect(scheme.inverseSurface).matchesColor(0xff342f32);
147153
expect(scheme.inverseOnSurface).matchesColor(0xfff8eef2);
148154
expect(scheme.inversePrimary).matchesColor(0xffffabee);
@@ -173,7 +179,9 @@ describe('scheme', () => {
173179
expect(scheme.surfaceVariant).matchesColor(0xff4e444b);
174180
expect(scheme.onSurfaceVariant).matchesColor(0xffd2c2cb);
175181
expect(scheme.outline).matchesColor(0xff9a8d95);
182+
expect(scheme.outlineVariant).matchesColor(0xff4e444b);
176183
expect(scheme.shadow).matchesColor(0xff000000);
184+
expect(scheme.scrim).matchesColor(0xff000000);
177185
expect(scheme.inverseSurface).matchesColor(0xffeae0e4);
178186
expect(scheme.inverseOnSurface).matchesColor(0xff342f32);
179187
expect(scheme.inversePrimary).matchesColor(0xffab00a2);

0 commit comments

Comments
 (0)