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
@@ -1,12 +1,227 @@
1
- /*! clio.css 0.2.0 (Platinum default) | MIT | https://surfine.github.io/clio.css/
2
- * Classic Mac OS interface CSS: System 6 and Mac OS 9 Platinum.
1
+ /*! clio.css 0.9.0 (Platinum default) | MIT | https://surfine.github.io/clio.css/
2
+ * Classic Mac OS interface CSS: System 6, System 7, Mac OS 8.5 Drawing Board and Mac OS 9 Platinum.
3
3
  * Measured values traced to AI System 6; see EVIDENCE.md.
4
- * Includes art from system.css (MIT) and classic-stylesheets (MIT); see THIRD-PARTY.md. */
5
- /* Fonts. Only two faces ship, both with a licence that allows it:
4
+ * Includes art from system.css (MIT) and pixel reconstructions of Apple control art; see THIRD-PARTY.md. */
5
+ /* Clio Sans '84: Chicago 12 rebuilt pixel for pixel from System 6.0.8
6
+ (fonts-src/clio-sans-84.txt). Every pixel is a square on a 1200-unit em, so
7
+ at 12px and its multiples it draws exactly the original bitmap. */
8
+ @font-face {
9
+ font-family: "Clio Sans '84";
10
+ src: url("fonts/ClioSans84.woff2") format("woff2");
11
+ font-display: swap;
12
+ }
13
+
14
+ /* Clio Text '84: Geneva 12, and Clio Text '84 9: Geneva 9, rebuilt the same
15
+ way (fonts-src/clio-text-84*.txt). */
16
+ @font-face {
17
+ font-family: "Clio Text '84";
18
+ src: url("fonts/ClioText84.woff2") format("woff2");
19
+ font-display: swap;
20
+ }
21
+
22
+ @font-face {
23
+ font-family: "Clio Text '84 9";
24
+ src: url("fonts/ClioText84-9.woff2") format("woff2");
25
+ font-display: swap;
26
+ }
27
+
28
+ /* Clio Sans '97: Charcoal 12 rebuilt the same way from Mac OS 9.0's Key Caps
29
+ (fonts-src/clio-sans-97.txt). Charcoal has one weight, so the face covers
30
+ every weight and the browser never thickens it. */
31
+ @font-face {
32
+ font-family: "Clio Sans '97";
33
+ src: url("fonts/ClioSans97.woff2") format("woff2");
34
+ font-weight: 100 900;
35
+ font-display: swap;
36
+ }
37
+
38
+ /* Clio Sans '97 Title: the same face as window titles draw it (a few faint
39
+ pixels fewer than menus and buttons), for title bars only. */
40
+ @font-face {
41
+ font-family: "Clio Sans '97 Title";
42
+ src: url("fonts/ClioSans97Title.woff2") format("woff2");
43
+ font-weight: 100 900;
44
+ font-display: swap;
45
+ }
46
+
47
+ /* Clio Sans '97 Exact and Clio Sans '97 Title Exact: the same glyphs with
48
+ each antialiasing level painted from a palette entry, so the palettes below
49
+ give, for clio.css's own title and button colours, the very pixels Mac OS
50
+ blends ((fg * a + bg * (255 - a)) >> 8). They ignore the text colour: a
51
+ page that recolours a title or a button label also sets --clio-font-window-title
52
+ or --clio-font-button back to a stack without "Exact", and gets Clio Sans
53
+ '97 in its colour, within one level of the real screen. */
54
+ @font-face {
55
+ font-family: "Clio Sans '97 Exact";
56
+ src: url("fonts/ClioSans97Exact.woff2") format("woff2");
57
+ font-weight: 100 900;
58
+ font-display: swap;
59
+ }
60
+
61
+ @font-face {
62
+ font-family: "Clio Sans '97 Title Exact";
63
+ src: url("fonts/ClioSans97TitleExact.woff2") format("woff2");
64
+ font-weight: 100 900;
65
+ font-display: swap;
66
+ }
67
+
68
+ /* Written by tooling/aa-palettes.py. */
69
+ @font-palette-values --clio-aa-p9-title {
70
+ font-family: "Clio Sans '97 Title Exact";
71
+ override-colors:
72
+ 0 #bebebe,
73
+ 1 #b0b0b0,
74
+ 2 #a2a2a2,
75
+ 3 #959595,
76
+ 4 #878787,
77
+ 5 #7a7a7a,
78
+ 6 #6c6c6c,
79
+ 7 #5f5f5f,
80
+ 8 #515151,
81
+ 9 #444444,
82
+ 10 #363636,
83
+ 11 #282828,
84
+ 12 #1b1b1b,
85
+ 13 #0d0d0d,
86
+ 14 #000000;
87
+ }
88
+
89
+ @font-palette-values --clio-aa-p9-title-inactive {
90
+ font-family: "Clio Sans '97 Title Exact";
91
+ override-colors:
92
+ 0 #c5c5c5,
93
+ 1 #bfbfbf,
94
+ 2 #bababa,
95
+ 3 #b4b4b4,
96
+ 4 #aeaeae,
97
+ 5 #a9a9a9,
98
+ 6 #a3a3a3,
99
+ 7 #9e9e9e,
100
+ 8 #989898,
101
+ 9 #929292,
102
+ 10 #8d8d8d,
103
+ 11 #878787,
104
+ 12 #818181,
105
+ 13 #7c7c7c,
106
+ 14 #777777;
107
+ }
108
+
109
+ @font-palette-values --clio-aa-p9-button {
110
+ font-family: "Clio Sans '97 Exact";
111
+ override-colors:
112
+ 0 #cecece,
113
+ 1 #bfbfbf,
114
+ 2 #b0b0b0,
115
+ 3 #a2a2a2,
116
+ 4 #939393,
117
+ 5 #848484,
118
+ 6 #757575,
119
+ 7 #676767,
120
+ 8 #585858,
121
+ 9 #494949,
122
+ 10 #3a3a3a,
123
+ 11 #2c2c2c,
124
+ 12 #1d1d1d,
125
+ 13 #0e0e0e,
126
+ 14 #000000;
127
+ }
128
+
129
+ @font-palette-values --clio-aa-p9-button-held {
130
+ font-family: "Clio Sans '97 Exact";
131
+ override-colors:
132
+ 0 #707070,
133
+ 1 #7a7a7a,
134
+ 2 #848484,
135
+ 3 #8e8e8e,
136
+ 4 #999999,
137
+ 5 #a3a3a3,
138
+ 6 #adadad,
139
+ 7 #b7b7b7,
140
+ 8 #c1c1c1,
141
+ 9 #cbcbcb,
142
+ 10 #d6d6d6,
143
+ 11 #e0e0e0,
144
+ 12 #eaeaea,
145
+ 13 #f4f4f4,
146
+ 14 #ffffff;
147
+ }
148
+
149
+ @font-palette-values --clio-aa-p9-button-disabled {
150
+ font-family: "Clio Sans '97 Exact";
151
+ override-colors:
152
+ 0 #d5d5d5,
153
+ 1 #cecece,
154
+ 2 #c7c7c7,
155
+ 3 #c1c1c1,
156
+ 4 #bababa,
157
+ 5 #b3b3b3,
158
+ 6 #acacac,
159
+ 7 #a5a5a5,
160
+ 8 #9f9f9f,
161
+ 9 #989898,
162
+ 10 #919191,
163
+ 11 #8a8a8a,
164
+ 12 #848484,
165
+ 13 #7d7d7d,
166
+ 14 #777777;
167
+ }
168
+
169
+ @font-palette-values --clio-aa-db-button {
170
+ font-family: "Clio Sans '97 Exact";
171
+ override-colors:
172
+ 0 #c3bcac,
173
+ 1 #b9b2a3,
174
+ 2 #aea89a,
175
+ 3 #a49e91,
176
+ 4 #999488,
177
+ 5 #8f8a80,
178
+ 6 #848077,
179
+ 7 #7a766e,
180
+ 8 #6f6c65,
181
+ 9 #65625d,
182
+ 10 #5a5854,
183
+ 11 #504e4b,
184
+ 12 #454442,
185
+ 13 #3b3a39,
186
+ 14 #313131;
187
+ }
188
+
189
+ @font-palette-values --clio-aa-db-button-disabled {
190
+ font-family: "Clio Sans '97 Exact";
191
+ override-colors:
192
+ 0 #cac2b2,
193
+ 1 #c6bfaf,
194
+ 2 #c3bcad,
195
+ 3 #c0b9ab,
196
+ 4 #bdb6a9,
197
+ 5 #bab3a7,
198
+ 6 #b7b0a4,
199
+ 7 #b4ada2,
200
+ 8 #b1aaa0,
201
+ 9 #ada89e,
202
+ 10 #aaa59c,
203
+ 11 #a7a299,
204
+ 12 #a49f97,
205
+ 13 #a19c95,
206
+ 14 #9c9c94;
207
+ }
208
+
209
+ /* Clio Sans '97 Display: Charcoal's outlines, traced from Mac OS 9.0 drawing it
210
+ at 72 points (fonts/ClioSans97Display.woff2, tooling/trace-outline.py), for
211
+ every size that is not 12px or a multiple of it. */
212
+ @font-face {
213
+ font-family: "Clio Sans '97 Display";
214
+ src: url("fonts/ClioSans97Display.woff2") format("woff2");
215
+ font-weight: 100 900;
216
+ font-display: swap;
217
+ }
218
+
219
+ /* Other fonts, each with a licence that allows it:
6
220
  - ChicagoFLF: a public-domain outline revival of Chicago (Robin Casady).
7
221
  - Asap (variable, wdth + wght): SIL OFL 1.1, Omnibus-Type. The legal
8
222
  stand-in for Charcoal that AI System 6 measured its Platinum title bar
9
- against (width axis 113 for text, 123 for titles).
223
+ against (width axis 113 for text, 123 for titles); now the fallback
224
+ behind Clio Sans '97.
10
225
  Apple's own faces (Chicago, Geneva, Charcoal, Monaco) are never shipped;
11
226
  the stacks below reach them only when the visitor already has them. */
