mosaic-headless 1.5.0 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.ja.md CHANGED
@@ -59,11 +59,11 @@ URL に対応するテンプレなし HTTP 406、未ログインには空の b
59
59
  | **ノードタイプ** | 122 / 122。1 ドキュメントにつき 1 タイプで commit → 描画 → 断言 → 削除。70 RENDERED、30 COMMITTED、15 COMMIT_5xx、7 BROKE_PAGE |
60
60
  | **スタイルプロパティ** | 98 / 98 を実ページに書き、コンパイル済み CSS と照合:58 COMPILED、18 ABSENT、21 SKIPPED |
61
61
  | **ノードプロパティ** | 181 / 181 を、各プロパティ自身の validator chain から導いた値で再測定:35 APPLIED、42 NO_EFFECT、55 NO_HOST、47 SKIPPED |
62
- | **レスポンシブ** | 2 サイト計 576 件の `_t`/`_m` 宣言を、サイトが実際に配信したスタイルシートに対して 1 件ずつ断言 — 全件検証済み |
62
+ | **レスポンシブ** | 2 サイト計 608 件の `_t`/`_m` 宣言を、サイトが実際に配信したスタイルシートに対して 1 件ずつ断言 — 全件検証済み |
63
63
  | **スタイル状態** | 53 状態のうち 52 を実ページに書き、テーブルが約束するセレクタと照合:**36 件が完全一致**、12 件 NO_HOST、3 件 SKIPPED、1 件 BROKE_PAGE。どの要素にも使えるグローバル 7 状態はすべて検証済み |
64
64
  | **インタラクション** | JS アニメーション経路を、ネガティブコントロール付きで保存行を読み戻しながら検証:`propertyMetas` は**受理され保存される**。プロパティ値は依然としてバインドされないが、その境界は厳密になった |
65
65
  | **入場アニメーション** | ページ読み込み後の 10 時点をサンプリングし 7 項目を断言 — 再生されること、アニメーションする `@property` カウンタが 100 に達すること、ベールがヒットテストから外れること、ビューポート内に opacity 0 のまま取り残された要素がないこと、実際のクリックが文書に届くこと、そして `prefers-reduced-motion` ではベールがそもそも存在しないこと |
66
- | **ブラウザ** | 配信されたページを Chromium の 3 つのビューポートで計算スタイル 2,282 件読み取り:1,676 件が一致、606 件は比較不能として明示、**上書き 0 件** |
66
+ | **ブラウザ** | 配信されたページを Chromium の 3 つのビューポートで計算スタイル 2,473 件読み取り:1,837 件が一致、636 件は比較不能として明示、**上書き 0 件** |
67
67
  | **デザイン監査** | コントラスト、フォントフォールバック、CJK の字送り、横溢れ、テキストの切れ、1 行の文字数 — ブラウザ上で実行、**指摘 0 件** |
68
68
  | **テーマの書き出し/読み込み** | 往復検証済み:テーマ全体を書き出し、コピーとして読み込み、そのコピーがバイト単位で同一のページを配信 |
69
69
  | **実測** | REST ルート 114、element class 151、条件サブジェクト 59、23 テーブル / 206 カラム |
package/README.ko.md CHANGED
@@ -59,11 +59,11 @@ URL에 맞는 템플릿 없음 HTTP 406, 로그인하지 않은 사용자
59
59
  | **노드 타입** | 122 / 122. 문서 하나당 타입 하나로 commit → 렌더 → 단언 → 삭제. 70 RENDERED, 30 COMMITTED, 15 COMMIT_5xx, 7 BROKE_PAGE |
60
60
  | **스타일 속성** | 98 / 98을 실제 페이지에 쓰고 컴파일된 CSS와 대조: 58 COMPILED, 18 ABSENT, 21 SKIPPED |
61
61
  | **노드 속성** | 181 / 181을 각 속성 자신의 validator chain에서 도출한 값으로 재측정: 35 APPLIED, 42 NO_EFFECT, 55 NO_HOST, 47 SKIPPED |
62
- | **반응형** | 두 사이트 합쳐 576개의 `_t`/`_m` 선언을, 사이트가 실제로 내보낸 스타일시트에 대해 하나씩 단언 — 전부 검증됨 |
62
+ | **반응형** | 두 사이트 합쳐 608개의 `_t`/`_m` 선언을, 사이트가 실제로 내보낸 스타일시트에 대해 하나씩 단언 — 전부 검증됨 |
63
63
  | **스타일 상태** | 53개 상태 중 52개를 실제 페이지에 쓰고 표가 약속한 셀렉터와 대조: **36개가 정확히 일치**, 12개 NO_HOST, 3개 SKIPPED, 1개 BROKE_PAGE. 어떤 요소에나 쓸 수 있는 전역 7개 상태는 전부 검증됨 |
64
64
  | **인터랙션** | JS 애니메이션 경로를 음성 대조군과 함께, 저장된 행을 되읽으며 검증: `propertyMetas`는 **수용되고 저장된다**. 속성 값은 여전히 바인딩되지 않지만 그 경계는 이제 정확하다 |
65
65
  | **인트로 애니메이션** | 페이지 로드 후 10개 시점을 샘플링해 7가지를 단언 — 재생될 것, 애니메이션되는 `@property` 카운터가 100에 도달할 것, 베일이 히트 테스트에서 빠질 것, 뷰포트 안에 opacity 0으로 갇힌 요소가 없을 것, 실제 클릭이 문서에 닿을 것, 그리고 `prefers-reduced-motion`에서는 베일이 아예 존재하지 않을 것 |
66
- | **브라우저** | 전달된 페이지를 Chromium의 세 가지 뷰포트에서 계산 스타일 2,282건 판독: 1,676건 일치, 606건은 비교 불가로 명시, **덮어쓰기 0건** |
66
+ | **브라우저** | 전달된 페이지를 Chromium의 세 가지 뷰포트에서 계산 스타일 2,473건 판독: 1,837건 일치, 636건은 비교 불가로 명시, **덮어쓰기 0건** |
67
67
  | **디자인 감사** | 명암비, 폰트 폴백, CJK 자간, 가로 넘침, 텍스트 잘림, 한 줄 글자 수 — 브라우저에서 실행, **지적 0건** |
68
68
  | **테마 내보내기/가져오기** | 왕복 검증: 테마 전체를 내보내 사본으로 가져왔고, 사본이 바이트 단위로 동일한 페이지를 제공 |
69
69
  | **실측** | REST 라우트 114개, element class 151개, 조건 주체 59개, 23개 테이블 / 206개 컬럼 |
package/README.md CHANGED
@@ -60,11 +60,11 @@ factories, so Pro types register and render regardless.
60
60
  | **node types** | 122 / 122 swept one per document, committed → rendered → asserted → deleted: 70 RENDERED, 30 COMMITTED, 15 COMMIT_5xx, 7 BROKE_PAGE |
61
61
  | **style properties** | 98 / 98 written to a live page and checked against the compiled CSS: 58 COMPILED, 18 ABSENT, 21 SKIPPED |
62
62
  | **node properties** | 181 / 181 re-probed with a value shaped by each property's own validator chain: 35 APPLIED, 42 NO_EFFECT, 55 NO_HOST, 47 SKIPPED |
63
- | **responsive** | 576 `_t`/`_m` declarations across two sites asserted against the stylesheet the site actually served — all verified |
63
+ | **responsive** | 608 `_t`/`_m` declarations across two sites asserted against the stylesheet the site actually served — all verified |
64
64
  | **style states** | 52 of the 53 states written to a live page and matched against the selector the table promises: **36 compiled exactly**, 12 NO_HOST, 3 SKIPPED, 1 BROKE_PAGE. All seven globally usable states verified |
65
65
  | **interactions** | the JS animation path probed with negative controls and the row read back: `propertyMetas` **is** accepted and stored; the property values still do not bind, and the boundary is now exact |
66
66
  | **entrance animation** | the page-load sequence sampled at ten timestamps and asserted on seven counts — it plays, its animated `@property` counter reaches 100, the veil leaves hit-testing, nothing in the viewport is stranded at opacity 0, a real click reaches the document, and under `prefers-reduced-motion` the veil never exists at all |
67
- | **browser** | 2,282 computed-style readings on the delivered page in Chromium at three viewports: 1,676 compared and agreed, 606 not-comparable and labelled, **0 overridden** |
67
+ | **browser** | 2,473 computed-style readings on the delivered page in Chromium at three viewports: 1,837 compared and agreed, 636 not-comparable and labelled, **0 overridden** |
68
68
  | **design audit** | contrast, font fallback, CJK tracking, overflow, clipped text, line measure — run in the browser, **0 findings** |
69
69
  | **theme export/import** | round-tripped: a full theme exported, re-imported as a copy, and the copy served byte-identical pages |
70
70
  | **measured live** | 114 REST routes, 151 element classes, 59 condition subjects, 23 tables / 206 columns |
