Skip to content

Commit a2cf78f

Browse files
committed
✨ Add glow variant and improve variant handling
Add new glow variant with ultra-dark backgrounds and pure neon colors - Add glow variant with pitch-black sidebar and deep purple editor - Update documentation to reference four variants instead of three - Improve palette color management with get_colors() function - Add exact VSCode theme color mappings for soft and vibrant variants - Update Git configuration with enhanced conventional commit support - Fix palette integration loading in compiled themes - Update command completion and help text for glow variant - Add proper variant-specific background and selection colors Provides maximum contrast option for OLED displays and extreme contrast preferences while maintaining consistent API.
1 parent 3762283 commit a2cf78f

File tree

9 files changed

+406
-112
lines changed

9 files changed

+406
-112
lines changed

README.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
[![Load Time](https://img.shields.io/badge/Load%20Time-<5ms-f1fa8c?style=for-the-badge&logo=lightning&logoColor=black)](https://github.com/hyperb1iss/silkcircuit-nvim)
1212

1313
[![Plugins](https://img.shields.io/badge/40+%20Plugins-Supported-bd93f9?style=for-the-badge&logo=puzzle-piece&logoColor=white)](https://github.com/hyperb1iss/silkcircuit-nvim#-plugin-support)
14-
[![Variants](https://img.shields.io/badge/3%20Variants-Neon%20|%20Vibrant%20|%20Soft-ffb86c?style=for-the-badge&logo=swatchbook&logoColor=white)](https://github.com/hyperb1iss/silkcircuit-nvim#-theme-variants)
14+
[![Variants](https://img.shields.io/badge/4%20Variants-Neon%20|%20Vibrant%20|%20Soft%20|%20Glow-ffb86c?style=for-the-badge&logo=swatchbook&logoColor=white)](https://github.com/hyperb1iss/silkcircuit-nvim#-theme-variants)
1515
[![Glow Mode](https://img.shields.io/badge/Glow%20Mode-⚡-ff79c6?style=for-the-badge&logo=bolt&logoColor=white)](https://github.com/hyperb1iss/silkcircuit-nvim#-glow-mode)
1616

1717
🌌 _Pure electric energy with vibrant purples, blazing pinks, and neon accents_ 🎆
@@ -33,7 +33,7 @@ SilkCircuit pumps maximum visual voltage through your Neovim. Electric purples
3333
- 🎪 **Electric Color System** — Vibrant palette with semantic color mappings
3434
- 🏎️ **<5ms Load Time** — Bytecode compilation with intelligent caching
3535
- 👁️ **WCAG AA Compliant** — Validated contrast ratios for extended coding sessions
36-
- 🎛️ **Theme Variants** — Neon (100%), Vibrant (85%), and Soft (70%) intensity modes
36+
- 🎛️ **Theme Variants** — Neon (100%), Vibrant (85%), Soft (70%), and Glow (ultra-dark) modes
3737
- 🔮 **40+ Plugin Integrations** — Auto-detected support for your entire toolchain
3838
- 🌟 **Glow Mode** — Enhanced highlights for maximum visibility
3939
- 💾 **Persistent Preferences** — Settings survive across sessions
@@ -102,7 +102,7 @@ require("silkcircuit").setup({
102102
transparent = false, -- Enable transparent background
103103
terminal_colors = true, -- Configure terminal colors
104104
dim_inactive = false, -- Dim inactive windows
105-
variant = "neon", -- Theme variant: "neon" | "vibrant" | "soft"
105+
variant = "neon", -- Theme variant: "neon" | "vibrant" | "soft" | "glow"
106106
glow_mode = false, -- Enable glow mode
107107

108108
styles = {
@@ -132,13 +132,14 @@ Switch between intensity levels:
132132
```lua
133133
-- Via setup
134134
require("silkcircuit").setup({
135-
variant = "vibrant", -- "neon" | "vibrant" | "soft"
135+
variant = "vibrant", -- "neon" | "vibrant" | "soft" | "glow"
136136
})
137137

138138
-- Or use commands
139139
:SilkCircuit neon -- 100% intensity
140140
:SilkCircuit vibrant -- 85% intensity
141141
:SilkCircuit soft -- 70% intensity
142+
:SilkCircuit glow -- Ultra-dark backgrounds with pure neon colors
142143
```
143144

144145
### ✨ Glow Mode

doc/silkcircuit.txt

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ match their personality - bold, expressive, and unapologetically colorful.
2828

2929
Key features:
3030
- Lightning-fast performance (<5ms load time)
31-
- Three variants: neon (default), vibrant, soft
31+
- Four variants: neon (default), vibrant, soft, glow
3232
- 40+ auto-detected plugin integrations
3333
- WCAG AA contrast compliance
3434
- Persistent user preferences
@@ -71,7 +71,7 @@ Manual installation:
7171

7272
Configure SilkCircuit by passing options to setup(): >lua
7373
require("silkcircuit").setup({
74-
variant = "neon", -- "neon" | "vibrant" | "soft"
74+
variant = "neon", -- "neon" | "vibrant" | "soft" | "glow"
7575
transparent = false, -- Enable transparent background
7676
terminal_colors = true, -- Configure terminal colors
7777
dim_inactive = false, -- Dim inactive windows
@@ -104,7 +104,7 @@ Configuration Options ~
104104
variant ~
105105
Theme variant to use.
106106
Default: "neon"
107-
Options: "neon" | "vibrant" | "soft"
107+
Options: "neon" | "vibrant" | "soft" | "glow"
108108

109109
transparent ~
110110
Enable transparent background.
@@ -142,7 +142,7 @@ on_highlights ~
142142
4. COMMANDS *silkcircuit-commands*
143143

144144
:SilkCircuit {variant} *:SilkCircuit*
145-
Switch to a different variant (neon/vibrant/soft).
145+
Switch to a different variant (neon/vibrant/soft/glow).
146146
Without argument, shows current variant.
147147

148148
:SilkCircuitCompile *:SilkCircuitCompile*
@@ -176,7 +176,7 @@ on_highlights ~
176176
==============================================================================
177177
5. VARIANTS *silkcircuit-variants*
178178

179-
SilkCircuit includes three carefully crafted variants:
179+
SilkCircuit includes four carefully crafted variants:
180180

181181
Neon (default) ~
182182
The signature look with maximum vibrancy.
@@ -193,10 +193,17 @@ Soft ~
193193
Maintains the theme's personality with less intensity.
194194
Best for: Long coding sessions, bright environments.
195195

196+
Glow ~
197+
Ultra-dark backgrounds with pure neon colors.
198+
Features pitch-black (#000000) sidebar and deep purple editor.
199+
Pure white text (#ffffff) for maximum contrast.
200+
Best for: OLED displays, extreme contrast lovers.
201+
196202
Switching variants: >vim
197203
:SilkCircuit neon
198204
:SilkCircuit vibrant
199205
:SilkCircuit soft
206+
:SilkCircuit glow
200207
<
201208

202209
==============================================================================

extras/gitconfig

Lines changed: 42 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,11 @@
1919
whitespace = 197 reverse
2020

2121
[color "status"]
22-
added = 149 # green - added files
23-
changed = 213 # bright magenta - changed files
24-
untracked = 51 # electric cyan - untracked files
25-
deleted = 197 # red - deleted files
26-
branch = 220 bold # yellow - branch info
22+
added = 149 bold # bright green - added files
23+
changed = 213 bold # bright magenta - changed files
24+
untracked = 51 bold # electric cyan - untracked files
25+
deleted = 197 bold # red - deleted files
26+
branch = 220 bold # neon yellow - branch info
2727
nobranch = 197 bold # red - detached HEAD warning
2828
unmerged = 197 bold # red - unmerged files
2929

@@ -51,18 +51,20 @@
5151
syntax-theme = Dracula
5252
line-numbers = true
5353
side-by-side = false
54-
file-style = "#e135ff bold" # SilkCircuit purple for file names
55-
file-decoration-style = "#e135ff box"
56-
hunk-header-style = "#ff00ff bold" # SilkCircuit magenta for hunk headers
57-
hunk-header-decoration-style = "#ff00ff box"
58-
line-numbers-left-style = "#9580ff" # muted purple
54+
file-style = "#f1fa8c bold" # SilkCircuit yellow for file names 🌟
55+
file-decoration-style = "#f1fa8c box ul"
56+
hunk-header-style = "#80ffea bold" # SilkCircuit cyan for hunk headers
57+
hunk-header-decoration-style = "#80ffea box"
58+
line-numbers-left-style = "#9580ff" # muted purple
5959
line-numbers-right-style = "#9580ff"
60-
line-numbers-minus-style = "#ff6363" # red for deletions
61-
line-numbers-plus-style = "#50fa7b" # green for additions
62-
minus-style = syntax "#3a2a2a" # dark red background
63-
minus-emph-style = syntax "#5a2a2a" # darker red for emphasis
64-
plus-style = syntax "#2a3a2a" # dark green background
65-
plus-emph-style = syntax "#2a5a2a" # darker green for emphasis
60+
line-numbers-minus-style = "#ff6363 bold" # bright red for deletions
61+
line-numbers-plus-style = "#50fa7b bold" # bright green for additions ✨
62+
minus-style = syntax "#4a2a2a" # darker red background
63+
minus-emph-style = syntax "#6a2a2a" # emphasis red
64+
plus-style = syntax "#2a4a2a" # darker green background
65+
plus-emph-style = syntax "#2a6a2a" # emphasis green
66+
commit-decoration-style = "#e135ff box ul" # purple commit decoration
67+
commit-style = "#e135ff bold" # purple commits
6668

6769
[log]
6870
# SilkCircuit-inspired log formatting
@@ -78,8 +80,8 @@
7880
pretty = silkcircuit
7981

8082
[alias]
81-
# Beautiful one-line log with graph
82-
lg = log --graph --pretty=format:'%C(201 bold)%h%Creset %C(220)%d%Creset %C(white)%s%Creset %C(51)(%cr)%Creset %C(213)<%an>%Creset'
83+
# Beautiful one-line log with graph and enhanced conventional commit colors
84+
lg = log --graph --pretty=format:'%C(201 bold)%h%Creset %C(220 bold)%d%Creset %C(white)%s%Creset %C(51)(%cr)%Creset %C(213)<%an>%Creset'
8385

8486
# Full log with SilkCircuit colors (like regular git log but styled)
8587
l = log --pretty=silkcircuit
@@ -90,5 +92,26 @@
9092
# Show commits from all branches with full format
9193
lga = log --graph --all --pretty=silkcircuit
9294

93-
# Compact log for quick overview
95+
# Compact log for quick overview with conventional commit highlights
9496
lgs = log --graph --pretty=format:'%C(201)%h%Creset %C(white)%s%Creset %C(51)(%cr)%Creset' --abbrev-commit
97+
98+
# Enhanced commit with conventional commit prefix highlighting
99+
c = "!f() { \
100+
echo ''; \
101+
echo '\033[38;2;225;53;255m🎨 SilkCircuit Git Commit\033[0m'; \
102+
echo '\033[38;2;128;255;234m────────────────────────\033[0m'; \
103+
echo ''; \
104+
echo '\033[38;2;241;250;140mConventional Commit Prefixes:\033[0m'; \
105+
echo ' \033[38;2;80;250;123mfeat:\033[0m ✨ new feature'; \
106+
echo ' \033[38;2;255;99;255mfix:\033[0m 🐛 bug fix'; \
107+
echo ' \033[38;2;128;255;234mdocs:\033[0m 📚 documentation'; \
108+
echo ' \033[38;2;241;250;140mstyle:\033[0m 💄 formatting/style'; \
109+
echo ' \033[38;2;255;106;193mrefactor:\033[0m ♻️ code refactor'; \
110+
echo ' \033[38;2;130;170;255mtest:\033[0m 🧪 tests'; \
111+
echo ' \033[38;2;236;196;141mchore:\033[0m 🔧 maintenance'; \
112+
echo ''; \
113+
git commit \"$@\"; \
114+
}; f"
115+
116+
# Quick status with enhanced colors
117+
s = status --short --branch

lua/silkcircuit/commands.lua

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ function M.setup()
2828
if variant == "" then
2929
local current = variants.get_current_variant()
3030
vim.notify("Current variant: " .. current, vim.log.levels.INFO)
31-
vim.notify("Available variants: neon (default), vibrant, soft", vim.log.levels.INFO)
31+
vim.notify("Available variants: neon (default), vibrant, soft, glow", vim.log.levels.INFO)
3232
return
3333
end
3434

@@ -57,7 +57,7 @@ function M.setup()
5757
end, {
5858
nargs = "?",
5959
complete = function()
60-
return { "neon", "vibrant", "soft" }
60+
return { "neon", "vibrant", "soft", "glow" }
6161
end,
6262
desc = "Switch SilkCircuit theme variant",
6363
})

lua/silkcircuit/init.lua

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,11 @@ function M.load()
4545
-- Compiled theme loaded successfully, but we still need to load integrations!
4646
local palette = require("silkcircuit.palette")
4747
local opts = config.get()
48+
local colors = palette.get_colors()
4849

4950
-- Load plugin integrations (this was missing!)
5051
if opts.integrations then
51-
require("silkcircuit.integrations").load(palette.colors, opts)
52+
require("silkcircuit.integrations").load(colors, opts)
5253
end
5354
end
5455

lua/silkcircuit/palette.lua

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
local M = {}
22

33
-- Get colors based on current variant
4-
local function get_variant_colors()
4+
function M.get_colors()
55
local variants = require("silkcircuit.variants")
66
local variant_name = variants.get_current_variant()
77
return variants.get_colors(variant_name)
88
end
99

10-
M.colors = get_variant_colors()
10+
-- Legacy support - will be removed in future versions
11+
M.colors = M.get_colors()
1112
or {
1213
-- Base colors
1314
bg = "#1e1a2e", -- Primary background - Deep purple base

lua/silkcircuit/theme.lua

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -467,7 +467,9 @@ end
467467
function M.apply()
468468
local palette = require("silkcircuit.palette")
469469
local opts = config.get()
470-
local highlights = M.get_highlights(palette.colors, opts)
470+
local colors = palette.get_colors()
471+
palette.update_semantic(colors) -- Update semantic colors with variant colors
472+
local highlights = M.get_highlights(colors, opts)
471473

472474
-- Clear any existing autocmds that might interfere
473475
vim.api.nvim_create_augroup("SilkCircuit", { clear = true })
@@ -476,7 +478,7 @@ function M.apply()
476478

477479
-- Load plugin integrations
478480
if opts.integrations then
479-
require("silkcircuit.integrations").load(palette.colors, opts)
481+
require("silkcircuit.integrations").load(colors, opts)
480482
else
481483
vim.notify("SilkCircuit: integrations disabled in config", vim.log.levels.WARN)
482484
end

lua/silkcircuit/util.lua

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,8 @@ function M.compile(force)
256256
}
257257

258258
-- Get all highlights
259-
local highlights = theme.get_highlights(palette.colors, config.get())
259+
local colors = palette.get_colors()
260+
local highlights = theme.get_highlights(colors, config.get())
260261

261262
-- Add highlight commands
262263
for group, opts in pairs(highlights) do
@@ -267,7 +268,7 @@ function M.compile(force)
267268
if config.get().terminal_colors then
268269
table.insert(lines, "")
269270
table.insert(lines, "-- Terminal colors")
270-
local colors = palette.colors
271+
-- colors already defined above
271272
table.insert(lines, string.format('vim.g.terminal_color_0 = "%s"', colors.terminal_black))
272273
table.insert(lines, string.format('vim.g.terminal_color_1 = "%s"', colors.terminal_red))
273274
table.insert(lines, string.format('vim.g.terminal_color_2 = "%s"', colors.terminal_green))

0 commit comments

Comments
 (0)