@363045841yyt/klinechart-core 0.7.6 → 0.7.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config/chartSettings.d.ts +27 -2
- package/dist/config/chartSettings.d.ts.map +1 -1
- package/dist/config/chartSettings.js +6 -0
- package/dist/config/chartSettings.js.map +1 -1
- package/dist/engine/chart.d.ts.map +1 -1
- package/dist/engine/chart.js +4 -0
- package/dist/engine/chart.js.map +1 -1
- package/dist/engine/draw/pixelAlign.d.ts.map +1 -1
- package/dist/engine/draw/pixelAlign.js.map +1 -1
- package/dist/engine/drawing/plugin.js +1 -1
- package/dist/engine/drawing/plugin.js.map +1 -1
- package/dist/engine/renderers/Indicator/atr.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/atr.js +7 -4
- package/dist/engine/renderers/Indicator/atr.js.map +1 -1
- package/dist/engine/renderers/Indicator/boll.js +12 -12
- package/dist/engine/renderers/Indicator/boll.js.map +1 -1
- package/dist/engine/renderers/Indicator/cci.d.ts +1 -2
- package/dist/engine/renderers/Indicator/cci.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/cci.js +9 -9
- package/dist/engine/renderers/Indicator/cci.js.map +1 -1
- package/dist/engine/renderers/Indicator/ene.js +12 -12
- package/dist/engine/renderers/Indicator/ene.js.map +1 -1
- package/dist/engine/renderers/Indicator/expma.js +6 -6
- package/dist/engine/renderers/Indicator/expma.js.map +1 -1
- package/dist/engine/renderers/Indicator/fastk.d.ts +1 -2
- package/dist/engine/renderers/Indicator/fastk.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/fastk.js +7 -7
- package/dist/engine/renderers/Indicator/fastk.js.map +1 -1
- package/dist/engine/renderers/Indicator/kst.d.ts +1 -2
- package/dist/engine/renderers/Indicator/kst.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/kst.js +10 -10
- package/dist/engine/renderers/Indicator/kst.js.map +1 -1
- package/dist/engine/renderers/Indicator/ma.js +5 -5
- package/dist/engine/renderers/Indicator/ma.js.map +1 -1
- package/dist/engine/renderers/Indicator/macd.d.ts +1 -2
- package/dist/engine/renderers/Indicator/macd.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/macd.js +24 -24
- package/dist/engine/renderers/Indicator/macd.js.map +1 -1
- package/dist/engine/renderers/Indicator/macdLegend.js +6 -6
- package/dist/engine/renderers/Indicator/macdLegend.js.map +1 -1
- package/dist/engine/renderers/Indicator/mainIndicatorLegend.js +16 -16
- package/dist/engine/renderers/Indicator/mainIndicatorLegend.js.map +1 -1
- package/dist/engine/renderers/Indicator/mom.d.ts +1 -2
- package/dist/engine/renderers/Indicator/mom.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/mom.js +8 -8
- package/dist/engine/renderers/Indicator/mom.js.map +1 -1
- package/dist/engine/renderers/Indicator/rsi.d.ts +2 -3
- package/dist/engine/renderers/Indicator/rsi.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/rsi.js +15 -15
- package/dist/engine/renderers/Indicator/rsi.js.map +1 -1
- package/dist/engine/renderers/Indicator/scale/indicator_scale.d.ts +1 -2
- package/dist/engine/renderers/Indicator/scale/indicator_scale.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/scale/indicator_scale.js +5 -5
- package/dist/engine/renderers/Indicator/scale/indicator_scale.js.map +1 -1
- package/dist/engine/renderers/Indicator/stoch.d.ts +1 -2
- package/dist/engine/renderers/Indicator/stoch.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/stoch.js +10 -10
- package/dist/engine/renderers/Indicator/stoch.js.map +1 -1
- package/dist/engine/renderers/Indicator/structure.js +5 -5
- package/dist/engine/renderers/Indicator/structure.js.map +1 -1
- package/dist/engine/renderers/Indicator/wmsr.d.ts +1 -2
- package/dist/engine/renderers/Indicator/wmsr.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/wmsr.js +10 -10
- package/dist/engine/renderers/Indicator/wmsr.js.map +1 -1
- package/dist/engine/renderers/Indicator/zones.js +6 -6
- package/dist/engine/renderers/Indicator/zones.js.map +1 -1
- package/dist/engine/renderers/candle.d.ts +1 -1
- package/dist/engine/renderers/candle.d.ts.map +1 -1
- package/dist/engine/renderers/candle.js +21 -21
- package/dist/engine/renderers/candle.js.map +1 -1
- package/dist/engine/renderers/crosshair.js +3 -3
- package/dist/engine/renderers/crosshair.js.map +1 -1
- package/dist/engine/renderers/extremaMarkers.d.ts.map +1 -1
- package/dist/engine/renderers/extremaMarkers.js +12 -12
- package/dist/engine/renderers/extremaMarkers.js.map +1 -1
- package/dist/engine/renderers/gridLines.js +3 -3
- package/dist/engine/renderers/gridLines.js.map +1 -1
- package/dist/engine/renderers/lastPrice.js +7 -7
- package/dist/engine/renderers/lastPrice.js.map +1 -1
- package/dist/engine/renderers/paneTitle.js +6 -6
- package/dist/engine/renderers/paneTitle.js.map +1 -1
- package/dist/engine/renderers/subVolume.d.ts.map +1 -1
- package/dist/engine/renderers/subVolume.js +23 -20
- package/dist/engine/renderers/subVolume.js.map +1 -1
- package/dist/engine/renderers/timeAxis.js +9 -9
- package/dist/engine/renderers/timeAxis.js.map +1 -1
- package/dist/engine/renderers/webgl/candleSurface.d.ts.map +1 -1
- package/dist/engine/renderers/webgl/candleSurface.js +39 -7
- package/dist/engine/renderers/webgl/candleSurface.js.map +1 -1
- package/dist/engine/renderers/yAxis.d.ts.map +1 -1
- package/dist/engine/renderers/yAxis.js +5 -5
- package/dist/engine/renderers/yAxis.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/plugin/types.d.ts +5 -1
- package/dist/plugin/types.d.ts.map +1 -1
- package/dist/plugin/types.js.map +1 -1
- package/dist/tokens/colorPresetSettings.d.ts +15 -0
- package/dist/tokens/colorPresetSettings.d.ts.map +1 -0
- package/dist/tokens/colorPresetSettings.js +65 -0
- package/dist/tokens/colorPresetSettings.js.map +1 -0
- package/dist/tokens/index.d.ts +17 -0
- package/dist/tokens/index.d.ts.map +1 -0
- package/dist/tokens/index.js +16 -0
- package/dist/tokens/index.js.map +1 -0
- package/dist/tokens/mergeTheme.d.ts +17 -0
- package/dist/tokens/mergeTheme.d.ts.map +1 -0
- package/dist/tokens/mergeTheme.js +43 -0
- package/dist/tokens/mergeTheme.js.map +1 -0
- package/dist/tokens/theme-china.d.ts +45 -0
- package/dist/tokens/theme-china.d.ts.map +1 -0
- package/dist/tokens/theme-china.js +116 -0
- package/dist/tokens/theme-china.js.map +1 -0
- package/dist/tokens/theme-dark.d.ts +21 -0
- package/dist/tokens/theme-dark.d.ts.map +1 -0
- package/dist/tokens/theme-dark.js +228 -0
- package/dist/tokens/theme-dark.js.map +1 -0
- package/dist/tokens/theme-light.d.ts +23 -0
- package/dist/tokens/theme-light.d.ts.map +1 -0
- package/dist/tokens/theme-light.js +234 -0
- package/dist/tokens/theme-light.js.map +1 -0
- package/dist/tokens/themeToCssVars.d.ts +74 -0
- package/dist/tokens/themeToCssVars.d.ts.map +1 -0
- package/dist/tokens/themeToCssVars.js +108 -0
- package/dist/tokens/themeToCssVars.js.map +1 -0
- package/dist/tokens/types.d.ts +335 -0
- package/dist/tokens/types.d.ts.map +1 -0
- package/dist/tokens/types.js +20 -0
- package/dist/tokens/types.js.map +1 -0
- package/dist/utils/kLineDraw/axis.d.ts +8 -7
- package/dist/utils/kLineDraw/axis.d.ts.map +1 -1
- package/dist/utils/kLineDraw/axis.js +24 -24
- package/dist/utils/kLineDraw/axis.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/src/config/chartSettings.ts +11 -2
- package/src/engine/chart.ts +4 -0
- package/src/engine/draw/pixelAlign.ts +0 -2
- package/src/engine/drawing/plugin.ts +1 -1
- package/src/engine/renderers/Indicator/atr.ts +7 -3
- package/src/engine/renderers/Indicator/boll.ts +12 -12
- package/src/engine/renderers/Indicator/cci.ts +11 -10
- package/src/engine/renderers/Indicator/ene.ts +12 -12
- package/src/engine/renderers/Indicator/expma.ts +6 -6
- package/src/engine/renderers/Indicator/fastk.ts +9 -8
- package/src/engine/renderers/Indicator/kst.ts +12 -11
- package/src/engine/renderers/Indicator/ma.ts +5 -5
- package/src/engine/renderers/Indicator/macd.ts +27 -25
- package/src/engine/renderers/Indicator/macdLegend.ts +6 -6
- package/src/engine/renderers/Indicator/mainIndicatorLegend.ts +16 -16
- package/src/engine/renderers/Indicator/mom.ts +11 -10
- package/src/engine/renderers/Indicator/rsi.ts +18 -15
- package/src/engine/renderers/Indicator/scale/indicator_scale.ts +6 -6
- package/src/engine/renderers/Indicator/stoch.ts +12 -11
- package/src/engine/renderers/Indicator/structure.ts +5 -5
- package/src/engine/renderers/Indicator/wmsr.ts +13 -12
- package/src/engine/renderers/Indicator/zones.ts +7 -7
- package/src/engine/renderers/candle.ts +21 -21
- package/src/engine/renderers/crosshair.ts +3 -3
- package/src/engine/renderers/extremaMarkers.ts +13 -12
- package/src/engine/renderers/gridLines.ts +3 -3
- package/src/engine/renderers/lastPrice.ts +7 -7
- package/src/engine/renderers/paneTitle.ts +6 -6
- package/src/engine/renderers/subVolume.ts +23 -20
- package/src/engine/renderers/timeAxis.ts +9 -9
- package/src/engine/renderers/webgl/candleSurface.ts +43 -7
- package/src/engine/renderers/yAxis.ts +6 -5
- package/src/index.ts +1 -0
- package/src/plugin/types.ts +5 -1
- package/src/tokens/__tests__/__snapshots__/baseline.test.ts.snap +393 -0
- package/src/tokens/__tests__/baseline.test.ts +183 -0
- package/src/tokens/__tests__/themeToCssVars.test.ts +175 -0
- package/src/tokens/__tests__/tokens.test.ts +215 -0
- package/src/tokens/colorPresetSettings.ts +128 -0
- package/src/tokens/index.ts +65 -0
- package/src/tokens/mergeTheme.ts +48 -0
- package/src/tokens/theme-china.ts +132 -0
- package/src/tokens/theme-dark.ts +244 -0
- package/src/tokens/theme-light.ts +250 -0
- package/src/tokens/themeToCssVars.ts +138 -0
- package/src/tokens/types.ts +394 -0
- package/src/utils/kLineDraw/axis.ts +31 -30
- package/src/version.ts +1 -1
- package/dist/engine/theme/colors.d.ts +0 -223
- package/dist/engine/theme/colors.d.ts.map +0 -1
- package/dist/engine/theme/colors.js +0 -375
- package/dist/engine/theme/colors.js.map +0 -1
- package/src/engine/theme/colors.ts +0 -642
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Light theme — concrete token values.
|
|
3
|
+
*
|
|
4
|
+
* Color choices:
|
|
5
|
+
*
|
|
6
|
+
* - Bull (up) = a dark saturated green (#0F8B5C). Picked to clear the
|
|
7
|
+
* WCAG AA non-text threshold (≥ 3:1) against #FAFAFA. The lighter
|
|
8
|
+
* industry-standard greens like #26A69A fail that bar by ~25 %.
|
|
9
|
+
* - Bear (down) = a dark saturated red (#C2363B). Same rationale —
|
|
10
|
+
* the common #EE4D4D fails AA at ~2.6:1.
|
|
11
|
+
* - Background = #FAFAFA (slightly off-white, kinder to eyes than pure
|
|
12
|
+
* #FFFFFF for long sessions).
|
|
13
|
+
* - Grid major / minor split: major lines for round-number price tiers,
|
|
14
|
+
* minor for between-tier rhythm. Both very low contrast (1.3:1, 1.1:1)
|
|
15
|
+
* so they don't dominate.
|
|
16
|
+
*
|
|
17
|
+
* Indicator palette: ten qualitatively distinct hues using the Okabe-Ito
|
|
18
|
+
* colorblind-safe set (extended to ten by adding three desaturated mids).
|
|
19
|
+
* Each WCAG AA against the background (>= 3:1 for non-text).
|
|
20
|
+
*/
|
|
21
|
+
export const lightTheme = {
|
|
22
|
+
name: 'light',
|
|
23
|
+
colors: {
|
|
24
|
+
background: '#FAFAFA',
|
|
25
|
+
foreground: '#1F1F1F',
|
|
26
|
+
chartBackground: '#FFFFFF',
|
|
27
|
+
candleUpBody: '#0F8B5C',
|
|
28
|
+
candleUpBorder: '#0F8B5C',
|
|
29
|
+
candleUpWick: '#0F8B5C',
|
|
30
|
+
candleDownBody: '#C2363B',
|
|
31
|
+
candleDownBorder: '#C2363B',
|
|
32
|
+
candleDownWick: '#C2363B',
|
|
33
|
+
candleDojiBorder: '#6E6E6E',
|
|
34
|
+
volumeUp: '#0F8B5C66', // 40% alpha — paired with candleUp
|
|
35
|
+
volumeDown: '#C2363B66',
|
|
36
|
+
axisText: '#5A5A5A',
|
|
37
|
+
axisLine: '#D0D0D0',
|
|
38
|
+
axisTick: '#D0D0D0',
|
|
39
|
+
gridMajor: '#E5E5E5',
|
|
40
|
+
gridMinor: '#F0F0F0',
|
|
41
|
+
crosshairLine: '#8C8C8C',
|
|
42
|
+
crosshairLabelBg: '#1F1F1F',
|
|
43
|
+
crosshairLabelText: '#FAFAFA',
|
|
44
|
+
selectionFill: '#2D7FF933',
|
|
45
|
+
selectionStroke: '#2D7FF9',
|
|
46
|
+
tooltipBg: '#FFFFFFEE',
|
|
47
|
+
tooltipText: '#1F1F1F',
|
|
48
|
+
tooltipBorder: '#D0D0D0',
|
|
49
|
+
heatmapColdest: '#F0F4F8',
|
|
50
|
+
heatmapHottest: '#1F3A5F',
|
|
51
|
+
volumeProfileFill: '#9CA3AF66',
|
|
52
|
+
volumeProfilePoc: '#F97316',
|
|
53
|
+
volumeProfileValueArea: '#2D7FF933',
|
|
54
|
+
footprintAsk: '#0F8B5C80',
|
|
55
|
+
footprintBid: '#C2363B80',
|
|
56
|
+
footprintImbalance: '#F97316',
|
|
57
|
+
alertActive: '#2D7FF9',
|
|
58
|
+
// alertTriggered: orange #F97316 was 2.69:1 on white (fails AA
|
|
59
|
+
// non-text). Darkened to #C2410C → 4.13:1.
|
|
60
|
+
alertTriggered: '#C2410C',
|
|
61
|
+
alertMuted: '#9CA3AF',
|
|
62
|
+
avwapLine: '#7C3AED',
|
|
63
|
+
avwapBand: '#7C3AED33',
|
|
64
|
+
// mtfOverlay: sky #0EA5E9 was 2.66:1 on white. Darkened to
|
|
65
|
+
// #0369A1 → 4.59:1.
|
|
66
|
+
mtfOverlay: '#0369A1',
|
|
67
|
+
palette: {
|
|
68
|
+
// Okabe-Ito-derived qualitative scale, AA on #FAFAFA
|
|
69
|
+
i1: '#0072B2', // strong blue
|
|
70
|
+
i2: '#E69F00', // amber
|
|
71
|
+
i3: '#009E73', // teal-green
|
|
72
|
+
i4: '#CC79A7', // pink
|
|
73
|
+
i5: '#D55E00', // burnt orange
|
|
74
|
+
i6: '#56B4E9', // sky
|
|
75
|
+
i7: '#F0E442', // yellow (use sparingly — low contrast)
|
|
76
|
+
i8: '#7C3AED', // purple
|
|
77
|
+
i9: '#2D7FF9', // blue
|
|
78
|
+
i10: '#6E6E6E', // neutral gray
|
|
79
|
+
indicatorAtr: '#d97706',
|
|
80
|
+
},
|
|
81
|
+
// ── Legacy indicator colours (from engine/theme/colors) ──
|
|
82
|
+
text: {
|
|
83
|
+
primary: 'hsl(210, 9%, 31%)',
|
|
84
|
+
secondary: 'hsl(210, 9%, 35%)',
|
|
85
|
+
tertiary: 'hsl(210, 8%, 50%)',
|
|
86
|
+
weak: 'hsl(210, 7%, 65%)',
|
|
87
|
+
white: 'rgba(255, 255, 255, 0.92)',
|
|
88
|
+
},
|
|
89
|
+
price: {
|
|
90
|
+
upLight: 'rgba(214, 10, 34, 0.92)',
|
|
91
|
+
upTick: 'hsl(0, 60%, 50%)',
|
|
92
|
+
downLight: 'rgba(3, 123, 102, 0.92)',
|
|
93
|
+
downTick: 'hsl(150, 30%, 60%)',
|
|
94
|
+
lastPrice: 'rgba(196, 74, 86, 0.95)',
|
|
95
|
+
},
|
|
96
|
+
tagBg: {
|
|
97
|
+
white: 'rgb(255, 255, 255)',
|
|
98
|
+
lightGray: 'rgba(255, 255, 255, 0.92)',
|
|
99
|
+
pureWhite: '#ffffff',
|
|
100
|
+
transparent: 'transparent',
|
|
101
|
+
active: '#1890ff',
|
|
102
|
+
activeHover: '#40a9ff',
|
|
103
|
+
hover: '#f0f0f0',
|
|
104
|
+
},
|
|
105
|
+
border: {
|
|
106
|
+
dark: 'rgba(0, 0, 0, 0.12)',
|
|
107
|
+
medium: 'rgba(0, 0, 0, 0.10)',
|
|
108
|
+
light: 'rgba(0, 0, 0, 0.08)',
|
|
109
|
+
separator: 'rgba(0, 0, 0, 0.10)',
|
|
110
|
+
button: '#d0d0d0',
|
|
111
|
+
chart: '#e5e5e5',
|
|
112
|
+
},
|
|
113
|
+
ma: {
|
|
114
|
+
ma5: 'rgba(255, 193, 37, 1)',
|
|
115
|
+
ma10: 'rgba(190, 131, 12, 1)',
|
|
116
|
+
ma20: 'rgba(69, 112, 249, 1)',
|
|
117
|
+
ma30: 'rgba(76, 175, 80, 1)',
|
|
118
|
+
ma60: 'rgba(156, 39, 176, 1)',
|
|
119
|
+
},
|
|
120
|
+
boll: {
|
|
121
|
+
upper: 'rgba(178, 34, 34, 1)',
|
|
122
|
+
middle: 'rgba(69, 112, 249, 1)',
|
|
123
|
+
lower: 'rgba(34, 139, 34, 1)',
|
|
124
|
+
bandFill: 'rgba(100, 149, 237, 0.1)',
|
|
125
|
+
},
|
|
126
|
+
macd: {
|
|
127
|
+
dif: 'rgba(69, 112, 249, 1)',
|
|
128
|
+
dea: 'rgba(255, 152, 0, 1)',
|
|
129
|
+
barUp: '#ff5252',
|
|
130
|
+
barUpLight: '#fccbcd',
|
|
131
|
+
barDown: '#22ab94',
|
|
132
|
+
barDownLight: '#ace5dc',
|
|
133
|
+
},
|
|
134
|
+
rsi: {
|
|
135
|
+
rsi1: 'rgba(69, 112, 249, 1)',
|
|
136
|
+
rsi2: 'rgba(255, 152, 0, 1)',
|
|
137
|
+
rsi3: 'rgba(156, 39, 176, 1)',
|
|
138
|
+
},
|
|
139
|
+
cci: {
|
|
140
|
+
cci: 'rgba(69, 112, 249, 1)',
|
|
141
|
+
overbought: 'rgba(214, 10, 34, 0.5)',
|
|
142
|
+
oversold: 'rgba(3, 123, 102, 0.5)',
|
|
143
|
+
},
|
|
144
|
+
kdj: {
|
|
145
|
+
k: 'rgba(69, 112, 249, 1)',
|
|
146
|
+
d: 'rgba(255, 152, 0, 1)',
|
|
147
|
+
j: 'rgba(156, 39, 176, 1)',
|
|
148
|
+
},
|
|
149
|
+
mom: {
|
|
150
|
+
mom: 'rgba(69, 112, 249, 1)',
|
|
151
|
+
zero: 'rgba(0, 0, 0, 0.2)',
|
|
152
|
+
},
|
|
153
|
+
wmsr: {
|
|
154
|
+
wmsr: 'rgba(69, 112, 249, 1)',
|
|
155
|
+
overbought: 'rgba(214, 10, 34, 0.5)',
|
|
156
|
+
oversold: 'rgba(3, 123, 102, 0.5)',
|
|
157
|
+
},
|
|
158
|
+
kst: {
|
|
159
|
+
kst: 'rgba(69, 112, 249, 1)',
|
|
160
|
+
signal: 'rgba(255, 152, 0, 1)',
|
|
161
|
+
},
|
|
162
|
+
expma: {
|
|
163
|
+
fast: 'rgba(255, 152, 0, 1)',
|
|
164
|
+
slow: 'rgba(69, 112, 249, 1)',
|
|
165
|
+
},
|
|
166
|
+
ene: {
|
|
167
|
+
upper: 'rgba(214, 10, 34, 1)',
|
|
168
|
+
middle: 'rgba(69, 112, 249, 1)',
|
|
169
|
+
lower: 'rgba(3, 123, 102, 1)',
|
|
170
|
+
bandFill: 'rgba(69, 112, 249, 0.08)',
|
|
171
|
+
},
|
|
172
|
+
label: {
|
|
173
|
+
bg: 'rgba(0, 0, 0, 0.8)',
|
|
174
|
+
text: '#ffffff',
|
|
175
|
+
},
|
|
176
|
+
lastPriceLabel: {
|
|
177
|
+
bg: 'rgba(255, 247, 248, 0.98)',
|
|
178
|
+
},
|
|
179
|
+
volumePrice: {
|
|
180
|
+
riseWith: '#FF4444',
|
|
181
|
+
riseWithout: '#00C853',
|
|
182
|
+
fallWith: '#FF4444',
|
|
183
|
+
fallWithout: '#00C853',
|
|
184
|
+
},
|
|
185
|
+
structure: {
|
|
186
|
+
hh: '#16a34a',
|
|
187
|
+
hl: '#22c55e',
|
|
188
|
+
lh: '#dc2626',
|
|
189
|
+
ll: '#ef4444',
|
|
190
|
+
choch: '#8b5cf6',
|
|
191
|
+
bos: '#f59e0b',
|
|
192
|
+
},
|
|
193
|
+
zones: {
|
|
194
|
+
fvgBullFill: 'rgba(34, 197, 94, 0.15)',
|
|
195
|
+
fvgBearFill: 'rgba(239, 68, 68, 0.15)',
|
|
196
|
+
fvgBullBorder: 'rgba(34, 197, 94, 0.6)',
|
|
197
|
+
fvgBearBorder: 'rgba(239, 68, 68, 0.6)',
|
|
198
|
+
obBullFill: 'rgba(34, 197, 94, 0.25)',
|
|
199
|
+
obBearFill: 'rgba(239, 68, 68, 0.25)',
|
|
200
|
+
},
|
|
201
|
+
wmsrGrid: 'rgba(0, 0, 0, 0.1)',
|
|
202
|
+
},
|
|
203
|
+
spacing: {
|
|
204
|
+
none: '0',
|
|
205
|
+
xxs: '2px',
|
|
206
|
+
xs: '4px',
|
|
207
|
+
sm: '8px',
|
|
208
|
+
md: '12px',
|
|
209
|
+
lg: '16px',
|
|
210
|
+
xl: '24px',
|
|
211
|
+
xxl: '32px',
|
|
212
|
+
xxxl: '64px',
|
|
213
|
+
},
|
|
214
|
+
typography: {
|
|
215
|
+
fontFamily: "-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif",
|
|
216
|
+
fontFamilyMono: "ui-monospace, SFMono-Regular, Menlo, Consolas, 'Liberation Mono', monospace",
|
|
217
|
+
fontSizeSm: '10px',
|
|
218
|
+
fontSizeMd: '12px',
|
|
219
|
+
fontSizeLg: '14px',
|
|
220
|
+
fontWeightRegular: 400,
|
|
221
|
+
fontWeightMedium: 500,
|
|
222
|
+
fontWeightBold: 700,
|
|
223
|
+
lineHeightTight: 1.2,
|
|
224
|
+
lineHeightStandard: 1.4,
|
|
225
|
+
},
|
|
226
|
+
motion: {
|
|
227
|
+
durationInstant: '0ms',
|
|
228
|
+
durationFast: '120ms',
|
|
229
|
+
durationModerate: '200ms',
|
|
230
|
+
easingStandard: 'cubic-bezier(0.4, 0, 0.2, 1)',
|
|
231
|
+
easingDecelerate: 'cubic-bezier(0, 0, 0.2, 1)',
|
|
232
|
+
},
|
|
233
|
+
};
|
|
234
|
+
//# sourceMappingURL=theme-light.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-light.js","sourceRoot":"","sources":["../../src/tokens/theme-light.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Theme → CSS custom-property emitter.
|
|
3
|
+
*
|
|
4
|
+
* Bridges the typed tokens in `theme-light.ts` / `theme-dark.ts` to the
|
|
5
|
+
* actual stylesheet, so any framework can apply a theme by inserting a
|
|
6
|
+
* `:root { ... }` block or attaching a `style="..."` attribute.
|
|
7
|
+
*
|
|
8
|
+
* Naming convention (kebab-case, dot-paths flattened with `-`):
|
|
9
|
+
*
|
|
10
|
+
* Theme key CSS variable
|
|
11
|
+
* ─────────────────────────────────────── ────────────────────────────
|
|
12
|
+
* colors.background `--klc-color-background`
|
|
13
|
+
* colors.candleUpBody `--klc-color-candle-up-body`
|
|
14
|
+
* colors.palette.i1 `--klc-color-palette-i1`
|
|
15
|
+
* spacing.md `--klc-spacing-md`
|
|
16
|
+
* typography.fontFamily `--klc-typography-font-family`
|
|
17
|
+
* typography.fontWeightRegular `--klc-typography-font-weight-regular`
|
|
18
|
+
* motion.durationFast `--klc-motion-duration-fast`
|
|
19
|
+
*
|
|
20
|
+
* Numeric tokens (font weights, line heights) emit as strings — CSS doesn't
|
|
21
|
+
* care, and consumers consume them through `var(...)` so the type tag is
|
|
22
|
+
* lost in the round-trip anyway.
|
|
23
|
+
*
|
|
24
|
+
* Prefix is configurable. Default `--klc-` (KLineChart Quant) is short
|
|
25
|
+
* enough to type and unique enough to coexist with other token systems
|
|
26
|
+
* (Tailwind, MUI, Radix) on the same page.
|
|
27
|
+
*/
|
|
28
|
+
import type { Theme } from './types';
|
|
29
|
+
export interface ThemeToCssVarsOptions {
|
|
30
|
+
/**
|
|
31
|
+
* CSS custom-property prefix. Default `'--klc-'`. Must start with `--`.
|
|
32
|
+
* Including the trailing dash is recommended (kebab-case continues
|
|
33
|
+
* cleanly from there).
|
|
34
|
+
*/
|
|
35
|
+
readonly prefix?: string;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* camelCase → kebab-case.
|
|
39
|
+
*
|
|
40
|
+
* 'candleUpBody' → 'candle-up-body'
|
|
41
|
+
* 'fontWeightRegular' → 'font-weight-regular'
|
|
42
|
+
* 'i1' → 'i1' (already kebab-safe)
|
|
43
|
+
*/
|
|
44
|
+
export declare function camelToKebab(s: string): string;
|
|
45
|
+
/**
|
|
46
|
+
* Emit a `{ [cssVarName]: value }` map for the given theme.
|
|
47
|
+
*
|
|
48
|
+
* Hand the result to:
|
|
49
|
+
*
|
|
50
|
+
* - React: `<div style={vars as React.CSSProperties}>...`
|
|
51
|
+
* - Vue: `:style="vars"`
|
|
52
|
+
* - Angular: `[ngStyle]="vars"`
|
|
53
|
+
* - Vanilla: `Object.assign(el.style, vars)` or emit
|
|
54
|
+
* `':root { ... }'` directly via {@link toCssDeclarationBlock}.
|
|
55
|
+
*
|
|
56
|
+
* The shape is stable: the same theme produces the same map across calls,
|
|
57
|
+
* and `mergeTheme(base, override)` produces a superset emit (keys are the
|
|
58
|
+
* same; values may differ).
|
|
59
|
+
*/
|
|
60
|
+
export declare function themeToCssVars(theme: Theme, opts?: ThemeToCssVarsOptions): Record<string, string>;
|
|
61
|
+
/**
|
|
62
|
+
* Render the emitted map as a `:root { ... }` CSS declaration block.
|
|
63
|
+
* Useful for SSR scenarios where you want to inject a `<style>` element
|
|
64
|
+
* server-side so the first paint already carries the theme.
|
|
65
|
+
*
|
|
66
|
+
* const css = toCssDeclarationBlock(themeToCssVars(darkTheme))
|
|
67
|
+
* // → ":root {\n --klc-color-background: #0E1116;\n ...\n}"
|
|
68
|
+
*
|
|
69
|
+
* The selector defaults to `:root` but can be overridden — common
|
|
70
|
+
* alternatives are `[data-theme="dark"]` for runtime theme switching
|
|
71
|
+
* or `.klc-theme-dark` for scoped overrides.
|
|
72
|
+
*/
|
|
73
|
+
export declare function toCssDeclarationBlock(vars: Record<string, string>, selector?: string): string;
|
|
74
|
+
//# sourceMappingURL=themeToCssVars.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"themeToCssVars.d.ts","sourceRoot":"","sources":["../../src/tokens/themeToCssVars.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEpC,MAAM,WAAW,qBAAqB;IAClC;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAC3B;AAID;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE9C;AAgCD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAC1B,KAAK,EAAE,KAAK,EACZ,IAAI,CAAC,EAAE,qBAAqB,GAC7B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAexB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CACjC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,QAAQ,GAAE,MAAgB,GAC3B,MAAM,CAKR"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Theme → CSS custom-property emitter.
|
|
3
|
+
*
|
|
4
|
+
* Bridges the typed tokens in `theme-light.ts` / `theme-dark.ts` to the
|
|
5
|
+
* actual stylesheet, so any framework can apply a theme by inserting a
|
|
6
|
+
* `:root { ... }` block or attaching a `style="..."` attribute.
|
|
7
|
+
*
|
|
8
|
+
* Naming convention (kebab-case, dot-paths flattened with `-`):
|
|
9
|
+
*
|
|
10
|
+
* Theme key CSS variable
|
|
11
|
+
* ─────────────────────────────────────── ────────────────────────────
|
|
12
|
+
* colors.background `--klc-color-background`
|
|
13
|
+
* colors.candleUpBody `--klc-color-candle-up-body`
|
|
14
|
+
* colors.palette.i1 `--klc-color-palette-i1`
|
|
15
|
+
* spacing.md `--klc-spacing-md`
|
|
16
|
+
* typography.fontFamily `--klc-typography-font-family`
|
|
17
|
+
* typography.fontWeightRegular `--klc-typography-font-weight-regular`
|
|
18
|
+
* motion.durationFast `--klc-motion-duration-fast`
|
|
19
|
+
*
|
|
20
|
+
* Numeric tokens (font weights, line heights) emit as strings — CSS doesn't
|
|
21
|
+
* care, and consumers consume them through `var(...)` so the type tag is
|
|
22
|
+
* lost in the round-trip anyway.
|
|
23
|
+
*
|
|
24
|
+
* Prefix is configurable. Default `--klc-` (KLineChart Quant) is short
|
|
25
|
+
* enough to type and unique enough to coexist with other token systems
|
|
26
|
+
* (Tailwind, MUI, Radix) on the same page.
|
|
27
|
+
*/
|
|
28
|
+
const DEFAULT_PREFIX = '--klc-';
|
|
29
|
+
/**
|
|
30
|
+
* camelCase → kebab-case.
|
|
31
|
+
*
|
|
32
|
+
* 'candleUpBody' → 'candle-up-body'
|
|
33
|
+
* 'fontWeightRegular' → 'font-weight-regular'
|
|
34
|
+
* 'i1' → 'i1' (already kebab-safe)
|
|
35
|
+
*/
|
|
36
|
+
export function camelToKebab(s) {
|
|
37
|
+
return s.replace(/[A-Z]/g, (m, i) => (i === 0 ? m.toLowerCase() : '-' + m.toLowerCase()));
|
|
38
|
+
}
|
|
39
|
+
function flattenColors(colors, prefix) {
|
|
40
|
+
const out = {};
|
|
41
|
+
for (const [k, v] of Object.entries(colors)) {
|
|
42
|
+
if (typeof v === 'object' && v !== null) {
|
|
43
|
+
const ns = camelToKebab(k);
|
|
44
|
+
for (const [nk, nv] of Object.entries(v)) {
|
|
45
|
+
out[`${prefix}color-${ns}-${camelToKebab(nk)}`] = nv;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
out[`${prefix}color-${camelToKebab(k)}`] = v;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return out;
|
|
53
|
+
}
|
|
54
|
+
function flattenFamily(family, prefix, namespace) {
|
|
55
|
+
const out = {};
|
|
56
|
+
for (const [k, v] of Object.entries(family)) {
|
|
57
|
+
out[`${prefix}${namespace}-${camelToKebab(k)}`] = String(v);
|
|
58
|
+
}
|
|
59
|
+
return out;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Emit a `{ [cssVarName]: value }` map for the given theme.
|
|
63
|
+
*
|
|
64
|
+
* Hand the result to:
|
|
65
|
+
*
|
|
66
|
+
* - React: `<div style={vars as React.CSSProperties}>...`
|
|
67
|
+
* - Vue: `:style="vars"`
|
|
68
|
+
* - Angular: `[ngStyle]="vars"`
|
|
69
|
+
* - Vanilla: `Object.assign(el.style, vars)` or emit
|
|
70
|
+
* `':root { ... }'` directly via {@link toCssDeclarationBlock}.
|
|
71
|
+
*
|
|
72
|
+
* The shape is stable: the same theme produces the same map across calls,
|
|
73
|
+
* and `mergeTheme(base, override)` produces a superset emit (keys are the
|
|
74
|
+
* same; values may differ).
|
|
75
|
+
*/
|
|
76
|
+
export function themeToCssVars(theme, opts) {
|
|
77
|
+
const prefix = opts?.prefix ?? DEFAULT_PREFIX;
|
|
78
|
+
if (!prefix.startsWith('--')) {
|
|
79
|
+
// Misuse caught here is much friendlier than the silent no-op CSS
|
|
80
|
+
// would give downstream.
|
|
81
|
+
throw new Error(`themeToCssVars: prefix must start with '--', got ${JSON.stringify(prefix)}`);
|
|
82
|
+
}
|
|
83
|
+
return {
|
|
84
|
+
...flattenColors(theme.colors, prefix),
|
|
85
|
+
...flattenFamily(theme.spacing, prefix, 'spacing'),
|
|
86
|
+
...flattenFamily(theme.typography, prefix, 'typography'),
|
|
87
|
+
...flattenFamily(theme.motion, prefix, 'motion'),
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Render the emitted map as a `:root { ... }` CSS declaration block.
|
|
92
|
+
* Useful for SSR scenarios where you want to inject a `<style>` element
|
|
93
|
+
* server-side so the first paint already carries the theme.
|
|
94
|
+
*
|
|
95
|
+
* const css = toCssDeclarationBlock(themeToCssVars(darkTheme))
|
|
96
|
+
* // → ":root {\n --klc-color-background: #0E1116;\n ...\n}"
|
|
97
|
+
*
|
|
98
|
+
* The selector defaults to `:root` but can be overridden — common
|
|
99
|
+
* alternatives are `[data-theme="dark"]` for runtime theme switching
|
|
100
|
+
* or `.klc-theme-dark` for scoped overrides.
|
|
101
|
+
*/
|
|
102
|
+
export function toCssDeclarationBlock(vars, selector = ':root') {
|
|
103
|
+
const decls = Object.entries(vars)
|
|
104
|
+
.map(([k, v]) => ` ${k}: ${v};`)
|
|
105
|
+
.join('\n');
|
|
106
|
+
return `${selector} {\n${decls}\n}`;
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=themeToCssVars.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"themeToCssVars.js","sourceRoot":"","sources":["../../src/tokens/themeToCssVars.ts"],"names":[],"mappings":"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"}
|