Add Stationery and Stationery Dark themes with notebook chrome.
Manila folders, ruled chat, post-it nav, and folder tabs; dark variant uses Catppuccin Mocha colors with muted stickies and soft glows.
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import { lightTheme } from 'folds';
|
||||
import { createContext, useContext, useEffect, useMemo, useState } from 'react';
|
||||
import { onDarkFontWeight, onLightFontWeight } from '../../config.css';
|
||||
import { butterTheme, catppuccinMochaTheme, darkTheme, discordTheme, discordDarkerTheme, mochaTheme, silverTheme, twilightTheme } from '../../colors.css';
|
||||
import { butterTheme, catppuccinMochaTheme, darkTheme, discordTheme, discordDarkerTheme, mochaTheme, silverTheme, stationeryDarkTheme, stationeryTheme, twilightTheme } from '../../colors.css';
|
||||
import { settingsAtom } from '../state/settings';
|
||||
import { useSetting } from '../state/hooks/settings';
|
||||
import { pluginRegistry } from '../features/settings/plugins/PluginAPI';
|
||||
@@ -17,6 +17,11 @@ export type Theme = {
|
||||
classNames: string[];
|
||||
};
|
||||
|
||||
export const isStationeryTheme = (theme: Theme | string): boolean => {
|
||||
const id = typeof theme === 'string' ? theme : theme.id;
|
||||
return id === 'stationery-theme' || id === 'stationery-dark-theme';
|
||||
};
|
||||
|
||||
export const LightTheme: Theme = {
|
||||
id: 'light-theme',
|
||||
kind: ThemeKind.Light,
|
||||
@@ -63,6 +68,16 @@ export const CatppuccinMochaTheme: Theme = {
|
||||
kind: ThemeKind.Dark,
|
||||
classNames: ['catppuccin-mocha-theme', catppuccinMochaTheme, onDarkFontWeight, 'prism-dark'],
|
||||
};
|
||||
export const StationeryTheme: Theme = {
|
||||
id: 'stationery-theme',
|
||||
kind: ThemeKind.Light,
|
||||
classNames: ['stationery-theme', 'stationery', stationeryTheme, onLightFontWeight, 'prism-light'],
|
||||
};
|
||||
export const StationeryDarkTheme: Theme = {
|
||||
id: 'stationery-dark-theme',
|
||||
kind: ThemeKind.Dark,
|
||||
classNames: ['stationery-dark-theme', 'stationery', stationeryDarkTheme, onDarkFontWeight, 'prism-dark'],
|
||||
};
|
||||
|
||||
export const useThemes = (): Theme[] => {
|
||||
const [pluginThemesUpdate, setPluginThemesUpdate] = useState(0);
|
||||
@@ -76,7 +91,7 @@ export const useThemes = (): Theme[] => {
|
||||
}, []);
|
||||
|
||||
const builtInThemes: Theme[] = useMemo(() => [
|
||||
LightTheme, SilverTheme, DarkTheme, ButterTheme,
|
||||
LightTheme, SilverTheme, StationeryTheme, StationeryDarkTheme, DarkTheme, ButterTheme,
|
||||
DiscordTheme, DiscordDarkerTheme, TwilightTheme,
|
||||
MochaTheme, CatppuccinMochaTheme
|
||||
], []);
|
||||
@@ -112,6 +127,8 @@ export const useThemeNames = (): Record<string, string> => {
|
||||
const builtInNames = {
|
||||
[LightTheme.id]: 'Light',
|
||||
[SilverTheme.id]: 'Silver',
|
||||
[StationeryTheme.id]: 'Stationery',
|
||||
[StationeryDarkTheme.id]: 'Stationery Dark',
|
||||
[DarkTheme.id]: 'Dark',
|
||||
[ButterTheme.id]: 'Butter',
|
||||
[DiscordTheme.id]: 'Discord',
|
||||
|
||||
Reference in New Issue
Block a user