comparison mrjunejune/src/offline.html @ 258:60a876c4587a

[ui] Add semantic primitive ownership Build a layered Zenbu token and sizing system, make authored controls use native-underneath primitives, migrate mrjunejune without imposing visual surfaces, and document/enforce HTML ownership in the catalog and wiki. Co-authored-by: Copilot <[email protected]>
author MrJuneJune <me@mrjunejune.com>
date Wed, 05 Aug 2026 05:25:40 -0700
parents a6d8d32a0261
children
comparison
equal deleted inserted replaced
257:609d3c6aff4e 258:60a876c4587a
1 <!doctype html> 1 <!doctype html>
2 <html lang="en"> 2 <html lang="en">
3 <head> 3 <head>
4 <meta charset="UTF-8"> 4 <meta charset="UTF-8">
5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0">
6 <link rel="stylesheet" href="/public/design-system/styles/tokens.css">
7 <link rel="stylesheet" href="/public/design-system/styles/themes.css">
8 <link rel="stylesheet" href="/public/design-system/styles/components.css">
9 <script
10 type="module"
11 src="/public/design-system/components/index.js"
12 ></script>
6 <title>Offline - MrJuneJune</title> 13 <title>Offline - MrJuneJune</title>
7 <style> 14 <style>
8 body { 15 body {
9 font-family: system-ui, -apple-system, sans-serif; 16 font-family: system-ui, -apple-system, sans-serif;
10 display: flex; 17 display: flex;
11 flex-direction: column; 18 flex-direction: column;
12 align-items: center; 19 align-items: center;
13 justify-content: center; 20 justify-content: center;
14 min-height: 100vh; 21 min-height: 100vh;
15 margin: 0; 22 margin: 0;
16 padding: 20px; 23 padding: var(--zenbu-sys-padding-lg);
17 background: linear-gradient(135deg, #544e43 0%, #3a3630 100%); 24 background: linear-gradient(135deg, #544e43 0%, #3a3630 100%);
18 color: white; 25 color: white;
19 text-align: center; 26 text-align: center;
20 } 27 }
21 28
22 h1 { 29 h1 {
23 font-size: 3em; 30 font-size: var(--zenbu-sys-font-size-3xl);
24 margin: 0 0 0.5em 0; 31 margin: 0 0 0.5em 0;
25 } 32 }
26 33
27 p { 34 p {
28 font-size: 1.2em; 35 font-size: var(--zenbu-sys-font-size-lg);
36 line-height: var(--zenbu-sys-line-height-lg);
29 margin: 0 0 2em 0; 37 margin: 0 0 2em 0;
30 opacity: 0.9; 38 opacity: 0.9;
31 } 39 }
32 40
33 button { 41 button {
34 padding: 12px 32px; 42 min-height: var(--zenbu-control-height);
35 font-size: 1em; 43 padding:
44 var(--zenbu-control-padding-block)
45 var(--zenbu-control-padding-inline);
46 font-size: var(--zenbu-control-font-size);
36 background: white; 47 background: white;
37 color: #544e43; 48 color: #544e43;
38 border: none; 49 border: none;
39 border-radius: 8px; 50 border-radius: var(--zenbu-sys-radius-control);
40 cursor: pointer; 51 cursor: pointer;
41 font-weight: bold; 52 font-weight: bold;
42 transition: transform 0.2s; 53 transition: transform 0.2s;
43 } 54 }
44 55
51 margin-bottom: 0.3em; 62 margin-bottom: 0.3em;
52 } 63 }
53 </style> 64 </style>
54 </head> 65 </head>
55 <body> 66 <body>
56 <div class="icon">📡</div> 67 <div class="icon">
68 <zen-icon name="offline" label="Offline"></zen-icon>
69 </div>
57 <h1>You're Offline</h1> 70 <h1>You're Offline</h1>
58 <p>It looks like you've lost your internet connection.<br>Don't worry, some cached pages might still work!</p> 71 <p>It looks like you've lost your internet connection.<br>Don't worry, some cached pages might still work!</p>
59 <button onclick="window.location.reload()">Try Again</button> 72 <zen-button appearance="plain" size="lg">
73 <button onclick="window.location.reload()">Try Again</button>
74 </zen-button>
60 </body> 75 </body>
61 </html> 76 </html>