opaline 0.4.1

A token-based theme engine for Rust applications
Documentation
# SilkCircuit Vibrant — High energy saturation
# Rich purples and vibrant cyans with intense saturation

[meta]
name = "SilkCircuit Vibrant"
author = "hyperb1iss"
variant = "dark"
version = "1.0"
description = "High saturation colors with rich purple tones"

# ═══════════════════════════════════════════════════════════════════════════════
# Palette — Raw color primitives
# ═══════════════════════════════════════════════════════════════════════════════

[palette]
# Core brand colors (vibrant)
purple_500 = "#ff00ff"
cyan_400 = "#00ffcc"
coral_400 = "#ff00cc"
yellow_400 = "#ffcc00"
green_400 = "#00ff66"
red_400 = "#ff3366"

# Extended palette
purple_400 = "#b366ff"
purple_600 = "#aa00dd"
cyan_500 = "#00ccaa"
magenta_400 = "#ff33ff"
purple_300 = "#cc99ff"
pink_400 = "#ff66cc"
pink_300 = "#ff99dd"

# Backgrounds (deep purple-blacks)
gray_950 = "#0f0c1a"
gray_900 = "#140f22"
gray_850 = "#1a142a"
gray_800 = "#3a2e5a"
gray_750 = "#2a2040"
gray_700 = "#35284a"
gray_600 = "#403355"

# Text colors
gray_50 = "#f8f8f2"
gray_200 = "#e0dce8"
gray_400 = "#9e8eb8"
gray_500 = "#b366ff"

# ═══════════════════════════════════════════════════════════════════════════════
# Tokens — Semantic color assignments
# ═══════════════════════════════════════════════════════════════════════════════

[tokens]
# Text hierarchy
"text.primary" = "gray_50"
"text.secondary" = "gray_200"
"text.muted" = "gray_400"
"text.dim" = "gray_500"

# Backgrounds
"bg.base" = "gray_950"
"bg.panel" = "gray_900"
"bg.code" = "gray_850"
"bg.highlight" = "gray_800"
"bg.elevated" = "gray_750"
"bg.active" = "gray_700"
"bg.selection" = "gray_600"

# Accent colors
"accent.primary" = "purple_500"
"accent.secondary" = "cyan_400"
"accent.tertiary" = "coral_400"
"accent.deep" = "purple_400"

# Semantic colors
success = "green_400"
error = "red_400"
warning = "yellow_400"
info = "cyan_400"

# UI elements
"border.focused" = "purple_500"
"border.unfocused" = "gray_400"

# Code elements
"code.keyword" = "purple_500"
"code.function" = "cyan_400"
"code.string" = "pink_300"
"code.number" = "coral_400"
"code.comment" = "gray_500"
"code.type" = "yellow_400"
"code.line_number" = "gray_500"

# ═══════════════════════════════════════════════════════════════════════════════
# Styles — Composed styles with modifiers
# ═══════════════════════════════════════════════════════════════════════════════

[styles]
# Keywords and importance
keyword = { fg = "accent.primary", bold = true }

# Line numbers
line_number = { fg = "code.line_number" }

# Cursor line
cursor_line = { bg = "bg.highlight" }

# Selection states
selected = { fg = "accent.secondary", bg = "bg.highlight" }
active_selected = { fg = "accent.primary", bg = "bg.active", bold = true }

# Borders
focused_border = { fg = "border.focused" }
unfocused_border = { fg = "border.unfocused" }

# Status messages
success_style = { fg = "success" }
error_style = { fg = "error" }
warning_style = { fg = "warning" }
info_style = { fg = "info" }

# Text styles
dimmed = { fg = "text.dim" }
muted = { fg = "text.muted" }

# Inline code
inline_code = { fg = "success", bg = "bg.code" }

# ═══════════════════════════════════════════════════════════════════════════════
# Gradients — Color transitions
# ═══════════════════════════════════════════════════════════════════════════════

[gradients]
# Primary brand gradient: Hot Magenta -> Vibrant Teal
primary = ["purple_500", "cyan_400"]

# Warm accent gradient: Hot Pink -> Gold
warm = ["coral_400", "yellow_400"]

# Success gradient: Vibrant Green -> Teal
success_gradient = ["green_400", "cyan_400"]

# Error gradient: Vibrant Red -> Hot Pink
error_gradient = ["red_400", "coral_400"]

# Aurora gradient (5-stop): Vibrant spectrum
aurora = ["purple_500", "#ff00aa", "#ff00ff", "#aa33ff", "cyan_400"]