Compare commits
4
Commits
dev
...
nyra/orchid-theme
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0cb8a59a3d | ||
|
|
52f3f75658 | ||
|
|
1a6f9cc10b | ||
|
|
2865456761 |
@@ -446,6 +446,31 @@ object BrandPalettes {
|
||||
ink = Color(0xFFFAE6EE),
|
||||
paper = Color(0xFFFFD4E1),
|
||||
)
|
||||
|
||||
/**
|
||||
* Orchid — the phone keyboard's palette, ported (2026-09-27).
|
||||
*
|
||||
* Sampled from the keyboard's own theme rather than re-invented, so the app
|
||||
* wears the same look as the keyboard it is typed on: the keyboard's page
|
||||
* colour becomes the background, its letter pink the soft accent, the
|
||||
* alternate-symbol violet the secondary, and the activated-key violet the
|
||||
* filled-chip accent. The tertiary keeps the keyboard's off-peak gauge blue
|
||||
* and `danger` its peak pink, so the two state colours the keyboard already
|
||||
* speaks stay meaningful in the app.
|
||||
*/
|
||||
val Orchid = darkBrand(
|
||||
background = Color(0xFF100A1C), // keyboard `colorKeyboard`
|
||||
panel = Color(0xFF1D1330), // one step off the page for elevated panels
|
||||
relay = Color(0xFFFF8AD8), // keyboard `colorLabel` (pink)
|
||||
purple = Color(0xFFC67DFF), // keyboard `colorSubLabel` (violet)
|
||||
electric = Color(0xFFA855F7), // keyboard `colorKeyActivated`
|
||||
cyan = Color(0xFF00E5FF), // keyboard off-peak gauge blue
|
||||
ink = Color(0xFFF9F4FF),
|
||||
paper = Color(0xFFEFE7FF),
|
||||
muted = Color(0xFFB0A2CC),
|
||||
dim = Color(0xFF7A6E96),
|
||||
danger = Color(0xFFFF2D95), // keyboard peak pink
|
||||
)
|
||||
}
|
||||
|
||||
/** Whether a theme honors a separate light/dark mode toggle, or is a fixed look. */
|
||||
@@ -568,6 +593,17 @@ object AppThemes {
|
||||
swatch = listOf(Color(0xFF1A0F15), Color(0xFFE86A9C), Color(0xFFFFD4E1)),
|
||||
)
|
||||
|
||||
/** Orchid — the phone keyboard's own theme, carried into the app. */
|
||||
val Orchid = AppTheme(
|
||||
id = "orchid",
|
||||
label = "Orchid",
|
||||
description = "The phone keyboard's palette — pink and violet on deep violet-black",
|
||||
mode = ThemeMode.DARK_ONLY,
|
||||
darkPalette = BrandPalettes.Orchid,
|
||||
lightPalette = BrandPalettes.Orchid,
|
||||
swatch = listOf(Color(0xFF100A1C), Color(0xFFA855F7), Color(0xFFFF8AD8)),
|
||||
)
|
||||
|
||||
/** All themes in picker order: brand first, then the Nous baselines. */
|
||||
val ALL: List<AppTheme> = listOf(
|
||||
HermesRelay,
|
||||
@@ -578,6 +614,7 @@ object AppThemes {
|
||||
Mono,
|
||||
Cyberpunk,
|
||||
Rose,
|
||||
Orchid,
|
||||
)
|
||||
|
||||
private val byId = ALL.associateBy { it.id }
|
||||
|
||||
@@ -331,6 +331,7 @@ class StoreScreenshotTest {
|
||||
@Test fun g_mono() = capture("gallery_mono", "mono") { ChatScene() }
|
||||
@Test fun g_cyberpunk() = capture("gallery_cyberpunk", "cyberpunk") { ChatScene() }
|
||||
@Test fun g_rose() = capture("gallery_rose", "rose") { ChatScene() }
|
||||
@Test fun g_orchid() = capture("gallery_orchid", "orchid") { ChatScene() }
|
||||
}
|
||||
|
||||
// ════════════════════════════════════════════════════════════════════════════
|
||||
|
||||
Reference in New Issue
Block a user