First step of the dashboard-tab consolidation (#1464): a static menu page linking to every top-level surface, so the tab strip can later shed its `→` page-links and the dashboard can graduate Stats/Settings to their own pages. - dashboard/src/home.{html,css,js}: a responsive grid of link tiles (D4SHB04RD, FL0W, L0GS, M4TR1X). Pure portal — no tabbar/SSE. Colours from the shared theme.css, base typography from common.css. The Matrix tile is hidden until home.js confirms `matrix_gui_enabled` (same gating as the dashboard's M4TR1X tab); home.js also fills the swarm/hive identity line. - build.mjs: emit home.{html,css,js}. Served at `/home.html` for now (additive — reachable via the existing ServeDir, links to surfaces at their current routes). Promoting it to `/` (and relocating the dashboard to `/dashboard` + wiring `← home` back-links) is the next step — a route swap that touches hive-c0re's static router, coordinating with damocles. Deliberately decoupled so this page ships standalone without conflicting with the in-flight tabs.js change (#1449/#1451). Part of #1464.
59 lines
1.3 KiB
CSS
59 lines
1.3 KiB
CSS
/* H0M3 — the menu-hub page (#1464). Minimal portal styling: a banner
|
|
+ a responsive grid of link tiles. Colours come from theme.css (the
|
|
shared palette); base typography from common.css. When the shared
|
|
page-chrome component lands (#1464 phase 2 / #1451) the banner + tile
|
|
styling can fold into it. */
|
|
|
|
body.home-shell {
|
|
margin: 0;
|
|
padding: 0 1.5em 2em;
|
|
min-height: 100vh;
|
|
}
|
|
|
|
.home-header {
|
|
text-align: center;
|
|
padding: 1.5em 0 0.5em;
|
|
}
|
|
.home-header .banner {
|
|
font-size: 1.05em;
|
|
}
|
|
|
|
.home-main {
|
|
max-width: 60em;
|
|
margin: 1.5em auto 0;
|
|
}
|
|
|
|
.home-menu {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fit, minmax(16em, 1fr));
|
|
gap: 1em;
|
|
}
|
|
|
|
.home-tile {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 0.35em;
|
|
padding: 1.1em 1.2em;
|
|
border: 1px solid var(--purple-dim);
|
|
border-radius: 6px;
|
|
background: rgba(24, 24, 37, 0.55);
|
|
text-decoration: none;
|
|
color: var(--fg);
|
|
transition: color 0.15s ease, background 0.15s ease, border-color 0.15s ease,
|
|
box-shadow 0.15s ease;
|
|
}
|
|
.home-tile:hover {
|
|
border-color: var(--purple);
|
|
background: rgba(203, 166, 247, 0.06);
|
|
box-shadow: 0 -2px 14px -6px rgba(203, 166, 247, 0.5);
|
|
}
|
|
|
|
.home-tile-label {
|
|
font-weight: bold;
|
|
letter-spacing: 0.08em;
|
|
color: var(--purple);
|
|
}
|
|
.home-tile-desc {
|
|
font-size: 0.85em;
|
|
color: var(--muted);
|
|
}
|