fix: フレックス内スクロール復元(#main に min-height:0、#app をビューポート高に固定)

Made-with: Cursor
This commit is contained in:
posimai 2026-04-18 23:46:30 +09:00
parent ffedf3cff2
commit 9812dc601c
2 changed files with 6 additions and 6 deletions

View File

@ -70,7 +70,7 @@
} }
html{height:100%} html{height:100%}
html,body{background:var(--bg);color:var(--text);font-family:'Geist',sans-serif;overflow:hidden} html,body{background:var(--bg);color:var(--text);font-family:'Geist',sans-serif;overflow:hidden}
body{min-height:100%;min-height:-webkit-fill-available} body{min-height:100%;min-height:-webkit-fill-available;height:100%}
.aurora{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:0} .aurora{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:0}
.aurora-blob{position:absolute;border-radius:50%;will-change:transform} .aurora-blob{position:absolute;border-radius:50%;will-change:transform}
@ -82,7 +82,7 @@ body{min-height:100%;min-height:-webkit-fill-available}
@keyframes ab3{from{transform:translate(0,0) scale(1)}to{transform:translate(-50px,60px) scale(0.93)}} @keyframes ab3{from{transform:translate(0,0) scale(1)}to{transform:translate(-50px,60px) scale(0.93)}}
[data-theme="light"] .aurora-blob{opacity:0.35} [data-theme="light"] .aurora-blob{opacity:0.35}
#app{position:relative;z-index:1;box-sizing:border-box;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;padding:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left)} #app{position:relative;z-index:1;box-sizing:border-box;height:100vh;height:100dvh;max-height:100dvh;display:flex;flex-direction:column;min-height:0;padding:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left)}
/* Header */ /* Header */
header{display:flex;align-items:center;justify-content:space-between;padding:0 16px;height:52px;border-bottom:1px solid var(--border);background:rgba(12,18,33,0.75);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);flex-shrink:0} header{display:flex;align-items:center;justify-content:space-between;padding:0 16px;height:52px;border-bottom:1px solid var(--border);background:rgba(12,18,33,0.75);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);flex-shrink:0}
@ -95,10 +95,10 @@ header{display:flex;align-items:center;justify-content:space-between;padding:0 1
.icon-btn:hover{color:var(--accent);border-color:var(--accent-border)} .icon-btn:hover{color:var(--accent);border-color:var(--accent-border)}
/* Body */ /* Body */
#body{flex:1;display:flex;overflow:hidden} #body{flex:1;min-height:0;display:flex;overflow:hidden}
/* Sidebar */ /* Sidebar */
#sidebar{width:240px;flex-shrink:0;border-right:1px solid var(--border);overflow-y:auto;background:rgba(12,18,33,0.5);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:flex;flex-direction:column} #sidebar{width:240px;flex-shrink:0;min-height:0;border-right:1px solid var(--border);overflow-y:auto;-webkit-overflow-scrolling:touch;background:rgba(12,18,33,0.5);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:flex;flex-direction:column}
[data-theme="light"] #sidebar{background:rgba(239,246,255,0.6)} [data-theme="light"] #sidebar{background:rgba(239,246,255,0.6)}
.sidebar-search{padding:10px 12px;border-bottom:1px solid var(--border)} .sidebar-search{padding:10px 12px;border-bottom:1px solid var(--border)}
.search-wrap{position:relative} .search-wrap{position:relative}
@ -123,7 +123,7 @@ header{display:flex;align-items:center;justify-content:space-between;padding:0 1
.sidebar-item.done .item-check{opacity:1} .sidebar-item.done .item-check{opacity:1}
/* Main */ /* Main */
#main{flex:1;overflow-y:auto;padding:24px 28px} #main{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:24px 28px;touch-action:pan-y}
/* Home */ /* Home */
.home-hero{text-align:center;padding:36px 0 28px;max-width:500px;margin:0 auto} .home-hero{text-align:center;padding:36px 0 28px;max-width:500px;margin:0 auto}

2
sw.js
View File

@ -1,5 +1,5 @@
// posimai-boki SW — stale-while-revalidate + skipWaiting // posimai-boki SW — stale-while-revalidate + skipWaiting
const CACHE = 'posimai-boki-v7'; const CACHE = 'posimai-boki-v8';
const STATIC = ['/', '/index.html', '/manifest.json', '/logo.png']; const STATIC = ['/', '/index.html', '/manifest.json', '/logo.png'];
self.addEventListener('install', e => { self.addEventListener('install', e => {