@fikar-ai/design 1.6.0 → 1.6.1

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/README.md CHANGED
@@ -149,7 +149,9 @@ Rules, in force on every surface:
149
149
  - From 1024px the sidebar shows open at 248px. It can collapse to an icon rail at 72px.
150
150
  - The account cluster (launcher, theme control, avatar) sits at the top right of the top bar on every surface.
151
151
  - The collapse control (`.shell-collapse`) is the last child of the sidebar, so it sits at the bottom in
152
- the same position open or collapsed. It is hidden below 1024px.
152
+ the same position open or collapsed. It is an icon-only button with a static panel icon: left-aligned in
153
+ line with the nav icons when open, centred in the rail when collapsed. Its `<span class="nav-label">Collapse</span>`
154
+ is clipped (not removed) in both states and stays as the accessible name. It is hidden below 1024px.
153
155
  - The choice is stored in `localStorage` under `fikar.shell.collapsed`: the value `"1"` means collapsed,
154
156
  `"0"` means open, and an absent key is read as open. Since 0.8.0 both `shell.js` and `@fikar-ai/design-react` write `"0"` on
155
157
  expand; an older surface that removes the key is still read correctly. Storage is per origin, so the choice does not follow a person from
package/components.css CHANGED
@@ -187,20 +187,23 @@ nav.side { display: flex; flex-direction: column; gap: 2px; }
187
187
  renders as before and the phone drawer never sees the state. Labels are
188
188
  clipped, not display:none, so they stay in the accessibility tree and give
189
189
  the host's tooltip its text. The collapse control is the last child of the
190
- sidebar, so it holds the same place open or collapsed. ── */
190
+ sidebar, so it holds the same place open or collapsed. It is an icon-only 38px
191
+ square (panel icon, static): its "Collapse" label is clipped in both states and
192
+ stays as the accessible name. Open, it sits left so its icon lines up with the nav
193
+ icons (14px sidebar padding + 10px item padding); collapsed, it is centred in the rail. ── */
191
194
  .shell-collapse { display: none; }
192
195
  @media (min-width: 1024px) {
193
- .shell-collapse { display: flex; align-items: center; gap: 11px; width: 100%; margin-top: 8px; padding: 8px 10px; border: 0; border-radius: var(--r-sm);
194
- background: none; color: hsl(var(--muted-foreground)); font-family: inherit; font-size: 14px; font-weight: 500; text-align: left; cursor: pointer;
196
+ .shell-collapse { position: relative; display: flex; align-items: center; justify-content: center; align-self: flex-start; width: 38px; height: 38px; margin-top: 8px; padding: 0; border: 0; border-radius: var(--r-sm);
197
+ background: none; color: hsl(var(--muted-foreground)); font-family: inherit; font-size: 14px; font-weight: 500; cursor: pointer;
195
198
  transition: background-color var(--fast) var(--ease), color var(--fast) var(--ease); }
196
199
  .shell-collapse:hover { background: hsl(var(--muted)); color: hsl(var(--foreground)); }
197
200
  .shell-collapse svg { width: 18px; height: 18px; flex: 0 0 auto; }
198
201
  .shell.is-collapsed { grid-template-columns: 72px 1fr; }
199
- .shell.is-collapsed .nav-item, .shell.is-collapsed .shell-collapse { position: relative; justify-content: center; padding-left: 0; padding-right: 0; }
200
- .shell.is-collapsed .nav-label, .shell.is-collapsed .brand .word, .shell.is-collapsed .side-foot .meta {
202
+ .shell.is-collapsed .nav-item { position: relative; justify-content: center; padding-left: 0; padding-right: 0; }
203
+ .shell.is-collapsed .shell-collapse { align-self: center; }
204
+ .shell-collapse .nav-label, .shell.is-collapsed .nav-label, .shell.is-collapsed .brand .word, .shell.is-collapsed .side-foot .meta {
201
205
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0; }
202
206
  .shell.is-collapsed .sidebar .brand, .shell.is-collapsed .side-foot { justify-content: center; padding-left: 0; padding-right: 0; }
203
- .shell.is-collapsed .shell-collapse svg { transform: rotate(180deg); }
204
207
  }
205
208
 
206
209
  /* ── app shell: theme-aware logo (KAN-322) ──
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fikar-ai/design",
3
- "version": "1.6.0",
3
+ "version": "1.6.1",
4
4
  "description": "Fikar Ink design language — tokens, Tailwind preset + component layer. Single source of truth across all Fikar surfaces.",
5
5
  "type": "module",
6
6
  "license": "UNLICENSED",
@@ -22,7 +22,7 @@
22
22
  <div class="meta"><b>Alex Morgan</b><br><span>Admin</span></div>
23
23
  </div>
24
24
  <button class="shell-collapse" type="button" aria-controls="sidebar" aria-pressed="false" title="Collapse sidebar">
25
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M15 6l-6 6 6 6"/></svg>
25
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="3" y="3" width="18" height="18" rx="2"/><path d="M9 3v18"/></svg>
26
26
  <span class="nav-label">Collapse</span>
27
27
  </button>
28
28
  </aside>
@@ -46,7 +46,7 @@
46
46
  </div>
47
47
  {%- endif %}
48
48
  <button class="shell-collapse" type="button" aria-controls="sidebar" aria-pressed="false" title="Collapse sidebar">
49
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M15 6l-6 6 6 6"/></svg>
49
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="3" y="3" width="18" height="18" rx="2"/><path d="M9 3v18"/></svg>
50
50
  <span class="nav-label">Collapse</span>
51
51
  </button>
52
52
  </aside>