Files
fjord-helix/themes/fjord.toml
2026-03-19 22:36:23 +00:00

278 lines
11 KiB
TOML

# Fjord — Helix theme (transparent, WT-aligned)
###############################################################################
# UI
###############################################################################
"ui.background" = { fg = "#E8F0F3", bg = "none" }
"ui.background.separator" = { fg = "#233141" }
# Cursor (primary + color-modes support)
"ui.cursor" = { fg = "#1B2532", bg = "#E8F0F3" }
"ui.cursor.normal" = { fg = "#1B2532", bg = "#E8F0F3" }
"ui.cursor.insert" = { fg = "#1B2532", bg = "#B8E7E9" }
"ui.cursor.select" = { fg = "#1B2532", bg = "#A8A4F8" }
"ui.cursor.match" = { fg = "#D4CC7A", modifiers = ["bold"] }
"ui.cursor.primary" = { fg = "#1B2532", bg = "#E8F0F3" }
"ui.cursor.primary.normal" = { fg = "#1B2532", bg = "#E8F0F3" }
"ui.cursor.primary.insert" = { fg = "#1B2532", bg = "#B8E7E9" }
"ui.cursor.primary.select" = { fg = "#1B2532", bg = "#A8A4F8" }
# Gutter / line numbers
"ui.gutter" = { fg = "#6C7A86", bg = "none" }
"ui.gutter.selected" = { fg = "#5DA6EA", bg = "none", modifiers = ["bold"] }
"ui.linenr" = { fg = "#6C7A86", bg = "none" }
"ui.linenr.selected" = { fg = "#5DA6EA", bg = "none", modifiers = ["bold"] }
# Statusline (includes color-modes variants)
"ui.statusline" = { fg = "#E8F0F3", bg = "#1F2A39" }
"ui.statusline.inactive" = { fg = "#6C7A86", bg = "#1F2A39" }
"ui.statusline.normal" = { fg = "#1B2532", bg = "#5DA6EA", modifiers = ["bold"] }
"ui.statusline.insert" = { fg = "#1B2532", bg = "#9DD99A", modifiers = ["bold"] }
"ui.statusline.select" = { fg = "#1B2532", bg = "#A8A4F8", modifiers = ["bold"] }
"ui.statusline.separator"= { fg = "#233141" }
# Bufferline
"ui.bufferline" = { fg = "#E8F0F3", bg = "#1F2A39" }
"ui.bufferline.active" = { fg = "#5DA6EA", bg = "#1B2532", underline = { color = "#5DA6EA", style = "line" } }
"ui.bufferline.background" = { bg = "#1B2532" }
# Popup, Window, Help
"ui.popup" = { fg = "#E8F0F3", bg = "#1F2A39" }
"ui.popup.info" = { fg = "#E8F0F3", bg = "#1F2A39" }
"ui.popup.border"= { fg = "#5DA6EA" }
"ui.window" = { fg = "#233141" }
"ui.help" = { fg = "#6C7A86", bg = "#1F2A39" }
# Menus
"ui.menu" = { fg = "#E8F0F3", bg = "#1F2A39" }
"ui.menu.selected" = { fg = "#1B2532", bg = "#5DA6EA", modifiers = ["bold"] }
"ui.menu.scroll" = { fg = "#5DA6EA", bg = "#233141" }
# Text (generic UI text states)
"ui.text" = "#E8F0F3"
"ui.text.focus" = { fg = "#E8F0F3", bg = "#1F2A39", modifiers = ["bold"] }
"ui.text.inactive" = { fg = "#51606B" }
"ui.text.info" = { fg = "#5DA6EA" }
"ui.text.directory" = { fg = "#5DA6EA" }
# Virtuals / guides / hints
"ui.virtual.ruler" = { bg = "#2D3D52" }
"ui.virtual.whitespace" = { fg = "#51606B" }
"ui.virtual.indent-guide" = { fg = "#51606B" }
"ui.virtual.wrap" = { fg = "#51606B" }
"ui.virtual.inlay-hint" = { fg = "#51606B", bg = "#1F2A39" }
"ui.virtual.inlay-hint.parameter"= { fg = "#B8E7E9", bg = "#1F2A39" }
"ui.virtual.inlay-hint.type" = { fg = "#5DA6EA", bg = "#1F2A39" }
"ui.virtual.jump-label" = { fg = "#D4CC7A", modifiers = ["bold"] } # reserved pop color
# Picker header + columns
"ui.picker.header" = { fg = "#E8F0F3", bg = "#1F2A39", modifiers = ["bold"] }
"ui.picker.header.column" = { fg = "#6C7A86", bg = "#1F2A39" }
"ui.picker.header.column.active" = { fg = "#5DA6EA", bg = "#1F2A39", modifiers = ["bold"] }
# Selection & highlight (WT parity: amber selection)
"ui.selection" = { bg = "#B8E7E9", fg = "#1B2532" }
"ui.selection.primary" = { bg = "#B8E7E9", fg = "#1B2532" }
"ui.highlight" = { bg = "#233141" }
"ui.highlight.frameline" = { fg = "#C8B860", bg = "#1F2A39", modifiers = ["bold"] }
# Cursorline / column — subtle, opaque
"ui.cursorline.primary" = { bg = "#1F2A39" }
"ui.cursorline.secondary" = { bg = "none" }
"ui.cursorcolumn.primary" = { bg = "#1F2A39" }
"ui.cursorcolumn.secondary" = { bg = "none" }
# Search
"ui.search" = { fg = "#1B2532", bg = "#B8E7E9" }
"ui.search.current" = { fg = "#1B2532", bg = "#D4CC7A" }
# Diagnostics
"warning" = { fg = "#C8B860" }
"error" = { fg = "#F37C7C" }
"info" = { fg = "#B8E7E9" }
"hint" = { fg = "#5DA6EA" }
"diagnostic" = { underline = { style = "curl", color = "#51606B" } }
"diagnostic.hint" = { underline = { style = "curl", color = "#5DA6EA" } }
"diagnostic.info" = { underline = { style = "curl", color = "#B8E7E9" } }
"diagnostic.warning" = { underline = { style = "curl", color = "#C8B860" } }
"diagnostic.error" = { underline = { style = "curl", color = "#F37C7C" } }
"diagnostic.unnecessary" = { modifiers = ["dim"] }
"diagnostic.deprecated" = { modifiers = ["crossed_out"] }
# Snippet tabstops
"tabstop" = { fg = "#1B2532", bg = "#B8E7E9" }
###############################################################################
# Syntax (Tree-sitter)
###############################################################################
# Readability rules:
# - Functions → cyan
# - Types → blue (builtin brighter)
# - Escapes → cyan
# - Purple minimized (kept for rare/important)
"attribute" = { fg = "#B8E7E9" }
"attribute.builtin" = { fg = "#B8E7E9" }
"decorator" = { fg = "#C8CCF7" }
"type" = { fg = "#5DA6EA" }
"type.builtin" = { fg = "#7BB8FF" }
"type.parameter" = { fg = "#5DA6EA" }
"type.enum" = { fg = "#5DA6EA" }
"type.enum.variant" = { fg = "#5DA6EA" }
"constructor" = { fg = "#5DA6EA" }
"constant" = { fg = "#7BB8FF" }
"constant.builtin" = { fg = "#7BB8FF" }
"constant.boolean" = { fg = "#7BB8FF" }
"constant.character" = { fg = "#B8E7E9" }
"constant.character.escape" = { fg = "#B8E7E9" }
"constant.numeric" = { fg = "#7BB8FF" }
"constant.numeric.integer" = { fg = "#7BB8FF" }
"constant.numeric.float" = { fg = "#7BB8FF" }
"string" = { fg = "#9DD99A" }
"string.regex" = { fg = "#B8E7E9" }
"string.special" = { fg = "#5DA6EA" }
"string.special.path" = { fg = "#5DA6EA" }
"string.special.url" = { fg = "#5DA6EA", modifiers = ["underlined"] }
"string.special.symbol" = { fg = "#F37C7C" }
"comment" = { fg = "#6C7A86", modifiers = ["italic"] }
"comment.line" = { fg = "#6C7A86", modifiers = ["italic"] }
"comment.line.documentation" = { fg = "#6C7A86", modifiers = ["italic"] }
"comment.block" = { fg = "#6C7A86", modifiers = ["italic"] }
"comment.block.documentation" = { fg = "#6C7A86", modifiers = ["italic"] }
"comment.unused" = { fg = "#6C7A86", modifiers = ["italic", "dim"] }
"variable" = { fg = "#E8F0F3" }
"variable.builtin" = { fg = "#B8E7E9" }
"variable.parameter" = { fg = "#E8F0F3" }
"variable.other.member" = { fg = "#B8E7E9" }
"variable.other.member.private" = { fg = "#B8E7E9" }
"label" = { fg = "#C8CCF7", modifiers = ["bold"] }
# Operators & punctuation — explicit families so '=' et al. never disappear
"operator" = { fg = "#7BB8FF" }
"operator.assign" = { fg = "#7BB8FF" }
"operator.arithmetic" = { fg = "#7BB8FF" }
"operator.bitwise" = { fg = "#7BB8FF" }
"operator.logical" = { fg = "#7BB8FF" }
"operator.comparison" = { fg = "#7BB8FF" }
"operator.ternary" = { fg = "#7BB8FF" }
"punctuation" = { fg = "#E8F0F3" }
"punctuation.delimiter" = { fg = "#E8F0F3" }
"punctuation.bracket" = { fg = "#E8F0F3" }
"punctuation.special" = { fg = "#B8E7E9" }
# Keywords
"keyword" = { fg = "#5DA6EA" }
"keyword.control" = { fg = "#7BB8FF" }
"keyword.control.conditional" = { fg = "#7BB8FF" }
"keyword.control.repeat" = { fg = "#7BB8FF" }
"keyword.control.import" = { fg = "#7BB8FF" }
"keyword.control.return" = { fg = "#7BB8FF" }
"keyword.control.exception" = { fg = "#7BB8FF" }
"keyword.operator" = { fg = "#7BB8FF" } # for grammars that classify '=' here
"keyword.directive" = { fg = "#7BB8FF" }
"keyword.function" = { fg = "#5DA6EA" }
"keyword.storage" = { fg = "#9DD99A" }
"keyword.storage.type" = { fg = "#9DD99A" }
"keyword.storage.modifier" = { fg = "#9DD99A" }
# Functions → cyan
"function" = { fg = "#B8E7E9" }
"function.builtin" = { fg = "#B8E7E9" }
"function.method" = { fg = "#B8E7E9" }
"function.method.private" = { fg = "#B8E7E9" }
"function.macro" = { fg = "#C8CCF7" }
"function.special" = { fg = "#B8E7E9" }
"tag" = { fg = "#5DA6EA" }
"tag.builtin"= { fg = "#5DA6EA" }
"namespace" = { fg = "#5DA6EA" }
"special" = { fg = "#5DA6EA" }
# Markup
"markup.heading" = { fg = "#5DA6EA", modifiers = ["bold"] }
"markup.heading.1" = { fg = "#F37C7C", modifiers = ["bold"] }
"markup.heading.2" = { fg = "#D4CC7A", modifiers = ["bold"] }
"markup.heading.3" = { fg = "#C8B860", modifiers = ["bold"] }
"markup.heading.4" = { fg = "#9DD99A", modifiers = ["bold"] }
"markup.heading.5" = { fg = "#5DA6EA", modifiers = ["bold"] }
"markup.heading.6" = { fg = "#C8CCF7", modifiers = ["bold"] }
"markup.marker" = { fg = "#51606B" }
"markup.list" = { fg = "#B8E7E9" }
"markup.list.unchecked" = { fg = "#51606B" }
"markup.list.checked" = { fg = "#9DD99A" }
"markup.bold" = { modifiers = ["bold"] }
"markup.italic" = { modifiers = ["italic"] }
"markup.strikethrough" = { modifiers = ["crossed_out"] }
"markup.link" = { fg = "#5DA6EA" }
"markup.link.url" = { fg = "#5DA6EA", modifiers = ["underlined"] }
"markup.link.label"= { fg = "#C8CCF7" }
"markup.link.text" = { fg = "#5DA6EA" }
"markup.quote" = { fg = "#C8CCF7" }
"markup.raw" = { fg = "#9DD99A" }
"markup.raw.inline"= { fg = "#9DD99A" }
"markup.raw.block" = { fg = "#9DD99A" }
# Diff
"diff.plus" = { fg = "#9DD99A" }
"diff.plus.gutter" = { fg = "#9DD99A" }
"diff.minus" = { fg = "#F37C7C" }
"diff.minus.gutter" = { fg = "#F37C7C" }
"diff.delta" = { fg = "#5DA6EA" }
"diff.delta.moved" = { fg = "#C8CCF7" }
"diff.conflict" = { fg = "#D4CC7A", modifiers = ["bold"] }
"diff.delta.gutter" = { fg = "#5DA6EA" }
###############################################################################
# Palette (Fjord — Windows Terminal aligned)
###############################################################################
[palette]
# Base & UI
base = "#1B2532" # used for non-transparent surfaces
base_ = "#1F2A39" # subtle overlay for cursorline (opaque)
surface = "#1F2A39" # panels, popups, statusline base
line = "#233141" # separators
selection = "#2D3D52" # generic highlight block (not used for text selection)
# Text
fg = "#E8F0F3"
dim_fg = "#6C7A86"
muted = "#51606B"
# Accents (from your WT scheme)
red = "#F37C7C"
orange = "#D4CC7A" # used for search.current contrast (pairs with yellow selection)
yellow = "#C8B860" # AMBER (WT selection, functions)
green = "#9DD99A" # cursor / insert statusline
purple = "#A8A4F8"
cyan = "#B8E7E9"
blue = "#5DA6EA"
# Brights (for jump labels / emphasis, and parity with ANSI brights)
b_black = "#212128"
b_red = "#FF9B9B"
b_green = "#A3D5A0"
b_yellow = "#D4CC7A"
b_blue = "#7BB8FF"
b_purple = "#C8CCF7"
b_cyan = "#A1E9DE"
b_white = "#EFFAFF"
# UI helpers
ruler = "#2D3D52"
cursorline_dim = "#1F2A39" # very close to base, subtle & opaque