Vehicoule commited on
Commit
2f590d3
·
verified ·
1 Parent(s): 05d25eb

can you only do websites or also apps

Browse files
Files changed (4) hide show
  1. README.md +8 -5
  2. index.html +261 -19
  3. script.js +69 -0
  4. style.css +20 -20
README.md CHANGED
@@ -1,10 +1,13 @@
1
  ---
2
- title: Lightapp
3
- emoji: 🏃
4
- colorFrom: red
5
- colorTo: purple
6
  sdk: static
7
  pinned: false
 
 
8
  ---
9
 
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
1
  ---
2
+ title: LightApp
3
+ colorFrom: pink
4
+ colorTo: red
5
+ emoji: 🐳
6
  sdk: static
7
  pinned: false
8
+ tags:
9
+ - deepsite-v3
10
  ---
11
 
12
+ # Welcome to your new DeepSite project!
13
+ This project was created with [DeepSite](https://huggingface.co/deepsite).
index.html CHANGED
@@ -1,19 +1,261 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
6
+ <title>LightApp Minimal Light Theme App</title>
7
+ <meta name="description" content="A minimal light-theme starter app with customizable primary/secondary colors." />
8
+ <meta name="color-scheme" content="light" />
9
+ <link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 128 128'%3E%3Ccircle cx='64' cy='64' r='60' fill='%23006AFF'/%3E%3Ctext x='64' y='76' text-anchor='middle' font-family='Arial,Helvetica,sans-serif' font-size='56' fill='white'%3ELA%3C/text%3E%3C/svg%3E" />
10
+ <link rel="stylesheet" href="style.css" />
11
+ <script src="https://cdn.tailwindcss.com"></script>
12
+ <script>
13
+ // Tailwind config (edit primary/secondary values to your desired colors)
14
+ tailwind.config = {
15
+ theme: {
16
+ extend: {
17
+ colors: {
18
+ primary: {
19
+ 50: '#edf6ff',
20
+ 100: '#d6ebff',
21
+ 200: '#b0daff',
22
+ 300: '#7bc2ff',
23
+ 400: '#45a5ff',
24
+ 500: '#0a84ff', // main primary
25
+ 600: '#0066e3',
26
+ 700: '#004db8',
27
+ 800: '#003e91',
28
+ 900: '#003574',
29
+ 950: '#002044',
30
+ },
31
+ secondary: {
32
+ 50: '#f5f8ff',
33
+ 100: '#e8efff',
34
+ 200: '#d4deff',
35
+ 300: '#b3c2ff',
36
+ 400: '#8d9eff',
37
+ 500: '#6b7cff', // main secondary
38
+ 600: '#515df0',
39
+ 700: '#4246cf',
40
+ 800: '#373ba6',
41
+ 900: '#2e347f',
42
+ 950: '#1b2050',
43
+ }
44
+ },
45
+ boxShadow: {
46
+ 'soft': '0 10px 30px rgba(0,0,0,0.07)',
47
+ }
48
+ }
49
+ }
50
+ }
51
+ </script>
52
+ </head>
53
+ <body class="min-h-screen bg-white text-zinc-900 antialiased">
54
+ <!-- Header -->
55
+ <header class="sticky top-0 z-40 border-b border-zinc-200/80 bg-white/80 backdrop-blur">
56
+ <div class="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8">
57
+ <div class="flex h-16 items-center justify-between">
58
+ <a href="#" class="flex items-center gap-3">
59
+ <div class="h-8 w-8 rounded-md bg-gradient-to-br from-primary-500 to-secondary-500"></div>
60
+ <span class="text-lg font-semibold tracking-tight">LightApp</span>
61
+ </a>
62
+ <nav class="hidden md:flex items-center gap-8">
63
+ <a href="#features" class="text-sm font-medium text-zinc-700 hover:text-zinc-900">Features</a>
64
+ <a href="#contact" class="text-sm font-medium text-zinc-700 hover:text-zinc-900">Contact</a>
65
+ <a href="#" class="text-sm font-medium text-primary-600 hover:text-primary-700">Sign in</a>
66
+ <a href="#" class="inline-flex items-center gap-2 rounded-md bg-primary-600 px-4 py-2 text-sm font-semibold text-white shadow hover:bg-primary-700 focus:outline-none focus-visible:ring-2 focus-visible:ring-primary-500/50">
67
+ Get Started
68
+ </a>
69
+ </nav>
70
+ <button id="menuBtn" class="md:hidden inline-flex items-center justify-center rounded-md p-2 text-zinc-700 hover:bg-zinc-100 focus:outline-none focus-visible:ring-2 focus-visible:ring-primary-500/50" aria-label="Open menu" aria-expanded="false">
71
+ <svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24">
72
+ <path stroke-linecap="round" stroke-linejoin="round" d="M4 6h16M4 12h16M4 18h16"/>
73
+ </svg>
74
+ </button>
75
+ </div>
76
+ </div>
77
+ <div id="mobileNav" class="md:hidden hidden border-t border-zinc-200/80 bg-white">
78
+ <div class="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8 py-3 flex flex-col gap-2">
79
+ <a href="#features" class="py-2 text-sm font-medium text-zinc-700 hover:text-zinc-900">Features</a>
80
+ <a href="#contact" class="py-2 text-sm font-medium text-zinc-700 hover:text-zinc-900">Contact</a>
81
+ <a href="#" class="py-2 text-sm font-medium text-primary-600 hover:text-primary-700">Sign in</a>
82
+ <a href="#" class="mt-1 inline-flex items-center justify-center rounded-md bg-primary-600 px-4 py-2 text-sm font-semibold text-white shadow hover:bg-primary-700">Get Started</a>
83
+ </div>
84
+ </div>
85
+ </header>
86
+
87
+ <!-- Hero -->
88
+ <section class="relative overflow-hidden">
89
+ <div class="absolute inset-0 -z-10">
90
+ <div class="pointer-events-none absolute -top-24 left-1/2 h-[480px] w-[900px] -translate-x-1/2 rounded-full blur-3xl opacity-30" style="background: radial-gradient(closest-side, rgba(10,132,255,0.45), rgba(255,255,255,0));"></div>
91
+ </div>
92
+ <div class="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8 py-20 lg:py-28">
93
+ <div class="grid lg:grid-cols-2 gap-12 items-center">
94
+ <div>
95
+ <span class="inline-flex items-center gap-2 rounded-full border border-zinc-200 bg-white px-3 py-1 text-xs font-medium text-zinc-700 shadow">
96
+ <span class="h-1.5 w-1.5 rounded-full bg-primary-500"></span>
97
+ Light mode by default
98
+ </span>
99
+ <h1 class="mt-6 text-4xl font-bold tracking-tight sm:text-5xl">
100
+ Build faster with a clean, light theme starter
101
+ </h1>
102
+ <p class="mt-4 text-lg text-zinc-600">
103
+ A minimal app scaffold you can customize quickly. Configure your brand colors once and ship beautiful UIs with confidence.
104
+ </p>
105
+ <div class="mt-8 flex flex-wrap items-center gap-3">
106
+ <a href="#" class="inline-flex items-center gap-2 rounded-md bg-primary-600 px-5 py-3 text-sm font-semibold text-white shadow hover:bg-primary-700 focus:outline-none focus-visible:ring-2 focus-visible:ring-primary-500/50">
107
+ Get Started
108
+ <svg xmlns="http://www.w3.org/2000/svg" class="h-4 w-4" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/></svg>
109
+ </a>
110
+ <a href="#features" class="inline-flex items-center gap-2 rounded-md border border-zinc-300 bg-white px-5 py-3 text-sm font-semibold text-zinc-800 hover:bg-zinc-50 focus:outline-none focus-visible:ring-2 focus-visible:ring-primary-500/50">
111
+ Learn more
112
+ </a>
113
+ </div>
114
+ <div class="mt-6 flex items-center gap-4 text-sm text-zinc-600">
115
+ <div class="flex -space-x-2">
116
+ <img class="inline-block h-8 w-8 rounded-full ring-2 ring-white" src="https://i.pravatar.cc/64?img=1" alt="User avatar" />
117
+ <img class="inline-block h-8 w-8 rounded-full ring-2 ring-white" src="https://i.pravatar.cc/64?img=2" alt="User avatar" />
118
+ <img class="inline-block h-8 w-8 rounded-full ring-2 ring-white" src="https://i.pravatar.cc/64?img=3" alt="User avatar" />
119
+ </div>
120
+ <span>Trusted by 1,200+ teams</span>
121
+ </div>
122
+ </div>
123
+ <div class="relative">
124
+ <div class="absolute -inset-6 -z-10 rounded-3xl bg-gradient-to-br from-primary-500/20 via-secondary-500/10 to-transparent blur-2xl"></div>
125
+ <div class="rounded-3xl border border-zinc-200 bg-white p-6 shadow-soft">
126
+ <div class="flex items-center gap-3 border-b border-zinc-200 pb-4">
127
+ <div class="h-3 w-3 rounded-full bg-red-400"></div>
128
+ <div class="h-3 w-3 rounded-full bg-amber-400"></div>
129
+ <div class="h-3 w-3 rounded-full bg-emerald-400"></div>
130
+ <span class="ml-auto text-xs text-zinc-500">Preview</span>
131
+ </div>
132
+ <div class="mt-6 grid gap-4 sm:grid-cols-2">
133
+ <div class="rounded-xl border border-zinc-200 p-4">
134
+ <div class="h-10 w-10 rounded-md bg-gradient-to-br from-primary-500 to-secondary-500"></div>
135
+ <h3 class="mt-3 font-semibold">Primary color</h3>
136
+ <p class="text-sm text-zinc-600">Set in Tailwind config. Try blue or your brand color.</p>
137
+ </div>
138
+ <div class="rounded-xl border border-zinc-200 p-4">
139
+ <div class="h-10 w-10 rounded-md bg-gradient-to-br from-secondary-500 to-primary-500"></div>
140
+ <h3 class="mt-3 font-semibold">Secondary color</h3>
141
+ <p class="text-sm text-zinc-600">Accent actions and highlights.</p>
142
+ </div>
143
+ <div class="rounded-xl border border-zinc-200 p-4">
144
+ <h3 class="font-semibold">Light mode</h3>
145
+ <p class="text-sm text-zinc-600">Clean UI for daytime use and readability.</p>
146
+ </div>
147
+ <div class="rounded-xl border border-zinc-200 p-4">
148
+ <h3 class="font-semibold">No build tools</h3>
149
+ <p class="text-sm text-zinc-600">Drop-in HTML/CSS/JS. Works with CDNs.</p>
150
+ </div>
151
+ </div>
152
+ </div>
153
+ </div>
154
+ </div>
155
+ </div>
156
+ </section>
157
+
158
+ <!-- Features -->
159
+ <section id="features" class="bg-zinc-50 py-16 sm:py-20">
160
+ <div class="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8">
161
+ <div class="mx-auto max-w-2xl text-center">
162
+ <h2 class="text-3xl font-bold tracking-tight sm:text-4xl">Features that scale</h2>
163
+ <p class="mt-3 text-zinc-600">Everything you need to prototype, validate, and ship your next idea.</p>
164
+ </div>
165
+ <div class="mt-10 grid gap-6 sm:grid-cols-2 lg:grid-cols-3">
166
+ <div class="rounded-2xl border border-zinc-200 bg-white p-6">
167
+ <div class="flex h-10 w-10 items-center justify-center rounded-lg bg-primary-100 text-primary-700">
168
+ <svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="M13 10V3L4 14h7v7l9-11h-7z"/></svg>
169
+ </div>
170
+ <h3 class="mt-4 font-semibold">Instant load</h3>
171
+ <p class="mt-1 text-sm text-zinc-600">Lightweight CSS and minimal JS for quick first paint.</p>
172
+ </div>
173
+ <div class="rounded-2xl border border-zinc-200 bg-white p-6">
174
+ <div class="flex h-10 w-10 items-center justify-center rounded-lg bg-secondary-100 text-secondary-700">
175
+ <svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="M12 15l9-5-9-5-9 5 9 5z"/><path stroke-linecap="round" stroke-linejoin="round" d="M12 15v6"/></svg>
176
+ </div>
177
+ <h3 class="mt-4 font-semibold">Accessible by default</h3>
178
+ <p class="mt-1 text-sm text-zinc-600">Contrast-friendly palette and keyboard-friendly controls.</p>
179
+ </div>
180
+ <div class="rounded-2xl border border-zinc-200 bg-white p-6">
181
+ <div class="flex h-10 w-10 items-center justify-center rounded-lg bg-primary-100 text-primary-700">
182
+ <svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="M4 7h16M4 12h10M4 17h7"/></svg>
183
+ </div>
184
+ <h3 class="mt-4 font-semibold">Readable typography</h3>
185
+ <p class="mt-1 text-sm text-zinc-600">Comfortable line-height and spacing for long reads.</p>
186
+ </div>
187
+ <div class="rounded-2xl border border-zinc-200 bg-white p-6">
188
+ <div class="flex h-10 w-10 items-center justify-center rounded-lg bg-secondary-100 text-secondary-700">
189
+ <svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="M12 6v12m-6-6h12"/></svg>
190
+ </div>
191
+ <h3 class="mt-4 font-semibold">Extendable</h3>
192
+ <p class="mt-1 text-sm text-zinc-600">Drop in components or add your own CSS.</p>
193
+ </div>
194
+ <div class="rounded-2xl border border-zinc-200 bg-white p-6">
195
+ <div class="flex h-10 w-10 items-center justify-center rounded-lg bg-primary-100 text-primary-700">
196
+ <svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="M9 12l2 2 4-4M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/></svg>
197
+ </div>
198
+ <h3 class="mt-4 font-semibold">Modern buttons</h3>
199
+ <p class="mt-1 text-sm text-zinc-600">Polished focus states and hover feedback.</p>
200
+ </div>
201
+ <div class="rounded-2xl border border-zinc-200 bg-white p-6">
202
+ <div class="flex h-10 w-10 items-center justify-center rounded-lg bg-secondary-100 text-secondary-700">
203
+ <svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="M4 4v6h6M20 20v-6h-6"/><path stroke-linecap="round" stroke-linejoin="round" d="M20 9A8 8 0 104 15"/></svg>
204
+ </div>
205
+ <h3 class="mt-4 font-semibold">Reusable patterns</h3>
206
+ <p class="mt-1 text-sm text-zinc-600">Build quickly with consistent building blocks.</p>
207
+ </div>
208
+ </div>
209
+ </div>
210
+ </section>
211
+
212
+ <!-- Contact -->
213
+ <section id="contact" class="py-16 sm:py-20">
214
+ <div class="mx-auto max-w-3xl px-4 sm:px-6 lg:px-8">
215
+ <div class="rounded-2xl border border-zinc-200 bg-white p-6 sm:p-8 shadow-soft">
216
+ <h2 class="text-2xl font-bold tracking-tight">Get in touch</h2>
217
+ <p class="mt-2 text-zinc-600">Tell us a bit about your project and we’ll get back within 1–2 business days.</p>
218
+ <form id="contactForm" class="mt-6 grid gap-4">
219
+ <div class="grid gap-4 sm:grid-cols-2">
220
+ <div>
221
+ <label class="text-sm font-medium text-zinc-800" for="name">Name</label>
222
+ <input id="name" name="name" type="text" required class="mt-1 block w-full rounded-md border-zinc-300 bg-white text-zinc-900 placeholder-zinc-400 shadow-sm focus:border-primary-500 focus:ring-primary-500" placeholder="Ada Lovelace" />
223
+ </div>
224
+ <div>
225
+ <label class="text-sm font-medium text-zinc-800" for="email">Email</label>
226
+ <input id="email" name="email" type="email" required class="mt-1 block w-full rounded-md border-zinc-300 bg-white text-zinc-900 placeholder-zinc-400 shadow-sm focus:border-primary-500 focus:ring-primary-500" placeholder="you@company.com" />
227
+ </div>
228
+ </div>
229
+ <div>
230
+ <label class="text-sm font-medium text-zinc-800" for="message">Message</label>
231
+ <textarea id="message" name="message" rows="4" required class="mt-1 block w-full rounded-md border-zinc-300 bg-white text-zinc-900 placeholder-zinc-400 shadow-sm focus:border-primary-500 focus:ring-primary-500" placeholder="What are you building?"></textarea>
232
+ </div>
233
+ <div class="flex items-center justify-between">
234
+ <p class="text-xs text-zinc-500">We’ll never share your info.</p>
235
+ <button type="submit" class="inline-flex items-center gap-2 rounded-md bg-primary-600 px-5 py-2.5 text-sm font-semibold text-white shadow hover:bg-primary-700 focus:outline-none focus-visible:ring-2 focus-visible:ring-primary-500/50">
236
+ Send message
237
+ </button>
238
+ </div>
239
+ </form>
240
+ </div>
241
+ </div>
242
+ </section>
243
+
244
+ <!-- Footer -->
245
+ <footer class="border-t border-zinc-200 bg-white">
246
+ <div class="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8 py-10">
247
+ <div class="flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4">
248
+ <p class="text-sm text-zinc-600">© <span id="year"></span> LightApp. All rights reserved.</p>
249
+ <div class="flex items-center gap-6">
250
+ <a class="text-sm text-zinc-600 hover:text-zinc-900" href="#">Privacy</a>
251
+ <a class="text-sm text-zinc-600 hover:text-zinc-900" href="#">Terms</a>
252
+ <a class="text-sm text-zinc-600 hover:text-zinc-900" href="#">GitHub</a>
253
+ </div>
254
+ </div>
255
+ </div>
256
+ </footer>
257
+
258
+ <script src="script.js"></script>
259
+ <script src="https://huggingface.co/deepsite/deepsite-badge.js"></script>
260
+ </body>
261
+ </html>
script.js ADDED
@@ -0,0 +1,69 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // Utility: query helpers
2
+ const $ = (sel, ctx = document) => ctx.querySelector(sel);
3
+ const $$ = (sel, ctx = document) => Array.from(ctx.querySelectorAll(sel));
4
+
5
+ // Mobile navigation toggle
6
+ const menuBtn = $('#menuBtn');
7
+ const mobileNav = $('#mobileNav');
8
+ if (menuBtn && mobileNav) {
9
+ menuBtn.addEventListener('click', () => {
10
+ const expanded = menuBtn.getAttribute('aria-expanded') === 'true';
11
+ menuBtn.setAttribute('aria-expanded', String(!expanded));
12
+ mobileNav.classList.toggle('hidden');
13
+ });
14
+ }
15
+
16
+ // Smooth scroll for in-page links
17
+ $$('a[href^="#"]').forEach(a => {
18
+ a.addEventListener('click', e => {
19
+ const href = a.getAttribute('href');
20
+ if (!href || href === '#') return;
21
+ const target = $(href);
22
+ if (target) {
23
+ e.preventDefault();
24
+ target.scrollIntoView({ behavior: 'smooth', block: 'start' });
25
+ // Close mobile menu after navigation
26
+ if (!mobileNav.classList.contains('hidden')) {
27
+ mobileNav.classList.add('hidden');
28
+ menuBtn.setAttribute('aria-expanded', 'false');
29
+ }
30
+ }
31
+ });
32
+ });
33
+
34
+ // Contact form handler
35
+ const form = $('#contactForm');
36
+ if (form) {
37
+ form.addEventListener('submit', async (e) => {
38
+ e.preventDefault();
39
+ const formData = new FormData(form);
40
+ const data = Object.fromEntries(formData.entries());
41
+
42
+ // Minimal client validation example
43
+ if (!data.email || !/^\S+@\S+\.\S+$/.test(data.email)) {
44
+ alert('Please enter a valid email.');
45
+ return;
46
+ }
47
+ if (!data.name || data.name.trim().length < 2) {
48
+ alert('Please enter your name.');
49
+ return;
50
+ }
51
+ if (!data.message || data.message.trim().length < 10) {
52
+ alert('Please enter a longer message (10+ characters).');
53
+ return;
54
+ }
55
+
56
+ // Simulated submit (replace with real fetch to your backend)
57
+ console.log('Submitting contact form:', data);
58
+ form.reset();
59
+ alert('Thanks! Your message has been sent.');
60
+ });
61
+ }
62
+
63
+ // Set footer year
64
+ const yearEl = $('#year');
65
+ if (yearEl) yearEl.textContent = String(new Date().getFullYear());
66
+
67
+ // Optional: Log Tailwind colors for quick inspection in dev
68
+ console.log('Primary 500:', getComputedStyle(document.documentElement).getPropertyValue('--tw-color-primary-500') || 'N/A');
69
+ console.log('Secondary 500:', getComputedStyle(document.documentElement).getPropertyValue('--tw-color-secondary-500') || 'N/A');
style.css CHANGED
@@ -1,28 +1,28 @@
1
- body {
2
- padding: 2rem;
3
- font-family: -apple-system, BlinkMacSystemFont, "Arial", sans-serif;
4
  }
5
 
6
- h1 {
7
- font-size: 16px;
8
- margin-top: 0;
9
  }
10
 
11
- p {
12
- color: rgb(107, 114, 128);
13
- font-size: 15px;
14
- margin-bottom: 10px;
15
- margin-top: 5px;
16
  }
17
 
18
- .card {
19
- max-width: 620px;
20
- margin: 0 auto;
21
- padding: 16px;
22
- border: 1px solid lightgray;
23
- border-radius: 16px;
24
  }
25
 
26
- .card p:last-child {
27
- margin-bottom: 0;
28
- }
 
 
 
 
 
 
 
1
+ /* Base tweaks */
2
+ :root {
3
+ color-scheme: light;
4
  }
5
 
6
+ html, body {
7
+ height: 100%;
 
8
  }
9
 
10
+ ::selection {
11
+ background: rgba(10, 132, 255, 0.15);
 
 
 
12
  }
13
 
14
+ /* Focus outlines */
15
+ :focus-visible {
16
+ outline: 2px solid theme(colors.primary.500 / 0.5);
17
+ outline-offset: 2px;
 
 
18
  }
19
 
20
+ /* Motion reduction */
21
+ @media (prefers-reduced-motion: reduce) {
22
+ * {
23
+ animation-duration: 0.001ms !important;
24
+ animation-iteration-count: 1 !important;
25
+ transition-duration: 0.001ms !important;
26
+ scroll-behavior: auto !important;
27
+ }
28
+ }