package/README.zh-TW.md CHANGED
@@ -52,11 +52,11 @@ commit 時 PHP fatal HTTP 500 (122 種型別裡有 15 種,光放在 div
52
52
  | **節點型別** | 122 / 122,一份文件一種型別:寫入 → 渲染 → 斷言 → 刪除。70 RENDERED、30 COMMITTED、15 COMMIT_5xx、7 BROKE_PAGE |
53
53
  | **樣式屬性** | 98 / 98 寫進真實頁面並對照編譯後的 CSS:58 COMPILED、18 ABSENT、21 SKIPPED |
54
54
  | **節點屬性** | 181 / 181,用每個屬性自己的 validator chain 推導出的值重測:35 APPLIED、42 NO_EFFECT、55 NO_HOST、47 SKIPPED |
55
- | **響應式** | 兩個站共 576 條 `_t`/`_m` 宣告,對照網站實際送出的樣式表逐條斷言——全數通過 |
55
+ | **響應式** | 兩個站共 608 條 `_t`/`_m` 宣告,對照網站實際送出的樣式表逐條斷言——全數通過 |
56
56
  | **樣式狀態** | 53 個狀態中的 52 個寫進真實頁面,對照表格承諾的選擇器逐一比對:**36 個完全吻合**、12 個 NO_HOST、3 個 SKIPPED、1 個 BROKE_PAGE。七個可用於任何元素的狀態全數驗證 |
57
57
  | **互動動畫** | 帶負對照組並讀回儲存列來探測 JS 動畫路徑:`propertyMetas` **確實**會被接受並儲存;屬性值仍然無法綁定,但界線現在很精確 |
58
58
  | **入口動畫** | 在載入後十個時間點取樣並做七項斷言——它有播、被動畫的 `@property` 計數器跑到 100、遮罩退出點擊判定、視窗內沒有任何內容卡在 opacity 0、真實點擊落在文件上,而在 `prefers-reduced-motion` 下遮罩根本不存在 |
59
- | **瀏覽器** | 在 Chromium 三個視窗寬度上對交付頁面做 2,282 次計算樣式讀取:1,676 條比對相符、606 條標為無法比對、**0 條被覆蓋** |
59
+ | **瀏覽器** | 在 Chromium 三個視窗寬度上對交付頁面做 2,473 次計算樣式讀取:1,837 條比對相符、636 條標為無法比對、**0 條被覆蓋** |
60
60
  | **設計稽核** | 對比度、字體回退、CJK 字距、水平溢出、文字裁切、每行字數——在瀏覽器裡跑,**0 項發現** |
61
61
  | **主題匯出/匯入** | 完整來回驗證:匯出整個主題、以副本身分匯入,副本送出的頁面逐位元組相同 |
62
62
  | **線上量測** | 114 條 REST 路由、151 個 element class、59 個條件主體、23 張表 / 206 個欄位 |
package/SKILL.md CHANGED
@@ -4,7 +4,7 @@ description: |
4
4
  Build and modify Mosaic Pro (Nextend) sites by writing the underlying data model directly - no visual editor, no DOM. Query the real surface with `mo.py`, which joins every source table to the live sweeps so a lookup leads with the measured verdict rather than the declaration (122 node types, 181 properties, 98 style properties with 20 structured value shapes pinned down, 53 style states, 151 element classes, 74 dynamic variables, 12 interaction triggers, 114 REST routes, 23 tables) instead of guessing, with every node type placed on a live site one at a time and asserted against the delivered HTML, the design-token and element-class layers verified against compiled CSS, the @VAR() dynamic language verified against rendered output, nine designed pages built through the tables themselves, and the delivered page re-read in Chromium at three viewports so a rule that is present, correct and still wrong cannot pass.
5
5
  license: "MIT"
6
6
  author: "moksa (https://moksaweb.com)"
7
- version: "1.5.0"
7
+ version: "1.6.0"
8
8
  ---
9
9
 
10
10
  # Headless Mosaic
@@ -162,15 +162,15 @@ INTRO the page-load sequence sampled at ten timestamps across its life an
162
162
  `prefers-reduced-motion` the veil never exists at all. All pass.
163
163
  data/intro-verification.csv
164
164
 
165
- BROWSER 2,282 computed-style readings on the delivered page in Chromium, at
165
+ BROWSER 2,473 computed-style readings on the delivered page in Chromium, at
166
166
  three viewports: every declared property vs `getComputedStyle` on the
167
- node it targets. 1,676 compared and agreed, 606 not-comparable and
167
+ node it targets. 1,837 compared and agreed, 636 not-comparable and
168
168
  labelled as such, 0 overridden. Plus a design audit that only a browser
169
169
  can run - font fallback, tracking against script, text contrast,
170
170
  horizontal overflow, clipped text, line measure - currently 0 findings.
171
171
  data/browser-verification.csv, data/design-audit.csv
172
172
 
173
- RWD 576 responsive declarations across two sites asserted against the
173
+ RWD 608 responsive declarations across two sites asserted against the
174
174
  stylesheet the site actually served - each `_t`/`_m` property matched
175
175
  to its element's generated class inside that breakpoint's own media
176
176
  query. All verified; the checker is itself checked against a poisoned
@@ -310,8 +310,8 @@ so the pattern is in the data, not just in this paragraph.
310
310
  | `data/property-verification.csv` | 170 | **probed live** — per-property effect on markup vs CSS, with unprovable enums marked INCONCLUSIVE |
311
311
  | `data/node-property-verification.csv` | 181 | **swept live** — each property probed with a value shaped by its own validator chain, on a type that declares it |
312
312
  | `data/style-verification.csv` | 98 | **swept live** — every style property written to a page and checked against the compiled CSS, with its group beside the result |
313
- | `data/rwd-verification.csv` | 576 | **checked live** - every `_t`/`_m` declaration vs the served stylesheet, with status per row |
314
- | `data/browser-verification.csv` | 2282 | **computed in Chromium** - declared vs `getComputedStyle` at three viewports, `not-comparable` labelled per row |
313
+ | `data/rwd-verification.csv` | 608 | **checked live** - every `_t`/`_m` declaration vs the served stylesheet, with status per row |
314
+ | `data/browser-verification.csv` | 2473 | **computed in Chromium** - declared vs `getComputedStyle` at three viewports, `not-comparable` labelled per row |
315
315
  | `data/design-audit.csv` | 0 | **computed in Chromium** - contrast, font fallback, CJK tracking, overflow, measure. Empty means it ran and found nothing |
316
316
  | `data/data-class-hierarchy.csv` | 121 | source - every data class and its parent, so a type's inherited properties can be resolved |
317
317
  | `data/style-state-verification.csv` | 52 | **swept live** - each state written on a host of its own type and matched against its promised selector |
@@ -20,7 +20,7 @@
20
20
  "description": "Build and modify Mosaic Pro (Nextend) sites by writing the underlying data model directly - no visual editor, no DOM. Query the real surface (122 node types, 181 node properties, 98 style properties, 53 style states, 151 element classes, 74 dynamic variables, 114 REST routes, 23 tables) instead of guessing, with every node type placed on a live site one at a time and asserted against the delivered HTML, every style and node property swept against the compiled CSS and markup, and 569 responsive declarations checked against the stylesheet the site actually served.",
21
21
  "license": "MIT",
22
22
  "author": "moksa (https://moksaweb.com)",
23
- "version": "1.5.0"
23
+ "version": "1.6.0"
24
24
  },
25
25
  "loaderBehaviour": "Upload via Settings -> Skills -> Upload. Claude.ai parses SKILL.md frontmatter and surfaces the skill in your library. The extraction tool (extract-block-schema.php) needs a live WP-CLI connection and won't run in the sandbox; use it from a local terminal against your own site instead.",
26
26
  "uploadSteps": [
@@ -20,7 +20,7 @@
20
20
  "description": "Build and modify Mosaic Pro (Nextend) sites by writing the underlying data model directly - no visual editor, no DOM. Query the real surface (122 node types, 181 node properties, 98 style properties, 53 style states, 151 element classes, 74 dynamic variables, 114 REST routes, 23 tables) instead of guessing, with every node type placed on a live site one at a time and asserted against the delivered HTML, every style and node property swept against the compiled CSS and markup, and 569 responsive declarations checked against the stylesheet the site actually served.",
21
21
  "license": "MIT",
22
22
  "author": "moksa (https://moksaweb.com)",
23
- "version": "1.5.0"
23
+ "version": "1.6.0"
24
24
  },
25
25
  "loaderBehaviour": "Auto-loads on session start when SKILL.md frontmatter parses successfully.",
26
26
  "verified": true,
@@ -20,7 +20,7 @@
20
20
  "description": "Build and modify Mosaic Pro (Nextend) sites by writing the underlying data model directly - no visual editor, no DOM. Query the real surface (122 node types, 181 node properties, 98 style properties, 53 style states, 151 element classes, 74 dynamic variables, 114 REST routes, 23 tables) instead of guessing, with every node type placed on a live site one at a time and asserted against the delivered HTML, every style and node property swept against the compiled CSS and markup, and 569 responsive declarations checked against the stylesheet the site actually served.",
21
21
  "license": "MIT",
