clio.css 0.1.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 +113 -45
  3. package/README.md +56 -25
  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 +1998 -197
  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 +861 -149
  175. package/dist/clio.platinum.min.css +2 -2
  176. package/dist/clio.system6.css +598 -70
  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 +670 -141
  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 +18 -4
package/dist/clio.css CHANGED
@@ -1,12 +1,227 @@
1
- /*! clio.css 0.1.0 | 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 | 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 {
@@ -25,13 +240,16 @@
25
240
  font-display: swap;
26
241
  }
27
242
 
28
- /* Tokens: Macintosh System 6 is the default era.
243
+ /* Tokens: Macintosh System 6 is the default era. Measured values come from
244
+ System 6.0.8 running in Infinite Mac, read from the emulator canvas 1:1
245
+ (tooling/capture-system6.mjs).
29
246
  Every value below is traceable in EVIDENCE.md. A value marked [M] there was
30
247
  measured from real pixels; [I] is inferred; [A] is a deliberate web
31
248
  adaptation (contrast, focus, touch). Platinum re-declares these tokens in
32
249
  90-platinum.css under [data-era="platinum"]. */
33
250
  :root,
34
- [data-era="system6"] {
251
+ [data-era="system6"],
252
+ [data-era="system7"] {
35
253
  /* 1-bit palette. System 6 on a compact Mac had two colours. */
36
254
  --clio-ink: #000000;
37
255
  --clio-paper: #ffffff;
@@ -39,15 +257,30 @@
39
257
  /* [A] Disabled text: System 6 drew it through a 50% grey pattern; a solid
40
258
  grey keeps 5.6:1 on white instead of a dither the browser would blur. */
41
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;
42
266
  --clio-selection-bg: #000000;
43
267
  --clio-selection-fg: #ffffff;
44
268
 
45
269
  /* Type. Chicago 12 is the system font; Geneva is the application font. */
46
- --clio-font-chrome: Chicago, "ChicagoFLF", Charcoal, Geneva, "Helvetica Neue", Arial, sans-serif;
47
- --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;
48
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;
49
279
  --clio-font-size: 12px;
50
- --clio-font-size-small: 10px;
280
+ /* A bitmap face: no antialiasing, so a glyph on a half pixel stays 1-bit. */
281
+ --clio-font-smoothing: none;
282
+ /* Geneva 9: the Finder info line and icon names. */
283
+ --clio-font-size-small: 9px;
51
284
  --clio-chrome-weight: 400;
52
285
  --clio-font-stretch-text: normal;
53
286
  --clio-font-stretch-title: normal;
@@ -97,7 +330,8 @@
97
330
  --clio-shade-display: none;
98
331
  --clio-box-size: 11px;
99
332
  --clio-box-inset: 7px;
100
- --clio-box-isolation: 3px;
333
+ /* 1px of paper between a box and the stripes (HD window, 6.0.8). */
334
+ --clio-box-isolation: 1px;
101
335
 
102
336
  /* Menus */
103
337
  --clio-menubar-height: 20px;
@@ -105,39 +339,57 @@
105
339
  --clio-menubar-border: 1px solid var(--clio-ink);
106
340
  --clio-menubar-shadow: none;
107
341
  --clio-menubar-padding: 0 8px;
108
- --clio-menu-title-padding: 0 8px;
342
+ /* "File" highlight is 41px wide: about 9px each side of the word. */
343
+ --clio-menu-title-padding: 0 9px;
344
+ /* The open title's highlight leaves the bar's top row white. */
345
+ --clio-menu-title-inset: 1px;
109
346
  --clio-menu-title-active-bg: var(--clio-ink);
110
347
  --clio-menu-title-active-fg: var(--clio-paper);
111
348
  --clio-menu-title-active-shadow: none;
112
349
  --clio-menu-bg: var(--clio-paper);
113
350
  --clio-menu-border: 1px solid var(--clio-ink);
114
- --clio-menu-border-top-width: 1px;
351
+ /* A menu hangs from the bar's own rule; it draws no top line. */
352
+ --clio-menu-border-top-width: 0;
115
353
  --clio-menu-shadow: 1px 1px 0 var(--clio-ink);
116
354
  --clio-menu-item-height: 16px;
117
- --clio-menu-item-padding: 0 12px 0 16px;
355
+ --clio-menu-item-padding: 0 12px 0 13px;
118
356
  --clio-menu-item-weight: 400;
119
357
  --clio-menu-item-active-bg: var(--clio-ink);
120
358
  --clio-menu-item-active-fg: var(--clio-paper);
121
359
  --clio-menu-item-active-shadow: none;
360
+ /* A full 16px row with a 1-on 1-off dotted rule on its ninth line. */
122
361
  --clio-menu-separator:
123
- repeating-linear-gradient(to right, var(--clio-ink) 0 1px, transparent 1px 2px) 0 50% / 100% 1px no-repeat;
362
+ repeating-linear-gradient(to right, var(--clio-ink) 0 1px, transparent 1px 2px) 0 8px / 100% 1px no-repeat;
124
363
  --clio-menu-separator-height: 16px;
125
364
 
126
365
  /* Push buttons */
127
366
  --clio-button-bg: var(--clio-paper);
128
367
  --clio-button-fg: var(--clio-ink);
129
368
  --clio-button-border: 1px solid var(--clio-ink);
130
- --clio-button-radius: 7px;
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;
131
382
  --clio-button-shadow: 0 0 0 0 transparent;
132
383
  --clio-button-padding: 0 12px;
133
384
  --clio-button-min-width: 59px;
134
385
  --clio-button-weight: 400;
135
- --clio-button-active-bg: var(--clio-ink);
386
+ --clio-button-active-bg: transparent; /* the held frame carries the ink face */
136
387
  --clio-button-active-fg: var(--clio-paper);
137
388
  --clio-button-active-shadow: 0 0 0 0 transparent;
138
389
  /* Default button: Inside Macintosh's recipe is PenSize(3,3) around the
139
390
  button inset by -4, so a 1px gap then a 3px ring. */
140
- --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;
141
393
  --clio-button-default-radius: 8px;
142
394
  --clio-button-disabled-fg: var(--clio-disabled);
143
395
  --clio-button-disabled-border: 1px solid var(--clio-ink);
@@ -160,7 +412,8 @@
160
412
  --clio-field-bg: var(--clio-paper);
161
413
  --clio-field-border: 1px solid var(--clio-ink);
162
414
  --clio-field-shadow: none;
163
- --clio-field-padding: 2px 3px;
415
+ /* Edit text: 1px frame, text inset 3px (Control Panel RAM cache field). */
416
+ --clio-field-padding: 3px;
164
417
  --clio-field-focus-shadow: none;
165
418
 
166
419
  /* Pop-up menus */
@@ -168,13 +421,18 @@
168
421
  --clio-popup-border: 1px solid var(--clio-ink);
169
422
  --clio-popup-radius: 0;
170
423
  --clio-popup-shadow: 1px 1px 0 var(--clio-ink);
171
- --clio-popup-padding: 0 24px 0 6px;
172
- --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;
173
429
  --clio-popup-weight: 400;
174
430
 
175
431
  /* Scroll bars */
176
- --clio-scrollbar-size: 16px;
177
- --clio-scrollbar-track: var(--clio-art-s6-desktop) 0 0 / 2px 2px repeat, #808080;
432
+ /* The lane line plus 14px; the window frame is the 16th line. The lane is
433
+ QuickDraw's ltGray, one dot in four. */
434
+ --clio-scrollbar-size: 15px;
435
+ --clio-scrollbar-track: var(--clio-art-s6-ltgray) 0 0 / 4px 2px repeat, #ffffff;
178
436
  --clio-scrollbar-track-shadow: none;
179
437
  --clio-scrollbar-thumb-bg: var(--clio-paper);
180
438
  --clio-scrollbar-thumb-border: 1px solid var(--clio-ink);
@@ -192,17 +450,22 @@
192
450
 
193
451
  /* Dialogs */
194
452
  --clio-dialog-bg: var(--clio-paper);
195
- /* [I] dBoxProc: a 1px frame, a 1px paper gap, then a 2px ink border. */
453
+ /* Modal frame (stop alert, 6.0.8): 1px ink, 2px paper, 2px ink; no shadow. */
196
454
  --clio-modal-border: 1px solid var(--clio-ink);
197
- --clio-modal-frame: inset 0 0 0 1px var(--clio-paper), inset 0 0 0 3px var(--clio-ink);
198
- --clio-modal-padding: 16px 18px;
455
+ --clio-modal-frame: inset 0 0 0 2px var(--clio-paper), inset 0 0 0 4px var(--clio-ink);
456
+ --clio-modal-padding: 18px 20px;
199
457
  --clio-plain-dialog-border: 1px solid var(--clio-ink);
200
458
  --clio-plain-dialog-shadow: 2px 2px 0 var(--clio-ink);
201
459
 
202
460
  /* Bars, lists, groups, progress, tabs */
203
461
  --clio-details-bg: var(--clio-paper);
204
- /* [I] Finder's info line closes with two 1px rules. */
462
+ /* Finder's info line: 17 rows of Geneva 9, closed by 1px ink, 1px paper,
463
+ 1px ink. */
205
464
  --clio-details-border: 3px double var(--clio-ink);
465
+ --clio-details-font-size: 9px;
466
+ --clio-details-height: 17px;
467
+ --clio-details-padding: 0 15px;
468
+ --clio-scrollbar-corner: var(--clio-art-s6-grow) 0 0 / 14px 14px no-repeat, var(--clio-paper);
206
469
  --clio-list-bg: var(--clio-paper);
207
470
  --clio-list-border: 1px solid var(--clio-ink);
208
471
  --clio-list-shadow: none;
@@ -214,7 +477,8 @@
214
477
  --clio-progress-bg: var(--clio-paper);
215
478
  --clio-progress-border: 1px solid var(--clio-ink);
216
479
  --clio-progress-shadow: none;
217
- --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);
218
482
  --clio-tab-height: 20px;
219
483
  --clio-tab-bg: var(--clio-paper);
220
484
  --clio-tab-active-bg: var(--clio-paper);
@@ -224,6 +488,31 @@
224
488
  --clio-label-fg: var(--clio-ink);
225
489
  --clio-label-selected-bg: var(--clio-ink);
226
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);
227
516
  }
228
517
 
229
518
  /* Inline art. Pixel-grid SVGs, never Apple bitmaps: the System 6 check, radio
@@ -235,20 +524,41 @@
235
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");
236
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");
237
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");
238
- --clio-art-s6-up: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpolygon points='8.5,3.5 14.5,9.5 11.5,9.5 11.5,13.5 5.5,13.5 5.5,9.5 2.5,9.5' fill='%23fff' stroke='%23000' stroke-width='1' shape-rendering='crispEdges'/%3E%3C/svg%3E");
239
- --clio-art-s6-up-on: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpolygon points='8.5,3.5 14.5,9.5 11.5,9.5 11.5,13.5 5.5,13.5 5.5,9.5 2.5,9.5' fill='%23000' stroke='%23000' stroke-width='1' shape-rendering='crispEdges'/%3E%3C/svg%3E");
240
- --clio-art-s6-down: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpolygon points='8.5,13.5 14.5,7.5 11.5,7.5 11.5,3.5 5.5,3.5 5.5,7.5 2.5,7.5' fill='%23fff' stroke='%23000' stroke-width='1' shape-rendering='crispEdges'/%3E%3C/svg%3E");
241
- --clio-art-s6-down-on: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpolygon points='8.5,13.5 14.5,7.5 11.5,7.5 11.5,3.5 5.5,3.5 5.5,7.5 2.5,7.5' fill='%23000' stroke='%23000' stroke-width='1' shape-rendering='crispEdges'/%3E%3C/svg%3E");
242
- --clio-art-s6-left: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpolygon points='3.5,8.5 9.5,14.5 9.5,11.5 13.5,11.5 13.5,5.5 9.5,5.5 9.5,2.5' fill='%23fff' stroke='%23000' stroke-width='1' shape-rendering='crispEdges'/%3E%3C/svg%3E");
243
- --clio-art-s6-left-on: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpolygon points='3.5,8.5 9.5,14.5 9.5,11.5 13.5,11.5 13.5,5.5 9.5,5.5 9.5,2.5' fill='%23000' stroke='%23000' stroke-width='1' shape-rendering='crispEdges'/%3E%3C/svg%3E");
244
- --clio-art-s6-right: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpolygon points='13.5,8.5 7.5,14.5 7.5,11.5 3.5,11.5 3.5,5.5 7.5,5.5 7.5,2.5' fill='%23fff' stroke='%23000' stroke-width='1' shape-rendering='crispEdges'/%3E%3C/svg%3E");
245
- --clio-art-s6-right-on: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpolygon points='13.5,8.5 7.5,14.5 7.5,11.5 3.5,11.5 3.5,5.5 7.5,5.5 7.5,2.5' fill='%23000' stroke='%23000' stroke-width='1' shape-rendering='crispEdges'/%3E%3C/svg%3E");
246
- --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");
247
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");
248
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");
249
- --clio-art-s6-menucheck: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' shape-rendering='crispEdges'%3E%3Cpath d='M9 0h1v2H9zM8 2h1v2H8zM7 4h1v2H7zM6 5h1v2H6zM5 6h1v3H5zM4 7h1v3H4zM3 6h1v3H3zM2 5h1v2H2zM1 4h1v2H1zM0 4h1v1H0z'/%3E%3C/svg%3E");
250
- --clio-art-s6-menucheck-on: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' shape-rendering='crispEdges'%3E%3Cpath fill='%23fff' d='M9 0h1v2H9zM8 2h1v2H8zM7 4h1v2H7zM6 5h1v2H6zM5 6h1v3H5zM4 7h1v3H4zM3 6h1v3H3zM2 5h1v2H2zM1 4h1v2H1zM0 4h1v1H0z'/%3E%3C/svg%3E");
251
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");
530
+ /* Measured from System 6.0.8 (tooling/s6-art.py). */
531
+ --clio-art-s6-up: 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 3h3v1h-3zM4 4h5v1h-5zM3 5h7v1h-7zM2 6h9v1h-9zM4 7h5v1h-5zM4 8h5v1h-5zM4 9h5v1h-5zM4 10h5v1h-5z'/%3E%3Cpath fill='%23000' d='M6 1h1v1h-1zM5 2h1v1h-1zM7 2h1v1h-1zM4 3h1v1h-1zM8 3h1v1h-1zM3 4h1v1h-1zM9 4h1v1h-1zM2 5h1v1h-1zM10 5h1v1h-1zM1 6h1v1h-1zM11 6h1v1h-1zM0 7h4v1h-4zM9 7h4v1h-4zM3 8h1v1h-1zM9 8h1v1h-1zM3 9h1v1h-1zM9 9h1v1h-1zM3 10h1v1h-1zM9 10h1v1h-1zM3 11h7v1h-7z'/%3E%3C/svg%3E");
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");
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");
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");
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");
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");
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");
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");
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");
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");
252
562
  }
253
563
 
254
564
  /* Base. clio.css styles elements only inside its own components, plus bare
@@ -272,7 +582,7 @@
272
582
  font-stretch: var(--clio-font-stretch-text);
273
583
  font-synthesis: none;
274
584
  line-height: 16px;
275
- -webkit-font-smoothing: auto;
585
+ -webkit-font-smoothing: var(--clio-font-smoothing);
276
586
  }
277
587
 
278
588
  :where(.window, .modal-dialog, .alert-box, .standard-dialog, .modeless-dialog, .clio) *,
@@ -282,9 +592,10 @@
282
592
  }
283
593
 
284
594
  /* Application text (Geneva role) for content areas. */
285
- :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) {
286
596
  font-family: var(--clio-font-text);
287
597
  font-stretch: var(--clio-font-stretch-text);
598
+ -webkit-font-smoothing: var(--clio-text-smoothing);
288
599
  }
289
600
 
290
601
  :where(.window, .modal-dialog, .alert-box, .standard-dialog, .clio) :where(h1, h2, h3, h4, .heading) {
@@ -295,6 +606,11 @@
295
606
  line-height: 16px;
296
607
  }
297
608
 
609
+ :where(.display) {
610
+ font-family: var(--clio-font-display);
611
+ -webkit-font-smoothing: auto;
612
+ }
613
+
298
614
  :where(.window, .modal-dialog, .alert-box, .standard-dialog, .clio) :where(p) {
299
615
  margin: 0 0 8px;
300
616
  }
@@ -409,7 +725,7 @@
409
725
  overflow: hidden;
410
726
  background: var(--clio-title-bg);
411
727
  color: var(--clio-title-fg);
412
- font-family: var(--clio-font-chrome);
728
+ font-family: var(--clio-font-window-title, var(--clio-font-chrome));
413
729
  font-size: var(--clio-title-font-size);
414
730
  font-stretch: var(--clio-font-stretch-title);
415
731
  font-weight: var(--clio-chrome-weight);
@@ -460,17 +776,10 @@
460
776
  justify-self: end;
461
777
  }
462
778
 
463
- /* Pressed close box: the starburst System 6 draws while the mouse is held. */
464
- .title-bar > :is(.close, .close-box)::before {
465
- content: "";
466
- position: absolute;
467
- inset: -1px;
468
- background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='11' shape-rendering='crispEdges'%3E%3Cpath d='M1 5h3v1H1zM7 5h3v1H7zM5 1h1v3H5zM5 7h1v3H5zM2 2h1v1H2zM3 3h1v1H3zM7 7h1v1H7zM8 8h1v1H8zM8 2h1v1H8zM7 3h1v1H7zM2 8h1v1H2zM3 7h1v1H3z'/%3E%3C/svg%3E") 0 0 / 11px 11px no-repeat;
469
- opacity: 0;
470
- }
471
-
472
- .title-bar > :is(.close, .close-box):is(:active, .active)::before {
473
- opacity: 1;
779
+ /* Held close or zoom box: System 6 draws the same starburst in both
780
+ (measured, 6.0.8); the zoom box's inner square goes while it is held. */
781
+ .title-bar > :is(.close, .close-box, .resize, .resize-box, .zoom):is(:active, .active) {
782
+ background: var(--clio-art-s6-burst) 0 0 / 11px 11px no-repeat border-box, var(--clio-paper);
474
783
  }
475
784
 
476
785
  /* Zoom box: an inner square sharing the outer frame's top-left corner,
@@ -531,13 +840,14 @@
531
840
  flex: none;
532
841
  justify-content: space-between;
533
842
  gap: 16px;
534
- padding: 2px 8px 1px;
843
+ min-height: var(--clio-details-height);
844
+ padding: var(--clio-details-padding);
535
845
  border-bottom: var(--clio-details-border);
536
846
  background: var(--clio-details-bg);
537
847
  box-shadow: var(--clio-details-shadow, none);
538
- font-family: var(--clio-font-text);
539
- font-size: var(--clio-font-size);
540
- line-height: 16px;
848
+ font-family: var(--clio-font-small);
849
+ font-size: var(--clio-details-font-size);
850
+ line-height: var(--clio-details-height);
541
851
  white-space: nowrap;
542
852
  }
543
853
 
@@ -554,7 +864,7 @@
554
864
  padding: 1px 8px;
555
865
  border-top: var(--clio-border);
556
866
  background: var(--clio-details-bg);
557
- font-family: var(--clio-font-text);
867
+ font-family: var(--clio-font-small);
558
868
  font-size: var(--clio-font-size-small);
559
869
  line-height: 14px;
560
870
  }
@@ -646,7 +956,7 @@
646
956
  /* Inside a menu bar or a parent item, a menu is a drop-down. */
647
957
  :where(.menu-bar, [role="menubar"], [role="menu-bar"], .menu, [role="menu"]) li > :is(.menu, ul[role="menu"]) {
648
958
  position: absolute;
649
- top: 100%;
959
+ top: calc(100% + 1px);
650
960
  left: 0;
651
961
  display: none;
652
962
  }
@@ -711,6 +1021,12 @@
711
1021
  :where(.menu, [role="menu"]) > li:is(.disabled, [aria-disabled="true"]),
712
1022
  :where(.menu, [role="menu"]) > li > :is(a, button):is(:disabled, [aria-disabled="true"]) {
713
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);
714
1030
  }
715
1031
 
716
1032
  /* Keyboard shortcut column, right-aligned. */
@@ -727,10 +1043,10 @@
727
1043
  position: absolute;
728
1044
  top: 50%;
729
1045
  left: 3px;
730
- width: 10px;
731
- height: 10px;
732
- margin-top: -5px;
733
- background: var(--clio-art-s6-menucheck) 0 0 / 10px 10px no-repeat;
1046
+ width: 9px;
1047
+ height: 8px;
1048
+ margin-top: -4px;
1049
+ background: var(--clio-art-s6-menucheck) 0 0 / 9px 8px no-repeat;
734
1050
  }
735
1051
 
736
1052
  :where(.menu, [role="menu"]) > li:is(.checked, [aria-checked="true"]):is(:hover, :focus-within, .active)::before,
@@ -790,11 +1106,13 @@
790
1106
  border-radius: var(--clio-button-radius);
791
1107
  background: var(--clio-button-bg);
792
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;
793
1110
  color: var(--clio-button-fg);
794
1111
  font-family: var(--clio-font-chrome);
795
1112
  font-size: var(--clio-font-size);
796
1113
  font-stretch: var(--clio-font-stretch-text);
