-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathindex.html
More file actions
309 lines (283 loc) · 69.6 KB
/
Copy pathindex.html
File metadata and controls
309 lines (283 loc) · 69.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>QR code generator — City and County of San Francisco</title>
<script src="https://cdn.tailwindcss.com"></script>
<script>
tailwind.config = {
theme: {
extend: {
colors: {
white: '#fcfcfc',
black: '#0b0c0c',
primary: {
10: '#F3F8FE',
50: '#e9f1fe',
100: '#dfebfd',
200: '#afccf7',
300: '#83aceb',
400: '#5a8dd9',
500: '#2A60AF',
600: '#1b519e',
700: '#043578',
800: '#001d4e',
900: '#000925',
},
neutral: {
10: '#f7f8f8',
50: '#eff0f0',
100: '#e9eaea',
200: '#c9caca',
300: '#aaabab',
400: '#8b8d8d',
500: '#6e7070',
600: '#535454',
700: '#383939',
800: '#202121',
900: '#0b0b0b',
},
danger: {
500: '#d0110b',
},
},
fontFamily: {
body: ['Roboto Flex', 'sans-serif'],
slab: ['Roboto Slab', 'serif'],
},
borderRadius: {
DEFAULT: '8px',
},
borderWidth: {
1: '1px',
},
spacing: {
4: '4px',
8: '8px',
12: '12px',
16: '16px',
20: '20px',
28: '28px',
40: '40px',
},
maxWidth: {
md: '500px',
},
fontSize: {
body: ['16px', { lineHeight: '24px', fontWeight: '400' }],
small: ['14px', { lineHeight: '24px' }],
'heading-xs': ['14px', { lineHeight: '20px', fontWeight: '300' }],
'heading-sm': ['16px', { lineHeight: '24px', fontWeight: '800' }],
'heading-xl': ['24px', { lineHeight: '32px', fontWeight: '600' }],
'desktop-heading-xl': ['32px', { lineHeight: '44px', fontWeight: '600' }],
},
},
},
}
</script>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Roboto+Flex:wght@300;400;500;600;700;800&family=Roboto+Slab:wght@500;600&display=swap" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/qrcode@1.5.1/build/qrcode.min.js"></script>
<style>
body { font-family: 'Roboto Flex', sans-serif; background: #fcfcfc; color: #0b0b0b; }
.outline-focus { outline: 3px solid #2A60AF; outline-offset: 4px; }
input:focus { outline: 3px solid #2A60AF; outline-offset: 4px; }
</style>
</head>
<body>
<main class="mx-20 max-w-md md:mx-28 lg:mx-auto py-40">
<h1 class="font-body text-heading-xl lg:text-desktop-heading-xl text-neutral-900 mb-12">QR code generator</h1>
<p class="font-body text-body text-neutral-700 mb-28">
Generate official City and County of San Francisco QR codes with the City seal. Paste a URL, pick a size, and download a PNG.
</p>
<!-- URL input -->
<div class="mb-20">
<label for="qr-url" class="font-body text-heading-xs text-neutral-900 mb-4 block">
Destination URL
</label>
<input
id="qr-url"
type="url"
placeholder="https://sf.gov/example"
class="w-full border-1 border-neutral-400 rounded px-12 py-8 font-body text-body text-neutral-900 placeholder:text-neutral-400"
>
<p id="qr-url-error" class="text-danger-500 text-small font-body mt-4 hidden" role="alert"></p>
</div>
<!-- Size picker -->
<fieldset class="mb-28">
<legend class="font-body text-heading-xs text-neutral-900 mb-4 block">
Size
</legend>
<div class="flex gap-12" id="size-options"></div>
</fieldset>
<!-- Generate button -->
<button
id="generate-btn"
class="flex w-full items-center justify-center rounded px-16 py-12 font-body text-body font-medium text-white bg-primary-500 hover:bg-primary-800 focus:bg-primary-800 transition-colors cursor-pointer"
>
Generate QR code
</button>
<!-- Preview and download -->
<div id="preview-section" class="mt-28 border-1 border-neutral-200 rounded p-20 hidden">
<h2 class="font-body text-heading-sm text-neutral-900 mb-12">Preview</h2>
<div class="flex justify-center mb-20 bg-neutral-10 rounded p-16">
<img id="preview-img" alt="" class="max-w-full">
</div>
<button
id="download-btn"
class="flex w-full items-center justify-center rounded px-16 py-12 font-body text-body font-medium text-primary-700 bg-primary-100 hover:bg-primary-200 focus:bg-primary-200 transition-colors cursor-pointer"
>
<svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor" class="mr-8">
<path d="M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z"/>
</svg>
<span id="download-label">Download PNG</span>
</button>
</div>
</main>
<script>
// City seal as base64 PNG (200x200, resized from media.api.sf.gov)
const CITY_SEAL_URL = 'data:image/png;base64,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';
const ERROR_CORRECTION = 'H';
const SEAL_SIZE_RATIO = 0.22;
const SIZE_OPTIONS = [
{ label: '256px', value: 256, description: 'Digital use' },
{ label: '512px', value: 512, description: 'Print materials' },
{ label: '1024px', value: 1024, description: 'Signage and posters' },
];
let selectedSize = 512;
let currentDataUrl = null;
// Build size picker
const sizeContainer = document.getElementById('size-options');
SIZE_OPTIONS.forEach(opt => {
const label = document.createElement('label');
label.className = 'flex-1 cursor-pointer rounded border-1 px-12 py-8 text-center transition-colors';
label.innerHTML = `
<input type="radio" name="qr-size" value="${opt.value}" ${opt.value === selectedSize ? 'checked' : ''} class="sr-only">
<span class="font-body text-small block font-medium">${opt.label}</span>
<span class="font-body text-small block text-neutral-500">${opt.description}</span>
`;
label.addEventListener('click', () => {
selectedSize = opt.value;
updateSizeStyles();
});
sizeContainer.appendChild(label);
});
updateSizeStyles();
function updateSizeStyles() {
const labels = sizeContainer.querySelectorAll('label');
labels.forEach(label => {
const radio = label.querySelector('input');
if (parseInt(radio.value) === selectedSize) {
label.className = 'flex-1 cursor-pointer rounded border-1 px-12 py-8 text-center transition-colors border-primary-500 bg-primary-10 text-primary-700';
radio.checked = true;
} else {
label.className = 'flex-1 cursor-pointer rounded border-1 px-12 py-8 text-center transition-colors border-neutral-200 bg-white text-neutral-700 hover:border-neutral-400';
radio.checked = false;
}
});
}
// URL validation
function isValidUrl(input) {
try {
const url = new URL(input);
return url.protocol === 'https:' || url.protocol === 'http:';
} catch {
return false;
}
}
function showError(msg) {
const el = document.getElementById('qr-url-error');
el.textContent = msg;
el.classList.remove('hidden');
document.getElementById('qr-url').setAttribute('aria-invalid', 'true');
document.getElementById('qr-url').setAttribute('aria-describedby', 'qr-url-error');
}
function clearError() {
const el = document.getElementById('qr-url-error');
el.textContent = '';
el.classList.add('hidden');
document.getElementById('qr-url').removeAttribute('aria-invalid');
document.getElementById('qr-url').removeAttribute('aria-describedby');
}
// Clear error on input
document.getElementById('qr-url').addEventListener('input', clearError);
// Generate
document.getElementById('generate-btn').addEventListener('click', async () => {
const urlInput = document.getElementById('qr-url');
const trimmedUrl = urlInput.value.trim();
if (!trimmedUrl) {
showError('Enter a destination URL.');
return;
}
if (!isValidUrl(trimmedUrl)) {
showError('Enter a valid URL starting with https:// or http://.');
return;
}
clearError();
const btn = document.getElementById('generate-btn');
btn.textContent = 'Generating…';
btn.disabled = true;
try {
const canvas = document.createElement('canvas');
canvas.width = selectedSize;
canvas.height = selectedSize;
await QRCode.toCanvas(canvas, trimmedUrl, {
width: selectedSize,
margin: 2,
errorCorrectionLevel: ERROR_CORRECTION,
color: { dark: '#0b0b0b', light: '#fcfcfc' },
});
const ctx = canvas.getContext('2d');
// Draw city seal overlay
if (CITY_SEAL_URL) {
await new Promise(resolve => {
const img = new Image();
img.onload = () => {
const sealSize = Math.round(selectedSize * SEAL_SIZE_RATIO);
const sealX = Math.round((selectedSize - sealSize) / 2);
const sealY = Math.round((selectedSize - sealSize) / 2);
// White circle behind seal
ctx.beginPath();
ctx.arc(selectedSize / 2, selectedSize / 2, sealSize / 2 + Math.round(selectedSize * 0.02), 0, Math.PI * 2);
ctx.fillStyle = '#fcfcfc';
ctx.fill();
ctx.drawImage(img, sealX, sealY, sealSize, sealSize);
resolve();
};
img.onerror = () => {
console.warn('City seal could not be loaded.');
resolve();
};
img.src = CITY_SEAL_URL;
});
}
currentDataUrl = canvas.toDataURL('image/png');
// Show preview
const previewImg = document.getElementById('preview-img');
previewImg.src = currentDataUrl;
previewImg.alt = `QR code linking to ${trimmedUrl}`;
previewImg.style.width = Math.min(selectedSize, 320) + 'px';
previewImg.style.height = Math.min(selectedSize, 320) + 'px';
document.getElementById('download-label').textContent = `Download PNG (${selectedSize}×${selectedSize})`;
document.getElementById('preview-section').classList.remove('hidden');
} catch (err) {
showError('Something went wrong generating the QR code. Try again.');
console.error(err);
} finally {
btn.textContent = 'Generate QR code';
btn.disabled = false;
}
});
// Download
document.getElementById('download-btn').addEventListener('click', () => {
if (!currentDataUrl) return;
const link = document.createElement('a');
link.download = `sf-qr-code-${selectedSize}.png`;
link.href = currentDataUrl;
link.click();
});
</script>
</body>
</html>