22
22
  "author": "moksa (https://moksaweb.com)",
23
- "version": "1.5.0"
23
+ "version": "1.6.0"
24
24
  },
25
25
  "loaderBehaviour": "Confirmed (2026-07-11): Codex CLI natively supports the SKILL.md spec. Place SKILL.md under .codex/skills/<name>/ (project) or ~/.codex/skills/<name>/ (personal) and Codex loads the name+description at session start, then the full body on demand. A parallel, broader convention .agents/skills/ (searched from cwd up to repo root, then ~/.agents/skills/) also exists across multiple tools - if your Codex CLI version prioritizes that path instead, mirror the same SKILL.md there.",
26
26
  "verified": true,
@@ -20,7 +20,7 @@
20
20
  "description": "Build and modify Mosaic Pro (Nextend) sites by writing the underlying data model directly - no visual editor, no DOM. Query the real surface (122 node types, 181 node properties, 98 style properties, 53 style states, 151 element classes, 74 dynamic variables, 114 REST routes, 23 tables) instead of guessing, with every node type placed on a live site one at a time and asserted against the delivered HTML, every style and node property swept against the compiled CSS and markup, and 569 responsive declarations checked against the stylesheet the site actually served.",
21
21
  "license": "MIT",
22
22
  "author": "moksa (https://moksaweb.com)",
23
- "version": "1.5.0"
23
+ "version": "1.6.0"
24
24
  },
25
25
  "loaderBehaviour": "CHANGED as of 2026-07-11: GitHub Copilot added a proper '.github/skills/' Agent Skills directory (December 2025), alongside the older single-file .github/copilot-instructions.md convention. This config targets the new skills-directory form. If your Copilot version predates this (pre Dec 2025), use the instructions-append fallback instead (see fallback below).",
26
26
  "fallback": {
@@ -20,7 +20,7 @@
20
20
  "description": "Build and modify Mosaic Pro (Nextend) sites by writing the underlying data model directly - no visual editor, no DOM. Query the real surface (122 node types, 181 node properties, 98 style properties, 53 style states, 151 element classes, 74 dynamic variables, 114 REST routes, 23 tables) instead of guessing, with every node type placed on a live site one at a time and asserted against the delivered HTML, every style and node property swept against the compiled CSS and markup, and 569 responsive declarations checked against the stylesheet the site actually served.",
21
21
  "license": "MIT",
22
22
  "author": "moksa (https://moksaweb.com)",
23
- "version": "1.5.0"
23
+ "version": "1.6.0"
24
24
  },
25
25
  "loaderBehaviour": "CHANGED as of 2026-07-11: Gemini CLI now natively supports the same SKILL.md standard as Claude Code and Codex CLI - the same directory-based skill works unmodified. Gemini CLI discovers skills in this precedence order: built-in, extension skills, ~/.gemini/skills/ (personal), .gemini/skills/ (project, shared via version control). At session start Gemini injects each discovered skill's name+description into the system prompt and calls activate_skill when a task matches.",
26
26
  "verified": true,
