Package-level declarations

Types

Link copied to clipboard
data class ColorSchemeTokens(val primary: ColorToken, val onPrimary: ColorToken, val surface: ColorToken, val onSurface: ColorToken, val surfaceVariant: ColorToken, val outline: ColorToken, val success: ColorToken, val warning: ColorToken, val error: ColorToken, val secondary: ColorToken? = null, val onSecondary: ColorToken? = null, val tertiary: ColorToken? = null, val onTertiary: ColorToken? = null, val onSurfaceVariant: ColorToken? = null, val outlineVariant: ColorToken? = null, val onSuccess: ColorToken? = null, val onWarning: ColorToken? = null, val onError: ColorToken? = null)

Semantic roles shared by light and dark product themes.

Link copied to clipboard
data class ColorToken(val argb: Long)

A platform-neutral ARGB color value. UI adapters decide how it is rendered.

Link copied to clipboard
Link copied to clipboard

Neutral defaults that products can copy and brand without changing token semantics.

Link copied to clipboard
data class MotionTokens(val fastMilliseconds: Int = 100, val standardMilliseconds: Int = 200, val deliberateMilliseconds: Int = 300)
Link copied to clipboard
data class ShapeTokens(val smallRadius: Float = 4.0f, val mediumRadius: Float = 8.0f, val largeRadius: Float = 12.0f)

Density-independent corner radii.

Link copied to clipboard
data class SpacingTokens(val none: Float = 0.0f, val extraSmall: Float = 4.0f, val small: Float = 8.0f, val medium: Float = 16.0f, val large: Float = 24.0f, val extraLarge: Float = 32.0f)

Density-independent layout values. Compose adapters normally convert these values to Dp.

Link copied to clipboard
data class ThemeTokens(val lightColors: ColorSchemeTokens, val darkColors: ColorSchemeTokens, val spacing: SpacingTokens = SpacingTokens(), val shapes: ShapeTokens = ShapeTokens(), val typography: TypographyTokens = TypographyTokens(), val motion: MotionTokens = MotionTokens())
Link copied to clipboard
data class TypeStyleToken(val fontSize: Float, val lineHeight: Float, val weight: FontWeightToken = FontWeightToken.NORMAL)

Scale-independent typography values, interpreted as sp by Compose adapters.

Link copied to clipboard
data class TypographyTokens(val display: TypeStyleToken = TypeStyleToken(32f, 40f, FontWeightToken.BOLD), val title: TypeStyleToken = TypeStyleToken(22f, 28f, FontWeightToken.SEMI_BOLD), val body: TypeStyleToken = TypeStyleToken(14f, 20f), val label: TypeStyleToken = TypeStyleToken(12f, 16f, FontWeightToken.MEDIUM), val code: TypeStyleToken = TypeStyleToken(13f, 18f))

Properties

Link copied to clipboard

The alpha channel, 0..255.

Link copied to clipboard

The blue channel, 0..255.

Link copied to clipboard

The green channel, 0..255.

Link copied to clipboard
const val MIN_NON_TEXT_CONTRAST: Double = 3.0

WCAG 2.x minimum contrast for large text, icons, and control boundaries (level AA).

Link copied to clipboard
const val MIN_TEXT_CONTRAST: Double = 4.5

WCAG 2.x minimum contrast for body text (level AA).

Link copied to clipboard

The red channel, 0..255.

Functions

Link copied to clipboard

WCAG 2.x contrast ratio between this token and other, from 1.0 (identical) to 21.0 (black on white). The result does not depend on argument order. Compare it with MIN_TEXT_CONTRAST or MIN_NON_TEXT_CONTRAST when validating a re-branded theme.

Link copied to clipboard

WCAG 2.x relative luminance in 0.0..1.0, computed from the sRGB channels. Alpha is ignored, so translucent tokens are measured as if they were opaque.