feat(webui): polish agent output and app discovery

This commit is contained in:
Xubin Ren
2026-07-22 22:42:31 +08:00
parent b189a37648
commit aa8387fb4d
87 changed files with 6225 additions and 2379 deletions
+54 -1
View File
@@ -2,6 +2,13 @@
@tailwind components;
@tailwind utilities;
@supports (content-visibility: auto) {
.apps-catalog-row {
content-visibility: auto;
contain-intrinsic-size: auto 4.25rem;
}
}
/* Design tokens — HSL form, sourced from shadcn/ui's "neutral" palette. */
@layer base {
:root {
@@ -196,7 +203,7 @@
box-shadow: inset -9px 0 6px -1px rgb(0 0 0 / 0.02);
}
/* Markdown body styles, ported from agent-chat-ui's markdown-styles.css. */
/* Keep the outer document rhythm clean at message boundaries. */
.markdown-content > :first-child {
@apply mt-0;
}
@@ -211,6 +218,7 @@
--tw-prose-headings: hsl(var(--foreground));
--tw-prose-bold: hsl(var(--foreground));
--tw-prose-lead: hsl(var(--foreground));
line-height: var(--cjk-line-height);
}
.markdown-content .contains-task-list {
@@ -221,6 +229,33 @@
@apply list-none pl-0;
}
/* Show a caret only while the full markdown renderer is still loading. */
@keyframes streaming-caret-blink {
0%, 45% { opacity: 1; }
55%, 100% { opacity: 0; }
}
.streaming-text-fallback::after {
content: "";
display: inline-block;
width: 1.5px;
height: 1em;
margin-left: 3px;
vertical-align: -0.12em;
border-radius: 1px;
background: hsl(var(--foreground) / 0.8);
animation: streaming-caret-blink 1s step-end infinite;
}
@media (prefers-reduced-motion: reduce) {
[data-sd-animate] {
animation: none !important;
}
.streaming-text-fallback::after {
animation: none;
}
}
/* CJK-friendly line-height: prose paragraphs default to 1.625 which is
tight for Chinese/Japanese/Korean characters. Bump to 1.8 for better
readability when the browser detects a CJK primary font. */
@@ -294,6 +329,10 @@
animation: none;
content: "";
}
.markdown-content-streaming > :last-child::after,
.streaming-text-fallback::after {
animation: none;
}
}
@keyframes composer-status-strip-enter {
@@ -571,6 +610,13 @@
container-type: inline-size;
}
@supports (content-visibility: auto) {
.thread-render-unit {
content-visibility: auto;
contain-intrinsic-size: auto 12rem;
}
}
.thread-prompt-rail {
display: none;
left: 1.75rem;
@@ -588,3 +634,10 @@
}
}
}
@media (pointer: coarse) {
.touch-target {
min-width: 2.75rem;
min-height: 2.75rem;
}
}