797
1114
  font-weight: var(--clio-button-weight);
1115
+ -webkit-font-smoothing: var(--clio-font-smoothing);
798
1116
  line-height: 14px;
799
1117
  text-align: center;
800
1118
  text-decoration: none;
@@ -809,22 +1127,41 @@
809
1127
  :where(button, .btn, .btn-default, .standard-button, input[type="button"], input[type="submit"], input[type="reset"]):not(:disabled, .disabled):is(:active, .active) {
810
1128
  background: var(--clio-button-active-bg);
811
1129
  box-shadow: var(--clio-button-active-shadow);
1130
+ border-image-source: var(--clio-button-frame-held);
812
1131
  color: var(--clio-button-active-fg);
813
1132
  }
814
1133
 
815
- /* 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. */
816
1137
  :where(.default, .btn-default, button[type="submit"].default) {
1138
+ position: relative;
817
1139
  border-radius: var(--clio-button-radius);
818
- box-shadow: var(--clio-button-shadow), var(--clio-button-default-ring);
819
1140
  }
820
1141
 
821
- :where(.default, .btn-default):not(:disabled, .disabled):is(:active, .active) {
822
- 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;
823
1150
  }
824
1151
 
825
1152
  :where(button, .btn, .btn-default, .standard-button, input[type="button"], input[type="submit"], input[type="reset"]):is(:disabled, .disabled) {
826
1153
  border: var(--clio-button-disabled-border);
827
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);
828
1165
  }
829
1166
 
830
1167
  :where(button, .btn, .btn-default, .standard-button, input[type="button"], input[type="submit"], input[type="reset"]):focus-visible {
@@ -920,6 +1257,12 @@
920
1257
  :where(input[type="checkbox"], input[type="radio"]):disabled + label,
921
1258
  :where(label):has(> :is(input[type="checkbox"], input[type="radio"]):disabled) {
922
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);
923
1266
  }
924
1267
 
925
1268
  /* ---- Text fields ---------------------------------------------------------- */
@@ -972,18 +1315,20 @@
972
1315
  /* ---- Pop-up menus (select) ------------------------------------------------ */
973
1316
  :where(select) {
974
1317
  box-sizing: border-box;
975
- min-height: var(--clio-control-height);
1318
+ min-height: var(--clio-popup-height, var(--clio-control-height));
976
1319
  margin: 0;
977
1320
  padding: var(--clio-popup-padding);
978
1321
  border: var(--clio-popup-border);
979
1322
  border-radius: var(--clio-popup-radius);
980
1323
  background: var(--clio-popup-arrow), var(--clio-popup-bg);
981
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;
982
1326
  color: var(--clio-ink);
983
1327
  font-family: var(--clio-font-chrome);
984
1328
  font-size: var(--clio-font-size);
985
1329
  font-stretch: var(--clio-font-stretch-text);
986
1330
  font-weight: var(--clio-popup-weight);
1331
+ -webkit-font-smoothing: var(--clio-font-smoothing);
987
1332
  line-height: 16px;
988
1333
  appearance: none;
989
1334
  -webkit-appearance: none;
@@ -1158,7 +1503,7 @@
1158
1503
  background: none;
1159
1504
  box-shadow: none;
1160
1505
  color: var(--clio-ink);
1161
- font-family: var(--clio-font-text);
1506
+ font-family: var(--clio-font-small);
1162
1507
  font-size: var(--clio-font-size-small);
1163
1508
  text-align: center;
1164
1509
  cursor: default;
@@ -1264,7 +1609,7 @@
1264
1609
  border-radius: 6px;
1265
1610
  background: var(--clio-paper);
1266
1611
  color: var(--clio-ink);
1267
- font: 700 22px/28px var(--clio-font-chrome);
1612
+ font: 700 22px/28px var(--clio-font-display);
1268
1613
  text-align: center;
1269
1614
  }
1270
1615
 
@@ -1393,7 +1738,7 @@
1393
1738
  :where(html.clio-scrollbars)::-webkit-scrollbar-corner {
1394
1739
  border-top: 1px solid var(--clio-ink);
1395
1740
  border-left: 1px solid var(--clio-ink);
1396
- background: var(--clio-scrollbar-button-bg);
1741
+ background: var(--clio-scrollbar-corner);
1397
1742
  }
1398
1743
 
1399
1744
  @supports not selector(::-webkit-scrollbar) {
@@ -1402,25 +1747,415 @@
1402
1747
  }
1403
1748
  }
