diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 229a4d599..5d70ee765 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -256,3 +256,10 @@ jobs: env: PYTEST_SHARD: ${{ matrix.shard }} run: python -m pytest -q -rs --durations=25 --shard "$PYTEST_SHARD" + + - name: Playwright mobile layout checks (shard 1/4 only) + if: steps.docs-check.outputs.docs_only != 'true' && matrix.shard == '1/4' + run: | + ODYSSEUS_TEST_PYTHON=python ODYSSEUS_LAYOUT_BROWSER=chromium npx --no-install playwright test \ + --config tests/e2e/ios-layout.config.cjs \ + --reporter=line diff --git a/package.json b/package.json index aa454e017..79cf83c3d 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,11 @@ "test:photo-editor": "playwright test --config tests/e2e/playwright.config.js", "test:photo-editor:install": "playwright install chromium firefox webkit", "test:photo-editor:firefox": "PHOTO_EDITOR_E2E_BROWSER=firefox playwright test --config tests/e2e/playwright.config.js", - "test:photo-editor:webkit": "PHOTO_EDITOR_E2E_BROWSER=webkit playwright test --config tests/e2e/playwright.config.js" + "test:photo-editor:webkit": "PHOTO_EDITOR_E2E_BROWSER=webkit playwright test --config tests/e2e/playwright.config.js", + "test:ios-layout": "playwright test --config tests/e2e/ios-layout.config.cjs", + "test:ios-layout:chromium": "ODYSSEUS_LAYOUT_BROWSER=chromium playwright test --config tests/e2e/ios-layout.config.cjs", + "test:ios-layout:webkit": "ODYSSEUS_LAYOUT_BROWSER=webkit playwright test --config tests/e2e/ios-layout.config.cjs", + "test:ios-layout:install": "playwright install chromium webkit" }, "devDependencies": { "@antithesishq/bombadil": "^0.7.0", diff --git a/static/css/17-research.css b/static/css/17-research.css index c4de5cb75..2c43aa2c8 100644 --- a/static/css/17-research.css +++ b/static/css/17-research.css @@ -2690,11 +2690,14 @@ body.theme-frosted .modal { max-height: 95dvh !important; } + /* Notes and Documents must respect the same viewport and safe-area + top as other mobile full-height sheets. Keep these authoritative rules + consistent with 05-documents.css and 14-email.css. */ body.doc-view .doc-editor-pane, body.notes-view .notes-pane { - inset: auto 0 0 !important; - height: 95dvh !important; - max-height: 95dvh !important; + inset: var(--sheet-top) 0 0 !important; + height: calc(var(--app-height) - var(--sheet-top)) !important; + max-height: calc(var(--app-height) - var(--sheet-top)) !important; } } diff --git a/static/index.html b/static/index.html index aafacc2e1..df3045af3 100644 --- a/static/index.html +++ b/static/index.html @@ -16,13 +16,6 @@