Changeset 9ef3c56 in Klonkt


Ignore:
Timestamp:
06/19/2026 11:50:23 AM (3 months ago)
Author:
roboburr <roboburr@…>
Branches:
main
Children:
4ad669a
Parents:
a0bff44
Message:

fix(mobile): hide fixed bottom bars when the keyboard is open

Site-wide: body.kb-open (set via visualViewport when the keyboard opens +
an input field has focus) hides the bottom tab + mini player, so they no
longer float over or overlap input fields while typing. style.css?v=12.

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

Files:
3 edited

Legend:

Unmodified
Added
Removed
  • CHANGELOG.md

    ra0bff44 r9ef3c56  
    1515
    1616### Opgelost
     17- Mobiel toetsenbord vs. layout (site-breed): zodra het toetsenbord opent tijdens
     18  het typen, verbergen de vaste onderbalken (bottom-tab + mini-speler) zich, zodat
     19  ze niet meer over het invoerveld zweven of het overlappen. Ze komen terug zodra
     20  het toetsenbord sluit. (Detectie via visualViewport → `body.kb-open`.)
    1721- Post bewerken op mobiel opende niet meer meteen het toetsenbord: de titel kreeg
    1822  niet langer automatisch focus (`autofocus` weg). Op desktop focust de titel nog wel.
  • src/assets/css/style.css

    ra0bff44 r9ef3c56  
    620620.pcms-main { padding-bottom: 5.5rem; }
    621621body.has-audio-player .pcms-main { padding-bottom: 5.5rem; }
     622
     623/* Mobiel toetsenbord open (body.kb-open, gezet via visualViewport in shell.ejs):
     624   verberg de vaste onderbalken — anders zweven de bottom-tab + mini-speler boven
     625   het toetsenbord of overlappen ze het invoerveld. Ze komen terug zodra het
     626   toetsenbord sluit. De extra clearance onderaan is dan ook niet meer nodig. */
     627body.kb-open .bottom-tab,
     628body.kb-open .audio-player { display: none !important; }
     629body.kb-open .pcms-main { padding-bottom: 1rem; }
    622630
    623631/* ============================================================
  • src/views/shell.ejs

    ra0bff44 r9ef3c56  
    163163
    164164<!-- v9 stylesheet (full palette system) -->
    165 <link rel="stylesheet" href="/assets/css/style.css?v=11">
     165<link rel="stylesheet" href="/assets/css/style.css?v=12">
    166166
    167167<!-- Audio player styles: loaded on every page so the mini-player works
     
    528528</script>
    529529
     530<!-- Mobiel toetsenbord vs. site-layout: zet body.kb-open zodra het toetsenbord
     531     open is (visual viewport fors korter dan het venster) ÉN er een invoerveld
     532     focus heeft. CSS verbergt dan de vaste onderbalken (bottom-tab + mini-speler)
     533     zodat ze niet over het invoerveld zweven. -->
     534<script>
     535(function () {
     536  var vv = window.visualViewport;
     537  if (!vv) return;
     538  function isField(el) {
     539    if (!el) return false;
     540    var t = el.tagName;
     541    return t === 'INPUT' || t === 'TEXTAREA' || el.isContentEditable;
     542  }
     543  function update() {
     544    var open = (window.innerHeight - vv.height) > 150 && isField(document.activeElement);
     545    document.body.classList.toggle('kb-open', open);
     546  }
     547  vv.addEventListener('resize', update);
     548  vv.addEventListener('scroll', update);
     549  document.addEventListener('focusin', function () { setTimeout(update, 60); });
     550  document.addEventListener('focusout', function () { setTimeout(update, 60); });
     551})();
     552</script>
     553
    530554<!-- PWA install prompt — show button when browser fires beforeinstallprompt -->
    531555<script>
Note: See TracChangeset for help on using the changeset viewer.