1404
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
+
1933
+ /* Macintosh System 7 in colour (7.5.3). System 7 keeps System 6's geometry,
1934
+ fonts and black-and-white controls; colour reaches the window frame, the
1935
+ title bar, the scroll bars and alerts. Applies inside data-era="system7";
1936
+ clio.system7.css is a build with System 7 as the page default.
1937
+ Every value: System 7.5.3 in Infinite Mac, the 800x600 canvas read 1:1
1938
+ (npm run capture:system7); see EVIDENCE.md. */
1939
+ [data-era="system7"] {
1940
+ /* 1px #666/#aaa checker desktop. */
1941
+ --clio-desktop: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='2' height='2' shape-rendering='crispEdges'%3E%3Cpath fill='%23aaa' d='M0 0h1v1H0zM1 1h1v1H1z'/%3E%3Cpath fill='%23666' d='M1 0h1v1H1zM0 1h1v1H0z'/%3E%3C/svg%3E") 0 0 / 2px 2px repeat, #888888;
1942
+
1943
+ /* Title bar: S6 rows, #eee ground, six #777 stripes, #ccf light on the
1944
+ top and left inside edges, #99c shade on the bottom and right. */
1945
+ --clio-titlebar-height: 18px;
1946
+ --clio-titlebar-margin: 0;
1947
+ --clio-titlebar-padding: 3px 1px;
1948
+ --clio-titlebar-bg:
1949
+ linear-gradient(to bottom, #777777 0 1px, transparent 1px 2px)
1950
+ 0 0 / 100% 2px repeat-y content-box content-box,
1951
+ #eeeeee;
1952
+ --clio-title-bg: #eeeeee;
1953
+ --clio-title-inactive-fg: #888888;
1954
+ --clio-titlebar-inactive-bg: #ffffff;
1955
+
1956
+ /* Scroll bars */
1957
+ --clio-scrollbar-track: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='2' shape-rendering='crispEdges'%3E%3Cpath fill='%23ddd' d='M0 0h4v2H0z'/%3E%3Cpath fill='%23777' d='M2 0h1v1H2zM0 1h1v1H0z'/%3E%3C/svg%3E") 0 0 / 4px 2px repeat, #dddddd;
1958
+ /* The grip sits where System 7's fixed 16px scroll box has it: 3px from the
1959
+ leading edge, whatever length the browser gives the box. */
1960
+ --clio-scrollbar-thumb-bg: var(--clio-art-s7-grip-v) 50% 2px / 6px 10px no-repeat, #aaaaaa;
1961
+ --clio-scrollbar-thumb-bg-horizontal: var(--clio-art-s7-grip-h) 2px 50% / 10px 6px no-repeat, #aaaaaa;
1962
+ --clio-scrollbar-thumb-border: 0;
1963
+ --clio-scrollbar-thumb-shadow: inset -1px -1px 0 #333366, inset 1px 1px 0 #ccccff; /* the shade owns the corners */
1964
+ --clio-scrollbar-button-bg: #dddddd;
1965
+ --clio-scrollbar-up: var(--clio-art-s7-up);
1966
+ --clio-scrollbar-up-on: var(--clio-art-s7-up);
1967
+ --clio-scrollbar-down: var(--clio-art-s7-down);
1968
+ --clio-scrollbar-down-on: var(--clio-art-s7-down);
1969
+ --clio-scrollbar-left: var(--clio-art-s7-left);
1970
+ --clio-scrollbar-left-on: var(--clio-art-s7-left);
1971
+ --clio-scrollbar-right: var(--clio-art-s7-right);
1972
+ --clio-scrollbar-right-on: var(--clio-art-s7-right);
1973
+ --clio-scrollbar-corner: var(--clio-art-s7-grow) 0 0 / 14px 14px no-repeat, #eeeeee;
1974
+ --clio-scrollbar-thumb-color: #aaaaaa;
1975
+ --clio-scrollbar-track-color: #dddddd;
1976
+
1977
+ /* Menus: disabled items and the separator are solid #888 (System 6 used a
1978
+ 50% dither); the separator is still a full 16px row, ruled on its ninth line. */
1979
+ --clio-disabled: #888888;
1980
+ --clio-disabled-dither: none;
1981
+
1982
+ /* Control Strip, measured from System 7.5.3 (frame folder-window): the
1983
+ Mac OS 9 geometry and art in System 7 greys, #ccc cells with a #aaa then
1984
+ #888 shade; the held module is inferred from Mac OS 9's in these greys. */
1985
+ --clio-strip-bg: #cccccc;
1986
+ --clio-strip-line: 1px solid #000000;
1987
+ --clio-strip-cell-shadow: inset -1px -1px 0 #888888, inset -2px -2px 0 #aaaaaa, inset 1px 1px 0 #cccccc, inset 2px 2px 0 #ffffff;
1988
+ --clio-strip-sunken-shadow: none;
1989
+ /* Idle scroll cells: #888 along the top and left, white along the bottom and
1990
+ right, the two odd corners left in the face. */
1991
+ --clio-strip-sunken-lines:
1992
+ linear-gradient(#888888, #888888) 0 0 / calc(100% - 1px) 1px no-repeat,
1993
+ linear-gradient(#888888, #888888) 0 0 / 1px calc(100% - 1px) no-repeat,
1994
+ linear-gradient(#ffffff, #ffffff) 1px 100% / calc(100% - 1px) 1px no-repeat,
1995
+ linear-gradient(#ffffff, #ffffff) 100% 1px / 1px calc(100% - 1px) no-repeat;
1996
+ --clio-strip-pressed-bg: #888888;
1997
+ --clio-strip-pressed-shadow: inset 2px 2px 0 #555555, inset -2px -2px 0 #cccccc;
1998
+ --clio-strip-cap: var(--clio-art-s7-strip-cap);
1999
+ --clio-strip-back: var(--clio-art-p9-strip-back);
2000
+ --clio-strip-forward: var(--clio-art-p9-strip-forward);
2001
+ --clio-strip-menu: var(--clio-art-p9-strip-menu);
2002
+ --clio-strip-handle: var(--clio-art-p9-strip-handle);
2003
+ --clio-strip-tab: var(--clio-art-p9-strip-tab);
2004
+ --clio-disabled-fill: currentcolor;
2005
+ --clio-menu-separator: linear-gradient(#888888, #888888) 0 8px / 100% 1px no-repeat;
2006
+
2007
+ /* Pop-up menu (Numbers control panel): an 18px box, a 1px shadow that starts
2008
+ 3px in from the corner, an 11x6 black triangle 5px from the right edge,
2009
+ the label 15px in. */
2010
+ --clio-popup-shadow: 2px 2px 0 -1px #000000;
2011
+ --clio-popup-padding: 0 22px 0 14px;
2012
+ --clio-popup-arrow: 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") right 5px center / 11px 6px no-repeat;
2013
+
2014
+ /* Progress (Finder copy): 11px, a 1px black frame, #ccf track, #444 fill. */
2015
+ --clio-progress-height: 11px;
2016
+ --clio-progress-bg: #ccccff;
2017
+ --clio-progress-fill: #444444;
2018
+
2019
+ /* Group box (General Controls, Numbers): a grey 1px line (#777 and #888
2020
+ alternate in the original; drawn #777 here). */
2021
+ --clio-group-border: 1px solid #777777;
2022
+
2023
+ /* Alert and modal frame: 1px black, a raised #ccf/#669 ring, #bbb, a
2024
+ sunken #669/#ccf ring, 1px black; the same 5px as System 6. */
2025
+ --clio-modal-border: 1px solid #000000;
2026
+ --clio-modal-frame:
2027
+ inset 1px 1px 0 #ccccff,
2028
+ inset -1px -1px 0 #666699,
2029
+ inset 0 0 0 2px #bbbbbb,
2030
+ inset 3px 3px 0 #666699,
2031
+ inset -3px -3px 0 #ccccff,
2032
+ inset 0 0 0 4px #000000;
2033
+
2034
+ /* Art redrawn from the captured pixels (tooling/s7-art.py). */
2035
+ --clio-art-s7-up: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' shape-rendering='crispEdges'%3E%3Cpath fill='%23dddddd' d='M1 1h12v1h-12zM1 2h5v1h-5zM7 2h6v1h-6zM1 3h4v1h-4zM8 3h5v1h-5zM1 4h3v1h-3zM9 4h4v1h-4zM1 5h2v1h-2zM10 5h3v1h-3zM1 6h1v1h-1zM11 6h2v1h-2zM12 7h1v1h-1zM1 8h3v1h-3zM9 8h4v1h-4zM1 9h3v1h-3zM9 9h4v1h-4zM1 10h3v1h-3zM9 10h4v1h-4zM1 11h3v1h-3zM9 11h4v1h-4zM1 12h12v1h-12z'/%3E%3Cpath fill='%23333366' d='M6 2h1v1h-1zM5 3h1v1h-1zM7 3h1v1h-1zM4 4h1v1h-1zM8 4h1v1h-1zM3 5h1v1h-1zM9 5h1v1h-1zM2 6h1v1h-1zM10 6h1v1h-1zM1 7h4v1h-4zM8 7h4v1h-4zM4 8h1v1h-1zM8 8h1v1h-1zM4 9h1v1h-1zM8 9h1v1h-1zM4 10h1v1h-1zM8 10h1v1h-1zM4 11h5v1h-5z'/%3E%3Cpath fill='%239999cc' d='M6 3h1v1h-1zM5 4h3v1h-3zM4 5h5v1h-5zM3 6h7v1h-7zM5 7h3v1h-3zM5 8h3v1h-3zM5 9h3v1h-3zM5 10h3v1h-3z'/%3E%3Cpath fill='%23777777' d='M13 0h1v1h-1zM13 1h1v1h-1zM13 2h1v1h-1zM13 3h1v1h-1zM13 4h1v1h-1zM13 5h1v1h-1zM13 6h1v1h-1zM13 7h1v1h-1zM13 8h1v1h-1zM13 9h1v1h-1zM13 10h1v1h-1zM13 11h1v1h-1zM13 12h1v1h-1zM0 13h14v1h-14z'/%3E%3Cpath fill='%23ffffff' d='M0 0h13v1h-13zM0 1h1v1h-1zM0 2h1v1h-1zM0 3h1v1h-1zM0 4h1v1h-1zM0 5h1v1h-1zM0 6h1v1h-1zM0 7h1v1h-1zM0 8h1v1h-1zM0 9h1v1h-1zM0 10h1v1h-1zM0 11h1v1h-1zM0 12h1v1h-1z'/%3E%3C/svg%3E");
2036
+ --clio-art-s7-down: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' shape-rendering='crispEdges'%3E%3Cpath fill='%23dddddd' d='M1 1h12v1h-12zM1 2h3v1h-3zM9 2h4v1h-4zM1 3h3v1h-3zM9 3h4v1h-4zM1 4h3v1h-3zM9 4h4v1h-4zM1 5h3v1h-3zM9 5h4v1h-4zM12 6h1v1h-1zM1 7h1v1h-1zM11 7h2v1h-2zM1 8h2v1h-2zM10 8h3v1h-3zM1 9h3v1h-3zM9 9h4v1h-4zM1 10h4v1h-4zM8 10h5v1h-5zM1 11h5v1h-5zM7 11h6v1h-6zM1 12h12v1h-12z'/%3E%3Cpath fill='%23333366' d='M4 2h5v1h-5zM4 3h1v1h-1zM8 3h1v1h-1zM4 4h1v1h-1zM8 4h1v1h-1zM4 5h1v1h-1zM8 5h1v1h-1zM1 6h4v1h-4zM8 6h4v1h-4zM2 7h1v1h-1zM10 7h1v1h-1zM3 8h1v1h-1zM9 8h1v1h-1zM4 9h1v1h-1zM8 9h1v1h-1zM5 10h1v1h-1zM7 10h1v1h-1zM6 11h1v1h-1z'/%3E%3Cpath fill='%239999cc' d='M5 3h3v1h-3zM5 4h3v1h-3zM5 5h3v1h-3zM5 6h3v1h-3zM3 7h7v1h-7zM4 8h5v1h-5zM5 9h3v1h-3zM6 10h1v1h-1z'/%3E%3Cpath fill='%23777777' d='M13 0h1v1h-1zM13 1h1v1h-1zM13 2h1v1h-1zM13 3h1v1h-1zM13 4h1v1h-1zM13 5h1v1h-1zM13 6h1v1h-1zM13 7h1v1h-1zM13 8h1v1h-1zM13 9h1v1h-1zM13 10h1v1h-1zM13 11h1v1h-1zM13 12h1v1h-1zM0 13h14v1h-14z'/%3E%3Cpath fill='%23ffffff' d='M0 0h13v1h-13zM0 1h1v1h-1zM0 2h1v1h-1zM0 3h1v1h-1zM0 4h1v1h-1zM0 5h1v1h-1zM0 6h1v1h-1zM0 7h1v1h-1zM0 8h1v1h-1zM0 9h1v1h-1zM0 10h1v1h-1zM0 11h1v1h-1zM0 12h1v1h-1z'/%3E%3C/svg%3E");
2037
+ --clio-art-s7-left: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' shape-rendering='crispEdges'%3E%3Cpath fill='%23dddddd' d='M1 1h6v1h-6zM8 1h5v1h-5zM1 2h5v1h-5zM8 2h5v1h-5zM1 3h4v1h-4zM8 3h5v1h-5zM1 4h3v1h-3zM12 4h1v1h-1zM1 5h2v1h-2zM12 5h1v1h-1zM1 6h1v1h-1zM12 6h1v1h-1zM1 7h2v1h-2zM12 7h1v1h-1zM1 8h3v1h-3zM12 8h1v1h-1zM1 9h4v1h-4zM8 9h5v1h-5zM1 10h5v1h-5zM8 10h5v1h-5zM1 11h6v1h-6zM8 11h5v1h-5zM1 12h12v1h-12z'/%3E%3Cpath fill='%23333366' d='M7 1h1v1h-1zM6 2h2v1h-2zM5 3h1v1h-1zM7 3h1v1h-1zM4 4h1v1h-1zM7 4h5v1h-5zM3 5h1v1h-1zM11 5h1v1h-1zM2 6h1v1h-1zM11 6h1v1h-1zM3 7h1v1h-1zM11 7h1v1h-1zM4 8h1v1h-1zM7 8h5v1h-5zM5 9h1v1h-1zM7 9h1v1h-1zM6 10h2v1h-2zM7 11h1v1h-1z'/%3E%3Cpath fill='%239999cc' d='M6 3h1v1h-1zM5 4h2v1h-2zM4 5h7v1h-7zM3 6h8v1h-8zM4 7h7v1h-7zM5 8h2v1h-2zM6 9h1v1h-1z'/%3E%3Cpath fill='%23777777' d='M13 0h1v1h-1zM13 1h1v1h-1zM13 2h1v1h-1zM13 3h1v1h-1zM13 4h1v1h-1zM13 5h1v1h-1zM13 6h1v1h-1zM13 7h1v1h-1zM13 8h1v1h-1zM13 9h1v1h-1zM13 10h1v1h-1zM13 11h1v1h-1zM13 12h1v1h-1zM0 13h14v1h-14z'/%3E%3Cpath fill='%23ffffff' d='M0 0h13v1h-13zM0 1h1v1h-1zM0 2h1v1h-1zM0 3h1v1h-1zM0 4h1v1h-1zM0 5h1v1h-1zM0 6h1v1h-1zM0 7h1v1h-1zM0 8h1v1h-1zM0 9h1v1h-1zM0 10h1v1h-1zM0 11h1v1h-1zM0 12h1v1h-1z'/%3E%3C/svg%3E");
2038
+ --clio-art-s7-right: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' shape-rendering='crispEdges'%3E%3Cpath fill='%23dddddd' d='M1 1h5v1h-5zM7 1h6v1h-6zM1 2h5v1h-5zM8 2h5v1h-5zM1 3h5v1h-5zM9 3h4v1h-4zM1 4h1v1h-1zM10 4h3v1h-3zM1 5h1v1h-1zM11 5h2v1h-2zM1 6h1v1h-1zM12 6h1v1h-1zM1 7h1v1h-1zM11 7h2v1h-2zM1 8h1v1h-1zM10 8h3v1h-3zM1 9h5v1h-5zM9 9h4v1h-4zM1 10h5v1h-5zM8 10h5v1h-5zM1 11h5v1h-5zM7 11h6v1h-6zM1 12h12v1h-12z'/%3E%3Cpath fill='%23333366' d='M6 1h1v1h-1zM6 2h2v1h-2zM6 3h1v1h-1zM8 3h1v1h-1zM2 4h5v1h-5zM9 4h1v1h-1zM2 5h1v1h-1zM10 5h1v1h-1zM2 6h1v1h-1zM11 6h1v1h-1zM2 7h1v1h-1zM10 7h1v1h-1zM2 8h5v1h-5zM9 8h1v1h-1zM6 9h1v1h-1zM8 9h1v1h-1zM6 10h2v1h-2zM6 11h1v1h-1z'/%3E%3Cpath fill='%239999cc' d='M7 3h1v1h-1zM7 4h2v1h-2zM3 5h7v1h-7zM3 6h8v1h-8zM3 7h7v1h-7zM7 8h2v1h-2zM7 9h1v1h-1z'/%3E%3Cpath fill='%23777777' d='M13 0h1v1h-1zM13 1h1v1h-1zM13 2h1v1h-1zM13 3h1v1h-1zM13 4h1v1h-1zM13 5h1v1h-1zM13 6h1v1h-1zM13 7h1v1h-1zM13 8h1v1h-1zM13 9h1v1h-1zM13 10h1v1h-1zM13 11h1v1h-1zM13 12h1v1h-1zM0 13h14v1h-14z'/%3E%3Cpath fill='%23ffffff' d='M0 0h13v1h-13zM0 1h1v1h-1zM0 2h1v1h-1zM0 3h1v1h-1zM0 4h1v1h-1zM0 5h1v1h-1zM0 6h1v1h-1zM0 7h1v1h-1zM0 8h1v1h-1zM0 9h1v1h-1zM0 10h1v1h-1zM0 11h1v1h-1zM0 12h1v1h-1z'/%3E%3C/svg%3E");
2039
+ --clio-art-s7-grow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' shape-rendering='crispEdges'%3E%3Cpath fill='%23eeeeee' d='M0 0h14v1h-14zM0 1h14v1h-14zM0 2h2v1h-2zM8 2h6v1h-6zM0 3h2v1h-2zM12 3h2v1h-2zM0 4h2v1h-2zM12 4h2v1h-2zM0 5h2v1h-2zM12 5h2v1h-2zM0 6h2v1h-2zM12 6h2v1h-2zM0 7h2v1h-2zM12 7h2v1h-2zM0 8h3v1h-3zM12 8h2v1h-2zM0 9h3v1h-3zM12 9h2v1h-2zM0 10h3v1h-3zM12 10h2v1h-2zM0 11h3v1h-3zM12 11h2v1h-2zM0 12h14v1h-14zM0 13h14v1h-14z'/%3E%3Cpath fill='%23333366' d='M2 2h6v1h-6zM2 3h1v1h-1zM8 3h4v1h-4zM2 4h1v1h-1zM7 4h1v1h-1zM2 5h1v1h-1zM7 5h1v1h-1zM11 5h1v1h-1zM2 6h1v1h-1zM7 6h1v1h-1zM11 6h1v1h-1zM2 7h1v1h-1zM4 7h4v1h-4zM11 7h1v1h-1zM3 8h1v1h-1zM11 8h1v1h-1zM3 9h1v1h-1zM11 9h1v1h-1zM3 10h1v1h-1zM11 10h1v1h-1zM3 11h1v1h-1zM5 11h7v1h-7z'/%3E%3Cpath fill='%23aaaaaa' d='M8 5h3v1h-3zM8 6h3v1h-3zM8 7h3v1h-3zM5 8h6v1h-6zM5 9h6v1h-6zM5 10h6v1h-6z'/%3E%3Cpath fill='%23ccccff' d='M3 3h5v1h-5zM3 4h1v1h-1zM8 4h4v1h-4zM3 5h1v1h-1zM3 6h1v1h-1zM3 7h1v1h-1zM4 8h1v1h-1zM4 9h1v1h-1zM4 10h1v1h-1zM4 11h1v1h-1z'/%3E%3Cpath fill='%23bbbbbb' d='M4 4h3v1h-3zM4 5h3v1h-3zM4 6h3v1h-3z'/%3E%3C/svg%3E");
2040
+ --clio-art-s7-grip-v: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='6' height='10' shape-rendering='crispEdges'%3E%3Cpath fill='%23ccccff' d='M0 1h6v1h-6zM0 3h6v1h-6zM0 5h6v1h-6zM0 7h6v1h-6zM0 9h6v1h-6z'/%3E%3Cpath fill='%23666699' d='M0 2h6v1h-6zM0 4h6v1h-6zM0 6h6v1h-6zM0 8h6v1h-6z'/%3E%3Cpath fill='%239999cc' d='M0 0h6v1h-6z'/%3E%3C/svg%3E");
2041
+ --clio-art-s7-grip-h: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' shape-rendering='crispEdges'%3E%3Cpath fill='%23ccccff' d='M1 0h1v1h-1zM3 0h1v1h-1zM5 0h1v1h-1zM7 0h1v1h-1zM9 0h1v1h-1zM1 1h1v1h-1zM3 1h1v1h-1zM5 1h1v1h-1zM7 1h1v1h-1zM9 1h1v1h-1zM1 2h1v1h-1zM3 2h1v1h-1zM5 2h1v1h-1zM7 2h1v1h-1zM9 2h1v1h-1zM1 3h1v1h-1zM3 3h1v1h-1zM5 3h1v1h-1zM7 3h1v1h-1zM9 3h1v1h-1zM1 4h1v1h-1zM3 4h1v1h-1zM5 4h1v1h-1zM7 4h1v1h-1zM9 4h1v1h-1zM1 5h1v1h-1zM3 5h1v1h-1zM5 5h1v1h-1zM7 5h1v1h-1zM9 5h1v1h-1z'/%3E%3Cpath fill='%23666699' d='M2 0h1v1h-1zM4 0h1v1h-1zM6 0h1v1h-1zM8 0h1v1h-1zM2 1h1v1h-1zM4 1h1v1h-1zM6 1h1v1h-1zM8 1h1v1h-1zM2 2h1v1h-1zM4 2h1v1h-1zM6 2h1v1h-1zM8 2h1v1h-1zM2 3h1v1h-1zM4 3h1v1h-1zM6 3h1v1h-1zM8 3h1v1h-1zM2 4h1v1h-1zM4 4h1v1h-1zM6 4h1v1h-1zM8 4h1v1h-1zM2 5h1v1h-1zM4 5h1v1h-1zM6 5h1v1h-1zM8 5h1v1h-1z'/%3E%3Cpath fill='%239999cc' d='M0 0h1v1h-1zM0 1h1v1h-1zM0 2h1v1h-1zM0 3h1v1h-1zM0 4h1v1h-1zM0 5h1v1h-1z'/%3E%3C/svg%3E");
2042
+ }
2043
+
2044
+ /* The title bar's light and shade edges. */
2045
+ [data-era="system7"] .title-bar {
2046
+ /* The shade is drawn last: it owns the bottom-left and top-right corners. */
2047
+ box-shadow: inset -1px -1px 0 #9999cc, inset 1px 1px 0 #ccccff;
2048
+ }
2049
+
2050
+ /* Close and zoom boxes: an 11px square sunk into the bar (#336 above-left,
2051
+ #ccf below-right) with a raised #ccf/#336 inner ring around #aaa, and 1px
2052
+ of #eee between the box and the stripes. */
2053
+ [data-era="system7"] .title-bar > :is(button, .close, .close-box, .resize, .resize-box, .zoom) {
2054
+ /* The outer ring is painted, not bordered: the whole top row and left column
2055
+ are #336 (a CSS border would mitre the corners into a blend). */
2056
+ border: 1px solid transparent;
2057
+ background:
2058
+ linear-gradient(#333366, #333366) 0 0 / 100% 1px no-repeat,
2059
+ linear-gradient(#333366, #333366) 0 0 / 1px 100% no-repeat,
2060
+ linear-gradient(#aaaaaa, #aaaaaa),
2061
+ #ccccff;
2062
+ background-origin: border-box, border-box, padding-box, border-box;
2063
+ background-clip: border-box, border-box, padding-box, border-box;
2064
+ box-shadow: inset 1px 1px 0 #ccccff, inset -1px -1px 0 #333366, 0 0 0 1px #eeeeee;
2065
+ }
2066
+
2067
+ /* Zoom: a 5px square in the top-left of the grey centre, drawn #336. */
2068
+ [data-era="system7"] .title-bar > :is(.resize, .resize-box, .zoom)::before {
2069
+ top: 1px;
2070
+ left: 1px;
2071
+ width: 5px;
2072
+ height: 5px;
2073
+ border-right: 1px solid #333366;
2074
+ border-bottom: 1px solid #333366;
2075
+ }
2076
+
2077
+ /* Held: a black square with a #99c face and the starburst. */
2078
+ [data-era="system7"] .title-bar > :is(.close, .close-box, .resize, .resize-box, .zoom):is(:active, .active) {
2079
+ border-color: #000000;
2080
+ background: var(--clio-art-s6-burst) 0 0 / 11px 11px no-repeat border-box, #9999cc;
2081
+ background-clip: border-box;
2082
+ box-shadow: 0 0 0 1px #eeeeee;
2083
+ }
2084
+
2085
+ /* Background window: #555 frame, a plain white title bar, #888 title. */
2086
+ [data-era="system7"] .window.inactive {
2087
+ border-color: #555555;
2088
+ }
2089
+
2090
+ [data-era="system7"] .window.inactive > .title-bar,
2091
+ [data-era="system7"] .inactive-title-bar {
2092
+ border-bottom-color: #555555;
2093
+ box-shadow: none;
2094
+ --clio-title-bg: #ffffff;
2095
+ }
2096
+
2097
+ [data-era="system7"] .window.inactive > .title-bar > :is(.title, h1, h2, h3),
2098
+ [data-era="system7"] .inactive-title-bar > :is(.title, h1, h2, h3) {
2099
+ background: #ffffff;
2100
+ }
2101
+
2102
+ /* The scroll box's leading edge is a #555 line (16 rows in all, as in System 6). */
2103
+ [data-era="system7"] :is(.window-pane, .listbox, [role="listbox"], textarea, select[multiple], .clio-scroll, .clio-scrollbars *)::-webkit-scrollbar-thumb:vertical,
2104
+ [data-era="system7"]:is(html.clio-scrollbars)::-webkit-scrollbar-thumb:vertical {
2105
+ min-height: 17px; /* the lane's black line, then 16 rows of box */
2106
+ border-top: 1px solid #555555;
2107
+ border-left: 1px solid #000000; /* the lane's own line, which the box covers */
2108
+ }
2109
+
2110
+ [data-era="system7"] :is(.window-pane, .listbox, [role="listbox"], textarea, select[multiple], .clio-scroll, .clio-scrollbars *)::-webkit-scrollbar-thumb:horizontal,
2111
+ [data-era="system7"]:is(html.clio-scrollbars)::-webkit-scrollbar-thumb:horizontal {
2112
+ min-width: 17px;
2113
+ border-left: 1px solid #555555;
2114
+ border-top: 1px solid #000000;
2115
+ }
2116
+
2117
+ /* The arrow art already carries its face, light and shade. */
2118
+ [data-era="system7"] :is(.window-pane, .listbox, [role="listbox"], textarea, select[multiple], .clio-scroll, .clio-scrollbars *)::-webkit-scrollbar-button,
2119
+ [data-era="system7"]:is(html.clio-scrollbars)::-webkit-scrollbar-button {
2120
+ background-size: 14px 14px;
2121
+ }
2122
+
1405
2123
  /* Mac OS 8/9 Platinum. Applies inside any element with data-era="platinum"
1406
2124
  (put it on <html> for a whole page). clio.platinum.css is a build of this
1407
2125
  same file with Platinum as the page default.
1408
2126
  Values: AI System 6's Platinum tables, each tied to a Mac OS 9.0 capture
1409
2127
  (GUIdebook, Infinite Mac). P-numbers in comments are AI System 6's patch
1410
2128
  ids; see EVIDENCE.md. */
1411
- [data-era="platinum"] {
2129
+ :is([data-era="platinum"], [data-era="drawingboard"]) {
1412
2130
  --clio-ink: #000000;
1413
2131
  --clio-paper: #dddddd;
1414
2132
  --clio-face: #dddddd;
1415
2133
  --clio-disabled: #6f6f6f;
2134
+ --clio-disabled-dither: none;
2135
+ /* Push button, disabled button and default ring: the real pixel frames
2136
+ (tooling/frame-art.py: Mac OS 9.0 Appearance and GUIdebook's Mac OS 9.0). */
2137
+ --clio-button-frame: var(--clio-art-frame-p9-button);
2138
+ --clio-button-frame-held: var(--clio-art-frame-p9-button-held);
2139
+ --clio-button-frame-disabled: var(--clio-art-frame-p9-button-disabled);
2140
+ --clio-ring-frame: var(--clio-art-frame-p9-ring);
2141
+ --clio-ring-frame-slice: 6;
2142
+ --clio-disabled-fill: currentcolor;
1416
2143
  --clio-selection-bg: #ccccff;
1417
2144
  --clio-selection-fg: #000000;
1418
2145
 
1419
- /* Charcoal if the visitor has it; Geneva for text on a Mac; Asap (OFL) at
1420
- the widths AI System 6 measured against Charcoal everywhere else. */
1421
- --clio-font-chrome: Charcoal, "Charcoal CY", "Clio Asap", Geneva, "Helvetica Neue", Arial, sans-serif;
2146
+ /* Charcoal if the visitor has it, else Clio Sans '97 (Charcoal 12 rebuilt
2147
+ from Mac OS 9.0), drawn without smoothing like the bitmap it is; Asap
2148
+ (OFL) at the widths AI System 6 measured against Charcoal as the last
2149
+ fallback; Geneva for text on a Mac. */
2150
+ --clio-font-chrome: Charcoal, "Charcoal CY", "Clio Sans '97", "Clio Asap", Geneva, "Helvetica Neue", Arial, sans-serif;
2151
+ --clio-font-display: Charcoal, "Charcoal CY", "Clio Sans '97 Display", "Clio Asap", "Helvetica Neue", Arial, sans-serif;
2152
+ --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;
2153
+ --clio-font-button: Charcoal, "Charcoal CY", "Clio Sans '97 Exact", "Clio Sans '97", "Clio Asap", Geneva, "Helvetica Neue", Arial, sans-serif;
1422
2154
  --clio-font-text: Geneva, "Clio Asap", "Helvetica Neue", Arial, sans-serif;
1423
2155
  --clio-font-size: 12px;
2156
+ --clio-font-smoothing: none;
2157
+ --clio-text-smoothing: auto;
2158
+ --clio-font-small: var(--clio-font-text);
1424
2159
  --clio-font-size-small: 10px;
1425
2160
  --clio-chrome-weight: 700;
1426
2161
  --clio-font-stretch-text: 113%;
@@ -1439,12 +2174,9 @@
1439
2174
  --clio-window-bg: #cccccc;
1440
2175
  --clio-pane-bg: #dddddd;
1441
2176
  --clio-window-border: 1px solid #000000;
1442
- --clio-window-shadow:
1443
- 1px 1px 0 #000000,
1444
- inset 1px 0 0 #ffffff,
1445
- inset 0 1px 0 #ffffff,
1446
- inset -1px 0 0 #999999,
1447
- inset 0 -1px 0 #999999;
2177
+ /* The frame's white light and #999 shade are drawn as lines in the window's
2178
+ background (below), which leave the two odd corners in the frame grey. */
2179
+ --clio-window-shadow: 1px 1px 0 #000000;
1448
2180
  /* AI System 6 pads 5px because its pane has no border; here the pane draws
1449
2181
  the black content line itself, so the strip is 4px. */
1450
2182
  --clio-window-padding: 2px 4px 4px;
@@ -1474,6 +2206,7 @@
1474
2206
  --clio-menubar-shadow: inset 0 1px 0 #ffffff, inset 0 -1px 0 #999999;
1475
2207
  --clio-menubar-padding: 0 8px;
1476
2208
  --clio-menu-title-padding: 0 10px;
2209
+ --clio-menu-title-inset: 0px;
1477
2210
  --clio-menu-title-active-bg: #333399;
1478
2211
  --clio-menu-title-active-fg: #ffffff;
1479
2212
  --clio-menu-title-active-shadow: inset 0 1px 0 #6666cc, inset 0 -1px 0 #000088;
@@ -1487,40 +2220,43 @@
1487
2220
  --clio-menu-item-active-bg: #333399;
1488
2221
  --clio-menu-item-active-fg: #ffffff;
1489
2222
  --clio-menu-item-active-shadow: inset 1px 0 0 #6666cc, inset -1px 0 0 #000088;
2223
+ /* Separator: a 6px row, #888 on its third line and white on its fourth,
2224
+ across the menu's full width (Mac OS 9.0 Finder File menu). */
1490
2225
  --clio-menu-separator:
1491
- linear-gradient(#888888, #888888) 0 3px / 100% 1px no-repeat,
1492
- linear-gradient(#ffffff, #ffffff) 0 4px / 100% 1px no-repeat;
1493
- --clio-menu-separator-height: 8px;
2226
+ linear-gradient(#888888, #888888) 0 2px / 100% 1px no-repeat,
2227
+ linear-gradient(#ffffff, #ffffff) 0 3px / 100% 1px no-repeat;
2228
+ --clio-menu-separator-height: 6px;
1494
2229
 
1495
2230
  /* Push buttons: bevel, 3px corners (P29 pressed) */
1496
- --clio-button-bg: #dddddd;
2231
+ --clio-button-bg: transparent;
1497
2232
  --clio-button-fg: #000000;
1498
2233
  --clio-button-border: 1px solid #000000;
1499
2234
  --clio-button-radius: 3px;
1500
- --clio-button-shadow:
1501
- inset 1px 1px 0 #dddddd,
1502
- inset 2px 2px 0 #ffffff,
1503
- inset -1px -1px 0 #777777,
1504
- inset -2px -2px 0 #aaaaaa;
2235
+ --clio-button-shadow: none;
1505
2236
  --clio-button-padding: 0 10px;
1506
2237
  --clio-button-min-width: 58px;
1507
2238
  --clio-button-weight: 700;
1508
- --clio-button-active-bg: #666666;
2239
+ /* Held: the frame and its dark face cut from Mac OS 9.0 (frame-art.py). */
2240
+ --clio-button-active-bg: transparent;
1509
2241
  --clio-button-active-fg: #ffffff;
1510
- --clio-button-active-shadow:
1511
- inset 1px 1px 0 #444444,
1512
- inset 2px 2px 0 #555555,
1513
- inset -1px -1px 0 #888888,
1514
- inset -2px -2px 0 #777777;
2242
+ --clio-button-active-shadow: none;
1515
2243
  --clio-button-disabled-fg: #777777;
1516
2244
  --clio-button-disabled-border: 1px solid #888888;
1517
2245
 
1518
- /* Check boxes (classic-stylesheets check) and radio buttons */
2246
+ /* Check boxes and radio buttons: the mark and both radio states are redrawn
2247
+ from Mac OS 9.0's General Controls (tooling/p9-art.py). */
1519
2248
  --clio-check-size: 12px;
1520
- --clio-check-bg: #dddddd;
2249
+ /* The well's white light and #888 shade as lines that leave the odd corners
2250
+ in the face (an inset shadow would also paint over the check mark). */
2251
+ --clio-check-bg:
2252
+ linear-gradient(#ffffff, #ffffff) 0 0 / calc(100% - 1px) 1px no-repeat padding-box,
2253
+ linear-gradient(#ffffff, #ffffff) 0 0 / 1px calc(100% - 1px) no-repeat padding-box,
2254
+ linear-gradient(#888888, #888888) 1px 100% / calc(100% - 1px) 1px no-repeat padding-box,
2255
+ linear-gradient(#888888, #888888) 100% 1px / 1px calc(100% - 1px) no-repeat padding-box,
2256
+ #dddddd;
1521
2257
  --clio-check-border: 1px solid #000000;
1522
- --clio-check-shadow: inset -1px -1px 0 #888888, inset 1px 1px 0 #ffffff;
1523
- --clio-check-mark: var(--clio-art-p-check) center / 9px 8px no-repeat;
2258
+ --clio-check-shadow: none;
2259
+ --clio-check-mark: var(--clio-art-p9-check) 0 0 / 10px 10px no-repeat;
1524
2260
  --clio-check-mark-origin: padding-box;
1525
2261
  --clio-check-pressed-border-width: 1px;
1526
2262
 
@@ -1531,17 +2267,30 @@
1531
2267
  --clio-field-padding: 2px 3px;
1532
2268
  --clio-field-focus-shadow: -1px -1px 0 #888888, 1px 1px 0 #ffffff;
1533
2269
 
1534
- /* Pop-up menus (P31) */
2270
+ /* Pop-up menus, measured from Mac OS 9.0 (Appearance tab, "Apple platinum"):
2271
+ 20px, black frame, #ddd face with a white top line and #aaa foot; a #aaa
2272
+ divider 20px from the right, then a raised arrow box (white left and top,
2273
+ #aaa then #777 shade) with the 7x10 arrows 7px from the right, 4px down. */
1535
2274
  --clio-popup-bg: #dddddd;
1536
2275
  --clio-popup-border: 1px solid #000000;
1537
- --clio-popup-radius: 3px;
1538
- --clio-popup-shadow: inset 1px 1px #ffffff, inset -1px -1px #aaaaaa;
2276
+ --clio-popup-radius: 0;
2277
+ --clio-popup-frame: var(--clio-art-frame-p9-popup); /* the real corners */
2278
+ --clio-popup-shadow: none;
2279
+ --clio-popup-height: 20px;
1539
2280
  --clio-popup-padding: 0 28px 0 7px;
1540
2281
  --clio-popup-weight: 700;
1541
2282
  --clio-popup-arrow:
1542
- var(--clio-art-p-dropdown) right 6px center / 7px 10px no-repeat,
1543
- linear-gradient(#ffffff, #ffffff) right 18px top 1px / 1px calc(100% - 2px) no-repeat,
1544
- linear-gradient(#aaaaaa, #aaaaaa) right 19px top 0 / 1px 100% no-repeat;
2283
+ var(--clio-art-p-dropdown) right 7px top 4px / 7px 10px no-repeat,
2284
+ linear-gradient(#777777, #777777) right 0 top 1px / 1px calc(100% - 1px) no-repeat,
2285
+ linear-gradient(#777777, #777777) right 0 bottom 0 / 19px 1px no-repeat,
2286
+ linear-gradient(#aaaaaa, #aaaaaa) right 1px top 1px / 1px calc(100% - 2px) no-repeat,
2287
+ linear-gradient(#aaaaaa, #aaaaaa) right 1px bottom 1px / 17px 1px no-repeat,
2288
+ linear-gradient(#bbbbbb, #bbbbbb) right 19px bottom 0 / 1px 1px no-repeat,
2289
+ linear-gradient(#ffffff, #ffffff) right 18px top 1px / 1px calc(100% - 3px) no-repeat,
2290
+ linear-gradient(#ffffff, #ffffff) right 2px top 1px / 17px 1px no-repeat,
2291
+ linear-gradient(#aaaaaa, #aaaaaa) right 20px top 1px / 1px calc(100% - 1px) no-repeat,
2292
+ linear-gradient(#ffffff, #ffffff) left 0 top 0 / calc(100% - 21px) 1px no-repeat,
2293
+ linear-gradient(#aaaaaa, #aaaaaa) left 0 bottom 0 / calc(100% - 21px) 1px no-repeat;
1545
2294
 
1546
2295
  /* Scroll bars (P16, P17, P27) */
1547
2296
  --clio-scrollbar-size: 16px;
@@ -1583,12 +2332,19 @@
1583
2332
  --clio-details-bg: #dddddd;
1584
2333
  --clio-details-border: 1px solid #000000;
1585
2334
  --clio-details-shadow: inset 0 1px 0 #ffffff, inset 0 -1px 0 #aaaaaa;
2335
+ --clio-details-font-size: 12px;
2336
+ --clio-details-height: 20px;
2337
+ --clio-details-padding: 0 8px;
2338
+ --clio-scrollbar-corner: #dddddd;
1586
2339
  --clio-list-bg: #ffffff;
1587
2340
  --clio-list-border: 1px solid #000000;
1588
2341
  --clio-list-shadow: -1px -1px 0 #888888, 1px 1px 0 #ffffff;
1589
2342
  --clio-list-row: 16px;
1590
- --clio-group-border: 1px solid #888888;
1591
- --clio-group-shadow: inset 1px 1px 0 #ffffff, 1px 1px 0 #ffffff;
2343
+ /* Group box: a 1px line of #777 and #888 dots, the pattern aligned to the
2344
+ screen (#777 where x + y is even), no light (Mac OS 9.0 General Controls). */
2345
+ --clio-group-border: 1px solid transparent;
2346
+ --clio-group-shadow: none;
2347
+ --clio-art-p9-group-dots: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACAQMAAABIeJ9nAAAABlBMVEV3d3eIiIjxRXMlAAAADElEQVR4nGNwYHIAAAEIAIMYhovOAAAAAElFTkSuQmCC");
1592
2348
  --clio-progress-height: 12px;
1593
2349
  --clio-progress-bg: #bbbbbb;
1594
2350
  --clio-progress-border: 1px solid #000000;
@@ -1603,14 +2359,36 @@
1603
2359
  --clio-label-selected-fg: #ffffff;
1604
2360
  --clio-icon-selected-filter: brightness(0.5);
1605
2361
 
1606
- /* Art: pop-up arrow, check mark and submenu arrow from classic-stylesheets
1607
- (MIT, Niels Sonnich Poulsen); scroll arrows, grips and tabs drawn here
1608
- (tabs: tooling/tab-art.py). */
1609
- --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");
1610
- --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");
1611
- --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");
1612
- --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");
1613
- --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");
2362
+ /* Control Strip, measured from Mac OS 9.0 (npm run capture:platinum, frames
2363
+ strip-expanded, strip-collapsed, strip-slider); Mac OS 8.5's is the same
2364
+ under Drawing Board. 24px: 1px black lines, #c0c0c0 cells with a white
2365
+ inner light, #a0a0a0 then #808080 shade; scroll cells sunken while idle. */
2366
+ --clio-strip-bg: #c0c0c0;
2367
+ --clio-strip-line: 1px solid #000000;
2368
+ --clio-strip-cell-shadow: inset -1px -1px 0 #808080, inset -2px -2px 0 #a0a0a0, inset 1px 1px 0 #c0c0c0, inset 2px 2px 0 #ffffff;
2369
+ --clio-strip-sunken-shadow: none;
2370
+ --clio-strip-sunken-lines:
2371
+ linear-gradient(#808080, #808080) 0 0 / calc(100% - 1px) 1px no-repeat,
2372
+ linear-gradient(#808080, #808080) 0 0 / 1px calc(100% - 1px) no-repeat,
2373
+ linear-gradient(#ffffff, #ffffff) 1px 100% / calc(100% - 1px) 1px no-repeat,
2374
+ linear-gradient(#ffffff, #ffffff) 100% 1px / 1px calc(100% - 1px) no-repeat;
2375
+ --clio-strip-pressed-bg: #808080;
2376
+ --clio-strip-pressed-shadow: inset 2px 2px 0 #404040, inset -2px -2px 0 #c0c0c0;
2377
+ --clio-strip-cap: var(--clio-art-p9-strip-cap);
2378
+ --clio-strip-back: var(--clio-art-p9-strip-back);
2379
+ --clio-strip-forward: var(--clio-art-p9-strip-forward);
2380
+ --clio-strip-menu: var(--clio-art-p9-strip-menu);
2381
+ --clio-strip-handle: var(--clio-art-p9-strip-handle);
2382
+ --clio-strip-tab: var(--clio-art-p9-strip-tab);
2383
+
2384
+ /* Art: pop-up arrow, menu check mark and submenu arrow redrawn from
2385
+ Mac OS 9.0 (tooling/p9-art.py, below); scroll arrows, grips and tabs drawn
2386
+ here (tabs: tooling/tab-art.py). */
2387
+ --clio-art-p-dropdown: var(--clio-art-p9-dropdown);
2388
+ --clio-art-p-dropdown-off: var(--clio-art-p9-dropdown-off);
2389
+ --clio-art-p-check: var(--clio-art-p9-menucheck);
2390
+ --clio-art-p-submenu: var(--clio-art-p9-submenu);
2391
+ --clio-art-p-submenu-on: var(--clio-art-p9-submenu-on);
1614
2392
  --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");
1615
2393
  --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");
1616
2394
  --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");
@@ -1626,83 +2404,109 @@
1626
2404
  --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");
1627
2405
 
1628
2406
  color: #000000;
2407
+ /* Measured from Mac OS 9.0 frames by tooling/p9-art.py. */
2408
+ --clio-art-p9-check: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKBAMAAAB/HNKOAAAAGFBMVEUAAAAAAABVVVV3d3eIiIiqqqrd3d3///8DgOpFAAAAAXRSTlMAQObYZgAAAEBJREFUeJwVxLENgDAQBMH9k4lxQAPvSuiKtr4iRAUW+QVGTDBxAautFyyA+nfIRaU2WynOGl0cSkSMTpvPfvMB4jgPBUEhtgkAAAAASUVORK5CYII=");
2409
+ --clio-art-p9-check-overhang: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAAEAgMAAADZgQaqAAAADFBMVEUAAAAAAAB3d3eqqqoo0Gg2AAAAAXRSTlMAQObYZgAAABBJREFUeJxjcGDYwCTAwAAABXABA8z2jo8AAAAASUVORK5CYII=");
2410
+ --clio-art-p9-radio-on: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMBAMAAACkW0HUAAAAIVBMVEUAAAAAAAAiIiJERERVVVV3d3eIiIiZmZm7u7vd3d3///9FvHqFAAAAAXRSTlMAQObYZgAAAFlJREFUeJwVwUERQEAUgOH/vdlxcni7W8CSQBYh5HBy0kEADeigAQqYoQDG9wEpgJCinavTmKTa9fXLbIWWOYyN3oA8ys/UDCTolkE3OKz1dugzme8voI7wAZyaEH+rqNVXAAAAAElFTkSuQmCC");
2411
+ --clio-art-p9-radio: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMBAMAAACkW0HUAAAAG1BMVEUAAAAAAABERERVVVWIiIiqqqq7u7vd3d3///9N7yqcAAAAAXRSTlMAQObYZgAAAFpJREFUeJwlzLENQEAYBeDn5RJRuZwJiI2IOZTKW0FnB7OICbDC61x1v8I3wAegDYBDM9n+sBjXMHiyigs9+y2V6KgYZxmRSjOwxiwVvF4zu5lPSXJ2ZFzCn32EjiE9A/VQnAAAAABJRU5ErkJggg==");
2412
+ --clio-art-p9-radio-pressed: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMBAMAAACkW0HUAAAAIVBMVEUAAAAAAAAiIiJERERVVVVmZmZ3d3eIiIiZmZm7u7v////rjZGwAAAAAXRSTlMAQObYZgAAAFdJREFUeJwVxKsRgDAURcFz34B/iUaQoQE0ilKogUHREyVQAxKZFnBRfIYVC6QI+n+OymIIyvZK8lZdCkGNXapHfwz3RZiL0kfLwLyZ3CmT3bvDKhhO+ABY6xACXUidtgAAAABJRU5ErkJggg==");
2413
+ --clio-art-p9-checkbox-pressed: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMBAMAAACkW0HUAAAAElBMVEUAAAAAAABVVVV3d3eZmZn///8vNloyAAAAAXRSTlMAQObYZgAAADhJREFUeJxFibENACAMwxzUGegH/f8MxFkdEHQgi2VHzp1pAsO42ttrfLQoW4WM+lYhp8kFW44lHI3DBiNDd4iSAAAAAElFTkSuQmCC");
2414
+ --clio-art-p9-box-face: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJBAMAAAASvxsjAAAAG1BMVEUAAACIiIiZmZmqqqq7u7vMzMzd3d3u7u7///8xpbC+AAAAAXRSTlMAQObYZgAAAClJREFUeJxjbL3AwPCb5exFQcHTTAwCAgIMTIyMjIwMuNgsfw4wMDAAAAO8B0nHBJxRAAAAAElFTkSuQmCC");
2415
+ --clio-art-p9-progress-pole: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAKBAMAAABPkMOvAAAAKlBMVEUAAAAAAFUAAIgzM5lVVVVmZsx3d3eZmZmZmf+qqqq7u7vMzP/d3d3///+RIHmxAAAAAXRSTlMAQObYZgAAAFFJREFUeJwlyrEJgwAQQNF3ciNYiziBIKQ2U7lTpnAAAy4QcYOAtQbRFK/5/GhwyefM1pKPDR3x+q0UtfhY7ism+0j2ufBGFYN/yi8uUbYcMycurhMrVyrlPQAAAABJRU5ErkJggg==");
2416
+ --clio-art-p9-submenu: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAALAQMAAABmnG7VAAAABlBMVEUAAAAAAAClZ7nPAAAAAXRSTlMAQObYZgAAAB9JREFUeJxjaGA4wPCA4QPDD4Y/TH+YfjB9YHrAdAAAZSIJk3jnGdQAAAAASUVORK5CYII=");
2417
+ --clio-art-p9-submenu-on: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAALAQMAAABmnG7VAAAABlBMVEUAAAD///+l2Z/dAAAAAXRSTlMAQObYZgAAAB9JREFUeJxjaGA4wPCA4QPDD4Y/TH+YfjB9YHrAdAAAZSIJk3jnGdQAAAAASUVORK5CYII=");
2418
+ --clio-art-p9-dropdown: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAKAQMAAABCAtZOAAAABlBMVEUAAAAAAAClZ7nPAAAAAXRSTlMAQObYZgAAABlJREFUeJxjEGDSYHJh+McAAv8YahgsGAQAHygDQTD2iPAAAAAASUVORK5CYII=");
2419
+ --clio-art-p9-dropdown-off: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAKAQMAAABCAtZOAAAABlBMVEUAAACIiIhaeOqmAAAAAXRSTlMAQObYZgAAABlJREFUeJxjEGDSYHJh+McAAv8YahgsGAQAHygDQTD2iPAAAAAASUVORK5CYII=");
2420
+ --clio-art-p9-menucheck: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAICAYAAAArzdW1AAAAP0lEQVR42mNgIAyMiFHwnxgFK2ECLgwMDKFYFJxB1nUGKmiEpOAOAwODALKilVCJ/7gUwMAdQgoYoBIrsSkAAK+iEhBS63EWAAAAAElFTkSuQmCC");
1629
2421
  }
1630
2422
 
1631
2423
  /* ---- Window ---------------------------------------------------------------- */
1632
2424
  /* The strip's inner edge below the title bar: #999 on the left, white on the
1633
2425
  right and bottom (GUIdebook Appearance window, x=4 and x=width-5). */
1634
- [data-era="platinum"] .window:not(.inactive) {
2426
+ :is([data-era="platinum"], [data-era="drawingboard"]) .window:not(.inactive) {
1635
2427
  background:
2428
+ linear-gradient(#ffffff, #ffffff) 0 0 / calc(100% - 1px) 1px no-repeat,
2429
+ linear-gradient(#ffffff, #ffffff) 0 0 / 1px calc(100% - 1px) no-repeat,
2430
+ linear-gradient(#999999, #999999) 1px 100% / calc(100% - 1px) 1px no-repeat,
2431
+ linear-gradient(#999999, #999999) 100% 1px / 1px calc(100% - 1px) no-repeat,
1636
2432
  linear-gradient(#999999, #999999) 3px 19px / 1px calc(100% - 22px) no-repeat,
1637
2433
  linear-gradient(#ffffff, #ffffff) right 3px top 20px / 1px calc(100% - 23px) no-repeat,
1638
2434
  linear-gradient(#ffffff, #ffffff) left 3px bottom 3px / calc(100% - 6px) 1px no-repeat,
1639
2435
  var(--clio-window-bg);
1640
2436
  }
1641
2437
 
1642
- [data-era="platinum"] .window-pane {
2438
+ :is([data-era="platinum"], [data-era="drawingboard"]) .window-pane {
1643
2439
  border: 1px solid #000000;
1644
2440
  background: var(--clio-pane-bg);
1645
2441
  }
1646
2442
 
1647
- [data-era="platinum"] .window > .title-bar + .window-pane,
1648
- [data-era="platinum"] .window > .details-bar + .window-pane {
2443
+ :is([data-era="platinum"], [data-era="drawingboard"]) .window > .title-bar + .window-pane,
2444
+ :is([data-era="platinum"], [data-era="drawingboard"]) .window > .details-bar + .window-pane {
1649
2445
  border-top: 0;
1650
2446
  }
1651
2447
 
1652
- [data-era="platinum"] .window > .details-bar {
2448
+ :is([data-era="platinum"], [data-era="drawingboard"]) .window > .details-bar {
1653
2449
  border-left: 1px solid #000000;
1654
2450
  border-right: 1px solid #000000;
1655
2451
  }
1656
2452
 
1657
2453
  /* The ridged bar. Its covers read the slot sizes the .title-bar itself
1658
2454
  computes, so this is a rule, not a token. */
1659
- [data-era="platinum"] .title-bar {
2455
+ :is([data-era="platinum"], [data-era="drawingboard"]) .title-bar {
2456
+ /* Six ridges: white lines, and #777 lines one pixel to their right (the
2457
+ ridge's shade), between the box slots (Mac OS 9.0, both ends measured). */
2458
+ --clio-tb-ridges: calc(100% - var(--clio-tb-close) - var(--clio-tb-zoom) - var(--clio-tb-shade) - 1px);
1660
2459
  background:
1661
- linear-gradient(#cccccc, #cccccc) left top / var(--clio-tb-close) 17px no-repeat,
1662
- linear-gradient(#cccccc, #cccccc) right top / calc(var(--clio-tb-zoom) + var(--clio-tb-shade) + 1px) 17px no-repeat,
1663
2460
  linear-gradient(to bottom, #cccccc 0 1px, transparent 1px 13px, #cccccc 13px 17px, #999999 17px 18px),
1664
- repeating-linear-gradient(to bottom, #ffffff 0 1px, #777777 1px 2px) 0 1px / 100% 2px repeat-y,
2461
+ repeating-linear-gradient(to bottom, #ffffff 0 1px, transparent 1px 2px) var(--clio-tb-close) 1px / var(--clio-tb-ridges) 2px repeat-y,
2462
+ 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,
1665
2463
  #cccccc;
1666
2464
  }
1667
2465
 
1668
- [data-era="platinum"] .window.inactive > .title-bar,
1669
- [data-era="platinum"] .inactive-title-bar {
2466
+ :is([data-era="platinum"], [data-era="drawingboard"]) .window.inactive > .title-bar,
2467
+ :is([data-era="platinum"], [data-era="drawingboard"]) .inactive-title-bar {
1670
2468
  background: var(--clio-titlebar-inactive-bg);
1671
2469
  }
1672
2470
 
1673
2471
  /* The title is cut out of the ridges in the frame grey, drawn wide. */
1674
- [data-era="platinum"] .title-bar > :is(.title, h1, h2, h3) {
1675
- transform: translate(-1px, -1px);
2472
+ :is([data-era="platinum"], [data-era="drawingboard"]) .title-bar > :is(.title, h1, h2, h3) {
2473
+ /* Mac OS 9.0: the cut-out spans the ridges, 4px before the title and 3px
2474
+ after it, and is centred 1px left of the bar's middle; Charcoal sits one
2475
+ row low in it. */
2476
+ padding: 1px 3px 0 4px;
2477
+ transform: translateX(-1px);
2478
+ /* The ridge's #777 lines are its white lines one pixel to the right, and so
2479
+ is their cut: show them in the cut-out's first column, cover them one
2480
+ column past its last. */
2481
+ background:
2482
+ repeating-linear-gradient(to bottom, transparent 0 1px, #777777 1px 2px) 0 0 / 1px 12px no-repeat,
2483
+ #cccccc;
2484
+ overflow: clip; /* still truncates with an ellipsis */
2485
+ overflow-clip-margin: 1px; /* but lets the column past the end show */
1676
2486
  }
1677
2487
 
1678
2488
  /* The close, zoom and collapse boxes: an 11px bevelled square sunk into the
1679
2489
  ridges, no paper isolation. */
1680
- [data-era="platinum"] .title-bar > :is(button, .close, .close-box, .resize, .resize-box, .zoom, .shade, .shade-box, .collapse) {
2490
+ :is([data-era="platinum"], [data-era="drawingboard"]) .title-bar > :is(button, .close, .close-box, .resize, .resize-box, .zoom, .shade, .shade-box, .collapse) {
1681
2491
  margin-top: 1px;
1682
2492
  border-color: #222222;
1683
- background: linear-gradient(to bottom right, #999999, #ffffff);
2493
+ background: var(--clio-art-p9-box-face) 0 0 / 9px 9px no-repeat;
1684
2494
  box-shadow:
1685
2495
  -1px -1px 0 #888888,
1686
2496
  -1px 0 0 #888888,
1687
2497
  0 -1px 0 #888888,
1688
2498
  1px 1px 0 #ffffff,
1689
2499
  1px 0 0 #ffffff,
1690
- 0 1px 0 #ffffff,
1691
- inset 1px 1px 0 #cccccc,
1692
- inset -1px -1px 0 #888888;
2500
+ 0 1px 0 #ffffff;
1693
2501
  }
1694
2502
 
1695
- [data-era="platinum"] .title-bar > :is(button, .close, .close-box, .resize, .resize-box, .zoom, .shade, .shade-box, .collapse):is(:active, .active) {
2503
+ :is([data-era="platinum"], [data-era="drawingboard"]) .title-bar > :is(button, .close, .close-box, .resize, .resize-box, .zoom, .shade, .shade-box, .collapse):is(:active, .active) {
1696
2504
  background: linear-gradient(to bottom right, #444444, #bbbbbb);
1697
2505
  box-shadow: -1px -1px 0 #888888, 1px 1px 0 #ffffff, inset -1px -1px 0 #999999;
1698
2506
  }
1699
2507
 
1700
- [data-era="platinum"] .title-bar > :is(.close, .close-box)::before {
1701
- display: none;
1702
- }
1703
-
1704
2508
  /* Zoom: a six-pixel lower-left corner inside the frame. */
1705
- [data-era="platinum"] .title-bar > :is(.resize, .resize-box, .zoom)::before {
2509
+ :is([data-era="platinum"], [data-era="drawingboard"]) .title-bar > :is(.resize, .resize-box, .zoom)::before {
1706
2510
  top: 0;
1707
2511
  left: 0;
1708
2512
  width: 6px;
@@ -1715,7 +2519,7 @@
1715
2519
  }
1716
2520
 
1717
2521
  /* WindowShade: two nine-pixel rules. */
1718
- [data-era="platinum"] .title-bar > :is(.shade, .shade-box, .collapse)::before {
2522
+ :is([data-era="platinum"], [data-era="drawingboard"]) .title-bar > :is(.shade, .shade-box, .collapse)::before {
1719
2523
  content: "";
1720
2524
  position: absolute;
1721
2525
  top: 3px;
@@ -1728,100 +2532,118 @@
1728
2532
  }
1729
2533
 
1730
2534
  /* Background window: flat grey, #555 frame, controls erased, title kept. */
1731
- [data-era="platinum"] .window.inactive {
2535
+ :is([data-era="platinum"], [data-era="drawingboard"]) .window.inactive {
1732
2536
  --clio-button-shadow: 0 0 0 0 transparent;
1733
2537
  --clio-field-shadow: none;
1734
2538
  --clio-check-shadow: none;
1735
2539
  border-color: #555555;
1736
2540
  background: #dddddd;
1737
- box-shadow: 1px 1px 0 #555555, inset 1px 1px 0 #eeeeee, inset -1px -1px 0 #999999;
2541
+ box-shadow: 1px 1px 0 #555555; /* flat: no light or shade inside (Mac OS 9.0 Finder, behind Appearance) */
1738
2542
  color: #555555;
1739
2543
  }
1740
2544
 
1741
- [data-era="platinum"] .window.inactive > .title-bar,
1742
- [data-era="platinum"] .inactive-title-bar {
2545
+ :is([data-era="platinum"], [data-era="drawingboard"]) .window.inactive > .title-bar,
2546
+ :is([data-era="platinum"], [data-era="drawingboard"]) .inactive-title-bar {
1743
2547
  border-bottom-color: #555555;
1744
2548
  --clio-title-bg: #dddddd;
1745
2549
  }
1746
2550
 
1747
- [data-era="platinum"] .window.inactive > .title-bar > :is(.title, h1, h2, h3),
1748
- [data-era="platinum"] .inactive-title-bar > :is(.title, h1, h2, h3) {
2551
+ :is([data-era="platinum"], [data-era="drawingboard"]) .window.inactive > .title-bar > :is(.title, h1, h2, h3),
2552
+ :is([data-era="platinum"], [data-era="drawingboard"]) .inactive-title-bar > :is(.title, h1, h2, h3) {
1749
2553
  background: #dddddd;
1750
2554
  }
1751
2555
 
1752
2556
  /* ---- Default button ring: 1px black, a #aaa bevel band, 1px gap. -------- */
1753
- [data-era="platinum"] :is(.default, .btn-default) {
2557
+ :is([data-era="platinum"], [data-era="drawingboard"]) :is(.default, .btn-default) {
1754
2558
  position: relative;
1755
2559
  box-shadow: var(--clio-button-shadow);
1756
2560
  }
1757
2561
 
1758
- [data-era="platinum"] :is(.default, .btn-default):not(:disabled, .disabled):is(:active, .active) {
2562
+ :is([data-era="platinum"], [data-era="drawingboard"]) :is(.default, .btn-default):not(:disabled, .disabled):is(:active, .active) {
1759
2563
  box-shadow: var(--clio-button-active-shadow);
1760
2564
  }
1761
2565
 
1762
- [data-era="platinum"] :is(.default, .btn-default)::before {
2566
+ :is([data-era="platinum"], [data-era="drawingboard"]) :is(.default, .btn-default)::before {
1763
2567
  content: "";
1764
2568
  position: absolute;
1765
- inset: -3px;
1766
- border-radius: 3px;
1767
- box-shadow:
1768
- 0 0 0 1px #000000,
1769
- inset 1px 1px 0 #dddddd,
1770
- inset -1px -1px 0 #777777,
1771
- inset 0 0 0 2px #aaaaaa;
2569
+ border-width: 1px; /* longhands: the shorthand would reset the ring, which is a border-image */
2570
+ border-style: solid;
2571
+ border-color: transparent;
2572
+ inset: -4px;
2573
+ border-radius: 0;
2574
+ box-shadow: none;
1772
2575
  pointer-events: none;
1773
2576
  }
1774
2577
 
1775
- [data-era="platinum"] :is(.default, .btn-default):is(:disabled, .disabled)::before {
2578
+ :is([data-era="platinum"], [data-era="drawingboard"]) :is(.default, .btn-default):is(:disabled, .disabled)::before {
1776
2579
  box-shadow: 0 0 0 1px #888888;
1777
2580
  }
1778
2581
 
1779
- [data-era="platinum"] :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) {
1780
- background: #dddddd;
2582
+ :is([data-era="platinum"], [data-era="drawingboard"]) :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) {
2583
+ background: transparent;
1781
2584
  box-shadow: none;
2585
+ border-image: var(--clio-button-frame-disabled) var(--clio-button-frame-slice) fill / calc(var(--clio-button-frame-slice) * 1px) stretch;
1782
2586
  }
1783
2587
 
1784
2588
  /* ---- Radio buttons: drawn, not cut from a screenshot ------------------------ */
1785
- [data-era="platinum"] input[type="radio"] {
1786
- border: 1px solid #000000;
1787
- border-radius: 50%;
1788
- background: linear-gradient(to bottom right, #ffffff, #888888);
1789
- box-shadow: inset 1px 1px 0 #dddddd, inset -1px -1px 0 #888888;
2589
+ /* Check box mark: inside the frame, plus the two columns that overhang it. */
2590
+ :is([data-era="platinum"], [data-era="drawingboard"]) input[type="checkbox"]:checked::after {
2591
+ content: "";
2592
+ position: absolute;
2593
+ top: 0;
2594
+ right: -3px;
2595
+ width: 2px;
2596
+ height: 4px;
2597
+ background: var(--clio-art-p9-check-overhang) 0 0 / 2px 4px no-repeat;
1790
2598
  }
1791
2599
 
1792
- [data-era="platinum"] input[type="radio"]:checked {
1793
- background:
1794
- radial-gradient(circle, #000000 0 2.5px, transparent 3px),
1795
- linear-gradient(to bottom right, #555555, #ffffff);
2600
+ /* ---- Radio buttons: Mac OS 9's shaded ball (pressed states drawn here). ---- */
2601
+ :is([data-era="platinum"], [data-era="drawingboard"]) input[type="radio"] {
2602
+ border: 0;
2603
+ border-radius: 0;
2604
+ background: var(--clio-art-p9-radio) 0 0 / 12px 12px no-repeat;
2605
+ box-shadow: none;
1796
2606
  }
1797
2607
 
1798
- [data-era="platinum"] input[type="radio"]:not(:disabled):active {
1799
- background: linear-gradient(to bottom right, #444444, #bbbbbb);
2608
+ :is([data-era="platinum"], [data-era="drawingboard"]) input[type="radio"]:checked {
2609
+ background: var(--clio-art-p9-radio-on) 0 0 / 12px 12px no-repeat;
1800
2610
  }
1801
2611
 
1802
- [data-era="platinum"] input[type="radio"]:checked:not(:disabled):active {
2612
+ :is([data-era="platinum"], [data-era="drawingboard"]) input[type="radio"]:not(:disabled):active {
2613
+ background: var(--clio-art-p9-radio-pressed) 0 0 / 12px 12px no-repeat;
2614
+ }
2615
+
2616
+ /* Held while on: not captured; the on ball stays (inferred). */
2617
+ :is([data-era="platinum"], [data-era="drawingboard"]) input[type="radio"]:checked:not(:disabled):active {
2618
+ background: var(--clio-art-p9-radio-on) 0 0 / 12px 12px no-repeat;
2619
+ }
2620
+
2621
+ /* Held while checked: the mark over the held box (inferred; only the empty
2622
+ box was captured held). */
2623
+ :is([data-era="platinum"], [data-era="drawingboard"]) input[type="checkbox"]:checked:not(:disabled):active {
1803
2624
  background:
1804
- radial-gradient(circle, #000000 0 2.5px, transparent 3px),
1805
- linear-gradient(to bottom right, #444444, #bbbbbb);
2625
+ var(--clio-art-p9-check) 0 0 / 10px 10px no-repeat padding-box,
2626
+ var(--clio-art-p9-checkbox-pressed) -1px -1px / 12px 12px no-repeat;
1806
2627
  }
1807
2628
 
1808
- [data-era="platinum"] input[type="checkbox"]:not(:disabled):active {
1809
- background-color: #777777;
1810
- box-shadow: inset 1px 1px 0 #555555, inset -1px -1px 0 #999999;
2629
+ :is([data-era="platinum"], [data-era="drawingboard"]) input[type="checkbox"]:not(:disabled):active {
2630
+ border-color: transparent;
2631
+ background: var(--clio-art-p9-checkbox-pressed) -1px -1px / 12px 12px no-repeat;
2632
+ box-shadow: none;
1811
2633
  }
1812
2634
 
1813
- [data-era="platinum"] :is(input[type="checkbox"], input[type="radio"]):disabled {
2635
+ :is([data-era="platinum"], [data-era="drawingboard"]) :is(input[type="checkbox"], input[type="radio"]):disabled {
1814
2636
  border-color: #888888;
1815
2637
  opacity: 0.6;
1816
2638
  }
1817
2639
 
1818
2640
  /* ---- Menus ------------------------------------------------------------------- */
1819
- [data-era="platinum"] :is(.menu-bar, [role="menubar"], [role="menu-bar"]) > li > :is(button, a, span) {
2641
+ :is([data-era="platinum"], [data-era="drawingboard"]) :is(.menu-bar, [role="menubar"], [role="menu-bar"]) > li > :is(button, a, span) {
1820
2642
  font-weight: 700;
1821
2643
  }
1822
2644
 
1823
- [data-era="platinum"] :is(.menu, [role="menu"]) > li:is(.checked, [aria-checked="true"])::before,
1824
- [data-era="platinum"] :is(.menu, [role="menu"]) > li > :is([aria-checked="true"], .checked)::before {
2645
+ :is([data-era="platinum"], [data-era="drawingboard"]) :is(.menu, [role="menu"]) > li:is(.checked, [aria-checked="true"])::before,
2646
+ :is([data-era="platinum"], [data-era="drawingboard"]) :is(.menu, [role="menu"]) > li > :is([aria-checked="true"], .checked)::before {
1825
2647
  left: 7px;
1826
2648
  width: 9px;
1827
2649
  height: 8px;
@@ -1829,32 +2651,32 @@
1829
2651
  background: var(--clio-art-p-check) 0 0 / 9px 8px no-repeat;
1830
2652
  }
1831
2653
 
1832
- [data-era="platinum"] :is(.menu, [role="menu"]) > li:is(.checked, [aria-checked="true"]):is(:hover, :focus-within, .active)::before,
1833
- [data-era="platinum"] :is(.menu, [role="menu"]) > li > :is([aria-checked="true"], .checked):is(:hover, :focus-visible, .active)::before {
2654
+ :is([data-era="platinum"], [data-era="drawingboard"]) :is(.menu, [role="menu"]) > li:is(.checked, [aria-checked="true"]):is(:hover, :focus-within, .active)::before,
2655
+ :is([data-era="platinum"], [data-era="drawingboard"]) :is(.menu, [role="menu"]) > li > :is([aria-checked="true"], .checked):is(:hover, :focus-visible, .active)::before {
1834
2656
  filter: invert(1);
1835
2657
  }
1836
2658
 
1837
- [data-era="platinum"] :is(.menu, [role="menu"]) > li:has(> :is(.menu, ul[role="menu"]))::after,
1838
- [data-era="platinum"] :is(.menu, [role="menu"]) > li > [aria-haspopup="true"]::after {
2659
+ :is([data-era="platinum"], [data-era="drawingboard"]) :is(.menu, [role="menu"]) > li:has(> :is(.menu, ul[role="menu"]))::after,
2660
+ :is([data-era="platinum"], [data-era="drawingboard"]) :is(.menu, [role="menu"]) > li > [aria-haspopup="true"]::after {
1839
2661
  background-image: var(--clio-art-p-submenu);
1840
2662
  }
1841
2663
 
1842
- [data-era="platinum"] :is(.menu, [role="menu"]) > li:has(> :is(.menu, ul[role="menu"])):is(:hover, :focus-within, .active)::after {
2664
+ :is([data-era="platinum"], [data-era="drawingboard"]) :is(.menu, [role="menu"]) > li:has(> :is(.menu, ul[role="menu"])):is(:hover, :focus-within, .active)::after {
1843
2665
  background-image: var(--clio-art-p-submenu-on);
1844
2666
  }
1845
2667
 
1846
- [data-era="platinum"] :is(.menu, [role="menu"]) > li.divider {
2668
+ :is([data-era="platinum"], [data-era="drawingboard"]) :is(.menu, [role="menu"]) > li.divider {
1847
2669
  border-bottom: 0;
1848
2670
  box-shadow: inset 0 -2px 0 #dddddd, inset 0 -3px 0 #ffffff, inset 0 -4px 0 #888888;
1849
2671
  }
1850
2672
 
1851
2673
  /* ---- Tabs: drawn from the measured Mac OS 9 tab (tooling/tab-art.py) ------ */
1852
- [data-era="platinum"] :is([role="tablist"], .tabs) {
2674
+ :is([data-era="platinum"], [data-era="drawingboard"]) :is([role="tablist"], .tabs) {
1853
2675
  gap: 0;
1854
2676
  padding: 0 4px;
1855
2677
  }
1856
2678
 
1857
- [data-era="platinum"] :is([role="tablist"], .tabs) > :is([role="tab"], li, button) {
2679
+ :is([data-era="platinum"], [data-era="drawingboard"]) :is([role="tablist"], .tabs) > :is([role="tab"], li, button) {
1858
2680
  min-width: 48px;
1859
2681
  height: 24px;
1860
2682
  min-height: 0;
@@ -1871,13 +2693,13 @@
1871
2693
  line-height: 18px;
1872
2694
  }
1873
2695
 
1874
- [data-era="platinum"] :is([role="tablist"], .tabs) > :is([role="tab"], li, button):not(:disabled):active {
2696
+ :is([data-era="platinum"], [data-era="drawingboard"]) :is([role="tablist"], .tabs) > :is([role="tab"], li, button):not(:disabled):active {
1875
2697
  border-image-source: var(--clio-art-p-tab-pressed);
1876
2698
  background: transparent;
1877
2699
  color: #ffffff;
1878
2700
  }
1879
2701
 
1880
- [data-era="platinum"] :is([role="tablist"], .tabs) > :is([role="tab"], li, button):is([aria-selected="true"], .active) {
2702
+ :is([data-era="platinum"], [data-era="drawingboard"]) :is([role="tablist"], .tabs) > :is([role="tab"], li, button):is([aria-selected="true"], .active) {
1881
2703
  z-index: 1;
1882
2704
  padding-top: 0;
1883
2705
  border-image-source: var(--clio-art-p-tab-selected);
@@ -1885,28 +2707,1006 @@
1885
2707
  color: #000000;
1886
2708
  }
1887
2709
 
1888
- [data-era="platinum"] :is([role="tabpanel"], .tab-panel) {
2710
+ :is([data-era="platinum"], [data-era="drawingboard"]) :is([role="tabpanel"], .tab-panel) {
1889
2711
  border-top: 0;
1890
2712
  box-shadow: inset 1px 0 0 #ffffff, inset -1px -1px 0 #888888;
1891
2713
  }
1892
2714
 
1893
2715
  /* ---- Scroll arrow art sits on the bevelled box ---------------------------- */
1894
- [data-era="platinum"] :is(.window-pane, .listbox, [role="listbox"], textarea, select[multiple], .clio-scroll, .clio-scrollbars *)::-webkit-scrollbar-button,
1895
- [data-era="platinum"]:is(html.clio-scrollbars)::-webkit-scrollbar-button {
2716
+ :is([data-era="platinum"], [data-era="drawingboard"]) :is(.window-pane, .listbox, [role="listbox"], textarea, select[multiple], .clio-scroll, .clio-scrollbars *)::-webkit-scrollbar-button,
2717
+ :is([data-era="platinum"], [data-era="drawingboard"]):is(html.clio-scrollbars)::-webkit-scrollbar-button {
1896
2718
  background-position: 1px 1px;
1897
2719
  background-size: 14px 14px;
1898
2720
  }
1899
2721
 
1900
- [data-era="platinum"] :is(.window-pane, .listbox, [role="listbox"], textarea, select[multiple], .clio-scroll, .clio-scrollbars *)::-webkit-scrollbar-button:active,
1901
- [data-era="platinum"]:is(html.clio-scrollbars)::-webkit-scrollbar-button:active {
2722
+ :is([data-era="platinum"], [data-era="drawingboard"]) :is(.window-pane, .listbox, [role="listbox"], textarea, select[multiple], .clio-scroll, .clio-scrollbars *)::-webkit-scrollbar-button:active,
2723
+ :is([data-era="platinum"], [data-era="drawingboard"]):is(html.clio-scrollbars)::-webkit-scrollbar-button:active {
1902
2724
  background-color: #666666;
1903
2725
  box-shadow: inset 1px 1px #444444, inset -1px -1px #888888;
1904
2726
  }
1905
2727
 
1906
- [data-era="platinum"] :is(fieldset) > legend {
2728
+ :is([data-era="platinum"], [data-era="drawingboard"]) :is(fieldset) > legend {
1907
2729
  background: var(--clio-pane-bg);
1908
2730
  }
1909
2731
 
2732
+ :is([data-era="platinum"], [data-era="drawingboard"]) fieldset {
2733
+ background:
2734
+ linear-gradient(var(--clio-pane-bg), var(--clio-pane-bg)) padding-box,
2735
+ var(--clio-art-p9-group-dots) 0 0 / 2px 2px fixed border-box;
2736
+ image-rendering: pixelated; /* keep the dots from blending into one grey */
2737
+ }
2738
+
2739
+ /* The title's gap opens 13px after the corner (General Controls, "Desktop"). */
2740
+ :is([data-era="platinum"], [data-era="drawingboard"]) fieldset > legend {
2741
+ margin-left: 2px;
2742
+ }
2743
+
2744
+ /* Disabled pop-up menu: #888 frame, flat face, the #aaa divider and a grey
2745
+ arrow (Mac OS 9.0 Appearance, "Position Automatically"). Browsers also fade
2746
+ a disabled <select>; Mac OS did not. */
2747
+ :is([data-era="platinum"], [data-era="drawingboard"]) select:disabled {
2748
+ border-color: #888888;
2749
+ background:
2750
+ var(--clio-art-p-dropdown-off) right 7px top 4px / 7px 10px no-repeat,
2751
+ linear-gradient(#aaaaaa, #aaaaaa) right 20px top 0 / 1px 100% no-repeat,
2752
+ #dddddd;
2753
+ background-clip: padding-box;
2754
+ box-shadow: none;
2755
+ color: #888888;
2756
+ opacity: 1;
2757
+ border-image-source: var(--clio-art-frame-p9-popup-disabled);
2758
+ }
2759
+
2760
+ /* The face stays inside the frame, so the rounded corners show what is behind. */
2761
+ :is([data-era="platinum"], [data-era="drawingboard"]) select {
2762
+ background-clip: padding-box;
2763
+ }
2764
+
2765
+ /* Indeterminate progress (no value): Mac OS 9's stripes, one 16px period
2766
+ repeated (Finder copy window). Static: clio.css adds no motion. */
2767
+ :is([data-era="platinum"], [data-era="drawingboard"]) progress:indeterminate,
2768
+ :is([data-era="platinum"], [data-era="drawingboard"]) progress:indeterminate::-webkit-progress-bar {
2769
+ background: var(--clio-art-p9-progress-pole) 0 0 / 16px 10px repeat-x;
2770
+ }
2771
+
2772
+ :is([data-era="platinum"], [data-era="drawingboard"]) .title-bar > :is(.title, h1, h2, h3)::after {
2773
+ content: "";
2774
+ position: absolute;
2775
+ top: 0;
2776
+ right: -1px;
2777
+ width: 1px;
2778
+ height: 12px;
2779
+ background: repeating-linear-gradient(to bottom, transparent 0 1px, #cccccc 1px 2px);
2780
+ }
2781
+
2782
+ :is([data-era="platinum"], [data-era="drawingboard"]) .window.inactive > .title-bar > :is(.title, h1, h2, h3)::after,
2783
+ :is([data-era="platinum"], [data-era="drawingboard"]) .inactive-title-bar > :is(.title, h1, h2, h3)::after {
2784
+ content: none;
2785
+ }
2786
+
2787
+ /* ---- Antialiasing as Mac OS blends it -------------------------------------
2788
+ Window titles and push button labels in their own colours on their own
2789
+ backgrounds take the exact palettes (src/00-fonts.css). */
2790
+ :is([data-era="platinum"], [data-era="drawingboard"]) .title-bar > :is(.title, h1, h2, h3) {
2791
+ font-palette: --clio-aa-p9-title;
2792
+ }
2793
+
2794
+ :is([data-era="platinum"], [data-era="drawingboard"]) :is(.window.inactive > .title-bar, .inactive-title-bar) > :is(.title, h1, h2, h3) {
2795
+ font-palette: --clio-aa-p9-title-inactive;
2796
+ }
2797
+
2798
+ :is([data-era="platinum"], [data-era="drawingboard"]) :is(button, .btn, .btn-default, input[type="button"], input[type="submit"], input[type="reset"]):not(.icon, [role="tab"], [role="menuitem"], .title-bar > *, .control-strip *) {
2799
+ font-family: var(--clio-font-button);
2800
+ font-palette: --clio-aa-p9-button;
2801
+ }
2802
+
2803
+ :is([data-era="platinum"], [data-era="drawingboard"]) :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) {
2804
+ font-palette: --clio-aa-p9-button-held;
2805
+ }
2806
+
2807
+ :is([data-era="platinum"], [data-era="drawingboard"]) :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) {
2808
+ font-palette: --clio-aa-p9-button-disabled;
2809
+ }
2810
+
2811
+ /* Mac OS 8.5 "Drawing Board" (the beta theme Apple shipped in 8.5b6 and
2812
+ withdrew). Applies inside any element with data-era="drawingboard"; it shares
2813
+ the Platinum layer's structure (both are Appearance Manager themes) and
2814
+ replaces its colours, geometry and art. clio.drawingboard.css is a build of
2815
+ this file with Drawing Board as the page default.
2816
+ Values: Infinite Mac, Mac OS 8.5 with the theme installed
2817
+ (`npm run capture:drawingboard`), read 1:1. The art is the theme's own:
2818
+ its 'pxm#' pictures and 'ppat' patterns (papers and the pattern pens the
2819
+ theme draws its pencil lines with), written to art/drawingboard/ by
2820
+ tooling/db-art.py and tooling/db-pens.py and placed as Mac OS places them,
2821
+ each found 1:1 in the capture. The stylesheet loads them from art/ beside
2822
+ itself, as it loads fonts/. See EVIDENCE.md. */
2823
+ [data-era="drawingboard"] {
2824
+ /* Titles sit on the textured title bar, where no palette can know the
2825
+ background: they keep Clio Sans '97 Title in the text colour. */
2826
+ --clio-font-window-title: Charcoal, "Charcoal CY", "Clio Sans '97 Title", "Clio Sans '97", "Clio Asap", Geneva, "Helvetica Neue", Arial, sans-serif;
2827
+ /* Where a 128px theme pattern starts. Mac OS sometimes starts one half a
2828
+ tile (64px) earlier, depending on where the window sits on screen; a page
2829
+ matching a particular screen can set 64px on that window or control. */
2830
+ --clio-db-phase: 0px;
2831
+ --clio-ink: #313131;
2832
+ --clio-paper: #e7ded6;
2833
+ --clio-face: #cdc6bd;
2834
+ --clio-disabled: #8c8c8c;
2835
+ --clio-selection-bg: #ccccff;
2836
+
2837
+ --clio-border: 1px solid #555555;
2838
+
2839
+ /* Window: the theme's own nine frame pictures (see the Window rules), on
2840
+ the content paper. The frame is 6px on each side inside the outline; the
2841
+ title bar's 22 rows include the outline and the #555 rule. */
2842
+ --clio-window-bg: #cdc6bd;
2843
+ --clio-pane-bg: #e7ded6;
2844
+ --clio-window-border: 0 none;
2845
+ --clio-window-shadow: none;
2846
+ --clio-window-padding: 0 6px 6px;
2847
+
2848
+ /* Title bar: 22 rows of the frame picture. Boxes 11px, 5px below the top. */
2849
+ --clio-titlebar-height: 22px;
2850
+ --clio-titlebar-padding: 4px 0 0;
2851
+ --clio-titlebar-margin: 0 -1px;
2852
+ --clio-titlebar-border: 0 none;
2853
+ --clio-titlebar-row: 16px;
2854
+ --clio-titlebar-inactive-bg: #cdc6bd;
2855
+ --clio-title-bg: transparent;
2856
+ --clio-title-fg: #313131;
2857
+ --clio-title-inactive-fg: #9f9a94;
2858
+
2859
+ /* Menu bar: 22px of #cec6b5 paper, no rule under it. Menus: #ddd paper,
2860
+ #333 outline, 18px items (20px with an icon); the chosen title and item
2861
+ are underlined in pencil: left, stretched centre and right pieces, 16px
2862
+ in from the menu's left, 15px from its right (Control Panels; the Appearance
2863
+ pop-up's sits 16px from both), 1px above the item's foot. */
2864
+ --clio-menubar-height: 22px;
2865
+ --clio-menubar-bg: url("art/drawingboard/menubar.png") 0 0 / 630px 27px repeat-x, #cec6b5;
2866
+ --clio-menubar-border: 0 none;
2867
+ --clio-menubar-shadow: none;
2868
+ --clio-menu-title-active-bg:
2869
+ var(--clio-art-db-title-underline-left) left 0 bottom 3px / 15px 3px no-repeat,
2870
+ var(--clio-art-db-title-underline-right) right 0 bottom 3px / 16px 3px no-repeat,
2871
+ var(--clio-art-db-title-underline-tiled) left 15px bottom 3px / calc(100% - 31px) 4px no-repeat;
2872
+ --clio-menu-title-active-fg: #313131;
2873
+ --clio-menu-title-active-shadow: none;
2874
+ /* Menus: the theme's paper inside a pencil frame (see the Menus rules). */
2875
+ --clio-menu-bg: #dddddd;
2876
+ --clio-menu-border: 1px solid transparent;
2877
+ --clio-menu-border-top-width: 1px;
2878
+ --clio-menu-shadow: none;
2879
+ --clio-menu-item-height: 18px;
2880
+ --clio-menu-item-active-bg:
2881
+ var(--clio-art-db-menu-underline-left) left 16px bottom 1px / 29px 3px no-repeat,
2882
+ var(--clio-art-db-menu-underline-right) right 15px bottom 1px / 36px 3px no-repeat,
2883
+ var(--clio-art-db-menu-underline-tiled) left 45px bottom 1px / calc(100% - 96px) 3px no-repeat;
2884
+ --clio-menu-item-active-fg: #313131;
2885
+ --clio-menu-item-active-shadow: none;
2886
+ --clio-menu-separator: none;
2887
+ --clio-menu-separator-height: 9px;
2888
+
2889
+ /* Push buttons: four pattern pens (ppat 7070-7072, 7079) tiled from the last
2890
+ column and row, the corner pixels they leave (tooling/db-pens.py), the
2891
+ hatched ButtonFaceCorner in the lower right of the #cec6b5 face, and a
2892
+ 1px pencil shade right and below (the Buttons rules). Held: other pens
2893
+ for the foot and right side, tiled from the second column and row, and no
2894
+ hatch ("Save Theme…" held). */
2895
+ --clio-button-bg:
2896
+ url("art/drawingboard/pens/button-left.png") left 0 bottom 1px / 1px 16px repeat-y border-box,
2897
+ url("art/drawingboard/pens/button-right.png") right 0 bottom 1px / 1px 16px repeat-y border-box,
2898
+ url("art/drawingboard/pens/button-top.png") right 1px top 0 / 64px 1px repeat-x border-box,
2899
+ url("art/drawingboard/pens/button-bottom.png") right 1px bottom 0 / 64px 1px repeat-x border-box,
2900
+ var(--clio-art-db-button-corner) right 0 bottom / 24px 24px no-repeat padding-box,
2901
+ #cec6b5;
2902
+ --clio-button-fg: #313131;
2903
+ /* The label sits 1px lower than Platinum's (themes tab, "Save Theme…"). */
2904
+ --clio-button-padding: 2px 10px 0;
2905
+ --clio-button-border: 1px solid transparent;
2906
+ --clio-button-radius: 0;
2907
+ --clio-button-shadow: none;
2908
+ --clio-button-active-bg:
2909
+ url("art/drawingboard/pens/button-held-left.png") left 0 bottom 1px / 1px 16px repeat-y border-box,
2910
+ url("art/drawingboard/pens/button-held-right.png") right 0 top 1px / 1px 16px repeat-y border-box,
2911
+ url("art/drawingboard/pens/button-held-top.png") right 1px top 0 / 64px 1px repeat-x border-box,
2912
+ url("art/drawingboard/pens/button-held-bottom.png") left 1px bottom 0 / 32px 1px repeat-x border-box,
2913
+ #cec6b5;
2914
+ --clio-button-active-fg: #313131;
2915
+ --clio-button-active-shadow: none;
2916
+ --clio-button-frame: url("art/drawingboard/pens/button-corners.png");
2917
+ --clio-button-frame-held: url("art/drawingboard/pens/button-held-corners.png");
2918
+ --clio-button-frame-disabled: url("art/drawingboard/pens/button-corners.png");
2919
+ --clio-button-frame-slice: 5;
2920
+ --clio-ring-frame: none;
2921
+ /* Pop-up frame: four pattern pens (ppat 7095-7098) tiled from the last
2922
+ column and row, and the corner pixels they leave (tooling/db-pens.py). */
2923
+ --clio-popup-frame: url("art/drawingboard/pens/popup-corners.png");
2924
+ --clio-popup-frame-slice: 5;
2925
+ --clio-popup-bg:
2926
+ url("art/drawingboard/pens/popup-left.png") left 0 bottom 1px / 1px 16px repeat-y border-box,
2927
+ url("art/drawingboard/pens/popup-right.png") right 0 bottom 1px / 1px 16px repeat-y border-box,
2928
+ url("art/drawingboard/pens/popup-top.png") right 1px top 0 / 64px 1px repeat-x border-box,
2929
+ url("art/drawingboard/pens/popup-bottom.png") right 1px bottom 0 / 64px 1px repeat-x border-box,
2930
+ #cec6b5;
2931
+ --clio-popup-border: 1px solid transparent;
2932
+ --clio-popup-radius: 0;
2933
+ --clio-popup-shadow: none;
2934
+ --clio-popup-padding: 0 30px 0 7px;
2935
+ --clio-popup-arrow:
2936
+ var(--clio-art-db-popup-arrow) right 5px top 4px / 7px 9px no-repeat,
2937
+ var(--clio-art-db-popup-corner) right 19px bottom / 24px 24px no-repeat;
2938
+
2939
+ /* Check boxes and radio buttons are the theme's own pictures. */
2940
+ --clio-check-size: 14px;
2941
+ --clio-radio-size: 16px;
2942
+
2943
+ /* Edit text: a 1px pencil line drawn with pattern pens, 1px of whatever is
2944
+ behind (the paper) inside it, then the white field (Date & Time; the
2945
+ Text fields rules). */
2946
+ --clio-field-border: 2px solid transparent;
2947
+ --clio-field-shadow: none;
2948
+ --clio-field-focus-shadow: none;
2949
+ --clio-button-disabled-fg: #8c8c8c;
2950
+ --clio-button-disabled-border: 1px solid #888888;
2951
+
2952
+ /* Scroll bars: the theme's 16px arrow boxes; a #ece6e4 track with a #aaa
2953
+ edge, a two-pixel pencil rail down the middle and a #777 far edge; the
2954
+ scroll box drawn from the theme's ends, stretch and grip. */
2955
+ --clio-scrollbar-up: var(--clio-art-db-up);
2956
+ --clio-scrollbar-up-on: var(--clio-art-db-up-on);
2957
+ --clio-scrollbar-down: var(--clio-art-db-down);
2958
+ --clio-scrollbar-down-on: var(--clio-art-db-down-on);
2959
+ --clio-scrollbar-left: var(--clio-art-db-left);
2960
+ --clio-scrollbar-left-on: var(--clio-art-db-left-on);
2961
+ --clio-scrollbar-right: var(--clio-art-db-right);
2962
+ --clio-scrollbar-right-on: var(--clio-art-db-right-on);
2963
+ --clio-scrollbar-button-bg: transparent;
2964
+ --clio-scrollbar-button-shadow: none;
2965
+ /* Vertical (Desktop tab pattern list): #555 edges, a two-pixel #777 rail. */
2966
+ --clio-scrollbar-track: linear-gradient(to right, #555555 0 1px, #ece6e4 1px 7px, #777777 7px 9px, #ece6e4 9px 15px, #555555 15px);
2967
+ --clio-scrollbar-track-color: #ece6e4;
2968
+ --clio-scrollbar-track-shadow: none;
2969
+ --clio-scrollbar-thumb-bg:
2970
+ var(--clio-art-db-thumb-top) 1px 0 / 14px 7px no-repeat,
2971
+ var(--clio-art-db-thumb-bottom) 1px 100% / 14px 8px no-repeat,
2972
+ var(--clio-art-db-thumb-vgrip) 1px 50% / 14px 2px no-repeat,
2973
+ var(--clio-art-db-thumb-vstretch) 1px 0 / 14px 100% no-repeat;
2974
+ --clio-scrollbar-thumb-bg-horizontal:
2975
+ var(--clio-art-db-thumb-left) 0 1px / 7px 14px no-repeat,
2976
+ var(--clio-art-db-thumb-right) 100% 1px / 8px 14px no-repeat,
2977
+ var(--clio-art-db-thumb-hgrip) 50% 1px / 2px 14px no-repeat,
2978
+ var(--clio-art-db-thumb-hstretch) 0 1px / 100% 14px no-repeat;
2979
+ --clio-scrollbar-thumb-color: #cdc6bd;
2980
+ --clio-scrollbar-thumb-border: 0 none;
2981
+ --clio-scrollbar-thumb-shadow: none;
2982
+ --clio-scrollbar-corner: var(--clio-art-db-grow) 0 0 / 16px 16px no-repeat, #cdc6bd;
2983
+
2984
+ /* Dialogs: the theme's frame pictures (see the Dialogs rules); plain dialogs
2985
+ keep a 1px pencil frame with a #777 band 7px wide on the right and 8px
2986
+ deep below. */
2987
+ --clio-dialog-bg: #e7ded6;
2988
+ --clio-modal-border: 1px solid transparent;
2989
+ --clio-modal-frame: none;
2990
+ --clio-plain-dialog-border: 1px solid #333333;
2991
+ --clio-plain-dialog-shadow: 7px 0 0 #777777, 0 8px 0 #777777, 7px 8px 0 #777777;
2992
+
2993
+ --clio-details-bg: #e7ded6;
2994
+ --clio-details-border: 1px solid #555555;
2995
+ --clio-details-shadow: none;
2996
+ /* List boxes (Desktop tab pattern list): a 2px olive #9c9c63 line, 1px of
2997
+ whatever is behind (the pane's paper) inside it, then white; the chosen
2998
+ row #ccf. */
2999
+ --clio-list-border: 2px solid #9c9c63;
3000
+ --clio-list-shadow: none;
3001
+ --clio-list-bg: #ffffff;
3002
+ --clio-group-border: 1px solid #777777;
3003
+ --clio-group-bg: transparent;
3004
+ --clio-group-shadow: none;
3005
+ /* Progress bar (Finder copy window): 12px, a #756f66 pencil line (#333 on
3006
+ the left) round #ddd6c5; an indeterminate bar shows the theme's arrows.
3007
+ The determinate fill was not captured and stays Platinum's. */
3008
+ --clio-progress-height: 12px;
3009
+ --clio-progress-bg: #ddd6c5;
3010
+ --clio-progress-border: 1px solid #756f66;
3011
+ --clio-progress-shadow: none;
3012
+ --clio-tab-height: 27px;
3013
+ /* Tab pane paper (ppat 7115), from the pane's inner top-left. */
3014
+ --clio-tab-panel-bg: url("art/drawingboard/tab-paper.png") 0 0 / 256px 64px, #e7ded6;
3015
+ --clio-tab-panel-border: 1px solid #555555;
3016
+
3017
+ /* Art: redrawn from the theme's 'pxm#' pixmaps by tooling/db-art.py. */
3018
+ --clio-art-db-close: url("art/drawingboard/parts/close.png"); /* 11x11 */
3019
+ --clio-art-db-close-on: url("art/drawingboard/parts/close-on.png"); /* 11x11 */
3020
+ --clio-art-db-collapse: url("art/drawingboard/parts/collapse.png"); /* 11x11 */
3021
+ --clio-art-db-collapse-on: url("art/drawingboard/parts/collapse-on.png"); /* 11x11 */
3022
+ --clio-art-db-zoom: url("art/drawingboard/parts/zoom.png"); /* 11x11 */
3023
+ --clio-art-db-zoom-on: url("art/drawingboard/parts/zoom-on.png"); /* 11x11 */
3024
+ --clio-art-db-check: url("art/drawingboard/parts/check.png"); /* 14x11 */
3025
+ --clio-art-db-check-on: url("art/drawingboard/parts/check-on.png"); /* 14x11 */
3026
+ --clio-art-db-check-mixed: url("art/drawingboard/parts/check-mixed.png"); /* 14x11 */
3027
+ --clio-art-db-check-pressed: url("art/drawingboard/parts/check-pressed.png"); /* 14x11 */
3028
+ --clio-art-db-check-on-pressed: url("art/drawingboard/parts/check-on-pressed.png"); /* 14x11 */
3029
+ --clio-art-db-check-disabled: url("art/drawingboard/parts/check-disabled.png"); /* 14x11 */
3030
+ --clio-art-db-check-on-disabled: url("art/drawingboard/parts/check-on-disabled.png"); /* 14x11 */
3031
+ --clio-art-db-radio: url("art/drawingboard/parts/radio.png"); /* 16x12 */
3032
+ --clio-art-db-radio-on: url("art/drawingboard/parts/radio-on.png"); /* 16x12 */
3033
+ --clio-art-db-radio-on-pressed: url("art/drawingboard/parts/radio-on-pressed.png"); /* 16x12 */
3034
+ --clio-art-db-radio-disabled: url("art/drawingboard/parts/radio-disabled.png"); /* 16x12 */
3035
+ --clio-art-db-radio-on-disabled: url("art/drawingboard/parts/radio-on-disabled.png"); /* 16x12 */
3036
+ --clio-art-db-up: url("art/drawingboard/parts/up.png"); /* 16x16 */
3037
+ --clio-art-db-up-on: url("art/drawingboard/parts/up-on.png"); /* 16x16 */
3038
+ --clio-art-db-up-off: url("art/drawingboard/parts/up-off.png"); /* 16x16 */
3039
+ --clio-art-db-down: url("art/drawingboard/parts/down.png"); /* 16x16 */
3040
+ --clio-art-db-down-on: url("art/drawingboard/parts/down-on.png"); /* 16x16 */
3041
+ --clio-art-db-down-off: url("art/drawingboard/parts/down-off.png"); /* 16x16 */
3042
+ --clio-art-db-left: url("art/drawingboard/parts/left.png"); /* 16x16 */
3043
+ --clio-art-db-left-on: url("art/drawingboard/parts/left-on.png"); /* 16x16 */
3044
+ --clio-art-db-left-off: url("art/drawingboard/parts/left-off.png"); /* 16x16 */
3045
+ --clio-art-db-right: url("art/drawingboard/parts/right.png"); /* 16x16 */
3046
+ --clio-art-db-right-on: url("art/drawingboard/parts/right-on.png"); /* 16x16 */
3047
+ --clio-art-db-right-off: url("art/drawingboard/parts/right-off.png"); /* 16x16 */
3048
+ --clio-art-db-popup-arrow: url("art/drawingboard/parts/popup-arrow.png"); /* 7x9 */
3049
+ --clio-art-db-popup-arrow-off: url("art/drawingboard/parts/popup-arrow-off.png"); /* 7x9 */
3050
+ --clio-art-db-submenu: url("art/drawingboard/parts/submenu.png"); /* 6x11 */
3051
+ --clio-art-db-grow: url("art/drawingboard/parts/grow.png"); /* 16x16 */
3052
+ --clio-art-db-popup-corner: url("art/drawingboard/parts/popup-corner.png"); /* 24x24 */
3053
+ --clio-art-db-popup-corner-off: url("art/drawingboard/parts/popup-corner-off.png"); /* 24x24 */
3054
+ --clio-art-db-button-corner: url("art/drawingboard/parts/button-corner.png"); /* 24x24 */
3055
+ --clio-art-db-btn-tl: url("art/drawingboard/parts/btn-tl.png"); /* 7x3 */
3056
+ --clio-art-db-btn-tr: url("art/drawingboard/parts/btn-tr.png"); /* 4x3 */
3057
+ --clio-art-db-btn-br: url("art/drawingboard/parts/btn-br.png"); /* 5x6 */
3058
+ --clio-art-db-btn-br-held: url("art/drawingboard/parts/btn-br-held.png"); /* 5x6 */
3059
+ --clio-art-db-btn-bl: url("art/drawingboard/parts/btn-bl.png"); /* 7x4 */
3060
+ --clio-art-db-progress-arrows: url("art/drawingboard/parts/progress-arrows.png"); /* 128x5 */
3061
+ --clio-art-db-def-tl: url("art/drawingboard/parts/def-tl.png"); /* 9x5 */
3062
+ --clio-art-db-def-tr: url("art/drawingboard/parts/def-tr.png"); /* 4x4 */
3063
+ --clio-art-db-def-br: url("art/drawingboard/parts/def-br.png"); /* 5x6 */
3064
+ --clio-art-db-def-bl: url("art/drawingboard/parts/def-bl.png"); /* 9x5 */
3065
+ --clio-art-db-thumb-left: url("art/drawingboard/parts/thumb-left.png"); /* 7x14 */
3066
+ --clio-art-db-thumb-right: url("art/drawingboard/parts/thumb-right.png"); /* 8x14 */
3067
+ --clio-art-db-thumb-hgrip: url("art/drawingboard/parts/thumb-hgrip.png"); /* 2x14 */
3068
+ --clio-art-db-thumb-hstretch: url("art/drawingboard/parts/thumb-hstretch.png"); /* 1x14 */
3069
+ --clio-art-db-thumb-top: url("art/drawingboard/parts/thumb-top.png"); /* 14x7 */
3070
+ --clio-art-db-thumb-bottom: url("art/drawingboard/parts/thumb-bottom.png"); /* 14x8 */
3071
+ --clio-art-db-thumb-vgrip: url("art/drawingboard/parts/thumb-vgrip.png"); /* 14x2 */
3072
+ --clio-art-db-thumb-vstretch: url("art/drawingboard/parts/thumb-vstretch.png"); /* 14x1 */
3073
+ --clio-art-db-tab: url("art/drawingboard/parts/tab.png"); /* 24x27 */
3074
+ --clio-art-db-tab-selected: url("art/drawingboard/parts/tab-selected.png"); /* 24x27 */
3075
+ --clio-art-db-tab-pressed: url("art/drawingboard/parts/tab-pressed.png"); /* 24x27 */
3076
+ --clio-art-db-menu-underline-left: url("art/drawingboard/parts/menu-underline-left.png"); /* 29x3 */
3077
+ --clio-art-db-menu-underline: url("art/drawingboard/parts/menu-underline.png"); /* 48x3 */
3078
+ --clio-art-db-menu-underline-right: url("art/drawingboard/parts/menu-underline-right.png"); /* 36x3 */
3079
+ --clio-art-db-title-underline-left: url("art/drawingboard/parts/title-underline-left.png"); /* 15x3 */
3080
+ --clio-art-db-title-underline: url("art/drawingboard/parts/title-underline.png"); /* 32x4 */
3081
+ --clio-art-db-title-underline-right: url("art/drawingboard/parts/title-underline-right.png"); /* 16x3 */
3082
+ --clio-art-db-menu-underline-tiled: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cdefs%3E%3Cpattern id='p' width='48' height='3' patternUnits='userSpaceOnUse'%3E%3Cimage width='48' height='3' href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAADBAMAAAAnwpG3AAAAElBMVEUAAADMZmbMmWbMmZnMZjPMMzOFAtjtAAAAAXRSTlMAQObYZgAAACJJREFUeJxjFGSAAMb/DMYMDAxnwWwBBgbGUKgENmCATRAAmjoCqut/JFgAAAAASUVORK5CYII='/%3E%3C/pattern%3E%3C/defs%3E%3Crect width='100%' height='100%' fill='url(%23p)'/%3E%3C/svg%3E"); /* 48 px tile */
3083
+ --clio-art-db-title-underline-tiled: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cdefs%3E%3Cpattern id='p' width='32' height='4' patternUnits='userSpaceOnUse'%3E%3Cimage width='32' height='4' href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAEBAMAAAAdaSDnAAAAD1BMVEUAAADMZmbMmWbMmZnMZjOW1IuaAAAAAXRSTlMAQObYZgAAACBJREFUeJxjdGGAgP+MDAwM5/4rs0D5DCA+gxGMhw8AALzeA23Id2x2AAAAAElFTkSuQmCC'/%3E%3C/pattern%3E%3C/defs%3E%3Crect width='100%' height='100%' fill='url(%23p)'/%3E%3C/svg%3E"); /* 32 px tile */
3084
+ }
3085
+
3086
+ /* ---- Window ----------------------------------------------------------------
3087
+ Drawn as the theme draws it: the nine 'pxm#' frame pieces (6176-6184, active
3088
+ and inactive sets), placed where Mac OS 8.5 puts them round a 476x338
3089
+ outline (Appearance window, found 1:1 in the capture), with the edge pieces
3090
+ tiled from their ends. Under them the window paper (ppat 7120): 128x128,
3091
+ origin at the content's top-left, 6px in and 22px down (Date & Time, Finder
3092
+ Preferences windows agree). Corners overrun the outline, so they sit on a
3093
+ pseudo-element larger than the window; the tiled edges sit on one clipped
3094
+ to where each edge runs. Files: art/drawingboard/ (tooling/db-art.py --files). */
3095
+ [data-era="drawingboard"] .window {
3096
+ --db-tl: url("art/drawingboard/window-tl.png");
3097
+ --db-top: url("art/drawingboard/window-top.png");
3098
+ --db-tr: url("art/drawingboard/window-tr.png");
3099
+ --db-ur: url("art/drawingboard/window-ur.png");
3100
+ --db-right: url("art/drawingboard/window-right.png");
3101
+ --db-br: url("art/drawingboard/window-br.png");
3102
+ --db-bottom: url("art/drawingboard/window-bottom.png");
3103
+ --db-bl: url("art/drawingboard/window-bl.png");
3104
+ --db-left: url("art/drawingboard/window-left.png");
3105
+ isolation: isolate;
3106
+ min-width: 128px;
3107
+ min-height: 60px;
3108
+ }
3109
+
3110
+ [data-era="drawingboard"] .window.inactive {
3111
+ --db-tl: url("art/drawingboard/window-tl-inactive.png");
3112
+ --db-top: url("art/drawingboard/window-top-inactive.png");
3113
+ --db-tr: url("art/drawingboard/window-tr-inactive.png");
3114
+ --db-ur: url("art/drawingboard/window-ur-inactive.png");
3115
+ --db-right: url("art/drawingboard/window-right-inactive.png");
3116
+ --db-br: url("art/drawingboard/window-br-inactive.png");
3117
+ --db-bottom: url("art/drawingboard/window-bottom-inactive.png");
3118
+ --db-bl: url("art/drawingboard/window-bl-inactive.png");
3119
+ --db-left: url("art/drawingboard/window-left-inactive.png");
3120
+ }
3121
+
3122
+ [data-era="drawingboard"] .window,
3123
+ [data-era="drawingboard"] .window:not(.inactive) {
3124
+ background: url("art/drawingboard/paper.png") calc(6px - var(--clio-db-phase, 0px)) 22px / 128px 128px;
3125
+ }
3126
+
3127
+ [data-era="drawingboard"] .window::before,
3128
+ [data-era="drawingboard"] .window::after {
3129
+ content: "";
3130
+ position: absolute;
3131
+ z-index: -1;
3132
+ pointer-events: none;
3133
+ }
3134
+
3135
+ /* Edges: the box from 1px left of the outline to the shadow's far side. */
3136
+ [data-era="drawingboard"] .window::before {
3137
+ inset: 0 -7px -8px -1px;
3138
+ background:
3139
+ var(--db-top) 25px 0 / 256px 22px repeat-x,
3140
+ var(--db-left) 0 22px / 7px 214px repeat-y,
3141
+ var(--db-right) right 0 top 54px / 13px 150px repeat-y,
3142
+ var(--db-bottom) left 57px bottom 0 / 183px 14px repeat-x;
3143
+ clip-path: polygon(25px 0, calc(100% - 13px) 0, calc(100% - 13px) 54px, 100% 54px,
3144
+ 100% calc(100% - 54px), calc(100% - 59px) calc(100% - 54px), calc(100% - 59px) 100%,
3145
+ 57px 100%, 57px calc(100% - 22px), 0 calc(100% - 22px), 0 22px, 25px 22px);
3146
+ }
3147
+
3148
+ /* Corners, overrunning the outline by up to 10px. */
3149
+ [data-era="drawingboard"] .window::after {
3150
+ inset: -10px -11px -18px -8px;
3151
+ background:
3152
+ var(--db-tl) 4px 5px / 28px 27px no-repeat,
3153
+ var(--db-tr) right 1px top 0 / 16px 32px no-repeat,
3154
+ var(--db-ur) right 4px top 32px / 13px 32px no-repeat,
3155
+ var(--db-br) right 0 bottom 2px / 63px 62px no-repeat,
3156
+ var(--db-bl) left 0 bottom 0 / 64px 32px no-repeat;
3157
+ }
3158
+
3159
+ /* ---- Menus -----------------------------------------------------------------
3160
+ The shade: 2px of pencil (ppat 130, 131) down the right from 3px below the
3161
+ menu's top and along the foot from 4px in. A menu that is not a drop-down
3162
+ becomes the shade's containing block. --clio-db-phase shifts the pens
3163
+ along the menu (Mac OS drew the Finder's File menu 64px further along). */
3164
+ [data-era="drawingboard"] :is(.menu, ul[role="menu"]):not(li > *) {
3165
+ position: relative;
3166
+ }
3167
+
3168
+ /* Paper (ppat 7125) from the inside top-left, and a frame drawn with pattern
3169
+ pens (ppat 129-132), each tiled from the menu's own corner: the left pen
3170
+ and the top from the top-left, the right pen from 4px lower, the foot from
3171
+ 4px in. Rules, not tokens: the pens read this menu's own top line and phase. */
3172
+ [data-era="drawingboard"] :is(.menu, ul[role="menu"]) {
3173
+ background:
3174
+ url("art/drawingboard/menu-top.png") 0 calc(var(--clio-menu-border-top-width) - 1px) / 128px 1px repeat-x border-box,
3175
+ url("art/drawingboard/menu-left.png") 0 calc(var(--clio-menu-border-top-width) - 1px) / 1px 128px repeat-y border-box,
3176
+ url("art/drawingboard/menu-right.png") right 0 top calc(var(--clio-menu-border-top-width) + 3px) / 1px 128px repeat-y border-box,
3177
+ url("art/drawingboard/menu-foot.png") calc(4px - var(--clio-db-phase, 0px)) 100% / 128px 1px repeat-x border-box,
3178
+ url("art/drawingboard/menu-paper.png") 0 0 / 64px 64px padding-box,
3179
+ #dddddd;
3180
+ }
3181
+
3182
+ [data-era="drawingboard"] :is(.menu, [role="menu"]) > :is(li.separator, li[role="separator"], hr) {
3183
+ background: url("art/drawingboard/menu-separator.png") calc(0px - var(--clio-db-phase, 0px)) 4px / 128px 1px repeat-x;
3184
+ }
3185
+
3186
+ /* A menu bar's menu hangs from the bar's last row, which is its top line. */
3187
+ [data-era="drawingboard"] :is(.menu-bar, [role="menubar"], [role="menu-bar"]) > li > :is(.menu, ul[role="menu"]) {
3188
+ --clio-menu-border-top-width: 0px;
3189
+ }
3190
+
3191
+ [data-era="drawingboard"] :is(.menu, ul[role="menu"])::before {
3192
+ content: "";
3193
+ position: absolute;
3194
+ top: 3px; /* from the padding box: 4px below the top line */
3195
+ right: -3px;
3196
+ bottom: -3px;
3197
+ left: 3px;
3198
+ background:
3199
+ url("art/drawingboard/menu-shade-right.png") right 0 top 0 / 2px 128px repeat-y,
3200
+ url("art/drawingboard/menu-shade-foot.png") calc(0px - var(--clio-db-phase, 0px)) 100% / 128px 2px repeat-x;
3201
+ pointer-events: none;
3202
+ }
3203
+
3204
+ /* The fixed pencil pixels where the pens meet (File and Edit menus agree). */
3205
+ [data-era="drawingboard"] :is(.menu, ul[role="menu"])::after {
3206
+ content: "";
3207
+ position: absolute;
3208
+ top: 1px; /* from the padding box: 2px below the top line */
3209
+ right: -3px;
3210
+ bottom: -3px;
3211
+ left: -1px;
3212
+ background:
3213
+ url("art/drawingboard/menu-corner-tr.png") right 0 top 0 / 3px 2px no-repeat,
3214
+ url("art/drawingboard/menu-corner-br.png") right 0 bottom 0 / 3px 3px no-repeat,
3215
+ url("art/drawingboard/menu-corner-bl.png") left 0 bottom 0 / 4px 3px no-repeat;
3216
+ pointer-events: none;
3217
+ }
3218
+
3219
+ [data-era="drawingboard"] .window-pane {
3220
+ border: 0;
3221
+ background: transparent;
3222
+ }
3223
+
3224
+ [data-era="drawingboard"] .window > .details-bar {
3225
+ border-left: 0;
3226
+ border-right: 0;
3227
+ }
3228
+
3229
+ [data-era="drawingboard"] .title-bar,
3230
+ [data-era="drawingboard"] .window.inactive > .title-bar,
3231
+ [data-era="drawingboard"] .inactive-title-bar {
3232
+ background: transparent;
3233
+ }
3234
+
3235
+ [data-era="drawingboard"] .title-bar > :is(.title, h1, h2, h3) {
3236
+ padding: var(--clio-title-padding);
3237
+ background: transparent;
3238
+ transform: none;
3239
+ }
3240
+
3241
+ [data-era="drawingboard"] .title-bar > :is(.title, h1, h2, h3)::after {
3242
+ content: none;
3243
+ }
3244
+
3245
+ /* Close, zoom and collapse boxes are the theme's 11px pictures. */
3246
+ [data-era="drawingboard"] .title-bar > :is(button, .close, .close-box, .resize, .resize-box, .zoom, .shade, .shade-box, .collapse) {
3247
+ border: 0;
3248
+ background: var(--clio-art-db-close) 0 0 / 11px 11px no-repeat;
3249
+ box-shadow: none;
3250
+ }
3251
+
3252
+ [data-era="drawingboard"] .title-bar > :is(.resize, .resize-box, .zoom) {
3253
+ background-image: var(--clio-art-db-zoom);
3254
+ }
3255
+
3256
+ [data-era="drawingboard"] .title-bar > :is(.shade, .shade-box, .collapse) {
3257
+ background-image: var(--clio-art-db-collapse);
3258
+ }
3259
+
3260
+ [data-era="drawingboard"] .title-bar > :is(button, .close, .close-box):is(:active, .active) {
3261
+ background: var(--clio-art-db-close-on) 0 0 / 11px 11px no-repeat;
3262
+ box-shadow: none;
3263
+ }
3264
+
3265
+ [data-era="drawingboard"] .title-bar > :is(.resize, .resize-box, .zoom):is(:active, .active) {
3266
+ background: var(--clio-art-db-zoom-on) 0 0 / 11px 11px no-repeat;
3267
+ }
3268
+
3269
+ [data-era="drawingboard"] .title-bar > :is(.shade, .shade-box, .collapse):is(:active, .active) {
3270
+ background: var(--clio-art-db-collapse-on) 0 0 / 11px 11px no-repeat;
3271
+ }
3272
+
3273
+ [data-era="drawingboard"] .title-bar > :is(.resize, .resize-box, .zoom, .shade, .shade-box, .collapse)::before {
3274
+ content: none;
3275
+ }
3276
+
3277
+ /* Background window: its own frame set, grey title, boxes erased (base rule). */
3278
+ [data-era="drawingboard"] .window.inactive {
3279
+ color: #555555;
3280
+ }
3281
+
3282
+ [data-era="drawingboard"] .window.inactive > .title-bar > :is(.title, h1, h2, h3),
3283
+ [data-era="drawingboard"] .inactive-title-bar > :is(.title, h1, h2, h3) {
3284
+ background: transparent;
3285
+ }
3286
+
3287
+ /* List boxes: the 1px between the olive line and the white is see-through. */
3288
+ [data-era="drawingboard"] :is(.listbox, ul[role="listbox"], ol[role="listbox"], div[role="listbox"], select[multiple], select[size]:not([size="1"])) {
3289
+ padding: 1px;
3290
+ background-clip: content-box;
3291
+ }
3292
+
3293
+ /* ---- Text fields ---------------------------------------------------------------
3294
+ Pens (ppat 7003-7006): the rows tiled from the white's left edge, the left
3295
+ column from its top, the right column from 1px higher (both of Date & Time's
3296
+ fields agree), and the corner pixels they leave (tooling/db-pens.py). A rule,
3297
+ not a token: the rows read the field's own --clio-db-phase. */
3298
+ [data-era="drawingboard"] :is(input:not([type]), input[type="text"], input[type="search"], input[type="email"], input[type="url"], input[type="password"], input[type="number"], input[type="tel"], textarea) {
3299
+ border-image: url("art/drawingboard/pens/field-corners.png") 5 / 5px stretch;
3300
+ background:
3301
+ url("art/drawingboard/pens/field-left.png") left 0 top 2px / 1px 32px repeat-y border-box,
3302
+ url("art/drawingboard/pens/field-right.png") right 0 top 1px / 1px 32px repeat-y border-box,
3303
+ url("art/drawingboard/pens/field-top.png") calc(2px - var(--clio-db-phase, 0px)) 0 / 128px 1px repeat-x border-box,
3304
+ url("art/drawingboard/pens/field-bottom.png") calc(2px - var(--clio-db-phase, 0px)) 100% / 128px 1px repeat-x border-box,
3305
+ #ffffff padding-box;
3306
+ }
3307
+
3308
+ /* ---- Dialogs -----------------------------------------------------------------
3309
+ Alerts and modal dialogs are framed like windows: eight pictures round the
3310
+ 1px outline (Alert 6127-6134, found 1:1 round Energy Saver's start-up
3311
+ notice; Modal 6135-6142, the same sizes, placed the same way, inferred),
3312
+ edges tiled from their ends, on the window paper from 4px inside the
3313
+ outline. Insets are from the padding box, inside the 1px border. */
3314
+ [data-era="drawingboard"] :is(.alert-box, .modal-dialog, dialog.modal) {
3315
+ --db-tl: url("art/drawingboard/modal-tl.png");
3316
+ --db-top: url("art/drawingboard/modal-top.png");
3317
+ --db-tr: url("art/drawingboard/modal-tr.png");
3318
+ --db-right: url("art/drawingboard/modal-right.png");
3319
+ --db-right-h: 150px;
3320
+ --db-br: url("art/drawingboard/modal-br.png");
3321
+ --db-bottom: url("art/drawingboard/modal-bottom.png");
3322
+ --db-bl: url("art/drawingboard/modal-bl.png");
3323
+ --db-left: url("art/drawingboard/modal-left.png");
3324
+ --db-left-h: 214px;
3325
+ position: relative;
3326
+ isolation: isolate;
3327
+ background: url("art/drawingboard/paper.png") calc(4px - var(--clio-db-phase, 0px)) 4px / 128px 128px border-box;
3328
+ }
3329
+
3330
+ [data-era="drawingboard"] :is(.alert-box, dialog.alert-box) {
3331
+ --db-tl: url("art/drawingboard/alert-tl.png");
3332
+ --db-top: url("art/drawingboard/alert-top.png");
3333
+ --db-tr: url("art/drawingboard/alert-tr.png");
3334
+ --db-right: url("art/drawingboard/alert-right.png");
3335
+ --db-right-h: 43px;
3336
+ --db-br: url("art/drawingboard/alert-br.png");
3337
+ --db-bottom: url("art/drawingboard/alert-bottom.png");
3338
+ --db-bl: url("art/drawingboard/alert-bl.png");
3339
+ --db-left: url("art/drawingboard/alert-left.png");
3340
+ --db-left-h: 106px;
3341
+ }
3342
+
3343
+ [data-era="drawingboard"] :is(.alert-box, .modal-dialog, dialog.modal)::before,
3344
+ [data-era="drawingboard"] :is(.alert-box, .modal-dialog, dialog.modal)::after {
3345
+ content: "";
3346
+ position: absolute;
3347
+ z-index: -1;
3348
+ pointer-events: none;
3349
+ }
3350
+
3351
+ /* Edges: from 1px left of the outline to the shade's far side. */
3352
+ [data-era="drawingboard"] :is(.alert-box, .modal-dialog, dialog.modal)::before {
3353
+ inset: -1px -8px -9px -2px;
3354
+ background:
3355
+ var(--db-top) 20px 0 / 256px 1px repeat-x,
3356
+ var(--db-left) 0 22px / 2px var(--db-left-h) repeat-y,
3357
+ var(--db-right) right 0 top 54px / 8px var(--db-right-h) repeat-y,
3358
+ var(--db-bottom) left 57px bottom 0 / 183px 9px repeat-x;
3359
+ clip-path: polygon(20px 0, calc(100% - 8px) 0, calc(100% - 8px) 54px, 100% 54px,
3360
+ 100% calc(100% - 54px), calc(100% - 59px) calc(100% - 54px), calc(100% - 59px) 100%,
3361
+ 57px 100%, 57px calc(100% - 22px), 0 calc(100% - 22px), 0 22px, 20px 22px);
3362
+ }
3363
+
3364
+ /* Corners, overrunning the outline by up to 18px. */
3365
+ [data-era="drawingboard"] :is(.alert-box, .modal-dialog, dialog.modal)::after {
3366
+ inset: -11px -12px -19px -9px;
3367
+ background:
3368
+ var(--db-tl) 5px 5px / 22px 27px no-repeat,
3369
+ var(--db-tr) right 1px top 0 / 11px 64px no-repeat,
3370
+ var(--db-br) right 0 bottom 2px / 63px 62px no-repeat,
3371
+ var(--db-bl) left 0 bottom 0 / 64px 32px no-repeat;
3372
+ }
3373
+
3374
+ /* ---- Default button: a second pencil line round the button and its shade,
3375
+ with a light #9f9a94 pencil line between (Energy Saver notice,
3376
+ "Close Message": ring 2px out on the left and top, 3px right, 2px below). -- */
3377
+ [data-era="drawingboard"] :is(.default, .btn-default)::before {
3378
+ inset: -3px -4px -3px -3px;
3379
+ border: 1px solid;
3380
+ border-color: #555555 #111111 #333333 #555555;
3381
+ border-radius: 0;
3382
+ box-shadow: inset 0 0 0 1px #9f9a94;
3383
+ }
3384
+
3385
+ /* Disabled push button: not captured; the plain button's frame and face with
3386
+ the theme's grey label (inferred). */
3387
+ [data-era="drawingboard"] :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) {
3388
+ background: var(--clio-button-bg);
3389
+ color: #9f9a94;
3390
+ -webkit-text-fill-color: #9f9a94;
3391
+ }
3392
+
3393
+ /* ---- Check boxes and radio buttons: one picture per state. ---------------- */
3394
+ [data-era="drawingboard"] input[type="checkbox"] {
3395
+ width: 14px;
3396
+ height: 11px;
3397
+ border: 0;
3398
+ background: var(--clio-art-db-check) 0 0 / 14px 11px no-repeat;
3399
+ box-shadow: none;
3400
+ vertical-align: -1px;
3401
+ }
3402
+
3403
+ [data-era="drawingboard"] input[type="checkbox"]:checked {
3404
+ background-image: var(--clio-art-db-check-on);
3405
+ }
3406
+
3407
+ [data-era="drawingboard"] input[type="checkbox"]:checked::after {
3408
+ content: none;
3409
+ }
3410
+
3411
+ [data-era="drawingboard"] input[type="checkbox"]:indeterminate {
3412
+ background-image: var(--clio-art-db-check-mixed);
3413
+ }
3414
+
3415
+ [data-era="drawingboard"] input[type="checkbox"]:not(:disabled):active {
3416
+ background: var(--clio-art-db-check-pressed) 0 0 / 14px 11px no-repeat;
3417
+ box-shadow: none;
3418
+ }
3419
+
3420
+ [data-era="drawingboard"] input[type="checkbox"]:checked:not(:disabled):active {
3421
+ background-image: var(--clio-art-db-check-on-pressed);
3422
+ }
3423
+
3424
+ [data-era="drawingboard"] input[type="checkbox"]:disabled {
3425
+ background-image: var(--clio-art-db-check-disabled);
3426
+ }
3427
+
3428
+ [data-era="drawingboard"] input[type="checkbox"]:checked:disabled {
3429
+ background-image: var(--clio-art-db-check-on-disabled);
3430
+ }
3431
+
3432
+ [data-era="drawingboard"] input[type="radio"],
3433
+ [data-era="drawingboard"] input[type="radio"]:not(:disabled):active {
3434
+ width: 16px;
3435
+ height: 12px;
3436
+ border: 0;
3437
+ border-radius: 0;
3438
+ background: var(--clio-art-db-radio) 0 0 / 16px 12px no-repeat;
3439
+ box-shadow: none;
3440
+ }
3441
+
3442
+ [data-era="drawingboard"] input[type="radio"]:checked {
3443
+ background: var(--clio-art-db-radio-on) 0 0 / 16px 12px no-repeat;
3444
+ }
3445
+
3446
+ [data-era="drawingboard"] input[type="radio"]:checked:not(:disabled):active {
3447
+ background: var(--clio-art-db-radio-on-pressed) 0 0 / 16px 12px no-repeat;
3448
+ }
3449
+
3450
+ [data-era="drawingboard"] input[type="radio"]:disabled {
3451
+ background-image: var(--clio-art-db-radio-disabled);
3452
+ }
3453
+
3454
+ [data-era="drawingboard"] input[type="radio"]:checked:disabled {
3455
+ background-image: var(--clio-art-db-radio-on-disabled);
3456
+ }
3457
+
3458
+ [data-era="drawingboard"] :is(input[type="checkbox"], input[type="radio"]):disabled {
3459
+ opacity: 1;
3460
+ }
3461
+
3462
+ /* ---- Menus ------------------------------------------------------------------ */
3463
+ [data-era="drawingboard"] :is(.menu, [role="menu"]) > li:has(> :is(.menu, ul[role="menu"]))::after,
3464
+ [data-era="drawingboard"] :is(.menu, [role="menu"]) > li > [aria-haspopup="true"]::after,
3465
+ [data-era="drawingboard"] :is(.menu, [role="menu"]) > li:has(> :is(.menu, ul[role="menu"])):is(:hover, :focus-within, .active)::after {
3466
+ background-image: var(--clio-art-db-submenu);
3467
+ }
3468
+
3469
+ [data-era="drawingboard"] :is(.menu, [role="menu"]) > li:is(.checked, [aria-checked="true"]):is(:hover, :focus-within, .active)::before,
3470
+ [data-era="drawingboard"] :is(.menu, [role="menu"]) > li > :is([aria-checked="true"], .checked):is(:hover, :focus-visible, .active)::before {
3471
+ filter: none;
3472
+ }
3473
+
3474
+ [data-era="drawingboard"] :is(.menu, [role="menu"]) > li.divider {
3475
+ box-shadow: inset 0 -4px 0 #dddddd, inset 0 -5px 0 #888888;
3476
+ }
3477
+
3478
+ /* ---- Tabs: left end, one stretched column, right end. ---------------------- */
3479
+ [data-era="drawingboard"] :is([role="tablist"], .tabs) {
3480
+ padding: 0 8px;
3481
+ }
3482
+
3483
+ [data-era="drawingboard"] :is([role="tablist"], .tabs) > :is([role="tab"], li, button) {
3484
+ height: 27px;
3485
+ margin: 0 -6px -1px 0;
3486
+ padding: 6px 0 0;
3487
+ border-width: 0 17px 0 6px;
3488
+ border-image: var(--clio-art-db-tab) 0 17 0 6 fill / 0 17px 0 6px stretch;
3489
+ color: #313131;
3490
+ line-height: 20px;
3491
+ }
3492
+
3493
+ [data-era="drawingboard"] :is([role="tablist"], .tabs) > :is([role="tab"], li, button):not(:disabled):active {
3494
+ border-image-source: var(--clio-art-db-tab-pressed);
3495
+ color: #313131;
3496
+ }
3497
+
3498
+ [data-era="drawingboard"] :is([role="tablist"], .tabs) > :is([role="tab"], li, button):is([aria-selected="true"], .active) {
3499
+ padding-top: 6px;
3500
+ border-image-source: var(--clio-art-db-tab-selected);
3501
+ color: #313131;
3502
+ }
3503
+
3504
+ /* The panel's top line runs under the back tabs and breaks under the front
3505
+ one (capture: row 121, #555 to #777 under Themes, none under Appearance). */
3506
+ [data-era="drawingboard"] :is([role="tablist"], .tabs) > :is([role="tab"], li, button) {
3507
+ position: relative;
3508
+ margin-bottom: 0;
3509
+ }
3510
+
3511
+ [data-era="drawingboard"] :is([role="tablist"], .tabs) > :is([role="tab"], li, button):is([aria-selected="true"], .active)::after {
3512
+ content: "";
3513
+ position: absolute;
3514
+ left: -5px;
3515
+ right: -12px;
3516
+ bottom: -1px;
3517
+ height: 1px;
3518
+ background: #e7ded6;
3519
+ }
3520
+
3521
+ [data-era="drawingboard"] :is([role="tabpanel"], .tab-panel) {
3522
+ border-top: 1px solid #666666;
3523
+ box-shadow: none;
3524
+ }
3525
+
3526
+ /* ---- Scroll bars ----------------------------------------------------------- */
3527
+ [data-era="drawingboard"] :is(.window-pane, .listbox, [role="listbox"], textarea, select[multiple], .clio-scroll, .clio-scrollbars *)::-webkit-scrollbar-track,
3528
+ [data-era="drawingboard"]:is(html.clio-scrollbars)::-webkit-scrollbar-track {
3529
+ border: 0;
3530
+ }
3531
+
3532
+ /* The scroll box is the theme's 15px picture at its shortest (7px end + 8px end). */
3533
+ [data-era="drawingboard"] :is(.window-pane, .listbox, [role="listbox"], textarea, select[multiple], .clio-scroll, .clio-scrollbars *)::-webkit-scrollbar-thumb,
3534
+ [data-era="drawingboard"]:is(html.clio-scrollbars)::-webkit-scrollbar-thumb {
3535
+ min-width: 15px;
3536
+ min-height: 15px;
3537
+ }
3538
+
3539
+ /* Tracks: #ece6e4 ruled by pattern pens (ppat 7045-7049) tiled from the
3540
+ track's start: the edges and a double centre line. Rules, not tokens: the
3541
+ pens read the scroller's own --clio-db-phase. */
3542
+ [data-era="drawingboard"] :is(.window-pane, .listbox, [role="listbox"], textarea, select[multiple], .clio-scroll, .clio-scrollbars *)::-webkit-scrollbar-track,
3543
+ [data-era="drawingboard"]:is(html.clio-scrollbars)::-webkit-scrollbar-track {
3544
+ background:
3545
+ url("art/drawingboard/track-v-left.png") 0 0 / 1px 128px repeat-y,
3546
+ url("art/drawingboard/track-v-mid1.png") 7px 0 / 1px 256px repeat-y,
3547
+ url("art/drawingboard/track-v-mid2.png") 8px 0 / 1px 256px repeat-y,
3548
+ url("art/drawingboard/track-v-right.png") 15px 0 / 1px 128px repeat-y,
3549
+ #ece6e4;
3550
+ }
3551
+
3552
+ [data-era="drawingboard"] :is(.window-pane, .listbox, [role="listbox"], textarea, select[multiple], .clio-scroll, .clio-scrollbars *)::-webkit-scrollbar-track:horizontal,
3553
+ [data-era="drawingboard"]:is(html.clio-scrollbars)::-webkit-scrollbar-track:horizontal {
3554
+ background:
3555
+ url("art/drawingboard/track-h-top.png") calc(0px - var(--clio-db-phase, 0px)) 0 / 128px 1px repeat-x,
3556
+ url("art/drawingboard/track-h-mid1.png") calc(0px - var(--clio-db-phase, 0px)) 7px / 256px 1px repeat-x,
3557
+ url("art/drawingboard/track-h-mid2.png") calc(0px - var(--clio-db-phase, 0px)) 8px / 256px 1px repeat-x,
3558
+ url("art/drawingboard/track-h-bottom.png") calc(0px - var(--clio-db-phase, 0px)) 15px / 128px 1px repeat-x,
3559
+ #ece6e4;
3560
+ }
3561
+
3562
+ [data-era="drawingboard"] :is(.window-pane, .listbox, [role="listbox"], textarea, select[multiple], .clio-scroll, .clio-scrollbars *)::-webkit-scrollbar-button,
3563
+ [data-era="drawingboard"]:is(html.clio-scrollbars)::-webkit-scrollbar-button,
3564
+ [data-era="drawingboard"] :is(.window-pane, .listbox, [role="listbox"], textarea, select[multiple], .clio-scroll, .clio-scrollbars *)::-webkit-scrollbar-button:active,
3565
+ [data-era="drawingboard"]:is(html.clio-scrollbars)::-webkit-scrollbar-button:active {
3566
+ border: 0;
3567
+ background-color: transparent;
3568
+ background-position: 0 0;
3569
+ background-size: 16px 16px;
3570
+ box-shadow: none;
3571
+ }
3572
+
3573
+ /* Disabled pop-up menu: the pens' lighter rows, the theme's dimmed hatch and
3574
+ arrow (Appearance, "Variation"). */
3575
+ /* The arrow and hatch stay inside the frame; the pens draw on it. */
3576
+ [data-era="drawingboard"] select,
3577
+ [data-era="drawingboard"] select:disabled {
3578
+ background-clip: padding-box, padding-box, border-box, border-box, border-box, border-box, padding-box;
3579
+ }
3580
+
3581
+ [data-era="drawingboard"] select:disabled {
3582
+ border-image: url("art/drawingboard/pens/popup-disabled-corners.png") 5 / 5px stretch;
3583
+ border-color: transparent;
3584
+ background:
3585
+ var(--clio-art-db-popup-arrow-off) right 5px top 4px / 7px 9px no-repeat padding-box,
3586
+ var(--clio-art-db-popup-corner-off) right 19px bottom / 24px 24px no-repeat padding-box,
3587
+ url("art/drawingboard/pens/popup-disabled-left.png") left 0 bottom 1px / 1px 16px repeat-y border-box,
3588
+ url("art/drawingboard/pens/popup-disabled-right.png") right 0 bottom 1px / 1px 16px repeat-y border-box,
3589
+ url("art/drawingboard/pens/popup-disabled-top.png") right 1px top 0 / 64px 1px repeat-x border-box,
3590
+ url("art/drawingboard/pens/popup-disabled-bottom.png") right 1px bottom 0 / 64px 1px repeat-x border-box,
3591
+ #cec6b5;
3592
+ color: #8c8c8c;
3593
+ }
3594
+
3595
+
3596
+ /* The 1px pencil shade right of and below a push button (ppat 7079, 7070 next
3597
+ rows; held: 7127, 7126, tiled from the second column and row). A default
3598
+ button instead wears a 3px pencil band (ppat 7085 rows, 7086 columns) whose
3599
+ inner line is the box's edge, 2px outside it. Insets are from the padding box. */
3600
+ [data-era="drawingboard"] :is(button, .btn, .btn-default):not(.icon, [role="tab"], [role="menuitem"], .title-bar > *, .control-strip *)::before {
3601
+ content: "";
3602
+ position: absolute;
3603
+ top: 0;
3604
+ right: -2px;
3605
+ bottom: -2px;
3606
+ left: 4px;
3607
+ border: 0;
3608
+ border-image: none;
3609
+ box-shadow: none;
3610
+ background:
3611
+ url("art/drawingboard/pens/button-shade-right.png") right 0 bottom 2px / 1px 16px repeat-y,
3612
+ url("art/drawingboard/pens/button-shade-bottom.png") right 2px bottom 0 / 64px 1px repeat-x;
3613
+ pointer-events: none;
3614
+ }
3615
+
3616
+ [data-era="drawingboard"] :is(button, .btn, .btn-default):not(.icon, [role="tab"], [role="menuitem"], .title-bar > *, .control-strip *, :disabled, .disabled):is(:active, .active)::before {
3617
+ left: 0;
3618
+ background:
3619
+ url("art/drawingboard/pens/button-held-shade-right.png") right 0 top 0 / 1px 16px repeat-y,
3620
+ url("art/drawingboard/pens/button-held-shade-bottom.png") left 0 bottom 0 / 32px 1px repeat-x;
3621
+ }
3622
+
3623
+ [data-era="drawingboard"] :is(button, .btn, .btn-default):not(.icon, [role="tab"], [role="menuitem"], .title-bar > *, .control-strip *):is(.default, .btn-default)::before {
3624
+ inset: -3px;
3625
+ background:
3626
+ url("art/drawingboard/pens/button-default-left-3.png") left 0 bottom 3px / 1px 16px repeat-y,
3627
+ url("art/drawingboard/pens/button-default-left-2.png") left 1px bottom 3px / 1px 16px repeat-y,
3628
+ url("art/drawingboard/pens/button-default-left.png") left 2px bottom 3px / 1px 16px repeat-y,
3629
+ url("art/drawingboard/pens/button-default-right.png") right 2px bottom 3px / 1px 16px repeat-y,
3630
+ url("art/drawingboard/pens/button-default-right-2.png") right 1px bottom 3px / 1px 16px repeat-y,
3631
+ url("art/drawingboard/pens/button-default-right-3.png") right 0 bottom 3px / 1px 16px repeat-y,
3632
+ url("art/drawingboard/pens/button-default-top-3.png") right 3px top 0 / 64px 1px repeat-x,
3633
+ url("art/drawingboard/pens/button-default-top-2.png") right 3px top 1px / 64px 1px repeat-x,
3634
+ url("art/drawingboard/pens/button-default-top.png") right 3px top 2px / 64px 1px repeat-x,
3635
+ url("art/drawingboard/pens/button-default-bottom.png") right 3px bottom 2px / 64px 1px repeat-x,
3636
+ url("art/drawingboard/pens/button-default-bottom-2.png") right 3px bottom 1px / 64px 1px repeat-x,
3637
+ url("art/drawingboard/pens/button-default-bottom-3.png") right 3px bottom 0 / 64px 1px repeat-x;
3638
+ }
3639
+
3640
+ /* The pencil overruns at a push button's corners, outside its box: Button*
3641
+ pieces round a plain button, *Default pieces round the default one. */
3642
+ [data-era="drawingboard"] :is(button, .btn, .btn-default, input[type="button"], input[type="submit"], input[type="reset"]):not(.icon, [role="tab"], [role="menuitem"], .title-bar > *, .control-strip *) {
3643
+ position: relative;
3644
+ }
3645
+
3646
+ [data-era="drawingboard"] :is(button, .btn, .btn-default):not(.icon, [role="tab"], [role="menuitem"], .title-bar > *, .control-strip *)::after {
3647
+ content: "";
3648
+ position: absolute;
3649
+ inset: -6px; /* from the padding box: 5px outside the frame */
3650
+ background:
3651
+ var(--clio-art-db-btn-tl) left 3px top 3px / 7px 3px no-repeat,
3652
+ var(--clio-art-db-btn-tr) right 2px top 3px / 4px 3px no-repeat,
3653
+ var(--clio-art-db-btn-br) right 1px bottom 0 / 5px 6px no-repeat,
3654
+ var(--clio-art-db-btn-bl) left 3px bottom 2px / 7px 4px no-repeat;
3655
+ pointer-events: none;
3656
+ }
3657
+
3658
+ [data-era="drawingboard"] :is(button, .btn, .btn-default):not(.icon, [role="tab"], [role="menuitem"], .title-bar > *, .control-strip *, :disabled, .disabled):is(:active, .active)::after {
3659
+ background:
3660
+ var(--clio-art-db-btn-tl) left 3px top 3px / 7px 3px no-repeat,
3661
+ var(--clio-art-db-btn-tr) right 2px top 3px / 4px 3px no-repeat,
3662
+ var(--clio-art-db-btn-br-held) right 1px bottom 0 / 5px 6px no-repeat,
3663
+ var(--clio-art-db-btn-bl) left 3px bottom 2px / 7px 4px no-repeat;
3664
+ }
3665
+
3666
+ [data-era="drawingboard"] :is(button, .btn, .btn-default):not(.icon, [role="tab"], [role="menuitem"], .title-bar > *, .control-strip *):is(.default, .btn-default) {
3667
+ border-image-source: none;
3668
+ }
3669
+
3670
+ [data-era="drawingboard"] :is(button, .btn, .btn-default):not(.icon, [role="tab"], [role="menuitem"], .title-bar > *, .control-strip *):is(.default, .btn-default)::after {
3671
+ background:
3672
+ url("art/drawingboard/pens/button-default-corner-tl.png") left 5px top 5px / 5px 5px no-repeat,
3673
+ url("art/drawingboard/pens/button-default-corner-tr.png") right 5px top 5px / 5px 5px no-repeat,
3674
+ url("art/drawingboard/pens/button-default-corner-bl.png") left 5px bottom 5px / 5px 5px no-repeat,
3675
+ url("art/drawingboard/pens/button-default-corner-br.png") right 5px bottom 5px / 5px 5px no-repeat,
3676
+ var(--clio-art-db-def-tl) left 1px top 1px / 9px 5px no-repeat,
3677
+ var(--clio-art-db-def-tr) right 1px top 2px / 4px 4px no-repeat,
3678
+ var(--clio-art-db-def-br) right 0 bottom 0 / 5px 6px no-repeat,
3679
+ var(--clio-art-db-def-bl) left 1px bottom 1px / 9px 5px no-repeat;
3680
+ }
3681
+
3682
+ [data-era="drawingboard"] progress {
3683
+ border-left-color: #333333;
3684
+ }
3685
+
3686
+ [data-era="drawingboard"] progress:indeterminate,
3687
+ [data-era="drawingboard"] progress:indeterminate::-webkit-progress-bar {
3688
+ background: var(--clio-art-db-progress-arrows) 0 center / 128px 5px repeat-x, #ddd6c5;
3689
+ }
3690
+
3691
+ [data-era="drawingboard"] fieldset {
3692
+ background: transparent;
3693
+ }
3694
+
3695
+ [data-era="drawingboard"] fieldset > legend {
3696
+ margin-left: 0;
3697
+ }
3698
+
3699
+ /* ---- Antialiasing as Mac OS blends it: #333 labels on #cec6b5 (their solid
3700
+ pixels #313131, from a 16-bit buffer); grey when disabled. */
3701
+ [data-era="drawingboard"] :is(button, .btn, .btn-default, input[type="button"], input[type="submit"], input[type="reset"]):not(.icon, [role="tab"], [role="menuitem"], .title-bar > *, .control-strip *),
3702
+ [data-era="drawingboard"] :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) {
3703
+ font-palette: --clio-aa-db-button;
3704
+ }
3705
+
3706
+ [data-era="drawingboard"] :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) {
3707
+ font-palette: --clio-aa-db-button-disabled;
3708
+ }
3709
+
1910
3710
  /* Adaptations the historical machines never needed. Historical sizes are
1911
3711
  calibration, not a cage: on a touch screen the controls grow to the
1912
3712
  "coarse pointer" sizes from AI System 6's fidelity contract, without any
@@ -1915,6 +3715,7 @@
1915
3715
  :root,
1916
3716
  [data-era] {
1917
3717
  --clio-control-height: 36px;
3718
+ --clio-popup-height: 36px;
1918
3719
  --clio-field-height: 40px;
1919
3720
  --clio-menubar-height: 32px;
1920
3721
  --clio-menu-item-height: 32px;