@@ -78,8 +78,8 @@ const counts = {
78
78
  "data/node-verification.csv": 122,
79
79
  "data/style-verification.csv": 98,
80
80
  "data/node-property-verification.csv": 181,
81
- "data/rwd-verification.csv": 576,
82
- "data/browser-verification.csv": 2282,
81
+ "data/rwd-verification.csv": 608,
82
+ "data/browser-verification.csv": 2473,
83
83
  "data/style-state-verification.csv": 52,
84
84
  "data/interaction-verification.csv": 7,
85
85
  "data/data-class-hierarchy.csv": 121,
@@ -246,6 +246,20 @@ https://mosaic.moksaweb.com/moksa/,_,mk-mast-side-4,alignItems,baseline,baseline
246
246
  https://mosaic.moksaweb.com/moksa/,_,mk-mast-side-4,paddingTop,11px,11px,ok
247
247
  https://mosaic.moksaweb.com/moksa/,_,mk-mast-side-4,paddingBottom,11px,11px,ok
248
248
  https://mosaic.moksaweb.com/moksa/,_,mk-mast-side-4,customStyles:border-top,"1px solid rgba(22,24,28,.16)",no computed value,not-comparable
249
+ https://mosaic.moksaweb.com/moksa/,_,mk-plate-in,width,100%,viewport- or parent-relative,not-comparable
250
+ https://mosaic.moksaweb.com/moksa/,_,mk-plate-in,maxWidth,1240px,1240px,ok
251
+ https://mosaic.moksaweb.com/moksa/,_,mk-plate-in,marginLeft,auto,auto resolves to a used value (60px),not-comparable
252
+ https://mosaic.moksaweb.com/moksa/,_,mk-plate-in,marginRight,auto,auto resolves to a used value (60px),not-comparable
253
+ https://mosaic.moksaweb.com/moksa/,_,mk-plate-pad,paddingTop,104px,104px,ok
254
+ https://mosaic.moksaweb.com/moksa/,_,mk-plate-pad,paddingBottom,104px,104px,ok
255
+ https://mosaic.moksaweb.com/moksa/,_,mk-plate-pad,display,grid,grid,ok
256
+ https://mosaic.moksaweb.com/moksa/,_,mk-plate-pad,gridCols,auto 1fr,130.688px 1053.31px,ok
257
+ https://mosaic.moksaweb.com/moksa/,_,mk-plate-pad,columnGap,56px,56px,ok
258
+ https://mosaic.moksaweb.com/moksa/,_,mk-plate-pad,alignItems,start,start,ok
259
+ https://mosaic.moksaweb.com/moksa/,_,mk-plate-sig,marginTop,34px,34px,ok
260
+ https://mosaic.moksaweb.com/moksa/,_,mk-plate-sig,display,flex,flex,ok
261
+ https://mosaic.moksaweb.com/moksa/,_,mk-plate-sig,columnGap,12px,12px,ok
262
+ https://mosaic.moksaweb.com/moksa/,_,mk-plate-sig,alignItems,center,center,ok
249
263
  https://mosaic.moksaweb.com/moksa/,_,mk-proc-0,paddingTop,26px,26px,ok
250
264
  https://mosaic.moksaweb.com/moksa/,_,mk-proc-0,paddingRight,18px,18px,ok
251
265
  https://mosaic.moksaweb.com/moksa/,_,mk-proc-0,customStyles:border-top,"1px solid rgba(22,24,28,.16)",no computed value,not-comparable
@@ -345,6 +359,46 @@ https://mosaic.moksaweb.com/moksa/,_,mk-spec-n-3,alignItems,baseline,baseline,ok
345
359
  https://mosaic.moksaweb.com/moksa/,_,mk-spec-n-3,columnGap,3px,3px,ok
346
360
  https://mosaic.moksaweb.com/moksa/,_,mk-spec-n-3,marginTop,12px,12px,ok
347
361
  https://mosaic.moksaweb.com/moksa/,_,mk-spec-rule,marginTop,56px,56px,ok
362
+ https://mosaic.moksaweb.com/moksa/,_,mk-spec2-head,display,flex,flex,ok
363
+ https://mosaic.moksaweb.com/moksa/,_,mk-spec2-head,justifyContent,space-between,space-between,ok
364
+ https://mosaic.moksaweb.com/moksa/,_,mk-spec2-head,columnGap,20px,20px,ok
365
+ https://mosaic.moksaweb.com/moksa/,_,mk-spec2-head,rowGap,8px,8px,ok
366
+ https://mosaic.moksaweb.com/moksa/,_,mk-spec2-head,customStyles:flex-wrap,wrap,wrap,ok
367
+ https://mosaic.moksaweb.com/moksa/,_,mk-spec2-in,width,100%,viewport- or parent-relative,not-comparable
368
+ https://mosaic.moksaweb.com/moksa/,_,mk-spec2-in,maxWidth,1240px,1240px,ok
369
+ https://mosaic.moksaweb.com/moksa/,_,mk-spec2-in,marginLeft,auto,auto resolves to a used value (60px),not-comparable
370
+ https://mosaic.moksaweb.com/moksa/,_,mk-spec2-in,marginRight,auto,auto resolves to a used value (60px),not-comparable
371
+ https://mosaic.moksaweb.com/moksa/,_,mk-spec2-pad,paddingTop,88px,88px,ok
372
+ https://mosaic.moksaweb.com/moksa/,_,mk-spec2-pad,paddingBottom,88px,88px,ok
373
+ https://mosaic.moksaweb.com/moksa/,_,mk-spec2-r-0,display,grid,grid,ok
374
+ https://mosaic.moksaweb.com/moksa/,_,mk-spec2-r-0,gridCols,1fr auto,1044.8px 167.203px,ok
375
+ https://mosaic.moksaweb.com/moksa/,_,mk-spec2-r-0,columnGap,28px,28px,ok
376
+ https://mosaic.moksaweb.com/moksa/,_,mk-spec2-r-0,alignItems,baseline,baseline,ok
377
+ https://mosaic.moksaweb.com/moksa/,_,mk-spec2-r-0,paddingTop,20px,20px,ok
378
+ https://mosaic.moksaweb.com/moksa/,_,mk-spec2-r-0,paddingBottom,20px,20px,ok
379
+ https://mosaic.moksaweb.com/moksa/,_,mk-spec2-r-0,customStyles:border-top,"1px solid rgba(250,250,247,.18)",no computed value,not-comparable
380
+ https://mosaic.moksaweb.com/moksa/,_,mk-spec2-r-1,display,grid,grid,ok
381
+ https://mosaic.moksaweb.com/moksa/,_,mk-spec2-r-1,gridCols,1fr auto,1052.39px 159.609px,ok
382
+ https://mosaic.moksaweb.com/moksa/,_,mk-spec2-r-1,columnGap,28px,28px,ok
383
+ https://mosaic.moksaweb.com/moksa/,_,mk-spec2-r-1,alignItems,baseline,baseline,ok
384
+ https://mosaic.moksaweb.com/moksa/,_,mk-spec2-r-1,paddingTop,20px,20px,ok
385
+ https://mosaic.moksaweb.com/moksa/,_,mk-spec2-r-1,paddingBottom,20px,20px,ok
386
+ https://mosaic.moksaweb.com/moksa/,_,mk-spec2-r-1,customStyles:border-top,"1px solid rgba(250,250,247,.18)",no computed value,not-comparable
387
+ https://mosaic.moksaweb.com/moksa/,_,mk-spec2-r-2,display,grid,grid,ok
388
+ https://mosaic.moksaweb.com/moksa/,_,mk-spec2-r-2,gridCols,1fr auto,1044.8px 167.203px,ok
389
+ https://mosaic.moksaweb.com/moksa/,_,mk-spec2-r-2,columnGap,28px,28px,ok
390
+ https://mosaic.moksaweb.com/moksa/,_,mk-spec2-r-2,alignItems,baseline,baseline,ok
391
+ https://mosaic.moksaweb.com/moksa/,_,mk-spec2-r-2,paddingTop,20px,20px,ok
392
+ https://mosaic.moksaweb.com/moksa/,_,mk-spec2-r-2,paddingBottom,20px,20px,ok
393
+ https://mosaic.moksaweb.com/moksa/,_,mk-spec2-r-2,customStyles:border-top,"1px solid rgba(250,250,247,.18)",no computed value,not-comparable
394
+ https://mosaic.moksaweb.com/moksa/,_,mk-spec2-r-3,display,grid,grid,ok
395
+ https://mosaic.moksaweb.com/moksa/,_,mk-spec2-r-3,gridCols,1fr auto,1044.8px 167.203px,ok
396
+ https://mosaic.moksaweb.com/moksa/,_,mk-spec2-r-3,columnGap,28px,28px,ok
397
+ https://mosaic.moksaweb.com/moksa/,_,mk-spec2-r-3,alignItems,baseline,baseline,ok
398
+ https://mosaic.moksaweb.com/moksa/,_,mk-spec2-r-3,paddingTop,20px,20px,ok
399
+ https://mosaic.moksaweb.com/moksa/,_,mk-spec2-r-3,paddingBottom,20px,20px,ok
400
+ https://mosaic.moksaweb.com/moksa/,_,mk-spec2-r-3,customStyles:border-top,"1px solid rgba(250,250,247,.18)",no computed value,not-comparable
401
+ https://mosaic.moksaweb.com/moksa/,_,mk-spec2-rows,marginTop,40px,40px,ok
348
402
  https://mosaic.moksaweb.com/moksa/,_,mk-stack-0,display,grid,grid,ok
349
403
  https://mosaic.moksaweb.com/moksa/,_,mk-stack-0,gridCols,160px 1fr,160px 1056px,ok
350
404
  https://mosaic.moksaweb.com/moksa/,_,mk-stack-0,columnGap,24px,24px,ok
@@ -723,6 +777,10 @@ https://mosaic.moksaweb.com/moksa/,_,mk-works-thead,gridCols,60px 1.4fr 1fr 1fr,
723
777
  https://mosaic.moksaweb.com/moksa/,_,mk-works-thead,columnGap,20px,20px,ok
724
778
  https://mosaic.moksaweb.com/moksa/,_,mk-works-thead,paddingBottom,12px,12px,ok
725
779
  https://mosaic.moksaweb.com/moksa/,_,mk-works-thead,customStyles:border-bottom,"1px solid rgba(22,24,28,.34)",no computed value,not-comparable
780
+ https://mosaic.moksaweb.com/moksa/,_,plate,backgroundColor,"rgb(243,243,239)","rgb(243, 243, 239)",ok
781
+ https://mosaic.moksaweb.com/moksa/,_,plate,paddingLeft,40px,40px,ok
782
+ https://mosaic.moksaweb.com/moksa/,_,plate,paddingRight,40px,40px,ok
783
+ https://mosaic.moksaweb.com/moksa/,_,plate,fontFamily,"'Noto Sans TC','PingFang TC','Hiragino Sans TC','Microsoft JhengHei',sans-serif","""Noto Sans TC"", ""PingFang TC"", ""Hiragino Sans TC"", ""Microsoft JhengHei"", sans-serif",ok
726
784
  https://mosaic.moksaweb.com/moksa/,_,process,backgroundColor,"rgb(250,250,247)","rgb(250, 250, 247)",ok
727
785
  https://mosaic.moksaweb.com/moksa/,_,process,paddingLeft,40px,40px,ok
728
786
  https://mosaic.moksaweb.com/moksa/,_,process,paddingRight,40px,40px,ok
@@ -735,6 +793,10 @@ https://mosaic.moksaweb.com/moksa/,_,services,backgroundColor,"rgb(250,250,247)"
735
793
  https://mosaic.moksaweb.com/moksa/,_,services,paddingLeft,40px,40px,ok
736
794
  https://mosaic.moksaweb.com/moksa/,_,services,paddingRight,40px,40px,ok
737
795
  https://mosaic.moksaweb.com/moksa/,_,services,fontFamily,"'Noto Sans TC','PingFang TC','Hiragino Sans TC','Microsoft JhengHei',sans-serif","""Noto Sans TC"", ""PingFang TC"", ""Hiragino Sans TC"", ""Microsoft JhengHei"", sans-serif",ok
796
+ https://mosaic.moksaweb.com/moksa/,_,specimen,backgroundColor,"rgb(22,24,28)","rgb(22, 24, 28)",ok
797
+ https://mosaic.moksaweb.com/moksa/,_,specimen,paddingLeft,40px,40px,ok
798
+ https://mosaic.moksaweb.com/moksa/,_,specimen,paddingRight,40px,40px,ok
799
+ https://mosaic.moksaweb.com/moksa/,_,specimen,fontFamily,"'Noto Sans TC','PingFang TC','Hiragino Sans TC','Microsoft JhengHei',sans-serif","""Noto Sans TC"", ""PingFang TC"", ""Hiragino Sans TC"", ""Microsoft JhengHei"", sans-serif",ok
738
800
  https://mosaic.moksaweb.com/moksa/,_,stack,backgroundColor,"rgb(250,250,247)","rgb(250, 250, 247)",ok
739
801
  https://mosaic.moksaweb.com/moksa/,_,stack,paddingLeft,40px,40px,ok
740
802
  https://mosaic.moksaweb.com/moksa/,_,stack,paddingRight,40px,40px,ok
@@ -990,6 +1052,20 @@ https://mosaic.moksaweb.com/moksa/,_t,mk-mast-side-4,alignItems,baseline,baselin
990
1052
  https://mosaic.moksaweb.com/moksa/,_t,mk-mast-side-4,paddingTop,11px,11px,ok
991
1053
  https://mosaic.moksaweb.com/moksa/,_t,mk-mast-side-4,paddingBottom,11px,11px,ok
992
1054
  https://mosaic.moksaweb.com/moksa/,_t,mk-mast-side-4,customStyles:border-top,"1px solid rgba(22,24,28,.16)",no computed value,not-comparable
1055
+ https://mosaic.moksaweb.com/moksa/,_t,mk-plate-in,width,100%,viewport- or parent-relative,not-comparable
1056
+ https://mosaic.moksaweb.com/moksa/,_t,mk-plate-in,maxWidth,1240px,1240px,ok
1057
+ https://mosaic.moksaweb.com/moksa/,_t,mk-plate-in,marginLeft,auto,auto resolves to a used value (0px),not-comparable
1058
+ https://mosaic.moksaweb.com/moksa/,_t,mk-plate-in,marginRight,auto,auto resolves to a used value (0px),not-comparable
1059
+ https://mosaic.moksaweb.com/moksa/,_t,mk-plate-pad,paddingTop,104px,104px,ok
1060
+ https://mosaic.moksaweb.com/moksa/,_t,mk-plate-pad,paddingBottom,104px,104px,ok
1061
+ https://mosaic.moksaweb.com/moksa/,_t,mk-plate-pad,display,grid,grid,ok
1062
+ https://mosaic.moksaweb.com/moksa/,_t,mk-plate-pad,gridCols,auto 1fr,102.969px 705.031px,ok
1063
+ https://mosaic.moksaweb.com/moksa/,_t,mk-plate-pad,columnGap,36px,36px,ok
1064
+ https://mosaic.moksaweb.com/moksa/,_t,mk-plate-pad,alignItems,start,start,ok
1065
+ https://mosaic.moksaweb.com/moksa/,_t,mk-plate-sig,marginTop,34px,34px,ok
1066
+ https://mosaic.moksaweb.com/moksa/,_t,mk-plate-sig,display,flex,flex,ok
1067
+ https://mosaic.moksaweb.com/moksa/,_t,mk-plate-sig,columnGap,12px,12px,ok
1068
+ https://mosaic.moksaweb.com/moksa/,_t,mk-plate-sig,alignItems,center,center,ok
993
1069
  https://mosaic.moksaweb.com/moksa/,_t,mk-proc-0,paddingTop,26px,26px,ok
994
1070
  https://mosaic.moksaweb.com/moksa/,_t,mk-proc-0,paddingRight,18px,18px,ok
995
1071
  https://mosaic.moksaweb.com/moksa/,_t,mk-proc-0,customStyles:border-top,"1px solid rgba(22,24,28,.16)",no computed value,not-comparable
@@ -1104,6 +1180,46 @@ https://mosaic.moksaweb.com/moksa/,_t,mk-spec-n-3,alignItems,baseline,baseline,o
1104
1180
  https://mosaic.moksaweb.com/moksa/,_t,mk-spec-n-3,columnGap,3px,3px,ok
1105
1181
  https://mosaic.moksaweb.com/moksa/,_t,mk-spec-n-3,marginTop,12px,12px,ok
1106
1182
  https://mosaic.moksaweb.com/moksa/,_t,mk-spec-rule,marginTop,56px,56px,ok
1183
+ https://mosaic.moksaweb.com/moksa/,_t,mk-spec2-head,display,flex,flex,ok
1184
+ https://mosaic.moksaweb.com/moksa/,_t,mk-spec2-head,justifyContent,space-between,space-between,ok
1185
+ https://mosaic.moksaweb.com/moksa/,_t,mk-spec2-head,columnGap,20px,20px,ok
1186
+ https://mosaic.moksaweb.com/moksa/,_t,mk-spec2-head,rowGap,8px,8px,ok
1187
+ https://mosaic.moksaweb.com/moksa/,_t,mk-spec2-head,customStyles:flex-wrap,wrap,wrap,ok
1188
+ https://mosaic.moksaweb.com/moksa/,_t,mk-spec2-in,width,100%,viewport- or parent-relative,not-comparable
1189
+ https://mosaic.moksaweb.com/moksa/,_t,mk-spec2-in,maxWidth,1240px,1240px,ok
1190
+ https://mosaic.moksaweb.com/moksa/,_t,mk-spec2-in,marginLeft,auto,auto resolves to a used value (0px),not-comparable
1191
+ https://mosaic.moksaweb.com/moksa/,_t,mk-spec2-in,marginRight,auto,auto resolves to a used value (0px),not-comparable
1192
+ https://mosaic.moksaweb.com/moksa/,_t,mk-spec2-pad,paddingTop,88px,88px,ok
1193
+ https://mosaic.moksaweb.com/moksa/,_t,mk-spec2-pad,paddingBottom,88px,88px,ok
1194
+ https://mosaic.moksaweb.com/moksa/,_t,mk-spec2-r-0,display,grid,grid,ok
1195
+ https://mosaic.moksaweb.com/moksa/,_t,mk-spec2-r-0,gridCols,1fr auto,648.797px 167.203px,ok
1196
+ https://mosaic.moksaweb.com/moksa/,_t,mk-spec2-r-0,columnGap,28px,28px,ok
1197
+ https://mosaic.moksaweb.com/moksa/,_t,mk-spec2-r-0,alignItems,baseline,baseline,ok
1198
+ https://mosaic.moksaweb.com/moksa/,_t,mk-spec2-r-0,paddingTop,20px,20px,ok
1199
+ https://mosaic.moksaweb.com/moksa/,_t,mk-spec2-r-0,paddingBottom,20px,20px,ok
1200
+ https://mosaic.moksaweb.com/moksa/,_t,mk-spec2-r-0,customStyles:border-top,"1px solid rgba(250,250,247,.18)",no computed value,not-comparable
1201
+ https://mosaic.moksaweb.com/moksa/,_t,mk-spec2-r-1,display,grid,grid,ok
1202
+ https://mosaic.moksaweb.com/moksa/,_t,mk-spec2-r-1,gridCols,1fr auto,656.391px 159.609px,ok
1203
+ https://mosaic.moksaweb.com/moksa/,_t,mk-spec2-r-1,columnGap,28px,28px,ok
1204
+ https://mosaic.moksaweb.com/moksa/,_t,mk-spec2-r-1,alignItems,baseline,baseline,ok
1205
+ https://mosaic.moksaweb.com/moksa/,_t,mk-spec2-r-1,paddingTop,20px,20px,ok
1206
+ https://mosaic.moksaweb.com/moksa/,_t,mk-spec2-r-1,paddingBottom,20px,20px,ok
1207
+ https://mosaic.moksaweb.com/moksa/,_t,mk-spec2-r-1,customStyles:border-top,"1px solid rgba(250,250,247,.18)",no computed value,not-comparable
1208
+ https://mosaic.moksaweb.com/moksa/,_t,mk-spec2-r-2,display,grid,grid,ok
1209
+ https://mosaic.moksaweb.com/moksa/,_t,mk-spec2-r-2,gridCols,1fr auto,648.797px 167.203px,ok
1210
+ https://mosaic.moksaweb.com/moksa/,_t,mk-spec2-r-2,columnGap,28px,28px,ok
1211
+ https://mosaic.moksaweb.com/moksa/,_t,mk-spec2-r-2,alignItems,baseline,baseline,ok
1212
+ https://mosaic.moksaweb.com/moksa/,_t,mk-spec2-r-2,paddingTop,20px,20px,ok
1213
+ https://mosaic.moksaweb.com/moksa/,_t,mk-spec2-r-2,paddingBottom,20px,20px,ok
1214
+ https://mosaic.moksaweb.com/moksa/,_t,mk-spec2-r-2,customStyles:border-top,"1px solid rgba(250,250,247,.18)",no computed value,not-comparable
1215
+ https://mosaic.moksaweb.com/moksa/,_t,mk-spec2-r-3,display,grid,grid,ok
1216
+ https://mosaic.moksaweb.com/moksa/,_t,mk-spec2-r-3,gridCols,1fr auto,648.797px 167.203px,ok
1217
+ https://mosaic.moksaweb.com/moksa/,_t,mk-spec2-r-3,columnGap,28px,28px,ok
1218
+ https://mosaic.moksaweb.com/moksa/,_t,mk-spec2-r-3,alignItems,baseline,baseline,ok
1219
+ https://mosaic.moksaweb.com/moksa/,_t,mk-spec2-r-3,paddingTop,20px,20px,ok
1220
+ https://mosaic.moksaweb.com/moksa/,_t,mk-spec2-r-3,paddingBottom,20px,20px,ok
1221
+ https://mosaic.moksaweb.com/moksa/,_t,mk-spec2-r-3,customStyles:border-top,"1px solid rgba(250,250,247,.18)",no computed value,not-comparable
1222
+ https://mosaic.moksaweb.com/moksa/,_t,mk-spec2-rows,marginTop,40px,40px,ok
1107
1223
  https://mosaic.moksaweb.com/moksa/,_t,mk-stack-0,display,grid,grid,ok
1108
1224
  https://mosaic.moksaweb.com/moksa/,_t,mk-stack-0,gridCols,160px 1fr,160px 660px,ok
1109
1225
  https://mosaic.moksaweb.com/moksa/,_t,mk-stack-0,columnGap,24px,24px,ok
@@ -1483,6 +1599,10 @@ https://mosaic.moksaweb.com/moksa/,_t,mk-works-thead,gridCols,60px 1.4fr 1fr 1fr
1483
1599
  https://mosaic.moksaweb.com/moksa/,_t,mk-works-thead,columnGap,20px,20px,ok
1484
1600
  https://mosaic.moksaweb.com/moksa/,_t,mk-works-thead,paddingBottom,12px,12px,ok
1485
1601
  https://mosaic.moksaweb.com/moksa/,_t,mk-works-thead,customStyles:border-bottom,"1px solid rgba(22,24,28,.34)",no computed value,not-comparable
1602
+ https://mosaic.moksaweb.com/moksa/,_t,plate,backgroundColor,"rgb(243,243,239)","rgb(243, 243, 239)",ok
1603
+ https://mosaic.moksaweb.com/moksa/,_t,plate,paddingLeft,28px,28px,ok
1604
+ https://mosaic.moksaweb.com/moksa/,_t,plate,paddingRight,28px,28px,ok
1605
+ https://mosaic.moksaweb.com/moksa/,_t,plate,fontFamily,"'Noto Sans TC','PingFang TC','Hiragino Sans TC','Microsoft JhengHei',sans-serif","""Noto Sans TC"", ""PingFang TC"", ""Hiragino Sans TC"", ""Microsoft JhengHei"", sans-serif",ok
1486
1606
  https://mosaic.moksaweb.com/moksa/,_t,process,backgroundColor,"rgb(250,250,247)","rgb(250, 250, 247)",ok
1487
1607
  https://mosaic.moksaweb.com/moksa/,_t,process,paddingLeft,28px,28px,ok
1488
1608
  https://mosaic.moksaweb.com/moksa/,_t,process,paddingRight,28px,28px,ok
@@ -1495,6 +1615,10 @@ https://mosaic.moksaweb.com/moksa/,_t,services,backgroundColor,"rgb(250,250,247)
1495
1615
  https://mosaic.moksaweb.com/moksa/,_t,services,paddingLeft,28px,28px,ok
1496
1616
  https://mosaic.moksaweb.com/moksa/,_t,services,paddingRight,28px,28px,ok
1497
1617
  https://mosaic.moksaweb.com/moksa/,_t,services,fontFamily,"'Noto Sans TC','PingFang TC','Hiragino Sans TC','Microsoft JhengHei',sans-serif","""Noto Sans TC"", ""PingFang TC"", ""Hiragino Sans TC"", ""Microsoft JhengHei"", sans-serif",ok
1618
+ https://mosaic.moksaweb.com/moksa/,_t,specimen,backgroundColor,"rgb(22,24,28)","rgb(22, 24, 28)",ok
1619
+ https://mosaic.moksaweb.com/moksa/,_t,specimen,paddingLeft,28px,28px,ok
1620
+ https://mosaic.moksaweb.com/moksa/,_t,specimen,paddingRight,28px,28px,ok
1621
+ https://mosaic.moksaweb.com/moksa/,_t,specimen,fontFamily,"'Noto Sans TC','PingFang TC','Hiragino Sans TC','Microsoft JhengHei',sans-serif","""Noto Sans TC"", ""PingFang TC"", ""Hiragino Sans TC"", ""Microsoft JhengHei"", sans-serif",ok
1498
1622
  https://mosaic.moksaweb.com/moksa/,_t,stack,backgroundColor,"rgb(250,250,247)","rgb(250, 250, 247)",ok
1499
1623
  https://mosaic.moksaweb.com/moksa/,_t,stack,paddingLeft,28px,28px,ok
1500
1624
  https://mosaic.moksaweb.com/moksa/,_t,stack,paddingRight,28px,28px,ok
@@ -1750,6 +1874,21 @@ https://mosaic.moksaweb.com/moksa/,_m,mk-mast-side-4,alignItems,baseline,baselin
1750
1874
  https://mosaic.moksaweb.com/moksa/,_m,mk-mast-side-4,paddingTop,11px,11px,ok
1751
1875
  https://mosaic.moksaweb.com/moksa/,_m,mk-mast-side-4,paddingBottom,11px,11px,ok
1752
1876
  https://mosaic.moksaweb.com/moksa/,_m,mk-mast-side-4,customStyles:border-top,"1px solid rgba(22,24,28,.16)",no computed value,not-comparable
1877
+ https://mosaic.moksaweb.com/moksa/,_m,mk-plate-in,width,100%,viewport- or parent-relative,not-comparable
1878
+ https://mosaic.moksaweb.com/moksa/,_m,mk-plate-in,maxWidth,1240px,1240px,ok
1879
+ https://mosaic.moksaweb.com/moksa/,_m,mk-plate-in,marginLeft,auto,auto resolves to a used value (0px),not-comparable
1880
+ https://mosaic.moksaweb.com/moksa/,_m,mk-plate-in,marginRight,auto,auto resolves to a used value (0px),not-comparable
1881
+ https://mosaic.moksaweb.com/moksa/,_m,mk-plate-pad,paddingTop,62px,62px,ok
1882
+ https://mosaic.moksaweb.com/moksa/,_m,mk-plate-pad,paddingBottom,62px,62px,ok
1883
+ https://mosaic.moksaweb.com/moksa/,_m,mk-plate-pad,display,grid,grid,ok
1884
+ https://mosaic.moksaweb.com/moksa/,_m,mk-plate-pad,gridCols,"repeat(1, 1fr)",354px,ok
1885
+ https://mosaic.moksaweb.com/moksa/,_m,mk-plate-pad,columnGap,36px,36px,ok
1886
+ https://mosaic.moksaweb.com/moksa/,_m,mk-plate-pad,alignItems,start,start,ok
1887
+ https://mosaic.moksaweb.com/moksa/,_m,mk-plate-pad,rowGap,22px,22px,ok
1888
+ https://mosaic.moksaweb.com/moksa/,_m,mk-plate-sig,marginTop,34px,34px,ok
1889
+ https://mosaic.moksaweb.com/moksa/,_m,mk-plate-sig,display,flex,flex,ok
1890
+ https://mosaic.moksaweb.com/moksa/,_m,mk-plate-sig,columnGap,12px,12px,ok
1891
+ https://mosaic.moksaweb.com/moksa/,_m,mk-plate-sig,alignItems,center,center,ok
1753
1892
  https://mosaic.moksaweb.com/moksa/,_m,mk-proc-0,paddingTop,20px,20px,ok
1754
1893
  https://mosaic.moksaweb.com/moksa/,_m,mk-proc-0,paddingRight,0px,0px,ok
1755
1894
  https://mosaic.moksaweb.com/moksa/,_m,mk-proc-0,customStyles:border-top,"1px solid rgba(22,24,28,.16)",no computed value,not-comparable
@@ -1864,6 +2003,50 @@ https://mosaic.moksaweb.com/moksa/,_m,mk-spec-n-3,alignItems,baseline,baseline,o
1864
2003
  https://mosaic.moksaweb.com/moksa/,_m,mk-spec-n-3,columnGap,3px,3px,ok
1865
2004
  https://mosaic.moksaweb.com/moksa/,_m,mk-spec-n-3,marginTop,12px,12px,ok
1866
2005
  https://mosaic.moksaweb.com/moksa/,_m,mk-spec-rule,marginTop,40px,40px,ok
2006
+ https://mosaic.moksaweb.com/moksa/,_m,mk-spec2-head,display,flex,flex,ok
2007
+ https://mosaic.moksaweb.com/moksa/,_m,mk-spec2-head,justifyContent,space-between,space-between,ok
2008
+ https://mosaic.moksaweb.com/moksa/,_m,mk-spec2-head,columnGap,20px,20px,ok
2009
+ https://mosaic.moksaweb.com/moksa/,_m,mk-spec2-head,rowGap,8px,8px,ok
2010
+ https://mosaic.moksaweb.com/moksa/,_m,mk-spec2-head,customStyles:flex-wrap,wrap,wrap,ok
2011
+ https://mosaic.moksaweb.com/moksa/,_m,mk-spec2-in,width,100%,viewport- or parent-relative,not-comparable
2012
+ https://mosaic.moksaweb.com/moksa/,_m,mk-spec2-in,maxWidth,1240px,1240px,ok
2013
+ https://mosaic.moksaweb.com/moksa/,_m,mk-spec2-in,marginLeft,auto,auto resolves to a used value (0px),not-comparable
2014
+ https://mosaic.moksaweb.com/moksa/,_m,mk-spec2-in,marginRight,auto,auto resolves to a used value (0px),not-comparable
2015
+ https://mosaic.moksaweb.com/moksa/,_m,mk-spec2-pad,paddingTop,58px,58px,ok
2016
+ https://mosaic.moksaweb.com/moksa/,_m,mk-spec2-pad,paddingBottom,58px,58px,ok
2017
+ https://mosaic.moksaweb.com/moksa/,_m,mk-spec2-r-0,display,grid,grid,ok
2018
+ https://mosaic.moksaweb.com/moksa/,_m,mk-spec2-r-0,gridCols,1fr,354px,ok
2019
+ https://mosaic.moksaweb.com/moksa/,_m,mk-spec2-r-0,columnGap,28px,28px,ok
2020
+ https://mosaic.moksaweb.com/moksa/,_m,mk-spec2-r-0,alignItems,baseline,baseline,ok
2021
+ https://mosaic.moksaweb.com/moksa/,_m,mk-spec2-r-0,paddingTop,14px,14px,ok
2022
+ https://mosaic.moksaweb.com/moksa/,_m,mk-spec2-r-0,paddingBottom,14px,14px,ok
2023
+ https://mosaic.moksaweb.com/moksa/,_m,mk-spec2-r-0,customStyles:border-top,"1px solid rgba(250,250,247,.18)",no computed value,not-comparable
2024
+ https://mosaic.moksaweb.com/moksa/,_m,mk-spec2-r-0,rowGap,6px,6px,ok
2025
+ https://mosaic.moksaweb.com/moksa/,_m,mk-spec2-r-1,display,grid,grid,ok
2026
+ https://mosaic.moksaweb.com/moksa/,_m,mk-spec2-r-1,gridCols,1fr,354px,ok
2027
+ https://mosaic.moksaweb.com/moksa/,_m,mk-spec2-r-1,columnGap,28px,28px,ok
2028
+ https://mosaic.moksaweb.com/moksa/,_m,mk-spec2-r-1,alignItems,baseline,baseline,ok
2029
+ https://mosaic.moksaweb.com/moksa/,_m,mk-spec2-r-1,paddingTop,14px,14px,ok
2030
+ https://mosaic.moksaweb.com/moksa/,_m,mk-spec2-r-1,paddingBottom,14px,14px,ok
2031
+ https://mosaic.moksaweb.com/moksa/,_m,mk-spec2-r-1,customStyles:border-top,"1px solid rgba(250,250,247,.18)",no computed value,not-comparable
2032
+ https://mosaic.moksaweb.com/moksa/,_m,mk-spec2-r-1,rowGap,6px,6px,ok
2033
+ https://mosaic.moksaweb.com/moksa/,_m,mk-spec2-r-2,display,grid,grid,ok
2034
+ https://mosaic.moksaweb.com/moksa/,_m,mk-spec2-r-2,gridCols,1fr,354px,ok
2035
+ https://mosaic.moksaweb.com/moksa/,_m,mk-spec2-r-2,columnGap,28px,28px,ok
2036
+ https://mosaic.moksaweb.com/moksa/,_m,mk-spec2-r-2,alignItems,baseline,baseline,ok
2037
+ https://mosaic.moksaweb.com/moksa/,_m,mk-spec2-r-2,paddingTop,14px,14px,ok
2038
+ https://mosaic.moksaweb.com/moksa/,_m,mk-spec2-r-2,paddingBottom,14px,14px,ok
2039
+ https://mosaic.moksaweb.com/moksa/,_m,mk-spec2-r-2,customStyles:border-top,"1px solid rgba(250,250,247,.18)",no computed value,not-comparable
2040
+ https://mosaic.moksaweb.com/moksa/,_m,mk-spec2-r-2,rowGap,6px,6px,ok
2041
+ https://mosaic.moksaweb.com/moksa/,_m,mk-spec2-r-3,display,grid,grid,ok
2042
+ https://mosaic.moksaweb.com/moksa/,_m,mk-spec2-r-3,gridCols,1fr,354px,ok
2043
+ https://mosaic.moksaweb.com/moksa/,_m,mk-spec2-r-3,columnGap,28px,28px,ok
2044
+ https://mosaic.moksaweb.com/moksa/,_m,mk-spec2-r-3,alignItems,baseline,baseline,ok
2045
+ https://mosaic.moksaweb.com/moksa/,_m,mk-spec2-r-3,paddingTop,14px,14px,ok
2046
+ https://mosaic.moksaweb.com/moksa/,_m,mk-spec2-r-3,paddingBottom,14px,14px,ok
2047
+ https://mosaic.moksaweb.com/moksa/,_m,mk-spec2-r-3,customStyles:border-top,"1px solid rgba(250,250,247,.18)",no computed value,not-comparable
2048
+ https://mosaic.moksaweb.com/moksa/,_m,mk-spec2-r-3,rowGap,6px,6px,ok
2049
+ https://mosaic.moksaweb.com/moksa/,_m,mk-spec2-rows,marginTop,26px,26px,ok
1867
2050
  https://mosaic.moksaweb.com/moksa/,_m,mk-stack-0,display,grid,grid,ok
1868
2051
  https://mosaic.moksaweb.com/moksa/,_m,mk-stack-0,gridCols,1fr,354px,ok
1869
2052
  https://mosaic.moksaweb.com/moksa/,_m,mk-stack-0,columnGap,24px,24px,ok
@@ -2261,6 +2444,10 @@ https://mosaic.moksaweb.com/moksa/,_m,mk-works-thead,gridCols,60px 1.4fr 1fr 1fr
2261
2444
  https://mosaic.moksaweb.com/moksa/,_m,mk-works-thead,columnGap,20px,20px,ok
2262
2445
  https://mosaic.moksaweb.com/moksa/,_m,mk-works-thead,paddingBottom,12px,12px,ok
2263
2446
  https://mosaic.moksaweb.com/moksa/,_m,mk-works-thead,customStyles:border-bottom,"1px solid rgba(22,24,28,.34)",no computed value,not-comparable
2447
+ https://mosaic.moksaweb.com/moksa/,_m,plate,backgroundColor,"rgb(243,243,239)","rgb(243, 243, 239)",ok
2448
+ https://mosaic.moksaweb.com/moksa/,_m,plate,paddingLeft,18px,18px,ok
2449
+ https://mosaic.moksaweb.com/moksa/,_m,plate,paddingRight,18px,18px,ok
2450
+ https://mosaic.moksaweb.com/moksa/,_m,plate,fontFamily,"'Noto Sans TC','PingFang TC','Hiragino Sans TC','Microsoft JhengHei',sans-serif","""Noto Sans TC"", ""PingFang TC"", ""Hiragino Sans TC"", ""Microsoft JhengHei"", sans-serif",ok
2264
2451
  https://mosaic.moksaweb.com/moksa/,_m,process,backgroundColor,"rgb(250,250,247)","rgb(250, 250, 247)",ok
2265
2452
  https://mosaic.moksaweb.com/moksa/,_m,process,paddingLeft,18px,18px,ok
2266
2453
  https://mosaic.moksaweb.com/moksa/,_m,process,paddingRight,18px,18px,ok
@@ -2273,6 +2460,10 @@ https://mosaic.moksaweb.com/moksa/,_m,services,backgroundColor,"rgb(250,250,247)
2273
2460
  https://mosaic.moksaweb.com/moksa/,_m,services,paddingLeft,18px,18px,ok
2274
2461
  https://mosaic.moksaweb.com/moksa/,_m,services,paddingRight,18px,18px,ok
2275
2462
  https://mosaic.moksaweb.com/moksa/,_m,services,fontFamily,"'Noto Sans TC','PingFang TC','Hiragino Sans TC','Microsoft JhengHei',sans-serif","""Noto Sans TC"", ""PingFang TC"", ""Hiragino Sans TC"", ""Microsoft JhengHei"", sans-serif",ok
2463
+ https://mosaic.moksaweb.com/moksa/,_m,specimen,backgroundColor,"rgb(22,24,28)","rgb(22, 24, 28)",ok
2464
+ https://mosaic.moksaweb.com/moksa/,_m,specimen,paddingLeft,18px,18px,ok
2465
+ https://mosaic.moksaweb.com/moksa/,_m,specimen,paddingRight,18px,18px,ok
2466
+ https://mosaic.moksaweb.com/moksa/,_m,specimen,fontFamily,"'Noto Sans TC','PingFang TC','Hiragino Sans TC','Microsoft JhengHei',sans-serif","""Noto Sans TC"", ""PingFang TC"", ""Hiragino Sans TC"", ""Microsoft JhengHei"", sans-serif",ok
2276
2467
  https://mosaic.moksaweb.com/moksa/,_m,stack,backgroundColor,"rgb(250,250,247)","rgb(250, 250, 247)",ok
2277
2468
  https://mosaic.moksaweb.com/moksa/,_m,stack,paddingLeft,18px,18px,ok
2278
2469
  https://mosaic.moksaweb.com/moksa/,_m,stack,paddingRight,18px,18px,ok
@@ -1,20 +1,23 @@
1
1
  check,result,detail
2
- PLAYS,PASS,17 of 17 intro elements changed state
2
+ PLAYS,PASS,43 of 43 intro elements changed state
3
3
  COUNTS,PASS,--mk-n reached 100
4
- ENDS,PASS,veil is out of hit-testing from 3200ms
5
- NO_TRAP,PASS,"0 content elements still at opacity 0 in the viewport (34 below the fold awaiting their own scroll timeline, 1 mid-blink)"
4
+ ENDS,PASS,veil is out of hit-testing from 4200ms
5
+ NO_TRAP,PASS,"0 content elements still at opacity 0 in the viewport (41 below the fold awaiting their own scroll timeline, 1 mid-blink)"
6
6
  CLEARS,PASS,a real click landed on 'mk-caret-row'
7
7
  DEGRADES,PASS,with reduced motion the veil is display:none throughout
8
8
  READABLE,PASS,0 elements invisible at 120ms with reduced motion
9
9
 
10
10
  t_ms,counter,veil_visibility,veil_clip,veil_covers_centre,hit_centre,invisible_content
11
11
  120,,,,False,html.no-js,0
12
- 350,0,visible,none,True,mk-boot,7
13
- 700,56,visible,none,True,mk-boot,7
14
- 1100,94,visible,none,True,mk-boot,7
15
- 1500,100,visible,none,True,mk-boot,4
16
- 1750,100,visible,inset(0px 0px 2.37106%),True,mk-boot,2
17
- 2050,100,visible,inset(0px 0px 99.6708%),False,mk-caret-row,2
18
- 2400,100,hidden,inset(0px 0px 100%),False,mk-caret-row,0
19
- 3200,100,hidden,inset(0px 0px 100%),False,mk-caret-row,0
20
- 4500,100,hidden,inset(0px 0px 100%),False,mk-caret-row,0
12
+ 400,0,visible,none,True,mk-boot,7
13
+ 800,15,visible,none,True,mk-boot,7
14
+ 1300,42,visible,none,True,mk-boot,6
15
+ 1800,69,visible,none,True,p.M_EL56,3
16
+ 2300,97,visible,none,True,p.M_EL56,3
17
+ 2700,100,visible,none,True,p.M_EL56,3
18
+ 3000,100,visible,inset(0px 0px 3.1269%),True,p.M_EL56,2
19
+ 3300,100,visible,inset(0px 0px 93.9568%),False,mk-caret-row,2
20
+ 3700,100,hidden,inset(0px 0px 100%),False,mk-caret-row,0
21
+ 4200,100,hidden,inset(0px 0px 100%),False,mk-caret-row,0
22
+ 5200,100,hidden,inset(0px 0px 100%),False,mk-caret-row,0
23
+ 6500,100,hidden,inset(0px 0px 100%),False,mk-caret-row,0
@@ -47,6 +47,15 @@ https://mosaic.moksaweb.com/moksa/,mk-spec-3,_t,border-left,"1px solid rgba(22,2
47
47
  https://mosaic.moksaweb.com/moksa/,mk-spec-3,_t,border-top,"1px solid rgba(22,24,28,.16)","1px solid rgba(22, 24, 28, .16)",verified
48
48
  https://mosaic.moksaweb.com/moksa/,mk-spec-3,_m,padding-right,12px,12px,verified
49
49
  https://mosaic.moksaweb.com/moksa/,mk-spec-3,_m,padding-left,14px,14px,verified
50
+ https://mosaic.moksaweb.com/moksa/,plate,_t,padding-left,28px,28px,verified
51
+ https://mosaic.moksaweb.com/moksa/,plate,_t,padding-right,28px,28px,verified
52
+ https://mosaic.moksaweb.com/moksa/,plate,_m,padding-left,18px,18px,verified
53
+ https://mosaic.moksaweb.com/moksa/,plate,_m,padding-right,18px,18px,verified
54
+ https://mosaic.moksaweb.com/moksa/,mk-plate-pad,_t,column-gap,36px,36px,verified
55
+ https://mosaic.moksaweb.com/moksa/,mk-plate-pad,_m,grid-template-columns,"repeat(1, 1fr)","repeat(1, 1fr)",verified
56
+ https://mosaic.moksaweb.com/moksa/,mk-plate-pad,_m,row-gap,22px,22px,verified
57
+ https://mosaic.moksaweb.com/moksa/,mk-plate-pad,_m,padding-top,62px,62px,verified
58
+ https://mosaic.moksaweb.com/moksa/,mk-plate-pad,_m,padding-bottom,62px,62px,verified
50
59
  https://mosaic.moksaweb.com/moksa/,services,_t,padding-left,28px,28px,verified
51
60
  https://mosaic.moksaweb.com/moksa/,services,_t,padding-right,28px,28px,verified
52
61
  https://mosaic.moksaweb.com/moksa/,services,_m,padding-left,18px,18px,verified
@@ -139,6 +148,29 @@ https://mosaic.moksaweb.com/moksa/,mk-work-8,_m,grid-template-columns,1fr,1fr,ve
139
148
  https://mosaic.moksaweb.com/moksa/,mk-work-8,_m,row-gap,5px,5px,verified
140
149
  https://mosaic.moksaweb.com/moksa/,mk-work-8,_m,padding-top,15px,15px,verified
141
150
  https://mosaic.moksaweb.com/moksa/,mk-work-8,_m,padding-bottom,15px,15px,verified
151
+ https://mosaic.moksaweb.com/moksa/,specimen,_t,padding-left,28px,28px,verified
152
+ https://mosaic.moksaweb.com/moksa/,specimen,_t,padding-right,28px,28px,verified
153
+ https://mosaic.moksaweb.com/moksa/,specimen,_m,padding-left,18px,18px,verified
154
+ https://mosaic.moksaweb.com/moksa/,specimen,_m,padding-right,18px,18px,verified
155
+ https://mosaic.moksaweb.com/moksa/,mk-spec2-pad,_m,padding-top,58px,58px,verified
156
+ https://mosaic.moksaweb.com/moksa/,mk-spec2-pad,_m,padding-bottom,58px,58px,verified
157
+ https://mosaic.moksaweb.com/moksa/,mk-spec2-rows,_m,margin-top,26px,26px,verified
158
+ https://mosaic.moksaweb.com/moksa/,mk-spec2-r-0,_m,grid-template-columns,1fr,1fr,verified
159
+ https://mosaic.moksaweb.com/moksa/,mk-spec2-r-0,_m,row-gap,6px,6px,verified
160
+ https://mosaic.moksaweb.com/moksa/,mk-spec2-r-0,_m,padding-top,14px,14px,verified
161
+ https://mosaic.moksaweb.com/moksa/,mk-spec2-r-0,_m,padding-bottom,14px,14px,verified
162
+ https://mosaic.moksaweb.com/moksa/,mk-spec2-r-1,_m,grid-template-columns,1fr,1fr,verified
163
+ https://mosaic.moksaweb.com/moksa/,mk-spec2-r-1,_m,row-gap,6px,6px,verified
164
+ https://mosaic.moksaweb.com/moksa/,mk-spec2-r-1,_m,padding-top,14px,14px,verified
165
+ https://mosaic.moksaweb.com/moksa/,mk-spec2-r-1,_m,padding-bottom,14px,14px,verified
166
+ https://mosaic.moksaweb.com/moksa/,mk-spec2-r-2,_m,grid-template-columns,1fr,1fr,verified
167
+ https://mosaic.moksaweb.com/moksa/,mk-spec2-r-2,_m,row-gap,6px,6px,verified
168
+ https://mosaic.moksaweb.com/moksa/,mk-spec2-r-2,_m,padding-top,14px,14px,verified
169
+ https://mosaic.moksaweb.com/moksa/,mk-spec2-r-2,_m,padding-bottom,14px,14px,verified
170
+ https://mosaic.moksaweb.com/moksa/,mk-spec2-r-3,_m,grid-template-columns,1fr,1fr,verified
171
+ https://mosaic.moksaweb.com/moksa/,mk-spec2-r-3,_m,row-gap,6px,6px,verified
172
+ https://mosaic.moksaweb.com/moksa/,mk-spec2-r-3,_m,padding-top,14px,14px,verified
173
+ https://mosaic.moksaweb.com/moksa/,mk-spec2-r-3,_m,padding-bottom,14px,14px,verified
142
174
  https://mosaic.moksaweb.com/moksa/,stack,_t,padding-left,28px,28px,verified
143
175
  https://mosaic.moksaweb.com/moksa/,stack,_t,padding-right,28px,28px,verified
144
176
  https://mosaic.moksaweb.com/moksa/,stack,_m,padding-left,18px,18px,verified
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mosaic-headless",
3
- "version": "1.5.0",
3
+ "version": "1.6.0",
4
4
  "description": "AI-agent skill: build Mosaic Pro (Nextend) WordPress sites by writing the underlying data model directly - 23 custom tables, no visual editor, no DOM. Every node type, style property and node property swept against a live install and asserted on the delivered HTML and compiled CSS. Installs into Claude Code, Cursor, Codex CLI, Gemini CLI, Copilot, Continue, Windsurf and Claude.ai.",
5
5
  "keywords": [
6
6
  "wordpress",
@@ -188,6 +188,21 @@ wrappers were sitting correctly in the database and in the committed JSON.
188
188
  The tell is the byte count: if the size the builder reports and the size you fetch
189
189
  disagree, you are not looking at what you wrote.
190
190
 
191
+ **And the cache cuts the other way too, which is worse.** Once every tool in the
192
+ toolchain cache-busts, nothing is left looking at the page a visitor receives. A
193
+ build finishes, every check reports green - responsive verified, computed values
194
+ agreed, design audit clean, the entrance animation asserted on seven counts - and
195
+ the site is still serving the previous document to everybody. Measured here: a
196
+ visitor got 141,134 bytes with none of the new work in it while a cache-busted fetch
197
+ of the same URL gave 148,457. Nothing was wrong except that nobody had looked.
198
+
199
+ `build_site.py` now fetches each page twice at the end of the build, plain and
200
+ cache-busted, and says so when they disagree. It cannot purge the cache - that needs
201
+ credentials a build script has no business holding - but it must not be silent. Two
202
+ fetches of the same live page differ by a few hundred bytes anyway, since nonces and
203
+ ids regenerate per request, so the tolerance is proportional: natural variance
204
+ measured at 0.25%, a stale document at 5%.
205
+
191
206
  `tools/verify_rwd.py` now appends a unique `_v=<ms>` query string and sends
192
207
  `Cache-Control: no-cache` on every fetch, so the assertion is always made against the
193
208
  document that was actually committed. Do the same in anything else that checks a page