annotate mrjunejune/test/snapshots/talk.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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
129
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
1 <!DOCTYPE html>
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
2 <html lang="en">
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
3 <head>
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
4 <meta charset="UTF-8">
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
5 <title>Talk!</title>
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
6 <meta charset="UTF-8">
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
7 <meta name="viewport" content="width=device-width, initial-scale=1.0">
256
30c2196d03d4 [site] Integrate Zenbu themes and components
MrJuneJune <me@mrjunejune.com>
parents: 158
diff changeset
8 <meta name="theme-color" content="#f7f3e8">
129
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
9 <link rel="icon" type="image/svg+xml" href="/public/epi_all_colors.svg">
256
30c2196d03d4 [site] Integrate Zenbu themes and components
MrJuneJune <me@mrjunejune.com>
parents: 158
diff changeset
10 <link rel="manifest" href="/public/manifest.json">
30c2196d03d4 [site] Integrate Zenbu themes and components
MrJuneJune <me@mrjunejune.com>
parents: 158
diff changeset
11 <link rel="apple-touch-icon" href="/public/epi_all_colors.svg">
129
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
12
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
13 <link rel="preload" href="/public/fonts/Roboto-Regular.ttf" as="font" crossorigin>
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
14 <link rel="preload" href="/public/fonts/Roboto-Thin.ttf"as="font" crossorigin>
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
15
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
16 <!-- <link rel="preload" href="/public/fonts/atkinson-regular.woff" as="font" type="font/woff" crossorigin> -->
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
17 <!-- <link rel="preload" href="/public/fonts/atkinson-bold.woff" as="font" type="font/woff" crossorigin> -->
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
18
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
19 <!-- <link rel="preload" href="/public/fonts/more-sugar.extras.otf" as="font" type="font/otf" crossorigin> -->
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
20 <link rel="preload" href="/public/fonts/more-sugar.regular.otf" as="font" type="font/otf" crossorigin>
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
21 <link rel="preload" href="/public/fonts/more-sugar.thin.otf" as="font" type="font/otf" crossorigin>
158
1c0878eb17de [MrJuneJune] Readme file gets compiled in server side.
June Park <parkjune1995@gmail.com>
parents: 145
diff changeset
22 <link rel="preload" href="/public/epi_all_colors.svg" as="image">
129
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
23
256
30c2196d03d4 [site] Integrate Zenbu themes and components
MrJuneJune <me@mrjunejune.com>
parents: 158
diff changeset
24 <link rel="stylesheet" href="/public/design-system/styles/tokens.css" />
30c2196d03d4 [site] Integrate Zenbu themes and components
MrJuneJune <me@mrjunejune.com>
parents: 158
diff changeset
25 <link rel="stylesheet" href="/public/design-system/styles/themes.css" />
129
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
26 <link rel="preload" href="/base.css" as="style" />
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
27 <link rel="stylesheet" href="/base.css" />
256
30c2196d03d4 [site] Integrate Zenbu themes and components
MrJuneJune <me@mrjunejune.com>
parents: 158
diff changeset
28 <link rel="stylesheet" href="/public/design-system/styles/components.css" />
30c2196d03d4 [site] Integrate Zenbu themes and components
MrJuneJune <me@mrjunejune.com>
parents: 158
diff changeset
29 <script
30c2196d03d4 [site] Integrate Zenbu themes and components
MrJuneJune <me@mrjunejune.com>
parents: 158
diff changeset
30 type="module"
30c2196d03d4 [site] Integrate Zenbu themes and components
MrJuneJune <me@mrjunejune.com>
parents: 158
diff changeset
31 src="/public/design-system/components/index.js"
30c2196d03d4 [site] Integrate Zenbu themes and components
MrJuneJune <me@mrjunejune.com>
parents: 158
diff changeset
32 ></script>
129
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
33
256
30c2196d03d4 [site] Integrate Zenbu themes and components
MrJuneJune <me@mrjunejune.com>
parents: 158
diff changeset
34 <script src="/public/pwa-register.js" defer></script>
129
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
35
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
36 <style>
258
60a876c4587a [ui] Add semantic primitive ownership
MrJuneJune <me@mrjunejune.com>
parents: 256
diff changeset
37 body { font-family: sans-serif; padding: var(--zenbu-sys-padding-lg); }
60a876c4587a [ui] Add semantic primitive ownership
MrJuneJune <me@mrjunejune.com>
parents: 256
diff changeset
38 #messages { height: 200px; border: 1px solid #ccc; overflow-y: scroll; margin-bottom: var(--zenbu-sys-space-control); padding: var(--zenbu-sys-padding-md); }
129
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
39 #chat { display: flex; gap: 10px; }
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
40 input { flex-grow: 1; }
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
41 </style>
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
42 </head>
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
43 <body>
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
44 <style>
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
45 :root {
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
46 --header-background: var(--white);
256
30c2196d03d4 [site] Integrate Zenbu themes and components
MrJuneJune <me@mrjunejune.com>
parents: 158
diff changeset
47 --header-color: var(--black);
129
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
48 --link-hover-accent: var(--awesome);
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
49 }
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
50
256
30c2196d03d4 [site] Integrate Zenbu themes and components
MrJuneJune <me@mrjunejune.com>
parents: 158
diff changeset
51 #themeControl {
129
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
52 position: fixed;
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
53 top: 20px;
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
54 left: 20px;
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
55 z-index: 1000;
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
56 transition: transform 0.2s ease;
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
57 }
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
58
256
30c2196d03d4 [site] Integrate Zenbu themes and components
MrJuneJune <me@mrjunejune.com>
parents: 158
diff changeset
59 #themeControl:hover {
129
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
60 transform: scale(1.05);
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
61 }
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
62
256
30c2196d03d4 [site] Integrate Zenbu themes and components
MrJuneJune <me@mrjunejune.com>
parents: 158
diff changeset
63 #themeToggle {
258
60a876c4587a [ui] Add semantic primitive ownership
MrJuneJune <me@mrjunejune.com>
parents: 256
diff changeset
64 display: flex;
256
30c2196d03d4 [site] Integrate Zenbu themes and components
MrJuneJune <me@mrjunejune.com>
parents: 158
diff changeset
65 flex-direction: column;
258
60a876c4587a [ui] Add semantic primitive ownership
MrJuneJune <me@mrjunejune.com>
parents: 256
diff changeset
66 padding: 0;
60a876c4587a [ui] Add semantic primitive ownership
MrJuneJune <me@mrjunejune.com>
parents: 256
diff changeset
67 border: 0;
60a876c4587a [ui] Add semantic primitive ownership
MrJuneJune <me@mrjunejune.com>
parents: 256
diff changeset
68 background: transparent;
256
30c2196d03d4 [site] Integrate Zenbu themes and components
MrJuneJune <me@mrjunejune.com>
parents: 158
diff changeset
69 }
30c2196d03d4 [site] Integrate Zenbu themes and components
MrJuneJune <me@mrjunejune.com>
parents: 158
diff changeset
70
129
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
71 /* Professional header */
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
72 header {
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
73 margin: auto;
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
74 padding: 1.5em 1em;
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
75 font-family: "More", sans-serif;
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
76 width: 720px;
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
77 max-width: calc(100% - 2em);
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
78 text-align: center;
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
79 }
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
80
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
81 header h1 {
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
82 margin: 0;
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
83 font-size: 1.8em;
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
84 font-weight: 700;
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
85 letter-spacing: -0.5px;
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
86 }
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
87
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
88 header h1 a {
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
89 text-decoration: none;
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
90 color: var(--header-color);
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
91 }
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
92
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
93 header h1 a::before {
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
94 display: none;
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
95 }
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
96
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
97 /* Mobile responsiveness */
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
98 @media (max-width: 720px) {
256
30c2196d03d4 [site] Integrate Zenbu themes and components
MrJuneJune <me@mrjunejune.com>
parents: 158
diff changeset
99 #themeControl {
129
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
100 top: 15px;
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
101 left: 15px;
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
102 }
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
103
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
104 header {
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
105 padding: 1em;
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
106 }
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
107
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
108 header h1 {
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
109 font-size: 1.5em;
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
110 }
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
111 }
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
112
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
113 @media (max-width: 480px) {
256
30c2196d03d4 [site] Integrate Zenbu themes and components
MrJuneJune <me@mrjunejune.com>
parents: 158
diff changeset
114 #themeControl {
129
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
115 top: 10px;
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
116 left: 10px;
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
117 }
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
118
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
119 #themeToggle img {
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
120 height: 40px;
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
121 width: 40px;
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
122 }
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
123
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
124 header h1 {
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
125 font-size: 1.3em;
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
126 }
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
127 }
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
128
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
129 #logo {
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
130 width: 300px;
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
131 }
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
132
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
133 /* 1. DEFINE THE DEFAULTS (Light Mode) */
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
134 :root {
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
135 --logo-invert: invert(0);
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
136 --epi-grayscale: grayscale(0) brightness(1);
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
137 }
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
138
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
139 /* 2. MANUAL DARK OVERRIDE */
256
30c2196d03d4 [site] Integrate Zenbu themes and components
MrJuneJune <me@mrjunejune.com>
parents: 158
diff changeset
140 html[data-zen-theme="ink"] {
129
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
141 --logo-invert: invert(1);
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
142 --epi-grayscale: grayscale(1);
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
143 }
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
144
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
145 /* 3. MANUAL LIGHT OVERRIDE */
256
30c2196d03d4 [site] Integrate Zenbu themes and components
MrJuneJune <me@mrjunejune.com>
parents: 158
diff changeset
146 html[data-zen-theme="paper"] {
129
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
147 --logo-invert: invert(0);
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
148 --epi-grayscale: brightness(2.9) grayscale(1);
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
149 }
256
30c2196d03d4 [site] Integrate Zenbu themes and components
MrJuneJune <me@mrjunejune.com>
parents: 158
diff changeset
150
30c2196d03d4 [site] Integrate Zenbu themes and components
MrJuneJune <me@mrjunejune.com>
parents: 158
diff changeset
151 html[data-zen-theme="playful"] {
30c2196d03d4 [site] Integrate Zenbu themes and components
MrJuneJune <me@mrjunejune.com>
parents: 158
diff changeset
152 --logo-invert: invert(0);
30c2196d03d4 [site] Integrate Zenbu themes and components
MrJuneJune <me@mrjunejune.com>
parents: 158
diff changeset
153 --epi-grayscale: saturate(1.25);
30c2196d03d4 [site] Integrate Zenbu themes and components
MrJuneJune <me@mrjunejune.com>
parents: 158
diff changeset
154 }
129
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
155
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
156 /* 4. SYSTEM PREFERENCE */
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
157 @media (prefers-color-scheme: dark) {
256
30c2196d03d4 [site] Integrate Zenbu themes and components
MrJuneJune <me@mrjunejune.com>
parents: 158
diff changeset
158 :root:not([data-zen-theme]) {
129
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
159 --logo-invert: invert(1);
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
160 }
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
161 }
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
162
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
163 /* 5. APPLY TO ELEMENTS */
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
164 #logo {
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
165 -webkit-filter: var(--logo-invert);
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
166 filter: var(--logo-invert);
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
167 transition: filter 0.3s ease;
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
168 }
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
169
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
170 .epi-logo {
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
171 -webkit-filter: var(--epi-grayscale);
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
172 filter: var(--epi-grayscale);
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
173 transition: filter 0.3s ease;
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
174 }
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
175 </style>
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
176
258
60a876c4587a [ui] Add semantic primitive ownership
MrJuneJune <me@mrjunejune.com>
parents: 256
diff changeset
177 <zen-button id="themeControl" appearance="plain" size="xl">
256
30c2196d03d4 [site] Integrate Zenbu themes and components
MrJuneJune <me@mrjunejune.com>
parents: 158
diff changeset
178 <button
30c2196d03d4 [site] Integrate Zenbu themes and components
MrJuneJune <me@mrjunejune.com>
parents: 158
diff changeset
179 id="themeToggle"
30c2196d03d4 [site] Integrate Zenbu themes and components
MrJuneJune <me@mrjunejune.com>
parents: 158
diff changeset
180 type="button"
30c2196d03d4 [site] Integrate Zenbu themes and components
MrJuneJune <me@mrjunejune.com>
parents: 158
diff changeset
181 aria-label="Change site theme"
30c2196d03d4 [site] Integrate Zenbu themes and components
MrJuneJune <me@mrjunejune.com>
parents: 158
diff changeset
182 >
30c2196d03d4 [site] Integrate Zenbu themes and components
MrJuneJune <me@mrjunejune.com>
parents: 158
diff changeset
183 <img
30c2196d03d4 [site] Integrate Zenbu themes and components
MrJuneJune <me@mrjunejune.com>
parents: 158
diff changeset
184 id="epiChan"
30c2196d03d4 [site] Integrate Zenbu themes and components
MrJuneJune <me@mrjunejune.com>
parents: 158
diff changeset
185 class="epi-logo"
30c2196d03d4 [site] Integrate Zenbu themes and components
MrJuneJune <me@mrjunejune.com>
parents: 158
diff changeset
186 alt=""
30c2196d03d4 [site] Integrate Zenbu themes and components
MrJuneJune <me@mrjunejune.com>
parents: 158
diff changeset
187 src="/public/epi_all_colors.svg"
30c2196d03d4 [site] Integrate Zenbu themes and components
MrJuneJune <me@mrjunejune.com>
parents: 158
diff changeset
188 height="50"
30c2196d03d4 [site] Integrate Zenbu themes and components
MrJuneJune <me@mrjunejune.com>
parents: 158
diff changeset
189 width="50"
30c2196d03d4 [site] Integrate Zenbu themes and components
MrJuneJune <me@mrjunejune.com>
parents: 158
diff changeset
190 >
258
60a876c4587a [ui] Add semantic primitive ownership
MrJuneJune <me@mrjunejune.com>
parents: 256
diff changeset
191 <span id="themeName" class="zen-visually-hidden" aria-live="polite">Auto</span>
256
30c2196d03d4 [site] Integrate Zenbu themes and components
MrJuneJune <me@mrjunejune.com>
parents: 158
diff changeset
192 </button>
30c2196d03d4 [site] Integrate Zenbu themes and components
MrJuneJune <me@mrjunejune.com>
parents: 158
diff changeset
193 </zen-button>
129
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
194
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
195 <header>
258
60a876c4587a [ui] Add semantic primitive ownership
MrJuneJune <me@mrjunejune.com>
parents: 256
diff changeset
196 <h1><a href="/" data-zen-link-effect="none">MrJuneJune</a></h1>
129
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
197 </header>
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
198 <script src="/index.js"></script>
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
199
145
c1eab8c0b0f9 [MrJuneJune] Small improvement UX and tests passes now.
June Park <parkjune1995@gmail.com>
parents: 129
diff changeset
200 <main>
c1eab8c0b0f9 [MrJuneJune] Small improvement UX and tests passes now.
June Park <parkjune1995@gmail.com>
parents: 129
diff changeset
201 <h1>Talk with strangers xDDD</h1>
129
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
202
145
c1eab8c0b0f9 [MrJuneJune] Small improvement UX and tests passes now.
June Park <parkjune1995@gmail.com>
parents: 129
diff changeset
203 <div id="messages"></div>
129
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
204
145
c1eab8c0b0f9 [MrJuneJune] Small improvement UX and tests passes now.
June Park <parkjune1995@gmail.com>
parents: 129
diff changeset
205 <div id="chat">
258
60a876c4587a [ui] Add semantic primitive ownership
MrJuneJune <me@mrjunejune.com>
parents: 256
diff changeset
206 <zen-input appearance="plain" size="md">
60a876c4587a [ui] Add semantic primitive ownership
MrJuneJune <me@mrjunejune.com>
parents: 256
diff changeset
207 <input type="text" id="messageInput" placeholder="Type a message...">
60a876c4587a [ui] Add semantic primitive ownership
MrJuneJune <me@mrjunejune.com>
parents: 256
diff changeset
208 </zen-input>
60a876c4587a [ui] Add semantic primitive ownership
MrJuneJune <me@mrjunejune.com>
parents: 256
diff changeset
209 <zen-button appearance="plain" size="md">
60a876c4587a [ui] Add semantic primitive ownership
MrJuneJune <me@mrjunejune.com>
parents: 256
diff changeset
210 <button id="sendBtn">Send</button>
60a876c4587a [ui] Add semantic primitive ownership
MrJuneJune <me@mrjunejune.com>
parents: 256
diff changeset
211 </zen-button>
145
c1eab8c0b0f9 [MrJuneJune] Small improvement UX and tests passes now.
June Park <parkjune1995@gmail.com>
parents: 129
diff changeset
212 </div>
c1eab8c0b0f9 [MrJuneJune] Small improvement UX and tests passes now.
June Park <parkjune1995@gmail.com>
parents: 129
diff changeset
213 </main>
129
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
214 <div style="display: flex; align-items: center; justify-content: center; margin: 30px 0px;">
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
215 <small>&copy; 2026 June Park</small>
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
216 </div>
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
217
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
218 <script>
145
c1eab8c0b0f9 [MrJuneJune] Small improvement UX and tests passes now.
June Park <parkjune1995@gmail.com>
parents: 129
diff changeset
219 const host = window.location.hostname;
c1eab8c0b0f9 [MrJuneJune] Small improvement UX and tests passes now.
June Park <parkjune1995@gmail.com>
parents: 129
diff changeset
220 const port = '6969';
c1eab8c0b0f9 [MrJuneJune] Small improvement UX and tests passes now.
June Park <parkjune1995@gmail.com>
parents: 129
diff changeset
221 const url = host === "mrjunejune.com" ? `wss://${host}/echo` : `ws://${host}:${port}/echo`;
c1eab8c0b0f9 [MrJuneJune] Small improvement UX and tests passes now.
June Park <parkjune1995@gmail.com>
parents: 129
diff changeset
222 const ws = new WebSocket(url);
129
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
223 const messagesDiv = document.getElementById('messages');
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
224
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
225 ws.onopen = () => {
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
226 console.log('Connected!');
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
227 appendMessage('System: Connected to server');
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
228 };
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
229
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
230 ws.onmessage = (event) => {
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
231 console.log('Received:', event.data);
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
232 appendMessage('Server: ' + event.data);
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
233 };
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
234
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
235 // Function to send message
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
236 sendBtn.onclick = () => {
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
237 const message = messageInput.value;
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
238 if (message) {
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
239 ws.send(message);
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
240 appendMessage('You: ' + message);
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
241 messageInput.value = ''; // Clear input
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
242 }
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
243 };
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
244
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
245 // Helper to show messages on screen
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
246 function appendMessage(text) {
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
247 const msg = document.createElement('p');
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
248 msg.textContent = text;
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
249 messagesDiv.appendChild(msg);
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
250 messagesDiv.scrollTop = messagesDiv.scrollHeight;
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
251 }
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
252
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
253 messageInput.addEventListener('keydown', (event) => {
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
254 if (event.key === 'Enter' && !event.shiftKey)
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
255 {
145
c1eab8c0b0f9 [MrJuneJune] Small improvement UX and tests passes now.
June Park <parkjune1995@gmail.com>
parents: 129
diff changeset
256 event.preventDefault();
c1eab8c0b0f9 [MrJuneJune] Small improvement UX and tests passes now.
June Park <parkjune1995@gmail.com>
parents: 129
diff changeset
257 sendBtn.click();
129
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
258 }
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
259 });
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
260 </script>
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
261 </body>
f7860f491a8c --amend
June Park <parkjune1995@gmail.com>
parents:
diff changeset
262 </html>