Cover the sticky heading, and lead the docs shells with the mark

585a029cb9ae · AtlantisPleb · · parent e533d85a04f6

Cover the sticky heading, and lead the docs shells with the mark

A sticky element sticks to the scrollport's edge, and the nav carries block
padding, so rows scrolling past stayed visible in the few pixels above a
section heading and read as bleeding through it. The heading's own fill now
carries up over that band, and past its inline margins, so nothing can show
above or beside it.

The docs and component shells lead with the favicon instead of the word.
"OpenAgents | Docs" said the brand twice — the mark and the section name are
the two useful halves, and the wordmark between them was the third.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0149rBWy7br1Z7bbz9NrQhEr
Co-Authored-By
Claude Opus 5 (1M context) <noreply@anthropic.com>

Deploy story

What this commit did to the running system — joined from the forge receipt chain, the part a commit page elsewhere cannot show.

Not deployed through the forge lane

No push, promotion, build, or deploy receipt references this commit (receipts are scanned over a bounded recent window). Changes shipped by full node replacement carry their proof in the release gate receipt instead.

Changed files

  • modified assets/css/app.css
  • modified assets/css/openagents.css
  • modified lib/openagents_web/components/layouts.ex

Diff

3 files changed, +28 -1

assets/css/app.css modified +14

@@ -421,6 +421,20 @@

421 421
  line-height: 1.25rem;
422 422
}
423 423
424
/* A sticky element sticks to the scrollport's edge, and the nav has block
425
   padding, so rows scrolling past stayed visible in the few pixels above the
426
   heading -- they appeared to bleed through it. This carries the heading's own
427
   fill up over that band. Inline it reaches past the heading's margins as
428
   well, so a row cannot show beside it either. */
429
.sidebar-section-label::before {
430
  content: "";
431
  position: absolute;
432
  inset-inline: -12px;
433
  bottom: 100%;
434
  height: 12px;
435
  background: inherit;
436
}
437
424 438
/* Docs layout */
425 439
426 440
.docs-layout {
assets/css/openagents.css modified +11

@@ -5168,3 +5168,14 @@

5168 5168
    font-variant-numeric: tabular-nums;
5169 5169
  }
5170 5170
}
5171
5172
@layer components {
5173
  /* The mark, not the word. The wordmark repeated the page title beside it
5174
     ("OpenAgents | Docs") and the section name is the useful half. */
5175
  .sidebar-brand__mark img {
5176
    display: block;
5177
    width: 20px;
5178
    height: 20px;
5179
    border-radius: 4px;
5180
  }
5181
}
lib/openagents_web/components/layouts.ex modified +3 -1

@@ -184,7 +184,9 @@ defmodule OpenAgentsWeb.Layouts do

184 184
  def sidebar_brand(assigns) do
185 185
    ~H"""
186 186
    <header class="sidebar-brand">
187
      <.link navigate={~p"/"} class="sidebar-brand__mark">OpenAgents</.link>
187
      <.link navigate={~p"/"} class="sidebar-brand__mark" aria-label="OpenAgents home">
188
        <img src={~p"/favicon-32x32.png"} alt="" width="20" height="20" />
189
      </.link>
188 190
      <span :if={@title} class="sidebar-brand__divider" aria-hidden="true"></span>
189 191
      <.link :if={@title} patch={@path} class="sidebar-brand__title">{@title}</.link>
190 192
    </header>

This page updates live while a promote is in flight · changelog