mirror of
https://github.com/mihonapp/mihon.git
synced 2025-06-26 19:17:51 +02:00
Add Catppuccin theme (#2117)
Mocha for dark and Latte for light, mauve accent
This commit is contained in:
@ -22,6 +22,7 @@ The format is a modified version of [Keep a Changelog](https://keepachangelog.co
|
||||
- Option to keep read manga when clearing database ([@AwkwardPeak7](https://github.com/AwkwardPeak7)) ([#1979](https://github.com/mihonapp/mihon/pull/1979))
|
||||
- Add advanced option to always update manga title from source ([@FlaminSarge](https://github.com/FlaminSarge)) ([#1182](https://github.com/mihonapp/mihon/pull/1182))
|
||||
- Full predictive back support ([@AntsyLich](https://github.com/AntsyLich)) ([#2085](https://github.com/mihonapp/mihon/pull/2085))
|
||||
- Add Catppuccin theme (mocha for dark and latte for light, mauve accent) ([@claymorwan](https://github.com/claymorwan/)) ([#2117](https://github.com/mihonapp/mihon/pull/2117))
|
||||
|
||||
### Improved
|
||||
- Significantly improve browsing speed (near instantaneous) ([@AntsyLich](https://github.com/AntsyLich)) ([#1946](https://github.com/mihonapp/mihon/pull/1946))
|
||||
|
@ -6,6 +6,7 @@ import tachiyomi.i18n.MR
|
||||
enum class AppTheme(val titleRes: StringResource?) {
|
||||
DEFAULT(MR.strings.label_default),
|
||||
MONET(MR.strings.theme_monet),
|
||||
CATPPUCCIN(MR.strings.theme_catppuccin),
|
||||
GREEN_APPLE(MR.strings.theme_greenapple),
|
||||
LAVENDER(MR.strings.theme_lavender),
|
||||
MIDNIGHT_DUSK(MR.strings.theme_midnightdusk),
|
||||
|
@ -9,6 +9,7 @@ import androidx.compose.ui.platform.LocalContext
|
||||
import eu.kanade.domain.ui.UiPreferences
|
||||
import eu.kanade.domain.ui.model.AppTheme
|
||||
import eu.kanade.presentation.theme.colorscheme.BaseColorScheme
|
||||
import eu.kanade.presentation.theme.colorscheme.CatppuccinColorScheme
|
||||
import eu.kanade.presentation.theme.colorscheme.GreenAppleColorScheme
|
||||
import eu.kanade.presentation.theme.colorscheme.LavenderColorScheme
|
||||
import eu.kanade.presentation.theme.colorscheme.MidnightDuskColorScheme
|
||||
@ -77,6 +78,7 @@ private fun getThemeColorScheme(
|
||||
|
||||
private val colorSchemes: Map<AppTheme, BaseColorScheme> = mapOf(
|
||||
AppTheme.DEFAULT to TachiyomiColorScheme,
|
||||
AppTheme.CATPPUCCIN to CatppuccinColorScheme,
|
||||
AppTheme.GREEN_APPLE to GreenAppleColorScheme,
|
||||
AppTheme.LAVENDER to LavenderColorScheme,
|
||||
AppTheme.MIDNIGHT_DUSK to MidnightDuskColorScheme,
|
||||
|
@ -0,0 +1,103 @@
|
||||
package eu.kanade.presentation.theme.colorscheme
|
||||
|
||||
import androidx.compose.material3.darkColorScheme
|
||||
import androidx.compose.material3.lightColorScheme
|
||||
import androidx.compose.ui.graphics.Color
|
||||
|
||||
/**
|
||||
* Colors for Catppuccin theme
|
||||
* MIT License
|
||||
* Copyright (c) 2021 Catppuccin
|
||||
* https://catppuccin.com
|
||||
* M3 colors generated by Material Theme Builder (https://goo.gle/material-theme-builder-web)
|
||||
*
|
||||
* Key colors (dark):
|
||||
* Primary #CBA6F4
|
||||
* Secondary #CBA6F4
|
||||
* Tertiary #CBA6F4
|
||||
* Neutral #181825
|
||||
|
||||
* Key colors (light):
|
||||
* Primary #8839EF
|
||||
* Secondary #8839EF
|
||||
* Tertiary #8839EF
|
||||
* Neutral #E6E9EF
|
||||
*/
|
||||
internal object CatppuccinColorScheme : BaseColorScheme() {
|
||||
|
||||
override val darkScheme = darkColorScheme(
|
||||
primary = Color(0xFFCBA6F7),
|
||||
onPrimary = Color(0xFF11111B),
|
||||
primaryContainer = Color(0xFFCBA6F7),
|
||||
onPrimaryContainer = Color(0xFF11111B),
|
||||
secondary = Color(0xFFCBA6F7), // Unread badge
|
||||
onSecondary = Color(0xFF11111B), // Unread badge text
|
||||
secondaryContainer = Color(0xFF313244), // Navigation bar selector pill & progress indicator (remaining)
|
||||
onSecondaryContainer = Color(0xFFCBA6F7), // Navigation bar selector icon
|
||||
tertiary = Color(0xFFCBA6F7), // Volume and brightness bars, Downloaded badge
|
||||
onTertiary = Color(0xFF11111B), // Downloaded badge text
|
||||
tertiaryContainer = Color(0xFF1E1E2E),
|
||||
onTertiaryContainer = Color(0xFFCDD6F4),
|
||||
error = Color(0xFFF38BA8),
|
||||
onError = Color(0xFF11111B),
|
||||
errorContainer = Color(0xFFFF0558),
|
||||
onErrorContainer = Color(0xFFEF9FB4),
|
||||
background = Color(0xFF181825),
|
||||
onBackground = Color(0xFFCDD6F4),
|
||||
surface = Color(0xFF181825),
|
||||
onSurface = Color(0xFFCDD6F4),
|
||||
surfaceVariant = Color(0xFF1E1E2E), // Navigation bar background (ThemePrefWidget)
|
||||
onSurfaceVariant = Color(0xFFCDD6F4), // Button (unselected)
|
||||
outline = Color(0xFFCBA6F7),
|
||||
outlineVariant = Color(0xFF585B70), // Outlines for buttons
|
||||
scrim = Color(0xFF11111B),
|
||||
inverseSurface = Color(0xFFEFF1F5), // Snackbar or whatever they called
|
||||
inverseOnSurface = Color(0xFF4C4F69), // Snackbar text
|
||||
inversePrimary = Color(0xFF8839EF), // Snackbar accent
|
||||
surfaceDim = Color(0xFF181825),
|
||||
surfaceBright = Color(0xFF313244),
|
||||
surfaceContainerLowest = Color(0xFF181825),
|
||||
surfaceContainerLow = Color(0xFF1E1E2E), // Repo cards
|
||||
surfaceContainer = Color(0xFF1E1E2E),
|
||||
surfaceContainerHigh = Color(0xFF1E1E2E), // Filter menu
|
||||
surfaceContainerHighest = Color(0xFF313244), // Untoggleg button bg
|
||||
)
|
||||
|
||||
override val lightScheme = lightColorScheme(
|
||||
primary = Color(0xFF8839EF),
|
||||
onPrimary = Color(0xFFDCE0E8),
|
||||
primaryContainer = Color(0xFF8839EF),
|
||||
onPrimaryContainer = Color(0xFFDCE0E8),
|
||||
secondary = Color(0xFF8839EF), // Unread badge
|
||||
onSecondary = Color(0xFFDCE0E8), // Unread badge text
|
||||
secondaryContainer = Color(0xFFCDD0DA), // Navigation bar selector pill & progress indicator (remaining)
|
||||
onSecondaryContainer = Color(0xFF8839EF), // Navigation bar selector icon
|
||||
tertiary = Color(0xFF8839EF), // Volume and brightness bars, Downloaded badge
|
||||
onTertiary = Color(0xFFDCE0E8), // Downloaded badge text
|
||||
tertiaryContainer = Color(0xFFEFF1F5),
|
||||
onTertiaryContainer = Color(0xFF4C4F69),
|
||||
error = Color(0xFFD20F39),
|
||||
onError = Color(0xFFDCE0E8),
|
||||
errorContainer = Color(0xFF68001C),
|
||||
onErrorContainer = Color(0xFFD61C41),
|
||||
background = Color(0xFFE6E9EF),
|
||||
onBackground = Color(0xFF4C4F69),
|
||||
surface = Color(0xFFE6E9EF),
|
||||
onSurface = Color(0xFF4C4F69),
|
||||
surfaceVariant = Color(0xFFEFF1F5), // Navigation bar background (ThemePrefWidget)
|
||||
onSurfaceVariant = Color(0xFF4C4F69), // Button (unselected)
|
||||
outline = Color(0xFF8839EF),
|
||||
outlineVariant = Color(0xFFACB0BE), // Outlines for buttons
|
||||
scrim = Color(0xFFDCE0E8),
|
||||
inverseSurface = Color(0xFF1E1E2E), // Snackbar
|
||||
inverseOnSurface = Color(0xFFCDD6F4), // Snackbar text
|
||||
inversePrimary = Color(0xFFCBA6F7), // Snackbar accent
|
||||
surfaceDim = Color(0xFFE6E9EF),
|
||||
surfaceBright = Color(0xFFCDD0DA),
|
||||
surfaceContainerLowest = Color(0xFFE6E9EF),
|
||||
surfaceContainerLow = Color(0xFFEFF1F5), // Repo cards
|
||||
surfaceContainer = Color(0xFFEFF1F5), // Navigation bar background
|
||||
surfaceContainerHigh = Color(0xFFEFF1F5), // Filter menu
|
||||
surfaceContainerHighest = Color(0xFFCDD0DA), // Untoggleg bg
|
||||
)
|
||||
}
|
@ -30,6 +30,7 @@ class ThemingDelegateImpl : ThemingDelegate {
|
||||
|
||||
private val themeResources: Map<AppTheme, Int> = mapOf(
|
||||
AppTheme.MONET to R.style.Theme_Tachiyomi_Monet,
|
||||
AppTheme.CATPPUCCIN to R.style.Theme_Tachiyomi_Catppuccin,
|
||||
AppTheme.GREEN_APPLE to R.style.Theme_Tachiyomi_GreenApple,
|
||||
AppTheme.LAVENDER to R.style.Theme_Tachiyomi_Lavender,
|
||||
AppTheme.MIDNIGHT_DUSK to R.style.Theme_Tachiyomi_MidnightDusk,
|
||||
|
@ -91,6 +91,45 @@
|
||||
<!-- Monet theme only support S+ -->
|
||||
<style name="Theme.Tachiyomi.Monet" />
|
||||
|
||||
<!--== Catppuccin Theme ==-->
|
||||
<style name="Theme.Tachiyomi.Catppuccin">
|
||||
<!-- Theme Colors -->
|
||||
<item name="colorPrimary">@color/catppuccin_primary</item>
|
||||
<item name="colorOnPrimary">@color/catppuccin_onPrimary</item>
|
||||
<item name="colorPrimaryContainer">@color/catppuccin_primaryContainer</item>
|
||||
<item name="colorOnPrimaryContainer">@color/catppuccin_onPrimaryContainer</item>
|
||||
<item name="colorPrimaryInverse">@color/catppuccin_inversePrimary</item>
|
||||
<item name="colorSecondary">@color/catppuccin_secondary</item>
|
||||
<item name="colorOnSecondary">@color/catppuccin_onSecondary</item>
|
||||
<item name="colorSecondaryContainer">@color/catppuccin_secondaryContainer</item>
|
||||
<item name="colorOnSecondaryContainer">@color/catppuccin_onSecondaryContainer</item>
|
||||
<item name="colorTertiary">@color/catppuccin_tertiary</item>
|
||||
<item name="colorOnTertiary">@color/catppuccin_onTertiary</item>
|
||||
<item name="colorTertiaryContainer">@color/catppuccin_tertiaryContainer</item>
|
||||
<item name="colorOnTertiaryContainer">@color/catppuccin_onTertiaryContainer</item>
|
||||
<item name="android:colorBackground">@color/catppuccin_background</item>
|
||||
<item name="colorOnBackground">@color/catppuccin_onBackground</item>
|
||||
<item name="colorSurface">@color/catppuccin_surface</item>
|
||||
<item name="colorOnSurface">@color/catppuccin_onSurface</item>
|
||||
<item name="colorSurfaceVariant">@color/catppuccin_surfaceVariant</item>
|
||||
<item name="colorOnSurfaceVariant">@color/catppuccin_onSurfaceVariant</item>
|
||||
<item name="colorSurfaceInverse">@color/catppuccin_inverseSurface</item>
|
||||
<item name="colorOnSurfaceInverse">@color/catppuccin_inverseOnSurface</item>
|
||||
<item name="colorError">@color/catppuccin_error</item>
|
||||
<item name="colorOnError">@color/catppuccin_onError</item>
|
||||
<item name="colorErrorContainer">@color/catppuccin_errorContainer</item>
|
||||
<item name="colorOnErrorContainer">@color/catppuccin_onErrorContainer</item>
|
||||
<item name="colorOutline">@color/catppuccin_outline</item>
|
||||
<item name="colorOutlineVariant">@color/catppuccin_outlineVariant</item>
|
||||
<item name="scrimBackground">@color/catppuccin_scrim</item>
|
||||
<item name="colorSurfaceBright">@color/catppuccin_surfaceBright</item>
|
||||
<item name="colorSurfaceDim">@color/catppuccin_surfaceDim</item>
|
||||
<item name="colorSurfaceContainer">@color/catppuccin_surfaceContainer</item>
|
||||
<item name="colorSurfaceContainerHigh">@color/catppuccin_surfaceContainerHigh</item>
|
||||
<item name="colorSurfaceContainerHighest">@color/catppuccin_surfaceContainerHighest</item>
|
||||
<item name="colorSurfaceContainerLow">@color/catppuccin_surfaceContainerLow</item>
|
||||
<item name="colorSurfaceContainerLowest">@color/catppuccin_surfaceContainerLowest</item>
|
||||
</style>
|
||||
<!--== Green Apple Theme ==-->
|
||||
<style name="Theme.Tachiyomi.GreenApple">
|
||||
<!-- Theme Colors -->
|
||||
|
@ -228,6 +228,7 @@
|
||||
<string name="theme_light">Light</string>
|
||||
<string name="theme_dark">Dark</string>
|
||||
<string name="theme_monet">Dynamic</string>
|
||||
<string name="theme_catppuccin">Catppuccin</string>
|
||||
<string name="theme_greenapple">Green Apple</string>
|
||||
<string name="theme_lavender">Lavender</string>
|
||||
<string name="theme_midnightdusk">Midnight Dusk</string>
|
||||
|
@ -0,0 +1,51 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
~ Colors for Catppuccin theme
|
||||
~ MIT License
|
||||
~ Copyright (c) 2021 Catppuccin
|
||||
~ https://catppuccin.com
|
||||
~ M3 colors generated by Material Theme Builder (https://goo.gle/material-theme-builder-web)
|
||||
~
|
||||
~ Key colors:
|
||||
~ Primary #CBA6F7
|
||||
~ Secondary #CBA6F4
|
||||
~ Tertiary #CBA6F4
|
||||
~ Neutral #181825
|
||||
-->
|
||||
<resources>
|
||||
<color name="catppuccin_primary">#CBA6F7</color>
|
||||
<color name="catppuccin_onPrimary">#11111B</color>
|
||||
<color name="catppuccin_primaryContainer">#CBA6F7</color>
|
||||
<color name="catppuccin_onPrimaryContainer">#11111B</color>
|
||||
<color name="catppuccin_secondary">#CBA6F7</color>
|
||||
<color name="catppuccin_onSecondary">#11111B</color>
|
||||
<color name="catppuccin_secondaryContainer">#313244</color>
|
||||
<color name="catppuccin_onSecondaryContainer">#CBA6F7</color>
|
||||
<color name="catppuccin_tertiary">#CBA6F7</color>
|
||||
<color name="catppuccin_onTertiary">#11111B</color>
|
||||
<color name="catppuccin_tertiaryContainer">#1E1E2E</color>
|
||||
<color name="catppuccin_onTertiaryContainer">#CDD6F4</color>
|
||||
<color name="catppuccin_error">#F38BA8</color>
|
||||
<color name="catppuccin_onError">#11111B</color>
|
||||
<color name="catppuccin_errorContainer">#FFFF0558</color>
|
||||
<color name="catppuccin_onErrorContainer">#EF9FB4</color>
|
||||
<color name="catppuccin_background">#181825</color>
|
||||
<color name="catppuccin_onBackground">#CDD6F4</color>
|
||||
<color name="catppuccin_surface">#181825</color>
|
||||
<color name="catppuccin_onSurface">#CDD6F4</color>
|
||||
<color name="catppuccin_surfaceVariant">#1E1E2E</color>
|
||||
<color name="catppuccin_onSurfaceVariant">#CDD6F4</color>
|
||||
<color name="catppuccin_outline">#CBA6F7</color>
|
||||
<color name="catppuccin_outlineVariant">#585B70</color>
|
||||
<color name="catppuccin_scrim">#FF11111B</color>
|
||||
<color name="catppuccin_inverseSurface">#EFF1F5</color>
|
||||
<color name="catppuccin_inverseOnSurface">#4C4F69</color>
|
||||
<color name="catppuccin_inversePrimary">#8839EF</color>
|
||||
<color name="catppuccin_surfaceDim">#181825</color>
|
||||
<color name="catppuccin_surfaceBright">#313244</color>
|
||||
<color name="catppuccin_surfaceContainerLowest">#FF181825</color>
|
||||
<color name="catppuccin_surfaceContainerLow">#1E1E2E</color>
|
||||
<color name="catppuccin_surfaceContainer">#1E1E2E</color>
|
||||
<color name="catppuccin_surfaceContainerHigh">#1E1E2E</color>
|
||||
<color name="catppuccin_surfaceContainerHighest">#313244</color>
|
||||
</resources>
|
51
presentation-core/src/main/res/values/colors_catppuccin.xml
Normal file
51
presentation-core/src/main/res/values/colors_catppuccin.xml
Normal file
@ -0,0 +1,51 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
~ Colors for Catppuccin theme
|
||||
~ MIT License
|
||||
~ Copyright (c) 2021 Catppuccin
|
||||
~ https://catppuccin.com
|
||||
~ M3 colors generated by Material Theme Builder (https://goo.gle/material-theme-builder-web)
|
||||
~
|
||||
~ Key colors:
|
||||
~ Primary #8839EF
|
||||
~ Secondary #8839EF
|
||||
~ Tertiary #8839EF
|
||||
~ Neutral #E6E9EF
|
||||
-->
|
||||
<resources>
|
||||
<color name="catppuccin_primary">#8839EF</color>
|
||||
<color name="catppuccin_onPrimary">#DCE0E8</color>
|
||||
<color name="catppuccin_primaryContainer">#8839EF</color>
|
||||
<color name="catppuccin_onPrimaryContainer">#DCE0E8</color>
|
||||
<color name="catppuccin_secondary">#8839EF</color>
|
||||
<color name="catppuccin_onSecondary">#DCE0E8</color>
|
||||
<color name="catppuccin_secondaryContainer">#CDD0DA</color>
|
||||
<color name="catppuccin_onSecondaryContainer">#8839EF</color>
|
||||
<color name="catppuccin_tertiary">#8839EF</color>
|
||||
<color name="catppuccin_onTertiary">#DCE0E8</color>
|
||||
<color name="catppuccin_tertiaryContainer">#EFF1F5</color>
|
||||
<color name="catppuccin_onTertiaryContainer">#CDD6F4</color>
|
||||
<color name="catppuccin_error">#D20F39</color>
|
||||
<color name="catppuccin_onError">#DCE0E8</color>
|
||||
<color name="catppuccin_errorContainer">#FF68001C</color>
|
||||
<color name="catppuccin_onErrorContainer">#D61C41</color>
|
||||
<color name="catppuccin_background">#E6E9EF</color>
|
||||
<color name="catppuccin_onBackground">#4C4F69</color>
|
||||
<color name="catppuccin_surface">#E6E9EF</color>
|
||||
<color name="catppuccin_onSurface">#4C4F69</color>
|
||||
<color name="catppuccin_surfaceVariant">#EFF1F5</color>
|
||||
<color name="catppuccin_onSurfaceVariant">#4C4F69</color>
|
||||
<color name="catppuccin_outline">#8839EF</color>
|
||||
<color name="catppuccin_outlineVariant">#ACB0BE</color>
|
||||
<color name="catppuccin_scrim">#FFDCE0E8</color>
|
||||
<color name="catppuccin_inverseSurface">#1E1E2E</color>
|
||||
<color name="catppuccin_inverseOnSurface">#CDD6F4</color>
|
||||
<color name="catppuccin_inversePrimary">#CBA6F7</color>
|
||||
<color name="catppuccin_surfaceDim">#E6E9EF</color>
|
||||
<color name="catppuccin_surfaceBright">#CDD0DA</color>
|
||||
<color name="catppuccin_surfaceContainerLowest">#FFE6E9EF</color>
|
||||
<color name="catppuccin_surfaceContainerLow">#EFF1F5</color>
|
||||
<color name="catppuccin_surfaceContainer">#EFF1F5</color>
|
||||
<color name="catppuccin_surfaceContainerHigh">#EFF1F5</color>
|
||||
<color name="catppuccin_surfaceContainerHighest">#CDD0DA</color>
|
||||
</resources>
|
Reference in New Issue
Block a user