@@ -125,65 +125,142 @@ private fun systemMd3Roles(context: Context, dark: Boolean): MonetRoles {
125125 val n1 = { idx: Int -> systemColor(context, resNeutral1(idx)) }
126126 val n2 = { idx: Int -> systemColor(context, resNeutral2(idx)) }
127127
128+ val isAtLeast34 = Build .VERSION .SDK_INT >= 34
129+
128130 return if (! dark) {
129- MonetRoles (
130- primary = a1(600 ),
131- onPrimary = a1(0 ),
132- primaryFixed = a1(200 ),
133- onPrimaryFixed = a1(0 ),
134- error = Color (0xFFB3261E ),
135- onError = Color (0xFFFFFFFF ),
136- errorContainer = Color (0xFFF9DEDC ),
137- onErrorContainer = Color (0xFF410E0B ),
138- primaryContainer = a1(100 ),
139- onPrimaryContainer = a1(900 ),
140- secondary = a2(600 ),
141- onSecondary = a2(0 ),
142- secondaryContainer = a2(100 ),
143- onSecondaryContainer = a2(900 ),
144- tertiaryContainer = a3(100 ),
145- onTertiaryContainer = a3(900 ),
146- background = if (Build .VERSION .SDK_INT >= 34 ) toneFrom(n1(100 ), 98.0 ) else n1(100 ),
147- onBackground = if (Build .VERSION .SDK_INT >= 34 ) toneFrom(n1(100 ), 10.0 ) else n1(10 ),
148- surface = if (Build .VERSION .SDK_INT >= 34 ) toneFrom(n1(100 ), 98.0 ) else n1(100 ),
149- onSurface = if (Build .VERSION .SDK_INT >= 34 ) toneFrom(n1(100 ), 10.0 ) else n1(10 ),
150- surfaceVariant = if (Build .VERSION .SDK_INT >= 34 ) toneFrom(n2(200 ), 90.0 ) else n2(200 ),
151- surfaceContainer = if (Build .VERSION .SDK_INT >= 34 ) toneFrom(n1(100 ), 94.0 ) else n1(100 ),
152- surfaceContainerHigh = if (Build .VERSION .SDK_INT >= 34 ) toneFrom(n1(100 ), 92.0 ) else n1(100 ),
153- surfaceContainerHighest = if (Build .VERSION .SDK_INT >= 34 ) toneFrom(n1(100 ), 90.0 ) else n1(100 ),
154- outline = if (Build .VERSION .SDK_INT >= 34 ) toneFrom(n2(200 ), 50.0 ) else n2(500 ),
155- outlineVariant = if (Build .VERSION .SDK_INT >= 34 ) toneFrom(n2(200 ), 80.0 ) else n2(200 ),
156- onSurfaceVariant = if (Build .VERSION .SDK_INT >= 34 ) toneFrom(n2(200 ), 30.0 ) else n2(700 ),
157- )
131+ if (isAtLeast34) {
132+ MonetRoles (
133+ primary = a1(600 ),
134+ onPrimary = a1(0 ),
135+ primaryFixed = a1(200 ),
136+ onPrimaryFixed = a1(0 ),
137+ error = Color (0xFFB3261E ),
138+ onError = Color (0xFFFFFFFF ),
139+ errorContainer = Color (0xFFF9DEDC ),
140+ onErrorContainer = Color (0xFF410E0B ),
141+ primaryContainer = a1(100 ),
142+ onPrimaryContainer = a1(900 ),
143+ secondary = a2(600 ),
144+ onSecondary = a2(0 ),
145+ secondaryContainer = a2(100 ),
146+ onSecondaryContainer = a2(900 ),
147+ tertiaryContainer = a3(100 ),
148+ onTertiaryContainer = a3(900 ),
149+ background = toneFrom(n1(100 ), 98.0 ),
150+ onBackground = toneFrom(n1(100 ), 10.0 ),
151+ surface = toneFrom(n1(100 ), 98.0 ),
152+ onSurface = toneFrom(n1(100 ), 10.0 ),
153+ surfaceVariant = toneFrom(n2(200 ), 90.0 ),
154+ surfaceContainer = toneFrom(n1(100 ), 94.0 ),
155+ surfaceContainerHigh = toneFrom(n1(100 ), 92.0 ),
156+ surfaceContainerHighest = toneFrom(n1(100 ), 90.0 ),
157+ outline = toneFrom(n2(200 ), 50.0 ),
158+ outlineVariant = toneFrom(n2(200 ), 80.0 ),
159+ onSurfaceVariant = toneFrom(n2(200 ), 30.0 ),
160+ )
161+ } else {
162+ val neutralVariantBase = n2(600 )
163+ val background = toneFrom(neutralVariantBase, 98.0 )
164+ val surfaceContainer = toneFrom(neutralVariantBase, 94.0 )
165+ val surfaceContainerHigh = toneFrom(neutralVariantBase, 92.0 )
166+ val onBackground = n2(900 )
167+ MonetRoles (
168+ primary = a1(600 ),
169+ onPrimary = a1(0 ),
170+ primaryFixed = a1(200 ),
171+ onPrimaryFixed = a1(0 ),
172+ error = Color (0xFFB3261E ),
173+ onError = Color (0xFFFFFFFF ),
174+ errorContainer = Color (0xFFF9DEDC ),
175+ onErrorContainer = Color (0xFF410E0B ),
176+ primaryContainer = a1(100 ),
177+ onPrimaryContainer = a1(900 ),
178+ secondary = a2(600 ),
179+ onSecondary = a2(0 ),
180+ secondaryContainer = a2(100 ),
181+ onSecondaryContainer = a2(900 ),
182+ tertiaryContainer = a3(100 ),
183+ onTertiaryContainer = a3(900 ),
184+ background = background,
185+ onBackground = onBackground,
186+ surface = background,
187+ onSurface = onBackground,
188+ surfaceVariant = n2(100 ),
189+ surfaceContainer = surfaceContainer,
190+ surfaceContainerHigh = surfaceContainerHigh,
191+ surfaceContainerHighest = n2(100 ),
192+ outline = n2(500 ),
193+ outlineVariant = n2(200 ),
194+ onSurfaceVariant = n2(700 ),
195+ )
196+ }
158197 } else {
159- MonetRoles (
160- primary = a1(200 ),
161- onPrimary = a1(800 ),
162- primaryFixed = a1(200 ),
163- onPrimaryFixed = a1(800 ),
164- error = Color (0xFFB3261E ),
165- onError = Color (0xFF690005 ),
166- errorContainer = Color (0xFF8C1D18 ),
167- onErrorContainer = Color (0xFFFFDAD4 ),
168- primaryContainer = a1(700 ),
169- onPrimaryContainer = a1(100 ),
170- secondary = a2(200 ),
171- onSecondary = a2(800 ),
172- secondaryContainer = a2(700 ),
173- onSecondaryContainer = a2(100 ),
174- tertiaryContainer = a3(700 ),
175- onTertiaryContainer = a3(100 ),
176- background = if (Build .VERSION .SDK_INT >= 34 ) toneFrom(n1(10 ), 6.0 ) else n1(10 ),
177- onBackground = if (Build .VERSION .SDK_INT >= 34 ) toneFrom(n1(10 ), 90.0 ) else n1(90 ),
178- surface = if (Build .VERSION .SDK_INT >= 34 ) toneFrom(n1(10 ), 6.0 ) else n1(10 ),
179- onSurface = if (Build .VERSION .SDK_INT >= 34 ) toneFrom(n1(10 ), 90.0 ) else n1(90 ),
180- surfaceVariant = if (Build .VERSION .SDK_INT >= 34 ) toneFrom(n2(700 ), 30.0 ) else n2(700 ),
181- surfaceContainer = if (Build .VERSION .SDK_INT >= 34 ) toneFrom(n1(10 ), 12.0 ) else n1(10 ),
182- surfaceContainerHigh = if (Build .VERSION .SDK_INT >= 34 ) toneFrom(n1(10 ), 17.0 ) else n1(10 ),
183- surfaceContainerHighest = if (Build .VERSION .SDK_INT >= 34 ) toneFrom(n1(10 ), 22.0 ) else n1(10 ),
184- outline = if (Build .VERSION .SDK_INT >= 34 ) toneFrom(n2(700 ), 60.0 ) else n2(500 ),
185- outlineVariant = if (Build .VERSION .SDK_INT >= 34 ) toneFrom(n2(700 ), 30.0 ) else n2(700 ),
186- onSurfaceVariant = if (Build .VERSION .SDK_INT >= 34 ) toneFrom(n2(700 ), 80.0 ) else n2(200 ),
187- )
198+ if (isAtLeast34) {
199+ MonetRoles (
200+ primary = a1(200 ),
201+ onPrimary = a1(800 ),
202+ primaryFixed = a1(200 ),
203+ onPrimaryFixed = a1(800 ),
204+ error = Color (0xFFB3261E ),
205+ onError = Color (0xFF690005 ),
206+ errorContainer = Color (0xFF8C1D18 ),
207+ onErrorContainer = Color (0xFFFFDAD4 ),
208+ primaryContainer = a1(700 ),
209+ onPrimaryContainer = a1(100 ),
210+ secondary = a2(200 ),
211+ onSecondary = a2(800 ),
212+ secondaryContainer = a2(700 ),
213+ onSecondaryContainer = a2(100 ),
214+ tertiaryContainer = a3(700 ),
215+ onTertiaryContainer = a3(100 ),
216+ background = toneFrom(n1(10 ), 6.0 ),
217+ onBackground = toneFrom(n1(10 ), 90.0 ),
218+ surface = toneFrom(n1(10 ), 6.0 ),
219+ onSurface = toneFrom(n1(10 ), 90.0 ),
220+ surfaceVariant = toneFrom(n2(700 ), 30.0 ),
221+ surfaceContainer = toneFrom(n1(10 ), 12.0 ),
222+ surfaceContainerHigh = toneFrom(n1(10 ), 17.0 ),
223+ surfaceContainerHighest = toneFrom(n1(10 ), 22.0 ),
224+ outline = toneFrom(n2(700 ), 60.0 ),
225+ outlineVariant = toneFrom(n2(700 ), 30.0 ),
226+ onSurfaceVariant = toneFrom(n2(700 ), 80.0 ),
227+ )
228+ } else {
229+ val neutralVariantBase = n2(600 )
230+ val background = toneFrom(neutralVariantBase, 6.0 )
231+ val surfaceContainer = toneFrom(neutralVariantBase, 12.0 )
232+ val surfaceContainerHigh = toneFrom(neutralVariantBase, 17.0 )
233+ val surfaceContainerHighest = toneFrom(neutralVariantBase, 22.0 )
234+ val onBackground = n2(100 )
235+ MonetRoles (
236+ primary = a1(200 ),
237+ onPrimary = a1(800 ),
238+ primaryFixed = a1(200 ),
239+ onPrimaryFixed = a1(800 ),
240+ error = Color (0xFFB3261E ),
241+ onError = Color (0xFF690005 ),
242+ errorContainer = Color (0xFF8C1D18 ),
243+ onErrorContainer = Color (0xFFFFDAD4 ),
244+ primaryContainer = a1(700 ),
245+ onPrimaryContainer = a1(100 ),
246+ secondary = a2(200 ),
247+ onSecondary = a2(800 ),
248+ secondaryContainer = a2(700 ),
249+ onSecondaryContainer = a2(100 ),
250+ tertiaryContainer = a3(700 ),
251+ onTertiaryContainer = a3(100 ),
252+ background = background,
253+ onBackground = onBackground,
254+ surface = background,
255+ onSurface = onBackground,
256+ surfaceVariant = n2(700 ),
257+ surfaceContainer = surfaceContainer,
258+ surfaceContainerHigh = surfaceContainerHigh,
259+ surfaceContainerHighest = surfaceContainerHighest,
260+ outline = n2(400 ),
261+ outlineVariant = n2(700 ),
262+ onSurfaceVariant = n2(200 ),
263+ )
264+ }
188265 }
189266}
0 commit comments