Mercurial
comparison mrjunejune/test/snapshots/root.snapshot @ 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 | 30c2196d03d4 |
| children | 1f9877b637e9 |
comparison
equal
deleted
inserted
replaced
| 257:609d3c6aff4e | 258:60a876c4587a |
|---|---|
| 92 pointer-events: auto; | 92 pointer-events: auto; |
| 93 z-index: 101; | 93 z-index: 101; |
| 94 cursor: pointer; | 94 cursor: pointer; |
| 95 } | 95 } |
| 96 | 96 |
| 97 .site-link-grid { | |
| 98 display: grid; | |
| 99 grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); | |
| 100 gap: var(--zen-space-4); | |
| 101 } | |
| 102 | |
| 103 .site-link-grid > a { | |
| 104 color: inherit; | |
| 105 text-decoration: none; | |
| 106 } | |
| 107 | |
| 108 .site-link-grid zen-card, | |
| 109 .site-link-grid article { | |
| 110 height: 100%; | |
| 111 } | |
| 112 | |
| 113 .site-link-grid p { | |
| 114 margin: 0; | |
| 115 color: var(--zen-color-text-muted); | |
| 116 font-size: 0.9rem; | |
| 117 } | |
| 118 </style> | 97 </style> |
| 119 </head> | 98 </head> |
| 120 <body> | 99 <body> |
| 121 <style> | 100 <style> |
| 122 :root { | 101 :root { |
| 136 #themeControl:hover { | 115 #themeControl:hover { |
| 137 transform: scale(1.05); | 116 transform: scale(1.05); |
| 138 } | 117 } |
| 139 | 118 |
| 140 #themeToggle { | 119 #themeToggle { |
| 120 display: flex; | |
| 141 flex-direction: column; | 121 flex-direction: column; |
| 142 min-width: 4.5rem; | 122 padding: 0; |
| 143 padding: 0.35rem; | 123 border: 0; |
| 144 border-radius: 1.5rem; | 124 background: transparent; |
| 145 } | |
| 146 | |
| 147 #themeName { | |
| 148 font-family: "More", sans-serif; | |
| 149 font-size: 0.65rem; | |
| 150 line-height: 1; | |
| 151 } | 125 } |
| 152 | 126 |
| 153 /* Professional header */ | 127 /* Professional header */ |
| 154 header { | 128 header { |
| 155 margin: auto; | 129 margin: auto; |
| 156 padding: 1.5em 1em; | 130 padding: 1.5em 1em; |
| 157 font-family: "More", sans-serif; | 131 font-family: "More", sans-serif; |
| 158 box-shadow: var(--zen-shadow-sm); | |
| 159 width: 720px; | 132 width: 720px; |
| 160 max-width: calc(100% - 2em); | 133 max-width: calc(100% - 2em); |
| 161 text-align: center; | 134 text-align: center; |
| 162 } | 135 } |
| 163 | 136 |
| 255 filter: var(--epi-grayscale); | 228 filter: var(--epi-grayscale); |
| 256 transition: filter 0.3s ease; | 229 transition: filter 0.3s ease; |
| 257 } | 230 } |
| 258 </style> | 231 </style> |
| 259 | 232 |
| 260 <zen-button id="themeControl" variant="quiet"> | 233 <zen-button id="themeControl" appearance="plain" size="xl"> |
| 261 <button | 234 <button |
| 262 id="themeToggle" | 235 id="themeToggle" |
| 263 type="button" | 236 type="button" |
| 264 aria-label="Change site theme" | 237 aria-label="Change site theme" |
| 265 > | 238 > |
| 269 alt="" | 242 alt="" |
| 270 src="/public/epi_all_colors.svg" | 243 src="/public/epi_all_colors.svg" |
| 271 height="50" | 244 height="50" |
| 272 width="50" | 245 width="50" |
| 273 > | 246 > |
| 274 <span id="themeName" aria-live="polite">Auto</span> | 247 <span id="themeName" class="zen-visually-hidden" aria-live="polite">Auto</span> |
| 275 </button> | 248 </button> |
| 276 </zen-button> | 249 </zen-button> |
| 277 | 250 |
| 278 <header> | 251 <header> |
| 279 <h1><a href="/">MrJuneJune</a></h1> | 252 <h1><a href="/" data-zen-link-effect="none">MrJuneJune</a></h1> |
| 280 </header> | 253 </header> |
| 281 <script src="/index.js"></script> | 254 <script src="/index.js"></script> |
| 282 | 255 |
| 283 <main> | 256 <main> |
| 284 <p>Hi, I am Juntae—usually June, and occasionally MrJuneJune because the domain name has committed me to the bit.</p> | 257 <p>Hi, I am Juntae—usually June, and occasionally MrJuneJune because the domain name has committed me to the bit.</p> |
| 290 <div class="epi-photo"> | 263 <div class="epi-photo"> |
| 291 <img id="currentPhoto" style="opacity: 0; transition: opacity 0.2s;" /> | 264 <img id="currentPhoto" style="opacity: 0; transition: opacity 0.2s;" /> |
| 292 </div> | 265 </div> |
| 293 | 266 |
| 294 <h2>Links</h2> | 267 <h2>Links</h2> |
| 295 <div class="site-link-grid"> | 268 <ul> |
| 296 <a href="https://zenbu.babocoder.com/file/tip"> | 269 <li><a href="https://zenbu.babocoder.com/file/tip">Repository</a> - Check out my code</li> |
| 297 <zen-card interactive> | 270 <li><a href="/blog">Blogs</a> - My thoughts / Experiments </li> |
| 298 <article><h3>Repository</h3><p>Browse the code behind these experiments.</p></article> | 271 <li><a href="/resume">Resume</a> - My professional experiences </li> |
| 299 </zen-card> | 272 <li><a href="/tools">Tools</a> - Things I made for myself </li> |
| 300 </a> | 273 </ul> |
| 301 <a href="/blog"> | |
| 302 <zen-card interactive> | |
| 303 <article><h3>Blogs</h3><p>Thoughts, experiments, and technical notes.</p></article> | |
| 304 </zen-card> | |
| 305 </a> | |
| 306 <a href="/resume"> | |
| 307 <zen-card interactive> | |
| 308 <article><h3>Resume</h3><p>Professional experience and selected work.</p></article> | |
| 309 </zen-card> | |
| 310 </a> | |
| 311 <a href="/tools"> | |
| 312 <zen-card interactive> | |
| 313 <article><h3>Tools</h3><p>Small things I built for myself.</p></article> | |
| 314 </zen-card> | |
| 315 </a> | |
| 316 </div> | |
| 317 <canvas id="background"></canvas> | 274 <canvas id="background"></canvas> |
| 318 <canvas id="game"></canvas> | 275 <canvas id="game"></canvas> |
| 319 <canvas id="gameUI"></canvas> | 276 <canvas id="gameUI"></canvas> |
| 320 </main> | 277 </main> |
| 321 <div style="display: flex; align-items: center; justify-content: center; margin: 30px 0px;"> | 278 <div style="display: flex; align-items: center; justify-content: center; margin: 30px 0px;"> |