diff --git a/presentations/less-prompting-more-shipping/theme.css b/presentations/less-prompting-more-shipping/theme.css index d6a9697..f59fb59 100644 --- a/presentations/less-prompting-more-shipping/theme.css +++ b/presentations/less-prompting-more-shipping/theme.css @@ -36,6 +36,7 @@ body{margin:0;background:var(--paper);color:var(--ink)} a:focus-visible,button:focus-visible{outline:3px solid #b88719;outline-offset:3px} .reveal.deck{height:calc(100dvh - 48px);top:48px} @media(max-width:600px){.toolbar{gap:9px;font-size:12px;padding:8px}.toolbar .help{display:none}.toolbar button{padding:6px}.deck .controls{bottom:18px}} +@media(max-width:360px){.toolbar{gap:4px}} /* Portrait is re-composed, not a postage-stamp landscape slide. */ .portrait .deck .slides section{height:1000px;padding:28px} .portrait .deck h1{font-size:64px}.portrait .deck h2{font-size:43px;margin-bottom:24px} diff --git a/scripts/browser/presentation.cjs b/scripts/browser/presentation.cjs index 237fb6b..ccddf03 100644 --- a/scripts/browser/presentation.cjs +++ b/scripts/browser/presentation.cjs @@ -44,6 +44,7 @@ const fs=require('node:fs'); const assert=require('node:assert/strict'); await page.getByRole('link',{name:'Portal',exact:true}).click();await page.waitForURL(base+root);await page.getByRole('link',{name:/Open presentation/}).scrollIntoViewIfNeeded();await page.screenshot({path:`${out}/${viewport.width}-homepage.png`});await page.getByRole('link',{name:/Open presentation/}).click();await page.waitForFunction(()=>window.Reveal?.isReady()); assert.deepEqual(errors,[]);results.push({viewport,slides:19,overflow:false,errors,deepLinkRefresh:true,keyboard:true,overview:true,links:true,touch:viewport.width!==1440});await context.close(); } + const narrow=await browser.newPage({viewport:{width:320,height:720}});await narrow.goto(url,{waitUntil:'networkidle'});await narrow.evaluate(()=>document.fonts.ready);assert(await narrow.evaluate(()=>document.querySelector('.toolbar').scrollWidth<=innerWidth),'320px toolbar must not clip Print');await narrow.screenshot({path:out+'/320-toolbar.png'});await narrow.close(); const page=await browser.newPage({viewport:{width:1440,height:900}});await page.goto(url+'?print-pdf',{waitUntil:'networkidle'});await page.waitForFunction(()=>document.querySelectorAll('.pdf-page').length===19);await page.pdf({path:out+'/print.pdf',preferCSSPageSize:true,printBackground:true}); assert.equal(await page.locator('.pdf-page').count(),19); fs.writeFileSync(`${out}/results.json`,JSON.stringify({results,printPages:19},null,2));console.log('PASS: 57 slide views, bounds, refresh/hash, keyboard, overview, touch, fullscreen, notes, all links, homepage, print');