comparison mrjunejune/src/notes/login.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 6cdee35a7ba9
children
comparison
equal deleted inserted replaced
257:609d3c6aff4e 258:60a876c4587a
5 <title>Login | Notes</title> 5 <title>Login | Notes</title>
6 <style> 6 <style>
7 .login-page { 7 .login-page {
8 max-width: 400px; 8 max-width: 400px;
9 margin: 100px auto; 9 margin: 100px auto;
10 padding: 20px; 10 padding: var(--zenbu-sys-padding-lg);
11 } 11 }
12 .login-box { 12 .login-box {
13 background: #fff; 13 background: #fff;
14 border: 1px solid #ddd; 14 border: 1px solid #ddd;
15 border-radius: 8px; 15 border-radius: var(--zenbu-sys-radius-control);
16 padding: 32px; 16 padding: var(--zenbu-sys-padding-xl);
17 box-shadow: 0 2px 8px rgba(0,0,0,0.1); 17 box-shadow: 0 2px 8px rgba(0,0,0,0.1);
18 } 18 }
19 .login-box h1 { 19 .login-box h1 {
20 margin: 0 0 24px 0; 20 margin: 0 0 24px 0;
21 font-size: 24px; 21 font-size: var(--zenbu-sys-font-size-2xl);
22 text-align: center; 22 text-align: center;
23 } 23 }
24 .login-box label { 24 .login-box label {
25 display: block; 25 display: block;
26 margin-bottom: 8px; 26 margin-bottom: 8px;
27 font-weight: 500; 27 font-weight: 500;
28 } 28 }
29 .login-box input { 29 .login-box input {
30 width: 100%; 30 width: 100%;
31 padding: 12px; 31 min-height: var(--zenbu-control-height);
32 padding:
33 var(--zenbu-control-padding-block)
34 var(--zenbu-control-padding-inline);
32 border: 1px solid #ccc; 35 border: 1px solid #ccc;
33 border-radius: 4px; 36 border-radius: var(--zenbu-sys-radius-control-small);
34 font-size: 16px; 37 font-size: var(--zenbu-control-font-size);
38 line-height: var(--zenbu-control-line-height);
35 box-sizing: border-box; 39 box-sizing: border-box;
36 } 40 }
37 .login-box input:focus { 41 .login-box input:focus {
38 outline: none; 42 outline: none;
39 border-color: #0078ff; 43 border-color: #0078ff;
40 } 44 }
41 .login-box button { 45 .login-box button {
42 width: 100%; 46 width: 100%;
43 padding: 12px;
44 margin-top: 16px; 47 margin-top: 16px;
45 background: #0078ff; 48 background: #0078ff;
46 color: white; 49 color: white;
47 border: none; 50 border: none;
48 border-radius: 4px; 51 border-radius: var(--zenbu-sys-radius-control-small);
49 font-size: 16px;
50 cursor: pointer; 52 cursor: pointer;
53 }
54 .login-box zen-button {
55 width: 100%;
51 } 56 }
52 .login-box button:hover { 57 .login-box button:hover {
53 background: #0066dd; 58 background: #0066dd;
54 } 59 }
55 .error-msg { 60 .error-msg {
65 70
66 <main class="login-page"> 71 <main class="login-page">
67 <div class="login-box"> 72 <div class="login-box">
68 <h1>Notes Login</h1> 73 <h1>Notes Login</h1>
69 <form id="login-form"> 74 <form id="login-form">
70 <label for="token">Access Token</label> 75 <zen-field appearance="plain" size="lg">
71 <input type="password" id="token" placeholder="Enter your access token" required> 76 <label for="token">Access Token</label>
72 <button type="submit">Login</button> 77 <input type="password" id="token" placeholder="Enter your access token" required>
78 </zen-field>
79 <zen-button appearance="plain" size="lg">
80 <button type="submit">Login</button>
81 </zen-button>
73 <p class="error-msg" id="error-msg">Invalid token</p> 82 <p class="error-msg" id="error-msg">Invalid token</p>
74 </form> 83 </form>
75 </div> 84 </div>
76 </main> 85 </main>
77 86