Jaspers Hub

jaspers / option-chain

pluginOfficialReviewed★ 0↓ 0

Options Chain: Shows a calls/puts straddle table by strike (IV, delta, OI, volume, max pain) sourced from Yahoo, Alpaca, Massive, or Databento plugins.

5.4 KB
1.oc-root {
2 display: flex;
3 flex-direction: column;
4 height: 100%;
5 width: 100%;
6 font-family: var(--jaspers-font-sans, system-ui, sans-serif);
7 font-size: 12px;
8 color: var(--jaspers-foreground, #171717);
9 background: var(--jaspers-background, #ffffff);
10 overflow: hidden;
11 user-select: none;
12}
13
14.oc-toolbar {
15 display: flex;
16 flex-wrap: wrap;
17 align-items: center;
18 gap: 10px;
19 padding: 6px 38px 6px 10px;
20 border-bottom: 1px solid var(--jaspers-border, #e5e5e5);
21 background: var(--jaspers-muted, #f5f5f5);
22}
23
24.oc-field {
25 display: inline-flex;
26 align-items: center;
27 gap: 5px;
28 white-space: nowrap;
29}
30
31.oc-label {
32 color: var(--jaspers-muted-foreground, #737373);
33 font-size: 10.5px;
34 font-weight: 600;
35 text-transform: uppercase;
36 letter-spacing: 0.02em;
37}
38
39.oc-select {
40 height: 24px;
41 padding: 2px 8px;
42 font-size: 11.5px;
43 font-weight: 600;
44 font-family: var(--jaspers-font-sans, system-ui, sans-serif);
45 border: 1px solid var(--jaspers-border, #e5e5e5);
46 border-radius: 4px;
47 background: var(--jaspers-background, #ffffff);
48 color: var(--jaspers-foreground, #171717);
49 cursor: pointer;
50}
51
52.oc-select-mono {
53 font-family: var(--jaspers-font-mono, monospace);
54}
55
56.oc-input {
57 width: 68px;
58 height: 24px;
59 padding: 2px 6px;
60 font-size: 11.5px;
61 font-weight: 600;
62 font-family: var(--jaspers-font-mono, monospace);
63 text-transform: uppercase;
64 border: 1px solid var(--jaspers-border, #e5e5e5);
65 border-radius: 4px;
66 background: var(--jaspers-background, #ffffff);
67 color: var(--jaspers-foreground, #171717);
68 box-sizing: border-box;
69}
70
71.oc-btn {
72 height: 24px;
73 border: 1px solid var(--jaspers-border, #e5e5e5);
74 background: var(--jaspers-background, #ffffff);
75 color: var(--jaspers-foreground, #171717);
76 font-size: 11px;
77 font-weight: 600;
78 padding: 0 8px;
79 border-radius: 4px;
80 cursor: pointer;
81}
82
83.oc-btn:hover {
84 background: var(--jaspers-primary, #171717);
85 color: var(--jaspers-primary-foreground, #ffffff);
86}
87
88.oc-expirations {
89 display: flex;
90 align-items: center;
91 gap: 6px;
92 padding: 5px 10px;
93 border-bottom: 1px solid var(--jaspers-border, #e5e5e5);
94 overflow-x: auto;
95 scrollbar-width: thin;
96}
97
98.oc-exp-pill {
99 display: inline-flex;
100 align-items: center;
101 gap: 6px;
102 padding: 3px 9px;
103 border: 1px solid var(--jaspers-border, #e5e5e5);
104 border-radius: 4px;
105 background: var(--jaspers-background, #ffffff);
106 color: var(--jaspers-foreground, #171717);
107 font-family: var(--jaspers-font-mono, monospace);
108 font-size: 11px;
109 font-weight: 600;
110 white-space: nowrap;
111 cursor: pointer;
112 flex-shrink: 0;
113}
114
115.oc-exp-pill:hover {
116 border-color: var(--jaspers-muted-foreground, #737373);
117}
118
119.oc-exp-dte {
120 font-size: 10px;
121 font-weight: 500;
122 color: var(--jaspers-muted-foreground, #737373);
123}
124
125.oc-exp-pill.oc-exp-active {
126 border-color: var(--jaspers-primary, #171717);
127 background: var(--jaspers-primary, #171717);
128 color: var(--jaspers-primary-foreground, #ffffff);
129}
130
131.oc-exp-pill.oc-exp-active .oc-exp-dte {
132 color: var(--jaspers-primary-foreground, #ffffff);
133 opacity: 0.85;
134}
135
136.oc-summary-bar,
137.oc-ribbon {
138 display: flex;
139 flex-wrap: wrap;
140 align-items: center;
141 gap: 12px;
142 padding: 5px 10px;
143 border-bottom: 1px solid var(--jaspers-border, #e5e5e5);
144 font-size: 11px;
145}
146
147.oc-stat {
148 display: flex;
149 align-items: baseline;
150 gap: 4px;
151 white-space: nowrap;
152}
153
154.oc-stat-label {
155 color: var(--jaspers-muted-foreground, #737373);
156 font-size: 10px;
157 text-transform: uppercase;
158}
159
160.oc-stat-val {
161 font-family: var(--jaspers-font-mono, monospace);
162 font-weight: 600;
163}
164
165.oc-up { color: var(--jaspers-positive, #15803d); }
166.oc-down { color: var(--jaspers-negative, #b91c1c); }
167
168.oc-table-wrap {
169 flex: 1;
170 overflow: auto;
171}
172
173.oc-table {
174 width: 100%;
175 border-collapse: collapse;
176 font-family: var(--jaspers-font-mono, monospace);
177 font-size: 11px;
178}
179
180.oc-table th,
181.oc-table td {
182 padding: 3px 6px;
183 border-bottom: 1px solid var(--jaspers-border, #e5e5e5);
184 text-align: right;
185 white-space: nowrap;
186 position: relative;
187}
188
189.oc-table th {
190 position: sticky;
191 top: 0;
192 z-index: 2;
193 background: var(--jaspers-muted, #f5f5f5);
194 color: var(--jaspers-muted-foreground, #737373);
195 font-family: var(--jaspers-font-sans, sans-serif);
196 font-size: 10px;
197 font-weight: 600;
198 text-transform: uppercase;
199}
200
201.oc-table th.oc-center,
202.oc-table td.oc-strike {
203 text-align: center;
204}
205
206.oc-table td.oc-strike {
207 font-weight: 700;
208 background: var(--jaspers-muted, #f5f5f5);
209 border-left: 1px solid var(--jaspers-border, #e5e5e5);
210 border-right: 1px solid var(--jaspers-border, #e5e5e5);
211}
212
213.oc-itm {
214 background: rgba(59, 130, 246, 0.08);
215}
216
217.oc-atm-divider td {
218 text-align: center !important;
219 font-size: 10px;
220 font-weight: 600;
221 padding: 2px 6px;
222 background: rgba(234, 179, 8, 0.14);
223 color: var(--jaspers-foreground, #171717);
224 border-top: 1px dashed var(--jaspers-primary, #737373);
225 border-bottom: 1px dashed var(--jaspers-primary, #737373);
226}
227
228.oc-clickable {
229 cursor: pointer;
230}
231
232.oc-clickable:hover {
233 background: rgba(120, 120, 120, 0.12);
234}
235
236.oc-oi-bar {
237 position: absolute;
238 top: 2px;
239 bottom: 2px;
240 opacity: 0.18;
241 pointer-events: none;
242}
243
244.oc-oi-call {
245 right: 0;
246 background: var(--jaspers-positive, #15803d);
247}
248
249.oc-oi-put {
250 left: 0;
251 background: var(--jaspers-negative, #b91c1c);
252}
253
254.oc-note {
255 padding: 12px;
256 color: var(--jaspers-muted-foreground, #737373);
257 font-size: 12px;
258}
259
260.oc-error {
261 padding: 10px 12px;
262 color: var(--jaspers-destructive, #dc2626);
263 font-size: 12px;
264}