Skip to content

Commit

Permalink
feat(design toolbox): use Material color tokens generated by Tokenator (
Browse files Browse the repository at this point in the history
  • Loading branch information
florentmaitre authored Feb 24, 2025
1 parent cf13feb commit ddea890
Show file tree
Hide file tree
Showing 4 changed files with 105 additions and 100 deletions.
149 changes: 75 additions & 74 deletions core/src/main/java/com/orange/ouds/core/theme/OudsColorScheme.kt
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import androidx.compose.runtime.Stable
import androidx.compose.ui.graphics.Color
import com.orange.ouds.foundation.InternalOudsApi
import com.orange.ouds.theme.tokens.OudsColorKeyToken
import com.orange.ouds.theme.tokens.material.OudsMaterialColorTokens
import com.orange.ouds.theme.tokens.semantic.OudsColorSemanticTokens

/**
Expand Down Expand Up @@ -1159,84 +1160,84 @@ private fun OudsColorScheme.fromToken(token: OudsColorKeyToken.Overlay): Color {
}
}

val OudsColorSemanticTokens.materialLightColorScheme: ColorScheme
val OudsMaterialColorTokens.materialLightColorScheme: ColorScheme
get() = lightColorScheme(
primary = repositoryColorTokens.repositoryNeutralEmphasizedBlackLight,
onPrimary = repositoryColorTokens.repositoryNeutralMutedLowerLight,
primaryContainer = repositoryColorTokens.repositoryNeutralEmphasizedBlackLight,
onPrimaryContainer = repositoryColorTokens.repositoryNeutralMutedWhiteLight,
secondary = repositoryColorTokens.repositoryNeutralEmphasizedBlackLight,
onSecondary = repositoryColorTokens.repositoryNeutralMutedLowerLight,
secondaryContainer = repositoryColorTokens.repositoryNeutralEmphasizedBlackLight,
onSecondaryContainer = repositoryColorTokens.repositoryNeutralMutedWhiteLight,
tertiary = repositoryColorTokens.repositoryNeutralMutedWhiteLight,
onTertiary = repositoryColorTokens.repositoryNeutralEmphasizedBlackLight,
tertiaryContainer = repositoryColorTokens.repositoryNeutralMutedWhiteLight,
onTertiaryContainer = repositoryColorTokens.repositoryNeutralEmphasizedBlackLight,
error = repositoryColorTokens.repositoryNegativeDefaultLight,
onError = repositoryColorTokens.repositoryNeutralMutedWhiteLight,
errorContainer = repositoryColorTokens.repositoryNegativeLowestLight,
onErrorContainer = repositoryColorTokens.repositoryNeutralEmphasizedBlackLight,
surfaceDim = repositoryColorTokens.repositoryNeutralMutedLowestLight,
surface = repositoryColorTokens.repositoryNeutralMutedWhiteLight,
surfaceBright = repositoryColorTokens.repositoryNeutralMutedWhiteLight,
onSurface = repositoryColorTokens.repositoryNeutralEmphasizedBlackLight,
onSurfaceVariant = repositoryColorTokens.repositoryOpacityBlackHigherLight,
surfaceContainerLowest = repositoryColorTokens.repositoryNeutralMutedWhiteLight,
surfaceContainerLow = repositoryColorTokens.repositoryNeutralMutedWhiteLight,
surfaceContainer = repositoryColorTokens.repositoryNeutralMutedLowestLight,
surfaceContainerHigh = repositoryColorTokens.repositoryNeutralMutedLowestLight,
surfaceContainerHighest = repositoryColorTokens.repositoryNeutralMutedLowestLight,
inverseSurface = repositoryColorTokens.repositoryNeutralEmphasizedHighLight,
inverseOnSurface = repositoryColorTokens.repositoryNeutralMutedWhiteLight,
inversePrimary = repositoryColorTokens.repositoryNeutralMutedWhiteLight,
outline = repositoryColorTokens.repositoryNeutralEmphasizedBlackLight,
outlineVariant = repositoryColorTokens.repositoryOpacityBlackLowLight,
scrim = repositoryColorTokens.repositoryNeutralEmphasizedBlackLight,
background = repositoryColorTokens.repositoryNeutralMutedWhiteLight,
onBackground = repositoryColorTokens.repositoryNeutralEmphasizedBlackLight,
surfaceVariant = repositoryColorTokens.repositoryNeutralMutedLowestLight,
surfaceTint = repositoryColorTokens.repositoryNeutralMutedLowestLight,
primary = primaryLight,
onPrimary = onPrimaryLight,
primaryContainer = primaryContainerLight,
onPrimaryContainer = onPrimaryContainerLight,
secondary = secondaryLight,
onSecondary = onSecondaryLight,
secondaryContainer = secondaryContainerLight,
onSecondaryContainer = onSecondaryContainerLight,
tertiary = tertiaryLight,
onTertiary = onTertiaryLight,
tertiaryContainer = tertiaryContainerLight,
onTertiaryContainer = onTertiaryContainerLight,
error = errorLight,
onError = onErrorLight,
errorContainer = errorContainerLight,
onErrorContainer = onErrorContainerLight,
surfaceDim = surfaceDimLight,
surface = surfaceLight,
surfaceBright = surfaceBrightLight,
onSurface = onSurfaceLight,
onSurfaceVariant = onSurfaceVariantLight,
surfaceContainerLowest = surfContainerLowestLight,
surfaceContainerLow = surfContainerLowLight,
surfaceContainer = surfContainerLight,
surfaceContainerHigh = surfContainerHighLight,
surfaceContainerHighest = surfContainerHighestLight,
inverseSurface = inverseSurfaceLight,
inverseOnSurface = inverseOnSurfaceLight,
inversePrimary = inversePrimaryLight,
outline = outlineLight,
outlineVariant = outlineVariantLight,
scrim = scrimLight,
background = backgroundLight,
onBackground = onBackgroundLight,
surfaceVariant = surfaceVariantLight,
surfaceTint = surfaceTintLight,
)

val OudsColorSemanticTokens.materialDarkColorScheme: ColorScheme
val OudsMaterialColorTokens.materialDarkColorScheme: ColorScheme
get() = darkColorScheme(
primary = repositoryColorTokens.repositoryNeutralMutedLowerDark,
onPrimary = repositoryColorTokens.repositoryNeutralEmphasizedBlackDark,
primaryContainer = repositoryColorTokens.repositoryNeutralMutedLowerDark,
onPrimaryContainer = repositoryColorTokens.repositoryNeutralEmphasizedBlackDark,
secondary = repositoryColorTokens.repositoryNeutralMutedLowerDark,
onSecondary = repositoryColorTokens.repositoryNeutralEmphasizedBlackDark,
secondaryContainer = repositoryColorTokens.repositoryNeutralMutedLowerDark,
onSecondaryContainer = repositoryColorTokens.repositoryNeutralEmphasizedBlackDark,
tertiary = repositoryColorTokens.repositoryNeutralEmphasizedHighestDark,
onTertiary = repositoryColorTokens.repositoryNeutralMutedLowerDark,
tertiaryContainer = repositoryColorTokens.repositoryNeutralEmphasizedHighestDark,
onTertiaryContainer = repositoryColorTokens.repositoryNeutralMutedLowerDark,
error = repositoryColorTokens.repositoryNegativeLowDark,
onError = repositoryColorTokens.repositoryNeutralEmphasizedBlackDark,
errorContainer = repositoryColorTokens.repositoryNegativeHighestDark,
onErrorContainer = repositoryColorTokens.repositoryNeutralMutedLowerDark,
surfaceDim = repositoryColorTokens.repositoryNeutralEmphasizedHighestDark,
surface = repositoryColorTokens.repositoryNeutralEmphasizedHighestDark,
surfaceBright = repositoryColorTokens.repositoryNeutralEmphasizedMediumDark,
onSurface = repositoryColorTokens.repositoryNeutralMutedLowerDark,
onSurfaceVariant = repositoryColorTokens.repositoryOpacityWhiteHighDark,
surfaceContainerLowest = repositoryColorTokens.repositoryNeutralEmphasizedHighestDark,
surfaceContainerLow = repositoryColorTokens.repositoryNeutralEmphasizedHighestDark,
surfaceContainer = repositoryColorTokens.repositoryNeutralMutedLowestDark,
surfaceContainerHigh = repositoryColorTokens.repositoryNeutralMutedLowestDark,
surfaceContainerHighest = repositoryColorTokens.repositoryNeutralMutedLowestDark,
inverseSurface = repositoryColorTokens.repositoryNeutralMutedLowerDark,
inverseOnSurface = repositoryColorTokens.repositoryNeutralEmphasizedBlackDark,
inversePrimary = repositoryColorTokens.repositoryNeutralEmphasizedBlackDark,
outline = repositoryColorTokens.repositoryNeutralMutedLowerDark,
outlineVariant = repositoryColorTokens.repositoryOpacityWhiteLowDark,
scrim = repositoryColorTokens.repositoryNeutralEmphasizedBlackDark,
background = repositoryColorTokens.repositoryNeutralEmphasizedHighestDark,
onBackground = repositoryColorTokens.repositoryNeutralMutedLowerDark,
surfaceVariant = repositoryColorTokens.repositoryNeutralMutedLowestDark,
surfaceTint = repositoryColorTokens.repositoryNeutralMutedLowestDark,
primary = primaryDark,
onPrimary = onPrimaryDark,
primaryContainer = primaryContainerDark,
onPrimaryContainer = onPrimaryContainerDark,
secondary = secondaryDark,
onSecondary = onSecondaryDark,
secondaryContainer = secondaryContainerDark,
onSecondaryContainer = onSecondaryContainerDark,
tertiary = tertiaryDark,
onTertiary = onTertiaryDark,
tertiaryContainer = tertiaryContainerDark,
onTertiaryContainer = onTertiaryContainerDark,
error = errorDark,
onError = onErrorDark,
errorContainer = errorContainerDark,
onErrorContainer = onErrorContainerDark,
surfaceDim = surfaceDimDark,
surface = surfaceDark,
surfaceBright = surfaceBrightDark,
onSurface = onSurfaceDark,
onSurfaceVariant = onSurfaceVariantDark,
surfaceContainerLowest = surfContainerLowestDark,
surfaceContainerLow = surfContainerLowDark,
surfaceContainer = surfContainerDark,
surfaceContainerHigh = surfContainerHighDark,
surfaceContainerHighest = surfContainerHighestDark,
inverseSurface = inverseSurfaceDark,
inverseOnSurface = inverseOnSurfaceDark,
inversePrimary = inversePrimaryDark,
outline = outlineDark,
outlineVariant = outlineVariantDark,
scrim = scrimDark,
background = backgroundDark,
onBackground = onBackgroundDark,
surfaceVariant = surfaceVariantDark,
surfaceTint = surfaceTintDark,
)

/**
Expand Down
50 changes: 26 additions & 24 deletions core/src/main/java/com/orange/ouds/core/theme/OudsTheme.kt
Original file line number Diff line number Diff line change
Expand Up @@ -118,30 +118,32 @@ fun OudsTheme(
darkThemeEnabled: Boolean = isSystemInDarkTheme(),
content: @Composable () -> Unit
) {
val colorScheme = if (darkThemeEnabled) themeContract.colorTokens.darkColorScheme else themeContract.colorTokens.lightColorScheme
val materialColorScheme = if (darkThemeEnabled) themeContract.colorTokens.materialDarkColorScheme else themeContract.colorTokens.materialLightColorScheme
val windowWidthSizeClass = WindowWidthSizeClass.compute(currentWindowWidth())

CompositionLocalProvider(
LocalDarkThemeEnabled provides darkThemeEnabled,
LocalColorScheme provides colorScheme,
LocalLightColorScheme provides themeContract.colorTokens.lightColorScheme,
LocalDarkColorScheme provides themeContract.colorTokens.darkColorScheme,
LocalMaterialLightColorScheme provides themeContract.colorTokens.materialLightColorScheme,
LocalMaterialDarkColorScheme provides themeContract.colorTokens.materialDarkColorScheme,
LocalBorders provides themeContract.borderTokens.getBorders(),
LocalElevations provides themeContract.elevationTokens.getElevation(),
LocalTypography provides themeContract.fontTokens.getTypography(themeContract.fontFamily, windowWidthSizeClass),
LocalGrids provides themeContract.gridTokens.getGrids(windowWidthSizeClass),
LocalOpacities provides themeContract.opacityTokens.getOpacity(),
LocalSizes provides themeContract.sizeTokens.getSizes(windowWidthSizeClass),
LocalSpaces provides themeContract.spaceTokens.getSpaces(windowWidthSizeClass),
LocalComponentsTokens provides themeContract.componentsTokens,
) {
MaterialTheme(
colorScheme = materialColorScheme,
content = content
)
with(themeContract) {
val colorScheme = if (darkThemeEnabled) colorTokens.darkColorScheme else colorTokens.lightColorScheme
val materialColorScheme = if (darkThemeEnabled) materialColorTokens.materialDarkColorScheme else materialColorTokens.materialLightColorScheme
val windowWidthSizeClass = WindowWidthSizeClass.compute(currentWindowWidth())

CompositionLocalProvider(
LocalDarkThemeEnabled provides darkThemeEnabled,
LocalColorScheme provides colorScheme,
LocalLightColorScheme provides colorTokens.lightColorScheme,
LocalDarkColorScheme provides colorTokens.darkColorScheme,
LocalMaterialLightColorScheme provides materialColorTokens.materialLightColorScheme,
LocalMaterialDarkColorScheme provides materialColorTokens.materialDarkColorScheme,
LocalBorders provides borderTokens.getBorders(),
LocalElevations provides elevationTokens.getElevation(),
LocalTypography provides fontTokens.getTypography(fontFamily, windowWidthSizeClass),
LocalGrids provides gridTokens.getGrids(windowWidthSizeClass),
LocalOpacities provides opacityTokens.getOpacity(),
LocalSizes provides sizeTokens.getSizes(windowWidthSizeClass),
LocalSpaces provides spaceTokens.getSpaces(windowWidthSizeClass),
LocalComponentsTokens provides componentsTokens,
) {
MaterialTheme(
colorScheme = materialColorScheme,
content = content
)
}
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@

package com.orange.ouds.theme.orange.tokens.semantic

import com.orange.ouds.foundation.InternalOudsApi
import com.orange.ouds.theme.tokens.semantic.OudsColorActionSemanticTokens
import com.orange.ouds.theme.tokens.semantic.OudsColorAlwaysSemanticTokens
import com.orange.ouds.theme.tokens.semantic.OudsColorBgSemanticTokens
Expand All @@ -34,5 +35,5 @@ data class OrangeColorSemanticTokens(
override val opacityColorTokens: OudsColorOpacitySemanticTokens = OrangeColorOpacitySemanticTokens(),
override val overlayColorTokens: OudsColorOverlaySemanticTokens = OrangeColorOverlaySemanticTokens(),
override val surfaceColorTokens: OudsColorSurfaceSemanticTokens = OrangeColorSurfaceSemanticTokens(),
override val repositoryColorTokens: OudsColorRepositorySemanticTokens = OrangeColorRepositorySemanticTokens()
@InternalOudsApi override val repositoryColorTokens: OudsColorRepositorySemanticTokens = OrangeColorRepositorySemanticTokens()
) : OudsColorSemanticTokens
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@

package com.orange.ouds.theme.whitelabel.tokens.semantic

import com.orange.ouds.foundation.InternalOudsApi
import com.orange.ouds.theme.tokens.semantic.OudsColorActionSemanticTokens
import com.orange.ouds.theme.tokens.semantic.OudsColorAlwaysSemanticTokens
import com.orange.ouds.theme.tokens.semantic.OudsColorBgSemanticTokens
Expand All @@ -34,5 +35,5 @@ data class WhiteLabelColorSemanticTokens(
override val opacityColorTokens: OudsColorOpacitySemanticTokens = WhiteLabelColorOpacitySemanticTokens(),
override val overlayColorTokens: OudsColorOverlaySemanticTokens = WhiteLabelColorOverlaySemanticTokens(),
override val surfaceColorTokens: OudsColorSurfaceSemanticTokens = WhiteLabelColorSurfaceSemanticTokens(),
override val repositoryColorTokens: OudsColorRepositorySemanticTokens = WhiteLabelColorRepositorySemanticTokens()
@InternalOudsApi override val repositoryColorTokens: OudsColorRepositorySemanticTokens = WhiteLabelColorRepositorySemanticTokens()
) : OudsColorSemanticTokens

0 comments on commit ddea890

Please sign in to comment.