@softize/opus 9.0.6 → 9.0.8

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/CHANGELOG.md CHANGED
@@ -11,6 +11,22 @@ Depois de qualquer bump, rode os gates (`typecheck` · `test` · `opus check` ·
11
11
  > tinha ficado sem registro nenhum, o que é exatamente o caso que este arquivo existe
12
12
  > pra cobrir.
13
13
 
14
+ ## 9.0.8 — 2026-08-18
15
+
16
+ **Scrollbars nativas passam a usar o acabamento discreto como parte do tema base.** Todo
17
+ documento que importa `@softize/opus/ui/theme.css` recebe o indicador fino, revelado no
18
+ hover ou foco, inclusive em conteúdo renderizado por portal. A classe
19
+ `scrollbar-subtle` deixa de ser necessária; iframes continuam isolados e precisam importar
20
+ o tema no próprio documento.
21
+
22
+ ## 9.0.7 — 2026-08-18
23
+
24
+ **Scrollbars nativas podem compartilhar um acabamento discreto e previsível.** A classe
25
+ `scrollbar-subtle` veste um scroller ou todo um shell: o indicador fino aparece ao passar
26
+ o ponteiro ou navegar com teclado pela região, sem depender da preferência global de
27
+ barras do macOS e sem adicionar listeners ao caminho de scroll. O `Chat` já adota o novo
28
+ acabamento.
29
+
14
30
  ## 9.0.6 — 2026-08-18
15
31
 
16
32
  **As falas do usuário no `Chat` voltam ao fluxo normal da conversa.** Elas usam fundo
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@softize/opus",
3
- "version": "9.0.6",
3
+ "version": "9.0.8",
4
4
  "description": "End-to-end action protocol for TypeScript. Single package with subpath exports (core + adapters).",
5
5
  "license": "MIT",
6
6
  "type": "module",
package/src/ui/theme.css CHANGED
@@ -180,6 +180,43 @@
180
180
  }
181
181
  }
182
182
 
183
+ /* Scrollbar nativa da casa: todo scroller do documento compartilha o mesmo acabamento,
184
+ * inclusive conteúdo renderizado por portal. Isso elimina a variação do macOS entre raiz,
185
+ * elementos aninhados, mouse e trackpad sem trocar o mecanismo nativo nem adicionar trabalho
186
+ * em JS. Firefox usa scrollbar-color; Chromium/Safari usam os pseudos abaixo. Iframes
187
+ * continuam sendo documentos isolados e devem importar o tema no próprio documento. */
188
+ @media (hover: hover) {
189
+ :root,
190
+ :root * {
191
+ scrollbar-color: transparent transparent;
192
+ scrollbar-width: thin;
193
+ }
194
+ :root:is(:hover, :focus, :focus-within),
195
+ :root *:is(:hover, :focus, :focus-within) {
196
+ scrollbar-color: color-mix(in srgb, var(--muted-foreground) 35%, transparent) transparent;
197
+ }
198
+ :root::-webkit-scrollbar,
199
+ :root *::-webkit-scrollbar {
200
+ width: 0.5rem;
201
+ height: 0.5rem;
202
+ }
203
+ :root::-webkit-scrollbar-track,
204
+ :root *::-webkit-scrollbar-track {
205
+ background: transparent;
206
+ }
207
+ :root::-webkit-scrollbar-thumb,
208
+ :root *::-webkit-scrollbar-thumb {
209
+ border: 2px solid transparent;
210
+ border-radius: 9999px;
211
+ background-color: transparent;
212
+ background-clip: content-box;
213
+ }
214
+ :root:is(:hover, :focus, :focus-within)::-webkit-scrollbar-thumb,
215
+ :root *:is(:hover, :focus, :focus-within)::-webkit-scrollbar-thumb {
216
+ background-color: color-mix(in srgb, var(--muted-foreground) 35%, transparent);
217
+ }
218
+ }
219
+
183
220
  /* Markdown (componente `prose`) segue os tokens da casa — light/dark sozinho via as vars
184
221
  (que já viram no `.dark`), então dispensa o `prose-invert`. O corpo é muted (como era na
185
222
  versão à mão); headings/bold no foreground; bordas/regras no --border. */