1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
package theme
import "github.com/charmbracelet/lipgloss"
// Flexoki by Steph Ango (https://stephango.com/flexoki). Accent hexes use the
// 400 variants on dark backgrounds and the 600 variants on light, per Flexoki's
// guidance. The role assignments follow the glint highlighting model: prose at
// base, markup muted, color reserved for headings, code, links, list markers,
// comments, and a highlight background; bold/italic use the higher-contrast
// Emphasis tone.
// FlexokiDark is the Flexoki dark variant: warm near-black paper, soft prose.
func FlexokiDark() Theme {
link := lipgloss.Color("#3AA99F") // cyan-400
return Theme{
Name: "flexoki-dark",
GlamourStyle: "dark",
Background: lipgloss.Color("#100F0F"), // black
Text: lipgloss.Color("#CECDC3"), // base-200 — prose
Emphasis: lipgloss.Color("#E6E4D9"), // base-100 — brighter for bold/italic
Muted: lipgloss.Color("#575653"), // base-700 — markup, well faded on black
Heading: lipgloss.Color("#4385BE"), // blue-400
Code: lipgloss.Color("#879A39"), // green-400
Link: link,
Wikilink: link, // merged into Link
ListMarker: lipgloss.Color("#CE5D97"), // magenta-400
Blockquote: lipgloss.Color("#878580"), // base-500 — quote marker/border
Comment: lipgloss.Color("#DA702C"), // orange-400 — visible meta
Accent: lipgloss.Color("#D0A215"), // yellow-400
Highlight: lipgloss.Color("#3A3517"), // deep olive — ==highlight== bg
Spell: lipgloss.Color("#D14D41"), // red-400 — misspell undercurl
StatusFg: lipgloss.Color("#100F0F"),
StatusBg: lipgloss.Color("#4385BE"),
SelFg: lipgloss.Color("#100F0F"),
SelBg: lipgloss.Color("#D0A215"),
Pointer: lipgloss.Color("#CE5D97"),
}
}
// FlexokiLight is the Flexoki light variant: cream paper, near-black prose.
func FlexokiLight() Theme {
link := lipgloss.Color("#24837B") // cyan-600
return Theme{
Name: "flexoki-light",
GlamourStyle: "light",
Background: lipgloss.Color("#FFFCF0"), // paper
Text: lipgloss.Color("#1C1B1A"), // base-950 — prose (leaves room below for Emphasis)
Emphasis: lipgloss.Color("#100F0F"), // black — darker for bold/italic
Muted: lipgloss.Color("#B7B5AC"), // base-300 — markup, well faded on paper
Heading: lipgloss.Color("#205EA6"), // blue-600
Code: lipgloss.Color("#66800B"), // green-600
Link: link,
Wikilink: link, // merged into Link
ListMarker: lipgloss.Color("#A02F6F"), // magenta-600
Blockquote: lipgloss.Color("#6F6E69"), // base-600 — quote marker/border
Comment: lipgloss.Color("#BC5215"), // orange-600 — visible meta
Accent: lipgloss.Color("#AD8301"), // yellow-600
Highlight: lipgloss.Color("#F0E6BE"), // pale yellow — ==highlight== bg
Spell: lipgloss.Color("#AF3029"), // red-600 — misspell undercurl
StatusFg: lipgloss.Color("#FFFCF0"),
StatusBg: lipgloss.Color("#205EA6"),
SelFg: lipgloss.Color("#FFFCF0"),
SelBg: lipgloss.Color("#AD8301"),
Pointer: lipgloss.Color("#A02F6F"),
}
}
// Charm is a charm.land / charmbracelet-brand themed dark palette.
func Charm() Theme {
link := lipgloss.Color("#5DD5FF")
return Theme{
Name: "charm",
GlamourStyle: "dark",
Background: lipgloss.Color("#16161E"),
Text: lipgloss.Color("#DDDDE6"),
Emphasis: lipgloss.Color("#FFFDF5"),
Muted: lipgloss.Color("#6C6C8A"),
Heading: lipgloss.Color("#FF5FAF"),
Code: lipgloss.Color("#00FFA3"),
Link: link,
Wikilink: link,
ListMarker: lipgloss.Color("#FF5FAF"),
Blockquote: lipgloss.Color("#6C6C8A"),
Comment: lipgloss.Color("#FFB454"),
Accent: lipgloss.Color("#FFD500"),
Highlight: lipgloss.Color("#3A2E4D"),
Spell: lipgloss.Color("#FF5F87"), // pink-red — misspell undercurl
StatusFg: lipgloss.Color("#16161E"),
StatusBg: lipgloss.Color("#6B50FF"),
SelFg: lipgloss.Color("#16161E"),
SelBg: lipgloss.Color("#FF5FAF"),
Pointer: lipgloss.Color("#00FFA3"),
}
}
|