Menubar handle wraps the ProdDash logo as a translucent pill

The show/hide handle is now the logo itself: a translucent accent pill
wrapped around "ProdDash" at the left of the bar, centred on the text, with
"Dash" in the background colour so it reads as a cutout inside the green.
The pill is far less opaque than the old solid tab (38% idle, brighter on
hover). When the bar hides, the text folds away and the pill shrinks to a
slim lip at the top-left edge, exactly where the old tab sat. An invisible
in-flow twin of the logo keeps the bar's layout unchanged.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RNYUv9EyrGSFmCnmH7WYKH
This commit is contained in:
Claude
2026-09-10 19:16:53 +00:00
parent 22aa2f0e6d
commit 35ef54e248
3 changed files with 50 additions and 27 deletions
+7 -5
View File
@@ -140,8 +140,8 @@ below. Nothing is installed without someone clicking.
sit flush — when two share a vertical edge, hover the seam and the same sit flush — when two share a vertical edge, hover the seam and the same
kind of pill appears; drag it to trade width (macOS split-view style). kind of pill appears; drag it to trade width (macOS split-view style).
- **Fullscreen** (the ⛶ button) is a viewing mode: the menu bar hides (its - **Fullscreen** (the ⛶ button) is a viewing mode: the menu bar hides (its
green tab brings it back, minus the Admin button), the occupied columns green lip at the top-left brings it back, minus the Admin button), the
stretch to the full width, and every column runs to the occupied columns stretch to the full width, and every column runs to the
bottom of the screen — the last tile in each column is stretched to end bottom of the screen — the last tile in each column is stretched to end
there. A short tile like the clock is never stretched into a ribbon: under there. A short tile like the clock is never stretched into a ribbon: under
another tile it slides to the bottom edge and the tile above grows into the another tile it slides to the bottom edge and the tile above grows into the
@@ -150,9 +150,11 @@ below. Nothing is installed without someone clicking.
its normal row height and scrolls. its normal row height and scrolls.
- A tile's actions (menus, text size, clear…) live in its **title bar**; - A tile's actions (menus, text size, clear…) live in its **title bar**;
the small **notch** on the bar's bottom edge hides/shows the whole bar the small **notch** on the bar's bottom edge hides/shows the whole bar
for a clean wall-display look. The menu bar has the same kind of tab — for a clean wall-display look. The menu bar's handle is the **ProdDash
the green one under the ProdDash name, kept at the left so it never sits name itself**, wrapped in a translucent green pill at the left — click it
on top of a tile's own tab. to hide the bar; the slim green lip it leaves at the top-left edge brings
the bar back. It stays at the left so it never sits on top of a tile's
own tab.
- The **gear** on a tile holds per-tile settings (filters, text size, - The **gear** on a tile holds per-tile settings (filters, text size,
display options) — these belong to this browser's layout, not the server. display options) — these belong to this browser's layout, not the server.
- The **grid icon** — save the current arrangement to the server under a - The **grid icon** — save the current arrangement to the server under a
+3 -2
View File
@@ -15,7 +15,8 @@
</head> </head>
<body> <body>
<header id="topbar"> <header id="topbar">
<span id="brand">Prod<span class="accent">Dash</span></span> <!-- invisible twin of the logo: holds its place in the bar; the real logo is the handle below -->
<span id="brand" class="brand-spacer" aria-hidden="true">Prod<span class="accent">Dash</span></span>
<span class="spacer"></span> <span class="spacer"></span>
@@ -50,7 +51,7 @@
</a> </a>
</header> </header>
<button id="topbar-notch" title="Hide / show the menu bar" aria-label="Hide or show the menu bar"></button> <button id="topbar-notch" title="Hide / show the menu bar" aria-label="Hide or show the menu bar">Prod<span class="accent">Dash</span></button>
<main id="gridwrap"> <main id="gridwrap">
<div id="grid"> <div id="grid">
+40 -20
View File
@@ -54,36 +54,56 @@ body.menu-hidden #topbar {
overflow: hidden; overflow: hidden;
} }
/* The menubar's own show/hide tab. It sits under the ProdDash brand at the /* The menubar's show/hide handle IS the logo: a translucent accent pill
left — not screen-centre, where a tile's own (centred) tab would land wrapped around "ProdDash" at the left of the bar, "Dash" cut out in the
right under it once both bars are hidden — and wears the accent colour background colour. It sits at the left — never screen-centre, where a
so it never reads as a tile tab. */ tile's own (centred) tab lands once both bars are hidden. When the bar
hides, the pill shrinks to a slim lip at the very top edge, clear of a
top-row tile's status dot and title. */
.brand-spacer { visibility: hidden; }
#topbar-notch { #topbar-notch {
position: fixed; position: fixed;
/* straddles the bar's bottom edge — mostly on the bar, a short lip below /* vertically centred in the 46px bar: (46 - 24) / 2 = 11px from its top */
it — so it never covers a top-row tile's status dot or title */ top: calc(var(--topbar-h, 46px) - 35px);
top: calc(var(--topbar-h, 46px) - 8px); left: 4px; /* the logo text starts at the bar's 12px padding; the pill adds 8px each side */
left: 12px; height: 24px;
width: 54px; min-width: 60px;
height: 14px; padding: 0 8px;
padding: 0; font: inherit;
background: var(--accent); font-weight: 800;
font-size: 15px;
letter-spacing: 0.02em;
line-height: 24px;
color: var(--text);
background: color-mix(in srgb, var(--accent) 38%, transparent);
border: none; border: none;
border-radius: 0 0 10px 10px; border-radius: 12px;
cursor: pointer; cursor: pointer;
z-index: 60; z-index: 60;
opacity: 0.55; transition: top 0.22s ease, height 0.22s ease, line-height 0.22s ease, font-size 0.22s ease,
transition: opacity 0.15s ease, top 0.22s ease, height 0.22s ease; border-radius 0.22s ease, background 0.15s ease;
} }
#topbar-notch:hover { opacity: 1; } #topbar-notch .accent { color: var(--bg); } /* the cutout */
/* bar hidden: a slim tab at the very top edge, clear of a top-row tile's dot and title */ #topbar-notch:hover { background: color-mix(in srgb, var(--accent) 62%, transparent); }
body.menu-hidden #topbar-notch { top: 0; height: 10px; } /* bar hidden: the text folds away and the pill becomes a lip at the top edge */
#topbar-notch::after { body.menu-hidden #topbar-notch {
top: 0;
height: 10px;
line-height: 10px;
font-size: 0;
border-radius: 0 0 10px 10px;
background: color-mix(in srgb, var(--accent) 55%, transparent);
}
body.menu-hidden #topbar-notch:hover { background: var(--accent); }
body.menu-hidden #topbar-notch::after {
content: ""; content: "";
display: block; display: block;
width: 20px; width: 20px;
height: 3px; height: 3px;
margin: 4px auto 0; margin: 0 auto;
position: relative;
top: 3px;
border-radius: 999px; border-radius: 999px;
background: var(--bg); background: var(--bg);
} }