fix(site,skill): 두레 왼쪽 인셋 리듬 수리 — 제목이 가장자리에 붙어 보이던 사고(v23)
사용자 스크린샷을 픽셀 판정으로 해부: 앱바·검색·칩·카드는 24px에서 시작하는데 h2만 16px — 8px 어긋난 큰 명조 제목이 '가장자리에 붙었다'로 읽혔다. .layout 모바일 인셋을 24px로 통일. - 게이트 공백: 기존 매트릭스는 오른쪽 오버플로만 검사 — e2e 에 M6 왼쪽 인셋 스위트 신설(60단언, 텍스트 시작점 ≥12px + 헤더-제목 같은 축 ±10px), RED 38 실패로 결함 재현 후 GREEN - 측정 하자 2건 교정: display:none rect=0 필터, 전폭 컨테이너 보더박스가 아닌 텍스트 시작점 기준 - 스킬 mobile-app-ux.md: '왼쪽 인셋은 하나의 축' 규칙 추가. 시각 기준 갱신, verify L0~L6 전 통과(E2E 1,805단언)
This commit is contained in:
parent
587bb48b07
commit
2678fd2c9c
26 changed files with 99 additions and 14 deletions
36
apps/site/tools/.diag3.mjs
Normal file
36
apps/site/tools/.diag3.mjs
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
import puppeteer from "puppeteer-core";
|
||||
import path from "node:path";
|
||||
import url from "node:url";
|
||||
|
||||
const here = path.dirname(url.fileURLToPath(import.meta.url));
|
||||
const CHROME = "C:/Program Files/Google/Chrome/Application/chrome.exe";
|
||||
|
||||
const browser = await puppeteer.launch({ executablePath: CHROME, headless: "new", args: ["--force-device-scale-factor=1"] });
|
||||
const page = await browser.newPage();
|
||||
await page.setCacheEnabled(false);
|
||||
|
||||
// 라이브 배포 URL — 사용자가 보는 그대로
|
||||
for (const w of [360, 390, 412]) {
|
||||
await page.setViewport({ width: w, height: 844, isMobile: true, hasTouch: true });
|
||||
await page.goto("https://designpaca.chanpaca.net/work/dure-enrollment/", { waitUntil: "networkidle0" });
|
||||
await page.evaluate(() => document.fonts.ready);
|
||||
await new Promise((r) => setTimeout(r, 250));
|
||||
const m = await page.evaluate(() => {
|
||||
const layout = document.querySelector(".layout");
|
||||
const h2 = document.querySelector("#cat-h");
|
||||
const card = document.querySelector(".course-row");
|
||||
const appbar = document.querySelector(".appbar-inner");
|
||||
const rl = (el) => (el ? Math.round(el.getBoundingClientRect().left) : null);
|
||||
return {
|
||||
cssV: (document.querySelector('link[rel="stylesheet"]')?.getAttribute("href") || "").match(/v=\d+/)?.[0],
|
||||
layoutPad: getComputedStyle(layout).padding,
|
||||
h2Left: rl(h2),
|
||||
cardLeft: rl(card),
|
||||
appbarPadLeft: getComputedStyle(appbar).paddingLeft,
|
||||
over: document.documentElement.scrollWidth - document.documentElement.clientWidth,
|
||||
};
|
||||
});
|
||||
console.log(`[${w}] css=${m.cssV} layoutPad="${m.layoutPad}" h2Left=${m.h2Left} cardLeft=${m.cardLeft} appbarPadL=${m.appbarPadLeft} over=+${m.over}`);
|
||||
if (w === 390) await page.screenshot({ path: path.join(here, "__shots__", "diag3-dure-live-390.png") });
|
||||
}
|
||||
await browser.close();
|
||||
Loading…
Add table
Add a link
Reference in a new issue