feat(desktop): bring the old Nous palette back as Nous Alt
#90587 replaced the bundled Nous with a GitHub-theme fork. The earlier glass-and-cream palette stays available under its own name; the default does not change.
This commit is contained in:
committed by
brooklyn!
parent
0a171fffef
commit
253dde4b13
@@ -1,6 +1,6 @@
|
||||
import { describe, expect, it } from 'vitest'
|
||||
|
||||
import { BUILTIN_THEME_LIST, DEFAULT_TYPOGRAPHY, EMOJI_FALLBACK } from './presets'
|
||||
import { BUILTIN_THEMES, BUILTIN_THEME_LIST, DEFAULT_SKIN_NAME, DEFAULT_TYPOGRAPHY, EMOJI_FALLBACK, nousAltTheme } from './presets'
|
||||
|
||||
// #40364: none of the UI text/mono fonts carry emoji glyphs, so every font
|
||||
// stack must end with a color-emoji fallback or emoji render as tofu on
|
||||
@@ -31,3 +31,15 @@ describe('theme typography emoji fallback (#40364)', () => {
|
||||
expect(EMOJI_FALLBACK).toContain('Noto Color Emoji')
|
||||
})
|
||||
})
|
||||
|
||||
// The pre-GitHub Nous palette stays available as nous-alt; the default name
|
||||
// still means GitHub chrome + brand blue.
|
||||
describe('nous-alt is the retired Nous, not the default', () => {
|
||||
it('is registered under its own name and leaves nous as the default', () => {
|
||||
expect(DEFAULT_SKIN_NAME).toBe('nous')
|
||||
expect(BUILTIN_THEMES['nous-alt']).toBe(nousAltTheme)
|
||||
expect(BUILTIN_THEMES.nous).not.toBe(nousAltTheme)
|
||||
expect(nousAltTheme.darkColors?.background).toBe('#0D2F86')
|
||||
expect(BUILTIN_THEMES.nous.darkColors?.background).not.toBe(nousAltTheme.darkColors?.background)
|
||||
})
|
||||
})
|
||||
|
||||
@@ -15,6 +15,9 @@
|
||||
*
|
||||
* Re-convert from the upstream extension rather than hand-editing hexes; hand
|
||||
* edits drift from upstream silently and can't be re-derived.
|
||||
*
|
||||
* `nous-alt` is the hand-authored Nous from before that fork: glass-tinted
|
||||
* light and cream-on-navy dark. Not a marketplace theme, and not the default.
|
||||
*/
|
||||
|
||||
import type { DesktopTheme, DesktopThemeTypography } from './types'
|
||||
@@ -586,7 +589,82 @@ export const solarizedTheme: DesktopTheme = {
|
||||
}
|
||||
}
|
||||
|
||||
/** Warm crimson and bronze — forge vibes. Matches the CLI ares skin. */
|
||||
const NOUS_ALT_BLUE = '#0053FD'
|
||||
const NOUS_ALT_NAVY = '#1540B1'
|
||||
const NOUS_ALT_CREAM = '#FFE6CB'
|
||||
|
||||
const nousAltTint = (pct: number) => `color-mix(in srgb, ${NOUS_ALT_BLUE} ${pct}%, #FFFFFF)`
|
||||
const nousAltTintTransparent = (pct: number) => `color-mix(in srgb, ${NOUS_ALT_BLUE} ${pct}%, transparent)`
|
||||
|
||||
/**
|
||||
* Nous Alt — the hand-authored Nous from before the GitHub fork. Light is
|
||||
* glass neutrals with brand blue; dark is cream on mission-blue.
|
||||
*/
|
||||
export const nousAltTheme: DesktopTheme = {
|
||||
name: 'nous-alt',
|
||||
label: 'Nous Alt',
|
||||
description: 'Glass neutrals, cream on mission-blue',
|
||||
colors: {
|
||||
background: '#F8FAFF',
|
||||
foreground: '#17171A',
|
||||
card: '#FFFFFF',
|
||||
cardForeground: '#17171A',
|
||||
muted: nousAltTint(5),
|
||||
mutedForeground: '#666678',
|
||||
popover: '#FFFFFF',
|
||||
popoverForeground: '#17171A',
|
||||
primary: NOUS_ALT_BLUE,
|
||||
primaryForeground: '#FCFCFC',
|
||||
secondary: nousAltTint(7),
|
||||
secondaryForeground: '#242432',
|
||||
accent: nousAltTint(10),
|
||||
accentForeground: '#202030',
|
||||
border: nousAltTintTransparent(22),
|
||||
input: nousAltTintTransparent(30),
|
||||
ring: NOUS_ALT_BLUE,
|
||||
midground: NOUS_ALT_BLUE,
|
||||
composerRing: NOUS_ALT_BLUE,
|
||||
destructive: '#C72E4D',
|
||||
destructiveForeground: '#FFFFFF',
|
||||
sidebarBackground: '#F3F7FF',
|
||||
sidebarBorder: nousAltTintTransparent(18),
|
||||
userBubble: nousAltTint(6),
|
||||
userBubbleBorder: nousAltTintTransparent(24)
|
||||
},
|
||||
darkColors: {
|
||||
background: '#0D2F86',
|
||||
foreground: NOUS_ALT_CREAM,
|
||||
card: '#12378F',
|
||||
cardForeground: NOUS_ALT_CREAM,
|
||||
muted: '#183F9A',
|
||||
mutedForeground: '#B5C7F3',
|
||||
popover: '#123A96',
|
||||
popoverForeground: NOUS_ALT_CREAM,
|
||||
primary: NOUS_ALT_CREAM,
|
||||
primaryForeground: '#0D2F86',
|
||||
secondary: '#1B45A4',
|
||||
secondaryForeground: '#E0E8FF',
|
||||
accent: NOUS_ALT_NAVY,
|
||||
accentForeground: '#F0F4FF',
|
||||
border: '#3158AD',
|
||||
input: '#0B2566',
|
||||
ring: NOUS_ALT_CREAM,
|
||||
midground: NOUS_ALT_BLUE,
|
||||
composerRing: NOUS_ALT_CREAM,
|
||||
destructive: '#C0473A',
|
||||
destructiveForeground: '#FEF2F2',
|
||||
sidebarBackground: '#09286F',
|
||||
sidebarBorder: '#234A9C',
|
||||
userBubble: '#143B91',
|
||||
userBubbleBorder: '#3A63BD'
|
||||
},
|
||||
typography: {
|
||||
fontSans: SYSTEM_SANS,
|
||||
fontMono: SYSTEM_MONO,
|
||||
fontUrl: 'https://fonts.googleapis.com/css2?family=Courier+Prime:wght@400;700&display=swap'
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Midnight — deep blue-violet, near-monotone. Dark only: it has no light
|
||||
* palette because the whole idea is the dark end of the spectrum.
|
||||
@@ -775,6 +853,7 @@ export const BUILTIN_THEMES: Record<string, DesktopTheme> = {
|
||||
catppuccin: catppuccinTheme,
|
||||
everforest: everforestTheme,
|
||||
solarized: solarizedTheme,
|
||||
'nous-alt': nousAltTheme,
|
||||
midnight: midnightTheme,
|
||||
ember: emberTheme,
|
||||
mono: monoTheme,
|
||||
|
||||
Reference in New Issue
Block a user