Commit Graph

31 Commits

Author SHA1 Message Date
kgva CMS 4aae68d836 fix: hover drives the main preview again when nothing is locked
the peek column only makes sense as an alternative to disturbing an existing lock — with nothing locked, hover had stopped updating anything at all, leaving whatever was last locked stuck on screen while browsing other rows. now: locked -> hover drives the peek column only; unlocked -> hover drives the main preview directly, same as before locking existed.
2026-08-14 23:15:43 +00:00
kgva CMS 55926a84f2 fix: peek column images now use a fixed 3:2 crop, matching the portfolio-index preview
plans and photos have wildly different natural aspect ratios (a 46x31in A0 detail plan next to a 3:2 photo), so the peek box was jumping size on every hover. now uses the same aspect-ratio:3/2 + object-fit:cover treatment as the portfolio-index preview it already mirrors in position/width — stays a fixed size regardless of what is hovered.
2026-08-11 23:09:17 +00:00
kgva CMS 84ac7ae562 fix: peek image starts at the same top offset as the info text
was flush with the shell lines (top:0); now matches .proj-infos 3.6rem margin-top so both side columns start at the same height.
2026-08-11 22:01:55 +00:00
kgva CMS 37fd39f488 feat: peek column to the left of the file list, mirroring the info text on the right
replaces the last commits attempt (hover updating the main preview directly) with what was actually asked for: the main preview now stays on the locked file, untouched by hover; a separate 18rem-wide column to the left of the file list — same width and spot as .proj-info on the right — shows whichever OTHER image is under the mouse while something is locked, and disappears again once the mouse leaves the list or lands back on the locked row itself.\n\npositioned via plain absolute positioning against .filebrowser (not scroll-tracked — it scrolls together with the list naturally), sitting inside the padding .proj-layout already reserves to keep the file list anchored. only enabled above 1300px, with a safety margin over the ~1168px point where that reserved space stops being wide enough; caught and fixed a bug in the same pass where .proj-peek had no display:none fallback below that breakpoint and would otherwise render as a bare block in-flow.
2026-08-11 19:41:06 +00:00
kgva CMS 0469e9dab5 fix: hover now peeks the preview even while a file is locked; remove the scroll-triggered sticky thumbnail
the scroll-triggered mini-preview from the last commit solved the wrong problem — it never showed in practice (images are generally as tall or taller than the short project texts, so the gap it needed never opened), and wasnt what was actually wanted: the existing left-column preview pane should keep responding to hover even once a file is locked, only reverting to the locked file once the mouse leaves the list. lock now only gates the is-selected styling, the ● locked indicator, and the click-to-navigate semantics on the portfolio index — not what the pane displays.
2026-08-11 19:34:11 +00:00
kgva CMS 113a954b16 feat: sticky locked-image thumbnail while scrolling; two-click preview-then-open on the portfolio index
the locked image now gets a small pinned copy (18rem, same width as the text column) that appears once the real preview scrolls out of view and disappears again once the text runs out — fixed-position + scroll-driven rather than CSS sticky, since the filebrowser box is only ever as tall as its own content, not the much taller text next to it.\n\nalso scoped the existing click-outside-unfreezes-the-lock listener to clicks inside .filebrowser only, since with listings now starting locked, a click to read or select a word in the text would otherwise silently kill the sticky preview.\n\nportfolio index: rows there are real links (href + data-img together), so a single click used to jump straight into the project — the only way to preview a different one first was hovering, which does nothing for touch and is now also blocked while something is locked. first click on a different project now just previews it (like hover used to); a second click on the same row, or clicking the preview image itself, opens it.
2026-08-11 19:12:43 +00:00
kgva CMS 5c5b267a7f feat: portfolio/about listings start locked on their first file
same end state as clicking the first row by hand — hovering other rows no longer steals the preview until you actually click one. clicking a different row still jumps straight to it and relocks there; clicking the locked row again releases it back to hover-browsing. games are excluded (nothing to browse), matched via the game-embed class rather than page context so it stays correct no matter which page a game was launched from.
2026-08-11 19:03:17 +00:00
kgva CMS f318ef9a2f fix: hovering .. no longer clears the preview pane
the .. row has no image/video/text of its own, so the preview fell through to the blank-everything branch — most noticeable on video projects, where the video would stop and vanish. now non-preview rows just leave whatever was last shown in place.
2026-08-11 19:01:07 +00:00
kgva CMS a49603890b feat: add simcity, pacman, tetris as inline retro-game easter eggs
Generalized the doom launcher into launchGame(name) keyed by archive.org identifier; each cds into a fake .<name> folder and runs <name>.sh, same as doom.
2026-08-10 23:03:53 +00:00
kgva CMS d436474719 fix: doom on the home page showed two $ ls blocks (its own + the always-open home menu) 2026-08-10 22:57:17 +00:00
kgva CMS 3c7cc6ae6b feat: doom runs inline as .doom/doom.sh instead of a floating draggable window
cds into a fake .doom folder (breadcrumb + file listing match every other page); .. is a real link back to wherever you typed doom from, so leaving is just normal pjax navigation.
2026-08-10 22:54:15 +00:00
kgva CMS d3f63251eb consolidate: fold openbureau (+ rapport, dossier) into about; drop it as a standalone nav destination
about now lists cv.md, openbureau.md, rapport.md, dossier.md side by side. the standalone /openbureau/ page, its layout, and its home-menu entry are gone; internal links repointed to /about/. also switch the info-panel text to justified (with hyphenation, per earlier request) instead of ragged-right.
2026-08-10 22:50:04 +00:00
kgva CMS 85148623d7 fix: lang-switch hover text was invisible (later rule reset color to dark over a black background) 2026-08-10 22:44:24 +00:00
kgva CMS 8f37bba08b feat: switch mono typeface from Iosevka Curly Slab to plain Iosevka
Self-hosted, subset to exactly the glyphs the site uses (fonttools --unicodes), so the pair is smaller (6.4+6.3KB) than the curly-slab files they replace despite covering en+de plus shell/tree symbols.
2026-08-10 22:35:41 +00:00
kgva CMS 62ec86dab7 fix: keep the home menu at its normal width — only the shell line + lang-switch should stretch 2026-08-10 22:26:10 +00:00
kgva CMS f8a5b0900b remove: studio page and every reference to it (menu, boot log, help/tree/fetch commands, colophon) 2026-08-10 22:26:01 +00:00
kgva CMS f848aac05d feat: widen the shell line / lang-switch site-wide, not just on pages with an info panel 2026-08-10 22:21:34 +00:00
kgva CMS 07f1782354 feat: widen shell line + lang-switch to match info panel width; hyphenated ragged-right for info text 2026-08-10 22:18:35 +00:00
kgva CMS 5ef304b690 fix: pin project file list to the fixed column position, shrink+dim the info panel, drop obsolete lang-switch padding 2026-08-10 22:14:11 +00:00
kgva CMS fb6e87ef24 feat: filebrowser shows only images; info.md moves to a side panel in Libre Baskerville 2026-08-10 22:02:37 +00:00
kgva CMS b807373472 fix: hide the de/en lang-switch on long prompt lines instead of clipping around it 2026-08-10 21:24:13 +00:00
kgva CMS 121273ff54 fix: ghost-text clip also respects the de/en lang-switch at the row end 2026-08-10 21:20:20 +00:00
kgva CMS b37c1a94be fix: prompt line still wraps+overlaps on long ghost text — hard-clip from front in JS 2026-08-10 21:11:30 +00:00
karim ffe4aca72d fix: filebrowser scroll+lang hover+black-flash+shell one-line
- filebrowser: select() only scrollIntoView on keyboard, not hover
- lang-switch: .lang-switch:hover → invert rule (header excluded before)
- black-flash: color-scheme light; dark script sets colorScheme
- shell: flex-wrap nowrap; keepEnd() scrolls on input

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-03 02:00:35 +02:00
karim c46f9a48f7 i18n: bilingual de/en, bundle js from assets via hugo pipes, css refresh
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-30 01:07:04 +02:00
karim 1ede42204b player: white time 2026-06-29 11:58:01 +02:00
karim 3e3d83fe47 custom terminal video player 2026-06-29 11:50:30 +02:00
karim 42f58354e5 selfhost video, drop vimeo 2026-06-29 11:06:24 +02:00
karim b0722fe90a vimeo: privacy click-to-load 2026-06-29 10:05:45 +02:00
karim 76514c20d4 links: invert to black on hover 2026-06-29 09:59:48 +02:00
karim f7643602cb import kgva site 2026-06-29 01:37:03 +02:00