diff --git a/render-repros/abs-fill.html b/render-repros/abs-fill.html new file mode 100644 index 0000000..9fa524e --- /dev/null +++ b/render-repros/abs-fill.html @@ -0,0 +1,14 @@ +abs fill +

Every colored area below must FILL its box. Before P0 all were 0x0 (blank).

+
A rel(auto-width)+BLOCK, abs inset:0: +
+
B rel+FLEX, abs inset:0: +
+
C rel+GRID, abs inset:0: +
+
D abs width:100%/height:100%: +
+
E padding-hack ratio + abs fill IMG: +
+ diff --git a/render-repros/carousel-clip.html b/render-repros/carousel-clip.html new file mode 100644 index 0000000..6f41f66 --- /dev/null +++ b/render-repros/carousel-clip.html @@ -0,0 +1,16 @@ +carousel clip +

Track translated -300px: ONLY slide TWO (green) may be visible.

+
+
ONE
TWO
THREE
+
+

Control (transform:none): only slide ONE (red) visible.

+
+
ONE
TWO
THREE
+
+ diff --git a/render-repros/clear-float.html b/render-repros/clear-float.html new file mode 100644 index 0000000..0ffafac --- /dev/null +++ b/render-repros/clear-float.html @@ -0,0 +1,12 @@ +clear +

clear:both must drop BELOW the float at full width (orange bar under the blue thumb):

+
+
+

short text beside the float.

+
CLEARED: full width below
+

after content flows normally.

+
+ diff --git a/render-repros/img-density-and-alt.html b/render-repros/img-density-and-alt.html new file mode 100644 index 0000000..8da51de --- /dev/null +++ b/render-repros/img-density-and-alt.html @@ -0,0 +1,18 @@ +img density + alt +

Density: A raw 648px, B srcset 2x -> ~324 CSS px, C 648w + sizes:300px -> ~300px

+
A:
+
B:
+
C:
+

Broken-image fallback: D alt text only, E alt="" nothing, F no alt -> grey box

+
D: a description of the missing photo
+
E:
+
F:
+

G: cover img half-outside an overflow:hidden viewport must not bleed past the red border:

+
+
+ + +
+
+ diff --git a/render-repros/mixed-content-block.html b/render-repros/mixed-content-block.html new file mode 100644 index 0000000..757b6c1 --- /dev/null +++ b/render-repros/mixed-content-block.html @@ -0,0 +1,13 @@ +mixed inline+block +

Block children of a mixed-content block must stay FULL WIDTH (not shrink to content), +and inline runs must wrap as text, not one word per line.

+
+ leading inline text that should wrap across the full width of this container as a normal paragraph would +
block child: must span the full 400px
+ trailing inline text after the block child +
+
contentless wrapper w/ abs fill
+
+
+ diff --git a/render-repros/run.sh b/render-repros/run.sh new file mode 100755 index 0000000..225ea7b --- /dev/null +++ b/render-repros/run.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env bash +# Render every repro fixture in obscura and Chromium side by side. +# Usage: ./run.sh [outdir] (default: ./out) +set -u +BIN="${OBSCURA_BIN:-$(cd "$(dirname "$0")/.." && pwd)/target/release/obscura}" +DIR="$(cd "$(dirname "$0")" && pwd)" +OUT="${1:-$DIR/out}" +mkdir -p "$OUT" +for f in "$DIR"/*.html; do + n=$(basename "$f" .html) + OBSCURA_SHOT_W=900 OBSCURA_SHOT_H=1000 OBSCURA_ALLOW_PRIVATE_NETWORK=1 \ + timeout 60 "$BIN" fetch "file://$f" --screenshot "$OUT/$n.obscura.png" --timeout 30000 --wait 2 >/dev/null 2>&1 + timeout 60 google-chrome-stable --headless --disable-gpu --no-sandbox --hide-scrollbars \ + --force-device-scale-factor=1 --window-size=900,1000 --screenshot="$OUT/$n.chrome.png" "file://$f" >/dev/null 2>&1 + echo "rendered $n" +done +echo "output in $OUT" diff --git a/render-repros/tables.html b/render-repros/tables.html new file mode 100644 index 0000000..1c778da --- /dev/null +++ b/render-repros/tables.html @@ -0,0 +1,21 @@ +tables +

T1: td width:200px must set the whole COLUMN to 200px:

+ +
fixed 200auto col
second row same colx
+

T2: tr background must show behind its cells' gaps:

+ +
normalrow
HIGHLIGHTEDROW
+

T3: cell text CENTERS vertically by default; top/bottom explicit:

+
default middleexplicit topexplicit bottom
+

T4: col width=150 must size column 1:

+
col 150auto
+

T5: percent width cell 50% of a 400px table (~198px):

+
halfrest
+ diff --git a/render-repros/z-index.html b/render-repros/z-index.html new file mode 100644 index 0000000..0bf3b51 --- /dev/null +++ b/render-repros/z-index.html @@ -0,0 +1,12 @@ +z-index +

A: z:10 overlay declared BEFORE a later sibling must paint ON TOP (green wins):

+
+
+
+
+

B: z:-1 backdrop declared AFTER content must paint UNDER it (blue stays visible, orange edges show):

+
+
+
+
+