From 31557f09e5752a9136b097cd16ec9a0717baf50d Mon Sep 17 00:00:00 2001 From: Claude Fable 5 Date: Thu, 16 Jul 2026 12:02:40 +0200 Subject: [PATCH] Sidebar: pin the action icon row to the visible bottom (#129) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit .sidebar is itself the scroll container, so the footer's margin-top: auto only pinned the icon row to the end of the CONTENT — behind the fold on long page lists. The row is now position: sticky with negative bottom/side margins undoing the sidebar padding, a background, and a top border, so the list scrolls away beneath it and the four actions stay visible at any list length. The import progress list keeps floating above the row (absolute within the sticky footer). Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01Fb2VzvcoBPHkjh8bZ6PzQn --- apps/web/src/styles/base.css | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/apps/web/src/styles/base.css b/apps/web/src/styles/base.css index d1de605..e7e550f 100644 --- a/apps/web/src/styles/base.css +++ b/apps/web/src/styles/base.css @@ -1759,8 +1759,17 @@ button { } .sidebar__footer { - margin-top: auto; - padding-top: var(--space-4); + /* #129: .sidebar is the scroll container, so margin-top: auto alone only + pins the row to the END of the content — behind the fold on long page + lists. Sticky keeps it visible; the negative bottom/side margins undo + the sidebar padding so the bar sits flush and covers the scrolling + list across the full width. */ + position: sticky; + bottom: calc(-1 * var(--space-4)); + margin: auto calc(-1 * var(--space-4)) calc(-1 * var(--space-4)); + padding: var(--space-2) var(--space-4); + background: var(--color-bg-subtle); + border-top: 1px solid var(--color-border); display: flex; align-items: center; gap: var(--space-1);