SamiKoen commited on
Commit
03bcc8f
·
1 Parent(s): fe9a4f5

Light theme inside CSS monitor frame: bezel + stand, white screen, dark text

Browse files
Files changed (1) hide show
  1. static/index.html +116 -50
static/index.html CHANGED
@@ -9,32 +9,102 @@
9
  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Rajdhani:wght@500;600;700&display=swap" rel="stylesheet" />
10
  <style>
11
  :root {
12
- --trek-red: #E2231A;
13
- --trek-red-glow: rgba(226, 35, 26, 0.55);
14
- --bg-0: #050608;
15
- --bg-1: #0b0d12;
16
- --bg-2: #11141b;
17
- --line: rgba(255,255,255,0.08);
18
- --line-strong: rgba(255,255,255,0.18);
19
- --tech-cyan: #6fb6ff;
 
 
 
 
20
  }
21
  * { box-sizing: border-box; }
22
  html, body { margin: 0; height: 100%; }
23
  body {
24
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
25
  background:
26
- radial-gradient(1200px 600px at 50% -10%, rgba(226,35,26,0.10), transparent 60%),
27
- radial-gradient(800px 500px at 90% 110%, rgba(111,182,255,0.08), transparent 60%),
28
- linear-gradient(180deg, var(--bg-1) 0%, var(--bg-0) 100%);
29
- color: #fff;
30
  min-height: 100vh;
31
- padding: 0;
32
  letter-spacing: 0.01em;
 
 
 
33
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
34
  .app {
35
  display: grid;
36
  grid-template-columns: 1fr 1fr;
37
- min-height: 100vh;
38
  position: relative;
39
  z-index: 1;
40
  }
@@ -48,17 +118,18 @@
48
  .col.left { border-right: 1px solid var(--line); }
49
  .col.right { justify-content: center; }
50
  @media (max-width: 900px) {
51
- .app { grid-template-columns: 1fr; }
52
  .col.left { border-right: none; border-bottom: 1px solid var(--line); }
53
  }
54
  .product-card {
55
  width: min(90%, 520px);
56
- background: linear-gradient(180deg, rgba(255,255,255,0.04), rgba(255,255,255,0.015));
57
  border: 1px solid var(--line);
58
  border-radius: 4px;
59
  padding: 28px;
60
  text-align: center;
61
  position: relative;
 
62
  }
63
  .product-card::before {
64
  content: '';
@@ -72,20 +143,14 @@
72
  font-size: 1rem;
73
  letter-spacing: 0.2em;
74
  text-transform: uppercase;
75
- color: rgba(255,255,255,0.35);
76
  padding: 80px 0;
77
  }
78
- .product-card .empty .ico {
79
- display: block;
80
- font-size: 3rem;
81
- margin-bottom: 18px;
82
- color: rgba(226,35,26,0.5);
83
- }
84
  .product-card .pimg {
85
  width: 100%;
86
  aspect-ratio: 1 / 1;
87
  object-fit: contain;
88
- background: #fff;
89
  border-radius: 2px;
90
  margin-bottom: 20px;
91
  border: 1px solid var(--line);
@@ -98,6 +163,7 @@
98
  text-transform: uppercase;
99
  margin-bottom: 14px;
100
  line-height: 1.2;
 
101
  }
102
  .product-card .plink {
103
  display: inline-block;
@@ -122,22 +188,13 @@
122
  font-size: 0.8rem;
123
  letter-spacing: 0.32em;
124
  text-transform: uppercase;
125
- color: rgba(255,255,255,0.45);
126
  margin-bottom: 18px;
127
  text-align: center;
128
  }
129
  .product-section-title .accent { color: var(--trek-red); }
130
- body::before {
131
- content: '';
132
- position: fixed;
133
- inset: 0;
134
- background-image:
135
- linear-gradient(rgba(255,255,255,0.025) 1px, transparent 1px),
136
- linear-gradient(90deg, rgba(255,255,255,0.025) 1px, transparent 1px);
137
- background-size: 48px 48px;
138
- pointer-events: none;
139
- mask-image: radial-gradient(ellipse at center, #000 30%, transparent 75%);
140
- z-index: 0;
141
  }
142
 
143
  .brand {
@@ -162,7 +219,7 @@
162
  font-size: 0.95rem;
163
  letter-spacing: 0.32em;
164
  text-transform: uppercase;
165
- color: rgba(255,255,255,0.7);
166
  }
167
  h1 {
168
  margin: 8px 0 4px;
@@ -171,11 +228,12 @@
171
  font-weight: 700;
172
  letter-spacing: 0.04em;
173
  text-transform: uppercase;
 
174
  z-index: 1;
175
  }
176
  h1 .accent { color: var(--trek-red); }
177
  .subtitle {
178
- opacity: 0.55;
179
  margin-bottom: 22px;
180
  font-size: 0.8rem;
181
  letter-spacing: 0.18em;
@@ -195,18 +253,18 @@
195
  height: 100%;
196
  object-fit: contain;
197
  border-radius: 4px;
198
- background: linear-gradient(160deg, #0d1118, #05070a);
199
  display: block;
200
  transition: transform 0.18s ease-out, filter 0.25s;
201
  box-shadow:
202
- 0 20px 70px rgba(0,0,0,0.6),
203
  inset 0 0 0 1px var(--line);
204
  }
205
  .ring {
206
  position: absolute;
207
  inset: -8px;
208
  border-radius: 8px;
209
- border: 1px solid var(--line-strong);
210
  pointer-events: none;
211
  transition: border-color 0.3s, box-shadow 0.3s, transform 0.12s ease-out;
212
  }
@@ -230,14 +288,14 @@
230
  .panel {
231
  width: 100%;
232
  max-width: 620px;
233
- background: linear-gradient(180deg, rgba(255,255,255,0.04), rgba(255,255,255,0.015));
234
- backdrop-filter: blur(14px);
235
  border: 1px solid var(--line);
236
  border-radius: 4px;
237
  padding: 22px 24px;
238
  text-align: center;
239
  position: relative;
240
  z-index: 1;
 
241
  }
242
  .panel::before {
243
  content: '';
@@ -249,7 +307,7 @@
249
  .status {
250
  padding: 7px 16px;
251
  border-radius: 2px;
252
- background: rgba(0,0,0,0.4);
253
  border: 1px solid var(--line);
254
  font-family: 'Rajdhani', sans-serif;
255
  font-size: 0.85rem;
@@ -258,9 +316,9 @@
258
  margin-bottom: 18px;
259
  display: inline-block;
260
  }
261
- .status.connected { color: #34d399; border-color: rgba(52,211,153,0.4); }
262
- .status.connecting { color: #fbbf24; border-color: rgba(251,191,36,0.4); }
263
- .status.disconnected { color: #f87171; border-color: rgba(248,113,113,0.4); }
264
  .controls { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
265
  button {
266
  padding: 13px 28px;
@@ -285,20 +343,23 @@
285
  box-shadow: 0 10px 30px rgba(226,35,26,0.5);
286
  }
287
  button:disabled { background: #1f2329; cursor: not-allowed; opacity: 0.5; box-shadow: none; }
288
- button.danger { background: transparent; color: #fff; border: 1px solid var(--line-strong); box-shadow: none; }
289
- button.danger:hover:not(:disabled) { background: rgba(255,255,255,0.06); border-color: #fff; transform: translateY(-2px); }
290
 
291
  .footer {
292
  margin-top: 22px;
293
  font-size: 0.7rem;
294
  letter-spacing: 0.25em;
295
  text-transform: uppercase;
296
- color: rgba(255,255,255,0.3);
297
  z-index: 1;
298
  }
299
  </style>
300
  </head>
301
  <body>
 
 
 
302
  <div class="app">
303
  <div class="col left">
304
  <div class="brand">
@@ -345,6 +406,11 @@
345
  </div>
346
  </div>
347
  </div>
 
 
 
 
 
348
 
349
  <script>
350
  const SAMPLE_RATE = 24000;
 
9
  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Rajdhani:wght@500;600;700&display=swap" rel="stylesheet" />
10
  <style>
11
  :root {
12
+ --trek-red: #CD1F2A;
13
+ --trek-red-glow: rgba(205, 31, 42, 0.35);
14
+ --bg-page: #e8e9ec;
15
+ --bg-screen: #f6f7f9;
16
+ --bg-screen-2: #ffffff;
17
+ --ink: #1a1d23;
18
+ --ink-soft: #4a5260;
19
+ --ink-mute: #8b929c;
20
+ --line: rgba(0,0,0,0.08);
21
+ --line-strong: rgba(0,0,0,0.16);
22
+ --bezel-1: #2a2d33;
23
+ --bezel-2: #15171b;
24
  }
25
  * { box-sizing: border-box; }
26
  html, body { margin: 0; height: 100%; }
27
  body {
28
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
29
  background:
30
+ radial-gradient(1000px 600px at 50% 10%, #ffffff, transparent 70%),
31
+ linear-gradient(180deg, #eef0f3 0%, #d8dce2 100%);
32
+ color: var(--ink);
 
33
  min-height: 100vh;
34
+ padding: 28px 16px 40px;
35
  letter-spacing: 0.01em;
36
+ display: flex;
37
+ flex-direction: column;
38
+ align-items: center;
39
  }
40
+
41
+ /* Monitor cercevesi — saf CSS, gorsel yok */
42
+ .monitor {
43
+ width: 100%;
44
+ max-width: 1280px;
45
+ margin: 12px auto 0;
46
+ position: relative;
47
+ }
48
+ .monitor .bezel {
49
+ background: linear-gradient(180deg, var(--bezel-1) 0%, var(--bezel-2) 100%);
50
+ border-radius: 18px;
51
+ padding: 18px;
52
+ box-shadow:
53
+ 0 30px 80px rgba(0,0,0,0.25),
54
+ 0 8px 20px rgba(0,0,0,0.15),
55
+ inset 0 1px 0 rgba(255,255,255,0.08),
56
+ inset 0 -1px 0 rgba(0,0,0,0.4);
57
+ position: relative;
58
+ }
59
+ .monitor .bezel::before {
60
+ /* Kamera deligi */
61
+ content: '';
62
+ position: absolute;
63
+ top: 6px;
64
+ left: 50%;
65
+ transform: translateX(-50%);
66
+ width: 6px;
67
+ height: 6px;
68
+ background: #0a0b0d;
69
+ border-radius: 50%;
70
+ box-shadow: inset 0 0 2px rgba(255,255,255,0.2);
71
+ }
72
+ .monitor .screen {
73
+ background: linear-gradient(180deg, var(--bg-screen-2) 0%, var(--bg-screen) 100%);
74
+ border-radius: 6px;
75
+ overflow: hidden;
76
+ position: relative;
77
+ min-height: 720px;
78
+ }
79
+ /* Stand boynu */
80
+ .monitor .neck {
81
+ width: 80px;
82
+ height: 36px;
83
+ margin: -2px auto 0;
84
+ background: linear-gradient(180deg, #b9bdc4 0%, #8c9098 100%);
85
+ border-radius: 0 0 8px 8px;
86
+ box-shadow: 0 2px 4px rgba(0,0,0,0.15);
87
+ }
88
+ /* Stand tabani */
89
+ .monitor .base {
90
+ width: 280px;
91
+ height: 14px;
92
+ margin: 0 auto;
93
+ background: linear-gradient(180deg, #c9ccd2 0%, #9aa0a8 100%);
94
+ border-radius: 50%;
95
+ box-shadow: 0 12px 24px rgba(0,0,0,0.18);
96
+ }
97
+ @media (max-width: 700px) {
98
+ .monitor .bezel { padding: 10px; border-radius: 12px; }
99
+ .monitor .neck { width: 50px; height: 22px; }
100
+ .monitor .base { width: 180px; height: 10px; }
101
+ .monitor .screen { min-height: 0; }
102
+ }
103
+
104
  .app {
105
  display: grid;
106
  grid-template-columns: 1fr 1fr;
107
+ min-height: 720px;
108
  position: relative;
109
  z-index: 1;
110
  }
 
118
  .col.left { border-right: 1px solid var(--line); }
119
  .col.right { justify-content: center; }
120
  @media (max-width: 900px) {
121
+ .app { grid-template-columns: 1fr; min-height: 0; }
122
  .col.left { border-right: none; border-bottom: 1px solid var(--line); }
123
  }
124
  .product-card {
125
  width: min(90%, 520px);
126
+ background: #ffffff;
127
  border: 1px solid var(--line);
128
  border-radius: 4px;
129
  padding: 28px;
130
  text-align: center;
131
  position: relative;
132
+ box-shadow: 0 4px 16px rgba(0,0,0,0.04);
133
  }
134
  .product-card::before {
135
  content: '';
 
143
  font-size: 1rem;
144
  letter-spacing: 0.2em;
145
  text-transform: uppercase;
146
+ color: var(--ink-mute);
147
  padding: 80px 0;
148
  }
 
 
 
 
 
 
149
  .product-card .pimg {
150
  width: 100%;
151
  aspect-ratio: 1 / 1;
152
  object-fit: contain;
153
+ background: #f8f9fb;
154
  border-radius: 2px;
155
  margin-bottom: 20px;
156
  border: 1px solid var(--line);
 
163
  text-transform: uppercase;
164
  margin-bottom: 14px;
165
  line-height: 1.2;
166
+ color: var(--ink);
167
  }
168
  .product-card .plink {
169
  display: inline-block;
 
188
  font-size: 0.8rem;
189
  letter-spacing: 0.32em;
190
  text-transform: uppercase;
191
+ color: var(--ink-mute);
192
  margin-bottom: 18px;
193
  text-align: center;
194
  }
195
  .product-section-title .accent { color: var(--trek-red); }
196
+ .product-card .plink {
197
+ /* tam ust style asagida zaten var, light-mode override gerekmiyor */
 
 
 
 
 
 
 
 
 
198
  }
199
 
200
  .brand {
 
219
  font-size: 0.95rem;
220
  letter-spacing: 0.32em;
221
  text-transform: uppercase;
222
+ color: var(--ink-soft);
223
  }
224
  h1 {
225
  margin: 8px 0 4px;
 
228
  font-weight: 700;
229
  letter-spacing: 0.04em;
230
  text-transform: uppercase;
231
+ color: var(--ink);
232
  z-index: 1;
233
  }
234
  h1 .accent { color: var(--trek-red); }
235
  .subtitle {
236
+ color: var(--ink-mute);
237
  margin-bottom: 22px;
238
  font-size: 0.8rem;
239
  letter-spacing: 0.18em;
 
253
  height: 100%;
254
  object-fit: contain;
255
  border-radius: 4px;
256
+ background: linear-gradient(160deg, #f0f1f4, #e3e6eb);
257
  display: block;
258
  transition: transform 0.18s ease-out, filter 0.25s;
259
  box-shadow:
260
+ 0 12px 32px rgba(0,0,0,0.10),
261
  inset 0 0 0 1px var(--line);
262
  }
263
  .ring {
264
  position: absolute;
265
  inset: -8px;
266
  border-radius: 8px;
267
+ border: 1px solid var(--line);
268
  pointer-events: none;
269
  transition: border-color 0.3s, box-shadow 0.3s, transform 0.12s ease-out;
270
  }
 
288
  .panel {
289
  width: 100%;
290
  max-width: 620px;
291
+ background: #ffffff;
 
292
  border: 1px solid var(--line);
293
  border-radius: 4px;
294
  padding: 22px 24px;
295
  text-align: center;
296
  position: relative;
297
  z-index: 1;
298
+ box-shadow: 0 4px 16px rgba(0,0,0,0.04);
299
  }
300
  .panel::before {
301
  content: '';
 
307
  .status {
308
  padding: 7px 16px;
309
  border-radius: 2px;
310
+ background: #f6f7f9;
311
  border: 1px solid var(--line);
312
  font-family: 'Rajdhani', sans-serif;
313
  font-size: 0.85rem;
 
316
  margin-bottom: 18px;
317
  display: inline-block;
318
  }
319
+ .status.connected { color: #0a8f4f; border-color: rgba(10,143,79,0.35); background: #ecfaf2; }
320
+ .status.connecting { color: #b67900; border-color: rgba(182,121,0,0.35); background: #fff7e6; }
321
+ .status.disconnected { color: #b91c1c; border-color: rgba(185,28,28,0.3); background: #fef2f2; }
322
  .controls { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
323
  button {
324
  padding: 13px 28px;
 
343
  box-shadow: 0 10px 30px rgba(226,35,26,0.5);
344
  }
345
  button:disabled { background: #1f2329; cursor: not-allowed; opacity: 0.5; box-shadow: none; }
346
+ button.danger { background: transparent; color: var(--ink); border: 1px solid var(--line-strong); box-shadow: none; }
347
+ button.danger:hover:not(:disabled) { background: #f3f4f6; border-color: var(--ink-soft); transform: translateY(-2px); }
348
 
349
  .footer {
350
  margin-top: 22px;
351
  font-size: 0.7rem;
352
  letter-spacing: 0.25em;
353
  text-transform: uppercase;
354
+ color: var(--ink-mute);
355
  z-index: 1;
356
  }
357
  </style>
358
  </head>
359
  <body>
360
+ <div class="monitor">
361
+ <div class="bezel">
362
+ <div class="screen">
363
  <div class="app">
364
  <div class="col left">
365
  <div class="brand">
 
406
  </div>
407
  </div>
408
  </div>
409
+ </div><!-- /screen -->
410
+ </div><!-- /bezel -->
411
+ <div class="neck"></div>
412
+ <div class="base"></div>
413
+ </div><!-- /monitor -->
414
 
415
  <script>
416
  const SAMPLE_RATE = 24000;