Theme builder
A DesignPreset you take away as Kotlin
Primary colour
Hex
Text on it, white
4.8:1
As a link on white
4.8:1
Corners
Pantrix: 6 · 8 · 12 · 16 · 20 dp
Typeface
Density · the theme's, not the preset's
commonMain
object PantrixPreset : DesignPreset {
override val name = "Pantrix"
override fun colors(dark: Boolean) = if (dark) PantrixPresetDark else PantrixPresetLight
@Composable override fun typography() = rememberPantrixTypography()
@Composable override fun shapes() = PantrixShapes(
xs = RoundedCornerShape(6.dp), sm = RoundedCornerShape(8.dp),
md = RoundedCornerShape(12.dp), lg = RoundedCornerShape(16.dp),
xl = RoundedCornerShape(20.dp)
)
}
private val PantrixPresetLight = PantrixColors(
primary = PantrixColor(
color = Color(0xFF2264FF), onColor = Color(0xFFFFFFFF),
container = Color(0xFFE9F0FF), onContainer = Color(0xFF153A91)
),
success = PantrixColor(
color = Color(0xFF1A8556), onColor = Color(0xFFFFFFFF),
container = Color(0xFFE7F6EF), onContainer = Color(0xFF146B45)
),
info = PantrixColor(
color = Color(0xFF2264FF), onColor = Color(0xFFFFFFFF),
container = Color(0xFFECF3FE), onContainer = Color(0xFF1A52D6)
),
warning = PantrixColor(
color = Color(0xFFB95D15), onColor = Color(0xFFFFFFFF),
container = Color(0xFFFFF2E6), onContainer = Color(0xFF8A4310)
),
danger = PantrixColor(
color = Color(0xFFC42A55), onColor = Color(0xFFFFFFFF),
container = Color(0xFFFCE7EC), onContainer = Color(0xFF8E1C3C)
),
neutral = PantrixColor(
color = Color(0xFF4B4F5C), onColor = Color(0xFFFFFFFF),
container = Color(0xFFEEF0F4), onContainer = Color(0xFF05070A)
),
background = Color(0xFFFFFFFF),
surface = Color(0xFFFFFFFF),
onSurface = Color(0xFF4B4F5C),
disabledContainer = Color(0xFFEEF0F4),
disabledContent = Color(0xFFA0A5B3),
textPrimary = Color(0xFF05070A),
textSecondary = Color(0xFF4B4F5C),
textDisabled = Color(0xFFA0A5B3),
textInverse = Color(0xFFFFFFFF),
border = Color(0xFFE7E9ED),
borderHover = Color(0xFFD5D9E0),
borderStrong = Color(0xFFA0A5B3),
divider = Color(0xFFECEEF3),
focusRing = Color(0xFF2264FF),
scrim = Color(0x7A101322),
chart = listOf(Color(0xFF2264FF), Color(0xFF1F9F66), Color(0xFFE5761F), Color(0xFF6D4AFF), Color(0xFFC42A55), Color(0xFF0E8FA3))
)
private val PantrixPresetDark = PantrixColors(
primary = PantrixColor(
color = Color(0xFF598BFF), onColor = Color(0xFF05070A),
container = Color(0xFF182A56), onContainer = Color(0xFFBDD1FF)
),
success = PantrixColor(
color = Color(0xFF34C17E), onColor = Color(0xFF05070A),
container = Color(0xFF12301F), onContainer = Color(0xFFA6E5C6)
),
info = PantrixColor(
color = Color(0xFF5386FF), onColor = Color(0xFF05070A),
container = Color(0xFF16244A), onContainer = Color(0xFF8BADFF)
),
warning = PantrixColor(
color = Color(0xFFFA8A37), onColor = Color(0xFF05070A),
container = Color(0xFF2E1D0E), onContainer = Color(0xFFFFB77D)
),
danger = PantrixColor(
color = Color(0xFFF04770), onColor = Color(0xFF05070A),
container = Color(0xFF3A1420), onContainer = Color(0xFFFF7D9C)
),
neutral = PantrixColor(
color = Color(0xFFC3C8D4), onColor = Color(0xFF05070A),
container = Color(0xFF212839), onContainer = Color(0xFFF4F6FA)
),
background = Color(0xFF0B0E15),
surface = Color(0xFF151A26),
onSurface = Color(0xFFC3C8D4),
disabledContainer = Color(0xFF212839),
disabledContent = Color(0xFF4B5368),
textPrimary = Color(0xFFF4F6FA),
textSecondary = Color(0xFFC3C8D4),
textDisabled = Color(0xFF4B5368),
textInverse = Color(0xFF05070A),
border = Color(0xFF262D3D),
borderHover = Color(0xFF333B4E),
borderStrong = Color(0xFF4B5368),
divider = Color(0xFF1F2533),
focusRing = Color(0xFF85AAFF),
scrim = Color(0x9E000000),
chart = listOf(Color(0xFF5386FF), Color(0xFF34C17E), Color(0xFFFA8A37), Color(0xFF9B83FF), Color(0xFFF04770), Color(0xFF3CC4D6))
)
Then: PantrixTheme(preset = PantrixPreset, density = PantrixDensity.Comfortable)