clio.css 0.2.0 → 0.9.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.
Files changed (190) hide show
  1. package/AGENTS.md +20 -4
  2. package/EVIDENCE.md +90 -30
  3. package/README.md +45 -23
  4. package/THIRD-PARTY.md +61 -10
  5. package/dist/art/drawingboard/alert-bl.png +0 -0
  6. package/dist/art/drawingboard/alert-bottom.png +0 -0
  7. package/dist/art/drawingboard/alert-br.png +0 -0
  8. package/dist/art/drawingboard/alert-left.png +0 -0
  9. package/dist/art/drawingboard/alert-right.png +0 -0
  10. package/dist/art/drawingboard/alert-tl.png +0 -0
  11. package/dist/art/drawingboard/alert-top.png +0 -0
  12. package/dist/art/drawingboard/alert-tr.png +0 -0
  13. package/dist/art/drawingboard/menu-corner-bl.png +0 -0
  14. package/dist/art/drawingboard/menu-corner-br.png +0 -0
  15. package/dist/art/drawingboard/menu-corner-tr.png +0 -0
  16. package/dist/art/drawingboard/menu-foot.png +0 -0
  17. package/dist/art/drawingboard/menu-left.png +0 -0
  18. package/dist/art/drawingboard/menu-paper.png +0 -0
  19. package/dist/art/drawingboard/menu-right.png +0 -0
  20. package/dist/art/drawingboard/menu-separator.png +0 -0
  21. package/dist/art/drawingboard/menu-shade-foot.png +0 -0
  22. package/dist/art/drawingboard/menu-shade-right.png +0 -0
  23. package/dist/art/drawingboard/menu-top.png +0 -0
  24. package/dist/art/drawingboard/menubar.png +0 -0
  25. package/dist/art/drawingboard/modal-bl.png +0 -0
  26. package/dist/art/drawingboard/modal-bottom.png +0 -0
  27. package/dist/art/drawingboard/modal-br.png +0 -0
  28. package/dist/art/drawingboard/modal-left.png +0 -0
  29. package/dist/art/drawingboard/modal-right.png +0 -0
  30. package/dist/art/drawingboard/modal-tl.png +0 -0
  31. package/dist/art/drawingboard/modal-top.png +0 -0
  32. package/dist/art/drawingboard/modal-tr.png +0 -0
  33. package/dist/art/drawingboard/paper.png +0 -0
  34. package/dist/art/drawingboard/parts/btn-bl.png +0 -0
  35. package/dist/art/drawingboard/parts/btn-br-held.png +0 -0
  36. package/dist/art/drawingboard/parts/btn-br.png +0 -0
  37. package/dist/art/drawingboard/parts/btn-tl.png +0 -0
  38. package/dist/art/drawingboard/parts/btn-tr.png +0 -0
  39. package/dist/art/drawingboard/parts/button-corner.png +0 -0
  40. package/dist/art/drawingboard/parts/check-disabled.png +0 -0
  41. package/dist/art/drawingboard/parts/check-mixed.png +0 -0
  42. package/dist/art/drawingboard/parts/check-on-disabled.png +0 -0
  43. package/dist/art/drawingboard/parts/check-on-pressed.png +0 -0
  44. package/dist/art/drawingboard/parts/check-on.png +0 -0
  45. package/dist/art/drawingboard/parts/check-pressed.png +0 -0
  46. package/dist/art/drawingboard/parts/check.png +0 -0
  47. package/dist/art/drawingboard/parts/close-on.png +0 -0
  48. package/dist/art/drawingboard/parts/close.png +0 -0
  49. package/dist/art/drawingboard/parts/collapse-on.png +0 -0
  50. package/dist/art/drawingboard/parts/collapse.png +0 -0
  51. package/dist/art/drawingboard/parts/def-bl.png +0 -0
  52. package/dist/art/drawingboard/parts/def-br.png +0 -0
  53. package/dist/art/drawingboard/parts/def-tl.png +0 -0
  54. package/dist/art/drawingboard/parts/def-tr.png +0 -0
  55. package/dist/art/drawingboard/parts/down-off.png +0 -0
  56. package/dist/art/drawingboard/parts/down-on.png +0 -0
  57. package/dist/art/drawingboard/parts/down.png +0 -0
  58. package/dist/art/drawingboard/parts/grow.png +0 -0
  59. package/dist/art/drawingboard/parts/left-off.png +0 -0
  60. package/dist/art/drawingboard/parts/left-on.png +0 -0
  61. package/dist/art/drawingboard/parts/left.png +0 -0
  62. package/dist/art/drawingboard/parts/menu-underline-left.png +0 -0
  63. package/dist/art/drawingboard/parts/menu-underline-right.png +0 -0
  64. package/dist/art/drawingboard/parts/menu-underline.png +0 -0
  65. package/dist/art/drawingboard/parts/popup-arrow-off.png +0 -0
  66. package/dist/art/drawingboard/parts/popup-arrow.png +0 -0
  67. package/dist/art/drawingboard/parts/popup-corner-off.png +0 -0
  68. package/dist/art/drawingboard/parts/popup-corner.png +0 -0
  69. package/dist/art/drawingboard/parts/progress-arrows.png +0 -0
  70. package/dist/art/drawingboard/parts/radio-disabled.png +0 -0
  71. package/dist/art/drawingboard/parts/radio-on-disabled.png +0 -0
  72. package/dist/art/drawingboard/parts/radio-on-pressed.png +0 -0
  73. package/dist/art/drawingboard/parts/radio-on.png +0 -0
  74. package/dist/art/drawingboard/parts/radio.png +0 -0
  75. package/dist/art/drawingboard/parts/right-off.png +0 -0
  76. package/dist/art/drawingboard/parts/right-on.png +0 -0
  77. package/dist/art/drawingboard/parts/right.png +0 -0
  78. package/dist/art/drawingboard/parts/submenu.png +0 -0
  79. package/dist/art/drawingboard/parts/tab-pressed.png +0 -0
  80. package/dist/art/drawingboard/parts/tab-selected.png +0 -0
  81. package/dist/art/drawingboard/parts/tab.png +0 -0
  82. package/dist/art/drawingboard/parts/thumb-bottom.png +0 -0
  83. package/dist/art/drawingboard/parts/thumb-hgrip.png +0 -0
  84. package/dist/art/drawingboard/parts/thumb-hstretch.png +0 -0
  85. package/dist/art/drawingboard/parts/thumb-left.png +0 -0
  86. package/dist/art/drawingboard/parts/thumb-right.png +0 -0
  87. package/dist/art/drawingboard/parts/thumb-top.png +0 -0
  88. package/dist/art/drawingboard/parts/thumb-vgrip.png +0 -0
  89. package/dist/art/drawingboard/parts/thumb-vstretch.png +0 -0
  90. package/dist/art/drawingboard/parts/title-underline-left.png +0 -0
  91. package/dist/art/drawingboard/parts/title-underline-right.png +0 -0
  92. package/dist/art/drawingboard/parts/title-underline.png +0 -0
  93. package/dist/art/drawingboard/parts/up-off.png +0 -0
  94. package/dist/art/drawingboard/parts/up-on.png +0 -0
  95. package/dist/art/drawingboard/parts/up.png +0 -0
  96. package/dist/art/drawingboard/parts/zoom-on.png +0 -0
  97. package/dist/art/drawingboard/parts/zoom.png +0 -0
  98. package/dist/art/drawingboard/pens/button-bottom.png +0 -0
  99. package/dist/art/drawingboard/pens/button-corners.png +0 -0
  100. package/dist/art/drawingboard/pens/button-default-bottom-2.png +0 -0
  101. package/dist/art/drawingboard/pens/button-default-bottom-3.png +0 -0
  102. package/dist/art/drawingboard/pens/button-default-bottom.png +0 -0
  103. package/dist/art/drawingboard/pens/button-default-corner-bl.png +0 -0
  104. package/dist/art/drawingboard/pens/button-default-corner-br.png +0 -0
  105. package/dist/art/drawingboard/pens/button-default-corner-tl.png +0 -0
  106. package/dist/art/drawingboard/pens/button-default-corner-tr.png +0 -0
  107. package/dist/art/drawingboard/pens/button-default-left-2.png +0 -0
  108. package/dist/art/drawingboard/pens/button-default-left-3.png +0 -0
  109. package/dist/art/drawingboard/pens/button-default-left.png +0 -0
  110. package/dist/art/drawingboard/pens/button-default-right-2.png +0 -0
  111. package/dist/art/drawingboard/pens/button-default-right-3.png +0 -0
  112. package/dist/art/drawingboard/pens/button-default-right.png +0 -0
  113. package/dist/art/drawingboard/pens/button-default-top-2.png +0 -0
  114. package/dist/art/drawingboard/pens/button-default-top-3.png +0 -0
  115. package/dist/art/drawingboard/pens/button-default-top.png +0 -0
  116. package/dist/art/drawingboard/pens/button-held-bottom.png +0 -0
  117. package/dist/art/drawingboard/pens/button-held-corners.png +0 -0
  118. package/dist/art/drawingboard/pens/button-held-left.png +0 -0
  119. package/dist/art/drawingboard/pens/button-held-right.png +0 -0
  120. package/dist/art/drawingboard/pens/button-held-shade-bottom.png +0 -0
  121. package/dist/art/drawingboard/pens/button-held-shade-right.png +0 -0
  122. package/dist/art/drawingboard/pens/button-held-top.png +0 -0
  123. package/dist/art/drawingboard/pens/button-left.png +0 -0
  124. package/dist/art/drawingboard/pens/button-right.png +0 -0
  125. package/dist/art/drawingboard/pens/button-shade-bottom.png +0 -0
  126. package/dist/art/drawingboard/pens/button-shade-right.png +0 -0
  127. package/dist/art/drawingboard/pens/button-top.png +0 -0
  128. package/dist/art/drawingboard/pens/field-bottom.png +0 -0
  129. package/dist/art/drawingboard/pens/field-corners.png +0 -0
  130. package/dist/art/drawingboard/pens/field-left.png +0 -0
  131. package/dist/art/drawingboard/pens/field-right.png +0 -0
  132. package/dist/art/drawingboard/pens/field-top.png +0 -0
  133. package/dist/art/drawingboard/pens/popup-bottom.png +0 -0
  134. package/dist/art/drawingboard/pens/popup-corners.png +0 -0
  135. package/dist/art/drawingboard/pens/popup-disabled-bottom.png +0 -0
  136. package/dist/art/drawingboard/pens/popup-disabled-corners.png +0 -0
  137. package/dist/art/drawingboard/pens/popup-disabled-left.png +0 -0
  138. package/dist/art/drawingboard/pens/popup-disabled-right.png +0 -0
  139. package/dist/art/drawingboard/pens/popup-disabled-top.png +0 -0
  140. package/dist/art/drawingboard/pens/popup-left.png +0 -0
  141. package/dist/art/drawingboard/pens/popup-right.png +0 -0
  142. package/dist/art/drawingboard/pens/popup-top.png +0 -0
  143. package/dist/art/drawingboard/tab-paper.png +0 -0
  144. package/dist/art/drawingboard/track-h-bottom.png +0 -0
  145. package/dist/art/drawingboard/track-h-mid1.png +0 -0
  146. package/dist/art/drawingboard/track-h-mid2.png +0 -0
  147. package/dist/art/drawingboard/track-h-top.png +0 -0
  148. package/dist/art/drawingboard/track-v-left.png +0 -0
  149. package/dist/art/drawingboard/track-v-mid1.png +0 -0
  150. package/dist/art/drawingboard/track-v-mid2.png +0 -0
  151. package/dist/art/drawingboard/track-v-right.png +0 -0
  152. package/dist/art/drawingboard/window-bl-inactive.png +0 -0
  153. package/dist/art/drawingboard/window-bl.png +0 -0
  154. package/dist/art/drawingboard/window-bottom-inactive.png +0 -0
  155. package/dist/art/drawingboard/window-bottom.png +0 -0
  156. package/dist/art/drawingboard/window-br-inactive.png +0 -0
  157. package/dist/art/drawingboard/window-br.png +0 -0
  158. package/dist/art/drawingboard/window-left-inactive.png +0 -0
  159. package/dist/art/drawingboard/window-left.png +0 -0
  160. package/dist/art/drawingboard/window-right-inactive.png +0 -0
  161. package/dist/art/drawingboard/window-right.png +0 -0
  162. package/dist/art/drawingboard/window-tl-inactive.png +0 -0
  163. package/dist/art/drawingboard/window-tl.png +0 -0
  164. package/dist/art/drawingboard/window-top-inactive.png +0 -0
  165. package/dist/art/drawingboard/window-top.png +0 -0
  166. package/dist/art/drawingboard/window-tr-inactive.png +0 -0
  167. package/dist/art/drawingboard/window-tr.png +0 -0
  168. package/dist/art/drawingboard/window-ur-inactive.png +0 -0
  169. package/dist/art/drawingboard/window-ur.png +0 -0
  170. package/dist/clio.css +1939 -155
  171. package/dist/clio.drawingboard.css +3562 -0
  172. package/dist/clio.drawingboard.min.css +2 -0
  173. package/dist/clio.min.css +2 -2
  174. package/dist/clio.platinum.css +802 -107
  175. package/dist/clio.platinum.min.css +2 -2
  176. package/dist/clio.system6.css +544 -32
  177. package/dist/clio.system6.min.css +2 -2
  178. package/dist/clio.system7.css +2165 -0
  179. package/dist/clio.system7.min.css +2 -0
  180. package/dist/components.json +555 -82
  181. package/dist/fonts/ClioSans84.woff2 +0 -0
  182. package/dist/fonts/ClioSans97.woff2 +0 -0
  183. package/dist/fonts/ClioSans97Display.woff2 +0 -0
  184. package/dist/fonts/ClioSans97Exact.woff2 +0 -0
  185. package/dist/fonts/ClioSans97Title.woff2 +0 -0
  186. package/dist/fonts/ClioSans97TitleExact.woff2 +0 -0
  187. package/dist/fonts/ClioText84-9.woff2 +0 -0
  188. package/dist/fonts/ClioText84.woff2 +0 -0
  189. package/llms.txt +5 -4
  190. package/package.json +17 -4
