package eu.kanade.presentation.theme.colorscheme

import androidx.compose.material3.darkColorScheme
import androidx.compose.material3.lightColorScheme
import androidx.compose.ui.graphics.Color

/**
 * Colors for Mocha theme
 * M3 colors generated by Material Theme Builder (https://goo.gle/material-theme-builder-web)
 *
 * Key colors:
 * Primary 0xFFBF9270
 * Secondary 0xFFFFEDDB
 * Tertiary 0xFFE8FCD1
 * Neutral 0xFF926441
 * Neutral Variant 0xFFEDCDBB
 */
internal object MochaColorScheme : BaseColorScheme() {

    override val darkScheme = darkColorScheme(
        primary = Color(0xFFFFB77F),
        onPrimary = Color(0xFF4E2600),
        primaryContainer = Color(0xFF6C3A08),
        onPrimaryContainer = Color(0xFFFFDCC3),
        secondary = Color(0xFFF6BC70), // Unread badge
        onSecondary = Color(0xFF462B00), // Unread badge text
        secondaryContainer = Color(0xFF643F00), // Navigation bar selector pill & progress indicator (remaining)
        onSecondaryContainer = Color(0xFFFFDDB6), // Navigation bar selector icon
        tertiary = Color(0xFFAED18D), // Downloaded badge
        onTertiary = Color(0xFF1C3704), // Downloaded badge text
        tertiaryContainer = Color(0xFF314E19),
        onTertiaryContainer = Color(0xFFC9EEA7),
        error = Color(0xFFFFB4AB),
        onError = Color(0xFF690005),
        errorContainer = Color(0xFF93000A),
        onErrorContainer = Color(0xFFFFDAD6),
        background = Color(0xFF19120C),
        onBackground = Color(0xFFEFDFD6),
        surface = Color(0xFF19120D),
        onSurface = Color(0xFFF0DFD6),
        surfaceVariant = Color(0xFF52443C), // Navigation bar background (ThemePrefWidget)
        onSurfaceVariant = Color(0xFFD7C3B8),
        outline = Color(0xFF9F8D83),
        outlineVariant = Color(0xFF52443C),
        scrim = Color(0xFF000000),
        inverseSurface = Color(0xFFF0DFD6),
        inverseOnSurface = Color(0xFF382F28),
        inversePrimary = Color(0xFF89511F),
        surfaceDim = Color(0xFF19120D),
        surfaceBright = Color(0xFF413731),
        surfaceContainerLowest = Color(0xFF140D08),
        surfaceContainerLow = Color(0xFF221A14),
        surfaceContainer = Color(0xFF261E18), // Navigation bar background
        surfaceContainerHigh = Color(0xFF312822),
        surfaceContainerHighest = Color(0xFF3C332D),
    )

    override val lightScheme = lightColorScheme(
        primary = Color(0xFF89511F),
        onPrimary = Color(0xFFFFFFFF),
        primaryContainer = Color(0xFFFFDCC3),
        onPrimaryContainer = Color(0xFF2F1500),
        secondary = Color(0xFF815511), // Unread badge
        onSecondary = Color(0xFFFFFFFF), // Unread badge text
        secondaryContainer = Color(0xFFFFDDB6), // Navigation bar selector pill & progress indicator (remaining)
        onSecondaryContainer = Color(0xFF2A1800), // Navigation bar selector icon
        tertiary = Color(0xFF48672E), // Downloaded badge
        onTertiary = Color(0xFFFFFFFF), // Downloaded badge text
        tertiaryContainer = Color(0xFFC9EEA7),
        onTertiaryContainer = Color(0xFF0C2000),
        error = Color(0xFFBA1A1A),
        onError = Color(0xFFFFFFFF),
        errorContainer = Color(0xFFFFDAD6),
        onErrorContainer = Color(0xFF410002),
        background = Color(0xFFFFF8F5),
        onBackground = Color(0xFF221A14),
        surface = Color(0xFFFFF8F5),
        onSurface = Color(0xFF221A14),
        surfaceVariant = Color(0xFFF4DED3), // Navigation bar background (ThemePrefWidget)
        onSurfaceVariant = Color(0xFF52443C),
        outline = Color(0xFF84746A),
        outlineVariant = Color(0xFFD7C3B8),
        scrim = Color(0xFF000000),
        inverseSurface = Color(0xFF382F28),
        inverseOnSurface = Color(0xFFFEEEE4),
        inversePrimary = Color(0xFFFFB77F),
        surfaceDim = Color(0xFFE7D7CE),
        surfaceBright = Color(0xFFFFF8F5),
        surfaceContainerLowest = Color(0xFFFFFFFF),
        surfaceContainerLow = Color(0xFFFFF1E9),
        surfaceContainer = Color(0xFFFBEBE1), // Navigation bar background
        surfaceContainerHigh = Color(0xFFF5E5DC),
        surfaceContainerHighest = Color(0xFFF0DFD6),
    )
}
