@softize/opus 9.0.6 → 9.0.7
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 +8 -0
- package/package.json +1 -1
- package/src/ui/components/primitives/chat.tsx +1 -1
- package/src/ui/theme.css +37 -0
package/CHANGELOG.md
CHANGED
|
@@ -11,6 +11,14 @@ 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.7 — 2026-08-18
|
|
15
|
+
|
|
16
|
+
**Scrollbars nativas podem compartilhar um acabamento discreto e previsível.** A classe
|
|
17
|
+
`scrollbar-subtle` veste um scroller ou todo um shell: o indicador fino aparece ao passar
|
|
18
|
+
o ponteiro ou navegar com teclado pela região, sem depender da preferência global de
|
|
19
|
+
barras do macOS e sem adicionar listeners ao caminho de scroll. O `Chat` já adota o novo
|
|
20
|
+
acabamento.
|
|
21
|
+
|
|
14
22
|
## 9.0.6 — 2026-08-18
|
|
15
23
|
|
|
16
24
|
**As falas do usuário no `Chat` voltam ao fluxo normal da conversa.** Elas usam fundo
|
package/package.json
CHANGED
|
@@ -133,7 +133,7 @@ const ChatTranscript = React.memo(function ChatTranscript({
|
|
|
133
133
|
<div
|
|
134
134
|
ref={scrollRef}
|
|
135
135
|
data-slot="chat-scroll"
|
|
136
|
-
className="flex min-h-0 flex-1 flex-col gap-3 overflow-y-auto p-4"
|
|
136
|
+
className="scrollbar-subtle flex min-h-0 flex-1 flex-col gap-3 overflow-y-auto p-4"
|
|
137
137
|
>
|
|
138
138
|
{items.length === 0 && !indicatorVisible && greeting !== undefined && (
|
|
139
139
|
<div data-slot="chat-empty" className="m-auto max-w-[280px] text-center text-muted-foreground">
|
package/src/ui/theme.css
CHANGED
|
@@ -180,6 +180,43 @@
|
|
|
180
180
|
}
|
|
181
181
|
}
|
|
182
182
|
|
|
183
|
+
/* Escopo de scrollbar discreta. Pode vestir o próprio scroller (como o Chat) ou um shell:
|
|
184
|
+
* nesse caso todos os scrolls nativos descendentes compartilham o mesmo acabamento. Isso
|
|
185
|
+
* elimina a variação do macOS entre raiz, elementos aninhados, mouse e trackpad sem trocar
|
|
186
|
+
* o mecanismo nativo nem adicionar trabalho em JS. Firefox usa scrollbar-color;
|
|
187
|
+
* Chromium/Safari usam os pseudos abaixo. Iframes continuam sendo documentos isolados. */
|
|
188
|
+
@media (hover: hover) {
|
|
189
|
+
.scrollbar-subtle,
|
|
190
|
+
.scrollbar-subtle * {
|
|
191
|
+
scrollbar-color: transparent transparent;
|
|
192
|
+
scrollbar-width: thin;
|
|
193
|
+
}
|
|
194
|
+
.scrollbar-subtle:is(:hover, :focus, :focus-within),
|
|
195
|
+
.scrollbar-subtle *:is(:hover, :focus, :focus-within) {
|
|
196
|
+
scrollbar-color: color-mix(in srgb, var(--muted-foreground) 35%, transparent) transparent;
|
|
197
|
+
}
|
|
198
|
+
.scrollbar-subtle::-webkit-scrollbar,
|
|
199
|
+
.scrollbar-subtle *::-webkit-scrollbar {
|
|
200
|
+
width: 0.5rem;
|
|
201
|
+
height: 0.5rem;
|
|
202
|
+
}
|
|
203
|
+
.scrollbar-subtle::-webkit-scrollbar-track,
|
|
204
|
+
.scrollbar-subtle *::-webkit-scrollbar-track {
|
|
205
|
+
background: transparent;
|
|
206
|
+
}
|
|
207
|
+
.scrollbar-subtle::-webkit-scrollbar-thumb,
|
|
208
|
+
.scrollbar-subtle *::-webkit-scrollbar-thumb {
|
|
209
|
+
border: 2px solid transparent;
|
|
210
|
+
border-radius: 9999px;
|
|
211
|
+
background-color: transparent;
|
|
212
|
+
background-clip: content-box;
|
|
213
|
+
}
|
|
214
|
+
.scrollbar-subtle:is(:hover, :focus, :focus-within)::-webkit-scrollbar-thumb,
|
|
215
|
+
.scrollbar-subtle *: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. */
|