12
227
  @font-face {
@@ -33,7 +248,8 @@
33
248
  adaptation (contrast, focus, touch). Platinum re-declares these tokens in
34
249
  90-platinum.css under [data-era="platinum"]. */
35
250
  :root,
36
- [data-era="system6"] {
251
+ [data-era="system6"],
252
+ [data-era="system7"] {
37
253
  /* 1-bit palette. System 6 on a compact Mac had two colours. */
38
254
  --clio-ink: #000000;
39
255
  --clio-paper: #ffffff;
@@ -41,14 +257,28 @@
41
257
  /* [A] Disabled text: System 6 drew it through a 50% grey pattern; a solid
42
258
  grey keeps 5.6:1 on white instead of a dither the browser would blur. */
43
259
  --clio-disabled: #696969;
260
+ /* Dimmed text is drawn through QuickDraw's 50% gray pattern, aligned to the
261
+ screen: the ink where x + y is odd survives (measured, File menu). The
262
+ pattern is fixed to the viewport the same way; #696969 is only the
263
+ fallback colour where background-clip: text is missing. */
264
+ --clio-disabled-dither: var(--clio-art-s6-gray50);
265
+ --clio-disabled-fill: transparent;
44
266
  --clio-selection-bg: #000000;
45
267
  --clio-selection-fg: #ffffff;
46
268
 
47
269
  /* Type. Chicago 12 is the system font; Geneva is the application font. */
48
- --clio-font-chrome: Chicago, "ChicagoFLF", Charcoal, Geneva, "Helvetica Neue", Arial, sans-serif;
49
- --clio-font-text: Geneva, "Clio Asap", "Helvetica Neue", Arial, sans-serif;
270
+ --clio-font-chrome: "Clio Sans '84", Chicago, "ChicagoFLF", Charcoal, Geneva, "Helvetica Neue", Arial, sans-serif;
271
+ --clio-font-text: "Clio Text '84", Geneva, "Helvetica Neue", Arial, sans-serif;
272
+ /* Geneva 9: the Finder info line, icon names, status lines. */
273
+ --clio-font-small: "Clio Text '84 9", Geneva, "Helvetica Neue", Arial, sans-serif;
274
+ --clio-text-smoothing: none;
50
275
  --clio-font-mono: Monaco, Menlo, Consolas, "Courier New", monospace;
276
+ /* Chrome type at sizes other than 12px and its multiples (.display): an
277
+ outline face, smoothed. */
278
+ --clio-font-display: Chicago, "ChicagoFLF", Charcoal, "Helvetica Neue", Arial, sans-serif;
51
279
  --clio-font-size: 12px;
280
+ /* A bitmap face: no antialiasing, so a glyph on a half pixel stays 1-bit. */
281
+ --clio-font-smoothing: none;
52
282
  /* Geneva 9: the Finder info line and icon names. */
53
283
  --clio-font-size-small: 9px;
54
284
  --clio-chrome-weight: 400;
@@ -122,7 +352,7 @@
122
352
  --clio-menu-border-top-width: 0;
123
353
  --clio-menu-shadow: 1px 1px 0 var(--clio-ink);
124
354
  --clio-menu-item-height: 16px;
125
- --clio-menu-item-padding: 0 12px 0 15px;
355
+ --clio-menu-item-padding: 0 12px 0 13px;
126
356
  --clio-menu-item-weight: 400;
127
357
  --clio-menu-item-active-bg: var(--clio-ink);
128
358
  --clio-menu-item-active-fg: var(--clio-paper);
@@ -136,18 +366,30 @@
136
366
  --clio-button-bg: var(--clio-paper);
137
367
  --clio-button-fg: var(--clio-ink);
138
368
  --clio-button-border: 1px solid var(--clio-ink);
139
- /* 20px tall; corners turn over about 4px (alert OK button, 6.0.8). */
140
- --clio-button-radius: 4px;
369
+ /* 20px tall; the corner steps in 3, 1, 1 pixels on its first three rows
370
+ (OK and Cancel, 6.0.8), which a 4.5px radius reproduces exactly. */
371
+ /* The frame and the default ring are the real pixel staircases, cut from
372
+ System 6.0.8's Alert and Save dialog (tooling/frame-art.py) and drawn with
373
+ border-image; border-radius would antialias an arc. */
374
+ --clio-button-radius: 0;
375
+ --clio-button-frame: var(--clio-art-frame-s6-button);
376
+ --clio-button-frame-held: var(--clio-art-frame-s6-button-held);
377
+ --clio-button-frame-slice: 4;
378
+ --clio-ring-frame: var(--clio-art-frame-s6-ring);
379
+ --clio-ring-frame-slice: 7;
380
+ --clio-popup-frame: none;
381
+ --clio-popup-frame-slice: 3;
141
382
  --clio-button-shadow: 0 0 0 0 transparent;
142
383
  --clio-button-padding: 0 12px;
143
384
  --clio-button-min-width: 59px;
144
385
  --clio-button-weight: 400;
145
- --clio-button-active-bg: var(--clio-ink);
386
+ --clio-button-active-bg: transparent; /* the held frame carries the ink face */
146
387
  --clio-button-active-fg: var(--clio-paper);
147
388
  --clio-button-active-shadow: 0 0 0 0 transparent;
148
389
  /* Default button: Inside Macintosh's recipe is PenSize(3,3) around the
149
390
  button inset by -4, so a 1px gap then a 3px ring. */
150
- --clio-button-default-ring: 0 0 0 1px var(--clio-paper), 0 0 0 4px var(--clio-ink);
391
+ --clio-button-default-gap: 1px;
392
+ --clio-button-default-width: 3px;
151
393
  --clio-button-default-radius: 8px;
152
394
  --clio-button-disabled-fg: var(--clio-disabled);
153
395
  --clio-button-disabled-border: 1px solid var(--clio-ink);
@@ -179,8 +421,11 @@
179
421
  --clio-popup-border: 1px solid var(--clio-ink);
180
422
  --clio-popup-radius: 0;
181
423
  --clio-popup-shadow: 1px 1px 0 var(--clio-ink);
182
- --clio-popup-padding: 0 24px 0 6px;
183
- --clio-popup-arrow: var(--clio-art-s6-popup) right 6px center / 11px 6px no-repeat;
424
+ /* System 6 pop-up (Standard File folder menu, 6.0.8): an 18px box, 1px
425
+ frame, 1px shadow, no arrow; held, it inverts. */
426
+ --clio-popup-height: 18px;
427
+ --clio-popup-padding: 0 8px;
428
+ --clio-popup-arrow: none;
184
429
  --clio-popup-weight: 400;
185
430
 
186
431
  /* Scroll bars */
@@ -232,7 +477,8 @@
232
477
  --clio-progress-bg: var(--clio-paper);
233
478
  --clio-progress-border: 1px solid var(--clio-ink);
234
479
  --clio-progress-shadow: none;
235
- --clio-progress-fill: var(--clio-ink);
480
+ /* Finder copy progress (6.0.8): 12px, 1px frame, dkGray fill. */
481
+ --clio-progress-fill: var(--clio-art-s6-dkgray) 0 0 / 4px 2px repeat, var(--clio-ink);
236
482
  --clio-tab-height: 20px;
237
483
  --clio-tab-bg: var(--clio-paper);
238
484
  --clio-tab-active-bg: var(--clio-paper);
@@ -242,6 +488,31 @@
242
488
  --clio-label-fg: var(--clio-ink);
243
489
  --clio-label-selected-bg: var(--clio-ink);
244
490
  --clio-label-selected-fg: var(--clio-paper);
491
+
492
+ /* Control Strip: System 6 had none; drawn here in its ink and paper, at the
493
+ Mac OS 9 geometry (adapted). */
494
+ --clio-strip-height: 24px;
495
+ --clio-strip-bg: var(--clio-paper);
496
+ --clio-strip-line: 1px solid var(--clio-ink);
497
+ --clio-strip-cell-shadow: none;
498
+ --clio-strip-sunken-shadow: none;
499
+ --clio-strip-sunken-lines: linear-gradient(transparent, transparent);
500
+ --clio-strip-pressed-bg: var(--clio-ink);
501
+ --clio-strip-pressed-shadow: inset 0 0 0 2px var(--clio-paper);
502
+ --clio-strip-cap-width: 13px;
503
+ --clio-strip-scroll-width: 13px;
504
+ --clio-strip-module-width: 30px;
505
+ --clio-strip-icon-inset: 2px;
506
+ --clio-strip-menu-top: 7px;
507
+ --clio-strip-menu-inset: 4px;
508
+ --clio-strip-handle-width: 18px;
509
+ --clio-strip-tab-width: 18px;
510
+ --clio-strip-cap: var(--clio-art-s6-strip-cap);
511
+ --clio-strip-back: var(--clio-art-s6-strip-back);
512
+ --clio-strip-forward: var(--clio-art-s6-strip-forward);
513
+ --clio-strip-menu: var(--clio-art-s6-strip-menu);
514
+ --clio-strip-handle: var(--clio-art-s6-strip-handle);
515
+ --clio-strip-tab: var(--clio-art-s6-strip-tab);
245
516
  }
246
517
 
247
518
  /* Inline art. Pixel-grid SVGs, never Apple bitmaps: the System 6 check, radio
@@ -253,7 +524,6 @@
253
524
  --clio-art-s6-radio: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' shape-rendering='crispEdges'%3E%3Cpath d='M4 0h4v1H4zM0 4h1v4H0zM11 4h1v4h-1zM2 1h2v1H2zM8 1h2v1H8zM10 2h1v2h-1zM1 2h1v2H1zM4 11h4v1H4zM2 10h2v1H2zM8 10h2v1H8zM10 8h1v2h-1zM1 8h1v2H1z'/%3E%3C/svg%3E");
254
525
  --clio-art-s6-radio-focus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' shape-rendering='crispEdges'%3E%3Cpath d='M4 0h4v2H4zM0 4h2v4H0zM10 4h2v4h-2zM2 1h2v2H2zM8 1h2v2H8zM9 2h2v2H9zM1 2h2v2H1zM4 10h4v2H4zM2 9h2v2H2zM8 9h2v2H8zM9 8h2v2H9zM1 8h2v2H1z'/%3E%3C/svg%3E");
255
526
  --clio-art-s6-radio-dot: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='6' height='6' shape-rendering='crispEdges'%3E%3Cpath d='M1 0h4v1H1zM1 5h4v1H1zM0 1h6v4H0z'/%3E%3C/svg%3E");
256
- --clio-art-s6-popup: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='6' shape-rendering='crispEdges'%3E%3Cpath d='M0 0h11v1H0zM1 1h9v1H1zM2 2h7v1H2zM3 3h5v1H3zM4 4h3v1H4zM5 5h1v1H5z'/%3E%3C/svg%3E");
257
527
  --clio-art-s6-submenu: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='6' height='11'%3E%3Cpath d='m0 0 6 5.5L0 11Z'/%3E%3C/svg%3E");
258
528
  --clio-art-s6-submenu-on: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='6' height='11'%3E%3Cpath fill='%23fff' d='m0 0 6 5.5L0 11Z'/%3E%3C/svg%3E");
259
529
  --clio-art-s6-desktop: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='2' height='2' shape-rendering='crispEdges'%3E%3Cpath d='M0 0h1v1H0zM1 1h1v1H1z'/%3E%3Cpath fill='%23fff' d='M1 0h1v1H1zM0 1h1v1H0z'/%3E%3C/svg%3E");
@@ -262,15 +532,33 @@
262
532
  --clio-art-s6-up-on: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' shape-rendering='crispEdges'%3E%3Cpath fill='%23000' d='M5 2h3v1h-3zM4 3h5v1h-5zM3 4h7v1h-7zM2 5h9v1h-9zM1 6h11v1h-11zM0 7h13v1h-13zM3 8h7v1h-7zM3 9h7v1h-7zM3 10h7v1h-7zM3 11h7v1h-7z'/%3E%3C/svg%3E");
263
533
  --clio-art-s6-down: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' shape-rendering='crispEdges'%3E%3Cpath fill='%23fff' d='M4 3h5v1h-5zM4 4h5v1h-5zM4 5h5v1h-5zM4 6h5v1h-5zM2 7h9v1h-9zM3 8h7v1h-7zM4 9h5v1h-5zM5 10h3v1h-3zM6 11h1v1h-1z'/%3E%3Cpath fill='%23000' d='M3 2h7v1h-7zM3 3h1v1h-1zM9 3h1v1h-1zM3 4h1v1h-1zM9 4h1v1h-1zM3 5h1v1h-1zM9 5h1v1h-1zM0 6h4v1h-4zM9 6h4v1h-4zM1 7h1v1h-1zM11 7h1v1h-1zM2 8h1v1h-1zM10 8h1v1h-1zM3 9h1v1h-1zM9 9h1v1h-1zM4 10h1v1h-1zM8 10h1v1h-1zM5 11h1v1h-1zM7 11h1v1h-1zM6 12h1v1h-1z'/%3E%3C/svg%3E");
264
534
  --clio-art-s6-down-on: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' shape-rendering='crispEdges'%3E%3Cpath fill='%23000' d='M3 2h7v1h-7zM3 3h7v1h-7zM3 4h7v1h-7zM3 5h7v1h-7zM0 6h13v1h-13zM1 7h11v1h-11zM2 8h9v1h-9zM3 9h7v1h-7zM4 10h5v1h-5zM5 11h3v1h-3z'/%3E%3C/svg%3E");
265
- --clio-art-s6-left: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' shape-rendering='crispEdges'%3E%3Cpath fill='%23fff' d='M6 2h1v1h-1zM5 3h2v1h-2zM4 4h7v1h-7zM3 5h8v1h-8zM2 6h9v1h-9zM3 7h8v1h-8zM4 8h7v1h-7zM5 9h2v1h-2zM6 10h1v1h-1z'/%3E%3Cpath fill='%23000' d='M7 0h1v1h-1zM6 1h2v1h-2zM5 2h1v1h-1zM7 2h1v1h-1zM4 3h1v1h-1zM7 3h5v1h-5zM3 4h1v1h-1zM11 4h1v1h-1zM2 5h1v1h-1zM11 5h1v1h-1zM1 6h1v1h-1zM11 6h1v1h-1zM2 7h1v1h-1zM11 7h1v1h-1zM3 8h1v1h-1zM11 8h1v1h-1zM4 9h1v1h-1zM7 9h5v1h-5zM5 10h1v1h-1zM7 10h1v1h-1zM6 11h2v1h-2zM7 12h1v1h-1z'/%3E%3C/svg%3E");
266
- --clio-art-s6-left-on: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' shape-rendering='crispEdges'%3E%3Cpath fill='%23000' d='M7 0h1v1h-1zM6 1h2v1h-2zM5 2h3v1h-3zM4 3h8v1h-8zM3 4h9v1h-9zM2 5h10v1h-10zM2 6h10v1h-10zM2 7h10v1h-10zM3 8h9v1h-9zM4 9h8v1h-8zM5 10h3v1h-3zM6 11h2v1h-2zM7 12h1v1h-1z'/%3E%3C/svg%3E");
267
- --clio-art-s6-right: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' shape-rendering='crispEdges'%3E%3Cpath fill='%23fff' d='M6 2h1v1h-1zM5 3h2v1h-2zM4 4h7v1h-7zM3 5h8v1h-8zM2 6h9v1h-9zM3 7h8v1h-8zM4 8h7v1h-7zM5 9h2v1h-2zM6 10h1v1h-1z'/%3E%3Cpath fill='%23000' d='M7 0h1v1h-1zM6 1h2v1h-2zM5 2h1v1h-1zM7 2h1v1h-1zM4 3h1v1h-1zM7 3h5v1h-5zM3 4h1v1h-1zM11 4h1v1h-1zM2 5h1v1h-1zM11 5h1v1h-1zM1 6h1v1h-1zM11 6h1v1h-1zM2 7h1v1h-1zM11 7h1v1h-1zM3 8h1v1h-1zM11 8h1v1h-1zM4 9h1v1h-1zM7 9h5v1h-5zM5 10h1v1h-1zM7 10h1v1h-1zM6 11h2v1h-2zM7 12h1v1h-1z'/%3E%3C/svg%3E");
268
- --clio-art-s6-right-on: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' shape-rendering='crispEdges'%3E%3Cpath fill='%23000' d='M7 0h1v1h-1zM6 1h2v1h-2zM5 2h3v1h-3zM4 3h8v1h-8zM3 4h9v1h-9zM2 5h10v1h-10zM2 6h10v1h-10zM2 7h10v1h-10zM3 8h9v1h-9zM4 9h8v1h-8zM5 10h3v1h-3zM6 11h2v1h-2zM7 12h1v1h-1z'/%3E%3C/svg%3E");
535
+ --clio-art-s6-left: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' shape-rendering='crispEdges'%3E%3Cpath fill='%23fff' d='M5 2h1v1h-1zM4 3h2v1h-2zM3 4h7v1h-7zM2 5h8v1h-8zM1 6h9v1h-9zM2 7h8v1h-8zM3 8h7v1h-7zM4 9h2v1h-2zM5 10h1v1h-1z'/%3E%3Cpath fill='%23000' d='M6 0h1v1h-1zM5 1h2v1h-2zM4 2h1v1h-1zM6 2h1v1h-1zM3 3h1v1h-1zM6 3h5v1h-5zM2 4h1v1h-1zM10 4h1v1h-1zM1 5h1v1h-1zM10 5h1v1h-1zM0 6h1v1h-1zM10 6h1v1h-1zM1 7h1v1h-1zM10 7h1v1h-1zM2 8h1v1h-1zM10 8h1v1h-1zM3 9h1v1h-1zM6 9h5v1h-5zM4 10h1v1h-1zM6 10h1v1h-1zM5 11h2v1h-2zM6 12h1v1h-1z'/%3E%3C/svg%3E");
536
+ --clio-art-s6-left-on: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' shape-rendering='crispEdges'%3E%3Cpath fill='%23000' d='M6 0h1v1h-1zM5 1h2v1h-2zM4 2h3v1h-3zM3 3h8v1h-8zM2 4h9v1h-9zM1 5h10v1h-10zM1 6h10v1h-10zM1 7h10v1h-10zM2 8h9v1h-9zM3 9h8v1h-8zM4 10h3v1h-3zM5 11h2v1h-2zM6 12h1v1h-1z'/%3E%3C/svg%3E");
537
+ --clio-art-s6-right: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' shape-rendering='crispEdges'%3E%3Cpath fill='%23fff' d='M8 2h1v1h-1zM8 3h2v1h-2zM4 4h7v1h-7zM4 5h8v1h-8zM4 6h9v1h-9zM4 7h8v1h-8zM4 8h7v1h-7zM8 9h2v1h-2zM8 10h1v1h-1z'/%3E%3Cpath fill='%23000' d='M7 0h1v1h-1zM7 1h2v1h-2zM7 2h1v1h-1zM9 2h1v1h-1zM3 3h5v1h-5zM10 3h1v1h-1zM3 4h1v1h-1zM11 4h1v1h-1zM3 5h1v1h-1zM12 5h1v1h-1zM3 6h1v1h-1zM13 6h1v1h-1zM3 7h1v1h-1zM12 7h1v1h-1zM3 8h1v1h-1zM11 8h1v1h-1zM3 9h5v1h-5zM10 9h1v1h-1zM7 10h1v1h-1zM9 10h1v1h-1zM7 11h2v1h-2zM7 12h1v1h-1z'/%3E%3C/svg%3E");
538
+ --clio-art-s6-right-on: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' shape-rendering='crispEdges'%3E%3Cpath fill='%23000' d='M7 0h1v1h-1zM7 1h2v1h-2zM7 2h3v1h-3zM3 3h8v1h-8zM3 4h9v1h-9zM3 5h10v1h-10zM3 6h10v1h-10zM3 7h10v1h-10zM3 8h9v1h-9zM3 9h8v1h-8zM7 10h3v1h-3zM7 11h2v1h-2zM7 12h1v1h-1z'/%3E%3C/svg%3E");
269
539
  --clio-art-s6-burst: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='11' shape-rendering='crispEdges'%3E%3Cpath fill='%23000' d='M5 1h1v1h-1zM2 2h1v1h-1zM5 2h1v1h-1zM8 2h1v1h-1zM3 3h1v1h-1zM5 3h1v1h-1zM7 3h1v1h-1zM1 5h3v1h-3zM5 5h1v1h-1zM7 5h3v1h-3zM3 7h1v1h-1zM5 7h1v1h-1zM7 7h1v1h-1zM2 8h1v1h-1zM5 8h1v1h-1zM8 8h1v1h-1zM5 9h1v1h-1z'/%3E%3C/svg%3E");
270
540
  --clio-art-s6-ltgray: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='2' shape-rendering='crispEdges'%3E%3Cpath fill='%23000' d='M0 0h1v1h-1zM2 1h1v1h-1z'/%3E%3Cpath fill='%23fff' d='M1 0h3v1h-3zM0 1h2v1h-2zM3 1h1v1h-1z'/%3E%3C/svg%3E");
271
541
  --clio-art-s6-grow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' shape-rendering='crispEdges'%3E%3Cpath fill='%23000' d='M2 2h7v1h-7zM2 3h1v1h-1zM8 3h1v1h-1zM2 4h1v1h-1zM8 4h5v1h-5zM2 5h1v1h-1zM8 5h1v1h-1zM12 5h1v1h-1zM2 6h1v1h-1zM8 6h1v1h-1zM12 6h1v1h-1zM2 7h1v1h-1zM8 7h1v1h-1zM12 7h1v1h-1zM2 8h7v1h-7zM12 8h1v1h-1zM4 9h1v1h-1zM12 9h1v1h-1zM4 10h1v1h-1zM12 10h1v1h-1zM4 11h1v1h-1zM12 11h1v1h-1zM4 12h9v1h-9z'/%3E%3C/svg%3E");
542
+ --clio-art-s6-dkgray: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='2' shape-rendering='crispEdges'%3E%3Cpath fill='%23000' d='M0 0h1v1h-1zM2 0h2v1h-2zM0 1h3v1h-3z'/%3E%3Cpath fill='%23fff' d='M1 0h1v1h-1zM3 1h1v1h-1z'/%3E%3C/svg%3E");
272
543
  --clio-art-s6-menucheck: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='8' shape-rendering='crispEdges'%3E%3Cpath fill='%23000' d='M8 0h1v1h-1zM7 1h2v1h-2zM6 2h2v1h-2zM5 3h2v1h-2zM0 4h1v1h-1zM4 4h2v1h-2zM0 5h2v1h-2zM3 5h2v1h-2zM1 6h3v1h-3zM2 7h1v1h-1z'/%3E%3C/svg%3E");
544
+ /* Frames cut from captures by tooling/frame-art.py. */
545
+ --clio-art-frame-s6-button: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJAgMAAACd/+6DAAAACVBMVEUAAAAAAAD///+D3c/SAAAAAXRSTlMAQObYZgAAACpJREFUeJxjYAxgYBINZWBiYWFgCmB0YGJgYABhBqmVDEx//jAwMAYwAAA66QRtNyAoFwAAAABJRU5ErkJggg==");
546
+ --clio-art-frame-s6-button-held: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJAQMAAADaX5RTAAAABlBMVEUAAAAAAAClZ7nPAAAAAXRSTlMAQObYZgAAAB1JREFUeJxjkGFgSmZgYmBg/N/IxABiMNSDSRkGACm1Aqb7EOVpAAAAAElFTkSuQmCC");
547
+ --clio-art-frame-s6-ring: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPAQMAAAABGAcJAAAABlBMVEUAAAAAAAClZ7nPAAAAAXRSTlMAQObYZgAAADRJREFUeJxjYD/AIP+BSYGDsYaB5csahg9yTB8+MDEwgJCAAFPDPyaeBAb7H0wPfjCwHwAAEpMM/gNXK+MAAAAASUVORK5CYII=");
548
+ --clio-art-frame-p9-button: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJBAMAAAASvxsjAAAAGFBMVEUAAAAAAAB3d3fd3d27u7uqqqoiIiL///+EaqngAAAAAXRSTlMAQObYZgAAADxJREFUeJxjYEgUTGBgYnyk9JCBMUWYYa8O03qGPXIbmBj+MDAwMIERY8pFhbN2jIyOD/7fZ/ov/96eAQBghg8JraaOFgAAAABJRU5ErkJggg==");
549
+ --clio-art-frame-p9-button-held: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJBAMAAAASvxsjAAAAGFBMVEUAAAAAAAB3d3dVVVVmZmYiIiKIiIhEREQ39d/AAAAAAXRSTlMAQObYZgAAAD9JREFUeJxjYAgUDGBgYVRT+8XAGC5zgJ+PUVxG8NErJgZGBgYGJgaGfwwMLA6vH7i8YmRUdfg9n+m/9ur3DAAxwg5nPuolSwAAAABJRU5ErkJggg==");
550
+ --clio-art-frame-p9-ring: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAANBAMAAACAxflPAAAAG1BMVEUAAAAAAAB3d3fd3d3MzMy7u7uqqqoiIiKIiIhznn7oAAAAAXRSTlMAQObYZgAAAFpJREFUeJxjZGDnYmB7ycDCwKPAwPjzAwujgjEDg+x6xuLDrx6oOXEwCCcxMDAlCTAx/GMAISYGCEDQTGAOUyKLAoOKQgIjY6gAA9PO+4wMElwMDO8+MELNBwCaGBDQEM8mggAAAABJRU5ErkJggg==");
551
+ --clio-art-frame-p9-button-disabled: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJAgMAAACd/+6DAAAACVBMVEUAAACIiIjd3d2RXqmqAAAAAXRSTlMAQObYZgAAACFJREFUeJxjYA1hYBINZWAKYHRgYmBgQMYMUisZGFhDGAAtsQJ9dgAT/gAAAABJRU5ErkJggg==");
552
+ --clio-art-frame-p9-popup: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHBAMAAAA2fErgAAAAGFBMVEUAAAAAAAB3d3fd3d27u7uqqqoiIiL///+EaqngAAAAAXRSTlMAQObYZgAAACtJREFUeJxjYEhMYGBi5H/IwJh+klWbQYCBQYAl/OQnOwbGAEUGpv+C9gwAea0HTcaLsPwAAAAASUVORK5CYII=");
553
+ --clio-art-frame-p9-popup-disabled: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHAgMAAAC5PL9AAAAACVBMVEUAAACIiIjd3d2RXqmqAAAAAXRSTlMAQObYZgAAAB1JREFUeJxjZLVmEg5gChBhcGBh0ljAtOENI6s1ACDmA/qjrWTUAAAAAElFTkSuQmCC");
554
+ --clio-art-s6-gray50: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='2' height='2' shape-rendering='crispEdges'%3E%3Cpath d='M1 0h1v1H1zM0 1h1v1H0z'/%3E%3C/svg%3E");
273
555
  --clio-art-s6-menucheck-on: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='8' shape-rendering='crispEdges'%3E%3Cpath fill='%23fff' d='M8 0h1v1h-1zM7 1h2v1h-2zM6 2h2v1h-2zM5 3h2v1h-2zM0 4h1v1h-1zM4 4h2v1h-2zM0 5h2v1h-2zM3 5h2v1h-2zM1 6h3v1h-3zM2 7h1v1h-1z'/%3E%3C/svg%3E");
556
+ --clio-art-s6-strip-cap: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='24' shape-rendering='crispEdges'%3E%3Cpath fill='%23fff' d='M1 1h13v22H1z'/%3E%3Cpath d='M0 0h15v1H0zM0 23h15v1H0zM0 1h1v22H0zM14 1h1v22h-1zM3 8h8v1H3zM3 15h8v1H3zM3 9h1v6H3zM10 9h1v6h-1z'/%3E%3C/svg%3E");
557
+ --clio-art-s6-strip-back: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' shape-rendering='crispEdges'%3E%3Cpath d='M4 1h1v8H4zM3 2h1v6H3zM2 3h1v4H2zM1 4h1v2H1z'/%3E%3C/svg%3E");
558
+ --clio-art-s6-strip-forward: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' shape-rendering='crispEdges'%3E%3Cpath d='M5 1h1v8H5zM6 2h1v6H6zM7 3h1v4H7zM8 4h1v2H8z'/%3E%3C/svg%3E");
559
+ --clio-art-s6-strip-menu: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='7' shape-rendering='crispEdges'%3E%3Cpath d='M0 0h1v7H0zM1 1h1v5H1zM2 2h1v3H2zM3 3h1v1H3z'/%3E%3C/svg%3E");
560
+ --clio-art-s6-strip-handle: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='24' shape-rendering='crispEdges'%3E%3Cpath fill='%23fff' d='M0 1h9l8 8v6l-8 8H0z'/%3E%3Cpath d='M0 0h10v1H0zM10 1h1v1h-1zM11 2h1v1h-1zM12 3h1v1h-1zM13 4h1v1h-1zM14 5h1v1h-1zM15 6h1v1h-1zM16 7h1v1h-1zM17 8h1v8h-1zM16 16h1v1h-1zM15 17h1v1h-1zM14 18h1v1h-1zM13 19h1v1h-1zM12 20h1v1h-1zM11 21h1v1h-1zM10 22h1v1h-1zM0 23h10v1H0zM5 6h1v1H5zM5 9h1v1H5zM5 12h1v1H5zM5 15h1v1H5zM5 18h1v1H5z'/%3E%3C/svg%3E");
561
+ --clio-art-s6-strip-tab: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='24' shape-rendering='crispEdges'%3E%3Cpath fill='%23fff' d='M0 1h9l8 8v6l-8 8H0z'/%3E%3Cpath d='M0 0h10v1H0zM10 1h1v1h-1zM11 2h1v1h-1zM12 3h1v1h-1zM13 4h1v1h-1zM14 5h1v1h-1zM15 6h1v1h-1zM16 7h1v1h-1zM17 8h1v8h-1zM16 16h1v1h-1zM15 17h1v1h-1zM14 18h1v1h-1zM13 19h1v1h-1zM12 20h1v1h-1zM11 21h1v1h-1zM10 22h1v1h-1zM0 23h10v1H0zM5 6h1v1H5zM5 9h1v1H5zM5 12h1v1H5zM5 15h1v1H5zM5 18h1v1H5z'/%3E%3C/svg%3E");
274
562
  }
275
563
 
276
564
  /* Base. clio.css styles elements only inside its own components, plus bare
@@ -294,7 +582,7 @@
294
582
  font-stretch: var(--clio-font-stretch-text);
295
583
  font-synthesis: none;
296
584
  line-height: 16px;
297
- -webkit-font-smoothing: auto;
585
+ -webkit-font-smoothing: var(--clio-font-smoothing);
298
586
  }
299
587
 
300
588
  :where(.window, .modal-dialog, .alert-box, .standard-dialog, .modeless-dialog, .clio) *,
@@ -304,9 +592,10 @@
304
592
  }
305
593
 
306
594
  /* Application text (Geneva role) for content areas. */
307
- :where(.window-pane, .modal-contents, .alert-contents, .text) {
595
+ :where(.window-pane, .modal-contents, .alert-contents, .text, .details-bar, .listbox, [role="listbox"], .status-bar, .icon, input, textarea) {
308
596
  font-family: var(--clio-font-text);
309
597
  font-stretch: var(--clio-font-stretch-text);
598
+ -webkit-font-smoothing: var(--clio-text-smoothing);
310
599
  }
311
600
 
312
601
  :where(.window, .modal-dialog, .alert-box, .standard-dialog, .clio) :where(h1, h2, h3, h4, .heading) {
@@ -317,6 +606,11 @@
317
606
  line-height: 16px;
318
607
  }
319
608
 
609
+ :where(.display) {
610
+ font-family: var(--clio-font-display);
611
+ -webkit-font-smoothing: auto;
612
+ }
613
+
320
614
  :where(.window, .modal-dialog, .alert-box, .standard-dialog, .clio) :where(p) {
321
615
  margin: 0 0 8px;
322
616
  }
@@ -431,7 +725,7 @@
431
725
  overflow: hidden;
432
726
  background: var(--clio-title-bg);
433
727
  color: var(--clio-title-fg);
434
- font-family: var(--clio-font-chrome);
728
+ font-family: var(--clio-font-window-title, var(--clio-font-chrome));
435
729
  font-size: var(--clio-title-font-size);
436
730
  font-stretch: var(--clio-font-stretch-title);
437
731
  font-weight: var(--clio-chrome-weight);
@@ -551,7 +845,7 @@
551
845
  border-bottom: var(--clio-details-border);
552
846
  background: var(--clio-details-bg);
553
847
  box-shadow: var(--clio-details-shadow, none);
554
- font-family: var(--clio-font-text);
848
+ font-family: var(--clio-font-small);
555
849
  font-size: var(--clio-details-font-size);
556
850
  line-height: var(--clio-details-height);
557
851
  white-space: nowrap;
@@ -570,7 +864,7 @@
570
864
  padding: 1px 8px;
571
865
  border-top: var(--clio-border);
572
866
  background: var(--clio-details-bg);
573
- font-family: var(--clio-font-text);
867
+ font-family: var(--clio-font-small);
574
868
  font-size: var(--clio-font-size-small);
575
869
  line-height: 14px;
576
870
  }
@@ -727,6 +1021,12 @@
727
1021
  :where(.menu, [role="menu"]) > li:is(.disabled, [aria-disabled="true"]),
728
1022
  :where(.menu, [role="menu"]) > li > :is(a, button):is(:disabled, [aria-disabled="true"]) {
729
1023
  color: var(--clio-disabled);
1024
+ background-image: var(--clio-disabled-dither);
1025
+ background-size: 2px 2px;
1026
+ background-attachment: fixed;
1027
+ -webkit-background-clip: text;
1028
+ background-clip: text;
1029
+ -webkit-text-fill-color: var(--clio-disabled-fill);
730
1030
  }
731
1031
 
732
1032
  /* Keyboard shortcut column, right-aligned. */
@@ -806,11 +1106,13 @@
806
1106
  border-radius: var(--clio-button-radius);
807
1107
  background: var(--clio-button-bg);
808
1108
  box-shadow: var(--clio-button-shadow);
1109
+ border-image: var(--clio-button-frame) var(--clio-button-frame-slice) fill / calc(var(--clio-button-frame-slice) * 1px) stretch;
809
1110
  color: var(--clio-button-fg);
810
1111
  font-family: var(--clio-font-chrome);
811
1112
  font-size: var(--clio-font-size);
812
1113
  font-stretch: var(--clio-font-stretch-text);
813
1114
  font-weight: var(--clio-button-weight);
1115
+ -webkit-font-smoothing: var(--clio-font-smoothing);
814
1116
  line-height: 14px;
815
1117
  text-align: center;
816
1118
  text-decoration: none;
@@ -825,22 +1127,41 @@
825
1127
  :where(button, .btn, .btn-default, .standard-button, input[type="button"], input[type="submit"], input[type="reset"]):not(:disabled, .disabled):is(:active, .active) {
826
1128
  background: var(--clio-button-active-bg);
827
1129
  box-shadow: var(--clio-button-active-shadow);
1130
+ border-image-source: var(--clio-button-frame-held);
828
1131
  color: var(--clio-button-active-fg);
829
1132
  }
830
1133
 
831
- /* Default button: the ring that says Return will press it. */
1134
+ /* Default button: the ring that says Return will press it. Drawn as its own
1135
+ rounded rectangle (Inside Macintosh: PenSize(3,3), InsetRect(-4,-4),
1136
+ FrameRoundRect(16,16)), so its corners do not follow the button's. */
832
1137
  :where(.default, .btn-default, button[type="submit"].default) {
1138
+ position: relative;
833
1139
  border-radius: var(--clio-button-radius);
834
- box-shadow: var(--clio-button-shadow), var(--clio-button-default-ring);
835
1140
  }
836
1141
 
837
- :where(.default, .btn-default):not(:disabled, .disabled):is(:active, .active) {
838
- box-shadow: var(--clio-button-active-shadow), var(--clio-button-default-ring);
1142
+ :where(.default, .btn-default)::before {
1143
+ content: "";
1144
+ position: absolute;
1145
+ inset: calc(-1px - var(--clio-button-default-gap) - var(--clio-button-default-width));
1146
+ border: var(--clio-button-default-width) solid var(--clio-ink);
1147
+ border-radius: var(--clio-button-default-radius);
1148
+ border-image: var(--clio-ring-frame) var(--clio-ring-frame-slice) / calc(var(--clio-ring-frame-slice) * 1px) stretch;
1149
+ pointer-events: none;
839
1150
  }
840
1151
 
841
1152
  :where(button, .btn, .btn-default, .standard-button, input[type="button"], input[type="submit"], input[type="reset"]):is(:disabled, .disabled) {
842
1153
  border: var(--clio-button-disabled-border);
843
1154
  color: var(--clio-button-disabled-fg);
1155
+ /* System 6: the label through the 50% pattern, the frame left solid. */
1156
+ background-image: var(--clio-disabled-dither), linear-gradient(var(--clio-button-bg), var(--clio-button-bg));
1157
+ background-size: 2px 2px, auto;
1158
+ background-attachment: fixed, scroll;
1159
+ -webkit-background-clip: text, border-box;
1160
+ background-clip: text, border-box;
1161
+ -webkit-text-fill-color: var(--clio-disabled-fill);
1162
+ /* The frame without its face, so the dimmed label shows through. */
1163
+ border-image-source: var(--clio-button-frame-disabled, var(--clio-button-frame));
1164
+ border-image-slice: var(--clio-button-frame-slice);
844
1165
  }
845
1166
 
846
1167
  :where(button, .btn, .btn-default, .standard-button, input[type="button"], input[type="submit"], input[type="reset"]):focus-visible {
@@ -936,6 +1257,12 @@
936
1257
  :where(input[type="checkbox"], input[type="radio"]):disabled + label,
937
1258
  :where(label):has(> :is(input[type="checkbox"], input[type="radio"]):disabled) {
938
1259
  color: var(--clio-disabled);
1260
+ background-image: var(--clio-disabled-dither);
1261
+ background-size: 2px 2px;
1262
+ background-attachment: fixed;
1263
+ -webkit-background-clip: text;
1264
+ background-clip: text;
1265
+ -webkit-text-fill-color: var(--clio-disabled-fill);
939
1266
  }
940
1267
 
941
1268
  /* ---- Text fields ---------------------------------------------------------- */
@@ -988,18 +1315,20 @@
988
1315
  /* ---- Pop-up menus (select) ------------------------------------------------ */
989
1316
  :where(select) {
990
1317
  box-sizing: border-box;
991
- min-height: var(--clio-control-height);
1318
+ min-height: var(--clio-popup-height, var(--clio-control-height));
992
1319
  margin: 0;
993
1320
  padding: var(--clio-popup-padding);
994
1321
  border: var(--clio-popup-border);
995
1322
  border-radius: var(--clio-popup-radius);
996
1323
  background: var(--clio-popup-arrow), var(--clio-popup-bg);
997
1324
  box-shadow: var(--clio-popup-shadow);
1325
+ border-image: var(--clio-popup-frame) var(--clio-popup-frame-slice) / calc(var(--clio-popup-frame-slice) * 1px) stretch;
998
1326
  color: var(--clio-ink);
999
1327
  font-family: var(--clio-font-chrome);
1000
1328
  font-size: var(--clio-font-size);
1001
1329
  font-stretch: var(--clio-font-stretch-text);
1002
1330
  font-weight: var(--clio-popup-weight);
1331
+ -webkit-font-smoothing: var(--clio-font-smoothing);
1003
1332
  line-height: 16px;
1004
1333
  appearance: none;
1005
1334
  -webkit-appearance: none;
@@ -1174,7 +1503,7 @@
1174
1503
  background: none;
1175
1504
  box-shadow: none;
1176
1505
  color: var(--clio-ink);
1177
- font-family: var(--clio-font-text);
1506
+ font-family: var(--clio-font-small);
1178
1507
  font-size: var(--clio-font-size-small);
1179
1508
  text-align: center;
1180
1509
  cursor: default;
@@ -1280,7 +1609,7 @@
1280
1609
  border-radius: 6px;
1281
1610
  background: var(--clio-paper);
1282
1611
  color: var(--clio-ink);
1283
- font: 700 22px/28px var(--clio-font-chrome);
1612
+ font: 700 22px/28px var(--clio-font-display);
1284
1613
  text-align: center;
1285
1614
  }
1286
1615
 
@@ -1418,6 +1747,189 @@
1418
1747
  }
1419
1748
  }
1420
1749
 
1750
+ /* Control Strip (System 7.5 to Mac OS 9): a row of module buttons with scroll
1751
+ arrows and a tab that folds the strip away. Markup follows AI System 6:
1752
+ .control-strip > button.control-strip-scroll.control-strip-scroll-back,
1753
+ .control-strip-modules[role=toolbar] > .control-strip-module-track >
1754
+ button.control-strip-module (an icon inside; aria-haspopup="menu" draws the
1755
+ menu triangle), button.control-strip-scroll.control-strip-scroll-forward,
1756
+ button.control-strip-handle. Add .is-collapsed to fold it to the tab, and
1757
+ data-edge="right" for a strip on the right edge. Placement is yours
1758
+ (AI System 6 fixes it to the screen's lower left). */
1759
+ /* The strip's art is the same in System 7.5.3, Mac OS 8.5 and Mac OS 9.0
1760
+ (compared pixel for pixel with the backdrop removed); only the cell colours
1761
+ differ, so it lives here for every era. Redrawn by tooling/p9-art.py. */
1762
+ :root {
1763
+ --clio-art-p9-strip-cap: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAYBAMAAADXK7paAAAAHlBMVEUAAAAAAABERERVVVWAgICIiIigoKDAwMDMzP/////+VYXkAAAAAXRSTlMAQObYZgAAAGlJREFUeJxjFGQAg/8sbAlgxkwWBiUQfZuBheHfAwYGhg8MTBAlDPgYLAx/9jAwsOgysDAwhDIw/L8LYvy98NcVry4mBoa/Zy+AtTOwlzP8AzFY3r0jYBfC0l/3P4AZjILMBiD6DCPMOwBKOxgiile5lQAAAABJRU5ErkJggg==");
1764
+ --clio-art-s7-strip-cap: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAYBAMAAADXK7paAAAAG1BMVEUAAAAAAABERERVVVWIiIiqqqrMzMzMzP/////JRvoVAAAAAXRSTlMAQObYZgAAAGVJREFUeJxjFGQAg/8srAFgxioWBiUQfYeBheHfAwYGhg8MTBAlDPgYLAx/zzIwMMsxsDAwuDAw/L8HYvy98M+FgC6Gf/egDLY0hn8gBvO7dwTsQmj/ff8DmMEoyGwAos8wwrwDAP+1F0dci98qAAAAAElFTkSuQmCC");
1765
+ --clio-art-p9-strip-back: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKAgMAAADwXCcuAAAACVBMVEUAAABVVVXd3d2apXz3AAAAAXRSTlMAQObYZgAAACxJREFUeJwFwaERwCAABLD0j3oE7IPBs/8KrcBjSKhiKM/cebs0gvzkfFioLlg9BPcTGNP4AAAAAElFTkSuQmCC");
1766
+ --clio-art-p9-strip-forward: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKAgMAAADwXCcuAAAACVBMVEUAAABVVVXd3d2apXz3AAAAAXRSTlMAQObYZgAAAC1JREFUeJwFwSESABAUQMHnzegC9/nFqRX3IegCuxBIwVYxdySFgLzpHbg2cvhWkAdTrBZiqwAAAABJRU5ErkJggg==");
1767
+ --clio-art-p9-strip-menu: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAHAQMAAAAVq36TAAAABlBMVEUAAAAAAAClZ7nPAAAAAXRSTlMAQObYZgAAABZJREFUeJxjaGA4wPCA4QMTA9MHpgcAIQYE58W2/JQAAAAASUVORK5CYII=");
1768
+ --clio-art-p9-strip-handle: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAYBAMAAAAFe7ACAAAAFVBMVEUAAAAAAABERERVVVWIiIjMzMz///8V67gPAAAAAXRSTlMAQObYZgAAAINJREFUeJxVz7ENAjEMheE/IbQokRiAUVJQUjAs5RXZhJvgkp6LjGwfBU309PzFkkMBZAApVVgAIqWUZ9bORsE6fWvWJCukoIlbtjICG0sK5iLnVrM7Hqefsy3qPKnzZM6n/+41D/epbbi772IOaOPYsIv/sIrEG6YA4XqB3vWO2UErvmVcJ4BylohjAAAAAElFTkSuQmCC");
1769
+ --clio-art-p9-strip-tab: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAYBAMAAAAFe7ACAAAAFVBMVEUAAAAAAABERERVVVWIiIjMzMz///8V67gPAAAAAXRSTlMAQObYZgAAAIFJREFUeJxVz7ENAjEMQNHvKPS+DRiBEVJQMi49WeAkRrgJSHoijOyEgipf1pPlyAbQgMwVxqN7iYIACVprRaMUskS9gKJeSWKYADtGLRruzC3Lcqd6WW7uw45V7ma5m/Xv3uW53H3YdLnU7g4YFg9Q+6phfv2nw95BNlGsRf1++QW6eCj9rQPMHAAAAABJRU5ErkJggg==");
1770
+ }
1771
+
1772
+ :where(.control-strip) {
1773
+ display: inline-flex;
1774
+ align-items: stretch;
1775
+ height: var(--clio-strip-height);
1776
+ max-width: 100%;
1777
+ vertical-align: bottom;
1778
+ user-select: none;
1779
+ -webkit-user-select: none;
1780
+ }
1781
+
1782
+ /* The end cap, then every cell: one bevelled box between 1px lines. */
1783
+ :where(.control-strip)::before,
1784
+ :where(.control-strip) > :is(.control-strip-scroll, .control-strip-modules),
1785
+ :where(.control-strip-module) {
1786
+ box-sizing: border-box;
1787
+ border: var(--clio-strip-line);
1788
+ border-left: 0;
1789
+ background: var(--clio-strip-bg);
1790
+ box-shadow: var(--clio-strip-cell-shadow);
1791
+ }
1792
+
1793
+ /* The end cap is one picture: frame, bevel, icon and the rounded lower-left corner. */
1794
+ :where(.control-strip)::before {
1795
+ content: "";
1796
+ flex: none;
1797
+ width: calc(var(--clio-strip-cap-width) + 2px);
1798
+ border: 0;
1799
+ background: var(--clio-strip-cap) 0 0 / 100% 100% no-repeat;
1800
+ box-shadow: none;
1801
+ }
1802
+
1803
+ :where(.control-strip) > :is(.control-strip-scroll, .control-strip-handle) {
1804
+ flex: none;
1805
+ margin: 0;
1806
+ padding: 0;
1807
+ border-radius: 0;
1808
+ appearance: none;
1809
+ -webkit-appearance: none;
1810
+ cursor: default;
1811
+ }
1812
+
1813
+ /* Scroll arrows: 13px cells, sunken and hollow while there is nothing to scroll. */
1814
+ :where(.control-strip) > .control-strip-scroll {
1815
+ width: calc(var(--clio-strip-scroll-width) + 1px);
1816
+ min-width: 0;
1817
+ height: auto;
1818
+ min-height: 0;
1819
+ background: var(--clio-strip-back) 1px 6px / 10px 10px no-repeat, var(--clio-strip-bg);
1820
+ box-shadow: var(--clio-strip-cell-shadow);
1821
+ }
1822
+
1823
+ :where(.control-strip) > .control-strip-scroll-forward {
1824
+ background-image: var(--clio-strip-forward);
1825
+ }
1826
+
1827
+ :where(.control-strip) > .control-strip-scroll:disabled {
1828
+ background:
1829
+ var(--clio-strip-back) 1px 6px / 10px 10px no-repeat,
1830
+ var(--clio-strip-sunken-lines),
1831
+ var(--clio-strip-bg);
1832
+ box-shadow: var(--clio-strip-sunken-shadow);
1833
+ }
1834
+
1835
+ :where(.control-strip) > .control-strip-scroll-forward:disabled {
1836
+ background-image: var(--clio-strip-forward);
1837
+ }
1838
+
1839
+ :where(.control-strip) > .control-strip-scroll:not(:disabled):active,
1840
+ :where(.control-strip-module):not(:disabled):is(:active, [aria-expanded="true"]) {
1841
+ background-color: var(--clio-strip-pressed-bg);
1842
+ box-shadow: var(--clio-strip-pressed-shadow);
1843
+ }
1844
+
1845
+ :where(.control-strip-modules) {
1846
+ display: flex;
1847
+ min-width: 0;
1848
+ overflow: hidden;
1849
+ border: 0;
1850
+ background: none;
1851
+ box-shadow: none;
1852
+ }
1853
+
1854
+ :where(.control-strip-module-track) {
1855
+ display: flex;
1856
+ }
1857
+
1858
+ /* A module: the 16px icon 2px in, the menu triangle 3px from the right. */
1859
+ :where(.control-strip-module) {
1860
+ position: relative;
1861
+ display: flex;
1862
+ flex: none;
1863
+ align-items: center;
1864
+ width: calc(var(--clio-strip-module-width) + 1px);
1865
+ min-width: 0;
1866
+ height: var(--clio-strip-height);
1867
+ min-height: 0;
1868
+ margin: 0;
1869
+ padding: 0 0 0 var(--clio-strip-icon-inset);
1870
+ border-radius: 0;
1871
+ color: var(--clio-ink);
1872
+ appearance: none;
1873
+ -webkit-appearance: none;
1874
+ cursor: default;
1875
+ }
1876
+
1877
+ :where(.control-strip-module) > :is(svg, img, .sys-icon) {
1878
+ width: 16px;
1879
+ height: 16px;
1880
+ }
1881
+
1882
+ :where(.control-strip-module)[aria-haspopup]::after {
1883
+ content: "";
1884
+ position: absolute;
1885
+ top: var(--clio-strip-menu-top);
1886
+ right: calc(var(--clio-strip-menu-inset) + 1px);
1887
+ width: 4px;
1888
+ height: 7px;
1889
+ background: var(--clio-strip-menu) 0 0 / 4px 7px no-repeat;
1890
+ }
1891
+
1892
+ :where(.control-strip-module):disabled {
1893
+ color: var(--clio-disabled);
1894
+ opacity: 0.5;
1895
+ }
1896
+
1897
+ /* The tab: open, a slanted end with a grip; folded, the strip shrinks to it. */
1898
+ :where(.control-strip) > .control-strip-handle {
1899
+ width: var(--clio-strip-handle-width);
1900
+ min-width: 0;
1901
+ height: var(--clio-strip-height);
1902
+ min-height: 0;
1903
+ border: 0;
1904
+ background: var(--clio-strip-handle) 0 0 / 100% 100% no-repeat;
1905
+ box-shadow: none;
1906
+ }
1907
+
1908
+ :where(.control-strip.is-collapsed)::before,
1909
+ :where(.control-strip.is-collapsed) > :not(.control-strip-handle) {
1910
+ display: none;
1911
+ }
1912
+
1913
+ :where(.control-strip.is-collapsed) > .control-strip-handle {
1914
+ width: var(--clio-strip-tab-width);
1915
+ background-image: var(--clio-strip-tab);
1916
+ }
1917
+
1918
+ :where(.control-strip)[data-edge="right"] {
1919
+ flex-direction: row-reverse;
1920
+ }
1921
+
1922
+ :where(.control-strip)[data-edge="right"]::before,
1923
+ :where(.control-strip)[data-edge="right"] > .control-strip-handle {
1924
+ transform: scaleX(-1);
1925
+ }
1926
+
1927
+ :where(.control-strip) > :focus-visible,
1928
+ :where(.control-strip-module):focus-visible {
1929
+ outline: var(--clio-focus-outline);
1930
+ outline-offset: -3px;
1931
+ }
1932
+
1421
1933
  /* Mac OS 8/9 Platinum. Applies inside any element with data-era="platinum"
1422
1934
  (put it on <html> for a whole page). clio.platinum.css is a build of this
1423
1935
  same file with Platinum as the page default.
@@ -1429,14 +1941,31 @@
1429
1941
  --clio-paper: #dddddd;
1430
1942
  --clio-face: #dddddd;
1431
1943
  --clio-disabled: #6f6f6f;
1944
+ --clio-disabled-dither: none;
1945
+ /* Push button, disabled button and default ring: the real pixel frames
1946
+ (tooling/frame-art.py: Mac OS 9.0 Appearance and GUIdebook's Mac OS 9.0). */
1947
+ --clio-button-frame: var(--clio-art-frame-p9-button);
1948
+ --clio-button-frame-held: var(--clio-art-frame-p9-button-held);
1949
+ --clio-button-frame-disabled: var(--clio-art-frame-p9-button-disabled);
1950
+ --clio-ring-frame: var(--clio-art-frame-p9-ring);
1951
+ --clio-ring-frame-slice: 6;
1952
+ --clio-disabled-fill: currentcolor;
1432
1953
  --clio-selection-bg: #ccccff;
1433
1954
  --clio-selection-fg: #000000;
1434
1955
 
1435
- /* Charcoal if the visitor has it; Geneva for text on a Mac; Asap (OFL) at
1436
- the widths AI System 6 measured against Charcoal everywhere else. */
1437
- --clio-font-chrome: Charcoal, "Charcoal CY", "Clio Asap", Geneva, "Helvetica Neue", Arial, sans-serif;
1956
+ /* Charcoal if the visitor has it, else Clio Sans '97 (Charcoal 12 rebuilt
1957
+ from Mac OS 9.0), drawn without smoothing like the bitmap it is; Asap
1958
+ (OFL) at the widths AI System 6 measured against Charcoal as the last
1959
+ fallback; Geneva for text on a Mac. */
1960
+ --clio-font-chrome: Charcoal, "Charcoal CY", "Clio Sans '97", "Clio Asap", Geneva, "Helvetica Neue", Arial, sans-serif;
1961
+ --clio-font-display: Charcoal, "Charcoal CY", "Clio Sans '97 Display", "Clio Asap", "Helvetica Neue", Arial, sans-serif;
1962
+ --clio-font-window-title: Charcoal, "Charcoal CY", "Clio Sans '97 Title Exact", "Clio Sans '97 Title", "Clio Sans '97", "Clio Asap", Geneva, "Helvetica Neue", Arial, sans-serif;
1963
+ --clio-font-button: Charcoal, "Charcoal CY", "Clio Sans '97 Exact", "Clio Sans '97", "Clio Asap", Geneva, "Helvetica Neue", Arial, sans-serif;
1438
1964
  --clio-font-text: Geneva, "Clio Asap", "Helvetica Neue", Arial, sans-serif;
1439
1965
  --clio-font-size: 12px;
1966
+ --clio-font-smoothing: none;
1967
+ --clio-text-smoothing: auto;
1968
+ --clio-font-small: var(--clio-font-text);
1440
1969
  --clio-font-size-small: 10px;
1441
1970
  --clio-chrome-weight: 700;
1442
1971
  --clio-font-stretch-text: 113%;
@@ -1455,12 +1984,9 @@
1455
1984
  --clio-window-bg: #cccccc;
1456
1985
  --clio-pane-bg: #dddddd;
1457
1986
  --clio-window-border: 1px solid #000000;
1458
- --clio-window-shadow:
1459
- 1px 1px 0 #000000,
1460
- inset 1px 0 0 #ffffff,
1461
- inset 0 1px 0 #ffffff,
1462
- inset -1px 0 0 #999999,
1463
- inset 0 -1px 0 #999999;
1987
+ /* The frame's white light and #999 shade are drawn as lines in the window's
1988
+ background (below), which leave the two odd corners in the frame grey. */
1989
+ --clio-window-shadow: 1px 1px 0 #000000;
1464
1990
  /* AI System 6 pads 5px because its pane has no border; here the pane draws
1465
1991
  the black content line itself, so the strip is 4px. */
1466
1992
  --clio-window-padding: 2px 4px 4px;
@@ -1504,40 +2030,43 @@
1504
2030
  --clio-menu-item-active-bg: #333399;
1505
2031
  --clio-menu-item-active-fg: #ffffff;
1506
2032
  --clio-menu-item-active-shadow: inset 1px 0 0 #6666cc, inset -1px 0 0 #000088;
2033
+ /* Separator: a 6px row, #888 on its third line and white on its fourth,
2034
+ across the menu's full width (Mac OS 9.0 Finder File menu). */
1507
2035
  --clio-menu-separator:
1508
- linear-gradient(#888888, #888888) 0 3px / 100% 1px no-repeat,
1509
- linear-gradient(#ffffff, #ffffff) 0 4px / 100% 1px no-repeat;
1510
- --clio-menu-separator-height: 8px;
2036
+ linear-gradient(#888888, #888888) 0 2px / 100% 1px no-repeat,
2037
+ linear-gradient(#ffffff, #ffffff) 0 3px / 100% 1px no-repeat;
2038
+ --clio-menu-separator-height: 6px;
1511
2039
 
1512
2040
  /* Push buttons: bevel, 3px corners (P29 pressed) */
1513
- --clio-button-bg: #dddddd;
2041
+ --clio-button-bg: transparent;
1514
2042
  --clio-button-fg: #000000;
1515
2043
  --clio-button-border: 1px solid #000000;
1516
2044
  --clio-button-radius: 3px;
1517
- --clio-button-shadow:
1518
- inset 1px 1px 0 #dddddd,
1519
- inset 2px 2px 0 #ffffff,
1520
- inset -1px -1px 0 #777777,
1521
- inset -2px -2px 0 #aaaaaa;
2045
+ --clio-button-shadow: none;
1522
2046
  --clio-button-padding: 0 10px;
1523
2047
  --clio-button-min-width: 58px;
1524
2048
  --clio-button-weight: 700;
1525
- --clio-button-active-bg: #666666;
2049
+ /* Held: the frame and its dark face cut from Mac OS 9.0 (frame-art.py). */
2050
+ --clio-button-active-bg: transparent;
1526
2051
  --clio-button-active-fg: #ffffff;
1527
- --clio-button-active-shadow:
1528
- inset 1px 1px 0 #444444,
1529
- inset 2px 2px 0 #555555,
1530
- inset -1px -1px 0 #888888,
1531
- inset -2px -2px 0 #777777;
2052
+ --clio-button-active-shadow: none;
1532
2053
  --clio-button-disabled-fg: #777777;
1533
2054
  --clio-button-disabled-border: 1px solid #888888;
1534
2055
 
1535
- /* Check boxes (classic-stylesheets check) and radio buttons */
2056
+ /* Check boxes and radio buttons: the mark and both radio states are redrawn
2057
+ from Mac OS 9.0's General Controls (tooling/p9-art.py). */
1536
2058
  --clio-check-size: 12px;
1537
- --clio-check-bg: #dddddd;
2059
+ /* The well's white light and #888 shade as lines that leave the odd corners
2060
+ in the face (an inset shadow would also paint over the check mark). */
2061
+ --clio-check-bg:
2062
+ linear-gradient(#ffffff, #ffffff) 0 0 / calc(100% - 1px) 1px no-repeat padding-box,
2063
+ linear-gradient(#ffffff, #ffffff) 0 0 / 1px calc(100% - 1px) no-repeat padding-box,
2064
+ linear-gradient(#888888, #888888) 1px 100% / calc(100% - 1px) 1px no-repeat padding-box,
2065
+ linear-gradient(#888888, #888888) 100% 1px / 1px calc(100% - 1px) no-repeat padding-box,
2066
+ #dddddd;
1538
2067
  --clio-check-border: 1px solid #000000;
1539
- --clio-check-shadow: inset -1px -1px 0 #888888, inset 1px 1px 0 #ffffff;
1540
- --clio-check-mark: var(--clio-art-p-check) center / 9px 8px no-repeat;
2068
+ --clio-check-shadow: none;
2069
+ --clio-check-mark: var(--clio-art-p9-check) 0 0 / 10px 10px no-repeat;
1541
2070
  --clio-check-mark-origin: padding-box;
1542
2071
  --clio-check-pressed-border-width: 1px;
1543
2072
 
@@ -1548,17 +2077,30 @@
1548
2077
  --clio-field-padding: 2px 3px;
1549
2078
  --clio-field-focus-shadow: -1px -1px 0 #888888, 1px 1px 0 #ffffff;
1550
2079
 
1551
- /* Pop-up menus (P31) */
2080
+ /* Pop-up menus, measured from Mac OS 9.0 (Appearance tab, "Apple platinum"):
2081
+ 20px, black frame, #ddd face with a white top line and #aaa foot; a #aaa
2082
+ divider 20px from the right, then a raised arrow box (white left and top,
2083
+ #aaa then #777 shade) with the 7x10 arrows 7px from the right, 4px down. */
1552
2084
  --clio-popup-bg: #dddddd;
1553
2085
  --clio-popup-border: 1px solid #000000;
1554
- --clio-popup-radius: 3px;
1555
- --clio-popup-shadow: inset 1px 1px #ffffff, inset -1px -1px #aaaaaa;
2086
+ --clio-popup-radius: 0;
2087
+ --clio-popup-frame: var(--clio-art-frame-p9-popup); /* the real corners */
2088
+ --clio-popup-shadow: none;
2089
+ --clio-popup-height: 20px;
1556
2090
  --clio-popup-padding: 0 28px 0 7px;
1557
2091
  --clio-popup-weight: 700;
1558
2092
  --clio-popup-arrow:
1559
- var(--clio-art-p-dropdown) right 6px center / 7px 10px no-repeat,
1560
- linear-gradient(#ffffff, #ffffff) right 18px top 1px / 1px calc(100% - 2px) no-repeat,
1561
- linear-gradient(#aaaaaa, #aaaaaa) right 19px top 0 / 1px 100% no-repeat;
2093
+ var(--clio-art-p-dropdown) right 7px top 4px / 7px 10px no-repeat,
2094
+ linear-gradient(#777777, #777777) right 0 top 1px / 1px calc(100% - 1px) no-repeat,
2095
+ linear-gradient(#777777, #777777) right 0 bottom 0 / 19px 1px no-repeat,
2096
+ linear-gradient(#aaaaaa, #aaaaaa) right 1px top 1px / 1px calc(100% - 2px) no-repeat,
2097
+ linear-gradient(#aaaaaa, #aaaaaa) right 1px bottom 1px / 17px 1px no-repeat,
2098
+ linear-gradient(#bbbbbb, #bbbbbb) right 19px bottom 0 / 1px 1px no-repeat,
2099
+ linear-gradient(#ffffff, #ffffff) right 18px top 1px / 1px calc(100% - 3px) no-repeat,
2100
+ linear-gradient(#ffffff, #ffffff) right 2px top 1px / 17px 1px no-repeat,
2101
+ linear-gradient(#aaaaaa, #aaaaaa) right 20px top 1px / 1px calc(100% - 1px) no-repeat,
2102
+ linear-gradient(#ffffff, #ffffff) left 0 top 0 / calc(100% - 21px) 1px no-repeat,
2103
+ linear-gradient(#aaaaaa, #aaaaaa) left 0 bottom 0 / calc(100% - 21px) 1px no-repeat;
1562
2104
 
1563
2105
  /* Scroll bars (P16, P17, P27) */
1564
2106
  --clio-scrollbar-size: 16px;
@@ -1608,8 +2150,11 @@
1608
2150
  --clio-list-border: 1px solid #000000;
1609
2151
  --clio-list-shadow: -1px -1px 0 #888888, 1px 1px 0 #ffffff;
1610
2152
  --clio-list-row: 16px;
1611
- --clio-group-border: 1px solid #888888;
1612
- --clio-group-shadow: inset 1px 1px 0 #ffffff, 1px 1px 0 #ffffff;
2153
+ /* Group box: a 1px line of #777 and #888 dots, the pattern aligned to the
2154
+ screen (#777 where x + y is even), no light (Mac OS 9.0 General Controls). */
2155
+ --clio-group-border: 1px solid transparent;
2156
+ --clio-group-shadow: none;
2157
+ --clio-art-p9-group-dots: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACAQMAAABIeJ9nAAAABlBMVEV3d3eIiIjxRXMlAAAADElEQVR4nGNwYHIAAAEIAIMYhovOAAAAAElFTkSuQmCC");
1613
2158
  --clio-progress-height: 12px;
1614
2159
  --clio-progress-bg: #bbbbbb;
1615
2160
  --clio-progress-border: 1px solid #000000;
@@ -1624,14 +2169,36 @@
1624
2169
  --clio-label-selected-fg: #ffffff;
1625
2170
  --clio-icon-selected-filter: brightness(0.5);
1626
2171
 
1627
- /* Art: pop-up arrow, check mark and submenu arrow from classic-stylesheets
1628
- (MIT, Niels Sonnich Poulsen); scroll arrows, grips and tabs drawn here
1629
- (tabs: tooling/tab-art.py). */
1630
- --clio-art-p-dropdown: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='7' height='10' shape-rendering='crispEdges'%3E%3Cpath d='M3 0h1v1H3zM2 1h3v1H2zM1 2h5v1H1zM0 3h7v1H0zM0 6h7v1H0zM1 7h5v1H1zM2 8h3v1H2zM3 9h1v1H3z'/%3E%3C/svg%3E");
1631
- --clio-art-p-dropdown-off: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='7' height='10' shape-rendering='crispEdges'%3E%3Cpath fill='%23888' d='M3 0h1v1H3zM2 1h3v1H2zM1 2h5v1H1zM0 3h7v1H0zM0 6h7v1H0zM1 7h5v1H1zM2 8h3v1H2zM3 9h1v1H3z'/%3E%3C/svg%3E");
1632
- --clio-art-p-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='8'%3E%3Cpath d='M0 5.5 2.5 8 9 1.5V0h-.5L3 5 1 3 .5 4.25Z' fill-rule='evenodd' shape-rendering='crispEdges'/%3E%3C/svg%3E");
1633
- --clio-art-p-submenu: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='6' height='11'%3E%3Cpath d='m0 0 6 5.5L0 11Z'/%3E%3C/svg%3E");
1634
- --clio-art-p-submenu-on: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='6' height='11'%3E%3Cpath fill='%23fff' d='m0 0 6 5.5L0 11Z'/%3E%3C/svg%3E");
2172
+ /* Control Strip, measured from Mac OS 9.0 (npm run capture:platinum, frames
2173
+ strip-expanded, strip-collapsed, strip-slider); Mac OS 8.5's is the same
2174
+ under Drawing Board. 24px: 1px black lines, #c0c0c0 cells with a white
2175
+ inner light, #a0a0a0 then #808080 shade; scroll cells sunken while idle. */
2176
+ --clio-strip-bg: #c0c0c0;
2177
+ --clio-strip-line: 1px solid #000000;
2178
+ --clio-strip-cell-shadow: inset -1px -1px 0 #808080, inset -2px -2px 0 #a0a0a0, inset 1px 1px 0 #c0c0c0, inset 2px 2px 0 #ffffff;
2179
+ --clio-strip-sunken-shadow: none;
2180
+ --clio-strip-sunken-lines:
2181
+ linear-gradient(#808080, #808080) 0 0 / calc(100% - 1px) 1px no-repeat,
2182
+ linear-gradient(#808080, #808080) 0 0 / 1px calc(100% - 1px) no-repeat,
2183
+ linear-gradient(#ffffff, #ffffff) 1px 100% / calc(100% - 1px) 1px no-repeat,
2184
+ linear-gradient(#ffffff, #ffffff) 100% 1px / 1px calc(100% - 1px) no-repeat;
2185
+ --clio-strip-pressed-bg: #808080;
2186
+ --clio-strip-pressed-shadow: inset 2px 2px 0 #404040, inset -2px -2px 0 #c0c0c0;
2187
+ --clio-strip-cap: var(--clio-art-p9-strip-cap);
2188
+ --clio-strip-back: var(--clio-art-p9-strip-back);
2189
+ --clio-strip-forward: var(--clio-art-p9-strip-forward);
2190
+ --clio-strip-menu: var(--clio-art-p9-strip-menu);
2191
+ --clio-strip-handle: var(--clio-art-p9-strip-handle);
2192
+ --clio-strip-tab: var(--clio-art-p9-strip-tab);
2193
+
2194
+ /* Art: pop-up arrow, menu check mark and submenu arrow redrawn from
2195
+ Mac OS 9.0 (tooling/p9-art.py, below); scroll arrows, grips and tabs drawn
2196
+ here (tabs: tooling/tab-art.py). */
2197
+ --clio-art-p-dropdown: var(--clio-art-p9-dropdown);
2198
+ --clio-art-p-dropdown-off: var(--clio-art-p9-dropdown-off);
2199
+ --clio-art-p-check: var(--clio-art-p9-menucheck);
2200
+ --clio-art-p-submenu: var(--clio-art-p9-submenu);
2201
+ --clio-art-p-submenu-on: var(--clio-art-p9-submenu-on);
1635
2202
  --clio-art-p-up: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' shape-rendering='crispEdges'%3E%3Cpath fill='%23000' d='M5 5h2v1h-2zM4 6h4v1h-4zM3 7h6v1h-6zM2 8h8v1h-8z'/%3E%3C/svg%3E");
1636
2203
  --clio-art-p-up-off: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' shape-rendering='crispEdges'%3E%3Cpath fill='%23888' d='M5 5h2v1h-2zM4 6h4v1h-4zM3 7h6v1h-6zM2 8h8v1h-8z'/%3E%3C/svg%3E");
1637
2204
  --clio-art-p-down: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' shape-rendering='crispEdges'%3E%3Cpath fill='%23000' d='M2 5h8v1h-8zM3 6h6v1h-6zM4 7h4v1h-4zM5 8h2v1h-2z'/%3E%3C/svg%3E");
@@ -1647,6 +2214,20 @@
1647
2214
  --clio-art-p-tab-pressed: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='33' height='24' shape-rendering='crispEdges'%3E%3Cpath fill='%23222' d='M11 3h1v1h-1zM9 4h1v1h-1zM8 5h1v1h-1zM7 6h1v1h-1zM25 6h1v1h-1zM6 8h1v1h-1zM26 8h1v1h-1zM5 11h1v1h-1zM27 11h1v1h-1zM4 14h1v1h-1zM28 14h1v1h-1zM3 17h1v1h-1zM29 17h1v1h-1zM2 20h1v1h-1zM30 20h1v1h-1z'/%3E%3Cpath fill='%23000' d='M12 3h10v1h-10zM10 4h1v1h-1zM22 4h2v1h-2zM24 5h1v1h-1zM7 7h1v1h-1zM25 7h1v1h-1zM6 9h1v1h-1zM26 9h1v1h-1zM6 10h1v1h-1zM26 10h1v1h-1zM5 12h1v1h-1zM27 12h1v1h-1zM5 13h1v1h-1zM27 13h1v1h-1zM4 15h1v1h-1zM28 15h1v1h-1zM4 16h1v1h-1zM28 16h1v1h-1zM3 18h1v1h-1zM29 18h1v1h-1zM3 19h1v1h-1zM29 19h1v1h-1zM2 21h1v1h-1zM30 21h1v1h-1zM2 22h1v1h-1zM30 22h1v1h-1zM0 23h33v1h-33z'/%3E%3Cpath fill='%23bbb' d='M11 4h1v1h-1zM21 4h1v1h-1zM9 5h1v1h-1zM8 6h1v1h-1zM23 6h1v1h-1zM7 8h1v1h-1zM24 8h1v1h-1zM6 11h1v1h-1zM25 11h1v1h-1zM5 14h1v1h-1zM26 14h1v1h-1zM4 17h1v1h-1zM27 17h1v1h-1zM3 20h1v1h-1zM28 20h1v1h-1z'/%3E%3Cpath fill='%23ccc' d='M12 4h9v1h-9zM10 5h1v1h-1zM8 7h1v1h-1zM7 9h1v1h-1zM7 10h1v1h-1zM6 12h1v1h-1zM6 13h1v1h-1zM5 15h1v1h-1zM5 16h1v1h-1zM4 18h1v1h-1zM4 19h1v1h-1zM3 21h1v1h-1zM3 22h1v1h-1z'/%3E%3Cpath fill='%23888' d='M11 5h11v1h-11zM23 5h1v1h-1zM9 6h2v1h-2zM9 7h1v1h-1zM24 7h1v1h-1zM8 8h1v1h-1zM8 9h1v1h-1zM25 9h1v1h-1zM8 10h1v1h-1zM25 10h1v1h-1zM7 11h1v1h-1zM7 12h1v1h-1zM26 12h1v1h-1zM7 13h1v1h-1zM26 13h1v1h-1zM6 14h1v1h-1zM6 15h1v1h-1zM27 15h1v1h-1zM6 16h1v1h-1zM27 16h1v1h-1zM5 17h1v1h-1zM5 18h1v1h-1zM28 18h1v1h-1zM5 19h1v1h-1zM28 19h1v1h-1zM4 20h1v1h-1zM4 21h1v1h-1zM29 21h1v1h-1zM4 22h1v1h-1zM29 22h1v1h-1z'/%3E%3Cpath fill='%23ddd' d='M22 5h1v1h-1zM23 7h1v1h-1zM24 9h1v1h-1zM24 10h1v1h-1zM25 12h1v1h-1zM25 13h1v1h-1zM26 15h1v1h-1zM26 16h1v1h-1zM27 18h1v1h-1zM27 19h1v1h-1zM28 21h1v1h-1zM28 22h1v1h-1z'/%3E%3Cpath fill='%23666' d='M11 6h12v1h-12zM10 7h13v1h-13zM9 8h15v1h-15zM9 9h15v1h-15zM9 10h15v1h-15zM8 11h17v1h-17zM8 12h17v1h-17zM8 13h17v1h-17zM7 14h19v1h-19zM7 15h19v1h-19zM7 16h19v1h-19zM6 17h21v1h-21zM6 18h21v1h-21zM6 19h21v1h-21zM5 20h23v1h-23zM5 21h23v1h-23zM5 22h23v1h-23z'/%3E%3Cpath fill='%23444' d='M24 6h1v1h-1zM25 8h1v1h-1zM26 11h1v1h-1zM27 14h1v1h-1zM28 17h1v1h-1zM29 20h1v1h-1z'/%3E%3C/svg%3E");
1648
2215
 
1649
2216
  color: #000000;
2217
+ /* Measured from Mac OS 9.0 frames by tooling/p9-art.py. */
2218
+ --clio-art-p9-check: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKBAMAAAB/HNKOAAAAGFBMVEUAAAAAAABVVVV3d3eIiIiqqqrd3d3///8DgOpFAAAAAXRSTlMAQObYZgAAAEBJREFUeJwVxLENgDAQBMH9k4lxQAPvSuiKtr4iRAUW+QVGTDBxAautFyyA+nfIRaU2WynOGl0cSkSMTpvPfvMB4jgPBUEhtgkAAAAASUVORK5CYII=");
2219
+ --clio-art-p9-check-overhang: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAAEAgMAAADZgQaqAAAADFBMVEUAAAAAAAB3d3eqqqoo0Gg2AAAAAXRSTlMAQObYZgAAABBJREFUeJxjcGDYwCTAwAAABXABA8z2jo8AAAAASUVORK5CYII=");
2220
+ --clio-art-p9-radio-on: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMBAMAAACkW0HUAAAAIVBMVEUAAAAAAAAiIiJERERVVVV3d3eIiIiZmZm7u7vd3d3///9FvHqFAAAAAXRSTlMAQObYZgAAAFlJREFUeJwVwUERQEAUgOH/vdlxcni7W8CSQBYh5HBy0kEADeigAQqYoQDG9wEpgJCinavTmKTa9fXLbIWWOYyN3oA8ys/UDCTolkE3OKz1dugzme8voI7wAZyaEH+rqNVXAAAAAElFTkSuQmCC");
2221
+ --clio-art-p9-radio: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMBAMAAACkW0HUAAAAG1BMVEUAAAAAAABERERVVVWIiIiqqqq7u7vd3d3///9N7yqcAAAAAXRSTlMAQObYZgAAAFpJREFUeJwlzLENQEAYBeDn5RJRuZwJiI2IOZTKW0FnB7OICbDC61x1v8I3wAegDYBDM9n+sBjXMHiyigs9+y2V6KgYZxmRSjOwxiwVvF4zu5lPSXJ2ZFzCn32EjiE9A/VQnAAAAABJRU5ErkJggg==");
2222
+ --clio-art-p9-radio-pressed: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMBAMAAACkW0HUAAAAIVBMVEUAAAAAAAAiIiJERERVVVVmZmZ3d3eIiIiZmZm7u7v////rjZGwAAAAAXRSTlMAQObYZgAAAFdJREFUeJwVxKsRgDAURcFz34B/iUaQoQE0ilKogUHREyVQAxKZFnBRfIYVC6QI+n+OymIIyvZK8lZdCkGNXapHfwz3RZiL0kfLwLyZ3CmT3bvDKhhO+ABY6xACXUidtgAAAABJRU5ErkJggg==");
2223
+ --clio-art-p9-checkbox-pressed: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMBAMAAACkW0HUAAAAElBMVEUAAAAAAABVVVV3d3eZmZn///8vNloyAAAAAXRSTlMAQObYZgAAADhJREFUeJxFibENACAMwxzUGegH/f8MxFkdEHQgi2VHzp1pAsO42ttrfLQoW4WM+lYhp8kFW44lHI3DBiNDd4iSAAAAAElFTkSuQmCC");
2224
+ --clio-art-p9-box-face: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJBAMAAAASvxsjAAAAG1BMVEUAAACIiIiZmZmqqqq7u7vMzMzd3d3u7u7///8xpbC+AAAAAXRSTlMAQObYZgAAAClJREFUeJxjbL3AwPCb5exFQcHTTAwCAgIMTIyMjIwMuNgsfw4wMDAAAAO8B0nHBJxRAAAAAElFTkSuQmCC");
2225
+ --clio-art-p9-progress-pole: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAKBAMAAABPkMOvAAAAKlBMVEUAAAAAAFUAAIgzM5lVVVVmZsx3d3eZmZmZmf+qqqq7u7vMzP/d3d3///+RIHmxAAAAAXRSTlMAQObYZgAAAFFJREFUeJwlyrEJgwAQQNF3ciNYiziBIKQ2U7lTpnAAAy4QcYOAtQbRFK/5/GhwyefM1pKPDR3x+q0UtfhY7ism+0j2ufBGFYN/yi8uUbYcMycurhMrVyrlPQAAAABJRU5ErkJggg==");
2226
+ --clio-art-p9-submenu: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAALAQMAAABmnG7VAAAABlBMVEUAAAAAAAClZ7nPAAAAAXRSTlMAQObYZgAAAB9JREFUeJxjaGA4wPCA4QPDD4Y/TH+YfjB9YHrAdAAAZSIJk3jnGdQAAAAASUVORK5CYII=");
2227
+ --clio-art-p9-submenu-on: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAALAQMAAABmnG7VAAAABlBMVEUAAAD///+l2Z/dAAAAAXRSTlMAQObYZgAAAB9JREFUeJxjaGA4wPCA4QPDD4Y/TH+YfjB9YHrAdAAAZSIJk3jnGdQAAAAASUVORK5CYII=");
2228
+ --clio-art-p9-dropdown: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAKAQMAAABCAtZOAAAABlBMVEUAAAAAAAClZ7nPAAAAAXRSTlMAQObYZgAAABlJREFUeJxjEGDSYHJh+McAAv8YahgsGAQAHygDQTD2iPAAAAAASUVORK5CYII=");
2229
+ --clio-art-p9-dropdown-off: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAKAQMAAABCAtZOAAAABlBMVEUAAACIiIhaeOqmAAAAAXRSTlMAQObYZgAAABlJREFUeJxjEGDSYHJh+McAAv8YahgsGAQAHygDQTD2iPAAAAAASUVORK5CYII=");
2230
+ --clio-art-p9-menucheck: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAICAYAAAArzdW1AAAAP0lEQVR42mNgIAyMiFHwnxgFK2ECLgwMDKFYFJxB1nUGKmiEpOAOAwODALKilVCJ/7gUwMAdQgoYoBIrsSkAAK+iEhBS63EWAAAAAElFTkSuQmCC");
1650
2231
  }
1651
2232
 
1652
2233
  /* ---- Window ---------------------------------------------------------------- */
@@ -1654,6 +2235,10 @@
1654
2235
  right and bottom (GUIdebook Appearance window, x=4 and x=width-5). */
1655
2236
  :root .window:not(.inactive) {
1656
2237
  background:
2238
+ linear-gradient(#ffffff, #ffffff) 0 0 / calc(100% - 1px) 1px no-repeat,
2239
+ linear-gradient(#ffffff, #ffffff) 0 0 / 1px calc(100% - 1px) no-repeat,
2240
+ linear-gradient(#999999, #999999) 1px 100% / calc(100% - 1px) 1px no-repeat,
2241
+ linear-gradient(#999999, #999999) 100% 1px / 1px calc(100% - 1px) no-repeat,
1657
2242
  linear-gradient(#999999, #999999) 3px 19px / 1px calc(100% - 22px) no-repeat,
1658
2243
  linear-gradient(#ffffff, #ffffff) right 3px top 20px / 1px calc(100% - 23px) no-repeat,
1659
2244
  linear-gradient(#ffffff, #ffffff) left 3px bottom 3px / calc(100% - 6px) 1px no-repeat,
@@ -1678,11 +2263,13 @@
1678
2263
  /* The ridged bar. Its covers read the slot sizes the .title-bar itself
1679
2264
  computes, so this is a rule, not a token. */
1680
2265
  :root .title-bar {
2266
+ /* Six ridges: white lines, and #777 lines one pixel to their right (the
2267
+ ridge's shade), between the box slots (Mac OS 9.0, both ends measured). */
2268
+ --clio-tb-ridges: calc(100% - var(--clio-tb-close) - var(--clio-tb-zoom) - var(--clio-tb-shade) - 1px);
1681
2269
  background:
1682
- linear-gradient(#cccccc, #cccccc) left top / var(--clio-tb-close) 17px no-repeat,
1683
- linear-gradient(#cccccc, #cccccc) right top / calc(var(--clio-tb-zoom) + var(--clio-tb-shade) + 1px) 17px no-repeat,
1684
2270
  linear-gradient(to bottom, #cccccc 0 1px, transparent 1px 13px, #cccccc 13px 17px, #999999 17px 18px),
1685
- repeating-linear-gradient(to bottom, #ffffff 0 1px, #777777 1px 2px) 0 1px / 100% 2px repeat-y,
2271
+ repeating-linear-gradient(to bottom, #ffffff 0 1px, transparent 1px 2px) var(--clio-tb-close) 1px / var(--clio-tb-ridges) 2px repeat-y,
2272
+ repeating-linear-gradient(to bottom, transparent 0 1px, #777777 1px 2px) calc(var(--clio-tb-close) + 1px) 1px / var(--clio-tb-ridges) 2px repeat-y,
1686
2273
  #cccccc;
1687
2274
  }
1688
2275
 
@@ -1693,7 +2280,19 @@
1693
2280
 
1694
2281
  /* The title is cut out of the ridges in the frame grey, drawn wide. */
1695
2282
  :root .title-bar > :is(.title, h1, h2, h3) {
1696
- transform: translate(-1px, -1px);
2283
+ /* Mac OS 9.0: the cut-out spans the ridges, 4px before the title and 3px
2284
+ after it, and is centred 1px left of the bar's middle; Charcoal sits one
2285
+ row low in it. */
2286
+ padding: 1px 3px 0 4px;
2287
+ transform: translateX(-1px);
2288
+ /* The ridge's #777 lines are its white lines one pixel to the right, and so
2289
+ is their cut: show them in the cut-out's first column, cover them one
2290
+ column past its last. */
2291
+ background:
2292
+ repeating-linear-gradient(to bottom, transparent 0 1px, #777777 1px 2px) 0 0 / 1px 12px no-repeat,
2293
+ #cccccc;
2294
+ overflow: clip; /* still truncates with an ellipsis */
2295
+ overflow-clip-margin: 1px; /* but lets the column past the end show */
1697
2296
  }
1698
2297
 
1699
2298
  /* The close, zoom and collapse boxes: an 11px bevelled square sunk into the
@@ -1701,16 +2300,14 @@
1701
2300
  :root .title-bar > :is(button, .close, .close-box, .resize, .resize-box, .zoom, .shade, .shade-box, .collapse) {
1702
2301
  margin-top: 1px;
1703
2302
  border-color: #222222;
1704
- background: linear-gradient(to bottom right, #999999, #ffffff);
2303
+ background: var(--clio-art-p9-box-face) 0 0 / 9px 9px no-repeat;
1705
2304
  box-shadow:
1706
2305
  -1px -1px 0 #888888,
1707
2306
  -1px 0 0 #888888,
1708
2307
  0 -1px 0 #888888,
1709
2308
  1px 1px 0 #ffffff,
1710
2309
  1px 0 0 #ffffff,
1711
- 0 1px 0 #ffffff,
1712
- inset 1px 1px 0 #cccccc,
1713
- inset -1px -1px 0 #888888;
2310
+ 0 1px 0 #ffffff;
1714
2311
  }
1715
2312
 
1716
2313
  :root .title-bar > :is(button, .close, .close-box, .resize, .resize-box, .zoom, .shade, .shade-box, .collapse):is(:active, .active) {
@@ -1751,7 +2348,7 @@
1751
2348
  --clio-check-shadow: none;
1752
2349
  border-color: #555555;
1753
2350
  background: #dddddd;
1754
- box-shadow: 1px 1px 0 #555555, inset 1px 1px 0 #eeeeee, inset -1px -1px 0 #999999;
2351
+ box-shadow: 1px 1px 0 #555555; /* flat: no light or shade inside (Mac OS 9.0 Finder, behind Appearance) */
1755
2352
  color: #555555;
1756
2353
  }
1757
2354
 
@@ -1779,13 +2376,12 @@
1779
2376
  :root :is(.default, .btn-default)::before {
1780
2377
  content: "";
1781
2378
  position: absolute;
1782
- inset: -3px;
1783
- border-radius: 3px;
1784
- box-shadow:
1785
- 0 0 0 1px #000000,
1786
- inset 1px 1px 0 #dddddd,
1787
- inset -1px -1px 0 #777777,
1788
- inset 0 0 0 2px #aaaaaa;
2379
+ border-width: 1px; /* longhands: the shorthand would reset the ring, which is a border-image */
2380
+ border-style: solid;
2381
+ border-color: transparent;
2382
+ inset: -4px;
2383
+ border-radius: 0;
2384
+ box-shadow: none;
1789
2385
  pointer-events: none;
1790
2386
  }
1791
2387
 
@@ -1793,38 +2389,57 @@
1793
2389
  box-shadow: 0 0 0 1px #888888;
1794
2390
  }
1795
2391
 
1796
- :root :is(button, .btn, .btn-default, input[type="button"], input[type="submit"], input[type="reset"]):not(.icon, [role="tab"], [role="menuitem"], .title-bar > *):is(:disabled, .disabled) {
1797
- background: #dddddd;
2392
+ :root :is(button, .btn, .btn-default, input[type="button"], input[type="submit"], input[type="reset"]):not(.icon, [role="tab"], [role="menuitem"], .title-bar > *, .control-strip *):is(:disabled, .disabled) {
2393
+ background: transparent;
1798
2394
  box-shadow: none;
2395
+ border-image: var(--clio-button-frame-disabled) var(--clio-button-frame-slice) fill / calc(var(--clio-button-frame-slice) * 1px) stretch;
1799
2396
  }
1800
2397
 
1801
2398
  /* ---- Radio buttons: drawn, not cut from a screenshot ------------------------ */
2399
+ /* Check box mark: inside the frame, plus the two columns that overhang it. */
2400
+ :root input[type="checkbox"]:checked::after {
2401
+ content: "";
2402
+ position: absolute;
2403
+ top: 0;
2404
+ right: -3px;
2405
+ width: 2px;
2406
+ height: 4px;
2407
+ background: var(--clio-art-p9-check-overhang) 0 0 / 2px 4px no-repeat;
2408
+ }
2409
+
2410
+ /* ---- Radio buttons: Mac OS 9's shaded ball (pressed states drawn here). ---- */
1802
2411
  :root input[type="radio"] {
1803
- border: 1px solid #000000;
1804
- border-radius: 50%;
1805
- background: linear-gradient(to bottom right, #ffffff, #888888);
1806
- box-shadow: inset 1px 1px 0 #dddddd, inset -1px -1px 0 #888888;
2412
+ border: 0;
2413
+ border-radius: 0;
2414
+ background: var(--clio-art-p9-radio) 0 0 / 12px 12px no-repeat;
2415
+ box-shadow: none;
1807
2416
  }
1808
2417
 
1809
2418
  :root input[type="radio"]:checked {
1810
- background:
1811
- radial-gradient(circle, #000000 0 2.5px, transparent 3px),
1812
- linear-gradient(to bottom right, #555555, #ffffff);
2419
+ background: var(--clio-art-p9-radio-on) 0 0 / 12px 12px no-repeat;
1813
2420
  }
1814
2421
 
1815
2422
  :root input[type="radio"]:not(:disabled):active {
1816
- background: linear-gradient(to bottom right, #444444, #bbbbbb);
2423
+ background: var(--clio-art-p9-radio-pressed) 0 0 / 12px 12px no-repeat;
1817
2424
  }
1818
2425
 
2426
+ /* Held while on: not captured; the on ball stays (inferred). */
1819
2427
  :root input[type="radio"]:checked:not(:disabled):active {
2428
+ background: var(--clio-art-p9-radio-on) 0 0 / 12px 12px no-repeat;
2429
+ }
2430
+
2431
+ /* Held while checked: the mark over the held box (inferred; only the empty
2432
+ box was captured held). */
2433
+ :root input[type="checkbox"]:checked:not(:disabled):active {
1820
2434
  background:
1821
- radial-gradient(circle, #000000 0 2.5px, transparent 3px),
1822
- linear-gradient(to bottom right, #444444, #bbbbbb);
2435
+ var(--clio-art-p9-check) 0 0 / 10px 10px no-repeat padding-box,
2436
+ var(--clio-art-p9-checkbox-pressed) -1px -1px / 12px 12px no-repeat;
1823
2437
  }
1824
2438
 
1825
2439
  :root input[type="checkbox"]:not(:disabled):active {
1826
- background-color: #777777;
1827
- box-shadow: inset 1px 1px 0 #555555, inset -1px -1px 0 #999999;
2440
+ border-color: transparent;
2441
+ background: var(--clio-art-p9-checkbox-pressed) -1px -1px / 12px 12px no-repeat;
2442
+ box-shadow: none;
1828
2443
  }
1829
2444
 
1830
2445
  :root :is(input[type="checkbox"], input[type="radio"]):disabled {
@@ -1924,6 +2539,85 @@
1924
2539
  background: var(--clio-pane-bg);
1925
2540
  }
1926
2541
 
2542
+ :root fieldset {
2543
+ background:
2544
+ linear-gradient(var(--clio-pane-bg), var(--clio-pane-bg)) padding-box,
2545
+ var(--clio-art-p9-group-dots) 0 0 / 2px 2px fixed border-box;
2546
+ image-rendering: pixelated; /* keep the dots from blending into one grey */
2547
+ }
2548
+
2549
+ /* The title's gap opens 13px after the corner (General Controls, "Desktop"). */
2550
+ :root fieldset > legend {
2551
+ margin-left: 2px;
2552
+ }
2553
+
2554
+ /* Disabled pop-up menu: #888 frame, flat face, the #aaa divider and a grey
2555
+ arrow (Mac OS 9.0 Appearance, "Position Automatically"). Browsers also fade
2556
+ a disabled <select>; Mac OS did not. */
2557
+ :root select:disabled {
2558
+ border-color: #888888;
2559
+ background:
2560
+ var(--clio-art-p-dropdown-off) right 7px top 4px / 7px 10px no-repeat,
2561
+ linear-gradient(#aaaaaa, #aaaaaa) right 20px top 0 / 1px 100% no-repeat,
2562
+ #dddddd;
2563
+ background-clip: padding-box;
2564
+ box-shadow: none;
2565
+ color: #888888;
2566
+ opacity: 1;
2567
+ border-image-source: var(--clio-art-frame-p9-popup-disabled);
2568
+ }
2569
+
2570
+ /* The face stays inside the frame, so the rounded corners show what is behind. */
2571
+ :root select {
2572
+ background-clip: padding-box;
2573
+ }
2574
+
2575
+ /* Indeterminate progress (no value): Mac OS 9's stripes, one 16px period
2576
+ repeated (Finder copy window). Static: clio.css adds no motion. */
2577
+ :root progress:indeterminate,
2578
+ :root progress:indeterminate::-webkit-progress-bar {
2579
+ background: var(--clio-art-p9-progress-pole) 0 0 / 16px 10px repeat-x;
2580
+ }
2581
+
2582
+ :root .title-bar > :is(.title, h1, h2, h3)::after {
2583
+ content: "";
2584
+ position: absolute;
2585
+ top: 0;
2586
+ right: -1px;
2587
+ width: 1px;
2588
+ height: 12px;
2589
+ background: repeating-linear-gradient(to bottom, transparent 0 1px, #cccccc 1px 2px);
2590
+ }
2591
+
2592
+ :root .window.inactive > .title-bar > :is(.title, h1, h2, h3)::after,
2593
+ :root .inactive-title-bar > :is(.title, h1, h2, h3)::after {
2594
+ content: none;
2595
+ }
2596
+
2597
+ /* ---- Antialiasing as Mac OS blends it -------------------------------------
2598
+ Window titles and push button labels in their own colours on their own
2599
+ backgrounds take the exact palettes (src/00-fonts.css). */
2600
+ :root .title-bar > :is(.title, h1, h2, h3) {
2601
+ font-palette: --clio-aa-p9-title;
2602
+ }
2603
+
2604
+ :root :is(.window.inactive > .title-bar, .inactive-title-bar) > :is(.title, h1, h2, h3) {
2605
+ font-palette: --clio-aa-p9-title-inactive;
2606
+ }
2607
+
2608
+ :root :is(button, .btn, .btn-default, input[type="button"], input[type="submit"], input[type="reset"]):not(.icon, [role="tab"], [role="menuitem"], .title-bar > *, .control-strip *) {
2609
+ font-family: var(--clio-font-button);
2610
+ font-palette: --clio-aa-p9-button;
2611
+ }
2612
+
2613
+ :root :is(button, .btn, .btn-default, input[type="button"], input[type="submit"], input[type="reset"]):not(.icon, [role="tab"], [role="menuitem"], .title-bar > *, .control-strip *):not(:disabled, .disabled):is(:active, .active) {
2614
+ font-palette: --clio-aa-p9-button-held;
2615
+ }
2616
+
2617
+ :root :is(button, .btn, .btn-default, input[type="button"], input[type="submit"], input[type="reset"]):not(.icon, [role="tab"], [role="menuitem"], .title-bar > *, .control-strip *):is(:disabled, .disabled) {
2618
+ font-palette: --clio-aa-p9-button-disabled;
2619
+ }
2620
+
1927
2621
  /* Adaptations the historical machines never needed. Historical sizes are
1928
2622
  calibration, not a cage: on a touch screen the controls grow to the
1929
2623
  "coarse pointer" sizes from AI System 6's fidelity contract, without any
@@ -1932,6 +2626,7 @@
1932
2626
  :root,
1933
2627
  [data-era] {
1934
2628
  --clio-control-height: 36px;
2629
+ --clio-popup-height: 36px;
1935
2630
  --clio-field-height: 40px;
1936
2631
  --clio-menubar-height: 32px;
1937
2632
  --clio-menu-item-height: 32px;