asyncBtn() (shared/src/forms.js) is used by both the dashboard and the per-agent UI, but its .spinner class + @keyframes spin animation only lived in dashboard.css. The agent UI's loading spinner rendered as a static unstyled glyph instead of the animated amber spinner the dashboard gets. Moved the rule to shared/base.css, which both common.css (dashboard) and agent.css already @import.
26 lines
1.2 KiB
CSS
26 lines
1.2 KiB
CSS
/* Base typography shared by the hive-c0re dashboard and the hive-ag3nt
|
|
web UI. The colour variables it references (`--bg`, `--fg`, …) live in
|
|
the standalone `theme.css` (Catppuccin Mocha), linked separately by
|
|
every page BEFORE this file so the `:root` vars resolve — see
|
|
`theme.css` + docs/web-ui/css-vars.md. Per-page stylesheets append on
|
|
top of this and must NOT redeclare the colour variables; `theme.css`
|
|
is the one source of truth. */
|
|
body {
|
|
background: var(--bg);
|
|
color: var(--fg);
|
|
font-family: "JetBrains Mono", "Fira Code", "Cascadia Code", "Source Code Pro", monospace;
|
|
line-height: 1.6;
|
|
}
|
|
|
|
/* Loading spinner used by the shared `asyncBtn()` helper (forms.js) —
|
|
swapped into a button's content while its async action is in flight.
|
|
Lives here (not in a per-page stylesheet) because asyncBtn itself is
|
|
shared between the dashboard and the per-agent UI; keeping the CSS
|
|
with the JS component it styles avoids one consumer rendering an
|
|
unstyled, unanimated glyph. */
|
|
.spinner {
|
|
display: inline-block;
|
|
animation: spin 1s linear infinite;
|
|
color: var(--amber);
|
|
}
|
|
@keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
|