Changeset 7cf8144 in Klonkt for src/assets/css/style.css


Ignore:
Timestamp:
08/18/2026 06:47:58 PM (3 weeks ago)
Author:
Bart <bart@…>
Branches:
main
Children:
9da8027
Parents:
2d2fd8c
git-author:
Bart <bart@…> (08/18/2026 05:28:31 AM)
git-committer:
Bart <bart@…> (08/18/2026 06:47:58 PM)
Message:

Lezen is een weergave van de feed, geen eigen plek

/read was een route met een eigen shell: eigen pagina, eigen chrome-gedrag, en
op een site zonder berichten een 404 -- een dode knop in de switcher. Nu is het
wat het altijd had moeten zijn: een derde waarde van body[data-feed-view], naast
timeline en grid. Dezelfde berichten, andere vorm.

De feed stuurt ze alledrie mee en CSS kiest, precies zoals timeline/grid dat al
deden. Het lijf loopt door PostAccessService, dus een gesloten poort levert ook
hier geen tekst op. "Meer laden" vult de leesstroom OOB mee aan, net als de
tegels.

DE LEGE STAAT zit in de :has(.feed-reader) op de verbergregel. Zonder berichten
rendert de leessectie niet, en dan blijft de tijdlijn staan -- want daar staat
"nog niets geschreven" met de knop om te beginnen. Zonder die voorwaarde was
Lezen op een verse site een wit scherm. Feeds zonder leessectie (cirkel,
archief) houden om dezelfde reden gewoon hun tijdlijn.

Wat weg kon, en dat is de winst:

  • de route, pages/read.ejs, en 'on-read' als page-class;
  • mod/read.js van 222 naar 51 regels. Het ophalen van buren, het corrigeren van de scrollpositie bij invoegen en het onderbreken van het snappen zijn niet opgelost maar OVERBODIG: de feed levert de berichten al. Wat blijft is de tik.
  • read.end en read.load_error: het script plaatst geen zinnen meer.

De balken schuiven niet meer weg. Dat was mooi op een eigen scherm, maar hier
zou het de switcher verbergen waarmee je net koos -- en dan kun je niet terug.

MOD_V naar 4, style.css naar v70.

Co-Authored-By: Claude Opus 5 <claude@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/assets/css/style.css

    r2d2fd8c r7cf8144  
    23532353    padding: .35rem 0;
    23542354}
    2355 .view-switch-btn,
    2356 .view-switch-link {
     2355.view-switch-btn {
    23572356    display: inline-flex;
    23582357    align-items: center;
     
    23692368    transition: all .15s;
    23702369}
    2371 .view-switch-btn:hover,
    2372 .view-switch-link:hover {
     2370.view-switch-btn:hover {
    23732371    color: var(--ink);
    23742372    border-color: var(--ink-muted);
     
    24002398body.on-home[data-feed-view="grid"]    .feed-grid,
    24012399body.on-cirkel[data-feed-view="grid"]  .feed-grid { display: block; }
     2400
     2401/* -------- LEESWEERGAVE (data-feed-view="reader") --------
     2402   Dezelfde berichten als de tijdlijn, maar heel: één per scherm, grenzen door
     2403   scroll-snapping. GEEN eigen route en geen eigen shell -- de balken blijven
     2404   staan, want je bent nog op de feed en moet terug kunnen schakelen.
     2405   Pagina's zonder .feed-reader (cirkel, archief, post) negeren de keuze en
     2406   houden hun tijdlijn: er is hieronder simpelweg geen regel die die daar
     2407   verbergt. Zo is Lezen nooit een leeg scherm. */
     2408.feed-reader { display: none; }
     2409body.on-home[data-feed-view="reader"] .feed-reader { display: block; }
     2410/* :has(.feed-reader) is hier de LEGE STAAT, niet een truc. Zonder berichten
     2411   rendert de leessectie niet, en dan mag de tijdlijn niet verborgen worden --
     2412   want dáár staat "nog niets geschreven" met de knop om te beginnen. Zonder deze
     2413   voorwaarde is Lezen op een verse site een wit scherm. Hetzelfde geldt voor
     2414   feeds die (nog) geen leessectie hebben. */
     2415body.on-home[data-feed-view="reader"]:has(.feed-reader) .feed-timeline,
     2416body.on-home[data-feed-view="reader"]:has(.feed-reader) .feed-grid,
     2417body.on-home[data-feed-view="reader"]:has(.feed-reader) .pagination,
     2418body.on-home[data-feed-view="reader"]:has(.feed-reader) .related-posts,
     2419body.on-home[data-feed-view="reader"]:has(.feed-reader) .article-footer {
     2420    display: none !important;
     2421}
     2422
     2423/* Snappen doet de SCROLLCONTAINER, en dat is het document -- niet .read-stream,
     2424   die heeft overflow: visible en scrollt zelf niet. Proximity en geen mandatory:
     2425   in een bericht dat langer is dan het scherm moet je rustig door kunnen lezen. */
     2426html:has(body.on-home[data-feed-view="reader"]) { scroll-snap-type: y proximity; }
     2427/* En de browser niet óók laten compenseren als Load more er berichten bij zet:
     2428   Chrome en Firefox schuiven bij invoegen zelf mee (scroll anchoring), en dat
     2429   vecht met het snappen. */
     2430html:has(body.on-home[data-feed-view="reader"]),
     2431.feed-reader .read-stream { overflow-anchor: none; }
     2432
     2433.feed-reader .read-post {
     2434    scroll-snap-align: start;
     2435    scroll-snap-stop: normal;
     2436    min-height: 100svh;
     2437    max-width: 46rem;
     2438    margin: 0 auto;
     2439    /* De onderrand loopt achter de vaste tabbalk door; deze padding houdt de
     2440       TEKST erboven. */
     2441    padding: 2rem 1.2rem 4rem;
     2442    box-sizing: border-box;
     2443}
     2444/* Een lijn tussen twee berichten: zonder grens is een stroom een lange brij. */
     2445.feed-reader .read-post + .read-post { border-top: 1px solid color-mix(in srgb, currentColor 12%, transparent); }
     2446
     2447.feed-reader .read-head { padding-bottom: .5rem; }
     2448.feed-reader .read-title { font-size: clamp(1.6rem, 4vw, 2.4rem); line-height: 1.15; margin: 0 0 .3rem; }
     2449/* De titel is een link, maar mag er niet als een link uitzien: dit is een
     2450   leesscherm, geen index. */
     2451.feed-reader .read-title a { color: inherit; text-decoration: none; }
     2452.feed-reader .read-title a:hover,
     2453.feed-reader .read-title a:focus-visible { text-decoration: underline; }
     2454.feed-reader .read-when { font-size: .85rem; opacity: .6; margin: 0; }
     2455
     2456.feed-reader .read-foot { margin-top: 2rem; }
     2457.feed-reader .read-open {
     2458    display: inline-block; font-size: .9rem; opacity: .75;
     2459    text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 1px;
     2460}
     2461.feed-reader .read-open:hover,
     2462.feed-reader .read-open:focus-visible { opacity: 1; }
     2463
     2464@media (prefers-reduced-motion: reduce) {
     2465    html:has(body.on-home[data-feed-view="reader"]) { scroll-snap-type: none; }
     2466}
    24022467
    24032468/* -------- GRID VIEW TILES (Instagram-stijl) -------- */
Note: See TracChangeset for help on using the changeset viewer.