Define the SystemUI typography am: 8c222cabb6
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/19500380 Change-Id: I31b5cf7035ee591f980dc5a291eda1cceeca450e Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
committed by
Automerger Merge Worker
commit
3eb0ba03eb
@@ -18,12 +18,12 @@ package com.android.systemui.compose.theme
|
||||
|
||||
import androidx.compose.foundation.isSystemInDarkTheme
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.Typography
|
||||
import androidx.compose.material3.dynamicDarkColorScheme
|
||||
import androidx.compose.material3.dynamicLightColorScheme
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.CompositionLocalProvider
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import com.android.systemui.compose.theme.typography.SystemUITypography
|
||||
|
||||
/** The Material 3 theme that should wrap all SystemUI Composables. */
|
||||
@Composable
|
||||
@@ -33,7 +33,7 @@ fun SystemUITheme(
|
||||
) {
|
||||
val context = LocalContext.current
|
||||
|
||||
// TODO(b/230605885): Define our typography and color scheme.
|
||||
// TODO(b/230605885): Define our color scheme.
|
||||
val colorScheme =
|
||||
if (isDarkTheme) {
|
||||
dynamicDarkColorScheme(context)
|
||||
@@ -41,9 +41,8 @@ fun SystemUITheme(
|
||||
dynamicLightColorScheme(context)
|
||||
}
|
||||
val androidColorScheme = AndroidColorScheme(context)
|
||||
val typography = Typography()
|
||||
|
||||
MaterialTheme(colorScheme, typography = typography) {
|
||||
MaterialTheme(colorScheme, typography = SystemUITypography) {
|
||||
CompositionLocalProvider(
|
||||
LocalAndroidColorScheme provides androidColorScheme,
|
||||
) {
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
/*
|
||||
* Copyright (C) 2022 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.systemui.compose.theme.typography
|
||||
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.Typography
|
||||
|
||||
/**
|
||||
* The SystemUI typography.
|
||||
*
|
||||
* Do not use directly and call [MaterialTheme.typography] instead to access the different text
|
||||
* styles.
|
||||
*/
|
||||
internal val SystemUITypography =
|
||||
Typography(
|
||||
displayLarge = TypographyTokens.DisplayLarge,
|
||||
displayMedium = TypographyTokens.DisplayMedium,
|
||||
displaySmall = TypographyTokens.DisplaySmall,
|
||||
headlineLarge = TypographyTokens.HeadlineLarge,
|
||||
headlineMedium = TypographyTokens.HeadlineMedium,
|
||||
headlineSmall = TypographyTokens.HeadlineSmall,
|
||||
titleLarge = TypographyTokens.TitleLarge,
|
||||
titleMedium = TypographyTokens.TitleMedium,
|
||||
titleSmall = TypographyTokens.TitleSmall,
|
||||
bodyLarge = TypographyTokens.BodyLarge,
|
||||
bodyMedium = TypographyTokens.BodyMedium,
|
||||
bodySmall = TypographyTokens.BodySmall,
|
||||
labelLarge = TypographyTokens.LabelLarge,
|
||||
labelMedium = TypographyTokens.LabelMedium,
|
||||
labelSmall = TypographyTokens.LabelSmall,
|
||||
)
|
||||
@@ -0,0 +1,97 @@
|
||||
/*
|
||||
* Copyright (C) 2022 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.systemui.compose.theme.typography
|
||||
|
||||
import androidx.compose.ui.unit.sp
|
||||
|
||||
object TypeScaleTokens {
|
||||
val BodyLargeFont = TypefaceTokens.Plain
|
||||
val BodyLargeLineHeight = 24.0.sp
|
||||
val BodyLargeSize = 16.sp
|
||||
val BodyLargeTracking = 0.0.sp
|
||||
val BodyLargeWeight = TypefaceTokens.WeightRegular
|
||||
val BodyMediumFont = TypefaceTokens.Plain
|
||||
val BodyMediumLineHeight = 20.0.sp
|
||||
val BodyMediumSize = 14.sp
|
||||
val BodyMediumTracking = 0.0.sp
|
||||
val BodyMediumWeight = TypefaceTokens.WeightRegular
|
||||
val BodySmallFont = TypefaceTokens.Plain
|
||||
val BodySmallLineHeight = 16.0.sp
|
||||
val BodySmallSize = 12.sp
|
||||
val BodySmallTracking = 0.1.sp
|
||||
val BodySmallWeight = TypefaceTokens.WeightRegular
|
||||
val DisplayLargeFont = TypefaceTokens.Brand
|
||||
val DisplayLargeLineHeight = 64.0.sp
|
||||
val DisplayLargeSize = 57.sp
|
||||
val DisplayLargeTracking = 0.0.sp
|
||||
val DisplayLargeWeight = TypefaceTokens.WeightRegular
|
||||
val DisplayMediumFont = TypefaceTokens.Brand
|
||||
val DisplayMediumLineHeight = 52.0.sp
|
||||
val DisplayMediumSize = 45.sp
|
||||
val DisplayMediumTracking = 0.0.sp
|
||||
val DisplayMediumWeight = TypefaceTokens.WeightRegular
|
||||
val DisplaySmallFont = TypefaceTokens.Brand
|
||||
val DisplaySmallLineHeight = 44.0.sp
|
||||
val DisplaySmallSize = 36.sp
|
||||
val DisplaySmallTracking = 0.0.sp
|
||||
val DisplaySmallWeight = TypefaceTokens.WeightRegular
|
||||
val HeadlineLargeFont = TypefaceTokens.Brand
|
||||
val HeadlineLargeLineHeight = 40.0.sp
|
||||
val HeadlineLargeSize = 32.sp
|
||||
val HeadlineLargeTracking = 0.0.sp
|
||||
val HeadlineLargeWeight = TypefaceTokens.WeightRegular
|
||||
val HeadlineMediumFont = TypefaceTokens.Brand
|
||||
val HeadlineMediumLineHeight = 36.0.sp
|
||||
val HeadlineMediumSize = 28.sp
|
||||
val HeadlineMediumTracking = 0.0.sp
|
||||
val HeadlineMediumWeight = TypefaceTokens.WeightRegular
|
||||
val HeadlineSmallFont = TypefaceTokens.Brand
|
||||
val HeadlineSmallLineHeight = 32.0.sp
|
||||
val HeadlineSmallSize = 24.sp
|
||||
val HeadlineSmallTracking = 0.0.sp
|
||||
val HeadlineSmallWeight = TypefaceTokens.WeightRegular
|
||||
val LabelLargeFont = TypefaceTokens.Plain
|
||||
val LabelLargeLineHeight = 20.0.sp
|
||||
val LabelLargeSize = 14.sp
|
||||
val LabelLargeTracking = 0.0.sp
|
||||
val LabelLargeWeight = TypefaceTokens.WeightMedium
|
||||
val LabelMediumFont = TypefaceTokens.Plain
|
||||
val LabelMediumLineHeight = 16.0.sp
|
||||
val LabelMediumSize = 12.sp
|
||||
val LabelMediumTracking = 0.1.sp
|
||||
val LabelMediumWeight = TypefaceTokens.WeightMedium
|
||||
val LabelSmallFont = TypefaceTokens.Plain
|
||||
val LabelSmallLineHeight = 16.0.sp
|
||||
val LabelSmallSize = 11.sp
|
||||
val LabelSmallTracking = 0.1.sp
|
||||
val LabelSmallWeight = TypefaceTokens.WeightMedium
|
||||
val TitleLargeFont = TypefaceTokens.Brand
|
||||
val TitleLargeLineHeight = 28.0.sp
|
||||
val TitleLargeSize = 22.sp
|
||||
val TitleLargeTracking = 0.0.sp
|
||||
val TitleLargeWeight = TypefaceTokens.WeightRegular
|
||||
val TitleMediumFont = TypefaceTokens.Plain
|
||||
val TitleMediumLineHeight = 24.0.sp
|
||||
val TitleMediumSize = 16.sp
|
||||
val TitleMediumTracking = 0.0.sp
|
||||
val TitleMediumWeight = TypefaceTokens.WeightMedium
|
||||
val TitleSmallFont = TypefaceTokens.Plain
|
||||
val TitleSmallLineHeight = 20.0.sp
|
||||
val TitleSmallSize = 14.sp
|
||||
val TitleSmallTracking = 0.0.sp
|
||||
val TitleSmallWeight = TypefaceTokens.WeightMedium
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
/*
|
||||
* Copyright (C) 2022 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
@file:OptIn(ExperimentalTextApi::class)
|
||||
|
||||
package com.android.systemui.compose.theme.typography
|
||||
|
||||
import androidx.compose.ui.text.ExperimentalTextApi
|
||||
import androidx.compose.ui.text.font.DeviceFontFamilyName
|
||||
import androidx.compose.ui.text.font.Font
|
||||
import androidx.compose.ui.text.font.FontFamily
|
||||
import androidx.compose.ui.text.font.FontWeight
|
||||
|
||||
val brandFont = DeviceFontFamilyName("google-sans")
|
||||
val plainFont = DeviceFontFamilyName("google-sans-text")
|
||||
|
||||
object TypefaceTokens {
|
||||
|
||||
val WeightMedium = FontWeight.Medium
|
||||
val WeightRegular = FontWeight.Normal
|
||||
|
||||
val Brand =
|
||||
FontFamily(Font(brandFont, weight = WeightMedium), Font(brandFont, weight = WeightRegular))
|
||||
val Plain =
|
||||
FontFamily(Font(plainFont, weight = WeightMedium), Font(plainFont, weight = WeightRegular))
|
||||
}
|
||||
@@ -0,0 +1,142 @@
|
||||
/*
|
||||
* Copyright (C) 2022 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.systemui.compose.theme.typography
|
||||
|
||||
import androidx.compose.ui.text.TextStyle
|
||||
|
||||
object TypographyTokens {
|
||||
val BodyLarge =
|
||||
TextStyle(
|
||||
fontFamily = TypeScaleTokens.BodyLargeFont,
|
||||
fontWeight = TypeScaleTokens.BodyLargeWeight,
|
||||
fontSize = TypeScaleTokens.BodyLargeSize,
|
||||
lineHeight = TypeScaleTokens.BodyLargeLineHeight,
|
||||
letterSpacing = TypeScaleTokens.BodyLargeTracking,
|
||||
)
|
||||
val BodyMedium =
|
||||
TextStyle(
|
||||
fontFamily = TypeScaleTokens.BodyMediumFont,
|
||||
fontWeight = TypeScaleTokens.BodyMediumWeight,
|
||||
fontSize = TypeScaleTokens.BodyMediumSize,
|
||||
lineHeight = TypeScaleTokens.BodyMediumLineHeight,
|
||||
letterSpacing = TypeScaleTokens.BodyMediumTracking,
|
||||
)
|
||||
val BodySmall =
|
||||
TextStyle(
|
||||
fontFamily = TypeScaleTokens.BodySmallFont,
|
||||
fontWeight = TypeScaleTokens.BodySmallWeight,
|
||||
fontSize = TypeScaleTokens.BodySmallSize,
|
||||
lineHeight = TypeScaleTokens.BodySmallLineHeight,
|
||||
letterSpacing = TypeScaleTokens.BodySmallTracking,
|
||||
)
|
||||
val DisplayLarge =
|
||||
TextStyle(
|
||||
fontFamily = TypeScaleTokens.DisplayLargeFont,
|
||||
fontWeight = TypeScaleTokens.DisplayLargeWeight,
|
||||
fontSize = TypeScaleTokens.DisplayLargeSize,
|
||||
lineHeight = TypeScaleTokens.DisplayLargeLineHeight,
|
||||
letterSpacing = TypeScaleTokens.DisplayLargeTracking,
|
||||
)
|
||||
val DisplayMedium =
|
||||
TextStyle(
|
||||
fontFamily = TypeScaleTokens.DisplayMediumFont,
|
||||
fontWeight = TypeScaleTokens.DisplayMediumWeight,
|
||||
fontSize = TypeScaleTokens.DisplayMediumSize,
|
||||
lineHeight = TypeScaleTokens.DisplayMediumLineHeight,
|
||||
letterSpacing = TypeScaleTokens.DisplayMediumTracking,
|
||||
)
|
||||
val DisplaySmall =
|
||||
TextStyle(
|
||||
fontFamily = TypeScaleTokens.DisplaySmallFont,
|
||||
fontWeight = TypeScaleTokens.DisplaySmallWeight,
|
||||
fontSize = TypeScaleTokens.DisplaySmallSize,
|
||||
lineHeight = TypeScaleTokens.DisplaySmallLineHeight,
|
||||
letterSpacing = TypeScaleTokens.DisplaySmallTracking,
|
||||
)
|
||||
val HeadlineLarge =
|
||||
TextStyle(
|
||||
fontFamily = TypeScaleTokens.HeadlineLargeFont,
|
||||
fontWeight = TypeScaleTokens.HeadlineLargeWeight,
|
||||
fontSize = TypeScaleTokens.HeadlineLargeSize,
|
||||
lineHeight = TypeScaleTokens.HeadlineLargeLineHeight,
|
||||
letterSpacing = TypeScaleTokens.HeadlineLargeTracking,
|
||||
)
|
||||
val HeadlineMedium =
|
||||
TextStyle(
|
||||
fontFamily = TypeScaleTokens.HeadlineMediumFont,
|
||||
fontWeight = TypeScaleTokens.HeadlineMediumWeight,
|
||||
fontSize = TypeScaleTokens.HeadlineMediumSize,
|
||||
lineHeight = TypeScaleTokens.HeadlineMediumLineHeight,
|
||||
letterSpacing = TypeScaleTokens.HeadlineMediumTracking,
|
||||
)
|
||||
val HeadlineSmall =
|
||||
TextStyle(
|
||||
fontFamily = TypeScaleTokens.HeadlineSmallFont,
|
||||
fontWeight = TypeScaleTokens.HeadlineSmallWeight,
|
||||
fontSize = TypeScaleTokens.HeadlineSmallSize,
|
||||
lineHeight = TypeScaleTokens.HeadlineSmallLineHeight,
|
||||
letterSpacing = TypeScaleTokens.HeadlineSmallTracking,
|
||||
)
|
||||
val LabelLarge =
|
||||
TextStyle(
|
||||
fontFamily = TypeScaleTokens.LabelLargeFont,
|
||||
fontWeight = TypeScaleTokens.LabelLargeWeight,
|
||||
fontSize = TypeScaleTokens.LabelLargeSize,
|
||||
lineHeight = TypeScaleTokens.LabelLargeLineHeight,
|
||||
letterSpacing = TypeScaleTokens.LabelLargeTracking,
|
||||
)
|
||||
val LabelMedium =
|
||||
TextStyle(
|
||||
fontFamily = TypeScaleTokens.LabelMediumFont,
|
||||
fontWeight = TypeScaleTokens.LabelMediumWeight,
|
||||
fontSize = TypeScaleTokens.LabelMediumSize,
|
||||
lineHeight = TypeScaleTokens.LabelMediumLineHeight,
|
||||
letterSpacing = TypeScaleTokens.LabelMediumTracking,
|
||||
)
|
||||
val LabelSmall =
|
||||
TextStyle(
|
||||
fontFamily = TypeScaleTokens.LabelSmallFont,
|
||||
fontWeight = TypeScaleTokens.LabelSmallWeight,
|
||||
fontSize = TypeScaleTokens.LabelSmallSize,
|
||||
lineHeight = TypeScaleTokens.LabelSmallLineHeight,
|
||||
letterSpacing = TypeScaleTokens.LabelSmallTracking,
|
||||
)
|
||||
val TitleLarge =
|
||||
TextStyle(
|
||||
fontFamily = TypeScaleTokens.TitleLargeFont,
|
||||
fontWeight = TypeScaleTokens.TitleLargeWeight,
|
||||
fontSize = TypeScaleTokens.TitleLargeSize,
|
||||
lineHeight = TypeScaleTokens.TitleLargeLineHeight,
|
||||
letterSpacing = TypeScaleTokens.TitleLargeTracking,
|
||||
)
|
||||
val TitleMedium =
|
||||
TextStyle(
|
||||
fontFamily = TypeScaleTokens.TitleMediumFont,
|
||||
fontWeight = TypeScaleTokens.TitleMediumWeight,
|
||||
fontSize = TypeScaleTokens.TitleMediumSize,
|
||||
lineHeight = TypeScaleTokens.TitleMediumLineHeight,
|
||||
letterSpacing = TypeScaleTokens.TitleMediumTracking,
|
||||
)
|
||||
val TitleSmall =
|
||||
TextStyle(
|
||||
fontFamily = TypeScaleTokens.TitleSmallFont,
|
||||
fontWeight = TypeScaleTokens.TitleSmallWeight,
|
||||
fontSize = TypeScaleTokens.TitleSmallSize,
|
||||
lineHeight = TypeScaleTokens.TitleSmallLineHeight,
|
||||
letterSpacing = TypeScaleTokens.TitleSmallTracking,
|
||||
)
|
||||
}
|
||||
Reference in New Issue
Block a user