hyperhive/frontend/packages/shared/src/base.css
iris 6a01850096 swarm-ui: fix inconsistent header icons + body edge gap
LinksMenu and SettingsMenu triggers mixed a full-colour emoji (link)
with a plain text glyph (gear) - different rendering paths mean
different, unfixable sizes/styles. Replace both with matching inline
SVG icons (feather/lucide gear + link glyphs), same viewBox/stroke/
size, so the two buttons finally share one rendering path.

Also: shared base.css never zeroed the default UA body margin, which
showed as a bg-coloured strip around the whole viewport edge on any
full-bleed header (swarm-uis .shell-header among them). Zeroed it in
the shared file so every consumer (dashboard, agent UI, swarm-ui) gets
the fix, not just swarm-ui.

Screenshot-verified at both desktop and phone widths.
2026-08-24 18:38:12 +02:00

36 lines
1.7 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 {
/* The default UA stylesheet gives `body` an 8px margin — every page
using this shared base had it as a `--bg`-coloured strip visible
around the whole viewport edge, e.g. left/right of any full-bleed
header (swarm-ui's `.shell-header`, `--bg-elev`, doesn't actually
reach the real viewport edge without this). Reported live as
"small bg colored gap left and right of the header" (reported live
by mara).
Zeroed here since every page linking this file wants full-bleed
chrome, not a browser default nobody asked for. */
margin: 0;
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); } }