diff --git a/scripts/port-community-themes.ts b/scripts/port-community-themes.ts new file mode 100644 index 00000000..1fb47919 --- /dev/null +++ b/scripts/port-community-themes.ts @@ -0,0 +1,275 @@ +#!/usr/bin/env bun +import { existsSync, readFileSync, writeFileSync } from 'node:fs'; +import { execSync } from 'node:child_process'; +import { join } from 'node:path'; +import { mapPalette } from './themes/map'; +import { deriveOmarchyPalette } from './themes/from-ansi'; +import { parseAlacrittyToml, parseGhosttyConf } from './themes/ansi-source'; +import { contrast, ensureContrast, TEXT, UI } from './themes/contrast'; + +// Port community Omarchy themes from omarchythemes.com into the same 84-token shape the official +// pipeline produces — see `generate-themes.ts` for that one. This is its sibling for themes that have no +// `colors.toml`: a single-theme repo instead ships per-app configs, so `from-ansi.ts` reconstructs the +// same `Palette` from `alacritty.toml` or `ghostty.conf`, and everything downstream (mapping, contrast +// checking) is identical. What's NOT identical: these are unofficial, one author's repo can vanish or +// change, and the reconstruction is a heuristic, not Omarchy's own curated palette — every generated file +// says so in its header. +// +// bun scripts/port-community-themes.ts [--limit=N] [--slug=] [--redo] +// +// State lives in `scripts/themes/community-manifest.json` — one entry per theme successfully ported, so a +// re-run only fetches what's missing (or everything, with --redo) and the registry/index blocks are +// always rewritten fresh from the whole manifest, never hand-edited. + +const CSS_THEME_DIR = join(import.meta.dir, '..', 'src', 'workspaces', 'theme', 'css', 'themes'); +const INDEX_CSS = join(CSS_THEME_DIR, '..', 'index.css'); +const REGISTRY = join(import.meta.dir, '..', 'src', 'workspaces', 'theme', 'src', 'themes.ts'); +const MANIFEST_PATH = join(import.meta.dir, 'themes', 'community-manifest.json'); +const SITE = 'https://omarchythemes.com'; +const CONCURRENCY = 8; + +const REDO = process.argv.includes('--redo'); +const ONLY_SLUG = process.argv.find((a) => a.startsWith('--slug='))?.split('=')[1]; +const LIMIT = Number(process.argv.find((a) => a.startsWith('--limit='))?.split('=')[1] ?? Infinity); + +type ManifestEntry = { + id: string; + name: string; + repo: string; + kind: 'alacritty.toml' | 'ghostty.conf'; + dark: boolean; +}; + +// Same pairs `generate-themes.ts` checks, kept in sync by hand since this is the only other place that +// needs them and duplicating a 20-line array beats a shared module for one caller each. +const PAIRS: [string, string, number][] = [ + ['--foreground', '--background', TEXT], + ['--card-foreground', '--card', TEXT], + ['--popover-foreground', '--popover', TEXT], + ['--muted-foreground', '--muted', TEXT], + ['--accent-foreground', '--accent', TEXT], + ['--primary-foreground', '--primary', TEXT], + ['--secondary-foreground', '--secondary', TEXT], + ['--cta-foreground', '--cta', TEXT], + ['--success-foreground', '--success', TEXT], + ['--warning-foreground', '--warning', TEXT], + ['--destructive-foreground', '--destructive', TEXT], + ['--info-foreground', '--info', TEXT], + ['--busy-foreground', '--busy', TEXT], + ['--busy-ink', '--background', TEXT], + ['--input', '--background', 1.35], + ['--ring', '--background', UI], +]; + +const title = (id: string): string => + id + .split('-') + .map((w) => (w.length <= 2 ? w.toUpperCase() : w[0]!.toUpperCase() + w.slice(1))) + .join(' '); + +function loadManifest(): ManifestEntry[] { + if (!existsSync(MANIFEST_PATH)) return []; + return JSON.parse(readFileSync(MANIFEST_PATH, 'utf8')); +} + +function saveManifest(entries: ManifestEntry[]): void { + writeFileSync(MANIFEST_PATH, `${JSON.stringify(entries, null, 2)}\n`); +} + +function ghApiDefaultBranch(repo: string): string { + try { + const out = execSync(`gh api repos/${repo} --jq .default_branch`, { + encoding: 'utf8', + stdio: ['ignore', 'pipe', 'ignore'], + }); + return out.trim() || 'main'; + } catch { + return 'main'; + } +} + +async function fetchText(url: string): Promise { + try { + const res = await fetch(url); + if (!res.ok) return undefined; + return await res.text(); + } catch { + return undefined; + } +} + +async function discoverRepo(slug: string): Promise { + const html = await fetchText(`${SITE}/themes/${slug}`); + if (!html) return undefined; + const m = html.match(/https:\/\/github\.com\/([\w.-]+)\/([\w.-]+)/); + return m ? `${m[1]}/${m[2]}` : undefined; +} + +async function sourceFor( + repo: string, +): Promise<{ ansi: NonNullable>; kind: ManifestEntry['kind'] } | undefined> { + const branch = ghApiDefaultBranch(repo); + const raw = (p: string) => `https://raw.githubusercontent.com/${repo}/${branch}/${p}`; + + for (const path of [ + 'alacritty.toml', + '.config/alacritty.toml', + 'alacritty/alacritty.toml', + 'config/alacritty.toml', + ]) { + const text = await fetchText(raw(path)); + if (!text) continue; + const ansi = parseAlacrittyToml(text); + if (ansi) return { ansi, kind: 'alacritty.toml' }; + } + for (const path of ['ghostty.conf', 'ghostty-theme', '.config/ghostty/config']) { + const text = await fetchText(raw(path)); + if (!text) continue; + const ansi = parseGhosttyConf(text); + if (ansi) return { ansi, kind: 'ghostty.conf' }; + } + return undefined; +} + +async function portOne(slug: string): Promise<{ entry: ManifestEntry; css: string } | { skip: string }> { + const repo = await discoverRepo(slug); + if (!repo) return { skip: 'no github repo link found on its omarchythemes.com page' }; + + const source = await sourceFor(repo); + if (!source) return { skip: `no parseable alacritty.toml/ghostty.conf in ${repo}` }; + + const palette = deriveOmarchyPalette(source.ansi); + const tokens = mapPalette(palette); + + // `--input` carries a real accessibility requirement (a field boundary you can't see) where `--border` + // is decoration and isn't held to one — see the README. `map.ts` derives both from the same mix for + // every theme, official ones included, and it normally clears 1.35:1 on its own; a few derived palettes + // land just under it, so nudge only this one rather than loosening the check. + tokens['--input'] = ensureContrast(tokens['--input']!, tokens['--background']!, 1.35); + + const failures: string[] = []; + for (const [fgKey, bgKey, min] of PAIRS) { + const fg = tokens[fgKey]!; + const bg = tokens[bgKey]!; + if (!fg.startsWith('#') || !bg.startsWith('#')) continue; + const ratio = contrast(fg, bg); + if (ratio < min) failures.push(`${fgKey} on ${bgKey} is ${ratio.toFixed(2)}:1, needs ${min}:1`); + } + if (failures.length > 0) return { skip: `contrast failed after derivation: ${failures.join('; ')}` }; + + const name = title(slug); + const body = Object.entries(tokens) + .map(([k, v]) => ` ${k}: ${v};`) + .join('\n'); + const css = `/* + ${name} — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + ${palette.mode === 'dark' ? 'Dark theme' : 'Light theme'} (${palette.mode}), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/${repo} (${source.kind}), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='${slug}'] { +${body} +} +`; + + return { entry: { id: slug, name, repo, kind: source.kind, dark: palette.mode === 'dark' }, css }; +} + +function rewriteIndexCss(entries: ManifestEntry[]): void { + const index = readFileSync(INDEX_CSS, 'utf8'); + const marker = '/* Community themes'; + const startIdx = index.indexOf(marker); + const head = startIdx >= 0 ? index.slice(0, startIdx) : index.replace(/\n@import '\.\/chrome\.css';\n$/, '\n'); + const imports = entries.map((e) => `@import './themes/${e.id}.css';`).join('\n'); + writeFileSync( + INDEX_CSS, + `${head}/* Community themes — ported from omarchythemes.com by scripts/port-community-themes.ts. Do not edit this block. */\n${imports}\n\n@import './chrome.css';\n`, + ); +} + +function rewriteRegistry(entries: ManifestEntry[]): void { + const registry = readFileSync(REGISTRY, 'utf8'); + const START = ' /* COMMUNITY THEMES — start */'; + const END = ' /* COMMUNITY THEMES — end */'; + const rows = entries + .map((e) => ` { id: '${e.id}', name: '${e.name}', family: '${e.name}', applyDarkClass: ${e.dark} },`) + .join('\n'); + const block = `${START}\n${rows}\n${END}`; + + if (registry.includes(START) && registry.includes(END)) { + // Snap to the start of the marker's own line — `indexOf` on a string with leading spaces can match + // partway into stray indentation left by an earlier write, which would otherwise accumulate. + const startLineBegin = registry.lastIndexOf('\n', registry.indexOf(START)) + 1; + const before = registry.slice(0, startLineBegin); + const after = registry.slice(registry.indexOf(END) + END.length); + writeFileSync(REGISTRY, `${before}${block}${after}`); + } else { + const anchor = '] as const;'; + const idx = registry.indexOf(anchor); + writeFileSync(REGISTRY, `${registry.slice(0, idx)}${block}\n${registry.slice(idx)}`); + } +} + +async function main() { + const slugsFile = process.argv.find((a) => a.startsWith('--slugs='))?.split('=')[1]; + const allSlugs: string[] = slugsFile ? readFileSync(slugsFile, 'utf8').trim().split('\n').filter(Boolean) : []; + + const manifest = loadManifest(); + const known = new Set(manifest.map((e) => e.id)); + // Never take a slug the OFFICIAL/hand-authored part of the registry already owns — that's everything + // before this script's own block, which it is free to redo. + const registryHead = readFileSync(REGISTRY, 'utf8').split('/* COMMUNITY THEMES — start */')[0]!; + const registryIds = new Set(Array.from(registryHead.matchAll(/id: '([\w-]+)'/g)).map((m) => m[1]!)); + + let todo = ONLY_SLUG ? [ONLY_SLUG] : allSlugs.filter((s) => !registryIds.has(s) && (REDO || !known.has(s))); + todo = todo.slice(0, LIMIT); + + console.log(`community theme port: ${todo.length} to try, ${manifest.length} already in the manifest`); + + const results: ManifestEntry[] = [...manifest.filter((e) => !todo.includes(e.id))]; + let done = 0; + let ok = 0; + let skipped = 0; + + async function worker() { + while (todo.length > 0) { + const slug = todo.shift(); + if (!slug) break; + try { + const result = await portOne(slug); + done++; + if ('skip' in result) { + skipped++; + console.log(`[${done}] SKIP ${slug} — ${result.skip}`); + } else { + writeFileSync(join(CSS_THEME_DIR, `${slug}.css`), result.css); + results.push(result.entry); + ok++; + console.log(`[${done}] OK ${slug} — from ${result.entry.repo} (${result.entry.kind})`); + } + } catch (err) { + done++; + skipped++; + console.log(`[${done}] ERROR ${slug} — ${(err as Error).message}`); + } + } + } + + await Promise.all(Array.from({ length: CONCURRENCY }, worker)); + + results.sort((a, b) => a.id.localeCompare(b.id)); + saveManifest(results); + rewriteIndexCss(results); + rewriteRegistry(results); + + console.log(`\ndone: ${ok} ported, ${skipped} skipped, ${results.length} total in manifest`); +} + +main(); diff --git a/scripts/themes/ansi-source.ts b/scripts/themes/ansi-source.ts new file mode 100644 index 00000000..4736e744 --- /dev/null +++ b/scripts/themes/ansi-source.ts @@ -0,0 +1,167 @@ +// Reading a community theme's actual shipped format. +// +// Omarchy's own 22 themes carry a `colors.toml` in the semantic shape `palette.ts` expects — three +// background depths, four foreground weights, an accent, a selection, a muted. A community theme on +// omarchythemes.com ships none of that: it's per-app config files in the classic 16-ANSI-slot style, +// because that's what predates Omarchy 4's own format and what most single-theme repos still use. +// +// This file reads the two shapes that cover almost every repo: `alacritty.toml` (structured, typed, +// preferred) and `ghostty.conf`/`ghostty-theme` (flat `key = value` lines, fallback). Either becomes an +// `AnsiSource` — the 16 ANSI slots plus primary background/foreground — which `from-ansi.ts` turns into +// the same `Palette` shape the official pipeline consumes, so every downstream guarantee (contrast +// checking, the 84-token mapping) applies unchanged. + +export type AnsiSource = { + background: string; + foreground: string; + black: string; + red: string; + green: string; + yellow: string; + blue: string; + magenta: string; + cyan: string; + white: string; + brightBlack: string; + brightRed: string; + brightGreen: string; + brightYellow: string; + brightBlue: string; + brightMagenta: string; + brightCyan: string; + brightWhite: string; +}; + +const HEX = /#[0-9a-fA-F]{3,8}/; + +function normalizeHex(v: string): string | undefined { + const m = v.match(HEX); + if (!m) return undefined; + let h = m[0].slice(1).toLowerCase(); + if (h.length === 3) + h = h + .split('') + .map((c) => c + c) + .join(''); + if (h.length >= 6) h = h.slice(0, 6); + return `#${h}`; +} + +/** A deliberately small TOML reader: flat `key = "value"` lines plus `[section]` headers. */ +export function parseAlacrittyToml(text: string): AnsiSource | undefined { + let section = ''; + const rows: Record> = {}; + for (const rawLine of text.split('\n')) { + const line = rawLine.trim(); + const sectionMatch = line.match(/^\[([\w.]+)]$/); + if (sectionMatch) { + section = sectionMatch[1]!; + rows[section] ??= {}; + continue; + } + // Quoted specifically, not "anything but a comment" — a hex value starts with `#`, the same + // character that opens a trailing comment, so the two can only be told apart by the quotes. + const kv = line.match(/^([\w-]+)\s*=\s*(['"])(.*?)\2/); + if (kv && section) { + const hex = normalizeHex(kv[3]!); + if (hex) rows[section]![kv[1]!] = hex; + } + } + + const primary = rows['colors.primary']; + const normal = rows['colors.normal']; + const bright = rows['colors.bright']; + if (!primary?.background || !primary?.foreground || !normal || !bright) return undefined; + + const need = (r: Record, k: string): string | undefined => r[k]; + const n = (k: string) => need(normal, k); + const b = (k: string) => need(bright, k); + if ( + !n('black') || + !n('red') || + !n('green') || + !n('yellow') || + !n('blue') || + !n('magenta') || + !n('cyan') || + !n('white') + ) + return undefined; + if ( + !b('black') || + !b('red') || + !b('green') || + !b('yellow') || + !b('blue') || + !b('magenta') || + !b('cyan') || + !b('white') + ) + return undefined; + + return { + background: primary.background, + foreground: primary.foreground, + black: n('black')!, + red: n('red')!, + green: n('green')!, + yellow: n('yellow')!, + blue: n('blue')!, + magenta: n('magenta')!, + cyan: n('cyan')!, + white: n('white')!, + brightBlack: b('black')!, + brightRed: b('red')!, + brightGreen: b('green')!, + brightYellow: b('yellow')!, + brightBlue: b('blue')!, + brightMagenta: b('magenta')!, + brightCyan: b('cyan')!, + brightWhite: b('white')!, + }; +} + +/** Ghostty's config: flat `key = value`, ANSI palette as sixteen `palette = N=#hex` lines. */ +export function parseGhosttyConf(text: string): AnsiSource | undefined { + let background: string | undefined; + let foreground: string | undefined; + const palette: Record = {}; + + for (const rawLine of text.split('\n')) { + const line = rawLine.trim(); + if (line.startsWith('#')) continue; + const bg = line.match(/^background\s*=\s*(#[0-9a-fA-F]{3,8})/); + if (bg) background = normalizeHex(bg[1]!); + const fg = line.match(/^foreground\s*=\s*(#[0-9a-fA-F]{3,8})/); + if (fg) foreground = normalizeHex(fg[1]!); + const pal = line.match(/^palette\s*=\s*(\d+)\s*=\s*(#[0-9a-fA-F]{3,8})/); + if (pal) { + const hex = normalizeHex(pal[2]!); + if (hex) palette[Number(pal[1])] = hex; + } + } + + if (!background || !foreground) return undefined; + for (let i = 0; i <= 15; i++) if (!palette[i]) return undefined; + + return { + background, + foreground, + black: palette[0]!, + red: palette[1]!, + green: palette[2]!, + yellow: palette[3]!, + blue: palette[4]!, + magenta: palette[5]!, + cyan: palette[6]!, + white: palette[7]!, + brightBlack: palette[8]!, + brightRed: palette[9]!, + brightGreen: palette[10]!, + brightYellow: palette[11]!, + brightBlue: palette[12]!, + brightMagenta: palette[13]!, + brightCyan: palette[14]!, + brightWhite: palette[15]!, + }; +} diff --git a/scripts/themes/community-manifest.json b/scripts/themes/community-manifest.json new file mode 100644 index 00000000..20d682a8 --- /dev/null +++ b/scripts/themes/community-manifest.json @@ -0,0 +1,1031 @@ +[ + { + "id": "aamis", + "name": "Aamis", + "repo": "vyrx-dev/omarchy-aamis-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "ado", + "name": "Ado", + "repo": "errantProgrammer/omarchy-ado-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "adrift", + "name": "Adrift", + "repo": "jaredb1011/omarchy-adrift-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "aetheria", + "name": "Aetheria", + "repo": "JJDizz1L/aetheria", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "akaito", + "name": "Akaito", + "repo": "stannorbvb-cmd/akaito", + "kind": "alacritty.toml", + "dark": false + }, + { + "id": "all-hallows-eve", + "name": "All Hallows Eve", + "repo": "guilhermetk/omarchy-all-hallows-eve-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "amberbyte", + "name": "Amberbyte", + "repo": "tahfizhabib/omarchy-amberbyte-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "amekoji", + "name": "Amekoji", + "repo": "atif-1402/omarchy-amekoji-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "anonymous", + "name": "Anonymous", + "repo": "j4v3l/omarchy-anonymous-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "apocalypse", + "name": "Apocalypse", + "repo": "atif-1402/omarchy-apocalypse-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "arc-blueberry", + "name": "Arc Blueberry", + "repo": "vale-c/omarchy-arc-blueberry", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "archriot", + "name": "Archriot", + "repo": "CyphrRiot/omarchy-archriot-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "archwave", + "name": "Archwave", + "repo": "davidguttman/archwave", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "artzen", + "name": "Artzen", + "repo": "tahfizhabib/omarchy-artzen-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "atari", + "name": "Atari", + "repo": "atif-1402/omarchy-atari-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "atelier", + "name": "Atelier", + "repo": "atif-1402/omarchy-atelier-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "aura", + "name": "Aura", + "repo": "bjarneo/omarchy-aura-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "ayu-dark", + "name": "Ayu Dark", + "repo": "fdidron/omarchy-ayu-dark-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "ayu-light", + "name": "Ayu Light", + "repo": "fdidron/omarchy-ayu-light-theme", + "kind": "alacritty.toml", + "dark": false + }, + { + "id": "ayu-mirage", + "name": "Ayu Mirage", + "repo": "fdidron/omarchy-ayu-mirage-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "azure", + "name": "Azure", + "repo": "tahfizhabib/omarchy-azure-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "azure-glow", + "name": "Azure Glow", + "repo": "Hydradevx/omarchy-azure-glow-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "bad-hand", + "name": "Bad Hand", + "repo": "bjornramberg/omarchy-bad-hand-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "batman", + "name": "Batman", + "repo": "OldJobobo/omarchy-batman-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "batou", + "name": "Batou", + "repo": "HANCORE-linux/omarchy-batou-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "bauhaus", + "name": "Bauhaus", + "repo": "somerocketeer/omarchy-bauhaus-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "beachvan", + "name": "Beachvan", + "repo": "haripako/omarchy-BeachVan-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "beta", + "name": "Beta", + "repo": "jjdizz1l/beta", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "black-arch", + "name": "Black Arch", + "repo": "ankur311sudo/black_arch", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "blueridge", + "name": "Blueridge", + "repo": "hipsterusername/omarchy-blueridge-dark-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "brutalism", + "name": "Brutalism", + "repo": "bjornramberg/omarchy-brutalism-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "caroline-skyline", + "name": "Caroline Skyline", + "repo": "OldJobobo/omarchy-caroline-skyline-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "catppuccin-mocha", + "name": "Catppuccin Mocha", + "repo": "KidDogDad/omarchy-catppuccin-mocha-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "city-783", + "name": "City 783", + "repo": "OldJobobo/omarchy-city-783-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "copper-night", + "name": "Copper Night", + "repo": "hembramnishant50-glitch/omarchy-coppernight-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "cpunk", + "name": "Cpunk", + "repo": "stannorbvb-cmd/cpunk", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "crimson", + "name": "Crimson", + "repo": "tahfizhabib/omarchy-crimson-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "dark-xp", + "name": "Dark XP", + "repo": "ITSZXY/dark-xp-omarchy", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "dayfox", + "name": "Dayfox", + "repo": "defer/omarchy-dayfox-theme", + "kind": "alacritty.toml", + "dark": false + }, + { + "id": "dead-space", + "name": "Dead Space", + "repo": "atif-1402/omarchy-deadspace-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "deckard", + "name": "Deckard", + "repo": "OldJobobo/omarchy-deckard-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "delete", + "name": "Delete", + "repo": "signaldirective/delete-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "delorean", + "name": "Delorean", + "repo": "jbnunn/omarchy-delorean-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "demon", + "name": "Demon", + "repo": "HANCORE-linux/omarchy-demon-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "dotrb", + "name": "Dotrb", + "repo": "dotsilva/omarchy-dotrb-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "drac", + "name": "Drac", + "repo": "ShehabShaef/omarchy-drac-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "dracula", + "name": "Dracula", + "repo": "catlee/omarchy-dracula-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "dragon", + "name": "Dragon", + "repo": "thatmechguy/omarchy-dragon-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "dreamwave", + "name": "Dreamwave", + "repo": "RiO7MAKK3R/omarchy-dreamwave-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "ember-n-ash", + "name": "Ember N Ash", + "repo": "Hydradevx/omarchy-ember-n-ash-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "eva-unit-01", + "name": "Eva Unit 01", + "repo": "OldJobobo/omarchy-01-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "event-horizon", + "name": "Event Horizon", + "repo": "OldJobobo/omarchy-event-horizon-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "everblush", + "name": "Everblush", + "repo": "Swarnim114/omarchy-everblush-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "farline", + "name": "Farline", + "repo": "atif-1402/omarchy-farline-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "felix", + "name": "Felix", + "repo": "TyRichards/omarchy-felix-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "flat-dracula", + "name": "Flat Dracula", + "repo": "OldJobobo/omarchy-flat-dracula-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "florida-man", + "name": "Florida Man", + "repo": "OldJobobo/omarchy-florida-man-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "fluid-glass", + "name": "Fluid Glass", + "repo": "ripple0328/omarchy-fluid-glass-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "forest-green", + "name": "Forest Green", + "repo": "abhijeet-swami/omarchy-forest-green-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "glory-antic", + "name": "Glory Antic", + "repo": "clement-rtfm/glory-antic", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "gold-rush", + "name": "Gold Rush", + "repo": "tahayvr/omarchy-gold-rush-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "gotham-city", + "name": "Gotham City", + "repo": "JustArmaan/omarchy-gotham-city-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "greek-noir", + "name": "Greek Noir", + "repo": "HANCORE-linux/omarchy-greek-noir-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "green-city", + "name": "Green City", + "repo": "zillamtt/omarchy-green-city", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "green-garden", + "name": "Green Garden", + "repo": "kalk-ak/omarchy-Green-Garden-theme", + "kind": "ghostty.conf", + "dark": true + }, + { + "id": "gruber-tsoding", + "name": "Gruber Tsoding", + "repo": "davide-ferrara/omarchy-gruberdark-tsoding-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "grudark", + "name": "Grudark", + "repo": "zillamtt/omarchy-grudark", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "harbor", + "name": "Harbor", + "repo": "HANCORE-linux/omarchy-harbor-theme", + "kind": "alacritty.toml", + "dark": false + }, + { + "id": "hex", + "name": "Hex", + "repo": "OldJobobo/omarchy-hex-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "himalaya", + "name": "Himalaya", + "repo": "rondilley/omarchy-himalaya-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "hinterlands", + "name": "Hinterlands", + "repo": "OldJobobo/omarchy-hinterlands-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "infernium", + "name": "Infernium", + "repo": "RiO7MAKK3R/omarchy-infernium-theme", + "kind": "alacritty.toml", + "dark": false + }, + { + "id": "infernium-dark", + "name": "Infernium Dark", + "repo": "RiO7MAKK3R/omarchy-infernium-dark-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "killer-klowns", + "name": "Killer Klowns", + "repo": "Deoxizn/omarchy-killer-klowns-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "kurayami", + "name": "Kurayami", + "repo": "bjornramberg/omarchy-kurayami-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "lain", + "name": "Lain", + "repo": "ITSZXY/lain-omarchy", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "lairetam", + "name": "Lairetam", + "repo": "chrisintheshell/omarchy-lairetam-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "latch", + "name": "Latch", + "repo": "atif-1402/omarchy-latch-theme", + "kind": "alacritty.toml", + "dark": false + }, + { + "id": "latch-dark", + "name": "Latch Dark", + "repo": "atif-1402/omarchy-latchdark-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "lowlight", + "name": "Lowlight", + "repo": "atif-1402/omarchy-lowlight-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "lunar", + "name": "Lunar", + "repo": "pdfosborne/omarchy-lunar-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "manga", + "name": "Manga", + "repo": "atif-1402/omarchy-manga-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "mapquest", + "name": "Mapquest", + "repo": "ItsABigIgloo/omarchy-mapquest-theme", + "kind": "alacritty.toml", + "dark": false + }, + { + "id": "mars", + "name": "Mars", + "repo": "steve-lohmeyer/omarchy-mars-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "mecha-no-onna", + "name": "Mecha NO Onna", + "repo": "HANCORE-linux/omarchy-mechanoonna-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "memento-mori", + "name": "Memento Mori", + "repo": "hipsterusername/omarchy-memento-mori-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "midnight", + "name": "Midnight", + "repo": "JaxonWright/omarchy-midnight-theme", + "kind": "ghostty.conf", + "dark": true + }, + { + "id": "miles-morales", + "name": "Miles Morales", + "repo": "ahmed-z0/omarchy-miles-morales-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "mocha", + "name": "Mocha", + "repo": "gitcoder89431/omarchy-mocha-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "monochrome", + "name": "Monochrome", + "repo": "Swarnim114/omarchy-monochrome-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "monokai", + "name": "Monokai", + "repo": "bjarneo/omarchy-monokai-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "monokai-dark", + "name": "Monokai Dark", + "repo": "ericrswanny/omarchy-monokai-dark-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "monolith", + "name": "Monolith", + "repo": "OldJobobo/omarchy-monolith-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "nagai-poolside", + "name": "Nagai Poolside", + "repo": "somerocketeer/omarchy-nagai-poolside-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "nagai-twilight", + "name": "Nagai Twilight", + "repo": "somerocketeer/omarchy-nagai-twilight-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "nebulite", + "name": "Nebulite", + "repo": "atif-1402/omarchy-nebulite-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "neo-sploosh", + "name": "Neo Sploosh", + "repo": "monoooki/omarchy-neo-sploosh-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "neon-street", + "name": "Neon Street", + "repo": "atif-1402/omarchy-neonstreet-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "neovoid", + "name": "Neovoid", + "repo": "RiO7MAKK3R/omarchy-neovoid-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "nyc", + "name": "Nyc", + "repo": "WillyV3/omarchy-nyc-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "oxford", + "name": "Oxford", + "repo": "HANCORE-linux/omarchy-oxford-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "oxocarbon-dark", + "name": "Oxocarbon Dark", + "repo": "HANCORE-linux/omarchy-oxocarbon-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "pandora", + "name": "Pandora", + "repo": "imbypass/omarchy-pandora-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "pink-blood", + "name": "Pink Blood", + "repo": "ITSZXY/pink-blood-omarchy-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "pulsar", + "name": "Pulsar", + "repo": "bjarneo/omarchy-pulsar-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "purple-moon", + "name": "Purple Moon", + "repo": "Grey-007/purple-moon", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "purplewave", + "name": "Purplewave", + "repo": "dotsilva/omarchy-purplewave-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "rainy-night", + "name": "Rainy Night", + "repo": "atif-1402/omarchy-rainynight-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "rdddcs", + "name": "Rdddcs", + "repo": "mohamedredachakir/LINUX-OMARCHY-REDDCS", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "red-monarch", + "name": "Red Monarch", + "repo": "kamatealip/omarchy-red-monarch-theme", + "kind": "ghostty.conf", + "dark": true + }, + { + "id": "retropc", + "name": "Retropc", + "repo": "rondilley/omarchy-retropc-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "robco", + "name": "Robco", + "repo": "signaldirective/robco-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "robco-mojave", + "name": "Robco Mojave", + "repo": "signaldirective/robco-mojave", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "roseofdune", + "name": "Roseofdune", + "repo": "HANCORE-linux/omarchy-roseofdune-theme", + "kind": "alacritty.toml", + "dark": false + }, + { + "id": "royal", + "name": "Royal", + "repo": "notSagyo/omarchy-royal-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "rustleaf", + "name": "Rustleaf", + "repo": "tahfizhabib/omarchy-rustleaf-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "snow-black", + "name": "Snow Black", + "repo": "ankur311sudo/snow_black", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "space-bound", + "name": "Space Bound", + "repo": "Deoxizn/omarchy-space-bound-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "space-monkey", + "name": "Space Monkey", + "repo": "TyRichards/omarchy-space-monkey-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "spark", + "name": "Spark", + "repo": "stefanomainardi/omarchy-sf-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "spectra", + "name": "Spectra", + "repo": "abhijeet-swami/omarchy-spectra-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "stellar", + "name": "Stellar", + "repo": "cicorias/omarchy-stellar-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "stillmoon", + "name": "Stillmoon", + "repo": "atif-1402/omarchy-stillmoon-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "sunset", + "name": "Sunset", + "repo": "rondilley/omarchy-sunset-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "synthetica", + "name": "Synthetica", + "repo": "stannorbvb-cmd/synthetica", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "synthwave-84", + "name": "Synthwave 84", + "repo": "omacom-io/omarchy-synthwave84-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "taikami", + "name": "Taikami", + "repo": "SamuelCam14/taikami", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "tarot", + "name": "Tarot", + "repo": "jjdizz1l/base16-tarot", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "temerald", + "name": "Temerald", + "repo": "Ahmad-Mtr/omarchy-temerald-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "terramour", + "name": "Terramour", + "repo": "atif-1402/omarchy-terramour-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "thegreek", + "name": "Thegreek", + "repo": "HANCORE-linux/omarchy-thegreek-theme", + "kind": "alacritty.toml", + "dark": false + }, + { + "id": "turbonite", + "name": "Turbonite", + "repo": "HANCORE-linux/omarchy-turbonite-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "tycho", + "name": "Tycho", + "repo": "leonardobetti/omarchy-tycho", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "type-17", + "name": "Type 17", + "repo": "atif-1402/omarchy-type17-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "unicorn-dream", + "name": "Unicorn Dream", + "repo": "Deoxizn/omarchy-unicorn-dream-theme", + "kind": "alacritty.toml", + "dark": false + }, + { + "id": "van-gogh", + "name": "Van Gogh", + "repo": "Nirmal314/omarchy-van-gogh-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "velocity", + "name": "Velocity", + "repo": "perfektnacht/omarchy-velocity-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "velvet-night", + "name": "Velvet Night", + "repo": "HANCORE-linux/omarchy-velvetnight-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "vesper", + "name": "Vesper", + "repo": "Zheonatan/omarchy-vesper-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "vhs80", + "name": "Vhs80", + "repo": "tahayvr/omarchy-vhs80-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "vice-city", + "name": "Vice City", + "repo": "lavarinimoreira/omarchy-vice-city-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "void", + "name": "Void", + "repo": "vyrx-dev/omarchy-void-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "vurple", + "name": "Vurple", + "repo": "tahfizhabib/omarchy-vurple-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "wasteland", + "name": "Wasteland", + "repo": "perfektnacht/omarchy-wasteland-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "waveform-dark", + "name": "Waveform Dark", + "repo": "hipsterusername/omarchy-waveform-dark-theme", + "kind": "alacritty.toml", + "dark": true + }, + { + "id": "white-gold", + "name": "White Gold", + "repo": "HANCORE-linux/omarchy-whitegold-theme", + "kind": "alacritty.toml", + "dark": false + }, + { + "id": "yuugure", + "name": "Yuugure", + "repo": "ItsABigIgloo/omarchy-yuugure-theme", + "kind": "alacritty.toml", + "dark": true + } +] diff --git a/scripts/themes/from-ansi.ts b/scripts/themes/from-ansi.ts new file mode 100644 index 00000000..9286c91c --- /dev/null +++ b/scripts/themes/from-ansi.ts @@ -0,0 +1,76 @@ +import type { Palette } from './palette'; +import type { AnsiSource } from './ansi-source'; +import { UI, contrast, ensureContrast, luminance, mix, parseHex } from './contrast'; + +// An `AnsiSource` (16 ANSI slots + primary bg/fg) has no notion of "three background depths" or "an +// accent" — Omarchy 4's `colors.toml` is a richer, hand-curated shape that a sixteen-slot terminal scheme +// was never designed to fill. This derives one anyway, by role rather than by guessing a fixed value: +// +// - accent is whichever blue-ish slot actually stands out from the background (every official palette +// picks blue too — this just guards against a scheme that reused the background for it). +// - the three depths are the background pushed a fixed distance toward black or white, in the direction +// each mode's surfaces already move (dark themes rise lighter, light themes recede darker — see the +// ratios comment below, calibrated against Nord and Rosé Pine's real colors.toml). +// - the three foreground weights are the foreground pulled toward the background by a fixed fraction, +// standing in for "faint", "muted" and "strong" text. +// +// None of this has to be exact. `mapPalette`'s `ensureContrast` re-checks every text/surface pair +// afterward and nudges anything that fails — the approximation only has to be plausible, not correct. + +function pickAccent(a: AnsiSource): string { + const candidates = [a.blue, a.brightBlue, a.cyan, a.brightCyan]; + const best = candidates.reduce((hi, c) => (contrast(c, a.background) > contrast(hi, a.background) ? c : hi)); + // `--ring` is this colour laid directly on `--background` (see `map.ts`), and it's in the contract's + // PAIRS check same as the official themes — so guarantee it the way `ensureContrast` guarantees text, + // rather than only guarding against a background-coloured accent. + return ensureContrast(best, a.background, UI); +} + +export function deriveOmarchyPalette(a: AnsiSource): Palette { + const dark = luminance(parseHex(a.background)) < 0.5; + const mode: Palette['mode'] = dark ? 'dark' : 'light'; + + const darkerBackground = dark ? mix(a.background, '#000000', 0.45) : mix(a.background, '#000000', 0.1); + const darkBackground = dark ? mix(a.background, '#000000', 0.22) : mix(a.background, '#000000', 0.06); + const lighterBackground = dark ? mix(a.background, '#ffffff', 0.07) : mix(a.background, '#000000', 0.035); + + // Faintest → strongest, all pulled toward the background rather than toward a fixed grey, so a warm + // palette's dim text stays warm instead of turning neutral. + const darkForeground = mix(a.foreground, a.background, 0.55); + const lightForeground = mix(a.foreground, a.background, 0.3); + + const accent = pickAccent(a); + const muted = contrast(a.brightBlack, a.background) >= 1.15 ? a.brightBlack : mix(a.foreground, a.background, 0.6); + + return { + mode, + accent, + // Unused by `mapPalette` today (grep confirms `p.selection` has no reader) — kept only because the + // `Palette` type requires it. + selection: mix(a.background, a.foreground, 0.2), + muted, + background: a.background, + darkBackground, + darkerBackground, + lighterBackground, + foreground: a.foreground, + darkForeground, + lightForeground, + brightForeground: a.foreground, + red: a.red, + yellow: a.yellow, + green: a.green, + cyan: a.cyan, + blue: a.blue, + magenta: a.magenta, + // Standard ANSI has no orange slot. Mixing red and yellow reads better as "busy" than falling back to + // plain yellow the way `loadPalette` does for the 3 official themes that omit it. + orange: mix(a.red, a.yellow, 0.5), + brightRed: a.brightRed, + brightYellow: a.brightYellow, + brightGreen: a.brightGreen, + brightCyan: a.brightCyan, + brightBlue: a.brightBlue, + brightMagenta: a.brightMagenta, + }; +} diff --git a/src/workspaces/theme/css/index.css b/src/workspaces/theme/css/index.css index 1cb44279..9d553714 100644 --- a/src/workspaces/theme/css/index.css +++ b/src/workspaces/theme/css/index.css @@ -41,4 +41,153 @@ @import './themes/vantablack.css'; @import './themes/white.css'; +/* Community themes — ported from omarchythemes.com by scripts/port-community-themes.ts. Do not edit this block. */ +@import './themes/aamis.css'; +@import './themes/ado.css'; +@import './themes/adrift.css'; +@import './themes/aetheria.css'; +@import './themes/akaito.css'; +@import './themes/all-hallows-eve.css'; +@import './themes/amberbyte.css'; +@import './themes/amekoji.css'; +@import './themes/anonymous.css'; +@import './themes/apocalypse.css'; +@import './themes/arc-blueberry.css'; +@import './themes/archriot.css'; +@import './themes/archwave.css'; +@import './themes/artzen.css'; +@import './themes/atari.css'; +@import './themes/atelier.css'; +@import './themes/aura.css'; +@import './themes/ayu-dark.css'; +@import './themes/ayu-light.css'; +@import './themes/ayu-mirage.css'; +@import './themes/azure.css'; +@import './themes/azure-glow.css'; +@import './themes/bad-hand.css'; +@import './themes/batman.css'; +@import './themes/batou.css'; +@import './themes/bauhaus.css'; +@import './themes/beachvan.css'; +@import './themes/beta.css'; +@import './themes/black-arch.css'; +@import './themes/blueridge.css'; +@import './themes/brutalism.css'; +@import './themes/caroline-skyline.css'; +@import './themes/catppuccin-mocha.css'; +@import './themes/city-783.css'; +@import './themes/copper-night.css'; +@import './themes/cpunk.css'; +@import './themes/crimson.css'; +@import './themes/dark-xp.css'; +@import './themes/dayfox.css'; +@import './themes/dead-space.css'; +@import './themes/deckard.css'; +@import './themes/delete.css'; +@import './themes/delorean.css'; +@import './themes/demon.css'; +@import './themes/dotrb.css'; +@import './themes/drac.css'; +@import './themes/dracula.css'; +@import './themes/dragon.css'; +@import './themes/dreamwave.css'; +@import './themes/ember-n-ash.css'; +@import './themes/eva-unit-01.css'; +@import './themes/event-horizon.css'; +@import './themes/everblush.css'; +@import './themes/farline.css'; +@import './themes/felix.css'; +@import './themes/flat-dracula.css'; +@import './themes/florida-man.css'; +@import './themes/fluid-glass.css'; +@import './themes/forest-green.css'; +@import './themes/glory-antic.css'; +@import './themes/gold-rush.css'; +@import './themes/gotham-city.css'; +@import './themes/greek-noir.css'; +@import './themes/green-city.css'; +@import './themes/green-garden.css'; +@import './themes/gruber-tsoding.css'; +@import './themes/grudark.css'; +@import './themes/harbor.css'; +@import './themes/hex.css'; +@import './themes/himalaya.css'; +@import './themes/hinterlands.css'; +@import './themes/infernium.css'; +@import './themes/infernium-dark.css'; +@import './themes/killer-klowns.css'; +@import './themes/kurayami.css'; +@import './themes/lain.css'; +@import './themes/lairetam.css'; +@import './themes/latch.css'; +@import './themes/latch-dark.css'; +@import './themes/lowlight.css'; +@import './themes/lunar.css'; +@import './themes/manga.css'; +@import './themes/mapquest.css'; +@import './themes/mars.css'; +@import './themes/mecha-no-onna.css'; +@import './themes/memento-mori.css'; +@import './themes/midnight.css'; +@import './themes/miles-morales.css'; +@import './themes/mocha.css'; +@import './themes/monochrome.css'; +@import './themes/monokai.css'; +@import './themes/monokai-dark.css'; +@import './themes/monolith.css'; +@import './themes/nagai-poolside.css'; +@import './themes/nagai-twilight.css'; +@import './themes/nebulite.css'; +@import './themes/neo-sploosh.css'; +@import './themes/neon-street.css'; +@import './themes/neovoid.css'; +@import './themes/nyc.css'; +@import './themes/oxford.css'; +@import './themes/oxocarbon-dark.css'; +@import './themes/pandora.css'; +@import './themes/pink-blood.css'; +@import './themes/pulsar.css'; +@import './themes/purple-moon.css'; +@import './themes/purplewave.css'; +@import './themes/rainy-night.css'; +@import './themes/rdddcs.css'; +@import './themes/red-monarch.css'; +@import './themes/retropc.css'; +@import './themes/robco.css'; +@import './themes/robco-mojave.css'; +@import './themes/roseofdune.css'; +@import './themes/royal.css'; +@import './themes/rustleaf.css'; +@import './themes/snow-black.css'; +@import './themes/space-bound.css'; +@import './themes/space-monkey.css'; +@import './themes/spark.css'; +@import './themes/spectra.css'; +@import './themes/stellar.css'; +@import './themes/stillmoon.css'; +@import './themes/sunset.css'; +@import './themes/synthetica.css'; +@import './themes/synthwave-84.css'; +@import './themes/taikami.css'; +@import './themes/tarot.css'; +@import './themes/temerald.css'; +@import './themes/terramour.css'; +@import './themes/thegreek.css'; +@import './themes/turbonite.css'; +@import './themes/tycho.css'; +@import './themes/type-17.css'; +@import './themes/unicorn-dream.css'; +@import './themes/van-gogh.css'; +@import './themes/velocity.css'; +@import './themes/velvet-night.css'; +@import './themes/vesper.css'; +@import './themes/vhs80.css'; +@import './themes/vice-city.css'; +@import './themes/void.css'; +@import './themes/vurple.css'; +@import './themes/wasteland.css'; +@import './themes/waveform-dark.css'; +@import './themes/white-gold.css'; +@import './themes/yuugure.css'; + @import './chrome.css'; diff --git a/src/workspaces/theme/css/themes/aamis.css b/src/workspaces/theme/css/themes/aamis.css new file mode 100644 index 00000000..5b254a25 --- /dev/null +++ b/src/workspaces/theme/css/themes/aamis.css @@ -0,0 +1,99 @@ +/* + Aamis — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/vyrx-dev/omarchy-aamis-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='aamis'] { + --background: #080808; + --foreground: #eadccc; + --card: #0f0f0f; + --card-foreground: #eadccc; + --popover: #0f0f0f; + --popover-foreground: #eadccc; + --muted: #202020; + --muted-foreground: #a89f93; + --accent: #202020; + --accent-foreground: #eadccc; + --primary: #e2be8a; + --primary-foreground: #080808; + --secondary: #202020; + --secondary-foreground: #eadccc; + --cta: #e2be8a; + --cta-foreground: #080808; + --ctahover: #e5c698; + --success: #cea37f; + --success-foreground: #080808; + --warning: #f4bb54; + --warning-foreground: #080808; + --destructive: #e25d6c; + --destructive-foreground: #080808; + --info: #e2be8a; + --info-foreground: #080808; + --busy: #eb8c60; + --busy-foreground: #080808; + --busy-ink: #eb8c60; + --border: #3a3734; + --input: #3a3734; + --ring: #e2be8a; + --radius: 0.625rem; + --chart-primary: #e2be8a; + --chart-secondary: #ede4c8; + --status-success: #cea37f; + --status-warning: #f4bb54; + --status-in-progress: #e2be8a; + --page-bg: #080808; + --page-bg-src: ''; + --panel-bg: rgb(15 15 15 / 0.72); + --panel-border: rgb(58 55 52 / 0.9); + --panel-border-bare: rgb(58 55 52 / 0.55); + --panel-raised-bg: rgb(15 15 15 / 0.95); + --panel-raised-border: rgb(58 55 52 / 1); + --panel-accent: #e2be8a; + --panel-header-bg: rgb(32 32 32 / 0.6); + --panel-header-fg: #eadccc; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #0f0f0f; + --glass-bg: rgb(15 15 15 / 0.55); + --glass-border: rgb(58 55 52 / 0.7); + --dock-bg: rgb(15 15 15 / 0.7); + --dock-border: rgb(58 55 52 / 0.8); + --dock-tooltip-bg: #202020; + --header-bg: rgb(15 15 15 / 0.8); + --header-border: rgb(58 55 52 / 0.9); + --header-fg: #eadccc; + --header-blur: 12px; + --pixel-grid-color: rgb(114 107 100 / 0.07); + --card-grid-color: rgb(114 107 100 / 0.05); + --panel-grid-color: rgb(114 107 100 / 0.06); + --scrollbar-thumb: rgb(112 106 106 / 0.6); + --scrollbar-thumb-hover: rgb(112 106 106 / 0.85); + --scrollbar-thin-thumb: rgb(112 106 106 / 0.45); + --scrollbar-thin-thumb-hover: rgb(112 106 106 / 0.7); + --brand: #e2be8a; + --brand-foreground: #080808; + --brand-primary: #e2be8a; + --brand-accent: #e8ab3b; + --brand-warm: #eb8c60; + --brand-deep: #080808; + --brand-muted: #706a6a; + --ink: #eadccc; + --surface-warm: #0f0f0f; + --naturegreen: #cea37f; + --naturegreen-foreground: #080808; + --duck-dark: #eadccc; + --duck-teal: #e8ab3b; + --duck-yellow: #f4bb54; + --duck-orange: #eb8c60; + --duck-forest: #cea37f; + --duck-beige: #252422; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/ado.css b/src/workspaces/theme/css/themes/ado.css new file mode 100644 index 00000000..5c4c4494 --- /dev/null +++ b/src/workspaces/theme/css/themes/ado.css @@ -0,0 +1,99 @@ +/* + Ado — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/errantProgrammer/omarchy-ado-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='ado'] { + --background: #070708; + --foreground: #dfdee6; + --card: #0d0d0f; + --card-foreground: #dfdee6; + --popover: #0d0d0f; + --popover-foreground: #dfdee6; + --muted: #1e1e20; + --muted-foreground: #a09fa6; + --accent: #1e1e20; + --accent-foreground: #dfdee6; + --primary: #4545f5; + --primary-foreground: #dfdee6; + --secondary: #1e1e20; + --secondary-foreground: #dfdee6; + --cta: #4545f5; + --cta-foreground: #dfdee6; + --ctahover: #5b5bf6; + --success: #014761; + --success-foreground: #dfdee6; + --warning: #8bb0c6; + --warning-foreground: #070708; + --destructive: #903034; + --destructive-foreground: #dfdee6; + --info: #4545f5; + --info-foreground: #dfdee6; + --busy: #8e707d; + --busy-foreground: #070708; + --busy-ink: #8e707d; + --border: #363639; + --input: #363639; + --ring: #4545f5; + --radius: 0.625rem; + --chart-primary: #4545f5; + --chart-secondary: #25516a; + --status-success: #014761; + --status-warning: #8bb0c6; + --status-in-progress: #4545f5; + --page-bg: #070708; + --page-bg-src: ''; + --panel-bg: rgb(13 13 15 / 0.72); + --panel-border: rgb(54 54 57 / 0.9); + --panel-border-bare: rgb(54 54 57 / 0.55); + --panel-raised-bg: rgb(13 13 15 / 0.95); + --panel-raised-border: rgb(54 54 57 / 1); + --panel-accent: #4545f5; + --panel-header-bg: rgb(30 30 32 / 0.6); + --panel-header-fg: #dfdee6; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #0d0d0f; + --glass-bg: rgb(13 13 15 / 0.55); + --glass-border: rgb(54 54 57 / 0.7); + --dock-bg: rgb(13 13 15 / 0.7); + --dock-border: rgb(54 54 57 / 0.8); + --dock-tooltip-bg: #1e1e20; + --header-bg: rgb(13 13 15 / 0.8); + --header-border: rgb(54 54 57 / 0.9); + --header-fg: #dfdee6; + --header-blur: 12px; + --pixel-grid-color: rgb(107 107 112 / 0.07); + --card-grid-color: rgb(107 107 112 / 0.05); + --panel-grid-color: rgb(107 107 112 / 0.06); + --scrollbar-thumb: rgb(144 142 170 / 0.6); + --scrollbar-thumb-hover: rgb(144 142 170 / 0.85); + --scrollbar-thin-thumb: rgb(144 142 170 / 0.45); + --scrollbar-thin-thumb-hover: rgb(144 142 170 / 0.7); + --brand: #4545f5; + --brand-foreground: #dfdee6; + --brand-primary: #4545f5; + --brand-accent: #45c1dd; + --brand-warm: #8e707d; + --brand-deep: #070708; + --brand-muted: #908eaa; + --ink: #dfdee6; + --surface-warm: #0d0d0f; + --naturegreen: #014761; + --naturegreen-foreground: #dfdee6; + --duck-dark: #dfdee6; + --duck-teal: #45c1dd; + --duck-yellow: #8bb0c6; + --duck-orange: #8e707d; + --duck-forest: #014761; + --duck-beige: #222225; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/adrift.css b/src/workspaces/theme/css/themes/adrift.css new file mode 100644 index 00000000..a6994e9c --- /dev/null +++ b/src/workspaces/theme/css/themes/adrift.css @@ -0,0 +1,99 @@ +/* + Adrift — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/jaredb1011/omarchy-adrift-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='adrift'] { + --background: #0e1715; + --foreground: #ddd6c2; + --card: #1a2927; + --card-foreground: #ddd6c2; + --popover: #1a2927; + --popover-foreground: #ddd6c2; + --muted: #2a3836; + --muted-foreground: #a3a294; + --accent: #2a3836; + --accent-foreground: #ddd6c2; + --primary: #a9bfbf; + --primary-foreground: #0e1715; + --secondary: #2a3836; + --secondary-foreground: #ddd6c2; + --cta: #a9bfbf; + --cta-foreground: #0e1715; + --ctahover: #b3c7c7; + --success: #66987b; + --success-foreground: #0e1715; + --warning: #bfa26b; + --warning-foreground: #0e1715; + --destructive: #cb645d; + --destructive-foreground: #0e1715; + --info: #a9bfbf; + --info-foreground: #0e1715; + --busy: #c58364; + --busy-foreground: #0e1715; + --busy-ink: #c58364; + --border: #404b46; + --input: #404b46; + --ring: #a9bfbf; + --radius: 0.625rem; + --chart-primary: #a9bfbf; + --chart-secondary: #9a5840; + --status-success: #66987b; + --status-warning: #bfa26b; + --status-in-progress: #a9bfbf; + --page-bg: #0e1715; + --page-bg-src: ''; + --panel-bg: rgb(26 41 39 / 0.72); + --panel-border: rgb(64 75 70 / 0.9); + --panel-border-bare: rgb(64 75 70 / 0.55); + --panel-raised-bg: rgb(26 41 39 / 0.95); + --panel-raised-border: rgb(64 75 70 / 1); + --panel-accent: #a9bfbf; + --panel-header-bg: rgb(42 56 54 / 0.6); + --panel-header-fg: #ddd6c2; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #1a2927; + --glass-bg: rgb(26 41 39 / 0.55); + --glass-border: rgb(64 75 70 / 0.7); + --dock-bg: rgb(26 41 39 / 0.7); + --dock-border: rgb(64 75 70 / 0.8); + --dock-tooltip-bg: #2a3836; + --header-bg: rgb(26 41 39 / 0.8); + --header-border: rgb(64 75 70 / 0.9); + --header-fg: #ddd6c2; + --header-blur: 12px; + --pixel-grid-color: rgb(114 119 109 / 0.07); + --card-grid-color: rgb(114 119 109 / 0.05); + --panel-grid-color: rgb(114 119 109 / 0.06); + --scrollbar-thumb: rgb(181 181 181 / 0.6); + --scrollbar-thumb-hover: rgb(181 181 181 / 0.85); + --scrollbar-thin-thumb: rgb(181 181 181 / 0.45); + --scrollbar-thin-thumb-hover: rgb(181 181 181 / 0.7); + --brand: #a9bfbf; + --brand-foreground: #0e1715; + --brand-primary: #a9bfbf; + --brand-accent: #a9bfbf; + --brand-warm: #c58364; + --brand-deep: #0e1715; + --brand-muted: #b5b5b5; + --ink: #ddd6c2; + --surface-warm: #1a2927; + --naturegreen: #66987b; + --naturegreen-foreground: #0e1715; + --duck-dark: #ddd6c2; + --duck-teal: #a9bfbf; + --duck-yellow: #bfa26b; + --duck-orange: #c58364; + --duck-forest: #66987b; + --duck-beige: #2e3a37; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/aetheria.css b/src/workspaces/theme/css/themes/aetheria.css new file mode 100644 index 00000000..f8a675ef --- /dev/null +++ b/src/workspaces/theme/css/themes/aetheria.css @@ -0,0 +1,99 @@ +/* + Aetheria — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/JJDizz1L/aetheria (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='aetheria'] { + --background: #080510; + --foreground: #14b9b5; + --card: #0e091d; + --card-foreground: #14b9b5; + --popover: #0e091d; + --popover-foreground: #14b9b5; + --muted: #1f1a2d; + --muted-foreground: #309396; + --accent: #1f1a2d; + --accent-foreground: #14b9b5; + --primary: #be3f50; + --primary-foreground: #f3f3f3; + --secondary: #1f1a2d; + --secondary-foreground: #14b9b5; + --cta: #be3f50; + --cta-foreground: #f3f3f3; + --ctahover: #c65665; + --success: #c8e967; + --success-foreground: #080510; + --warning: #7cd699; + --warning-foreground: #080510; + --destructive: #e20342; + --destructive-foreground: #f9f9f9; + --info: #be3f50; + --info-foreground: #f3f3f3; + --busy: #af6d6e; + --busy-foreground: #080510; + --busy-ink: #af6d6e; + --border: #0f2b3b; + --input: #0f2b3b; + --ring: #be3f50; + --radius: 0.625rem; + --chart-primary: #be3f50; + --chart-secondary: #9147a8; + --status-success: #c8e967; + --status-warning: #7cd699; + --status-in-progress: #be3f50; + --page-bg: #080510; + --page-bg-src: ''; + --panel-bg: rgb(14 9 29 / 0.72); + --panel-border: rgb(15 43 59 / 0.9); + --panel-border-bare: rgb(15 43 59 / 0.55); + --panel-raised-bg: rgb(14 9 29 / 0.95); + --panel-raised-border: rgb(15 43 59 / 1); + --panel-accent: #be3f50; + --panel-header-bg: rgb(31 26 45 / 0.6); + --panel-header-fg: #14b9b5; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #0e091d; + --glass-bg: rgb(14 9 29 / 0.55); + --glass-border: rgb(15 43 59 / 0.7); + --dock-bg: rgb(14 9 29 / 0.7); + --dock-border: rgb(15 43 59 / 0.8); + --dock-tooltip-bg: #1f1a2d; + --header-bg: rgb(14 9 29 / 0.8); + --header-border: rgb(15 43 59 / 0.9); + --header-fg: #14b9b5; + --header-blur: 12px; + --pixel-grid-color: rgb(41 105 113 / 0.07); + --card-grid-color: rgb(41 105 113 / 0.05); + --panel-grid-color: rgb(41 105 113 / 0.06); + --scrollbar-thumb: rgb(197 50 83 / 0.6); + --scrollbar-thumb-hover: rgb(197 50 83 / 0.85); + --scrollbar-thin-thumb: rgb(197 50 83 / 0.45); + --scrollbar-thin-thumb-hover: rgb(197 50 83 / 0.7); + --brand: #be3f50; + --brand-foreground: #f3f3f3; + --brand-primary: #be3f50; + --brand-accent: #ff7f41; + --brand-warm: #af6d6e; + --brand-deep: #080510; + --brand-muted: #c53253; + --ink: #14b9b5; + --surface-warm: #0e091d; + --naturegreen: #c8e967; + --naturegreen-foreground: #080510; + --duck-dark: #14b9b5; + --duck-teal: #ff7f41; + --duck-yellow: #7cd699; + --duck-orange: #af6d6e; + --duck-forest: #c8e967; + --duck-beige: #0f1b2c; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/akaito.css b/src/workspaces/theme/css/themes/akaito.css new file mode 100644 index 00000000..aed9ed9c --- /dev/null +++ b/src/workspaces/theme/css/themes/akaito.css @@ -0,0 +1,99 @@ +/* + Akaito — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Light theme (light), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/stannorbvb-cmd/akaito (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='akaito'] { + --background: #f3e4cb; + --foreground: #4d2e1a; + --card: #eadcc4; + --card-foreground: #4d2e1a; + --popover: #eadcc4; + --popover-foreground: #4d2e1a; + --muted: #e4d6bf; + --muted-foreground: #6f5845; + --accent: #e4d6bf; + --accent-foreground: #4d2e1a; + --primary: #a32f1a; + --primary-foreground: #dbcdb7; + --secondary: #e4d6bf; + --secondary-foreground: #4d2e1a; + --cta: #a32f1a; + --cta-foreground: #dbcdb7; + --ctahover: #8f2917; + --success: #a46d2d; + --success-foreground: #0b0a09; + --warning: #a8611f; + --warning-foreground: #faf8f4; + --destructive: #a4373c; + --destructive-foreground: #e0d5c2; + --info: #a32f1a; + --info-foreground: #dbcdb7; + --busy: #a64c2e; + --busy-foreground: #ece5d9; + --busy-ink: #a64c2e; + --border: #d8c7b0; + --input: #d3c2ac; + --ring: #a32f1a; + --radius: 0.625rem; + --chart-primary: #a32f1a; + --chart-secondary: #9c3521; + --status-success: #a46d2d; + --status-warning: #a8611f; + --status-in-progress: #a32f1a; + --page-bg: #f3e4cb; + --page-bg-src: ''; + --panel-bg: rgb(234 220 196 / 0.72); + --panel-border: rgb(216 199 176 / 0.9); + --panel-border-bare: rgb(216 199 176 / 0.55); + --panel-raised-bg: rgb(234 220 196 / 0.95); + --panel-raised-border: rgb(216 199 176 / 1); + --panel-accent: #a32f1a; + --panel-header-bg: rgb(228 214 191 / 0.6); + --panel-header-fg: #4d2e1a; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #eadcc4; + --glass-bg: rgb(234 220 196 / 0.55); + --glass-border: rgb(216 199 176 / 0.7); + --dock-bg: rgb(234 220 196 / 0.7); + --dock-border: rgb(216 199 176 / 0.8); + --dock-tooltip-bg: #e4d6bf; + --header-bg: rgb(234 220 196 / 0.8); + --header-border: rgb(216 199 176 / 0.9); + --header-fg: #4d2e1a; + --header-blur: 12px; + --pixel-grid-color: rgb(139 120 101 / 0.07); + --card-grid-color: rgb(139 120 101 / 0.05); + --panel-grid-color: rgb(139 120 101 / 0.06); + --scrollbar-thumb: rgb(159 130 83 / 0.6); + --scrollbar-thumb-hover: rgb(159 130 83 / 0.85); + --scrollbar-thin-thumb: rgb(159 130 83 / 0.45); + --scrollbar-thin-thumb-hover: rgb(159 130 83 / 0.7); + --brand: #a32f1a; + --brand-foreground: #dbcdb7; + --brand-primary: #a32f1a; + --brand-accent: #755833; + --brand-warm: #a64c2e; + --brand-deep: #e4d6bf; + --brand-muted: #9f8253; + --ink: #4d2e1a; + --surface-warm: #eadcc4; + --naturegreen: #a46d2d; + --naturegreen-foreground: #0b0a09; + --duck-dark: #4d2e1a; + --duck-teal: #755833; + --duck-yellow: #a8611f; + --duck-orange: #a64c2e; + --duck-forest: #a46d2d; + --duck-beige: #dacbb3; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/all-hallows-eve.css b/src/workspaces/theme/css/themes/all-hallows-eve.css new file mode 100644 index 00000000..a0667535 --- /dev/null +++ b/src/workspaces/theme/css/themes/all-hallows-eve.css @@ -0,0 +1,99 @@ +/* + All Hallows Eve — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/guilhermetk/omarchy-all-hallows-eve-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='all-hallows-eve'] { + --background: #000000; + --foreground: #ffffff; + --card: #000000; + --card-foreground: #ffffff; + --popover: #000000; + --popover-foreground: #ffffff; + --muted: #121212; + --muted-foreground: #b3b3b3; + --accent: #121212; + --accent-foreground: #ffffff; + --primary: #3387cc; + --primary-foreground: #000000; + --secondary: #121212; + --secondary-foreground: #ffffff; + --cta: #3387cc; + --cta-foreground: #000000; + --ctahover: #4b95d2; + --success: #66cc33; + --success-foreground: #000000; + --warning: #cc7833; + --warning-foreground: #000000; + --destructive: #c83730; + --destructive-foreground: #ffffff; + --info: #3387cc; + --info-foreground: #000000; + --busy: #ca5832; + --busy-foreground: #000000; + --busy-ink: #ca5832; + --border: #323232; + --input: #323232; + --ring: #3387cc; + --radius: 0.625rem; + --chart-primary: #3387cc; + --chart-secondary: #9933cc; + --status-success: #66cc33; + --status-warning: #cc7833; + --status-in-progress: #3387cc; + --page-bg: #000000; + --page-bg-src: ''; + --panel-bg: rgb(0 0 0 / 0.72); + --panel-border: rgb(50 50 50 / 0.9); + --panel-border-bare: rgb(50 50 50 / 0.55); + --panel-raised-bg: rgb(0 0 0 / 0.95); + --panel-raised-border: rgb(50 50 50 / 1); + --panel-accent: #3387cc; + --panel-header-bg: rgb(18 18 18 / 0.6); + --panel-header-fg: #ffffff; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #000000; + --glass-bg: rgb(0 0 0 / 0.55); + --glass-border: rgb(50 50 50 / 0.7); + --dock-bg: rgb(0 0 0 / 0.7); + --dock-border: rgb(50 50 50 / 0.8); + --dock-tooltip-bg: #121212; + --header-bg: rgb(0 0 0 / 0.8); + --header-border: rgb(50 50 50 / 0.9); + --header-fg: #ffffff; + --header-blur: 12px; + --pixel-grid-color: rgb(115 115 115 / 0.07); + --card-grid-color: rgb(115 115 115 / 0.05); + --panel-grid-color: rgb(115 115 115 / 0.06); + --scrollbar-thumb: rgb(64 64 64 / 0.6); + --scrollbar-thumb-hover: rgb(64 64 64 / 0.85); + --scrollbar-thin-thumb: rgb(64 64 64 / 0.45); + --scrollbar-thin-thumb-hover: rgb(64 64 64 / 0.7); + --brand: #3387cc; + --brand-foreground: #000000; + --brand-primary: #3387cc; + --brand-accent: #cccc33; + --brand-warm: #ca5832; + --brand-deep: #000000; + --brand-muted: #404040; + --ink: #ffffff; + --surface-warm: #000000; + --naturegreen: #66cc33; + --naturegreen-foreground: #000000; + --duck-dark: #ffffff; + --duck-teal: #cccc33; + --duck-yellow: #cc7833; + --duck-orange: #ca5832; + --duck-forest: #66cc33; + --duck-beige: #1a1a1a; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/amberbyte.css b/src/workspaces/theme/css/themes/amberbyte.css new file mode 100644 index 00000000..62b11744 --- /dev/null +++ b/src/workspaces/theme/css/themes/amberbyte.css @@ -0,0 +1,99 @@ +/* + Amberbyte — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/tahfizhabib/omarchy-amberbyte-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='amberbyte'] { + --background: #0f090a; + --foreground: #f2e8e8; + --card: #1b1112; + --card-foreground: #f2e8e8; + --popover: #1b1112; + --popover-foreground: #f2e8e8; + --muted: #2b2223; + --muted-foreground: #b2a8a8; + --accent: #2b2223; + --accent-foreground: #f2e8e8; + --primary: #d66b6b; + --primary-foreground: #0f090a; + --secondary: #2b2223; + --secondary-foreground: #f2e8e8; + --cta: #d66b6b; + --cta-foreground: #0f090a; + --ctahover: #db7d7d; + --success: #c05a5a; + --success-foreground: #0f090a; + --warning: #d66b6b; + --warning-foreground: #0f090a; + --destructive: #b44a4a; + --destructive-foreground: #f5eded; + --info: #d66b6b; + --info-foreground: #0f090a; + --busy: #c55b5b; + --busy-foreground: #0f090a; + --busy-ink: #c55b5b; + --border: #453b3c; + --input: #453b3c; + --ring: #d66b6b; + --radius: 0.625rem; + --chart-primary: #d66b6b; + --chart-secondary: #d66b6b; + --status-success: #c05a5a; + --status-warning: #d66b6b; + --status-in-progress: #d66b6b; + --page-bg: #0f090a; + --page-bg-src: ''; + --panel-bg: rgb(27 17 18 / 0.72); + --panel-border: rgb(69 59 60 / 0.9); + --panel-border-bare: rgb(69 59 60 / 0.55); + --panel-raised-bg: rgb(27 17 18 / 0.95); + --panel-raised-border: rgb(69 59 60 / 1); + --panel-accent: #d66b6b; + --panel-header-bg: rgb(43 34 35 / 0.6); + --panel-header-fg: #f2e8e8; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #1b1112; + --glass-bg: rgb(27 17 18 / 0.55); + --glass-border: rgb(69 59 60 / 0.7); + --dock-bg: rgb(27 17 18 / 0.7); + --dock-border: rgb(69 59 60 / 0.8); + --dock-tooltip-bg: #2b2223; + --header-bg: rgb(27 17 18 / 0.8); + --header-border: rgb(69 59 60 / 0.9); + --header-fg: #f2e8e8; + --header-blur: 12px; + --pixel-grid-color: rgb(124 114 114 / 0.07); + --card-grid-color: rgb(124 114 114 / 0.05); + --panel-grid-color: rgb(124 114 114 / 0.06); + --scrollbar-thumb: rgb(113 103 104 / 0.6); + --scrollbar-thumb-hover: rgb(113 103 104 / 0.85); + --scrollbar-thin-thumb: rgb(113 103 104 / 0.45); + --scrollbar-thin-thumb-hover: rgb(113 103 104 / 0.7); + --brand: #d66b6b; + --brand-foreground: #0f090a; + --brand-primary: #d66b6b; + --brand-accent: #f48a8a; + --brand-warm: #c55b5b; + --brand-deep: #0f090a; + --brand-muted: #716768; + --ink: #f2e8e8; + --surface-warm: #1b1112; + --naturegreen: #c05a5a; + --naturegreen-foreground: #0f090a; + --duck-dark: #f2e8e8; + --duck-teal: #f48a8a; + --duck-yellow: #d66b6b; + --duck-orange: #c55b5b; + --duck-forest: #c05a5a; + --duck-beige: #312727; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/amekoji.css b/src/workspaces/theme/css/themes/amekoji.css new file mode 100644 index 00000000..199273c4 --- /dev/null +++ b/src/workspaces/theme/css/themes/amekoji.css @@ -0,0 +1,99 @@ +/* + Amekoji — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/atif-1402/omarchy-amekoji-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='amekoji'] { + --background: #131617; + --foreground: #dcd6d6; + --card: #232829; + --card-foreground: #dcd6d6; + --popover: #232829; + --popover-foreground: #dcd6d6; + --muted: #323738; + --muted-foreground: #a5a2a2; + --accent: #323738; + --accent-foreground: #dcd6d6; + --primary: #85abbc; + --primary-foreground: #131617; + --secondary: #323738; + --secondary-foreground: #dcd6d6; + --cta: #85abbc; + --cta-foreground: #131617; + --ctahover: #94b5c4; + --success: #98b3a3; + --success-foreground: #131617; + --warning: #93b3a6; + --warning-foreground: #131617; + --destructive: #b39a98; + --destructive-foreground: #131617; + --info: #85abbc; + --info-foreground: #131617; + --busy: #a3a79f; + --busy-foreground: #131617; + --busy-ink: #a3a79f; + --border: #474a4b; + --input: #474a4b; + --ring: #85abbc; + --radius: 0.625rem; + --chart-primary: #85abbc; + --chart-secondary: #bea7b0; + --status-success: #98b3a3; + --status-warning: #93b3a6; + --status-in-progress: #85abbc; + --page-bg: #131617; + --page-bg-src: ''; + --panel-bg: rgb(35 40 41 / 0.72); + --panel-border: rgb(71 74 75 / 0.9); + --panel-border-bare: rgb(71 74 75 / 0.55); + --panel-raised-bg: rgb(35 40 41 / 0.95); + --panel-raised-border: rgb(71 74 75 / 1); + --panel-accent: #85abbc; + --panel-header-bg: rgb(50 55 56 / 0.6); + --panel-header-fg: #dcd6d6; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #232829; + --glass-bg: rgb(35 40 41 / 0.55); + --glass-border: rgb(71 74 75 / 0.7); + --dock-bg: rgb(35 40 41 / 0.7); + --dock-border: rgb(71 74 75 / 0.8); + --dock-tooltip-bg: #323738; + --header-bg: rgb(35 40 41 / 0.8); + --header-border: rgb(71 74 75 / 0.9); + --header-fg: #dcd6d6; + --header-blur: 12px; + --pixel-grid-color: rgb(118 118 119 / 0.07); + --card-grid-color: rgb(118 118 119 / 0.05); + --panel-grid-color: rgb(118 118 119 / 0.06); + --scrollbar-thumb: rgb(120 133 135 / 0.6); + --scrollbar-thumb-hover: rgb(120 133 135 / 0.85); + --scrollbar-thin-thumb: rgb(120 133 135 / 0.45); + --scrollbar-thin-thumb-hover: rgb(120 133 135 / 0.7); + --brand: #85abbc; + --brand-foreground: #131617; + --brand-primary: #85abbc; + --brand-accent: #98b3b3; + --brand-warm: #a3a79f; + --brand-deep: #131617; + --brand-muted: #788587; + --ink: #dcd6d6; + --surface-warm: #232829; + --naturegreen: #98b3a3; + --naturegreen-foreground: #131617; + --duck-dark: #dcd6d6; + --duck-teal: #98b3b3; + --duck-yellow: #93b3a6; + --duck-orange: #a3a79f; + --duck-forest: #98b3a3; + --duck-beige: #36393a; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/anonymous.css b/src/workspaces/theme/css/themes/anonymous.css new file mode 100644 index 00000000..04cb5682 --- /dev/null +++ b/src/workspaces/theme/css/themes/anonymous.css @@ -0,0 +1,99 @@ +/* + Anonymous — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/j4v3l/omarchy-anonymous-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='anonymous'] { + --background: #000000; + --foreground: #fefefe; + --card: #000000; + --card-foreground: #fefefe; + --popover: #000000; + --popover-foreground: #fefefe; + --muted: #121212; + --muted-foreground: #b2b2b2; + --accent: #121212; + --accent-foreground: #fefefe; + --primary: #bdbdbd; + --primary-foreground: #000000; + --secondary: #121212; + --secondary-foreground: #fefefe; + --cta: #bdbdbd; + --cta-foreground: #000000; + --ctahover: #c5c5c5; + --success: #bdbdbd; + --success-foreground: #000000; + --warning: #cfcfcf; + --warning-foreground: #000000; + --destructive: #fefefe; + --destructive-foreground: #000000; + --info: #bdbdbd; + --info-foreground: #000000; + --busy: #e7e7e7; + --busy-foreground: #000000; + --busy-ink: #e7e7e7; + --border: #323232; + --input: #323232; + --ring: #bdbdbd; + --radius: 0.625rem; + --chart-primary: #bdbdbd; + --chart-secondary: #bdbdbd; + --status-success: #bdbdbd; + --status-warning: #cfcfcf; + --status-in-progress: #bdbdbd; + --page-bg: #000000; + --page-bg-src: ''; + --panel-bg: rgb(0 0 0 / 0.72); + --panel-border: rgb(50 50 50 / 0.9); + --panel-border-bare: rgb(50 50 50 / 0.55); + --panel-raised-bg: rgb(0 0 0 / 0.95); + --panel-raised-border: rgb(50 50 50 / 1); + --panel-accent: #bdbdbd; + --panel-header-bg: rgb(18 18 18 / 0.6); + --panel-header-fg: #fefefe; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #000000; + --glass-bg: rgb(0 0 0 / 0.55); + --glass-border: rgb(50 50 50 / 0.7); + --dock-bg: rgb(0 0 0 / 0.7); + --dock-border: rgb(50 50 50 / 0.8); + --dock-tooltip-bg: #121212; + --header-bg: rgb(0 0 0 / 0.8); + --header-border: rgb(50 50 50 / 0.9); + --header-fg: #fefefe; + --header-blur: 12px; + --pixel-grid-color: rgb(114 114 114 / 0.07); + --card-grid-color: rgb(114 114 114 / 0.05); + --panel-grid-color: rgb(114 114 114 / 0.06); + --scrollbar-thumb: rgb(26 26 26 / 0.6); + --scrollbar-thumb-hover: rgb(26 26 26 / 0.85); + --scrollbar-thin-thumb: rgb(26 26 26 / 0.45); + --scrollbar-thin-thumb-hover: rgb(26 26 26 / 0.7); + --brand: #bdbdbd; + --brand-foreground: #000000; + --brand-primary: #bdbdbd; + --brand-accent: #bdbdbd; + --brand-warm: #e7e7e7; + --brand-deep: #000000; + --brand-muted: #1a1a1a; + --ink: #fefefe; + --surface-warm: #000000; + --naturegreen: #bdbdbd; + --naturegreen-foreground: #000000; + --duck-dark: #fefefe; + --duck-teal: #bdbdbd; + --duck-yellow: #cfcfcf; + --duck-orange: #e7e7e7; + --duck-forest: #bdbdbd; + --duck-beige: #191919; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/apocalypse.css b/src/workspaces/theme/css/themes/apocalypse.css new file mode 100644 index 00000000..57b5372a --- /dev/null +++ b/src/workspaces/theme/css/themes/apocalypse.css @@ -0,0 +1,99 @@ +/* + Apocalypse — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/atif-1402/omarchy-apocalypse-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='apocalypse'] { + --background: #090707; + --foreground: #ffffff; + --card: #110d0c; + --card-foreground: #ffffff; + --popover: #110d0c; + --popover-foreground: #ffffff; + --muted: #221e1d; + --muted-foreground: #b8b6b6; + --accent: #221e1d; + --accent-foreground: #ffffff; + --primary: #a8a8ae; + --primary-foreground: #090707; + --secondary: #221e1d; + --secondary-foreground: #ffffff; + --cta: #a8a8ae; + --cta-foreground: #090707; + --ctahover: #b2b2b8; + --success: #98a09b; + --success-foreground: #090707; + --warning: #d3c4b8; + --warning-foreground: #090707; + --destructive: #ab7c7c; + --destructive-foreground: #090707; + --info: #a8a8ae; + --info-foreground: #090707; + --busy: #bfa09a; + --busy-foreground: #090707; + --busy-ink: #bfa09a; + --border: #403c3c; + --input: #403c3c; + --ring: #a8a8ae; + --radius: 0.625rem; + --chart-primary: #a8a8ae; + --chart-secondary: #b6afb5; + --status-success: #98a09b; + --status-warning: #d3c4b8; + --status-in-progress: #a8a8ae; + --page-bg: #090707; + --page-bg-src: ''; + --panel-bg: rgb(17 13 12 / 0.72); + --panel-border: rgb(64 60 60 / 0.9); + --panel-border-bare: rgb(64 60 60 / 0.55); + --panel-raised-bg: rgb(17 13 12 / 0.95); + --panel-raised-border: rgb(64 60 60 / 1); + --panel-accent: #a8a8ae; + --panel-header-bg: rgb(34 30 29 / 0.6); + --panel-header-fg: #ffffff; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #110d0c; + --glass-bg: rgb(17 13 12 / 0.55); + --glass-border: rgb(64 60 60 / 0.7); + --dock-bg: rgb(17 13 12 / 0.7); + --dock-border: rgb(64 60 60 / 0.8); + --dock-tooltip-bg: #221e1d; + --header-bg: rgb(17 13 12 / 0.8); + --header-border: rgb(64 60 60 / 0.9); + --header-fg: #ffffff; + --header-blur: 12px; + --pixel-grid-color: rgb(124 122 121 / 0.07); + --card-grid-color: rgb(124 122 121 / 0.05); + --panel-grid-color: rgb(124 122 121 / 0.06); + --scrollbar-thumb: rgb(140 123 118 / 0.6); + --scrollbar-thumb-hover: rgb(140 123 118 / 0.85); + --scrollbar-thin-thumb: rgb(140 123 118 / 0.45); + --scrollbar-thin-thumb-hover: rgb(140 123 118 / 0.7); + --brand: #a8a8ae; + --brand-foreground: #090707; + --brand-primary: #a8a8ae; + --brand-accent: #b8bdbc; + --brand-warm: #bfa09a; + --brand-deep: #090707; + --brand-muted: #8c7b76; + --ink: #ffffff; + --surface-warm: #110d0c; + --naturegreen: #98a09b; + --naturegreen-foreground: #090707; + --duck-dark: #ffffff; + --duck-teal: #b8bdbc; + --duck-yellow: #d3c4b8; + --duck-orange: #bfa09a; + --duck-forest: #98a09b; + --duck-beige: #292524; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/arc-blueberry.css b/src/workspaces/theme/css/themes/arc-blueberry.css new file mode 100644 index 00000000..35f2e751 --- /dev/null +++ b/src/workspaces/theme/css/themes/arc-blueberry.css @@ -0,0 +1,99 @@ +/* + Arc Blueberry — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/vale-c/omarchy-arc-blueberry (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='arc-blueberry'] { + --background: #090b13; + --foreground: #bcc1dc; + --card: #111422; + --card-foreground: #bcc1dc; + --popover: #111422; + --popover-foreground: #bcc1dc; + --muted: #222431; + --muted-foreground: #898da4; + --accent: #222431; + --accent-foreground: #bcc1dc; + --primary: #69c3ff; + --primary-foreground: #090b13; + --secondary: #222431; + --secondary-foreground: #bcc1dc; + --cta: #69c3ff; + --cta-foreground: #090b13; + --ctahover: #7bcaff; + --success: #3cec85; + --success-foreground: #090b13; + --warning: #eacd61; + --warning-foreground: #090b13; + --destructive: #e35535; + --destructive-foreground: #090b13; + --info: #69c3ff; + --info-foreground: #090b13; + --busy: #e7914b; + --busy-foreground: #090b13; + --busy-ink: #e7914b; + --border: #333646; + --input: #333646; + --ring: #69c3ff; + --radius: 0.625rem; + --chart-primary: #69c3ff; + --chart-secondary: #f38cec; + --status-success: #3cec85; + --status-warning: #eacd61; + --status-in-progress: #69c3ff; + --page-bg: #090b13; + --page-bg-src: ''; + --panel-bg: rgb(17 20 34 / 0.72); + --panel-border: rgb(51 54 70 / 0.9); + --panel-border-bare: rgb(51 54 70 / 0.55); + --panel-raised-bg: rgb(17 20 34 / 0.95); + --panel-raised-border: rgb(51 54 70 / 1); + --panel-accent: #69c3ff; + --panel-header-bg: rgb(34 36 49 / 0.6); + --panel-header-fg: #bcc1dc; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #111422; + --glass-bg: rgb(17 20 34 / 0.55); + --glass-border: rgb(51 54 70 / 0.7); + --dock-bg: rgb(17 20 34 / 0.7); + --dock-border: rgb(51 54 70 / 0.8); + --dock-tooltip-bg: #222431; + --header-bg: rgb(17 20 34 / 0.8); + --header-border: rgb(51 54 70 / 0.9); + --header-fg: #bcc1dc; + --header-blur: 12px; + --pixel-grid-color: rgb(94 98 118 / 0.07); + --card-grid-color: rgb(94 98 118 / 0.05); + --panel-grid-color: rgb(94 98 118 / 0.06); + --scrollbar-thumb: rgb(49 59 98 / 0.6); + --scrollbar-thumb-hover: rgb(49 59 98 / 0.85); + --scrollbar-thin-thumb: rgb(49 59 98 / 0.45); + --scrollbar-thin-thumb-hover: rgb(49 59 98 / 0.7); + --brand: #69c3ff; + --brand-foreground: #090b13; + --brand-primary: #69c3ff; + --brand-accent: #22ecdb; + --brand-warm: #e7914b; + --brand-deep: #090b13; + --brand-muted: #313b62; + --ink: #bcc1dc; + --surface-warm: #111422; + --naturegreen: #3cec85; + --naturegreen-foreground: #090b13; + --duck-dark: #bcc1dc; + --duck-teal: #22ecdb; + --duck-yellow: #eacd61; + --duck-orange: #e7914b; + --duck-forest: #3cec85; + --duck-beige: #222535; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/archriot.css b/src/workspaces/theme/css/themes/archriot.css new file mode 100644 index 00000000..abd5fc84 --- /dev/null +++ b/src/workspaces/theme/css/themes/archriot.css @@ -0,0 +1,99 @@ +/* + Archriot — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/CyphrRiot/omarchy-archriot-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='archriot'] { + --background: #0e0f15; + --foreground: #ffffff; + --card: #1a1b26; + --card-foreground: #ffffff; + --popover: #1a1b26; + --popover-foreground: #ffffff; + --muted: #2a2b35; + --muted-foreground: #babbbe; + --accent: #2a2b35; + --accent-foreground: #ffffff; + --primary: #7da6ff; + --primary-foreground: #0e0f15; + --secondary: #2a2b35; + --secondary-foreground: #ffffff; + --cta: #7da6ff; + --cta-foreground: #0e0f15; + --ctahover: #8db1ff; + --success: #9ece6a; + --success-foreground: #0e0f15; + --warning: #e0af68; + --warning-foreground: #0e0f15; + --destructive: #ff7a93; + --destructive-foreground: #0e0f15; + --info: #7da6ff; + --info-foreground: #0e0f15; + --busy: #f0957e; + --busy-foreground: #0e0f15; + --busy-ink: #f0957e; + --border: #474851; + --input: #474851; + --ring: #7da6ff; + --radius: 0.625rem; + --chart-primary: #7da6ff; + --chart-secondary: #bb9af7; + --status-success: #9ece6a; + --status-warning: #e0af68; + --status-in-progress: #7da6ff; + --page-bg: #0e0f15; + --page-bg-src: ''; + --panel-bg: rgb(26 27 38 / 0.72); + --panel-border: rgb(71 72 81 / 0.9); + --panel-border-bare: rgb(71 72 81 / 0.55); + --panel-raised-bg: rgb(26 27 38 / 0.95); + --panel-raised-border: rgb(71 72 81 / 1); + --panel-accent: #7da6ff; + --panel-header-bg: rgb(42 43 53 / 0.6); + --panel-header-fg: #ffffff; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #1a1b26; + --glass-bg: rgb(26 27 38 / 0.55); + --glass-border: rgb(71 72 81 / 0.7); + --dock-bg: rgb(26 27 38 / 0.7); + --dock-border: rgb(71 72 81 / 0.8); + --dock-tooltip-bg: #2a2b35; + --header-bg: rgb(26 27 38 / 0.8); + --header-border: rgb(71 72 81 / 0.9); + --header-fg: #ffffff; + --header-blur: 12px; + --pixel-grid-color: rgb(129 130 136 / 0.07); + --card-grid-color: rgb(129 130 136 / 0.05); + --panel-grid-color: rgb(129 130 136 / 0.06); + --scrollbar-thumb: rgb(86 95 137 / 0.6); + --scrollbar-thumb-hover: rgb(86 95 137 / 0.85); + --scrollbar-thin-thumb: rgb(86 95 137 / 0.45); + --scrollbar-thin-thumb-hover: rgb(86 95 137 / 0.7); + --brand: #7da6ff; + --brand-foreground: #0e0f15; + --brand-primary: #7da6ff; + --brand-accent: #0db9d7; + --brand-warm: #f0957e; + --brand-deep: #0e0f15; + --brand-muted: #565f89; + --ink: #ffffff; + --surface-warm: #1a1b26; + --naturegreen: #9ece6a; + --naturegreen-foreground: #0e0f15; + --duck-dark: #ffffff; + --duck-teal: #0db9d7; + --duck-yellow: #e0af68; + --duck-orange: #f0957e; + --duck-forest: #9ece6a; + --duck-beige: #31323c; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/archwave.css b/src/workspaces/theme/css/themes/archwave.css new file mode 100644 index 00000000..fe3c217e --- /dev/null +++ b/src/workspaces/theme/css/themes/archwave.css @@ -0,0 +1,99 @@ +/* + Archwave — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/davidguttman/archwave (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='archwave'] { + --background: #0e0719; + --foreground: #d4a5ff; + --card: #1a0d2e; + --card-foreground: #d4a5ff; + --popover: #1a0d2e; + --popover-foreground: #d4a5ff; + --muted: #2a1e3d; + --muted-foreground: #a17ec3; + --accent: #2a1e3d; + --accent-foreground: #d4a5ff; + --primary: #8b9aff; + --primary-foreground: #0e0719; + --secondary: #2a1e3d; + --secondary-foreground: #d4a5ff; + --cta: #8b9aff; + --cta-foreground: #0e0719; + --ctahover: #99a6ff; + --success: #5ffbf1; + --success-foreground: #0e0719; + --warning: #f9f871; + --warning-foreground: #0e0719; + --destructive: #ff6ec7; + --destructive-foreground: #0e0719; + --info: #8b9aff; + --info-foreground: #0e0719; + --busy: #fcb39c; + --busy-foreground: #0e0719; + --busy-ink: #fcb39c; + --border: #3e2b57; + --input: #3e2b57; + --ring: #8b9aff; + --radius: 0.625rem; + --chart-primary: #8b9aff; + --chart-secondary: #f4a5ff; + --status-success: #5ffbf1; + --status-warning: #f9f871; + --status-in-progress: #8b9aff; + --page-bg: #0e0719; + --page-bg-src: ''; + --panel-bg: rgb(26 13 46 / 0.72); + --panel-border: rgb(62 43 87 / 0.9); + --panel-border-bare: rgb(62 43 87 / 0.55); + --panel-raised-bg: rgb(26 13 46 / 0.95); + --panel-raised-border: rgb(62 43 87 / 1); + --panel-accent: #8b9aff; + --panel-header-bg: rgb(42 30 61 / 0.6); + --panel-header-fg: #d4a5ff; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #1a0d2e; + --glass-bg: rgb(26 13 46 / 0.55); + --glass-border: rgb(62 43 87 / 0.7); + --dock-bg: rgb(26 13 46 / 0.7); + --dock-border: rgb(62 43 87 / 0.8); + --dock-tooltip-bg: #2a1e3d; + --header-bg: rgb(26 13 46 / 0.8); + --header-border: rgb(62 43 87 / 0.9); + --header-fg: #d4a5ff; + --header-blur: 12px; + --pixel-grid-color: rgb(117 90 146 / 0.07); + --card-grid-color: rgb(117 90 146 / 0.05); + --panel-grid-color: rgb(117 90 146 / 0.06); + --scrollbar-thumb: rgb(84 58 110 / 0.6); + --scrollbar-thumb-hover: rgb(84 58 110 / 0.85); + --scrollbar-thin-thumb: rgb(84 58 110 / 0.45); + --scrollbar-thin-thumb-hover: rgb(84 58 110 / 0.7); + --brand: #8b9aff; + --brand-foreground: #0e0719; + --brand-primary: #8b9aff; + --brand-accent: #5ffbf1; + --brand-warm: #fcb39c; + --brand-deep: #0e0719; + --brand-muted: #543a6e; + --ink: #d4a5ff; + --surface-warm: #1a0d2e; + --naturegreen: #5ffbf1; + --naturegreen-foreground: #0e0719; + --duck-dark: #d4a5ff; + --duck-teal: #5ffbf1; + --duck-yellow: #f9f871; + --duck-orange: #fcb39c; + --duck-forest: #5ffbf1; + --duck-beige: #2d1c43; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/artzen.css b/src/workspaces/theme/css/themes/artzen.css new file mode 100644 index 00000000..ca6257fa --- /dev/null +++ b/src/workspaces/theme/css/themes/artzen.css @@ -0,0 +1,99 @@ +/* + Artzen — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/tahfizhabib/omarchy-artzen-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='artzen'] { + --background: #0d0f11; + --foreground: #fdf9f8; + --card: #181c1f; + --card-foreground: #fdf9f8; + --popover: #181c1f; + --popover-foreground: #fdf9f8; + --muted: #282c2f; + --muted-foreground: #b8b7b7; + --accent: #282c2f; + --accent-foreground: #fdf9f8; + --primary: #b97670; + --primary-foreground: #0d0f11; + --secondary: #282c2f; + --secondary-foreground: #fdf9f8; + --cta: #b97670; + --cta-foreground: #0d0f11; + --ctahover: #c18681; + --success: #9f6769; + --success-foreground: #000000; + --warning: #bb6d6c; + --warning-foreground: #0d0f11; + --destructive: #9b584d; + --destructive-foreground: #fdf9f8; + --info: #b97670; + --info-foreground: #0d0f11; + --busy: #ab635d; + --busy-foreground: #060606; + --busy-ink: #af6b65; + --border: #45474a; + --input: #45474a; + --ring: #b97670; + --radius: 0.625rem; + --chart-primary: #b97670; + --chart-secondary: #9a8c8a; + --status-success: #9f6769; + --status-warning: #bb6d6c; + --status-in-progress: #b97670; + --page-bg: #0d0f11; + --page-bg-src: ''; + --panel-bg: rgb(24 28 31 / 0.72); + --panel-border: rgb(69 71 74 / 0.9); + --panel-border-bare: rgb(69 71 74 / 0.55); + --panel-raised-bg: rgb(24 28 31 / 0.95); + --panel-raised-border: rgb(69 71 74 / 1); + --panel-accent: #b97670; + --panel-header-bg: rgb(40 44 47 / 0.6); + --panel-header-fg: #fdf9f8; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #181c1f; + --glass-bg: rgb(24 28 31 / 0.55); + --glass-border: rgb(69 71 74 / 0.7); + --dock-bg: rgb(24 28 31 / 0.7); + --dock-border: rgb(69 71 74 / 0.8); + --dock-tooltip-bg: #282c2f; + --header-bg: rgb(24 28 31 / 0.8); + --header-border: rgb(69 71 74 / 0.9); + --header-fg: #fdf9f8; + --header-blur: 12px; + --pixel-grid-color: rgb(127 127 129 / 0.07); + --card-grid-color: rgb(127 127 129 / 0.05); + --panel-grid-color: rgb(127 127 129 / 0.06); + --scrollbar-thumb: rgb(177 141 133 / 0.6); + --scrollbar-thumb-hover: rgb(177 141 133 / 0.85); + --scrollbar-thin-thumb: rgb(177 141 133 / 0.45); + --scrollbar-thin-thumb-hover: rgb(177 141 133 / 0.7); + --brand: #b97670; + --brand-foreground: #0d0f11; + --brand-primary: #b97670; + --brand-accent: #da7a6f; + --brand-warm: #ab635d; + --brand-deep: #0d0f11; + --brand-muted: #b18d85; + --ink: #fdf9f8; + --surface-warm: #181c1f; + --naturegreen: #9f6769; + --naturegreen-foreground: #000000; + --duck-dark: #fdf9f8; + --duck-teal: #da7a6f; + --duck-yellow: #bb6d6c; + --duck-orange: #ab635d; + --duck-forest: #9f6769; + --duck-beige: #2f3235; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/atari.css b/src/workspaces/theme/css/themes/atari.css new file mode 100644 index 00000000..d8d00153 --- /dev/null +++ b/src/workspaces/theme/css/themes/atari.css @@ -0,0 +1,99 @@ +/* + Atari — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/atif-1402/omarchy-atari-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='atari'] { + --background: #171317; + --foreground: #dcd6d6; + --card: #292329; + --card-foreground: #dcd6d6; + --popover: #292329; + --popover-foreground: #dcd6d6; + --muted: #383238; + --muted-foreground: #a6a0a2; + --accent: #383238; + --accent-foreground: #dcd6d6; + --primary: #9db9b2; + --primary-foreground: #171317; + --secondary: #383238; + --secondary-foreground: #dcd6d6; + --cta: #9db9b2; + --cta-foreground: #171317; + --ctahover: #a9c1bb; + --success: #79be9a; + --success-foreground: #171317; + --warning: #c3b283; + --warning-foreground: #171317; + --destructive: #b9746f; + --destructive-foreground: #171317; + --info: #9db9b2; + --info-foreground: #171317; + --busy: #be9379; + --busy-foreground: #171317; + --busy-ink: #be9379; + --border: #4c464b; + --input: #4c464b; + --ring: #9db9b2; + --radius: 0.625rem; + --chart-primary: #9db9b2; + --chart-secondary: #cd9b98; + --status-success: #79be9a; + --status-warning: #c3b283; + --status-in-progress: #9db9b2; + --page-bg: #171317; + --page-bg-src: ''; + --panel-bg: rgb(41 35 41 / 0.72); + --panel-border: rgb(76 70 75 / 0.9); + --panel-border-bare: rgb(76 70 75 / 0.55); + --panel-raised-bg: rgb(41 35 41 / 0.95); + --panel-raised-border: rgb(76 70 75 / 1); + --panel-accent: #9db9b2; + --panel-header-bg: rgb(56 50 56 / 0.6); + --panel-header-fg: #dcd6d6; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #292329; + --glass-bg: rgb(41 35 41 / 0.55); + --glass-border: rgb(76 70 75 / 0.7); + --dock-bg: rgb(41 35 41 / 0.7); + --dock-border: rgb(76 70 75 / 0.8); + --dock-tooltip-bg: #383238; + --header-bg: rgb(41 35 41 / 0.8); + --header-border: rgb(76 70 75 / 0.9); + --header-fg: #dcd6d6; + --header-blur: 12px; + --pixel-grid-color: rgb(122 116 119 / 0.07); + --card-grid-color: rgb(122 116 119 / 0.05); + --panel-grid-color: rgb(122 116 119 / 0.06); + --scrollbar-thumb: rgb(135 120 135 / 0.6); + --scrollbar-thumb-hover: rgb(135 120 135 / 0.85); + --scrollbar-thin-thumb: rgb(135 120 135 / 0.45); + --scrollbar-thin-thumb-hover: rgb(135 120 135 / 0.7); + --brand: #9db9b2; + --brand-foreground: #171317; + --brand-primary: #9db9b2; + --brand-accent: #a2d2b9; + --brand-warm: #be9379; + --brand-deep: #171317; + --brand-muted: #877887; + --ink: #dcd6d6; + --surface-warm: #292329; + --naturegreen: #79be9a; + --naturegreen-foreground: #171317; + --duck-dark: #dcd6d6; + --duck-teal: #a2d2b9; + --duck-yellow: #c3b283; + --duck-orange: #be9379; + --duck-forest: #79be9a; + --duck-beige: #3b353a; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/atelier.css b/src/workspaces/theme/css/themes/atelier.css new file mode 100644 index 00000000..92325247 --- /dev/null +++ b/src/workspaces/theme/css/themes/atelier.css @@ -0,0 +1,99 @@ +/* + Atelier — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/atif-1402/omarchy-atelier-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='atelier'] { + --background: #131713; + --foreground: #dcd6d6; + --card: #232923; + --card-foreground: #dcd6d6; + --popover: #232923; + --popover-foreground: #dcd6d6; + --muted: #323832; + --muted-foreground: #a5a2a0; + --accent: #323832; + --accent-foreground: #dcd6d6; + --primary: #9eb8b5; + --primary-foreground: #131713; + --secondary: #323832; + --secondary-foreground: #dcd6d6; + --cta: #9eb8b5; + --cta-foreground: #131713; + --ctahover: #aac1be; + --success: #8cab8f; + --success-foreground: #131713; + --warning: #b1b195; + --warning-foreground: #131713; + --destructive: #c5a687; + --destructive-foreground: #131713; + --info: #9eb8b5; + --info-foreground: #131713; + --busy: #bbac8e; + --busy-foreground: #131713; + --busy-ink: #bbac8e; + --border: #474b46; + --input: #474b46; + --ring: #9eb8b5; + --radius: 0.625rem; + --chart-primary: #9eb8b5; + --chart-secondary: #c5a587; + --status-success: #8cab8f; + --status-warning: #b1b195; + --status-in-progress: #9eb8b5; + --page-bg: #131713; + --page-bg-src: ''; + --panel-bg: rgb(35 41 35 / 0.72); + --panel-border: rgb(71 75 70 / 0.9); + --panel-border-bare: rgb(71 75 70 / 0.55); + --panel-raised-bg: rgb(35 41 35 / 0.95); + --panel-raised-border: rgb(71 75 70 / 1); + --panel-accent: #9eb8b5; + --panel-header-bg: rgb(50 56 50 / 0.6); + --panel-header-fg: #dcd6d6; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #232923; + --glass-bg: rgb(35 41 35 / 0.55); + --glass-border: rgb(71 75 70 / 0.7); + --dock-bg: rgb(35 41 35 / 0.7); + --dock-border: rgb(71 75 70 / 0.8); + --dock-tooltip-bg: #323832; + --header-bg: rgb(35 41 35 / 0.8); + --header-border: rgb(71 75 70 / 0.9); + --header-fg: #dcd6d6; + --header-blur: 12px; + --pixel-grid-color: rgb(118 119 116 / 0.07); + --card-grid-color: rgb(118 119 116 / 0.05); + --panel-grid-color: rgb(118 119 116 / 0.06); + --scrollbar-thumb: rgb(120 135 120 / 0.6); + --scrollbar-thumb-hover: rgb(120 135 120 / 0.85); + --scrollbar-thin-thumb: rgb(120 135 120 / 0.45); + --scrollbar-thin-thumb-hover: rgb(120 135 120 / 0.7); + --brand: #9eb8b5; + --brand-foreground: #131713; + --brand-primary: #9eb8b5; + --brand-accent: #b0c5b9; + --brand-warm: #bbac8e; + --brand-deep: #131713; + --brand-muted: #788778; + --ink: #dcd6d6; + --surface-warm: #232923; + --naturegreen: #8cab8f; + --naturegreen-foreground: #131713; + --duck-dark: #dcd6d6; + --duck-teal: #b0c5b9; + --duck-yellow: #b1b195; + --duck-orange: #bbac8e; + --duck-forest: #8cab8f; + --duck-beige: #363a35; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/aura.css b/src/workspaces/theme/css/themes/aura.css new file mode 100644 index 00000000..0badfb3f --- /dev/null +++ b/src/workspaces/theme/css/themes/aura.css @@ -0,0 +1,99 @@ +/* + Aura — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/bjarneo/omarchy-aura-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='aura'] { + --background: #16171e; + --foreground: #f8f8f2; + --card: #282a36; + --card-foreground: #f8f8f2; + --popover: #282a36; + --popover-foreground: #f8f8f2; + --muted: #373944; + --muted-foreground: #bababa; + --accent: #373944; + --accent-foreground: #f8f8f2; + --primary: #8be9fd; + --primary-foreground: #16171e; + --secondary: #373944; + --secondary-foreground: #f8f8f2; + --cta: #8be9fd; + --cta-foreground: #16171e; + --ctahover: #99ecfd; + --success: #8be9fd; + --success-foreground: #16171e; + --warning: #cbc3e3; + --warning-foreground: #16171e; + --destructive: #ffafcc; + --destructive-foreground: #16171e; + --info: #8be9fd; + --info-foreground: #16171e; + --busy: #e5b9d8; + --busy-foreground: #16171e; + --busy-ink: #e5b9d8; + --border: #51525b; + --input: #51525b; + --ring: #8be9fd; + --radius: 0.625rem; + --chart-primary: #8be9fd; + --chart-secondary: #ffc8dd; + --status-success: #8be9fd; + --status-warning: #cbc3e3; + --status-in-progress: #8be9fd; + --page-bg: #16171e; + --page-bg-src: ''; + --panel-bg: rgb(40 42 54 / 0.72); + --panel-border: rgb(81 82 91 / 0.9); + --panel-border-bare: rgb(81 82 91 / 0.55); + --panel-raised-bg: rgb(40 42 54 / 0.95); + --panel-raised-border: rgb(81 82 91 / 1); + --panel-accent: #8be9fd; + --panel-header-bg: rgb(55 57 68 / 0.6); + --panel-header-fg: #f8f8f2; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #282a36; + --glass-bg: rgb(40 42 54 / 0.55); + --glass-border: rgb(81 82 91 / 0.7); + --dock-bg: rgb(40 42 54 / 0.7); + --dock-border: rgb(81 82 91 / 0.8); + --dock-tooltip-bg: #373944; + --header-bg: rgb(40 42 54 / 0.8); + --header-border: rgb(81 82 91 / 0.9); + --header-fg: #f8f8f2; + --header-blur: 12px; + --pixel-grid-color: rgb(134 135 139 / 0.07); + --card-grid-color: rgb(134 135 139 / 0.05); + --panel-grid-color: rgb(134 135 139 / 0.06); + --scrollbar-thumb: rgb(68 71 90 / 0.6); + --scrollbar-thumb-hover: rgb(68 71 90 / 0.85); + --scrollbar-thin-thumb: rgb(68 71 90 / 0.45); + --scrollbar-thin-thumb-hover: rgb(68 71 90 / 0.7); + --brand: #8be9fd; + --brand-foreground: #16171e; + --brand-primary: #8be9fd; + --brand-accent: #8be9fd; + --brand-warm: #e5b9d8; + --brand-deep: #16171e; + --brand-muted: #44475a; + --ink: #f8f8f2; + --surface-warm: #282a36; + --naturegreen: #8be9fd; + --naturegreen-foreground: #16171e; + --duck-dark: #f8f8f2; + --duck-teal: #8be9fd; + --duck-yellow: #cbc3e3; + --duck-orange: #e5b9d8; + --duck-forest: #8be9fd; + --duck-beige: #3d3f49; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/ayu-dark.css b/src/workspaces/theme/css/themes/ayu-dark.css new file mode 100644 index 00000000..587b905a --- /dev/null +++ b/src/workspaces/theme/css/themes/ayu-dark.css @@ -0,0 +1,99 @@ +/* + Ayu Dark — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/fdidron/omarchy-ayu-dark-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='ayu-dark'] { + --background: #06080b; + --foreground: #bfbdb6; + --card: #0b0e14; + --card-foreground: #bfbdb6; + --popover: #0b0e14; + --popover-foreground: #bfbdb6; + --muted: #1c1f24; + --muted-foreground: #898985; + --accent: #1c1f24; + --accent-foreground: #bfbdb6; + --primary: #53bdfa; + --primary-foreground: #06080b; + --secondary: #1c1f24; + --secondary-foreground: #bfbdb6; + --cta: #53bdfa; + --cta-foreground: #06080b; + --ctahover: #68c5fb; + --success: #7fd962; + --success-foreground: #06080b; + --warning: #f9af4f; + --warning-foreground: #06080b; + --destructive: #ea6c73; + --destructive-foreground: #06080b; + --info: #53bdfa; + --info-foreground: #06080b; + --busy: #f28e61; + --busy-foreground: #06080b; + --busy-ink: #f28e61; + --border: #2e3034; + --input: #2e3034; + --ring: #53bdfa; + --radius: 0.625rem; + --chart-primary: #53bdfa; + --chart-secondary: #cda1fa; + --status-success: #7fd962; + --status-warning: #f9af4f; + --status-in-progress: #53bdfa; + --page-bg: #06080b; + --page-bg-src: ''; + --panel-bg: rgb(11 14 20 / 0.72); + --panel-border: rgb(46 48 52 / 0.9); + --panel-border-bare: rgb(46 48 52 / 0.55); + --panel-raised-bg: rgb(11 14 20 / 0.95); + --panel-raised-border: rgb(46 48 52 / 1); + --panel-accent: #53bdfa; + --panel-header-bg: rgb(28 31 36 / 0.6); + --panel-header-fg: #bfbdb6; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #0b0e14; + --glass-bg: rgb(11 14 20 / 0.55); + --glass-border: rgb(46 48 52 / 0.7); + --dock-bg: rgb(11 14 20 / 0.7); + --dock-border: rgb(46 48 52 / 0.8); + --dock-tooltip-bg: #1c1f24; + --header-bg: rgb(11 14 20 / 0.8); + --header-border: rgb(46 48 52 / 0.9); + --header-fg: #bfbdb6; + --header-blur: 12px; + --pixel-grid-color: rgb(96 97 97 / 0.07); + --card-grid-color: rgb(96 97 97 / 0.05); + --panel-grid-color: rgb(96 97 97 / 0.06); + --scrollbar-thumb: rgb(104 104 104 / 0.6); + --scrollbar-thumb-hover: rgb(104 104 104 / 0.85); + --scrollbar-thin-thumb: rgb(104 104 104 / 0.45); + --scrollbar-thin-thumb-hover: rgb(104 104 104 / 0.7); + --brand: #53bdfa; + --brand-foreground: #06080b; + --brand-primary: #53bdfa; + --brand-accent: #90e1c6; + --brand-warm: #f28e61; + --brand-deep: #06080b; + --brand-muted: #686868; + --ink: #bfbdb6; + --surface-warm: #0b0e14; + --naturegreen: #7fd962; + --naturegreen-foreground: #06080b; + --duck-dark: #bfbdb6; + --duck-teal: #90e1c6; + --duck-yellow: #f9af4f; + --duck-orange: #f28e61; + --duck-forest: #7fd962; + --duck-beige: #1d2024; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/ayu-light.css b/src/workspaces/theme/css/themes/ayu-light.css new file mode 100644 index 00000000..4d4bbdcc --- /dev/null +++ b/src/workspaces/theme/css/themes/ayu-light.css @@ -0,0 +1,99 @@ +/* + Ayu Light — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Light theme (light), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/fdidron/omarchy-ayu-light-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='ayu-light'] { + --background: #f8f9fa; + --foreground: #5c6166; + --card: #eff0f1; + --card-foreground: #5c6166; + --popover: #eff0f1; + --popover-foreground: #5c6166; + --muted: #e9eaeb; + --muted-foreground: #65686a; + --accent: #e9eaeb; + --accent-foreground: #5c6166; + --primary: #3095db; + --primary-foreground: #272727; + --secondary: #e9eaeb; + --secondary-foreground: #5c6166; + --cta: #3095db; + --cta-foreground: #272727; + --ctahover: #2a83c1; + --success: #6cbf43; + --success-foreground: #3c3f42; + --warning: #eca944; + --warning-foreground: #43464a; + --destructive: #ea6c6d; + --destructive-foreground: #2d2d2d; + --info: #3199e1; + --info-foreground: #272727; + --busy: #eb8b59; + --busy-foreground: #373a3d; + --busy-ink: #a5613e; + --border: #dedfe1; + --input: #d3d4d6; + --ring: #3095db; + --radius: 0.625rem; + --chart-primary: #3095db; + --chart-secondary: #9e75c7; + --status-success: #6cbf43; + --status-warning: #eca944; + --status-in-progress: #3199e1; + --page-bg: #f8f9fa; + --page-bg-src: ''; + --panel-bg: rgb(239 240 241 / 0.72); + --panel-border: rgb(222 223 225 / 0.9); + --panel-border-bare: rgb(222 223 225 / 0.55); + --panel-raised-bg: rgb(239 240 241 / 0.95); + --panel-raised-border: rgb(222 223 225 / 1); + --panel-accent: #3095db; + --panel-header-bg: rgb(233 234 235 / 0.6); + --panel-header-fg: #5c6166; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #eff0f1; + --glass-bg: rgb(239 240 241 / 0.55); + --glass-border: rgb(222 223 225 / 0.7); + --dock-bg: rgb(239 240 241 / 0.7); + --dock-border: rgb(222 223 225 / 0.8); + --dock-tooltip-bg: #e9eaeb; + --header-bg: rgb(239 240 241 / 0.8); + --header-border: rgb(222 223 225 / 0.9); + --header-fg: #5c6166; + --header-blur: 12px; + --pixel-grid-color: rgb(134 136 137 / 0.07); + --card-grid-color: rgb(134 136 137 / 0.05); + --panel-grid-color: rgb(134 136 137 / 0.06); + --scrollbar-thumb: rgb(104 104 104 / 0.6); + --scrollbar-thumb-hover: rgb(104 104 104 / 0.85); + --scrollbar-thin-thumb: rgb(104 104 104 / 0.45); + --scrollbar-thin-thumb-hover: rgb(104 104 104 / 0.7); + --brand: #3095db; + --brand-foreground: #272727; + --brand-primary: #3095db; + --brand-accent: #46ba94; + --brand-warm: #eb8b59; + --brand-deep: #e9eaeb; + --brand-muted: #686868; + --ink: #5c6166; + --surface-warm: #eff0f1; + --naturegreen: #6cbf43; + --naturegreen-foreground: #3c3f42; + --duck-dark: #5c6166; + --duck-teal: #46ba94; + --duck-yellow: #eca944; + --duck-orange: #eb8b59; + --duck-forest: #6cbf43; + --duck-beige: #e0e2e3; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/ayu-mirage.css b/src/workspaces/theme/css/themes/ayu-mirage.css new file mode 100644 index 00000000..7985faf4 --- /dev/null +++ b/src/workspaces/theme/css/themes/ayu-mirage.css @@ -0,0 +1,99 @@ +/* + Ayu Mirage — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/fdidron/omarchy-ayu-mirage-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='ayu-mirage'] { + --background: #11141a; + --foreground: #cccac2; + --card: #1f2430; + --card-foreground: #cccac2; + --popover: #1f2430; + --popover-foreground: #cccac2; + --muted: #2f333e; + --muted-foreground: #9b9b99; + --accent: #2f333e; + --accent-foreground: #cccac2; + --primary: #6dcbfa; + --primary-foreground: #11141a; + --secondary: #2f333e; + --secondary-foreground: #cccac2; + --cta: #6dcbfa; + --cta-foreground: #11141a; + --ctahover: #7fd1fb; + --success: #87d96c; + --success-foreground: #11141a; + --warning: #facc6e; + --warning-foreground: #11141a; + --destructive: #ed8274; + --destructive-foreground: #11141a; + --info: #6dcbfa; + --info-foreground: #11141a; + --busy: #f4a771; + --busy-foreground: #11141a; + --busy-ink: #f4a771; + --border: #41444d; + --input: #41444d; + --ring: #6dcbfa; + --radius: 0.625rem; + --chart-primary: #6dcbfa; + --chart-secondary: #dabafa; + --status-success: #87d96c; + --status-warning: #facc6e; + --status-in-progress: #6dcbfa; + --page-bg: #11141a; + --page-bg-src: ''; + --panel-bg: rgb(31 36 48 / 0.72); + --panel-border: rgb(65 68 77 / 0.9); + --panel-border-bare: rgb(65 68 77 / 0.55); + --panel-raised-bg: rgb(31 36 48 / 0.95); + --panel-raised-border: rgb(65 68 77 / 1); + --panel-accent: #6dcbfa; + --panel-header-bg: rgb(47 51 62 / 0.6); + --panel-header-fg: #cccac2; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #1f2430; + --glass-bg: rgb(31 36 48 / 0.55); + --glass-border: rgb(65 68 77 / 0.7); + --dock-bg: rgb(31 36 48 / 0.7); + --dock-border: rgb(65 68 77 / 0.8); + --dock-tooltip-bg: #2f333e; + --header-bg: rgb(31 36 48 / 0.8); + --header-border: rgb(65 68 77 / 0.9); + --header-fg: #cccac2; + --header-blur: 12px; + --pixel-grid-color: rgb(109 111 114 / 0.07); + --card-grid-color: rgb(109 111 114 / 0.05); + --panel-grid-color: rgb(109 111 114 / 0.06); + --scrollbar-thumb: rgb(104 104 104 / 0.6); + --scrollbar-thumb-hover: rgb(104 104 104 / 0.85); + --scrollbar-thin-thumb: rgb(104 104 104 / 0.45); + --scrollbar-thin-thumb-hover: rgb(104 104 104 / 0.7); + --brand: #6dcbfa; + --brand-foreground: #11141a; + --brand-primary: #6dcbfa; + --brand-accent: #90e1c6; + --brand-warm: #f4a771; + --brand-deep: #11141a; + --brand-muted: #686868; + --ink: #cccac2; + --surface-warm: #1f2430; + --naturegreen: #87d96c; + --naturegreen-foreground: #11141a; + --duck-dark: #cccac2; + --duck-teal: #90e1c6; + --duck-yellow: #facc6e; + --duck-orange: #f4a771; + --duck-forest: #87d96c; + --duck-beige: #30353f; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/azure-glow.css b/src/workspaces/theme/css/themes/azure-glow.css new file mode 100644 index 00000000..cecacbe7 --- /dev/null +++ b/src/workspaces/theme/css/themes/azure-glow.css @@ -0,0 +1,99 @@ +/* + Azure Glow — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/Hydradevx/omarchy-azure-glow-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='azure-glow'] { + --background: #06080e; + --foreground: #a8dfff; + --card: #0a0f1a; + --card-foreground: #a8dfff; + --popover: #0a0f1a; + --popover-foreground: #a8dfff; + --muted: #1b202a; + --muted-foreground: #79a1ba; + --accent: #1b202a; + --accent-foreground: #a8dfff; + --primary: #00aaff; + --primary-foreground: #06080e; + --secondary: #1b202a; + --secondary-foreground: #a8dfff; + --cta: #00aaff; + --cta-foreground: #06080e; + --ctahover: #1fb4ff; + --success: #00e0b8; + --success-foreground: #06080e; + --warning: #33ccff; + --warning-foreground: #06080e; + --destructive: #0099cc; + --destructive-foreground: #06080e; + --info: #00aaff; + --info-foreground: #06080e; + --busy: #1ab3e6; + --busy-foreground: #06080e; + --busy-ink: #1ab3e6; + --border: #293847; + --input: #293847; + --ring: #00aaff; + --radius: 0.625rem; + --chart-primary: #00aaff; + --chart-secondary: #3399ff; + --status-success: #00e0b8; + --status-warning: #33ccff; + --status-in-progress: #00aaff; + --page-bg: #06080e; + --page-bg-src: ''; + --panel-bg: rgb(10 15 26 / 0.72); + --panel-border: rgb(41 56 71 / 0.9); + --panel-border-bare: rgb(41 56 71 / 0.55); + --panel-raised-bg: rgb(10 15 26 / 0.95); + --panel-raised-border: rgb(41 56 71 / 1); + --panel-accent: #00aaff; + --panel-header-bg: rgb(27 32 42 / 0.6); + --panel-header-fg: #a8dfff; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #0a0f1a; + --glass-bg: rgb(10 15 26 / 0.55); + --glass-border: rgb(41 56 71 / 0.7); + --dock-bg: rgb(10 15 26 / 0.7); + --dock-border: rgb(41 56 71 / 0.8); + --dock-tooltip-bg: #1b202a; + --header-bg: rgb(10 15 26 / 0.8); + --header-border: rgb(41 56 71 / 0.9); + --header-fg: #a8dfff; + --header-blur: 12px; + --pixel-grid-color: rgb(81 109 129 / 0.07); + --card-grid-color: rgb(81 109 129 / 0.05); + --panel-grid-color: rgb(81 109 129 / 0.06); + --scrollbar-thumb: rgb(18 50 71 / 0.6); + --scrollbar-thumb-hover: rgb(18 50 71 / 0.85); + --scrollbar-thin-thumb: rgb(18 50 71 / 0.45); + --scrollbar-thin-thumb-hover: rgb(18 50 71 / 0.7); + --brand: #00aaff; + --brand-foreground: #06080e; + --brand-primary: #00aaff; + --brand-accent: #66e0ff; + --brand-warm: #1ab3e6; + --brand-deep: #06080e; + --brand-muted: #123247; + --ink: #a8dfff; + --surface-warm: #0a0f1a; + --naturegreen: #00e0b8; + --naturegreen-foreground: #06080e; + --duck-dark: #a8dfff; + --duck-teal: #66e0ff; + --duck-yellow: #33ccff; + --duck-orange: #1ab3e6; + --duck-forest: #00e0b8; + --duck-beige: #1a2431; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/azure.css b/src/workspaces/theme/css/themes/azure.css new file mode 100644 index 00000000..25c7bfc8 --- /dev/null +++ b/src/workspaces/theme/css/themes/azure.css @@ -0,0 +1,99 @@ +/* + Azure — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/tahfizhabib/omarchy-azure-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='azure'] { + --background: #0d141f; + --foreground: #eff3f8; + --card: #182538; + --card-foreground: #eff3f8; + --popover: #182538; + --popover-foreground: #eff3f8; + --muted: #283446; + --muted-foreground: #afb5be; + --accent: #283446; + --accent-foreground: #eff3f8; + --primary: #8da1c8; + --primary-foreground: #0d141f; + --secondary: #283446; + --secondary-foreground: #eff3f8; + --cta: #8da1c8; + --cta-foreground: #0d141f; + --ctahover: #9baccf; + --success: #61a7d6; + --success-foreground: #0d141f; + --warning: #6cabda; + --warning-foreground: #0d141f; + --destructive: #969293; + --destructive-foreground: #0d141f; + --info: #8da1c8; + --info-foreground: #0d141f; + --busy: #819fb7; + --busy-foreground: #0d141f; + --busy-ink: #819fb7; + --border: #424d5e; + --input: #424d5e; + --ring: #8da1c8; + --radius: 0.625rem; + --chart-primary: #8da1c8; + --chart-secondary: #a0adc5; + --status-success: #61a7d6; + --status-warning: #6cabda; + --status-in-progress: #8da1c8; + --page-bg: #0d141f; + --page-bg-src: ''; + --panel-bg: rgb(24 37 56 / 0.72); + --panel-border: rgb(66 77 94 / 0.9); + --panel-border-bare: rgb(66 77 94 / 0.55); + --panel-raised-bg: rgb(24 37 56 / 0.95); + --panel-raised-border: rgb(66 77 94 / 1); + --panel-accent: #8da1c8; + --panel-header-bg: rgb(40 52 70 / 0.6); + --panel-header-fg: #eff3f8; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #182538; + --glass-bg: rgb(24 37 56 / 0.55); + --glass-border: rgb(66 77 94 / 0.7); + --dock-bg: rgb(24 37 56 / 0.7); + --dock-border: rgb(66 77 94 / 0.8); + --dock-tooltip-bg: #283446; + --header-bg: rgb(24 37 56 / 0.8); + --header-border: rgb(66 77 94 / 0.9); + --header-fg: #eff3f8; + --header-blur: 12px; + --pixel-grid-color: rgb(121 130 142 / 0.07); + --card-grid-color: rgb(121 130 142 / 0.05); + --panel-grid-color: rgb(121 130 142 / 0.06); + --scrollbar-thumb: rgb(73 88 109 / 0.6); + --scrollbar-thumb-hover: rgb(73 88 109 / 0.85); + --scrollbar-thin-thumb: rgb(73 88 109 / 0.45); + --scrollbar-thin-thumb-hover: rgb(73 88 109 / 0.7); + --brand: #8da1c8; + --brand-foreground: #0d141f; + --brand-primary: #8da1c8; + --brand-accent: #5693c4; + --brand-warm: #819fb7; + --brand-deep: #0d141f; + --brand-muted: #49586d; + --ink: #eff3f8; + --surface-warm: #182538; + --naturegreen: #61a7d6; + --naturegreen-foreground: #0d141f; + --duck-dark: #eff3f8; + --duck-teal: #5693c4; + --duck-yellow: #6cabda; + --duck-orange: #819fb7; + --duck-forest: #61a7d6; + --duck-beige: #2e3a4b; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/bad-hand.css b/src/workspaces/theme/css/themes/bad-hand.css new file mode 100644 index 00000000..ada69212 --- /dev/null +++ b/src/workspaces/theme/css/themes/bad-hand.css @@ -0,0 +1,99 @@ +/* + Bad Hand — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/bjornramberg/omarchy-bad-hand-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='bad-hand'] { + --background: #110b09; + --foreground: #bdb09d; + --card: #1e1411; + --card-foreground: #bdb09d; + --popover: #1e1411; + --popover-foreground: #bdb09d; + --muted: #2e2422; + --muted-foreground: #988e81; + --accent: #2e2422; + --accent-foreground: #bdb09d; + --primary: #f5efe1; + --primary-foreground: #110b09; + --secondary: #2e2422; + --secondary-foreground: #bdb09d; + --cta: #f5efe1; + --cta-foreground: #110b09; + --ctahover: #f6f1e5; + --success: #921416; + --success-foreground: #c2b6a4; + --warning: #856839; + --warning-foreground: #f3f3f3; + --destructive: #5a0a0a; + --destructive-foreground: #bdb09d; + --info: #4d3a2b; + --info-foreground: #bdb09d; + --busy: #703922; + --busy-foreground: #c2b6a4; + --busy-ink: #9b7464; + --border: #3d332c; + --input: #3d332c; + --ring: #f5efe1; + --radius: 0.625rem; + --chart-primary: #f5efe1; + --chart-secondary: #c2b28c; + --status-success: #921416; + --status-warning: #856839; + --status-in-progress: #4d3a2b; + --page-bg: #110b09; + --page-bg-src: ''; + --panel-bg: rgb(30 20 17 / 0.72); + --panel-border: rgb(61 51 44 / 0.9); + --panel-border-bare: rgb(61 51 44 / 0.55); + --panel-raised-bg: rgb(30 20 17 / 0.95); + --panel-raised-border: rgb(61 51 44 / 1); + --panel-accent: #f5efe1; + --panel-header-bg: rgb(46 36 34 / 0.6); + --panel-header-fg: #bdb09d; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #1e1411; + --glass-bg: rgb(30 20 17 / 0.55); + --glass-border: rgb(61 51 44 / 0.7); + --dock-bg: rgb(30 20 17 / 0.7); + --dock-border: rgb(61 51 44 / 0.8); + --dock-tooltip-bg: #2e2422; + --header-bg: rgb(30 20 17 / 0.8); + --header-border: rgb(61 51 44 / 0.9); + --header-fg: #bdb09d; + --header-blur: 12px; + --pixel-grid-color: rgb(110 98 89 / 0.07); + --card-grid-color: rgb(110 98 89 / 0.05); + --panel-grid-color: rgb(110 98 89 / 0.06); + --scrollbar-thumb: rgb(53 41 36 / 0.6); + --scrollbar-thumb-hover: rgb(53 41 36 / 0.85); + --scrollbar-thin-thumb: rgb(53 41 36 / 0.45); + --scrollbar-thin-thumb-hover: rgb(53 41 36 / 0.7); + --brand: #f5efe1; + --brand-foreground: #110b09; + --brand-primary: #f5efe1; + --brand-accent: #e4d8c1; + --brand-warm: #703922; + --brand-deep: #110b09; + --brand-muted: #352924; + --ink: #bdb09d; + --surface-warm: #1e1411; + --naturegreen: #921416; + --naturegreen-foreground: #c2b6a4; + --duck-dark: #bdb09d; + --duck-teal: #e4d8c1; + --duck-yellow: #856839; + --duck-orange: #703922; + --duck-forest: #921416; + --duck-beige: #2e241f; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/batman.css b/src/workspaces/theme/css/themes/batman.css new file mode 100644 index 00000000..f7e9b14a --- /dev/null +++ b/src/workspaces/theme/css/themes/batman.css @@ -0,0 +1,99 @@ +/* + Batman — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/OldJobobo/omarchy-batman-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='batman'] { + --background: #0f1011; + --foreground: #a7a8a3; + --card: #1b1d1e; + --card-foreground: #a7a8a3; + --popover: #1b1d1e; + --popover-foreground: #a7a8a3; + --muted: #2b2d2e; + --muted-foreground: #949592; + --accent: #2b2d2e; + --accent-foreground: #a7a8a3; + --primary: #737174; + --primary-foreground: #f9f9f9; + --secondary: #2b2d2e; + --secondary-foreground: #a7a8a3; + --cta: #737174; + --cta-foreground: #f9f9f9; + --ctahover: #848285; + --success: #c8be46; + --success-foreground: #0f1011; + --warning: #f4fd22; + --warning-foreground: #0f1011; + --destructive: #e6dc44; + --destructive-foreground: #0f1011; + --info: #737174; + --info-foreground: #f9f9f9; + --busy: #eded33; + --busy-foreground: #0f1011; + --busy-ink: #eded33; + --border: #363838; + --input: #363838; + --ring: #737174; + --radius: 0.625rem; + --chart-primary: #737174; + --chart-secondary: #747271; + --status-success: #c8be46; + --status-warning: #f4fd22; + --status-in-progress: #737174; + --page-bg: #0f1011; + --page-bg-src: ''; + --panel-bg: rgb(27 29 30 / 0.72); + --panel-border: rgb(54 56 56 / 0.9); + --panel-border-bare: rgb(54 56 56 / 0.55); + --panel-raised-bg: rgb(27 29 30 / 0.95); + --panel-raised-border: rgb(54 56 56 / 1); + --panel-accent: #737174; + --panel-header-bg: rgb(43 45 46 / 0.6); + --panel-header-fg: #a7a8a3; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #1b1d1e; + --glass-bg: rgb(27 29 30 / 0.55); + --glass-border: rgb(54 56 56 / 0.7); + --dock-bg: rgb(27 29 30 / 0.7); + --dock-border: rgb(54 56 56 / 0.8); + --dock-tooltip-bg: #2b2d2e; + --header-bg: rgb(27 29 30 / 0.8); + --header-border: rgb(54 56 56 / 0.9); + --header-fg: #a7a8a3; + --header-blur: 12px; + --pixel-grid-color: rgb(102 104 102 / 0.07); + --card-grid-color: rgb(102 104 102 / 0.05); + --panel-grid-color: rgb(102 104 102 / 0.06); + --scrollbar-thumb: rgb(80 83 84 / 0.6); + --scrollbar-thumb-hover: rgb(80 83 84 / 0.85); + --scrollbar-thin-thumb: rgb(80 83 84 / 0.45); + --scrollbar-thin-thumb-hover: rgb(80 83 84 / 0.7); + --brand: #737174; + --brand-foreground: #f9f9f9; + --brand-primary: #737174; + --brand-accent: #62605f; + --brand-warm: #eded33; + --brand-deep: #0f1011; + --brand-muted: #505354; + --ink: #a7a8a3; + --surface-warm: #1b1d1e; + --naturegreen: #c8be46; + --naturegreen-foreground: #0f1011; + --duck-dark: #a7a8a3; + --duck-teal: #62605f; + --duck-yellow: #f4fd22; + --duck-orange: #eded33; + --duck-forest: #c8be46; + --duck-beige: #292b2b; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/batou.css b/src/workspaces/theme/css/themes/batou.css new file mode 100644 index 00000000..a250f76c --- /dev/null +++ b/src/workspaces/theme/css/themes/batou.css @@ -0,0 +1,99 @@ +/* + Batou — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/HANCORE-linux/omarchy-batou-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='batou'] { + --background: #0a0a0a; + --foreground: #a4a4a4; + --card: #121212; + --card-foreground: #a4a4a4; + --popover: #121212; + --popover-foreground: #a4a4a4; + --muted: #232323; + --muted-foreground: #8c8c8c; + --accent: #232323; + --accent-foreground: #a4a4a4; + --primary: #605d5b; + --primary-foreground: #dadada; + --secondary: #232323; + --secondary-foreground: #a4a4a4; + --cta: #605d5b; + --cta-foreground: #dadada; + --ctahover: #73706f; + --success: #a5a297; + --success-foreground: #0a0a0a; + --warning: #c6c4b0; + --warning-foreground: #0a0a0a; + --destructive: #e19e74; + --destructive-foreground: #0a0a0a; + --info: #605d5b; + --info-foreground: #dadada; + --busy: #d4b192; + --busy-foreground: #0a0a0a; + --busy-ink: #d4b192; + --border: #2f2f2f; + --input: #2f2f2f; + --ring: #605d5b; + --radius: 0.625rem; + --chart-primary: #605d5b; + --chart-secondary: #8a8575; + --status-success: #a5a297; + --status-warning: #c6c4b0; + --status-in-progress: #605d5b; + --page-bg: #0a0a0a; + --page-bg-src: ''; + --panel-bg: rgb(18 18 18 / 0.72); + --panel-border: rgb(47 47 47 / 0.9); + --panel-border-bare: rgb(47 47 47 / 0.55); + --panel-raised-bg: rgb(18 18 18 / 0.95); + --panel-raised-border: rgb(47 47 47 / 1); + --panel-accent: #605d5b; + --panel-header-bg: rgb(35 35 35 / 0.6); + --panel-header-fg: #a4a4a4; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #121212; + --glass-bg: rgb(18 18 18 / 0.55); + --glass-border: rgb(47 47 47 / 0.7); + --dock-bg: rgb(18 18 18 / 0.7); + --dock-border: rgb(47 47 47 / 0.8); + --dock-tooltip-bg: #232323; + --header-bg: rgb(18 18 18 / 0.8); + --header-border: rgb(47 47 47 / 0.9); + --header-fg: #a4a4a4; + --header-blur: 12px; + --pixel-grid-color: rgb(97 97 97 / 0.07); + --card-grid-color: rgb(97 97 97 / 0.05); + --panel-grid-color: rgb(97 97 97 / 0.06); + --scrollbar-thumb: rgb(56 55 53 / 0.6); + --scrollbar-thumb-hover: rgb(56 55 53 / 0.85); + --scrollbar-thin-thumb: rgb(56 55 53 / 0.45); + --scrollbar-thin-thumb-hover: rgb(56 55 53 / 0.7); + --brand: #605d5b; + --brand-foreground: #dadada; + --brand-primary: #605d5b; + --brand-accent: #c2bbb0; + --brand-warm: #d4b192; + --brand-deep: #0a0a0a; + --brand-muted: #383735; + --ink: #a4a4a4; + --surface-warm: #121212; + --naturegreen: #a5a297; + --naturegreen-foreground: #0a0a0a; + --duck-dark: #a4a4a4; + --duck-teal: #c2bbb0; + --duck-yellow: #c6c4b0; + --duck-orange: #d4b192; + --duck-forest: #a5a297; + --duck-beige: #212121; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/bauhaus.css b/src/workspaces/theme/css/themes/bauhaus.css new file mode 100644 index 00000000..547a35cc --- /dev/null +++ b/src/workspaces/theme/css/themes/bauhaus.css @@ -0,0 +1,99 @@ +/* + Bauhaus — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/somerocketeer/omarchy-bauhaus-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='bauhaus'] { + --background: #090a0d; + --foreground: #eaeff5; + --card: #101318; + --card-foreground: #eaeff5; + --popover: #101318; + --popover-foreground: #eaeff5; + --muted: #212428; + --muted-foreground: #a9adb3; + --accent: #212428; + --accent-foreground: #eaeff5; + --primary: #8999aa; + --primary-foreground: #090a0d; + --secondary: #212428; + --secondary-foreground: #eaeff5; + --cta: #8999aa; + --cta-foreground: #090a0d; + --ctahover: #97a5b4; + --success: #789fa2; + --success-foreground: #090a0d; + --warning: #e7a46f; + --warning-foreground: #090a0d; + --destructive: #cb886d; + --destructive-foreground: #090a0d; + --info: #8999aa; + --info-foreground: #090a0d; + --busy: #d9966e; + --busy-foreground: #090a0d; + --busy-ink: #d9966e; + --border: #3b3e43; + --input: #3b3e43; + --ring: #8999aa; + --radius: 0.625rem; + --chart-primary: #8999aa; + --chart-secondary: #8d758f; + --status-success: #789fa2; + --status-warning: #e7a46f; + --status-in-progress: #8999aa; + --page-bg: #090a0d; + --page-bg-src: ''; + --panel-bg: rgb(16 19 24 / 0.72); + --panel-border: rgb(59 62 67 / 0.9); + --panel-border-bare: rgb(59 62 67 / 0.55); + --panel-raised-bg: rgb(16 19 24 / 0.95); + --panel-raised-border: rgb(59 62 67 / 1); + --panel-accent: #8999aa; + --panel-header-bg: rgb(33 36 40 / 0.6); + --panel-header-fg: #eaeff5; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #101318; + --glass-bg: rgb(16 19 24 / 0.55); + --glass-border: rgb(59 62 67 / 0.7); + --dock-bg: rgb(16 19 24 / 0.7); + --dock-border: rgb(59 62 67 / 0.8); + --dock-tooltip-bg: #212428; + --header-bg: rgb(16 19 24 / 0.8); + --header-border: rgb(59 62 67 / 0.9); + --header-fg: #eaeff5; + --header-blur: 12px; + --pixel-grid-color: rgb(114 118 123 / 0.07); + --card-grid-color: rgb(114 118 123 / 0.05); + --panel-grid-color: rgb(114 118 123 / 0.06); + --scrollbar-thumb: rgb(58 63 76 / 0.6); + --scrollbar-thumb-hover: rgb(58 63 76 / 0.85); + --scrollbar-thin-thumb: rgb(58 63 76 / 0.45); + --scrollbar-thin-thumb-hover: rgb(58 63 76 / 0.7); + --brand: #8999aa; + --brand-foreground: #090a0d; + --brand-primary: #8999aa; + --brand-accent: #809d9e; + --brand-warm: #d9966e; + --brand-deep: #090a0d; + --brand-muted: #3a3f4c; + --ink: #eaeff5; + --surface-warm: #101318; + --naturegreen: #789fa2; + --naturegreen-foreground: #090a0d; + --duck-dark: #eaeff5; + --duck-teal: #809d9e; + --duck-yellow: #e7a46f; + --duck-orange: #d9966e; + --duck-forest: #789fa2; + --duck-beige: #26292e; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/beachvan.css b/src/workspaces/theme/css/themes/beachvan.css new file mode 100644 index 00000000..04b1fde7 --- /dev/null +++ b/src/workspaces/theme/css/themes/beachvan.css @@ -0,0 +1,99 @@ +/* + Beachvan — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/haripako/omarchy-BeachVan-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='beachvan'] { + --background: #0f181d; + --foreground: #dee3eb; + --card: #1b2b34; + --card-foreground: #dee3eb; + --popover: #1b2b34; + --popover-foreground: #dee3eb; + --muted: #2b3a42; + --muted-foreground: #a4acb4; + --accent: #2b3a42; + --accent-foreground: #dee3eb; + --primary: #6d9dca; + --primary-foreground: #0f181d; + --secondary: #2b3a42; + --secondary-foreground: #dee3eb; + --cta: #6d9dca; + --cta-foreground: #0f181d; + --ctahover: #7fa9d0; + --success: #9fc69a; + --success-foreground: #0f181d; + --warning: #f8c76b; + --warning-foreground: #0f181d; + --destructive: #ea6770; + --destructive-foreground: #0f181d; + --info: #6d9dca; + --info-foreground: #0f181d; + --busy: #f1976e; + --busy-foreground: #0f181d; + --busy-ink: #f1976e; + --border: #414f58; + --input: #414f58; + --ring: #6d9dca; + --radius: 0.625rem; + --chart-primary: #6d9dca; + --chart-secondary: #c49ac4; + --status-success: #9fc69a; + --status-warning: #f8c76b; + --status-in-progress: #6d9dca; + --page-bg: #0f181d; + --page-bg-src: ''; + --panel-bg: rgb(27 43 52 / 0.72); + --panel-border: rgb(65 79 88 / 0.9); + --panel-border-bare: rgb(65 79 88 / 0.55); + --panel-raised-bg: rgb(27 43 52 / 0.95); + --panel-raised-border: rgb(65 79 88 / 1); + --panel-accent: #6d9dca; + --panel-header-bg: rgb(43 58 66 / 0.6); + --panel-header-fg: #dee3eb; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #1b2b34; + --glass-bg: rgb(27 43 52 / 0.55); + --glass-border: rgb(65 79 88 / 0.7); + --dock-bg: rgb(27 43 52 / 0.7); + --dock-border: rgb(65 79 88 / 0.8); + --dock-tooltip-bg: #2b3a42; + --header-bg: rgb(27 43 52 / 0.8); + --header-border: rgb(65 79 88 / 0.9); + --header-fg: #dee3eb; + --header-blur: 12px; + --pixel-grid-color: rgb(115 126 134 / 0.07); + --card-grid-color: rgb(115 126 134 / 0.05); + --panel-grid-color: rgb(115 126 134 / 0.06); + --scrollbar-thumb: rgb(106 116 124 / 0.6); + --scrollbar-thumb-hover: rgb(106 116 124 / 0.85); + --scrollbar-thin-thumb: rgb(106 116 124 / 0.45); + --scrollbar-thin-thumb-hover: rgb(106 116 124 / 0.7); + --brand: #6d9dca; + --brand-foreground: #0f181d; + --brand-primary: #6d9dca; + --brand-accent: #66b0af; + --brand-warm: #f1976e; + --brand-deep: #0f181d; + --brand-muted: #6a747c; + --ink: #dee3eb; + --surface-warm: #1b2b34; + --naturegreen: #9fc69a; + --naturegreen-foreground: #0f181d; + --duck-dark: #dee3eb; + --duck-teal: #66b0af; + --duck-yellow: #f8c76b; + --duck-orange: #f1976e; + --duck-forest: #9fc69a; + --duck-beige: #2f3d46; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/beta.css b/src/workspaces/theme/css/themes/beta.css new file mode 100644 index 00000000..2d6efab1 --- /dev/null +++ b/src/workspaces/theme/css/themes/beta.css @@ -0,0 +1,99 @@ +/* + Beta — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/jjdizz1l/beta (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='beta'] { + --background: #120212; + --foreground: #ffeca0; + --card: #210321; + --card-foreground: #ffeca0; + --popover: #210321; + --popover-foreground: #ffeca0; + --muted: #311531; + --muted-foreground: #bca67a; + --accent: #311531; + --accent-foreground: #ffeca0; + --primary: #5090f8; + --primary-foreground: #120212; + --secondary: #311531; + --secondary-foreground: #ffeca0; + --cta: #5090f8; + --cta-foreground: #120212; + --ctahover: #659df9; + --success: #7ad573; + --success-foreground: #120212; + --warning: #f2c256; + --warning-foreground: #120212; + --destructive: #e71852; + --destructive-foreground: #0d010d; + --info: #5090f8; + --info-foreground: #120212; + --busy: #ed6d54; + --busy-foreground: #120212; + --busy-ink: #ed6d54; + --border: #4c313a; + --input: #4c313a; + --ring: #5090f8; + --radius: 0.625rem; + --chart-primary: #5090f8; + --chart-secondary: #9d58f0; + --status-success: #7ad573; + --status-warning: #f2c256; + --status-in-progress: #5090f8; + --page-bg: #120212; + --page-bg-src: ''; + --panel-bg: rgb(33 3 33 / 0.72); + --panel-border: rgb(76 49 58 / 0.9); + --panel-border-bare: rgb(76 49 58 / 0.55); + --panel-raised-bg: rgb(33 3 33 / 0.95); + --panel-raised-border: rgb(76 49 58 / 1); + --panel-accent: #5090f8; + --panel-header-bg: rgb(49 21 49 / 0.6); + --panel-header-fg: #ffeca0; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #210321; + --glass-bg: rgb(33 3 33 / 0.55); + --glass-border: rgb(76 49 58 / 0.7); + --dock-bg: rgb(33 3 33 / 0.7); + --dock-border: rgb(76 49 58 / 0.8); + --dock-tooltip-bg: #311531; + --header-bg: rgb(33 3 33 / 0.8); + --header-border: rgb(76 49 58 / 0.9); + --header-fg: #ffeca0; + --header-blur: 12px; + --pixel-grid-color: rgb(133 108 90 / 0.07); + --card-grid-color: rgb(133 108 90 / 0.05); + --panel-grid-color: rgb(133 108 90 / 0.06); + --scrollbar-thumb: rgb(171 84 136 / 0.6); + --scrollbar-thumb-hover: rgb(171 84 136 / 0.85); + --scrollbar-thin-thumb: rgb(171 84 136 / 0.45); + --scrollbar-thin-thumb-hover: rgb(171 84 136 / 0.7); + --brand: #5090f8; + --brand-foreground: #120212; + --brand-primary: #5090f8; + --brand-accent: #53d0bc; + --brand-warm: #ed6d54; + --brand-deep: #120212; + --brand-muted: #ab5488; + --ink: #ffeca0; + --surface-warm: #210321; + --naturegreen: #7ad573; + --naturegreen-foreground: #120212; + --duck-dark: #ffeca0; + --duck-teal: #53d0bc; + --duck-yellow: #f2c256; + --duck-orange: #ed6d54; + --duck-forest: #7ad573; + --duck-beige: #371a2e; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/black-arch.css b/src/workspaces/theme/css/themes/black-arch.css new file mode 100644 index 00000000..85c8008e --- /dev/null +++ b/src/workspaces/theme/css/themes/black-arch.css @@ -0,0 +1,99 @@ +/* + Black Arch — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/ankur311sudo/black_arch (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='black-arch'] { + --background: #000000; + --foreground: #ffffff; + --card: #000000; + --card-foreground: #ffffff; + --popover: #000000; + --popover-foreground: #ffffff; + --muted: #121212; + --muted-foreground: #b3b3b3; + --accent: #121212; + --accent-foreground: #ffffff; + --primary: #989898; + --primary-foreground: #000000; + --secondary: #121212; + --secondary-foreground: #ffffff; + --cta: #989898; + --cta-foreground: #000000; + --ctahover: #a4a4a4; + --success: #8e8e8e; + --success-foreground: #000000; + --warning: #b9b9b9; + --warning-foreground: #000000; + --destructive: #646464; + --destructive-foreground: #ffffff; + --info: #989898; + --info-foreground: #000000; + --busy: #8f8f8f; + --busy-foreground: #000000; + --busy-ink: #8f8f8f; + --border: #323232; + --input: #323232; + --ring: #989898; + --radius: 0.625rem; + --chart-primary: #989898; + --chart-secondary: #747474; + --status-success: #8e8e8e; + --status-warning: #b9b9b9; + --status-in-progress: #989898; + --page-bg: #000000; + --page-bg-src: ''; + --panel-bg: rgb(0 0 0 / 0.72); + --panel-border: rgb(50 50 50 / 0.9); + --panel-border-bare: rgb(50 50 50 / 0.55); + --panel-raised-bg: rgb(0 0 0 / 0.95); + --panel-raised-border: rgb(50 50 50 / 1); + --panel-accent: #989898; + --panel-header-bg: rgb(18 18 18 / 0.6); + --panel-header-fg: #ffffff; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #000000; + --glass-bg: rgb(0 0 0 / 0.55); + --glass-border: rgb(50 50 50 / 0.7); + --dock-bg: rgb(0 0 0 / 0.7); + --dock-border: rgb(50 50 50 / 0.8); + --dock-tooltip-bg: #121212; + --header-bg: rgb(0 0 0 / 0.8); + --header-border: rgb(50 50 50 / 0.9); + --header-fg: #ffffff; + --header-blur: 12px; + --pixel-grid-color: rgb(115 115 115 / 0.07); + --card-grid-color: rgb(115 115 115 / 0.05); + --panel-grid-color: rgb(115 115 115 / 0.06); + --scrollbar-thumb: rgb(38 38 38 / 0.6); + --scrollbar-thumb-hover: rgb(38 38 38 / 0.85); + --scrollbar-thin-thumb: rgb(38 38 38 / 0.45); + --scrollbar-thin-thumb-hover: rgb(38 38 38 / 0.7); + --brand: #989898; + --brand-foreground: #000000; + --brand-primary: #989898; + --brand-accent: #585858; + --brand-warm: #8f8f8f; + --brand-deep: #000000; + --brand-muted: #262626; + --ink: #ffffff; + --surface-warm: #000000; + --naturegreen: #8e8e8e; + --naturegreen-foreground: #000000; + --duck-dark: #ffffff; + --duck-teal: #585858; + --duck-yellow: #b9b9b9; + --duck-orange: #8f8f8f; + --duck-forest: #8e8e8e; + --duck-beige: #1a1a1a; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/blueridge.css b/src/workspaces/theme/css/themes/blueridge.css new file mode 100644 index 00000000..7cbcf598 --- /dev/null +++ b/src/workspaces/theme/css/themes/blueridge.css @@ -0,0 +1,99 @@ +/* + Blueridge — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/hipsterusername/omarchy-blueridge-dark-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='blueridge'] { + --background: #0f1216; + --foreground: #e8e6e3; + --card: #1c2128; + --card-foreground: #e8e6e3; + --popover: #1c2128; + --popover-foreground: #e8e6e3; + --muted: #2c3137; + --muted-foreground: #ababab; + --accent: #2c3137; + --accent-foreground: #e8e6e3; + --primary: #6b8cae; + --primary-foreground: #0f1216; + --secondary: #2c3137; + --secondary-foreground: #e8e6e3; + --cta: #6b8cae; + --cta-foreground: #0f1216; + --ctahover: #7d9ab8; + --success: #7ea67c; + --success-foreground: #0f1216; + --warning: #d4af37; + --warning-foreground: #0f1216; + --destructive: #cd9575; + --destructive-foreground: #0f1216; + --info: #6b8cae; + --info-foreground: #0f1216; + --busy: #d1a256; + --busy-foreground: #0f1216; + --busy-ink: #d1a256; + --border: #44484d; + --input: #44484d; + --ring: #6b8cae; + --radius: 0.625rem; + --chart-primary: #6b8cae; + --chart-secondary: #9b8aa0; + --status-success: #7ea67c; + --status-warning: #d4af37; + --status-in-progress: #6b8cae; + --page-bg: #0f1216; + --page-bg-src: ''; + --panel-bg: rgb(28 33 40 / 0.72); + --panel-border: rgb(68 72 77 / 0.9); + --panel-border-bare: rgb(68 72 77 / 0.55); + --panel-raised-bg: rgb(28 33 40 / 0.95); + --panel-raised-border: rgb(68 72 77 / 1); + --panel-accent: #6b8cae; + --panel-header-bg: rgb(44 49 55 / 0.6); + --panel-header-fg: #e8e6e3; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #1c2128; + --glass-bg: rgb(28 33 40 / 0.55); + --glass-border: rgb(68 72 77 / 0.7); + --dock-bg: rgb(28 33 40 / 0.7); + --dock-border: rgb(68 72 77 / 0.8); + --dock-tooltip-bg: #2c3137; + --header-bg: rgb(28 33 40 / 0.8); + --header-border: rgb(68 72 77 / 0.9); + --header-fg: #e8e6e3; + --header-blur: 12px; + --pixel-grid-color: rgb(120 122 124 / 0.07); + --card-grid-color: rgb(120 122 124 / 0.05); + --panel-grid-color: rgb(120 122 124 / 0.06); + --scrollbar-thumb: rgb(74 85 104 / 0.6); + --scrollbar-thumb-hover: rgb(74 85 104 / 0.85); + --scrollbar-thin-thumb: rgb(74 85 104 / 0.45); + --scrollbar-thin-thumb-hover: rgb(74 85 104 / 0.7); + --brand: #6b8cae; + --brand-foreground: #0f1216; + --brand-primary: #6b8cae; + --brand-accent: #7ec8c8; + --brand-warm: #d1a256; + --brand-deep: #0f1216; + --brand-muted: #4a5568; + --ink: #e8e6e3; + --surface-warm: #1c2128; + --naturegreen: #7ea67c; + --naturegreen-foreground: #0f1216; + --duck-dark: #e8e6e3; + --duck-teal: #7ec8c8; + --duck-yellow: #d4af37; + --duck-orange: #d1a256; + --duck-forest: #7ea67c; + --duck-beige: #30353b; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/brutalism.css b/src/workspaces/theme/css/themes/brutalism.css new file mode 100644 index 00000000..40cdbf3e --- /dev/null +++ b/src/workspaces/theme/css/themes/brutalism.css @@ -0,0 +1,99 @@ +/* + Brutalism — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/bjornramberg/omarchy-brutalism-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='brutalism'] { + --background: #0a0a0a; + --foreground: #ded3d3; + --card: #121212; + --card-foreground: #ded3d3; + --popover: #121212; + --popover-foreground: #ded3d3; + --muted: #232323; + --muted-foreground: #a19999; + --accent: #232323; + --accent-foreground: #ded3d3; + --primary: #ce5757; + --primary-foreground: #0a0a0a; + --secondary: #232323; + --secondary-foreground: #ded3d3; + --cta: #ce5757; + --cta-foreground: #0a0a0a; + --ctahover: #d46b6b; + --success: #630a0a; + --success-foreground: #ded3d3; + --warning: #cc7a7a; + --warning-foreground: #0a0a0a; + --destructive: #450404; + --destructive-foreground: #ded3d3; + --info: #ce5757; + --info-foreground: #0a0a0a; + --busy: #893f3f; + --busy-foreground: #ded3d3; + --busy-ink: #a46a6a; + --border: #3a3838; + --input: #3a3838; + --ring: #ce5757; + --radius: 0.625rem; + --chart-primary: #ce5757; + --chart-secondary: #c87777; + --status-success: #630a0a; + --status-warning: #cc7a7a; + --status-in-progress: #ce5757; + --page-bg: #0a0a0a; + --page-bg-src: ''; + --panel-bg: rgb(18 18 18 / 0.72); + --panel-border: rgb(58 56 56 / 0.9); + --panel-border-bare: rgb(58 56 56 / 0.55); + --panel-raised-bg: rgb(18 18 18 / 0.95); + --panel-raised-border: rgb(58 56 56 / 1); + --panel-accent: #ce5757; + --panel-header-bg: rgb(35 35 35 / 0.6); + --panel-header-fg: #ded3d3; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #121212; + --glass-bg: rgb(18 18 18 / 0.55); + --glass-border: rgb(58 56 56 / 0.7); + --dock-bg: rgb(18 18 18 / 0.7); + --dock-border: rgb(58 56 56 / 0.8); + --dock-tooltip-bg: #232323; + --header-bg: rgb(18 18 18 / 0.8); + --header-border: rgb(58 56 56 / 0.9); + --header-fg: #ded3d3; + --header-blur: 12px; + --pixel-grid-color: rgb(110 105 105 / 0.07); + --card-grid-color: rgb(110 105 105 / 0.05); + --panel-grid-color: rgb(110 105 105 / 0.06); + --scrollbar-thumb: rgb(184 148 148 / 0.6); + --scrollbar-thumb-hover: rgb(184 148 148 / 0.85); + --scrollbar-thin-thumb: rgb(184 148 148 / 0.45); + --scrollbar-thin-thumb-hover: rgb(184 148 148 / 0.7); + --brand: #ce5757; + --brand-foreground: #0a0a0a; + --brand-primary: #ce5757; + --brand-accent: #d48484; + --brand-warm: #893f3f; + --brand-deep: #0a0a0a; + --brand-muted: #b89494; + --ink: #ded3d3; + --surface-warm: #121212; + --naturegreen: #630a0a; + --naturegreen-foreground: #ded3d3; + --duck-dark: #ded3d3; + --duck-teal: #d48484; + --duck-yellow: #cc7a7a; + --duck-orange: #893f3f; + --duck-forest: #630a0a; + --duck-beige: #262525; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/caroline-skyline.css b/src/workspaces/theme/css/themes/caroline-skyline.css new file mode 100644 index 00000000..9bdaf9f4 --- /dev/null +++ b/src/workspaces/theme/css/themes/caroline-skyline.css @@ -0,0 +1,99 @@ +/* + Caroline Skyline — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/OldJobobo/omarchy-caroline-skyline-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='caroline-skyline'] { + --background: #0f0a0a; + --foreground: #e3a68c; + --card: #1c1213; + --card-foreground: #e3a68c; + --popover: #1c1213; + --popover-foreground: #e3a68c; + --muted: #2c2324; + --muted-foreground: #ae8473; + --accent: #2c2324; + --accent-foreground: #e3a68c; + --primary: #6b6566; + --primary-foreground: #e7e7e7; + --secondary: #2c2324; + --secondary-foreground: #e3a68c; + --cta: #6b6566; + --cta-foreground: #e7e7e7; + --ctahover: #7d7778; + --success: #806c61; + --success-foreground: #f9f9f9; + --warning: #f28171; + --warning-foreground: #0f0a0a; + --destructive: #c24f57; + --destructive-foreground: #ffffff; + --info: #684c59; + --info-foreground: #ebbeac; + --busy: #da6864; + --busy-foreground: #0f0a0a; + --busy-ink: #da6864; + --border: #432f2b; + --input: #432f2b; + --ring: #6b6566; + --radius: 0.625rem; + --chart-primary: #6b6566; + --chart-secondary: #a63650; + --status-success: #806c61; + --status-warning: #f28171; + --status-in-progress: #684c59; + --page-bg: #0f0a0a; + --page-bg-src: ''; + --panel-bg: rgb(28 18 19 / 0.72); + --panel-border: rgb(67 47 43 / 0.9); + --panel-border-bare: rgb(67 47 43 / 0.55); + --panel-raised-bg: rgb(28 18 19 / 0.95); + --panel-raised-border: rgb(67 47 43 / 1); + --panel-accent: #6b6566; + --panel-header-bg: rgb(44 35 36 / 0.6); + --panel-header-fg: #e3a68c; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #1c1213; + --glass-bg: rgb(28 18 19 / 0.55); + --glass-border: rgb(67 47 43 / 0.7); + --dock-bg: rgb(28 18 19 / 0.7); + --dock-border: rgb(67 47 43 / 0.8); + --dock-tooltip-bg: #2c2324; + --header-bg: rgb(28 18 19 / 0.8); + --header-border: rgb(67 47 43 / 0.9); + --header-fg: #e3a68c; + --header-blur: 12px; + --pixel-grid-color: rgb(125 94 82 / 0.07); + --card-grid-color: rgb(125 94 82 / 0.05); + --panel-grid-color: rgb(125 94 82 / 0.06); + --scrollbar-thumb: rgb(109 71 69 / 0.6); + --scrollbar-thumb-hover: rgb(109 71 69 / 0.85); + --scrollbar-thin-thumb: rgb(109 71 69 / 0.45); + --scrollbar-thin-thumb-hover: rgb(109 71 69 / 0.7); + --brand: #6b6566; + --brand-foreground: #e7e7e7; + --brand-primary: #6b6566; + --brand-accent: #6b6566; + --brand-warm: #da6864; + --brand-deep: #0f0a0a; + --brand-muted: #6d4745; + --ink: #e3a68c; + --surface-warm: #1c1213; + --naturegreen: #806c61; + --naturegreen-foreground: #f9f9f9; + --duck-dark: #e3a68c; + --duck-teal: #6b6566; + --duck-yellow: #f28171; + --duck-orange: #da6864; + --duck-forest: #806c61; + --duck-beige: #30211f; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/catppuccin-mocha.css b/src/workspaces/theme/css/themes/catppuccin-mocha.css new file mode 100644 index 00000000..1d9ead23 --- /dev/null +++ b/src/workspaces/theme/css/themes/catppuccin-mocha.css @@ -0,0 +1,99 @@ +/* + Catppuccin Mocha — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/KidDogDad/omarchy-catppuccin-mocha-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='catppuccin-mocha'] { + --background: #111119; + --foreground: #cdd6f4; + --card: #1e1e2e; + --card-foreground: #cdd6f4; + --popover: #1e1e2e; + --popover-foreground: #cdd6f4; + --muted: #2e2e3d; + --muted-foreground: #999fb9; + --accent: #2e2e3d; + --accent-foreground: #cdd6f4; + --primary: #89b4fa; + --primary-foreground: #111119; + --secondary: #2e2e3d; + --secondary-foreground: #cdd6f4; + --cta: #89b4fa; + --cta-foreground: #111119; + --ctahover: #97bdfb; + --success: #a6e3a1; + --success-foreground: #111119; + --warning: #f9e2af; + --warning-foreground: #111119; + --destructive: #f38ba8; + --destructive-foreground: #111119; + --info: #89b4fa; + --info-foreground: #111119; + --busy: #f6b7ac; + --busy-foreground: #111119; + --busy-ink: #f6b7ac; + --border: #404255; + --input: #404255; + --ring: #89b4fa; + --radius: 0.625rem; + --chart-primary: #89b4fa; + --chart-secondary: #f5c2e7; + --status-success: #a6e3a1; + --status-warning: #f9e2af; + --status-in-progress: #89b4fa; + --page-bg: #111119; + --page-bg-src: ''; + --panel-bg: rgb(30 30 46 / 0.72); + --panel-border: rgb(64 66 85 / 0.9); + --panel-border-bare: rgb(64 66 85 / 0.55); + --panel-raised-bg: rgb(30 30 46 / 0.95); + --panel-raised-border: rgb(64 66 85 / 1); + --panel-accent: #89b4fa; + --panel-header-bg: rgb(46 46 61 / 0.6); + --panel-header-fg: #cdd6f4; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #1e1e2e; + --glass-bg: rgb(30 30 46 / 0.55); + --glass-border: rgb(64 66 85 / 0.7); + --dock-bg: rgb(30 30 46 / 0.7); + --dock-border: rgb(64 66 85 / 0.8); + --dock-tooltip-bg: #2e2e3d; + --header-bg: rgb(30 30 46 / 0.8); + --header-border: rgb(64 66 85 / 0.9); + --header-fg: #cdd6f4; + --header-blur: 12px; + --pixel-grid-color: rgb(109 113 135 / 0.07); + --card-grid-color: rgb(109 113 135 / 0.05); + --panel-grid-color: rgb(109 113 135 / 0.06); + --scrollbar-thumb: rgb(69 71 90 / 0.6); + --scrollbar-thumb-hover: rgb(69 71 90 / 0.85); + --scrollbar-thin-thumb: rgb(69 71 90 / 0.45); + --scrollbar-thin-thumb-hover: rgb(69 71 90 / 0.7); + --brand: #89b4fa; + --brand-foreground: #111119; + --brand-primary: #89b4fa; + --brand-accent: #94e2d5; + --brand-warm: #f6b7ac; + --brand-deep: #111119; + --brand-muted: #45475a; + --ink: #cdd6f4; + --surface-warm: #1e1e2e; + --naturegreen: #a6e3a1; + --naturegreen-foreground: #111119; + --duck-dark: #cdd6f4; + --duck-teal: #94e2d5; + --duck-yellow: #f9e2af; + --duck-orange: #f6b7ac; + --duck-forest: #a6e3a1; + --duck-beige: #303042; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/city-783.css b/src/workspaces/theme/css/themes/city-783.css new file mode 100644 index 00000000..abbedf8d --- /dev/null +++ b/src/workspaces/theme/css/themes/city-783.css @@ -0,0 +1,99 @@ +/* + City 783 — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/OldJobobo/omarchy-city-783-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='city-783'] { + --background: #0d0e11; + --foreground: #b9bec6; + --card: #181a1f; + --card-foreground: #b9bec6; + --popover: #181a1f; + --popover-foreground: #b9bec6; + --muted: #282a2f; + --muted-foreground: #8f9399; + --accent: #282a2f; + --accent-foreground: #b9bec6; + --primary: #dce0e6; + --primary-foreground: #0d0e11; + --secondary: #282a2f; + --secondary-foreground: #b9bec6; + --cta: #dce0e6; + --cta-foreground: #0d0e11; + --ctahover: #e0e4e9; + --success: #dce0e6; + --success-foreground: #0d0e11; + --warning: #9e1a1a; + --warning-foreground: #bec3ca; + --destructive: #e53939; + --destructive-foreground: #0d0e11; + --info: #ad2222; + --info-foreground: #ced2d7; + --busy: #c22a2a; + --busy-foreground: #e7e7e7; + --busy-ink: #ce5555; + --border: #383a40; + --input: #383a40; + --ring: #dce0e6; + --radius: 0.625rem; + --chart-primary: #dce0e6; + --chart-secondary: #c3c8d0; + --status-success: #dce0e6; + --status-warning: #9e1a1a; + --status-in-progress: #ad2222; + --page-bg: #0d0e11; + --page-bg-src: ''; + --panel-bg: rgb(24 26 31 / 0.72); + --panel-border: rgb(56 58 64 / 0.9); + --panel-border-bare: rgb(56 58 64 / 0.55); + --panel-raised-bg: rgb(24 26 31 / 0.95); + --panel-raised-border: rgb(56 58 64 / 1); + --panel-accent: #dce0e6; + --panel-header-bg: rgb(40 42 47 / 0.6); + --panel-header-fg: #b9bec6; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #181a1f; + --glass-bg: rgb(24 26 31 / 0.55); + --glass-border: rgb(56 58 64 / 0.7); + --dock-bg: rgb(24 26 31 / 0.7); + --dock-border: rgb(56 58 64 / 0.8); + --dock-tooltip-bg: #282a2f; + --header-bg: rgb(24 26 31 / 0.8); + --header-border: rgb(56 58 64 / 0.9); + --header-fg: #b9bec6; + --header-blur: 12px; + --pixel-grid-color: rgb(100 104 110 / 0.07); + --card-grid-color: rgb(100 104 110 / 0.05); + --panel-grid-color: rgb(100 104 110 / 0.06); + --scrollbar-thumb: rgb(75 81 91 / 0.6); + --scrollbar-thumb-hover: rgb(75 81 91 / 0.85); + --scrollbar-thin-thumb: rgb(75 81 91 / 0.45); + --scrollbar-thin-thumb-hover: rgb(75 81 91 / 0.7); + --brand: #dce0e6; + --brand-foreground: #0d0e11; + --brand-primary: #dce0e6; + --brand-accent: #8f949c; + --brand-warm: #c22a2a; + --brand-deep: #0d0e11; + --brand-muted: #4b515b; + --ink: #b9bec6; + --surface-warm: #181a1f; + --naturegreen: #dce0e6; + --naturegreen-foreground: #0d0e11; + --duck-dark: #b9bec6; + --duck-teal: #8f949c; + --duck-yellow: #9e1a1a; + --duck-orange: #c22a2a; + --duck-forest: #dce0e6; + --duck-beige: #282a30; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/copper-night.css b/src/workspaces/theme/css/themes/copper-night.css new file mode 100644 index 00000000..b1d1bc32 --- /dev/null +++ b/src/workspaces/theme/css/themes/copper-night.css @@ -0,0 +1,99 @@ +/* + Copper Night — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/hembramnishant50-glitch/omarchy-coppernight-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='copper-night'] { + --background: #09090f; + --foreground: #e6e6e6; + --card: #11111b; + --card-foreground: #e6e6e6; + --popover: #11111b; + --popover-foreground: #e6e6e6; + --muted: #22222b; + --muted-foreground: #a6a6a9; + --accent: #22222b; + --accent-foreground: #e6e6e6; + --primary: #89b4fa; + --primary-foreground: #09090f; + --secondary: #22222b; + --secondary-foreground: #e6e6e6; + --cta: #89b4fa; + --cta-foreground: #09090f; + --ctahover: #97bdfb; + --success: #a6e3a1; + --success-foreground: #09090f; + --warning: #f9e2af; + --warning-foreground: #09090f; + --destructive: #f38ba8; + --destructive-foreground: #09090f; + --info: #89b4fa; + --info-foreground: #09090f; + --busy: #f6b7ac; + --busy-foreground: #09090f; + --busy-ink: #f6b7ac; + --border: #3b3b43; + --input: #3b3b43; + --ring: #89b4fa; + --radius: 0.625rem; + --chart-primary: #89b4fa; + --chart-secondary: #cba6f7; + --status-success: #a6e3a1; + --status-warning: #f9e2af; + --status-in-progress: #89b4fa; + --page-bg: #09090f; + --page-bg-src: ''; + --panel-bg: rgb(17 17 27 / 0.72); + --panel-border: rgb(59 59 67 / 0.9); + --panel-border-bare: rgb(59 59 67 / 0.55); + --panel-raised-bg: rgb(17 17 27 / 0.95); + --panel-raised-border: rgb(59 59 67 / 1); + --panel-accent: #89b4fa; + --panel-header-bg: rgb(34 34 43 / 0.6); + --panel-header-fg: #e6e6e6; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #11111b; + --glass-bg: rgb(17 17 27 / 0.55); + --glass-border: rgb(59 59 67 / 0.7); + --dock-bg: rgb(17 17 27 / 0.7); + --dock-border: rgb(59 59 67 / 0.8); + --dock-tooltip-bg: #22222b; + --header-bg: rgb(17 17 27 / 0.8); + --header-border: rgb(59 59 67 / 0.9); + --header-fg: #e6e6e6; + --header-blur: 12px; + --pixel-grid-color: rgb(113 113 118 / 0.07); + --card-grid-color: rgb(113 113 118 / 0.05); + --panel-grid-color: rgb(113 113 118 / 0.06); + --scrollbar-thumb: rgb(88 91 112 / 0.6); + --scrollbar-thumb-hover: rgb(88 91 112 / 0.85); + --scrollbar-thin-thumb: rgb(88 91 112 / 0.45); + --scrollbar-thin-thumb-hover: rgb(88 91 112 / 0.7); + --brand: #89b4fa; + --brand-foreground: #09090f; + --brand-primary: #89b4fa; + --brand-accent: #94e2d5; + --brand-warm: #f6b7ac; + --brand-deep: #09090f; + --brand-muted: #585b70; + --ink: #e6e6e6; + --surface-warm: #11111b; + --naturegreen: #a6e3a1; + --naturegreen-foreground: #09090f; + --duck-dark: #e6e6e6; + --duck-teal: #94e2d5; + --duck-yellow: #f9e2af; + --duck-orange: #f6b7ac; + --duck-forest: #a6e3a1; + --duck-beige: #26262f; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/cpunk.css b/src/workspaces/theme/css/themes/cpunk.css new file mode 100644 index 00000000..e937afd3 --- /dev/null +++ b/src/workspaces/theme/css/themes/cpunk.css @@ -0,0 +1,99 @@ +/* + Cpunk — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/stannorbvb-cmd/cpunk (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='cpunk'] { + --background: #020202; + --foreground: #ffffff; + --card: #040303; + --card-foreground: #ffffff; + --popover: #040303; + --popover-foreground: #ffffff; + --muted: #161515; + --muted-foreground: #b4b3b3; + --accent: #161515; + --accent-foreground: #ffffff; + --primary: #aaacac; + --primary-foreground: #020202; + --secondary: #161515; + --secondary-foreground: #ffffff; + --cta: #aaacac; + --cta-foreground: #020202; + --ctahover: #b4b6b6; + --success: #d1d2d1; + --success-foreground: #020202; + --warning: #fef348; + --warning-foreground: #020202; + --destructive: #f82a2a; + --destructive-foreground: #020202; + --info: #aaacac; + --info-foreground: #020202; + --busy: #fb8f39; + --busy-foreground: #020202; + --busy-ink: #fb8f39; + --border: #353434; + --input: #353434; + --ring: #aaacac; + --radius: 0.625rem; + --chart-primary: #aaacac; + --chart-secondary: #f76e78; + --status-success: #d1d2d1; + --status-warning: #fef348; + --status-in-progress: #aaacac; + --page-bg: #020202; + --page-bg-src: ''; + --panel-bg: rgb(4 3 3 / 0.72); + --panel-border: rgb(53 52 52 / 0.9); + --panel-border-bare: rgb(53 52 52 / 0.55); + --panel-raised-bg: rgb(4 3 3 / 0.95); + --panel-raised-border: rgb(53 52 52 / 1); + --panel-accent: #aaacac; + --panel-header-bg: rgb(22 21 21 / 0.6); + --panel-header-fg: #ffffff; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #040303; + --glass-bg: rgb(4 3 3 / 0.55); + --glass-border: rgb(53 52 52 / 0.7); + --dock-bg: rgb(4 3 3 / 0.7); + --dock-border: rgb(53 52 52 / 0.8); + --dock-tooltip-bg: #161515; + --header-bg: rgb(4 3 3 / 0.8); + --header-border: rgb(53 52 52 / 0.9); + --header-fg: #ffffff; + --header-blur: 12px; + --pixel-grid-color: rgb(117 116 116 / 0.07); + --card-grid-color: rgb(117 116 116 / 0.05); + --panel-grid-color: rgb(117 116 116 / 0.06); + --scrollbar-thumb: rgb(127 110 110 / 0.6); + --scrollbar-thumb-hover: rgb(127 110 110 / 0.85); + --scrollbar-thin-thumb: rgb(127 110 110 / 0.45); + --scrollbar-thin-thumb-hover: rgb(127 110 110 / 0.7); + --brand: #aaacac; + --brand-foreground: #020202; + --brand-primary: #aaacac; + --brand-accent: #babbbb; + --brand-warm: #fb8f39; + --brand-deep: #020202; + --brand-muted: #7f6e6e; + --ink: #ffffff; + --surface-warm: #040303; + --naturegreen: #d1d2d1; + --naturegreen-foreground: #020202; + --duck-dark: #ffffff; + --duck-teal: #babbbb; + --duck-yellow: #fef348; + --duck-orange: #fb8f39; + --duck-forest: #d1d2d1; + --duck-beige: #1d1c1c; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/crimson.css b/src/workspaces/theme/css/themes/crimson.css new file mode 100644 index 00000000..efc884dc --- /dev/null +++ b/src/workspaces/theme/css/themes/crimson.css @@ -0,0 +1,99 @@ +/* + Crimson — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/tahfizhabib/omarchy-crimson-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='crimson'] { + --background: #0e0c12; + --foreground: #ffffff; + --card: #1a1621; + --card-foreground: #ffffff; + --popover: #1a1621; + --popover-foreground: #ffffff; + --muted: #2a2631; + --muted-foreground: #bab9bc; + --accent: #2a2631; + --accent-foreground: #ffffff; + --primary: #9e96c0; + --primary-foreground: #0e0c12; + --secondary: #2a2631; + --secondary-foreground: #ffffff; + --cta: #9e96c0; + --cta-foreground: #0e0c12; + --ctahover: #aaa3c8; + --success: #e48a3e; + --success-foreground: #0e0c12; + --warning: #da884a; + --warning-foreground: #0e0c12; + --destructive: #b17777; + --destructive-foreground: #0e0c12; + --info: #9e96c0; + --info-foreground: #0e0c12; + --busy: #c68061; + --busy-foreground: #0e0c12; + --busy-ink: #c68061; + --border: #47444c; + --input: #47444c; + --ring: #9e96c0; + --radius: 0.625rem; + --chart-primary: #9e96c0; + --chart-secondary: #bba7be; + --status-success: #e48a3e; + --status-warning: #da884a; + --status-in-progress: #9e96c0; + --page-bg: #0e0c12; + --page-bg-src: ''; + --panel-bg: rgb(26 22 33 / 0.72); + --panel-border: rgb(71 68 76 / 0.9); + --panel-border-bare: rgb(71 68 76 / 0.55); + --panel-raised-bg: rgb(26 22 33 / 0.95); + --panel-raised-border: rgb(71 68 76 / 1); + --panel-accent: #9e96c0; + --panel-header-bg: rgb(42 38 49 / 0.6); + --panel-header-fg: #ffffff; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #1a1621; + --glass-bg: rgb(26 22 33 / 0.55); + --glass-border: rgb(71 68 76 / 0.7); + --dock-bg: rgb(26 22 33 / 0.7); + --dock-border: rgb(71 68 76 / 0.8); + --dock-tooltip-bg: #2a2631; + --header-bg: rgb(26 22 33 / 0.8); + --header-border: rgb(71 68 76 / 0.9); + --header-fg: #ffffff; + --header-blur: 12px; + --pixel-grid-color: rgb(129 127 133 / 0.07); + --card-grid-color: rgb(129 127 133 / 0.05); + --panel-grid-color: rgb(129 127 133 / 0.06); + --scrollbar-thumb: rgb(76 71 86 / 0.6); + --scrollbar-thumb-hover: rgb(76 71 86 / 0.85); + --scrollbar-thin-thumb: rgb(76 71 86 / 0.45); + --scrollbar-thin-thumb-hover: rgb(76 71 86 / 0.7); + --brand: #9e96c0; + --brand-foreground: #0e0c12; + --brand-primary: #9e96c0; + --brand-accent: #b7acc8; + --brand-warm: #c68061; + --brand-deep: #0e0c12; + --brand-muted: #4c4756; + --ink: #ffffff; + --surface-warm: #1a1621; + --naturegreen: #e48a3e; + --naturegreen-foreground: #0e0c12; + --duck-dark: #ffffff; + --duck-teal: #b7acc8; + --duck-yellow: #da884a; + --duck-orange: #c68061; + --duck-forest: #e48a3e; + --duck-beige: #312d37; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/dark-xp.css b/src/workspaces/theme/css/themes/dark-xp.css new file mode 100644 index 00000000..59b287d6 --- /dev/null +++ b/src/workspaces/theme/css/themes/dark-xp.css @@ -0,0 +1,99 @@ +/* + Dark XP — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/ITSZXY/dark-xp-omarchy (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='dark-xp'] { + --background: #01060a; + --foreground: #a7b0bb; + --card: #010a13; + --card-foreground: #a7b0bb; + --popover: #010a13; + --popover-foreground: #a7b0bb; + --muted: #131b24; + --muted-foreground: #7c848f; + --accent: #131b24; + --accent-foreground: #a7b0bb; + --primary: #38619a; + --primary-foreground: #dfe0e0; + --secondary: #131b24; + --secondary-foreground: #a7b0bb; + --cta: #38619a; + --cta-foreground: #dfe0e0; + --ctahover: #5074a6; + --success: #2d4764; + --success-foreground: #abb4be; + --warning: #575d67; + --warning-foreground: #d9dada; + --destructive: #01336a; + --destructive-foreground: #a7b0bb; + --info: #033c82; + --info-foreground: #a7b0bb; + --busy: #2c4869; + --busy-foreground: #aeb6c0; + --busy-ink: #667a92; + --border: #212a34; + --input: #212a34; + --ring: #38619a; + --radius: 0.625rem; + --chart-primary: #38619a; + --chart-secondary: #034286; + --status-success: #2d4764; + --status-warning: #575d67; + --status-in-progress: #033c82; + --page-bg: #01060a; + --page-bg-src: ''; + --panel-bg: rgb(1 10 19 / 0.72); + --panel-border: rgb(33 42 52 / 0.9); + --panel-border-bare: rgb(33 42 52 / 0.55); + --panel-raised-bg: rgb(1 10 19 / 0.95); + --panel-raised-border: rgb(33 42 52 / 1); + --panel-accent: #38619a; + --panel-header-bg: rgb(19 27 36 / 0.6); + --panel-header-fg: #a7b0bb; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #010a13; + --glass-bg: rgb(1 10 19 / 0.55); + --glass-border: rgb(33 42 52 / 0.7); + --dock-bg: rgb(1 10 19 / 0.7); + --dock-border: rgb(33 42 52 / 0.8); + --dock-tooltip-bg: #131b24; + --header-bg: rgb(1 10 19 / 0.8); + --header-border: rgb(33 42 52 / 0.9); + --header-fg: #a7b0bb; + --header-blur: 12px; + --pixel-grid-color: rgb(85 94 103 / 0.07); + --card-grid-color: rgb(85 94 103 / 0.05); + --panel-grid-color: rgb(85 94 103 / 0.06); + --scrollbar-thumb: rgb(116 123 130 / 0.6); + --scrollbar-thumb-hover: rgb(116 123 130 / 0.85); + --scrollbar-thin-thumb: rgb(116 123 130 / 0.45); + --scrollbar-thin-thumb-hover: rgb(116 123 130 / 0.7); + --brand: #38619a; + --brand-foreground: #dfe0e0; + --brand-primary: #38619a; + --brand-accent: #2e5995; + --brand-warm: #2c4869; + --brand-deep: #01060a; + --brand-muted: #747b82; + --ink: #a7b0bb; + --surface-warm: #010a13; + --naturegreen: #2d4764; + --naturegreen-foreground: #abb4be; + --duck-dark: #a7b0bb; + --duck-teal: #2e5995; + --duck-yellow: #575d67; + --duck-orange: #2c4869; + --duck-forest: #2d4764; + --duck-beige: #121b24; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/dayfox.css b/src/workspaces/theme/css/themes/dayfox.css new file mode 100644 index 00000000..77a13929 --- /dev/null +++ b/src/workspaces/theme/css/themes/dayfox.css @@ -0,0 +1,99 @@ +/* + Dayfox — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Light theme (light), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/defer/omarchy-dayfox-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='dayfox'] { + --background: #f6f2ee; + --foreground: #3d2b5a; + --card: #edeae6; + --card-foreground: #3d2b5a; + --popover: #edeae6; + --popover-foreground: #3d2b5a; + --muted: #e7e3e0; + --muted-foreground: #6c5f7c; + --accent: #e7e3e0; + --accent-foreground: #3d2b5a; + --primary: #2848a9; + --primary-foreground: #dddad6; + --secondary: #e7e3e0; + --secondary-foreground: #3d2b5a; + --cta: #2848a9; + --cta-foreground: #dddad6; + --ctahover: #233f95; + --success: #396847; + --success-foreground: #dddad6; + --warning: #ac5402; + --warning-foreground: #f0eeed; + --destructive: #a5222f; + --destructive-foreground: #dddad6; + --info: #2848a9; + --info-foreground: #dddad6; + --busy: #a93b19; + --busy-foreground: #dddad6; + --busy-ink: #a93b19; + --border: #d8d3d5; + --input: #d3ced0; + --ring: #2848a9; + --radius: 0.625rem; + --chart-primary: #2848a9; + --chart-secondary: #6e33ce; + --status-success: #396847; + --status-warning: #ac5402; + --status-in-progress: #2848a9; + --page-bg: #f6f2ee; + --page-bg-src: ''; + --panel-bg: rgb(237 234 230 / 0.72); + --panel-border: rgb(216 211 213 / 0.9); + --panel-border-bare: rgb(216 211 213 / 0.55); + --panel-raised-bg: rgb(237 234 230 / 0.95); + --panel-raised-border: rgb(216 211 213 / 1); + --panel-accent: #2848a9; + --panel-header-bg: rgb(231 227 224 / 0.6); + --panel-header-fg: #3d2b5a; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #edeae6; + --glass-bg: rgb(237 234 230 / 0.55); + --glass-border: rgb(216 211 213 / 0.7); + --dock-bg: rgb(237 234 230 / 0.7); + --dock-border: rgb(216 211 213 / 0.8); + --dock-tooltip-bg: #e7e3e0; + --header-bg: rgb(237 234 230 / 0.8); + --header-border: rgb(216 211 213 / 0.9); + --header-fg: #3d2b5a; + --header-blur: 12px; + --pixel-grid-color: rgb(139 129 145 / 0.07); + --card-grid-color: rgb(139 129 145 / 0.05); + --panel-grid-color: rgb(139 129 145 / 0.06); + --scrollbar-thumb: rgb(83 76 69 / 0.6); + --scrollbar-thumb-hover: rgb(83 76 69 / 0.85); + --scrollbar-thin-thumb: rgb(83 76 69 / 0.45); + --scrollbar-thin-thumb-hover: rgb(83 76 69 / 0.7); + --brand: #2848a9; + --brand-foreground: #dddad6; + --brand-primary: #2848a9; + --brand-accent: #287980; + --brand-warm: #a93b19; + --brand-deep: #e7e3e0; + --brand-muted: #534c45; + --ink: #3d2b5a; + --surface-warm: #edeae6; + --naturegreen: #396847; + --naturegreen-foreground: #dddad6; + --duck-dark: #3d2b5a; + --duck-teal: #287980; + --duck-yellow: #ac5402; + --duck-orange: #a93b19; + --duck-forest: #396847; + --duck-beige: #dbd7d8; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/dead-space.css b/src/workspaces/theme/css/themes/dead-space.css new file mode 100644 index 00000000..eaa96275 --- /dev/null +++ b/src/workspaces/theme/css/themes/dead-space.css @@ -0,0 +1,99 @@ +/* + Dead Space — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/atif-1402/omarchy-deadspace-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='dead-space'] { + --background: #010101; + --foreground: #ffffff; + --card: #010101; + --card-foreground: #ffffff; + --popover: #010101; + --popover-foreground: #ffffff; + --muted: #131313; + --muted-foreground: #b3b3b3; + --accent: #131313; + --accent-foreground: #ffffff; + --primary: #c1baba; + --primary-foreground: #010101; + --secondary: #131313; + --secondary-foreground: #ffffff; + --cta: #c1baba; + --cta-foreground: #010101; + --ctahover: #c8c2c2; + --success: #a49a9a; + --success-foreground: #010101; + --warning: #b2aaaa; + --warning-foreground: #010101; + --destructive: #958a8a; + --destructive-foreground: #010101; + --info: #c1baba; + --info-foreground: #010101; + --busy: #a49a9a; + --busy-foreground: #010101; + --busy-ink: #a49a9a; + --border: #333333; + --input: #333333; + --ring: #c1baba; + --radius: 0.625rem; + --chart-primary: #c1baba; + --chart-secondary: #cfcaca; + --status-success: #a49a9a; + --status-warning: #b2aaaa; + --status-in-progress: #c1baba; + --page-bg: #010101; + --page-bg-src: ''; + --panel-bg: rgb(1 1 1 / 0.72); + --panel-border: rgb(51 51 51 / 0.9); + --panel-border-bare: rgb(51 51 51 / 0.55); + --panel-raised-bg: rgb(1 1 1 / 0.95); + --panel-raised-border: rgb(51 51 51 / 1); + --panel-accent: #c1baba; + --panel-header-bg: rgb(19 19 19 / 0.6); + --panel-header-fg: #ffffff; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #010101; + --glass-bg: rgb(1 1 1 / 0.55); + --glass-border: rgb(51 51 51 / 0.7); + --dock-bg: rgb(1 1 1 / 0.7); + --dock-border: rgb(51 51 51 / 0.8); + --dock-tooltip-bg: #131313; + --header-bg: rgb(1 1 1 / 0.8); + --header-border: rgb(51 51 51 / 0.9); + --header-fg: #ffffff; + --header-blur: 12px; + --pixel-grid-color: rgb(115 115 115 / 0.07); + --card-grid-color: rgb(115 115 115 / 0.05); + --panel-grid-color: rgb(115 115 115 / 0.06); + --scrollbar-thumb: rgb(221 219 219 / 0.6); + --scrollbar-thumb-hover: rgb(221 219 219 / 0.85); + --scrollbar-thin-thumb: rgb(221 219 219 / 0.45); + --scrollbar-thin-thumb-hover: rgb(221 219 219 / 0.7); + --brand: #c1baba; + --brand-foreground: #010101; + --brand-primary: #c1baba; + --brand-accent: #dedada; + --brand-warm: #a49a9a; + --brand-deep: #010101; + --brand-muted: #dddbdb; + --ink: #ffffff; + --surface-warm: #010101; + --naturegreen: #a49a9a; + --naturegreen-foreground: #010101; + --duck-dark: #ffffff; + --duck-teal: #dedada; + --duck-yellow: #b2aaaa; + --duck-orange: #a49a9a; + --duck-forest: #a49a9a; + --duck-beige: #1a1a1a; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/deckard.css b/src/workspaces/theme/css/themes/deckard.css new file mode 100644 index 00000000..f128b9da --- /dev/null +++ b/src/workspaces/theme/css/themes/deckard.css @@ -0,0 +1,99 @@ +/* + Deckard — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/OldJobobo/omarchy-deckard-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='deckard'] { + --background: #001128; + --foreground: #eef1d7; + --card: #001e49; + --card-foreground: #eef1d7; + --popover: #001e49; + --popover-foreground: #eef1d7; + --muted: #122e56; + --muted-foreground: #a7b2ac; + --accent: #122e56; + --accent-foreground: #eef1d7; + --primary: #1fb1a5; + --primary-foreground: #001128; + --secondary: #122e56; + --secondary-foreground: #eef1d7; + --cta: #1fb1a5; + --cta-foreground: #001128; + --ctahover: #3abab0; + --success: #5a9f72; + --success-foreground: #001128; + --warning: #d2df6f; + --warning-foreground: #001128; + --destructive: #c24e13; + --destructive-foreground: #f8f9ee; + --info: #1fb1a5; + --info-foreground: #001128; + --busy: #ca9741; + --busy-foreground: #001128; + --busy-ink: #ca9741; + --border: #2f4765; + --input: #2f4765; + --ring: #1fb1a5; + --radius: 0.625rem; + --chart-primary: #1fb1a5; + --chart-secondary: #4b64fd; + --status-success: #5a9f72; + --status-warning: #d2df6f; + --status-in-progress: #1fb1a5; + --page-bg: #001128; + --page-bg-src: ''; + --panel-bg: rgb(0 30 73 / 0.72); + --panel-border: rgb(47 71 101 / 0.9); + --panel-border-bare: rgb(47 71 101 / 0.55); + --panel-raised-bg: rgb(0 30 73 / 0.95); + --panel-raised-border: rgb(47 71 101 / 1); + --panel-accent: #1fb1a5; + --panel-header-bg: rgb(18 46 86 / 0.6); + --panel-header-fg: #eef1d7; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #001e49; + --glass-bg: rgb(0 30 73 / 0.55); + --glass-border: rgb(47 71 101 / 0.7); + --dock-bg: rgb(0 30 73 / 0.7); + --dock-border: rgb(47 71 101 / 0.8); + --dock-tooltip-bg: #122e56; + --header-bg: rgb(0 30 73 / 0.8); + --header-border: rgb(47 71 101 / 0.9); + --header-fg: #eef1d7; + --header-blur: 12px; + --pixel-grid-color: rgb(107 125 137 / 0.07); + --card-grid-color: rgb(107 125 137 / 0.05); + --panel-grid-color: rgb(107 125 137 / 0.06); + --scrollbar-thumb: rgb(63 116 192 / 0.6); + --scrollbar-thumb-hover: rgb(63 116 192 / 0.85); + --scrollbar-thin-thumb: rgb(63 116 192 / 0.45); + --scrollbar-thin-thumb-hover: rgb(63 116 192 / 0.7); + --brand: #1fb1a5; + --brand-foreground: #001128; + --brand-primary: #1fb1a5; + --brand-accent: #83f0f1; + --brand-warm: #ca9741; + --brand-deep: #001128; + --brand-muted: #3f74c0; + --ink: #eef1d7; + --surface-warm: #001e49; + --naturegreen: #5a9f72; + --naturegreen-foreground: #001128; + --duck-dark: #eef1d7; + --duck-teal: #83f0f1; + --duck-yellow: #d2df6f; + --duck-orange: #ca9741; + --duck-forest: #5a9f72; + --duck-beige: #183357; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/delete.css b/src/workspaces/theme/css/themes/delete.css new file mode 100644 index 00000000..c91bffd0 --- /dev/null +++ b/src/workspaces/theme/css/themes/delete.css @@ -0,0 +1,99 @@ +/* + Delete — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/signaldirective/delete-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='delete'] { + --background: #090b11; + --foreground: #f2f1fa; + --card: #11141e; + --card-foreground: #f2f1fa; + --popover: #11141e; + --popover-foreground: #f2f1fa; + --muted: #22242e; + --muted-foreground: #afafb8; + --accent: #22242e; + --accent-foreground: #f2f1fa; + --primary: #7575aa; + --primary-foreground: #090b11; + --secondary: #22242e; + --secondary-foreground: #f2f1fa; + --cta: #7575aa; + --cta-foreground: #090b11; + --ctahover: #8686b4; + --success: #7f86b8; + --success-foreground: #090b11; + --warning: #a19ece; + --warning-foreground: #090b11; + --destructive: #aba8d7; + --destructive-foreground: #090b11; + --info: #7575aa; + --info-foreground: #090b11; + --busy: #a6a3d3; + --busy-foreground: #090b11; + --busy-ink: #a6a3d3; + --border: #3d3f49; + --input: #3d3f49; + --ring: #7575aa; + --radius: 0.625rem; + --chart-primary: #7575aa; + --chart-secondary: #9895c7; + --status-success: #7f86b8; + --status-warning: #a19ece; + --status-in-progress: #7575aa; + --page-bg: #090b11; + --page-bg-src: ''; + --panel-bg: rgb(17 20 30 / 0.72); + --panel-border: rgb(61 63 73 / 0.9); + --panel-border-bare: rgb(61 63 73 / 0.55); + --panel-raised-bg: rgb(17 20 30 / 0.95); + --panel-raised-border: rgb(61 63 73 / 1); + --panel-accent: #7575aa; + --panel-header-bg: rgb(34 36 46 / 0.6); + --panel-header-fg: #f2f1fa; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #11141e; + --glass-bg: rgb(17 20 30 / 0.55); + --glass-border: rgb(61 63 73 / 0.7); + --dock-bg: rgb(17 20 30 / 0.7); + --dock-border: rgb(61 63 73 / 0.8); + --dock-tooltip-bg: #22242e; + --header-bg: rgb(17 20 30 / 0.8); + --header-border: rgb(61 63 73 / 0.9); + --header-fg: #f2f1fa; + --header-blur: 12px; + --pixel-grid-color: rgb(118 119 129 / 0.07); + --card-grid-color: rgb(118 119 129 / 0.05); + --panel-grid-color: rgb(118 119 129 / 0.06); + --scrollbar-thumb: rgb(122 130 154 / 0.6); + --scrollbar-thumb-hover: rgb(122 130 154 / 0.85); + --scrollbar-thin-thumb: rgb(122 130 154 / 0.45); + --scrollbar-thin-thumb-hover: rgb(122 130 154 / 0.7); + --brand: #7575aa; + --brand-foreground: #090b11; + --brand-primary: #7575aa; + --brand-accent: #a9accb; + --brand-warm: #a6a3d3; + --brand-deep: #090b11; + --brand-muted: #7a829a; + --ink: #f2f1fa; + --surface-warm: #11141e; + --naturegreen: #7f86b8; + --naturegreen-foreground: #090b11; + --duck-dark: #f2f1fa; + --duck-teal: #a9accb; + --duck-yellow: #a19ece; + --duck-orange: #a6a3d3; + --duck-forest: #7f86b8; + --duck-beige: #282a34; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/delorean.css b/src/workspaces/theme/css/themes/delorean.css new file mode 100644 index 00000000..5999ff83 --- /dev/null +++ b/src/workspaces/theme/css/themes/delorean.css @@ -0,0 +1,99 @@ +/* + Delorean — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/jbnunn/omarchy-delorean-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='delorean'] { + --background: #070112; + --foreground: #f9f9f9; + --card: #0d0221; + --card-foreground: #f9f9f9; + --popover: #0d0221; + --popover-foreground: #f9f9f9; + --muted: #1e1431; + --muted-foreground: #b2afb8; + --accent: #1e1431; + --accent-foreground: #f9f9f9; + --primary: #01cdfe; + --primary-foreground: #070112; + --secondary: #1e1431; + --secondary-foreground: #f9f9f9; + --cta: #01cdfe; + --cta-foreground: #070112; + --ctahover: #1fd3fe; + --success: #05ffa1; + --success-foreground: #070112; + --warning: #fffb96; + --warning-foreground: #070112; + --destructive: #ff2a6d; + --destructive-foreground: #070112; + --info: #01cdfe; + --info-foreground: #070112; + --busy: #ff9382; + --busy-foreground: #070112; + --busy-ink: #ff9382; + --border: #3b324b; + --input: #3b324b; + --ring: #01cdfe; + --radius: 0.625rem; + --chart-primary: #01cdfe; + --chart-secondary: #b967ff; + --status-success: #05ffa1; + --status-warning: #fffb96; + --status-in-progress: #01cdfe; + --page-bg: #070112; + --page-bg-src: ''; + --panel-bg: rgb(13 2 33 / 0.72); + --panel-border: rgb(59 50 75 / 0.9); + --panel-border-bare: rgb(59 50 75 / 0.55); + --panel-raised-bg: rgb(13 2 33 / 0.95); + --panel-raised-border: rgb(59 50 75 / 1); + --panel-accent: #01cdfe; + --panel-header-bg: rgb(30 20 49 / 0.6); + --panel-header-fg: #f9f9f9; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #0d0221; + --glass-bg: rgb(13 2 33 / 0.55); + --glass-border: rgb(59 50 75 / 0.7); + --dock-bg: rgb(13 2 33 / 0.7); + --dock-border: rgb(59 50 75 / 0.8); + --dock-tooltip-bg: #1e1431; + --header-bg: rgb(13 2 33 / 0.8); + --header-border: rgb(59 50 75 / 0.9); + --header-fg: #f9f9f9; + --header-blur: 12px; + --pixel-grid-color: rgb(119 113 130 / 0.07); + --card-grid-color: rgb(119 113 130 / 0.05); + --panel-grid-color: rgb(119 113 130 / 0.06); + --scrollbar-thumb: rgb(76 26 87 / 0.6); + --scrollbar-thumb-hover: rgb(76 26 87 / 0.85); + --scrollbar-thin-thumb: rgb(76 26 87 / 0.45); + --scrollbar-thin-thumb-hover: rgb(76 26 87 / 0.7); + --brand: #01cdfe; + --brand-foreground: #070112; + --brand-primary: #01cdfe; + --brand-accent: #05ffa1; + --brand-warm: #ff9382; + --brand-deep: #070112; + --brand-muted: #4c1a57; + --ink: #f9f9f9; + --surface-warm: #0d0221; + --naturegreen: #05ffa1; + --naturegreen-foreground: #070112; + --duck-dark: #f9f9f9; + --duck-teal: #05ffa1; + --duck-yellow: #fffb96; + --duck-orange: #ff9382; + --duck-forest: #05ffa1; + --duck-beige: #251b37; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/demon.css b/src/workspaces/theme/css/themes/demon.css new file mode 100644 index 00000000..7bfe5eca --- /dev/null +++ b/src/workspaces/theme/css/themes/demon.css @@ -0,0 +1,99 @@ +/* + Demon — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/HANCORE-linux/omarchy-demon-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='demon'] { + --background: #080808; + --foreground: #e0d4c2; + --card: #0f0f0f; + --card-foreground: #e0d4c2; + --popover: #0f0f0f; + --popover-foreground: #e0d4c2; + --muted: #202020; + --muted-foreground: #a1998c; + --accent: #202020; + --accent-foreground: #e0d4c2; + --primary: #5c624b; + --primary-foreground: #e3d8c8; + --secondary: #202020; + --secondary-foreground: #e0d4c2; + --cta: #5c624b; + --cta-foreground: #e3d8c8; + --ctahover: #707561; + --success: #586259; + --success-foreground: #e3d8c8; + --warning: #e24c00; + --warning-foreground: #080808; + --destructive: #bb1c1c; + --destructive-foreground: #e3d8c8; + --info: #5c624b; + --info-foreground: #e3d8c8; + --busy: #cf340e; + --busy-foreground: #f3f3f3; + --busy-ink: #d44826; + --border: #383632; + --input: #383632; + --ring: #5c624b; + --radius: 0.625rem; + --chart-primary: #5c624b; + --chart-secondary: #655e56; + --status-success: #586259; + --status-warning: #e24c00; + --status-in-progress: #5c624b; + --page-bg: #080808; + --page-bg-src: ''; + --panel-bg: rgb(15 15 15 / 0.72); + --panel-border: rgb(56 54 50 / 0.9); + --panel-border-bare: rgb(56 54 50 / 0.55); + --panel-raised-bg: rgb(15 15 15 / 0.95); + --panel-raised-border: rgb(56 54 50 / 1); + --panel-accent: #5c624b; + --panel-header-bg: rgb(32 32 32 / 0.6); + --panel-header-fg: #e0d4c2; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #0f0f0f; + --glass-bg: rgb(15 15 15 / 0.55); + --glass-border: rgb(56 54 50 / 0.7); + --dock-bg: rgb(15 15 15 / 0.7); + --dock-border: rgb(56 54 50 / 0.8); + --dock-tooltip-bg: #202020; + --header-bg: rgb(15 15 15 / 0.8); + --header-border: rgb(56 54 50 / 0.9); + --header-fg: #e0d4c2; + --header-blur: 12px; + --pixel-grid-color: rgb(109 104 96 / 0.07); + --card-grid-color: rgb(109 104 96 / 0.05); + --panel-grid-color: rgb(109 104 96 / 0.06); + --scrollbar-thumb: rgb(107 104 103 / 0.6); + --scrollbar-thumb-hover: rgb(107 104 103 / 0.85); + --scrollbar-thin-thumb: rgb(107 104 103 / 0.45); + --scrollbar-thin-thumb-hover: rgb(107 104 103 / 0.7); + --brand: #5c624b; + --brand-foreground: #e3d8c8; + --brand-primary: #5c624b; + --brand-accent: #7a7d80; + --brand-warm: #cf340e; + --brand-deep: #080808; + --brand-muted: #6b6867; + --ink: #e0d4c2; + --surface-warm: #0f0f0f; + --naturegreen: #586259; + --naturegreen-foreground: #e3d8c8; + --duck-dark: #e0d4c2; + --duck-teal: #7a7d80; + --duck-yellow: #e24c00; + --duck-orange: #cf340e; + --duck-forest: #586259; + --duck-beige: #242321; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/dotrb.css b/src/workspaces/theme/css/themes/dotrb.css new file mode 100644 index 00000000..41f36c3d --- /dev/null +++ b/src/workspaces/theme/css/themes/dotrb.css @@ -0,0 +1,99 @@ +/* + Dotrb — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/dotsilva/omarchy-dotrb-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='dotrb'] { + --background: #0a0a0a; + --foreground: #f5f5f5; + --card: #121212; + --card-foreground: #f5f5f5; + --popover: #121212; + --popover-foreground: #f5f5f5; + --muted: #232323; + --muted-foreground: #b1b1b1; + --accent: #232323; + --accent-foreground: #f5f5f5; + --primary: #4a8b8b; + --primary-foreground: #0a0a0a; + --secondary: #232323; + --secondary-foreground: #f5f5f5; + --cta: #4a8b8b; + --cta-foreground: #0a0a0a; + --ctahover: #609999; + --success: #b14242; + --success-foreground: #f5f5f5; + --warning: #f0be66; + --warning-foreground: #0a0a0a; + --destructive: #d66e36; + --destructive-foreground: #0a0a0a; + --info: #4a8b8b; + --info-foreground: #0a0a0a; + --busy: #e3964e; + --busy-foreground: #0a0a0a; + --busy-ink: #e3964e; + --border: #3f3f3f; + --input: #3f3f3f; + --ring: #4a8b8b; + --radius: 0.625rem; + --chart-primary: #4a8b8b; + --chart-secondary: #a7a7a7; + --status-success: #b14242; + --status-warning: #f0be66; + --status-in-progress: #4a8b8b; + --page-bg: #0a0a0a; + --page-bg-src: ''; + --panel-bg: rgb(18 18 18 / 0.72); + --panel-border: rgb(63 63 63 / 0.9); + --panel-border-bare: rgb(63 63 63 / 0.55); + --panel-raised-bg: rgb(18 18 18 / 0.95); + --panel-raised-border: rgb(63 63 63 / 1); + --panel-accent: #4a8b8b; + --panel-header-bg: rgb(35 35 35 / 0.6); + --panel-header-fg: #f5f5f5; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #121212; + --glass-bg: rgb(18 18 18 / 0.55); + --glass-border: rgb(63 63 63 / 0.7); + --dock-bg: rgb(18 18 18 / 0.7); + --dock-border: rgb(63 63 63 / 0.8); + --dock-tooltip-bg: #232323; + --header-bg: rgb(18 18 18 / 0.8); + --header-border: rgb(63 63 63 / 0.9); + --header-fg: #f5f5f5; + --header-blur: 12px; + --pixel-grid-color: rgb(120 120 120 / 0.07); + --card-grid-color: rgb(120 120 120 / 0.05); + --panel-grid-color: rgb(120 120 120 / 0.06); + --scrollbar-thumb: rgb(148 148 148 / 0.6); + --scrollbar-thumb-hover: rgb(148 148 148 / 0.85); + --scrollbar-thin-thumb: rgb(148 148 148 / 0.45); + --scrollbar-thin-thumb-hover: rgb(148 148 148 / 0.7); + --brand: #4a8b8b; + --brand-foreground: #0a0a0a; + --brand-primary: #4a8b8b; + --brand-accent: #b4b4b4; + --brand-warm: #e3964e; + --brand-deep: #0a0a0a; + --brand-muted: #949494; + --ink: #f5f5f5; + --surface-warm: #121212; + --naturegreen: #b14242; + --naturegreen-foreground: #f5f5f5; + --duck-dark: #f5f5f5; + --duck-teal: #b4b4b4; + --duck-yellow: #f0be66; + --duck-orange: #e3964e; + --duck-forest: #b14242; + --duck-beige: #292929; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/drac.css b/src/workspaces/theme/css/themes/drac.css new file mode 100644 index 00000000..984f2937 --- /dev/null +++ b/src/workspaces/theme/css/themes/drac.css @@ -0,0 +1,99 @@ +/* + Drac — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/ShehabShaef/omarchy-drac-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='drac'] { + --background: #090b16; + --foreground: #f2f4f8; + --card: #101428; + --card-foreground: #f2f4f8; + --popover: #101428; + --popover-foreground: #f2f4f8; + --muted: #212437; + --muted-foreground: #aeb1ba; + --accent: #212437; + --accent-foreground: #f2f4f8; + --primary: #50fa7b; + --primary-foreground: #090b16; + --secondary: #212437; + --secondary-foreground: #f2f4f8; + --cta: #50fa7b; + --cta-foreground: #090b16; + --ctahover: #65fb8b; + --success: #1e90ff; + --success-foreground: #090b16; + --warning: #f1fa8c; + --warning-foreground: #090b16; + --destructive: #ff5555; + --destructive-foreground: #090b16; + --info: #50fa7b; + --info-foreground: #090b16; + --busy: #f8a871; + --busy-foreground: #090b16; + --busy-ink: #f8a871; + --border: #3c4051; + --input: #3c4051; + --ring: #50fa7b; + --radius: 0.625rem; + --chart-primary: #50fa7b; + --chart-secondary: #ff79c6; + --status-success: #1e90ff; + --status-warning: #f1fa8c; + --status-in-progress: #50fa7b; + --page-bg: #090b16; + --page-bg-src: ''; + --panel-bg: rgb(16 20 40 / 0.72); + --panel-border: rgb(60 64 81 / 0.9); + --panel-border-bare: rgb(60 64 81 / 0.55); + --panel-raised-bg: rgb(16 20 40 / 0.95); + --panel-raised-border: rgb(60 64 81 / 1); + --panel-accent: #50fa7b; + --panel-header-bg: rgb(33 36 55 / 0.6); + --panel-header-fg: #f2f4f8; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #101428; + --glass-bg: rgb(16 20 40 / 0.55); + --glass-border: rgb(60 64 81 / 0.7); + --dock-bg: rgb(16 20 40 / 0.7); + --dock-border: rgb(60 64 81 / 0.8); + --dock-tooltip-bg: #212437; + --header-bg: rgb(16 20 40 / 0.8); + --header-border: rgb(60 64 81 / 0.9); + --header-fg: #f2f4f8; + --header-blur: 12px; + --pixel-grid-color: rgb(118 121 134 / 0.07); + --card-grid-color: rgb(118 121 134 / 0.05); + --panel-grid-color: rgb(118 121 134 / 0.06); + --scrollbar-thumb: rgb(85 85 85 / 0.6); + --scrollbar-thumb-hover: rgb(85 85 85 / 0.85); + --scrollbar-thin-thumb: rgb(85 85 85 / 0.45); + --scrollbar-thin-thumb-hover: rgb(85 85 85 / 0.7); + --brand: #50fa7b; + --brand-foreground: #090b16; + --brand-primary: #50fa7b; + --brand-accent: #8be9fd; + --brand-warm: #f8a871; + --brand-deep: #090b16; + --brand-muted: #555555; + --ink: #f2f4f8; + --surface-warm: #101428; + --naturegreen: #1e90ff; + --naturegreen-foreground: #090b16; + --duck-dark: #f2f4f8; + --duck-teal: #8be9fd; + --duck-yellow: #f1fa8c; + --duck-orange: #f8a871; + --duck-forest: #1e90ff; + --duck-beige: #272a3d; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/dracula.css b/src/workspaces/theme/css/themes/dracula.css new file mode 100644 index 00000000..88d84dc2 --- /dev/null +++ b/src/workspaces/theme/css/themes/dracula.css @@ -0,0 +1,99 @@ +/* + Dracula — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/catlee/omarchy-dracula-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='dracula'] { + --background: #16171e; + --foreground: #f8f8f2; + --card: #282a36; + --card-foreground: #f8f8f2; + --popover: #282a36; + --popover-foreground: #f8f8f2; + --muted: #373944; + --muted-foreground: #bababa; + --accent: #373944; + --accent-foreground: #f8f8f2; + --primary: #bd93f9; + --primary-foreground: #16171e; + --secondary: #373944; + --secondary-foreground: #f8f8f2; + --cta: #bd93f9; + --cta-foreground: #16171e; + --ctahover: #c5a0fa; + --success: #50fa7b; + --success-foreground: #16171e; + --warning: #f1fa8c; + --warning-foreground: #16171e; + --destructive: #ff5555; + --destructive-foreground: #16171e; + --info: #bd93f9; + --info-foreground: #16171e; + --busy: #f8a871; + --busy-foreground: #16171e; + --busy-ink: #f8a871; + --border: #51525b; + --input: #51525b; + --ring: #bd93f9; + --radius: 0.625rem; + --chart-primary: #bd93f9; + --chart-secondary: #ff79c6; + --status-success: #50fa7b; + --status-warning: #f1fa8c; + --status-in-progress: #bd93f9; + --page-bg: #16171e; + --page-bg-src: ''; + --panel-bg: rgb(40 42 54 / 0.72); + --panel-border: rgb(81 82 91 / 0.9); + --panel-border-bare: rgb(81 82 91 / 0.55); + --panel-raised-bg: rgb(40 42 54 / 0.95); + --panel-raised-border: rgb(81 82 91 / 1); + --panel-accent: #bd93f9; + --panel-header-bg: rgb(55 57 68 / 0.6); + --panel-header-fg: #f8f8f2; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #282a36; + --glass-bg: rgb(40 42 54 / 0.55); + --glass-border: rgb(81 82 91 / 0.7); + --dock-bg: rgb(40 42 54 / 0.7); + --dock-border: rgb(81 82 91 / 0.8); + --dock-tooltip-bg: #373944; + --header-bg: rgb(40 42 54 / 0.8); + --header-border: rgb(81 82 91 / 0.9); + --header-fg: #f8f8f2; + --header-blur: 12px; + --pixel-grid-color: rgb(134 135 139 / 0.07); + --card-grid-color: rgb(134 135 139 / 0.05); + --panel-grid-color: rgb(134 135 139 / 0.06); + --scrollbar-thumb: rgb(98 114 164 / 0.6); + --scrollbar-thumb-hover: rgb(98 114 164 / 0.85); + --scrollbar-thin-thumb: rgb(98 114 164 / 0.45); + --scrollbar-thin-thumb-hover: rgb(98 114 164 / 0.7); + --brand: #bd93f9; + --brand-foreground: #16171e; + --brand-primary: #bd93f9; + --brand-accent: #8be9fd; + --brand-warm: #f8a871; + --brand-deep: #16171e; + --brand-muted: #6272a4; + --ink: #f8f8f2; + --surface-warm: #282a36; + --naturegreen: #50fa7b; + --naturegreen-foreground: #16171e; + --duck-dark: #f8f8f2; + --duck-teal: #8be9fd; + --duck-yellow: #f1fa8c; + --duck-orange: #f8a871; + --duck-forest: #50fa7b; + --duck-beige: #3d3f49; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/dragon.css b/src/workspaces/theme/css/themes/dragon.css new file mode 100644 index 00000000..b5132a6f --- /dev/null +++ b/src/workspaces/theme/css/themes/dragon.css @@ -0,0 +1,99 @@ +/* + Dragon — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/thatmechguy/omarchy-dragon-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='dragon'] { + --background: #0d070c; + --foreground: #ebe5d6; + --card: #180d15; + --card-foreground: #ebe5d6; + --popover: #180d15; + --popover-foreground: #ebe5d6; + --muted: #281e25; + --muted-foreground: #aca49c; + --accent: #281e25; + --accent-foreground: #ebe5d6; + --primary: #5298c4; + --primary-foreground: #0d070c; + --secondary: #281e25; + --secondary-foreground: #ebe5d6; + --cta: #5298c4; + --cta-foreground: #0d070c; + --ctahover: #67a4cb; + --success: #78a682; + --success-foreground: #0d070c; + --warning: #f7e1c7; + --warning-foreground: #0d070c; + --destructive: #ff3d5a; + --destructive-foreground: #0d070c; + --info: #5298c4; + --info-foreground: #0d070c; + --busy: #fb8f91; + --busy-foreground: #0d070c; + --busy-ink: #fb8f91; + --border: #41373b; + --input: #41373b; + --ring: #5298c4; + --radius: 0.625rem; + --chart-primary: #5298c4; + --chart-secondary: #c479a9; + --status-success: #78a682; + --status-warning: #f7e1c7; + --status-in-progress: #5298c4; + --page-bg: #0d070c; + --page-bg-src: ''; + --panel-bg: rgb(24 13 21 / 0.72); + --panel-border: rgb(65 55 59 / 0.9); + --panel-border-bare: rgb(65 55 59 / 0.55); + --panel-raised-bg: rgb(24 13 21 / 0.95); + --panel-raised-border: rgb(65 55 59 / 1); + --panel-accent: #5298c4; + --panel-header-bg: rgb(40 30 37 / 0.6); + --panel-header-fg: #ebe5d6; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #180d15; + --glass-bg: rgb(24 13 21 / 0.55); + --glass-border: rgb(65 55 59 / 0.7); + --dock-bg: rgb(24 13 21 / 0.7); + --dock-border: rgb(65 55 59 / 0.8); + --dock-tooltip-bg: #281e25; + --header-bg: rgb(24 13 21 / 0.8); + --header-border: rgb(65 55 59 / 0.9); + --header-fg: #ebe5d6; + --header-blur: 12px; + --pixel-grid-color: rgb(119 110 108 / 0.07); + --card-grid-color: rgb(119 110 108 / 0.05); + --panel-grid-color: rgb(119 110 108 / 0.06); + --scrollbar-thumb: rgb(58 26 34 / 0.6); + --scrollbar-thumb-hover: rgb(58 26 34 / 0.85); + --scrollbar-thin-thumb: rgb(58 26 34 / 0.45); + --scrollbar-thin-thumb-hover: rgb(58 26 34 / 0.7); + --brand: #5298c4; + --brand-foreground: #0d070c; + --brand-primary: #5298c4; + --brand-accent: #7abaa9; + --brand-warm: #fb8f91; + --brand-deep: #0d070c; + --brand-muted: #3a1a22; + --ink: #ebe5d6; + --surface-warm: #180d15; + --naturegreen: #78a682; + --naturegreen-foreground: #0d070c; + --duck-dark: #ebe5d6; + --duck-teal: #7abaa9; + --duck-yellow: #f7e1c7; + --duck-orange: #fb8f91; + --duck-forest: #78a682; + --duck-beige: #2d2328; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/dreamwave.css b/src/workspaces/theme/css/themes/dreamwave.css new file mode 100644 index 00000000..210fd3e7 --- /dev/null +++ b/src/workspaces/theme/css/themes/dreamwave.css @@ -0,0 +1,99 @@ +/* + Dreamwave — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/RiO7MAKK3R/omarchy-dreamwave-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='dreamwave'] { + --background: #06040c; + --foreground: #f5eafd; + --card: #0a0716; + --card-foreground: #f5eafd; + --popover: #0a0716; + --popover-foreground: #f5eafd; + --muted: #1b1826; + --muted-foreground: #afa6b8; + --accent: #1b1826; + --accent-foreground: #f5eafd; + --primary: #ca2cb0; + --primary-foreground: #ffffff; + --secondary: #1b1826; + --secondary-foreground: #f5eafd; + --cta: #ca2cb0; + --cta-foreground: #ffffff; + --ctahover: #d045b9; + --success: #7f049e; + --success-foreground: #f5eafd; + --warning: #790aac; + --warning-foreground: #f5eafd; + --destructive: #a70b68; + --destructive-foreground: #f5eafd; + --info: #ca2cb0; + --info-foreground: #ffffff; + --busy: #900b8a; + --busy-foreground: #f5eafd; + --busy-ink: #b154ad; + --border: #383443; + --input: #383443; + --ring: #ca2cb0; + --radius: 0.625rem; + --chart-primary: #ca2cb0; + --chart-secondary: #a604e9; + --status-success: #7f049e; + --status-warning: #790aac; + --status-in-progress: #ca2cb0; + --page-bg: #06040c; + --page-bg-src: ''; + --panel-bg: rgb(10 7 22 / 0.72); + --panel-border: rgb(56 52 67 / 0.9); + --panel-border-bare: rgb(56 52 67 / 0.55); + --panel-raised-bg: rgb(10 7 22 / 0.95); + --panel-raised-border: rgb(56 52 67 / 1); + --panel-accent: #ca2cb0; + --panel-header-bg: rgb(27 24 38 / 0.6); + --panel-header-fg: #f5eafd; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #0a0716; + --glass-bg: rgb(10 7 22 / 0.55); + --glass-border: rgb(56 52 67 / 0.7); + --dock-bg: rgb(10 7 22 / 0.7); + --dock-border: rgb(56 52 67 / 0.8); + --dock-tooltip-bg: #1b1826; + --header-bg: rgb(10 7 22 / 0.8); + --header-border: rgb(56 52 67 / 0.9); + --header-fg: #f5eafd; + --header-blur: 12px; + --pixel-grid-color: rgb(116 109 126 / 0.07); + --card-grid-color: rgb(116 109 126 / 0.05); + --panel-grid-color: rgb(116 109 126 / 0.06); + --scrollbar-thumb: rgb(140 83 183 / 0.6); + --scrollbar-thumb-hover: rgb(140 83 183 / 0.85); + --scrollbar-thin-thumb: rgb(140 83 183 / 0.45); + --scrollbar-thin-thumb-hover: rgb(140 83 183 / 0.7); + --brand: #ca2cb0; + --brand-foreground: #ffffff; + --brand-primary: #ca2cb0; + --brand-accent: #c429b2; + --brand-warm: #900b8a; + --brand-deep: #06040c; + --brand-muted: #8c53b7; + --ink: #f5eafd; + --surface-warm: #0a0716; + --naturegreen: #7f049e; + --naturegreen-foreground: #f5eafd; + --duck-dark: #f5eafd; + --duck-teal: #c429b2; + --duck-yellow: #790aac; + --duck-orange: #900b8a; + --duck-forest: #7f049e; + --duck-beige: #221e2d; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/ember-n-ash.css b/src/workspaces/theme/css/themes/ember-n-ash.css new file mode 100644 index 00000000..fb16137a --- /dev/null +++ b/src/workspaces/theme/css/themes/ember-n-ash.css @@ -0,0 +1,99 @@ +/* + Ember N Ash — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/Hydradevx/omarchy-ember-n-ash-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='ember-n-ash'] { + --background: #0e0e0e; + --foreground: #e5d6c6; + --card: #1a1a1a; + --card-foreground: #e5d6c6; + --popover: #1a1a1a; + --popover-foreground: #e5d6c6; + --muted: #2a2a2a; + --muted-foreground: #a89e92; + --accent: #2a2a2a; + --accent-foreground: #e5d6c6; + --primary: #ba9486; + --primary-foreground: #0e0e0e; + --secondary: #2a2a2a; + --secondary-foreground: #e5d6c6; + --cta: #ba9486; + --cta-foreground: #0e0e0e; + --ctahover: #c2a195; + --success: #9e8f70; + --success-foreground: #0e0e0e; + --warning: #d9a066; + --warning-foreground: #0e0e0e; + --destructive: #d45d4c; + --destructive-foreground: #0e0e0e; + --info: #6c5b4c; + --info-foreground: #e5d6c6; + --busy: #d77f59; + --busy-foreground: #0e0e0e; + --busy-ink: #d77f59; + --border: #423f3c; + --input: #423f3c; + --ring: #ba9486; + --radius: 0.625rem; + --chart-primary: #ba9486; + --chart-secondary: #b57276; + --status-success: #9e8f70; + --status-warning: #d9a066; + --status-in-progress: #6c5b4c; + --page-bg: #0e0e0e; + --page-bg-src: ''; + --panel-bg: rgb(26 26 26 / 0.72); + --panel-border: rgb(66 63 60 / 0.9); + --panel-border-bare: rgb(66 63 60 / 0.55); + --panel-raised-bg: rgb(26 26 26 / 0.95); + --panel-raised-border: rgb(66 63 60 / 1); + --panel-accent: #ba9486; + --panel-header-bg: rgb(42 42 42 / 0.6); + --panel-header-fg: #e5d6c6; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #1a1a1a; + --glass-bg: rgb(26 26 26 / 0.55); + --glass-border: rgb(66 63 60 / 0.7); + --dock-bg: rgb(26 26 26 / 0.7); + --dock-border: rgb(66 63 60 / 0.8); + --dock-tooltip-bg: #2a2a2a; + --header-bg: rgb(26 26 26 / 0.8); + --header-border: rgb(66 63 60 / 0.9); + --header-fg: #e5d6c6; + --header-blur: 12px; + --pixel-grid-color: rgb(117 111 103 / 0.07); + --card-grid-color: rgb(117 111 103 / 0.05); + --panel-grid-color: rgb(117 111 103 / 0.06); + --scrollbar-thumb: rgb(42 42 42 / 0.6); + --scrollbar-thumb-hover: rgb(42 42 42 / 0.85); + --scrollbar-thin-thumb: rgb(42 42 42 / 0.45); + --scrollbar-thin-thumb-hover: rgb(42 42 42 / 0.7); + --brand: #ba9486; + --brand-foreground: #0e0e0e; + --brand-primary: #ba9486; + --brand-accent: #a98274; + --brand-warm: #d77f59; + --brand-deep: #0e0e0e; + --brand-muted: #2a2a2a; + --ink: #e5d6c6; + --surface-warm: #1a1a1a; + --naturegreen: #9e8f70; + --naturegreen-foreground: #0e0e0e; + --duck-dark: #e5d6c6; + --duck-teal: #a98274; + --duck-yellow: #d9a066; + --duck-orange: #d77f59; + --duck-forest: #9e8f70; + --duck-beige: #2e2d2b; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/eva-unit-01.css b/src/workspaces/theme/css/themes/eva-unit-01.css new file mode 100644 index 00000000..305af7ef --- /dev/null +++ b/src/workspaces/theme/css/themes/eva-unit-01.css @@ -0,0 +1,99 @@ +/* + Eva Unit 01 — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/OldJobobo/omarchy-01-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='eva-unit-01'] { + --background: #120b1a; + --foreground: #e1d6f8; + --card: #201430; + --card-foreground: #e1d6f8; + --popover: #201430; + --popover-foreground: #e1d6f8; + --muted: #30243e; + --muted-foreground: #a79cbc; + --accent: #30243e; + --accent-foreground: #e1d6f8; + --primary: #ce67f0; + --primary-foreground: #120b1a; + --secondary: #30243e; + --secondary-foreground: #e1d6f8; + --cta: #ce67f0; + --cta-foreground: #120b1a; + --ctahover: #d479f2; + --success: #8edf5f; + --success-foreground: #120b1a; + --warning: #d99145; + --warning-foreground: #120b1a; + --destructive: #bf2d2d; + --destructive-foreground: #e8dffa; + --info: #ce67f0; + --info-foreground: #120b1a; + --busy: #cc5f39; + --busy-foreground: #120b1a; + --busy-ink: #cc5f39; + --border: #463a57; + --input: #463a57; + --ring: #ce67f0; + --radius: 0.625rem; + --chart-primary: #ce67f0; + --chart-secondary: #875faf; + --status-success: #8edf5f; + --status-warning: #d99145; + --status-in-progress: #ce67f0; + --page-bg: #120b1a; + --page-bg-src: ''; + --panel-bg: rgb(32 20 48 / 0.72); + --panel-border: rgb(70 58 87 / 0.9); + --panel-border-bare: rgb(70 58 87 / 0.55); + --panel-raised-bg: rgb(32 20 48 / 0.95); + --panel-raised-border: rgb(70 58 87 / 1); + --panel-accent: #ce67f0; + --panel-header-bg: rgb(48 36 62 / 0.6); + --panel-header-fg: #e1d6f8; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #201430; + --glass-bg: rgb(32 20 48 / 0.55); + --glass-border: rgb(70 58 87 / 0.7); + --dock-bg: rgb(32 20 48 / 0.7); + --dock-border: rgb(70 58 87 / 0.8); + --dock-tooltip-bg: #30243e; + --header-bg: rgb(32 20 48 / 0.8); + --header-border: rgb(70 58 87 / 0.9); + --header-fg: #e1d6f8; + --header-blur: 12px; + --pixel-grid-color: rgb(119 107 138 / 0.07); + --card-grid-color: rgb(119 107 138 / 0.05); + --panel-grid-color: rgb(119 107 138 / 0.06); + --scrollbar-thumb: rgb(161 160 173 / 0.6); + --scrollbar-thumb-hover: rgb(161 160 173 / 0.85); + --scrollbar-thin-thumb: rgb(161 160 173 / 0.45); + --scrollbar-thin-thumb-hover: rgb(161 160 173 / 0.7); + --brand: #ce67f0; + --brand-foreground: #120b1a; + --brand-primary: #ce67f0; + --brand-accent: #9dafd1; + --brand-warm: #cc5f39; + --brand-deep: #120b1a; + --brand-muted: #a1a0ad; + --ink: #e1d6f8; + --surface-warm: #201430; + --naturegreen: #8edf5f; + --naturegreen-foreground: #120b1a; + --duck-dark: #e1d6f8; + --duck-teal: #9dafd1; + --duck-yellow: #d99145; + --duck-orange: #cc5f39; + --duck-forest: #8edf5f; + --duck-beige: #332744; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/event-horizon.css b/src/workspaces/theme/css/themes/event-horizon.css new file mode 100644 index 00000000..e5897dc0 --- /dev/null +++ b/src/workspaces/theme/css/themes/event-horizon.css @@ -0,0 +1,99 @@ +/* + Event Horizon — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/OldJobobo/omarchy-event-horizon-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='event-horizon'] { + --background: #0f1115; + --foreground: #cbced0; + --card: #1c1e26; + --card-foreground: #cbced0; + --popover: #1c1e26; + --popover-foreground: #cbced0; + --muted: #2c2e35; + --muted-foreground: #97999d; + --accent: #2c2e35; + --accent-foreground: #cbced0; + --primary: #26bbd9; + --primary-foreground: #0f1115; + --secondary: #2c2e35; + --secondary-foreground: #cbced0; + --cta: #26bbd9; + --cta-foreground: #0f1115; + --ctahover: #40c3de; + --success: #29d398; + --success-foreground: #0f1115; + --warning: #fac29a; + --warning-foreground: #0f1115; + --destructive: #e95678; + --destructive-foreground: #0f1115; + --info: #26bbd9; + --info-foreground: #0f1115; + --busy: #f28c89; + --busy-foreground: #0f1115; + --busy-ink: #f28c89; + --border: #3e4047; + --input: #3e4047; + --ring: #26bbd9; + --radius: 0.625rem; + --chart-primary: #26bbd9; + --chart-secondary: #ee64ac; + --status-success: #29d398; + --status-warning: #fac29a; + --status-in-progress: #26bbd9; + --page-bg: #0f1115; + --page-bg-src: ''; + --panel-bg: rgb(28 30 38 / 0.72); + --panel-border: rgb(62 64 71 / 0.9); + --panel-border-bare: rgb(62 64 71 / 0.55); + --panel-raised-bg: rgb(28 30 38 / 0.95); + --panel-raised-border: rgb(62 64 71 / 1); + --panel-accent: #26bbd9; + --panel-header-bg: rgb(44 46 53 / 0.6); + --panel-header-fg: #cbced0; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #1c1e26; + --glass-bg: rgb(28 30 38 / 0.55); + --glass-border: rgb(62 64 71 / 0.7); + --dock-bg: rgb(28 30 38 / 0.7); + --dock-border: rgb(62 64 71 / 0.8); + --dock-tooltip-bg: #2c2e35; + --header-bg: rgb(28 30 38 / 0.8); + --header-border: rgb(62 64 71 / 0.9); + --header-fg: #cbced0; + --header-blur: 12px; + --pixel-grid-color: rgb(107 109 114 / 0.07); + --card-grid-color: rgb(107 109 114 / 0.05); + --panel-grid-color: rgb(107 109 114 / 0.06); + --scrollbar-thumb: rgb(111 111 112 / 0.6); + --scrollbar-thumb-hover: rgb(111 111 112 / 0.85); + --scrollbar-thin-thumb: rgb(111 111 112 / 0.45); + --scrollbar-thin-thumb-hover: rgb(111 111 112 / 0.7); + --brand: #26bbd9; + --brand-foreground: #0f1115; + --brand-primary: #26bbd9; + --brand-accent: #59e1e3; + --brand-warm: #f28c89; + --brand-deep: #0f1115; + --brand-muted: #6f6f70; + --ink: #cbced0; + --surface-warm: #1c1e26; + --naturegreen: #29d398; + --naturegreen-foreground: #0f1115; + --duck-dark: #cbced0; + --duck-teal: #59e1e3; + --duck-yellow: #fac29a; + --duck-orange: #f28c89; + --duck-forest: #29d398; + --duck-beige: #2e3037; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/everblush.css b/src/workspaces/theme/css/themes/everblush.css new file mode 100644 index 00000000..512f0c8c --- /dev/null +++ b/src/workspaces/theme/css/themes/everblush.css @@ -0,0 +1,99 @@ +/* + Everblush — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/Swarnim114/omarchy-everblush-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='everblush'] { + --background: #0b0f11; + --foreground: #dadada; + --card: #141b1e; + --card-foreground: #dadada; + --popover: #141b1e; + --popover-foreground: #dadada; + --muted: #242b2e; + --muted-foreground: #9fa1a2; + --accent: #242b2e; + --accent-foreground: #dadada; + --primary: #67b0e8; + --primary-foreground: #0b0f11; + --secondary: #242b2e; + --secondary-foreground: #dadada; + --cta: #67b0e8; + --cta-foreground: #0b0f11; + --ctahover: #79b9eb; + --success: #8ccf7e; + --success-foreground: #0b0f11; + --warning: #e5c76b; + --warning-foreground: #0b0f11; + --destructive: #e57474; + --destructive-foreground: #0b0f11; + --info: #67b0e8; + --info-foreground: #0b0f11; + --busy: #e59e70; + --busy-foreground: #0b0f11; + --busy-ink: #e59e70; + --border: #3b4143; + --input: #3b4143; + --ring: #67b0e8; + --radius: 0.625rem; + --chart-primary: #67b0e8; + --chart-secondary: #c47fd5; + --status-success: #8ccf7e; + --status-warning: #e5c76b; + --status-in-progress: #67b0e8; + --page-bg: #0b0f11; + --page-bg-src: ''; + --panel-bg: rgb(20 27 30 / 0.72); + --panel-border: rgb(59 65 67 / 0.9); + --panel-border-bare: rgb(59 65 67 / 0.55); + --panel-raised-bg: rgb(20 27 30 / 0.95); + --panel-raised-border: rgb(59 65 67 / 1); + --panel-accent: #67b0e8; + --panel-header-bg: rgb(36 43 46 / 0.6); + --panel-header-fg: #dadada; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #141b1e; + --glass-bg: rgb(20 27 30 / 0.55); + --glass-border: rgb(59 65 67 / 0.7); + --dock-bg: rgb(20 27 30 / 0.7); + --dock-border: rgb(59 65 67 / 0.8); + --dock-tooltip-bg: #242b2e; + --header-bg: rgb(20 27 30 / 0.8); + --header-border: rgb(59 65 67 / 0.9); + --header-fg: #dadada; + --header-blur: 12px; + --pixel-grid-color: rgb(109 113 115 / 0.07); + --card-grid-color: rgb(109 113 115 / 0.05); + --panel-grid-color: rgb(109 113 115 / 0.06); + --scrollbar-thumb: rgb(35 42 45 / 0.6); + --scrollbar-thumb-hover: rgb(35 42 45 / 0.85); + --scrollbar-thin-thumb: rgb(35 42 45 / 0.45); + --scrollbar-thin-thumb-hover: rgb(35 42 45 / 0.7); + --brand: #67b0e8; + --brand-foreground: #0b0f11; + --brand-primary: #67b0e8; + --brand-accent: #6cbfbf; + --brand-warm: #e59e70; + --brand-deep: #0b0f11; + --brand-muted: #232a2d; + --ink: #dadada; + --surface-warm: #141b1e; + --naturegreen: #8ccf7e; + --naturegreen-foreground: #0b0f11; + --duck-dark: #dadada; + --duck-teal: #6cbfbf; + --duck-yellow: #e5c76b; + --duck-orange: #e59e70; + --duck-forest: #8ccf7e; + --duck-beige: #282e31; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/farline.css b/src/workspaces/theme/css/themes/farline.css new file mode 100644 index 00000000..a83f75b5 --- /dev/null +++ b/src/workspaces/theme/css/themes/farline.css @@ -0,0 +1,99 @@ +/* + Farline — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/atif-1402/omarchy-farline-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='farline'] { + --background: #131417; + --foreground: #d6dcd9; + --card: #232529; + --card-foreground: #d6dcd9; + --popover: #232529; + --popover-foreground: #d6dcd9; + --muted: #323438; + --muted-foreground: #a0a5a4; + --accent: #323438; + --accent-foreground: #d6dcd9; + --primary: #879ab0; + --primary-foreground: #131417; + --secondary: #323438; + --secondary-foreground: #d6dcd9; + --cta: #879ab0; + --cta-foreground: #131417; + --ctahover: #95a6b9; + --success: #9bab8c; + --success-foreground: #131417; + --warning: #b1b195; + --warning-foreground: #131417; + --destructive: #a48484; + --destructive-foreground: #131417; + --info: #879ab0; + --info-foreground: #131417; + --busy: #ab9b8d; + --busy-foreground: #131417; + --busy-ink: #ab9b8d; + --border: #46494b; + --input: #46494b; + --ring: #879ab0; + --radius: 0.625rem; + --chart-primary: #879ab0; + --chart-secondary: #bea7ad; + --status-success: #9bab8c; + --status-warning: #b1b195; + --status-in-progress: #879ab0; + --page-bg: #131417; + --page-bg-src: ''; + --panel-bg: rgb(35 37 41 / 0.72); + --panel-border: rgb(70 73 75 / 0.9); + --panel-border-bare: rgb(70 73 75 / 0.55); + --panel-raised-bg: rgb(35 37 41 / 0.95); + --panel-raised-border: rgb(70 73 75 / 1); + --panel-accent: #879ab0; + --panel-header-bg: rgb(50 52 56 / 0.6); + --panel-header-fg: #d6dcd9; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #232529; + --glass-bg: rgb(35 37 41 / 0.55); + --glass-border: rgb(70 73 75 / 0.7); + --dock-bg: rgb(35 37 41 / 0.7); + --dock-border: rgb(70 73 75 / 0.8); + --dock-tooltip-bg: #323438; + --header-bg: rgb(35 37 41 / 0.8); + --header-border: rgb(70 73 75 / 0.9); + --header-fg: #d6dcd9; + --header-blur: 12px; + --pixel-grid-color: rgb(116 119 120 / 0.07); + --card-grid-color: rgb(116 119 120 / 0.05); + --panel-grid-color: rgb(116 119 120 / 0.06); + --scrollbar-thumb: rgb(120 124 135 / 0.6); + --scrollbar-thumb-hover: rgb(120 124 135 / 0.85); + --scrollbar-thin-thumb: rgb(120 124 135 / 0.45); + --scrollbar-thin-thumb-hover: rgb(120 124 135 / 0.7); + --brand: #879ab0; + --brand-foreground: #131417; + --brand-primary: #879ab0; + --brand-accent: #7eadac; + --brand-warm: #ab9b8d; + --brand-deep: #131417; + --brand-muted: #787c87; + --ink: #d6dcd9; + --surface-warm: #232529; + --naturegreen: #9bab8c; + --naturegreen-foreground: #131417; + --duck-dark: #d6dcd9; + --duck-teal: #7eadac; + --duck-yellow: #b1b195; + --duck-orange: #ab9b8d; + --duck-forest: #9bab8c; + --duck-beige: #35373b; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/felix.css b/src/workspaces/theme/css/themes/felix.css new file mode 100644 index 00000000..ac52bdec --- /dev/null +++ b/src/workspaces/theme/css/themes/felix.css @@ -0,0 +1,99 @@ +/* + Felix — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/TyRichards/omarchy-felix-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='felix'] { + --background: #000000; + --foreground: #e7e9ea; + --card: #000000; + --card-foreground: #e7e9ea; + --popover: #000000; + --popover-foreground: #e7e9ea; + --muted: #121212; + --muted-foreground: #a2a3a4; + --accent: #121212; + --accent-foreground: #e7e9ea; + --primary: #626262; + --primary-foreground: #e7e9ea; + --secondary: #121212; + --secondary-foreground: #e7e9ea; + --cta: #626262; + --cta-foreground: #e7e9ea; + --ctahover: #757575; + --success: #e7e9ea; + --success-foreground: #000000; + --warning: #9e9e9e; + --warning-foreground: #000000; + --destructive: #8a8a8a; + --destructive-foreground: #000000; + --info: #626262; + --info-foreground: #e7e9ea; + --busy: #949494; + --busy-foreground: #000000; + --busy-ink: #949494; + --border: #2d2e2e; + --input: #2d2e2e; + --ring: #626262; + --radius: 0.625rem; + --chart-primary: #626262; + --chart-secondary: #8a8a8a; + --status-success: #e7e9ea; + --status-warning: #9e9e9e; + --status-in-progress: #626262; + --page-bg: #000000; + --page-bg-src: ''; + --panel-bg: rgb(0 0 0 / 0.72); + --panel-border: rgb(45 46 46 / 0.9); + --panel-border-bare: rgb(45 46 46 / 0.55); + --panel-raised-bg: rgb(0 0 0 / 0.95); + --panel-raised-border: rgb(45 46 46 / 1); + --panel-accent: #626262; + --panel-header-bg: rgb(18 18 18 / 0.6); + --panel-header-fg: #e7e9ea; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #000000; + --glass-bg: rgb(0 0 0 / 0.55); + --glass-border: rgb(45 46 46 / 0.7); + --dock-bg: rgb(0 0 0 / 0.7); + --dock-border: rgb(45 46 46 / 0.8); + --dock-tooltip-bg: #121212; + --header-bg: rgb(0 0 0 / 0.8); + --header-border: rgb(45 46 46 / 0.9); + --header-fg: #e7e9ea; + --header-blur: 12px; + --pixel-grid-color: rgb(104 105 105 / 0.07); + --card-grid-color: rgb(104 105 105 / 0.05); + --panel-grid-color: rgb(104 105 105 / 0.06); + --scrollbar-thumb: rgb(98 98 98 / 0.6); + --scrollbar-thumb-hover: rgb(98 98 98 / 0.85); + --scrollbar-thin-thumb: rgb(98 98 98 / 0.45); + --scrollbar-thin-thumb-hover: rgb(98 98 98 / 0.7); + --brand: #626262; + --brand-foreground: #e7e9ea; + --brand-primary: #626262; + --brand-accent: #767676; + --brand-warm: #949494; + --brand-deep: #000000; + --brand-muted: #626262; + --ink: #e7e9ea; + --surface-warm: #000000; + --naturegreen: #e7e9ea; + --naturegreen-foreground: #000000; + --duck-dark: #e7e9ea; + --duck-teal: #767676; + --duck-yellow: #9e9e9e; + --duck-orange: #949494; + --duck-forest: #e7e9ea; + --duck-beige: #171717; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/flat-dracula.css b/src/workspaces/theme/css/themes/flat-dracula.css new file mode 100644 index 00000000..82d64296 --- /dev/null +++ b/src/workspaces/theme/css/themes/flat-dracula.css @@ -0,0 +1,99 @@ +/* + Flat Dracula — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/OldJobobo/omarchy-flat-dracula-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='flat-dracula'] { + --background: #16171e; + --foreground: #f8f8f2; + --card: #282a36; + --card-foreground: #f8f8f2; + --popover: #282a36; + --popover-foreground: #f8f8f2; + --muted: #373944; + --muted-foreground: #bababa; + --accent: #373944; + --accent-foreground: #f8f8f2; + --primary: #bd93f9; + --primary-foreground: #16171e; + --secondary: #373944; + --secondary-foreground: #f8f8f2; + --cta: #bd93f9; + --cta-foreground: #16171e; + --ctahover: #c5a0fa; + --success: #50fa7b; + --success-foreground: #16171e; + --warning: #f1fa8c; + --warning-foreground: #16171e; + --destructive: #ff5555; + --destructive-foreground: #16171e; + --info: #bd93f9; + --info-foreground: #16171e; + --busy: #f8a871; + --busy-foreground: #16171e; + --busy-ink: #f8a871; + --border: #51525b; + --input: #51525b; + --ring: #bd93f9; + --radius: 0.625rem; + --chart-primary: #bd93f9; + --chart-secondary: #ff79c6; + --status-success: #50fa7b; + --status-warning: #f1fa8c; + --status-in-progress: #bd93f9; + --page-bg: #16171e; + --page-bg-src: ''; + --panel-bg: rgb(40 42 54 / 0.72); + --panel-border: rgb(81 82 91 / 0.9); + --panel-border-bare: rgb(81 82 91 / 0.55); + --panel-raised-bg: rgb(40 42 54 / 0.95); + --panel-raised-border: rgb(81 82 91 / 1); + --panel-accent: #bd93f9; + --panel-header-bg: rgb(55 57 68 / 0.6); + --panel-header-fg: #f8f8f2; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #282a36; + --glass-bg: rgb(40 42 54 / 0.55); + --glass-border: rgb(81 82 91 / 0.7); + --dock-bg: rgb(40 42 54 / 0.7); + --dock-border: rgb(81 82 91 / 0.8); + --dock-tooltip-bg: #373944; + --header-bg: rgb(40 42 54 / 0.8); + --header-border: rgb(81 82 91 / 0.9); + --header-fg: #f8f8f2; + --header-blur: 12px; + --pixel-grid-color: rgb(134 135 139 / 0.07); + --card-grid-color: rgb(134 135 139 / 0.05); + --panel-grid-color: rgb(134 135 139 / 0.06); + --scrollbar-thumb: rgb(98 114 164 / 0.6); + --scrollbar-thumb-hover: rgb(98 114 164 / 0.85); + --scrollbar-thin-thumb: rgb(98 114 164 / 0.45); + --scrollbar-thin-thumb-hover: rgb(98 114 164 / 0.7); + --brand: #bd93f9; + --brand-foreground: #16171e; + --brand-primary: #bd93f9; + --brand-accent: #8be9fd; + --brand-warm: #f8a871; + --brand-deep: #16171e; + --brand-muted: #6272a4; + --ink: #f8f8f2; + --surface-warm: #282a36; + --naturegreen: #50fa7b; + --naturegreen-foreground: #16171e; + --duck-dark: #f8f8f2; + --duck-teal: #8be9fd; + --duck-yellow: #f1fa8c; + --duck-orange: #f8a871; + --duck-forest: #50fa7b; + --duck-beige: #3d3f49; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/florida-man.css b/src/workspaces/theme/css/themes/florida-man.css new file mode 100644 index 00000000..b21af872 --- /dev/null +++ b/src/workspaces/theme/css/themes/florida-man.css @@ -0,0 +1,99 @@ +/* + Florida Man — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/OldJobobo/omarchy-florida-man-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='florida-man'] { + --background: #1a1d27; + --foreground: #b5bfe2; + --card: #303446; + --card-foreground: #b5bfe2; + --popover: #303446; + --popover-foreground: #b5bfe2; + --muted: #3e4253; + --muted-foreground: #aab0c6; + --accent: #3e4253; + --accent-foreground: #b5bfe2; + --primary: #8caaee; + --primary-foreground: #1a1d27; + --secondary: #3e4253; + --secondary-foreground: #b5bfe2; + --cta: #8caaee; + --cta-foreground: #1a1d27; + --ctahover: #9ab4f0; + --success: #a6d189; + --success-foreground: #1a1d27; + --warning: #e5c890; + --warning-foreground: #1a1d27; + --destructive: #e78284; + --destructive-foreground: #1a1d27; + --info: #8caaee; + --info-foreground: #1a1d27; + --busy: #e6a58a; + --busy-foreground: #1a1d27; + --busy-ink: #e6a58a; + --border: #4a4f65; + --input: #4a4f65; + --ring: #8caaee; + --radius: 0.625rem; + --chart-primary: #8caaee; + --chart-secondary: #ca9ee6; + --status-success: #a6d189; + --status-warning: #e5c890; + --status-in-progress: #8caaee; + --page-bg: #1a1d27; + --page-bg-src: ''; + --panel-bg: rgb(48 52 70 / 0.72); + --panel-border: rgb(74 79 101 / 0.9); + --panel-border-bare: rgb(74 79 101 / 0.55); + --panel-raised-bg: rgb(48 52 70 / 0.95); + --panel-raised-border: rgb(74 79 101 / 1); + --panel-accent: #8caaee; + --panel-header-bg: rgb(62 66 83 / 0.6); + --panel-header-fg: #b5bfe2; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #303446; + --glass-bg: rgb(48 52 70 / 0.55); + --glass-border: rgb(74 79 101 / 0.7); + --dock-bg: rgb(48 52 70 / 0.7); + --dock-border: rgb(74 79 101 / 0.8); + --dock-tooltip-bg: #3e4253; + --header-bg: rgb(48 52 70 / 0.8); + --header-border: rgb(74 79 101 / 0.9); + --header-fg: #b5bfe2; + --header-blur: 12px; + --pixel-grid-color: rgb(119 126 149 / 0.07); + --card-grid-color: rgb(119 126 149 / 0.05); + --panel-grid-color: rgb(119 126 149 / 0.06); + --scrollbar-thumb: rgb(81 87 109 / 0.6); + --scrollbar-thumb-hover: rgb(81 87 109 / 0.85); + --scrollbar-thin-thumb: rgb(81 87 109 / 0.45); + --scrollbar-thin-thumb-hover: rgb(81 87 109 / 0.7); + --brand: #8caaee; + --brand-foreground: #1a1d27; + --brand-primary: #8caaee; + --brand-accent: #81c8be; + --brand-warm: #e6a58a; + --brand-deep: #1a1d27; + --brand-muted: #51576d; + --ink: #b5bfe2; + --surface-warm: #303446; + --naturegreen: #a6d189; + --naturegreen-foreground: #1a1d27; + --duck-dark: #b5bfe2; + --duck-teal: #81c8be; + --duck-yellow: #e5c890; + --duck-orange: #e6a58a; + --duck-forest: #a6d189; + --duck-beige: #3d4256; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/fluid-glass.css b/src/workspaces/theme/css/themes/fluid-glass.css new file mode 100644 index 00000000..9ff17658 --- /dev/null +++ b/src/workspaces/theme/css/themes/fluid-glass.css @@ -0,0 +1,99 @@ +/* + Fluid Glass — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/ripple0328/omarchy-fluid-glass-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='fluid-glass'] { + --background: #08080b; + --foreground: #f8fafc; + --card: #0f0f14; + --card-foreground: #f8fafc; + --popover: #0f0f14; + --popover-foreground: #f8fafc; + --muted: #202024; + --muted-foreground: #b2b4b6; + --accent: #202024; + --accent-foreground: #f8fafc; + --primary: #0ea5e9; + --primary-foreground: #08080b; + --secondary: #202024; + --secondary-foreground: #f8fafc; + --cta: #0ea5e9; + --cta-foreground: #08080b; + --ctahover: #2bb0ec; + --success: #10b981; + --success-foreground: #08080b; + --warning: #f59e0b; + --warning-foreground: #08080b; + --destructive: #ef4444; + --destructive-foreground: #08080b; + --info: #0ea5e9; + --info-foreground: #08080b; + --busy: #f27128; + --busy-foreground: #08080b; + --busy-ink: #f27128; + --border: #3d3d41; + --input: #3d3d41; + --ring: #0ea5e9; + --radius: 0.625rem; + --chart-primary: #0ea5e9; + --chart-secondary: #8b5cf6; + --status-success: #10b981; + --status-warning: #f59e0b; + --status-in-progress: #0ea5e9; + --page-bg: #08080b; + --page-bg-src: ''; + --panel-bg: rgb(15 15 20 / 0.72); + --panel-border: rgb(61 61 65 / 0.9); + --panel-border-bare: rgb(61 61 65 / 0.55); + --panel-raised-bg: rgb(15 15 20 / 0.95); + --panel-raised-border: rgb(61 61 65 / 1); + --panel-accent: #0ea5e9; + --panel-header-bg: rgb(32 32 36 / 0.6); + --panel-header-fg: #f8fafc; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #0f0f14; + --glass-bg: rgb(15 15 20 / 0.55); + --glass-border: rgb(61 61 65 / 0.7); + --dock-bg: rgb(15 15 20 / 0.7); + --dock-border: rgb(61 61 65 / 0.8); + --dock-tooltip-bg: #202024; + --header-bg: rgb(15 15 20 / 0.8); + --header-border: rgb(61 61 65 / 0.9); + --header-fg: #f8fafc; + --header-blur: 12px; + --pixel-grid-color: rgb(120 121 124 / 0.07); + --card-grid-color: rgb(120 121 124 / 0.05); + --panel-grid-color: rgb(120 121 124 / 0.06); + --scrollbar-thumb: rgb(71 85 105 / 0.6); + --scrollbar-thumb-hover: rgb(71 85 105 / 0.85); + --scrollbar-thin-thumb: rgb(71 85 105 / 0.45); + --scrollbar-thin-thumb-hover: rgb(71 85 105 / 0.7); + --brand: #0ea5e9; + --brand-foreground: #08080b; + --brand-primary: #0ea5e9; + --brand-accent: #06b6d4; + --brand-warm: #f27128; + --brand-deep: #08080b; + --brand-muted: #475569; + --ink: #f8fafc; + --surface-warm: #0f0f14; + --naturegreen: #10b981; + --naturegreen-foreground: #08080b; + --duck-dark: #f8fafc; + --duck-teal: #06b6d4; + --duck-yellow: #f59e0b; + --duck-orange: #f27128; + --duck-forest: #10b981; + --duck-beige: #26272b; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/forest-green.css b/src/workspaces/theme/css/themes/forest-green.css new file mode 100644 index 00000000..c80e816a --- /dev/null +++ b/src/workspaces/theme/css/themes/forest-green.css @@ -0,0 +1,99 @@ +/* + Forest Green — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/abhijeet-swami/omarchy-forest-green-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='forest-green'] { + --background: #080e0b; + --foreground: #a8e6a1; + --card: #0f1a14; + --card-foreground: #a8e6a1; + --popover: #0f1a14; + --popover-foreground: #a8e6a1; + --muted: #202a24; + --muted-foreground: #7aa977; + --accent: #202a24; + --accent-foreground: #a8e6a1; + --primary: #5fa9a8; + --primary-foreground: #080e0b; + --secondary: #202a24; + --secondary-foreground: #a8e6a1; + --cta: #5fa9a8; + --cta-foreground: #080e0b; + --ctahover: #72b3b2; + --success: #6bbf7a; + --success-foreground: #080e0b; + --warning: #d7ba7d; + --warning-foreground: #080e0b; + --destructive: #e06c75; + --destructive-foreground: #080e0b; + --info: #5fa9a8; + --info-foreground: #080e0b; + --busy: #dc9379; + --busy-foreground: #080e0b; + --busy-ink: #dc9379; + --border: #2d4230; + --input: #2d4230; + --ring: #5fa9a8; + --radius: 0.625rem; + --chart-primary: #5fa9a8; + --chart-secondary: #c678dd; + --status-success: #6bbf7a; + --status-warning: #d7ba7d; + --status-in-progress: #5fa9a8; + --page-bg: #080e0b; + --page-bg-src: ''; + --panel-bg: rgb(15 26 20 / 0.72); + --panel-border: rgb(45 66 48 / 0.9); + --panel-border-bare: rgb(45 66 48 / 0.55); + --panel-raised-bg: rgb(15 26 20 / 0.95); + --panel-raised-border: rgb(45 66 48 / 1); + --panel-accent: #5fa9a8; + --panel-header-bg: rgb(32 42 36 / 0.6); + --panel-header-fg: #a8e6a1; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #0f1a14; + --glass-bg: rgb(15 26 20 / 0.55); + --glass-border: rgb(45 66 48 / 0.7); + --dock-bg: rgb(15 26 20 / 0.7); + --dock-border: rgb(45 66 48 / 0.8); + --dock-tooltip-bg: #202a24; + --header-bg: rgb(15 26 20 / 0.8); + --header-border: rgb(45 66 48 / 0.9); + --header-fg: #a8e6a1; + --header-blur: 12px; + --pixel-grid-color: rgb(84 118 83 / 0.07); + --card-grid-color: rgb(84 118 83 / 0.05); + --panel-grid-color: rgb(84 118 83 / 0.06); + --scrollbar-thumb: rgb(58 74 61 / 0.6); + --scrollbar-thumb-hover: rgb(58 74 61 / 0.85); + --scrollbar-thin-thumb: rgb(58 74 61 / 0.45); + --scrollbar-thin-thumb-hover: rgb(58 74 61 / 0.7); + --brand: #5fa9a8; + --brand-foreground: #080e0b; + --brand-primary: #5fa9a8; + --brand-accent: #56b6c2; + --brand-warm: #dc9379; + --brand-deep: #080e0b; + --brand-muted: #3a4a3d; + --ink: #a8e6a1; + --surface-warm: #0f1a14; + --naturegreen: #6bbf7a; + --naturegreen-foreground: #080e0b; + --duck-dark: #a8e6a1; + --duck-teal: #56b6c2; + --duck-yellow: #d7ba7d; + --duck-orange: #dc9379; + --duck-forest: #6bbf7a; + --duck-beige: #1e2e22; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/glory-antic.css b/src/workspaces/theme/css/themes/glory-antic.css new file mode 100644 index 00000000..5129100b --- /dev/null +++ b/src/workspaces/theme/css/themes/glory-antic.css @@ -0,0 +1,99 @@ +/* + Glory Antic — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/clement-rtfm/glory-antic (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='glory-antic'] { + --background: #0d0a09; + --foreground: #f4f2f1; + --card: #181310; + --card-foreground: #f4f2f1; + --popover: #181310; + --popover-foreground: #f4f2f1; + --muted: #282421; + --muted-foreground: #b2afae; + --accent: #282421; + --accent-foreground: #f4f2f1; + --primary: #cf9b68; + --primary-foreground: #0d0a09; + --secondary: #282421; + --secondary-foreground: #f4f2f1; + --cta: #cf9b68; + --cta-foreground: #0d0a09; + --ctahover: #d5a77a; + --success: #cd6a6a; + --success-foreground: #0d0a09; + --warning: #cf8677; + --warning-foreground: #0d0a09; + --destructive: #c0596a; + --destructive-foreground: #0d0a09; + --info: #cf9b68; + --info-foreground: #0d0a09; + --busy: #c87071; + --busy-foreground: #0d0a09; + --busy-ink: #c87071; + --border: #433f3c; + --input: #433f3c; + --ring: #cf9b68; + --radius: 0.625rem; + --chart-primary: #cf9b68; + --chart-secondary: #d6be8f; + --status-success: #cd6a6a; + --status-warning: #cf8677; + --status-in-progress: #cf9b68; + --page-bg: #0d0a09; + --page-bg-src: ''; + --panel-bg: rgb(24 19 16 / 0.72); + --panel-border: rgb(67 63 60 / 0.9); + --panel-border-bare: rgb(67 63 60 / 0.55); + --panel-raised-bg: rgb(24 19 16 / 0.95); + --panel-raised-border: rgb(67 63 60 / 1); + --panel-accent: #cf9b68; + --panel-header-bg: rgb(40 36 33 / 0.6); + --panel-header-fg: #f4f2f1; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #181310; + --glass-bg: rgb(24 19 16 / 0.55); + --glass-border: rgb(67 63 60 / 0.7); + --dock-bg: rgb(24 19 16 / 0.7); + --dock-border: rgb(67 63 60 / 0.8); + --dock-tooltip-bg: #282421; + --header-bg: rgb(24 19 16 / 0.8); + --header-border: rgb(67 63 60 / 0.9); + --header-fg: #f4f2f1; + --header-blur: 12px; + --pixel-grid-color: rgb(123 119 117 / 0.07); + --card-grid-color: rgb(123 119 117 / 0.05); + --panel-grid-color: rgb(123 119 117 / 0.06); + --scrollbar-thumb: rgb(132 109 98 / 0.6); + --scrollbar-thumb-hover: rgb(132 109 98 / 0.85); + --scrollbar-thin-thumb: rgb(132 109 98 / 0.45); + --scrollbar-thin-thumb-hover: rgb(132 109 98 / 0.7); + --brand: #cf9b68; + --brand-foreground: #0d0a09; + --brand-primary: #cf9b68; + --brand-accent: #cdbc6a; + --brand-warm: #c87071; + --brand-deep: #0d0a09; + --brand-muted: #846d62; + --ink: #f4f2f1; + --surface-warm: #181310; + --naturegreen: #cd6a6a; + --naturegreen-foreground: #0d0a09; + --duck-dark: #f4f2f1; + --duck-teal: #cdbc6a; + --duck-yellow: #cf8677; + --duck-orange: #c87071; + --duck-forest: #cd6a6a; + --duck-beige: #2e2927; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/gold-rush.css b/src/workspaces/theme/css/themes/gold-rush.css new file mode 100644 index 00000000..639c2f2e --- /dev/null +++ b/src/workspaces/theme/css/themes/gold-rush.css @@ -0,0 +1,99 @@ +/* + Gold Rush — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/tahayvr/omarchy-gold-rush-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='gold-rush'] { + --background: #0a0a0a; + --foreground: #d9d9d9; + --card: #121212; + --card-foreground: #d9d9d9; + --popover: #121212; + --popover-foreground: #d9d9d9; + --muted: #232323; + --muted-foreground: #9d9d9d; + --accent: #232323; + --accent-foreground: #d9d9d9; + --primary: #926c15; + --primary-foreground: #f9f9f9; + --secondary: #232323; + --secondary-foreground: #d9d9d9; + --cta: #926c15; + --cta-foreground: #f9f9f9; + --ctahover: #9f7e31; + --success: #a47e1b; + --success-foreground: #0a0a0a; + --warning: #fad643; + --warning-foreground: #0a0a0a; + --destructive: #dbb42c; + --destructive-foreground: #0a0a0a; + --info: #926c15; + --info-foreground: #f9f9f9; + --busy: #ebc538; + --busy-foreground: #0a0a0a; + --busy-ink: #ebc538; + --border: #393939; + --input: #393939; + --ring: #926c15; + --radius: 0.625rem; + --chart-primary: #926c15; + --chart-secondary: #b69121; + --status-success: #a47e1b; + --status-warning: #fad643; + --status-in-progress: #926c15; + --page-bg: #0a0a0a; + --page-bg-src: ''; + --panel-bg: rgb(18 18 18 / 0.72); + --panel-border: rgb(57 57 57 / 0.9); + --panel-border-bare: rgb(57 57 57 / 0.55); + --panel-raised-bg: rgb(18 18 18 / 0.95); + --panel-raised-border: rgb(57 57 57 / 1); + --panel-accent: #926c15; + --panel-header-bg: rgb(35 35 35 / 0.6); + --panel-header-fg: #d9d9d9; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #121212; + --glass-bg: rgb(18 18 18 / 0.55); + --glass-border: rgb(57 57 57 / 0.7); + --dock-bg: rgb(18 18 18 / 0.7); + --dock-border: rgb(57 57 57 / 0.8); + --dock-tooltip-bg: #232323; + --header-bg: rgb(18 18 18 / 0.8); + --header-border: rgb(57 57 57 / 0.9); + --header-fg: #d9d9d9; + --header-blur: 12px; + --pixel-grid-color: rgb(108 108 108 / 0.07); + --card-grid-color: rgb(108 108 108 / 0.05); + --panel-grid-color: rgb(108 108 108 / 0.06); + --scrollbar-thumb: rgb(128 91 16 / 0.6); + --scrollbar-thumb-hover: rgb(128 91 16 / 0.85); + --scrollbar-thin-thumb: rgb(128 91 16 / 0.45); + --scrollbar-thin-thumb-hover: rgb(128 91 16 / 0.7); + --brand: #926c15; + --brand-foreground: #f9f9f9; + --brand-primary: #926c15; + --brand-accent: #805b10; + --brand-warm: #ebc538; + --brand-deep: #0a0a0a; + --brand-muted: #805b10; + --ink: #d9d9d9; + --surface-warm: #121212; + --naturegreen: #a47e1b; + --naturegreen-foreground: #0a0a0a; + --duck-dark: #d9d9d9; + --duck-teal: #805b10; + --duck-yellow: #fad643; + --duck-orange: #ebc538; + --duck-forest: #a47e1b; + --duck-beige: #262626; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/gotham-city.css b/src/workspaces/theme/css/themes/gotham-city.css new file mode 100644 index 00000000..f4954f39 --- /dev/null +++ b/src/workspaces/theme/css/themes/gotham-city.css @@ -0,0 +1,99 @@ +/* + Gotham City — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/JustArmaan/omarchy-gotham-city-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='gotham-city'] { + --background: #080b0e; + --foreground: #d4d4d4; + --card: #0f1419; + --card-foreground: #d4d4d4; + --popover: #0f1419; + --popover-foreground: #d4d4d4; + --muted: #202429; + --muted-foreground: #999a9c; + --accent: #202429; + --accent-foreground: #d4d4d4; + --primary: #5c7a8c; + --primary-foreground: #030406; + --secondary: #202429; + --secondary-foreground: #d4d4d4; + --cta: #5c7a8c; + --cta-foreground: #030406; + --ctahover: #708a9a; + --success: #7a9b76; + --success-foreground: #080b0e; + --warning: #d9b768; + --warning-foreground: #080b0e; + --destructive: #d45a4a; + --destructive-foreground: #080b0e; + --info: #5c7a8c; + --info-foreground: #030406; + --busy: #d78959; + --busy-foreground: #080b0e; + --busy-ink: #d78959; + --border: #363a3e; + --input: #363a3e; + --ring: #5c7a8c; + --radius: 0.625rem; + --chart-primary: #5c7a8c; + --chart-secondary: #8c6a7a; + --status-success: #7a9b76; + --status-warning: #d9b768; + --status-in-progress: #5c7a8c; + --page-bg: #080b0e; + --page-bg-src: ''; + --panel-bg: rgb(15 20 25 / 0.72); + --panel-border: rgb(54 58 62 / 0.9); + --panel-border-bare: rgb(54 58 62 / 0.55); + --panel-raised-bg: rgb(15 20 25 / 0.95); + --panel-raised-border: rgb(54 58 62 / 1); + --panel-accent: #5c7a8c; + --panel-header-bg: rgb(32 36 41 / 0.6); + --panel-header-fg: #d4d4d4; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #0f1419; + --glass-bg: rgb(15 20 25 / 0.55); + --glass-border: rgb(54 58 62 / 0.7); + --dock-bg: rgb(15 20 25 / 0.7); + --dock-border: rgb(54 58 62 / 0.8); + --dock-tooltip-bg: #202429; + --header-bg: rgb(15 20 25 / 0.8); + --header-border: rgb(54 58 62 / 0.9); + --header-fg: #d4d4d4; + --header-blur: 12px; + --pixel-grid-color: rgb(104 106 109 / 0.07); + --card-grid-color: rgb(104 106 109 / 0.05); + --panel-grid-color: rgb(104 106 109 / 0.06); + --scrollbar-thumb: rgb(61 69 82 / 0.6); + --scrollbar-thumb-hover: rgb(61 69 82 / 0.85); + --scrollbar-thin-thumb: rgb(61 69 82 / 0.45); + --scrollbar-thin-thumb-hover: rgb(61 69 82 / 0.7); + --brand: #5c7a8c; + --brand-foreground: #030406; + --brand-primary: #5c7a8c; + --brand-accent: #6b9199; + --brand-warm: #d78959; + --brand-deep: #080b0e; + --brand-muted: #3d4552; + --ink: #d4d4d4; + --surface-warm: #0f1419; + --naturegreen: #7a9b76; + --naturegreen-foreground: #080b0e; + --duck-dark: #d4d4d4; + --duck-teal: #6b9199; + --duck-yellow: #d9b768; + --duck-orange: #d78959; + --duck-forest: #7a9b76; + --duck-beige: #23272c; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/greek-noir.css b/src/workspaces/theme/css/themes/greek-noir.css new file mode 100644 index 00000000..25972485 --- /dev/null +++ b/src/workspaces/theme/css/themes/greek-noir.css @@ -0,0 +1,99 @@ +/* + Greek Noir — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/HANCORE-linux/omarchy-greek-noir-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='greek-noir'] { + --background: #0d0d0d; + --foreground: #ccd0cf; + --card: #171717; + --card-foreground: #ccd0cf; + --popover: #171717; + --popover-foreground: #ccd0cf; + --muted: #272727; + --muted-foreground: #969998; + --accent: #272727; + --accent-foreground: #ccd0cf; + --primary: #88a57d; + --primary-foreground: #0d0d0d; + --secondary: #272727; + --secondary-foreground: #ccd0cf; + --cta: #88a57d; + --cta-foreground: #0d0d0d; + --ctahover: #96b08d; + --success: #f25623; + --success-foreground: #0d0d0d; + --warning: #757864; + --warning-foreground: #040404; + --destructive: #aeab94; + --destructive-foreground: #0d0d0d; + --info: #88a57d; + --info-foreground: #0d0d0d; + --busy: #92927c; + --busy-foreground: #0d0d0d; + --busy-ink: #92927c; + --border: #3b3b3b; + --input: #3b3b3b; + --ring: #88a57d; + --radius: 0.625rem; + --chart-primary: #88a57d; + --chart-secondary: #f56e0f; + --status-success: #f25623; + --status-warning: #757864; + --status-in-progress: #88a57d; + --page-bg: #0d0d0d; + --page-bg-src: ''; + --panel-bg: rgb(23 23 23 / 0.72); + --panel-border: rgb(59 59 59 / 0.9); + --panel-border-bare: rgb(59 59 59 / 0.55); + --panel-raised-bg: rgb(23 23 23 / 0.95); + --panel-raised-border: rgb(59 59 59 / 1); + --panel-accent: #88a57d; + --panel-header-bg: rgb(39 39 39 / 0.6); + --panel-header-fg: #ccd0cf; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #171717; + --glass-bg: rgb(23 23 23 / 0.55); + --glass-border: rgb(59 59 59 / 0.7); + --dock-bg: rgb(23 23 23 / 0.7); + --dock-border: rgb(59 59 59 / 0.8); + --dock-tooltip-bg: #272727; + --header-bg: rgb(23 23 23 / 0.8); + --header-border: rgb(59 59 59 / 0.9); + --header-fg: #ccd0cf; + --header-blur: 12px; + --pixel-grid-color: rgb(104 106 106 / 0.07); + --card-grid-color: rgb(104 106 106 / 0.05); + --panel-grid-color: rgb(104 106 106 / 0.06); + --scrollbar-thumb: rgb(82 82 82 / 0.6); + --scrollbar-thumb-hover: rgb(82 82 82 / 0.85); + --scrollbar-thin-thumb: rgb(82 82 82 / 0.45); + --scrollbar-thin-thumb-hover: rgb(82 82 82 / 0.7); + --brand: #88a57d; + --brand-foreground: #0d0d0d; + --brand-primary: #88a57d; + --brand-accent: #7b837b; + --brand-warm: #92927c; + --brand-deep: #0d0d0d; + --brand-muted: #525252; + --ink: #ccd0cf; + --surface-warm: #171717; + --naturegreen: #f25623; + --naturegreen-foreground: #0d0d0d; + --duck-dark: #ccd0cf; + --duck-teal: #7b837b; + --duck-yellow: #757864; + --duck-orange: #92927c; + --duck-forest: #f25623; + --duck-beige: #292a29; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/green-city.css b/src/workspaces/theme/css/themes/green-city.css new file mode 100644 index 00000000..fd90301b --- /dev/null +++ b/src/workspaces/theme/css/themes/green-city.css @@ -0,0 +1,99 @@ +/* + Green City — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/zillamtt/omarchy-green-city (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='green-city'] { + --background: #060c0a; + --foreground: #dfede9; + --card: #0b1512; + --card-foreground: #dfede9; + --popover: #0b1512; + --popover-foreground: #dfede9; + --muted: #1c2523; + --muted-foreground: #9faca9; + --accent: #1c2523; + --accent-foreground: #dfede9; + --primary: #249762; + --primary-foreground: #060c0a; + --secondary: #1c2523; + --secondary-foreground: #dfede9; + --cta: #249762; + --cta-foreground: #060c0a; + --ctahover: #3ea375; + --success: #67cd3b; + --success-foreground: #060c0a; + --warning: #289347; + --warning-foreground: #060c0a; + --destructive: #44b13e; + --destructive-foreground: #060c0a; + --info: #249762; + --info-foreground: #060c0a; + --busy: #36a243; + --busy-foreground: #060c0a; + --busy-ink: #36a243; + --border: #343f3c; + --input: #343f3c; + --ring: #249762; + --radius: 0.625rem; + --chart-primary: #249762; + --chart-secondary: #47aa4a; + --status-success: #67cd3b; + --status-warning: #289347; + --status-in-progress: #249762; + --page-bg: #060c0a; + --page-bg-src: ''; + --panel-bg: rgb(11 21 18 / 0.72); + --panel-border: rgb(52 63 60 / 0.9); + --panel-border-bare: rgb(52 63 60 / 0.55); + --panel-raised-bg: rgb(11 21 18 / 0.95); + --panel-raised-border: rgb(52 63 60 / 1); + --panel-accent: #249762; + --panel-header-bg: rgb(28 37 35 / 0.6); + --panel-header-fg: #dfede9; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #0b1512; + --glass-bg: rgb(11 21 18 / 0.55); + --glass-border: rgb(52 63 60 / 0.7); + --dock-bg: rgb(11 21 18 / 0.7); + --dock-border: rgb(52 63 60 / 0.8); + --dock-tooltip-bg: #1c2523; + --header-bg: rgb(11 21 18 / 0.8); + --header-border: rgb(52 63 60 / 0.9); + --header-fg: #dfede9; + --header-blur: 12px; + --pixel-grid-color: rgb(106 118 115 / 0.07); + --card-grid-color: rgb(106 118 115 / 0.05); + --panel-grid-color: rgb(106 118 115 / 0.06); + --scrollbar-thumb: rgb(109 140 131 / 0.6); + --scrollbar-thumb-hover: rgb(109 140 131 / 0.85); + --scrollbar-thin-thumb: rgb(109 140 131 / 0.45); + --scrollbar-thin-thumb-hover: rgb(109 140 131 / 0.7); + --brand: #249762; + --brand-foreground: #060c0a; + --brand-primary: #249762; + --brand-accent: #a4d744; + --brand-warm: #36a243; + --brand-deep: #060c0a; + --brand-muted: #6d8c83; + --ink: #dfede9; + --surface-warm: #0b1512; + --naturegreen: #67cd3b; + --naturegreen-foreground: #060c0a; + --duck-dark: #dfede9; + --duck-teal: #a4d744; + --duck-yellow: #289347; + --duck-orange: #36a243; + --duck-forest: #67cd3b; + --duck-beige: #202b28; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/green-garden.css b/src/workspaces/theme/css/themes/green-garden.css new file mode 100644 index 00000000..65e42b36 --- /dev/null +++ b/src/workspaces/theme/css/themes/green-garden.css @@ -0,0 +1,99 @@ +/* + Green Garden — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/kalk-ak/omarchy-Green-Garden-theme (ghostty.conf), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='green-garden'] { + --background: #101511; + --foreground: #f5eeda; + --card: #1d271f; + --card-foreground: #f5eeda; + --popover: #1d271f; + --popover-foreground: #f5eeda; + --muted: #2d362f; + --muted-foreground: #b4b2a2; + --accent: #2d362f; + --accent-foreground: #f5eeda; + --primary: #649ed3; + --primary-foreground: #101511; + --secondary: #2d362f; + --secondary-foreground: #f5eeda; + --cta: #649ed3; + --cta-foreground: #101511; + --ctahover: #77aad8; + --success: #95b86f; + --success-foreground: #101511; + --warning: #e8b36f; + --warning-foreground: #101511; + --destructive: #d96f6f; + --destructive-foreground: #101511; + --info: #649ed3; + --info-foreground: #101511; + --busy: #e1916f; + --busy-foreground: #101511; + --busy-ink: #e1916f; + --border: #474e44; + --input: #474e44; + --ring: #649ed3; + --radius: 0.625rem; + --chart-primary: #649ed3; + --chart-secondary: #f09d73; + --status-success: #95b86f; + --status-warning: #e8b36f; + --status-in-progress: #649ed3; + --page-bg: #101511; + --page-bg-src: ''; + --panel-bg: rgb(29 39 31 / 0.72); + --panel-border: rgb(71 78 68 / 0.9); + --panel-border-bare: rgb(71 78 68 / 0.55); + --panel-raised-bg: rgb(29 39 31 / 0.95); + --panel-raised-border: rgb(71 78 68 / 1); + --panel-accent: #649ed3; + --panel-header-bg: rgb(45 54 47 / 0.6); + --panel-header-fg: #f5eeda; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #1d271f; + --glass-bg: rgb(29 39 31 / 0.55); + --glass-border: rgb(71 78 68 / 0.7); + --dock-bg: rgb(29 39 31 / 0.7); + --dock-border: rgb(71 78 68 / 0.8); + --dock-tooltip-bg: #2d362f; + --header-bg: rgb(29 39 31 / 0.8); + --header-border: rgb(71 78 68 / 0.9); + --header-fg: #f5eeda; + --header-blur: 12px; + --pixel-grid-color: rgb(126 129 115 / 0.07); + --card-grid-color: rgb(126 129 115 / 0.05); + --panel-grid-color: rgb(126 129 115 / 0.06); + --scrollbar-thumb: rgb(107 123 105 / 0.6); + --scrollbar-thumb-hover: rgb(107 123 105 / 0.85); + --scrollbar-thin-thumb: rgb(107 123 105 / 0.45); + --scrollbar-thin-thumb-hover: rgb(107 123 105 / 0.7); + --brand: #649ed3; + --brand-foreground: #101511; + --brand-primary: #649ed3; + --brand-accent: #a0f0e8; + --brand-warm: #e1916f; + --brand-deep: #101511; + --brand-muted: #6b7b69; + --ink: #f5eeda; + --surface-warm: #1d271f; + --naturegreen: #95b86f; + --naturegreen-foreground: #101511; + --duck-dark: #f5eeda; + --duck-teal: #a0f0e8; + --duck-yellow: #e8b36f; + --duck-orange: #e1916f; + --duck-forest: #95b86f; + --duck-beige: #333b32; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/gruber-tsoding.css b/src/workspaces/theme/css/themes/gruber-tsoding.css new file mode 100644 index 00000000..f1dd3058 --- /dev/null +++ b/src/workspaces/theme/css/themes/gruber-tsoding.css @@ -0,0 +1,99 @@ +/* + Gruber Tsoding — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/davide-ferrara/omarchy-gruberdark-tsoding-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='gruber-tsoding'] { + --background: #0d0d0d; + --foreground: #e4e4ef; + --card: #181818; + --card-foreground: #e4e4ef; + --popover: #181818; + --popover-foreground: #e4e4ef; + --muted: #282828; + --muted-foreground: #a7a7af; + --accent: #282828; + --accent-foreground: #e4e4ef; + --primary: #96a6c8; + --primary-foreground: #0d0d0d; + --secondary: #282828; + --secondary-foreground: #e4e4ef; + --cta: #96a6c8; + --cta-foreground: #0d0d0d; + --ctahover: #a3b1cf; + --success: #73c936; + --success-foreground: #0d0d0d; + --warning: #ffdd33; + --warning-foreground: #0d0d0d; + --destructive: #c73c3f; + --destructive-foreground: #f1f1f7; + --info: #96a6c8; + --info-foreground: #0d0d0d; + --busy: #e38d39; + --busy-foreground: #0d0d0d; + --busy-ink: #e38d39; + --border: #404042; + --input: #404042; + --ring: #96a6c8; + --radius: 0.625rem; + --chart-primary: #96a6c8; + --chart-secondary: #9e95c7; + --status-success: #73c936; + --status-warning: #ffdd33; + --status-in-progress: #96a6c8; + --page-bg: #0d0d0d; + --page-bg-src: ''; + --panel-bg: rgb(24 24 24 / 0.72); + --panel-border: rgb(64 64 66 / 0.9); + --panel-border-bare: rgb(64 64 66 / 0.55); + --panel-raised-bg: rgb(24 24 24 / 0.95); + --panel-raised-border: rgb(64 64 66 / 1); + --panel-accent: #96a6c8; + --panel-header-bg: rgb(40 40 40 / 0.6); + --panel-header-fg: #e4e4ef; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #181818; + --glass-bg: rgb(24 24 24 / 0.55); + --glass-border: rgb(64 64 66 / 0.7); + --dock-bg: rgb(24 24 24 / 0.7); + --dock-border: rgb(64 64 66 / 0.8); + --dock-tooltip-bg: #282828; + --header-bg: rgb(24 24 24 / 0.8); + --header-border: rgb(64 64 66 / 0.9); + --header-fg: #e4e4ef; + --header-blur: 12px; + --pixel-grid-color: rgb(116 116 121 / 0.07); + --card-grid-color: rgb(116 116 121 / 0.05); + --panel-grid-color: rgb(116 116 121 / 0.06); + --scrollbar-thumb: rgb(82 73 78 / 0.6); + --scrollbar-thumb-hover: rgb(82 73 78 / 0.85); + --scrollbar-thin-thumb: rgb(82 73 78 / 0.45); + --scrollbar-thin-thumb-hover: rgb(82 73 78 / 0.7); + --brand: #96a6c8; + --brand-foreground: #0d0d0d; + --brand-primary: #96a6c8; + --brand-accent: #95a99f; + --brand-warm: #e38d39; + --brand-deep: #0d0d0d; + --brand-muted: #52494e; + --ink: #e4e4ef; + --surface-warm: #181818; + --naturegreen: #73c936; + --naturegreen-foreground: #0d0d0d; + --duck-dark: #e4e4ef; + --duck-teal: #95a99f; + --duck-yellow: #ffdd33; + --duck-orange: #e38d39; + --duck-forest: #73c936; + --duck-beige: #2c2c2e; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/grudark.css b/src/workspaces/theme/css/themes/grudark.css new file mode 100644 index 00000000..5d03669e --- /dev/null +++ b/src/workspaces/theme/css/themes/grudark.css @@ -0,0 +1,99 @@ +/* + Grudark — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/zillamtt/omarchy-grudark (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='grudark'] { + --background: #101211; + --foreground: #fdfdfb; + --card: #1d201e; + --card-foreground: #fdfdfb; + --popover: #1d201e; + --popover-foreground: #fdfdfb; + --muted: #2d302e; + --muted-foreground: #babbb9; + --accent: #2d302e; + --accent-foreground: #fdfdfb; + --primary: #88c2ce; + --primary-foreground: #101211; + --secondary: #2d302e; + --secondary-foreground: #fdfdfb; + --cta: #88c2ce; + --cta-foreground: #101211; + --ctahover: #96c9d4; + --success: #89ae92; + --success-foreground: #101211; + --warning: #dacf6d; + --warning-foreground: #101211; + --destructive: #a48484; + --destructive-foreground: #101211; + --info: #88c2ce; + --info-foreground: #101211; + --busy: #bfaa79; + --busy-foreground: #101211; + --busy-ink: #bfaa79; + --border: #494b49; + --input: #494b49; + --ring: #88c2ce; + --radius: 0.625rem; + --chart-primary: #88c2ce; + --chart-secondary: #b3b0b5; + --status-success: #89ae92; + --status-warning: #dacf6d; + --status-in-progress: #88c2ce; + --page-bg: #101211; + --page-bg-src: ''; + --panel-bg: rgb(29 32 30 / 0.72); + --panel-border: rgb(73 75 73 / 0.9); + --panel-border-bare: rgb(73 75 73 / 0.55); + --panel-raised-bg: rgb(29 32 30 / 0.95); + --panel-raised-border: rgb(73 75 73 / 1); + --panel-accent: #88c2ce; + --panel-header-bg: rgb(45 48 46 / 0.6); + --panel-header-fg: #fdfdfb; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #1d201e; + --glass-bg: rgb(29 32 30 / 0.55); + --glass-border: rgb(73 75 73 / 0.7); + --dock-bg: rgb(29 32 30 / 0.7); + --dock-border: rgb(73 75 73 / 0.8); + --dock-tooltip-bg: #2d302e; + --header-bg: rgb(29 32 30 / 0.8); + --header-border: rgb(73 75 73 / 0.9); + --header-fg: #fdfdfb; + --header-blur: 12px; + --pixel-grid-color: rgb(130 131 129 / 0.07); + --card-grid-color: rgb(130 131 129 / 0.05); + --panel-grid-color: rgb(130 131 129 / 0.06); + --scrollbar-thumb: rgb(79 84 81 / 0.6); + --scrollbar-thumb-hover: rgb(79 84 81 / 0.85); + --scrollbar-thin-thumb: rgb(79 84 81 / 0.45); + --scrollbar-thin-thumb-hover: rgb(79 84 81 / 0.7); + --brand: #88c2ce; + --brand-foreground: #101211; + --brand-primary: #88c2ce; + --brand-accent: #9adadb; + --brand-warm: #bfaa79; + --brand-deep: #101211; + --brand-muted: #4f5451; + --ink: #fdfdfb; + --surface-warm: #1d201e; + --naturegreen: #89ae92; + --naturegreen-foreground: #101211; + --duck-dark: #fdfdfb; + --duck-teal: #9adadb; + --duck-yellow: #dacf6d; + --duck-orange: #bfaa79; + --duck-forest: #89ae92; + --duck-beige: #333634; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/harbor.css b/src/workspaces/theme/css/themes/harbor.css new file mode 100644 index 00000000..862a2eb3 --- /dev/null +++ b/src/workspaces/theme/css/themes/harbor.css @@ -0,0 +1,99 @@ +/* + Harbor — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Light theme (light), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/HANCORE-linux/omarchy-harbor-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='harbor'] { + --background: #dfe4c4; + --foreground: #1c2d28; + --card: #d7dcbd; + --card-foreground: #1c2d28; + --popover: #d7dcbd; + --popover-foreground: #1c2d28; + --muted: #d2d6b8; + --muted-foreground: #505d50; + --accent: #d2d6b8; + --accent-foreground: #1c2d28; + --primary: #4c6c94; + --primary-foreground: #ebece1; + --secondary: #d2d6b8; + --secondary-foreground: #1c2d28; + --cta: #4c6c94; + --cta-foreground: #ebece1; + --ctahover: #435f82; + --success: #556753; + --success-foreground: #dde0ce; + --warning: #dc8164; + --warning-foreground: #1c2d28; + --destructive: #b14752; + --destructive-foreground: #ebece1; + --info: #4c6c94; + --info-foreground: #ebece1; + --busy: #c7645b; + --busy-foreground: #111b18; + --busy-ink: #9a4e47; + --border: #c1c7ab; + --input: #bcc2a7; + --ring: #4c6c94; + --radius: 0.625rem; + --chart-primary: #4c6c94; + --chart-secondary: #8a5b81; + --status-success: #556753; + --status-warning: #dc8164; + --status-in-progress: #4c6c94; + --page-bg: #dfe4c4; + --page-bg-src: ''; + --panel-bg: rgb(215 220 189 / 0.72); + --panel-border: rgb(193 199 171 / 0.9); + --panel-border-bare: rgb(193 199 171 / 0.55); + --panel-raised-bg: rgb(215 220 189 / 0.95); + --panel-raised-border: rgb(193 199 171 / 1); + --panel-accent: #4c6c94; + --panel-header-bg: rgb(210 214 184 / 0.6); + --panel-header-fg: #1c2d28; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #d7dcbd; + --glass-bg: rgb(215 220 189 / 0.55); + --glass-border: rgb(193 199 171 / 0.7); + --dock-bg: rgb(215 220 189 / 0.7); + --dock-border: rgb(193 199 171 / 0.8); + --dock-tooltip-bg: #d2d6b8; + --header-bg: rgb(215 220 189 / 0.8); + --header-border: rgb(193 199 171 / 0.9); + --header-fg: #1c2d28; + --header-blur: 12px; + --pixel-grid-color: rgb(115 124 107 / 0.07); + --card-grid-color: rgb(115 124 107 / 0.05); + --panel-grid-color: rgb(115 124 107 / 0.06); + --scrollbar-thumb: rgb(125 135 148 / 0.6); + --scrollbar-thumb-hover: rgb(125 135 148 / 0.85); + --scrollbar-thin-thumb: rgb(125 135 148 / 0.45); + --scrollbar-thin-thumb-hover: rgb(125 135 148 / 0.7); + --brand: #4c6c94; + --brand-foreground: #ebece1; + --brand-primary: #4c6c94; + --brand-accent: #3d727d; + --brand-warm: #c7645b; + --brand-deep: #d2d6b8; + --brand-muted: #7d8794; + --ink: #1c2d28; + --surface-warm: #d7dcbd; + --naturegreen: #556753; + --naturegreen-foreground: #dde0ce; + --duck-dark: #1c2d28; + --duck-teal: #3d727d; + --duck-yellow: #dc8164; + --duck-orange: #c7645b; + --duck-forest: #556753; + --duck-beige: #c4cbae; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/hex.css b/src/workspaces/theme/css/themes/hex.css new file mode 100644 index 00000000..77ce6e77 --- /dev/null +++ b/src/workspaces/theme/css/themes/hex.css @@ -0,0 +1,99 @@ +/* + Hex — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/OldJobobo/omarchy-hex-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='hex'] { + --background: #140f1a; + --foreground: #f2f2e3; + --card: #241b30; + --card-foreground: #f2f2e3; + --popover: #241b30; + --popover-foreground: #f2f2e3; + --muted: #332b3e; + --muted-foreground: #b4b2ad; + --accent: #332b3e; + --accent-foreground: #f2f2e3; + --primary: #00fbfd; + --primary-foreground: #140f1a; + --secondary: #332b3e; + --secondary-foreground: #f2f2e3; + --cta: #00fbfd; + --cta-foreground: #140f1a; + --ctahover: #1ffbfd; + --success: #00986c; + --success-foreground: #140f1a; + --warning: #adad3e; + --warning-foreground: #140f1a; + --destructive: #e60a70; + --destructive-foreground: #060407; + --info: #6e29ad; + --info-foreground: #f2f2e3; + --busy: #ca5c57; + --busy-foreground: #140f1a; + --busy-ink: #ca5c57; + --border: #4c4553; + --input: #4c4553; + --ring: #00fbfd; + --radius: 0.625rem; + --chart-primary: #00fbfd; + --chart-secondary: #b300ad; + --status-success: #00986c; + --status-warning: #adad3e; + --status-in-progress: #6e29ad; + --page-bg: #140f1a; + --page-bg-src: ''; + --panel-bg: rgb(36 27 48 / 0.72); + --panel-border: rgb(76 69 83 / 0.9); + --panel-border-bare: rgb(76 69 83 / 0.55); + --panel-raised-bg: rgb(36 27 48 / 0.95); + --panel-raised-border: rgb(76 69 83 / 1); + --panel-accent: #00fbfd; + --panel-header-bg: rgb(51 43 62 / 0.6); + --panel-header-fg: #f2f2e3; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #241b30; + --glass-bg: rgb(36 27 48 / 0.55); + --glass-border: rgb(76 69 83 / 0.7); + --dock-bg: rgb(36 27 48 / 0.7); + --dock-border: rgb(76 69 83 / 0.8); + --dock-tooltip-bg: #332b3e; + --header-bg: rgb(36 27 48 / 0.8); + --header-border: rgb(76 69 83 / 0.9); + --header-fg: #f2f2e3; + --header-blur: 12px; + --pixel-grid-color: rgb(129 124 129 / 0.07); + --card-grid-color: rgb(129 124 129 / 0.05); + --panel-grid-color: rgb(129 124 129 / 0.06); + --scrollbar-thumb: rgb(127 112 148 / 0.6); + --scrollbar-thumb-hover: rgb(127 112 148 / 0.85); + --scrollbar-thin-thumb: rgb(127 112 148 / 0.45); + --scrollbar-thin-thumb-hover: rgb(127 112 148 / 0.7); + --brand: #00fbfd; + --brand-foreground: #140f1a; + --brand-primary: #00fbfd; + --brand-accent: #00b0b1; + --brand-warm: #ca5c57; + --brand-deep: #140f1a; + --brand-muted: #7f7094; + --ink: #f2f2e3; + --surface-warm: #241b30; + --naturegreen: #00986c; + --naturegreen-foreground: #140f1a; + --duck-dark: #f2f2e3; + --duck-teal: #00b0b1; + --duck-yellow: #adad3e; + --duck-orange: #ca5c57; + --duck-forest: #00986c; + --duck-beige: #393142; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/himalaya.css b/src/workspaces/theme/css/themes/himalaya.css new file mode 100644 index 00000000..81f63071 --- /dev/null +++ b/src/workspaces/theme/css/themes/himalaya.css @@ -0,0 +1,99 @@ +/* + Himalaya — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/rondilley/omarchy-himalaya-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='himalaya'] { + --background: #080806; + --foreground: #ffffff; + --card: #0f0e0b; + --card-foreground: #ffffff; + --popover: #0f0e0b; + --popover-foreground: #ffffff; + --muted: #201f1c; + --muted-foreground: #b7b7b6; + --accent: #201f1c; + --accent-foreground: #ffffff; + --primary: #6cb3ee; + --primary-foreground: #080806; + --secondary: #201f1c; + --secondary-foreground: #ffffff; + --cta: #6cb3ee; + --cta-foreground: #080806; + --ctahover: #7ebcf0; + --success: #4a8ad7; + --success-foreground: #080806; + --warning: #5d9fe2; + --warning-foreground: #080806; + --destructive: #437bca; + --destructive-foreground: #080806; + --info: #6cb3ee; + --info-foreground: #080806; + --busy: #508dd6; + --busy-foreground: #080806; + --busy-ink: #508dd6; + --border: #3e3d3b; + --input: #3e3d3b; + --ring: #6cb3ee; + --radius: 0.625rem; + --chart-primary: #6cb3ee; + --chart-secondary: #73b2e5; + --status-success: #4a8ad7; + --status-warning: #5d9fe2; + --status-in-progress: #6cb3ee; + --page-bg: #080806; + --page-bg-src: ''; + --panel-bg: rgb(15 14 11 / 0.72); + --panel-border: rgb(62 61 59 / 0.9); + --panel-border-bare: rgb(62 61 59 / 0.55); + --panel-raised-bg: rgb(15 14 11 / 0.95); + --panel-raised-border: rgb(62 61 59 / 1); + --panel-accent: #6cb3ee; + --panel-header-bg: rgb(32 31 28 / 0.6); + --panel-header-fg: #ffffff; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #0f0e0b; + --glass-bg: rgb(15 14 11 / 0.55); + --glass-border: rgb(62 61 59 / 0.7); + --dock-bg: rgb(15 14 11 / 0.7); + --dock-border: rgb(62 61 59 / 0.8); + --dock-tooltip-bg: #201f1c; + --header-bg: rgb(15 14 11 / 0.8); + --header-border: rgb(62 61 59 / 0.9); + --header-fg: #ffffff; + --header-blur: 12px; + --pixel-grid-color: rgb(123 122 121 / 0.07); + --card-grid-color: rgb(123 122 121 / 0.05); + --panel-grid-color: rgb(123 122 121 / 0.06); + --scrollbar-thumb: rgb(135 155 169 / 0.6); + --scrollbar-thumb-hover: rgb(135 155 169 / 0.85); + --scrollbar-thin-thumb: rgb(135 155 169 / 0.45); + --scrollbar-thin-thumb-hover: rgb(135 155 169 / 0.7); + --brand: #6cb3ee; + --brand-foreground: #080806; + --brand-primary: #6cb3ee; + --brand-accent: #abacab; + --brand-warm: #508dd6; + --brand-deep: #080806; + --brand-muted: #879ba9; + --ink: #ffffff; + --surface-warm: #0f0e0b; + --naturegreen: #4a8ad7; + --naturegreen-foreground: #080806; + --duck-dark: #ffffff; + --duck-teal: #abacab; + --duck-yellow: #5d9fe2; + --duck-orange: #508dd6; + --duck-forest: #4a8ad7; + --duck-beige: #272623; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/hinterlands.css b/src/workspaces/theme/css/themes/hinterlands.css new file mode 100644 index 00000000..27abca58 --- /dev/null +++ b/src/workspaces/theme/css/themes/hinterlands.css @@ -0,0 +1,99 @@ +/* + Hinterlands — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/OldJobobo/omarchy-hinterlands-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='hinterlands'] { + --background: #131313; + --foreground: #ffffff; + --card: #222222; + --card-foreground: #ffffff; + --popover: #222222; + --popover-foreground: #ffffff; + --muted: #313131; + --muted-foreground: #bdbdbd; + --accent: #313131; + --accent-foreground: #ffffff; + --primary: #686868; + --primary-foreground: #ffffff; + --secondary: #313131; + --secondary-foreground: #ffffff; + --cta: #686868; + --cta-foreground: #ffffff; + --ctahover: #7a7a7a; + --success: #8b8b8b; + --success-foreground: #131313; + --warning: #a0a0a0; + --warning-foreground: #131313; + --destructive: #7c7c7c; + --destructive-foreground: #111111; + --info: #686868; + --info-foreground: #ffffff; + --busy: #8e8e8e; + --busy-foreground: #131313; + --busy-ink: #8e8e8e; + --border: #4d4d4d; + --input: #4d4d4d; + --ring: #686868; + --radius: 0.625rem; + --chart-primary: #686868; + --chart-secondary: #747474; + --status-success: #8b8b8b; + --status-warning: #a0a0a0; + --status-in-progress: #686868; + --page-bg: #131313; + --page-bg-src: ''; + --panel-bg: rgb(34 34 34 / 0.72); + --panel-border: rgb(77 77 77 / 0.9); + --panel-border-bare: rgb(77 77 77 / 0.55); + --panel-raised-bg: rgb(34 34 34 / 0.95); + --panel-raised-border: rgb(77 77 77 / 1); + --panel-accent: #686868; + --panel-header-bg: rgb(49 49 49 / 0.6); + --panel-header-fg: #ffffff; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #222222; + --glass-bg: rgb(34 34 34 / 0.55); + --glass-border: rgb(77 77 77 / 0.7); + --dock-bg: rgb(34 34 34 / 0.7); + --dock-border: rgb(77 77 77 / 0.8); + --dock-tooltip-bg: #313131; + --header-bg: rgb(34 34 34 / 0.8); + --header-border: rgb(77 77 77 / 0.9); + --header-fg: #ffffff; + --header-blur: 12px; + --pixel-grid-color: rgb(133 133 133 / 0.07); + --card-grid-color: rgb(133 133 133 / 0.05); + --panel-grid-color: rgb(133 133 133 / 0.06); + --scrollbar-thumb: rgb(82 82 82 / 0.6); + --scrollbar-thumb-hover: rgb(82 82 82 / 0.85); + --scrollbar-thin-thumb: rgb(82 82 82 / 0.45); + --scrollbar-thin-thumb-hover: rgb(82 82 82 / 0.7); + --brand: #686868; + --brand-foreground: #ffffff; + --brand-primary: #686868; + --brand-accent: #868686; + --brand-warm: #8e8e8e; + --brand-deep: #131313; + --brand-muted: #525252; + --ink: #ffffff; + --surface-warm: #222222; + --naturegreen: #8b8b8b; + --naturegreen-foreground: #131313; + --duck-dark: #ffffff; + --duck-teal: #868686; + --duck-yellow: #a0a0a0; + --duck-orange: #8e8e8e; + --duck-forest: #8b8b8b; + --duck-beige: #383838; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/infernium-dark.css b/src/workspaces/theme/css/themes/infernium-dark.css new file mode 100644 index 00000000..054e5cf0 --- /dev/null +++ b/src/workspaces/theme/css/themes/infernium-dark.css @@ -0,0 +1,99 @@ +/* + Infernium Dark — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/RiO7MAKK3R/omarchy-infernium-dark-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='infernium-dark'] { + --background: #0f0f0f; + --foreground: #e0e0e0; + --card: #1c1c1c; + --card-foreground: #e0e0e0; + --popover: #1c1c1c; + --popover-foreground: #e0e0e0; + --muted: #2c2c2c; + --muted-foreground: #a5a5a5; + --accent: #2c2c2c; + --accent-foreground: #e0e0e0; + --primary: #aeb1c0; + --primary-foreground: #0f0f0f; + --secondary: #2c2c2c; + --secondary-foreground: #e0e0e0; + --cta: #aeb1c0; + --cta-foreground: #0f0f0f; + --ctahover: #b8bac8; + --success: #767476; + --success-foreground: #ffffff; + --warning: #f7d383; + --warning-foreground: #0f0f0f; + --destructive: #d66938; + --destructive-foreground: #0f0f0f; + --info: #aeb1c0; + --info-foreground: #0f0f0f; + --busy: #e79e5e; + --busy-foreground: #0f0f0f; + --busy-ink: #e79e5e; + --border: #424242; + --input: #424242; + --ring: #aeb1c0; + --radius: 0.625rem; + --chart-primary: #aeb1c0; + --chart-secondary: #ba6435; + --status-success: #767476; + --status-warning: #f7d383; + --status-in-progress: #aeb1c0; + --page-bg: #0f0f0f; + --page-bg-src: ''; + --panel-bg: rgb(28 28 28 / 0.72); + --panel-border: rgb(66 66 66 / 0.9); + --panel-border-bare: rgb(66 66 66 / 0.55); + --panel-raised-bg: rgb(28 28 28 / 0.95); + --panel-raised-border: rgb(66 66 66 / 1); + --panel-accent: #aeb1c0; + --panel-header-bg: rgb(44 44 44 / 0.6); + --panel-header-fg: #e0e0e0; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #1c1c1c; + --glass-bg: rgb(28 28 28 / 0.55); + --glass-border: rgb(66 66 66 / 0.7); + --dock-bg: rgb(28 28 28 / 0.7); + --dock-border: rgb(66 66 66 / 0.8); + --dock-tooltip-bg: #2c2c2c; + --header-bg: rgb(28 28 28 / 0.8); + --header-border: rgb(66 66 66 / 0.9); + --header-fg: #e0e0e0; + --header-blur: 12px; + --pixel-grid-color: rgb(116 116 116 / 0.07); + --card-grid-color: rgb(116 116 116 / 0.05); + --panel-grid-color: rgb(116 116 116 / 0.06); + --scrollbar-thumb: rgb(118 116 118 / 0.6); + --scrollbar-thumb-hover: rgb(118 116 118 / 0.85); + --scrollbar-thin-thumb: rgb(118 116 118 / 0.45); + --scrollbar-thin-thumb-hover: rgb(118 116 118 / 0.7); + --brand: #aeb1c0; + --brand-foreground: #0f0f0f; + --brand-primary: #aeb1c0; + --brand-accent: #e99867; + --brand-warm: #e79e5e; + --brand-deep: #0f0f0f; + --brand-muted: #767476; + --ink: #e0e0e0; + --surface-warm: #1c1c1c; + --naturegreen: #767476; + --naturegreen-foreground: #ffffff; + --duck-dark: #e0e0e0; + --duck-teal: #e99867; + --duck-yellow: #f7d383; + --duck-orange: #e79e5e; + --duck-forest: #767476; + --duck-beige: #303030; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/infernium.css b/src/workspaces/theme/css/themes/infernium.css new file mode 100644 index 00000000..913f40cd --- /dev/null +++ b/src/workspaces/theme/css/themes/infernium.css @@ -0,0 +1,99 @@ +/* + Infernium — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Light theme (light), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/RiO7MAKK3R/omarchy-infernium-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='infernium'] { + --background: #f4f4f5; + --foreground: #202124; + --card: #ebebec; + --card-foreground: #202124; + --popover: #ebebec; + --popover-foreground: #202124; + --muted: #e5e5e6; + --muted-foreground: #606063; + --accent: #e5e5e6; + --accent-foreground: #202124; + --primary: #c07d55; + --primary-foreground: #202124; + --secondary: #e5e5e6; + --secondary-foreground: #202124; + --cta: #c07d55; + --cta-foreground: #202124; + --ctahover: #a96e4b; + --success: #97969a; + --success-foreground: #202124; + --warning: #f7d383; + --warning-foreground: #202124; + --destructive: #d66938; + --destructive-foreground: #202124; + --info: #aeb1c0; + --info-foreground: #202124; + --busy: #e79e5e; + --busy-foreground: #202124; + --busy-ink: #90633b; + --border: #d3d3d4; + --input: #d3d3d4; + --ring: #c07d55; + --radius: 0.625rem; + --chart-primary: #c07d55; + --chart-secondary: #ba6435; + --status-success: #97969a; + --status-warning: #f7d383; + --status-in-progress: #aeb1c0; + --page-bg: #f4f4f5; + --page-bg-src: ''; + --panel-bg: rgb(235 235 236 / 0.72); + --panel-border: rgb(211 211 212 / 0.9); + --panel-border-bare: rgb(211 211 212 / 0.55); + --panel-raised-bg: rgb(235 235 236 / 0.95); + --panel-raised-border: rgb(211 211 212 / 1); + --panel-accent: #c07d55; + --panel-header-bg: rgb(229 229 230 / 0.6); + --panel-header-fg: #202124; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #ebebec; + --glass-bg: rgb(235 235 236 / 0.55); + --glass-border: rgb(211 211 212 / 0.7); + --dock-bg: rgb(235 235 236 / 0.7); + --dock-border: rgb(211 211 212 / 0.8); + --dock-tooltip-bg: #e5e5e6; + --header-bg: rgb(235 235 236 / 0.8); + --header-border: rgb(211 211 212 / 0.9); + --header-fg: #202124; + --header-blur: 12px; + --pixel-grid-color: rgb(134 134 136 / 0.07); + --card-grid-color: rgb(134 134 136 / 0.05); + --panel-grid-color: rgb(134 134 136 / 0.06); + --scrollbar-thumb: rgb(151 150 154 / 0.6); + --scrollbar-thumb-hover: rgb(151 150 154 / 0.85); + --scrollbar-thin-thumb: rgb(151 150 154 / 0.45); + --scrollbar-thin-thumb-hover: rgb(151 150 154 / 0.7); + --brand: #c07d55; + --brand-foreground: #202124; + --brand-primary: #c07d55; + --brand-accent: #e99867; + --brand-warm: #e79e5e; + --brand-deep: #e5e5e6; + --brand-muted: #97969a; + --ink: #202124; + --surface-warm: #ebebec; + --naturegreen: #97969a; + --naturegreen-foreground: #202124; + --duck-dark: #202124; + --duck-teal: #e99867; + --duck-yellow: #f7d383; + --duck-orange: #e79e5e; + --duck-forest: #97969a; + --duck-beige: #d7d7d8; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/killer-klowns.css b/src/workspaces/theme/css/themes/killer-klowns.css new file mode 100644 index 00000000..ec5467ba --- /dev/null +++ b/src/workspaces/theme/css/themes/killer-klowns.css @@ -0,0 +1,99 @@ +/* + Killer Klowns — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/Deoxizn/omarchy-killer-klowns-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='killer-klowns'] { + --background: #0a030c; + --foreground: #e0e0e0; + --card: #120515; + --card-foreground: #e0e0e0; + --popover: #120515; + --popover-foreground: #e0e0e0; + --muted: #231725; + --muted-foreground: #a29ea3; + --accent: #231725; + --accent-foreground: #e0e0e0; + --primary: #ff1493; + --primary-foreground: #0a030c; + --secondary: #231725; + --secondary-foreground: #e0e0e0; + --cta: #ff1493; + --cta-foreground: #0a030c; + --ctahover: #ff30a0; + --success: #39ff14; + --success-foreground: #0a030c; + --warning: #ffff00; + --warning-foreground: #0a030c; + --destructive: #dc143c; + --destructive-foreground: #f9f9f9; + --info: #ff1493; + --info-foreground: #0a030c; + --busy: #ee8a1e; + --busy-foreground: #0a030c; + --busy-ink: #ee8a1e; + --border: #3a303d; + --input: #3a303d; + --ring: #ff1493; + --radius: 0.625rem; + --chart-primary: #ff1493; + --chart-secondary: #bf00ff; + --status-success: #39ff14; + --status-warning: #ffff00; + --status-in-progress: #ff1493; + --page-bg: #0a030c; + --page-bg-src: ''; + --panel-bg: rgb(18 5 21 / 0.72); + --panel-border: rgb(58 48 61 / 0.9); + --panel-border-bare: rgb(58 48 61 / 0.55); + --panel-raised-bg: rgb(18 5 21 / 0.95); + --panel-raised-border: rgb(58 48 61 / 1); + --panel-accent: #ff1493; + --panel-header-bg: rgb(35 23 37 / 0.6); + --panel-header-fg: #e0e0e0; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #120515; + --glass-bg: rgb(18 5 21 / 0.55); + --glass-border: rgb(58 48 61 / 0.7); + --dock-bg: rgb(18 5 21 / 0.7); + --dock-border: rgb(58 48 61 / 0.8); + --dock-tooltip-bg: #231725; + --header-bg: rgb(18 5 21 / 0.8); + --header-border: rgb(58 48 61 / 0.9); + --header-fg: #e0e0e0; + --header-blur: 12px; + --pixel-grid-color: rgb(111 104 112 / 0.07); + --card-grid-color: rgb(111 104 112 / 0.05); + --panel-grid-color: rgb(111 104 112 / 0.06); + --scrollbar-thumb: rgb(75 0 130 / 0.6); + --scrollbar-thumb-hover: rgb(75 0 130 / 0.85); + --scrollbar-thin-thumb: rgb(75 0 130 / 0.45); + --scrollbar-thin-thumb-hover: rgb(75 0 130 / 0.7); + --brand: #ff1493; + --brand-foreground: #0a030c; + --brand-primary: #ff1493; + --brand-accent: #00ffff; + --brand-warm: #ee8a1e; + --brand-deep: #0a030c; + --brand-muted: #4b0082; + --ink: #e0e0e0; + --surface-warm: #120515; + --naturegreen: #39ff14; + --naturegreen-foreground: #0a030c; + --duck-dark: #e0e0e0; + --duck-teal: #00ffff; + --duck-yellow: #ffff00; + --duck-orange: #ee8a1e; + --duck-forest: #39ff14; + --duck-beige: #271b29; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/kurayami.css b/src/workspaces/theme/css/themes/kurayami.css new file mode 100644 index 00000000..8b254759 --- /dev/null +++ b/src/workspaces/theme/css/themes/kurayami.css @@ -0,0 +1,99 @@ +/* + Kurayami — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/bjornramberg/omarchy-kurayami-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='kurayami'] { + --background: #181915; + --foreground: #fdfefd; + --card: #2c2e27; + --card-foreground: #fdfefd; + --popover: #2c2e27; + --popover-foreground: #fdfefd; + --muted: #3b3d36; + --muted-foreground: #bec0bd; + --accent: #3b3d36; + --accent-foreground: #fdfefd; + --primary: #c6d0b6; + --primary-foreground: #181915; + --secondary: #3b3d36; + --secondary-foreground: #fdfefd; + --cta: #c6d0b6; + --cta-foreground: #181915; + --ctahover: #cdd6bf; + --success: #d2dfc1; + --success-foreground: #181915; + --warning: #dfdfb9; + --warning-foreground: #181915; + --destructive: #d9bc87; + --destructive-foreground: #181915; + --info: #c6d0b6; + --info-foreground: #181915; + --busy: #dccea0; + --busy-foreground: #181915; + --busy-ink: #dccea0; + --border: #555751; + --input: #555751; + --ring: #c6d0b6; + --radius: 0.625rem; + --chart-primary: #c6d0b6; + --chart-secondary: #cfc9af; + --status-success: #d2dfc1; + --status-warning: #dfdfb9; + --status-in-progress: #c6d0b6; + --page-bg: #181915; + --page-bg-src: ''; + --panel-bg: rgb(44 46 39 / 0.72); + --panel-border: rgb(85 87 81 / 0.9); + --panel-border-bare: rgb(85 87 81 / 0.55); + --panel-raised-bg: rgb(44 46 39 / 0.95); + --panel-raised-border: rgb(85 87 81 / 1); + --panel-accent: #c6d0b6; + --panel-header-bg: rgb(59 61 54 / 0.6); + --panel-header-fg: #fdfefd; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #2c2e27; + --glass-bg: rgb(44 46 39 / 0.55); + --glass-border: rgb(85 87 81 / 0.7); + --dock-bg: rgb(44 46 39 / 0.7); + --dock-border: rgb(85 87 81 / 0.8); + --dock-tooltip-bg: #3b3d36; + --header-bg: rgb(44 46 39 / 0.8); + --header-border: rgb(85 87 81 / 0.9); + --header-fg: #fdfefd; + --header-blur: 12px; + --pixel-grid-color: rgb(138 140 135 / 0.07); + --card-grid-color: rgb(138 140 135 / 0.05); + --panel-grid-color: rgb(138 140 135 / 0.06); + --scrollbar-thumb: rgb(162 164 154 / 0.6); + --scrollbar-thumb-hover: rgb(162 164 154 / 0.85); + --scrollbar-thin-thumb: rgb(162 164 154 / 0.45); + --scrollbar-thin-thumb-hover: rgb(162 164 154 / 0.7); + --brand: #c6d0b6; + --brand-foreground: #181915; + --brand-primary: #c6d0b6; + --brand-accent: #c1cead; + --brand-warm: #dccea0; + --brand-deep: #181915; + --brand-muted: #a2a49a; + --ink: #fdfefd; + --surface-warm: #2c2e27; + --naturegreen: #d2dfc1; + --naturegreen-foreground: #181915; + --duck-dark: #fdfefd; + --duck-teal: #c1cead; + --duck-yellow: #dfdfb9; + --duck-orange: #dccea0; + --duck-forest: #d2dfc1; + --duck-beige: #41433c; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/lain.css b/src/workspaces/theme/css/themes/lain.css new file mode 100644 index 00000000..b7399857 --- /dev/null +++ b/src/workspaces/theme/css/themes/lain.css @@ -0,0 +1,99 @@ +/* + Lain — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/ITSZXY/lain-omarchy (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='lain'] { + --background: #020101; + --foreground: #d2c1b9; + --card: #030202; + --card-foreground: #d2c1b9; + --popover: #030202; + --popover-foreground: #d2c1b9; + --muted: #151414; + --muted-foreground: #948882; + --accent: #151414; + --accent-foreground: #d2c1b9; + --primary: #c16a7f; + --primary-foreground: #020101; + --secondary: #151414; + --secondary-foreground: #d2c1b9; + --cta: #c16a7f; + --cta-foreground: #020101; + --ctahover: #c87c8e; + --success: #744b4f; + --success-foreground: #d8c9c2; + --warning: #955763; + --warning-foreground: #ececec; + --destructive: #683944; + --destructive-foreground: #d2c1b9; + --info: #c16a7f; + --info-foreground: #020101; + --busy: #7f4854; + --busy-foreground: #daccc5; + --busy-ink: #996d76; + --border: #2c2826; + --input: #2c2826; + --ring: #c16a7f; + --radius: 0.625rem; + --chart-primary: #c16a7f; + --chart-secondary: #a08876; + --status-success: #744b4f; + --status-warning: #955763; + --status-in-progress: #c16a7f; + --page-bg: #020101; + --page-bg-src: ''; + --panel-bg: rgb(3 2 2 / 0.72); + --panel-border: rgb(44 40 38 / 0.9); + --panel-border-bare: rgb(44 40 38 / 0.55); + --panel-raised-bg: rgb(3 2 2 / 0.95); + --panel-raised-border: rgb(44 40 38 / 1); + --panel-accent: #c16a7f; + --panel-header-bg: rgb(21 20 20 / 0.6); + --panel-header-fg: #d2c1b9; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #030202; + --glass-bg: rgb(3 2 2 / 0.55); + --glass-border: rgb(44 40 38 / 0.7); + --dock-bg: rgb(3 2 2 / 0.7); + --dock-border: rgb(44 40 38 / 0.8); + --dock-tooltip-bg: #151414; + --header-bg: rgb(3 2 2 / 0.8); + --header-border: rgb(44 40 38 / 0.9); + --header-fg: #d2c1b9; + --header-blur: 12px; + --pixel-grid-color: rgb(100 92 88 / 0.07); + --card-grid-color: rgb(100 92 88 / 0.05); + --panel-grid-color: rgb(100 92 88 / 0.06); + --scrollbar-thumb: rgb(147 135 129 / 0.6); + --scrollbar-thumb-hover: rgb(147 135 129 / 0.85); + --scrollbar-thin-thumb: rgb(147 135 129 / 0.45); + --scrollbar-thin-thumb-hover: rgb(147 135 129 / 0.7); + --brand: #c16a7f; + --brand-foreground: #020101; + --brand-primary: #c16a7f; + --brand-accent: #d07489; + --brand-warm: #7f4854; + --brand-deep: #020101; + --brand-muted: #938781; + --ink: #d2c1b9; + --surface-warm: #030202; + --naturegreen: #744b4f; + --naturegreen-foreground: #d8c9c2; + --duck-dark: #d2c1b9; + --duck-teal: #d07489; + --duck-yellow: #955763; + --duck-orange: #7f4854; + --duck-forest: #744b4f; + --duck-beige: #181514; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/lairetam.css b/src/workspaces/theme/css/themes/lairetam.css new file mode 100644 index 00000000..4ac74c75 --- /dev/null +++ b/src/workspaces/theme/css/themes/lairetam.css @@ -0,0 +1,99 @@ +/* + Lairetam — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/chrisintheshell/omarchy-lairetam-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='lairetam'] { + --background: #151c1f; + --foreground: #ffffff; + --card: #263238; + --card-foreground: #ffffff; + --popover: #263238; + --popover-foreground: #ffffff; + --muted: #354046; + --muted-foreground: #bec2c3; + --accent: #354046; + --accent-foreground: #ffffff; + --primary: #37b6ff; + --primary-foreground: #151c1f; + --secondary: #354046; + --secondary-foreground: #ffffff; + --cta: #37b6ff; + --cta-foreground: #151c1f; + --ctahover: #4fbfff; + --success: #5cf19e; + --success-foreground: #151c1f; + --warning: #fed032; + --warning-foreground: #151c1f; + --destructive: #fc3841; + --destructive-foreground: #151c1f; + --info: #37b6ff; + --info-foreground: #151c1f; + --busy: #fd843a; + --busy-foreground: #151c1f; + --busy-ink: #fd843a; + --border: #515a5f; + --input: #515a5f; + --ring: #37b6ff; + --radius: 0.625rem; + --chart-primary: #37b6ff; + --chart-secondary: #fc226e; + --status-success: #5cf19e; + --status-warning: #fed032; + --status-in-progress: #37b6ff; + --page-bg: #151c1f; + --page-bg-src: ''; + --panel-bg: rgb(38 50 56 / 0.72); + --panel-border: rgb(81 90 95 / 0.9); + --panel-border-bare: rgb(81 90 95 / 0.55); + --panel-raised-bg: rgb(38 50 56 / 0.95); + --panel-raised-border: rgb(81 90 95 / 1); + --panel-accent: #37b6ff; + --panel-header-bg: rgb(53 64 70 / 0.6); + --panel-header-fg: #ffffff; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #263238; + --glass-bg: rgb(38 50 56 / 0.55); + --glass-border: rgb(81 90 95 / 0.7); + --dock-bg: rgb(38 50 56 / 0.7); + --dock-border: rgb(81 90 95 / 0.8); + --dock-tooltip-bg: #354046; + --header-bg: rgb(38 50 56 / 0.8); + --header-border: rgb(81 90 95 / 0.9); + --header-fg: #ffffff; + --header-blur: 12px; + --pixel-grid-color: rgb(136 142 146 / 0.07); + --card-grid-color: rgb(136 142 146 / 0.05); + --panel-grid-color: rgb(136 142 146 / 0.06); + --scrollbar-thumb: rgb(161 176 184 / 0.6); + --scrollbar-thumb-hover: rgb(161 176 184 / 0.85); + --scrollbar-thin-thumb: rgb(161 176 184 / 0.45); + --scrollbar-thin-thumb-hover: rgb(161 176 184 / 0.7); + --brand: #37b6ff; + --brand-foreground: #151c1f; + --brand-primary: #37b6ff; + --brand-accent: #59ffd1; + --brand-warm: #fd843a; + --brand-deep: #151c1f; + --brand-muted: #a1b0b8; + --ink: #ffffff; + --surface-warm: #263238; + --naturegreen: #5cf19e; + --naturegreen-foreground: #151c1f; + --duck-dark: #ffffff; + --duck-teal: #59ffd1; + --duck-yellow: #fed032; + --duck-orange: #fd843a; + --duck-forest: #5cf19e; + --duck-beige: #3c474c; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/latch-dark.css b/src/workspaces/theme/css/themes/latch-dark.css new file mode 100644 index 00000000..1d296670 --- /dev/null +++ b/src/workspaces/theme/css/themes/latch-dark.css @@ -0,0 +1,99 @@ +/* + Latch Dark — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/atif-1402/omarchy-latchdark-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='latch-dark'] { + --background: #0c0c0c; + --foreground: #edecec; + --card: #151515; + --card-foreground: #edecec; + --popover: #151515; + --popover-foreground: #edecec; + --muted: #252525; + --muted-foreground: #acacac; + --accent: #252525; + --accent-foreground: #edecec; + --primary: #aca3a3; + --primary-foreground: #0c0c0c; + --secondary: #252525; + --secondary-foreground: #edecec; + --cta: #aca3a3; + --cta-foreground: #0c0c0c; + --ctahover: #b6aeae; + --success: #a19696; + --success-foreground: #0c0c0c; + --warning: #9d9393; + --warning-foreground: #0c0c0c; + --destructive: #9a8e8e; + --destructive-foreground: #0c0c0c; + --info: #aca3a3; + --info-foreground: #0c0c0c; + --busy: #9c9191; + --busy-foreground: #0c0c0c; + --busy-ink: #9c9191; + --border: #3f3f3f; + --input: #3f3f3f; + --ring: #aca3a3; + --radius: 0.625rem; + --chart-primary: #aca3a3; + --chart-secondary: #bab3b3; + --status-success: #a19696; + --status-warning: #9d9393; + --status-in-progress: #aca3a3; + --page-bg: #0c0c0c; + --page-bg-src: ''; + --panel-bg: rgb(21 21 21 / 0.72); + --panel-border: rgb(63 63 63 / 0.9); + --panel-border-bare: rgb(63 63 63 / 0.55); + --panel-raised-bg: rgb(21 21 21 / 0.95); + --panel-raised-border: rgb(63 63 63 / 1); + --panel-accent: #aca3a3; + --panel-header-bg: rgb(37 37 37 / 0.6); + --panel-header-fg: #edecec; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #151515; + --glass-bg: rgb(21 21 21 / 0.55); + --glass-border: rgb(63 63 63 / 0.7); + --dock-bg: rgb(21 21 21 / 0.7); + --dock-border: rgb(63 63 63 / 0.8); + --dock-tooltip-bg: #252525; + --header-bg: rgb(21 21 21 / 0.8); + --header-border: rgb(63 63 63 / 0.9); + --header-fg: #edecec; + --header-blur: 12px; + --pixel-grid-color: rgb(118 118 118 / 0.07); + --card-grid-color: rgb(118 118 118 / 0.05); + --panel-grid-color: rgb(118 118 118 / 0.06); + --scrollbar-thumb: rgb(199 197 197 / 0.6); + --scrollbar-thumb-hover: rgb(199 197 197 / 0.85); + --scrollbar-thin-thumb: rgb(199 197 197 / 0.45); + --scrollbar-thin-thumb-hover: rgb(199 197 197 / 0.7); + --brand: #aca3a3; + --brand-foreground: #0c0c0c; + --brand-primary: #aca3a3; + --brand-accent: #c9c3c3; + --brand-warm: #9c9191; + --brand-deep: #0c0c0c; + --brand-muted: #c7c5c5; + --ink: #edecec; + --surface-warm: #151515; + --naturegreen: #a19696; + --naturegreen-foreground: #0c0c0c; + --duck-dark: #edecec; + --duck-teal: #c9c3c3; + --duck-yellow: #9d9393; + --duck-orange: #9c9191; + --duck-forest: #a19696; + --duck-beige: #2b2b2b; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/latch.css b/src/workspaces/theme/css/themes/latch.css new file mode 100644 index 00000000..ebc69106 --- /dev/null +++ b/src/workspaces/theme/css/themes/latch.css @@ -0,0 +1,99 @@ +/* + Latch — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Light theme (light), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/atif-1402/omarchy-latch-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='latch'] { + --background: #eaeaea; + --foreground: #262827; + --card: #e2e2e2; + --card-foreground: #262827; + --popover: #e2e2e2; + --popover-foreground: #262827; + --muted: #dcdcdc; + --muted-foreground: #5f6060; + --accent: #dcdcdc; + --accent-foreground: #262827; + --primary: #505854; + --primary-foreground: #d3d3d3; + --secondary: #dcdcdc; + --secondary-foreground: #262827; + --cta: #505854; + --cta-foreground: #d3d3d3; + --ctahover: #464d4a; + --success: #58615d; + --success-foreground: #d9d9d9; + --warning: #67726c; + --warning-foreground: #f3f3f3; + --destructive: #4a514d; + --destructive-foreground: #d3d3d3; + --info: #59635e; + --info-foreground: #dcdcdc; + --busy: #59625d; + --busy-foreground: #dadada; + --busy-ink: #59625d; + --border: #cccccc; + --input: #c7c7c7; + --ring: #505854; + --radius: 0.625rem; + --chart-primary: #505854; + --chart-secondary: #555e59; + --status-success: #58615d; + --status-warning: #67726c; + --status-in-progress: #59635e; + --page-bg: #eaeaea; + --page-bg-src: ''; + --panel-bg: rgb(226 226 226 / 0.72); + --panel-border: rgb(204 204 204 / 0.9); + --panel-border-bare: rgb(204 204 204 / 0.55); + --panel-raised-bg: rgb(226 226 226 / 0.95); + --panel-raised-border: rgb(204 204 204 / 1); + --panel-accent: #505854; + --panel-header-bg: rgb(220 220 220 / 0.6); + --panel-header-fg: #262827; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #e2e2e2; + --glass-bg: rgb(226 226 226 / 0.55); + --glass-border: rgb(204 204 204 / 0.7); + --dock-bg: rgb(226 226 226 / 0.7); + --dock-border: rgb(204 204 204 / 0.8); + --dock-tooltip-bg: #dcdcdc; + --header-bg: rgb(226 226 226 / 0.8); + --header-border: rgb(204 204 204 / 0.9); + --header-fg: #262827; + --header-blur: 12px; + --pixel-grid-color: rgb(128 129 128 / 0.07); + --card-grid-color: rgb(128 129 128 / 0.05); + --panel-grid-color: rgb(128 129 128 / 0.06); + --scrollbar-thumb: rgb(63 66 65 / 0.6); + --scrollbar-thumb-hover: rgb(63 66 65 / 0.85); + --scrollbar-thin-thumb: rgb(63 66 65 / 0.45); + --scrollbar-thin-thumb-hover: rgb(63 66 65 / 0.7); + --brand: #505854; + --brand-foreground: #d3d3d3; + --brand-primary: #505854; + --brand-accent: #505854; + --brand-warm: #59625d; + --brand-deep: #dcdcdc; + --brand-muted: #3f4241; + --ink: #262827; + --surface-warm: #e2e2e2; + --naturegreen: #58615d; + --naturegreen-foreground: #d9d9d9; + --duck-dark: #262827; + --duck-teal: #505854; + --duck-yellow: #67726c; + --duck-orange: #59625d; + --duck-forest: #58615d; + --duck-beige: #cfcfcf; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/lowlight.css b/src/workspaces/theme/css/themes/lowlight.css new file mode 100644 index 00000000..5fe402a0 --- /dev/null +++ b/src/workspaces/theme/css/themes/lowlight.css @@ -0,0 +1,99 @@ +/* + Lowlight — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/atif-1402/omarchy-lowlight-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='lowlight'] { + --background: #171313; + --foreground: #dcd7d6; + --card: #292323; + --card-foreground: #dcd7d6; + --popover: #292323; + --popover-foreground: #dcd7d6; + --muted: #383232; + --muted-foreground: #a6a1a0; + --accent: #383232; + --accent-foreground: #dcd7d6; + --primary: #a39eb8; + --primary-foreground: #171313; + --secondary: #383232; + --secondary-foreground: #dcd7d6; + --cta: #a39eb8; + --cta-foreground: #171313; + --ctahover: #aeaac1; + --success: #af8a79; + --success-foreground: #171313; + --warning: #a88373; + --warning-foreground: #171313; + --destructive: #a48484; + --destructive-foreground: #171313; + --info: #a39eb8; + --info-foreground: #171313; + --busy: #a6847c; + --busy-foreground: #171313; + --busy-ink: #a6847c; + --border: #4c4646; + --input: #4c4646; + --ring: #a39eb8; + --radius: 0.625rem; + --chart-primary: #a39eb8; + --chart-secondary: #bea7bd; + --status-success: #af8a79; + --status-warning: #a88373; + --status-in-progress: #a39eb8; + --page-bg: #171313; + --page-bg-src: ''; + --panel-bg: rgb(41 35 35 / 0.72); + --panel-border: rgb(76 70 70 / 0.9); + --panel-border-bare: rgb(76 70 70 / 0.55); + --panel-raised-bg: rgb(41 35 35 / 0.95); + --panel-raised-border: rgb(76 70 70 / 1); + --panel-accent: #a39eb8; + --panel-header-bg: rgb(56 50 50 / 0.6); + --panel-header-fg: #dcd7d6; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #292323; + --glass-bg: rgb(41 35 35 / 0.55); + --glass-border: rgb(76 70 70 / 0.7); + --dock-bg: rgb(41 35 35 / 0.7); + --dock-border: rgb(76 70 70 / 0.8); + --dock-tooltip-bg: #383232; + --header-bg: rgb(41 35 35 / 0.8); + --header-border: rgb(76 70 70 / 0.9); + --header-fg: #dcd7d6; + --header-blur: 12px; + --pixel-grid-color: rgb(122 116 116 / 0.07); + --card-grid-color: rgb(122 116 116 / 0.05); + --panel-grid-color: rgb(122 116 116 / 0.06); + --scrollbar-thumb: rgb(135 120 120 / 0.6); + --scrollbar-thumb-hover: rgb(135 120 120 / 0.85); + --scrollbar-thin-thumb: rgb(135 120 120 / 0.45); + --scrollbar-thin-thumb-hover: rgb(135 120 120 / 0.7); + --brand: #a39eb8; + --brand-foreground: #171313; + --brand-primary: #a39eb8; + --brand-accent: #b0b7c5; + --brand-warm: #a6847c; + --brand-deep: #171313; + --brand-muted: #877878; + --ink: #dcd7d6; + --surface-warm: #292323; + --naturegreen: #af8a79; + --naturegreen-foreground: #171313; + --duck-dark: #dcd7d6; + --duck-teal: #b0b7c5; + --duck-yellow: #a88373; + --duck-orange: #a6847c; + --duck-forest: #af8a79; + --duck-beige: #3b3535; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/lunar.css b/src/workspaces/theme/css/themes/lunar.css new file mode 100644 index 00000000..d9a6adf9 --- /dev/null +++ b/src/workspaces/theme/css/themes/lunar.css @@ -0,0 +1,99 @@ +/* + Lunar — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/pdfosborne/omarchy-lunar-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='lunar'] { + --background: #0d0f11; + --foreground: #e1e4e8; + --card: #181c1f; + --card-foreground: #e1e4e8; + --popover: #181c1f; + --popover-foreground: #e1e4e8; + --muted: #282c2f; + --muted-foreground: #a5a8ac; + --accent: #282c2f; + --accent-foreground: #e1e4e8; + --primary: #ffdf5d; + --primary-foreground: #0d0f11; + --secondary: #282c2f; + --secondary-foreground: #e1e4e8; + --cta: #ffdf5d; + --cta-foreground: #0d0f11; + --ctahover: #ffe370; + --success: #79b8ff; + --success-foreground: #0d0f11; + --warning: #ffdf5d; + --warning-foreground: #0d0f11; + --destructive: #ea4a5a; + --destructive-foreground: #0d0f11; + --info: #ffdf5d; + --info-foreground: #0d0f11; + --busy: #f5955c; + --busy-foreground: #0d0f11; + --busy-ink: #f5955c; + --border: #3f4346; + --input: #3f4346; + --ring: #ffdf5d; + --radius: 0.625rem; + --chart-primary: #ffdf5d; + --chart-secondary: #f9826c; + --status-success: #79b8ff; + --status-warning: #ffdf5d; + --status-in-progress: #ffdf5d; + --page-bg: #0d0f11; + --page-bg-src: ''; + --panel-bg: rgb(24 28 31 / 0.72); + --panel-border: rgb(63 67 70 / 0.9); + --panel-border-bare: rgb(63 67 70 / 0.55); + --panel-raised-bg: rgb(24 28 31 / 0.95); + --panel-raised-border: rgb(63 67 70 / 1); + --panel-accent: #ffdf5d; + --panel-header-bg: rgb(40 44 47 / 0.6); + --panel-header-fg: #e1e4e8; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #181c1f; + --glass-bg: rgb(24 28 31 / 0.55); + --glass-border: rgb(63 67 70 / 0.7); + --dock-bg: rgb(24 28 31 / 0.7); + --dock-border: rgb(63 67 70 / 0.8); + --dock-tooltip-bg: #282c2f; + --header-bg: rgb(24 28 31 / 0.8); + --header-border: rgb(63 67 70 / 0.9); + --header-fg: #e1e4e8; + --header-blur: 12px; + --pixel-grid-color: rgb(114 118 121 / 0.07); + --card-grid-color: rgb(114 118 121 / 0.05); + --panel-grid-color: rgb(114 118 121 / 0.06); + --scrollbar-thumb: rgb(106 115 125 / 0.6); + --scrollbar-thumb-hover: rgb(106 115 125 / 0.85); + --scrollbar-thin-thumb: rgb(106 115 125 / 0.45); + --scrollbar-thin-thumb-hover: rgb(106 115 125 / 0.7); + --brand: #ffdf5d; + --brand-foreground: #0d0f11; + --brand-primary: #ffdf5d; + --brand-accent: #79b8ff; + --brand-warm: #f5955c; + --brand-deep: #0d0f11; + --brand-muted: #6a737d; + --ink: #e1e4e8; + --surface-warm: #181c1f; + --naturegreen: #79b8ff; + --naturegreen-foreground: #0d0f11; + --duck-dark: #e1e4e8; + --duck-teal: #79b8ff; + --duck-yellow: #ffdf5d; + --duck-orange: #f5955c; + --duck-forest: #79b8ff; + --duck-beige: #2c3033; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/manga.css b/src/workspaces/theme/css/themes/manga.css new file mode 100644 index 00000000..04f52b56 --- /dev/null +++ b/src/workspaces/theme/css/themes/manga.css @@ -0,0 +1,99 @@ +/* + Manga — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/atif-1402/omarchy-manga-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='manga'] { + --background: #010101; + --foreground: #d1cfcf; + --card: #020202; + --card-foreground: #d1cfcf; + --popover: #020202; + --popover-foreground: #d1cfcf; + --muted: #141414; + --muted-foreground: #939292; + --accent: #141414; + --accent-foreground: #d1cfcf; + --primary: #afa6a6; + --primary-foreground: #010101; + --secondary: #141414; + --secondary-foreground: #d1cfcf; + --cta: #afa6a6; + --cta-foreground: #010101; + --ctahover: #b9b1b1; + --success: #a19797; + --success-foreground: #010101; + --warning: #a89e9e; + --warning-foreground: #010101; + --destructive: #9a8e8e; + --destructive-foreground: #010101; + --info: #afa6a6; + --info-foreground: #010101; + --busy: #a19696; + --busy-foreground: #010101; + --busy-ink: #a19696; + --border: #2b2a2a; + --input: #2b2a2a; + --ring: #afa6a6; + --radius: 0.625rem; + --chart-primary: #afa6a6; + --chart-secondary: #9f9595; + --status-success: #a19797; + --status-warning: #a89e9e; + --status-in-progress: #afa6a6; + --page-bg: #010101; + --page-bg-src: ''; + --panel-bg: rgb(2 2 2 / 0.72); + --panel-border: rgb(43 42 42 / 0.9); + --panel-border-bare: rgb(43 42 42 / 0.55); + --panel-raised-bg: rgb(2 2 2 / 0.95); + --panel-raised-border: rgb(43 42 42 / 1); + --panel-accent: #afa6a6; + --panel-header-bg: rgb(20 20 20 / 0.6); + --panel-header-fg: #d1cfcf; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #020202; + --glass-bg: rgb(2 2 2 / 0.55); + --glass-border: rgb(43 42 42 / 0.7); + --dock-bg: rgb(2 2 2 / 0.7); + --dock-border: rgb(43 42 42 / 0.8); + --dock-tooltip-bg: #141414; + --header-bg: rgb(2 2 2 / 0.8); + --header-border: rgb(43 42 42 / 0.9); + --header-fg: #d1cfcf; + --header-blur: 12px; + --pixel-grid-color: rgb(95 94 94 / 0.07); + --card-grid-color: rgb(95 94 94 / 0.05); + --panel-grid-color: rgb(95 94 94 / 0.06); + --scrollbar-thumb: rgb(172 167 167 / 0.6); + --scrollbar-thumb-hover: rgb(172 167 167 / 0.85); + --scrollbar-thin-thumb: rgb(172 167 167 / 0.45); + --scrollbar-thin-thumb-hover: rgb(172 167 167 / 0.7); + --brand: #afa6a6; + --brand-foreground: #010101; + --brand-primary: #afa6a6; + --brand-accent: #aea5a5; + --brand-warm: #a19696; + --brand-deep: #010101; + --brand-muted: #aca7a7; + --ink: #d1cfcf; + --surface-warm: #020202; + --naturegreen: #a19797; + --naturegreen-foreground: #010101; + --duck-dark: #d1cfcf; + --duck-teal: #aea5a5; + --duck-yellow: #a89e9e; + --duck-orange: #a19696; + --duck-forest: #a19797; + --duck-beige: #171717; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/mapquest.css b/src/workspaces/theme/css/themes/mapquest.css new file mode 100644 index 00000000..e9c8f3b7 --- /dev/null +++ b/src/workspaces/theme/css/themes/mapquest.css @@ -0,0 +1,99 @@ +/* + Mapquest — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Light theme (light), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/ItsABigIgloo/omarchy-mapquest-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='mapquest'] { + --background: #ecd3a1; + --foreground: #3c4747; + --card: #e4cc9b; + --card-foreground: #3c4747; + --popover: #e4cc9b; + --popover-foreground: #3c4747; + --muted: #dec697; + --muted-foreground: #55554a; + --accent: #dec697; + --accent-foreground: #3c4747; + --primary: #1c2121; + --primary-foreground: #d4be91; + --secondary: #dec697; + --secondary-foreground: #3c4747; + --cta: #1c2121; + --cta-foreground: #d4be91; + --ctahover: #191d1d; + --success: #3a443d; + --success-foreground: #d4be91; + --warning: #826e48; + --warning-foreground: #f9f5ef; + --destructive: #4f351e; + --destructive-foreground: #d4be91; + --info: #1c2121; + --info-foreground: #d4be91; + --busy: #695233; + --busy-foreground: #dcc9a4; + --busy-ink: #695233; + --border: #d0bc91; + --input: #c6b38a; + --ring: #1c2121; + --radius: 0.625rem; + --chart-primary: #1c2121; + --chart-secondary: #764e27; + --status-success: #3a443d; + --status-warning: #826e48; + --status-in-progress: #1c2121; + --page-bg: #ecd3a1; + --page-bg-src: ''; + --panel-bg: rgb(228 204 155 / 0.72); + --panel-border: rgb(208 188 145 / 0.9); + --panel-border-bare: rgb(208 188 145 / 0.55); + --panel-raised-bg: rgb(228 204 155 / 0.95); + --panel-raised-border: rgb(208 188 145 / 1); + --panel-accent: #1c2121; + --panel-header-bg: rgb(222 198 151 / 0.6); + --panel-header-fg: #3c4747; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #e4cc9b; + --glass-bg: rgb(228 204 155 / 0.55); + --glass-border: rgb(208 188 145 / 0.7); + --dock-bg: rgb(228 204 155 / 0.7); + --dock-border: rgb(208 188 145 / 0.8); + --dock-tooltip-bg: #dec697; + --header-bg: rgb(228 204 155 / 0.8); + --header-border: rgb(208 188 145 / 0.9); + --header-fg: #3c4747; + --header-blur: 12px; + --pixel-grid-color: rgb(122 115 94 / 0.07); + --card-grid-color: rgb(122 115 94 / 0.05); + --panel-grid-color: rgb(122 115 94 / 0.06); + --scrollbar-thumb: rgb(183 159 112 / 0.6); + --scrollbar-thumb-hover: rgb(183 159 112 / 0.85); + --scrollbar-thin-thumb: rgb(183 159 112 / 0.45); + --scrollbar-thin-thumb-hover: rgb(183 159 112 / 0.7); + --brand: #1c2121; + --brand-foreground: #d4be91; + --brand-primary: #1c2121; + --brand-accent: #7b826d; + --brand-warm: #695233; + --brand-deep: #dec697; + --brand-muted: #b79f70; + --ink: #3c4747; + --surface-warm: #e4cc9b; + --naturegreen: #3a443d; + --naturegreen-foreground: #d4be91; + --duck-dark: #3c4747; + --duck-teal: #7b826d; + --duck-yellow: #826e48; + --duck-orange: #695233; + --duck-forest: #3a443d; + --duck-beige: #d3bf93; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/mars.css b/src/workspaces/theme/css/themes/mars.css new file mode 100644 index 00000000..dc8e73ba --- /dev/null +++ b/src/workspaces/theme/css/themes/mars.css @@ -0,0 +1,99 @@ +/* + Mars — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/steve-lohmeyer/omarchy-mars-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='mars'] { + --background: #000000; + --foreground: #d9afa7; + --card: #000000; + --card-foreground: #d9afa7; + --popover: #000000; + --popover-foreground: #d9afa7; + --muted: #121212; + --muted-foreground: #987b75; + --accent: #121212; + --accent-foreground: #d9afa7; + --primary: #7b534e; + --primary-foreground: #e9d1cc; + --secondary: #121212; + --secondary-foreground: #d9afa7; + --cta: #7b534e; + --cta-foreground: #e9d1cc; + --ctahover: #8b6863; + --success: #7b534e; + --success-foreground: #e9d1cc; + --warning: #c45a3f; + --warning-foreground: #000000; + --destructive: #e07b5f; + --destructive-foreground: #000000; + --info: #7b534e; + --info-foreground: #e9d1cc; + --busy: #d26b4f; + --busy-foreground: #000000; + --busy-ink: #d26b4f; + --border: #2b2221; + --input: #2b2221; + --ring: #7b534e; + --radius: 0.625rem; + --chart-primary: #7b534e; + --chart-secondary: #a0392f; + --status-success: #7b534e; + --status-warning: #c45a3f; + --status-in-progress: #7b534e; + --page-bg: #000000; + --page-bg-src: ''; + --panel-bg: rgb(0 0 0 / 0.72); + --panel-border: rgb(43 34 33 / 0.9); + --panel-border-bare: rgb(43 34 33 / 0.55); + --panel-raised-bg: rgb(0 0 0 / 0.95); + --panel-raised-border: rgb(43 34 33 / 1); + --panel-accent: #7b534e; + --panel-header-bg: rgb(18 18 18 / 0.6); + --panel-header-fg: #d9afa7; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #000000; + --glass-bg: rgb(0 0 0 / 0.55); + --glass-border: rgb(43 34 33 / 0.7); + --dock-bg: rgb(0 0 0 / 0.7); + --dock-border: rgb(43 34 33 / 0.8); + --dock-tooltip-bg: #121212; + --header-bg: rgb(0 0 0 / 0.8); + --header-border: rgb(43 34 33 / 0.9); + --header-fg: #d9afa7; + --header-blur: 12px; + --pixel-grid-color: rgb(106 88 84 / 0.07); + --card-grid-color: rgb(106 88 84 / 0.05); + --panel-grid-color: rgb(106 88 84 / 0.06); + --scrollbar-thumb: rgb(74 44 44 / 0.6); + --scrollbar-thumb-hover: rgb(74 44 44 / 0.85); + --scrollbar-thin-thumb: rgb(74 44 44 / 0.45); + --scrollbar-thin-thumb-hover: rgb(74 44 44 / 0.7); + --brand: #7b534e; + --brand-foreground: #e9d1cc; + --brand-primary: #7b534e; + --brand-accent: #7b534e; + --brand-warm: #d26b4f; + --brand-deep: #000000; + --brand-muted: #4a2c2c; + --ink: #d9afa7; + --surface-warm: #000000; + --naturegreen: #7b534e; + --naturegreen-foreground: #e9d1cc; + --duck-dark: #d9afa7; + --duck-teal: #7b534e; + --duck-yellow: #c45a3f; + --duck-orange: #d26b4f; + --duck-forest: #7b534e; + --duck-beige: #161211; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/mecha-no-onna.css b/src/workspaces/theme/css/themes/mecha-no-onna.css new file mode 100644 index 00000000..0fce7db6 --- /dev/null +++ b/src/workspaces/theme/css/themes/mecha-no-onna.css @@ -0,0 +1,99 @@ +/* + Mecha NO Onna — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/HANCORE-linux/omarchy-mechanoonna-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='mecha-no-onna'] { + --background: #0f0f0e; + --foreground: #f0e4c5; + --card: #1c1b19; + --card-foreground: #f0e4c5; + --popover: #1c1b19; + --popover-foreground: #f0e4c5; + --muted: #2c2b29; + --muted-foreground: #b0a891; + --accent: #2c2b29; + --accent-foreground: #f0e4c5; + --primary: #908d88; + --primary-foreground: #0f0f0e; + --secondary: #2c2b29; + --secondary-foreground: #f0e4c5; + --cta: #908d88; + --cta-foreground: #0f0f0e; + --ctahover: #9d9b96; + --success: #a89984; + --success-foreground: #0f0f0e; + --warning: #ebdbb2; + --warning-foreground: #0f0f0e; + --destructive: #c5564a; + --destructive-foreground: #0b0b0b; + --info: #908d88; + --info-foreground: #0f0f0e; + --busy: #d8997e; + --busy-foreground: #0f0f0e; + --busy-ink: #d8997e; + --border: #45423b; + --input: #45423b; + --ring: #908d88; + --radius: 0.625rem; + --chart-primary: #908d88; + --chart-secondary: #afa499; + --status-success: #a89984; + --status-warning: #ebdbb2; + --status-in-progress: #908d88; + --page-bg: #0f0f0e; + --page-bg-src: ''; + --panel-bg: rgb(28 27 25 / 0.72); + --panel-border: rgb(69 66 59 / 0.9); + --panel-border-bare: rgb(69 66 59 / 0.55); + --panel-raised-bg: rgb(28 27 25 / 0.95); + --panel-raised-border: rgb(69 66 59 / 1); + --panel-accent: #908d88; + --panel-header-bg: rgb(44 43 41 / 0.6); + --panel-header-fg: #f0e4c5; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #1c1b19; + --glass-bg: rgb(28 27 25 / 0.55); + --glass-border: rgb(69 66 59 / 0.7); + --dock-bg: rgb(28 27 25 / 0.7); + --dock-border: rgb(69 66 59 / 0.8); + --dock-tooltip-bg: #2c2b29; + --header-bg: rgb(28 27 25 / 0.8); + --header-border: rgb(69 66 59 / 0.9); + --header-fg: #f0e4c5; + --header-blur: 12px; + --pixel-grid-color: rgb(123 117 102 / 0.07); + --card-grid-color: rgb(123 117 102 / 0.05); + --panel-grid-color: rgb(123 117 102 / 0.06); + --scrollbar-thumb: rgb(107 101 92 / 0.6); + --scrollbar-thumb-hover: rgb(107 101 92 / 0.85); + --scrollbar-thin-thumb: rgb(107 101 92 / 0.45); + --scrollbar-thin-thumb-hover: rgb(107 101 92 / 0.7); + --brand: #908d88; + --brand-foreground: #0f0f0e; + --brand-primary: #908d88; + --brand-accent: #d4bd99; + --brand-warm: #d8997e; + --brand-deep: #0f0f0e; + --brand-muted: #6b655c; + --ink: #f0e4c5; + --surface-warm: #1c1b19; + --naturegreen: #a89984; + --naturegreen-foreground: #0f0f0e; + --duck-dark: #f0e4c5; + --duck-teal: #d4bd99; + --duck-yellow: #ebdbb2; + --duck-orange: #d8997e; + --duck-forest: #a89984; + --duck-beige: #312f2a; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/memento-mori.css b/src/workspaces/theme/css/themes/memento-mori.css new file mode 100644 index 00000000..9c5d81e3 --- /dev/null +++ b/src/workspaces/theme/css/themes/memento-mori.css @@ -0,0 +1,99 @@ +/* + Memento Mori — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/hipsterusername/omarchy-memento-mori-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='memento-mori'] { + --background: #06080b; + --foreground: #c5d1eb; + --card: #0a0e14; + --card-foreground: #c5d1eb; + --popover: #0a0e14; + --popover-foreground: #c5d1eb; + --muted: #1b1f24; + --muted-foreground: #8d97ab; + --accent: #1b1f24; + --accent-foreground: #c5d1eb; + --primary: #6bb5ff; + --primary-foreground: #06080b; + --secondary: #1b1f24; + --secondary-foreground: #c5d1eb; + --cta: #6bb5ff; + --cta-foreground: #06080b; + --ctahover: #7dbeff; + --success: #73d0ff; + --success-foreground: #06080b; + --warning: #8bc4ff; + --warning-foreground: #06080b; + --destructive: #7aa2f7; + --destructive-foreground: #06080b; + --info: #6bb5ff; + --info-foreground: #06080b; + --busy: #83b3fb; + --busy-foreground: #06080b; + --busy-ink: #83b3fb; + --border: #2f343e; + --input: #2f343e; + --ring: #6bb5ff; + --radius: 0.625rem; + --chart-primary: #6bb5ff; + --chart-secondary: #a9b1d6; + --status-success: #73d0ff; + --status-warning: #8bc4ff; + --status-in-progress: #6bb5ff; + --page-bg: #06080b; + --page-bg-src: ''; + --panel-bg: rgb(10 14 20 / 0.72); + --panel-border: rgb(47 52 62 / 0.9); + --panel-border-bare: rgb(47 52 62 / 0.55); + --panel-raised-bg: rgb(10 14 20 / 0.95); + --panel-raised-border: rgb(47 52 62 / 1); + --panel-accent: #6bb5ff; + --panel-header-bg: rgb(27 31 36 / 0.6); + --panel-header-fg: #c5d1eb; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #0a0e14; + --glass-bg: rgb(10 14 20 / 0.55); + --glass-border: rgb(47 52 62 / 0.7); + --dock-bg: rgb(10 14 20 / 0.7); + --dock-border: rgb(47 52 62 / 0.8); + --dock-tooltip-bg: #1b1f24; + --header-bg: rgb(10 14 20 / 0.8); + --header-border: rgb(47 52 62 / 0.9); + --header-fg: #c5d1eb; + --header-blur: 12px; + --pixel-grid-color: rgb(94 102 117 / 0.07); + --card-grid-color: rgb(94 102 117 / 0.05); + --panel-grid-color: rgb(94 102 117 / 0.06); + --scrollbar-thumb: rgb(30 39 51 / 0.6); + --scrollbar-thumb-hover: rgb(30 39 51 / 0.85); + --scrollbar-thin-thumb: rgb(30 39 51 / 0.45); + --scrollbar-thin-thumb-hover: rgb(30 39 51 / 0.7); + --brand: #6bb5ff; + --brand-foreground: #06080b; + --brand-primary: #6bb5ff; + --brand-accent: #5ccfe6; + --brand-warm: #83b3fb; + --brand-deep: #06080b; + --brand-muted: #1e2733; + --ink: #c5d1eb; + --surface-warm: #0a0e14; + --naturegreen: #73d0ff; + --naturegreen-foreground: #06080b; + --duck-dark: #c5d1eb; + --duck-teal: #5ccfe6; + --duck-yellow: #8bc4ff; + --duck-orange: #83b3fb; + --duck-forest: #73d0ff; + --duck-beige: #1d222a; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/midnight.css b/src/workspaces/theme/css/themes/midnight.css new file mode 100644 index 00000000..45c7a55e --- /dev/null +++ b/src/workspaces/theme/css/themes/midnight.css @@ -0,0 +1,99 @@ +/* + Midnight — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/JaxonWright/omarchy-midnight-theme (ghostty.conf), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='midnight'] { + --background: #000000; + --foreground: #efefef; + --card: #000000; + --card-foreground: #efefef; + --popover: #000000; + --popover-foreground: #efefef; + --muted: #121212; + --muted-foreground: #a7a7a7; + --accent: #121212; + --accent-foreground: #efefef; + --primary: #e68e0d; + --primary-foreground: #000000; + --secondary: #121212; + --secondary-foreground: #efefef; + --cta: #e68e0d; + --cta-foreground: #000000; + --ctahover: #e99c2a; + --success: #ffc107; + --success-foreground: #000000; + --warning: #b91c1c; + --warning-foreground: #efefef; + --destructive: #d35f5f; + --destructive-foreground: #000000; + --info: #e68e0d; + --info-foreground: #000000; + --busy: #c63e3e; + --busy-foreground: #f2f2f2; + --busy-ink: #c94848; + --border: #2f2f2f; + --input: #2f2f2f; + --ring: #e68e0d; + --radius: 0.625rem; + --chart-primary: #e68e0d; + --chart-secondary: #d35f5f; + --status-success: #ffc107; + --status-warning: #b91c1c; + --status-in-progress: #e68e0d; + --page-bg: #000000; + --page-bg-src: ''; + --panel-bg: rgb(0 0 0 / 0.72); + --panel-border: rgb(47 47 47 / 0.9); + --panel-border-bare: rgb(47 47 47 / 0.55); + --panel-raised-bg: rgb(0 0 0 / 0.95); + --panel-raised-border: rgb(47 47 47 / 1); + --panel-accent: #e68e0d; + --panel-header-bg: rgb(18 18 18 / 0.6); + --panel-header-fg: #efefef; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #000000; + --glass-bg: rgb(0 0 0 / 0.55); + --glass-border: rgb(47 47 47 / 0.7); + --dock-bg: rgb(0 0 0 / 0.7); + --dock-border: rgb(47 47 47 / 0.8); + --dock-tooltip-bg: #121212; + --header-bg: rgb(0 0 0 / 0.8); + --header-border: rgb(47 47 47 / 0.9); + --header-fg: #efefef; + --header-blur: 12px; + --pixel-grid-color: rgb(108 108 108 / 0.07); + --card-grid-color: rgb(108 108 108 / 0.05); + --panel-grid-color: rgb(108 108 108 / 0.06); + --scrollbar-thumb: rgb(138 138 141 / 0.6); + --scrollbar-thumb-hover: rgb(138 138 141 / 0.85); + --scrollbar-thin-thumb: rgb(138 138 141 / 0.45); + --scrollbar-thin-thumb-hover: rgb(138 138 141 / 0.7); + --brand: #e68e0d; + --brand-foreground: #000000; + --brand-primary: #e68e0d; + --brand-accent: #bebebe; + --brand-warm: #c63e3e; + --brand-deep: #000000; + --brand-muted: #8a8a8d; + --ink: #efefef; + --surface-warm: #000000; + --naturegreen: #ffc107; + --naturegreen-foreground: #000000; + --duck-dark: #efefef; + --duck-teal: #bebebe; + --duck-yellow: #b91c1c; + --duck-orange: #c63e3e; + --duck-forest: #ffc107; + --duck-beige: #181818; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/miles-morales.css b/src/workspaces/theme/css/themes/miles-morales.css new file mode 100644 index 00000000..ec736953 --- /dev/null +++ b/src/workspaces/theme/css/themes/miles-morales.css @@ -0,0 +1,99 @@ +/* + Miles Morales — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/ahmed-z0/omarchy-miles-morales-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='miles-morales'] { + --background: #070707; + --foreground: #c3c3c3; + --card: #0d0d0d; + --card-foreground: #c3c3c3; + --popover: #0d0d0d; + --popover-foreground: #c3c3c3; + --muted: #1e1e1e; + --muted-foreground: #8c8c8c; + --accent: #1e1e1e; + --accent-foreground: #c3c3c3; + --primary: #59c7c7; + --primary-foreground: #070707; + --secondary: #1e1e1e; + --secondary-foreground: #c3c3c3; + --cta: #59c7c7; + --cta-foreground: #070707; + --ctahover: #6dcece; + --success: #41ac41; + --success-foreground: #070707; + --warning: #acac41; + --warning-foreground: #070707; + --destructive: #ac4141; + --destructive-foreground: #e6e6e6; + --info: #b60025; + --info-foreground: #d1d1d1; + --busy: #ac7741; + --busy-foreground: #070707; + --busy-ink: #ac7741; + --border: #313131; + --input: #313131; + --ring: #59c7c7; + --radius: 0.625rem; + --chart-primary: #59c7c7; + --chart-secondary: #ac41ac; + --status-success: #41ac41; + --status-warning: #acac41; + --status-in-progress: #b60025; + --page-bg: #070707; + --page-bg-src: ''; + --panel-bg: rgb(13 13 13 / 0.72); + --panel-border: rgb(49 49 49 / 0.9); + --panel-border-bare: rgb(49 49 49 / 0.55); + --panel-raised-bg: rgb(13 13 13 / 0.95); + --panel-raised-border: rgb(49 49 49 / 1); + --panel-accent: #59c7c7; + --panel-header-bg: rgb(30 30 30 / 0.6); + --panel-header-fg: #c3c3c3; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #0d0d0d; + --glass-bg: rgb(13 13 13 / 0.55); + --glass-border: rgb(49 49 49 / 0.7); + --dock-bg: rgb(13 13 13 / 0.7); + --dock-border: rgb(49 49 49 / 0.8); + --dock-tooltip-bg: #1e1e1e; + --header-bg: rgb(13 13 13 / 0.8); + --header-border: rgb(49 49 49 / 0.9); + --header-fg: #c3c3c3; + --header-blur: 12px; + --pixel-grid-color: rgb(95 95 95 / 0.07); + --card-grid-color: rgb(95 95 95 / 0.05); + --panel-grid-color: rgb(95 95 95 / 0.06); + --scrollbar-thumb: rgb(146 0 0 / 0.6); + --scrollbar-thumb-hover: rgb(146 0 0 / 0.85); + --scrollbar-thin-thumb: rgb(146 0 0 / 0.45); + --scrollbar-thin-thumb-hover: rgb(146 0 0 / 0.7); + --brand: #59c7c7; + --brand-foreground: #070707; + --brand-primary: #59c7c7; + --brand-accent: #41acac; + --brand-warm: #ac7741; + --brand-deep: #070707; + --brand-muted: #920000; + --ink: #c3c3c3; + --surface-warm: #0d0d0d; + --naturegreen: #41ac41; + --naturegreen-foreground: #070707; + --duck-dark: #c3c3c3; + --duck-teal: #41acac; + --duck-yellow: #acac41; + --duck-orange: #ac7741; + --duck-forest: #41ac41; + --duck-beige: #1f1f1f; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/mocha.css b/src/workspaces/theme/css/themes/mocha.css new file mode 100644 index 00000000..cbe211bb --- /dev/null +++ b/src/workspaces/theme/css/themes/mocha.css @@ -0,0 +1,99 @@ +/* + Mocha — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/gitcoder89431/omarchy-mocha-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='mocha'] { + --background: #111119; + --foreground: #cdd6f4; + --card: #1e1e2e; + --card-foreground: #cdd6f4; + --popover: #1e1e2e; + --popover-foreground: #cdd6f4; + --muted: #2e2e3d; + --muted-foreground: #999fb9; + --accent: #2e2e3d; + --accent-foreground: #cdd6f4; + --primary: #cba6f7; + --primary-foreground: #111119; + --secondary: #2e2e3d; + --secondary-foreground: #cdd6f4; + --cta: #cba6f7; + --cta-foreground: #111119; + --ctahover: #d1b1f8; + --success: #a6e3a1; + --success-foreground: #111119; + --warning: #f9e2af; + --warning-foreground: #111119; + --destructive: #f38ba8; + --destructive-foreground: #111119; + --info: #cba6f7; + --info-foreground: #111119; + --busy: #f6b7ac; + --busy-foreground: #111119; + --busy-ink: #f6b7ac; + --border: #404255; + --input: #404255; + --ring: #cba6f7; + --radius: 0.625rem; + --chart-primary: #cba6f7; + --chart-secondary: #f5c2e7; + --status-success: #a6e3a1; + --status-warning: #f9e2af; + --status-in-progress: #cba6f7; + --page-bg: #111119; + --page-bg-src: ''; + --panel-bg: rgb(30 30 46 / 0.72); + --panel-border: rgb(64 66 85 / 0.9); + --panel-border-bare: rgb(64 66 85 / 0.55); + --panel-raised-bg: rgb(30 30 46 / 0.95); + --panel-raised-border: rgb(64 66 85 / 1); + --panel-accent: #cba6f7; + --panel-header-bg: rgb(46 46 61 / 0.6); + --panel-header-fg: #cdd6f4; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #1e1e2e; + --glass-bg: rgb(30 30 46 / 0.55); + --glass-border: rgb(64 66 85 / 0.7); + --dock-bg: rgb(30 30 46 / 0.7); + --dock-border: rgb(64 66 85 / 0.8); + --dock-tooltip-bg: #2e2e3d; + --header-bg: rgb(30 30 46 / 0.8); + --header-border: rgb(64 66 85 / 0.9); + --header-fg: #cdd6f4; + --header-blur: 12px; + --pixel-grid-color: rgb(109 113 135 / 0.07); + --card-grid-color: rgb(109 113 135 / 0.05); + --panel-grid-color: rgb(109 113 135 / 0.06); + --scrollbar-thumb: rgb(88 91 112 / 0.6); + --scrollbar-thumb-hover: rgb(88 91 112 / 0.85); + --scrollbar-thin-thumb: rgb(88 91 112 / 0.45); + --scrollbar-thin-thumb-hover: rgb(88 91 112 / 0.7); + --brand: #cba6f7; + --brand-foreground: #111119; + --brand-primary: #cba6f7; + --brand-accent: #94e2d5; + --brand-warm: #f6b7ac; + --brand-deep: #111119; + --brand-muted: #585b70; + --ink: #cdd6f4; + --surface-warm: #1e1e2e; + --naturegreen: #a6e3a1; + --naturegreen-foreground: #111119; + --duck-dark: #cdd6f4; + --duck-teal: #94e2d5; + --duck-yellow: #f9e2af; + --duck-orange: #f6b7ac; + --duck-forest: #a6e3a1; + --duck-beige: #303042; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/monochrome.css b/src/workspaces/theme/css/themes/monochrome.css new file mode 100644 index 00000000..d0919cab --- /dev/null +++ b/src/workspaces/theme/css/themes/monochrome.css @@ -0,0 +1,99 @@ +/* + Monochrome — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/Swarnim114/omarchy-monochrome-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='monochrome'] { + --background: #161616; + --foreground: #d4d4d4; + --card: #282828; + --card-foreground: #d4d4d4; + --popover: #282828; + --popover-foreground: #d4d4d4; + --muted: #373737; + --muted-foreground: #a0a0a0; + --accent: #373737; + --accent-foreground: #d4d4d4; + --primary: #d4d4d4; + --primary-foreground: #161616; + --secondary: #373737; + --secondary-foreground: #d4d4d4; + --cta: #d4d4d4; + --cta-foreground: #161616; + --ctahover: #d9d9d9; + --success: #d4d4d4; + --success-foreground: #161616; + --warning: #d4d4d4; + --warning-foreground: #161616; + --destructive: #d4d4d4; + --destructive-foreground: #161616; + --info: #d4d4d4; + --info-foreground: #161616; + --busy: #d4d4d4; + --busy-foreground: #161616; + --busy-ink: #d4d4d4; + --border: #4a4a4a; + --input: #4a4a4a; + --ring: #d4d4d4; + --radius: 0.625rem; + --chart-primary: #d4d4d4; + --chart-secondary: #d4d4d4; + --status-success: #d4d4d4; + --status-warning: #d4d4d4; + --status-in-progress: #d4d4d4; + --page-bg: #161616; + --page-bg-src: ''; + --panel-bg: rgb(40 40 40 / 0.72); + --panel-border: rgb(74 74 74 / 0.9); + --panel-border-bare: rgb(74 74 74 / 0.55); + --panel-raised-bg: rgb(40 40 40 / 0.95); + --panel-raised-border: rgb(74 74 74 / 1); + --panel-accent: #d4d4d4; + --panel-header-bg: rgb(55 55 55 / 0.6); + --panel-header-fg: #d4d4d4; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #282828; + --glass-bg: rgb(40 40 40 / 0.55); + --glass-border: rgb(74 74 74 / 0.7); + --dock-bg: rgb(40 40 40 / 0.7); + --dock-border: rgb(74 74 74 / 0.8); + --dock-tooltip-bg: #373737; + --header-bg: rgb(40 40 40 / 0.8); + --header-border: rgb(74 74 74 / 0.9); + --header-fg: #d4d4d4; + --header-blur: 12px; + --pixel-grid-color: rgb(117 117 117 / 0.07); + --card-grid-color: rgb(117 117 117 / 0.05); + --panel-grid-color: rgb(117 117 117 / 0.06); + --scrollbar-thumb: rgb(118 118 118 / 0.6); + --scrollbar-thumb-hover: rgb(118 118 118 / 0.85); + --scrollbar-thin-thumb: rgb(118 118 118 / 0.45); + --scrollbar-thin-thumb-hover: rgb(118 118 118 / 0.7); + --brand: #d4d4d4; + --brand-foreground: #161616; + --brand-primary: #d4d4d4; + --brand-accent: #d4d4d4; + --brand-warm: #d4d4d4; + --brand-deep: #161616; + --brand-muted: #767676; + --ink: #d4d4d4; + --surface-warm: #282828; + --naturegreen: #d4d4d4; + --naturegreen-foreground: #161616; + --duck-dark: #d4d4d4; + --duck-teal: #d4d4d4; + --duck-yellow: #d4d4d4; + --duck-orange: #d4d4d4; + --duck-forest: #d4d4d4; + --duck-beige: #393939; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/monokai-dark.css b/src/workspaces/theme/css/themes/monokai-dark.css new file mode 100644 index 00000000..c214285e --- /dev/null +++ b/src/workspaces/theme/css/themes/monokai-dark.css @@ -0,0 +1,99 @@ +/* + Monokai Dark — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/ericrswanny/omarchy-monokai-dark-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='monokai-dark'] { + --background: #151613; + --foreground: #f8f8f2; + --card: #272822; + --card-foreground: #f8f8f2; + --popover: #272822; + --popover-foreground: #f8f8f2; + --muted: #363731; + --muted-foreground: #b9bab4; + --accent: #363731; + --accent-foreground: #f8f8f2; + --primary: #66d9ef; + --primary-foreground: #151613; + --secondary: #363731; + --secondary-foreground: #f8f8f2; + --cta: #66d9ef; + --cta-foreground: #151613; + --ctahover: #78def1; + --success: #a6e22e; + --success-foreground: #151613; + --warning: #e6db74; + --warning-foreground: #151613; + --destructive: #f92672; + --destructive-foreground: #151613; + --info: #66d9ef; + --info-foreground: #151613; + --busy: #f08173; + --busy-foreground: #151613; + --busy-ink: #f08173; + --border: #50514b; + --input: #50514b; + --ring: #66d9ef; + --radius: 0.625rem; + --chart-primary: #66d9ef; + --chart-secondary: #ae81ff; + --status-success: #a6e22e; + --status-warning: #e6db74; + --status-in-progress: #66d9ef; + --page-bg: #151613; + --page-bg-src: ''; + --panel-bg: rgb(39 40 34 / 0.72); + --panel-border: rgb(80 81 75 / 0.9); + --panel-border-bare: rgb(80 81 75 / 0.55); + --panel-raised-bg: rgb(39 40 34 / 0.95); + --panel-raised-border: rgb(80 81 75 / 1); + --panel-accent: #66d9ef; + --panel-header-bg: rgb(54 55 49 / 0.6); + --panel-header-fg: #f8f8f2; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #272822; + --glass-bg: rgb(39 40 34 / 0.55); + --glass-border: rgb(80 81 75 / 0.7); + --dock-bg: rgb(39 40 34 / 0.7); + --dock-border: rgb(80 81 75 / 0.8); + --dock-tooltip-bg: #363731; + --header-bg: rgb(39 40 34 / 0.8); + --header-border: rgb(80 81 75 / 0.9); + --header-fg: #f8f8f2; + --header-blur: 12px; + --pixel-grid-color: rgb(133 134 128 / 0.07); + --card-grid-color: rgb(133 134 128 / 0.05); + --panel-grid-color: rgb(133 134 128 / 0.06); + --scrollbar-thumb: rgb(117 113 94 / 0.6); + --scrollbar-thumb-hover: rgb(117 113 94 / 0.85); + --scrollbar-thin-thumb: rgb(117 113 94 / 0.45); + --scrollbar-thin-thumb-hover: rgb(117 113 94 / 0.7); + --brand: #66d9ef; + --brand-foreground: #151613; + --brand-primary: #66d9ef; + --brand-accent: #a1efe4; + --brand-warm: #f08173; + --brand-deep: #151613; + --brand-muted: #75715e; + --ink: #f8f8f2; + --surface-warm: #272822; + --naturegreen: #a6e22e; + --naturegreen-foreground: #151613; + --duck-dark: #f8f8f2; + --duck-teal: #a1efe4; + --duck-yellow: #e6db74; + --duck-orange: #f08173; + --duck-forest: #a6e22e; + --duck-beige: #3c3d37; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/monokai.css b/src/workspaces/theme/css/themes/monokai.css new file mode 100644 index 00000000..5836da92 --- /dev/null +++ b/src/workspaces/theme/css/themes/monokai.css @@ -0,0 +1,99 @@ +/* + Monokai — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/bjarneo/omarchy-monokai-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='monokai'] { + --background: #060a12; + --foreground: #f0f2f5; + --card: #0a1220; + --card-foreground: #f0f2f5; + --popover: #0a1220; + --popover-foreground: #f0f2f5; + --muted: #1b2330; + --muted-foreground: #abafb5; + --accent: #1b2330; + --accent-foreground: #f0f2f5; + --primary: #78dce8; + --primary-foreground: #060a12; + --secondary: #1b2330; + --secondary-foreground: #f0f2f5; + --cta: #78dce8; + --cta-foreground: #060a12; + --ctahover: #88e0eb; + --success: #b2d977; + --success-foreground: #060a12; + --warning: #f2c063; + --warning-foreground: #060a12; + --destructive: #f25e86; + --destructive-foreground: #060a12; + --info: #78dce8; + --info-foreground: #060a12; + --busy: #f28f75; + --busy-foreground: #060a12; + --busy-ink: #f28f75; + --border: #373e4a; + --input: #373e4a; + --ring: #78dce8; + --radius: 0.625rem; + --chart-primary: #78dce8; + --chart-secondary: #aba0f2; + --status-success: #b2d977; + --status-warning: #f2c063; + --status-in-progress: #78dce8; + --page-bg: #060a12; + --page-bg-src: ''; + --panel-bg: rgb(10 18 32 / 0.72); + --panel-border: rgb(55 62 74 / 0.9); + --panel-border-bare: rgb(55 62 74 / 0.55); + --panel-raised-bg: rgb(10 18 32 / 0.95); + --panel-raised-border: rgb(55 62 74 / 1); + --panel-accent: #78dce8; + --panel-header-bg: rgb(27 35 48 / 0.6); + --panel-header-fg: #f0f2f5; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #0a1220; + --glass-bg: rgb(10 18 32 / 0.55); + --glass-border: rgb(55 62 74 / 0.7); + --dock-bg: rgb(10 18 32 / 0.7); + --dock-border: rgb(55 62 74 / 0.8); + --dock-tooltip-bg: #1b2330; + --header-bg: rgb(10 18 32 / 0.8); + --header-border: rgb(55 62 74 / 0.9); + --header-fg: #f0f2f5; + --header-blur: 12px; + --pixel-grid-color: rgb(113 119 128 / 0.07); + --card-grid-color: rgb(113 119 128 / 0.05); + --panel-grid-color: rgb(113 119 128 / 0.06); + --scrollbar-thumb: rgb(85 92 101 / 0.6); + --scrollbar-thumb-hover: rgb(85 92 101 / 0.85); + --scrollbar-thin-thumb: rgb(85 92 101 / 0.45); + --scrollbar-thin-thumb-hover: rgb(85 92 101 / 0.7); + --brand: #78dce8; + --brand-foreground: #060a12; + --brand-primary: #78dce8; + --brand-accent: #f28b66; + --brand-warm: #f28f75; + --brand-deep: #060a12; + --brand-muted: #555c65; + --ink: #f0f2f5; + --surface-warm: #0a1220; + --naturegreen: #b2d977; + --naturegreen-foreground: #060a12; + --duck-dark: #f0f2f5; + --duck-teal: #f28b66; + --duck-yellow: #f2c063; + --duck-orange: #f28f75; + --duck-forest: #b2d977; + --duck-beige: #212835; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/monolith.css b/src/workspaces/theme/css/themes/monolith.css new file mode 100644 index 00000000..391502e3 --- /dev/null +++ b/src/workspaces/theme/css/themes/monolith.css @@ -0,0 +1,99 @@ +/* + Monolith — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/OldJobobo/omarchy-monolith-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='monolith'] { + --background: #13121e; + --foreground: #e0def4; + --card: #232136; + --card-foreground: #e0def4; + --popover: #232136; + --popover-foreground: #e0def4; + --muted: #323144; + --muted-foreground: #a7a5bb; + --accent: #323144; + --accent-foreground: #e0def4; + --primary: #9ccfd8; + --primary-foreground: #13121e; + --secondary: #323144; + --secondary-foreground: #e0def4; + --cta: #9ccfd8; + --cta-foreground: #13121e; + --ctahover: #a8d5dd; + --success: #3e8fb0; + --success-foreground: #13121e; + --warning: #f6c177; + --warning-foreground: #13121e; + --destructive: #eb6f92; + --destructive-foreground: #13121e; + --info: #9ccfd8; + --info-foreground: #13121e; + --busy: #f19885; + --busy-foreground: #13121e; + --busy-ink: #f19885; + --border: #48465b; + --input: #48465b; + --ring: #9ccfd8; + --radius: 0.625rem; + --chart-primary: #9ccfd8; + --chart-secondary: #c4a7e7; + --status-success: #3e8fb0; + --status-warning: #f6c177; + --status-in-progress: #9ccfd8; + --page-bg: #13121e; + --page-bg-src: ''; + --panel-bg: rgb(35 33 54 / 0.72); + --panel-border: rgb(72 70 91 / 0.9); + --panel-border-bare: rgb(72 70 91 / 0.55); + --panel-raised-bg: rgb(35 33 54 / 0.95); + --panel-raised-border: rgb(72 70 91 / 1); + --panel-accent: #9ccfd8; + --panel-header-bg: rgb(50 49 68 / 0.6); + --panel-header-fg: #e0def4; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #232136; + --glass-bg: rgb(35 33 54 / 0.55); + --glass-border: rgb(72 70 91 / 0.7); + --dock-bg: rgb(35 33 54 / 0.7); + --dock-border: rgb(72 70 91 / 0.8); + --dock-tooltip-bg: #323144; + --header-bg: rgb(35 33 54 / 0.8); + --header-border: rgb(72 70 91 / 0.9); + --header-fg: #e0def4; + --header-blur: 12px; + --pixel-grid-color: rgb(120 118 140 / 0.07); + --card-grid-color: rgb(120 118 140 / 0.05); + --panel-grid-color: rgb(120 118 140 / 0.06); + --scrollbar-thumb: rgb(110 106 134 / 0.6); + --scrollbar-thumb-hover: rgb(110 106 134 / 0.85); + --scrollbar-thin-thumb: rgb(110 106 134 / 0.45); + --scrollbar-thin-thumb-hover: rgb(110 106 134 / 0.7); + --brand: #9ccfd8; + --brand-foreground: #13121e; + --brand-primary: #9ccfd8; + --brand-accent: #ea9a97; + --brand-warm: #f19885; + --brand-deep: #13121e; + --brand-muted: #6e6a86; + --ink: #e0def4; + --surface-warm: #232136; + --naturegreen: #3e8fb0; + --naturegreen-foreground: #13121e; + --duck-dark: #e0def4; + --duck-teal: #ea9a97; + --duck-yellow: #f6c177; + --duck-orange: #f19885; + --duck-forest: #3e8fb0; + --duck-beige: #363449; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/nagai-poolside.css b/src/workspaces/theme/css/themes/nagai-poolside.css new file mode 100644 index 00000000..7d5f2f1f --- /dev/null +++ b/src/workspaces/theme/css/themes/nagai-poolside.css @@ -0,0 +1,99 @@ +/* + Nagai Poolside — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/somerocketeer/omarchy-nagai-poolside-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='nagai-poolside'] { + --background: #080f13; + --foreground: #e6f1f4; + --card: #0f1b22; + --card-foreground: #e6f1f4; + --popover: #0f1b22; + --popover-foreground: #e6f1f4; + --muted: #202b31; + --muted-foreground: #a6b1b5; + --accent: #202b31; + --accent-foreground: #e6f1f4; + --primary: #2295d9; + --primary-foreground: #080f13; + --secondary: #202b31; + --secondary-foreground: #e6f1f4; + --cta: #2295d9; + --cta-foreground: #080f13; + --ctahover: #3da2de; + --success: #7ca348; + --success-foreground: #080f13; + --warning: #eed59a; + --warning-foreground: #080f13; + --destructive: #ff6b6b; + --destructive-foreground: #080f13; + --info: #2295d9; + --info-foreground: #080f13; + --busy: #f7a083; + --busy-foreground: #080f13; + --busy-ink: #f7a083; + --border: #39454b; + --input: #39454b; + --ring: #2295d9; + --radius: 0.625rem; + --chart-primary: #2295d9; + --chart-secondary: #58afd8; + --status-success: #7ca348; + --status-warning: #eed59a; + --status-in-progress: #2295d9; + --page-bg: #080f13; + --page-bg-src: ''; + --panel-bg: rgb(15 27 34 / 0.72); + --panel-border: rgb(57 69 75 / 0.9); + --panel-border-bare: rgb(57 69 75 / 0.55); + --panel-raised-bg: rgb(15 27 34 / 0.95); + --panel-raised-border: rgb(57 69 75 / 1); + --panel-accent: #2295d9; + --panel-header-bg: rgb(32 43 49 / 0.6); + --panel-header-fg: #e6f1f4; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #0f1b22; + --glass-bg: rgb(15 27 34 / 0.55); + --glass-border: rgb(57 69 75 / 0.7); + --dock-bg: rgb(15 27 34 / 0.7); + --dock-border: rgb(57 69 75 / 0.8); + --dock-tooltip-bg: #202b31; + --header-bg: rgb(15 27 34 / 0.8); + --header-border: rgb(57 69 75 / 0.9); + --header-fg: #e6f1f4; + --header-blur: 12px; + --pixel-grid-color: rgb(112 123 129 / 0.07); + --card-grid-color: rgb(112 123 129 / 0.05); + --panel-grid-color: rgb(112 123 129 / 0.06); + --scrollbar-thumb: rgb(42 70 82 / 0.6); + --scrollbar-thumb-hover: rgb(42 70 82 / 0.85); + --scrollbar-thin-thumb: rgb(42 70 82 / 0.45); + --scrollbar-thin-thumb-hover: rgb(42 70 82 / 0.7); + --brand: #2295d9; + --brand-foreground: #080f13; + --brand-primary: #2295d9; + --brand-accent: #3a9fb7; + --brand-warm: #f7a083; + --brand-deep: #080f13; + --brand-muted: #2a4652; + --ink: #e6f1f4; + --surface-warm: #0f1b22; + --naturegreen: #7ca348; + --naturegreen-foreground: #080f13; + --duck-dark: #e6f1f4; + --duck-teal: #3a9fb7; + --duck-yellow: #eed59a; + --duck-orange: #f7a083; + --duck-forest: #7ca348; + --duck-beige: #253037; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/nagai-twilight.css b/src/workspaces/theme/css/themes/nagai-twilight.css new file mode 100644 index 00000000..9b98ccfa --- /dev/null +++ b/src/workspaces/theme/css/themes/nagai-twilight.css @@ -0,0 +1,99 @@ +/* + Nagai Twilight — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/somerocketeer/omarchy-nagai-twilight-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='nagai-twilight'] { + --background: #110e19; + --foreground: #e9e4f5; + --card: #1f1a2e; + --card-foreground: #e9e4f5; + --popover: #1f1a2e; + --popover-foreground: #e9e4f5; + --muted: #2f2a3d; + --muted-foreground: #aca7b9; + --accent: #2f2a3d; + --accent-foreground: #e9e4f5; + --primary: #8be9fd; + --primary-foreground: #110e19; + --secondary: #2f2a3d; + --secondary-foreground: #e9e4f5; + --cta: #8be9fd; + --cta-foreground: #110e19; + --ctahover: #99ecfd; + --success: #6fb3a8; + --success-foreground: #110e19; + --warning: #eadda6; + --warning-foreground: #110e19; + --destructive: #ff5555; + --destructive-foreground: #110e19; + --info: #8be9fd; + --info-foreground: #110e19; + --busy: #f5997e; + --busy-foreground: #110e19; + --busy-ink: #f5997e; + --border: #464155; + --input: #464155; + --ring: #8be9fd; + --radius: 0.625rem; + --chart-primary: #8be9fd; + --chart-secondary: #bd93f9; + --status-success: #6fb3a8; + --status-warning: #eadda6; + --status-in-progress: #8be9fd; + --page-bg: #110e19; + --page-bg-src: ''; + --panel-bg: rgb(31 26 46 / 0.72); + --panel-border: rgb(70 65 85 / 0.9); + --panel-border-bare: rgb(70 65 85 / 0.55); + --panel-raised-bg: rgb(31 26 46 / 0.95); + --panel-raised-border: rgb(70 65 85 / 1); + --panel-accent: #8be9fd; + --panel-header-bg: rgb(47 42 61 / 0.6); + --panel-header-fg: #e9e4f5; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #1f1a2e; + --glass-bg: rgb(31 26 46 / 0.55); + --glass-border: rgb(70 65 85 / 0.7); + --dock-bg: rgb(31 26 46 / 0.7); + --dock-border: rgb(70 65 85 / 0.8); + --dock-tooltip-bg: #2f2a3d; + --header-bg: rgb(31 26 46 / 0.8); + --header-border: rgb(70 65 85 / 0.9); + --header-fg: #e9e4f5; + --header-blur: 12px; + --pixel-grid-color: rgb(122 117 136 / 0.07); + --card-grid-color: rgb(122 117 136 / 0.05); + --panel-grid-color: rgb(122 117 136 / 0.06); + --scrollbar-thumb: rgb(77 66 102 / 0.6); + --scrollbar-thumb-hover: rgb(77 66 102 / 0.85); + --scrollbar-thin-thumb: rgb(77 66 102 / 0.45); + --scrollbar-thin-thumb-hover: rgb(77 66 102 / 0.7); + --brand: #8be9fd; + --brand-foreground: #110e19; + --brand-primary: #8be9fd; + --brand-accent: #406e82; + --brand-warm: #f5997e; + --brand-deep: #110e19; + --brand-muted: #4d4266; + --ink: #e9e4f5; + --surface-warm: #1f1a2e; + --naturegreen: #6fb3a8; + --naturegreen-foreground: #110e19; + --duck-dark: #e9e4f5; + --duck-teal: #406e82; + --duck-yellow: #eadda6; + --duck-orange: #f5997e; + --duck-forest: #6fb3a8; + --duck-beige: #332e42; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/nebulite.css b/src/workspaces/theme/css/themes/nebulite.css new file mode 100644 index 00000000..1d3fbeaa --- /dev/null +++ b/src/workspaces/theme/css/themes/nebulite.css @@ -0,0 +1,99 @@ +/* + Nebulite — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/atif-1402/omarchy-nebulite-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='nebulite'] { + --background: #131417; + --foreground: #dcd6d6; + --card: #232529; + --card-foreground: #dcd6d6; + --popover: #232529; + --popover-foreground: #dcd6d6; + --muted: #323438; + --muted-foreground: #a5a1a2; + --accent: #323438; + --accent-foreground: #dcd6d6; + --primary: #9e9eb8; + --primary-foreground: #131417; + --secondary: #323438; + --secondary-foreground: #dcd6d6; + --cta: #9e9eb8; + --cta-foreground: #131417; + --ctahover: #aaaac1; + --success: #98b398; + --success-foreground: #131417; + --warning: #bab292; + --warning-foreground: #131417; + --destructive: #b18786; + --destructive-foreground: #131417; + --info: #9e9eb8; + --info-foreground: #131417; + --busy: #b69d8c; + --busy-foreground: #131417; + --busy-ink: #b69d8c; + --border: #47484b; + --input: #47484b; + --ring: #9e9eb8; + --radius: 0.625rem; + --chart-primary: #9e9eb8; + --chart-secondary: #bea7b7; + --status-success: #98b398; + --status-warning: #bab292; + --status-in-progress: #9e9eb8; + --page-bg: #131417; + --page-bg-src: ''; + --panel-bg: rgb(35 37 41 / 0.72); + --panel-border: rgb(71 72 75 / 0.9); + --panel-border-bare: rgb(71 72 75 / 0.55); + --panel-raised-bg: rgb(35 37 41 / 0.95); + --panel-raised-border: rgb(71 72 75 / 1); + --panel-accent: #9e9eb8; + --panel-header-bg: rgb(50 52 56 / 0.6); + --panel-header-fg: #dcd6d6; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #232529; + --glass-bg: rgb(35 37 41 / 0.55); + --glass-border: rgb(71 72 75 / 0.7); + --dock-bg: rgb(35 37 41 / 0.7); + --dock-border: rgb(71 72 75 / 0.8); + --dock-tooltip-bg: #323438; + --header-bg: rgb(35 37 41 / 0.8); + --header-border: rgb(71 72 75 / 0.9); + --header-fg: #dcd6d6; + --header-blur: 12px; + --pixel-grid-color: rgb(118 117 119 / 0.07); + --card-grid-color: rgb(118 117 119 / 0.05); + --panel-grid-color: rgb(118 117 119 / 0.06); + --scrollbar-thumb: rgb(120 124 135 / 0.6); + --scrollbar-thumb-hover: rgb(120 124 135 / 0.85); + --scrollbar-thin-thumb: rgb(120 124 135 / 0.45); + --scrollbar-thin-thumb-hover: rgb(120 124 135 / 0.7); + --brand: #9e9eb8; + --brand-foreground: #131417; + --brand-primary: #9e9eb8; + --brand-accent: #95a8b0; + --brand-warm: #b69d8c; + --brand-deep: #131417; + --brand-muted: #787c87; + --ink: #dcd6d6; + --surface-warm: #232529; + --naturegreen: #98b398; + --naturegreen-foreground: #131417; + --duck-dark: #dcd6d6; + --duck-teal: #95a8b0; + --duck-yellow: #bab292; + --duck-orange: #b69d8c; + --duck-forest: #98b398; + --duck-beige: #36373a; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/neo-sploosh.css b/src/workspaces/theme/css/themes/neo-sploosh.css new file mode 100644 index 00000000..f673c9bb --- /dev/null +++ b/src/workspaces/theme/css/themes/neo-sploosh.css @@ -0,0 +1,99 @@ +/* + Neo Sploosh — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/monoooki/omarchy-neo-sploosh-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='neo-sploosh'] { + --background: #121315; + --foreground: #f4f4f4; + --card: #212226; + --card-foreground: #f4f4f4; + --popover: #212226; + --popover-foreground: #f4f4f4; + --muted: #313135; + --muted-foreground: #b5b5b6; + --accent: #313135; + --accent-foreground: #f4f4f4; + --primary: #008dc9; + --primary-foreground: #121315; + --secondary: #313135; + --secondary-foreground: #f4f4f4; + --cta: #008dc9; + --cta-foreground: #121315; + --ctahover: #1f9bcf; + --success: #92bf38; + --success-foreground: #121315; + --warning: #a4d149; + --warning-foreground: #121315; + --destructive: #893151; + --destructive-foreground: #f4f4f4; + --info: #008dc9; + --info-foreground: #121315; + --busy: #97814d; + --busy-foreground: #121315; + --busy-ink: #97814d; + --border: #4a4b4e; + --input: #4a4b4e; + --ring: #008dc9; + --radius: 0.625rem; + --chart-primary: #008dc9; + --chart-secondary: #48b7e7; + --status-success: #92bf38; + --status-warning: #a4d149; + --status-in-progress: #008dc9; + --page-bg: #121315; + --page-bg-src: ''; + --panel-bg: rgb(33 34 38 / 0.72); + --panel-border: rgb(74 75 78 / 0.9); + --panel-border-bare: rgb(74 75 78 / 0.55); + --panel-raised-bg: rgb(33 34 38 / 0.95); + --panel-raised-border: rgb(74 75 78 / 1); + --panel-accent: #008dc9; + --panel-header-bg: rgb(49 49 53 / 0.6); + --panel-header-fg: #f4f4f4; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #212226; + --glass-bg: rgb(33 34 38 / 0.55); + --glass-border: rgb(74 75 78 / 0.7); + --dock-bg: rgb(33 34 38 / 0.7); + --dock-border: rgb(74 75 78 / 0.8); + --dock-tooltip-bg: #313135; + --header-bg: rgb(33 34 38 / 0.8); + --header-border: rgb(74 75 78 / 0.9); + --header-fg: #f4f4f4; + --header-blur: 12px; + --pixel-grid-color: rgb(128 129 131 / 0.07); + --card-grid-color: rgb(128 129 131 / 0.05); + --panel-grid-color: rgb(128 129 131 / 0.06); + --scrollbar-thumb: rgb(89 89 89 / 0.6); + --scrollbar-thumb-hover: rgb(89 89 89 / 0.85); + --scrollbar-thin-thumb: rgb(89 89 89 / 0.45); + --scrollbar-thin-thumb-hover: rgb(89 89 89 / 0.7); + --brand: #008dc9; + --brand-foreground: #121315; + --brand-primary: #008dc9; + --brand-accent: #33acde; + --brand-warm: #97814d; + --brand-deep: #121315; + --brand-muted: #595959; + --ink: #f4f4f4; + --surface-warm: #212226; + --naturegreen: #92bf38; + --naturegreen-foreground: #121315; + --duck-dark: #f4f4f4; + --duck-teal: #33acde; + --duck-yellow: #a4d149; + --duck-orange: #97814d; + --duck-forest: #92bf38; + --duck-beige: #36373b; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/neon-street.css b/src/workspaces/theme/css/themes/neon-street.css new file mode 100644 index 00000000..9fdab506 --- /dev/null +++ b/src/workspaces/theme/css/themes/neon-street.css @@ -0,0 +1,99 @@ +/* + Neon Street — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/atif-1402/omarchy-neonstreet-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='neon-street'] { + --background: #01171f; + --foreground: #eddfea; + --card: #022a38; + --card-foreground: #eddfea; + --popover: #022a38; + --popover-foreground: #eddfea; + --muted: #143946; + --muted-foreground: #a7a9b5; + --accent: #143946; + --accent-foreground: #eddfea; + --primary: #9c9dba; + --primary-foreground: #01171f; + --secondary: #143946; + --secondary-foreground: #eddfea; + --cta: #9c9dba; + --cta-foreground: #01171f; + --ctahover: #a8a9c2; + --success: #68cfa3; + --success-foreground: #01171f; + --warning: #a8ae98; + --warning-foreground: #01171f; + --destructive: #cd5ba3; + --destructive-foreground: #01171f; + --info: #9c9dba; + --info-foreground: #01171f; + --busy: #bb859e; + --busy-foreground: #01171f; + --busy-ink: #bb859e; + --border: #304e5b; + --input: #304e5b; + --ring: #9c9dba; + --radius: 0.625rem; + --chart-primary: #9c9dba; + --chart-secondary: #cf96cc; + --status-success: #68cfa3; + --status-warning: #a8ae98; + --status-in-progress: #9c9dba; + --page-bg: #01171f; + --page-bg-src: ''; + --panel-bg: rgb(2 42 56 / 0.72); + --panel-border: rgb(48 78 91 / 0.9); + --panel-border-bare: rgb(48 78 91 / 0.55); + --panel-raised-bg: rgb(2 42 56 / 0.95); + --panel-raised-border: rgb(48 78 91 / 1); + --panel-accent: #9c9dba; + --panel-header-bg: rgb(20 57 70 / 0.6); + --panel-header-fg: #eddfea; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #022a38; + --glass-bg: rgb(2 42 56 / 0.55); + --glass-border: rgb(48 78 91 / 0.7); + --dock-bg: rgb(2 42 56 / 0.7); + --dock-border: rgb(48 78 91 / 0.8); + --dock-tooltip-bg: #143946; + --header-bg: rgb(2 42 56 / 0.8); + --header-border: rgb(48 78 91 / 0.9); + --header-fg: #eddfea; + --header-blur: 12px; + --pixel-grid-color: rgb(108 123 136 / 0.07); + --card-grid-color: rgb(108 123 136 / 0.05); + --panel-grid-color: rgb(108 123 136 / 0.06); + --scrollbar-thumb: rgb(92 169 196 / 0.6); + --scrollbar-thumb-hover: rgb(92 169 196 / 0.85); + --scrollbar-thin-thumb: rgb(92 169 196 / 0.45); + --scrollbar-thin-thumb-hover: rgb(92 169 196 / 0.7); + --brand: #9c9dba; + --brand-foreground: #01171f; + --brand-primary: #9c9dba; + --brand-accent: #86e7ee; + --brand-warm: #bb859e; + --brand-deep: #01171f; + --brand-muted: #5ca9c4; + --ink: #eddfea; + --surface-warm: #022a38; + --naturegreen: #68cfa3; + --naturegreen-foreground: #01171f; + --duck-dark: #eddfea; + --duck-teal: #86e7ee; + --duck-yellow: #a8ae98; + --duck-orange: #bb859e; + --duck-forest: #68cfa3; + --duck-beige: #1a3c4a; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/neovoid.css b/src/workspaces/theme/css/themes/neovoid.css new file mode 100644 index 00000000..733f4917 --- /dev/null +++ b/src/workspaces/theme/css/themes/neovoid.css @@ -0,0 +1,99 @@ +/* + Neovoid — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/RiO7MAKK3R/omarchy-neovoid-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='neovoid'] { + --background: #000000; + --foreground: #e0e0e0; + --card: #000000; + --card-foreground: #e0e0e0; + --popover: #000000; + --popover-foreground: #e0e0e0; + --muted: #121212; + --muted-foreground: #9d9d9d; + --accent: #121212; + --accent-foreground: #e0e0e0; + --primary: #00bfff; + --primary-foreground: #000000; + --secondary: #121212; + --secondary-foreground: #e0e0e0; + --cta: #00bfff; + --cta-foreground: #000000; + --ctahover: #1fc7ff; + --success: #00bfff; + --success-foreground: #000000; + --warning: #1e90ff; + --warning-foreground: #000000; + --destructive: #ff0040; + --destructive-foreground: #000000; + --info: #00bfff; + --info-foreground: #000000; + --busy: #8f48a0; + --busy-foreground: #e3e3e3; + --busy-ink: #9d5fac; + --border: #2c2c2c; + --input: #2c2c2c; + --ring: #00bfff; + --radius: 0.625rem; + --chart-primary: #00bfff; + --chart-secondary: #1e90ff; + --status-success: #00bfff; + --status-warning: #1e90ff; + --status-in-progress: #00bfff; + --page-bg: #000000; + --page-bg-src: ''; + --panel-bg: rgb(0 0 0 / 0.72); + --panel-border: rgb(44 44 44 / 0.9); + --panel-border-bare: rgb(44 44 44 / 0.55); + --panel-raised-bg: rgb(0 0 0 / 0.95); + --panel-raised-border: rgb(44 44 44 / 1); + --panel-accent: #00bfff; + --panel-header-bg: rgb(18 18 18 / 0.6); + --panel-header-fg: #e0e0e0; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #000000; + --glass-bg: rgb(0 0 0 / 0.55); + --glass-border: rgb(44 44 44 / 0.7); + --dock-bg: rgb(0 0 0 / 0.7); + --dock-border: rgb(44 44 44 / 0.8); + --dock-tooltip-bg: #121212; + --header-bg: rgb(0 0 0 / 0.8); + --header-border: rgb(44 44 44 / 0.9); + --header-fg: #e0e0e0; + --header-blur: 12px; + --pixel-grid-color: rgb(101 101 101 / 0.07); + --card-grid-color: rgb(101 101 101 / 0.05); + --panel-grid-color: rgb(101 101 101 / 0.06); + --scrollbar-thumb: rgb(26 26 26 / 0.6); + --scrollbar-thumb-hover: rgb(26 26 26 / 0.85); + --scrollbar-thin-thumb: rgb(26 26 26 / 0.45); + --scrollbar-thin-thumb-hover: rgb(26 26 26 / 0.7); + --brand: #00bfff; + --brand-foreground: #000000; + --brand-primary: #00bfff; + --brand-accent: #00bfff; + --brand-warm: #8f48a0; + --brand-deep: #000000; + --brand-muted: #1a1a1a; + --ink: #e0e0e0; + --surface-warm: #000000; + --naturegreen: #00bfff; + --naturegreen-foreground: #000000; + --duck-dark: #e0e0e0; + --duck-teal: #00bfff; + --duck-yellow: #1e90ff; + --duck-orange: #8f48a0; + --duck-forest: #00bfff; + --duck-beige: #161616; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/nyc.css b/src/workspaces/theme/css/themes/nyc.css new file mode 100644 index 00000000..6b8f49b2 --- /dev/null +++ b/src/workspaces/theme/css/themes/nyc.css @@ -0,0 +1,99 @@ +/* + Nyc — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/WillyV3/omarchy-nyc-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='nyc'] { + --background: #0a0a0a; + --foreground: #ffffff; + --card: #121212; + --card-foreground: #ffffff; + --popover: #121212; + --popover-foreground: #ffffff; + --muted: #232323; + --muted-foreground: #b8b8b8; + --accent: #232323; + --accent-foreground: #ffffff; + --primary: #8484c3; + --primary-foreground: #0a0a0a; + --secondary: #232323; + --secondary-foreground: #ffffff; + --cta: #8484c3; + --cta-foreground: #0a0a0a; + --ctahover: #9393ca; + --success: #e09a5c; + --success-foreground: #0a0a0a; + --warning: #ce8678; + --warning-foreground: #0a0a0a; + --destructive: #ce9997; + --destructive-foreground: #0a0a0a; + --info: #8484c3; + --info-foreground: #0a0a0a; + --busy: #ce9088; + --busy-foreground: #0a0a0a; + --busy-ink: #ce9088; + --border: #404040; + --input: #404040; + --ring: #8484c3; + --radius: 0.625rem; + --chart-primary: #8484c3; + --chart-secondary: #c498cd; + --status-success: #e09a5c; + --status-warning: #ce8678; + --status-in-progress: #8484c3; + --page-bg: #0a0a0a; + --page-bg-src: ''; + --panel-bg: rgb(18 18 18 / 0.72); + --panel-border: rgb(64 64 64 / 0.9); + --panel-border-bare: rgb(64 64 64 / 0.55); + --panel-raised-bg: rgb(18 18 18 / 0.95); + --panel-raised-border: rgb(64 64 64 / 1); + --panel-accent: #8484c3; + --panel-header-bg: rgb(35 35 35 / 0.6); + --panel-header-fg: #ffffff; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #121212; + --glass-bg: rgb(18 18 18 / 0.55); + --glass-border: rgb(64 64 64 / 0.7); + --dock-bg: rgb(18 18 18 / 0.7); + --dock-border: rgb(64 64 64 / 0.8); + --dock-tooltip-bg: #232323; + --header-bg: rgb(18 18 18 / 0.8); + --header-border: rgb(64 64 64 / 0.9); + --header-fg: #ffffff; + --header-blur: 12px; + --pixel-grid-color: rgb(125 125 125 / 0.07); + --card-grid-color: rgb(125 125 125 / 0.05); + --panel-grid-color: rgb(125 125 125 / 0.06); + --scrollbar-thumb: rgb(158 158 158 / 0.6); + --scrollbar-thumb-hover: rgb(158 158 158 / 0.85); + --scrollbar-thin-thumb: rgb(158 158 158 / 0.45); + --scrollbar-thin-thumb-hover: rgb(158 158 158 / 0.7); + --brand: #8484c3; + --brand-foreground: #0a0a0a; + --brand-primary: #8484c3; + --brand-accent: #6887b6; + --brand-warm: #ce9088; + --brand-deep: #0a0a0a; + --brand-muted: #9e9e9e; + --ink: #ffffff; + --surface-warm: #121212; + --naturegreen: #e09a5c; + --naturegreen-foreground: #0a0a0a; + --duck-dark: #ffffff; + --duck-teal: #6887b6; + --duck-yellow: #ce8678; + --duck-orange: #ce9088; + --duck-forest: #e09a5c; + --duck-beige: #2a2a2a; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/oxford.css b/src/workspaces/theme/css/themes/oxford.css new file mode 100644 index 00000000..20307852 --- /dev/null +++ b/src/workspaces/theme/css/themes/oxford.css @@ -0,0 +1,99 @@ +/* + Oxford — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/HANCORE-linux/omarchy-oxford-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='oxford'] { + --background: #17181b; + --foreground: #d6d1c9; + --card: #292b31; + --card-foreground: #d6d1c9; + --popover: #292b31; + --popover-foreground: #d6d1c9; + --muted: #383a3f; + --muted-foreground: #a7a4a0; + --accent: #383a3f; + --accent-foreground: #d6d1c9; + --primary: #bda07f; + --primary-foreground: #17181b; + --secondary: #383a3f; + --secondary-foreground: #d6d1c9; + --cta: #bda07f; + --cta-foreground: #17181b; + --ctahover: #c5ab8e; + --success: #76856a; + --success-foreground: #17181b; + --warning: #f3e9bd; + --warning-foreground: #17181b; + --destructive: #dd5544; + --destructive-foreground: #17181b; + --info: #bda07f; + --info-foreground: #17181b; + --busy: #e89f81; + --busy-foreground: #17181b; + --busy-ink: #e89f81; + --border: #4b4b4f; + --input: #4b4b4f; + --ring: #bda07f; + --radius: 0.625rem; + --chart-primary: #bda07f; + --chart-secondary: #b7a593; + --status-success: #76856a; + --status-warning: #f3e9bd; + --status-in-progress: #bda07f; + --page-bg: #17181b; + --page-bg-src: ''; + --panel-bg: rgb(41 43 49 / 0.72); + --panel-border: rgb(75 75 79 / 0.9); + --panel-border-bare: rgb(75 75 79 / 0.55); + --panel-raised-bg: rgb(41 43 49 / 0.95); + --panel-raised-border: rgb(75 75 79 / 1); + --panel-accent: #bda07f; + --panel-header-bg: rgb(56 58 63 / 0.6); + --panel-header-fg: #d6d1c9; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #292b31; + --glass-bg: rgb(41 43 49 / 0.55); + --glass-border: rgb(75 75 79 / 0.7); + --dock-bg: rgb(41 43 49 / 0.7); + --dock-border: rgb(75 75 79 / 0.8); + --dock-tooltip-bg: #383a3f; + --header-bg: rgb(41 43 49 / 0.8); + --header-border: rgb(75 75 79 / 0.9); + --header-fg: #d6d1c9; + --header-blur: 12px; + --pixel-grid-color: rgb(119 118 117 / 0.07); + --card-grid-color: rgb(119 118 117 / 0.05); + --panel-grid-color: rgb(119 118 117 / 0.06); + --scrollbar-thumb: rgb(100 100 102 / 0.6); + --scrollbar-thumb-hover: rgb(100 100 102 / 0.85); + --scrollbar-thin-thumb: rgb(100 100 102 / 0.45); + --scrollbar-thin-thumb-hover: rgb(100 100 102 / 0.7); + --brand: #bda07f; + --brand-foreground: #17181b; + --brand-primary: #bda07f; + --brand-accent: #9b907f; + --brand-warm: #e89f81; + --brand-deep: #17181b; + --brand-muted: #646466; + --ink: #d6d1c9; + --surface-warm: #292b31; + --naturegreen: #76856a; + --naturegreen-foreground: #17181b; + --duck-dark: #d6d1c9; + --duck-teal: #9b907f; + --duck-yellow: #f3e9bd; + --duck-orange: #e89f81; + --duck-forest: #76856a; + --duck-beige: #3a3c40; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/oxocarbon-dark.css b/src/workspaces/theme/css/themes/oxocarbon-dark.css new file mode 100644 index 00000000..07cab05a --- /dev/null +++ b/src/workspaces/theme/css/themes/oxocarbon-dark.css @@ -0,0 +1,99 @@ +/* + Oxocarbon Dark — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/HANCORE-linux/omarchy-oxocarbon-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='oxocarbon-dark'] { + --background: #0c0c0c; + --foreground: #f2f4f8; + --card: #161616; + --card-foreground: #f2f4f8; + --popover: #161616; + --popover-foreground: #f2f4f8; + --muted: #262626; + --muted-foreground: #b0b1b4; + --accent: #262626; + --accent-foreground: #f2f4f8; + --primary: #42be65; + --primary-foreground: #0c0c0c; + --secondary: #262626; + --secondary-foreground: #f2f4f8; + --cta: #42be65; + --cta-foreground: #0c0c0c; + --ctahover: #59c677; + --success: #33b1ff; + --success-foreground: #0c0c0c; + --warning: #ee5396; + --warning-foreground: #0c0c0c; + --destructive: #3ddbd9; + --destructive-foreground: #0c0c0c; + --info: #42be65; + --info-foreground: #0c0c0c; + --busy: #9697b8; + --busy-foreground: #0c0c0c; + --busy-ink: #9697b8; + --border: #414142; + --input: #414142; + --ring: #42be65; + --radius: 0.625rem; + --chart-primary: #42be65; + --chart-secondary: #be95ff; + --status-success: #33b1ff; + --status-warning: #ee5396; + --status-in-progress: #42be65; + --page-bg: #0c0c0c; + --page-bg-src: ''; + --panel-bg: rgb(22 22 22 / 0.72); + --panel-border: rgb(65 65 66 / 0.9); + --panel-border-bare: rgb(65 65 66 / 0.55); + --panel-raised-bg: rgb(22 22 22 / 0.95); + --panel-raised-border: rgb(65 65 66 / 1); + --panel-accent: #42be65; + --panel-header-bg: rgb(38 38 38 / 0.6); + --panel-header-fg: #f2f4f8; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #161616; + --glass-bg: rgb(22 22 22 / 0.55); + --glass-border: rgb(65 65 66 / 0.7); + --dock-bg: rgb(22 22 22 / 0.7); + --dock-border: rgb(65 65 66 / 0.8); + --dock-tooltip-bg: #262626; + --header-bg: rgb(22 22 22 / 0.8); + --header-border: rgb(65 65 66 / 0.9); + --header-fg: #f2f4f8; + --header-blur: 12px; + --pixel-grid-color: rgb(121 122 124 / 0.07); + --card-grid-color: rgb(121 122 124 / 0.05); + --panel-grid-color: rgb(121 122 124 / 0.06); + --scrollbar-thumb: rgb(82 82 82 / 0.6); + --scrollbar-thumb-hover: rgb(82 82 82 / 0.85); + --scrollbar-thin-thumb: rgb(82 82 82 / 0.45); + --scrollbar-thin-thumb-hover: rgb(82 82 82 / 0.7); + --brand: #42be65; + --brand-foreground: #0c0c0c; + --brand-primary: #42be65; + --brand-accent: #ff7eb6; + --brand-warm: #9697b8; + --brand-deep: #0c0c0c; + --brand-muted: #525252; + --ink: #f2f4f8; + --surface-warm: #161616; + --naturegreen: #33b1ff; + --naturegreen-foreground: #0c0c0c; + --duck-dark: #f2f4f8; + --duck-teal: #ff7eb6; + --duck-yellow: #ee5396; + --duck-orange: #9697b8; + --duck-forest: #33b1ff; + --duck-beige: #2c2c2d; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/pandora.css b/src/workspaces/theme/css/themes/pandora.css new file mode 100644 index 00000000..19279e64 --- /dev/null +++ b/src/workspaces/theme/css/themes/pandora.css @@ -0,0 +1,99 @@ +/* + Pandora — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/imbypass/omarchy-pandora-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='pandora'] { + --background: #060607; + --foreground: #b2b5b3; + --card: #0a0a0c; + --card-foreground: #b2b5b3; + --popover: #0a0a0c; + --popover-foreground: #b2b5b3; + --muted: #1b1b1d; + --muted-foreground: #838584; + --accent: #1b1b1d; + --accent-foreground: #b2b5b3; + --primary: #7aa2f7; + --primary-foreground: #060607; + --secondary: #1b1b1d; + --secondary-foreground: #b2b5b3; + --cta: #7aa2f7; + --cta-foreground: #060607; + --ctahover: #8aadf8; + --success: #9ece6a; + --success-foreground: #060607; + --warning: #e0af68; + --warning-foreground: #060607; + --destructive: #f7768e; + --destructive-foreground: #060607; + --info: #7aa2f7; + --info-foreground: #060607; + --busy: #ec937b; + --busy-foreground: #060607; + --busy-ink: #ec937b; + --border: #2b2c2d; + --input: #2b2c2d; + --ring: #7aa2f7; + --radius: 0.625rem; + --chart-primary: #7aa2f7; + --chart-secondary: #bb9af7; + --status-success: #9ece6a; + --status-warning: #e0af68; + --status-in-progress: #7aa2f7; + --page-bg: #060607; + --page-bg-src: ''; + --panel-bg: rgb(10 10 12 / 0.72); + --panel-border: rgb(43 44 45 / 0.9); + --panel-border-bare: rgb(43 44 45 / 0.55); + --panel-raised-bg: rgb(10 10 12 / 0.95); + --panel-raised-border: rgb(43 44 45 / 1); + --panel-accent: #7aa2f7; + --panel-header-bg: rgb(27 27 29 / 0.6); + --panel-header-fg: #b2b5b3; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #0a0a0c; + --glass-bg: rgb(10 10 12 / 0.55); + --glass-border: rgb(43 44 45 / 0.7); + --dock-bg: rgb(10 10 12 / 0.7); + --dock-border: rgb(43 44 45 / 0.8); + --dock-tooltip-bg: #1b1b1d; + --header-bg: rgb(10 10 12 / 0.8); + --header-border: rgb(43 44 45 / 0.9); + --header-fg: #b2b5b3; + --header-blur: 12px; + --pixel-grid-color: rgb(94 95 95 / 0.07); + --card-grid-color: rgb(94 95 95 / 0.05); + --panel-grid-color: rgb(94 95 95 / 0.06); + --scrollbar-thumb: rgb(54 54 56 / 0.6); + --scrollbar-thumb-hover: rgb(54 54 56 / 0.85); + --scrollbar-thin-thumb: rgb(54 54 56 / 0.45); + --scrollbar-thin-thumb-hover: rgb(54 54 56 / 0.7); + --brand: #7aa2f7; + --brand-foreground: #060607; + --brand-primary: #7aa2f7; + --brand-accent: #4abaaf; + --brand-warm: #ec937b; + --brand-deep: #060607; + --brand-muted: #363638; + --ink: #b2b5b3; + --surface-warm: #0a0a0c; + --naturegreen: #9ece6a; + --naturegreen-foreground: #060607; + --duck-dark: #b2b5b3; + --duck-teal: #4abaaf; + --duck-yellow: #e0af68; + --duck-orange: #ec937b; + --duck-forest: #9ece6a; + --duck-beige: #1b1b1d; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/pink-blood.css b/src/workspaces/theme/css/themes/pink-blood.css new file mode 100644 index 00000000..f73a2a46 --- /dev/null +++ b/src/workspaces/theme/css/themes/pink-blood.css @@ -0,0 +1,99 @@ +/* + Pink Blood — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/ITSZXY/pink-blood-omarchy-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='pink-blood'] { + --background: #030004; + --foreground: #f17e97; + --card: #050007; + --card-foreground: #f17e97; + --popover: #050007; + --popover-foreground: #f17e97; + --muted: #171218; + --muted-foreground: #b3697b; + --accent: #171218; + --accent-foreground: #f17e97; + --primary: #f00f40; + --primary-foreground: #030004; + --secondary: #171218; + --secondary-foreground: #f17e97; + --cta: #f00f40; + --cta-foreground: #030004; + --ctahover: #f22c57; + --success: #af0b39; + --success-foreground: #d3d2d3; + --warning: #ce0d3c; + --warning-foreground: #ececec; + --destructive: #8f0936; + --destructive-foreground: #f59eb1; + --info: #e80f3e; + --info-foreground: #030004; + --busy: #af0b39; + --busy-foreground: #d3d2d3; + --busy-ink: #c54e6f; + --border: #331923; + --input: #381f29; + --ring: #f00f40; + --radius: 0.625rem; + --chart-primary: #f00f40; + --chart-secondary: #d40d40; + --status-success: #af0b39; + --status-warning: #ce0d3c; + --status-in-progress: #e80f3e; + --page-bg: #030004; + --page-bg-src: ''; + --panel-bg: rgb(5 0 7 / 0.72); + --panel-border: rgb(51 25 35 / 0.9); + --panel-border-bare: rgb(51 25 35 / 0.55); + --panel-raised-bg: rgb(5 0 7 / 0.95); + --panel-raised-border: rgb(51 25 35 / 1); + --panel-accent: #f00f40; + --panel-header-bg: rgb(23 18 24 / 0.6); + --panel-header-fg: #f17e97; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #050007; + --glass-bg: rgb(5 0 7 / 0.55); + --glass-border: rgb(51 25 35 / 0.7); + --dock-bg: rgb(5 0 7 / 0.7); + --dock-border: rgb(51 25 35 / 0.8); + --dock-tooltip-bg: #171218; + --header-bg: rgb(5 0 7 / 0.8); + --header-border: rgb(51 25 35 / 0.9); + --header-fg: #f17e97; + --header-blur: 12px; + --pixel-grid-color: rgb(125 77 90 / 0.07); + --card-grid-color: rgb(125 77 90 / 0.05); + --panel-grid-color: rgb(125 77 90 / 0.06); + --scrollbar-thumb: rgb(168 88 105 / 0.6); + --scrollbar-thumb-hover: rgb(168 88 105 / 0.85); + --scrollbar-thin-thumb: rgb(168 88 105 / 0.45); + --scrollbar-thin-thumb-hover: rgb(168 88 105 / 0.7); + --brand: #f00f40; + --brand-foreground: #030004; + --brand-primary: #f00f40; + --brand-accent: #f00f40; + --brand-warm: #af0b39; + --brand-deep: #030004; + --brand-muted: #a85869; + --ink: #f17e97; + --surface-warm: #050007; + --naturegreen: #af0b39; + --naturegreen-foreground: #d3d2d3; + --duck-dark: #f17e97; + --duck-teal: #f00f40; + --duck-yellow: #ce0d3c; + --duck-orange: #af0b39; + --duck-forest: #af0b39; + --duck-beige: #1d0d15; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/pulsar.css b/src/workspaces/theme/css/themes/pulsar.css new file mode 100644 index 00000000..f8d388cb --- /dev/null +++ b/src/workspaces/theme/css/themes/pulsar.css @@ -0,0 +1,99 @@ +/* + Pulsar — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/bjarneo/omarchy-pulsar-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='pulsar'] { + --background: #06020b; + --foreground: #e0e6ff; + --card: #0a0314; + --card-foreground: #e0e6ff; + --popover: #0a0314; + --popover-foreground: #e0e6ff; + --muted: #1b1524; + --muted-foreground: #a0a2b9; + --accent: #1b1524; + --accent-foreground: #e0e6ff; + --primary: #3298fa; + --primary-foreground: #06020b; + --secondary: #1b1524; + --secondary-foreground: #e0e6ff; + --cta: #3298fa; + --cta-foreground: #06020b; + --ctahover: #4ba4fb; + --success: #5cb960; + --success-foreground: #06020b; + --warning: #f2e42e; + --warning-foreground: #06020b; + --destructive: #e53e61; + --destructive-foreground: #06020b; + --info: #3298fa; + --info-foreground: #06020b; + --busy: #ec9148; + --busy-foreground: #06020b; + --busy-ink: #ec9148; + --border: #343042; + --input: #343042; + --ring: #3298fa; + --radius: 0.625rem; + --chart-primary: #3298fa; + --chart-secondary: #b82aff; + --status-success: #5cb960; + --status-warning: #f2e42e; + --status-in-progress: #3298fa; + --page-bg: #06020b; + --page-bg-src: ''; + --panel-bg: rgb(10 3 20 / 0.72); + --panel-border: rgb(52 48 66 / 0.9); + --panel-border-bare: rgb(52 48 66 / 0.55); + --panel-raised-bg: rgb(10 3 20 / 0.95); + --panel-raised-border: rgb(52 48 66 / 1); + --panel-accent: #3298fa; + --panel-header-bg: rgb(27 21 36 / 0.6); + --panel-header-fg: #e0e6ff; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #0a0314; + --glass-bg: rgb(10 3 20 / 0.55); + --glass-border: rgb(52 48 66 / 0.7); + --dock-bg: rgb(10 3 20 / 0.7); + --dock-border: rgb(52 48 66 / 0.8); + --dock-tooltip-bg: #1b1524; + --header-bg: rgb(10 3 20 / 0.8); + --header-border: rgb(52 48 66 / 0.9); + --header-fg: #e0e6ff; + --header-blur: 12px; + --pixel-grid-color: rgb(106 105 126 / 0.07); + --card-grid-color: rgb(106 105 126 / 0.05); + --panel-grid-color: rgb(106 105 126 / 0.06); + --scrollbar-thumb: rgb(170 90 188 / 0.6); + --scrollbar-thumb-hover: rgb(170 90 188 / 0.85); + --scrollbar-thin-thumb: rgb(170 90 188 / 0.45); + --scrollbar-thin-thumb-hover: rgb(170 90 188 / 0.7); + --brand: #3298fa; + --brand-foreground: #06020b; + --brand-primary: #3298fa; + --brand-accent: #3df2f2; + --brand-warm: #ec9148; + --brand-deep: #06020b; + --brand-muted: #aa5abc; + --ink: #e0e6ff; + --surface-warm: #0a0314; + --naturegreen: #5cb960; + --naturegreen-foreground: #06020b; + --duck-dark: #e0e6ff; + --duck-teal: #3df2f2; + --duck-yellow: #f2e42e; + --duck-orange: #ec9148; + --duck-forest: #5cb960; + --duck-beige: #1f1a2c; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/purple-moon.css b/src/workspaces/theme/css/themes/purple-moon.css new file mode 100644 index 00000000..87e01301 --- /dev/null +++ b/src/workspaces/theme/css/themes/purple-moon.css @@ -0,0 +1,99 @@ +/* + Purple Moon — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/Grey-007/purple-moon (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='purple-moon'] { + --background: #010004; + --foreground: #ffffff; + --card: #020007; + --card-foreground: #ffffff; + --popover: #020007; + --popover-foreground: #ffffff; + --muted: #141218; + --muted-foreground: #b3b3b5; + --accent: #141218; + --accent-foreground: #ffffff; + --primary: #9b49c8; + --primary-foreground: #ffffff; + --secondary: #141218; + --secondary-foreground: #ffffff; + --cta: #9b49c8; + --cta-foreground: #ffffff; + --ctahover: #a75fcf; + --success: #643aad; + --success-foreground: #ffffff; + --warning: #9845c6; + --warning-foreground: #ffffff; + --destructive: #37277d; + --destructive-foreground: #ffffff; + --info: #9b49c8; + --info-foreground: #ffffff; + --busy: #6836a2; + --busy-foreground: #ffffff; + --busy-ink: #8a63b7; + --border: #343238; + --input: #343238; + --ring: #9b49c8; + --radius: 0.625rem; + --chart-primary: #9b49c8; + --chart-secondary: #9865cf; + --status-success: #643aad; + --status-warning: #9845c6; + --status-in-progress: #9b49c8; + --page-bg: #010004; + --page-bg-src: ''; + --panel-bg: rgb(2 0 7 / 0.72); + --panel-border: rgb(52 50 56 / 0.9); + --panel-border-bare: rgb(52 50 56 / 0.55); + --panel-raised-bg: rgb(2 0 7 / 0.95); + --panel-raised-border: rgb(52 50 56 / 1); + --panel-accent: #9b49c8; + --panel-header-bg: rgb(20 18 24 / 0.6); + --panel-header-fg: #ffffff; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #020007; + --glass-bg: rgb(2 0 7 / 0.55); + --glass-border: rgb(52 50 56 / 0.7); + --dock-bg: rgb(2 0 7 / 0.7); + --dock-border: rgb(52 50 56 / 0.8); + --dock-tooltip-bg: #141218; + --header-bg: rgb(2 0 7 / 0.8); + --header-border: rgb(52 50 56 / 0.9); + --header-fg: #ffffff; + --header-blur: 12px; + --pixel-grid-color: rgb(116 115 119 / 0.07); + --card-grid-color: rgb(116 115 119 / 0.05); + --panel-grid-color: rgb(116 115 119 / 0.06); + --scrollbar-thumb: rgb(156 108 208 / 0.6); + --scrollbar-thumb-hover: rgb(156 108 208 / 0.85); + --scrollbar-thin-thumb: rgb(156 108 208 / 0.45); + --scrollbar-thin-thumb-hover: rgb(156 108 208 / 0.7); + --brand: #9b49c8; + --brand-foreground: #ffffff; + --brand-primary: #9b49c8; + --brand-accent: #b895dd; + --brand-warm: #6836a2; + --brand-deep: #010004; + --brand-muted: #9c6cd0; + --ink: #ffffff; + --surface-warm: #020007; + --naturegreen: #643aad; + --naturegreen-foreground: #ffffff; + --duck-dark: #ffffff; + --duck-teal: #b895dd; + --duck-yellow: #9845c6; + --duck-orange: #6836a2; + --duck-forest: #643aad; + --duck-beige: #1b1a20; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/purplewave.css b/src/workspaces/theme/css/themes/purplewave.css new file mode 100644 index 00000000..0c1c8de1 --- /dev/null +++ b/src/workspaces/theme/css/themes/purplewave.css @@ -0,0 +1,99 @@ +/* + Purplewave — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/dotsilva/omarchy-purplewave-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='purplewave'] { + --background: #0a0a0a; + --foreground: #d7accd; + --card: #121212; + --card-foreground: #d7accd; + --popover: #121212; + --popover-foreground: #d7accd; + --muted: #232323; + --muted-foreground: #9e8198; + --accent: #232323; + --accent-foreground: #d7accd; + --primary: #7ea7c9; + --primary-foreground: #0a0a0a; + --secondary: #232323; + --secondary-foreground: #d7accd; + --cta: #7ea7c9; + --cta-foreground: #0a0a0a; + --ctahover: #8db2cf; + --success: #8673d4; + --success-foreground: #0a0a0a; + --warning: #ca2edc; + --warning-foreground: #0a0a0a; + --destructive: #ff4da6; + --destructive-foreground: #0a0a0a; + --info: #7ea7c9; + --info-foreground: #0a0a0a; + --busy: #e53ec1; + --busy-foreground: #0a0a0a; + --busy-ink: #e53ec1; + --border: #393037; + --input: #393037; + --ring: #7ea7c9; + --radius: 0.625rem; + --chart-primary: #7ea7c9; + --chart-secondary: #b683c3; + --status-success: #8673d4; + --status-warning: #ca2edc; + --status-in-progress: #7ea7c9; + --page-bg: #0a0a0a; + --page-bg-src: ''; + --panel-bg: rgb(18 18 18 / 0.72); + --panel-border: rgb(57 48 55 / 0.9); + --panel-border-bare: rgb(57 48 55 / 0.55); + --panel-raised-bg: rgb(18 18 18 / 0.95); + --panel-raised-border: rgb(57 48 55 / 1); + --panel-accent: #7ea7c9; + --panel-header-bg: rgb(35 35 35 / 0.6); + --panel-header-fg: #d7accd; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #121212; + --glass-bg: rgb(18 18 18 / 0.55); + --glass-border: rgb(57 48 55 / 0.7); + --dock-bg: rgb(18 18 18 / 0.7); + --dock-border: rgb(57 48 55 / 0.8); + --dock-tooltip-bg: #232323; + --header-bg: rgb(18 18 18 / 0.8); + --header-border: rgb(57 48 55 / 0.9); + --header-fg: #d7accd; + --header-blur: 12px; + --pixel-grid-color: rgb(111 91 106 / 0.07); + --card-grid-color: rgb(111 91 106 / 0.05); + --panel-grid-color: rgb(111 91 106 / 0.06); + --scrollbar-thumb: rgb(255 154 203 / 0.6); + --scrollbar-thumb-hover: rgb(255 154 203 / 0.85); + --scrollbar-thin-thumb: rgb(255 154 203 / 0.45); + --scrollbar-thin-thumb-hover: rgb(255 154 203 / 0.7); + --brand: #7ea7c9; + --brand-foreground: #0a0a0a; + --brand-primary: #7ea7c9; + --brand-accent: #8adb8a; + --brand-warm: #e53ec1; + --brand-deep: #0a0a0a; + --brand-muted: #ff9acb; + --ink: #d7accd; + --surface-warm: #121212; + --naturegreen: #8673d4; + --naturegreen-foreground: #0a0a0a; + --duck-dark: #d7accd; + --duck-teal: #8adb8a; + --duck-yellow: #ca2edc; + --duck-orange: #e53ec1; + --duck-forest: #8673d4; + --duck-beige: #262125; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/rainy-night.css b/src/workspaces/theme/css/themes/rainy-night.css new file mode 100644 index 00000000..29e3fc2e --- /dev/null +++ b/src/workspaces/theme/css/themes/rainy-night.css @@ -0,0 +1,99 @@ +/* + Rainy Night — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/atif-1402/omarchy-rainynight-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='rainy-night'] { + --background: #111119; + --foreground: #cdd6f4; + --card: #1e1e2e; + --card-foreground: #cdd6f4; + --popover: #1e1e2e; + --popover-foreground: #cdd6f4; + --muted: #2e2e3d; + --muted-foreground: #999fb9; + --accent: #2e2e3d; + --accent-foreground: #cdd6f4; + --primary: #89b4fa; + --primary-foreground: #111119; + --secondary: #2e2e3d; + --secondary-foreground: #cdd6f4; + --cta: #89b4fa; + --cta-foreground: #111119; + --ctahover: #97bdfb; + --success: #a6e3a1; + --success-foreground: #111119; + --warning: #f9e2af; + --warning-foreground: #111119; + --destructive: #f38ba8; + --destructive-foreground: #111119; + --info: #89b4fa; + --info-foreground: #111119; + --busy: #f6b7ac; + --busy-foreground: #111119; + --busy-ink: #f6b7ac; + --border: #404255; + --input: #404255; + --ring: #89b4fa; + --radius: 0.625rem; + --chart-primary: #89b4fa; + --chart-secondary: #cba6f7; + --status-success: #a6e3a1; + --status-warning: #f9e2af; + --status-in-progress: #89b4fa; + --page-bg: #111119; + --page-bg-src: ''; + --panel-bg: rgb(30 30 46 / 0.72); + --panel-border: rgb(64 66 85 / 0.9); + --panel-border-bare: rgb(64 66 85 / 0.55); + --panel-raised-bg: rgb(30 30 46 / 0.95); + --panel-raised-border: rgb(64 66 85 / 1); + --panel-accent: #89b4fa; + --panel-header-bg: rgb(46 46 61 / 0.6); + --panel-header-fg: #cdd6f4; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #1e1e2e; + --glass-bg: rgb(30 30 46 / 0.55); + --glass-border: rgb(64 66 85 / 0.7); + --dock-bg: rgb(30 30 46 / 0.7); + --dock-border: rgb(64 66 85 / 0.8); + --dock-tooltip-bg: #2e2e3d; + --header-bg: rgb(30 30 46 / 0.8); + --header-border: rgb(64 66 85 / 0.9); + --header-fg: #cdd6f4; + --header-blur: 12px; + --pixel-grid-color: rgb(109 113 135 / 0.07); + --card-grid-color: rgb(109 113 135 / 0.05); + --panel-grid-color: rgb(109 113 135 / 0.06); + --scrollbar-thumb: rgb(88 91 112 / 0.6); + --scrollbar-thumb-hover: rgb(88 91 112 / 0.85); + --scrollbar-thin-thumb: rgb(88 91 112 / 0.45); + --scrollbar-thin-thumb-hover: rgb(88 91 112 / 0.7); + --brand: #89b4fa; + --brand-foreground: #111119; + --brand-primary: #89b4fa; + --brand-accent: #94e2d5; + --brand-warm: #f6b7ac; + --brand-deep: #111119; + --brand-muted: #585b70; + --ink: #cdd6f4; + --surface-warm: #1e1e2e; + --naturegreen: #a6e3a1; + --naturegreen-foreground: #111119; + --duck-dark: #cdd6f4; + --duck-teal: #94e2d5; + --duck-yellow: #f9e2af; + --duck-orange: #f6b7ac; + --duck-forest: #a6e3a1; + --duck-beige: #303042; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/rdddcs.css b/src/workspaces/theme/css/themes/rdddcs.css new file mode 100644 index 00000000..c0fdd3a0 --- /dev/null +++ b/src/workspaces/theme/css/themes/rdddcs.css @@ -0,0 +1,99 @@ +/* + Rdddcs — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/mohamedredachakir/LINUX-OMARCHY-REDDCS (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='rdddcs'] { + --background: #0f0a0a; + --foreground: #e3a68c; + --card: #1c1213; + --card-foreground: #e3a68c; + --popover: #1c1213; + --popover-foreground: #e3a68c; + --muted: #2c2324; + --muted-foreground: #ae8473; + --accent: #2c2324; + --accent-foreground: #e3a68c; + --primary: #6b6566; + --primary-foreground: #e7e7e7; + --secondary: #2c2324; + --secondary-foreground: #e3a68c; + --cta: #6b6566; + --cta-foreground: #e7e7e7; + --ctahover: #7d7778; + --success: #806c61; + --success-foreground: #f9f9f9; + --warning: #f28171; + --warning-foreground: #0f0a0a; + --destructive: #c24f57; + --destructive-foreground: #ffffff; + --info: #684c59; + --info-foreground: #ebbeac; + --busy: #da6864; + --busy-foreground: #0f0a0a; + --busy-ink: #da6864; + --border: #432f2b; + --input: #432f2b; + --ring: #6b6566; + --radius: 0.625rem; + --chart-primary: #6b6566; + --chart-secondary: #a63650; + --status-success: #806c61; + --status-warning: #f28171; + --status-in-progress: #684c59; + --page-bg: #0f0a0a; + --page-bg-src: ''; + --panel-bg: rgb(28 18 19 / 0.72); + --panel-border: rgb(67 47 43 / 0.9); + --panel-border-bare: rgb(67 47 43 / 0.55); + --panel-raised-bg: rgb(28 18 19 / 0.95); + --panel-raised-border: rgb(67 47 43 / 1); + --panel-accent: #6b6566; + --panel-header-bg: rgb(44 35 36 / 0.6); + --panel-header-fg: #e3a68c; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #1c1213; + --glass-bg: rgb(28 18 19 / 0.55); + --glass-border: rgb(67 47 43 / 0.7); + --dock-bg: rgb(28 18 19 / 0.7); + --dock-border: rgb(67 47 43 / 0.8); + --dock-tooltip-bg: #2c2324; + --header-bg: rgb(28 18 19 / 0.8); + --header-border: rgb(67 47 43 / 0.9); + --header-fg: #e3a68c; + --header-blur: 12px; + --pixel-grid-color: rgb(125 94 82 / 0.07); + --card-grid-color: rgb(125 94 82 / 0.05); + --panel-grid-color: rgb(125 94 82 / 0.06); + --scrollbar-thumb: rgb(109 71 69 / 0.6); + --scrollbar-thumb-hover: rgb(109 71 69 / 0.85); + --scrollbar-thin-thumb: rgb(109 71 69 / 0.45); + --scrollbar-thin-thumb-hover: rgb(109 71 69 / 0.7); + --brand: #6b6566; + --brand-foreground: #e7e7e7; + --brand-primary: #6b6566; + --brand-accent: #6b6566; + --brand-warm: #da6864; + --brand-deep: #0f0a0a; + --brand-muted: #6d4745; + --ink: #e3a68c; + --surface-warm: #1c1213; + --naturegreen: #806c61; + --naturegreen-foreground: #f9f9f9; + --duck-dark: #e3a68c; + --duck-teal: #6b6566; + --duck-yellow: #f28171; + --duck-orange: #da6864; + --duck-forest: #806c61; + --duck-beige: #30211f; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/red-monarch.css b/src/workspaces/theme/css/themes/red-monarch.css new file mode 100644 index 00000000..87e59757 --- /dev/null +++ b/src/workspaces/theme/css/themes/red-monarch.css @@ -0,0 +1,99 @@ +/* + Red Monarch — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/kamatealip/omarchy-red-monarch-theme (ghostty.conf), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='red-monarch'] { + --background: #090506; + --foreground: #ededed; + --card: #10090b; + --card-foreground: #ededed; + --popover: #10090b; + --popover-foreground: #ededed; + --muted: #211a1c; + --muted-foreground: #aba9a9; + --accent: #211a1c; + --accent-foreground: #ededed; + --primary: #bf1111; + --primary-foreground: #ededed; + --secondary: #211a1c; + --secondary-foreground: #ededed; + --cta: #bf1111; + --cta-foreground: #ededed; + --ctahover: #c72e2e; + --success: #bf1111; + --success-foreground: #ededed; + --warning: #bf1111; + --warning-foreground: #ededed; + --destructive: #bf1111; + --destructive-foreground: #ededed; + --info: #bf1111; + --info-foreground: #ededed; + --busy: #bf1111; + --busy-foreground: #ededed; + --busy-ink: #cf4d4d; + --border: #3b3637; + --input: #3b3637; + --ring: #bf1111; + --radius: 0.625rem; + --chart-primary: #bf1111; + --chart-secondary: #bf1111; + --status-success: #bf1111; + --status-warning: #bf1111; + --status-in-progress: #bf1111; + --page-bg: #090506; + --page-bg-src: ''; + --panel-bg: rgb(16 9 11 / 0.72); + --panel-border: rgb(59 54 55 / 0.9); + --panel-border-bare: rgb(59 54 55 / 0.55); + --panel-raised-bg: rgb(16 9 11 / 0.95); + --panel-raised-border: rgb(59 54 55 / 1); + --panel-accent: #bf1111; + --panel-header-bg: rgb(33 26 28 / 0.6); + --panel-header-fg: #ededed; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #10090b; + --glass-bg: rgb(16 9 11 / 0.55); + --glass-border: rgb(59 54 55 / 0.7); + --dock-bg: rgb(16 9 11 / 0.7); + --dock-border: rgb(59 54 55 / 0.8); + --dock-tooltip-bg: #211a1c; + --header-bg: rgb(16 9 11 / 0.8); + --header-border: rgb(59 54 55 / 0.9); + --header-fg: #ededed; + --header-blur: 12px; + --pixel-grid-color: rgb(115 112 113 / 0.07); + --card-grid-color: rgb(115 112 113 / 0.05); + --panel-grid-color: rgb(115 112 113 / 0.06); + --scrollbar-thumb: rgb(104 100 101 / 0.6); + --scrollbar-thumb-hover: rgb(104 100 101 / 0.85); + --scrollbar-thin-thumb: rgb(104 100 101 / 0.45); + --scrollbar-thin-thumb-hover: rgb(104 100 101 / 0.7); + --brand: #bf1111; + --brand-foreground: #ededed; + --brand-primary: #bf1111; + --brand-accent: #bf1111; + --brand-warm: #bf1111; + --brand-deep: #090506; + --brand-muted: #686465; + --ink: #ededed; + --surface-warm: #10090b; + --naturegreen: #bf1111; + --naturegreen-foreground: #ededed; + --duck-dark: #ededed; + --duck-teal: #bf1111; + --duck-yellow: #bf1111; + --duck-orange: #bf1111; + --duck-forest: #bf1111; + --duck-beige: #262022; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/retropc.css b/src/workspaces/theme/css/themes/retropc.css new file mode 100644 index 00000000..1e6deb26 --- /dev/null +++ b/src/workspaces/theme/css/themes/retropc.css @@ -0,0 +1,99 @@ +/* + Retropc — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/rondilley/omarchy-retropc-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='retropc'] { + --background: #060604; + --foreground: #ffb000; + --card: #0a0a08; + --card-foreground: #ffb000; + --popover: #0a0a08; + --popover-foreground: #ffb000; + --muted: #1b1b19; + --muted-foreground: #b67e02; + --accent: #1b1b19; + --accent-foreground: #ffb000; + --primary: #cc9900; + --primary-foreground: #060604; + --secondary: #1b1b19; + --secondary-foreground: #ffb000; + --cta: #cc9900; + --cta-foreground: #060604; + --ctahover: #d2a51f; + --success: #ffcc00; + --success-foreground: #060604; + --warning: #ffd700; + --warning-foreground: #060604; + --destructive: #ff8800; + --destructive-foreground: #060604; + --info: #cc9900; + --info-foreground: #060604; + --busy: #ffb000; + --busy-foreground: #060604; + --busy-ink: #ffb000; + --border: #3a2a06; + --input: #3a2a06; + --ring: #cc9900; + --radius: 0.625rem; + --chart-primary: #cc9900; + --chart-secondary: #ff9900; + --status-success: #ffcc00; + --status-warning: #ffd700; + --status-in-progress: #cc9900; + --page-bg: #060604; + --page-bg-src: ''; + --panel-bg: rgb(10 10 8 / 0.72); + --panel-border: rgb(58 42 6 / 0.9); + --panel-border-bare: rgb(58 42 6 / 0.55); + --panel-raised-bg: rgb(10 10 8 / 0.95); + --panel-raised-border: rgb(58 42 6 / 1); + --panel-accent: #cc9900; + --panel-header-bg: rgb(27 27 25 / 0.6); + --panel-header-fg: #ffb000; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #0a0a08; + --glass-bg: rgb(10 10 8 / 0.55); + --glass-border: rgb(58 42 6 / 0.7); + --dock-bg: rgb(10 10 8 / 0.7); + --dock-border: rgb(58 42 6 / 0.8); + --dock-tooltip-bg: #1b1b19; + --header-bg: rgb(10 10 8 / 0.8); + --header-border: rgb(58 42 6 / 0.9); + --header-fg: #ffb000; + --header-blur: 12px; + --pixel-grid-color: rgb(123 89 10 / 0.07); + --card-grid-color: rgb(123 89 10 / 0.05); + --panel-grid-color: rgb(123 89 10 / 0.06); + --scrollbar-thumb: rgb(128 85 0 / 0.6); + --scrollbar-thumb-hover: rgb(128 85 0 / 0.85); + --scrollbar-thin-thumb: rgb(128 85 0 / 0.45); + --scrollbar-thin-thumb-hover: rgb(128 85 0 / 0.7); + --brand: #cc9900; + --brand-foreground: #060604; + --brand-primary: #cc9900; + --brand-accent: #cc9900; + --brand-warm: #ffb000; + --brand-deep: #060604; + --brand-muted: #805500; + --ink: #ffb000; + --surface-warm: #0a0a08; + --naturegreen: #ffcc00; + --naturegreen-foreground: #060604; + --duck-dark: #ffb000; + --duck-teal: #cc9900; + --duck-yellow: #ffd700; + --duck-orange: #ffb000; + --duck-forest: #ffcc00; + --duck-beige: #231b07; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/robco-mojave.css b/src/workspaces/theme/css/themes/robco-mojave.css new file mode 100644 index 00000000..e256672e --- /dev/null +++ b/src/workspaces/theme/css/themes/robco-mojave.css @@ -0,0 +1,99 @@ +/* + Robco Mojave — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/signaldirective/robco-mojave (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='robco-mojave'] { + --background: #060604; + --foreground: #ffb000; + --card: #0a0a08; + --card-foreground: #ffb000; + --popover: #0a0a08; + --popover-foreground: #ffb000; + --muted: #1b1b19; + --muted-foreground: #b67e02; + --accent: #1b1b19; + --accent-foreground: #ffb000; + --primary: #cc9900; + --primary-foreground: #060604; + --secondary: #1b1b19; + --secondary-foreground: #ffb000; + --cta: #cc9900; + --cta-foreground: #060604; + --ctahover: #d2a51f; + --success: #ffcc00; + --success-foreground: #060604; + --warning: #ffd700; + --warning-foreground: #060604; + --destructive: #ff8800; + --destructive-foreground: #060604; + --info: #cc9900; + --info-foreground: #060604; + --busy: #ffb000; + --busy-foreground: #060604; + --busy-ink: #ffb000; + --border: #3a2a06; + --input: #3a2a06; + --ring: #cc9900; + --radius: 0.625rem; + --chart-primary: #cc9900; + --chart-secondary: #ff9900; + --status-success: #ffcc00; + --status-warning: #ffd700; + --status-in-progress: #cc9900; + --page-bg: #060604; + --page-bg-src: ''; + --panel-bg: rgb(10 10 8 / 0.72); + --panel-border: rgb(58 42 6 / 0.9); + --panel-border-bare: rgb(58 42 6 / 0.55); + --panel-raised-bg: rgb(10 10 8 / 0.95); + --panel-raised-border: rgb(58 42 6 / 1); + --panel-accent: #cc9900; + --panel-header-bg: rgb(27 27 25 / 0.6); + --panel-header-fg: #ffb000; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #0a0a08; + --glass-bg: rgb(10 10 8 / 0.55); + --glass-border: rgb(58 42 6 / 0.7); + --dock-bg: rgb(10 10 8 / 0.7); + --dock-border: rgb(58 42 6 / 0.8); + --dock-tooltip-bg: #1b1b19; + --header-bg: rgb(10 10 8 / 0.8); + --header-border: rgb(58 42 6 / 0.9); + --header-fg: #ffb000; + --header-blur: 12px; + --pixel-grid-color: rgb(123 89 10 / 0.07); + --card-grid-color: rgb(123 89 10 / 0.05); + --panel-grid-color: rgb(123 89 10 / 0.06); + --scrollbar-thumb: rgb(128 85 0 / 0.6); + --scrollbar-thumb-hover: rgb(128 85 0 / 0.85); + --scrollbar-thin-thumb: rgb(128 85 0 / 0.45); + --scrollbar-thin-thumb-hover: rgb(128 85 0 / 0.7); + --brand: #cc9900; + --brand-foreground: #060604; + --brand-primary: #cc9900; + --brand-accent: #cc9900; + --brand-warm: #ffb000; + --brand-deep: #060604; + --brand-muted: #805500; + --ink: #ffb000; + --surface-warm: #0a0a08; + --naturegreen: #ffcc00; + --naturegreen-foreground: #060604; + --duck-dark: #ffb000; + --duck-teal: #cc9900; + --duck-yellow: #ffd700; + --duck-orange: #ffb000; + --duck-forest: #ffcc00; + --duck-beige: #231b07; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/robco.css b/src/workspaces/theme/css/themes/robco.css new file mode 100644 index 00000000..d2a96340 --- /dev/null +++ b/src/workspaces/theme/css/themes/robco.css @@ -0,0 +1,99 @@ +/* + Robco — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/signaldirective/robco-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='robco'] { + --background: #060604; + --foreground: #59cf77; + --card: #0a0a08; + --card-foreground: #59cf77; + --popover: #0a0a08; + --popover-foreground: #59cf77; + --muted: #1b1b19; + --muted-foreground: #419456; + --accent: #1b1b19; + --accent-foreground: #59cf77; + --primary: #2e7d4a; + --primary-foreground: #f3f3f2; + --secondary: #1b1b19; + --secondary-foreground: #59cf77; + --cta: #2e7d4a; + --cta-foreground: #f3f3f2; + --ctahover: #478d60; + --success: #59cf77; + --success-foreground: #060604; + --warning: #6fe685; + --warning-foreground: #060604; + --destructive: #3da862; + --destructive-foreground: #060604; + --info: #2e7d4a; + --info-foreground: #f3f3f2; + --busy: #56c774; + --busy-foreground: #060604; + --busy-ink: #56c774; + --border: #19311e; + --input: #19311e; + --ring: #2e7d4a; + --radius: 0.625rem; + --chart-primary: #2e7d4a; + --chart-secondary: #4db866; + --status-success: #59cf77; + --status-warning: #6fe685; + --status-in-progress: #2e7d4a; + --page-bg: #060604; + --page-bg-src: ''; + --panel-bg: rgb(10 10 8 / 0.72); + --panel-border: rgb(25 49 30 / 0.9); + --panel-border-bare: rgb(25 49 30 / 0.55); + --panel-raised-bg: rgb(10 10 8 / 0.95); + --panel-raised-border: rgb(25 49 30 / 1); + --panel-accent: #2e7d4a; + --panel-header-bg: rgb(27 27 25 / 0.6); + --panel-header-fg: #59cf77; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #0a0a08; + --glass-bg: rgb(10 10 8 / 0.55); + --glass-border: rgb(25 49 30 / 0.7); + --dock-bg: rgb(10 10 8 / 0.7); + --dock-border: rgb(25 49 30 / 0.8); + --dock-tooltip-bg: #1b1b19; + --header-bg: rgb(10 10 8 / 0.8); + --header-border: rgb(25 49 30 / 0.9); + --header-fg: #59cf77; + --header-blur: 12px; + --pixel-grid-color: rgb(56 107 68 / 0.07); + --card-grid-color: rgb(56 107 68 / 0.05); + --panel-grid-color: rgb(56 107 68 / 0.06); + --scrollbar-thumb: rgb(42 89 52 / 0.6); + --scrollbar-thumb-hover: rgb(42 89 52 / 0.85); + --scrollbar-thin-thumb: rgb(42 89 52 / 0.45); + --scrollbar-thin-thumb-hover: rgb(42 89 52 / 0.7); + --brand: #2e7d4a; + --brand-foreground: #f3f3f2; + --brand-primary: #2e7d4a; + --brand-accent: #2e7d4a; + --brand-warm: #56c774; + --brand-deep: #060604; + --brand-muted: #2a5934; + --ink: #59cf77; + --surface-warm: #0a0a08; + --naturegreen: #59cf77; + --naturegreen-foreground: #060604; + --duck-dark: #59cf77; + --duck-teal: #2e7d4a; + --duck-yellow: #6fe685; + --duck-orange: #56c774; + --duck-forest: #59cf77; + --duck-beige: #121e13; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/roseofdune.css b/src/workspaces/theme/css/themes/roseofdune.css new file mode 100644 index 00000000..f18ff5c9 --- /dev/null +++ b/src/workspaces/theme/css/themes/roseofdune.css @@ -0,0 +1,99 @@ +/* + Roseofdune — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Light theme (light), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/HANCORE-linux/omarchy-roseofdune-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='roseofdune'] { + --background: #f5e6d3; + --foreground: #35302a; + --card: #ecdecc; + --card-foreground: #35302a; + --popover: #ecdecc; + --popover-foreground: #35302a; + --muted: #e6d8c6; + --muted-foreground: #645d54; + --accent: #e6d8c6; + --accent-foreground: #35302a; + --primary: #713a56; + --primary-foreground: #ddcfbe; + --secondary: #e6d8c6; + --secondary-foreground: #35302a; + --cta: #713a56; + --cta-foreground: #ddcfbe; + --ctahover: #63334c; + --success: #9e4f5b; + --success-foreground: #ece5db; + --warning: #644535; + --warning-foreground: #ddcfbe; + --destructive: #a02b16; + --destructive-foreground: #ddcfbe; + --info: #76634c; + --info-foreground: #ebe3da; + --busy: #823826; + --busy-foreground: #ddcfbe; + --busy-ink: #823826; + --border: #d6c9b9; + --input: #d1c4b4; + --ring: #713a56; + --radius: 0.625rem; + --chart-primary: #713a56; + --chart-secondary: #78292e; + --status-success: #9e4f5b; + --status-warning: #644535; + --status-in-progress: #76634c; + --page-bg: #f5e6d3; + --page-bg-src: ''; + --panel-bg: rgb(236 222 204 / 0.72); + --panel-border: rgb(214 201 185 / 0.9); + --panel-border-bare: rgb(214 201 185 / 0.55); + --panel-raised-bg: rgb(236 222 204 / 0.95); + --panel-raised-border: rgb(214 201 185 / 1); + --panel-accent: #713a56; + --panel-header-bg: rgb(230 216 198 / 0.6); + --panel-header-fg: #35302a; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #ecdecc; + --glass-bg: rgb(236 222 204 / 0.55); + --glass-border: rgb(214 201 185 / 0.7); + --dock-bg: rgb(236 222 204 / 0.7); + --dock-border: rgb(214 201 185 / 0.8); + --dock-tooltip-bg: #e6d8c6; + --header-bg: rgb(236 222 204 / 0.8); + --header-border: rgb(214 201 185 / 0.9); + --header-fg: #35302a; + --header-blur: 12px; + --pixel-grid-color: rgb(135 126 115 / 0.07); + --card-grid-color: rgb(135 126 115 / 0.05); + --panel-grid-color: rgb(135 126 115 / 0.06); + --scrollbar-thumb: rgb(200 172 134 / 0.6); + --scrollbar-thumb-hover: rgb(200 172 134 / 0.85); + --scrollbar-thin-thumb: rgb(200 172 134 / 0.45); + --scrollbar-thin-thumb-hover: rgb(200 172 134 / 0.7); + --brand: #713a56; + --brand-foreground: #ddcfbe; + --brand-primary: #713a56; + --brand-accent: #713a56; + --brand-warm: #823826; + --brand-deep: #e6d8c6; + --brand-muted: #c8ac86; + --ink: #35302a; + --surface-warm: #ecdecc; + --naturegreen: #9e4f5b; + --naturegreen-foreground: #ece5db; + --duck-dark: #35302a; + --duck-teal: #713a56; + --duck-yellow: #644535; + --duck-orange: #823826; + --duck-forest: #9e4f5b; + --duck-beige: #dacdbc; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/royal.css b/src/workspaces/theme/css/themes/royal.css new file mode 100644 index 00000000..c3fb76db --- /dev/null +++ b/src/workspaces/theme/css/themes/royal.css @@ -0,0 +1,99 @@ +/* + Royal — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/notSagyo/omarchy-royal-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='royal'] { + --background: #0e0e0f; + --foreground: #f2ddc2; + --card: #1a1a1c; + --card-foreground: #f2ddc2; + --popover: #1a1a1c; + --popover-foreground: #f2ddc2; + --muted: #2a2a2c; + --muted-foreground: #b1a390; + --accent: #2a2a2c; + --accent-foreground: #f2ddc2; + --primary: #cbb15b; + --primary-foreground: #0e0e0f; + --secondary: #2a2a2c; + --secondary-foreground: #f2ddc2; + --cta: #cbb15b; + --cta-foreground: #0e0e0f; + --ctahover: #d1ba6f; + --success: #d7be67; + --success-foreground: #0e0e0f; + --warning: #f5c651; + --warning-foreground: #0e0e0f; + --destructive: #f79605; + --destructive-foreground: #0e0e0f; + --info: #cbb15b; + --info-foreground: #0e0e0f; + --busy: #f6ae2b; + --busy-foreground: #0e0e0f; + --busy-ink: #f6ae2b; + --border: #44403c; + --input: #44403c; + --ring: #cbb15b; + --radius: 0.625rem; + --chart-primary: #cbb15b; + --chart-secondary: #e7b211; + --status-success: #d7be67; + --status-warning: #f5c651; + --status-in-progress: #cbb15b; + --page-bg: #0e0e0f; + --page-bg-src: ''; + --panel-bg: rgb(26 26 28 / 0.72); + --panel-border: rgb(68 64 60 / 0.9); + --panel-border-bare: rgb(68 64 60 / 0.55); + --panel-raised-bg: rgb(26 26 28 / 0.95); + --panel-raised-border: rgb(68 64 60 / 1); + --panel-accent: #cbb15b; + --panel-header-bg: rgb(42 42 44 / 0.6); + --panel-header-fg: #f2ddc2; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #1a1a1c; + --glass-bg: rgb(26 26 28 / 0.55); + --glass-border: rgb(68 64 60 / 0.7); + --dock-bg: rgb(26 26 28 / 0.7); + --dock-border: rgb(68 64 60 / 0.8); + --dock-tooltip-bg: #2a2a2c; + --header-bg: rgb(26 26 28 / 0.8); + --header-border: rgb(68 64 60 / 0.9); + --header-fg: #f2ddc2; + --header-blur: 12px; + --pixel-grid-color: rgb(123 114 103 / 0.07); + --card-grid-color: rgb(123 114 103 / 0.05); + --panel-grid-color: rgb(123 114 103 / 0.06); + --scrollbar-thumb: rgb(84 90 88 / 0.6); + --scrollbar-thumb-hover: rgb(84 90 88 / 0.85); + --scrollbar-thin-thumb: rgb(84 90 88 / 0.45); + --scrollbar-thin-thumb-hover: rgb(84 90 88 / 0.7); + --brand: #cbb15b; + --brand-foreground: #0e0e0f; + --brand-primary: #cbb15b; + --brand-accent: #f9e198; + --brand-warm: #f6ae2b; + --brand-deep: #0e0e0f; + --brand-muted: #545a58; + --ink: #f2ddc2; + --surface-warm: #1a1a1c; + --naturegreen: #d7be67; + --naturegreen-foreground: #0e0e0f; + --duck-dark: #f2ddc2; + --duck-teal: #f9e198; + --duck-yellow: #f5c651; + --duck-orange: #f6ae2b; + --duck-forest: #d7be67; + --duck-beige: #302e2d; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/rustleaf.css b/src/workspaces/theme/css/themes/rustleaf.css new file mode 100644 index 00000000..7f4a7543 --- /dev/null +++ b/src/workspaces/theme/css/themes/rustleaf.css @@ -0,0 +1,99 @@ +/* + Rustleaf — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/tahfizhabib/omarchy-rustleaf-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='rustleaf'] { + --background: #131112; + --foreground: #bcb7b0; + --card: #221f20; + --card-foreground: #bcb7b0; + --popover: #221f20; + --popover-foreground: #bcb7b0; + --muted: #312f30; + --muted-foreground: #9c9894; + --accent: #312f30; + --accent-foreground: #bcb7b0; + --primary: #9393c3; + --primary-foreground: #131112; + --secondary: #312f30; + --secondary-foreground: #bcb7b0; + --cta: #9393c3; + --cta-foreground: #131112; + --ctahover: #a0a0ca; + --success: #80b780; + --success-foreground: #131112; + --warning: #bdbd89; + --warning-foreground: #131112; + --destructive: #b27575; + --destructive-foreground: #131112; + --info: #9393c3; + --info-foreground: #131112; + --busy: #b8997f; + --busy-foreground: #131112; + --busy-ink: #b8997f; + --border: #403d3c; + --input: #403d3c; + --ring: #9393c3; + --radius: 0.625rem; + --chart-primary: #9393c3; + --chart-secondary: #ae6fae; + --status-success: #80b780; + --status-warning: #bdbd89; + --status-in-progress: #9393c3; + --page-bg: #131112; + --page-bg-src: ''; + --panel-bg: rgb(34 31 32 / 0.72); + --panel-border: rgb(64 61 60 / 0.9); + --panel-border-bare: rgb(64 61 60 / 0.55); + --panel-raised-bg: rgb(34 31 32 / 0.95); + --panel-raised-border: rgb(64 61 60 / 1); + --panel-accent: #9393c3; + --panel-header-bg: rgb(49 47 48 / 0.6); + --panel-header-fg: #bcb7b0; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #221f20; + --glass-bg: rgb(34 31 32 / 0.55); + --glass-border: rgb(64 61 60 / 0.7); + --dock-bg: rgb(34 31 32 / 0.7); + --dock-border: rgb(64 61 60 / 0.8); + --dock-tooltip-bg: #312f30; + --header-bg: rgb(34 31 32 / 0.8); + --header-border: rgb(64 61 60 / 0.9); + --header-fg: #bcb7b0; + --header-blur: 12px; + --pixel-grid-color: rgb(111 107 105 / 0.07); + --card-grid-color: rgb(111 107 105 / 0.05); + --panel-grid-color: rgb(111 107 105 / 0.06); + --scrollbar-thumb: rgb(95 84 72 / 0.6); + --scrollbar-thumb-hover: rgb(95 84 72 / 0.85); + --scrollbar-thin-thumb: rgb(95 84 72 / 0.45); + --scrollbar-thin-thumb-hover: rgb(95 84 72 / 0.7); + --brand: #9393c3; + --brand-foreground: #131112; + --brand-primary: #9393c3; + --brand-accent: #7cb6b6; + --brand-warm: #b8997f; + --brand-deep: #131112; + --brand-muted: #5f5448; + --ink: #bcb7b0; + --surface-warm: #221f20; + --naturegreen: #80b780; + --naturegreen-foreground: #131112; + --duck-dark: #bcb7b0; + --duck-teal: #7cb6b6; + --duck-yellow: #bdbd89; + --duck-orange: #b8997f; + --duck-forest: #80b780; + --duck-beige: #312e2e; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/snow-black.css b/src/workspaces/theme/css/themes/snow-black.css new file mode 100644 index 00000000..ccb82723 --- /dev/null +++ b/src/workspaces/theme/css/themes/snow-black.css @@ -0,0 +1,99 @@ +/* + Snow Black — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/ankur311sudo/snow_black (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='snow-black'] { + --background: #000000; + --foreground: #fefefe; + --card: #000000; + --card-foreground: #fefefe; + --popover: #000000; + --popover-foreground: #fefefe; + --muted: #121212; + --muted-foreground: #b2b2b2; + --accent: #121212; + --accent-foreground: #fefefe; + --primary: #bdbdbd; + --primary-foreground: #000000; + --secondary: #121212; + --secondary-foreground: #fefefe; + --cta: #bdbdbd; + --cta-foreground: #000000; + --ctahover: #c5c5c5; + --success: #bdbdbd; + --success-foreground: #000000; + --warning: #cfcfcf; + --warning-foreground: #000000; + --destructive: #fefefe; + --destructive-foreground: #000000; + --info: #bdbdbd; + --info-foreground: #000000; + --busy: #e7e7e7; + --busy-foreground: #000000; + --busy-ink: #e7e7e7; + --border: #323232; + --input: #323232; + --ring: #bdbdbd; + --radius: 0.625rem; + --chart-primary: #bdbdbd; + --chart-secondary: #bdbdbd; + --status-success: #bdbdbd; + --status-warning: #cfcfcf; + --status-in-progress: #bdbdbd; + --page-bg: #000000; + --page-bg-src: ''; + --panel-bg: rgb(0 0 0 / 0.72); + --panel-border: rgb(50 50 50 / 0.9); + --panel-border-bare: rgb(50 50 50 / 0.55); + --panel-raised-bg: rgb(0 0 0 / 0.95); + --panel-raised-border: rgb(50 50 50 / 1); + --panel-accent: #bdbdbd; + --panel-header-bg: rgb(18 18 18 / 0.6); + --panel-header-fg: #fefefe; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #000000; + --glass-bg: rgb(0 0 0 / 0.55); + --glass-border: rgb(50 50 50 / 0.7); + --dock-bg: rgb(0 0 0 / 0.7); + --dock-border: rgb(50 50 50 / 0.8); + --dock-tooltip-bg: #121212; + --header-bg: rgb(0 0 0 / 0.8); + --header-border: rgb(50 50 50 / 0.9); + --header-fg: #fefefe; + --header-blur: 12px; + --pixel-grid-color: rgb(114 114 114 / 0.07); + --card-grid-color: rgb(114 114 114 / 0.05); + --panel-grid-color: rgb(114 114 114 / 0.06); + --scrollbar-thumb: rgb(26 26 26 / 0.6); + --scrollbar-thumb-hover: rgb(26 26 26 / 0.85); + --scrollbar-thin-thumb: rgb(26 26 26 / 0.45); + --scrollbar-thin-thumb-hover: rgb(26 26 26 / 0.7); + --brand: #bdbdbd; + --brand-foreground: #000000; + --brand-primary: #bdbdbd; + --brand-accent: #bdbdbd; + --brand-warm: #e7e7e7; + --brand-deep: #000000; + --brand-muted: #1a1a1a; + --ink: #fefefe; + --surface-warm: #000000; + --naturegreen: #bdbdbd; + --naturegreen-foreground: #000000; + --duck-dark: #fefefe; + --duck-teal: #bdbdbd; + --duck-yellow: #cfcfcf; + --duck-orange: #e7e7e7; + --duck-forest: #bdbdbd; + --duck-beige: #191919; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/space-bound.css b/src/workspaces/theme/css/themes/space-bound.css new file mode 100644 index 00000000..d6aa3b84 --- /dev/null +++ b/src/workspaces/theme/css/themes/space-bound.css @@ -0,0 +1,99 @@ +/* + Space Bound — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/Deoxizn/omarchy-space-bound-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='space-bound'] { + --background: #111119; + --foreground: #ffffff; + --card: #1e1e2e; + --card-foreground: #ffffff; + --popover: #1e1e2e; + --popover-foreground: #ffffff; + --muted: #2e2e3d; + --muted-foreground: #bcbcc0; + --accent: #2e2e3d; + --accent-foreground: #ffffff; + --primary: #89b4fa; + --primary-foreground: #111119; + --secondary: #2e2e3d; + --secondary-foreground: #ffffff; + --cta: #89b4fa; + --cta-foreground: #111119; + --ctahover: #97bdfb; + --success: #a6e3a1; + --success-foreground: #111119; + --warning: #f9e2af; + --warning-foreground: #111119; + --destructive: #f38ba8; + --destructive-foreground: #111119; + --info: #89b4fa; + --info-foreground: #111119; + --busy: #f6b7ac; + --busy-foreground: #111119; + --busy-ink: #f6b7ac; + --border: #4a4a57; + --input: #4a4a57; + --ring: #89b4fa; + --radius: 0.625rem; + --chart-primary: #89b4fa; + --chart-secondary: #cba6f7; + --status-success: #a6e3a1; + --status-warning: #f9e2af; + --status-in-progress: #89b4fa; + --page-bg: #111119; + --page-bg-src: ''; + --panel-bg: rgb(30 30 46 / 0.72); + --panel-border: rgb(74 74 87 / 0.9); + --panel-border-bare: rgb(74 74 87 / 0.55); + --panel-raised-bg: rgb(30 30 46 / 0.95); + --panel-raised-border: rgb(74 74 87 / 1); + --panel-accent: #89b4fa; + --panel-header-bg: rgb(46 46 61 / 0.6); + --panel-header-fg: #ffffff; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #1e1e2e; + --glass-bg: rgb(30 30 46 / 0.55); + --glass-border: rgb(74 74 87 / 0.7); + --dock-bg: rgb(30 30 46 / 0.7); + --dock-border: rgb(74 74 87 / 0.8); + --dock-tooltip-bg: #2e2e3d; + --header-bg: rgb(30 30 46 / 0.8); + --header-border: rgb(74 74 87 / 0.9); + --header-fg: #ffffff; + --header-blur: 12px; + --pixel-grid-color: rgb(131 131 140 / 0.07); + --card-grid-color: rgb(131 131 140 / 0.05); + --panel-grid-color: rgb(131 131 140 / 0.06); + --scrollbar-thumb: rgb(69 71 90 / 0.6); + --scrollbar-thumb-hover: rgb(69 71 90 / 0.85); + --scrollbar-thin-thumb: rgb(69 71 90 / 0.45); + --scrollbar-thin-thumb-hover: rgb(69 71 90 / 0.7); + --brand: #89b4fa; + --brand-foreground: #111119; + --brand-primary: #89b4fa; + --brand-accent: #94e2d5; + --brand-warm: #f6b7ac; + --brand-deep: #111119; + --brand-muted: #45475a; + --ink: #ffffff; + --surface-warm: #1e1e2e; + --naturegreen: #a6e3a1; + --naturegreen-foreground: #111119; + --duck-dark: #ffffff; + --duck-teal: #94e2d5; + --duck-yellow: #f9e2af; + --duck-orange: #f6b7ac; + --duck-forest: #a6e3a1; + --duck-beige: #353543; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/space-monkey.css b/src/workspaces/theme/css/themes/space-monkey.css new file mode 100644 index 00000000..62ab502c --- /dev/null +++ b/src/workspaces/theme/css/themes/space-monkey.css @@ -0,0 +1,99 @@ +/* + Space Monkey — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/TyRichards/omarchy-space-monkey-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='space-monkey'] { + --background: #0f0800; + --foreground: #e7aa5a; + --card: #1c0e00; + --card-foreground: #e7aa5a; + --popover: #1c0e00; + --popover-foreground: #e7aa5a; + --muted: #2c1f12; + --muted-foreground: #ae8249; + --accent: #2c1f12; + --accent-foreground: #e7aa5a; + --primary: #66a891; + --primary-foreground: #0f0800; + --secondary: #2c1f12; + --secondary-foreground: #e7aa5a; + --cta: #66a891; + --cta-foreground: #0f0800; + --ctahover: #78b29e; + --success: #df782d; + --success-foreground: #0f0800; + --warning: #f9cc6c; + --warning-foreground: #0f0800; + --destructive: #fd6883; + --destructive-foreground: #0f0800; + --info: #66a891; + --info-foreground: #0f0800; + --busy: #fb9a78; + --busy-foreground: #0f0800; + --busy-ink: #fb9a78; + --border: #442d12; + --input: #442d12; + --ring: #66a891; + --radius: 0.625rem; + --chart-primary: #66a891; + --chart-secondary: #a8a9eb; + --status-success: #df782d; + --status-warning: #f9cc6c; + --status-in-progress: #66a891; + --page-bg: #0f0800; + --page-bg-src: ''; + --panel-bg: rgb(28 14 0 / 0.72); + --panel-border: rgb(68 45 18 / 0.9); + --panel-border-bare: rgb(68 45 18 / 0.55); + --panel-raised-bg: rgb(28 14 0 / 0.95); + --panel-raised-border: rgb(68 45 18 / 1); + --panel-accent: #66a891; + --panel-header-bg: rgb(44 31 18 / 0.6); + --panel-header-fg: #e7aa5a; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #1c0e00; + --glass-bg: rgb(28 14 0 / 0.55); + --glass-border: rgb(68 45 18 / 0.7); + --dock-bg: rgb(28 14 0 / 0.7); + --dock-border: rgb(68 45 18 / 0.8); + --dock-tooltip-bg: #2c1f12; + --header-bg: rgb(28 14 0 / 0.8); + --header-border: rgb(68 45 18 / 0.9); + --header-fg: #e7aa5a; + --header-blur: 12px; + --pixel-grid-color: rgb(126 93 51 / 0.07); + --card-grid-color: rgb(126 93 51 / 0.05); + --panel-grid-color: rgb(126 93 51 / 0.06); + --scrollbar-thumb: rgb(148 138 139 / 0.6); + --scrollbar-thumb-hover: rgb(148 138 139 / 0.85); + --scrollbar-thin-thumb: rgb(148 138 139 / 0.45); + --scrollbar-thin-thumb-hover: rgb(148 138 139 / 0.7); + --brand: #66a891; + --brand-foreground: #0f0800; + --brand-primary: #66a891; + --brand-accent: #bd4924; + --brand-warm: #fb9a78; + --brand-deep: #0f0800; + --brand-muted: #948a8b; + --ink: #e7aa5a; + --surface-warm: #1c0e00; + --naturegreen: #df782d; + --naturegreen-foreground: #0f0800; + --duck-dark: #e7aa5a; + --duck-teal: #bd4924; + --duck-yellow: #f9cc6c; + --duck-orange: #fb9a78; + --duck-forest: #df782d; + --duck-beige: #301e09; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/spark.css b/src/workspaces/theme/css/themes/spark.css new file mode 100644 index 00000000..205bf38d --- /dev/null +++ b/src/workspaces/theme/css/themes/spark.css @@ -0,0 +1,99 @@ +/* + Spark — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/stefanomainardi/omarchy-sf-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='spark'] { + --background: #020c15; + --foreground: #ffffff; + --card: #031527; + --card-foreground: #ffffff; + --popover: #031527; + --popover-foreground: #ffffff; + --muted: #152536; + --muted-foreground: #b3b9be; + --accent: #152536; + --accent-foreground: #ffffff; + --primary: #027aca; + --primary-foreground: #ffffff; + --secondary: #152536; + --secondary-foreground: #ffffff; + --cta: #027aca; + --cta-foreground: #ffffff; + --ctahover: #208ad0; + --success: #008844; + --success-foreground: #ffffff; + --warning: #f7ad2c; + --warning-foreground: #020c15; + --destructive: #eb0000; + --destructive-foreground: #ffffff; + --info: #027aca; + --info-foreground: #ffffff; + --busy: #f15716; + --busy-foreground: #020c15; + --busy-ink: #f15716; + --border: #344351; + --input: #344351; + --ring: #027aca; + --radius: 0.625rem; + --chart-primary: #027aca; + --chart-secondary: #8d1971; + --status-success: #008844; + --status-warning: #f7ad2c; + --status-in-progress: #027aca; + --page-bg: #020c15; + --page-bg-src: ''; + --panel-bg: rgb(3 21 39 / 0.72); + --panel-border: rgb(52 67 81 / 0.9); + --panel-border-bare: rgb(52 67 81 / 0.55); + --panel-raised-bg: rgb(3 21 39 / 0.95); + --panel-raised-border: rgb(52 67 81 / 1); + --panel-accent: #027aca; + --panel-header-bg: rgb(21 37 54 / 0.6); + --panel-header-fg: #ffffff; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #031527; + --glass-bg: rgb(3 21 39 / 0.55); + --glass-border: rgb(52 67 81 / 0.7); + --dock-bg: rgb(3 21 39 / 0.7); + --dock-border: rgb(52 67 81 / 0.8); + --dock-tooltip-bg: #152536; + --header-bg: rgb(3 21 39 / 0.8); + --header-border: rgb(52 67 81 / 0.9); + --header-fg: #ffffff; + --header-blur: 12px; + --pixel-grid-color: rgb(116 126 136 / 0.07); + --card-grid-color: rgb(116 126 136 / 0.05); + --panel-grid-color: rgb(116 126 136 / 0.06); + --scrollbar-thumb: rgb(12 51 90 / 0.6); + --scrollbar-thumb-hover: rgb(12 51 90 / 0.85); + --scrollbar-thin-thumb: rgb(12 51 90 / 0.45); + --scrollbar-thin-thumb-hover: rgb(12 51 90 / 0.7); + --brand: #027aca; + --brand-foreground: #ffffff; + --brand-primary: #027aca; + --brand-accent: #40c6cf; + --brand-warm: #f15716; + --brand-deep: #020c15; + --brand-muted: #0c335a; + --ink: #ffffff; + --surface-warm: #031527; + --naturegreen: #008844; + --naturegreen-foreground: #ffffff; + --duck-dark: #ffffff; + --duck-teal: #40c6cf; + --duck-yellow: #f7ad2c; + --duck-orange: #f15716; + --duck-forest: #008844; + --duck-beige: #1c2c3d; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/spectra.css b/src/workspaces/theme/css/themes/spectra.css new file mode 100644 index 00000000..131f2e96 --- /dev/null +++ b/src/workspaces/theme/css/themes/spectra.css @@ -0,0 +1,99 @@ +/* + Spectra — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/abhijeet-swami/omarchy-spectra-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='spectra'] { + --background: #0e0f11; + --foreground: #eaeaef; + --card: #1a1b1e; + --card-foreground: #eaeaef; + --popover: #1a1b1e; + --popover-foreground: #eaeaef; + --muted: #2a2b2e; + --muted-foreground: #acacb0; + --accent: #2a2b2e; + --accent-foreground: #eaeaef; + --primary: #7ca5ff; + --primary-foreground: #0e0f11; + --secondary: #2a2b2e; + --secondary-foreground: #eaeaef; + --cta: #7ca5ff; + --cta-foreground: #0e0f11; + --ctahover: #8cb0ff; + --success: #8edb73; + --success-foreground: #0e0f11; + --warning: #f7c553; + --warning-foreground: #0e0f11; + --destructive: #ef5d67; + --destructive-foreground: #0e0f11; + --info: #7ca5ff; + --info-foreground: #0e0f11; + --busy: #f3915d; + --busy-foreground: #0e0f11; + --busy-ink: #f3915d; + --border: #434447; + --input: #434447; + --ring: #7ca5ff; + --radius: 0.625rem; + --chart-primary: #7ca5ff; + --chart-secondary: #e29ef3; + --status-success: #8edb73; + --status-warning: #f7c553; + --status-in-progress: #7ca5ff; + --page-bg: #0e0f11; + --page-bg-src: ''; + --panel-bg: rgb(26 27 30 / 0.72); + --panel-border: rgb(67 68 71 / 0.9); + --panel-border-bare: rgb(67 68 71 / 0.55); + --panel-raised-bg: rgb(26 27 30 / 0.95); + --panel-raised-border: rgb(67 68 71 / 1); + --panel-accent: #7ca5ff; + --panel-header-bg: rgb(42 43 46 / 0.6); + --panel-header-fg: #eaeaef; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #1a1b1e; + --glass-bg: rgb(26 27 30 / 0.55); + --glass-border: rgb(67 68 71 / 0.7); + --dock-bg: rgb(26 27 30 / 0.7); + --dock-border: rgb(67 68 71 / 0.8); + --dock-tooltip-bg: #2a2b2e; + --header-bg: rgb(26 27 30 / 0.8); + --header-border: rgb(67 68 71 / 0.9); + --header-fg: #eaeaef; + --header-blur: 12px; + --pixel-grid-color: rgb(120 120 124 / 0.07); + --card-grid-color: rgb(120 120 124 / 0.05); + --panel-grid-color: rgb(120 120 124 / 0.06); + --scrollbar-thumb: rgb(80 82 88 / 0.6); + --scrollbar-thumb-hover: rgb(80 82 88 / 0.85); + --scrollbar-thin-thumb: rgb(80 82 88 / 0.45); + --scrollbar-thin-thumb-hover: rgb(80 82 88 / 0.7); + --brand: #7ca5ff; + --brand-foreground: #0e0f11; + --brand-primary: #7ca5ff; + --brand-accent: #7dd8d3; + --brand-warm: #f3915d; + --brand-deep: #0e0f11; + --brand-muted: #505258; + --ink: #eaeaef; + --surface-warm: #1a1b1e; + --naturegreen: #8edb73; + --naturegreen-foreground: #0e0f11; + --duck-dark: #eaeaef; + --duck-teal: #7dd8d3; + --duck-yellow: #f7c553; + --duck-orange: #f3915d; + --duck-forest: #8edb73; + --duck-beige: #2f3033; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/stellar.css b/src/workspaces/theme/css/themes/stellar.css new file mode 100644 index 00000000..6bfcad1d --- /dev/null +++ b/src/workspaces/theme/css/themes/stellar.css @@ -0,0 +1,99 @@ +/* + Stellar — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/cicorias/omarchy-stellar-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='stellar'] { + --background: #07090d; + --foreground: #f0f6fc; + --card: #0d1117; + --card-foreground: #f0f6fc; + --popover: #0d1117; + --popover-foreground: #f0f6fc; + --muted: #1e2227; + --muted-foreground: #acb1b7; + --accent: #1e2227; + --accent-foreground: #f0f6fc; + --primary: #58a6ff; + --primary-foreground: #07090d; + --secondary: #1e2227; + --secondary-foreground: #f0f6fc; + --cta: #58a6ff; + --cta-foreground: #07090d; + --ctahover: #6cb1ff; + --success: #3fb950; + --success-foreground: #07090d; + --warning: #d29922; + --warning-foreground: #07090d; + --destructive: #ff7b72; + --destructive-foreground: #07090d; + --info: #58a6ff; + --info-foreground: #07090d; + --busy: #e98a4a; + --busy-foreground: #07090d; + --busy-ink: #e98a4a; + --border: #3a3e44; + --input: #3a3e44; + --ring: #58a6ff; + --radius: 0.625rem; + --chart-primary: #58a6ff; + --chart-secondary: #bc8cff; + --status-success: #3fb950; + --status-warning: #d29922; + --status-in-progress: #58a6ff; + --page-bg: #07090d; + --page-bg-src: ''; + --panel-bg: rgb(13 17 23 / 0.72); + --panel-border: rgb(58 62 68 / 0.9); + --panel-border-bare: rgb(58 62 68 / 0.55); + --panel-raised-bg: rgb(13 17 23 / 0.95); + --panel-raised-border: rgb(58 62 68 / 1); + --panel-accent: #58a6ff; + --panel-header-bg: rgb(30 34 39 / 0.6); + --panel-header-fg: #f0f6fc; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #0d1117; + --glass-bg: rgb(13 17 23 / 0.55); + --glass-border: rgb(58 62 68 / 0.7); + --dock-bg: rgb(13 17 23 / 0.7); + --dock-border: rgb(58 62 68 / 0.8); + --dock-tooltip-bg: #1e2227; + --header-bg: rgb(13 17 23 / 0.8); + --header-border: rgb(58 62 68 / 0.9); + --header-fg: #f0f6fc; + --header-blur: 12px; + --pixel-grid-color: rgb(115 120 126 / 0.07); + --card-grid-color: rgb(115 120 126 / 0.05); + --panel-grid-color: rgb(115 120 126 / 0.06); + --scrollbar-thumb: rgb(72 79 88 / 0.6); + --scrollbar-thumb-hover: rgb(72 79 88 / 0.85); + --scrollbar-thin-thumb: rgb(72 79 88 / 0.45); + --scrollbar-thin-thumb-hover: rgb(72 79 88 / 0.7); + --brand: #58a6ff; + --brand-foreground: #07090d; + --brand-primary: #58a6ff; + --brand-accent: #39c5cf; + --brand-warm: #e98a4a; + --brand-deep: #07090d; + --brand-muted: #484f58; + --ink: #f0f6fc; + --surface-warm: #0d1117; + --naturegreen: #3fb950; + --naturegreen-foreground: #07090d; + --duck-dark: #f0f6fc; + --duck-teal: #39c5cf; + --duck-yellow: #d29922; + --duck-orange: #e98a4a; + --duck-forest: #3fb950; + --duck-beige: #24282e; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/stillmoon.css b/src/workspaces/theme/css/themes/stillmoon.css new file mode 100644 index 00000000..604cade5 --- /dev/null +++ b/src/workspaces/theme/css/themes/stillmoon.css @@ -0,0 +1,99 @@ +/* + Stillmoon — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/atif-1402/omarchy-stillmoon-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='stillmoon'] { + --background: #131617; + --foreground: #dcdbd6; + --card: #232829; + --card-foreground: #dcdbd6; + --popover: #232829; + --popover-foreground: #dcdbd6; + --muted: #323738; + --muted-foreground: #a5a5a2; + --accent: #323738; + --accent-foreground: #dcdbd6; + --primary: #a0997e; + --primary-foreground: #131617; + --secondary: #323738; + --secondary-foreground: #dcdbd6; + --cta: #a0997e; + --cta-foreground: #131617; + --ctahover: #aba58d; + --success: #9cab8c; + --success-foreground: #131617; + --warning: #b1ad95; + --warning-foreground: #131617; + --destructive: #a49e84; + --destructive-foreground: #131617; + --info: #a0997e; + --info-foreground: #131617; + --busy: #aba68d; + --busy-foreground: #131617; + --busy-ink: #aba68d; + --border: #474b4b; + --input: #474b4b; + --ring: #a0997e; + --radius: 0.625rem; + --chart-primary: #a0997e; + --chart-secondary: #9f997e; + --status-success: #9cab8c; + --status-warning: #b1ad95; + --status-in-progress: #a0997e; + --page-bg: #131617; + --page-bg-src: ''; + --panel-bg: rgb(35 40 41 / 0.72); + --panel-border: rgb(71 75 75 / 0.9); + --panel-border-bare: rgb(71 75 75 / 0.55); + --panel-raised-bg: rgb(35 40 41 / 0.95); + --panel-raised-border: rgb(71 75 75 / 1); + --panel-accent: #a0997e; + --panel-header-bg: rgb(50 55 56 / 0.6); + --panel-header-fg: #dcdbd6; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #232829; + --glass-bg: rgb(35 40 41 / 0.55); + --glass-border: rgb(71 75 75 / 0.7); + --dock-bg: rgb(35 40 41 / 0.7); + --dock-border: rgb(71 75 75 / 0.8); + --dock-tooltip-bg: #323738; + --header-bg: rgb(35 40 41 / 0.8); + --header-border: rgb(71 75 75 / 0.9); + --header-fg: #dcdbd6; + --header-blur: 12px; + --pixel-grid-color: rgb(118 121 119 / 0.07); + --card-grid-color: rgb(118 121 119 / 0.05); + --panel-grid-color: rgb(118 121 119 / 0.06); + --scrollbar-thumb: rgb(120 133 135 / 0.6); + --scrollbar-thumb-hover: rgb(120 133 135 / 0.85); + --scrollbar-thin-thumb: rgb(120 133 135 / 0.45); + --scrollbar-thin-thumb-hover: rgb(120 133 135 / 0.7); + --brand: #a0997e; + --brand-foreground: #131617; + --brand-primary: #a0997e; + --brand-accent: #c1c5b0; + --brand-warm: #aba68d; + --brand-deep: #131617; + --brand-muted: #788587; + --ink: #dcdbd6; + --surface-warm: #232829; + --naturegreen: #9cab8c; + --naturegreen-foreground: #131617; + --duck-dark: #dcdbd6; + --duck-teal: #c1c5b0; + --duck-yellow: #b1ad95; + --duck-orange: #aba68d; + --duck-forest: #9cab8c; + --duck-beige: #363a3a; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/sunset.css b/src/workspaces/theme/css/themes/sunset.css new file mode 100644 index 00000000..a8258186 --- /dev/null +++ b/src/workspaces/theme/css/themes/sunset.css @@ -0,0 +1,99 @@ +/* + Sunset — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/rondilley/omarchy-sunset-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='sunset'] { + --background: #040303; + --foreground: #ffffff; + --card: #070605; + --card-foreground: #ffffff; + --popover: #070605; + --popover-foreground: #ffffff; + --muted: #181717; + --muted-foreground: #b5b4b4; + --accent: #181717; + --accent-foreground: #ffffff; + --primary: #d0b59b; + --primary-foreground: #040303; + --secondary: #181717; + --secondary-foreground: #ffffff; + --cta: #d0b59b; + --cta-foreground: #040303; + --ctahover: #d6bea7; + --success: #f7ce6e; + --success-foreground: #040303; + --warning: #b2a295; + --warning-foreground: #040303; + --destructive: #dda660; + --destructive-foreground: #040303; + --info: #d0b59b; + --info-foreground: #040303; + --busy: #c8a47b; + --busy-foreground: #040303; + --busy-ink: #c8a47b; + --border: #383736; + --input: #383736; + --ring: #d0b59b; + --radius: 0.625rem; + --chart-primary: #d0b59b; + --chart-secondary: #ebd2a4; + --status-success: #f7ce6e; + --status-warning: #b2a295; + --status-in-progress: #d0b59b; + --page-bg: #040303; + --page-bg-src: ''; + --panel-bg: rgb(7 6 5 / 0.72); + --panel-border: rgb(56 55 54 / 0.9); + --panel-border-bare: rgb(56 55 54 / 0.55); + --panel-raised-bg: rgb(7 6 5 / 0.95); + --panel-raised-border: rgb(56 55 54 / 1); + --panel-accent: #d0b59b; + --panel-header-bg: rgb(24 23 23 / 0.6); + --panel-header-fg: #ffffff; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #070605; + --glass-bg: rgb(7 6 5 / 0.55); + --glass-border: rgb(56 55 54 / 0.7); + --dock-bg: rgb(7 6 5 / 0.7); + --dock-border: rgb(56 55 54 / 0.8); + --dock-tooltip-bg: #181717; + --header-bg: rgb(7 6 5 / 0.8); + --header-border: rgb(56 55 54 / 0.9); + --header-fg: #ffffff; + --header-blur: 12px; + --pixel-grid-color: rgb(119 118 118 / 0.07); + --card-grid-color: rgb(119 118 118 / 0.05); + --panel-grid-color: rgb(119 118 118 / 0.06); + --scrollbar-thumb: rgb(150 149 150 / 0.6); + --scrollbar-thumb-hover: rgb(150 149 150 / 0.85); + --scrollbar-thin-thumb: rgb(150 149 150 / 0.45); + --scrollbar-thin-thumb-hover: rgb(150 149 150 / 0.7); + --brand: #d0b59b; + --brand-foreground: #040303; + --brand-primary: #d0b59b; + --brand-accent: #fce7b0; + --brand-warm: #c8a47b; + --brand-deep: #040303; + --brand-muted: #969596; + --ink: #ffffff; + --surface-warm: #070605; + --naturegreen: #f7ce6e; + --naturegreen-foreground: #040303; + --duck-dark: #ffffff; + --duck-teal: #fce7b0; + --duck-yellow: #b2a295; + --duck-orange: #c8a47b; + --duck-forest: #f7ce6e; + --duck-beige: #201f1e; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/synthetica.css b/src/workspaces/theme/css/themes/synthetica.css new file mode 100644 index 00000000..abd4e835 --- /dev/null +++ b/src/workspaces/theme/css/themes/synthetica.css @@ -0,0 +1,99 @@ +/* + Synthetica — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/stannorbvb-cmd/synthetica (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='synthetica'] { + --background: #000000; + --foreground: #e7dfdf; + --card: #000000; + --card-foreground: #e7dfdf; + --popover: #000000; + --popover-foreground: #e7dfdf; + --muted: #121212; + --muted-foreground: #a29c9c; + --accent: #121212; + --accent-foreground: #e7dfdf; + --primary: #6f6f92; + --primary-foreground: #f9f9f9; + --secondary: #121212; + --secondary-foreground: #e7dfdf; + --cta: #6f6f92; + --cta-foreground: #f9f9f9; + --ctahover: #80809f; + --success: #598672; + --success-foreground: #000000; + --warning: #ea1654; + --warning-foreground: #000000; + --destructive: #ec0042; + --destructive-foreground: #000000; + --info: #6f6f92; + --info-foreground: #f9f9f9; + --busy: #eb0b4b; + --busy-foreground: #000000; + --busy-ink: #eb0b4b; + --border: #2d2c2c; + --input: #2d2c2c; + --ring: #6f6f92; + --radius: 0.625rem; + --chart-primary: #6f6f92; + --chart-secondary: #c7b1c7; + --status-success: #598672; + --status-warning: #ea1654; + --status-in-progress: #6f6f92; + --page-bg: #000000; + --page-bg-src: ''; + --panel-bg: rgb(0 0 0 / 0.72); + --panel-border: rgb(45 44 44 / 0.9); + --panel-border-bare: rgb(45 44 44 / 0.55); + --panel-raised-bg: rgb(0 0 0 / 0.95); + --panel-raised-border: rgb(45 44 44 / 1); + --panel-accent: #6f6f92; + --panel-header-bg: rgb(18 18 18 / 0.6); + --panel-header-fg: #e7dfdf; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #000000; + --glass-bg: rgb(0 0 0 / 0.55); + --glass-border: rgb(45 44 44 / 0.7); + --dock-bg: rgb(0 0 0 / 0.7); + --dock-border: rgb(45 44 44 / 0.8); + --dock-tooltip-bg: #121212; + --header-bg: rgb(0 0 0 / 0.8); + --header-border: rgb(45 44 44 / 0.9); + --header-fg: #e7dfdf; + --header-blur: 12px; + --pixel-grid-color: rgb(104 100 100 / 0.07); + --card-grid-color: rgb(104 100 100 / 0.05); + --panel-grid-color: rgb(104 100 100 / 0.06); + --scrollbar-thumb: rgb(62 62 93 / 0.6); + --scrollbar-thumb-hover: rgb(62 62 93 / 0.85); + --scrollbar-thin-thumb: rgb(62 62 93 / 0.45); + --scrollbar-thin-thumb-hover: rgb(62 62 93 / 0.7); + --brand: #6f6f92; + --brand-foreground: #f9f9f9; + --brand-primary: #6f6f92; + --brand-accent: #8091a2; + --brand-warm: #eb0b4b; + --brand-deep: #000000; + --brand-muted: #3e3e5d; + --ink: #e7dfdf; + --surface-warm: #000000; + --naturegreen: #598672; + --naturegreen-foreground: #000000; + --duck-dark: #e7dfdf; + --duck-teal: #8091a2; + --duck-yellow: #ea1654; + --duck-orange: #eb0b4b; + --duck-forest: #598672; + --duck-beige: #171616; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/synthwave-84.css b/src/workspaces/theme/css/themes/synthwave-84.css new file mode 100644 index 00000000..91b17215 --- /dev/null +++ b/src/workspaces/theme/css/themes/synthwave-84.css @@ -0,0 +1,99 @@ +/* + Synthwave 84 — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/omacom-io/omarchy-synthwave84-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='synthwave-84'] { + --background: #14001e; + --foreground: #ffffff; + --card: #240037; + --card-foreground: #ffffff; + --popover: #240037; + --popover-foreground: #ffffff; + --muted: #331245; + --muted-foreground: #bdb3c3; + --accent: #331245; + --accent-foreground: #ffffff; + --primary: #0080ff; + --primary-foreground: #14001e; + --secondary: #331245; + --secondary-foreground: #ffffff; + --cta: #0080ff; + --cta-foreground: #14001e; + --ctahover: #1f8fff; + --success: #8f00ff; + --success-foreground: #ffffff; + --warning: #f3e70f; + --warning-foreground: #14001e; + --destructive: #ff0040; + --destructive-foreground: #14001e; + --info: #0080ff; + --info-foreground: #14001e; + --busy: #f97428; + --busy-foreground: #14001e; + --busy-ink: #f97428; + --border: #4f325e; + --input: #4f325e; + --ring: #0080ff; + --radius: 0.625rem; + --chart-primary: #0080ff; + --chart-secondary: #ff00ff; + --status-success: #8f00ff; + --status-warning: #f3e70f; + --status-in-progress: #0080ff; + --page-bg: #14001e; + --page-bg-src: ''; + --panel-bg: rgb(36 0 55 / 0.72); + --panel-border: rgb(79 50 94 / 0.9); + --panel-border-bare: rgb(79 50 94 / 0.55); + --panel-raised-bg: rgb(36 0 55 / 0.95); + --panel-raised-border: rgb(79 50 94 / 1); + --panel-accent: #0080ff; + --panel-header-bg: rgb(51 18 69 / 0.6); + --panel-header-fg: #ffffff; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #240037; + --glass-bg: rgb(36 0 55 / 0.55); + --glass-border: rgb(79 50 94 / 0.7); + --dock-bg: rgb(36 0 55 / 0.7); + --dock-border: rgb(79 50 94 / 0.8); + --dock-tooltip-bg: #331245; + --header-bg: rgb(36 0 55 / 0.8); + --header-border: rgb(79 50 94 / 0.9); + --header-fg: #ffffff; + --header-blur: 12px; + --pixel-grid-color: rgb(135 115 145 / 0.07); + --card-grid-color: rgb(135 115 145 / 0.05); + --panel-grid-color: rgb(135 115 145 / 0.06); + --scrollbar-thumb: rgb(97 77 133 / 0.6); + --scrollbar-thumb-hover: rgb(97 77 133 / 0.85); + --scrollbar-thin-thumb: rgb(97 77 133 / 0.45); + --scrollbar-thin-thumb-hover: rgb(97 77 133 / 0.7); + --brand: #0080ff; + --brand-foreground: #14001e; + --brand-primary: #0080ff; + --brand-accent: #03edf9; + --brand-warm: #f97428; + --brand-deep: #14001e; + --brand-muted: #614d85; + --ink: #ffffff; + --surface-warm: #240037; + --naturegreen: #8f00ff; + --naturegreen-foreground: #ffffff; + --duck-dark: #ffffff; + --duck-teal: #03edf9; + --duck-yellow: #f3e70f; + --duck-orange: #f97428; + --duck-forest: #8f00ff; + --duck-beige: #3a1a4b; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/taikami.css b/src/workspaces/theme/css/themes/taikami.css new file mode 100644 index 00000000..39fc97cf --- /dev/null +++ b/src/workspaces/theme/css/themes/taikami.css @@ -0,0 +1,99 @@ +/* + Taikami — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/SamuelCam14/taikami (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='taikami'] { + --background: #101010; + --foreground: #dcdfe4; + --card: #1d1d1d; + --card-foreground: #dcdfe4; + --popover: #1d1d1d; + --popover-foreground: #dcdfe4; + --muted: #2d2d2d; + --muted-foreground: #a3a5a8; + --accent: #2d2d2d; + --accent-foreground: #dcdfe4; + --primary: #8ab8ff; + --primary-foreground: #101010; + --secondary: #2d2d2d; + --secondary-foreground: #dcdfe4; + --cta: #8ab8ff; + --cta-foreground: #101010; + --ctahover: #98c1ff; + --success: #92c88b; + --success-foreground: #101010; + --warning: #ffb58a; + --warning-foreground: #101010; + --destructive: #f28a8a; + --destructive-foreground: #101010; + --info: #8ab8ff; + --info-foreground: #101010; + --busy: #f9a08a; + --busy-foreground: #101010; + --busy-ink: #f9a08a; + --border: #434344; + --input: #434344; + --ring: #8ab8ff; + --radius: 0.625rem; + --chart-primary: #8ab8ff; + --chart-secondary: #ff9be2; + --status-success: #92c88b; + --status-warning: #ffb58a; + --status-in-progress: #8ab8ff; + --page-bg: #101010; + --page-bg-src: ''; + --panel-bg: rgb(29 29 29 / 0.72); + --panel-border: rgb(67 67 68 / 0.9); + --panel-border-bare: rgb(67 67 68 / 0.55); + --panel-raised-bg: rgb(29 29 29 / 0.95); + --panel-raised-border: rgb(67 67 68 / 1); + --panel-accent: #8ab8ff; + --panel-header-bg: rgb(45 45 45 / 0.6); + --panel-header-fg: #dcdfe4; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #1d1d1d; + --glass-bg: rgb(29 29 29 / 0.55); + --glass-border: rgb(67 67 68 / 0.7); + --dock-bg: rgb(29 29 29 / 0.7); + --dock-border: rgb(67 67 68 / 0.8); + --dock-tooltip-bg: #2d2d2d; + --header-bg: rgb(29 29 29 / 0.8); + --header-border: rgb(67 67 68 / 0.9); + --header-fg: #dcdfe4; + --header-blur: 12px; + --pixel-grid-color: rgb(115 116 119 / 0.07); + --card-grid-color: rgb(115 116 119 / 0.05); + --panel-grid-color: rgb(115 116 119 / 0.06); + --scrollbar-thumb: rgb(105 107 109 / 0.6); + --scrollbar-thumb-hover: rgb(105 107 109 / 0.85); + --scrollbar-thin-thumb: rgb(105 107 109 / 0.45); + --scrollbar-thin-thumb-hover: rgb(105 107 109 / 0.7); + --brand: #8ab8ff; + --brand-foreground: #101010; + --brand-primary: #8ab8ff; + --brand-accent: #c89bff; + --brand-warm: #f9a08a; + --brand-deep: #101010; + --brand-muted: #696b6d; + --ink: #dcdfe4; + --surface-warm: #1d1d1d; + --naturegreen: #92c88b; + --naturegreen-foreground: #101010; + --duck-dark: #dcdfe4; + --duck-teal: #c89bff; + --duck-yellow: #ffb58a; + --duck-orange: #f9a08a; + --duck-forest: #92c88b; + --duck-beige: #303031; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/tarot.css b/src/workspaces/theme/css/themes/tarot.css new file mode 100644 index 00000000..39962af8 --- /dev/null +++ b/src/workspaces/theme/css/themes/tarot.css @@ -0,0 +1,99 @@ +/* + Tarot — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/jjdizz1l/base16-tarot (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='tarot'] { + --background: #080510; + --foreground: #dc8f7c; + --card: #0e091d; + --card-foreground: #dc8f7c; + --popover: #0e091d; + --popover-foreground: #dc8f7c; + --muted: #1f1a2d; + --muted-foreground: #aa7a74; + --accent: #1f1a2d; + --accent-foreground: #dc8f7c; + --primary: #6e6080; + --primary-foreground: #e6e6e7; + --secondary: #1f1a2d; + --secondary-foreground: #dc8f7c; + --cta: #6e6080; + --cta-foreground: #e6e6e7; + --ctahover: #7f738f; + --success: #a68e5a; + --success-foreground: #080510; + --warning: #ff6565; + --warning-foreground: #080510; + --destructive: #c53253; + --destructive-foreground: #f3f3f3; + --info: #6e6080; + --info-foreground: #e6e6e7; + --busy: #e24c5c; + --busy-foreground: #080510; + --busy-ink: #e24c5c; + --border: #362330; + --input: #362330; + --ring: #6e6080; + --radius: 0.625rem; + --chart-primary: #6e6080; + --chart-secondary: #a45782; + --status-success: #a68e5a; + --status-warning: #ff6565; + --status-in-progress: #6e6080; + --page-bg: #080510; + --page-bg-src: ''; + --panel-bg: rgb(14 9 29 / 0.72); + --panel-border: rgb(54 35 48 / 0.9); + --panel-border-bare: rgb(54 35 48 / 0.55); + --panel-raised-bg: rgb(14 9 29 / 0.95); + --panel-raised-border: rgb(54 35 48 / 1); + --panel-accent: #6e6080; + --panel-header-bg: rgb(31 26 45 / 0.6); + --panel-header-fg: #dc8f7c; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #0e091d; + --glass-bg: rgb(14 9 29 / 0.55); + --glass-border: rgb(54 35 48 / 0.7); + --dock-bg: rgb(14 9 29 / 0.7); + --dock-border: rgb(54 35 48 / 0.8); + --dock-tooltip-bg: #1f1a2d; + --header-bg: rgb(14 9 29 / 0.8); + --header-border: rgb(54 35 48 / 0.9); + --header-fg: #dc8f7c; + --header-blur: 12px; + --pixel-grid-color: rgb(122 88 90 / 0.07); + --card-grid-color: rgb(122 88 90 / 0.05); + --panel-grid-color: rgb(122 88 90 / 0.06); + --scrollbar-thumb: rgb(75 32 84 / 0.6); + --scrollbar-thumb-hover: rgb(75 32 84 / 0.85); + --scrollbar-thin-thumb: rgb(75 32 84 / 0.45); + --scrollbar-thin-thumb-hover: rgb(75 32 84 / 0.7); + --brand: #6e6080; + --brand-foreground: #e6e6e7; + --brand-primary: #6e6080; + --brand-accent: #8c9785; + --brand-warm: #e24c5c; + --brand-deep: #080510; + --brand-muted: #4b2054; + --ink: #dc8f7c; + --surface-warm: #0e091d; + --naturegreen: #a68e5a; + --naturegreen-foreground: #080510; + --duck-dark: #dc8f7c; + --duck-teal: #8c9785; + --duck-yellow: #ff6565; + --duck-orange: #e24c5c; + --duck-forest: #a68e5a; + --duck-beige: #231627; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/temerald.css b/src/workspaces/theme/css/themes/temerald.css new file mode 100644 index 00000000..8693ae9a --- /dev/null +++ b/src/workspaces/theme/css/themes/temerald.css @@ -0,0 +1,99 @@ +/* + Temerald — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/Ahmad-Mtr/omarchy-temerald-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='temerald'] { + --background: #0a0909; + --foreground: #dcfce7; + --card: #121111; + --card-foreground: #dcfce7; + --popover: #121111; + --popover-foreground: #dcfce7; + --muted: #232222; + --muted-foreground: #9fb6a7; + --accent: #232222; + --accent-foreground: #dcfce7; + --primary: #93c5fd; + --primary-foreground: #0a0909; + --secondary: #232222; + --secondary-foreground: #dcfce7; + --cta: #93c5fd; + --cta-foreground: #0a0909; + --ctahover: #a0ccfd; + --success: #4ade7f; + --success-foreground: #0a0909; + --warning: #d4953b; + --warning-foreground: #0a0909; + --destructive: #d35f5f; + --destructive-foreground: #0a0909; + --info: #93c5fd; + --info-foreground: #0a0909; + --busy: #d47a4d; + --busy-foreground: #0a0909; + --busy-ink: #d47a4d; + --border: #393f3b; + --input: #393f3b; + --ring: #93c5fd; + --radius: 0.625rem; + --chart-primary: #93c5fd; + --chart-secondary: #a78bfa; + --status-success: #4ade7f; + --status-warning: #d4953b; + --status-in-progress: #93c5fd; + --page-bg: #0a0909; + --page-bg-src: ''; + --panel-bg: rgb(18 17 17 / 0.72); + --panel-border: rgb(57 63 59 / 0.9); + --panel-border-bare: rgb(57 63 59 / 0.55); + --panel-raised-bg: rgb(18 17 17 / 0.95); + --panel-raised-border: rgb(57 63 59 / 1); + --panel-accent: #93c5fd; + --panel-header-bg: rgb(35 34 34 / 0.6); + --panel-header-fg: #dcfce7; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #121111; + --glass-bg: rgb(18 17 17 / 0.55); + --glass-border: rgb(57 63 59 / 0.7); + --dock-bg: rgb(18 17 17 / 0.7); + --dock-border: rgb(57 63 59 / 0.8); + --dock-tooltip-bg: #232222; + --header-bg: rgb(18 17 17 / 0.8); + --header-border: rgb(57 63 59 / 0.9); + --header-fg: #dcfce7; + --header-blur: 12px; + --pixel-grid-color: rgb(109 123 113 / 0.07); + --card-grid-color: rgb(109 123 113 / 0.05); + --panel-grid-color: rgb(109 123 113 / 0.06); + --scrollbar-thumb: rgb(107 107 107 / 0.6); + --scrollbar-thumb-hover: rgb(107 107 107 / 0.85); + --scrollbar-thin-thumb: rgb(107 107 107 / 0.45); + --scrollbar-thin-thumb-hover: rgb(107 107 107 / 0.7); + --brand: #93c5fd; + --brand-foreground: #0a0909; + --brand-primary: #93c5fd; + --brand-accent: #86efab; + --brand-warm: #d47a4d; + --brand-deep: #0a0909; + --brand-muted: #6b6b6b; + --ink: #dcfce7; + --surface-warm: #121111; + --naturegreen: #4ade7f; + --naturegreen-foreground: #0a0909; + --duck-dark: #dcfce7; + --duck-teal: #86efab; + --duck-yellow: #d4953b; + --duck-orange: #d47a4d; + --duck-forest: #4ade7f; + --duck-beige: #262926; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/terramour.css b/src/workspaces/theme/css/themes/terramour.css new file mode 100644 index 00000000..864559e2 --- /dev/null +++ b/src/workspaces/theme/css/themes/terramour.css @@ -0,0 +1,99 @@ +/* + Terramour — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/atif-1402/omarchy-terramour-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='terramour'] { + --background: #201a1b; + --foreground: #eadddd; + --card: #3b2f31; + --card-foreground: #eadddd; + --popover: #3b2f31; + --popover-foreground: #eadddd; + --muted: #493e3f; + --muted-foreground: #b6a9a9; + --accent: #493e3f; + --accent-foreground: #eadddd; + --primary: #8fa3d1; + --primary-foreground: #201a1b; + --secondary: #493e3f; + --secondary-foreground: #eadddd; + --cta: #8fa3d1; + --cta-foreground: #201a1b; + --ctahover: #9caed7; + --success: #7fa68f; + --success-foreground: #201a1b; + --warning: #d6c37a; + --warning-foreground: #201a1b; + --destructive: #d07a7a; + --destructive-foreground: #201a1b; + --info: #8fa3d1; + --info-foreground: #201a1b; + --busy: #d39f7a; + --busy-foreground: #201a1b; + --busy-ink: #d39f7a; + --border: #5d5153; + --input: #5d5153; + --ring: #8fa3d1; + --radius: 0.625rem; + --chart-primary: #8fa3d1; + --chart-secondary: #b08fd1; + --status-success: #7fa68f; + --status-warning: #d6c37a; + --status-in-progress: #8fa3d1; + --page-bg: #201a1b; + --page-bg-src: ''; + --panel-bg: rgb(59 47 49 / 0.72); + --panel-border: rgb(93 81 83 / 0.9); + --panel-border-bare: rgb(93 81 83 / 0.55); + --panel-raised-bg: rgb(59 47 49 / 0.95); + --panel-raised-border: rgb(93 81 83 / 1); + --panel-accent: #8fa3d1; + --panel-header-bg: rgb(73 62 63 / 0.6); + --panel-header-fg: #eadddd; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #3b2f31; + --glass-bg: rgb(59 47 49 / 0.55); + --glass-border: rgb(93 81 83 / 0.7); + --dock-bg: rgb(59 47 49 / 0.7); + --dock-border: rgb(93 81 83 / 0.8); + --dock-tooltip-bg: #493e3f; + --header-bg: rgb(59 47 49 / 0.8); + --header-border: rgb(93 81 83 / 0.9); + --header-fg: #eadddd; + --header-blur: 12px; + --pixel-grid-color: rgb(138 125 126 / 0.07); + --card-grid-color: rgb(138 125 126 / 0.05); + --panel-grid-color: rgb(138 125 126 / 0.06); + --scrollbar-thumb: rgb(156 140 141 / 0.6); + --scrollbar-thumb-hover: rgb(156 140 141 / 0.85); + --scrollbar-thin-thumb: rgb(156 140 141 / 0.45); + --scrollbar-thin-thumb-hover: rgb(156 140 141 / 0.7); + --brand: #8fa3d1; + --brand-foreground: #201a1b; + --brand-primary: #8fa3d1; + --brand-accent: #79a6a3; + --brand-warm: #d39f7a; + --brand-deep: #201a1b; + --brand-muted: #9c8c8d; + --ink: #eadddd; + --surface-warm: #3b2f31; + --naturegreen: #7fa68f; + --naturegreen-foreground: #201a1b; + --duck-dark: #eadddd; + --duck-teal: #79a6a3; + --duck-yellow: #d6c37a; + --duck-orange: #d39f7a; + --duck-forest: #7fa68f; + --duck-beige: #4d4042; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/thegreek.css b/src/workspaces/theme/css/themes/thegreek.css new file mode 100644 index 00000000..56f49e26 --- /dev/null +++ b/src/workspaces/theme/css/themes/thegreek.css @@ -0,0 +1,99 @@ +/* + Thegreek — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Light theme (light), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/HANCORE-linux/omarchy-thegreek-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='thegreek'] { + --background: #d0d0c8; + --foreground: #242424; + --card: #c9c9c1; + --card-foreground: #242424; + --popover: #c9c9c1; + --popover-foreground: #242424; + --muted: #c4c4bc; + --muted-foreground: #51514f; + --accent: #c4c4bc; + --accent-foreground: #242424; + --primary: #6b1f2f; + --primary-foreground: #bbbbb4; + --secondary: #c4c4bc; + --secondary-foreground: #242424; + --cta: #6b1f2f; + --cta-foreground: #bbbbb4; + --ctahover: #5e1b29; + --success: #2e3125; + --success-foreground: #bbbbb4; + --warning: #51573b; + --warning-foreground: #c9c9c3; + --destructive: #db0030; + --destructive-foreground: #efefef; + --info: #de6a41; + --info-foreground: #242424; + --busy: #962c36; + --busy-foreground: #c7c7c1; + --busy-ink: #962c36; + --border: #b5b5ae; + --input: #b0b0aa; + --ring: #6b1f2f; + --radius: 0.625rem; + --chart-primary: #6b1f2f; + --chart-secondary: #43432b; + --status-success: #2e3125; + --status-warning: #51573b; + --status-in-progress: #de6a41; + --page-bg: #d0d0c8; + --page-bg-src: ''; + --panel-bg: rgb(201 201 193 / 0.72); + --panel-border: rgb(181 181 174 / 0.9); + --panel-border-bare: rgb(181 181 174 / 0.55); + --panel-raised-bg: rgb(201 201 193 / 0.95); + --panel-raised-border: rgb(181 181 174 / 1); + --panel-accent: #6b1f2f; + --panel-header-bg: rgb(196 196 188 / 0.6); + --panel-header-fg: #242424; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #c9c9c1; + --glass-bg: rgb(201 201 193 / 0.55); + --glass-border: rgb(181 181 174 / 0.7); + --dock-bg: rgb(201 201 193 / 0.7); + --dock-border: rgb(181 181 174 / 0.8); + --dock-tooltip-bg: #c4c4bc; + --header-bg: rgb(201 201 193 / 0.8); + --header-border: rgb(181 181 174 / 0.9); + --header-fg: #242424; + --header-blur: 12px; + --pixel-grid-color: rgb(111 111 107 / 0.07); + --card-grid-color: rgb(111 111 107 / 0.05); + --panel-grid-color: rgb(111 111 107 / 0.06); + --scrollbar-thumb: rgb(107 115 96 / 0.6); + --scrollbar-thumb-hover: rgb(107 115 96 / 0.85); + --scrollbar-thin-thumb: rgb(107 115 96 / 0.45); + --scrollbar-thin-thumb-hover: rgb(107 115 96 / 0.7); + --brand: #6b1f2f; + --brand-foreground: #bbbbb4; + --brand-primary: #6b1f2f; + --brand-accent: #6b1f2f; + --brand-warm: #962c36; + --brand-deep: #c4c4bc; + --brand-muted: #6b7360; + --ink: #242424; + --surface-warm: #c9c9c1; + --naturegreen: #2e3125; + --naturegreen-foreground: #bbbbb4; + --duck-dark: #242424; + --duck-teal: #6b1f2f; + --duck-yellow: #51573b; + --duck-orange: #962c36; + --duck-forest: #2e3125; + --duck-beige: #b9b9b1; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/turbonite.css b/src/workspaces/theme/css/themes/turbonite.css new file mode 100644 index 00000000..20d9f463 --- /dev/null +++ b/src/workspaces/theme/css/themes/turbonite.css @@ -0,0 +1,99 @@ +/* + Turbonite — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/HANCORE-linux/omarchy-turbonite-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='turbonite'] { + --background: #060707; + --foreground: #eae9e3; + --card: #0b0c0c; + --card-foreground: #eae9e3; + --popover: #0b0c0c; + --popover-foreground: #eae9e3; + --muted: #1c1d1d; + --muted-foreground: #a7a7a3; + --accent: #1c1d1d; + --accent-foreground: #eae9e3; + --primary: #847b4e; + --primary-foreground: #060707; + --secondary: #1c1d1d; + --secondary-foreground: #eae9e3; + --cta: #847b4e; + --cta-foreground: #060707; + --ctahover: #938b63; + --success: #6e6a64; + --success-foreground: #ecebe6; + --warning: #ed9a1d; + --warning-foreground: #060707; + --destructive: #f24331; + --destructive-foreground: #060707; + --info: #847b4e; + --info-foreground: #060707; + --busy: #f06f27; + --busy-foreground: #060707; + --busy-ink: #f06f27; + --border: #373736; + --input: #373736; + --ring: #847b4e; + --radius: 0.625rem; + --chart-primary: #847b4e; + --chart-secondary: #a7a483; + --status-success: #6e6a64; + --status-warning: #ed9a1d; + --status-in-progress: #847b4e; + --page-bg: #060707; + --page-bg-src: ''; + --panel-bg: rgb(11 12 12 / 0.72); + --panel-border: rgb(55 55 54 / 0.9); + --panel-border-bare: rgb(55 55 54 / 0.55); + --panel-raised-bg: rgb(11 12 12 / 0.95); + --panel-raised-border: rgb(55 55 54 / 1); + --panel-accent: #847b4e; + --panel-header-bg: rgb(28 29 29 / 0.6); + --panel-header-fg: #eae9e3; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #0b0c0c; + --glass-bg: rgb(11 12 12 / 0.55); + --glass-border: rgb(55 55 54 / 0.7); + --dock-bg: rgb(11 12 12 / 0.7); + --dock-border: rgb(55 55 54 / 0.8); + --dock-tooltip-bg: #1c1d1d; + --header-bg: rgb(11 12 12 / 0.8); + --header-border: rgb(55 55 54 / 0.9); + --header-fg: #eae9e3; + --header-blur: 12px; + --pixel-grid-color: rgb(111 111 109 / 0.07); + --card-grid-color: rgb(111 111 109 / 0.05); + --panel-grid-color: rgb(111 111 109 / 0.06); + --scrollbar-thumb: rgb(49 54 58 / 0.6); + --scrollbar-thumb-hover: rgb(49 54 58 / 0.85); + --scrollbar-thin-thumb: rgb(49 54 58 / 0.45); + --scrollbar-thin-thumb-hover: rgb(49 54 58 / 0.7); + --brand: #847b4e; + --brand-foreground: #060707; + --brand-primary: #847b4e; + --brand-accent: #ebd698; + --brand-warm: #f06f27; + --brand-deep: #060707; + --brand-muted: #31363a; + --ink: #eae9e3; + --surface-warm: #0b0c0c; + --naturegreen: #6e6a64; + --naturegreen-foreground: #ecebe6; + --duck-dark: #eae9e3; + --duck-teal: #ebd698; + --duck-yellow: #ed9a1d; + --duck-orange: #f06f27; + --duck-forest: #6e6a64; + --duck-beige: #212222; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/tycho.css b/src/workspaces/theme/css/themes/tycho.css new file mode 100644 index 00000000..24d66621 --- /dev/null +++ b/src/workspaces/theme/css/themes/tycho.css @@ -0,0 +1,99 @@ +/* + Tycho — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/leonardobetti/omarchy-tycho (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='tycho'] { + --background: #111214; + --foreground: #f0e9ec; + --card: #1e2125; + --card-foreground: #f0e9ec; + --popover: #1e2125; + --popover-foreground: #f0e9ec; + --muted: #2e3134; + --muted-foreground: #b1adb0; + --accent: #2e3134; + --accent-foreground: #f0e9ec; + --primary: #9b826b; + --primary-foreground: #111214; + --secondary: #2e3134; + --secondary-foreground: #f0e9ec; + --cta: #9b826b; + --cta-foreground: #111214; + --ctahover: #a7917d; + --success: #b4756b; + --success-foreground: #111214; + --warning: #c17a6a; + --warning-foreground: #111214; + --destructive: #976870; + --destructive-foreground: #ffffff; + --info: #9b826b; + --info-foreground: #111214; + --busy: #ac716d; + --busy-foreground: #111214; + --busy-ink: #ac716d; + --border: #47484c; + --input: #47484c; + --ring: #9b826b; + --radius: 0.625rem; + --chart-primary: #9b826b; + --chart-secondary: #b48162; + --status-success: #b4756b; + --status-warning: #c17a6a; + --status-in-progress: #9b826b; + --page-bg: #111214; + --page-bg-src: ''; + --panel-bg: rgb(30 33 37 / 0.72); + --panel-border: rgb(71 72 76 / 0.9); + --panel-border-bare: rgb(71 72 76 / 0.55); + --panel-raised-bg: rgb(30 33 37 / 0.95); + --panel-raised-border: rgb(71 72 76 / 1); + --panel-accent: #9b826b; + --panel-header-bg: rgb(46 49 52 / 0.6); + --panel-header-fg: #f0e9ec; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #1e2125; + --glass-bg: rgb(30 33 37 / 0.55); + --glass-border: rgb(71 72 76 / 0.7); + --dock-bg: rgb(30 33 37 / 0.7); + --dock-border: rgb(71 72 76 / 0.8); + --dock-tooltip-bg: #2e3134; + --header-bg: rgb(30 33 37 / 0.8); + --header-border: rgb(71 72 76 / 0.9); + --header-fg: #f0e9ec; + --header-blur: 12px; + --pixel-grid-color: rgb(124 123 127 / 0.07); + --card-grid-color: rgb(124 123 127 / 0.05); + --panel-grid-color: rgb(124 123 127 / 0.06); + --scrollbar-thumb: rgb(137 121 129 / 0.6); + --scrollbar-thumb-hover: rgb(137 121 129 / 0.85); + --scrollbar-thin-thumb: rgb(137 121 129 / 0.45); + --scrollbar-thin-thumb-hover: rgb(137 121 129 / 0.7); + --brand: #9b826b; + --brand-foreground: #111214; + --brand-primary: #9b826b; + --brand-accent: #706b82; + --brand-warm: #ac716d; + --brand-deep: #111214; + --brand-muted: #897981; + --ink: #f0e9ec; + --surface-warm: #1e2125; + --naturegreen: #b4756b; + --naturegreen-foreground: #111214; + --duck-dark: #f0e9ec; + --duck-teal: #706b82; + --duck-yellow: #c17a6a; + --duck-orange: #ac716d; + --duck-forest: #b4756b; + --duck-beige: #333539; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/type-17.css b/src/workspaces/theme/css/themes/type-17.css new file mode 100644 index 00000000..04e7752e --- /dev/null +++ b/src/workspaces/theme/css/themes/type-17.css @@ -0,0 +1,99 @@ +/* + Type 17 — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/atif-1402/omarchy-type17-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='type-17'] { + --background: #131617; + --foreground: #d6dbdc; + --card: #232829; + --card-foreground: #d6dbdc; + --popover: #232829; + --popover-foreground: #d6dbdc; + --muted: #323738; + --muted-foreground: #a0a5a6; + --accent: #323738; + --accent-foreground: #d6dbdc; + --primary: #95abb6; + --primary-foreground: #131617; + --secondary: #323738; + --secondary-foreground: #d6dbdc; + --cta: #95abb6; + --cta-foreground: #131617; + --ctahover: #a2b5bf; + --success: #98b3aa; + --success-foreground: #131617; + --warning: #98b3b0; + --warning-foreground: #131617; + --destructive: #94abb8; + --destructive-foreground: #131617; + --info: #95abb6; + --info-foreground: #131617; + --busy: #96afb4; + --busy-foreground: #131617; + --busy-ink: #96afb4; + --border: #464b4c; + --input: #464b4c; + --ring: #95abb6; + --radius: 0.625rem; + --chart-primary: #95abb6; + --chart-secondary: #97aab4; + --status-success: #98b3aa; + --status-warning: #98b3b0; + --status-in-progress: #95abb6; + --page-bg: #131617; + --page-bg-src: ''; + --panel-bg: rgb(35 40 41 / 0.72); + --panel-border: rgb(70 75 76 / 0.9); + --panel-border-bare: rgb(70 75 76 / 0.55); + --panel-raised-bg: rgb(35 40 41 / 0.95); + --panel-raised-border: rgb(70 75 76 / 1); + --panel-accent: #95abb6; + --panel-header-bg: rgb(50 55 56 / 0.6); + --panel-header-fg: #d6dbdc; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #232829; + --glass-bg: rgb(35 40 41 / 0.55); + --glass-border: rgb(70 75 76 / 0.7); + --dock-bg: rgb(35 40 41 / 0.7); + --dock-border: rgb(70 75 76 / 0.8); + --dock-tooltip-bg: #323738; + --header-bg: rgb(35 40 41 / 0.8); + --header-border: rgb(70 75 76 / 0.9); + --header-fg: #d6dbdc; + --header-blur: 12px; + --pixel-grid-color: rgb(116 121 122 / 0.07); + --card-grid-color: rgb(116 121 122 / 0.05); + --panel-grid-color: rgb(116 121 122 / 0.06); + --scrollbar-thumb: rgb(120 132 135 / 0.6); + --scrollbar-thumb-hover: rgb(120 132 135 / 0.85); + --scrollbar-thin-thumb: rgb(120 132 135 / 0.45); + --scrollbar-thin-thumb-hover: rgb(120 132 135 / 0.7); + --brand: #95abb6; + --brand-foreground: #131617; + --brand-primary: #95abb6; + --brand-accent: #b0c0c5; + --brand-warm: #96afb4; + --brand-deep: #131617; + --brand-muted: #788487; + --ink: #d6dbdc; + --surface-warm: #232829; + --naturegreen: #98b3aa; + --naturegreen-foreground: #131617; + --duck-dark: #d6dbdc; + --duck-teal: #b0c0c5; + --duck-yellow: #98b3b0; + --duck-orange: #96afb4; + --duck-forest: #98b3aa; + --duck-beige: #353a3b; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/unicorn-dream.css b/src/workspaces/theme/css/themes/unicorn-dream.css new file mode 100644 index 00000000..14b03c4c --- /dev/null +++ b/src/workspaces/theme/css/themes/unicorn-dream.css @@ -0,0 +1,99 @@ +/* + Unicorn Dream — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Light theme (light), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/Deoxizn/omarchy-unicorn-dream-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='unicorn-dream'] { + --background: #fff0f5; + --foreground: #3d2632; + --card: #f6e8ec; + --card-foreground: #3d2632; + --popover: #f6e8ec; + --popover-foreground: #3d2632; + --muted: #f0e2e6; + --muted-foreground: #74616a; + --accent: #f0e2e6; + --accent-foreground: #3d2632; + --primary: #d16c8b; + --primary-foreground: #321f29; + --secondary: #f0e2e6; + --secondary-foreground: #3d2632; + --cta: #d16c8b; + --cta-foreground: #321f29; + --ctahover: #b85f7a; + --success: #c4a35a; + --success-foreground: #3d2632; + --warning: #c4a574; + --warning-foreground: #3d2632; + --destructive: #e85d75; + --destructive-foreground: #34202b; + --info: #e8789a; + --info-foreground: #3d2632; + --busy: #d68175; + --busy-foreground: #3d2632; + --busy-ink: #9b5e55; + --border: #e0d1d6; + --input: #daccd1; + --ring: #d16c8b; + --radius: 0.625rem; + --chart-primary: #d16c8b; + --chart-secondary: #e88fa8; + --status-success: #c4a35a; + --status-warning: #c4a574; + --status-in-progress: #e8789a; + --page-bg: #fff0f5; + --page-bg-src: ''; + --panel-bg: rgb(246 232 236 / 0.72); + --panel-border: rgb(224 209 214 / 0.9); + --panel-border-bare: rgb(224 209 214 / 0.55); + --panel-raised-bg: rgb(246 232 236 / 0.95); + --panel-raised-border: rgb(224 209 214 / 1); + --panel-accent: #d16c8b; + --panel-header-bg: rgb(240 226 230 / 0.6); + --panel-header-fg: #3d2632; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #f6e8ec; + --glass-bg: rgb(246 232 236 / 0.55); + --glass-border: rgb(224 209 214 / 0.7); + --dock-bg: rgb(246 232 236 / 0.7); + --dock-border: rgb(224 209 214 / 0.8); + --dock-tooltip-bg: #f0e2e6; + --header-bg: rgb(246 232 236 / 0.8); + --header-border: rgb(224 209 214 / 0.9); + --header-fg: #3d2632; + --header-blur: 12px; + --pixel-grid-color: rgb(147 130 137 / 0.07); + --card-grid-color: rgb(147 130 137 / 0.05); + --panel-grid-color: rgb(147 130 137 / 0.06); + --scrollbar-thumb: rgb(166 138 152 / 0.6); + --scrollbar-thumb-hover: rgb(166 138 152 / 0.85); + --scrollbar-thin-thumb: rgb(166 138 152 / 0.45); + --scrollbar-thin-thumb-hover: rgb(166 138 152 / 0.7); + --brand: #d16c8b; + --brand-foreground: #321f29; + --brand-primary: #d16c8b; + --brand-accent: #c9b8a8; + --brand-warm: #d68175; + --brand-deep: #f0e2e6; + --brand-muted: #a68a98; + --ink: #3d2632; + --surface-warm: #f6e8ec; + --naturegreen: #c4a35a; + --naturegreen-foreground: #3d2632; + --duck-dark: #3d2632; + --duck-teal: #c9b8a8; + --duck-yellow: #c4a574; + --duck-orange: #d68175; + --duck-forest: #c4a35a; + --duck-beige: #e4d5d9; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/van-gogh.css b/src/workspaces/theme/css/themes/van-gogh.css new file mode 100644 index 00000000..6364315b --- /dev/null +++ b/src/workspaces/theme/css/themes/van-gogh.css @@ -0,0 +1,99 @@ +/* + Van Gogh — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/Nirmal314/omarchy-van-gogh-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='van-gogh'] { + --background: #060e1a; + --foreground: #f2e2a4; + --card: #0a192f; + --card-foreground: #f2e2a4; + --popover: #0a192f; + --popover-foreground: #f2e2a4; + --muted: #1b293e; + --muted-foreground: #aca681; + --accent: #1b293e; + --accent-foreground: #f2e2a4; + --primary: #4a78a8; + --primary-foreground: #ffffff; + --secondary: #1b293e; + --secondary-foreground: #f2e2a4; + --cta: #4a78a8; + --cta-foreground: #ffffff; + --ctahover: #6088b2; + --success: #7fb3d5; + --success-foreground: #060e1a; + --warning: #f2e2a4; + --warning-foreground: #060e1a; + --destructive: #d9822b; + --destructive-foreground: #060e1a; + --info: #4a78a8; + --info-foreground: #ffffff; + --busy: #e6b268; + --busy-foreground: #060e1a; + --busy-ink: #e6b268; + --border: #374046; + --input: #374046; + --ring: #4a78a8; + --radius: 0.625rem; + --chart-primary: #4a78a8; + --chart-secondary: #d9822b; + --status-success: #7fb3d5; + --status-warning: #f2e2a4; + --status-in-progress: #4a78a8; + --page-bg: #060e1a; + --page-bg-src: ''; + --panel-bg: rgb(10 25 47 / 0.72); + --panel-border: rgb(55 64 70 / 0.9); + --panel-border-bare: rgb(55 64 70 / 0.55); + --panel-raised-bg: rgb(10 25 47 / 0.95); + --panel-raised-border: rgb(55 64 70 / 1); + --panel-accent: #4a78a8; + --panel-header-bg: rgb(27 41 62 / 0.6); + --panel-header-fg: #f2e2a4; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #0a192f; + --glass-bg: rgb(10 25 47 / 0.55); + --glass-border: rgb(55 64 70 / 0.7); + --dock-bg: rgb(10 25 47 / 0.7); + --dock-border: rgb(55 64 70 / 0.8); + --dock-tooltip-bg: #1b293e; + --header-bg: rgb(10 25 47 / 0.8); + --header-border: rgb(55 64 70 / 0.9); + --header-fg: #f2e2a4; + --header-blur: 12px; + --pixel-grid-color: rgb(114 115 100 / 0.07); + --card-grid-color: rgb(114 115 100 / 0.05); + --panel-grid-color: rgb(114 115 100 / 0.06); + --scrollbar-thumb: rgb(44 70 104 / 0.6); + --scrollbar-thumb-hover: rgb(44 70 104 / 0.85); + --scrollbar-thin-thumb: rgb(44 70 104 / 0.45); + --scrollbar-thin-thumb-hover: rgb(44 70 104 / 0.7); + --brand: #4a78a8; + --brand-foreground: #ffffff; + --brand-primary: #4a78a8; + --brand-accent: #9fd3c7; + --brand-warm: #e6b268; + --brand-deep: #060e1a; + --brand-muted: #2c4668; + --ink: #f2e2a4; + --surface-warm: #0a192f; + --naturegreen: #7fb3d5; + --naturegreen-foreground: #060e1a; + --duck-dark: #f2e2a4; + --duck-teal: #9fd3c7; + --duck-yellow: #f2e2a4; + --duck-orange: #e6b268; + --duck-forest: #7fb3d5; + --duck-beige: #212d3b; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/velocity.css b/src/workspaces/theme/css/themes/velocity.css new file mode 100644 index 00000000..9b71223c --- /dev/null +++ b/src/workspaces/theme/css/themes/velocity.css @@ -0,0 +1,99 @@ +/* + Velocity — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/perfektnacht/omarchy-velocity-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='velocity'] { + --background: #060606; + --foreground: #f8f8f2; + --card: #0a0a0a; + --card-foreground: #f8f8f2; + --popover: #0a0a0a; + --popover-foreground: #f8f8f2; + --muted: #1b1b1b; + --muted-foreground: #b1b1ac; + --accent: #1b1b1b; + --accent-foreground: #f8f8f2; + --primary: #4a9ef1; + --primary-foreground: #060606; + --secondary: #1b1b1b; + --secondary-foreground: #f8f8f2; + --cta: #4a9ef1; + --cta-foreground: #060606; + --ctahover: #60aaf3; + --success: #4adf86; + --success-foreground: #060606; + --warning: #ff8c42; + --warning-foreground: #060606; + --destructive: #ff4757; + --destructive-foreground: #060606; + --info: #4a9ef1; + --info-foreground: #060606; + --busy: #ff6a4d; + --busy-foreground: #060606; + --busy-ink: #ff6a4d; + --border: #393937; + --input: #393937; + --ring: #4a9ef1; + --radius: 0.625rem; + --chart-primary: #4a9ef1; + --chart-secondary: #bd93f9; + --status-success: #4adf86; + --status-warning: #ff8c42; + --status-in-progress: #4a9ef1; + --page-bg: #060606; + --page-bg-src: ''; + --panel-bg: rgb(10 10 10 / 0.72); + --panel-border: rgb(57 57 55 / 0.9); + --panel-border-bare: rgb(57 57 55 / 0.55); + --panel-raised-bg: rgb(10 10 10 / 0.95); + --panel-raised-border: rgb(57 57 55 / 1); + --panel-accent: #4a9ef1; + --panel-header-bg: rgb(27 27 27 / 0.6); + --panel-header-fg: #f8f8f2; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #0a0a0a; + --glass-bg: rgb(10 10 10 / 0.55); + --glass-border: rgb(57 57 55 / 0.7); + --dock-bg: rgb(10 10 10 / 0.7); + --dock-border: rgb(57 57 55 / 0.8); + --dock-tooltip-bg: #1b1b1b; + --header-bg: rgb(10 10 10 / 0.8); + --header-border: rgb(57 57 55 / 0.9); + --header-fg: #f8f8f2; + --header-blur: 12px; + --pixel-grid-color: rgb(117 117 114 / 0.07); + --card-grid-color: rgb(117 117 114 / 0.05); + --panel-grid-color: rgb(117 117 114 / 0.06); + --scrollbar-thumb: rgb(136 136 136 / 0.6); + --scrollbar-thumb-hover: rgb(136 136 136 / 0.85); + --scrollbar-thin-thumb: rgb(136 136 136 / 0.45); + --scrollbar-thin-thumb-hover: rgb(136 136 136 / 0.7); + --brand: #4a9ef1; + --brand-foreground: #060606; + --brand-primary: #4a9ef1; + --brand-accent: #4a9ef1; + --brand-warm: #ff6a4d; + --brand-deep: #060606; + --brand-muted: #888888; + --ink: #f8f8f2; + --surface-warm: #0a0a0a; + --naturegreen: #4adf86; + --naturegreen-foreground: #060606; + --duck-dark: #f8f8f2; + --duck-teal: #4a9ef1; + --duck-yellow: #ff8c42; + --duck-orange: #ff6a4d; + --duck-forest: #4adf86; + --duck-beige: #222221; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/velvet-night.css b/src/workspaces/theme/css/themes/velvet-night.css new file mode 100644 index 00000000..cc972fbf --- /dev/null +++ b/src/workspaces/theme/css/themes/velvet-night.css @@ -0,0 +1,99 @@ +/* + Velvet Night — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/HANCORE-linux/omarchy-velvetnight-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='velvet-night'] { + --background: #060911; + --foreground: #ffffff; + --card: #0a101f; + --card-foreground: #ffffff; + --popover: #0a101f; + --popover-foreground: #ffffff; + --muted: #1b212f; + --muted-foreground: #b6b7bc; + --accent: #1b212f; + --accent-foreground: #ffffff; + --primary: #9099a5; + --primary-foreground: #060911; + --secondary: #1b212f; + --secondary-foreground: #ffffff; + --cta: #9099a5; + --cta-foreground: #060911; + --ctahover: #9da5b0; + --success: #5c637a; + --success-foreground: #ffffff; + --warning: #e5af1b; + --warning-foreground: #060911; + --destructive: #811139; + --destructive-foreground: #ffffff; + --info: #9099a5; + --info-foreground: #060911; + --busy: #b3602a; + --busy-foreground: #ffffff; + --busy-ink: #b5642f; + --border: #3a3f4b; + --input: #3a3f4b; + --ring: #9099a5; + --radius: 0.625rem; + --chart-primary: #9099a5; + --chart-secondary: #e2687c; + --status-success: #5c637a; + --status-warning: #e5af1b; + --status-in-progress: #9099a5; + --page-bg: #060911; + --page-bg-src: ''; + --panel-bg: rgb(10 16 31 / 0.72); + --panel-border: rgb(58 63 75 / 0.9); + --panel-border-bare: rgb(58 63 75 / 0.55); + --panel-raised-bg: rgb(10 16 31 / 0.95); + --panel-raised-border: rgb(58 63 75 / 1); + --panel-accent: #9099a5; + --panel-header-bg: rgb(27 33 47 / 0.6); + --panel-header-fg: #ffffff; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #0a101f; + --glass-bg: rgb(10 16 31 / 0.55); + --glass-border: rgb(58 63 75 / 0.7); + --dock-bg: rgb(10 16 31 / 0.7); + --dock-border: rgb(58 63 75 / 0.8); + --dock-tooltip-bg: #1b212f; + --header-bg: rgb(10 16 31 / 0.8); + --header-border: rgb(58 63 75 / 0.9); + --header-fg: #ffffff; + --header-blur: 12px; + --pixel-grid-color: rgb(120 124 132 / 0.07); + --card-grid-color: rgb(120 124 132 / 0.05); + --panel-grid-color: rgb(120 124 132 / 0.06); + --scrollbar-thumb: rgb(107 114 168 / 0.6); + --scrollbar-thumb-hover: rgb(107 114 168 / 0.85); + --scrollbar-thin-thumb: rgb(107 114 168 / 0.45); + --scrollbar-thin-thumb-hover: rgb(107 114 168 / 0.7); + --brand: #9099a5; + --brand-foreground: #060911; + --brand-primary: #9099a5; + --brand-accent: #c24f40; + --brand-warm: #b3602a; + --brand-deep: #060911; + --brand-muted: #6b72a8; + --ink: #ffffff; + --surface-warm: #0a101f; + --naturegreen: #5c637a; + --naturegreen-foreground: #ffffff; + --duck-dark: #ffffff; + --duck-teal: #c24f40; + --duck-yellow: #e5af1b; + --duck-orange: #b3602a; + --duck-forest: #5c637a; + --duck-beige: #232835; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/vesper.css b/src/workspaces/theme/css/themes/vesper.css new file mode 100644 index 00000000..d6ab3c59 --- /dev/null +++ b/src/workspaces/theme/css/themes/vesper.css @@ -0,0 +1,99 @@ +/* + Vesper — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/Zheonatan/omarchy-vesper-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='vesper'] { + --background: #090909; + --foreground: #d4d4d4; + --card: #101010; + --card-foreground: #d4d4d4; + --popover: #101010; + --popover-foreground: #d4d4d4; + --muted: #212121; + --muted-foreground: #999999; + --accent: #212121; + --accent-foreground: #d4d4d4; + --primary: #a0a0a0; + --primary-foreground: #090909; + --secondary: #212121; + --secondary-foreground: #d4d4d4; + --cta: #a0a0a0; + --cta-foreground: #090909; + --ctahover: #ababab; + --success: #99ffe4; + --success-foreground: #090909; + --warning: #ffc799; + --warning-foreground: #090909; + --destructive: #ff8080; + --destructive-foreground: #090909; + --info: #a0a0a0; + --info-foreground: #090909; + --busy: #ffa48d; + --busy-foreground: #090909; + --busy-ink: #ffa48d; + --border: #363636; + --input: #363636; + --ring: #a0a0a0; + --radius: 0.625rem; + --chart-primary: #a0a0a0; + --chart-secondary: #ffcfa8; + --status-success: #99ffe4; + --status-warning: #ffc799; + --status-in-progress: #a0a0a0; + --page-bg: #090909; + --page-bg-src: ''; + --panel-bg: rgb(16 16 16 / 0.72); + --panel-border: rgb(54 54 54 / 0.9); + --panel-border-bare: rgb(54 54 54 / 0.55); + --panel-raised-bg: rgb(16 16 16 / 0.95); + --panel-raised-border: rgb(54 54 54 / 1); + --panel-accent: #a0a0a0; + --panel-header-bg: rgb(33 33 33 / 0.6); + --panel-header-fg: #d4d4d4; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #101010; + --glass-bg: rgb(16 16 16 / 0.55); + --glass-border: rgb(54 54 54 / 0.7); + --dock-bg: rgb(16 16 16 / 0.7); + --dock-border: rgb(54 54 54 / 0.8); + --dock-tooltip-bg: #212121; + --header-bg: rgb(16 16 16 / 0.8); + --header-border: rgb(54 54 54 / 0.9); + --header-fg: #d4d4d4; + --header-blur: 12px; + --pixel-grid-color: rgb(104 104 104 / 0.07); + --card-grid-color: rgb(104 104 104 / 0.05); + --panel-grid-color: rgb(104 104 104 / 0.06); + --scrollbar-thumb: rgb(80 80 80 / 0.6); + --scrollbar-thumb-hover: rgb(80 80 80 / 0.85); + --scrollbar-thin-thumb: rgb(80 80 80 / 0.45); + --scrollbar-thin-thumb-hover: rgb(80 80 80 / 0.7); + --brand: #a0a0a0; + --brand-foreground: #090909; + --brand-primary: #a0a0a0; + --brand-accent: #99ffe4; + --brand-warm: #ffa48d; + --brand-deep: #090909; + --brand-muted: #505050; + --ink: #d4d4d4; + --surface-warm: #101010; + --naturegreen: #99ffe4; + --naturegreen-foreground: #090909; + --duck-dark: #d4d4d4; + --duck-teal: #99ffe4; + --duck-yellow: #ffc799; + --duck-orange: #ffa48d; + --duck-forest: #99ffe4; + --duck-beige: #242424; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/vhs80.css b/src/workspaces/theme/css/themes/vhs80.css new file mode 100644 index 00000000..fb535bbf --- /dev/null +++ b/src/workspaces/theme/css/themes/vhs80.css @@ -0,0 +1,99 @@ +/* + Vhs80 — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/tahayvr/omarchy-vhs80-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='vhs80'] { + --background: #0a0a0a; + --foreground: #d4d4d4; + --card: #121212; + --card-foreground: #d4d4d4; + --popover: #121212; + --popover-foreground: #d4d4d4; + --muted: #232323; + --muted-foreground: #9a9a9a; + --accent: #232323; + --accent-foreground: #d4d4d4; + --primary: #8b7f2e; + --primary-foreground: #0a0a0a; + --secondary: #232323; + --secondary-foreground: #d4d4d4; + --cta: #8b7f2e; + --cta-foreground: #0a0a0a; + --ctahover: #998e47; + --success: #277d46; + --success-foreground: #f3f3f3; + --warning: #a85511; + --warning-foreground: #ededed; + --destructive: #862020; + --destructive-foreground: #d4d4d4; + --info: #8b7f2e; + --info-foreground: #0a0a0a; + --busy: #973b19; + --busy-foreground: #d4d4d4; + --busy-ink: #ae674d; + --border: #383838; + --input: #383838; + --ring: #8b7f2e; + --radius: 0.625rem; + --chart-primary: #8b7f2e; + --chart-secondary: #932a37; + --status-success: #277d46; + --status-warning: #a85511; + --status-in-progress: #8b7f2e; + --page-bg: #0a0a0a; + --page-bg-src: ''; + --panel-bg: rgb(18 18 18 / 0.72); + --panel-border: rgb(56 56 56 / 0.9); + --panel-border-bare: rgb(56 56 56 / 0.55); + --panel-raised-bg: rgb(18 18 18 / 0.95); + --panel-raised-border: rgb(56 56 56 / 1); + --panel-accent: #8b7f2e; + --panel-header-bg: rgb(35 35 35 / 0.6); + --panel-header-fg: #d4d4d4; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #121212; + --glass-bg: rgb(18 18 18 / 0.55); + --glass-border: rgb(56 56 56 / 0.7); + --dock-bg: rgb(18 18 18 / 0.7); + --dock-border: rgb(56 56 56 / 0.8); + --dock-tooltip-bg: #232323; + --header-bg: rgb(18 18 18 / 0.8); + --header-border: rgb(56 56 56 / 0.9); + --header-fg: #d4d4d4; + --header-blur: 12px; + --pixel-grid-color: rgb(105 105 105 / 0.07); + --card-grid-color: rgb(105 105 105 / 0.05); + --panel-grid-color: rgb(105 105 105 / 0.06); + --scrollbar-thumb: rgb(138 138 141 / 0.6); + --scrollbar-thumb-hover: rgb(138 138 141 / 0.85); + --scrollbar-thin-thumb: rgb(138 138 141 / 0.45); + --scrollbar-thin-thumb-hover: rgb(138 138 141 / 0.7); + --brand: #8b7f2e; + --brand-foreground: #0a0a0a; + --brand-primary: #8b7f2e; + --brand-accent: #2f8383; + --brand-warm: #973b19; + --brand-deep: #0a0a0a; + --brand-muted: #8a8a8d; + --ink: #d4d4d4; + --surface-warm: #121212; + --naturegreen: #277d46; + --naturegreen-foreground: #f3f3f3; + --duck-dark: #d4d4d4; + --duck-teal: #2f8383; + --duck-yellow: #a85511; + --duck-orange: #973b19; + --duck-forest: #277d46; + --duck-beige: #252525; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/vice-city.css b/src/workspaces/theme/css/themes/vice-city.css new file mode 100644 index 00000000..fa7acb9b --- /dev/null +++ b/src/workspaces/theme/css/themes/vice-city.css @@ -0,0 +1,99 @@ +/* + Vice City — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/lavarinimoreira/omarchy-vice-city-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='vice-city'] { + --background: #06060b; + --foreground: #f793d9; + --card: #0a0a14; + --card-foreground: #f793d9; + --popover: #0a0a14; + --popover-foreground: #f793d9; + --muted: #1b1b24; + --muted-foreground: #b26ea0; + --accent: #1b1b24; + --accent-foreground: #f793d9; + --primary: #00a8ff; + --primary-foreground: #06060b; + --secondary: #1b1b24; + --secondary-foreground: #f793d9; + --cta: #00a8ff; + --cta-foreground: #06060b; + --ctahover: #1fb2ff; + --success: #00ff88; + --success-foreground: #06060b; + --warning: #ffff00; + --warning-foreground: #06060b; + --destructive: #ff004d; + --destructive-foreground: #06060b; + --info: #00a8ff; + --info-foreground: #06060b; + --busy: #ff8027; + --busy-foreground: #06060b; + --busy-ink: #ff8027; + --border: #38253b; + --input: #38253b; + --ring: #00a8ff; + --radius: 0.625rem; + --chart-primary: #00a8ff; + --chart-secondary: #ff6ec7; + --status-success: #00ff88; + --status-warning: #ffff00; + --status-in-progress: #00a8ff; + --page-bg: #06060b; + --page-bg-src: ''; + --panel-bg: rgb(10 10 20 / 0.72); + --panel-border: rgb(56 37 59 / 0.9); + --panel-border-bare: rgb(56 37 59 / 0.55); + --panel-raised-bg: rgb(10 10 20 / 0.95); + --panel-raised-border: rgb(56 37 59 / 1); + --panel-accent: #00a8ff; + --panel-header-bg: rgb(27 27 36 / 0.6); + --panel-header-fg: #f793d9; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #0a0a14; + --glass-bg: rgb(10 10 20 / 0.55); + --glass-border: rgb(56 37 59 / 0.7); + --dock-bg: rgb(10 10 20 / 0.7); + --dock-border: rgb(56 37 59 / 0.8); + --dock-tooltip-bg: #1b1b24; + --header-bg: rgb(10 10 20 / 0.8); + --header-border: rgb(56 37 59 / 0.9); + --header-fg: #f793d9; + --header-blur: 12px; + --pixel-grid-color: rgb(124 81 116 / 0.07); + --card-grid-color: rgb(124 81 116 / 0.05); + --panel-grid-color: rgb(124 81 116 / 0.06); + --scrollbar-thumb: rgb(74 61 90 / 0.6); + --scrollbar-thumb-hover: rgb(74 61 90 / 0.85); + --scrollbar-thin-thumb: rgb(74 61 90 / 0.45); + --scrollbar-thin-thumb-hover: rgb(74 61 90 / 0.7); + --brand: #00a8ff; + --brand-foreground: #06060b; + --brand-primary: #00a8ff; + --brand-accent: #00ffff; + --brand-warm: #ff8027; + --brand-deep: #06060b; + --brand-muted: #4a3d5a; + --ink: #f793d9; + --surface-warm: #0a0a14; + --naturegreen: #00ff88; + --naturegreen-foreground: #06060b; + --duck-dark: #f793d9; + --duck-teal: #00ffff; + --duck-yellow: #ffff00; + --duck-orange: #ff8027; + --duck-forest: #00ff88; + --duck-beige: #221828; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/void.css b/src/workspaces/theme/css/themes/void.css new file mode 100644 index 00000000..70b144f5 --- /dev/null +++ b/src/workspaces/theme/css/themes/void.css @@ -0,0 +1,99 @@ +/* + Void — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/vyrx-dev/omarchy-void-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='void'] { + --background: #030107; + --foreground: #ffffff; + --card: #05010c; + --card-foreground: #ffffff; + --popover: #05010c; + --popover-foreground: #ffffff; + --muted: #17131d; + --muted-foreground: #b4b3b6; + --accent: #17131d; + --accent-foreground: #ffffff; + --primary: #bb9af7; + --primary-foreground: #030107; + --secondary: #17131d; + --secondary-foreground: #ffffff; + --cta: #bb9af7; + --cta-foreground: #030107; + --ctahover: #c3a6f8; + --success: #c2b8ff; + --success-foreground: #030107; + --warning: #ddccff; + --warning-foreground: #030107; + --destructive: #f07178; + --destructive-foreground: #030107; + --info: #bb9af7; + --info-foreground: #030107; + --busy: #e79fbc; + --busy-foreground: #030107; + --busy-ink: #e79fbc; + --border: #36333c; + --input: #36333c; + --ring: #bb9af7; + --radius: 0.625rem; + --chart-primary: #bb9af7; + --chart-secondary: #b49ae6; + --status-success: #c2b8ff; + --status-warning: #ddccff; + --status-in-progress: #bb9af7; + --page-bg: #030107; + --page-bg-src: ''; + --panel-bg: rgb(5 1 12 / 0.72); + --panel-border: rgb(54 51 60 / 0.9); + --panel-border-bare: rgb(54 51 60 / 0.55); + --panel-raised-bg: rgb(5 1 12 / 0.95); + --panel-raised-border: rgb(54 51 60 / 1); + --panel-accent: #bb9af7; + --panel-header-bg: rgb(23 19 29 / 0.6); + --panel-header-fg: #ffffff; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #05010c; + --glass-bg: rgb(5 1 12 / 0.55); + --glass-border: rgb(54 51 60 / 0.7); + --dock-bg: rgb(5 1 12 / 0.7); + --dock-border: rgb(54 51 60 / 0.8); + --dock-tooltip-bg: #17131d; + --header-bg: rgb(5 1 12 / 0.8); + --header-border: rgb(54 51 60 / 0.9); + --header-fg: #ffffff; + --header-blur: 12px; + --pixel-grid-color: rgb(118 115 121 / 0.07); + --card-grid-color: rgb(118 115 121 / 0.05); + --panel-grid-color: rgb(118 115 121 / 0.06); + --scrollbar-thumb: rgb(107 87 143 / 0.6); + --scrollbar-thumb-hover: rgb(107 87 143 / 0.85); + --scrollbar-thin-thumb: rgb(107 87 143 / 0.45); + --scrollbar-thin-thumb-hover: rgb(107 87 143 / 0.7); + --brand: #bb9af7; + --brand-foreground: #030107; + --brand-primary: #bb9af7; + --brand-accent: #a6b8ff; + --brand-warm: #e79fbc; + --brand-deep: #030107; + --brand-muted: #6b578f; + --ink: #ffffff; + --surface-warm: #05010c; + --naturegreen: #c2b8ff; + --naturegreen-foreground: #030107; + --duck-dark: #ffffff; + --duck-teal: #a6b8ff; + --duck-yellow: #ddccff; + --duck-orange: #e79fbc; + --duck-forest: #c2b8ff; + --duck-beige: #1e1a24; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/vurple.css b/src/workspaces/theme/css/themes/vurple.css new file mode 100644 index 00000000..e91287c8 --- /dev/null +++ b/src/workspaces/theme/css/themes/vurple.css @@ -0,0 +1,99 @@ +/* + Vurple — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/tahfizhabib/omarchy-vurple-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='vurple'] { + --background: #030109; + --foreground: #c9ffff; + --card: #050111; + --card-foreground: #c9ffff; + --popover: #050111; + --popover-foreground: #c9ffff; + --muted: #171322; + --muted-foreground: #8eb3b8; + --accent: #171322; + --accent-foreground: #c9ffff; + --primary: #7d7bdb; + --primary-foreground: #030109; + --secondary: #171322; + --secondary-foreground: #c9ffff; + --cta: #7d7bdb; + --cta-foreground: #030109; + --ctahover: #8d8bdf; + --success: #4efaff; + --success-foreground: #030109; + --warning: #46d6fd; + --warning-foreground: #030109; + --destructive: #9f34f3; + --destructive-foreground: #c9ffff; + --info: #7d7bdb; + --info-foreground: #030109; + --busy: #7385f8; + --busy-foreground: #030109; + --busy-ink: #7385f8; + --border: #2b3340; + --input: #2b3340; + --ring: #7d7bdb; + --radius: 0.625rem; + --chart-primary: #7d7bdb; + --chart-secondary: #ae7aeb; + --status-success: #4efaff; + --status-warning: #46d6fd; + --status-in-progress: #7d7bdb; + --page-bg: #030109; + --page-bg-src: ''; + --panel-bg: rgb(5 1 17 / 0.72); + --panel-border: rgb(43 51 64 / 0.9); + --panel-border-bare: rgb(43 51 64 / 0.55); + --panel-raised-bg: rgb(5 1 17 / 0.95); + --panel-raised-border: rgb(43 51 64 / 1); + --panel-accent: #7d7bdb; + --panel-header-bg: rgb(23 19 34 / 0.6); + --panel-header-fg: #c9ffff; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #050111; + --glass-bg: rgb(5 1 17 / 0.55); + --glass-border: rgb(43 51 64 / 0.7); + --dock-bg: rgb(5 1 17 / 0.7); + --dock-border: rgb(43 51 64 / 0.8); + --dock-tooltip-bg: #171322; + --header-bg: rgb(5 1 17 / 0.8); + --header-border: rgb(43 51 64 / 0.9); + --header-fg: #c9ffff; + --header-blur: 12px; + --pixel-grid-color: rgb(93 115 124 / 0.07); + --card-grid-color: rgb(93 115 124 / 0.05); + --panel-grid-color: rgb(93 115 124 / 0.06); + --scrollbar-thumb: rgb(46 33 88 / 0.6); + --scrollbar-thumb-hover: rgb(46 33 88 / 0.85); + --scrollbar-thin-thumb: rgb(46 33 88 / 0.45); + --scrollbar-thin-thumb-hover: rgb(46 33 88 / 0.7); + --brand: #7d7bdb; + --brand-foreground: #030109; + --brand-primary: #7d7bdb; + --brand-accent: #39d4fe; + --brand-warm: #7385f8; + --brand-deep: #030109; + --brand-muted: #2e2158; + --ink: #c9ffff; + --surface-warm: #050111; + --naturegreen: #4efaff; + --naturegreen-foreground: #030109; + --duck-dark: #c9ffff; + --duck-teal: #39d4fe; + --duck-yellow: #46d6fd; + --duck-orange: #7385f8; + --duck-forest: #4efaff; + --duck-beige: #191a29; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/wasteland.css b/src/workspaces/theme/css/themes/wasteland.css new file mode 100644 index 00000000..2ffdae72 --- /dev/null +++ b/src/workspaces/theme/css/themes/wasteland.css @@ -0,0 +1,99 @@ +/* + Wasteland — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/perfektnacht/omarchy-wasteland-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='wasteland'] { + --background: #0f0f0f; + --foreground: #d1d0c5; + --card: #1b1b1b; + --card-foreground: #d1d0c5; + --popover: #1b1b1b; + --popover-foreground: #d1d0c5; + --muted: #2b2b2b; + --muted-foreground: #9a9a92; + --accent: #2b2b2b; + --accent-foreground: #d1d0c5; + --primary: #d9e6a8; + --primary-foreground: #0f0f0f; + --secondary: #2b2b2b; + --secondary-foreground: #d1d0c5; + --cta: #d9e6a8; + --cta-foreground: #0f0f0f; + --ctahover: #dee9b2; + --success: #7da453; + --success-foreground: #0f0f0f; + --warning: #c7a036; + --warning-foreground: #0f0f0f; + --destructive: #9e3b26; + --destructive-foreground: #d4d4c9; + --info: #2d3e4e; + --info-foreground: #d1d0c5; + --busy: #b36e2e; + --busy-foreground: #0f0f0f; + --busy-ink: #b36e2e; + --border: #3f3f3c; + --input: #3f3f3c; + --ring: #d9e6a8; + --radius: 0.625rem; + --chart-primary: #d9e6a8; + --chart-secondary: #7a6a5e; + --status-success: #7da453; + --status-warning: #c7a036; + --status-in-progress: #2d3e4e; + --page-bg: #0f0f0f; + --page-bg-src: ''; + --panel-bg: rgb(27 27 27 / 0.72); + --panel-border: rgb(63 63 60 / 0.9); + --panel-border-bare: rgb(63 63 60 / 0.55); + --panel-raised-bg: rgb(27 27 27 / 0.95); + --panel-raised-border: rgb(63 63 60 / 1); + --panel-accent: #d9e6a8; + --panel-header-bg: rgb(43 43 43 / 0.6); + --panel-header-fg: #d1d0c5; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #1b1b1b; + --glass-bg: rgb(27 27 27 / 0.55); + --glass-border: rgb(63 63 60 / 0.7); + --dock-bg: rgb(27 27 27 / 0.7); + --dock-border: rgb(63 63 60 / 0.8); + --dock-tooltip-bg: #2b2b2b; + --header-bg: rgb(27 27 27 / 0.8); + --header-border: rgb(63 63 60 / 0.9); + --header-fg: #d1d0c5; + --header-blur: 12px; + --pixel-grid-color: rgb(109 108 103 / 0.07); + --card-grid-color: rgb(109 108 103 / 0.05); + --panel-grid-color: rgb(109 108 103 / 0.06); + --scrollbar-thumb: rgb(42 42 42 / 0.6); + --scrollbar-thumb-hover: rgb(42 42 42 / 0.85); + --scrollbar-thin-thumb: rgb(42 42 42 / 0.45); + --scrollbar-thin-thumb-hover: rgb(42 42 42 / 0.7); + --brand: #d9e6a8; + --brand-foreground: #0f0f0f; + --brand-primary: #d9e6a8; + --brand-accent: #c5d977; + --brand-warm: #b36e2e; + --brand-deep: #0f0f0f; + --brand-muted: #2a2a2a; + --ink: #d1d0c5; + --surface-warm: #1b1b1b; + --naturegreen: #7da453; + --naturegreen-foreground: #0f0f0f; + --duck-dark: #d1d0c5; + --duck-teal: #c5d977; + --duck-yellow: #c7a036; + --duck-orange: #b36e2e; + --duck-forest: #7da453; + --duck-beige: #2d2d2c; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/waveform-dark.css b/src/workspaces/theme/css/themes/waveform-dark.css new file mode 100644 index 00000000..26454db1 --- /dev/null +++ b/src/workspaces/theme/css/themes/waveform-dark.css @@ -0,0 +1,99 @@ +/* + Waveform Dark — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/hipsterusername/omarchy-waveform-dark-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='waveform-dark'] { + --background: #060606; + --foreground: #ff9999; + --card: #0a0a0a; + --card-foreground: #ff9999; + --popover: #0a0a0a; + --popover-foreground: #ff9999; + --muted: #1b1b1b; + --muted-foreground: #b87272; + --accent: #1b1b1b; + --accent-foreground: #ff9999; + --primary: #cc00ff; + --primary-foreground: #060606; + --secondary: #1b1b1b; + --secondary-foreground: #ff9999; + --cta: #cc00ff; + --cta-foreground: #060606; + --ctahover: #d21fff; + --success: #ff6600; + --success-foreground: #060606; + --warning: #ffaa00; + --warning-foreground: #060606; + --destructive: #ff3333; + --destructive-foreground: #060606; + --info: #cc00ff; + --info-foreground: #060606; + --busy: #ff6f1a; + --busy-foreground: #060606; + --busy-ink: #ff6f1a; + --border: #3a2626; + --input: #3a2626; + --ring: #cc00ff; + --radius: 0.625rem; + --chart-primary: #cc00ff; + --chart-secondary: #ff00aa; + --status-success: #ff6600; + --status-warning: #ffaa00; + --status-in-progress: #cc00ff; + --page-bg: #060606; + --page-bg-src: ''; + --panel-bg: rgb(10 10 10 / 0.72); + --panel-border: rgb(58 38 38 / 0.9); + --panel-border-bare: rgb(58 38 38 / 0.55); + --panel-raised-bg: rgb(10 10 10 / 0.95); + --panel-raised-border: rgb(58 38 38 / 1); + --panel-accent: #cc00ff; + --panel-header-bg: rgb(27 27 27 / 0.6); + --panel-header-fg: #ff9999; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #0a0a0a; + --glass-bg: rgb(10 10 10 / 0.55); + --glass-border: rgb(58 38 38 / 0.7); + --dock-bg: rgb(10 10 10 / 0.7); + --dock-border: rgb(58 38 38 / 0.8); + --dock-tooltip-bg: #1b1b1b; + --header-bg: rgb(10 10 10 / 0.8); + --header-border: rgb(58 38 38 / 0.9); + --header-fg: #ff9999; + --header-blur: 12px; + --pixel-grid-color: rgb(127 83 83 / 0.07); + --card-grid-color: rgb(127 83 83 / 0.05); + --panel-grid-color: rgb(127 83 83 / 0.06); + --scrollbar-thumb: rgb(74 32 32 / 0.6); + --scrollbar-thumb-hover: rgb(74 32 32 / 0.85); + --scrollbar-thin-thumb: rgb(74 32 32 / 0.45); + --scrollbar-thin-thumb-hover: rgb(74 32 32 / 0.7); + --brand: #cc00ff; + --brand-foreground: #060606; + --brand-primary: #cc00ff; + --brand-accent: #ff66cc; + --brand-warm: #ff6f1a; + --brand-deep: #060606; + --brand-muted: #4a2020; + --ink: #ff9999; + --surface-warm: #0a0a0a; + --naturegreen: #ff6600; + --naturegreen-foreground: #060606; + --duck-dark: #ff9999; + --duck-teal: #ff66cc; + --duck-yellow: #ffaa00; + --duck-orange: #ff6f1a; + --duck-forest: #ff6600; + --duck-beige: #231818; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/white-gold.css b/src/workspaces/theme/css/themes/white-gold.css new file mode 100644 index 00000000..16bd0054 --- /dev/null +++ b/src/workspaces/theme/css/themes/white-gold.css @@ -0,0 +1,99 @@ +/* + White Gold — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Light theme (light), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/HANCORE-linux/omarchy-whitegold-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='white-gold'] { + --background: #dedbc8; + --foreground: #0c0c14; + --card: #d6d3c1; + --card-foreground: #0c0c14; + --popover: #d6d3c1; + --popover-foreground: #0c0c14; + --muted: #d1cebc; + --muted-foreground: #4b4a4a; + --accent: #d1cebc; + --accent-foreground: #0c0c14; + --primary: #005c32; + --primary-foreground: #c8c5b4; + --secondary: #d1cebc; + --secondary-foreground: #0c0c14; + --cta: #005c32; + --cta-foreground: #c8c5b4; + --ctahover: #00512c; + --success: #725c0a; + --success-foreground: #dad8cc; + --warning: #2e311a; + --warning-foreground: #c8c5b4; + --destructive: #4b0304; + --destructive-foreground: #c8c5b4; + --info: #005c32; + --info-foreground: #c8c5b4; + --busy: #3d1a0f; + --busy-foreground: #c8c5b4; + --busy-ink: #3d1a0f; + --border: #bebbac; + --input: #bebbac; + --ring: #005c32; + --radius: 0.625rem; + --chart-primary: #005c32; + --chart-secondary: #762b2f; + --status-success: #725c0a; + --status-warning: #2e311a; + --status-in-progress: #005c32; + --page-bg: #dedbc8; + --page-bg-src: ''; + --panel-bg: rgb(214 211 193 / 0.72); + --panel-border: rgb(190 187 172 / 0.9); + --panel-border-bare: rgb(190 187 172 / 0.55); + --panel-raised-bg: rgb(214 211 193 / 0.95); + --panel-raised-border: rgb(190 187 172 / 1); + --panel-accent: #005c32; + --panel-header-bg: rgb(209 206 188 / 0.6); + --panel-header-fg: #0c0c14; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #d6d3c1; + --glass-bg: rgb(214 211 193 / 0.55); + --glass-border: rgb(190 187 172 / 0.7); + --dock-bg: rgb(214 211 193 / 0.7); + --dock-border: rgb(190 187 172 / 0.8); + --dock-tooltip-bg: #d1cebc; + --header-bg: rgb(214 211 193 / 0.8); + --header-border: rgb(190 187 172 / 0.9); + --header-fg: #0c0c14; + --header-blur: 12px; + --pixel-grid-color: rgb(118 117 110 / 0.07); + --card-grid-color: rgb(118 117 110 / 0.05); + --panel-grid-color: rgb(118 117 110 / 0.06); + --scrollbar-thumb: rgb(154 144 120 / 0.6); + --scrollbar-thumb-hover: rgb(154 144 120 / 0.85); + --scrollbar-thin-thumb: rgb(154 144 120 / 0.45); + --scrollbar-thin-thumb-hover: rgb(154 144 120 / 0.7); + --brand: #005c32; + --brand-foreground: #c8c5b4; + --brand-primary: #005c32; + --brand-accent: #3b3b3b; + --brand-warm: #3d1a0f; + --brand-deep: #d1cebc; + --brand-muted: #9a9078; + --ink: #0c0c14; + --surface-warm: #d6d3c1; + --naturegreen: #725c0a; + --naturegreen-foreground: #dad8cc; + --duck-dark: #0c0c14; + --duck-teal: #3b3b3b; + --duck-yellow: #2e311a; + --duck-orange: #3d1a0f; + --duck-forest: #725c0a; + --duck-beige: #c2bfb0; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/css/themes/yuugure.css b/src/workspaces/theme/css/themes/yuugure.css new file mode 100644 index 00000000..ed1902f3 --- /dev/null +++ b/src/workspaces/theme/css/themes/yuugure.css @@ -0,0 +1,99 @@ +/* + Yuugure — ported from a community Omarchy theme, not from basecamp/omarchy's own set. + + Dark theme (dark), by luminance of its own + background — the source repo carries no mode flag of its own to read. + + Source: https://github.com/ItsABigIgloo/omarchy-yuugure-theme (alacritty.toml), read by scripts/port-community-themes.ts. Values + went through deriveOmarchyPalette (scripts/themes/from-ansi.ts) because a single-theme repo ships + per-app configs, not Omarchy 4's own colors.toml shape — some tokens here are reconstructed, not + authored. Every text/surface pair is contrast-checked the same way the official themes are. + + DO NOT EDIT BY HAND. Re-run the script to refresh from the source repo. +*/ +[data-theme='yuugure'] { + --background: #111119; + --foreground: #cdd6f4; + --card: #1e1e2e; + --card-foreground: #cdd6f4; + --popover: #1e1e2e; + --popover-foreground: #cdd6f4; + --muted: #2e2e3d; + --muted-foreground: #999fb9; + --accent: #2e2e3d; + --accent-foreground: #cdd6f4; + --primary: #89b4fa; + --primary-foreground: #111119; + --secondary: #2e2e3d; + --secondary-foreground: #cdd6f4; + --cta: #89b4fa; + --cta-foreground: #111119; + --ctahover: #97bdfb; + --success: #a6e3a1; + --success-foreground: #111119; + --warning: #f9e2af; + --warning-foreground: #111119; + --destructive: #f38ba8; + --destructive-foreground: #111119; + --info: #89b4fa; + --info-foreground: #111119; + --busy: #f6b7ac; + --busy-foreground: #111119; + --busy-ink: #f6b7ac; + --border: #404255; + --input: #404255; + --ring: #89b4fa; + --radius: 0.625rem; + --chart-primary: #89b4fa; + --chart-secondary: #cba6f7; + --status-success: #a6e3a1; + --status-warning: #f9e2af; + --status-in-progress: #89b4fa; + --page-bg: #111119; + --page-bg-src: ''; + --panel-bg: rgb(30 30 46 / 0.72); + --panel-border: rgb(64 66 85 / 0.9); + --panel-border-bare: rgb(64 66 85 / 0.55); + --panel-raised-bg: rgb(30 30 46 / 0.95); + --panel-raised-border: rgb(64 66 85 / 1); + --panel-accent: #89b4fa; + --panel-header-bg: rgb(46 46 61 / 0.6); + --panel-header-fg: #cdd6f4; + --panel-radius: 0.75rem; + --panel-blur: 12px; + --card-bg: #1e1e2e; + --glass-bg: rgb(30 30 46 / 0.55); + --glass-border: rgb(64 66 85 / 0.7); + --dock-bg: rgb(30 30 46 / 0.7); + --dock-border: rgb(64 66 85 / 0.8); + --dock-tooltip-bg: #2e2e3d; + --header-bg: rgb(30 30 46 / 0.8); + --header-border: rgb(64 66 85 / 0.9); + --header-fg: #cdd6f4; + --header-blur: 12px; + --pixel-grid-color: rgb(109 113 135 / 0.07); + --card-grid-color: rgb(109 113 135 / 0.05); + --panel-grid-color: rgb(109 113 135 / 0.06); + --scrollbar-thumb: rgb(88 91 112 / 0.6); + --scrollbar-thumb-hover: rgb(88 91 112 / 0.85); + --scrollbar-thin-thumb: rgb(88 91 112 / 0.45); + --scrollbar-thin-thumb-hover: rgb(88 91 112 / 0.7); + --brand: #89b4fa; + --brand-foreground: #111119; + --brand-primary: #89b4fa; + --brand-accent: #94e2d5; + --brand-warm: #f6b7ac; + --brand-deep: #111119; + --brand-muted: #585b70; + --ink: #cdd6f4; + --surface-warm: #1e1e2e; + --naturegreen: #a6e3a1; + --naturegreen-foreground: #111119; + --duck-dark: #cdd6f4; + --duck-teal: #94e2d5; + --duck-yellow: #f9e2af; + --duck-orange: #f6b7ac; + --duck-forest: #a6e3a1; + --duck-beige: #303042; + --logo-src: '/officer-logo.svg'; +} diff --git a/src/workspaces/theme/src/themes.ts b/src/workspaces/theme/src/themes.ts index 8f5791e3..72e65867 100644 --- a/src/workspaces/theme/src/themes.ts +++ b/src/workspaces/theme/src/themes.ts @@ -72,6 +72,156 @@ export const THEMES: readonly Theme[] = [ { id: 'vantablack', name: 'Vantablack', family: 'Vantablack', applyDarkClass: true }, { id: 'white', name: 'White', family: 'White', applyDarkClass: false }, /* GENERATED THEMES — end */ + + /* COMMUNITY THEMES — start */ + { id: 'aamis', name: 'Aamis', family: 'Aamis', applyDarkClass: true }, + { id: 'ado', name: 'Ado', family: 'Ado', applyDarkClass: true }, + { id: 'adrift', name: 'Adrift', family: 'Adrift', applyDarkClass: true }, + { id: 'aetheria', name: 'Aetheria', family: 'Aetheria', applyDarkClass: true }, + { id: 'akaito', name: 'Akaito', family: 'Akaito', applyDarkClass: false }, + { id: 'all-hallows-eve', name: 'All Hallows Eve', family: 'All Hallows Eve', applyDarkClass: true }, + { id: 'amberbyte', name: 'Amberbyte', family: 'Amberbyte', applyDarkClass: true }, + { id: 'amekoji', name: 'Amekoji', family: 'Amekoji', applyDarkClass: true }, + { id: 'anonymous', name: 'Anonymous', family: 'Anonymous', applyDarkClass: true }, + { id: 'apocalypse', name: 'Apocalypse', family: 'Apocalypse', applyDarkClass: true }, + { id: 'arc-blueberry', name: 'Arc Blueberry', family: 'Arc Blueberry', applyDarkClass: true }, + { id: 'archriot', name: 'Archriot', family: 'Archriot', applyDarkClass: true }, + { id: 'archwave', name: 'Archwave', family: 'Archwave', applyDarkClass: true }, + { id: 'artzen', name: 'Artzen', family: 'Artzen', applyDarkClass: true }, + { id: 'atari', name: 'Atari', family: 'Atari', applyDarkClass: true }, + { id: 'atelier', name: 'Atelier', family: 'Atelier', applyDarkClass: true }, + { id: 'aura', name: 'Aura', family: 'Aura', applyDarkClass: true }, + { id: 'ayu-dark', name: 'Ayu Dark', family: 'Ayu Dark', applyDarkClass: true }, + { id: 'ayu-light', name: 'Ayu Light', family: 'Ayu Light', applyDarkClass: false }, + { id: 'ayu-mirage', name: 'Ayu Mirage', family: 'Ayu Mirage', applyDarkClass: true }, + { id: 'azure', name: 'Azure', family: 'Azure', applyDarkClass: true }, + { id: 'azure-glow', name: 'Azure Glow', family: 'Azure Glow', applyDarkClass: true }, + { id: 'bad-hand', name: 'Bad Hand', family: 'Bad Hand', applyDarkClass: true }, + { id: 'batman', name: 'Batman', family: 'Batman', applyDarkClass: true }, + { id: 'batou', name: 'Batou', family: 'Batou', applyDarkClass: true }, + { id: 'bauhaus', name: 'Bauhaus', family: 'Bauhaus', applyDarkClass: true }, + { id: 'beachvan', name: 'Beachvan', family: 'Beachvan', applyDarkClass: true }, + { id: 'beta', name: 'Beta', family: 'Beta', applyDarkClass: true }, + { id: 'black-arch', name: 'Black Arch', family: 'Black Arch', applyDarkClass: true }, + { id: 'blueridge', name: 'Blueridge', family: 'Blueridge', applyDarkClass: true }, + { id: 'brutalism', name: 'Brutalism', family: 'Brutalism', applyDarkClass: true }, + { id: 'caroline-skyline', name: 'Caroline Skyline', family: 'Caroline Skyline', applyDarkClass: true }, + { id: 'catppuccin-mocha', name: 'Catppuccin Mocha', family: 'Catppuccin Mocha', applyDarkClass: true }, + { id: 'city-783', name: 'City 783', family: 'City 783', applyDarkClass: true }, + { id: 'copper-night', name: 'Copper Night', family: 'Copper Night', applyDarkClass: true }, + { id: 'cpunk', name: 'Cpunk', family: 'Cpunk', applyDarkClass: true }, + { id: 'crimson', name: 'Crimson', family: 'Crimson', applyDarkClass: true }, + { id: 'dark-xp', name: 'Dark XP', family: 'Dark XP', applyDarkClass: true }, + { id: 'dayfox', name: 'Dayfox', family: 'Dayfox', applyDarkClass: false }, + { id: 'dead-space', name: 'Dead Space', family: 'Dead Space', applyDarkClass: true }, + { id: 'deckard', name: 'Deckard', family: 'Deckard', applyDarkClass: true }, + { id: 'delete', name: 'Delete', family: 'Delete', applyDarkClass: true }, + { id: 'delorean', name: 'Delorean', family: 'Delorean', applyDarkClass: true }, + { id: 'demon', name: 'Demon', family: 'Demon', applyDarkClass: true }, + { id: 'dotrb', name: 'Dotrb', family: 'Dotrb', applyDarkClass: true }, + { id: 'drac', name: 'Drac', family: 'Drac', applyDarkClass: true }, + { id: 'dracula', name: 'Dracula', family: 'Dracula', applyDarkClass: true }, + { id: 'dragon', name: 'Dragon', family: 'Dragon', applyDarkClass: true }, + { id: 'dreamwave', name: 'Dreamwave', family: 'Dreamwave', applyDarkClass: true }, + { id: 'ember-n-ash', name: 'Ember N Ash', family: 'Ember N Ash', applyDarkClass: true }, + { id: 'eva-unit-01', name: 'Eva Unit 01', family: 'Eva Unit 01', applyDarkClass: true }, + { id: 'event-horizon', name: 'Event Horizon', family: 'Event Horizon', applyDarkClass: true }, + { id: 'everblush', name: 'Everblush', family: 'Everblush', applyDarkClass: true }, + { id: 'farline', name: 'Farline', family: 'Farline', applyDarkClass: true }, + { id: 'felix', name: 'Felix', family: 'Felix', applyDarkClass: true }, + { id: 'flat-dracula', name: 'Flat Dracula', family: 'Flat Dracula', applyDarkClass: true }, + { id: 'florida-man', name: 'Florida Man', family: 'Florida Man', applyDarkClass: true }, + { id: 'fluid-glass', name: 'Fluid Glass', family: 'Fluid Glass', applyDarkClass: true }, + { id: 'forest-green', name: 'Forest Green', family: 'Forest Green', applyDarkClass: true }, + { id: 'glory-antic', name: 'Glory Antic', family: 'Glory Antic', applyDarkClass: true }, + { id: 'gold-rush', name: 'Gold Rush', family: 'Gold Rush', applyDarkClass: true }, + { id: 'gotham-city', name: 'Gotham City', family: 'Gotham City', applyDarkClass: true }, + { id: 'greek-noir', name: 'Greek Noir', family: 'Greek Noir', applyDarkClass: true }, + { id: 'green-city', name: 'Green City', family: 'Green City', applyDarkClass: true }, + { id: 'green-garden', name: 'Green Garden', family: 'Green Garden', applyDarkClass: true }, + { id: 'gruber-tsoding', name: 'Gruber Tsoding', family: 'Gruber Tsoding', applyDarkClass: true }, + { id: 'grudark', name: 'Grudark', family: 'Grudark', applyDarkClass: true }, + { id: 'harbor', name: 'Harbor', family: 'Harbor', applyDarkClass: false }, + { id: 'hex', name: 'Hex', family: 'Hex', applyDarkClass: true }, + { id: 'himalaya', name: 'Himalaya', family: 'Himalaya', applyDarkClass: true }, + { id: 'hinterlands', name: 'Hinterlands', family: 'Hinterlands', applyDarkClass: true }, + { id: 'infernium', name: 'Infernium', family: 'Infernium', applyDarkClass: false }, + { id: 'infernium-dark', name: 'Infernium Dark', family: 'Infernium Dark', applyDarkClass: true }, + { id: 'killer-klowns', name: 'Killer Klowns', family: 'Killer Klowns', applyDarkClass: true }, + { id: 'kurayami', name: 'Kurayami', family: 'Kurayami', applyDarkClass: true }, + { id: 'lain', name: 'Lain', family: 'Lain', applyDarkClass: true }, + { id: 'lairetam', name: 'Lairetam', family: 'Lairetam', applyDarkClass: true }, + { id: 'latch', name: 'Latch', family: 'Latch', applyDarkClass: false }, + { id: 'latch-dark', name: 'Latch Dark', family: 'Latch Dark', applyDarkClass: true }, + { id: 'lowlight', name: 'Lowlight', family: 'Lowlight', applyDarkClass: true }, + { id: 'lunar', name: 'Lunar', family: 'Lunar', applyDarkClass: true }, + { id: 'manga', name: 'Manga', family: 'Manga', applyDarkClass: true }, + { id: 'mapquest', name: 'Mapquest', family: 'Mapquest', applyDarkClass: false }, + { id: 'mars', name: 'Mars', family: 'Mars', applyDarkClass: true }, + { id: 'mecha-no-onna', name: 'Mecha NO Onna', family: 'Mecha NO Onna', applyDarkClass: true }, + { id: 'memento-mori', name: 'Memento Mori', family: 'Memento Mori', applyDarkClass: true }, + { id: 'midnight', name: 'Midnight', family: 'Midnight', applyDarkClass: true }, + { id: 'miles-morales', name: 'Miles Morales', family: 'Miles Morales', applyDarkClass: true }, + { id: 'mocha', name: 'Mocha', family: 'Mocha', applyDarkClass: true }, + { id: 'monochrome', name: 'Monochrome', family: 'Monochrome', applyDarkClass: true }, + { id: 'monokai', name: 'Monokai', family: 'Monokai', applyDarkClass: true }, + { id: 'monokai-dark', name: 'Monokai Dark', family: 'Monokai Dark', applyDarkClass: true }, + { id: 'monolith', name: 'Monolith', family: 'Monolith', applyDarkClass: true }, + { id: 'nagai-poolside', name: 'Nagai Poolside', family: 'Nagai Poolside', applyDarkClass: true }, + { id: 'nagai-twilight', name: 'Nagai Twilight', family: 'Nagai Twilight', applyDarkClass: true }, + { id: 'nebulite', name: 'Nebulite', family: 'Nebulite', applyDarkClass: true }, + { id: 'neo-sploosh', name: 'Neo Sploosh', family: 'Neo Sploosh', applyDarkClass: true }, + { id: 'neon-street', name: 'Neon Street', family: 'Neon Street', applyDarkClass: true }, + { id: 'neovoid', name: 'Neovoid', family: 'Neovoid', applyDarkClass: true }, + { id: 'nyc', name: 'Nyc', family: 'Nyc', applyDarkClass: true }, + { id: 'oxford', name: 'Oxford', family: 'Oxford', applyDarkClass: true }, + { id: 'oxocarbon-dark', name: 'Oxocarbon Dark', family: 'Oxocarbon Dark', applyDarkClass: true }, + { id: 'pandora', name: 'Pandora', family: 'Pandora', applyDarkClass: true }, + { id: 'pink-blood', name: 'Pink Blood', family: 'Pink Blood', applyDarkClass: true }, + { id: 'pulsar', name: 'Pulsar', family: 'Pulsar', applyDarkClass: true }, + { id: 'purple-moon', name: 'Purple Moon', family: 'Purple Moon', applyDarkClass: true }, + { id: 'purplewave', name: 'Purplewave', family: 'Purplewave', applyDarkClass: true }, + { id: 'rainy-night', name: 'Rainy Night', family: 'Rainy Night', applyDarkClass: true }, + { id: 'rdddcs', name: 'Rdddcs', family: 'Rdddcs', applyDarkClass: true }, + { id: 'red-monarch', name: 'Red Monarch', family: 'Red Monarch', applyDarkClass: true }, + { id: 'retropc', name: 'Retropc', family: 'Retropc', applyDarkClass: true }, + { id: 'robco', name: 'Robco', family: 'Robco', applyDarkClass: true }, + { id: 'robco-mojave', name: 'Robco Mojave', family: 'Robco Mojave', applyDarkClass: true }, + { id: 'roseofdune', name: 'Roseofdune', family: 'Roseofdune', applyDarkClass: false }, + { id: 'royal', name: 'Royal', family: 'Royal', applyDarkClass: true }, + { id: 'rustleaf', name: 'Rustleaf', family: 'Rustleaf', applyDarkClass: true }, + { id: 'snow-black', name: 'Snow Black', family: 'Snow Black', applyDarkClass: true }, + { id: 'space-bound', name: 'Space Bound', family: 'Space Bound', applyDarkClass: true }, + { id: 'space-monkey', name: 'Space Monkey', family: 'Space Monkey', applyDarkClass: true }, + { id: 'spark', name: 'Spark', family: 'Spark', applyDarkClass: true }, + { id: 'spectra', name: 'Spectra', family: 'Spectra', applyDarkClass: true }, + { id: 'stellar', name: 'Stellar', family: 'Stellar', applyDarkClass: true }, + { id: 'stillmoon', name: 'Stillmoon', family: 'Stillmoon', applyDarkClass: true }, + { id: 'sunset', name: 'Sunset', family: 'Sunset', applyDarkClass: true }, + { id: 'synthetica', name: 'Synthetica', family: 'Synthetica', applyDarkClass: true }, + { id: 'synthwave-84', name: 'Synthwave 84', family: 'Synthwave 84', applyDarkClass: true }, + { id: 'taikami', name: 'Taikami', family: 'Taikami', applyDarkClass: true }, + { id: 'tarot', name: 'Tarot', family: 'Tarot', applyDarkClass: true }, + { id: 'temerald', name: 'Temerald', family: 'Temerald', applyDarkClass: true }, + { id: 'terramour', name: 'Terramour', family: 'Terramour', applyDarkClass: true }, + { id: 'thegreek', name: 'Thegreek', family: 'Thegreek', applyDarkClass: false }, + { id: 'turbonite', name: 'Turbonite', family: 'Turbonite', applyDarkClass: true }, + { id: 'tycho', name: 'Tycho', family: 'Tycho', applyDarkClass: true }, + { id: 'type-17', name: 'Type 17', family: 'Type 17', applyDarkClass: true }, + { id: 'unicorn-dream', name: 'Unicorn Dream', family: 'Unicorn Dream', applyDarkClass: false }, + { id: 'van-gogh', name: 'Van Gogh', family: 'Van Gogh', applyDarkClass: true }, + { id: 'velocity', name: 'Velocity', family: 'Velocity', applyDarkClass: true }, + { id: 'velvet-night', name: 'Velvet Night', family: 'Velvet Night', applyDarkClass: true }, + { id: 'vesper', name: 'Vesper', family: 'Vesper', applyDarkClass: true }, + { id: 'vhs80', name: 'Vhs80', family: 'Vhs80', applyDarkClass: true }, + { id: 'vice-city', name: 'Vice City', family: 'Vice City', applyDarkClass: true }, + { id: 'void', name: 'Void', family: 'Void', applyDarkClass: true }, + { id: 'vurple', name: 'Vurple', family: 'Vurple', applyDarkClass: true }, + { id: 'wasteland', name: 'Wasteland', family: 'Wasteland', applyDarkClass: true }, + { id: 'waveform-dark', name: 'Waveform Dark', family: 'Waveform Dark', applyDarkClass: true }, + { id: 'white-gold', name: 'White Gold', family: 'White Gold', applyDarkClass: false }, + { id: 'yuugure', name: 'Yuugure', family: 'Yuugure', applyDarkClass: true }, + /* COMMUNITY THEMES — end */ ] as const; /** What the app wears when nobody has chosen — its appearance before this refactor. */