clio.css 0.0.0-stage → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,990 @@
1
+ {
2
+ "name": "clio.css",
3
+ "version": "0.2.0",
4
+ "description": "CSS library for classic Mac OS interfaces: Macintosh System 6 and Mac OS 8/9 Platinum windows, menus, buttons, scroll bars and dialogs, with every value traced to measured pixels.",
5
+ "homepage": "https://surfine.github.io/clio.css/",
6
+ "license": "MIT",
7
+ "eras": [
8
+ {
9
+ "id": "system6",
10
+ "name": "Macintosh System 6",
11
+ "attribute": "data-era=\"system6\"",
12
+ "default": true,
13
+ "file": "dist/clio.system6.css"
14
+ },
15
+ {
16
+ "id": "platinum",
17
+ "name": "Mac OS 8/9 Platinum",
18
+ "attribute": "data-era=\"platinum\"",
19
+ "file": "dist/clio.platinum.css"
20
+ }
21
+ ],
22
+ "install": {
23
+ "npm": "npm install clio.css",
24
+ "cdn": "https://unpkg.com/clio.css@0.2.0/dist/clio.css",
25
+ "jsdelivr": "https://cdn.jsdelivr.net/npm/clio.css@0.2.0/dist/clio.css"
26
+ },
27
+ "evidenceStatuses": {
28
+ "measured": "read from real pixels of the era",
29
+ "inferred": "reasoned from documentation or behaviour, not measured",
30
+ "adapted": "a deliberate departure for the web (touch, focus, contrast)",
31
+ "third-party": "art or font from a named, licensed project"
32
+ },
33
+ "evidenceBase": "AI System 6 @b75cd4ed",
34
+ "components": [
35
+ {
36
+ "id": "window",
37
+ "bare": true,
38
+ "name": "Window",
39
+ "summary": "A document window: frame, title bar with close and zoom boxes (plus the WindowShade box in Platinum), an optional details bar and a scrolling pane.",
40
+ "selectors": [
41
+ ".window",
42
+ ".window.inactive",
43
+ ".title-bar",
44
+ ".title-bar > .title",
45
+ ".title-bar > .close",
46
+ ".title-bar > .resize",
47
+ ".title-bar > .shade",
48
+ ".details-bar",
49
+ ".window-pane",
50
+ ".status-bar",
51
+ ".separator",
52
+ ".inactive-title-bar"
53
+ ],
54
+ "aliases": {
55
+ "system.css": [
56
+ ".title-bar button.close",
57
+ ".title-bar button.resize",
58
+ ".inactive-title-bar",
59
+ ".window-pane",
60
+ ".details-bar",
61
+ ".separator"
62
+ ],
63
+ "AI System 6": [
64
+ ".close-box",
65
+ ".resize-box",
66
+ ".shade-box",
67
+ ".title-bar h1",
68
+ ".title-bar h2"
69
+ ]
70
+ },
71
+ "tokens": [
72
+ "--clio-window-bg",
73
+ "--clio-window-border",
74
+ "--clio-window-shadow",
75
+ "--clio-titlebar-height",
76
+ "--clio-titlebar-bg",
77
+ "--clio-box-size",
78
+ "--clio-box-inset",
79
+ "--clio-box-isolation",
80
+ "--clio-pane-bg"
81
+ ],
82
+ "accessibility": "Give each box an aria-label (Close, Zoom, Collapse). The title is a real heading; pick the level that fits your page (h1 for a full-screen app window). Buttons keep a visible focus ring. On touch screens each box gets a 45px hit area while its art stays 11px.",
83
+ "html": "<div class=\"window\" style=\"width: 300px\">\n <div class=\"title-bar\">\n <button class=\"close\" aria-label=\"Close\"></button>\n <h3 class=\"title\">Macintosh HD</h3>\n <button class=\"resize\" aria-label=\"Zoom\"></button>\n </div>\n <div class=\"details-bar\">\n <span>12 items</span>\n <span>232K in disk</span>\n <span>167K available</span>\n </div>\n <div class=\"window-pane\" style=\"height: 96px\">\n <p>A window pane scrolls with the era's scroll bars.</p>\n </div>\n</div>",
84
+ "variants": [
85
+ {
86
+ "name": "Inactive window",
87
+ "note": "A background window keeps its title but erases its stripes and boxes.",
88
+ "html": "<div class=\"window inactive\" style=\"width: 300px\">\n <div class=\"title-bar\">\n <button class=\"close\" aria-label=\"Close\"></button>\n <h3 class=\"title\">Untitled</h3>\n <button class=\"resize\" aria-label=\"Zoom\"></button>\n </div>\n <div class=\"window-pane\" style=\"height: 48px\"></div>\n</div>"
89
+ },
90
+ {
91
+ "name": "With a WindowShade box",
92
+ "note": "Platinum draws the collapse box at the far right. System 6 had none, so the box is hidden there.",
93
+ "html": "<div class=\"window\" style=\"width: 300px\">\n <div class=\"title-bar\">\n <button class=\"close\" aria-label=\"Close\"></button>\n <h3 class=\"title\">Appearance</h3>\n <button class=\"resize\" aria-label=\"Zoom\"></button>\n <button class=\"shade\" aria-label=\"Collapse\"></button>\n </div>\n <div class=\"window-pane\" style=\"height: 48px\"></div>\n</div>"
94
+ }
95
+ ],
96
+ "evidence": [
97
+ {
98
+ "era": "system6",
99
+ "claim": "Title bar: 19 rows from the frame to the rule; 3 rows of paper, six 1px ink stripes on a 2px period, 3 rows of paper, the 1px rule",
100
+ "status": "measured",
101
+ "source": "clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), frame hd-window rows 27–45",
102
+ "upstream": "agrees with AI System 6 apps/desktop/styles/00-foundation.css:906 (emulator, 2x)"
103
+ },
104
+ {
105
+ "era": "system6",
106
+ "claim": "Close and zoom boxes: 11px squares on the stripe band, 8px in from each inner edge, with 1px of paper between box and stripes (AI System 6 uses 3px)",
107
+ "status": "measured",
108
+ "source": "clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), frame hd-window",
109
+ "upstream": "System 6.0.8 Finder window Macintosh HD"
110
+ },
111
+ {
112
+ "era": "system6",
113
+ "claim": "Title cut-out: about 6px of paper either side of the name (7px left, 5px right including the glyph's side bearing)",
114
+ "status": "measured",
115
+ "source": "clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), frame hd-window",
116
+ "upstream": "System 6.0.8 Finder window"
117
+ },
118
+ {
119
+ "era": "system6",
120
+ "claim": "Zoom box: an inner square of 7 of the frame's 11 pixels sharing its top-left corner",
121
+ "status": "measured",
122
+ "source": "apps/desktop/styles/10-windows.css:1059",
123
+ "upstream": "System 6 zoom box, 7:11"
124
+ },
125
+ {
126
+ "era": "system6",
127
+ "claim": "An inactive window draws a plain white title strip with its name; no stripes, close box or zoom box",
128
+ "status": "measured",
129
+ "source": "clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), frame alert (Macintosh HD behind the alert)",
130
+ "upstream": "agrees with AI System 6 apps/desktop/styles/00-foundation.css:951"
131
+ },
132
+ {
133
+ "era": "system6",
134
+ "claim": "A held close or zoom box draws the same starburst: eight 3px rays and a centre dot inside the frame",
135
+ "status": "measured",
136
+ "source": "clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), mouse held on each box",
137
+ "upstream": "the cursor covered the lower half; it is drawn as the mirror of the upper half"
138
+ },
139
+ {
140
+ "era": "system6",
141
+ "claim": "The window frame has a 1px ink drop shadow on the right and bottom",
142
+ "status": "measured",
143
+ "source": "clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), frame hd-window x=239, y=152",
144
+ "upstream": "AI System 6 sets no window shadow"
145
+ },
146
+ {
147
+ "era": "system6",
148
+ "claim": "Finder info line: 17 rows of Geneva 9, text 15px in, closed by 1px ink, 1px paper, 1px ink",
149
+ "status": "measured",
150
+ "source": "clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), frame hd-window rows 46–65",
151
+ "upstream": "System 6.0.8 Finder window"
152
+ },
153
+ {
154
+ "era": "platinum",
155
+ "claim": "Frame: 1px black line, a raised 4px strip (white top/left, #999 bottom/right), the black content line; 2px 5px 5px padding",
156
+ "status": "measured",
157
+ "source": "apps/desktop/styles/65-appearance-themes.css:1744 (P14)",
158
+ "upstream": "Mac OS 8/9 window captures 16 and 21"
159
+ },
160
+ {
161
+ "era": "platinum",
162
+ "claim": "Title bar 19px: #ccc, six white/#777 ridge pairs from row 1, #999 shadow row, black rule; #ccc covers behind the boxes",
163
+ "status": "measured",
164
+ "source": "apps/desktop/styles/65-appearance-themes.css:104",
165
+ "upstream": "GUIdebook Mac OS 9.0 Appearance window (Theme Lab specimen active-titlebar)"
166
+ },
167
+ {
168
+ "era": "platinum",
169
+ "claim": "Title in bold Charcoal; on other systems Asap at width 123 shifted (-1px, -1px), the metrics the title bar was measured with",
170
+ "status": "measured",
171
+ "source": "apps/desktop/styles/65-appearance-themes.css:1803",
172
+ "upstream": "GUIdebook Mac OS 9.0 Appearance window"
173
+ },
174
+ {
175
+ "era": "platinum",
176
+ "claim": "Boxes: 11px, #222 frame, #999 to white gradient, #888 bevel above-left and white below-right; pressed #444 to #bbb",
177
+ "status": "measured",
178
+ "source": "apps/desktop/styles/65-appearance-themes.css:1820",
179
+ "upstream": "GUIdebook Mac OS 9.0 captures"
180
+ },
181
+ {
182
+ "era": "platinum",
183
+ "claim": "Zoom mark: a six-pixel lower-left corner; WindowShade mark: two nine-pixel rules at y=4 and y=6",
184
+ "status": "measured",
185
+ "source": "apps/desktop/styles/65-platinum-utility.css:725, :738",
186
+ "upstream": "GUIdebook Mac OS 9, 1x pixels"
187
+ },
188
+ {
189
+ "era": "platinum",
190
+ "claim": "Background window: #555 frame and drop, flat controls, #777 title, boxes erased",
191
+ "status": "measured",
192
+ "source": "apps/desktop/styles/65-appearance-themes.css:1757 (N1, P26)",
193
+ "upstream": "Mac OS 9 native capture 53; GUIdebook active/inactive"
194
+ }
195
+ ]
196
+ },
197
+ {
198
+ "id": "menu",
199
+ "bare": true,
200
+ "name": "Menu bar and menus",
201
+ "summary": "The menu bar across the top of the screen and its pull-down menus: items, keyboard shortcuts, check marks, separators, disabled items and submenus.",
202
+ "selectors": [
203
+ ".menu-bar",
204
+ "[role=menubar]",
205
+ ".menu",
206
+ "[role=menu]",
207
+ ".menu > li",
208
+ "li.separator",
209
+ "li.checked",
210
+ "li.disabled",
211
+ "kbd"
212
+ ],
213
+ "aliases": {
214
+ "system.css": [
215
+ "ul[role=menu-bar]",
216
+ "[role=menu-item]",
217
+ "li.divider"
218
+ ]
219
+ },
220
+ "tokens": [
221
+ "--clio-menubar-height",
222
+ "--clio-menubar-bg",
223
+ "--clio-menu-bg",
224
+ "--clio-menu-shadow",
225
+ "--clio-menu-item-height",
226
+ "--clio-menu-item-active-bg",
227
+ "--clio-menu-separator"
228
+ ],
229
+ "accessibility": "Use role=menubar, role=menu and role=menuitem with aria-haspopup and aria-expanded on titles. A menu opens while its title has aria-expanded=true, while its <li> has the class open, or while focus is inside it, so it works from the keyboard without script. Arrow-key movement between items is up to your script.",
230
+ "html": "<ul class=\"menu-bar\" role=\"menubar\" aria-label=\"Menu bar\">\n <li role=\"none\" class=\"open\">\n <button role=\"menuitem\" aria-haspopup=\"true\" aria-expanded=\"true\">File</button>\n <ul class=\"menu\" role=\"menu\">\n <li role=\"none\"><button role=\"menuitem\">New Folder <kbd>⌘N</kbd></button></li>\n <li role=\"none\"><button role=\"menuitem\">Open <kbd>⌘O</kbd></button></li>\n <li role=\"none\"><button role=\"menuitem\" aria-disabled=\"true\">Print</button></li>\n <li role=\"none\"><button role=\"menuitem\">Close <kbd>⌘W</kbd></button></li>\n <li role=\"separator\"></li>\n <li role=\"none\"><button role=\"menuitemcheckbox\" aria-checked=\"true\">Show Clipboard</button></li>\n </ul>\n </li>\n <li role=\"none\"><button role=\"menuitem\" aria-haspopup=\"true\" aria-expanded=\"false\">Edit</button></li>\n <li role=\"none\"><button role=\"menuitem\" aria-haspopup=\"true\" aria-expanded=\"false\">View</button></li>\n <li role=\"none\"><button role=\"menuitem\" aria-haspopup=\"true\" aria-expanded=\"false\">Special</button></li>\n</ul>",
231
+ "reserveHeight": 150,
232
+ "evidence": [
233
+ {
234
+ "era": "system6",
235
+ "claim": "Menu bar: 20 rows with the rule on the last; an open title inverts rows 1–18, about 9px either side of the word",
236
+ "status": "measured",
237
+ "source": "clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), frame file-menu",
238
+ "upstream": "System 6.0.8 Finder File menu"
239
+ },
240
+ {
241
+ "era": "system6",
242
+ "claim": "Menu: hangs from the bar's rule with no top line; 1px ink frame and 1px drop shadow; 16px rows; text 15px in; the highlighted row inverts",
243
+ "status": "measured",
244
+ "source": "clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), frame file-menu",
245
+ "upstream": "System 6.0.8 Finder File menu"
246
+ },
247
+ {
248
+ "era": "system6",
249
+ "claim": "Separator: a full 16px row with a 1-on 1-off dotted rule on its ninth line",
250
+ "status": "measured",
251
+ "source": "clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), frame file-menu rows 164–179",
252
+ "upstream": "System 6.0.8 Finder File menu"
253
+ },
254
+ {
255
+ "era": "system6",
256
+ "claim": "Check mark: the Chicago check glyph, 9×8, 3px in from the frame",
257
+ "status": "measured",
258
+ "source": "clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), Apple menu Finder item",
259
+ "upstream": "redrawn as pixels in tooling/s6-art.py"
260
+ },
261
+ {
262
+ "era": "system6",
263
+ "claim": "Disabled items are drawn through a 50% grey dither; clio.css uses solid #696969",
264
+ "status": "adapted",
265
+ "source": "clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), frame file-menu",
266
+ "upstream": "a dither blurs under browser scaling; solid grey keeps 5.6:1"
267
+ },
268
+ {
269
+ "era": "platinum",
270
+ "claim": "Menu bar: #ddd, white top line, #999 bottom line, 1px black rule, 20px; open title #333399 with #6666cc/#000088 lines",
271
+ "status": "measured",
272
+ "source": "apps/desktop/styles/65-appearance-themes.css:298, :45",
273
+ "upstream": "Mac OS 9 native menu bar captures 02/04"
274
+ },
275
+ {
276
+ "era": "platinum",
277
+ "claim": "Menu: no top rule, white/#999 inner bevel, #222 1px drop; 16px rows at weight 600; highlight #333399 with #6666cc/#000088 side columns",
278
+ "status": "measured",
279
+ "source": "apps/desktop/styles/65-appearance-themes.css:912 (P21), :917 (P24)",
280
+ "upstream": "GUIdebook Mac OS 9.0 Apple menu (Theme Lab specimen apple-menu)"
281
+ },
282
+ {
283
+ "era": "platinum",
284
+ "claim": "Separator: #888 over white, in an 8px row",
285
+ "status": "inferred",
286
+ "source": "apps/desktop/styles/65-appearance-themes.css (separator #888/white)",
287
+ "upstream": "the line pair is measured; the 8px row height is not"
288
+ },
289
+ {
290
+ "era": "platinum",
291
+ "claim": "Check mark and submenu arrow art",
292
+ "status": "third-party",
293
+ "source": "classic-stylesheets macos9/checkmark.svg, menu-right.svg (MIT)",
294
+ "upstream": "nielssp/classic-stylesheets @9ebd2d8"
295
+ }
296
+ ]
297
+ },
298
+ {
299
+ "id": "button",
300
+ "name": "Push button",
301
+ "summary": "Push buttons, the default button with its ring, the pressed state and the disabled state. Styles <button>, .btn and input buttons.",
302
+ "selectors": [
303
+ "button",
304
+ ".btn",
305
+ ".default",
306
+ ".btn-default",
307
+ "button:active",
308
+ "button.active",
309
+ "button:disabled",
310
+ "input[type=submit]"
311
+ ],
312
+ "aliases": {
313
+ "system.css": [
314
+ ".btn",
315
+ ".btn-default",
316
+ ".standard-button"
317
+ ],
318
+ "AI System 6": [
319
+ ".btn.default"
320
+ ]
321
+ },
322
+ "tokens": [
323
+ "--clio-button-bg",
324
+ "--clio-button-border",
325
+ "--clio-button-radius",
326
+ "--clio-button-shadow",
327
+ "--clio-button-active-bg",
328
+ "--clio-button-default-ring",
329
+ "--clio-control-height"
330
+ ],
331
+ "accessibility": "Hover never changes a button: it is pressed only by pointer-down, Space or Enter. Keyboard focus draws a dotted frame (System 6) or a 2px #6666cc ring (Platinum), separate from the default ring.",
332
+ "html": "<div class=\"field-row\" style=\"gap: 16px\">\n <button>Cancel</button>\n <button class=\"default\">OK</button>\n <button class=\"active\">Pressed</button>\n <button disabled>Eject</button>\n</div>",
333
+ "evidence": [
334
+ {
335
+ "era": "system6",
336
+ "claim": "Push button: 20px tall, 1px ink round rectangle with corners of about 4px, paper face, Chicago 12 (AI System 6 uses 7px corners)",
337
+ "status": "measured",
338
+ "source": "clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), frame alert, OK button 60×20",
339
+ "upstream": "System 6.0.8 stop alert"
340
+ },
341
+ {
342
+ "era": "system6",
343
+ "claim": "Pressed: the button inverts to ink with paper text",
344
+ "status": "inferred",
345
+ "source": "not captured",
346
+ "upstream": "System 6 button tracking"
347
+ },
348
+ {
349
+ "era": "system6",
350
+ "claim": "Default button: a 1px gap then a 3px ring (68×28 around a 60×20 button)",
351
+ "status": "measured",
352
+ "source": "clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), frame alert",
353
+ "upstream": "agrees with Inside Macintosh, Dialog Manager: PenSize(3,3), InsetRect(-4,-4), FrameRoundRect(16,16)"
354
+ },
355
+ {
356
+ "era": "both",
357
+ "claim": "Hover never changes a push button; pressed only on pointer-down, Space or Enter",
358
+ "status": "inferred",
359
+ "source": "docs/design/CLASSIC_PLATINUM_FIDELITY.md:210",
360
+ "upstream": "a 1987–1999 Mac had no hover state"
361
+ },
362
+ {
363
+ "era": "system6",
364
+ "claim": "Keyboard focus: a 1px dotted frame 2px out",
365
+ "status": "adapted",
366
+ "source": "apps/desktop/styles/00-foundation.css:519",
367
+ "upstream": "System 6 had no button focus; a dotted frame cannot be read as the default ring"
368
+ },
369
+ {
370
+ "era": "platinum",
371
+ "claim": "#ddd face, 1px black border, 3px corners, bevel white/#ddd over #777/#aaa",
372
+ "status": "measured",
373
+ "source": "apps/desktop/styles/65-appearance-themes.css:236",
374
+ "upstream": "GUIdebook Mac OS 9.0 About dialog (Theme Lab specimen default-ok)"
375
+ },
376
+ {
377
+ "era": "platinum",
378
+ "claim": "Pressed: #666 face, white text, #444/#555 top-left over #888/#777 bottom-right",
379
+ "status": "measured",
380
+ "source": "apps/desktop/styles/65-appearance-themes.css:933 (P29)",
381
+ "upstream": "Infinite Mac Mac OS 9.0 capture"
382
+ },
383
+ {
384
+ "era": "platinum",
385
+ "claim": "Default ring: 1px black, a #aaa band with #ddd/#777 edges, 1px gap",
386
+ "status": "measured",
387
+ "source": "apps/desktop/styles/65-platinum-utility.css:773",
388
+ "upstream": "GUIdebook Mac OS 9.0 (default-ok specimen)"
389
+ },
390
+ {
391
+ "era": "platinum",
392
+ "claim": "Disabled: #888 border, flat #ddd, #777 text; the default ring goes #888",
393
+ "status": "measured",
394
+ "source": "apps/desktop/styles/65-appearance-themes.css (N5)",
395
+ "upstream": "GUIdebook Open dialog Eject button (button-disabled specimen)"
396
+ }
397
+ ]
398
+ },
399
+ {
400
+ "id": "checkbox",
401
+ "name": "Check box",
402
+ "summary": "A check box drawn on the native <input type=checkbox>; no extra label markup needed.",
403
+ "selectors": [
404
+ "input[type=checkbox]",
405
+ "label > input[type=checkbox]",
406
+ ".field-row"
407
+ ],
408
+ "tokens": [
409
+ "--clio-check-size",
410
+ "--clio-check-bg",
411
+ "--clio-check-border",
412
+ "--clio-check-shadow",
413
+ "--clio-check-mark"
414
+ ],
415
+ "accessibility": "Native input, so keyboard, form and screen-reader behaviour are the browser's. In forced-colours mode the control returns to the system's own drawing.",
416
+ "html": "<div class=\"field-row-stacked\">\n <label><input type=\"checkbox\" checked> Show warnings</label>\n <label><input type=\"checkbox\"> Use small icons</label>\n <label><input type=\"checkbox\" checked disabled> Locked</label>\n</div>",
417
+ "evidence": [
418
+ {
419
+ "era": "system6",
420
+ "claim": "A 12px box with a 1px frame; held, the frame thickens to 2px",
421
+ "status": "measured",
422
+ "source": "clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), frame get-info (Locked)",
423
+ "upstream": "AI System 6 uses 13px"
424
+ },
425
+ {
426
+ "era": "system6",
427
+ "claim": "Checked draws an X from corner to corner",
428
+ "status": "inferred",
429
+ "source": "not captured (the Locked box was unchecked)",
430
+ "upstream": "System 6 check box"
431
+ },
432
+ {
433
+ "era": "system6",
434
+ "claim": "X art",
435
+ "status": "third-party",
436
+ "source": "apps/desktop/assets/themes/classic/controls/checkmark.svg",
437
+ "upstream": "system.css icon/checkmark.svg (MIT, Sakun Acharige)"
438
+ },
439
+ {
440
+ "era": "platinum",
441
+ "claim": "12px #ddd well, 1px black frame, white top-left and #888 bottom-right bevel",
442
+ "status": "measured",
443
+ "source": "apps/desktop/styles/65-appearance-themes.css:897 (P18)",
444
+ "upstream": "GUIdebook Mac OS 9.0 Appearance Options tab (checkbox specimens)"
445
+ },
446
+ {
447
+ "era": "platinum",
448
+ "claim": "Check mark art",
449
+ "status": "third-party",
450
+ "source": "classic-stylesheets macos9/checkmark.svg (MIT)",
451
+ "upstream": "nielssp/classic-stylesheets @9ebd2d8"
452
+ }
453
+ ]
454
+ },
455
+ {
456
+ "id": "radio",
457
+ "name": "Radio button",
458
+ "summary": "A radio button drawn on the native <input type=radio>.",
459
+ "selectors": [
460
+ "input[type=radio]"
461
+ ],
462
+ "tokens": [
463
+ "--clio-radio-size",
464
+ "--clio-radio-off",
465
+ "--clio-radio-on"
466
+ ],
467
+ "accessibility": "Native input; group radios with the same name inside a fieldset with a legend.",
468
+ "html": "<fieldset>\n <legend>Highlight</legend>\n <div class=\"field-row-stacked\">\n <label><input type=\"radio\" name=\"hl\" checked> Lavender</label>\n <label><input type=\"radio\" name=\"hl\"> Graphite</label>\n <label><input type=\"radio\" name=\"hl\" disabled> Other</label>\n </div>\n</fieldset>",
469
+ "evidence": [
470
+ {
471
+ "era": "system6",
472
+ "claim": "12px ring and 6px dot: the real pixels match system.css's art exactly",
473
+ "status": "measured",
474
+ "source": "clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), frame control-panel (Rate of Insertion Point Blinking)",
475
+ "upstream": "art from system.css icon/radio-border.svg, radio-dot.svg (MIT, Sakun Acharige)"
476
+ },
477
+ {
478
+ "era": "platinum",
479
+ "claim": "Radio drawn with CSS gradients: black ring, white to #888 well, 6px black dot",
480
+ "status": "adapted",
481
+ "source": "apps/desktop/styles/65-appearance-themes.css:291",
482
+ "upstream": "AI System 6 later replaced this with art cut from a capture (P19); clio.css ships no cut art"
483
+ }
484
+ ]
485
+ },
486
+ {
487
+ "id": "text-field",
488
+ "name": "Text field",
489
+ "summary": "Single-line inputs and <textarea>.",
490
+ "selectors": [
491
+ "input[type=text]",
492
+ "input[type=search]",
493
+ "input[type=email]",
494
+ "input[type=password]",
495
+ "input[type=number]",
496
+ "textarea"
497
+ ],
498
+ "tokens": [
499
+ "--clio-field-bg",
500
+ "--clio-field-border",
501
+ "--clio-field-shadow",
502
+ "--clio-field-padding",
503
+ "--clio-field-height"
504
+ ],
505
+ "accessibility": "Keyboard focus draws a ring around the field in addition to the caret.",
506
+ "html": "<div class=\"field-row-stacked\" style=\"width: 240px\">\n <label for=\"clio-name\">Name:</label>\n <input id=\"clio-name\" type=\"text\" value=\"Untitled\" style=\"width: 100%\">\n <label for=\"clio-notes\">Notes:</label>\n <textarea id=\"clio-notes\" rows=\"3\" style=\"width: 100%\">Text areas scroll with the era's scroll bar.</textarea>\n</div>",
507
+ "evidence": [
508
+ {
509
+ "era": "system6",
510
+ "claim": "1px ink frame, white, text inset 3px",
511
+ "status": "measured",
512
+ "source": "clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), frame control-panel (RAM Cache field), get-info (comments)",
513
+ "upstream": "System 6.0.8"
514
+ },
515
+ {
516
+ "era": "platinum",
517
+ "claim": "White field, 1px black frame, #888 shadow above-left and white etch below-right",
518
+ "status": "measured",
519
+ "source": "apps/desktop/styles/65-appearance-themes.css:935 (P30)",
520
+ "upstream": "Infinite Mac Mac OS 9.0 capture"
521
+ },
522
+ {
523
+ "era": "platinum",
524
+ "claim": "Focus: a 2px #6666cc ring",
525
+ "status": "measured",
526
+ "source": "apps/desktop/styles/65-platinum-utility.css:38",
527
+ "upstream": "Mac OS 9 capture platinum-native/10b-fonts-tab"
528
+ }
529
+ ]
530
+ },
531
+ {
532
+ "id": "select",
533
+ "name": "Pop-up menu",
534
+ "summary": "A <select> drawn as the era's pop-up menu; <select multiple> or size>1 becomes a list box.",
535
+ "selectors": [
536
+ "select",
537
+ "select[multiple]",
538
+ "select[size]"
539
+ ],
540
+ "tokens": [
541
+ "--clio-popup-bg",
542
+ "--clio-popup-border",
543
+ "--clio-popup-shadow",
544
+ "--clio-popup-arrow"
545
+ ],
546
+ "accessibility": "Native <select>, so the open list is the browser's own and works everywhere.",
547
+ "html": "<div class=\"field-row\">\n <label for=\"clio-font\">Font:</label>\n <select id=\"clio-font\">\n <option>Chicago</option>\n <option selected>Geneva</option>\n <option>New York</option>\n </select>\n</div>",
548
+ "evidence": [
549
+ {
550
+ "era": "system6",
551
+ "claim": "A box with a 1px drop shadow",
552
+ "status": "inferred",
553
+ "source": "not measured",
554
+ "upstream": "System 6 pop-up menu CDEF"
555
+ },
556
+ {
557
+ "era": "system6",
558
+ "claim": "The down triangle",
559
+ "status": "adapted",
560
+ "source": "drawn for clio.css",
561
+ "upstream": "a System 7 convention, kept so the control reads as a menu"
562
+ },
563
+ {
564
+ "era": "platinum",
565
+ "claim": "#ddd, 3px corners, white/#aaa bevel, bold label, a separate bevelled arrow part with the 7x10 arrow",
566
+ "status": "measured",
567
+ "source": "apps/desktop/styles/65-appearance-themes.css:1916 (P31)",
568
+ "upstream": "GUIdebook Mac OS 9.0 (popup-normal specimen), native 09b"
569
+ },
570
+ {
571
+ "era": "platinum",
572
+ "claim": "The arrow part is drawn with background layers, approximating the measured bevel",
573
+ "status": "inferred",
574
+ "source": "clio.css",
575
+ "upstream": "select has no ::after in CSS"
576
+ },
577
+ {
578
+ "era": "platinum",
579
+ "claim": "Arrow art",
580
+ "status": "third-party",
581
+ "source": "classic-stylesheets macos9/dropdown.svg (MIT)",
582
+ "upstream": "nielssp/classic-stylesheets @9ebd2d8"
583
+ }
584
+ ]
585
+ },
586
+ {
587
+ "id": "listbox",
588
+ "bare": true,
589
+ "name": "List box",
590
+ "summary": "A scrolling list with one or more selected rows, as in the Open dialog.",
591
+ "selectors": [
592
+ ".listbox",
593
+ "[role=listbox]",
594
+ "[role=option]",
595
+ "[aria-selected=true]",
596
+ ".selected"
597
+ ],
598
+ "tokens": [
599
+ "--clio-list-bg",
600
+ "--clio-list-border",
601
+ "--clio-list-shadow",
602
+ "--clio-list-row",
603
+ "--clio-selection-bg",
604
+ "--clio-selection-fg"
605
+ ],
606
+ "accessibility": "Use role=listbox and role=option with aria-selected; move focus with your script (roving tabindex).",
607
+ "html": "<ul class=\"listbox\" role=\"listbox\" aria-label=\"Documents\" style=\"width: 220px; height: 82px\">\n <li role=\"option\" aria-selected=\"true\">Apple DVD Player</li>\n <li role=\"option\">Apple Video Player</li>\n <li role=\"option\">AppleCD Audio Player</li>\n <li role=\"option\">QuickTime</li>\n <li role=\"option\">Security</li>\n <li role=\"option\">SimpleText</li>\n</ul>",
608
+ "evidence": [
609
+ {
610
+ "era": "system6",
611
+ "claim": "White list, 1px ink frame, 16px rows, selection inverts",
612
+ "status": "inferred",
613
+ "source": "not measured",
614
+ "upstream": "System 6 Standard File dialog"
615
+ },
616
+ {
617
+ "era": "platinum",
618
+ "claim": "Selection is lavender #ccccff with black text",
619
+ "status": "measured",
620
+ "source": "apps/desktop/styles/65-appearance-themes.css:128",
621
+ "upstream": "GUIdebook Mac OS 9.0 Open dialog (open-list-scrollbar specimen)"
622
+ },
623
+ {
624
+ "era": "platinum",
625
+ "claim": "Rows carry no divider",
626
+ "status": "measured",
627
+ "source": "apps/desktop/styles/65-appearance-themes.css:860 (P10)",
628
+ "upstream": "Mac OS 9 native list capture 21"
629
+ }
630
+ ]
631
+ },
632
+ {
633
+ "id": "scrollbar",
634
+ "bare": true,
635
+ "name": "Scroll bar",
636
+ "summary": "The era's scroll bar on every scroll area clio.css owns, on any element with .clio-scroll, or on the whole page with <html class=\"clio-scrollbars\">.",
637
+ "selectors": [
638
+ ".window-pane",
639
+ ".clio-scroll",
640
+ "html.clio-scrollbars",
641
+ "::-webkit-scrollbar"
642
+ ],
643
+ "tokens": [
644
+ "--clio-scrollbar-size",
645
+ "--clio-scrollbar-track",
646
+ "--clio-scrollbar-thumb-bg",
647
+ "--clio-scrollbar-button-bg"
648
+ ],
649
+ "accessibility": "Native scrolling is untouched: wheel, keyboard and touch scroll as usual.",
650
+ "html": "<div class=\"clio clio-scroll\" style=\"width: 220px; height: 96px; overflow: scroll; border: 1px solid; background: var(--clio-pane-bg); font-family: var(--clio-font-text)\">\n <p style=\"width: 360px; margin: 8px\">The lane, the scroll box and both arrow boxes come from the era. Firefox has no scroll-bar parts, so it gets the era's colours only.</p>\n <p style=\"margin: 8px\">Scroll me.</p>\n</div>",
651
+ "evidence": [
652
+ {
653
+ "era": "system6",
654
+ "claim": "Lane: a 1px line and 14px inside; the window frame closes it, so the bar is 15px in CSS",
655
+ "status": "measured",
656
+ "source": "clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), frame system-folder",
657
+ "upstream": "AI System 6 uses a 16px lane"
658
+ },
659
+ {
660
+ "era": "system6",
661
+ "claim": "Active lane pattern is QuickDraw's ltGray (one dot in four, rows offset by two), not 50% grey; an empty lane is white",
662
+ "status": "measured",
663
+ "source": "clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), frames system-folder and hd-window",
664
+ "upstream": "AI System 6 draws a 50% checker"
665
+ },
666
+ {
667
+ "era": "system6",
668
+ "claim": "Scroll box: a white square with a 1px frame filling the lane, 16 rows tall",
669
+ "status": "measured",
670
+ "source": "clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), frame system-folder",
671
+ "upstream": "System 6.0.8 Finder list view"
672
+ },
673
+ {
674
+ "era": "system6",
675
+ "claim": "Up and down arrows: hollow, 13 wide and 11 tall in the 14px box, a 45° head and a 7px stem",
676
+ "status": "measured",
677
+ "source": "clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), frames hd-window and system-folder",
678
+ "upstream": "redrawn as pixels in tooling/s6-art.py"
679
+ },
680
+ {
681
+ "era": "system6",
682
+ "claim": "Left and right arrows are the up and down arrows turned",
683
+ "status": "inferred",
684
+ "source": "tooling/s6-art.py",
685
+ "upstream": "the horizontal arrows were captured only partly"
686
+ },
687
+ {
688
+ "era": "system6",
689
+ "claim": "Grow box: a 7×7 square over a 9×9 square in the 14px corner",
690
+ "status": "measured",
691
+ "source": "clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), frame system-folder",
692
+ "upstream": "redrawn as pixels in tooling/s6-art.py"
693
+ },
694
+ {
695
+ "era": "both",
696
+ "claim": "The scroll box grows with the visible fraction instead of a fixed 16px square",
697
+ "status": "adapted",
698
+ "source": "clio.css",
699
+ "upstream": "browsers size ::-webkit-scrollbar-thumb themselves"
700
+ },
701
+ {
702
+ "era": "platinum",
703
+ "claim": "Lane #aaa with a double bevel; lavender #9999ff scroll box with #ccf/#66c bevel and grip ridges; #ddd arrow boxes with stepped 2/4/6/8 arrows",
704
+ "status": "measured",
705
+ "source": "apps/desktop/styles/65-appearance-themes.css:336 (P16), :351 (P17), :364 (P27)",
706
+ "upstream": "Mac OS 9 native capture 16; GUIdebook Open dialog"
707
+ }
708
+ ]
709
+ },
710
+ {
711
+ "id": "dialog",
712
+ "bare": true,
713
+ "name": "Dialogs and alerts",
714
+ "summary": "The modal dialog frame, the alert layout with an icon, and the plain shadowed box.",
715
+ "selectors": [
716
+ ".modal-dialog",
717
+ ".alert-box",
718
+ ".standard-dialog",
719
+ ".modeless-dialog",
720
+ ".alert-icon",
721
+ ".dialog-buttons"
722
+ ],
723
+ "aliases": {
724
+ "system.css": [
725
+ ".modal-dialog",
726
+ ".alert-box",
727
+ ".standard-dialog",
728
+ ".outer-border",
729
+ ".inner-border",
730
+ ".modal-contents"
731
+ ]
732
+ },
733
+ "tokens": [
734
+ "--clio-dialog-bg",
735
+ "--clio-modal-border",
736
+ "--clio-modal-frame",
737
+ "--clio-plain-dialog-shadow"
738
+ ],
739
+ "accessibility": "Put the classes on a native <dialog> opened with showModal() to get focus trapping and Escape; label it with aria-labelledby.",
740
+ "html": "<div class=\"alert-box\" role=\"alertdialog\" aria-labelledby=\"clio-alert-msg\" style=\"width: 340px\">\n <span class=\"alert-icon caution\" aria-hidden=\"true\"></span>\n <p id=\"clio-alert-msg\">Save changes to the document “Untitled” before closing?</p>\n <div class=\"dialog-buttons\">\n <button>Don’t Save</button>\n <button>Cancel</button>\n <button class=\"default\">Save</button>\n </div>\n</div>",
741
+ "variants": [
742
+ {
743
+ "name": "Plain box",
744
+ "note": "The shadowed box, for a message with no frame of its own.",
745
+ "html": "<div class=\"standard-dialog\" style=\"width: 280px\">\n <p style=\"margin: 0\">Welcome to Macintosh.</p>\n</div>"
746
+ }
747
+ ],
748
+ "evidence": [
749
+ {
750
+ "era": "system6",
751
+ "claim": "Modal frame: 1px ink, 2px paper, 2px ink, and no drop shadow",
752
+ "status": "measured",
753
+ "source": "clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), frame alert",
754
+ "upstream": "AI System 6 has two recipes, both off (84-clio-write.css:210 has a 1px gap)"
755
+ },
756
+ {
757
+ "era": "system6",
758
+ "claim": "Plain box: 1px ink frame and a 2px drop shadow",
759
+ "status": "inferred",
760
+ "source": "not measured",
761
+ "upstream": "altDBoxProc"
762
+ },
763
+ {
764
+ "era": "both",
765
+ "claim": "The alert icon is drawn here, not Apple's",
766
+ "status": "adapted",
767
+ "source": "clio.css",
768
+ "upstream": "no Apple icons are shipped"
769
+ },
770
+ {
771
+ "era": "platinum",
772
+ "claim": "1px black frame over #ddd, inner bevel of three white steps inside #555/#999/#aaa, 1px black drop",
773
+ "status": "measured",
774
+ "source": "apps/desktop/styles/65-appearance-themes.css:840 (P06)",
775
+ "upstream": "GUIdebook Mac OS 9.0 About application (about-alert specimen)"
776
+ }
777
+ ]
778
+ },
779
+ {
780
+ "id": "fieldset",
781
+ "name": "Group box",
782
+ "summary": "A <fieldset> with a <legend>, for grouping controls.",
783
+ "selectors": [
784
+ "fieldset",
785
+ "legend"
786
+ ],
787
+ "tokens": [
788
+ "--clio-group-border",
789
+ "--clio-group-shadow"
790
+ ],
791
+ "accessibility": "A fieldset's legend names the group for screen readers.",
792
+ "html": "<fieldset style=\"width: 260px\">\n <legend>Sound</legend>\n <div class=\"field-row\"><label><input type=\"checkbox\" checked> Play system alerts</label></div>\n</fieldset>",
793
+ "evidence": [
794
+ {
795
+ "era": "system6",
796
+ "claim": "1px ink frame with the legend on paper",
797
+ "status": "inferred",
798
+ "source": "not measured",
799
+ "upstream": "System 6 control panels"
800
+ },
801
+ {
802
+ "era": "platinum",
803
+ "claim": "Etched: #888 line with a white line inside and below",
804
+ "status": "measured",
805
+ "source": "apps/desktop/styles/65-appearance-themes.css:909 (P20)",
806
+ "upstream": "Mac OS 9 native group box"
807
+ }
808
+ ]
809
+ },
810
+ {
811
+ "id": "progress",
812
+ "name": "Progress bar",
813
+ "summary": "The native <progress> element as the era's thermometer.",
814
+ "selectors": [
815
+ "progress"
816
+ ],
817
+ "tokens": [
818
+ "--clio-progress-height",
819
+ "--clio-progress-bg",
820
+ "--clio-progress-fill",
821
+ "--clio-progress-shadow"
822
+ ],
823
+ "accessibility": "Native <progress>; give it a label or aria-label.",
824
+ "html": "<div class=\"field-row-stacked\" style=\"width: 260px\">\n <label for=\"clio-copy\">Copying “System Folder”…</label>\n <progress id=\"clio-copy\" max=\"100\" value=\"62\">62%</progress>\n</div>",
825
+ "evidence": [
826
+ {
827
+ "era": "system6",
828
+ "claim": "1px ink frame, ink fill",
829
+ "status": "inferred",
830
+ "source": "not measured",
831
+ "upstream": "System 6 Finder copy progress"
832
+ },
833
+ {
834
+ "era": "platinum",
835
+ "claim": "Barber-pole fill: ten 1px hard stops from #333399 through #eee to #000055",
836
+ "status": "measured",
837
+ "source": "apps/desktop/styles/65-appearance-themes.css:937 (P32)",
838
+ "upstream": "Mac OS 9 native progress bar"
839
+ },
840
+ {
841
+ "era": "platinum",
842
+ "claim": "#bbb track with white/#aaa outer and #888/#ddd inner bevel",
843
+ "status": "inferred",
844
+ "source": "apps/desktop/styles/65-appearance-themes.css:592",
845
+ "upstream": "AI System 6 token, not tagged as measured"
846
+ }
847
+ ]
848
+ },
849
+ {
850
+ "id": "tabs",
851
+ "name": "Tabs",
852
+ "summary": "A tab strip over a panel. Native in Platinum; an adaptation in System 6, which had no tab control.",
853
+ "selectors": [
854
+ "[role=tablist]",
855
+ "[role=tab]",
856
+ "[aria-selected=true]",
857
+ "[role=tabpanel]",
858
+ ".tabs",
859
+ ".tab-panel"
860
+ ],
861
+ "tokens": [
862
+ "--clio-tab-height",
863
+ "--clio-tab-panel-bg",
864
+ "--clio-tab-panel-border"
865
+ ],
866
+ "accessibility": "Use role=tablist, role=tab with aria-selected and aria-controls, and role=tabpanel; arrow keys between tabs are up to your script.",
867
+ "html": "<div style=\"width: 320px\">\n <div role=\"tablist\" aria-label=\"Appearance\">\n <button role=\"tab\" aria-selected=\"true\">Appearance</button>\n <button role=\"tab\" aria-selected=\"false\">Fonts</button>\n <button role=\"tab\" aria-selected=\"false\">Sound</button>\n </div>\n <div role=\"tabpanel\">\n <div class=\"field-row\"><label for=\"clio-theme\">Theme:</label>\n <select id=\"clio-theme\"><option>Mac OS Default</option></select>\n </div>\n </div>\n</div>",
868
+ "evidence": [
869
+ {
870
+ "era": "system6",
871
+ "claim": "Boxed labels that join the panel",
872
+ "status": "adapted",
873
+ "source": "clio.css",
874
+ "upstream": "System 6 had no tab control"
875
+ },
876
+ {
877
+ "era": "platinum",
878
+ "claim": "Tab art: sloped caps, #ccc tabs, the front tab #eee and 2px taller",
879
+ "status": "third-party",
880
+ "source": "classic-stylesheets macos9/tab*.svg (MIT)",
881
+ "upstream": "nielssp/classic-stylesheets @9ebd2d8; AI System 6 measured a 21-row tab (P01, 65-appearance-themes.css:742)"
882
+ }
883
+ ]
884
+ },
885
+ {
886
+ "id": "desktop",
887
+ "bare": true,
888
+ "name": "Desktop and icons",
889
+ "summary": "The desktop pattern and desktop icons with their name labels. Bring your own icon images; clio.css ships no Apple icons.",
890
+ "selectors": [
891
+ ".desktop",
892
+ ".icon",
893
+ ".icon > img",
894
+ ".icon > figcaption",
895
+ ".icon.selected"
896
+ ],
897
+ "tokens": [
898
+ "--clio-desktop",
899
+ "--clio-label-bg",
900
+ "--clio-label-selected-bg",
901
+ "--clio-icon-selected-filter"
902
+ ],
903
+ "accessibility": "Make each icon a <button> (or give it role=button and tabindex=0) with its name as the label.",
904
+ "html": "<div class=\"desktop\" style=\"min-height: 0; padding: 16px; display: flex; gap: 12px\">\n <button class=\"icon\" aria-pressed=\"false\">\n <svg viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect x=\"4\" y=\"6\" width=\"24\" height=\"20\" fill=\"#fff\" stroke=\"#000\"/><rect x=\"7\" y=\"9\" width=\"18\" height=\"11\" fill=\"#000\"/></svg>\n <span>Macintosh HD</span>\n </button>\n <button class=\"icon selected\" aria-pressed=\"true\">\n <svg viewBox=\"0 0 32 32\" aria-hidden=\"true\"><path d=\"M5 9h9l2 2h11v15H5z\" fill=\"#fff\" stroke=\"#000\"/></svg>\n <span>Documents</span>\n </button>\n</div>",
905
+ "evidence": [
906
+ {
907
+ "era": "system6",
908
+ "claim": "The desktop is a 1px 50% checker",
909
+ "status": "measured",
910
+ "source": "clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), every frame",
911
+ "upstream": "AI System 6 draws an 8px stipple"
912
+ },
913
+ {
914
+ "era": "system6",
915
+ "claim": "Icon names: Geneva 9 on a white tag; a selected icon and its tag invert",
916
+ "status": "measured",
917
+ "source": "clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), desktop (Macintosh HD selected, Welcome! not)",
918
+ "upstream": "System 6.0.8 Finder"
919
+ },
920
+ {
921
+ "era": "platinum",
922
+ "claim": "70% white tag with no edge; selected: black tag, white name, artwork darkened",
923
+ "status": "measured",
924
+ "source": "apps/desktop/styles/65-appearance-themes.css:882 (P12, P13)",
925
+ "upstream": "Mac OS 9 native capture 02"
926
+ },
927
+ {
928
+ "era": "platinum",
929
+ "claim": "Desktop colour #4a71ab",
930
+ "status": "inferred",
931
+ "source": "apps/desktop/styles/65-appearance-themes.css:85",
932
+ "upstream": "base colour of AI System 6's azul tile, generated from a 512 Pixels capture; the tile is not shipped"
933
+ }
934
+ ]
935
+ },
936
+ {
937
+ "id": "typography",
938
+ "name": "Type and tokens",
939
+ "summary": "The fonts, the palette and every --clio-* custom property you can override.",
940
+ "selectors": [
941
+ ".clio",
942
+ ".text",
943
+ ".heading",
944
+ "[data-era=system6]",
945
+ "[data-era=platinum]"
946
+ ],
947
+ "tokens": [
948
+ "--clio-ink",
949
+ "--clio-paper",
950
+ "--clio-font-chrome",
951
+ "--clio-font-text",
952
+ "--clio-font-size",
953
+ "--clio-selection-bg",
954
+ "--clio-focus-outline"
955
+ ],
956
+ "accessibility": "Text colours keep at least 4.5:1 on their grounds; disabled text keeps 3:1 or more.",
957
+ "html": "<div class=\"clio\" style=\"padding: 12px; background: var(--clio-pane-bg)\">\n <h2 class=\"heading\">Chicago is the system font</h2>\n <p class=\"text\">Geneva is the application font. Every value is a --clio-* custom property you can override on any element.</p>\n</div>",
958
+ "evidence": [
959
+ {
960
+ "era": "system6",
961
+ "claim": "ChicagoFLF, a public-domain revival of Chicago, for chrome",
962
+ "status": "third-party",
963
+ "source": "vendor/system.css-reference/fonts/ChicagoFLF.woff2",
964
+ "upstream": "Robin Casady's ChicagoFLF (public domain), as shipped by system.css"
965
+ },
966
+ {
967
+ "era": "platinum",
968
+ "claim": "Charcoal when installed; otherwise Asap (OFL) at width 113 for text and 123 for titles, weights 400/600/700",
969
+ "status": "measured",
970
+ "source": "apps/desktop/assets/fonts/platinum/README.md; 65-appearance-themes.css:25",
971
+ "upstream": "Asap matched to a measured Charcoal sample's x-height and advance width"
972
+ },
973
+ {
974
+ "era": "platinum",
975
+ "claim": "Palette #fff #ddd #ccc #999 #777 #000, accent #333399, lavender #ccccff",
976
+ "status": "measured",
977
+ "source": "tooling/classic-platinum-fidelity-contract.json (platinum.palette)",
978
+ "upstream": "Mac OS 9 captures"
979
+ },
980
+ {
981
+ "era": "system6",
982
+ "claim": "Disabled text #696969 instead of a 50% dither",
983
+ "status": "adapted",
984
+ "source": "apps/desktop/styles/00-foundation.css (shade-dark)",
985
+ "upstream": "5.6:1 on white; a dither blurs under browser scaling"
986
+ }
987
+ ]
988
+ }
989
+ ]
990
+ }