package/AGENTS.md CHANGED
@@ -23,13 +23,29 @@ For AI coding agents using or changing this repository.
23
23
  honest status: `measured` only when read from real pixels of the era (name the
24
24
  capture), `inferred` when reasoned, `adapted` for web-only changes, `third-party` for
25
25
  licensed art or fonts. An unmeasured value is never labelled measured.
26
- - No Apple bitmaps, icons, logos or fonts, and no art cut from a screenshot. Draw art as
27
- CSS or small SVGs (see `tooling/tab-art.py` for a drawn-from-measurement example).
26
+ - No Apple fonts, logos or icon files, and never ship a screenshot or a crop of one.
27
+ Control art (arrows, boxes, lamps, tabs) may be a pixel-level reconstruction: an SVG
28
+ or palette PNG redrawn from measured pixels by a script in `tooling/` (see
29
+ `tooling/s6-art.py`, `tooling/tab-art.py`, `tooling/db-art.py`). Name the capture or
30
+ resource it was measured from in its evidence row. Large textures and illustrations
31
+ (Drawing Board's paper and sketch lines) are not reproduced: use the dominant measured
32
+ colour and label it `adapted`.
28
33
  Third-party art needs a licence entry in `THIRD-PARTY.md`.
29
- - Tokens live on `:root, [data-era="system6"]` (01-tokens.css) and
30
- `[data-era="platinum"]` (90-platinum.css). A token that reads another token is
34
+ - Scope (owner decision, 2026-11-13): eras that can be measured in an emulator —
35
+ System 6, System 7, Drawing Board (Mac OS 8.5b6, as "System 8"), Platinum (as
36
+ "System 9"), Mac OS X 10.0–10.4 (Aqua to Tiger), NeXTSTEP. Order: Aqua next. clio.css
37
+ feeds back into AI System 6, so AI System 6's own chrome (Control Strip, …) is in scope
38
+ with its markup (owner, 2026-11-14). Launch posts (awesome lists, Show HN) wait for Aqua.
39
+ - Tokens live on `:root, [data-era="system6"]` (01-tokens.css),
40
+ `[data-era="system7"]` (80-system7.css), `:is([data-era="platinum"],
41
+ [data-era="drawingboard"])` (90-platinum.css, shared: both are Appearance Manager
42
+ themes) and `[data-era="drawingboard"]` (92-drawingboard.css, which overrides). A token that reads another token is
31
43
  resolved where it is declared, so an era that changes `--clio-paper` must re-declare
32
44
  every token built from it.
33
45
  - Motion: none today. If added, animate `transform`/`opacity` only and honour
34
46
  `prefers-reduced-motion`.
47
+ - Clio Sans '84, Clio Text '84 and Clio Sans '97 are generated: edit `fonts-src/*.txt`
48
+ (or re-extract with `npm run capture:keycaps [-- geneva|geneva9|charcoal]` then
49
+ `npm run build:font`, which needs Python with fontTools and brotli), never the WOFF2 by
50
+ hand. Clio Sans '97 (Charcoal 12) comes from Mac OS 9.0's Key Caps, whose bar is 2px.
35
51
  - Keep `dist/clio.min.css` under the size budget in `test/check.mjs`.
package/EVIDENCE.md CHANGED
@@ -2,19 +2,22 @@
2
2
 
3
3
  Generated from `components/index.mjs` by `npm run build`; edit there.
4
4
 
5
- Every value in clio.css 0.2.0 has a row here. Sources are paths in the AI System 6 development tree at commit `b75cd4ed` (public mirror: https://github.com/surfine/AI-System-6; some evidence folders such as `internal/` are private). The images measurements were taken from are evidence only; clio.css never ships them.
5
+ Every value in clio.css 0.9.0 has a row here. Sources are paths in the AI System 6 development tree at commit `b75cd4ed` (public mirror: https://github.com/surfine/AI-System-6; some evidence folders such as `internal/` are private). The images measurements were taken from are evidence only; clio.css never ships them.
6
6
 
7
7
  | Status | Meaning | Rows |
8
8
  | --- | --- | ---: |
9
- | Measured | read from real pixels of the era | 50 |
10
- | Inferred | reasoned from documentation or behaviour, not measured | 13 |
11
- | Adapted | a deliberate departure for the web (touch, focus, contrast) | 8 |
12
- | Third-party | art or font from a named, licensed project | 6 |
9
+ | Measured | read from real pixels of the era | 118 |
10
+ | Inferred | reasoned from documentation or behaviour, not measured | 8 |
11
+ | Adapted | a deliberate departure for the web (touch, focus, contrast) | 9 |
12
+ | Third-party | art or font from a named, licensed project | 2 |
13
13
 
14
14
  Pixel check: `npm run fidelity` renders the Platinum specimens and compares them with AI System 6's GUIdebook Mac OS 9.0 reference crops (it needs a local AI System 6 checkout; see the script).
15
15
 
16
16
  | Component | Era | Value | Status | Source — upstream evidence |
17
17
  | --- | --- | --- | --- | --- |
18
+ | Window | System 7 | Title bar: System 6's rows on #eee with six #777 stripes, #ccf light on the top and left inside edges and #99c shade on the bottom and right (the shade owns the corners) | Measured | `clio.css capture, System 7.5.3 in Infinite Mac (npm run capture:system7), frame hd-window` — 99.1% identical; agrees with AI System 6 internal/evidence/drafts/system-7-reference |
19
+ | Window | System 7 | Close and zoom boxes: 11px, sunk #336/#ccf outer ring, raised #ccf/#336 inner ring, #aaa centre, 1px #eee gap; zoom adds a 5px #336 square; held: black square, #99c face and the starburst | Measured | `clio.css capture, System 7.5.3 in Infinite Mac (npm run capture:system7), frames hd-window, held-close, held-zoom` — System 7.5.3 Finder window Infinite HD |
20
+ | Window | System 7 | Background window: #555 frame, plain white title bar, #888 title, black drop shadow | Measured | `clio.css capture, System 7.5.3 in Infinite Mac (npm run capture:system7), frame folder-window` — 99.98% identical |
18
21
  | Window | System 6 | 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 | Measured | `clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), frame hd-window rows 27–45` — agrees with AI System 6 apps/desktop/styles/00-foundation.css:906 (emulator, 2x) |
19
22
  | Window | System 6 | 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) | Measured | `clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), frame hd-window` — System 6.0.8 Finder window Macintosh HD |
20
23
  | Window | System 6 | Title cut-out: about 6px of paper either side of the name (7px left, 5px right including the glyph's side bearing) | Measured | `clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), frame hd-window` — System 6.0.8 Finder window |
@@ -29,66 +32,123 @@ Pixel check: `npm run fidelity` renders the Platinum specimens and compares them
29
32
  | Window | Platinum | Boxes: 11px, #222 frame, #999 to white gradient, #888 bevel above-left and white below-right; pressed #444 to #bbb | Measured | `apps/desktop/styles/65-appearance-themes.css:1820` — GUIdebook Mac OS 9.0 captures |
30
33
  | Window | Platinum | Zoom mark: a six-pixel lower-left corner; WindowShade mark: two nine-pixel rules at y=4 and y=6 | Measured | `apps/desktop/styles/65-platinum-utility.css:725, :738` — GUIdebook Mac OS 9, 1x pixels |
31
34
  | Window | Platinum | Background window: #555 frame and drop, flat controls, #777 title, boxes erased | Measured | `apps/desktop/styles/65-appearance-themes.css:1757 (N1, P26)` — Mac OS 9 native capture 53; GUIdebook active/inactive |
35
+ | Window | Drawing Board | Window frame: the theme's nine Doc Window pictures (6176-6184, active and inactive) round the outline, placed as Mac OS 8.5 places them, the edges tiled from their ends; content on the window paper (ppat 7120) from the content's top-left; the frame is 6px inside the outline on each side | Measured | `clio.css capture, Mac OS 8.5 with the 8.5b6 Drawing Board theme in Infinite Mac (npm run capture:drawingboard), frames date-time and appearance; the theme file's ppat and pxm# resources, decoded by tooling/theme-resources.py, written by tooling/db-art.py and tooling/db-pens.py` — every piece found 1:1 round the Appearance and Date & Time windows; paper origin agrees in Date & Time and Finder Preferences |
36
+ | Window | Drawing Board | Title bar: 20px on the frame colour then the #555 rule; close and collapse boxes 11px, 4px below the bar's top, flush with the content line | Measured | `clio.css capture, Mac OS 8.5 with the 8.5b6 Drawing Board theme in Infinite Mac (npm run capture:drawingboard), frame appearance` — close box 1:1 at (166,73), collapse box 1:1 at (621,73) |
37
+ | Window | Drawing Board | Close, zoom and collapse box art, normal and held | Measured | `the theme file's pxm# pixmaps, decoded by tooling/theme-resources.py and redrawn by tooling/db-art.py` — WindowLargeCloseBox, WindowLargeZoom, WindowLargeCollapse; each found 1:1 in the capture |
38
+ | Window | Drawing Board | Mac OS sometimes starts a 128px pattern half a tile (64px) earlier, depending on where the window or control sits on screen (the Appearance window, the File menu, the Energy Saver alert, the first Date & Time field, the Themes list's scroll bar); clio.css starts it at the element and offers --clio-db-phase: 64px to match a given screen | Adapted | `clio.css` — the rule behind the shift was not found from these captures |
39
+ | Menu bar and menus | System 7 | Menus keep System 6's rows and black highlight; disabled items and the separator are solid #888 instead of a dither | Measured | `clio.css capture, System 7.5.3 in Infinite Mac (npm run capture:system7), frame file-menu` — separator row 100% identical |
32
40
  | Menu bar and menus | System 6 | Menu bar: 20 rows with the rule on the last; an open title inverts rows 1–18, about 9px either side of the word | Measured | `clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), frame file-menu` — System 6.0.8 Finder File menu |
33
- | Menu bar and menus | System 6 | 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 | Measured | `clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), frame file-menu` — System 6.0.8 Finder File menu |
41
+ | Menu bar and menus | System 6 | Menu: hangs from the bar's rule with no top line; 1px ink frame and 1px drop shadow; 16px rows; text 13px in; the highlighted row inverts | Measured | `clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), frame file-menu` — System 6.0.8 Finder File menu |
34
42
  | Menu bar and menus | System 6 | Separator: a full 16px row with a 1-on 1-off dotted rule on its ninth line | Measured | `clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), frame file-menu rows 164–179` — System 6.0.8 Finder File menu |
35
43
  | Menu bar and menus | System 6 | Check mark: the Chicago check glyph, 9×8, 3px in from the frame | Measured | `clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), Apple menu Finder item` — redrawn as pixels in tooling/s6-art.py |
36
- | Menu bar and menus | System 6 | Disabled items are drawn through a 50% grey dither; clio.css uses solid #696969 | Adapted | `clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), frame file-menu` — a dither blurs under browser scaling; solid grey keeps 5.6:1 |
44
+ | Menu bar and menus | System 6 | Disabled items are drawn through QuickDraw's 50% gray pattern, aligned to the screen (ink kept where x + y is odd); clio.css clips the same 2px pattern, fixed to the viewport, to the text (solid #696969 only where background-clip: text is missing) | Measured | `clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), frame file-menu` — "Print" 100% identical (s6-menu-disabled); set --clio-disabled-dither: none for solid #696969 |
37
45
  | Menu bar and menus | Platinum | Menu bar: #ddd, white top line, #999 bottom line, 1px black rule, 20px; open title #333399 with #6666cc/#000088 lines | Measured | `apps/desktop/styles/65-appearance-themes.css:298, :45` — Mac OS 9 native menu bar captures 02/04 |
38
46
  | Menu bar and menus | Platinum | Menu: no top rule, white/#999 inner bevel, #222 1px drop; 16px rows at weight 600; highlight #333399 with #6666cc/#000088 side columns | Measured | `apps/desktop/styles/65-appearance-themes.css:912 (P21), :917 (P24)` — GUIdebook Mac OS 9.0 Apple menu (Theme Lab specimen apple-menu) |
39
- | Menu bar and menus | Platinum | Separator: #888 over white, in an 8px row | Inferred | `apps/desktop/styles/65-appearance-themes.css (separator #888/white)` — the line pair is measured; the 8px row height is not |
40
- | Menu bar and menus | Platinum | Check mark and submenu arrow art | Third-party | `classic-stylesheets macos9/checkmark.svg, menu-right.svg (MIT)` — nielssp/classic-stylesheets @9ebd2d8 |
47
+ | Menu bar and menus | Platinum | Separator: a 6px row with #888 on its third line and white on its fourth, the full width of the menu | Measured | `clio.css capture, Mac OS 9.0 in Infinite Mac (npm run capture:platinum), frame file-menu` — between Close Window and Get Info |
48
+ | Menu bar and menus | Platinum | Menu check mark (9x8, antialiased, recovered from the white-on-#339 chosen item) and the 6x11 submenu arrow, redrawn from Mac OS 9.0 | Measured | `clio.css capture, Mac OS 9.0 in Infinite Mac (npm run capture:platinum), frames popup-open and file-menu; tooling/p9-art.py` — replaces the classic-stylesheets art used before 0.8.0 |
49
+ | Menu bar and menus | Drawing Board | Menu bar: the theme's 630x27 picture (pxm 6104) tiled from the screen's left, 22 rows shown; menus: paper (ppat 7125) from the inside top-left in a frame of pattern pens (ppat 129-133) tiled from the menu's corner, a 2px pencil shade, fixed pencil pixels where the pens meet; 18px items; the separator is ppat 133 | Measured | `clio.css capture, Mac OS 8.5 with the 8.5b6 Drawing Board theme in Infinite Mac (npm run capture:drawingboard), frames file-menu, edit-menu and control-panels-menu; the theme file's ppat and pxm# resources, decoded by tooling/theme-resources.py, written by tooling/db-art.py and tooling/db-pens.py` — File, Edit, Apple and Control Panels menus agree |
50
+ | Menu bar and menus | Drawing Board | The chosen menu title and item are underlined in pencil instead of inverted | Measured | `the theme file's pxm# pixmaps, decoded by tooling/theme-resources.py and redrawn by tooling/db-art.py` — Menu_Title_Underline_Center, Menu_Item_underline_center; the title underline is visible under File in the capture |
51
+ | Menu bar and menus | Drawing Board | Menu item underline: left 16px in, right 15px in, its middle piece tiled (the Appearance pop-up's ends 16px from both sides) | Measured | `clio.css capture, Mac OS 8.5 with the 8.5b6 Drawing Board theme in Infinite Mac (npm run capture:drawingboard), frames control-panels-menu and popup-open` — Energy Saver in the Control Panels menu |
52
+ | Push button | System 7 | Push buttons and the default ring stay black and white, as in System 6 | Measured | `clio.css capture, System 7.5.3 in Infinite Mac (npm run capture:system7), frame page-setup (OK)` — 93.8% identical; a few ring corner pixels differ |
41
53
  | Push button | System 6 | Push button: 20px tall, 1px ink round rectangle with corners of about 4px, paper face, Chicago 12 (AI System 6 uses 7px corners) | Measured | `clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), frame alert, OK button 60×20` — System 6.0.8 stop alert |
42
- | Push button | System 6 | Pressed: the button inverts to ink with paper text | Inferred | `not captured` — System 6 button tracking |
54
+ | Push button | System 6 | Pressed: the whole button inverts to ink with paper text | Measured | `clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), frame button-pressed (Cancel held in a TeachText alert)` — System 6.0.8 |
55
+ | Push button | System 6 | Disabled: the frame stays solid ink and the label is drawn through the 50% gray pattern (the menu's pattern, clipped to the label) | Measured | `clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), frame save-dialog (Eject)` — Eject; at fractional zoom the pattern can blur, set --clio-disabled-dither: none for solid grey |
43
56
  | Push button | System 6 | Default button: a 1px gap then a 3px ring (68×28 around a 60×20 button) | Measured | `clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), frame alert` — agrees with Inside Macintosh, Dialog Manager: PenSize(3,3), InsetRect(-4,-4), FrameRoundRect(16,16) |
44
- | Push button | Both eras | Hover never changes a push button; pressed only on pointer-down, Space or Enter | Inferred | `docs/design/CLASSIC_PLATINUM_FIDELITY.md:210` — a 1987–1999 Mac had no hover state |
57
+ | Push button | System 6 | Hovering over a button changes nothing; only a press inverts it | Measured | `clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), frames locked-alert and button-hover` — agrees with docs/design/CLASSIC_PLATINUM_FIDELITY.md:210 |
58
+ | Push button | Platinum | Hover never changes a push button; pressed only on pointer-down, Space or Enter | Inferred | `docs/design/CLASSIC_PLATINUM_FIDELITY.md:210` — AI System 6 owner ruling: Platinum carries no hover state |
45
59
  | Push button | System 6 | Keyboard focus: a 1px dotted frame 2px out | Adapted | `apps/desktop/styles/00-foundation.css:519` — System 6 had no button focus; a dotted frame cannot be read as the default ring |
46
60
  | Push button | Platinum | #ddd face, 1px black border, 3px corners, bevel white/#ddd over #777/#aaa | Measured | `apps/desktop/styles/65-appearance-themes.css:236` — GUIdebook Mac OS 9.0 About dialog (Theme Lab specimen default-ok) |
47
61
  | Push button | Platinum | Pressed: #666 face, white text, #444/#555 top-left over #888/#777 bottom-right | Measured | `apps/desktop/styles/65-appearance-themes.css:933 (P29)` — Infinite Mac Mac OS 9.0 capture |
48
62
  | Push button | Platinum | Default ring: 1px black, a #aaa band with #ddd/#777 edges, 1px gap | Measured | `apps/desktop/styles/65-platinum-utility.css:773` — GUIdebook Mac OS 9.0 (default-ok specimen) |
49
63
  | Push button | Platinum | Disabled: #888 border, flat #ddd, #777 text; the default ring goes #888 | Measured | `apps/desktop/styles/65-appearance-themes.css (N5)` — GUIdebook Open dialog Eject button (button-disabled specimen) |
64
+ | Push button | Drawing Board | Push buttons: four pattern pens (ppat 7070-7072, 7079) tiled so their pixel 0 is on the last column and row, the corner pixels they leave, the hatched ButtonFaceCorner (image 0) flush in the lower right of the #cec6b5 face, and a 1px pencil shade right and below; the label 1px lower than Platinum's | Measured | `clio.css capture, Mac OS 8.5 with the 8.5b6 Drawing Board theme in Infinite Mac (npm run capture:drawingboard), frames themes-tab and energy-saver-alert; the theme file's ppat and pxm# resources, decoded by tooling/theme-resources.py, written by tooling/db-art.py and tooling/db-pens.py` — "Save Theme…" and "Specify Settings" agree |
65
+ | Push button | Drawing Board | Default button: a 3px band of pattern pens (ppat 7085 rows, 7086 columns) whose inner line is the box's edge, plus its corner pixels | Measured | `clio.css capture, Mac OS 8.5 with the 8.5b6 Drawing Board theme in Infinite Mac (npm run capture:drawingboard), frame energy-saver-alert; the theme file's ppat and pxm# resources, decoded by tooling/theme-resources.py, written by tooling/db-art.py and tooling/db-pens.py` — "Close Message" |
66
+ | Push button | Drawing Board | Held buttons lose the hatch; the foot and right side take other pens (ppat 7126, 7127) tiled from the second column and row | Measured | `clio.css capture, Mac OS 8.5 with the 8.5b6 Drawing Board theme in Infinite Mac (npm run capture:drawingboard), frame button-held; the theme file's ppat and pxm# resources, decoded by tooling/theme-resources.py, written by tooling/db-art.py and tooling/db-pens.py` — "Save Theme…" held |
67
+ | Push button | Drawing Board | Disabled buttons: #8c8c8c label on the same face | Measured | `clio.css capture, Mac OS 8.5 with the 8.5b6 Drawing Board theme in Infinite Mac (npm run capture:drawingboard), frame date-time` — "Server Options…" |
68
+ | Push button | Drawing Board | The pencil overruns at a button's corners: ButtonTopLeft, ButtonTopRight, Button_BotRight, ButtonBotLeft round a plain button and the four *Default pieces round the default one, drawn outside the box | Measured | `the theme's pxm# pixmaps (tooling/db-art.py); positions from frames themes-tab and energy-saver-alert` — each piece found 1:1 round "Save Theme…" and "Close Message" |
69
+ | Check box | System 7 | Identical to System 6: 12px, X when checked | Measured | `clio.css capture, System 7.5.3 in Infinite Mac (npm run capture:system7), frame general-controls` — 100% identical, on and off |
50
70
  | Check box | System 6 | A 12px box with a 1px frame; held, the frame thickens to 2px | Measured | `clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), frame get-info (Locked)` — AI System 6 uses 13px |
51
- | Check box | System 6 | Checked draws an X from corner to corner | Inferred | `not captured (the Locked box was unchecked)` — System 6 check box |
71
+ | Check box | System 6 | Checked draws an X from corner to corner of the box | Measured | `clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), frame get-info-checked (Locked)` — the art is system.css's checkmark.svg (MIT), which matches |
52
72
  | Check box | System 6 | X art | Third-party | `apps/desktop/assets/themes/classic/controls/checkmark.svg` — system.css icon/checkmark.svg (MIT, Sakun Acharige) |
53
73
  | Check box | Platinum | 12px #ddd well, 1px black frame, white top-left and #888 bottom-right bevel | Measured | `apps/desktop/styles/65-appearance-themes.css:897 (P18)` — GUIdebook Mac OS 9.0 Appearance Options tab (checkbox specimens) |
54
- | Check box | Platinum | Check mark art | Third-party | `classic-stylesheets macos9/checkmark.svg (MIT)` — nielssp/classic-stylesheets @9ebd2d8 |
74
+ | Check box | Platinum | Check mark: Mac OS 9's grey-shaded mark inside the frame, overhanging its right edge by two pixels | Measured | `clio.css capture, Mac OS 9.0 in Infinite Mac (npm run capture:platinum), frame general-controls; redrawn by tooling/p9-art.py` — Show Desktop when in background; 96.4% identical (the frame 98.6%) |
75
+ | Check box | Drawing Board | Check box: the theme's 14x11 pictures; image 0 off, 1 on, 3 mixed, 4/5 pressed, 8/9 disabled | Measured | `clio.css capture, Mac OS 8.5 with the 8.5b6 Drawing Board theme in Infinite Mac (npm run capture:drawingboard), frames general-controls and date-time; the theme file's pxm# pixmaps, decoded by tooling/theme-resources.py and redrawn by tooling/db-art.py` — off, on and disabled found 1:1 (Show Desktop, Show Launcher, Daylight-Saving Time is in effect) |
76
+ | Radio button | System 7 | Identical to System 6 | Measured | `clio.css capture, System 7.5.3 in Infinite Mac (npm run capture:system7), frame general-controls` — 100% identical, on and off |
55
77
  | Radio button | System 6 | 12px ring and 6px dot: the real pixels match system.css's art exactly | Measured | `clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), frame control-panel (Rate of Insertion Point Blinking)` — art from system.css icon/radio-border.svg, radio-dot.svg (MIT, Sakun Acharige) |
56
- | Radio button | Platinum | Radio drawn with CSS gradients: black ring, white to #888 well, 6px black dot | Adapted | `apps/desktop/styles/65-appearance-themes.css:291` — AI System 6 later replaced this with art cut from a capture (P19); clio.css ships no cut art |
78
+ | Radio button | Platinum | Radio button: Mac OS 9's shaded 12px ball, off and on; the held states are still drawn with CSS gradients | Measured | `clio.css capture, Mac OS 9.0 in Infinite Mac (npm run capture:platinum), frame general-controls; redrawn by tooling/p9-art.py` — Documents group; off and on 100% identical |
79
+ | Radio button | Drawing Board | Radio button: the theme's 16x12 pictures; image 0 off, 1 on, 2 pressed, 3/4 disabled | Measured | `clio.css capture, Mac OS 8.5 with the 8.5b6 Drawing Board theme in Infinite Mac (npm run capture:drawingboard), frames general-controls and date-time; the theme file's pxm# pixmaps, decoded by tooling/theme-resources.py and redrawn by tooling/db-art.py` — off and on found 1:1 (Documents, Menu Bar Clock) |
80
+ | Text field | System 7 | As System 6: a 1px black frame with the text 3px in | Measured | `clio.css capture, System 7.5.3 in Infinite Mac (npm run capture:system7), frame numbers (Currency Symbol)` — System 7.5.3 |
57
81
  | Text field | System 6 | 1px ink frame, white, text inset 3px | Measured | `clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), frame control-panel (RAM Cache field), get-info (comments)` — System 6.0.8 |
58
82
  | Text field | Platinum | White field, 1px black frame, #888 shadow above-left and white etch below-right | Measured | `apps/desktop/styles/65-appearance-themes.css:935 (P30)` — Infinite Mac Mac OS 9.0 capture |
59
83
  | Text field | Platinum | Focus: a 2px #6666cc ring | Measured | `apps/desktop/styles/65-platinum-utility.css:38` — Mac OS 9 capture platinum-native/10b-fonts-tab |
60
- | Pop-up menu | System 6 | A box with a 1px drop shadow | Inferred | `not measured` — System 6 pop-up menu CDEF |
61
- | Pop-up menu | System 6 | The down triangle | Adapted | `drawn for clio.css` — a System 7 convention, kept so the control reads as a menu |
84
+ | Text field | Drawing Board | Edit text: a 1px line of pattern pens (ppat 7003-7006), the rows tiled from the white's left edge, the left column from its top and the right column from 1px higher; 1px of whatever is behind inside it, then white | Measured | `clio.css capture, Mac OS 8.5 with the 8.5b6 Drawing Board theme in Infinite Mac (npm run capture:drawingboard), frame date-time; the theme file's ppat and pxm# resources, decoded by tooling/theme-resources.py, written by tooling/db-art.py and tooling/db-pens.py` — both Date & Time fields agree |
85
+ | Pop-up menu | System 7 | An 18px box with an 11×6 black triangle 5px from the right edge, label 15px in, and a 1px shadow that starts 3px in from the corner | Measured | `clio.css capture, System 7.5.3 in Infinite Mac (npm run capture:system7), frame numbers (Number Format)` — 100% identical; the triangle is System 7's addition |
86
+ | Pop-up menu | System 6 | An 18px rectangle with a 1px frame and a 1px drop shadow and no arrow; the shadow is what marks it as a menu; held, it inverts | Measured | `clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), frames save-dialog and popup-held (Standard File folder menu)` — the down triangle arrived with System 7 |
62
87
  | Pop-up menu | Platinum | #ddd, 3px corners, white/#aaa bevel, bold label, a separate bevelled arrow part with the 7x10 arrow | Measured | `apps/desktop/styles/65-appearance-themes.css:1916 (P31)` — GUIdebook Mac OS 9.0 (popup-normal specimen), native 09b |
63
- | Pop-up menu | Platinum | The arrow part is drawn with background layers, approximating the measured bevel | Inferred | `clio.css` — select has no ::after in CSS |
64
- | Pop-up menu | Platinum | Arrow art | Third-party | `classic-stylesheets macos9/dropdown.svg (MIT)` — nielssp/classic-stylesheets @9ebd2d8 |
65
- | List box | System 6 | White list, 1px ink frame, 16px rows, selection inverts | Inferred | `not measured` — System 6 Standard File dialog |
88
+ | Pop-up menu | Platinum | The arrow part, drawn with background layers: a #aaa divider 20px from the right, a raised box with a white left and top edge and a #aaa then #777 shade, the arrows 7px from the right and 4px down; the field has a white top line and #aaa foot | Measured | `clio.css capture, Mac OS 9.0 in Infinite Mac (npm run capture:platinum), frame appearance-tab` — "Apple platinum" pop-up, 96.7% identical (p9-popup-end) |
89
+ | Pop-up menu | Platinum | Arrow art (7x10), black, and #888 when disabled | Measured | `clio.css capture, Mac OS 9.0 in Infinite Mac (npm run capture:platinum), frames appearance-tab and appearance; tooling/p9-art.py` — replaces classic-stylesheets dropdown.svg |
90
+ | Pop-up menu | Drawing Board | Pop-up menu: 20px, four pattern pens (ppat 7095-7098; disabled: their other rows) tiled from the last column and row, the corner pixels they leave, #cec6b5 face; the 7x9 double arrow 5px from the right and 4px down; the hatched ButtonFaceCorner (image 2, disabled image 3) ends 19px from the right | Measured | `clio.css capture, Mac OS 8.5 with the 8.5b6 Drawing Board theme in Infinite Mac (npm run capture:drawingboard), frame appearance; the theme file's ppat and pxm# resources, decoded by tooling/theme-resources.py, written by tooling/db-art.py and tooling/db-pens.py` — Appearance, Highlight Color and Variation pop-ups |
91
+ | List box | System 7 | As System 6: a selected row inverts across the list | Inferred | `seen in the Keyboard control panel during capture; not pixel-checked` — System 7.5.3 |
92
+ | List box | System 6 | White list, 1px ink frame, 16px rows; a selected row inverts across the whole list width | Measured | `clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), frames save-dialog and list-selected (Standard File)` — System 6.0.8 TeachText Save As |
66
93
  | List box | Platinum | Selection is lavender #ccccff with black text | Measured | `apps/desktop/styles/65-appearance-themes.css:128` — GUIdebook Mac OS 9.0 Open dialog (open-list-scrollbar specimen) |
67
94
  | List box | Platinum | Rows carry no divider | Measured | `apps/desktop/styles/65-appearance-themes.css:860 (P10)` — Mac OS 9 native list capture 21 |
95
+ | List box | Drawing Board | List boxes: a 2px olive #9c9c63 line, 1px of whatever is behind inside it (the pane's paper), white rows, the chosen row #ccf with black text | Measured | `clio.css capture, Mac OS 8.5 with the 8.5b6 Drawing Board theme in Infinite Mac (npm run capture:drawingboard), frame desktop-tab` — pattern list, lower-left corner |
96
+ | Scroll bar | System 7 | Arrow boxes and grow box redrawn from the captured pixels (#ddd face, white light, #777 shade, #99c arrows outlined #336) | Measured | `clio.css capture, System 7.5.3 in Infinite Mac (npm run capture:system7), frame folder-window → tooling/s7-art.py` — 100% identical |
97
+ | Scroll bar | System 7 | Lane: ltGray pattern in #ddd and #777; scroll box #aaa with #ccf/#336 bevel, a #555 leading edge and a 6×10 grip 3px from it | Measured | `clio.css capture, System 7.5.3 in Infinite Mac (npm run capture:system7), frame folder-window` — the real box is a fixed 16 rows; the browser sizes it to the content, so only its first 16 rows match |
68
98
  | Scroll bar | System 6 | Lane: a 1px line and 14px inside; the window frame closes it, so the bar is 15px in CSS | Measured | `clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), frame system-folder` — AI System 6 uses a 16px lane |
69
99
  | Scroll bar | System 6 | Active lane pattern is QuickDraw's ltGray (one dot in four, rows offset by two), not 50% grey; an empty lane is white | Measured | `clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), frames system-folder and hd-window` — AI System 6 draws a 50% checker |
70
100
  | Scroll bar | System 6 | Scroll box: a white square with a 1px frame filling the lane, 16 rows tall | Measured | `clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), frame system-folder` — System 6.0.8 Finder list view |
71
101
  | Scroll bar | System 6 | Up and down arrows: hollow, 13 wide and 11 tall in the 14px box, a 45° head and a 7px stem | Measured | `clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), frames hd-window and system-folder` — redrawn as pixels in tooling/s6-art.py |
72
- | Scroll bar | System 6 | Left and right arrows are the up and down arrows turned | Inferred | `tooling/s6-art.py` — the horizontal arrows were captured only partly |
102
+ | Scroll bar | System 6 | Left and right arrows: the up arrow turned, apex in the box's first column, tip in its last | Measured | `clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), frame hd-window (horizontal scroll bar)` — redrawn as pixels in tooling/s6-art.py |
73
103
  | Scroll bar | System 6 | Grow box: a 7×7 square over a 9×9 square in the 14px corner | Measured | `clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), frame system-folder` — redrawn as pixels in tooling/s6-art.py |
74
- | Scroll bar | Both eras | The scroll box grows with the visible fraction instead of a fixed 16px square | Adapted | `clio.css` — browsers size ::-webkit-scrollbar-thumb themselves |
104
+ | Scroll bar | All eras | The scroll box grows with the visible fraction instead of a fixed 16px square | Adapted | `clio.css` — browsers size ::-webkit-scrollbar-thumb themselves |
75
105
  | Scroll bar | Platinum | 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 | Measured | `apps/desktop/styles/65-appearance-themes.css:336 (P16), :351 (P17), :364 (P27)` — Mac OS 9 native capture 16; GUIdebook Open dialog |
106
+ | Scroll bar | Drawing Board | Scroll arrows: the theme's 16x16 boxes, normal, held and disabled, flush with the bar; the grow box is NoGrowBoxRight | Measured | `clio.css capture, Mac OS 8.5 with the 8.5b6 Drawing Board theme in Infinite Mac (npm run capture:drawingboard), frame themes-tab; the theme file's pxm# pixmaps, decoded by tooling/theme-resources.py and redrawn by tooling/db-art.py` — left and right arrows found 1:1 at (192,297) and (570,297) |
107
+ | Scroll bar | Drawing Board | Track: #ece6e4 ruled by pattern pens (ppat 7045-7049: the edges and a double centre line) tiled from the track's start; scroll box from the theme's ends, stretch and grip, whose colours Mac OS passes through 16 bits (5 per channel) | Measured | `clio.css capture, Mac OS 8.5 with the 8.5b6 Drawing Board theme in Infinite Mac (npm run capture:drawingboard), frames themes-tab and desktop-tab; the theme file's ppat and pxm# resources, decoded by tooling/theme-resources.py, written by tooling/db-art.py and tooling/db-pens.py` — the Themes list's horizontal bar and the pattern list's vertical bar |
108
+ | Dialogs and alerts | System 7 | Alert frame: 1px black, a raised #ccf/#669 ring, #bbb, a sunken #669/#ccf ring, 1px black (5px, as in System 6) | Measured | `clio.css capture, System 7.5.3 in Infinite Mac (npm run capture:system7), frame page-setup` — 100% identical. An alert without a colour table keeps System 6's black frame (Monitors & Sound alert); clio.css draws the colour one |
76
109
  | Dialogs and alerts | System 6 | Modal frame: 1px ink, 2px paper, 2px ink, and no drop shadow | Measured | `clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), frame alert` — AI System 6 has two recipes, both off (84-clio-write.css:210 has a 1px gap) |
77
- | Dialogs and alerts | System 6 | Plain box: 1px ink frame and a 2px drop shadow | Inferred | `not measured` — altDBoxProc |
78
- | Dialogs and alerts | Both eras | The alert icon is drawn here, not Apple's | Adapted | `clio.css` — no Apple icons are shipped |
110
+ | Dialogs and alerts | System 6 | Plain box: 1px ink frame and a 2px drop shadow | Inferred | `not measured` — altDBoxProc; none of the 6.0.8 Finder and TeachText dialogs opened for capture (alerts, Standard File, About the Finder) uses it |
111
+ | Dialogs and alerts | All eras | The alert icon is drawn here, not Apple's | Adapted | `clio.css` — no Apple icons are shipped |
79
112
  | Dialogs and alerts | Platinum | 1px black frame over #ddd, inner bevel of three white steps inside #555/#999/#aaa, 1px black drop | Measured | `apps/desktop/styles/65-appearance-themes.css:840 (P06)` — GUIdebook Mac OS 9.0 About application (about-alert specimen) |
80
- | Group box | System 6 | 1px ink frame with the legend on paper | Inferred | `not measured` — System 6 control panels |
113
+ | Dialogs and alerts | Drawing Board | Alerts: the theme's eight Alert pictures (6127-6134) round the outline, edges tiled from their ends, on the window paper from 4px inside | Measured | `clio.css capture, Mac OS 8.5 with the 8.5b6 Drawing Board theme in Infinite Mac (npm run capture:drawingboard), frame energy-saver-alert; the theme file's ppat and pxm# resources, decoded by tooling/theme-resources.py, written by tooling/db-art.py and tooling/db-pens.py` — every piece found 1:1 round Energy Saver's start-up notice |
114
+ | Dialogs and alerts | Drawing Board | Movable modal dialogs (.modeless-dialog, which is a .window) draw the document window's frame: #222 outline, 4px #cdc6bd frame, #777 inner line, 20px title bar over a #555 rule, the #777 band right and below | Measured | `clio.css capture, Mac OS 8.5 with Drawing Board (npm run capture:drawingboard), frame copy-progress-5` — Finder copy window; Movable_Modal pixmaps found 1:1 |
115
+ | Dialogs and alerts | Drawing Board | Modal dialogs: the Modal pictures (6135-6142), which have the alert's sizes, placed the same way | Inferred | `the theme file's ppat and pxm# resources, decoded by tooling/theme-resources.py, written by tooling/db-art.py and tooling/db-pens.py` — no modal dialog was on screen in the captures |
116
+ | Group box | System 7 | Native group box: a 1px grey line with the legend on it; the original alternates #777 and #888, drawn #777 here | Measured | `clio.css capture, System 7.5.3 in Infinite Mac (npm run capture:system7), frames general-controls and numbers` — System 7.5.3 control panels |
117
+ | Group box | System 6 | System 6 had no group box; clio.css draws a 1px ink frame with the legend on paper | Adapted | `clio.css` — Control Panel divides its panes with plain 1px rules (clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), frame control-panel) |
81
118
  | Group box | Platinum | Etched: #888 line with a white line inside and below | Measured | `apps/desktop/styles/65-appearance-themes.css:909 (P20)` — Mac OS 9 native group box |
82
- | Progress bar | System 6 | 1px ink frame, ink fill | Inferred | `not measured` — System 6 Finder copy progress |
119
+ | Group box | Drawing Board | Group boxes: a 1px #777 line (#888 on the bottom and right edge), no bevel | Measured | `clio.css capture, Mac OS 8.5 with the 8.5b6 Drawing Board theme in Infinite Mac (npm run capture:drawingboard), frame general-controls` — Desktop group |
120
+ | Progress bar | System 7 | 11px, 1px black frame, #ccf track, #444 fill | Measured | `clio.css capture, System 7.5.3 in Infinite Mac (npm run capture:system7), frame copy-progress` — 100% identical |
121
+ | Progress bar | System 6 | 12px tall, 1px ink frame, white track, fill in QuickDraw dkGray (one white dot in four) | Measured | `clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), frame copy-progress (Finder duplicating System Folder)` — redrawn as a pattern tile in tooling/s6-art.py |
83
122
  | Progress bar | Platinum | Barber-pole fill: ten 1px hard stops from #333399 through #eee to #000055 | Measured | `apps/desktop/styles/65-appearance-themes.css:937 (P32)` — Mac OS 9 native progress bar |
84
- | Progress bar | Platinum | #bbb track with white/#aaa outer and #888/#ddd inner bevel | Inferred | `apps/desktop/styles/65-appearance-themes.css:592` — AI System 6 token, not tagged as measured |
123
+ | Progress bar | Platinum | Frame: 1px black, #aaa outside on the top and left and white on the bottom and right, 10px inside; an indeterminate bar repeats a 16px period of blue and grey stripes | Measured | `clio.css capture, Mac OS 9.0 in Infinite Mac (npm run capture:platinum), frame copy-progress-5; tooling/p9-art.py` — Finder copy window, Preparing to copy… |
124
+ | Progress bar | Platinum | The unfilled track, #bbb with an #888/#ddd inner bevel | Inferred | `apps/desktop/styles/65-appearance-themes.css:592` — AI System 6 token, not tagged as measured |
125
+ | Progress bar | Drawing Board | 12px, a #756f66 pencil line with #333 on the left, #ddd6c5 inside; indeterminate bars carry the theme's Indeterminate_Progress_Arrows | Measured | `clio.css capture, Mac OS 8.5 with Drawing Board (npm run capture:drawingboard), frame copy-progress-5; the theme's pxm#` — Finder copy window, "Preparing to copy…"; the arrows found 1:1 |
126
+ | Progress bar | Drawing Board | The determinate fill stays Platinum's | Inferred | `clio.css` — the copy ran too fast to show a determinate bar |
127
+ | Tabs | System 7 | System 7 had no tab control; the System 6 adaptation is used | Adapted | `clio.css` — System 7.5.3 |
85
128
  | Tabs | System 6 | Boxed labels that join the panel | Adapted | `clio.css` — System 6 had no tab control |
86
- | Tabs | Platinum | Tab art: sloped caps, #ccc tabs, the front tab #eee and 2px taller | Third-party | `classic-stylesheets macos9/tab*.svg (MIT)` — nielssp/classic-stylesheets @9ebd2d8; AI System 6 measured a 21-row tab (P01, 65-appearance-themes.css:742) |
129
+ | Tabs | Platinum | Tab art: sloped caps, #ccc tabs, the front tab #eee and 2px taller, drawn by tooling/tab-art.py from the measured geometry | Measured | `tooling/tab-art.py, from AI System 6 specimen selected-tab (GUIdebook Mac OS 9.0 Appearance)` — 95.7% identical against GUIdebook (selected-tab) |
130
+ | Tabs | Drawing Board | Tabs: the theme's left end (6px) and right end (17px, 2px taller) with the right end's first column stretched between; the front tab is the content colour and opens into the panel | Measured | `clio.css capture, Mac OS 8.5 with the 8.5b6 Drawing Board theme in Infinite Mac (npm run capture:drawingboard), frame appearance; the theme file's pxm# pixmaps, decoded by tooling/theme-resources.py and redrawn by tooling/db-art.py` — NTabLeft and NTabRight found 1:1 at (244,96) and (327,94) |
131
+ | Control Strip | Platinum | 24px: 1px black lines round every cell; #c0c0c0 cells with a #c0c0c0 then white light and a #a0a0a0 then #808080 shade; an end cap, 13px scroll cells (sunken while there is nothing to scroll), 30px modules with the 16px icon 2px in and a 4x7 menu triangle 4px from the right, then 2px of black and the tab | Measured | `clio.css capture, Mac OS 9.0 in Infinite Mac (npm run capture:platinum), frame strip-expanded` — Finder desktop; start of the strip 89.5% identical |
132
+ | Control Strip | Platinum | Held module: #808080 face, 2px #404040 light and 2px #c0c0c0 shade | Measured | `clio.css capture, Mac OS 9.0 in Infinite Mac (npm run capture:platinum), frame strip-slider` — Sound module held |
133
+ | Control Strip | Platinum | End-cap icon, scroll arrows, menu triangle, the tab and the folded tab | Measured | `tooling/p9-art.py, redrawn from frames strip-expanded and strip-collapsed` — tab and folded tab 100% identical |
134
+ | Control Strip | Drawing Board | The Control Strip is not themed: Mac OS 8.5 under Drawing Board draws it exactly as Mac OS 9 does | Measured | `clio.css capture, Mac OS 8.5 with Drawing Board (npm run capture:drawingboard), frame finder` — same cells, bevels and tab, other modules |
135
+ | Control Strip | System 6 | System 6 had no Control Strip: drawn at the Mac OS 9 geometry in ink and paper, with 1-bit arrows, triangle and tab drawn for clio.css | Adapted | `clio.css` — AI System 6 shows its Control Strip in every era |
136
+ | Control Strip | System 7 | System 7.5.3 draws the Mac OS 9 strip in System 7 greys: #ccc cells, white light, #aaa then #888 shade, idle scroll cells sunken #888/white; end cap, arrows, triangle and tab identical pixel for pixel | Measured | `clio.css capture, System 7.5.3 in Infinite Mac (npm run capture:system7), frame folder-window` — Finder desktop |
137
+ | Control Strip | System 7 | Held module in System 7 greys (#888 face, #555 light, #ccc shade) | Inferred | `clio.css, from Mac OS 9's held module` — not captured in 7.5.3 |
138
+ | Desktop and icons | System 7 | The desktop is a 1px #666/#aaa checker | Measured | `clio.css capture, System 7.5.3 in Infinite Mac (npm run capture:system7), every frame` — agrees with AI System 6 system-7-reference |
87
139
  | Desktop and icons | System 6 | The desktop is a 1px 50% checker | Measured | `clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), every frame` — AI System 6 draws an 8px stipple |
88
140
  | Desktop and icons | System 6 | Icon names: Geneva 9 on a white tag; a selected icon and its tag invert | Measured | `clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), desktop (Macintosh HD selected, Welcome! not)` — System 6.0.8 Finder |
89
141
  | Desktop and icons | Platinum | 70% white tag with no edge; selected: black tag, white name, artwork darkened | Measured | `apps/desktop/styles/65-appearance-themes.css:882 (P12, P13)` — Mac OS 9 native capture 02 |
90
142
  | Desktop and icons | Platinum | Desktop colour #4a71ab | Inferred | `apps/desktop/styles/65-appearance-themes.css:85` — base colour of AI System 6's azul tile, generated from a 512 Pixels capture; the tile is not shipped |
91
- | Type and tokens | System 6 | ChicagoFLF, a public-domain revival of Chicago, for chrome | Third-party | `vendor/system.css-reference/fonts/ChicagoFLF.woff2` — Robin Casady's ChicagoFLF (public domain), as shipped by system.css |
92
- | Type and tokens | Platinum | Charcoal when installed; otherwise Asap (OFL) at width 113 for text and 123 for titles, weights 400/600/700 | Measured | `apps/desktop/assets/fonts/platinum/README.md; 65-appearance-themes.css:25` — Asap matched to a measured Charcoal sample's x-height and advance width |
143
+ | Desktop and icons | Drawing Board | Desktop and icons are unchanged from Platinum; the theme's desktop pictures are not reproduced | Adapted | `clio.css` — scen 'Drawing Board on a Grid' / 'on Parchment' are Apple artwork |
144
+ | Type and tokens | System 7 | System 7 keeps System 6's fonts: Clio Sans '84 for chrome, Clio Text '84 for text | Measured | `clio.css capture, System 7.5.3 in Infinite Mac (npm run capture:system7), title bar text` — the title Infinite HD matches pixel for pixel |
145
+ | Type and tokens | System 6 | Chrome text is Clio Sans '84: Chicago 12 rebuilt pixel for pixel (104 Key Caps characters, space, \|, ⌘ and ✓), ascent 11, descent 3, drawn without antialiasing | Measured | `clio.css capture, System 6.0.8 Key Caps (npm run capture:keycaps → tooling/extract-glyphs.py → fonts-src/clio-sans-84.txt)` — title bar 100% and default OK button 99.7% identical to the real screen |
146
+ | Type and tokens | System 6 | Application text is Clio Text '84 (Geneva 12) and small text Clio Text '84 9 (Geneva 9: info line, icon names, status), rebuilt the same way and drawn without antialiasing | Measured | `clio.css capture, System 6.0.8 Key Caps (Geneva 12) and Get Info comments (Geneva 9) → fonts-src/clio-text-84.txt, clio-text-84-9.txt` — TeachText's first line and the Finder info line are 100% identical to the real screen |
147
+ | Type and tokens | System 6 | ChicagoFLF stays in the stack as the outline fallback for sizes that are not multiples of 12px | Third-party | `vendor/system.css-reference/fonts/ChicagoFLF.woff2` — Robin Casady's ChicagoFLF (public domain), as shipped by system.css |
148
+ | Type and tokens | Platinum | Charcoal when installed; Asap (OFL) as the last fallback at width 113 for text and 123 for titles, weights 400/600/700 | Measured | `apps/desktop/assets/fonts/platinum/README.md; 65-appearance-themes.css:25` — Asap matched to a measured Charcoal sample's x-height and advance width |
149
+ | Type and tokens | Platinum | Clio Sans '97 Display (.display, --clio-font-display): Charcoal's outlines traced with potrace from Mac OS 9.0 drawing every character at 72 points in Stickies, for sizes other than 12px and its multiples | Measured | `clio.css capture, Mac OS 9.0 in Infinite Mac (npm run capture:charcoal-large → tooling/trace-outline.py)` — at 72px the ink overlaps the capture's by 90.3% (the rest is antialiased edge) |
150
+ | Type and tokens | Platinum | Clio Sans '97: Charcoal 12 rebuilt pixel for pixel from Mac OS 9.0 Key Caps (107 glyphs, 3px space from the Finder title and the Apple menu, command key from the File menu), used when Charcoal is not installed, drawn unsmoothed | Measured | `clio.css capture, Mac OS 9.0 in Infinite Mac (npm run capture:keycaps -- charcoal), fonts-src/clio-sans-97.txt` — GUIdebook selected tab 80.5% to 95.7%, disabled button 88.2% to 96.9% |
93
151
  | Type and tokens | Platinum | Palette #fff #ddd #ccc #999 #777 #000, accent #333399, lavender #ccccff | Measured | `tooling/classic-platinum-fidelity-contract.json (platinum.palette)` — Mac OS 9 captures |
94
- | Type and tokens | System 6 | Disabled text #696969 instead of a 50% dither | Adapted | `apps/desktop/styles/00-foundation.css (shade-dark)` — 5.6:1 on white; a dither blurs under browser scaling |
152
+ | Type and tokens | System 6 | Disabled text (menu items, button and control labels) through the screen-aligned 50% gray pattern | Measured | `clio.css capture, System 6.0.8 in Infinite Mac (npm run capture:system6), frame file-menu` — --clio-disabled-dither: none gives solid #696969 (5.6:1 on white) |
153
+ | Type and tokens | Drawing Board | Chrome text is #313131; titles and labels are Charcoal, as in Platinum | Measured | `clio.css capture, Mac OS 8.5 with the 8.5b6 Drawing Board theme in Infinite Mac (npm run capture:drawingboard), frame appearance` — tab and title text ink |
154
+ | Type and tokens | All eras | Window titles and push button labels: each of Charcoal's 16 antialiasing levels takes the exact colour the real screen shows for that text colour on that background (Platinum titles on #ccc, buttons on #ddd, held buttons white on #666, disabled; Drawing Board buttons #333 on #cec6b5 with #313131 solid pixels), via Clio Sans '97 Exact palettes | Measured | `clio.css captures of Mac OS 9.0 and Mac OS 8.5 in Infinite Mac; tooling/aa-palettes.py` — Appearance title bar, Set Desktop normal and held, Save Theme… |
package/README.md CHANGED
@@ -1,15 +1,18 @@
1
1
  # clio.css
2
2
 
3
- **A CSS library for classic Mac OS interfaces: Macintosh System 6 and Mac OS 8/9 Platinum.**
3
+ **A CSS library for classic Mac OS interfaces: Macintosh System 6, System 7, Mac OS 8.5 Drawing Board and Mac OS 8/9 Platinum.**
4
4
  Windows, title bars, menu bars, push buttons, check boxes, radio buttons, text fields,
5
- pop-up menus, list boxes, scroll bars, dialogs, group boxes, progress bars, tabs and
6
- desktop icons. Pure CSS, no JavaScript. MIT. No Apple bitmaps, icons, logos or fonts.
5
+ pop-up menus, list boxes, scroll bars, dialogs, group boxes, progress bars, tabs, the
6
+ Control Strip and desktop icons. Pure CSS, no JavaScript. MIT. No screenshots, icons, logos or Apple fonts.
7
7
 
8
8
  Every value is traced to its source and labelled **measured** (read from real pixels of
9
9
  the era), **inferred**, **adapted** (a deliberate web change) or **third-party**. System 6
10
- is measured from System 6.0.8 running in [Infinite Mac](https://infinitemac.org), its
11
- screen read pixel for pixel; Platinum from Mac OS 9.0 captures measured by
12
- [AI System 6](https://github.com/surfine/AI-System-6).
10
+ and System 7 are measured from System 6.0.8 and 7.5.3 running in
11
+ [Infinite Mac](https://infinitemac.org), the screen read pixel for pixel; Drawing Board
12
+ (the appearance theme Apple shipped in the Mac OS 8.5 betas and withdrew) from Mac OS 8.5
13
+ with the theme installed, its control parts redrawn from the theme's own pixmaps; Platinum
14
+ from Mac OS 9.0 captures measured by [AI System 6](https://github.com/surfine/AI-System-6),
15
+ re-checked against Mac OS 9.0 running in Infinite Mac.
13
16
 
14
17
  ![A System 6 window and a Mac OS 9 Platinum window drawn with clio.css](assets/og.png)
15
18
 
@@ -22,24 +25,31 @@ npm install clio.css
22
25
  ```
23
26
 
24
27
  ```html
25
- <link rel="stylesheet" href="https://unpkg.com/clio.css@0.2.0/dist/clio.css">
28
+ <link rel="stylesheet" href="https://unpkg.com/clio.css@0.8.0/dist/clio.css">
26
29
  ```
27
30
 
28
31
  | File | What it draws |
29
32
  | --- | --- |
30
- | `dist/clio.css` | System 6 by default; `data-era="platinum"` on any element switches that subtree to Platinum |
33
+ | `dist/clio.css` | System 6 by default; `data-era="system7"`, `data-era="drawingboard"` or `data-era="platinum"` on any element switches that subtree |
31
34
  | `dist/clio.system6.css` | System 6 only (45 KB minified, 7 KB gzip) |
35
+ | `dist/clio.system7.css` | System 7 (colour) as the page default |
36
+ | `dist/clio.drawingboard.css` | Mac OS 8.5 Drawing Board as the page default |
32
37
  | `dist/clio.platinum.css` | Platinum as the page default |
33
38
  | `*.min.css` | Minified builds |
34
39
  | `dist/components.json` | Machine-readable index: selectors, tokens, markup and evidence per component |
35
40
 
36
- The stylesheets load fonts from `dist/fonts/` with relative URLs, so serve the `dist`
37
- folder as a whole (the CDNs above do).
41
+ The stylesheets load fonts from `dist/fonts/` and the Drawing Board theme's pictures and
42
+ patterns from `dist/art/drawingboard/` with relative URLs, so serve the `dist` folder as a
43
+ whole (the CDNs above do).
44
+
45
+ Drawing Board draws its pencil lines with 128px patterns. Mac OS sometimes starts such a
46
+ pattern half a tile along, depending on where the window sits on screen; clio.css starts it
47
+ at the element, and `--clio-db-phase: 64px` on a window or control matches the other case.
38
48
 
39
49
  ## Quick start
40
50
 
41
51
  ```html
42
- <html data-era="platinum"> <!-- omit for System 6 -->
52
+ <html data-era="system7"> <!-- or "platinum"; omit for System 6 -->
43
53
  <div class="window" style="width: 320px">
44
54
  <div class="title-bar">
45
55
  <button class="close" aria-label="Close"></button>
@@ -86,7 +96,7 @@ unchanged: `.title-bar button.close`, `button.resize`, `.inactive-title-bar`,
86
96
  ## Customising
87
97
 
88
98
  Every value is a `--clio-*` custom property, declared on `:root` and re-declared under
89
- `[data-era="platinum"]`. Override any of them on any element. Every rule uses `:where()`
99
+ `[data-era="system7"]` and `[data-era="platinum"]`. Override any of them on any element. Every rule uses `:where()`
90
100
  or a single class, so your own CSS always wins without `!important`.
91
101
 
92
102
  ```css
@@ -95,21 +105,32 @@ or a single class, so your own CSS always wins without `!important`.
95
105
 
96
106
  ## How faithful is it?
97
107
 
98
- [EVIDENCE.md](EVIDENCE.md) lists every value with its status and source: 50 of the 77
99
- rows are **measured** from real pixels, 13 are still **inferred** and say so.
108
+ [EVIDENCE.md](EVIDENCE.md) lists every value with its status and source: 57 of the 78
109
+ rows are **measured** from real pixels; 6 are still **inferred** and say so (one of them
110
+ for System 6).
100
111
 
101
112
  [FIDELITY.md](FIDELITY.md) is a pixel check (`npm run fidelity`) against the real screens:
102
113
 
103
114
  | Specimen | Pixels identical to the real screen |
104
115
  | --- | ---: |
105
- | System 6 check box, radio buttons, scroll arrow, grow box, menu separator | 100% |
106
- | System 6 default OK button | 96.7% |
107
- | System 6 title bar | 96.3% |
116
+ | System 6 check box (on and off), radio buttons, all four scroll arrows, grow box, progress fill, menu separator | 100% |
117
+ | System 6 pressed and hovered button | identical apart from the mouse pointer in the capture |
118
+ | System 6 default OK button | 99.7% |
119
+ | System 6 title bar, Finder info line, TeachText text | 100% |
120
+ | System 7 title bar, arrow boxes, grow box, alert frame, check boxes, radio buttons, pop-up menu, progress bar, menu separator | 99–100% |
108
121
  | Platinum title bar | 94.3% |
109
122
  | Platinum default OK button | 92.4% |
110
123
 
111
- Nearly every remaining pixel is lettering: Chicago and Charcoal are Apple's fonts and are
112
- not shipped, so ChicagoFLF and Asap stand in. `npm run capture:system6` re-takes the
124
+ System 6 text is drawn in **Clio Sans '84** (Chicago 12) and **Clio Text '84** (Geneva 12
125
+ and 9), rebuilt pixel for pixel from the running system (about 3 KB each), so System 6
126
+ titles, menus, buttons and body text match the real screen exactly.
127
+ Platinum and Drawing Board chrome is drawn in **Clio Sans '97**, Charcoal 12 rebuilt the
128
+ same way from Mac OS 9.0 (3 KB), and at any other size in **Clio Sans '97 Display**
129
+ (`.display`), Charcoal's outlines traced from Mac OS 9.0 at 72 points; Asap stays as the
130
+ fallback. Window titles and push button labels use **Exact** variants whose antialiasing
131
+ levels take the very colours the real screen shows for clio.css's own title and button
132
+ colours (`@font-palette-values`); recolour them and set `--clio-font-window-title` or
133
+ `--clio-font-button` to a stack without "Exact". `npm run capture:system6` re-takes the
113
134
  System 6.0.8 reference frames from Infinite Mac; the frames are never committed.
114
135
 
115
136
  What the era never had is adapted, not imitated: keyboard focus rings, touch-size
@@ -132,7 +153,7 @@ gets the era's scroll-bar colours only.
132
153
  | [XP.css](https://github.com/botoxparty/XP.css) | Windows XP | MIT |
133
154
  | [system.css](https://github.com/sakofchit/system.css) | Classic Apple (System 6 style) | MIT |
134
155
  | [Puppertino](https://github.com/codedgar/Puppertino) | Modern macOS / iOS | MIT |
135
- | **clio.css** | System 6 and Mac OS 8/9 Platinum, with per-value evidence | MIT |
156
+ | **clio.css** | System 6, System 7, Mac OS 8.5 Drawing Board and Mac OS 8/9 Platinum, with per-value evidence | MIT |
136
157
 
137
158
  ## For AI agents
138
159
 
@@ -151,9 +172,10 @@ npm run fidelity # pixel check against AI System 6's references (needs a local
151
172
 
152
173
  ## Licence
153
174
 
154
- MIT, see [LICENSE](LICENSE). Bundled fonts and art keep their own licences, see
155
- [THIRD-PARTY.md](THIRD-PARTY.md): ChicagoFLF (public domain), Asap (SIL OFL 1.1), and
156
- SVG art from system.css and classic-stylesheets (both MIT).
175
+ MIT, see [LICENSE](LICENSE). Bundled fonts and art are described in
176
+ [THIRD-PARTY.md](THIRD-PARTY.md): Clio Sans '84, Clio Text '84 and Clio Sans '97 (pixel reconstructions
177
+ of Chicago and Geneva, shipped under MIT; read the note there), ChicagoFLF (public domain), Asap (SIL OFL 1.1),
178
+ and SVG art from system.css (MIT).
157
179
 
158
180
  clio.css is not affiliated with or endorsed by Apple Inc. Macintosh, Mac OS, Chicago,
159
181
  Geneva and Charcoal are trademarks of Apple Inc., named only to describe the eras
package/THIRD-PARTY.md CHANGED
@@ -1,17 +1,67 @@
1
1
  # Third-party material
2
2
 
3
- clio.css ships no Apple bitmaps, icons, logos or fonts. Screenshots used to
4
- measure values stay evidence in AI System 6 and are never distributed. The
5
- following third-party material is included, each under its own licence.
3
+ clio.css ships no Apple screenshots, icons, logos or font files. Screenshots used to
4
+ measure values stay evidence (git-ignored `.fidelity/`, or AI System 6) and are never
5
+ distributed. The following third-party material is included, each under its own licence.
6
+
7
+ ## Control art reconstructed from Apple's interfaces
8
+
9
+ Some small control parts are pixel reconstructions, not original designs, and are not
10
+ presented as such:
11
+
12
+ - System 7 scroll arrows, grow box and grip (`--clio-art-s7-*`): redrawn as SVG by
13
+ `tooling/s7-art.py` from System 7.5.3 running in an emulator.
14
+ - Mac OS 9 check mark, radio buttons and Control Strip parts (end cap, scroll arrows, menu
15
+ triangle, tab and folded tab) (`--clio-art-p9-*`): re-encoded as palette PNGs by
16
+ `tooling/p9-art.py` from Mac OS 9.0 running in an emulator.
17
+ - Drawing Board art (`dist/art/drawingboard/`, `--clio-art-db-*`): the `pxm#` pictures
18
+ (window, alert and modal frames, menu bar, boxes, check boxes, radio buttons, scroll
19
+ arrows and scroll box, pop-up arrow, hatched button corner, grow box, tab ends, menu
20
+ underlines) and `ppat` patterns (window, tab and menu papers, and the pattern pens the
21
+ theme draws its pencil lines with) of Apple's Mac OS 8.5b6 "Drawing Board" theme,
22
+ re-encoded as palette PNGs by `tooling/db-art.py` and `tooling/db-pens.py`, each matched
23
+ 1:1 against the theme running in an emulator. A few corner pixels where the pens meet are
24
+ read from that screen by `tooling/db-pens.py`. The theme file is not included. The
25
+ textures and frame illustrations ship since 0.9.0, at the owner's decision.
26
+
27
+ They are included to document the look of these interfaces at the size of a single
28
+ control. If that does not suit your use, override the `--clio-art-s7-*`,
29
+ `--clio-art-p9-*` and `--clio-art-db-*` custom properties with your own art, or replace
30
+ the files in `dist/art/drawingboard/`.
6
31
 
7
32
  ## Fonts
8
33
 
34
+ ### Clio Sans '84, Clio Text '84 and Clio Sans '97 (`dist/fonts/ClioSans84.woff2`, `ClioText84.woff2`, `ClioText84-9.woff2`, `ClioSans97.woff2`, `ClioSans97Title.woff2`, `ClioSans97Exact.woff2`, `ClioSans97TitleExact.woff2`, `ClioSans97Display.woff2`)
35
+
36
+ Pixel reconstructions of Chicago 12 (Clio Sans '84), Geneva 12 (Clio Text '84) and
37
+ Geneva 9 (Clio Text '84 9), Macintosh system fonts designed by Susan Kare for Apple
38
+ Computer in 1984, and of Charcoal 12 (Clio Sans '97), the Mac OS 8 system font
39
+ designed by David Berlow of the Font Bureau for Apple in 1997. clio.css read every
40
+ glyph from System 6.0.8 or Mac OS 9.0 running in an emulator (`npm run capture:keycaps`),
41
+ wrote the bitmaps to `fonts-src/*.txt` and built the fonts from them
42
+ (`npm run build:font`). Clio Sans '97 Display is Charcoal's outlines traced from
43
+ Mac OS 9.0 drawing every character at 72 points (`npm run capture:charcoal-large`,
44
+ `tooling/trace-outline.py`). The Exact variants carry the same glyphs with each
45
+ antialiasing level in its own palette entry. No Apple font file was copied.
46
+
47
+ They are not original designs and are not presented as such: the letterforms are
48
+ Apple's. They ship under clio.css's MIT licence on the basis that, in the United States, typeface
49
+ designs are not protected by copyright (37 CFR 202.1(e)); only font software is, and
50
+ these font files are new software. Some countries protect typeface designs separately; if
51
+ that matters for your use, override `--clio-font-chrome`, `--clio-font-text` and
52
+ `--clio-font-small` with your own stack. "Chicago", "Geneva" and "Charcoal" are trademarks of Apple
53
+ Inc., which is why the fonts have other names.
54
+
55
+ ### Other fonts
56
+
9
57
  | File | Font | Author | Licence |
10
58
  | --- | --- | --- | --- |
11
59
  | `dist/fonts/ChicagoFLF.woff2`, `.woff` | ChicagoFLF | Robin Casady | Public domain: the author's own statement and Font Library's listing (https://fontlibrary.org/font/chicagoflf); some download sites say "personal use", which is not the author's term. File as distributed by system.css |
12
60
  | `dist/fonts/Asap-Variable.woff2` | Asap (variable, wdth + wght) | Omnibus-Type | SIL Open Font License 1.1, full text in `dist/fonts/OFL-Asap.txt`; upstream github.com/Omnibus-Type/Asap at commit 2de32f20, SHA-256 3f230328…498f |
13
61
 
14
- Asap is a stand-in for Charcoal and is not presented as an Apple font.
62
+ Asap is a fallback stand-in for Charcoal and is not presented as an Apple font. Virtue
63
+ (Scooter Graphics, 1997), another Charcoal look-alike, is not included: its page offers it
64
+ free with a copyright notice and states no redistribution terms.
15
65
 
16
66
  ## Art from system.css (MIT)
17
67
 
@@ -43,12 +93,13 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
43
93
  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
44
94
  ## Art from classic-stylesheets (MIT)
45
95
 
46
- The Platinum pop-up arrow (and its disabled colour), check mark, submenu
47
- arrow and the three tab drawings are re-encoded from `macos9/dropdown.svg`,
48
- `checkmark.svg`, `menu-right.svg`, `tab.svg`, `tab-active.svg` and
49
- `tab-selected.svg` of https://github.com/nielssp/classic-stylesheets at commit
50
- 9ebd2d84. AI System 6 also adapted Platinum control relationships from the
51
- same project.
96
+ Up to 0.7.0 the Platinum pop-up arrow, check mark and submenu arrow were
97
+ re-encoded from `macos9/dropdown.svg`, `checkmark.svg` and `menu-right.svg` of
98
+ https://github.com/nielssp/classic-stylesheets at commit 9ebd2d84, and the tab
99
+ drawings followed its `tab*.svg`. Since 0.8.0 the arrows and check mark are
100
+ redrawn from Mac OS 9.0 (`tooling/p9-art.py`) and the tabs from measured geometry
101
+ (`tooling/tab-art.py`). AI System 6 adapted Platinum control relationships from the
102
+ same project, so the notice stays.
52
103
 
53
104
  MIT License
54
105
 
Binary file