package com.vgmlr.grain
import androidx.compose.foundation.BorderStroke
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.darkColorScheme
import androidx.compose.runtime.Composable
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.text.font.FontFamily
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
internal val PAGE_BG = Color(0xFF111111)
internal val PAGE_INK = Color(0xFFEFEFEF)
internal val BAR_BG = Color(0xFF486860)
internal val BAR_INK = Color(0xFFFFFFFF)
internal val NUM_BG = Color(0xFF486860)
internal val NUM_INK = Color(0xFFFFFFFF)
internal val OP_BG = Color(0xFF272A30)
internal val OP_INK = Color(0xFFDFDFDF)
internal val MEM_BG = Color(0xFF16181C)
internal val PLATE_BG = Color(0xFF272A30)
internal val TITLE_IDLE = Color(0xFFFFFFFF)
internal val TITLE_LIVE = Color(0xFFFFFFFF)
internal val MUTED = Color(0xFF868D97)
internal val MENU_BG = Color(0xFF1F2226)
internal val EDGE = BorderStroke(1.dp, MUTED.copy(alpha = 0.30f))
internal val BTN_RADIUS = 6.dp
internal val BAR_EDGE = 12.dp
internal val STACK_BTN = 48.dp
internal val STACK_GAP = 8.dp
internal val STACK_ICON = 28.dp
internal val TOP_BAR_H = STACK_BTN + STACK_GAP * 2
internal val FIELD_GAP = 24.dp
internal val KEYPAD_BOTTOM = 12.dp
internal val TITLE_FS = 17.sp
internal val TITLE_TRACK = 1.4.sp
internal val FIELD_FS = 42.sp
internal val HISTORY_FS = 20.sp
internal val UNIT_FS = 18.sp
internal val UNIT_LIST_FS = 16.sp
internal val KEY_FS = 28.sp
internal val KEY_FS_MINOR = (KEY_FS.value - 4).sp
internal const val HISTORY_ALPHA = 0.5f
internal const val UNFOCUS_ALPHA = 0.6f
internal const val DISABLED_ALPHA = 0.3f
internal fun digitsFont(d: Digits): FontFamily =
if (d == Digits.MONO) FontFamily.Monospace else FontFamily.SansSerif
@Composable
fun GrainTheme(content: @Composable () -> Unit) = MaterialTheme(
colorScheme = darkColorScheme(
background = PAGE_BG,
surface = PAGE_BG,
onBackground = PAGE_INK,
onSurface = PAGE_INK
),
content = content
)