Pith - kerf
kerf/app/src/main/java/com/vgmlr/kerf/KerfTheme.kt [2.4 kb]
Modified: 23:09:03 55 026 (13 May 026)
17 Days Ago
package com.vgmlr.kerf

import androidx.activity.ComponentActivity
import androidx.activity.SystemBarStyle
import androidx.activity.enableEdgeToEdge
import androidx.compose.material3.*
import androidx.compose.runtime.*
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalView
import androidx.compose.ui.res.colorResource
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp

object KerfDimens {
    val PaddingLarge = 16.dp
    val TextSizeMedium = 14.sp
    val TextSizeLarge = 16.sp
    val TextSizeTitle = 18.sp
}

data class KerfColors(
    val appTopbar: Color,
    val noteHeaderMain: Color,
    val noteHeader: Color,
    val alertBackground: Color,
    val alertText: Color,
    val menuBackground: Color,
    val menuText: Color
)

val LocalKerfColors = staticCompositionLocalOf<KerfColors?> { null }

@Composable
fun KerfTheme(
    content: @Composable () -> Unit
) {
    val kerfColors = KerfColors(
        appTopbar = colorResource(id = R.color.app_topbar),
        noteHeaderMain = colorResource(id = R.color.note_header_main),
        noteHeader = colorResource(id = R.color.note_header),
        alertBackground = colorResource(id = R.color.alert_background),
        alertText = colorResource(id = R.color.alert_text),
        menuBackground = colorResource(id = R.color.menu_background),
        menuText = colorResource(id = R.color.menu_text)
    )

    val colors = darkColorScheme(
        primary = colorResource(id = R.color.primary_brand),
        onPrimary = colorResource(id = R.color.note_title_text),
        background = colorResource(id = R.color.app_background),
        onBackground = colorResource(id = R.color.note_content_text),
        surface = colorResource(id = R.color.note_background),
        onSurface = colorResource(id = R.color.note_content_text),
        surfaceVariant = colorResource(id = R.color.note_background),
        onSurfaceVariant = colorResource(id = R.color.note_content_text)
    )

    val view = LocalView.current
    if (!view.isInEditMode) {
        SideEffect {
            (view.context as? ComponentActivity)?.enableEdgeToEdge(
                statusBarStyle = SystemBarStyle.auto(Color.Transparent.hashCode(), Color.Transparent.hashCode()) { true }
            )
        }
    }

    CompositionLocalProvider(LocalKerfColors provides kerfColors) {
        MaterialTheme(colorScheme = colors, content = content)
    }
}
Updates
Shim - Android 70.026.1
Wedge - Linux 68.026.1
Wedge - Android 68.026.1
Taper - Linux 64.026.1
Ayh Extension - Chrome 63.026.1
Dev
TVShow (227) 'CSA'
TVShow (228) 'APT'
TVProgram (83) 'BXT'
Miter Update(s)
Shim (Dictation)

Menu
Calendar
Project Tin (024/029)
Miter
RSS Feed
User Avatar
@vgmlr
=SUM(parts)