@kolkrabbi/kol-framework 0.10.0 → 0.10.2
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-framework.css +3 -1
- package/package.json +2 -2
- package/src/ThemeToggle.jsx +9 -9
package/kol-framework.css
CHANGED
|
@@ -500,7 +500,9 @@ body {
|
|
|
500
500
|
font-size: 12px;
|
|
501
501
|
font-weight: 500;
|
|
502
502
|
letter-spacing: 0.12em;
|
|
503
|
-
text-transform
|
|
503
|
+
/* text-transform REMOVED 2026-07-30 — casing is a content-layer concern and
|
|
504
|
+
* components never auto-case (standing law). The label is authored as "Exit"
|
|
505
|
+
* at the call site; if a consumer wants EXIT they type EXIT. */
|
|
504
506
|
text-decoration: none;
|
|
505
507
|
cursor: pointer;
|
|
506
508
|
transition: background 200ms ease, border-color 200ms ease;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kolkrabbi/kol-framework",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.2",
|
|
4
4
|
"description": "KOL app shell — sidenav, layout, theme toggle, footer, heroes + brand color layer. SideNav takes nav data as props so the tree stays app-local.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"app-shell"
|
|
28
28
|
],
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@kolkrabbi/kol-component": "0.
|
|
30
|
+
"@kolkrabbi/kol-component": "0.15.1",
|
|
31
31
|
"@kolkrabbi/kol-icons": "0.8.11"
|
|
32
32
|
},
|
|
33
33
|
"peerDependencies": {
|
package/src/ThemeToggle.jsx
CHANGED
|
@@ -138,7 +138,7 @@ export default function ThemeToggle({
|
|
|
138
138
|
/* ── DEPRECATED aliases — old chrome verbatim (0.6.x) ── */
|
|
139
139
|
if (variant === 'icon') {
|
|
140
140
|
return (
|
|
141
|
-
<button {...shared} className={`kol-
|
|
141
|
+
<button {...shared} className={`kol-theme-toggle kol-theme-toggle-none kol-btn-${size} kol-btn-icon ${className}`.trim()}>
|
|
142
142
|
{iconSwap(glyphSolo)}
|
|
143
143
|
</button>
|
|
144
144
|
)
|
|
@@ -146,8 +146,8 @@ export default function ThemeToggle({
|
|
|
146
146
|
if (variant === 'hop' || variant === 'hop-bare') {
|
|
147
147
|
const bare = variant === 'hop-bare'
|
|
148
148
|
const chromeCls = bare
|
|
149
|
-
? 'w-full inline-flex items-center justify-start gap-2 py-1.5 px-6 kol-mono-14 bg-transparent text-emphasis
|
|
150
|
-
: 'kol-
|
|
149
|
+
? 'w-full inline-flex items-center justify-start gap-2 py-1.5 px-6 kol-mono-14 bg-transparent text-emphasis'
|
|
150
|
+
: 'kol-theme-toggle kol-theme-toggle-subtle kol-btn-md kol-mono-14 w-full justify-start gap-2'
|
|
151
151
|
return (
|
|
152
152
|
<button {...shared} className={`${chromeCls} ${className}`.trim()}>
|
|
153
153
|
<span className="inline-flex items-center justify-center shrink-0" aria-hidden="true">
|
|
@@ -165,7 +165,7 @@ export default function ThemeToggle({
|
|
|
165
165
|
|
|
166
166
|
if (variant === 'flush') {
|
|
167
167
|
const glyph = label ? glyphWithText : glyphSolo
|
|
168
|
-
const cls = `
|
|
168
|
+
const cls = `kol-theme-toggle kol-theme-toggle-flush gap-2 ${mono} ${width} ${className}`
|
|
169
169
|
return (
|
|
170
170
|
<button {...shared} className={cls.replace(/\s+/g, ' ').trim()}>
|
|
171
171
|
{!iconRight && iconSwap(glyph)}
|
|
@@ -176,19 +176,19 @@ export default function ThemeToggle({
|
|
|
176
176
|
}
|
|
177
177
|
|
|
178
178
|
/* variant === 'button' (default) — the padded rung. fill is the one bg
|
|
179
|
-
* element: subtle = the grey fill
|
|
180
|
-
*
|
|
181
|
-
const fillCls = fill === 'none' ? 'kol-
|
|
179
|
+
* element: subtle = the grey fill, none = the invisible container. Geometry
|
|
180
|
+
* identical; no hover on either — no variant carries an interactive state. */
|
|
181
|
+
const fillCls = fill === 'none' ? 'kol-theme-toggle-none' : 'kol-theme-toggle-subtle'
|
|
182
182
|
if (!label) {
|
|
183
183
|
// icon-only pins the square box per rung — geometry condition, not a variant
|
|
184
184
|
return (
|
|
185
|
-
<button {...shared} className={`kol-
|
|
185
|
+
<button {...shared} className={`kol-theme-toggle ${fillCls} kol-btn-${size} kol-btn-icon ${width} ${className}`.replace(/\s+/g, ' ').trim()}>
|
|
186
186
|
{iconSwap(glyphSolo)}
|
|
187
187
|
</button>
|
|
188
188
|
)
|
|
189
189
|
}
|
|
190
190
|
return (
|
|
191
|
-
<button {...shared} className={`kol-
|
|
191
|
+
<button {...shared} className={`kol-theme-toggle ${fillCls} kol-btn-${size} ${mono} gap-2 ${width} ${className}`.replace(/\s+/g, ' ').trim()}>
|
|
192
192
|
{!iconRight && iconSwap(glyphWithText)}
|
|
193
193
|
<span className={fullWidth ? 'flex-1 min-w-0 text-left' : ''}>{MODE_LABEL[shown]}</span>
|
|
194
194
|
{iconRight && iconSwap(glyphWithText)}
|