From 98eeb16da5f721bcea3b2d278e7b417d60ee778a Mon Sep 17 00:00:00 2001 From: Tangled Date: Mon, 1 Dec 2025 05:39:36 +0000 Subject: [PATCH] add kitty to color scheme i mean it only makes sense considering ur fork is based on it ;) --- src/alf/index.tsx | 3 + src/alf/themes.ts | 142 ++++++++++++++++++++ src/screens/Settings/AppearanceSettings.tsx | 4 + src/state/persisted/schema.ts | 2 +- 4 files changed, 150 insertions(+), 1 deletion(-) diff --git a/src/alf/index.tsx b/src/alf/index.tsx index 193f1f949..8b66032f6 100644 --- a/src/alf/index.tsx +++ b/src/alf/index.tsx @@ -16,6 +16,7 @@ import { themes, witchskyscheme, zeppelinscheme, + kittyscheme, } from '#/alf/themes' import {type Device} from '#/storage' @@ -78,6 +79,8 @@ export function selectScheme(colorScheme: string | undefined): SchemeType { return deerscheme case 'zeppelin': return zeppelinscheme + case 'kitty': + return kittyscheme default: return themes } diff --git a/src/alf/themes.ts b/src/alf/themes.ts index f0219f888..5c09e3c32 100644 --- a/src/alf/themes.ts +++ b/src/alf/themes.ts @@ -989,6 +989,148 @@ export const zeppelinscheme = { dim: ZEPPELIN_THEMES.dim, } +export const KITTY_PALETTE: Palette = { + white: '#FFFFFF', + black: '#000000', + like: '#EC4899', + + contrast_0: '#FFFFFF', + contrast_25: '#F9FAFB', + contrast_50: '#EFF2F6', + contrast_100: '#DCE2EA', + contrast_200: '#C0CAD8', + contrast_300: '#A5B2C5', + contrast_400: '#8798B0', + contrast_500: '#667B99', + contrast_600: '#526580', + contrast_700: '#405168', + contrast_800: '#313F54', + contrast_900: '#232E3E', + contrast_950: '#19222E', + contrast_975: '#111822', + contrast_1000: '#000000', + + primary_25: `hsl(290, 30%, 97%)`, + primary_50: `hsl(290, 30%, 95%)`, + primary_100: `hsl(290, 30%, 90%)`, + primary_200: `hsl(290, 32%, 80%)`, + primary_300: `hsl(290, 34%, 70%)`, + primary_400: `hsl(290, 35%, 58%)`, + primary_500: `hsl(290, 35%, 45%)`, + primary_600: `hsl(290, 38%, 38%)`, + primary_700: `hsl(290, 40%, 32%)`, + primary_800: `hsl(290, 42%, 25%)`, + primary_900: `hsl(290, 45%, 18%)`, + primary_950: `hsl(290, 48%, 10%)`, + primary_975: `hsl(290, 50%, 7%)`, + + positive_25: '#ECFEF5', + positive_50: '#D3FDE8', + positive_100: '#A3FACF', + positive_200: '#6AF6B0', + positive_300: '#2CF28F', + positive_400: '#0DD370', + positive_500: '#09B35E', + positive_600: '#04904A', + positive_700: '#036D38', + positive_800: '#04522B', + positive_900: '#033F21', + positive_950: '#032A17', + positive_975: '#021D0F', + + negative_25: '#FFF5F7', + negative_50: '#FEE7EC', + negative_100: '#FDD3DD', + negative_200: '#FBBBCA', + negative_300: '#F891A9', + negative_400: '#F65A7F', + negative_500: '#E91646', + negative_600: '#CA123D', + negative_700: '#A71134', + negative_800: '#7F0B26', + negative_900: '#5F071C', + negative_950: '#430413', + negative_975: '#30030D', +} + +export const KITTY_SUBDUED_PALETTE: Palette = { + white: '#FFFFFF', + black: '#000000', + like: '#EC4899', + + contrast_0: '#FFFFFF', + contrast_25: '#F9FAFB', + contrast_50: '#F2F4F8', + contrast_100: '#E2E7EE', + contrast_200: '#C3CDDA', + contrast_300: '#ABB8C9', + contrast_400: '#8D9DB4', + contrast_500: '#6F839F', + contrast_600: '#586C89', + contrast_700: '#485B75', + contrast_800: '#394960', + contrast_900: '#2C3A4E', + contrast_950: '#222E3F', + contrast_975: '#1C2736', + contrast_1000: '#151D28', + + primary_25: `hsl(290, 30%, 97%)`, + primary_50: `hsl(290, 30%, 96%)`, + primary_100: `hsl(290, 30%, 92%)`, + primary_200: `hsl(290, 32%, 81%)`, + primary_300: `hsl(290, 34%, 72%)`, + primary_400: `hsl(290, 35%, 60%)`, + primary_500: `hsl(290, 35%, 48%)`, + primary_600: `hsl(290, 38%, 41%)`, + primary_700: `hsl(290, 40%, 36%)`, + primary_800: `hsl(290, 42%, 29%)`, + primary_900: `hsl(290, 45%, 22%)`, + primary_950: `hsl(290, 48%, 10%)`, + primary_975: `hsl(290, 50%, 8%)`, + + positive_25: '#ECFEF5', + positive_50: '#D8FDEB', + positive_100: '#A8FAD1', + positive_200: '#6FF6B3', + positive_300: '#31F291', + positive_400: '#0EDD75', + positive_500: '#0AC266', + positive_600: '#049F52', + positive_700: '#038142', + positive_800: '#056636', + positive_900: '#04522B', + positive_950: '#053D21', + positive_975: '#052917', + + negative_25: '#FFF5F7', + negative_50: '#FEEBEF', + negative_100: '#FDD8E1', + negative_200: '#FCC0CE', + negative_300: '#F99AB0', + negative_400: '#F76486', + negative_500: '#EB2452', + negative_600: '#D81341', + negative_700: '#BA1239', + negative_800: '#910D2C', + negative_900: '#6F0B22', + negative_950: '#500B1C', + negative_975: '#3E0915', +} + +const KITTY_THEMES = createThemes({ + defaultPalette: KITTY_PALETTE, + subduedPalette: KITTY_SUBDUED_PALETTE, +}) + +export const kittyscheme = { + lightPalette: KITTY_THEMES.light.palette, + darkPalette: KITTY_THEMES.dark.palette, + dimPalette: KITTY_THEMES.dim.palette, + light: KITTY_THEMES.light, + dark: KITTY_THEMES.dark, + dim: KITTY_THEMES.dim, +} + /** * @deprecated use ALF and access palette from `useTheme()` */ diff --git a/src/screens/Settings/AppearanceSettings.tsx b/src/screens/Settings/AppearanceSettings.tsx index a6faeacfe..0bce5a6f0 100644 --- a/src/screens/Settings/AppearanceSettings.tsx +++ b/src/screens/Settings/AppearanceSettings.tsx @@ -130,6 +130,10 @@ export function AppearanceSettingsScreen({}: Props) { label: _(msg`Zeppelin`), name: 'zeppelin', }, + { + label: _(msg`Kitty`), + name: 'kitty', + }, ]} value={colorScheme} onChange={onChangeScheme} diff --git a/src/state/persisted/schema.ts b/src/state/persisted/schema.ts index b40f71787..268dc1b2f 100644 --- a/src/state/persisted/schema.ts +++ b/src/state/persisted/schema.ts @@ -49,7 +49,7 @@ export type PersistedCurrentAccount = z.infer const schema = z.object({ colorMode: z.enum(['system', 'light', 'dark']), darkTheme: z.enum(['dim', 'dark']).optional(), - colorScheme: z.enum(['witchsky', 'bluesky', 'blacksky', 'deer', 'zeppelin']), + colorScheme: z.enum(['witchsky', 'bluesky', 'blacksky', 'deer', 'zeppelin', 'kitty']), session: z.object({ accounts: z.array(accountSchema), currentAccount: currentAccountSchema.optional(), -- 2.51.2