Runs/circle · chain · Fable 5.1/020
circle · chain · Fable 5.1 · step 020 of 64
offline render, Chrome 154, light scheme, 2 s of virtual time
runs in a sandboxed frame with no origin; live pages may fetch CDN fonts the offline render did not
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="color-scheme" content="light dark">
<meta name="description" content="A circle.">
<title>Circle</title>
<link rel="icon" href="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='-1%20-1%202%202'%3E%3Cstyle%3E@media%20(prefers-color-scheme:dark)%7Bcircle%7Bfill:%23fff%7D%7D%3C/style%3E%3Ccircle%20r='1'/%3E%3C/svg%3E">
<style>
body {
margin: 0;
min-height: 100vh;
min-height: 100dvh;
display: grid;
place-items: center;
}
h1 {
margin: 0;
}
svg {
display: block;
width: min(400px, 100vmin - 2rem);
width: min(400px, 100dvmin - 2rem);
fill: currentColor;
overflow: visible;
}
</style>
</head>
<body>
<main>
<h1>
<svg viewBox="-1 -1 2 2" role="img" aria-label="Circle">
<circle r="1"/>
</svg>
</h1>
</main>
</body>
</html>
what changed from step 019
+4 / -4 lines
<head> <meta charset="UTF-8">- <meta name="viewport" content="width=device-width, initial-scale=1.0">+ <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="color-scheme" content="light dark"> <meta name="description" content="A circle."> <title>Circle</title>- <link rel="icon" href="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%202%202'%3E%3Cstyle%3E@media%20(prefers-color-scheme:dark)%7Bcircle%7Bfill:%23fff%7D%7D%3C/style%3E%3Ccircle%20cx='1'%20cy='1'%20r='1'/%3E%3C/svg%3E">+ <link rel="icon" href="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='-1%20-1%202%202'%3E%3Cstyle%3E@media%20(prefers-color-scheme:dark)%7Bcircle%7Bfill:%23fff%7D%7D%3C/style%3E%3Ccircle%20r='1'/%3E%3C/svg%3E"> <style> body {⋯ line 31 <main> <h1>- <svg viewBox="0 0 400 400" role="img" aria-label="Circle">- <circle cx="200" cy="200" r="200"/>+ <svg viewBox="-1 -1 2 2" role="img" aria-label="Circle">+ <circle r="1"/> </svg> </h1>
What the model said
I made three small tidy-ups to `0.html`; the file was already in good shape, so there was little worth changing. The page should render exactly as before, though I haven't opened it in a browser to check. ## What changed - **Simpler circle geometry:** the SVG now uses a unit circle centred on the origin (`viewBox="-1 -1 2 2"` with `<circle r="1"/>`) instead of `cx="200" cy="200" r="200"` in a 400×400 box. - **Favicon matches:** the inline favicon uses the same unit-circle geometry, which also shortens the data URI a little. - **Viewport meta:** `initial-scale=1.0` became `initial-scale=1`. My first attempt, a shell script to do the edits, was blocked by the session's permissions, so I made the same changes with direct file edits instead. ## What I left alone - **Duplicate `min-height` and `width` declarations:** these are fallbacks for browsers without `dvh`/`dvmin` support. - **`overflow: visible`:** it stops the circle's anti-aliased edge being clipped where it touches the viewBox boundary. - **`fill: currentColor` with the `color-scheme` meta:** this gives you light and dark mode without any media queries. - **`<main>`, `<h1>` and `role="img"` with `aria-label`:** this gives the page a landmark and a heading named "Circle" for screen readers. If you had a different kind of improvement in mind, such as animation, colour or interactivity, tell me which and I'll add it.