@file:Suppress("HardCodedStringLiteral", "unused")

package eu.gaudian.translator.ui.theme.themes


import androidx.compose.ui.graphics.Color
import eu.gaudian.translator.ui.theme.AppTheme
import eu.gaudian.translator.ui.theme.ThemeColorSet

// Official Nord Color Palette
private val nord0 = Color(0xFF2E3440) // Polar Night
private val nord1 = Color(0xFF3B4252)
private val nord2 = Color(0xFF434C5E)
private val nord3 = Color(0xFF4C566A)
private val nord4 = Color(0xFFD8DEE9) // Snow Storm
private val nord5 = Color(0xFFE5E9F0)
private val nord6 = Color(0xFFECEFF4)
private val nord7 = Color(0xFF8FBCBB) // Frost
private val nord8 = Color(0xFF88C0D0)
private val nord9 = Color(0xFF81A1C1)
private val nord10 = Color(0xFF5E81AC)
private val nord11 = Color(0xFFBF616A) // Aurora
private val nord12 = Color(0xFFD08770)
private val nord13 = Color(0xFFEBCB8B)
private val nord14 = Color(0xFFA3BE8C)
private val nord15 = Color(0xFFB48EAD)


val NordTheme = AppTheme(
    name = "Nord",
    lightColors = ThemeColorSet(
        primary = nord10,
        secondary = nord8,
        tertiary = nord15,
        primaryContainer = Color(0xFFDCE3F9),
        secondaryContainer = Color(0xFFD0EAF3),
        tertiaryContainer = Color(0xFFF0DBEB),
        onPrimary = Color.White,
        onSecondary = nord0,
        onTertiary = nord0,
        onPrimaryContainer = nord1,
        onSecondaryContainer = nord1,
        onTertiaryContainer = nord1,
        error = nord11,
        onError = Color.White,
        errorContainer = Color(0xFFF9DEDC),
        onErrorContainer = Color(0xFF410E0B),
        background = nord6, // Crisper, lighter background
        onBackground = nord0,
        surface = Color.White, // Pure white surface for a frosty, clean look
        onSurface = nord0,
        surfaceVariant = nord5,
        onSurfaceVariant = nord2,
        outline = nord3,
        outlineVariant = nord4,
        scrim = Color.Black,
        inverseSurface = nord1,
        inverseOnSurface = nord5,
        inversePrimary = nord9,
        surfaceDim = nord4,
        surfaceBright = nord6,
        surfaceContainerLowest = Color.White,
        surfaceContainerLow = nord6,
        surfaceContainer = nord5,
        surfaceContainerHigh = nord4,
        surfaceContainerHighest = Color(0xFFD3DAE4) // Slightly darker for top layer
    ),
    darkColors = ThemeColorSet(
        primary = nord9,
        secondary = nord8,
        tertiary = nord15,
        primaryContainer = nord3,
        secondaryContainer = nord3,
        tertiaryContainer = nord2,
        onPrimary = nord0, // Dark text for better contrast
        onSecondary = nord0, // Dark text for better contrast
        onTertiary = nord0, // Dark text for better contrast
        onPrimaryContainer = nord5,
        onSecondaryContainer = nord5,
        onTertiaryContainer = nord5,
        error = nord11,
        onError = nord1,
        errorContainer = Color(0xFF93000A),
        onErrorContainer = Color(0xFFFFDAD6),
        background = nord0,
        onBackground = nord5,
        surface = nord1, // Lifts surfaces off the background for more depth
        onSurface = nord5,
        surfaceVariant = nord2,
        onSurfaceVariant = nord4,
        outline = nord3,
        outlineVariant = nord2,
        scrim = Color.Black,
        inverseSurface = nord5,
        inverseOnSurface = nord1,
        inversePrimary = nord10,
        surfaceDim = nord0,
        surfaceBright = nord2,
        surfaceContainerLowest = Color(0xFF191C23), // Deepest polar night
        surfaceContainerLow = nord0,
        surfaceContainer = nord1,
        surfaceContainerHigh = nord2,
        surfaceContainerHighest = nord3
    )
)