Ver Fonte

wip(app): generate color palettes

Adam há 1 mês atrás
pai
commit
3e988d640d

+ 1 - 1
packages/app/src/components/terminal.tsx

@@ -217,7 +217,7 @@ export const Terminal = (props: TerminalProps) => {
     const currentTheme = theme.themes()[theme.themeId()]
     if (!currentTheme) return fallback
     const variant = mode === "dark" ? currentTheme.dark : currentTheme.light
-    if (!variant?.seeds) return fallback
+    if (!variant?.seeds && !variant?.palette) return fallback
     const resolved = resolveThemeVariant(variant, mode === "dark")
     const text = resolved["text-stronger"] ?? fallback.foreground
     const background = resolved["background-stronger"] ?? fallback.background

+ 61 - 7
packages/ui/src/theme/color.ts

@@ -1,16 +1,25 @@
 import type { HexColor, OklchColor } from "./types"
 
+function clamp(v: number, min: number, max: number) {
+  return Math.max(min, Math.min(max, v))
+}
+
+function hue(v: number) {
+  return ((v % 360) + 360) % 360
+}
+
 export function hexToRgb(hex: HexColor): { r: number; g: number; b: number } {
   const h = hex.replace("#", "")
   const full =
-    h.length === 3
+    h.length === 3 || h.length === 4
       ? h
           .split("")
           .map((c) => c + c)
           .join("")
       : h
+  const rgb = full.length === 8 ? full.slice(0, 6) : full
 
-  const num = parseInt(full, 16)
+  const num = parseInt(rgb, 16)
   return {
     r: ((num >> 16) & 255) / 255,
     g: ((num >> 8) & 255) / 255,
@@ -20,7 +29,7 @@ export function hexToRgb(hex: HexColor): { r: number; g: number; b: number } {
 
 export function rgbToHex(r: number, g: number, b: number): HexColor {
   const toHex = (v: number) => {
-    const clamped = Math.max(0, Math.min(1, v))
+    const clamped = clamp(v, 0, 1)
     const int = Math.round(clamped * 255)
     return int.toString(16).padStart(2, "0")
   }
@@ -91,8 +100,33 @@ export function hexToOklch(hex: HexColor): OklchColor {
   return rgbToOklch(r, g, b)
 }
 
+export function fitOklch(oklch: OklchColor): OklchColor {
+  const base = {
+    l: clamp(oklch.l, 0, 1),
+    c: Math.max(0, oklch.c),
+    h: hue(oklch.h),
+  }
+
+  const rgb = oklchToRgb(base)
+  if (rgb.r >= 0 && rgb.r <= 1 && rgb.g >= 0 && rgb.g <= 1 && rgb.b >= 0 && rgb.b <= 1) {
+    return base
+  }
+
+  let c = base.c
+  for (let i = 0; i < 24; i++) {
+    c *= 0.9
+    const next = { ...base, c }
+    const out = oklchToRgb(next)
+    if (out.r >= 0 && out.r <= 1 && out.g >= 0 && out.g <= 1 && out.b >= 0 && out.b <= 1) {
+      return next
+    }
+  }
+
+  return { ...base, c: 0 }
+}
+
 export function oklchToHex(oklch: OklchColor): HexColor {
-  const { r, g, b } = oklchToRgb(oklch)
+  const { r, g, b } = oklchToRgb(fitOklch(oklch))
   return rgbToHex(r, g, b)
 }
 
@@ -164,19 +198,39 @@ export function generateAlphaScale(scale: HexColor[], isDark: boolean): HexColor
 export function mixColors(color1: HexColor, color2: HexColor, amount: number): HexColor {
   const c1 = hexToOklch(color1)
   const c2 = hexToOklch(color2)
+  const delta = ((((c2.h - c1.h) % 360) + 540) % 360) - 180
 
   return oklchToHex({
     l: c1.l + (c2.l - c1.l) * amount,
     c: c1.c + (c2.c - c1.c) * amount,
-    h: c1.h + (c2.h - c1.h) * amount,
+    h: c1.h + delta * amount,
   })
 }
 
+export function shift(color: HexColor, value: { l?: number; c?: number; h?: number }): HexColor {
+  const base = hexToOklch(color)
+  return oklchToHex({
+    l: base.l + (value.l ?? 0),
+    c: base.c * (value.c ?? 1),
+    h: base.h + (value.h ?? 0),
+  })
+}
+
+export function blend(color: HexColor, background: HexColor, alpha: number): HexColor {
+  const fg = hexToRgb(color)
+  const bg = hexToRgb(background)
+  return rgbToHex(
+    fg.r * alpha + bg.r * (1 - alpha),
+    fg.g * alpha + bg.g * (1 - alpha),
+    fg.b * alpha + bg.b * (1 - alpha),
+  )
+}
+
 export function lighten(color: HexColor, amount: number): HexColor {
   const oklch = hexToOklch(color)
   return oklchToHex({
     ...oklch,
-    l: Math.min(1, oklch.l + amount),
+    l: clamp(oklch.l + amount, 0, 1),
   })
 }
 
@@ -184,7 +238,7 @@ export function darken(color: HexColor, amount: number): HexColor {
   const oklch = hexToOklch(color)
   return oklchToHex({
     ...oklch,
-    l: Math.max(0, oklch.l - amount),
+    l: clamp(oklch.l - amount, 0, 1),
   })
 }
 

+ 62 - 5
packages/ui/src/theme/desktop-theme.schema.json

@@ -36,12 +36,13 @@
     },
     "ColorValue": {
       "type": "string",
-      "pattern": "^(#([0-9a-fA-F]{3}|[0-9a-fA-F]{4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})|var\(--[a-z0-9-]+\))$",
+      "pattern": "^(#([0-9a-fA-F]{3}|[0-9a-fA-F]{4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})|var\\(--[a-z0-9-]+\\))$",
       "description": "Either a hex color value (#rgb/#rgba/#rrggbb/#rrggbbaa) or a CSS variable reference"
     },
     "ThemeSeedColors": {
       "type": "object",
-      "description": "The minimum set of colors needed to generate a theme",
+      "description": "The legacy semantic seed set used to generate a theme",
+      "additionalProperties": false,
       "required": ["neutral", "primary", "success", "warning", "error", "info", "interactive", "diffAdd", "diffDelete"],
       "properties": {
         "neutral": {
@@ -82,14 +83,70 @@
         }
       }
     },
+    "ThemePaletteColors": {
+      "type": "object",
+      "description": "A compact semantic palette used to derive the full theme programmatically",
+      "additionalProperties": false,
+      "required": ["neutral", "primary", "success", "warning", "error", "info"],
+      "properties": {
+        "neutral": {
+          "$ref": "#/definitions/HexColor",
+          "description": "Base neutral color for generating the gray scale"
+        },
+        "ink": {
+          "$ref": "#/definitions/HexColor",
+          "description": "Optional foreground or chrome color used to derive text and border tones"
+        },
+        "primary": {
+          "$ref": "#/definitions/HexColor",
+          "description": "Primary brand color used for brand surfaces and strong emphasis"
+        },
+        "success": {
+          "$ref": "#/definitions/HexColor",
+          "description": "Success state color"
+        },
+        "warning": {
+          "$ref": "#/definitions/HexColor",
+          "description": "Warning state color"
+        },
+        "error": {
+          "$ref": "#/definitions/HexColor",
+          "description": "Error or critical state color"
+        },
+        "info": {
+          "$ref": "#/definitions/HexColor",
+          "description": "Informational state color"
+        },
+        "accent": {
+          "$ref": "#/definitions/HexColor",
+          "description": "Optional extra expressive accent for syntax and rich content"
+        },
+        "interactive": {
+          "$ref": "#/definitions/HexColor",
+          "description": "Optional dedicated interactive color; falls back to primary"
+        },
+        "diffAdd": {
+          "$ref": "#/definitions/HexColor",
+          "description": "Optional diff-add seed; falls back to a softened success color"
+        },
+        "diffDelete": {
+          "$ref": "#/definitions/HexColor",
+          "description": "Optional diff-delete seed; falls back to error"
+        }
+      }
+    },
     "ThemeVariant": {
       "type": "object",
-      "description": "A theme variant (light or dark) with seed colors and optional overrides",
-      "required": ["seeds"],
+      "description": "A theme variant (light or dark) with either a compact palette or legacy seeds and optional overrides",
+      "oneOf": [{ "required": ["seeds"] }, { "required": ["palette"] }],
       "properties": {
         "seeds": {
           "$ref": "#/definitions/ThemeSeedColors",
-          "description": "Seed colors used to generate the full palette"
+          "description": "Legacy seed colors used to generate the full palette"
+        },
+        "palette": {
+          "$ref": "#/definitions/ThemePaletteColors",
+          "description": "Compact palette used to derive the full token set"
         },
         "overrides": {
           "type": "object",

+ 4 - 0
packages/ui/src/theme/index.ts

@@ -1,5 +1,6 @@
 export type {
   DesktopTheme,
+  ThemePaletteColors,
   ThemeSeedColors,
   ThemeVariant,
   HexColor,
@@ -19,7 +20,10 @@ export {
   generateScale,
   generateNeutralScale,
   generateAlphaScale,
+  fitOklch,
+  blend,
   mixColors,
+  shift,
   lighten,
   darken,
   withAlpha,

+ 405 - 81
packages/ui/src/theme/resolve.ts

@@ -1,27 +1,117 @@
 import type { ColorValue, DesktopTheme, HexColor, ResolvedTheme, ThemeVariant } from "./types"
-import { generateNeutralScale, generateScale, hexToOklch, oklchToHex, withAlpha } from "./color"
+import { blend, generateNeutralScale, generateScale, hexToOklch, oklchToHex, shift, withAlpha } from "./color"
 
 export function resolveThemeVariant(variant: ThemeVariant, isDark: boolean): ResolvedTheme {
-  const { seeds, overrides = {} } = variant
+  const colors = getColors(variant)
+  const { overrides = {} } = variant
 
-  const neutral = generateNeutralScale(seeds.neutral, isDark)
-  const primary = generateScale(seeds.primary, isDark)
-  const success = generateScale(seeds.success, isDark)
-  const warning = generateScale(seeds.warning, isDark)
-  const error = generateScale(seeds.error, isDark)
-  const info = generateScale(seeds.info, isDark)
-  const interactive = generateScale(seeds.interactive, isDark)
-  const diffAdd = generateScale(seeds.diffAdd, isDark)
-  const diffDelete = generateScale(seeds.diffDelete, isDark)
+  const neutral = generateNeutralScale(colors.neutral, isDark)
+  const primary = generateScale(colors.primary, isDark)
+  const accent = generateScale(colors.accent, isDark)
+  const success = generateScale(colors.success, isDark)
+  const warning = generateScale(colors.warning, isDark)
+  const error = generateScale(colors.error, isDark)
+  const info = generateScale(colors.info, isDark)
+  const interactive = generateScale(colors.interactive, isDark)
+  const hasInk = colors.compact && Boolean(colors.ink)
+  const noInk = colors.compact && !hasInk
+  const diffAdd = generateScale(
+    colors.diffAdd ??
+      (noInk
+        ? shift(colors.success, { c: isDark ? 0.54 : 0.6, l: isDark ? 0.22 : 0.16 })
+        : shift(colors.success, { c: isDark ? 0.7 : 0.55, l: isDark ? -0.18 : 0.14 })),
+    isDark,
+  )
+  const diffDelete = generateScale(
+    colors.diffDelete ??
+      (noInk ? colors.error : shift(colors.error, { c: isDark ? 0.82 : 0.7, l: isDark ? -0.08 : 0.08 })),
+    isDark,
+  )
+  const ink = colors.ink ?? colors.neutral
+  const backgroundOverride = overrides["background-base"]
+  const backgroundHex = getHex(backgroundOverride)
+  const overlay = noInk || (Boolean(backgroundOverride) && !backgroundHex)
+  const content = (seed: HexColor, scale: HexColor[]) => {
+    if (isDark) return seed
+    return hexToOklch(seed).l > 0.82 ? scale[10] : seed
+  }
+  const modified = () => {
+    if (!colors.compact) return isDark ? "#ffba92" : "#FF8C00"
+    if (!hasInk) return isDark ? "#ffba92" : "#FF8C00"
+    const warningHue = hexToOklch(colors.warning).h
+    const deleteHue = hexToOklch(colors.diffDelete ?? colors.error).h
+    const delta = Math.abs(((((deleteHue - warningHue) % 360) + 540) % 360) - 180)
+    if (delta < 48) return isDark ? "#ffba92" : "#FF8C00"
+    return content(colors.warning, warning)
+  }
+  const surface = (
+    seed: HexColor,
+    alpha: { base: number; weak: number; weaker: number; strong: number; stronger: number },
+  ) => {
+    const base = alphaTone(seed, alpha.base)
+    return {
+      base,
+      weak: alphaTone(seed, alpha.weak),
+      weaker: alphaTone(seed, alpha.weaker),
+      strong: alphaTone(seed, alpha.strong),
+      stronger: alphaTone(seed, alpha.stronger),
+    }
+  }
+  const compactBackground =
+    colors.compact && !hasInk
+      ? isDark
+        ? {
+            base: shift(blend(colors.neutral, "#000000", 0.145), { c: 0 }),
+            weak: shift(blend(colors.neutral, "#000000", 0.27), { c: 0 }),
+            strong: shift(blend(colors.neutral, "#000000", 0.165), { c: 0 }),
+            stronger: shift(blend(colors.neutral, "#000000", 0.19), { c: 0 }),
+          }
+        : {
+            base: blend(colors.neutral, "#ffffff", 0.066),
+            weak: blend(colors.neutral, "#ffffff", 0.12),
+            strong: blend(colors.neutral, "#ffffff", 0.022),
+            stronger: blend(colors.neutral, "#ffffff", 0.024),
+          }
+      : undefined
+  const compactInkBackground =
+    colors.compact && hasInk && isDark
+      ? {
+          base: neutral[2],
+          weak: neutral[3],
+          strong: neutral[1],
+          stronger: neutral[2],
+        }
+      : undefined
 
-  const neutralAlpha = generateNeutralAlphaScale(neutral, isDark)
+  const background = backgroundHex ?? compactInkBackground?.base ?? compactBackground?.base ?? neutral[0]
+  const alphaTone = (color: HexColor, alpha: number) =>
+    overlay ? (withAlpha(color, alpha) as ColorValue) : blend(color, background, alpha)
+  const borderTone = (light: number, dark: number) =>
+    alphaTone(ink, isDark ? Math.min(1, dark + (colors.compact && hasInk ? 0.08 : 0)) : light)
+  const diffHiddenSurface = noInk
+    ? {
+        base: interactive[isDark ? 1 : 2],
+        weak: interactive[isDark ? 0 : 1],
+        weaker: interactive[isDark ? 2 : 0],
+        strong: interactive[4],
+        stronger: interactive[isDark ? 10 : 8],
+      }
+    : surface(
+        isDark ? shift(colors.interactive, { c: 0.55, l: 0 }) : shift(colors.interactive, { c: 0.45, l: 0.08 }),
+        isDark
+          ? { base: 0.14, weak: 0.08, weaker: 0.18, strong: 0.26, stronger: 0.42 }
+          : { base: 0.12, weak: 0.08, weaker: 0.16, strong: 0.24, stronger: 0.36 },
+      )
+
+  const neutralAlpha = noInk ? generateNeutralOverlayScale(neutral, isDark) : generateNeutralAlphaScale(neutral, isDark)
 
   const tokens: ResolvedTheme = {}
 
-  tokens["background-base"] = neutral[0]
-  tokens["background-weak"] = neutral[2]
-  tokens["background-strong"] = neutral[0]
-  tokens["background-stronger"] = isDark ? neutral[1] : "#fcfcfc"
+  tokens["background-base"] = compactInkBackground?.base ?? compactBackground?.base ?? neutral[0]
+  tokens["background-weak"] = compactInkBackground?.weak ?? compactBackground?.weak ?? neutral[2]
+  tokens["background-strong"] = compactInkBackground?.strong ?? compactBackground?.strong ?? neutral[0]
+  tokens["background-stronger"] =
+    compactInkBackground?.stronger ?? compactBackground?.stronger ?? (isDark ? neutral[1] : "#fcfcfc")
 
   tokens["surface-base"] = neutralAlpha[1]
   tokens["base"] = neutralAlpha[1]
@@ -73,11 +163,11 @@ export function resolveThemeVariant(variant: ThemeVariant, isDark: boolean): Res
 
   tokens["surface-diff-unchanged-base"] = isDark ? neutral[0] : "#ffffff00"
   tokens["surface-diff-skip-base"] = isDark ? neutralAlpha[0] : neutral[1]
-  tokens["surface-diff-hidden-base"] = interactive[isDark ? 1 : 2]
-  tokens["surface-diff-hidden-weak"] = interactive[isDark ? 0 : 1]
-  tokens["surface-diff-hidden-weaker"] = interactive[isDark ? 2 : 0]
-  tokens["surface-diff-hidden-strong"] = interactive[4]
-  tokens["surface-diff-hidden-stronger"] = interactive[isDark ? 10 : 8]
+  tokens["surface-diff-hidden-base"] = diffHiddenSurface.base
+  tokens["surface-diff-hidden-weak"] = diffHiddenSurface.weak
+  tokens["surface-diff-hidden-weaker"] = diffHiddenSurface.weaker
+  tokens["surface-diff-hidden-strong"] = diffHiddenSurface.strong
+  tokens["surface-diff-hidden-stronger"] = diffHiddenSurface.stronger
   tokens["surface-diff-add-base"] = diffAdd[2]
   tokens["surface-diff-add-weak"] = diffAdd[isDark ? 3 : 1]
   tokens["surface-diff-add-weaker"] = diffAdd[isDark ? 2 : 0]
@@ -96,10 +186,44 @@ export function resolveThemeVariant(variant: ThemeVariant, isDark: boolean): Res
   tokens["input-focus"] = interactive[0]
   tokens["input-disabled"] = neutral[3]
 
-  tokens["text-base"] = neutral[10]
-  tokens["text-weak"] = neutral[8]
-  tokens["text-weaker"] = neutral[7]
-  tokens["text-strong"] = neutral[11]
+  tokens["text-base"] = hasInk
+    ? ink
+    : noInk && isDark
+      ? neutralAlpha[10]
+      : noInk
+        ? isDark
+          ? blend(neutral[10], neutral[9], 0.65)
+          : blend(neutral[10], neutral[9], 0.6)
+        : neutral[10]
+  tokens["text-weak"] = hasInk
+    ? shift(ink, { l: isDark ? -0.14 : 0.12, c: 0.8 })
+    : noInk && isDark
+      ? neutralAlpha[8]
+      : noInk
+        ? isDark
+          ? blend(neutral[8], neutral[7], 0.45)
+          : blend(neutral[8], neutral[7], 0.88)
+        : neutral[8]
+  tokens["text-weaker"] = hasInk
+    ? shift(ink, { l: isDark ? -0.24 : 0.2, c: isDark ? 0.65 : 0.6 })
+    : noInk && isDark
+      ? neutralAlpha[7]
+      : noInk
+        ? isDark
+          ? blend(neutral[7], neutral[6], 0.75)
+          : blend(neutral[7], neutral[6], 0.9)
+        : neutral[7]
+  tokens["text-strong"] = hasInk
+    ? isDark && colors.compact
+      ? blend("#ffffff", ink, 0.82)
+      : shift(ink, { l: isDark ? 0.03 : -0.06, c: 0.96 })
+    : noInk && isDark
+      ? neutralAlpha[11]
+      : noInk
+        ? isDark
+          ? blend(neutral[11], neutral[10], 0.9)
+          : blend(neutral[11], neutral[10], 0.86)
+        : neutral[11]
   tokens["text-invert-base"] = isDark ? neutral[10] : neutral[1]
   tokens["text-invert-weak"] = isDark ? neutral[8] : neutral[2]
   tokens["text-invert-weaker"] = isDark ? neutral[7] : neutral[3]
@@ -133,30 +257,59 @@ export function resolveThemeVariant(variant: ThemeVariant, isDark: boolean): Res
   tokens["button-ghost-hover"] = neutralAlpha[1]
   tokens["button-ghost-hover2"] = neutralAlpha[2]
 
-  tokens["border-base"] = neutralAlpha[6]
-  tokens["border-hover"] = neutralAlpha[7]
-  tokens["border-active"] = neutralAlpha[8]
+  if (noInk) {
+    const tone = (alpha: number) => alphaTone((isDark ? "#fdfbfb" : neutral[11]) as HexColor, alpha)
+    if (isDark) {
+      tokens["surface-base"] = tone(0.043)
+      tokens["surface-base-hover"] = tone(0.039)
+      tokens["surface-base-active"] = tone(0.086)
+      tokens["surface-raised-base"] = tone(0.086)
+      tokens["surface-raised-base-hover"] = tone(0.118)
+      tokens["surface-raised-base-active"] = tone(0.149)
+      tokens["button-secondary-hover"] = tone(0.039)
+      tokens["button-ghost-hover"] = tone(0.043)
+      tokens["button-ghost-hover2"] = tone(0.086)
+      tokens["input-base"] = tone(0.043)
+      tokens["input-hover"] = tone(0.043)
+    }
+
+    if (!isDark) {
+      tokens["surface-base"] = tone(0.027)
+      tokens["surface-base-hover"] = tone(0.059)
+      tokens["surface-base-active"] = tone(0.059)
+      tokens["surface-raised-base"] = tone(0.027)
+      tokens["surface-raised-base-hover"] = tone(0.059)
+      tokens["surface-raised-base-active"] = tone(0.122)
+      tokens["button-secondary-hover"] = blend("#ffffff", background, 0.04)
+      tokens["button-ghost-hover"] = tone(0.027)
+      tokens["button-ghost-hover2"] = tone(0.059)
+    }
+  }
+
+  tokens["border-base"] = hasInk ? borderTone(0.22, 0.16) : neutralAlpha[6]
+  tokens["border-hover"] = hasInk ? borderTone(0.28, 0.2) : neutralAlpha[7]
+  tokens["border-active"] = hasInk ? borderTone(0.34, 0.24) : neutralAlpha[8]
   tokens["border-selected"] = withAlpha(interactive[8], isDark ? 0.9 : 0.99) as ColorValue
-  tokens["border-disabled"] = neutralAlpha[7]
-  tokens["border-focus"] = neutralAlpha[8]
-  tokens["border-weak-base"] = neutralAlpha[isDark ? 5 : 4]
-  tokens["border-strong-base"] = neutralAlpha[isDark ? 7 : 6]
-  tokens["border-strong-hover"] = neutralAlpha[7]
-  tokens["border-strong-active"] = neutralAlpha[isDark ? 7 : 6]
+  tokens["border-disabled"] = hasInk ? borderTone(0.18, 0.12) : neutralAlpha[7]
+  tokens["border-focus"] = hasInk ? borderTone(0.34, 0.24) : neutralAlpha[8]
+  tokens["border-weak-base"] = hasInk ? borderTone(0.1, 0.08) : neutralAlpha[isDark ? 5 : 4]
+  tokens["border-strong-base"] = hasInk ? borderTone(0.34, 0.24) : neutralAlpha[isDark ? 7 : 6]
+  tokens["border-strong-hover"] = hasInk ? borderTone(0.4, 0.28) : neutralAlpha[7]
+  tokens["border-strong-active"] = hasInk ? borderTone(0.46, 0.32) : neutralAlpha[isDark ? 7 : 6]
   tokens["border-strong-selected"] = withAlpha(interactive[5], 0.6) as ColorValue
-  tokens["border-strong-disabled"] = neutralAlpha[5]
-  tokens["border-strong-focus"] = neutralAlpha[isDark ? 7 : 6]
-  tokens["border-weak-hover"] = neutralAlpha[isDark ? 6 : 5]
-  tokens["border-weak-active"] = neutralAlpha[isDark ? 7 : 6]
+  tokens["border-strong-disabled"] = hasInk ? borderTone(0.14, 0.1) : neutralAlpha[5]
+  tokens["border-strong-focus"] = hasInk ? borderTone(0.46, 0.32) : neutralAlpha[isDark ? 7 : 6]
+  tokens["border-weak-hover"] = hasInk ? borderTone(0.16, 0.12) : neutralAlpha[isDark ? 6 : 5]
+  tokens["border-weak-active"] = hasInk ? borderTone(0.22, 0.16) : neutralAlpha[isDark ? 7 : 6]
   tokens["border-weak-selected"] = withAlpha(interactive[4], isDark ? 0.6 : 0.5) as ColorValue
-  tokens["border-weak-disabled"] = neutralAlpha[5]
-  tokens["border-weak-focus"] = neutralAlpha[isDark ? 7 : 6]
-  tokens["border-weaker-base"] = neutralAlpha[2]
-  tokens["border-weaker-hover"] = neutralAlpha[3]
-  tokens["border-weaker-active"] = neutralAlpha[5]
+  tokens["border-weak-disabled"] = hasInk ? borderTone(0.08, 0.06) : neutralAlpha[5]
+  tokens["border-weak-focus"] = hasInk ? borderTone(0.22, 0.16) : neutralAlpha[isDark ? 7 : 6]
+  tokens["border-weaker-base"] = hasInk ? borderTone(0.06, 0.04) : neutralAlpha[2]
+  tokens["border-weaker-hover"] = hasInk ? borderTone(0.1, 0.08) : neutralAlpha[3]
+  tokens["border-weaker-active"] = hasInk ? borderTone(0.16, 0.12) : neutralAlpha[5]
   tokens["border-weaker-selected"] = withAlpha(interactive[3], isDark ? 0.3 : 0.4) as ColorValue
-  tokens["border-weaker-disabled"] = neutralAlpha[1]
-  tokens["border-weaker-focus"] = neutralAlpha[5]
+  tokens["border-weaker-disabled"] = hasInk ? borderTone(0.04, 0.02) : neutralAlpha[1]
+  tokens["border-weaker-focus"] = hasInk ? borderTone(0.16, 0.12) : neutralAlpha[5]
 
   tokens["border-interactive-base"] = interactive[6]
   tokens["border-interactive-hover"] = interactive[7]
@@ -240,42 +393,120 @@ export function resolveThemeVariant(variant: ThemeVariant, isDark: boolean): Res
   tokens["icon-diff-add-active"] = diffAdd[isDark ? 10 : 11]
   tokens["icon-diff-delete-base"] = diffDelete[isDark ? 8 : 9]
   tokens["icon-diff-delete-hover"] = diffDelete[isDark ? 9 : 10]
-  tokens["icon-diff-modified-base"] = isDark ? "#ffba92" : "#FF8C00"
-
-  tokens["syntax-comment"] = "var(--text-weak)"
-  tokens["syntax-regexp"] = "var(--text-base)"
-  tokens["syntax-string"] = isDark ? "#00ceb9" : "#006656"
-  tokens["syntax-keyword"] = "var(--text-weak)"
-  tokens["syntax-primitive"] = isDark ? "#ffba92" : "#fb4804"
-  tokens["syntax-operator"] = isDark ? "var(--text-weak)" : "var(--text-base)"
-  tokens["syntax-variable"] = "var(--text-strong)"
-  tokens["syntax-property"] = isDark ? "#ff9ae2" : "#ed6dc8"
-  tokens["syntax-type"] = isDark ? "#ecf58c" : "#596600"
-  tokens["syntax-constant"] = isDark ? "#93e9f6" : "#007b80"
-  tokens["syntax-punctuation"] = isDark ? "var(--text-weak)" : "var(--text-base)"
-  tokens["syntax-object"] = "var(--text-strong)"
-  tokens["syntax-success"] = success[9]
-  tokens["syntax-warning"] = warning[9]
-  tokens["syntax-critical"] = error[isDark ? 9 : 9]
-  tokens["syntax-info"] = isDark ? "#93e9f6" : "#0092a8"
-  tokens["syntax-diff-add"] = diffAdd[10]
-  tokens["syntax-diff-delete"] = diffDelete[10]
-  tokens["syntax-diff-unknown"] = "#ff0000"
-
-  tokens["markdown-heading"] = isDark ? "#9d7cd8" : "#d68c27"
-  tokens["markdown-text"] = isDark ? "#eeeeee" : "#1a1a1a"
-  tokens["markdown-link"] = isDark ? "#fab283" : "#3b7dd8"
-  tokens["markdown-link-text"] = isDark ? "#56b6c2" : "#318795"
-  tokens["markdown-code"] = isDark ? "#7fd88f" : "#3d9a57"
-  tokens["markdown-block-quote"] = isDark ? "#e5c07b" : "#b0851f"
-  tokens["markdown-emph"] = isDark ? "#e5c07b" : "#b0851f"
-  tokens["markdown-strong"] = isDark ? "#f5a742" : "#d68c27"
-  tokens["markdown-horizontal-rule"] = isDark ? "#808080" : "#8a8a8a"
-  tokens["markdown-list-item"] = isDark ? "#fab283" : "#3b7dd8"
-  tokens["markdown-list-enumeration"] = isDark ? "#56b6c2" : "#318795"
-  tokens["markdown-image"] = isDark ? "#fab283" : "#3b7dd8"
-  tokens["markdown-image-text"] = isDark ? "#56b6c2" : "#318795"
-  tokens["markdown-code-block"] = isDark ? "#eeeeee" : "#1a1a1a"
+  tokens["icon-diff-modified-base"] = modified()
+
+  if (colors.compact) {
+    if (!hasInk) {
+      tokens["syntax-comment"] = "var(--text-weak)"
+      tokens["syntax-regexp"] = "var(--text-base)"
+      tokens["syntax-string"] = isDark ? "#00ceb9" : "#006656"
+      tokens["syntax-keyword"] = "var(--text-weak)"
+      tokens["syntax-primitive"] = isDark ? "#ffba92" : "#fb4804"
+      tokens["syntax-operator"] = isDark ? "var(--text-weak)" : "var(--text-base)"
+      tokens["syntax-variable"] = "var(--text-strong)"
+      tokens["syntax-property"] = isDark ? "#ff9ae2" : "#ed6dc8"
+      tokens["syntax-type"] = isDark ? "#ecf58c" : "#596600"
+      tokens["syntax-constant"] = isDark ? "#93e9f6" : "#007b80"
+      tokens["syntax-punctuation"] = isDark ? "var(--text-weak)" : "var(--text-base)"
+      tokens["syntax-object"] = "var(--text-strong)"
+      tokens["syntax-success"] = success[9]
+      tokens["syntax-warning"] = warning[9]
+      tokens["syntax-critical"] = error[9]
+      tokens["syntax-info"] = isDark ? "#93e9f6" : "#0092a8"
+      tokens["syntax-diff-add"] = diffAdd[10]
+      tokens["syntax-diff-delete"] = diffDelete[10]
+      tokens["syntax-diff-unknown"] = "#ff0000"
+
+      tokens["markdown-heading"] = isDark ? "#9d7cd8" : "#d68c27"
+      tokens["markdown-text"] = isDark ? "#eeeeee" : "#1a1a1a"
+      tokens["markdown-link"] = isDark ? "#fab283" : "#3b7dd8"
+      tokens["markdown-link-text"] = isDark ? "#56b6c2" : "#318795"
+      tokens["markdown-code"] = isDark ? "#7fd88f" : "#3d9a57"
+      tokens["markdown-block-quote"] = isDark ? "#e5c07b" : "#b0851f"
+      tokens["markdown-emph"] = isDark ? "#e5c07b" : "#b0851f"
+      tokens["markdown-strong"] = isDark ? "#f5a742" : "#d68c27"
+      tokens["markdown-horizontal-rule"] = isDark ? "#808080" : "#8a8a8a"
+      tokens["markdown-list-item"] = isDark ? "#fab283" : "#3b7dd8"
+      tokens["markdown-list-enumeration"] = isDark ? "#56b6c2" : "#318795"
+      tokens["markdown-image"] = isDark ? "#fab283" : "#3b7dd8"
+      tokens["markdown-image-text"] = isDark ? "#56b6c2" : "#318795"
+      tokens["markdown-code-block"] = isDark ? "#eeeeee" : "#1a1a1a"
+    }
+
+    if (hasInk) {
+      tokens["syntax-comment"] = "var(--text-weak)"
+      tokens["syntax-regexp"] = "var(--text-base)"
+      tokens["syntax-string"] = content(colors.success, success)
+      tokens["syntax-keyword"] = "var(--text-weak)"
+      tokens["syntax-primitive"] = content(colors.accent, accent)
+      tokens["syntax-operator"] = isDark ? "var(--text-weak)" : "var(--text-base)"
+      tokens["syntax-variable"] = "var(--text-strong)"
+      tokens["syntax-property"] = content(colors.primary, primary)
+      tokens["syntax-type"] = content(colors.warning, warning)
+      tokens["syntax-constant"] = content(colors.info, info)
+      tokens["syntax-punctuation"] = isDark ? "var(--text-weak)" : "var(--text-base)"
+      tokens["syntax-object"] = "var(--text-strong)"
+      tokens["syntax-success"] = success[9]
+      tokens["syntax-warning"] = warning[9]
+      tokens["syntax-critical"] = error[9]
+      tokens["syntax-info"] = content(colors.info, info)
+      tokens["syntax-diff-add"] = diffAdd[10]
+      tokens["syntax-diff-delete"] = diffDelete[10]
+      tokens["syntax-diff-unknown"] = "#ff0000"
+
+      tokens["markdown-heading"] = content(colors.primary, primary)
+      tokens["markdown-text"] = tokens["text-base"]
+      tokens["markdown-link"] = content(colors.interactive, interactive)
+      tokens["markdown-link-text"] = content(colors.info, info)
+      tokens["markdown-code"] = content(colors.success, success)
+      tokens["markdown-block-quote"] = content(colors.warning, warning)
+      tokens["markdown-emph"] = content(colors.warning, warning)
+      tokens["markdown-strong"] = content(colors.accent, accent)
+      tokens["markdown-horizontal-rule"] = tokens["border-base"]
+      tokens["markdown-list-item"] = content(colors.interactive, interactive)
+      tokens["markdown-list-enumeration"] = content(colors.info, info)
+      tokens["markdown-image"] = content(colors.interactive, interactive)
+      tokens["markdown-image-text"] = content(colors.info, info)
+      tokens["markdown-code-block"] = tokens["text-base"]
+    }
+  }
+
+  if (!colors.compact) {
+    tokens["syntax-comment"] = "var(--text-weak)"
+    tokens["syntax-regexp"] = "var(--text-base)"
+    tokens["syntax-string"] = isDark ? "#00ceb9" : "#006656"
+    tokens["syntax-keyword"] = "var(--text-weak)"
+    tokens["syntax-primitive"] = isDark ? "#ffba92" : "#fb4804"
+    tokens["syntax-operator"] = isDark ? "var(--text-weak)" : "var(--text-base)"
+    tokens["syntax-variable"] = "var(--text-strong)"
+    tokens["syntax-property"] = isDark ? "#ff9ae2" : "#ed6dc8"
+    tokens["syntax-type"] = isDark ? "#ecf58c" : "#596600"
+    tokens["syntax-constant"] = isDark ? "#93e9f6" : "#007b80"
+    tokens["syntax-punctuation"] = isDark ? "var(--text-weak)" : "var(--text-base)"
+    tokens["syntax-object"] = "var(--text-strong)"
+    tokens["syntax-success"] = success[9]
+    tokens["syntax-warning"] = warning[9]
+    tokens["syntax-critical"] = error[9]
+    tokens["syntax-info"] = isDark ? "#93e9f6" : "#0092a8"
+    tokens["syntax-diff-add"] = diffAdd[10]
+    tokens["syntax-diff-delete"] = diffDelete[10]
+    tokens["syntax-diff-unknown"] = "#ff0000"
+
+    tokens["markdown-heading"] = isDark ? "#9d7cd8" : "#d68c27"
+    tokens["markdown-text"] = isDark ? "#eeeeee" : "#1a1a1a"
+    tokens["markdown-link"] = isDark ? "#fab283" : "#3b7dd8"
+    tokens["markdown-link-text"] = isDark ? "#56b6c2" : "#318795"
+    tokens["markdown-code"] = isDark ? "#7fd88f" : "#3d9a57"
+    tokens["markdown-block-quote"] = isDark ? "#e5c07b" : "#b0851f"
+    tokens["markdown-emph"] = isDark ? "#e5c07b" : "#b0851f"
+    tokens["markdown-strong"] = isDark ? "#f5a742" : "#d68c27"
+    tokens["markdown-horizontal-rule"] = isDark ? "#808080" : "#8a8a8a"
+    tokens["markdown-list-item"] = isDark ? "#fab283" : "#3b7dd8"
+    tokens["markdown-list-enumeration"] = isDark ? "#56b6c2" : "#318795"
+    tokens["markdown-image"] = isDark ? "#fab283" : "#3b7dd8"
+    tokens["markdown-image-text"] = isDark ? "#56b6c2" : "#318795"
+    tokens["markdown-code-block"] = isDark ? "#eeeeee" : "#1a1a1a"
+  }
 
   tokens["avatar-background-pink"] = isDark ? "#501b3f" : "#feeef8"
   tokens["avatar-background-mint"] = isDark ? "#033a34" : "#e1fbf4"
@@ -294,9 +525,97 @@ export function resolveThemeVariant(variant: ThemeVariant, isDark: boolean): Res
     tokens[key] = value
   }
 
+  if (hasInk && "text-weak" in overrides && !("text-weaker" in overrides)) {
+    const weak = tokens["text-weak"]
+    if (weak.startsWith("#")) {
+      tokens["text-weaker"] = shift(weak as HexColor, { l: isDark ? -0.12 : 0.12, c: 0.75 })
+    } else {
+      tokens["text-weaker"] = weak
+    }
+  }
+
+  if (colors.compact && hasInk) {
+    if (!("markdown-text" in overrides)) {
+      tokens["markdown-text"] = tokens["text-base"]
+    }
+    if (!("markdown-code-block" in overrides)) {
+      tokens["markdown-code-block"] = tokens["text-base"]
+    }
+  }
+
+  if (!("text-stronger" in overrides)) {
+    tokens["text-stronger"] = tokens["text-strong"]
+  }
+
   return tokens
 }
 
+interface ThemeColors {
+  compact: boolean
+  neutral: HexColor
+  ink?: HexColor
+  primary: HexColor
+  accent: HexColor
+  success: HexColor
+  warning: HexColor
+  error: HexColor
+  info: HexColor
+  interactive: HexColor
+  diffAdd?: HexColor
+  diffDelete?: HexColor
+}
+
+function getColors(variant: ThemeVariant): ThemeColors {
+  const input = variant as { palette?: unknown; seeds?: unknown }
+  if (input.palette && input.seeds) {
+    throw new Error("Theme variant cannot define both `palette` and `seeds`")
+  }
+
+  if (variant.palette) {
+    return {
+      compact: true,
+      neutral: variant.palette.neutral,
+      ink: variant.palette.ink,
+      primary: variant.palette.primary,
+      accent: variant.palette.accent ?? variant.palette.info,
+      success: variant.palette.success,
+      warning: variant.palette.warning,
+      error: variant.palette.error,
+      info: variant.palette.info,
+      interactive: variant.palette.interactive ?? variant.palette.primary,
+      diffAdd: variant.palette.diffAdd,
+      diffDelete: variant.palette.diffDelete,
+    }
+  }
+
+  if (variant.seeds) {
+    return {
+      compact: false,
+      neutral: variant.seeds.neutral,
+      ink: undefined,
+      primary: variant.seeds.primary,
+      accent: variant.seeds.info,
+      success: variant.seeds.success,
+      warning: variant.seeds.warning,
+      error: variant.seeds.error,
+      info: variant.seeds.info,
+      interactive: variant.seeds.interactive,
+      diffAdd: variant.seeds.diffAdd,
+      diffDelete: variant.seeds.diffDelete,
+    }
+  }
+
+  throw new Error("Theme variant requires `palette` or `seeds`")
+}
+
+function generateNeutralOverlayScale(neutralScale: HexColor[], isDark: boolean): ColorValue[] {
+  const alphas = isDark
+    ? [0.012, 0.043, 0.086, 0.118, 0.149, 0.192, 0.247, 0.349, 0.404, 0.463, 0.698, 0.941]
+    : [0.012, 0.027, 0.059, 0.09, 0.122, 0.149, 0.196, 0.267, 0.455, 0.612, 0.494, 0.875]
+  const color = (isDark ? "#fdfbfb" : "#000000") as HexColor
+  return alphas.map((alpha) => withAlpha(color, alpha) as ColorValue)
+}
+
 function generateNeutralAlphaScale(neutralScale: HexColor[], isDark: boolean): HexColor[] {
   const alphas = isDark
     ? [0.02, 0.04, 0.08, 0.12, 0.16, 0.2, 0.26, 0.36, 0.44, 0.52, 0.72, 0.94]
@@ -312,6 +631,11 @@ function generateNeutralAlphaScale(neutralScale: HexColor[], isDark: boolean): H
   })
 }
 
+function getHex(value: ColorValue | undefined): HexColor | undefined {
+  if (!value?.startsWith("#")) return
+  return value as HexColor
+}
+
 export function resolveTheme(theme: DesktopTheme): { light: ResolvedTheme; dark: ResolvedTheme } {
   return {
     light: resolveThemeVariant(theme.light, false),

+ 6 - 104
packages/ui/src/theme/themes/aura.json

@@ -3,129 +3,31 @@
   "name": "Aura",
   "id": "aura",
   "light": {
-    "seeds": {
+    "palette": {
       "neutral": "#f5f0ff",
+      "ink": "#2d2640",
       "primary": "#a277ff",
+      "accent": "#d94f4f",
       "success": "#40bf7a",
       "warning": "#d9a24a",
       "error": "#d94f4f",
       "info": "#5bb8d9",
-      "interactive": "#a277ff",
       "diffAdd": "#b3e6cc",
       "diffDelete": "#f5b3b3"
-    },
-    "overrides": {
-      "background-base": "#f5f0ff",
-      "background-weak": "#efe8fc",
-      "background-strong": "#faf7ff",
-      "background-stronger": "#fdfcff",
-      "border-weak-base": "#e0d6f2",
-      "border-weak-hover": "#d5c9eb",
-      "border-weak-active": "#cbbee3",
-      "border-weak-selected": "#c0b3dc",
-      "border-weak-disabled": "#f9f6ff",
-      "border-weak-focus": "#c5b8df",
-      "border-base": "#b5a6d4",
-      "border-hover": "#aa99cc",
-      "border-active": "#9f8dc4",
-      "border-selected": "#9480bc",
-      "border-disabled": "#ede7f9",
-      "border-focus": "#a593c8",
-      "border-strong-base": "#8068a8",
-      "border-strong-hover": "#735a9c",
-      "border-strong-active": "#664d90",
-      "border-strong-selected": "#5a4184",
-      "border-strong-disabled": "#d4c8ed",
-      "border-strong-focus": "#6d5396",
-      "surface-diff-add-base": "#e8f5ed",
-      "surface-diff-delete-base": "#fae8e8",
-      "surface-diff-hidden-base": "#e8e4f5",
-      "text-base": "#2d2640",
-      "text-weak": "#5c5270",
-      "text-strong": "#15101f",
-      "syntax-string": "#40bf7a",
-      "syntax-primitive": "#d94f4f",
-      "syntax-property": "#a277ff",
-      "syntax-type": "#d9a24a",
-      "syntax-constant": "#5bb8d9",
-      "syntax-info": "#5bb8d9",
-      "markdown-heading": "#a277ff",
-      "markdown-text": "#2d2640",
-      "markdown-link": "#c17ac8",
-      "markdown-link-text": "#a277ff",
-      "markdown-code": "#40bf7a",
-      "markdown-block-quote": "#6d6d6d",
-      "markdown-emph": "#d9a24a",
-      "markdown-strong": "#a277ff",
-      "markdown-horizontal-rule": "#d4c8ed",
-      "markdown-list-item": "#a277ff",
-      "markdown-list-enumeration": "#a277ff",
-      "markdown-image": "#c17ac8",
-      "markdown-image-text": "#a277ff",
-      "markdown-code-block": "#5bb8d9"
     }
   },
   "dark": {
-    "seeds": {
+    "palette": {
       "neutral": "#15141b",
+      "ink": "#edecee",
       "primary": "#a277ff",
+      "accent": "#ff6767",
       "success": "#61ffca",
       "warning": "#ffca85",
       "error": "#ff6767",
       "info": "#82e2ff",
-      "interactive": "#a277ff",
       "diffAdd": "#61ffca",
       "diffDelete": "#ff6767"
-    },
-    "overrides": {
-      "background-base": "#15141b",
-      "background-weak": "#1a1921",
-      "background-strong": "#121118",
-      "background-stronger": "#0f0e14",
-      "border-weak-base": "#2d2b38",
-      "border-weak-hover": "#332f42",
-      "border-weak-active": "#38354c",
-      "border-weak-selected": "#3e3a56",
-      "border-weak-disabled": "#1a1921",
-      "border-weak-focus": "#363350",
-      "border-base": "#433f5a",
-      "border-hover": "#4a4565",
-      "border-active": "#514c70",
-      "border-selected": "#58527b",
-      "border-disabled": "#1f1e28",
-      "border-focus": "#4e496c",
-      "border-strong-base": "#635c8a",
-      "border-strong-hover": "#6d6597",
-      "border-strong-active": "#776fa4",
-      "border-strong-selected": "#8179b1",
-      "border-strong-disabled": "#2a283a",
-      "border-strong-focus": "#716a9e",
-      "surface-diff-add-base": "#162620",
-      "surface-diff-delete-base": "#26161a",
-      "surface-diff-hidden-base": "#1e1d2a",
-      "text-base": "#edecee",
-      "text-weak": "#6d6d6d",
-      "text-strong": "#ffffff",
-      "syntax-string": "#61ffca",
-      "syntax-primitive": "#ff6767",
-      "syntax-property": "#a277ff",
-      "syntax-type": "#ffca85",
-      "syntax-constant": "#82e2ff",
-      "syntax-info": "#82e2ff",
-      "markdown-heading": "#a277ff",
-      "markdown-text": "#edecee",
-      "markdown-link": "#f694ff",
-      "markdown-link-text": "#a277ff",
-      "markdown-code": "#61ffca",
-      "markdown-block-quote": "#6d6d6d",
-      "markdown-emph": "#ffca85",
-      "markdown-strong": "#a277ff",
-      "markdown-horizontal-rule": "#2d2b38",
-      "markdown-list-item": "#a277ff",
-      "markdown-list-enumeration": "#a277ff",
-      "markdown-image": "#f694ff",
-      "markdown-image-text": "#a277ff",
-      "markdown-code-block": "#edecee"
     }
   }
 }

+ 6 - 106
packages/ui/src/theme/themes/ayu.json

@@ -3,131 +3,31 @@
   "name": "Ayu",
   "id": "ayu",
   "light": {
-    "seeds": {
+    "palette": {
       "neutral": "#fdfaf4",
+      "ink": "#4f5964",
       "primary": "#4aa8c8",
+      "accent": "#ef7d71",
       "success": "#5fb978",
       "warning": "#ea9f41",
       "error": "#e6656a",
       "info": "#2f9bce",
-      "interactive": "#4aa8c8",
       "diffAdd": "#b1d780",
       "diffDelete": "#e6656a"
-    },
-    "overrides": {
-      "background-base": "#fdfaf4",
-      "background-weak": "#fcf9f3",
-      "background-strong": "#fbf8f2",
-      "background-stronger": "#faf7f1",
-      "surface-raised-base-hover": "#f4f0e9",
-      "border-weak-base": "#e6ddcf",
-      "border-weak-hover": "#dcd3c5",
-      "border-weak-active": "#d1c9ba",
-      "border-weak-selected": "#c6bfaf",
-      "border-weak-disabled": "#f7f0e6",
-      "border-weak-focus": "#cbc4b6",
-      "border-base": "#bfb3a3",
-      "border-hover": "#b4a898",
-      "border-active": "#a99e8e",
-      "border-selected": "#9e9383",
-      "border-disabled": "#efe5d8",
-      "border-focus": "#b09f8f",
-      "border-strong-base": "#837765",
-      "border-strong-hover": "#7a6f5f",
-      "border-strong-active": "#716655",
-      "border-strong-selected": "#685e4e",
-      "border-strong-disabled": "#d8cabc",
-      "border-strong-focus": "#766b5c",
-      "surface-diff-add-base": "#eef5e4",
-      "surface-diff-delete-base": "#fde5e5",
-      "surface-diff-hidden-base": "#e3edf3",
-      "text-base": "#4f5964",
-      "text-weak": "#77818d",
-      "text-strong": "#1b232b",
-      "syntax-string": "#7fad00",
-      "syntax-primitive": "#ef7d71",
-      "syntax-property": "#4aa8c8",
-      "syntax-type": "#ed982e",
-      "syntax-constant": "#2f9bce",
-      "syntax-info": "#2f9bce",
-      "markdown-heading": "#4aa8c8",
-      "markdown-text": "#4f5964",
-      "markdown-link": "#4aa8c8",
-      "markdown-link-text": "#2f9bce",
-      "markdown-code": "#7fad00",
-      "markdown-block-quote": "#ed982e",
-      "markdown-emph": "#ed982e",
-      "markdown-strong": "#f07f72",
-      "markdown-horizontal-rule": "#d7cec0",
-      "markdown-list-item": "#4aa8c8",
-      "markdown-list-enumeration": "#2f9bce",
-      "markdown-image": "#4aa8c8",
-      "markdown-image-text": "#2f9bce",
-      "markdown-code-block": "#4aa8c8"
     }
   },
   "dark": {
-    "seeds": {
+    "palette": {
       "neutral": "#0f1419",
+      "ink": "#d6dae0",
       "primary": "#3fb7e3",
+      "accent": "#f2856f",
       "success": "#78d05c",
       "warning": "#e4a75c",
       "error": "#f58572",
       "info": "#66c6f1",
-      "interactive": "#3fb7e3",
       "diffAdd": "#59c57c",
       "diffDelete": "#f58572"
-    },
-    "overrides": {
-      "background-base": "#0f1419",
-      "background-weak": "#18222c",
-      "background-strong": "#0b1015",
-      "background-stronger": "#080c10",
-      "surface-raised-base-hover": "#0f1419",
-      "border-weak-base": "#2b3440",
-      "border-weak-hover": "#323c49",
-      "border-weak-active": "#394454",
-      "border-weak-selected": "#415063",
-      "border-weak-disabled": "#0a0e12",
-      "border-weak-focus": "#374453",
-      "border-base": "#475367",
-      "border-hover": "#515f75",
-      "border-active": "#5d6b83",
-      "border-selected": "#687795",
-      "border-disabled": "#11161d",
-      "border-focus": "#56647c",
-      "border-strong-base": "#73819b",
-      "border-strong-hover": "#7f8da8",
-      "border-strong-active": "#8b99b5",
-      "border-strong-selected": "#98a6c3",
-      "border-strong-disabled": "#1b222c",
-      "border-strong-focus": "#8391ad",
-      "surface-diff-add-base": "#132f27",
-      "surface-diff-delete-base": "#361d20",
-      "surface-diff-hidden-base": "#1b2632",
-      "text-base": "#d6dae0",
-      "text-weak": "#a3adba",
-      "text-strong": "#fbfbfd",
-      "syntax-string": "#b1c74a",
-      "syntax-primitive": "#f2856f",
-      "syntax-property": "#3fb7e3",
-      "syntax-type": "#e4a75c",
-      "syntax-constant": "#66c6f1",
-      "syntax-info": "#66c6f1",
-      "markdown-heading": "#3fb7e3",
-      "markdown-text": "#d6dae0",
-      "markdown-link": "#3fb7e3",
-      "markdown-link-text": "#66c6f1",
-      "markdown-code": "#b1c74a",
-      "markdown-block-quote": "#e4a75c",
-      "markdown-emph": "#e4a75c",
-      "markdown-strong": "#f2856f",
-      "markdown-horizontal-rule": "#2b3542",
-      "markdown-list-item": "#3fb7e3",
-      "markdown-list-enumeration": "#66c6f1",
-      "markdown-image": "#3fb7e3",
-      "markdown-image-text": "#66c6f1",
-      "markdown-code-block": "#d6dae0"
     }
   }
 }

+ 6 - 93
packages/ui/src/theme/themes/carbonfox.json

@@ -3,9 +3,11 @@
   "name": "Carbonfox",
   "id": "carbonfox",
   "light": {
-    "seeds": {
+    "palette": {
       "neutral": "#8e8e8e",
+      "ink": "#161616",
       "primary": "#0072c3",
+      "accent": "#da1e28",
       "success": "#198038",
       "warning": "#f1c21b",
       "error": "#da1e28",
@@ -13,46 +15,14 @@
       "interactive": "#0f62fe",
       "diffAdd": "#198038",
       "diffDelete": "#da1e28"
-    },
-    "overrides": {
-      "background-base": "#ffffff",
-      "background-weak": "#f4f4f4",
-      "background-strong": "#e8e8e8",
-      "background-stronger": "#dcdcdc",
-      "surface-raised-strong": "#ffffff",
-      "surface-raised-stronger": "#ffffff",
-      "surface-float-base": "#161616",
-      "surface-float-base-hover": "#262626",
-      "text-base": "#161616",
-      "text-weak": "#525252",
-      "text-strong": "#000000",
-      "syntax-string": "#198038",
-      "syntax-primitive": "#da1e28",
-      "syntax-property": "#0043ce",
-      "syntax-type": "#007d79",
-      "syntax-constant": "#6929c4",
-      "syntax-keyword": "#525252",
-      "syntax-info": "#0043ce",
-      "markdown-heading": "#0043ce",
-      "markdown-text": "#161616",
-      "markdown-link": "#0043ce",
-      "markdown-link-text": "#0072c3",
-      "markdown-code": "#198038",
-      "markdown-block-quote": "#525252",
-      "markdown-emph": "#6929c4",
-      "markdown-strong": "#161616",
-      "markdown-horizontal-rule": "#c6c6c6",
-      "markdown-list-item": "#0072c3",
-      "markdown-list-enumeration": "#0072c3",
-      "markdown-image": "#0043ce",
-      "markdown-image-text": "#0072c3",
-      "markdown-code-block": "#393939"
     }
   },
   "dark": {
-    "seeds": {
+    "palette": {
       "neutral": "#393939",
+      "ink": "#f2f4f8",
       "primary": "#33b1ff",
+      "accent": "#ff8389",
       "success": "#42be65",
       "warning": "#f1c21b",
       "error": "#ff8389",
@@ -60,63 +30,6 @@
       "interactive": "#4589ff",
       "diffAdd": "#42be65",
       "diffDelete": "#ff8389"
-    },
-    "overrides": {
-      "background-base": "#161616",
-      "background-weak": "#262626",
-      "background-strong": "#0d0d0d",
-      "background-stronger": "#000000",
-      "surface-raised-base": "#1c1c1c",
-      "surface-raised-base-hover": "#262626",
-      "surface-raised-strong": "#262626",
-      "surface-raised-strong-hover": "#303030",
-      "surface-raised-stronger": "#303030",
-      "surface-raised-stronger-hover": "#393939",
-      "surface-raised-stronger-non-alpha": "#303030",
-      "surface-float-base": "#0d0d0d",
-      "surface-float-base-hover": "#1a1a1a",
-      "surface-inset-base": "#0d0d0d",
-      "surface-inset-strong": "#000000",
-      "surface-base": "#1e1e1e",
-      "surface-base-hover": "#262626",
-      "surface-diff-add-base": "#0e3a22",
-      "surface-diff-delete-base": "#4d1a1f",
-      "input-base": "#262626",
-      "input-hover": "#303030",
-      "button-secondary-base": "#393939",
-      "button-secondary-hover": "#4c4c4c",
-      "border-weak-base": "#393939",
-      "border-weak-hover": "#4c4c4c",
-      "border-base": "#525252",
-      "border-hover": "#636363",
-      "border-strong-base": "#6f6f6f",
-      "text-base": "#f2f4f8",
-      "text-weak": "#8d8d8d",
-      "text-weaker": "#6f6f6f",
-      "text-strong": "#ffffff",
-      "icon-base": "#8d8d8d",
-      "icon-weak-base": "#6f6f6f",
-      "syntax-string": "#42be65",
-      "syntax-primitive": "#ff8389",
-      "syntax-property": "#78a9ff",
-      "syntax-type": "#08bdba",
-      "syntax-constant": "#be95ff",
-      "syntax-keyword": "#8d8d8d",
-      "syntax-info": "#78a9ff",
-      "markdown-heading": "#82cfff",
-      "markdown-text": "#f2f4f8",
-      "markdown-link": "#78a9ff",
-      "markdown-link-text": "#33b1ff",
-      "markdown-code": "#42be65",
-      "markdown-block-quote": "#8d8d8d",
-      "markdown-emph": "#be95ff",
-      "markdown-strong": "#ffffff",
-      "markdown-horizontal-rule": "#393939",
-      "markdown-list-item": "#33b1ff",
-      "markdown-list-enumeration": "#33b1ff",
-      "markdown-image": "#78a9ff",
-      "markdown-image-text": "#33b1ff",
-      "markdown-code-block": "#c6c6c6"
     }
   }
 }

+ 6 - 104
packages/ui/src/theme/themes/catppuccin.json

@@ -3,129 +3,31 @@
   "name": "Catppuccin",
   "id": "catppuccin",
   "light": {
-    "seeds": {
+    "palette": {
       "neutral": "#f5e0dc",
+      "ink": "#4c4f69",
       "primary": "#7287fd",
+      "accent": "#d20f39",
       "success": "#40a02b",
       "warning": "#df8e1d",
       "error": "#d20f39",
       "info": "#04a5e5",
-      "interactive": "#7287fd",
       "diffAdd": "#a6d189",
       "diffDelete": "#e78284"
-    },
-    "overrides": {
-      "background-base": "#f5e0dc",
-      "background-weak": "#f2d8d4",
-      "background-strong": "#f9e8e4",
-      "background-stronger": "#fdeeee",
-      "border-weak-base": "#e0cfd3",
-      "border-weak-hover": "#d6c4c8",
-      "border-weak-active": "#cdb9be",
-      "border-weak-selected": "#c2aeb4",
-      "border-weak-disabled": "#fbeff2",
-      "border-weak-focus": "#c7b4ba",
-      "border-base": "#bca6b2",
-      "border-hover": "#b19ca8",
-      "border-active": "#a6929e",
-      "border-selected": "#9a8894",
-      "border-disabled": "#f3e4e7",
-      "border-focus": "#ab97a1",
-      "border-strong-base": "#83677f",
-      "border-strong-hover": "#775b73",
-      "border-strong-active": "#6b5068",
-      "border-strong-selected": "#5f465d",
-      "border-strong-disabled": "#d9c5cf",
-      "border-strong-focus": "#714f66",
-      "surface-diff-add-base": "#edf5e6",
-      "surface-diff-delete-base": "#fde1e3",
-      "surface-diff-hidden-base": "#e4e2f6",
-      "text-base": "#4c4f69",
-      "text-weak": "#6c6f85",
-      "text-strong": "#1f1f2a",
-      "syntax-string": "#40a02b",
-      "syntax-primitive": "#d20f39",
-      "syntax-property": "#7287fd",
-      "syntax-type": "#df8e1d",
-      "syntax-constant": "#04a5e5",
-      "syntax-info": "#04a5e5",
-      "markdown-heading": "#7287fd",
-      "markdown-text": "#4c4f69",
-      "markdown-link": "#7287fd",
-      "markdown-link-text": "#04a5e5",
-      "markdown-code": "#40a02b",
-      "markdown-block-quote": "#df8e1d",
-      "markdown-emph": "#df8e1d",
-      "markdown-strong": "#d20f39",
-      "markdown-horizontal-rule": "#d4c5cf",
-      "markdown-list-item": "#7287fd",
-      "markdown-list-enumeration": "#04a5e5",
-      "markdown-image": "#7287fd",
-      "markdown-image-text": "#04a5e5",
-      "markdown-code-block": "#7287fd"
     }
   },
   "dark": {
-    "seeds": {
+    "palette": {
       "neutral": "#1e1e2e",
+      "ink": "#cdd6f4",
       "primary": "#b4befe",
+      "accent": "#f38ba8",
       "success": "#a6d189",
       "warning": "#f4b8e4",
       "error": "#f38ba8",
       "info": "#89dceb",
-      "interactive": "#b4befe",
       "diffAdd": "#94e2d5",
       "diffDelete": "#f38ba8"
-    },
-    "overrides": {
-      "background-base": "#1e1e2e",
-      "background-weak": "#211f31",
-      "background-strong": "#1c1c29",
-      "background-stronger": "#191926",
-      "border-weak-base": "#35324a",
-      "border-weak-hover": "#393655",
-      "border-weak-active": "#403c61",
-      "border-weak-selected": "#47436d",
-      "border-weak-disabled": "#141426",
-      "border-weak-focus": "#3d3a63",
-      "border-base": "#4a4763",
-      "border-hover": "#524f70",
-      "border-active": "#5a577d",
-      "border-selected": "#625f8a",
-      "border-disabled": "#1b1a2c",
-      "border-focus": "#575379",
-      "border-strong-base": "#6e6a8c",
-      "border-strong-hover": "#787497",
-      "border-strong-active": "#8380a2",
-      "border-strong-selected": "#8d8bad",
-      "border-strong-disabled": "#232237",
-      "border-strong-focus": "#7b779b",
-      "surface-diff-add-base": "#1d2c30",
-      "surface-diff-delete-base": "#2c1f2a",
-      "surface-diff-hidden-base": "#232538",
-      "text-base": "#cdd6f4",
-      "text-weak": "#a6adc8",
-      "text-strong": "#f4f2ff",
-      "syntax-string": "#a6e3a1",
-      "syntax-primitive": "#f38ba8",
-      "syntax-property": "#b4befe",
-      "syntax-type": "#f9e2af",
-      "syntax-constant": "#89dceb",
-      "syntax-info": "#89dceb",
-      "markdown-heading": "#b4befe",
-      "markdown-text": "#cdd6f4",
-      "markdown-link": "#b4befe",
-      "markdown-link-text": "#89dceb",
-      "markdown-code": "#a6e3a1",
-      "markdown-block-quote": "#f9e2af",
-      "markdown-emph": "#f9e2af",
-      "markdown-strong": "#f38ba8",
-      "markdown-horizontal-rule": "#2e2d45",
-      "markdown-list-item": "#b4befe",
-      "markdown-list-enumeration": "#89dceb",
-      "markdown-image": "#b4befe",
-      "markdown-image-text": "#89dceb",
-      "markdown-code-block": "#cdd6f4"
     }
   }
 }

+ 6 - 104
packages/ui/src/theme/themes/dracula.json

@@ -3,129 +3,31 @@
   "name": "Dracula",
   "id": "dracula",
   "light": {
-    "seeds": {
+    "palette": {
       "neutral": "#f8f8f2",
+      "ink": "#1f1f2f",
       "primary": "#7c6bf5",
+      "accent": "#d16090",
       "success": "#2fbf71",
       "warning": "#f7a14d",
       "error": "#d9536f",
       "info": "#1d7fc5",
-      "interactive": "#7c6bf5",
       "diffAdd": "#9fe3b3",
       "diffDelete": "#f8a1b8"
-    },
-    "overrides": {
-      "background-base": "#f8f8f2",
-      "background-weak": "#f1f2ed",
-      "background-strong": "#f6f6f1",
-      "background-stronger": "#f2f2ec",
-      "border-weak-base": "#e2e3da",
-      "border-weak-hover": "#d8d9d0",
-      "border-weak-active": "#cfd0c7",
-      "border-weak-selected": "#c4c6bc",
-      "border-weak-disabled": "#eceee3",
-      "border-weak-focus": "#c9cabf",
-      "border-base": "#c4c6ba",
-      "border-hover": "#b8baae",
-      "border-active": "#abada3",
-      "border-selected": "#979a90",
-      "border-disabled": "#e5e7dd",
-      "border-focus": "#b0b2a7",
-      "border-strong-base": "#9fa293",
-      "border-strong-hover": "#8e9185",
-      "border-strong-active": "#7e8176",
-      "border-strong-selected": "#6f7268",
-      "border-strong-disabled": "#c7c9be",
-      "border-strong-focus": "#878b7f",
-      "surface-diff-add-base": "#e4f5e6",
-      "surface-diff-delete-base": "#fae4eb",
-      "surface-diff-hidden-base": "#dedfe9",
-      "text-base": "#1f1f2f",
-      "text-weak": "#52526b",
-      "text-strong": "#05040c",
-      "syntax-string": "#2fbf71",
-      "syntax-primitive": "#d16090",
-      "syntax-property": "#7c6bf5",
-      "syntax-type": "#f7a14d",
-      "syntax-constant": "#1d7fc5",
-      "syntax-info": "#1d7fc5",
-      "markdown-heading": "#7c6bf5",
-      "markdown-text": "#1f1f2f",
-      "markdown-link": "#7c6bf5",
-      "markdown-link-text": "#1d7fc5",
-      "markdown-code": "#2fbf71",
-      "markdown-block-quote": "#f7a14d",
-      "markdown-emph": "#f7a14d",
-      "markdown-strong": "#d16090",
-      "markdown-horizontal-rule": "#c3c5d4",
-      "markdown-list-item": "#7c6bf5",
-      "markdown-list-enumeration": "#1d7fc5",
-      "markdown-image": "#7c6bf5",
-      "markdown-image-text": "#1d7fc5",
-      "markdown-code-block": "#1d7fc5"
     }
   },
   "dark": {
-    "seeds": {
+    "palette": {
       "neutral": "#1d1e28",
+      "ink": "#f8f8f2",
       "primary": "#bd93f9",
+      "accent": "#ff79c6",
       "success": "#50fa7b",
       "warning": "#ffb86c",
       "error": "#ff5555",
       "info": "#8be9fd",
-      "interactive": "#bd93f9",
       "diffAdd": "#2fb27d",
       "diffDelete": "#ff6b81"
-    },
-    "overrides": {
-      "background-base": "#14151f",
-      "background-weak": "#181926",
-      "background-strong": "#161722",
-      "background-stronger": "#191a26",
-      "border-weak-base": "#2d2f3c",
-      "border-weak-hover": "#303244",
-      "border-weak-active": "#35364c",
-      "border-weak-selected": "#3b3d55",
-      "border-weak-disabled": "#1e1f2b",
-      "border-weak-focus": "#383a50",
-      "border-base": "#3f415a",
-      "border-hover": "#464967",
-      "border-active": "#4d5073",
-      "border-selected": "#55587f",
-      "border-disabled": "#272834",
-      "border-focus": "#4a4d6d",
-      "border-strong-base": "#606488",
-      "border-strong-hover": "#6a6e96",
-      "border-strong-active": "#7378a3",
-      "border-strong-selected": "#7d82b1",
-      "border-strong-disabled": "#343649",
-      "border-strong-focus": "#6f739c",
-      "surface-diff-add-base": "#1f2a2f",
-      "surface-diff-delete-base": "#2d1f27",
-      "surface-diff-hidden-base": "#24253a",
-      "text-base": "#f8f8f2",
-      "text-weak": "#b6b9e4",
-      "text-strong": "#ffffff",
-      "syntax-string": "#50fa7b",
-      "syntax-primitive": "#ff79c6",
-      "syntax-property": "#bd93f9",
-      "syntax-type": "#ffb86c",
-      "syntax-constant": "#8be9fd",
-      "syntax-info": "#8be9fd",
-      "markdown-heading": "#bd93f9",
-      "markdown-text": "#f8f8f2",
-      "markdown-link": "#bd93f9",
-      "markdown-link-text": "#8be9fd",
-      "markdown-code": "#50fa7b",
-      "markdown-block-quote": "#ffb86c",
-      "markdown-emph": "#ffb86c",
-      "markdown-strong": "#ff79c6",
-      "markdown-horizontal-rule": "#44475a",
-      "markdown-list-item": "#bd93f9",
-      "markdown-list-enumeration": "#8be9fd",
-      "markdown-image": "#bd93f9",
-      "markdown-image-text": "#8be9fd",
-      "markdown-code-block": "#f8f8f2"
     }
   }
 }

+ 6 - 105
packages/ui/src/theme/themes/gruvbox.json

@@ -3,130 +3,31 @@
   "name": "Gruvbox",
   "id": "gruvbox",
   "light": {
-    "seeds": {
+    "palette": {
       "neutral": "#fbf1c7",
+      "ink": "#3c3836",
       "primary": "#076678",
+      "accent": "#9d0006",
       "success": "#79740e",
       "warning": "#b57614",
       "error": "#9d0006",
       "info": "#8f3f71",
-      "interactive": "#076678",
       "diffAdd": "#79740e",
       "diffDelete": "#9d0006"
-    },
-    "overrides": {
-      "background-base": "#fbf1c7",
-      "background-weak": "#f2e5bc",
-      "background-strong": "#f9f5d7",
-      "background-stronger": "#fdf9e8",
-      "surface-raised-stronger-non-alpha": "#fbfaf5",
-      "border-weak-base": "#d5c4a1",
-      "border-weak-hover": "#c9b897",
-      "border-weak-active": "#bdae93",
-      "border-weak-selected": "#b0a285",
-      "border-weak-disabled": "#f0e4b8",
-      "border-weak-focus": "#c4b590",
-      "border-base": "#bdae93",
-      "border-hover": "#b0a285",
-      "border-active": "#a89984",
-      "border-selected": "#928374",
-      "border-disabled": "#e5d9ad",
-      "border-focus": "#a89984",
-      "border-strong-base": "#7c6f64",
-      "border-strong-hover": "#6e6259",
-      "border-strong-active": "#665c54",
-      "border-strong-selected": "#5a524b",
-      "border-strong-disabled": "#c9bda1",
-      "border-strong-focus": "#665c54",
-      "surface-diff-add-base": "#dde3b1",
-      "surface-diff-delete-base": "#e8c7c3",
-      "surface-diff-hidden-base": "#ebdfb5",
-      "text-base": "#3c3836",
-      "text-weak": "#7c6f64",
-      "text-strong": "#282828",
-      "syntax-string": "#79740e",
-      "syntax-primitive": "#9d0006",
-      "syntax-property": "#076678",
-      "syntax-type": "#b57614",
-      "syntax-constant": "#8f3f71",
-      "syntax-info": "#427b58",
-      "markdown-heading": "#076678",
-      "markdown-text": "#3c3836",
-      "markdown-link": "#076678",
-      "markdown-link-text": "#427b58",
-      "markdown-code": "#79740e",
-      "markdown-block-quote": "#928374",
-      "markdown-emph": "#8f3f71",
-      "markdown-strong": "#af3a03",
-      "markdown-horizontal-rule": "#d5c4a1",
-      "markdown-list-item": "#076678",
-      "markdown-list-enumeration": "#427b58",
-      "markdown-image": "#076678",
-      "markdown-image-text": "#427b58",
-      "markdown-code-block": "#3c3836"
     }
   },
   "dark": {
-    "seeds": {
+    "palette": {
       "neutral": "#282828",
+      "ink": "#ebdbb2",
       "primary": "#83a598",
+      "accent": "#fb4934",
       "success": "#b8bb26",
       "warning": "#fabd2f",
       "error": "#fb4934",
       "info": "#d3869b",
-      "interactive": "#83a598",
       "diffAdd": "#b8bb26",
       "diffDelete": "#fb4934"
-    },
-    "overrides": {
-      "background-base": "#282828",
-      "background-weak": "#32302f",
-      "background-strong": "#1d2021",
-      "background-stronger": "#141617",
-      "border-weak-base": "#504945",
-      "border-weak-hover": "#5a524b",
-      "border-weak-active": "#665c54",
-      "border-weak-selected": "#70665d",
-      "border-weak-disabled": "#1e1d1c",
-      "border-weak-focus": "#5e5650",
-      "border-base": "#665c54",
-      "border-hover": "#70665d",
-      "border-active": "#7c6f64",
-      "border-selected": "#928374",
-      "border-disabled": "#2a2827",
-      "border-focus": "#7c6f64",
-      "border-strong-base": "#928374",
-      "border-strong-hover": "#9d8e7f",
-      "border-strong-active": "#a89984",
-      "border-strong-selected": "#b3a48f",
-      "border-strong-disabled": "#3c3836",
-      "border-strong-focus": "#a89984",
-      "surface-diff-add-base": "#2a3325",
-      "surface-diff-delete-base": "#3c2222",
-      "surface-diff-hidden-base": "#32302f",
-      "text-base": "#ebdbb2",
-      "text-weak": "#a89984",
-      "text-strong": "#fbf1c7",
-      "syntax-string": "#b8bb26",
-      "syntax-primitive": "#fb4934",
-      "syntax-property": "#83a598",
-      "syntax-type": "#fabd2f",
-      "syntax-constant": "#d3869b",
-      "syntax-info": "#8ec07c",
-      "markdown-heading": "#83a598",
-      "markdown-text": "#ebdbb2",
-      "markdown-link": "#83a598",
-      "markdown-link-text": "#8ec07c",
-      "markdown-code": "#b8bb26",
-      "markdown-block-quote": "#928374",
-      "markdown-emph": "#d3869b",
-      "markdown-strong": "#fe8019",
-      "markdown-horizontal-rule": "#504945",
-      "markdown-list-item": "#83a598",
-      "markdown-list-enumeration": "#8ec07c",
-      "markdown-image": "#83a598",
-      "markdown-image-text": "#8ec07c",
-      "markdown-code-block": "#ebdbb2"
     }
   }
 }

+ 6 - 104
packages/ui/src/theme/themes/monokai.json

@@ -3,129 +3,31 @@
   "name": "Monokai",
   "id": "monokai",
   "light": {
-    "seeds": {
+    "palette": {
       "neutral": "#fdf8ec",
+      "ink": "#292318",
       "primary": "#bf7bff",
+      "accent": "#d9487c",
       "success": "#4fb54b",
       "warning": "#f1a948",
       "error": "#e54b4b",
       "info": "#2d9ad7",
-      "interactive": "#bf7bff",
       "diffAdd": "#bfe7a3",
       "diffDelete": "#f6a3ae"
-    },
-    "overrides": {
-      "background-base": "#fdf8ec",
-      "background-weak": "#f8f2e6",
-      "background-strong": "#fbf5e8",
-      "background-stronger": "#f7efdd",
-      "border-weak-base": "#e9e0cf",
-      "border-weak-hover": "#dfd5c3",
-      "border-weak-active": "#d5cab7",
-      "border-weak-selected": "#cabfad",
-      "border-weak-disabled": "#f3ebdd",
-      "border-weak-focus": "#d0c2b1",
-      "border-base": "#c7b9a5",
-      "border-hover": "#bcae98",
-      "border-active": "#b0a28c",
-      "border-selected": "#a49781",
-      "border-disabled": "#efe5d6",
-      "border-focus": "#b6a893",
-      "border-strong-base": "#998b76",
-      "border-strong-hover": "#8a7c67",
-      "border-strong-active": "#7a6d58",
-      "border-strong-selected": "#6c604c",
-      "border-strong-disabled": "#d7cabc",
-      "border-strong-focus": "#82745f",
-      "surface-diff-add-base": "#e8f7e1",
-      "surface-diff-delete-base": "#fde5e4",
-      "surface-diff-hidden-base": "#e9e0d0",
-      "text-base": "#292318",
-      "text-weak": "#6d5c40",
-      "text-strong": "#1c150c",
-      "syntax-string": "#4fb54b",
-      "syntax-primitive": "#d9487c",
-      "syntax-property": "#bf7bff",
-      "syntax-type": "#f1a948",
-      "syntax-constant": "#2d9ad7",
-      "syntax-info": "#2d9ad7",
-      "markdown-heading": "#bf7bff",
-      "markdown-text": "#292318",
-      "markdown-link": "#bf7bff",
-      "markdown-link-text": "#2d9ad7",
-      "markdown-code": "#4fb54b",
-      "markdown-block-quote": "#f1a948",
-      "markdown-emph": "#f1a948",
-      "markdown-strong": "#d9487c",
-      "markdown-horizontal-rule": "#cdbdab",
-      "markdown-list-item": "#bf7bff",
-      "markdown-list-enumeration": "#2d9ad7",
-      "markdown-image": "#bf7bff",
-      "markdown-image-text": "#2d9ad7",
-      "markdown-code-block": "#2d9ad7"
     }
   },
   "dark": {
-    "seeds": {
+    "palette": {
       "neutral": "#272822",
+      "ink": "#f8f8f2",
       "primary": "#ae81ff",
+      "accent": "#f92672",
       "success": "#a6e22e",
       "warning": "#fd971f",
       "error": "#f92672",
       "info": "#66d9ef",
-      "interactive": "#ae81ff",
       "diffAdd": "#4d7f2a",
       "diffDelete": "#f4477c"
-    },
-    "overrides": {
-      "background-base": "#23241e",
-      "background-weak": "#27281f",
-      "background-strong": "#25261f",
-      "background-stronger": "#292a23",
-      "border-weak-base": "#343528",
-      "border-weak-hover": "#393a2d",
-      "border-weak-active": "#3f4033",
-      "border-weak-selected": "#454639",
-      "border-weak-disabled": "#1d1e16",
-      "border-weak-focus": "#414235",
-      "border-base": "#494a3a",
-      "border-hover": "#50523f",
-      "border-active": "#585a45",
-      "border-selected": "#60624b",
-      "border-disabled": "#23241b",
-      "border-focus": "#555741",
-      "border-strong-base": "#6a6c55",
-      "border-strong-hover": "#73755d",
-      "border-strong-active": "#7d7f66",
-      "border-strong-selected": "#878970",
-      "border-strong-disabled": "#2c2d23",
-      "border-strong-focus": "#7a7c63",
-      "surface-diff-add-base": "#1e2a1d",
-      "surface-diff-delete-base": "#301c24",
-      "surface-diff-hidden-base": "#2f2f24",
-      "text-base": "#f8f8f2",
-      "text-weak": "#c5c5c0",
-      "text-strong": "#ffffff",
-      "syntax-string": "#a6e22e",
-      "syntax-primitive": "#f92672",
-      "syntax-property": "#ae81ff",
-      "syntax-type": "#fd971f",
-      "syntax-constant": "#66d9ef",
-      "syntax-info": "#66d9ef",
-      "markdown-heading": "#ae81ff",
-      "markdown-text": "#f8f8f2",
-      "markdown-link": "#ae81ff",
-      "markdown-link-text": "#66d9ef",
-      "markdown-code": "#a6e22e",
-      "markdown-block-quote": "#fd971f",
-      "markdown-emph": "#fd971f",
-      "markdown-strong": "#f92672",
-      "markdown-horizontal-rule": "#3b3c34",
-      "markdown-list-item": "#ae81ff",
-      "markdown-list-enumeration": "#66d9ef",
-      "markdown-image": "#ae81ff",
-      "markdown-image-text": "#66d9ef",
-      "markdown-code-block": "#f8f8f2"
     }
   }
 }

+ 6 - 104
packages/ui/src/theme/themes/nightowl.json

@@ -3,129 +3,31 @@
   "name": "Night Owl",
   "id": "nightowl",
   "light": {
-    "seeds": {
+    "palette": {
       "neutral": "#f0f0f0",
+      "ink": "#403f53",
       "primary": "#4876d6",
+      "accent": "#aa0982",
       "success": "#2aa298",
       "warning": "#c96765",
       "error": "#de3d3b",
       "info": "#4876d6",
-      "interactive": "#4876d6",
       "diffAdd": "#2aa298",
       "diffDelete": "#de3d3b"
-    },
-    "overrides": {
-      "background-base": "#fbfbfb",
-      "background-weak": "#f0f0f0",
-      "background-strong": "#ffffff",
-      "background-stronger": "#ffffff",
-      "border-weak-base": "#d9d9d9",
-      "border-weak-hover": "#cccccc",
-      "border-weak-active": "#bfbfbf",
-      "border-weak-selected": "#4876d6",
-      "border-weak-disabled": "#e6e6e6",
-      "border-weak-focus": "#4876d6",
-      "border-base": "#c0c0c0",
-      "border-hover": "#b3b3b3",
-      "border-active": "#a6a6a6",
-      "border-selected": "#4876d6",
-      "border-disabled": "#d9d9d9",
-      "border-focus": "#4876d6",
-      "border-strong-base": "#90a7b2",
-      "border-strong-hover": "#7d9aa6",
-      "border-strong-active": "#6a8d9a",
-      "border-strong-selected": "#4876d6",
-      "border-strong-disabled": "#c0c0c0",
-      "border-strong-focus": "#4876d6",
-      "surface-diff-add-base": "#eaf8f6",
-      "surface-diff-delete-base": "#fbe9e9",
-      "surface-diff-hidden-base": "#e8f0fc",
-      "text-base": "#403f53",
-      "text-weak": "#7a8181",
-      "text-strong": "#1a1a1a",
-      "syntax-string": "#c96765",
-      "syntax-primitive": "#aa0982",
-      "syntax-property": "#4876d6",
-      "syntax-type": "#994cc3",
-      "syntax-constant": "#2aa298",
-      "syntax-info": "#4876d6",
-      "markdown-heading": "#4876d6",
-      "markdown-text": "#403f53",
-      "markdown-link": "#4876d6",
-      "markdown-link-text": "#2aa298",
-      "markdown-code": "#2aa298",
-      "markdown-block-quote": "#7a8181",
-      "markdown-emph": "#994cc3",
-      "markdown-strong": "#c96765",
-      "markdown-horizontal-rule": "#90a7b2",
-      "markdown-list-item": "#4876d6",
-      "markdown-list-enumeration": "#2aa298",
-      "markdown-image": "#4876d6",
-      "markdown-image-text": "#2aa298",
-      "markdown-code-block": "#403f53"
     }
   },
   "dark": {
-    "seeds": {
+    "palette": {
       "neutral": "#011627",
+      "ink": "#d6deeb",
       "primary": "#82aaff",
+      "accent": "#f78c6c",
       "success": "#c5e478",
       "warning": "#ecc48d",
       "error": "#ef5350",
       "info": "#82aaff",
-      "interactive": "#82aaff",
       "diffAdd": "#c5e478",
       "diffDelete": "#ef5350"
-    },
-    "overrides": {
-      "background-base": "#011627",
-      "background-weak": "#0b253a",
-      "background-strong": "#001122",
-      "background-stronger": "#000c17",
-      "border-weak-base": "#1d3b53",
-      "border-weak-hover": "#234561",
-      "border-weak-active": "#2a506f",
-      "border-weak-selected": "#82aaff",
-      "border-weak-disabled": "#0f2132",
-      "border-weak-focus": "#82aaff",
-      "border-base": "#3a5a75",
-      "border-hover": "#456785",
-      "border-active": "#507494",
-      "border-selected": "#82aaff",
-      "border-disabled": "#1a3347",
-      "border-focus": "#82aaff",
-      "border-strong-base": "#5f7e97",
-      "border-strong-hover": "#6e8da6",
-      "border-strong-active": "#7d9cb5",
-      "border-strong-selected": "#82aaff",
-      "border-strong-disabled": "#2c4a63",
-      "border-strong-focus": "#82aaff",
-      "surface-diff-add-base": "#0a2e1a",
-      "surface-diff-delete-base": "#2d1b1b",
-      "surface-diff-hidden-base": "#0b253a",
-      "text-base": "#d6deeb",
-      "text-weak": "#5f7e97",
-      "text-strong": "#ffffff",
-      "syntax-string": "#ecc48d",
-      "syntax-primitive": "#f78c6c",
-      "syntax-property": "#82aaff",
-      "syntax-type": "#c5e478",
-      "syntax-constant": "#7fdbca",
-      "syntax-info": "#82aaff",
-      "markdown-heading": "#82aaff",
-      "markdown-text": "#d6deeb",
-      "markdown-link": "#82aaff",
-      "markdown-link-text": "#7fdbca",
-      "markdown-code": "#c5e478",
-      "markdown-block-quote": "#5f7e97",
-      "markdown-emph": "#c792ea",
-      "markdown-strong": "#ecc48d",
-      "markdown-horizontal-rule": "#5f7e97",
-      "markdown-list-item": "#82aaff",
-      "markdown-list-enumeration": "#7fdbca",
-      "markdown-image": "#82aaff",
-      "markdown-image-text": "#7fdbca",
-      "markdown-code-block": "#d6deeb"
     }
   }
 }

+ 6 - 104
packages/ui/src/theme/themes/nord.json

@@ -3,129 +3,31 @@
   "name": "Nord",
   "id": "nord",
   "light": {
-    "seeds": {
+    "palette": {
       "neutral": "#eceff4",
+      "ink": "#2e3440",
       "primary": "#5e81ac",
+      "accent": "#bf616a",
       "success": "#8fbcbb",
       "warning": "#d08770",
       "error": "#bf616a",
       "info": "#81a1c1",
-      "interactive": "#5e81ac",
       "diffAdd": "#a3be8c",
       "diffDelete": "#bf616a"
-    },
-    "overrides": {
-      "background-base": "#eceff4",
-      "background-weak": "#e4e8f0",
-      "background-strong": "#f1f3f8",
-      "background-stronger": "#f6f8fc",
-      "border-weak-base": "#d5dbe7",
-      "border-weak-hover": "#c9d0de",
-      "border-weak-active": "#bec5d4",
-      "border-weak-selected": "#b2bacc",
-      "border-weak-disabled": "#f0f3fa",
-      "border-weak-focus": "#b9bfd0",
-      "border-base": "#afb7cb",
-      "border-hover": "#a3abc1",
-      "border-active": "#979fb7",
-      "border-selected": "#8b94ad",
-      "border-disabled": "#e5e9f2",
-      "border-focus": "#9ca4ba",
-      "border-strong-base": "#757f97",
-      "border-strong-hover": "#69718a",
-      "border-strong-active": "#5d647d",
-      "border-strong-selected": "#525970",
-      "border-strong-disabled": "#c9cedc",
-      "border-strong-focus": "#636c84",
-      "surface-diff-add-base": "#e4f0e4",
-      "surface-diff-delete-base": "#f4e1e4",
-      "surface-diff-hidden-base": "#dfe6f2",
-      "text-base": "#2e3440",
-      "text-weak": "#4c566a",
-      "text-strong": "#1f2530",
-      "syntax-string": "#a3be8c",
-      "syntax-primitive": "#bf616a",
-      "syntax-property": "#5e81ac",
-      "syntax-type": "#d08770",
-      "syntax-constant": "#81a1c1",
-      "syntax-info": "#81a1c1",
-      "markdown-heading": "#5e81ac",
-      "markdown-text": "#2e3440",
-      "markdown-link": "#5e81ac",
-      "markdown-link-text": "#81a1c1",
-      "markdown-code": "#a3be8c",
-      "markdown-block-quote": "#d08770",
-      "markdown-emph": "#d08770",
-      "markdown-strong": "#bf616a",
-      "markdown-horizontal-rule": "#cbd3e1",
-      "markdown-list-item": "#5e81ac",
-      "markdown-list-enumeration": "#81a1c1",
-      "markdown-image": "#5e81ac",
-      "markdown-image-text": "#81a1c1",
-      "markdown-code-block": "#5e81ac"
     }
   },
   "dark": {
-    "seeds": {
+    "palette": {
       "neutral": "#2e3440",
+      "ink": "#e5e9f0",
       "primary": "#88c0d0",
+      "accent": "#d57780",
       "success": "#a3be8c",
       "warning": "#d08770",
       "error": "#bf616a",
       "info": "#81a1c1",
-      "interactive": "#88c0d0",
       "diffAdd": "#81a1c1",
       "diffDelete": "#bf616a"
-    },
-    "overrides": {
-      "background-base": "#1f2430",
-      "background-weak": "#222938",
-      "background-strong": "#1c202a",
-      "background-stronger": "#181c24",
-      "border-weak-base": "#343a47",
-      "border-weak-hover": "#383f50",
-      "border-weak-active": "#3d4458",
-      "border-weak-selected": "#434a62",
-      "border-weak-disabled": "#151923",
-      "border-weak-focus": "#3f4359",
-      "border-base": "#4a5163",
-      "border-hover": "#515870",
-      "border-active": "#585f7c",
-      "border-selected": "#606889",
-      "border-disabled": "#1b202a",
-      "border-focus": "#545b78",
-      "border-strong-base": "#6a7492",
-      "border-strong-hover": "#747e9f",
-      "border-strong-active": "#7e88ac",
-      "border-strong-selected": "#8993b9",
-      "border-strong-disabled": "#232836",
-      "border-strong-focus": "#76819f",
-      "surface-diff-add-base": "#1f2e33",
-      "surface-diff-delete-base": "#2e212a",
-      "surface-diff-hidden-base": "#222b3a",
-      "text-base": "#e5e9f0",
-      "text-weak": "#a4adbf",
-      "text-strong": "#f8fafc",
-      "syntax-string": "#a3be8c",
-      "syntax-primitive": "#d57780",
-      "syntax-property": "#88c0d0",
-      "syntax-type": "#eac196",
-      "syntax-constant": "#81a1c1",
-      "syntax-info": "#81a1c1",
-      "markdown-heading": "#88c0d0",
-      "markdown-text": "#e5e9f0",
-      "markdown-link": "#88c0d0",
-      "markdown-link-text": "#81a1c1",
-      "markdown-code": "#a3be8c",
-      "markdown-block-quote": "#d08770",
-      "markdown-emph": "#d08770",
-      "markdown-strong": "#bf616a",
-      "markdown-horizontal-rule": "#2f384a",
-      "markdown-list-item": "#88c0d0",
-      "markdown-list-enumeration": "#81a1c1",
-      "markdown-image": "#88c0d0",
-      "markdown-image-text": "#81a1c1",
-      "markdown-code-block": "#cbd3e1"
     }
   }
 }

+ 6 - 508
packages/ui/src/theme/themes/oc-1.json

@@ -3,9 +3,11 @@
   "name": "OC-1",
   "id": "oc-1",
   "light": {
-    "seeds": {
+    "palette": {
       "neutral": "#8e8b8b",
+      "ink": "#656363",
       "primary": "#dcde8d",
+      "accent": "#fb4804",
       "success": "#12c905",
       "warning": "#ffdc17",
       "error": "#fc533a",
@@ -13,265 +15,14 @@
       "interactive": "#034cff",
       "diffAdd": "#9ff29a",
       "diffDelete": "#fc533a"
-    },
-    "overrides": {
-      "background-base": "#f8f7f7",
-      "background-weak": "var(--smoke-light-3)",
-      "background-strong": "var(--smoke-light-1)",
-      "background-stronger": "#fcfcfc",
-      "surface-base": "var(--smoke-light-alpha-2)",
-      "base": "var(--smoke-light-alpha-2)",
-      "surface-base-hover": "#0500000f",
-      "surface-base-active": "var(--smoke-light-alpha-3)",
-      "surface-base-interactive-active": "var(--cobalt-light-alpha-3)",
-      "base2": "var(--smoke-light-alpha-2)",
-      "base3": "var(--smoke-light-alpha-2)",
-      "surface-inset-base": "var(--smoke-light-alpha-2)",
-      "surface-inset-base-hover": "var(--smoke-light-alpha-3)",
-      "surface-inset-strong": "#1f000017",
-      "surface-inset-strong-hover": "#1f000017",
-      "surface-raised-base": "var(--smoke-light-alpha-2)",
-      "surface-float-base": "var(--smoke-dark-1)",
-      "surface-float-base-hover": "var(--smoke-dark-2)",
-      "surface-raised-base-hover": "var(--smoke-light-alpha-3)",
-      "surface-raised-base-active": "var(--smoke-light-alpha-4)",
-      "surface-raised-strong": "var(--smoke-light-1)",
-      "surface-raised-strong-hover": "var(--white)",
-      "surface-raised-stronger": "var(--white)",
-      "surface-raised-stronger-hover": "var(--white)",
-      "surface-weak": "var(--smoke-light-alpha-3)",
-      "surface-weaker": "var(--smoke-light-alpha-4)",
-      "surface-strong": "#ffffff",
-      "surface-raised-stronger-non-alpha": "var(--white)",
-      "surface-brand-base": "var(--yuzu-light-9)",
-      "surface-brand-hover": "var(--yuzu-light-10)",
-      "surface-interactive-base": "var(--cobalt-light-3)",
-      "surface-interactive-hover": "#E5F0FF",
-      "surface-interactive-weak": "var(--cobalt-light-2)",
-      "surface-interactive-weak-hover": "var(--cobalt-light-3)",
-      "surface-success-base": "var(--apple-light-3)",
-      "surface-success-weak": "var(--apple-light-2)",
-      "surface-success-strong": "var(--apple-light-9)",
-      "surface-warning-base": "var(--solaris-light-3)",
-      "surface-warning-weak": "var(--solaris-light-2)",
-      "surface-warning-strong": "var(--solaris-light-9)",
-      "surface-critical-base": "var(--ember-light-3)",
-      "surface-critical-weak": "var(--ember-light-2)",
-      "surface-critical-strong": "var(--ember-light-9)",
-      "surface-info-base": "var(--lilac-light-3)",
-      "surface-info-weak": "var(--lilac-light-2)",
-      "surface-info-strong": "var(--lilac-light-9)",
-      "surface-diff-unchanged-base": "#ffffff00",
-      "surface-diff-skip-base": "var(--smoke-light-2)",
-      "surface-diff-hidden-base": "var(--blue-light-3)",
-      "surface-diff-hidden-weak": "var(--blue-light-2)",
-      "surface-diff-hidden-weaker": "var(--blue-light-1)",
-      "surface-diff-hidden-strong": "var(--blue-light-5)",
-      "surface-diff-hidden-stronger": "var(--blue-light-9)",
-      "surface-diff-add-base": "#dafbe0",
-      "surface-diff-add-weak": "var(--mint-light-2)",
-      "surface-diff-add-weaker": "var(--mint-light-1)",
-      "surface-diff-add-strong": "var(--mint-light-5)",
-      "surface-diff-add-stronger": "var(--mint-light-9)",
-      "surface-diff-delete-base": "var(--ember-light-3)",
-      "surface-diff-delete-weak": "var(--ember-light-2)",
-      "surface-diff-delete-weaker": "var(--ember-light-1)",
-      "surface-diff-delete-strong": "var(--ember-light-6)",
-      "surface-diff-delete-stronger": "var(--ember-light-9)",
-      "input-base": "var(--smoke-light-1)",
-      "input-hover": "var(--smoke-light-2)",
-      "input-active": "var(--cobalt-light-1)",
-      "input-selected": "var(--cobalt-light-4)",
-      "input-focus": "var(--cobalt-light-1)",
-      "input-disabled": "var(--smoke-light-4)",
-      "text-base": "var(--smoke-light-11)",
-      "text-weak": "var(--smoke-light-9)",
-      "text-weaker": "var(--smoke-light-8)",
-      "text-strong": "var(--smoke-light-12)",
-      "text-invert-base": "var(--smoke-dark-alpha-11)",
-      "text-invert-weak": "var(--smoke-dark-alpha-9)",
-      "text-invert-weaker": "var(--smoke-dark-alpha-8)",
-      "text-invert-strong": "var(--smoke-dark-alpha-12)",
-      "text-interactive-base": "var(--cobalt-light-9)",
-      "text-on-brand-base": "var(--smoke-light-alpha-11)",
-      "text-on-interactive-base": "var(--smoke-light-1)",
-      "text-on-interactive-weak": "var(--smoke-dark-alpha-11)",
-      "text-on-success-base": "var(--apple-light-10)",
-      "text-on-critical-base": "var(--ember-light-10)",
-      "text-on-critical-weak": "var(--ember-light-8)",
-      "text-on-critical-strong": "var(--ember-light-12)",
-      "text-on-warning-base": "var(--smoke-dark-alpha-11)",
-      "text-on-info-base": "var(--smoke-dark-alpha-11)",
-      "text-diff-add-base": "var(--mint-light-11)",
-      "text-diff-delete-base": "var(--ember-light-10)",
-      "text-diff-delete-strong": "var(--ember-light-12)",
-      "text-diff-add-strong": "var(--mint-light-12)",
-      "text-on-info-weak": "var(--smoke-dark-alpha-9)",
-      "text-on-info-strong": "var(--smoke-dark-alpha-12)",
-      "text-on-warning-weak": "var(--smoke-dark-alpha-9)",
-      "text-on-warning-strong": "var(--smoke-dark-alpha-12)",
-      "text-on-success-weak": "var(--apple-light-6)",
-      "text-on-success-strong": "var(--apple-light-12)",
-      "text-on-brand-weak": "var(--smoke-light-alpha-9)",
-      "text-on-brand-weaker": "var(--smoke-light-alpha-8)",
-      "text-on-brand-strong": "var(--smoke-light-alpha-12)",
-      "button-primary-base": "var(--smoke-light-12)",
-      "button-secondary-base": "#fdfcfc",
-      "button-secondary-hover": "#faf9f9",
-      "border-base": "var(--smoke-light-alpha-7)",
-      "border-hover": "var(--smoke-light-alpha-8)",
-      "border-active": "var(--smoke-light-alpha-9)",
-      "border-selected": "var(--cobalt-light-alpha-9)",
-      "border-disabled": "var(--smoke-light-alpha-8)",
-      "border-focus": "var(--smoke-light-alpha-9)",
-      "border-weak-base": "var(--smoke-light-alpha-5)",
-      "border-strong-base": "var(--smoke-light-alpha-7)",
-      "border-strong-hover": "var(--smoke-light-alpha-8)",
-      "border-strong-active": "var(--smoke-light-alpha-7)",
-      "border-strong-selected": "var(--cobalt-light-alpha-6)",
-      "border-strong-disabled": "var(--smoke-light-alpha-6)",
-      "border-strong-focus": "var(--smoke-light-alpha-7)",
-      "border-weak-hover": "var(--smoke-light-alpha-6)",
-      "border-weak-active": "var(--smoke-light-alpha-7)",
-      "border-weak-selected": "var(--cobalt-light-alpha-5)",
-      "border-weak-disabled": "var(--smoke-light-alpha-6)",
-      "border-weak-focus": "var(--smoke-light-alpha-7)",
-      "border-interactive-base": "var(--cobalt-light-7)",
-      "border-interactive-hover": "var(--cobalt-light-8)",
-      "border-interactive-active": "var(--cobalt-light-9)",
-      "border-interactive-selected": "var(--cobalt-light-9)",
-      "border-interactive-disabled": "var(--smoke-light-8)",
-      "border-interactive-focus": "var(--cobalt-light-9)",
-      "border-success-base": "var(--apple-light-6)",
-      "border-success-hover": "var(--apple-light-7)",
-      "border-success-selected": "var(--apple-light-9)",
-      "border-warning-base": "var(--solaris-light-6)",
-      "border-warning-hover": "var(--solaris-light-7)",
-      "border-warning-selected": "var(--solaris-light-9)",
-      "border-critical-base": "var(--ember-light-6)",
-      "border-critical-hover": "var(--ember-light-7)",
-      "border-critical-selected": "var(--ember-light-9)",
-      "border-info-base": "var(--lilac-light-6)",
-      "border-info-hover": "var(--lilac-light-7)",
-      "border-info-selected": "var(--lilac-light-9)",
-      "icon-base": "var(--smoke-light-9)",
-      "icon-hover": "var(--smoke-light-11)",
-      "icon-active": "var(--smoke-light-12)",
-      "icon-selected": "var(--smoke-light-12)",
-      "icon-disabled": "var(--smoke-light-8)",
-      "icon-focus": "var(--smoke-light-12)",
-      "icon-invert-base": "#ffffff",
-      "icon-weak-base": "var(--smoke-light-7)",
-      "icon-weak-hover": "var(--smoke-light-8)",
-      "icon-weak-active": "var(--smoke-light-9)",
-      "icon-weak-selected": "var(--smoke-light-10)",
-      "icon-weak-disabled": "var(--smoke-light-6)",
-      "icon-weak-focus": "var(--smoke-light-9)",
-      "icon-strong-base": "var(--smoke-light-12)",
-      "icon-strong-hover": "#151313",
-      "icon-strong-active": "#020202",
-      "icon-strong-selected": "#020202",
-      "icon-strong-disabled": "var(--smoke-light-8)",
-      "icon-strong-focus": "#020202",
-      "icon-brand-base": "var(--smoke-light-12)",
-      "icon-interactive-base": "var(--cobalt-light-9)",
-      "icon-success-base": "var(--apple-light-7)",
-      "icon-success-hover": "var(--apple-light-8)",
-      "icon-success-active": "var(--apple-light-11)",
-      "icon-warning-base": "var(--amber-light-7)",
-      "icon-warning-hover": "var(--amber-light-8)",
-      "icon-warning-active": "var(--amber-light-11)",
-      "icon-critical-base": "var(--ember-light-10)",
-      "icon-critical-hover": "var(--ember-light-11)",
-      "icon-critical-active": "var(--ember-light-12)",
-      "icon-info-base": "var(--lilac-light-7)",
-      "icon-info-hover": "var(--lilac-light-8)",
-      "icon-info-active": "var(--lilac-light-11)",
-      "icon-on-brand-base": "var(--smoke-light-alpha-11)",
-      "icon-on-brand-hover": "var(--smoke-light-alpha-12)",
-      "icon-on-brand-selected": "var(--smoke-light-alpha-12)",
-      "icon-on-interactive-base": "var(--smoke-light-1)",
-      "icon-agent-plan-base": "var(--purple-light-9)",
-      "icon-agent-docs-base": "var(--amber-light-9)",
-      "icon-agent-ask-base": "var(--cyan-light-9)",
-      "icon-agent-build-base": "var(--cobalt-light-9)",
-      "icon-on-success-base": "var(--apple-light-alpha-9)",
-      "icon-on-success-hover": "var(--apple-light-alpha-10)",
-      "icon-on-success-selected": "var(--apple-light-alpha-11)",
-      "icon-on-warning-base": "var(--amber-lightalpha-9)",
-      "icon-on-warning-hover": "var(--amber-lightalpha-10)",
-      "icon-on-warning-selected": "var(--amber-lightalpha-11)",
-      "icon-on-critical-base": "var(--ember-light-alpha-9)",
-      "icon-on-critical-hover": "var(--ember-light-alpha-10)",
-      "icon-on-critical-selected": "var(--ember-light-alpha-11)",
-      "icon-on-info-base": "var(--lilac-light-9)",
-      "icon-on-info-hover": "var(--lilac-light-alpha-10)",
-      "icon-on-info-selected": "var(--lilac-light-alpha-11)",
-      "icon-diff-add-base": "var(--mint-light-11)",
-      "icon-diff-add-hover": "var(--mint-light-12)",
-      "icon-diff-add-active": "var(--mint-light-12)",
-      "icon-diff-delete-base": "var(--ember-light-10)",
-      "icon-diff-delete-hover": "var(--ember-light-11)",
-      "syntax-comment": "var(--text-weak)",
-      "syntax-regexp": "var(--text-base)",
-      "syntax-string": "#006656",
-      "syntax-keyword": "var(--text-weak)",
-      "syntax-primitive": "#fb4804",
-      "syntax-operator": "var(--text-base)",
-      "syntax-variable": "var(--text-strong)",
-      "syntax-property": "#ed6dc8",
-      "syntax-type": "#596600",
-      "syntax-constant": "#007b80",
-      "syntax-punctuation": "var(--text-base)",
-      "syntax-object": "var(--text-strong)",
-      "syntax-success": "var(--apple-light-10)",
-      "syntax-warning": "var(--amber-light-10)",
-      "syntax-critical": "var(--ember-light-10)",
-      "syntax-info": "#0092a8",
-      "syntax-diff-add": "var(--mint-light-11)",
-      "syntax-diff-delete": "var(--ember-light-11)",
-      "syntax-diff-unknown": "#ff0000",
-      "markdown-heading": "#d68c27",
-      "markdown-text": "#1a1a1a",
-      "markdown-link": "#3b7dd8",
-      "markdown-link-text": "#318795",
-      "markdown-code": "#3d9a57",
-      "markdown-block-quote": "#b0851f",
-      "markdown-emph": "#b0851f",
-      "markdown-strong": "#d68c27",
-      "markdown-horizontal-rule": "#8a8a8a",
-      "markdown-list-item": "#3b7dd8",
-      "markdown-list-enumeration": "#318795",
-      "markdown-image": "#3b7dd8",
-      "markdown-image-text": "#318795",
-      "markdown-code-block": "#1a1a1a",
-      "border-color": "#ffffff",
-      "border-weaker-base": "var(--smoke-light-alpha-3)",
-      "border-weaker-hover": "var(--smoke-light-alpha-4)",
-      "border-weaker-active": "var(--smoke-light-alpha-6)",
-      "border-weaker-selected": "var(--cobalt-light-alpha-4)",
-      "border-weaker-disabled": "var(--smoke-light-alpha-2)",
-      "border-weaker-focus": "var(--smoke-light-alpha-6)",
-      "button-ghost-hover": "var(--smoke-light-alpha-2)",
-      "button-ghost-hover2": "var(--smoke-light-alpha-3)",
-      "avatar-background-pink": "#feeef8",
-      "avatar-background-mint": "#e1fbf4",
-      "avatar-background-orange": "#fff1e7",
-      "avatar-background-purple": "#f9f1fe",
-      "avatar-background-cyan": "#e7f9fb",
-      "avatar-background-lime": "#eefadc",
-      "avatar-text-pink": "#cd1d8d",
-      "avatar-text-mint": "#147d6f",
-      "avatar-text-orange": "#ed5f00",
-      "avatar-text-purple": "#8445bc",
-      "avatar-text-cyan": "#0894b3",
-      "avatar-text-lime": "#5d770d"
     }
   },
   "dark": {
-    "seeds": {
+    "palette": {
       "neutral": "#716c6b",
+      "ink": "#b7b1b1",
       "primary": "#fab283",
+      "accent": "#ffba92",
       "success": "#12c905",
       "warning": "#fcd53a",
       "error": "#fc533a",
@@ -279,259 +30,6 @@
       "interactive": "#034cff",
       "diffAdd": "#c8ffc4",
       "diffDelete": "#fc533a"
-    },
-    "overrides": {
-      "background-base": "var(--smoke-dark-1)",
-      "background-weak": "#1c1717",
-      "background-strong": "#151313",
-      "background-stronger": "#191515",
-      "surface-base": "var(--smoke-dark-alpha-2)",
-      "base": "var(--smoke-dark-alpha-2)",
-      "surface-base-hover": "#e0b7b716",
-      "surface-base-active": "var(--smoke-dark-alpha-3)",
-      "surface-base-interactive-active": "var(--cobalt-dark-alpha-2)",
-      "base2": "var(--smoke-dark-alpha-2)",
-      "base3": "var(--smoke-dark-alpha-2)",
-      "surface-inset-base": "#0e0b0b7f",
-      "surface-inset-base-hover": "#0e0b0b7f",
-      "surface-inset-strong": "#060505cc",
-      "surface-inset-strong-hover": "#060505cc",
-      "surface-raised-base": "var(--smoke-dark-alpha-3)",
-      "surface-float-base": "var(--smoke-dark-1)",
-      "surface-float-base-hover": "var(--smoke-dark-2)",
-      "surface-raised-base-hover": "var(--smoke-dark-alpha-4)",
-      "surface-raised-base-active": "var(--smoke-dark-alpha-5)",
-      "surface-raised-strong": "var(--smoke-dark-alpha-4)",
-      "surface-raised-strong-hover": "var(--smoke-dark-alpha-6)",
-      "surface-raised-stronger": "var(--smoke-dark-alpha-6)",
-      "surface-raised-stronger-hover": "var(--smoke-dark-alpha-7)",
-      "surface-weak": "var(--smoke-dark-alpha-4)",
-      "surface-weaker": "var(--smoke-dark-alpha-5)",
-      "surface-strong": "var(--smoke-dark-alpha-7)",
-      "surface-raised-stronger-non-alpha": "var(--smoke-dark-3)",
-      "surface-brand-base": "var(--yuzu-light-9)",
-      "surface-brand-hover": "var(--yuzu-light-10)",
-      "surface-interactive-base": "var(--cobalt-dark-3)",
-      "surface-interactive-hover": "#0A1D4D",
-      "surface-interactive-weak": "var(--cobalt-dark-2)",
-      "surface-interactive-weak-hover": "var(--cobalt-light-3)",
-      "surface-success-base": "var(--apple-dark-3)",
-      "surface-success-weak": "var(--apple-dark-2)",
-      "surface-success-strong": "var(--apple-dark-9)",
-      "surface-warning-base": "var(--solaris-light-3)",
-      "surface-warning-weak": "var(--solaris-light-2)",
-      "surface-warning-strong": "var(--solaris-light-9)",
-      "surface-critical-base": "var(--ember-dark-3)",
-      "surface-critical-weak": "var(--ember-dark-2)",
-      "surface-critical-strong": "var(--ember-dark-9)",
-      "surface-info-base": "var(--lilac-light-3)",
-      "surface-info-weak": "var(--lilac-light-2)",
-      "surface-info-strong": "var(--lilac-light-9)",
-      "surface-diff-unchanged-base": "var(--smoke-dark-1)",
-      "surface-diff-skip-base": "var(--smoke-dark-alpha-1)",
-      "surface-diff-hidden-base": "var(--blue-dark-2)",
-      "surface-diff-hidden-weak": "var(--blue-dark-1)",
-      "surface-diff-hidden-weaker": "var(--blue-dark-3)",
-      "surface-diff-hidden-strong": "var(--blue-dark-5)",
-      "surface-diff-hidden-stronger": "var(--blue-dark-11)",
-      "surface-diff-add-base": "var(--mint-dark-3)",
-      "surface-diff-add-weak": "var(--mint-dark-4)",
-      "surface-diff-add-weaker": "var(--mint-dark-3)",
-      "surface-diff-add-strong": "var(--mint-dark-5)",
-      "surface-diff-add-stronger": "var(--mint-dark-11)",
-      "surface-diff-delete-base": "var(--ember-dark-3)",
-      "surface-diff-delete-weak": "var(--ember-dark-4)",
-      "surface-diff-delete-weaker": "var(--ember-dark-3)",
-      "surface-diff-delete-strong": "var(--ember-dark-5)",
-      "surface-diff-delete-stronger": "var(--ember-dark-11)",
-      "input-base": "var(--smoke-dark-2)",
-      "input-hover": "var(--smoke-dark-2)",
-      "input-active": "var(--cobalt-dark-1)",
-      "input-selected": "var(--cobalt-dark-2)",
-      "input-focus": "var(--cobalt-dark-1)",
-      "input-disabled": "var(--smoke-dark-4)",
-      "text-base": "var(--smoke-dark-alpha-11)",
-      "text-weak": "var(--smoke-dark-alpha-9)",
-      "text-weaker": "var(--smoke-dark-alpha-8)",
-      "text-strong": "var(--smoke-dark-alpha-12)",
-      "text-invert-base": "var(--smoke-dark-alpha-11)",
-      "text-invert-weak": "var(--smoke-dark-alpha-9)",
-      "text-invert-weaker": "var(--smoke-dark-alpha-8)",
-      "text-invert-strong": "var(--smoke-dark-alpha-12)",
-      "text-interactive-base": "var(--cobalt-dark-11)",
-      "text-on-brand-base": "var(--smoke-dark-alpha-11)",
-      "text-on-interactive-base": "var(--smoke-dark-12)",
-      "text-on-interactive-weak": "var(--smoke-dark-alpha-11)",
-      "text-on-success-base": "var(--apple-dark-9)",
-      "text-on-critical-base": "var(--ember-dark-9)",
-      "text-on-critical-weak": "var(--ember-dark-8)",
-      "text-on-critical-strong": "var(--ember-dark-12)",
-      "text-on-warning-base": "var(--smoke-dark-alpha-11)",
-      "text-on-info-base": "var(--smoke-dark-alpha-11)",
-      "text-diff-add-base": "var(--mint-dark-11)",
-      "text-diff-delete-base": "var(--ember-dark-9)",
-      "text-diff-delete-strong": "var(--ember-dark-12)",
-      "text-diff-add-strong": "var(--mint-dark-8)",
-      "text-on-info-weak": "var(--smoke-dark-alpha-9)",
-      "text-on-info-strong": "var(--smoke-dark-alpha-12)",
-      "text-on-warning-weak": "var(--smoke-dark-alpha-9)",
-      "text-on-warning-strong": "var(--smoke-dark-alpha-12)",
-      "text-on-success-weak": "var(--apple-dark-8)",
-      "text-on-success-strong": "var(--apple-dark-12)",
-      "text-on-brand-weak": "var(--smoke-dark-alpha-9)",
-      "text-on-brand-weaker": "var(--smoke-dark-alpha-8)",
-      "text-on-brand-strong": "var(--smoke-dark-alpha-12)",
-      "button-primary-base": "var(--smoke-dark-12)",
-      "button-secondary-base": "#231f1f",
-      "button-secondary-hover": "#2a2727",
-      "border-base": "var(--smoke-dark-alpha-7)",
-      "border-hover": "var(--smoke-dark-alpha-8)",
-      "border-active": "var(--smoke-dark-alpha-9)",
-      "border-selected": "var(--cobalt-dark-alpha-11)",
-      "border-disabled": "var(--smoke-dark-alpha-8)",
-      "border-focus": "var(--smoke-dark-alpha-9)",
-      "border-weak-base": "var(--smoke-dark-alpha-6)",
-      "border-strong-base": "var(--smoke-dark-alpha-8)",
-      "border-strong-hover": "var(--smoke-dark-alpha-7)",
-      "border-strong-active": "var(--smoke-dark-alpha-8)",
-      "border-strong-selected": "var(--cobalt-dark-alpha-6)",
-      "border-strong-disabled": "var(--smoke-dark-alpha-6)",
-      "border-strong-focus": "var(--smoke-dark-alpha-8)",
-      "border-weak-hover": "var(--smoke-dark-alpha-7)",
-      "border-weak-active": "var(--smoke-dark-alpha-8)",
-      "border-weak-selected": "var(--cobalt-dark-alpha-6)",
-      "border-weak-disabled": "var(--smoke-dark-alpha-6)",
-      "border-weak-focus": "var(--smoke-dark-alpha-8)",
-      "border-interactive-base": "var(--cobalt-light-7)",
-      "border-interactive-hover": "var(--cobalt-light-8)",
-      "border-interactive-active": "var(--cobalt-light-9)",
-      "border-interactive-selected": "var(--cobalt-light-9)",
-      "border-interactive-disabled": "var(--smoke-light-8)",
-      "border-interactive-focus": "var(--cobalt-light-9)",
-      "border-success-base": "var(--apple-light-6)",
-      "border-success-hover": "var(--apple-light-7)",
-      "border-success-selected": "var(--apple-light-9)",
-      "border-warning-base": "var(--solaris-light-6)",
-      "border-warning-hover": "var(--solaris-light-7)",
-      "border-warning-selected": "var(--solaris-light-9)",
-      "border-critical-base": "var(--ember-dark-5)",
-      "border-critical-hover": "var(--ember-dark-7)",
-      "border-critical-selected": "var(--ember-dark-9)",
-      "border-info-base": "var(--lilac-light-6)",
-      "border-info-hover": "var(--lilac-light-7)",
-      "border-info-selected": "var(--lilac-light-9)",
-      "icon-base": "var(--smoke-dark-9)",
-      "icon-hover": "var(--smoke-dark-10)",
-      "icon-active": "var(--smoke-dark-11)",
-      "icon-selected": "var(--smoke-dark-12)",
-      "icon-disabled": "var(--smoke-dark-7)",
-      "icon-focus": "var(--smoke-dark-12)",
-      "icon-invert-base": "var(--smoke-dark-1)",
-      "icon-weak-base": "var(--smoke-dark-6)",
-      "icon-weak-hover": "var(--smoke-light-7)",
-      "icon-weak-active": "var(--smoke-light-8)",
-      "icon-weak-selected": "var(--smoke-light-9)",
-      "icon-weak-disabled": "var(--smoke-light-4)",
-      "icon-weak-focus": "var(--smoke-light-9)",
-      "icon-strong-base": "var(--smoke-dark-12)",
-      "icon-strong-hover": "#f6f3f3",
-      "icon-strong-active": "#fcfcfc",
-      "icon-strong-selected": "#fdfcfc",
-      "icon-strong-disabled": "var(--smoke-dark-8)",
-      "icon-strong-focus": "#fdfcfc",
-      "icon-brand-base": "var(--white)",
-      "icon-interactive-base": "var(--cobalt-dark-11)",
-      "icon-success-base": "var(--apple-dark-9)",
-      "icon-success-hover": "var(--apple-dark-10)",
-      "icon-success-active": "var(--apple-dark-11)",
-      "icon-warning-base": "var(--amber-dark-9)",
-      "icon-warning-hover": "var(--amber-dark-8)",
-      "icon-warning-active": "var(--amber-dark-11)",
-      "icon-critical-base": "var(--ember-dark-9)",
-      "icon-critical-hover": "var(--ember-dark-11)",
-      "icon-critical-active": "var(--ember-dark-12)",
-      "icon-info-base": "var(--lilac-dark-7)",
-      "icon-info-hover": "var(--lilac-dark-8)",
-      "icon-info-active": "var(--lilac-dark-11)",
-      "icon-on-brand-base": "var(--smoke-light-alpha-11)",
-      "icon-on-brand-hover": "var(--smoke-light-alpha-12)",
-      "icon-on-brand-selected": "var(--smoke-light-alpha-12)",
-      "icon-on-interactive-base": "var(--smoke-dark-12)",
-      "icon-agent-plan-base": "var(--purple-dark-9)",
-      "icon-agent-docs-base": "var(--amber-dark-9)",
-      "icon-agent-ask-base": "var(--cyan-dark-9)",
-      "icon-agent-build-base": "var(--cobalt-dark-11)",
-      "icon-on-success-base": "var(--apple-dark-alpha-9)",
-      "icon-on-success-hover": "var(--apple-dark-alpha-10)",
-      "icon-on-success-selected": "var(--apple-dark-alpha-11)",
-      "icon-on-warning-base": "var(--amber-darkalpha-9)",
-      "icon-on-warning-hover": "var(--amber-darkalpha-10)",
-      "icon-on-warning-selected": "var(--amber-darkalpha-11)",
-      "icon-on-critical-base": "var(--ember-dark-alpha-9)",
-      "icon-on-critical-hover": "var(--ember-dark-alpha-10)",
-      "icon-on-critical-selected": "var(--ember-dark-alpha-11)",
-      "icon-on-info-base": "var(--lilac-dark-9)",
-      "icon-on-info-hover": "var(--lilac-dark-alpha-10)",
-      "icon-on-info-selected": "var(--lilac-dark-alpha-11)",
-      "icon-diff-add-base": "var(--mint-dark-11)",
-      "icon-diff-add-hover": "var(--mint-dark-10)",
-      "icon-diff-add-active": "var(--mint-dark-11)",
-      "icon-diff-delete-base": "var(--ember-dark-9)",
-      "icon-diff-delete-hover": "var(--ember-dark-10)",
-      "syntax-comment": "var(--text-weak)",
-      "syntax-regexp": "var(--text-base)",
-      "syntax-string": "#00ceb9",
-      "syntax-keyword": "var(--text-weak)",
-      "syntax-primitive": "#ffba92",
-      "syntax-operator": "var(--text-weak)",
-      "syntax-variable": "var(--text-strong)",
-      "syntax-property": "#ff9ae2",
-      "syntax-type": "#ecf58c",
-      "syntax-constant": "#93e9f6",
-      "syntax-punctuation": "var(--text-weak)",
-      "syntax-object": "var(--text-strong)",
-      "syntax-success": "var(--apple-dark-10)",
-      "syntax-warning": "var(--amber-dark-10)",
-      "syntax-critical": "var(--ember-dark-10)",
-      "syntax-info": "#93e9f6",
-      "syntax-diff-add": "var(--mint-dark-11)",
-      "syntax-diff-delete": "var(--ember-dark-11)",
-      "syntax-diff-unknown": "#ff0000",
-      "markdown-heading": "#9d7cd8",
-      "markdown-text": "#eeeeee",
-      "markdown-link": "#fab283",
-      "markdown-link-text": "#56b6c2",
-      "markdown-code": "#7fd88f",
-      "markdown-block-quote": "#e5c07b",
-      "markdown-emph": "#e5c07b",
-      "markdown-strong": "#f5a742",
-      "markdown-horizontal-rule": "#808080",
-      "markdown-list-item": "#fab283",
-      "markdown-list-enumeration": "#56b6c2",
-      "markdown-image": "#fab283",
-      "markdown-image-text": "#56b6c2",
-      "markdown-code-block": "#eeeeee",
-      "border-color": "#ffffff",
-      "border-weaker-base": "var(--smoke-dark-alpha-3)",
-      "border-weaker-hover": "var(--smoke-dark-alpha-4)",
-      "border-weaker-active": "var(--smoke-dark-alpha-6)",
-      "border-weaker-selected": "var(--cobalt-dark-alpha-3)",
-      "border-weaker-disabled": "var(--smoke-dark-alpha-2)",
-      "border-weaker-focus": "var(--smoke-dark-alpha-6)",
-      "button-ghost-hover": "var(--smoke-dark-alpha-2)",
-      "button-ghost-hover2": "var(--smoke-dark-alpha-3)",
-      "avatar-background-pink": "#501b3f",
-      "avatar-background-mint": "#033a34",
-      "avatar-background-orange": "#5f2a06",
-      "avatar-background-purple": "#432155",
-      "avatar-background-cyan": "#0f3058",
-      "avatar-background-lime": "#2b3711",
-      "avatar-text-pink": "#e34ba9",
-      "avatar-text-mint": "#95f3d9",
-      "avatar-text-orange": "#ff802b",
-      "avatar-text-purple": "#9d5bd2",
-      "avatar-text-cyan": "#369eff",
-      "avatar-text-lime": "#c4f042"
     }
   }
 }

+ 4 - 503
packages/ui/src/theme/themes/oc-2.json

@@ -3,9 +3,10 @@
   "name": "OC-2",
   "id": "oc-2",
   "light": {
-    "seeds": {
+    "palette": {
       "neutral": "#8e8b8b",
       "primary": "#dcde8d",
+      "accent": "#ed6dc8",
       "success": "#12c905",
       "warning": "#ffdc17",
       "error": "#fc533a",
@@ -13,265 +14,13 @@
       "interactive": "#034cff",
       "diffAdd": "#9ff29a",
       "diffDelete": "#fc533a"
-    },
-    "overrides": {
-      "background-base": "#f8f7f7",
-      "background-weak": "var(--gray-light-3)",
-      "background-strong": "var(--gray-light-1)",
-      "background-stronger": "#fcfcfc",
-      "surface-base": "var(--gray-light-alpha-2)",
-      "base": "var(--gray-light-alpha-2)",
-      "surface-base-hover": "#0500000f",
-      "surface-base-active": "var(--gray-light-alpha-3)",
-      "surface-base-interactive-active": "var(--cobalt-light-alpha-3)",
-      "base2": "var(--gray-light-alpha-2)",
-      "base3": "var(--gray-light-alpha-2)",
-      "surface-inset-base": "var(--gray-light-alpha-2)",
-      "surface-inset-base-hover": "var(--gray-light-alpha-3)",
-      "surface-inset-strong": "#1f000017",
-      "surface-inset-strong-hover": "#1f000017",
-      "surface-raised-base": "var(--gray-light-alpha-2)",
-      "surface-float-base": "var(--gray-dark-1)",
-      "surface-float-base-hover": "var(--gray-dark-2)",
-      "surface-raised-base-hover": "var(--gray-light-alpha-3)",
-      "surface-raised-base-active": "var(--gray-light-alpha-5)",
-      "surface-raised-strong": "var(--gray-light-1)",
-      "surface-raised-strong-hover": "var(--white)",
-      "surface-raised-stronger": "var(--white)",
-      "surface-raised-stronger-hover": "var(--white)",
-      "surface-weak": "var(--gray-light-alpha-3)",
-      "surface-weaker": "var(--gray-light-alpha-4)",
-      "surface-strong": "#ffffff",
-      "surface-raised-stronger-non-alpha": "var(--white)",
-      "surface-brand-base": "var(--yuzu-light-9)",
-      "surface-brand-hover": "var(--yuzu-light-10)",
-      "surface-interactive-base": "var(--cobalt-light-3)",
-      "surface-interactive-hover": "#E5F0FF",
-      "surface-interactive-weak": "var(--cobalt-light-2)",
-      "surface-interactive-weak-hover": "var(--cobalt-light-3)",
-      "surface-success-base": "var(--apple-light-3)",
-      "surface-success-weak": "var(--apple-light-2)",
-      "surface-success-strong": "var(--apple-light-9)",
-      "surface-warning-base": "var(--solaris-light-3)",
-      "surface-warning-weak": "var(--solaris-light-2)",
-      "surface-warning-strong": "var(--solaris-light-9)",
-      "surface-critical-base": "var(--ember-light-3)",
-      "surface-critical-weak": "var(--ember-light-2)",
-      "surface-critical-strong": "var(--ember-light-9)",
-      "surface-info-base": "var(--lilac-light-3)",
-      "surface-info-weak": "var(--lilac-light-2)",
-      "surface-info-strong": "var(--lilac-light-9)",
-      "surface-diff-unchanged-base": "#ffffff00",
-      "surface-diff-skip-base": "var(--gray-light-2)",
-      "surface-diff-hidden-base": "var(--blue-light-3)",
-      "surface-diff-hidden-weak": "var(--blue-light-2)",
-      "surface-diff-hidden-weaker": "var(--blue-light-1)",
-      "surface-diff-hidden-strong": "var(--blue-light-5)",
-      "surface-diff-hidden-stronger": "var(--blue-light-9)",
-      "surface-diff-add-base": "#dafbe0",
-      "surface-diff-add-weak": "var(--mint-light-2)",
-      "surface-diff-add-weaker": "var(--mint-light-1)",
-      "surface-diff-add-strong": "var(--mint-light-5)",
-      "surface-diff-add-stronger": "var(--mint-light-9)",
-      "surface-diff-delete-base": "var(--ember-light-3)",
-      "surface-diff-delete-weak": "var(--ember-light-2)",
-      "surface-diff-delete-weaker": "var(--ember-light-1)",
-      "surface-diff-delete-strong": "var(--ember-light-6)",
-      "surface-diff-delete-stronger": "var(--ember-light-9)",
-      "input-base": "var(--gray-light-1)",
-      "input-hover": "var(--gray-light-2)",
-      "input-active": "var(--cobalt-light-1)",
-      "input-selected": "var(--cobalt-light-4)",
-      "input-focus": "var(--cobalt-light-1)",
-      "input-disabled": "var(--gray-light-4)",
-      "text-base": "var(--gray-light-11)",
-      "text-weak": "var(--gray-light-9)",
-      "text-weaker": "var(--gray-light-8)",
-      "text-strong": "var(--gray-light-12)",
-      "text-invert-base": "var(--gray-dark-alpha-11)",
-      "text-invert-weak": "var(--gray-dark-alpha-9)",
-      "text-invert-weaker": "var(--gray-dark-alpha-8)",
-      "text-invert-strong": "var(--gray-dark-alpha-12)",
-      "text-interactive-base": "var(--cobalt-light-9)",
-      "text-on-brand-base": "var(--gray-light-alpha-11)",
-      "text-on-interactive-base": "var(--gray-light-1)",
-      "text-on-interactive-weak": "var(--gray-dark-alpha-11)",
-      "text-on-success-base": "var(--apple-light-10)",
-      "text-on-critical-base": "var(--ember-light-10)",
-      "text-on-critical-weak": "var(--ember-light-8)",
-      "text-on-critical-strong": "var(--ember-light-12)",
-      "text-on-warning-base": "var(--gray-dark-alpha-11)",
-      "text-on-info-base": "var(--gray-dark-alpha-11)",
-      "text-diff-add-base": "var(--mint-light-11)",
-      "text-diff-delete-base": "var(--ember-light-10)",
-      "text-diff-delete-strong": "var(--ember-light-12)",
-      "text-diff-add-strong": "var(--mint-light-12)",
-      "text-on-info-weak": "var(--gray-dark-alpha-9)",
-      "text-on-info-strong": "var(--gray-dark-alpha-12)",
-      "text-on-warning-weak": "var(--gray-dark-alpha-9)",
-      "text-on-warning-strong": "var(--gray-dark-alpha-12)",
-      "text-on-success-weak": "var(--apple-light-6)",
-      "text-on-success-strong": "var(--apple-light-12)",
-      "text-on-brand-weak": "var(--gray-light-alpha-9)",
-      "text-on-brand-weaker": "var(--gray-light-alpha-8)",
-      "text-on-brand-strong": "var(--gray-light-alpha-12)",
-      "button-primary-base": "var(--gray-light-12)",
-      "button-secondary-base": "var(--gray-light-1)",
-      "button-secondary-hover": "FFFFFF0A",
-      "border-base": "var(--gray-light-alpha-7)",
-      "border-hover": "var(--gray-light-alpha-8)",
-      "border-active": "var(--gray-light-alpha-9)",
-      "border-selected": "var(--cobalt-light-alpha-9)",
-      "border-disabled": "var(--gray-light-alpha-8)",
-      "border-focus": "var(--gray-light-alpha-9)",
-      "border-weak-base": "var(--gray-light-alpha-5)",
-      "border-strong-base": "var(--gray-light-alpha-7)",
-      "border-strong-hover": "var(--gray-light-alpha-8)",
-      "border-strong-active": "var(--gray-light-alpha-7)",
-      "border-strong-selected": "var(--cobalt-light-alpha-6)",
-      "border-strong-disabled": "var(--gray-light-alpha-6)",
-      "border-strong-focus": "var(--gray-light-alpha-7)",
-      "border-weak-hover": "var(--gray-light-alpha-6)",
-      "border-weak-active": "var(--gray-light-alpha-7)",
-      "border-weak-selected": "var(--cobalt-light-alpha-5)",
-      "border-weak-disabled": "var(--gray-light-alpha-6)",
-      "border-weak-focus": "var(--gray-light-alpha-7)",
-      "border-interactive-base": "var(--cobalt-light-7)",
-      "border-interactive-hover": "var(--cobalt-light-8)",
-      "border-interactive-active": "var(--cobalt-light-9)",
-      "border-interactive-selected": "var(--cobalt-light-9)",
-      "border-interactive-disabled": "var(--gray-light-8)",
-      "border-interactive-focus": "var(--cobalt-light-9)",
-      "border-success-base": "var(--apple-light-6)",
-      "border-success-hover": "var(--apple-light-7)",
-      "border-success-selected": "var(--apple-light-9)",
-      "border-warning-base": "var(--solaris-light-6)",
-      "border-warning-hover": "var(--solaris-light-7)",
-      "border-warning-selected": "var(--solaris-light-9)",
-      "border-critical-base": "var(--ember-light-6)",
-      "border-critical-hover": "var(--ember-light-7)",
-      "border-critical-selected": "var(--ember-light-9)",
-      "border-info-base": "var(--lilac-light-6)",
-      "border-info-hover": "var(--lilac-light-7)",
-      "border-info-selected": "var(--lilac-light-9)",
-      "icon-base": "var(--gray-light-9)",
-      "icon-hover": "var(--gray-light-11)",
-      "icon-active": "var(--gray-light-12)",
-      "icon-selected": "var(--gray-light-12)",
-      "icon-disabled": "var(--gray-light-8)",
-      "icon-focus": "var(--gray-light-12)",
-      "icon-invert-base": "#ffffff",
-      "icon-weak-base": "var(--gray-light-7)",
-      "icon-weak-hover": "var(--gray-light-8)",
-      "icon-weak-active": "var(--gray-light-9)",
-      "icon-weak-selected": "var(--gray-light-10)",
-      "icon-weak-disabled": "var(--gray-light-6)",
-      "icon-weak-focus": "var(--gray-light-9)",
-      "icon-strong-base": "var(--gray-light-12)",
-      "icon-strong-hover": "#151313",
-      "icon-strong-active": "#020202",
-      "icon-strong-selected": "#020202",
-      "icon-strong-disabled": "var(--gray-light-6)",
-      "icon-strong-focus": "#020202",
-      "icon-brand-base": "var(--gray-light-12)",
-      "icon-interactive-base": "var(--cobalt-light-9)",
-      "icon-success-base": "var(--apple-light-7)",
-      "icon-success-hover": "var(--apple-light-8)",
-      "icon-success-active": "var(--apple-light-11)",
-      "icon-warning-base": "var(--amber-light-7)",
-      "icon-warning-hover": "var(--amber-light-8)",
-      "icon-warning-active": "var(--amber-light-11)",
-      "icon-critical-base": "var(--ember-light-10)",
-      "icon-critical-hover": "var(--ember-light-11)",
-      "icon-critical-active": "var(--ember-light-12)",
-      "icon-info-base": "var(--lilac-light-7)",
-      "icon-info-hover": "var(--lilac-light-8)",
-      "icon-info-active": "var(--lilac-light-11)",
-      "icon-on-brand-base": "var(--gray-light-alpha-11)",
-      "icon-on-brand-hover": "var(--gray-light-alpha-12)",
-      "icon-on-brand-selected": "var(--gray-light-alpha-12)",
-      "icon-on-interactive-base": "var(--gray-light-1)",
-      "icon-agent-plan-base": "var(--purple-light-9)",
-      "icon-agent-docs-base": "var(--amber-light-9)",
-      "icon-agent-ask-base": "var(--cyan-light-9)",
-      "icon-agent-build-base": "var(--cobalt-light-9)",
-      "icon-on-success-base": "var(--apple-light-alpha-9)",
-      "icon-on-success-hover": "var(--apple-light-alpha-10)",
-      "icon-on-success-selected": "var(--apple-light-alpha-11)",
-      "icon-on-warning-base": "var(--amber-lightalpha-9)",
-      "icon-on-warning-hover": "var(--amber-lightalpha-10)",
-      "icon-on-warning-selected": "var(--amber-lightalpha-11)",
-      "icon-on-critical-base": "var(--ember-light-alpha-9)",
-      "icon-on-critical-hover": "var(--ember-light-alpha-10)",
-      "icon-on-critical-selected": "var(--ember-light-alpha-11)",
-      "icon-on-info-base": "var(--lilac-light-9)",
-      "icon-on-info-hover": "var(--lilac-light-alpha-10)",
-      "icon-on-info-selected": "var(--lilac-light-alpha-11)",
-      "icon-diff-add-base": "var(--mint-light-11)",
-      "icon-diff-add-hover": "var(--mint-light-12)",
-      "icon-diff-add-active": "var(--mint-light-12)",
-      "icon-diff-delete-base": "var(--ember-light-10)",
-      "icon-diff-delete-hover": "var(--ember-light-11)",
-      "syntax-comment": "var(--text-weak)",
-      "syntax-regexp": "var(--text-base)",
-      "syntax-string": "#006656",
-      "syntax-keyword": "var(--text-weak)",
-      "syntax-primitive": "#fb4804",
-      "syntax-operator": "var(--text-base)",
-      "syntax-variable": "var(--text-strong)",
-      "syntax-property": "#ed6dc8",
-      "syntax-type": "#596600",
-      "syntax-constant": "#007b80",
-      "syntax-punctuation": "var(--text-base)",
-      "syntax-object": "var(--text-strong)",
-      "syntax-success": "var(--apple-light-10)",
-      "syntax-warning": "var(--amber-light-10)",
-      "syntax-critical": "var(--ember-light-10)",
-      "syntax-info": "#0092a8",
-      "syntax-diff-add": "var(--mint-light-11)",
-      "syntax-diff-delete": "var(--ember-light-11)",
-      "syntax-diff-unknown": "#ff0000",
-      "markdown-heading": "#d68c27",
-      "markdown-text": "#1a1a1a",
-      "markdown-link": "#3b7dd8",
-      "markdown-link-text": "#318795",
-      "markdown-code": "#3d9a57",
-      "markdown-block-quote": "#b0851f",
-      "markdown-emph": "#b0851f",
-      "markdown-strong": "#d68c27",
-      "markdown-horizontal-rule": "#8a8a8a",
-      "markdown-list-item": "#3b7dd8",
-      "markdown-list-enumeration": "#318795",
-      "markdown-image": "#3b7dd8",
-      "markdown-image-text": "#318795",
-      "markdown-code-block": "#1a1a1a",
-      "border-color": "#ffffff",
-      "border-weaker-base": "var(--gray-light-alpha-3)",
-      "border-weaker-hover": "var(--gray-light-alpha-4)",
-      "border-weaker-active": "var(--gray-light-alpha-6)",
-      "border-weaker-selected": "var(--cobalt-light-alpha-4)",
-      "border-weaker-disabled": "var(--gray-light-alpha-2)",
-      "border-weaker-focus": "var(--gray-light-alpha-6)",
-      "button-ghost-hover": "var(--gray-light-alpha-2)",
-      "button-ghost-hover2": "var(--gray-light-alpha-3)",
-      "avatar-background-pink": "#feeef8",
-      "avatar-background-mint": "#e1fbf4",
-      "avatar-background-orange": "#fff1e7",
-      "avatar-background-purple": "#f9f1fe",
-      "avatar-background-cyan": "#e7f9fb",
-      "avatar-background-lime": "#eefadc",
-      "avatar-text-pink": "#cd1d8d",
-      "avatar-text-mint": "#147d6f",
-      "avatar-text-orange": "#ed5f00",
-      "avatar-text-purple": "#8445bc",
-      "avatar-text-cyan": "#0894b3",
-      "avatar-text-lime": "#5d770d"
     }
   },
   "dark": {
-    "seeds": {
+    "palette": {
       "neutral": "#716c6b",
       "primary": "#fab283",
+      "accent": "#ff9ae2",
       "success": "#12c905",
       "warning": "#fcd53a",
       "error": "#fc533a",
@@ -279,254 +28,6 @@
       "interactive": "#034cff",
       "diffAdd": "#c8ffc4",
       "diffDelete": "#fc533a"
-    },
-    "overrides": {
-      "base": "var(--gray-dark-alpha-2)",
-      "base2": "var(--gray-dark-alpha-2)",
-      "base3": "var(--gray-dark-alpha-2)",
-      "background-base": "#101010",
-      "background-weak": "#1E1E1E",
-      "background-strong": "#121212",
-      "background-stronger": "#151515",
-      "surface-base": "var(--gray-dark-alpha-2)",
-      "surface-base-hover": "#FFFFFF0A",
-      "surface-base-active": "var(--gray-dark-alpha-3)",
-      "surface-base-interactive-active": "var(--cobalt-dark-alpha-2)",
-      "surface-inset-base": "#0e0b0b7f",
-      "surface-inset-base-hover": "#0e0b0b7f",
-      "surface-inset-strong": "#060505cc",
-      "surface-inset-strong-hover": "#060505cc",
-      "surface-raised-base": "var(--gray-dark-alpha-3)",
-      "surface-float-base": "var(--gray-dark-1)",
-      "surface-float-base-hover": "var(--gray-dark-2)",
-      "surface-raised-base-hover": "var(--gray-dark-alpha-4)",
-      "surface-raised-base-active": "var(--gray-dark-alpha-5)",
-      "surface-raised-strong": "var(--gray-dark-alpha-4)",
-      "surface-raised-strong-hover": "var(--gray-dark-alpha-6)",
-      "surface-raised-stronger": "var(--gray-dark-alpha-6)",
-      "surface-raised-stronger-hover": "var(--gray-dark-alpha-7)",
-      "surface-weak": "var(--gray-dark-alpha-4)",
-      "surface-weaker": "var(--gray-dark-alpha-5)",
-      "surface-strong": "var(--gray-dark-alpha-7)",
-      "surface-raised-stronger-non-alpha": "#1B1B1B",
-      "surface-brand-base": "var(--yuzu-light-9)",
-      "surface-brand-hover": "var(--yuzu-light-10)",
-      "surface-interactive-base": "var(--cobalt-dark-3)",
-      "surface-interactive-hover": "#0A1D4D",
-      "surface-interactive-weak": "var(--cobalt-dark-2)",
-      "surface-interactive-weak-hover": "var(--cobalt-light-3)",
-      "surface-success-base": "var(--apple-dark-3)",
-      "surface-success-weak": "var(--apple-dark-2)",
-      "surface-success-strong": "var(--apple-dark-9)",
-      "surface-warning-base": "var(--solaris-light-3)",
-      "surface-warning-weak": "var(--solaris-light-2)",
-      "surface-warning-strong": "var(--solaris-light-9)",
-      "surface-critical-base": "var(--ember-dark-3)",
-      "surface-critical-weak": "var(--ember-dark-2)",
-      "surface-critical-strong": "var(--ember-dark-9)",
-      "surface-info-base": "var(--lilac-light-3)",
-      "surface-info-weak": "var(--lilac-light-2)",
-      "surface-info-strong": "var(--lilac-light-9)",
-      "surface-diff-unchanged-base": "var(--gray-dark-1)",
-      "surface-diff-skip-base": "var(--gray-dark-alpha-1)",
-      "surface-diff-hidden-base": "var(--blue-dark-2)",
-      "surface-diff-hidden-weak": "var(--blue-dark-1)",
-      "surface-diff-hidden-weaker": "var(--blue-dark-3)",
-      "surface-diff-hidden-strong": "var(--blue-dark-5)",
-      "surface-diff-hidden-stronger": "var(--blue-dark-11)",
-      "surface-diff-add-base": "var(--mint-dark-3)",
-      "surface-diff-add-weak": "var(--mint-dark-4)",
-      "surface-diff-add-weaker": "var(--mint-dark-3)",
-      "surface-diff-add-strong": "var(--mint-dark-5)",
-      "surface-diff-add-stronger": "var(--mint-dark-11)",
-      "surface-diff-delete-base": "var(--ember-dark-3)",
-      "surface-diff-delete-weak": "var(--ember-dark-4)",
-      "surface-diff-delete-weaker": "var(--ember-dark-3)",
-      "surface-diff-delete-strong": "var(--ember-dark-5)",
-      "surface-diff-delete-stronger": "var(--ember-dark-11)",
-      "input-base": "var(--gray-dark-2)",
-      "input-hover": "var(--gray-dark-2)",
-      "input-active": "var(--cobalt-dark-1)",
-      "input-selected": "var(--cobalt-dark-2)",
-      "input-focus": "var(--cobalt-dark-1)",
-      "input-disabled": "var(--gray-dark-4)",
-      "text-base": "var(--gray-dark-alpha-11)",
-      "text-weak": "var(--gray-dark-alpha-9)",
-      "text-weaker": "var(--gray-dark-alpha-8)",
-      "text-strong": "var(--gray-dark-alpha-12)",
-      "text-invert-base": "var(--gray-dark-alpha-11)",
-      "text-invert-weak": "var(--gray-dark-alpha-9)",
-      "text-invert-weaker": "var(--gray-dark-alpha-8)",
-      "text-invert-strong": "var(--gray-dark-alpha-12)",
-      "text-interactive-base": "var(--cobalt-dark-11)",
-      "text-on-brand-base": "var(--gray-dark-alpha-11)",
-      "text-on-interactive-base": "var(--gray-dark-12)",
-      "text-on-interactive-weak": "var(--gray-dark-alpha-11)",
-      "text-on-success-base": "var(--apple-dark-9)",
-      "text-on-critical-base": "var(--ember-dark-9)",
-      "text-on-critical-weak": "var(--ember-dark-8)",
-      "text-on-critical-strong": "var(--ember-dark-12)",
-      "text-on-warning-base": "var(--gray-dark-alpha-11)",
-      "text-on-info-base": "var(--gray-dark-alpha-11)",
-      "text-diff-add-base": "var(--mint-dark-11)",
-      "text-diff-delete-base": "var(--ember-dark-9)",
-      "text-diff-delete-strong": "var(--ember-dark-12)",
-      "text-diff-add-strong": "var(--mint-dark-8)",
-      "text-on-info-weak": "var(--gray-dark-alpha-9)",
-      "text-on-info-strong": "var(--gray-dark-alpha-12)",
-      "text-on-warning-weak": "var(--gray-dark-alpha-9)",
-      "text-on-warning-strong": "var(--gray-dark-alpha-12)",
-      "text-on-success-weak": "var(--apple-dark-8)",
-      "text-on-success-strong": "var(--apple-dark-12)",
-      "text-on-brand-weak": "var(--gray-dark-alpha-9)",
-      "text-on-brand-weaker": "var(--gray-dark-alpha-8)",
-      "text-on-brand-strong": "var(--gray-dark-alpha-12)",
-      "button-primary-base": "var(--gray-dark-12)",
-      "button-secondary-base": "var(--gray-dark-2)",
-      "button-secondary-hover": "#FFFFFF0A",
-      "border-base": "var(--gray-dark-alpha-7)",
-      "border-hover": "var(--gray-dark-alpha-8)",
-      "border-active": "var(--gray-dark-alpha-9)",
-      "border-selected": "var(--cobalt-dark-alpha-11)",
-      "border-disabled": "var(--gray-dark-alpha-8)",
-      "border-focus": "var(--gray-dark-alpha-9)",
-      "border-weak-base": "var(--gray-dark-alpha-5)",
-      "border-weak-hover": "var(--gray-dark-alpha-7)",
-      "border-weak-active": "var(--gray-dark-alpha-8)",
-      "border-weak-selected": "var(--cobalt-dark-alpha-6)",
-      "border-weak-disabled": "var(--gray-dark-alpha-6)",
-      "border-weak-focus": "var(--gray-dark-alpha-8)",
-      "border-strong-base": "var(--gray-dark-alpha-8)",
-      "border-interactive-base": "var(--cobalt-light-7)",
-      "border-interactive-hover": "var(--cobalt-light-8)",
-      "border-interactive-active": "var(--cobalt-light-9)",
-      "border-interactive-selected": "var(--cobalt-light-9)",
-      "border-interactive-disabled": "var(--gray-light-8)",
-      "border-interactive-focus": "var(--cobalt-light-9)",
-      "border-success-base": "var(--apple-light-6)",
-      "border-success-hover": "var(--apple-light-7)",
-      "border-success-selected": "var(--apple-light-9)",
-      "border-warning-base": "var(--solaris-light-6)",
-      "border-warning-hover": "var(--solaris-light-7)",
-      "border-warning-selected": "var(--solaris-light-9)",
-      "border-critical-base": "var(--ember-dark-5)",
-      "border-critical-hover": "var(--ember-dark-7)",
-      "border-critical-selected": "var(--ember-dark-9)",
-      "border-info-base": "var(--lilac-light-6)",
-      "border-info-hover": "var(--lilac-light-7)",
-      "border-info-selected": "var(--lilac-light-9)",
-      "icon-base": "var(--gray-dark-10)",
-      "icon-hover": "var(--gray-dark-11)",
-      "icon-active": "var(--gray-dark-12)",
-      "icon-selected": "var(--gray-dark-12)",
-      "icon-disabled": "var(--gray-dark-8)",
-      "icon-focus": "var(--gray-dark-12)",
-      "icon-invert-base": "var(--gray-dark-1)",
-      "icon-weak-base": "var(--gray-dark-6)",
-      "icon-weak-hover": "var(--gray-light-7)",
-      "icon-weak-active": "var(--gray-light-8)",
-      "icon-weak-selected": "var(--gray-light-9)",
-      "icon-weak-disabled": "var(--gray-light-4)",
-      "icon-weak-focus": "var(--gray-light-9)",
-      "icon-strong-base": "var(--gray-dark-12)",
-      "icon-strong-hover": "#F3F3F3",
-      "icon-strong-active": "#EBEBEB",
-      "icon-strong-selected": "#FCFCFC",
-      "icon-strong-disabled": "var(--gray-dark-7)",
-      "icon-strong-focus": "#FCFCFC",
-      "icon-brand-base": "var(--white)",
-      "icon-interactive-base": "var(--cobalt-dark-11)",
-      "icon-success-base": "var(--apple-dark-9)",
-      "icon-success-hover": "var(--apple-dark-10)",
-      "icon-success-active": "var(--apple-dark-11)",
-      "icon-warning-base": "var(--amber-dark-9)",
-      "icon-warning-hover": "var(--amber-dark-8)",
-      "icon-warning-active": "var(--amber-dark-11)",
-      "icon-critical-base": "var(--ember-dark-9)",
-      "icon-critical-hover": "var(--ember-dark-11)",
-      "icon-critical-active": "var(--ember-dark-12)",
-      "icon-info-base": "var(--lilac-dark-7)",
-      "icon-info-hover": "var(--lilac-dark-8)",
-      "icon-info-active": "var(--lilac-dark-11)",
-      "icon-on-brand-base": "var(--gray-light-alpha-11)",
-      "icon-on-brand-hover": "var(--gray-light-alpha-12)",
-      "icon-on-brand-selected": "var(--gray-light-alpha-12)",
-      "icon-on-interactive-base": "var(--gray-dark-12)",
-      "icon-agent-plan-base": "var(--purple-dark-9)",
-      "icon-agent-docs-base": "var(--amber-dark-9)",
-      "icon-agent-ask-base": "var(--cyan-dark-9)",
-      "icon-agent-build-base": "var(--cobalt-dark-11)",
-      "icon-on-success-base": "var(--apple-dark-alpha-9)",
-      "icon-on-success-hover": "var(--apple-dark-alpha-10)",
-      "icon-on-success-selected": "var(--apple-dark-alpha-11)",
-      "icon-on-warning-base": "var(--amber-darkalpha-9)",
-      "icon-on-warning-hover": "var(--amber-darkalpha-10)",
-      "icon-on-warning-selected": "var(--amber-darkalpha-11)",
-      "icon-on-critical-base": "var(--ember-dark-alpha-9)",
-      "icon-on-critical-hover": "var(--ember-dark-alpha-10)",
-      "icon-on-critical-selected": "var(--ember-dark-alpha-11)",
-      "icon-on-info-base": "var(--lilac-dark-9)",
-      "icon-on-info-hover": "var(--lilac-dark-alpha-10)",
-      "icon-on-info-selected": "var(--lilac-dark-alpha-11)",
-      "icon-diff-add-base": "var(--mint-dark-11)",
-      "icon-diff-add-hover": "var(--mint-dark-10)",
-      "icon-diff-add-active": "var(--mint-dark-11)",
-      "icon-diff-delete-base": "var(--ember-dark-9)",
-      "icon-diff-delete-hover": "var(--ember-dark-10)",
-      "syntax-comment": "var(--text-weak)",
-      "syntax-regexp": "var(--text-base)",
-      "syntax-string": "#00ceb9",
-      "syntax-keyword": "var(--text-weak)",
-      "syntax-primitive": "#ffba92",
-      "syntax-operator": "var(--text-weak)",
-      "syntax-variable": "var(--text-strong)",
-      "syntax-property": "#ff9ae2",
-      "syntax-type": "#ecf58c",
-      "syntax-constant": "#93e9f6",
-      "syntax-punctuation": "var(--text-weak)",
-      "syntax-object": "var(--text-strong)",
-      "syntax-success": "var(--apple-dark-10)",
-      "syntax-warning": "var(--amber-dark-10)",
-      "syntax-critical": "var(--ember-dark-10)",
-      "syntax-info": "#93e9f6",
-      "syntax-diff-add": "var(--mint-dark-11)",
-      "syntax-diff-delete": "var(--ember-dark-11)",
-      "syntax-diff-unknown": "#ff0000",
-      "markdown-heading": "#9d7cd8",
-      "markdown-text": "#eeeeee",
-      "markdown-link": "#fab283",
-      "markdown-link-text": "#56b6c2",
-      "markdown-code": "#7fd88f",
-      "markdown-block-quote": "#e5c07b",
-      "markdown-emph": "#e5c07b",
-      "markdown-strong": "#f5a742",
-      "markdown-horizontal-rule": "#808080",
-      "markdown-list-item": "#fab283",
-      "markdown-list-enumeration": "#56b6c2",
-      "markdown-image": "#fab283",
-      "markdown-image-text": "#56b6c2",
-      "markdown-code-block": "#eeeeee",
-      "border-color": "#ffffff",
-      "border-weaker-base": "var(--gray-dark-alpha-3)",
-      "border-weaker-hover": "var(--gray-dark-alpha-4)",
-      "border-weaker-active": "var(--gray-dark-alpha-6)",
-      "border-weaker-selected": "var(--cobalt-dark-alpha-3)",
-      "border-weaker-disabled": "var(--gray-dark-alpha-2)",
-      "border-weaker-focus": "var(--gray-dark-alpha-6)",
-      "button-ghost-hover": "var(--gray-dark-alpha-2)",
-      "button-ghost-hover2": "var(--gray-dark-alpha-3)",
-      "avatar-background-pink": "#501b3f",
-      "avatar-background-mint": "#033a34",
-      "avatar-background-orange": "#5f2a06",
-      "avatar-background-purple": "#432155",
-      "avatar-background-cyan": "#0f3058",
-      "avatar-background-lime": "#2b3711",
-      "avatar-text-pink": "#e34ba9",
-      "avatar-text-mint": "#95f3d9",
-      "avatar-text-orange": "#ff802b",
-      "avatar-text-purple": "#9d5bd2",
-      "avatar-text-cyan": "#369eff",
-      "avatar-text-lime": "#c4f042"
     }
   }
 }

+ 6 - 104
packages/ui/src/theme/themes/onedarkpro.json

@@ -3,129 +3,31 @@
   "name": "One Dark Pro",
   "id": "onedarkpro",
   "light": {
-    "seeds": {
+    "palette": {
       "neutral": "#f5f6f8",
+      "ink": "#2b303b",
       "primary": "#528bff",
+      "accent": "#d85462",
       "success": "#4fa66d",
       "warning": "#d19a66",
       "error": "#e06c75",
       "info": "#61afef",
-      "interactive": "#528bff",
       "diffAdd": "#c2ebcf",
       "diffDelete": "#f7c1c5"
-    },
-    "overrides": {
-      "background-base": "#f5f6f8",
-      "background-weak": "#eef0f4",
-      "background-strong": "#fafbfc",
-      "background-stronger": "#ffffff",
-      "border-weak-base": "#dee2eb",
-      "border-weak-hover": "#d4d9e3",
-      "border-weak-active": "#caced6",
-      "border-weak-selected": "#bec4d0",
-      "border-weak-disabled": "#f4f6fb",
-      "border-weak-focus": "#c4cada",
-      "border-base": "#b5bccd",
-      "border-hover": "#aab1c2",
-      "border-active": "#a0a7b8",
-      "border-selected": "#959cae",
-      "border-disabled": "#eceef4",
-      "border-focus": "#a6adbf",
-      "border-strong-base": "#747c92",
-      "border-strong-hover": "#6a7287",
-      "border-strong-active": "#60687c",
-      "border-strong-selected": "#565e71",
-      "border-strong-disabled": "#cbd0dd",
-      "border-strong-focus": "#666d82",
-      "surface-diff-add-base": "#e5f4ea",
-      "surface-diff-delete-base": "#fde7ea",
-      "surface-diff-hidden-base": "#e4e8f4",
-      "text-base": "#2b303b",
-      "text-weak": "#6b717f",
-      "text-strong": "#0e1118",
-      "syntax-string": "#4fa66d",
-      "syntax-primitive": "#d85462",
-      "syntax-property": "#528bff",
-      "syntax-type": "#d19a66",
-      "syntax-constant": "#61afef",
-      "syntax-info": "#61afef",
-      "markdown-heading": "#528bff",
-      "markdown-text": "#2b303b",
-      "markdown-link": "#528bff",
-      "markdown-link-text": "#61afef",
-      "markdown-code": "#4fa66d",
-      "markdown-block-quote": "#d19a66",
-      "markdown-emph": "#d19a66",
-      "markdown-strong": "#d85462",
-      "markdown-horizontal-rule": "#d3d7e4",
-      "markdown-list-item": "#528bff",
-      "markdown-list-enumeration": "#61afef",
-      "markdown-image": "#528bff",
-      "markdown-image-text": "#61afef",
-      "markdown-code-block": "#528bff"
     }
   },
   "dark": {
-    "seeds": {
+    "palette": {
       "neutral": "#1e222a",
+      "ink": "#abb2bf",
       "primary": "#61afef",
+      "accent": "#e06c75",
       "success": "#98c379",
       "warning": "#e5c07b",
       "error": "#e06c75",
       "info": "#56b6c2",
-      "interactive": "#61afef",
       "diffAdd": "#4b815a",
       "diffDelete": "#b2555f"
-    },
-    "overrides": {
-      "background-base": "#1e222a",
-      "background-weak": "#212631",
-      "background-strong": "#1b1f27",
-      "background-stronger": "#171b23",
-      "border-weak-base": "#323848",
-      "border-weak-hover": "#363d52",
-      "border-weak-active": "#3c435c",
-      "border-weak-selected": "#424967",
-      "border-weak-disabled": "#141720",
-      "border-weak-focus": "#3f4560",
-      "border-base": "#4a5164",
-      "border-hover": "#515871",
-      "border-active": "#585f7e",
-      "border-selected": "#60688a",
-      "border-disabled": "#1a1e27",
-      "border-focus": "#555c79",
-      "border-strong-base": "#6a7390",
-      "border-strong-hover": "#737c9d",
-      "border-strong-active": "#7d87ab",
-      "border-strong-selected": "#8791b8",
-      "border-strong-disabled": "#212533",
-      "border-strong-focus": "#7680a2",
-      "surface-diff-add-base": "#1c2a26",
-      "surface-diff-delete-base": "#2a1c22",
-      "surface-diff-hidden-base": "#232836",
-      "text-base": "#abb2bf",
-      "text-weak": "#818899",
-      "text-strong": "#f6f7fb",
-      "syntax-string": "#98c379",
-      "syntax-primitive": "#e06c75",
-      "syntax-property": "#61afef",
-      "syntax-type": "#e5c07b",
-      "syntax-constant": "#56b6c2",
-      "syntax-info": "#56b6c2",
-      "markdown-heading": "#61afef",
-      "markdown-text": "#abb2bf",
-      "markdown-link": "#61afef",
-      "markdown-link-text": "#56b6c2",
-      "markdown-code": "#98c379",
-      "markdown-block-quote": "#e5c07b",
-      "markdown-emph": "#e5c07b",
-      "markdown-strong": "#e06c75",
-      "markdown-horizontal-rule": "#2d3444",
-      "markdown-list-item": "#61afef",
-      "markdown-list-enumeration": "#56b6c2",
-      "markdown-image": "#61afef",
-      "markdown-image-text": "#56b6c2",
-      "markdown-code-block": "#abb2bf"
     }
   }
 }

+ 6 - 104
packages/ui/src/theme/themes/shadesofpurple.json

@@ -3,129 +3,31 @@
   "name": "Shades of Purple",
   "id": "shadesofpurple",
   "light": {
-    "seeds": {
+    "palette": {
       "neutral": "#f7ebff",
+      "ink": "#3b2c59",
       "primary": "#7a5af8",
+      "accent": "#ff6bd5",
       "success": "#3dd598",
       "warning": "#f7c948",
       "error": "#ff6bd5",
       "info": "#62d4ff",
-      "interactive": "#7a5af8",
       "diffAdd": "#c8f8da",
       "diffDelete": "#ffc3ef"
-    },
-    "overrides": {
-      "background-base": "#f7ebff",
-      "background-weak": "#f2e2ff",
-      "background-strong": "#fbf2ff",
-      "background-stronger": "#fff7ff",
-      "border-weak-base": "#e5d3ff",
-      "border-weak-hover": "#dac8f5",
-      "border-weak-active": "#d1bdeb",
-      "border-weak-selected": "#c6b3e1",
-      "border-weak-disabled": "#fcf6ff",
-      "border-weak-focus": "#ccb9e7",
-      "border-base": "#baa4d5",
-      "border-hover": "#b098cb",
-      "border-active": "#a68dc2",
-      "border-selected": "#9b82b8",
-      "border-disabled": "#f1e7ff",
-      "border-focus": "#a692c6",
-      "border-strong-base": "#8769a9",
-      "border-strong-hover": "#7b5c9d",
-      "border-strong-active": "#704f91",
-      "border-strong-selected": "#664587",
-      "border-strong-disabled": "#d8c4f0",
-      "border-strong-focus": "#755495",
-      "surface-diff-add-base": "#edf8f1",
-      "surface-diff-delete-base": "#ffe4f4",
-      "surface-diff-hidden-base": "#e9e4ff",
-      "text-base": "#3b2c59",
-      "text-weak": "#6c568f",
-      "text-strong": "#1c1033",
-      "syntax-string": "#3dd598",
-      "syntax-primitive": "#ff6bd5",
-      "syntax-property": "#7a5af8",
-      "syntax-type": "#f7c948",
-      "syntax-constant": "#62d4ff",
-      "syntax-info": "#62d4ff",
-      "markdown-heading": "#7a5af8",
-      "markdown-text": "#3b2c59",
-      "markdown-link": "#7a5af8",
-      "markdown-link-text": "#62d4ff",
-      "markdown-code": "#3dd598",
-      "markdown-block-quote": "#f7c948",
-      "markdown-emph": "#f7c948",
-      "markdown-strong": "#ff6bd5",
-      "markdown-horizontal-rule": "#decbed",
-      "markdown-list-item": "#7a5af8",
-      "markdown-list-enumeration": "#62d4ff",
-      "markdown-image": "#7a5af8",
-      "markdown-image-text": "#62d4ff",
-      "markdown-code-block": "#7a5af8"
     }
   },
   "dark": {
-    "seeds": {
+    "palette": {
       "neutral": "#1a102b",
+      "ink": "#f5f0ff",
       "primary": "#c792ff",
+      "accent": "#ff7ac6",
       "success": "#7be0b0",
       "warning": "#ffd580",
       "error": "#ff7ac6",
       "info": "#7dd4ff",
-      "interactive": "#c792ff",
       "diffAdd": "#53c39f",
       "diffDelete": "#d85aa0"
-    },
-    "overrides": {
-      "background-base": "#1a102b",
-      "background-weak": "#1f1434",
-      "background-strong": "#1c122f",
-      "background-stronger": "#170e26",
-      "border-weak-base": "#352552",
-      "border-weak-hover": "#3a2a5d",
-      "border-weak-active": "#402f68",
-      "border-weak-selected": "#463674",
-      "border-weak-disabled": "#10091b",
-      "border-weak-focus": "#3d2d65",
-      "border-base": "#4d3a73",
-      "border-hover": "#553f7f",
-      "border-active": "#5d468c",
-      "border-selected": "#654c99",
-      "border-disabled": "#150d21",
-      "border-focus": "#594283",
-      "border-strong-base": "#7659b0",
-      "border-strong-hover": "#8262be",
-      "border-strong-active": "#8e6ccc",
-      "border-strong-selected": "#9a77da",
-      "border-strong-disabled": "#1c122c",
-      "border-strong-focus": "#8666c4",
-      "surface-diff-add-base": "#142c27",
-      "surface-diff-delete-base": "#2d1424",
-      "surface-diff-hidden-base": "#231737",
-      "text-base": "#f5f0ff",
-      "text-weak": "#c9b6ff",
-      "text-strong": "#ffffff",
-      "syntax-string": "#7be0b0",
-      "syntax-primitive": "#ff7ac6",
-      "syntax-property": "#c792ff",
-      "syntax-type": "#ffd580",
-      "syntax-constant": "#7dd4ff",
-      "syntax-info": "#7dd4ff",
-      "markdown-heading": "#c792ff",
-      "markdown-text": "#f5f0ff",
-      "markdown-link": "#c792ff",
-      "markdown-link-text": "#7dd4ff",
-      "markdown-code": "#7be0b0",
-      "markdown-block-quote": "#ffd580",
-      "markdown-emph": "#ffd580",
-      "markdown-strong": "#ff7ac6",
-      "markdown-horizontal-rule": "#2d1d41",
-      "markdown-list-item": "#c792ff",
-      "markdown-list-enumeration": "#7dd4ff",
-      "markdown-image": "#c792ff",
-      "markdown-image-text": "#7dd4ff",
-      "markdown-code-block": "#f5f0ff"
     }
   }
 }

+ 6 - 104
packages/ui/src/theme/themes/solarized.json

@@ -3,129 +3,31 @@
   "name": "Solarized",
   "id": "solarized",
   "light": {
-    "seeds": {
+    "palette": {
       "neutral": "#fdf6e3",
+      "ink": "#586e75",
       "primary": "#268bd2",
+      "accent": "#d33682",
       "success": "#859900",
       "warning": "#b58900",
       "error": "#dc322f",
       "info": "#2aa198",
-      "interactive": "#268bd2",
       "diffAdd": "#c6dc7a",
       "diffDelete": "#f2a1a1"
-    },
-    "overrides": {
-      "background-base": "#fdf6e3",
-      "background-weak": "#f6efda",
-      "background-strong": "#faf3dc",
-      "background-stronger": "#f6edd4",
-      "border-weak-base": "#e3e0cd",
-      "border-weak-hover": "#d9d4c2",
-      "border-weak-active": "#cfcab7",
-      "border-weak-selected": "#c5c0ad",
-      "border-weak-disabled": "#f2edda",
-      "border-weak-focus": "#cbc6b2",
-      "border-base": "#bcb5a0",
-      "border-hover": "#b1aa96",
-      "border-active": "#a59f8c",
-      "border-selected": "#999382",
-      "border-disabled": "#ede7d4",
-      "border-focus": "#aca58f",
-      "border-strong-base": "#8c8572",
-      "border-strong-hover": "#7f7866",
-      "border-strong-active": "#716b5b",
-      "border-strong-selected": "#645f50",
-      "border-strong-disabled": "#d5cdb8",
-      "border-strong-focus": "#78715f",
-      "surface-diff-add-base": "#eef5d6",
-      "surface-diff-delete-base": "#fde4dd",
-      "surface-diff-hidden-base": "#e3ecf3",
-      "text-base": "#586e75",
-      "text-weak": "#7a8c8e",
-      "text-strong": "#073642",
-      "syntax-string": "#859900",
-      "syntax-primitive": "#d33682",
-      "syntax-property": "#268bd2",
-      "syntax-type": "#b58900",
-      "syntax-constant": "#2aa198",
-      "syntax-info": "#2aa198",
-      "markdown-heading": "#268bd2",
-      "markdown-text": "#586e75",
-      "markdown-link": "#268bd2",
-      "markdown-link-text": "#2aa198",
-      "markdown-code": "#859900",
-      "markdown-block-quote": "#b58900",
-      "markdown-emph": "#b58900",
-      "markdown-strong": "#d33682",
-      "markdown-horizontal-rule": "#cfd1bf",
-      "markdown-list-item": "#268bd2",
-      "markdown-list-enumeration": "#2aa198",
-      "markdown-image": "#268bd2",
-      "markdown-image-text": "#2aa198",
-      "markdown-code-block": "#2aa198"
     }
   },
   "dark": {
-    "seeds": {
+    "palette": {
       "neutral": "#002b36",
+      "ink": "#93a1a1",
       "primary": "#6c71c4",
+      "accent": "#d33682",
       "success": "#859900",
       "warning": "#b58900",
       "error": "#dc322f",
       "info": "#2aa198",
-      "interactive": "#6c71c4",
       "diffAdd": "#4c7654",
       "diffDelete": "#c34b4b"
-    },
-    "overrides": {
-      "background-base": "#001f27",
-      "background-weak": "#022733",
-      "background-strong": "#01222b",
-      "background-stronger": "#032830",
-      "border-weak-base": "#20373f",
-      "border-weak-hover": "#243e47",
-      "border-weak-active": "#28434f",
-      "border-weak-selected": "#2d4958",
-      "border-weak-disabled": "#0f2026",
-      "border-weak-focus": "#2a4552",
-      "border-base": "#31505b",
-      "border-hover": "#365765",
-      "border-active": "#3c5e70",
-      "border-selected": "#42657a",
-      "border-disabled": "#13272e",
-      "border-focus": "#3a5a6b",
-      "border-strong-base": "#4a7887",
-      "border-strong-hover": "#528294",
-      "border-strong-active": "#5a8ca1",
-      "border-strong-selected": "#6396ae",
-      "border-strong-disabled": "#1b323b",
-      "border-strong-focus": "#56879a",
-      "surface-diff-add-base": "#0f2f29",
-      "surface-diff-delete-base": "#321c1c",
-      "surface-diff-hidden-base": "#0f3844",
-      "text-base": "#93a1a1",
-      "text-weak": "#6c7f80",
-      "text-strong": "#fdf6e3",
-      "syntax-string": "#859900",
-      "syntax-primitive": "#d33682",
-      "syntax-property": "#6c71c4",
-      "syntax-type": "#b58900",
-      "syntax-constant": "#2aa198",
-      "syntax-info": "#2aa198",
-      "markdown-heading": "#6c71c4",
-      "markdown-text": "#93a1a1",
-      "markdown-link": "#6c71c4",
-      "markdown-link-text": "#2aa198",
-      "markdown-code": "#859900",
-      "markdown-block-quote": "#b58900",
-      "markdown-emph": "#b58900",
-      "markdown-strong": "#d33682",
-      "markdown-horizontal-rule": "#0e3b46",
-      "markdown-list-item": "#6c71c4",
-      "markdown-list-enumeration": "#2aa198",
-      "markdown-image": "#6c71c4",
-      "markdown-image-text": "#2aa198",
-      "markdown-code-block": "#93a1a1"
     }
   }
 }

+ 6 - 128
packages/ui/src/theme/themes/tokyonight.json

@@ -3,153 +3,31 @@
   "name": "Tokyonight",
   "id": "tokyonight",
   "light": {
-    "seeds": {
+    "palette": {
       "neutral": "#e1e2e7",
+      "ink": "#273153",
       "primary": "#2e7de9",
+      "accent": "#b15c00",
       "success": "#587539",
       "warning": "#8c6c3e",
       "error": "#c94060",
       "info": "#007197",
-      "interactive": "#2e7de9",
       "diffAdd": "#4f8f7b",
       "diffDelete": "#d05f7c"
-    },
-    "overrides": {
-      "background-base": "#e1e2e7",
-      "background-weak": "#dee0ea",
-      "background-strong": "#e5e6ee",
-      "background-stronger": "#e9eaf1",
-      "border-weak-base": "#cdd0dc",
-      "border-weak-hover": "#c3c6d2",
-      "border-weak-active": "#b9bcc8",
-      "border-weak-selected": "#aeb2bf",
-      "border-weak-disabled": "#e6e7ef",
-      "border-weak-focus": "#b3b6c3",
-      "border-base": "#a7abbb",
-      "border-hover": "#9ba0b1",
-      "border-active": "#9095a8",
-      "border-selected": "#83889e",
-      "border-disabled": "#dedfe6",
-      "border-focus": "#9599a8",
-      "border-strong-base": "#757b90",
-      "border-strong-hover": "#6a7084",
-      "border-strong-active": "#5f6578",
-      "border-strong-selected": "#545a6d",
-      "border-strong-disabled": "#c4c6d0",
-      "border-strong-focus": "#666b7f",
-      "surface-diff-add-base": "#dfe7da",
-      "surface-diff-delete-base": "#f4dadd",
-      "surface-diff-hidden-base": "#cfd1dd",
-      "text-base": "#273153",
-      "text-weak": "#5c6390",
-      "text-strong": "#1c2544",
-      "syntax-string": "#587539",
-      "syntax-primitive": "#b15c00",
-      "syntax-property": "#9854f1",
-      "syntax-type": "#3760bf",
-      "syntax-constant": "#007197",
-      "syntax-info": "#007197",
-      "markdown-heading": "#9854f1",
-      "markdown-text": "#273153",
-      "markdown-link": "#2e7de9",
-      "markdown-link-text": "#007197",
-      "markdown-code": "#587539",
-      "markdown-block-quote": "#8c6c3e",
-      "markdown-emph": "#8c6c3e",
-      "markdown-strong": "#b15c00",
-      "markdown-horizontal-rule": "#a1a6c5",
-      "markdown-list-item": "#2e7de9",
-      "markdown-list-enumeration": "#007197",
-      "markdown-image": "#2e7de9",
-      "markdown-image-text": "#007197",
-      "markdown-code-block": "#3760bf"
     }
   },
   "dark": {
-    "seeds": {
+    "palette": {
       "neutral": "#1a1b26",
+      "ink": "#c0caf5",
       "primary": "#7aa2f7",
+      "accent": "#ff9e64",
       "success": "#9ece6a",
       "warning": "#e0af68",
       "error": "#f7768e",
       "info": "#7dcfff",
-      "interactive": "#7aa2f7",
       "diffAdd": "#41a6b5",
       "diffDelete": "#c34043"
-    },
-    "overrides": {
-      "background-base": "#0f111a",
-      "background-weak": "#111428",
-      "background-strong": "#101324",
-      "background-stronger": "#13172a",
-      "border-weak-base": "#25283b",
-      "border-weak-hover": "#292c43",
-      "border-weak-active": "#2e314b",
-      "border-weak-selected": "#343755",
-      "border-weak-disabled": "#151727",
-      "border-weak-focus": "#30324f",
-      "border-base": "#3a3e57",
-      "border-hover": "#414264",
-      "border-active": "#474972",
-      "border-selected": "#4f507f",
-      "border-disabled": "#1c1d2d",
-      "border-focus": "#45496f",
-      "border-strong-base": "#5a5f82",
-      "border-strong-hover": "#646994",
-      "border-strong-active": "#6f74a6",
-      "border-strong-selected": "#7a7fb8",
-      "border-strong-disabled": "#23243a",
-      "border-strong-focus": "#6a6f9f",
-      "surface-base": "#1f2335",
-      "base": "#1f2335",
-      "surface-base-hover": "#232840",
-      "surface-base-active": "#262c46",
-      "surface-base-interactive-active": "#2b3357",
-      "base2": "#1f2335",
-      "base3": "#1f2335",
-      "surface-inset-base": "#161a2ab3",
-      "surface-inset-base-hover": "#161a2acc",
-      "surface-inset-strong": "#0d111fcc",
-      "surface-inset-strong-hover": "#0d111fcc",
-      "surface-raised-base": "#242a42",
-      "surface-float-base": "#242b45",
-      "surface-float-base-hover": "#2a3154",
-      "surface-raised-base-hover": "#272e49",
-      "surface-raised-base-active": "#2c3353",
-      "surface-raised-strong": "#31385a",
-      "surface-raised-strong-hover": "#373f6b",
-      "surface-raised-stronger": "#3b4261",
-      "surface-raised-stronger-hover": "#444c82",
-      "surface-weak": "#1b2033",
-      "surface-weaker": "#181d2d",
-      "surface-strong": "#323858",
-      "surface-raised-stronger-non-alpha": "#2b3150",
-      "surface-diff-add-base": "#1c2a38",
-      "surface-diff-delete-base": "#2a1f32",
-      "surface-diff-hidden-base": "#24283b",
-      "text-base": "#c0caf5",
-      "text-weak": "#7a88cf",
-      "text-strong": "#eaeaff",
-      "syntax-string": "#9ece6a",
-      "syntax-primitive": "#ff9e64",
-      "syntax-property": "#bb9af7",
-      "syntax-type": "#e0af68",
-      "syntax-constant": "#7dcfff",
-      "syntax-info": "#7dcfff",
-      "markdown-heading": "#bb9af7",
-      "markdown-text": "#c0caf5",
-      "markdown-link": "#7aa2f7",
-      "markdown-link-text": "#7dcfff",
-      "markdown-code": "#9ece6a",
-      "markdown-block-quote": "#e0af68",
-      "markdown-emph": "#e0af68",
-      "markdown-strong": "#ff9e64",
-      "markdown-horizontal-rule": "#3b4261",
-      "markdown-list-item": "#7aa2f7",
-      "markdown-list-enumeration": "#7dcfff",
-      "markdown-image": "#7aa2f7",
-      "markdown-image-text": "#7dcfff",
-      "markdown-code-block": "#c0caf5"
     }
   }
 }

+ 6 - 104
packages/ui/src/theme/themes/vesper.json

@@ -3,129 +3,31 @@
   "name": "Vesper",
   "id": "vesper",
   "light": {
-    "seeds": {
+    "palette": {
       "neutral": "#F0F0F0",
+      "ink": "#101010",
       "primary": "#FFC799",
+      "accent": "#B30000",
       "success": "#99FFE4",
       "warning": "#FFC799",
       "error": "#FF8080",
       "info": "#FFC799",
-      "interactive": "#FFC799",
       "diffAdd": "#99FFE4",
       "diffDelete": "#FF8080"
-    },
-    "overrides": {
-      "background-base": "#FFF",
-      "background-weak": "#F8F8F8",
-      "background-strong": "#F0F0F0",
-      "background-stronger": "#FBFBFB",
-      "border-weak-hover": "#E0E0E0",
-      "border-weak-active": "#D8D8D8",
-      "border-weak-selected": "#D0D0D0",
-      "border-weak-disabled": "#F0F0F0",
-      "border-weak-focus": "#D8D8D8",
-      "border-base": "#D0D0D0",
-      "border-hover": "#C8C8C8",
-      "border-active": "#C0C0C0",
-      "border-selected": "#B8B8B8",
-      "border-disabled": "#E8E8E8",
-      "border-focus": "#C0C0C0",
-      "border-strong-base": "#A0A0A0",
-      "border-strong-hover": "#989898",
-      "border-strong-active": "#909090",
-      "border-strong-selected": "#888888",
-      "border-strong-disabled": "#D0D0D0",
-      "border-strong-focus": "#909090",
-      "surface-diff-add-base": "#e8f5e8",
-      "surface-diff-delete-base": "#f5e8e8",
-      "surface-diff-hidden-base": "#F0F0F0",
-      "text-base": "#101010",
-      "text-invert-strong": "var(--smoke-dark-alpha-12)",
-      "text-weak": "#606060",
-      "text-strong": "#000000",
-      "syntax-string": "#0D5C4F",
-      "syntax-primitive": "#B30000",
-      "syntax-property": "#C66C00",
-      "syntax-type": "#9C5C12",
-      "syntax-constant": "#404040",
-      "syntax-info": "#606060",
-      "markdown-heading": "#FFC799",
-      "markdown-text": "#101010",
-      "markdown-link": "#FFC799",
-      "markdown-link-text": "#A0A0A0",
-      "markdown-code": "#A0A0A0",
-      "markdown-block-quote": "#101010",
-      "markdown-emph": "#101010",
-      "markdown-strong": "#101010",
-      "markdown-horizontal-rule": "#65737E",
-      "markdown-list-item": "#101010",
-      "markdown-list-enumeration": "#101010",
-      "markdown-image": "#FFC799",
-      "markdown-image-text": "#A0A0A0",
-      "markdown-code-block": "#FFC799"
     }
   },
   "dark": {
-    "seeds": {
+    "palette": {
       "neutral": "#101010",
+      "ink": "#FFF",
       "primary": "#FFC799",
+      "accent": "#FF8080",
       "success": "#99FFE4",
       "warning": "#FFC799",
       "error": "#FF8080",
       "info": "#FFC799",
-      "interactive": "#FFC799",
       "diffAdd": "#99FFE4",
       "diffDelete": "#FF8080"
-    },
-    "overrides": {
-      "background-base": "#101010",
-      "background-weak": "#141414",
-      "background-strong": "#0C0C0C",
-      "background-stronger": "#080808",
-      "border-weak-base": "#1C1C1C",
-      "border-weak-hover": "#202020",
-      "border-weak-active": "#242424",
-      "border-weak-selected": "#282828",
-      "border-weak-disabled": "#141414",
-      "border-weak-focus": "#242424",
-      "border-base": "#282828",
-      "border-hover": "#303030",
-      "border-active": "#383838",
-      "border-selected": "#404040",
-      "border-disabled": "#181818",
-      "border-focus": "#383838",
-      "border-strong-base": "#505050",
-      "border-strong-hover": "#585858",
-      "border-strong-active": "#606060",
-      "border-strong-selected": "#686868",
-      "border-strong-disabled": "#202020",
-      "border-strong-focus": "#606060",
-      "surface-diff-add-base": "#0d2818",
-      "surface-diff-delete-base": "#281a1a",
-      "surface-diff-hidden-base": "#141414",
-      "text-base": "#FFF",
-      "text-weak": "#A0A0A0",
-      "text-strong": "#FFFFFF",
-      "syntax-string": "#99FFE4",
-      "syntax-primitive": "#FF8080",
-      "syntax-property": "#FFC799",
-      "syntax-type": "#FFC799",
-      "syntax-constant": "#A0A0A0",
-      "syntax-info": "#8b8b8b",
-      "markdown-heading": "#FFC799",
-      "markdown-text": "#FFF",
-      "markdown-link": "#FFC799",
-      "markdown-link-text": "#A0A0A0",
-      "markdown-code": "#A0A0A0",
-      "markdown-block-quote": "#FFF",
-      "markdown-emph": "#FFF",
-      "markdown-strong": "#FFF",
-      "markdown-horizontal-rule": "#65737E",
-      "markdown-list-item": "#FFF",
-      "markdown-list-enumeration": "#FFF",
-      "markdown-image": "#FFC799",
-      "markdown-image-text": "#A0A0A0",
-      "markdown-code-block": "#FFF"
     }
   }
 }

+ 19 - 2
packages/ui/src/theme/types.ts

@@ -18,11 +18,28 @@ export interface ThemeSeedColors {
   diffDelete: HexColor
 }
 
-export interface ThemeVariant {
-  seeds: ThemeSeedColors
+export interface ThemePaletteColors {
+  neutral: HexColor
+  ink?: HexColor
+  primary: HexColor
+  success: HexColor
+  warning: HexColor
+  error: HexColor
+  info: HexColor
+  accent?: HexColor
+  interactive?: HexColor
+  diffAdd?: HexColor
+  diffDelete?: HexColor
+}
+
+type ThemeVariantBase = {
   overrides?: Record<string, ColorValue>
 }
 
+export type ThemeVariant =
+  | ({ seeds: ThemeSeedColors; palette?: never } & ThemeVariantBase)
+  | ({ palette: ThemePaletteColors; seeds?: never } & ThemeVariantBase)
+
 export interface DesktopTheme {
   $schema?: string
   name: string