@kolkrabbi/kol-theme 0.164.1 → 0.166.0
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/kol-components-molecules.css +31 -0
- package/kol-components-shell.css +17 -0
- package/kol-components-workshop.css +32 -0
- package/kol-opaque.css +36 -0
- package/kol-type-roles.css +4 -0
- package/package.json +1 -1
|
@@ -22,6 +22,11 @@
|
|
|
22
22
|
/* above the ShellDrawer sheet (z 200) — a Dropdown in the settings drawer
|
|
23
23
|
* opened BEHIND it (SettingsPanelApproved, 2026-08-27) */
|
|
24
24
|
z-index: 210;
|
|
25
|
+
/* NEVER WIDER THAN THE WINDOW (the phone pass, 2026-10-02). A panel sizes to its content
|
|
26
|
+
* (`w-max`) and `shift` can only slide it, so one wider than a phone hung off the right edge
|
|
27
|
+
* and — parked off-screen with its reference — still stretched the page 200px sideways. The 8px
|
|
28
|
+
* each side is `shift`'s own padding. */
|
|
29
|
+
max-width: calc(100vw - 16px);
|
|
25
30
|
}
|
|
26
31
|
|
|
27
32
|
/* ── Dropdown — .kol-dd-* ─────────────────────────────────────────────────
|
|
@@ -2138,6 +2143,32 @@
|
|
|
2138
2143
|
--kol-tone-panel-border-w: 0px;
|
|
2139
2144
|
--kol-tone-panel-border: transparent;
|
|
2140
2145
|
}
|
|
2146
|
+
/* THE TAB BUNDLE (user 2026-10-02: *"can we add a tone and states to button that reflect the new
|
|
2147
|
+
* tabtoggle?"*). A VARIANT like `nav`, not an eighth tone — a tone is a ground, ordered by depth,
|
|
2148
|
+
* and this is a state idiom: quiet text at rest, ink on hover with no wash, and the selected tab a
|
|
2149
|
+
* soft `08` chip in full ink (where every ground's pressed is the inverted fill). `TabChips` is
|
|
2150
|
+
* this variant on the control size ramp. */
|
|
2151
|
+
:where(.kol-btn-tab) {
|
|
2152
|
+
--kol-tone-bg: transparent;
|
|
2153
|
+
--kol-tone-image: none;
|
|
2154
|
+
--kol-tone-fg: var(--kol-fg-meta);
|
|
2155
|
+
--kol-tone-border: transparent;
|
|
2156
|
+
--kol-tone-hover-bg: transparent;
|
|
2157
|
+
--kol-tone-hover-image: none;
|
|
2158
|
+
--kol-tone-hover-fg: var(--kol-fg-emphasis);
|
|
2159
|
+
--kol-tone-hover-border: transparent;
|
|
2160
|
+
--kol-tone-active-bg: var(--kol-oq-04);
|
|
2161
|
+
--kol-tone-active-image: none;
|
|
2162
|
+
--kol-tone-pressed-bg: var(--kol-oq-08);
|
|
2163
|
+
--kol-tone-pressed-image: none;
|
|
2164
|
+
--kol-tone-pressed-fg: var(--kol-fg-emphasis);
|
|
2165
|
+
}
|
|
2166
|
+
/* the selected tab keeps its chip under the pointer — hover is for the tabs you are not on (the
|
|
2167
|
+
* shared hover rule would repaint it with the bundle's transparent hover ground) */
|
|
2168
|
+
.kol-btn.kol-btn-tab.kol-btn-pressed:not(.kol-dd-trigger):hover {
|
|
2169
|
+
background-color: var(--kol-tone-pressed-bg);
|
|
2170
|
+
color: var(--kol-tone-pressed-fg);
|
|
2171
|
+
}
|
|
2141
2172
|
:where(.kol-icon-frame-nav) {
|
|
2142
2173
|
--kol-tone-bg: transparent;
|
|
2143
2174
|
--kol-tone-image: none;
|
package/kol-components-shell.css
CHANGED
|
@@ -108,6 +108,23 @@
|
|
|
108
108
|
z-index: var(--kol-z-sticky);
|
|
109
109
|
}
|
|
110
110
|
|
|
111
|
+
/* THE RAIL'S LIST FADES OUT AT ITS FOOT (user 2026-10-02: *"add the gradient fade you put on
|
|
112
|
+
* workshop rails on the other rail in shell, and make it a prop so can opt out"*). The same mask
|
|
113
|
+
* `.shell-rail` wears (kol-components-workshop.css, 2026-10-01): the last 3rem run to nothing, and
|
|
114
|
+
* the list pads by as much so its last row scrolls clear of it. On the LIST, not the rail — the
|
|
115
|
+
* mark above and the pinned rows below stay whole. `NavRail fade={false}` drops the class. */
|
|
116
|
+
.kol-shell-rail-list {
|
|
117
|
+
scrollbar-width: none;
|
|
118
|
+
}
|
|
119
|
+
.kol-shell-rail-list::-webkit-scrollbar {
|
|
120
|
+
display: none;
|
|
121
|
+
}
|
|
122
|
+
.kol-shell-rail-list--fade {
|
|
123
|
+
-webkit-mask-image: linear-gradient(to bottom, #000 calc(100% - 3rem), transparent);
|
|
124
|
+
mask-image: linear-gradient(to bottom, #000 calc(100% - 3rem), transparent);
|
|
125
|
+
padding-bottom: 3rem;
|
|
126
|
+
}
|
|
127
|
+
|
|
111
128
|
/* The 2026-08-12 active-state ruling, carried natively so consumers delete
|
|
112
129
|
* their overrides: ink full-strength in EVERY state (the nav variant's oq-64
|
|
113
130
|
* rest is site-nav quiet, wrong on an icon rail — the rail also sets oq-96
|
|
@@ -168,6 +168,38 @@
|
|
|
168
168
|
min-width: 0;
|
|
169
169
|
}
|
|
170
170
|
|
|
171
|
+
/* THE WHOLE-TREE SHEET (`T`, 2026-10-02) — every space's rail side by side, every fold open. One
|
|
172
|
+
* column per space, each scrolling its own overflow; on a phone the columns stack and the sheet
|
|
173
|
+
* scrolls as one. Sized to the window less the overlay's own margin. */
|
|
174
|
+
.shell-tree {
|
|
175
|
+
display: grid;
|
|
176
|
+
grid-auto-flow: column;
|
|
177
|
+
grid-auto-columns: minmax(14rem, 18rem);
|
|
178
|
+
gap: var(--kol-spacing-6);
|
|
179
|
+
max-width: calc(100vw - 2 * var(--kol-pad-section-x));
|
|
180
|
+
max-height: calc(100dvh - 2 * var(--kol-spacing-12));
|
|
181
|
+
padding: var(--kol-spacing-6);
|
|
182
|
+
border: 1px solid var(--kol-oq-08);
|
|
183
|
+
border-radius: var(--kol-radius-sm);
|
|
184
|
+
overflow-x: auto;
|
|
185
|
+
}
|
|
186
|
+
.shell-tree-space {
|
|
187
|
+
display: flex;
|
|
188
|
+
flex-direction: column;
|
|
189
|
+
gap: var(--kol-spacing-4);
|
|
190
|
+
min-height: 0;
|
|
191
|
+
overflow-y: auto;
|
|
192
|
+
scrollbar-width: none;
|
|
193
|
+
}
|
|
194
|
+
@media (max-width: 767px) {
|
|
195
|
+
.shell-tree {
|
|
196
|
+
grid-auto-flow: row;
|
|
197
|
+
grid-auto-columns: auto;
|
|
198
|
+
overflow-y: auto;
|
|
199
|
+
}
|
|
200
|
+
.shell-tree-space { overflow-y: visible; }
|
|
201
|
+
}
|
|
202
|
+
|
|
171
203
|
/* A `.kol-page` INSIDE THE SHELL YIELDS ITS X (kol-website, 2026-10-02). "Pages do not pad
|
|
172
204
|
* themselves on x" was written above on 2026-09-28 and kol-framework's `PageSection` never heard
|
|
173
205
|
* it: `.kol-page` pads `--kol-pad-section-x` again, so a section sat 48 + 48 = 96px off the rail
|
package/kol-opaque.css
CHANGED
|
@@ -182,6 +182,42 @@
|
|
|
182
182
|
.text-oq-inverse-88 { color: var(--kol-oq-inverse-88); }
|
|
183
183
|
.text-oq-inverse-96 { color: var(--kol-oq-inverse-96); }
|
|
184
184
|
|
|
185
|
+
/* ==============================================================================
|
|
186
|
+
* CLASSES — Text hover (standard + inverse)
|
|
187
|
+
* ============================================================================== */
|
|
188
|
+
|
|
189
|
+
.hover\:text-oq-01:hover { color: var(--kol-oq-01); }
|
|
190
|
+
.hover\:text-oq-02:hover { color: var(--kol-oq-02); }
|
|
191
|
+
.hover\:text-oq-04:hover { color: var(--kol-oq-04); }
|
|
192
|
+
.hover\:text-oq-08:hover { color: var(--kol-oq-08); }
|
|
193
|
+
.hover\:text-oq-12:hover { color: var(--kol-oq-12); }
|
|
194
|
+
.hover\:text-oq-16:hover { color: var(--kol-oq-16); }
|
|
195
|
+
.hover\:text-oq-24:hover { color: var(--kol-oq-24); }
|
|
196
|
+
.hover\:text-oq-32:hover { color: var(--kol-oq-32); }
|
|
197
|
+
.hover\:text-oq-40:hover { color: var(--kol-oq-40); }
|
|
198
|
+
.hover\:text-oq-48:hover { color: var(--kol-oq-48); }
|
|
199
|
+
.hover\:text-oq-64:hover { color: var(--kol-oq-64); }
|
|
200
|
+
.hover\:text-oq-72:hover { color: var(--kol-oq-72); }
|
|
201
|
+
.hover\:text-oq-80:hover { color: var(--kol-oq-80); }
|
|
202
|
+
.hover\:text-oq-88:hover { color: var(--kol-oq-88); }
|
|
203
|
+
.hover\:text-oq-96:hover { color: var(--kol-oq-96); }
|
|
204
|
+
|
|
205
|
+
.hover\:text-oq-inverse-01:hover { color: var(--kol-oq-inverse-01); }
|
|
206
|
+
.hover\:text-oq-inverse-02:hover { color: var(--kol-oq-inverse-02); }
|
|
207
|
+
.hover\:text-oq-inverse-04:hover { color: var(--kol-oq-inverse-04); }
|
|
208
|
+
.hover\:text-oq-inverse-08:hover { color: var(--kol-oq-inverse-08); }
|
|
209
|
+
.hover\:text-oq-inverse-12:hover { color: var(--kol-oq-inverse-12); }
|
|
210
|
+
.hover\:text-oq-inverse-16:hover { color: var(--kol-oq-inverse-16); }
|
|
211
|
+
.hover\:text-oq-inverse-24:hover { color: var(--kol-oq-inverse-24); }
|
|
212
|
+
.hover\:text-oq-inverse-32:hover { color: var(--kol-oq-inverse-32); }
|
|
213
|
+
.hover\:text-oq-inverse-40:hover { color: var(--kol-oq-inverse-40); }
|
|
214
|
+
.hover\:text-oq-inverse-48:hover { color: var(--kol-oq-inverse-48); }
|
|
215
|
+
.hover\:text-oq-inverse-64:hover { color: var(--kol-oq-inverse-64); }
|
|
216
|
+
.hover\:text-oq-inverse-72:hover { color: var(--kol-oq-inverse-72); }
|
|
217
|
+
.hover\:text-oq-inverse-80:hover { color: var(--kol-oq-inverse-80); }
|
|
218
|
+
.hover\:text-oq-inverse-88:hover { color: var(--kol-oq-inverse-88); }
|
|
219
|
+
.hover\:text-oq-inverse-96:hover { color: var(--kol-oq-inverse-96); }
|
|
220
|
+
|
|
185
221
|
/* ==============================================================================
|
|
186
222
|
* CLASSES — Border opacity (standard + inverse)
|
|
187
223
|
* ============================================================================== */
|
package/kol-type-roles.css
CHANGED
|
@@ -82,6 +82,10 @@
|
|
|
82
82
|
letter-spacing: 0.04em;
|
|
83
83
|
color: var(--kol-fg-default);
|
|
84
84
|
max-width: var(--kol-content-measure);
|
|
85
|
+
/* a run with no space in it — `A`/`B`/`C` code chips, a long path — breaks instead of pushing
|
|
86
|
+
* the page sideways (the phone pass, 2026-10-02: 83 pages scrolled on x). A last resort only:
|
|
87
|
+
* a line that fits is left alone. */
|
|
88
|
+
overflow-wrap: anywhere;
|
|
85
89
|
}
|
|
86
90
|
|
|
87
91
|
/* ── Content furniture — twinned with prose (one rule, two entry points) ── */
|