feat: center hints over the timeline + add hubris footer

- KeyboardHints: switch from fixed positioning to absolute, mounted
  inside the main content column. The column is now relative-positioned
  so the hints overlay centers against the timeline area instead of the
  raw viewport (which was off-center because of the sidebars).
- AppFooter: tiny "Built with hubris • <YEAR in roman>" pinned to the
  bottom-right corner of the main column. Year is computed at render
  time and converted via a small toRoman helper.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-08 21:34:18 +02:00
parent ec4a14976d
commit 26424469db
3 changed files with 57 additions and 7 deletions

View File

@@ -6,6 +6,7 @@ import { TopBar } from './components/layout/TopBar'
import { ScanProgress } from './components/ScanProgress'
import { ToastContainer } from './components/ToastContainer'
import { KeyboardHints } from './components/KeyboardHints'
import { AppFooter } from './components/AppFooter'
import { PreviewView } from './components/preview/PreviewView'
import { FilterBar } from './components/filter/FilterBar'
import { DiscardActionBar } from './components/discard/DiscardActionBar'
@@ -66,13 +67,19 @@ function App() {
{/* Main column — filter bar, discard bar, timeline. Lives to the
* right of the left sidebar so the filter row doesn't bleed
* across the sidebar. */}
<div className="flex min-w-0 flex-1 flex-col">
* across the sidebar. relative so the KeyboardHints overlay
* centers against this column, not the viewport. */}
<div className="relative flex min-w-0 flex-1 flex-col">
<FilterBar />
<DiscardActionBar />
<div className="flex-1 overflow-auto">
<Timeline />
</div>
{/* Floating keyboard hints — bottom-center of the main column,
* glassy. Mounted here so it's centered against the timeline,
* not the viewport (which would be offset by the sidebars). */}
<KeyboardHints />
<AppFooter />
</div>
{/* Right Sidebar */}
@@ -85,10 +92,6 @@ function App() {
</div>
</div>
{/* Floating keyboard hints — pinned bottom-center, glassy. Sits
* above the timeline and below the toast layer. */}
<KeyboardHints />
{/* Scan Progress Indicator */}
<ScanProgress />