Jaspers Hub

biseroff / charts

pluginReviewed★ 0↓ 0

Charts: Interactive price chart view with lines or candles and volume, backed by Yahoo, Massive, or Databento bar data.

3.3 KB
1/* Dark by design; text and rules take the app's theme where it sets them. */
2.yc {
3 position: absolute;
4 inset: 0;
5 display: flex;
6 flex-direction: column;
7 font-size: 12px;
8 background: var(--jaspers-background, #0b0b0c);
9 color: var(--jaspers-foreground, #e5e5e5);
10 overflow: hidden;
11}
12.yc-top {
13 padding: 4px 36px 2px 6px; /* room for the panel's own buttons at the top right */
14 display: flex;
15 flex-direction: column;
16 gap: 4px;
17 flex: none;
18}
19.yc-controls,
20.yc-chips {
21 display: flex;
22 flex-wrap: wrap;
23 align-items: center;
24 gap: 4px;
25}
26.yc-select,
27.yc-input,
28.yc-btn,
29.yc-seg button {
30 height: 22px;
31 font: inherit;
32 font-size: 11px;
33 color: inherit;
34 background: var(--jaspers-muted, #1c1c1f);
35 border: 1px solid var(--jaspers-border, #2a2a2e);
36 border-radius: 4px;
37 padding: 0 6px;
38}
39.yc-input {
40 width: 84px;
41 text-transform: uppercase;
42}
43.yc-btn,
44.yc-seg button {
45 cursor: pointer;
46}
47.yc-seg {
48 display: inline-flex;
49}
50.yc-seg button {
51 border-radius: 0;
52}
53.yc-seg button:first-child {
54 border-radius: 4px 0 0 4px;
55}
56.yc-seg button:last-child {
57 border-radius: 0 4px 4px 0;
58 border-left: none;
59}
60.yc-btn.on,
61.yc-seg button.on {
62 background: var(--jaspers-primary, #e5e5e5);
63 color: var(--jaspers-primary-foreground, #111);
64 border-color: var(--jaspers-primary, #e5e5e5);
65}
66.yc-chip {
67 display: inline-flex;
68 align-items: center;
69 gap: 4px;
70 height: 20px;
71 padding: 0 2px 0 6px;
72 border: 1px solid var(--jaspers-border, #2a2a2e);
73 border-radius: 10px;
74 cursor: pointer;
75 font-family: var(--jaspers-font-mono, ui-monospace, monospace);
76 font-size: 11px;
77 user-select: none;
78}
79.yc-chip.active {
80 background: var(--jaspers-muted, #1c1c1f);
81 font-weight: 600;
82}
83.yc-chip.loading {
84 opacity: 0.55;
85}
86.yc-chip i {
87 width: 8px;
88 height: 8px;
89 border-radius: 50%;
90 display: inline-block;
91}
92.yc-err {
93 color: var(--jaspers-destructive, #dc2626);
94 font-weight: 700;
95}
96.yc-source {
97 font-size: 10px;
98 color: var(--jaspers-muted-foreground, #8a8a8a);
99 margin: 0 4px 0 2px;
100}
101.yc-select option:disabled {
102 color: var(--jaspers-muted-foreground, #666);
103}
104.yc-note-chip {
105 font-family: var(--jaspers-font-sans, system-ui, sans-serif);
106 font-size: 9px;
107 font-weight: 400;
108 color: var(--jaspers-muted-foreground, #8a8a8a);
109}
110.yc-note-chip.warn {
111 color: #f59e0b;
112}
113.yc-note-chip.bad {
114 color: var(--jaspers-destructive, #dc2626);
115}
116.yc-vol-label {
117 position: absolute;
118 left: 8px;
119 z-index: 3;
120 pointer-events: none;
121 font-size: 10px;
122 color: var(--jaspers-muted-foreground, #8a8a8a);
123}
124.yc-x {
125 border: none;
126 background: none;
127 color: var(--jaspers-muted-foreground, #8a8a8a);
128 cursor: pointer;
129 font-size: 13px;
130 line-height: 1;
131 padding: 0 4px;
132}
133.yc-x:hover {
134 color: var(--jaspers-foreground, #e5e5e5);
135}
136.yc-body {
137 position: relative;
138 flex: 1;
139 min-height: 0;
140}
141.yc-chart {
142 position: absolute;
143 inset: 0;
144}
145.yc-legend {
146 position: absolute;
147 top: 4px;
148 left: 8px;
149 right: 70px;
150 z-index: 2;
151 display: flex;
152 flex-wrap: wrap;
153 gap: 2px 10px;
154 pointer-events: none;
155 font-family: var(--jaspers-font-mono, ui-monospace, monospace);
156 font-size: 11px;
157}
158.yc-legend em {
159 font-style: normal;
160 color: var(--jaspers-foreground, #e5e5e5);
161}
162.yc-note {
163 margin: 12px;
164 color: var(--jaspers-muted-foreground, #8a8a8a);
165}
166.yc-empty {
167 position: absolute;
168 top: 30px;
169 left: 0;
170 z-index: 2;
171}