Changeset f3f43df in Klonkt


Ignore:
Timestamp:
06/19/2026 12:35:04 PM (3 months ago)
Author:
roboburr <roboburr@…>
Branches:
main
Children:
e22230e
Parents:
c01f471
Message:

ui: text fields grow with content instead of scrolling internally (no scroll-in-scroll)

  • Global textarea auto-resize in shell.ejs (grows with content, no internal scrollbar; also after htmx swaps).
  • Post editor: inline scroll box removed → the writing field grows with the content. Typing on mobile/tablet always goes fullscreen anyway (only scroll = the page).

Co-Authored-By: Claude <noreply@…>

Files:
3 edited

Legend:

Unmodified
Added
Removed
  • CHANGELOG.md

    rc01f471 rf3f43df  
    4242
    4343### Toegevoegd
     44- Tekstvelden (`<textarea>`) groeien nu site-breed mee met de inhoud i.p.v. intern
     45  te scrollen (scroll-binnen-scroll was verwarrend). Het inline schrijfveld groeit
     46  ook gewoon mee; typen op mobiel/tablet gaat sowieso fullscreen.
    4447- Op **mobiel & tablet** (touch) gebeurt typen voortaan **altijd in volledig scherm**:
    4548  zodra je in het schrijfveld tikt, gaat de editor automatisch fullscreen. Eruit met
  • src/views/pages/post-edit.ejs

    rc01f471 rf3f43df  
    469469}
    470470.pe-editor:focus { outline: none; }
    471 /* Mobiel: het FRAME is de scroll-box. De opmaak-toolbar plakt sticky aan de
    472    bovenkant ervan en de tekst scrollt eronder → de toolbar blijft altijd in beeld
    473    binnen de box, én de caret-scroll (die mobiel Chrome forceert) blijft binnen de
    474    box i.p.v. de hele pagina te laten verspringen. Fullscreen (.pe-fs) is
    475    uitgezonderd: daar scrollt het veld zelf en vult het de pagina. */
    476 @media (max-width: 768px) {
    477   .pe-editor-frame:not(.pe-fs) { max-height: 70vh; overflow-y: auto; }
    478   .pe-editor-frame:not(.pe-fs) .pe-editor { min-height: 240px; max-height: none; overflow: visible; }
    479 }
     471/* Inline (niet-fullscreen) groeit het schrijfveld gewoon mee met de inhoud — geen
     472   interne scroll-box (scroll-binnen-scroll is verwarrend). Op mobiel/tablet gaat
     473   typen sowieso fullscreen (zie JS), waar het veld de pagina vult en als enige
     474   scrollt. */
     475.pe-editor-frame:not(.pe-fs) .pe-editor { overflow: visible; }
    480476.pe-editor.is-dragover {
    481477  outline: 2px dashed var(--accent);
  • src/views/shell.ejs

    rc01f471 rf3f43df  
    552552</script>
    553553
     554<!-- Auto-resize: elk <textarea> groeit mee met de inhoud i.p.v. intern te scrollen
     555     (scroll-binnen-scroll is verwarrend). Site-breed; ook na htmx-swaps. -->
     556<script>
     557(function () {
     558  function autoSize(ta) {
     559    if (!ta || ta.tagName !== 'TEXTAREA') return;
     560    ta.style.overflowY = 'hidden';
     561    ta.style.height = 'auto';
     562    ta.style.height = ta.scrollHeight + 'px';
     563  }
     564  function sizeAll(root) {
     565    (root || document).querySelectorAll('textarea').forEach(autoSize);
     566  }
     567  document.addEventListener('input', function (e) { autoSize(e.target); });
     568  document.addEventListener('focusin', function (e) { autoSize(e.target); });
     569  // Init + opnieuw na htmx-navigatie/partials.
     570  sizeAll();
     571  document.body.addEventListener('htmx:afterSettle', function () { sizeAll(); });
     572  window.addEventListener('load', function () { sizeAll(); });
     573})();
     574</script>
     575
    554576<!-- PWA install prompt — show button when browser fires beforeinstallprompt -->
    555577<script>
Note: See TracChangeset for help on using the changeset viewer.