starlight-theme-apple 0.7.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 (43) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/README.md +47 -5
  3. package/components/Footer.astro +19 -0
  4. package/components/Header.astro +55 -0
  5. package/components/NavLink.astro +24 -0
  6. package/components/PageFrame.astro +11 -0
  7. package/components/PageTitle.astro +24 -40
  8. package/components/Pagination.astro +22 -29
  9. package/components/Sidebar.astro +27 -0
  10. package/components/SiteFooter.astro +61 -0
  11. package/components/SocialIcons.astro +22 -0
  12. package/components.ts +10 -0
  13. package/index.ts +81 -120
  14. package/libs/breadcrumbs.ts +80 -0
  15. package/libs/config.ts +54 -0
  16. package/libs/expressive-code.ts +246 -0
  17. package/libs/links.ts +38 -0
  18. package/package.json +11 -5
  19. package/styles/base.css +35 -53
  20. package/styles/code.css +7 -83
  21. package/styles/components.css +599 -0
  22. package/styles/content.css +224 -425
  23. package/styles/header.css +217 -62
  24. package/styles/reference.css +332 -0
  25. package/styles/search.css +87 -73
  26. package/styles/sidebar.css +77 -56
  27. package/styles/toc.css +51 -44
  28. package/styles/tokens.css +130 -93
  29. package/styles.css +4 -4
  30. package/translations.ts +31 -0
  31. package/user-components/Availability.astro +21 -0
  32. package/user-components/Declaration.astro +16 -0
  33. package/user-components/Figure.astro +58 -0
  34. package/user-components/Parameter.astro +14 -0
  35. package/user-components/ParameterList.astro +11 -0
  36. package/user-components/ReferenceEntry.astro +12 -0
  37. package/user-components/ReferenceMeta.astro +30 -0
  38. package/user-components/TopicLink.astro +17 -0
  39. package/user-components/TopicList.astro +5 -0
  40. package/user-components/ValueList.astro +20 -0
  41. package/virtual.d.ts +10 -0
  42. package/styles/controls.css +0 -190
  43. package/styles/responsive.css +0 -157
@@ -1,521 +1,320 @@
1
- .main-pane main {
2
- padding-bottom: 4rem;
1
+ /* ============================================================
2
+ Page title area: breadcrumbs, title, and introduction
3
+ ============================================================ */
4
+
5
+ .content-panel:first-of-type {
6
+ padding-top: clamp(1.5rem, 4vw, 2.75rem);
7
+ padding-bottom: 0;
8
+ }
9
+ .content-panel:first-of-type .sl-container > * + * {
10
+ margin-top: 0;
3
11
  }
4
- .content-panel:first-of-type .sl-container {
5
- padding-top: clamp(2.5rem, 5vw, 4rem);
12
+ .content-panel + .content-panel {
13
+ padding-top: 1rem;
6
14
  }
7
15
 
8
- .apple-breadcrumbs {
16
+ .apple-breadcrumbs ol {
9
17
  display: flex;
10
- flex-wrap: nowrap;
18
+ flex-wrap: wrap;
19
+ align-items: center;
20
+ gap: 0.125rem 0;
21
+ margin: 0 0 1.25rem;
22
+ padding: 0;
23
+ list-style: none;
24
+ color: var(--apple-secondary-foreground);
25
+ font-size: 0.875rem;
26
+ line-height: 1.25rem;
27
+ letter-spacing: -0.016em;
28
+ }
29
+ .apple-breadcrumbs li {
30
+ display: inline-flex;
11
31
  align-items: center;
12
- gap: 0.4rem;
13
32
  min-width: 0;
14
- margin-bottom: 0.875rem;
15
- overflow: hidden;
16
- color: var(--apple-tertiary-foreground);
17
- font-size: 0.8125rem;
18
- line-height: 1.125rem;
19
- white-space: nowrap;
20
33
  }
21
- .apple-breadcrumbs a,
22
- .apple-breadcrumbs span {
23
- overflow: hidden;
24
- text-overflow: ellipsis;
34
+ .apple-breadcrumbs li + li::before {
35
+ content: "";
36
+ width: 0.4375rem;
37
+ height: 0.6875rem;
38
+ margin-inline: 0.5rem;
39
+ background: var(--apple-tertiary-foreground);
40
+ opacity: 0.7;
41
+ -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 7 11'%3E%3Cpath d='m1 1 4.5 4.5L1 10' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")
42
+ center / contain no-repeat;
43
+ mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 7 11'%3E%3Cpath d='m1 1 4.5 4.5L1 10' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")
44
+ center / contain no-repeat;
45
+ }
46
+ :root[dir="rtl"] .apple-breadcrumbs li + li::before {
47
+ transform: scaleX(-1);
25
48
  }
26
49
  .apple-breadcrumbs a {
27
- color: var(--apple-tertiary-foreground);
28
- text-decoration: none;
29
- }
30
- .apple-breadcrumbs a:is(:hover, :focus-visible) {
31
50
  color: var(--apple-link);
51
+ text-decoration: none;
32
52
  }
33
- .apple-breadcrumbs > span[aria-hidden] {
34
- flex: 0 0 auto;
35
- overflow: visible;
53
+ .apple-breadcrumbs a:hover {
54
+ text-decoration: underline;
36
55
  }
37
56
 
38
- .content-panel h1 {
57
+ .apple-page-title {
39
58
  margin: 0;
40
59
  color: var(--apple-foreground);
41
- font-size: 3rem;
42
- font-weight: 600;
43
- line-height: 3.25rem;
44
- letter-spacing: -0.025em;
45
- overflow-wrap: anywhere;
46
- }
47
-
48
- .content-panel
49
- .sl-container
50
- > p:first-of-type:not(:where(.sl-markdown-content *)) {
51
- max-width: 42rem;
52
- margin-top: 0.75rem;
53
- color: var(--apple-secondary-foreground);
54
- font-size: 1.3125rem;
55
- line-height: 1.8125rem;
60
+ font-size: var(--sl-text-h1);
61
+ font-weight: 700;
62
+ line-height: 1.1;
63
+ letter-spacing: -0.009em;
64
+ overflow-wrap: break-word;
56
65
  }
57
66
 
58
- .meta {
59
- align-items: center;
60
- flex-direction: row-reverse;
61
- justify-content: flex-start;
62
- gap: 0.5rem;
63
- margin-top: 1.25rem;
64
- color: var(--apple-secondary-foreground);
65
- font-size: 0.8125rem;
66
- }
67
- .meta a {
68
- color: var(--apple-link);
69
- text-decoration: none;
67
+ /* The first paragraph of a page is its abstract, as on Apple’s symbol and article pages. */
68
+ .sl-markdown-content > p:first-child:not(:where(.not-content *)) {
69
+ margin-bottom: 1.75rem;
70
+ color: var(--apple-foreground);
71
+ font-size: clamp(1.125rem, 0.95rem + 0.75vw, var(--apple-text-lead));
72
+ line-height: 1.381;
73
+ letter-spacing: 0.011em;
70
74
  }
71
- .meta a:is(:hover, :focus-visible) {
72
- color: var(--apple-link-hover);
75
+ :root[data-has-hero]
76
+ .sl-markdown-content
77
+ > p:first-child:not(:where(.not-content *)) {
78
+ margin-bottom: 0;
73
79
  }
74
80
 
75
- .sl-markdown-content {
81
+ /* ============================================================
82
+ Headings
83
+ ============================================================ */
84
+
85
+ .sl-markdown-content :is(h2, h3, h4, h5, h6):not(:where(.not-content *)) {
76
86
  color: var(--apple-foreground);
77
- font-size: 1.0625rem;
78
- line-height: 1.65;
87
+ font-weight: 600;
79
88
  }
80
- .sl-markdown-content > :first-child {
81
- margin-top: 0;
89
+ .sl-markdown-content
90
+ :is(h2, .sl-heading-wrapper.level-h2):not(:where(.not-content *)) {
91
+ line-height: 1.125;
92
+ letter-spacing: 0.004em;
82
93
  }
83
- .sl-markdown-content > :last-child {
84
- margin-bottom: 0;
94
+ .sl-markdown-content
95
+ :is(h3, .sl-heading-wrapper.level-h3):not(:where(.not-content *)) {
96
+ line-height: 1.1667;
97
+ letter-spacing: 0.009em;
85
98
  }
86
- .sl-markdown-content :is(p, li, blockquote):not(:where(.not-content *)) {
87
- max-width: 70ch;
99
+ .sl-markdown-content
100
+ :is(h4, .sl-heading-wrapper.level-h4):not(:where(.not-content *)) {
101
+ line-height: 1.19;
102
+ letter-spacing: 0.011em;
88
103
  }
89
104
  .sl-markdown-content
90
- :is(p, ul, ol, blockquote, table):not(:where(.not-content *)) {
91
- margin-block: 1rem;
105
+ :is(h5, h6, .sl-heading-wrapper:is(.level-h5, .level-h6)):not(
106
+ :where(.not-content *)
107
+ ) {
108
+ line-height: 1.4706;
109
+ letter-spacing: -0.022em;
92
110
  }
93
111
 
94
- .sl-markdown-content .sl-heading-wrapper.level-h2 {
95
- margin-top: var(--apple-section-spacing);
96
- }
97
- .sl-markdown-content h2:not(:where(.not-content *)) {
98
- margin-top: var(--apple-section-spacing);
99
- padding: 0;
100
- border: 0;
101
- color: var(--apple-foreground);
102
- font-size: 2rem;
103
- font-weight: 600;
104
- line-height: 2.5rem;
105
- letter-spacing: -0.018em;
106
- }
107
- .sl-markdown-content .sl-heading-wrapper.level-h2 h2,
108
- .sl-markdown-content .sl-heading-wrapper.level-h3 h3,
109
- .sl-markdown-content .sl-heading-wrapper.level-h4 h4 {
110
- margin-top: 0;
112
+ /*
113
+ * Section rhythm: generous space above sections, a tight gap below the heading.
114
+ * `:where()` keeps these generic rules easy to refine for specific structures.
115
+ */
116
+ .sl-markdown-content
117
+ :where(:not(h1, h2, h3, h4, h5, h6, .sl-heading-wrapper))
118
+ + :where(.sl-heading-wrapper.level-h2, h2) {
119
+ margin-top: 2.75rem;
111
120
  }
112
-
113
- .sl-markdown-content .sl-heading-wrapper.level-h3,
114
- .sl-markdown-content h3:not(:where(.not-content *)) {
121
+ .sl-markdown-content
122
+ :where(:not(h1, h2, h3, h4, h5, h6, .sl-heading-wrapper))
123
+ + :where(.sl-heading-wrapper.level-h3, h3) {
115
124
  margin-top: 2rem;
116
125
  }
117
- .sl-markdown-content h3:not(:where(.not-content *)) {
118
- color: var(--apple-foreground);
119
- font-size: 1.375rem;
120
- font-weight: 600;
121
- line-height: 2rem;
122
- letter-spacing: -0.012em;
126
+ .sl-markdown-content
127
+ :where(:not(h1, h2, h3, h4, h5, h6, .sl-heading-wrapper))
128
+ + :where(
129
+ .sl-heading-wrapper:is(.level-h4, .level-h5, .level-h6),
130
+ h4,
131
+ h5,
132
+ h6
133
+ ) {
134
+ margin-top: 1.5rem;
123
135
  }
124
- .sl-markdown-content .sl-heading-wrapper.level-h4,
125
- .sl-markdown-content h4:not(:where(.not-content *)) {
126
- margin-top: 1.75rem;
136
+ .sl-markdown-content
137
+ :where(.sl-heading-wrapper, h2, h3, h4, h5, h6)
138
+ + :where(:not(.not-content *)) {
139
+ margin-top: 0.75rem;
127
140
  }
128
- .sl-markdown-content h4:not(:where(.not-content *)) {
129
- color: var(--apple-foreground);
130
- font-size: 1.125rem;
141
+ .sl-markdown-content :is(h2, h3) code {
142
+ font-size: 0.875em;
131
143
  font-weight: 600;
132
- line-height: 1.5rem;
133
- }
134
- .sl-markdown-content h5:not(:where(.not-content *)) {
135
- font-size: 1.0625rem;
136
- line-height: 1.5rem;
137
- }
138
- .sl-markdown-content h6:not(:where(.not-content *)) {
139
- font-size: 1.0625rem;
140
- line-height: 1.5625rem;
141
144
  }
142
145
 
143
- .sl-heading-wrapper .sl-anchor-link {
144
- margin-inline-start: 0.25rem;
145
- padding: 0.25rem;
146
- border-radius: var(--apple-radius-sm);
146
+ .sl-markdown-content .sl-anchor-link {
147
+ /* Starlight's inline-flex link inflates the line box under tight heading line heights. */
148
+ display: inline;
147
149
  color: var(--apple-tertiary-foreground);
148
- opacity: 0;
149
- }
150
- .sl-heading-wrapper:is(:hover, :focus-within) .sl-anchor-link {
151
- opacity: 1;
152
150
  }
153
- .sl-heading-wrapper .sl-anchor-link:is(:hover, :focus-visible) {
154
- background: var(--apple-hover-surface);
151
+ .sl-markdown-content .sl-anchor-link:hover {
155
152
  color: var(--apple-link);
156
153
  }
157
154
 
155
+ /* ============================================================
156
+ Prose
157
+ ============================================================ */
158
+
159
+ .sl-markdown-content {
160
+ color: var(--apple-foreground);
161
+ }
162
+
158
163
  .sl-markdown-content a:not(:where(.not-content *)) {
159
164
  color: var(--apple-link);
160
165
  text-decoration: none;
161
166
  }
162
- .sl-markdown-content a:is(:hover, :focus-visible):not(:where(.not-content *)) {
163
- color: var(--apple-link-hover);
167
+ .sl-markdown-content a:hover:not(:where(.not-content *)) {
168
+ color: var(--apple-link);
164
169
  text-decoration: underline;
165
- text-decoration-thickness: 1px;
166
- text-underline-offset: 0.14em;
170
+ text-underline-offset: 0.15em;
167
171
  }
168
- .sl-markdown-content hr:not(:where(.not-content *)) {
169
- border-color: var(--apple-hairline);
170
- }
171
- .sl-markdown-content blockquote:not(:where(.not-content *)) {
172
- margin-inline: 0;
173
- padding: 0.125rem 0 0.125rem 1rem;
174
- border-inline-start: 2px solid var(--apple-border);
175
- color: var(--apple-secondary-foreground);
172
+
173
+ .sl-markdown-content strong:not(:where(.not-content *)) {
174
+ font-weight: 600;
176
175
  }
177
176
 
178
- .sl-markdown-content :is(ul, ol):not(:where(.not-content *, .sl-steps)) {
179
- padding-inline-start: 1.5rem;
177
+ .sl-markdown-content code:not(:where(.not-content *)) {
178
+ margin: 0;
179
+ padding: 0;
180
+ border-radius: 0;
181
+ background: none;
182
+ color: inherit;
183
+ font-family: var(--apple-font-mono);
184
+ font-size: 0.94em;
180
185
  }
181
- .sl-markdown-content :is(ul, ol):not(:where(.not-content *, .sl-steps)) > li {
182
- padding-inline-start: 0.25rem;
186
+
187
+ .sl-markdown-content
188
+ :is(ul, ol):not(:where(.not-content *, .sl-steps, [class])) {
189
+ padding-inline-start: 1.25rem;
183
190
  }
184
191
  .sl-markdown-content
185
- :is(ul, ol):not(:where(.not-content *, .sl-steps))
192
+ :is(ul, ol):not(:where(.not-content *, .sl-steps, [class]))
186
193
  > li::marker {
187
194
  color: var(--apple-tertiary-foreground);
188
195
  }
196
+ .sl-markdown-content li + li:not(:where(.not-content *)) {
197
+ margin-top: 0.375rem;
198
+ }
189
199
 
200
+ .sl-markdown-content blockquote:not(:where(.not-content *)) {
201
+ padding-inline-start: 1rem;
202
+ border-inline-start: 3px solid var(--apple-hairline);
203
+ color: var(--apple-secondary-foreground);
204
+ }
205
+
206
+ .sl-markdown-content hr:not(:where(.not-content *)) {
207
+ margin-block: 2.5rem;
208
+ border-bottom-color: var(--apple-hairline);
209
+ }
210
+
211
+ .sl-markdown-content kbd:not(:where(.not-content *)) {
212
+ display: inline-block;
213
+ min-width: 1.5em;
214
+ padding: 0.0625em 0.375em;
215
+ border: 1px solid var(--apple-hairline);
216
+ border-radius: 0.3125rem;
217
+ background: var(--apple-secondary-background);
218
+ color: var(--apple-foreground);
219
+ font-family: var(--apple-font-sans);
220
+ font-size: 0.8125em;
221
+ line-height: 1.4;
222
+ text-align: center;
223
+ }
224
+
225
+ .sl-markdown-content mark:not(:where(.not-content *)) {
226
+ padding-inline: 0.125em;
227
+ border-radius: 0.1875rem;
228
+ background: color-mix(in srgb, #ffd60a 40%, transparent);
229
+ color: inherit;
230
+ }
231
+
232
+ /* Tables: compact rows separated by hairlines, scrolling horizontally when wide. */
190
233
  .sl-markdown-content table:not(:where(.not-content *)) {
191
- display: table;
234
+ display: block;
192
235
  width: 100%;
236
+ max-width: 100%;
237
+ overflow-x: auto;
193
238
  border-collapse: collapse;
194
239
  font-size: 0.9375rem;
240
+ line-height: 1.4;
241
+ letter-spacing: -0.016em;
195
242
  }
196
243
  .sl-markdown-content :is(th, td):not(:where(.not-content *)) {
197
- padding: 0.625rem;
198
- border: 0;
244
+ padding: 0.6875rem 1.25rem 0.6875rem 0;
199
245
  border-bottom: 1px solid var(--apple-hairline);
200
- text-align: start;
201
246
  }
202
247
  .sl-markdown-content th:not(:where(.not-content *)) {
203
- background: var(--apple-secondary-background);
248
+ border-bottom-color: var(--apple-tertiary-foreground);
204
249
  color: var(--apple-foreground);
250
+ font-size: 0.8125rem;
205
251
  font-weight: 600;
252
+ vertical-align: bottom;
206
253
  }
207
- .sl-markdown-content tbody tr:hover:not(:where(.not-content *)) {
208
- background: var(--apple-hover-surface);
254
+ .sl-markdown-content :is(th, td):last-child:not(:where(.not-content *)) {
255
+ padding-inline-end: 0;
209
256
  }
210
257
 
258
+ /* Disclosures: hairline-separated rows; consecutive disclosures share a rule. */
211
259
  .sl-markdown-content details:not(:where(.not-content *)) {
212
- overflow: clip;
213
260
  padding: 0;
214
- border: 1px solid var(--apple-hairline);
215
- border-radius: var(--apple-radius-panel);
216
- background: var(--apple-secondary-background);
217
- }
218
- .sl-markdown-content details > summary:not(:where(.not-content *)) {
219
- padding: 0.875rem 1rem;
220
- color: var(--apple-foreground);
221
- font-weight: 500;
222
- cursor: pointer;
223
- }
224
- .sl-markdown-content details > summary:hover:not(:where(.not-content *)) {
225
- background: var(--apple-hover-surface);
226
- }
227
- .sl-markdown-content details[open] > summary:not(:where(.not-content *)) {
228
- border-bottom: 1px solid var(--apple-hairline);
229
- }
230
- .sl-markdown-content details > :not(summary):not(:where(.not-content *)) {
231
- margin-inline: 1rem;
232
- }
233
- .sl-markdown-content details > :last-child:not(:where(.not-content *)) {
234
- margin-bottom: 1rem;
235
- }
236
-
237
- .sl-markdown-content .card,
238
- .sl-markdown-content .sl-link-card {
239
- border: 1px solid var(--apple-hairline);
240
- border-radius: 0.875rem;
241
- background: var(--apple-card-background);
242
- box-shadow: none;
243
- }
244
- .sl-markdown-content .card {
245
- min-height: 100%;
246
- padding: 1.25rem;
247
- gap: 0.75rem;
248
- }
249
- .sl-markdown-content .card .title {
250
- align-items: center;
251
- gap: 0.75rem;
252
- margin: 0;
253
- color: var(--apple-foreground);
254
- font-size: 1.0625rem;
255
- font-weight: 600;
256
- line-height: 1.375rem;
257
- }
258
- .sl-markdown-content .card .body {
259
- margin: 0;
260
- color: var(--apple-secondary-foreground);
261
- font-size: 0.9375rem;
262
- line-height: 1.5rem;
261
+ border: 0;
262
+ border-block: 1px solid var(--apple-hairline);
263
263
  }
264
- .sl-markdown-content .card .body > :first-child {
264
+ .sl-markdown-content details + details:not(:where(.not-content *)) {
265
265
  margin-top: 0;
266
+ border-top: 0;
266
267
  }
267
- .sl-markdown-content .card .body > :last-child {
268
- margin-bottom: 0;
269
- }
270
- .sl-markdown-content .card-grid {
271
- align-items: stretch;
272
- gap: 1rem;
273
- }
274
- .sl-markdown-content .card-grid.stagger {
275
- --stagger-height: 1.5rem;
276
- }
277
- .sl-markdown-content .card .title .icon {
278
- box-sizing: border-box;
279
- flex: 0 0 2rem;
280
- width: 2rem;
281
- height: 2rem;
282
- padding: 0.4375rem;
283
- border: 1px solid var(--apple-hairline);
284
- border-radius: 0.625rem;
285
- background: var(--apple-hover-surface);
286
- color: var(--apple-link);
287
- font-size: 1.125rem;
288
- }
289
- .sl-markdown-content .sl-link-card {
290
- min-height: 100%;
291
- transition:
292
- transform var(--apple-transition),
293
- border-color var(--apple-transition),
294
- background-color var(--apple-transition),
295
- box-shadow var(--apple-transition);
296
- }
297
- .sl-markdown-content .sl-link-card:is(:hover, :focus-within) {
298
- border-color: color-mix(
299
- in srgb,
300
- var(--apple-link) 45%,
301
- var(--apple-hairline)
302
- );
303
- background: var(--apple-hover-surface);
304
- box-shadow: none;
305
- text-decoration: none;
306
- }
307
- .sl-markdown-content .sl-link-card .title {
268
+ .sl-markdown-content summary:not(:where(.not-content *)) {
269
+ padding-block: 0.75rem;
308
270
  color: var(--apple-foreground);
309
- font-size: 1rem;
310
271
  font-weight: 600;
311
- line-height: 1.375rem;
312
272
  }
313
- .sl-markdown-content .sl-link-card:hover .title,
314
- .sl-markdown-content .sl-link-card:focus-within .title {
315
- color: var(--apple-link);
316
- }
317
- .sl-markdown-content .sl-link-card .description {
318
- color: var(--apple-secondary-foreground);
319
- font-size: 0.9375rem;
320
- line-height: 1.4375rem;
273
+ .sl-markdown-content summary:not(:where(.not-content *))::before {
274
+ --sl-details-marker-size: 1.125rem;
275
+ color: var(--apple-tertiary-foreground);
321
276
  }
322
- .sl-markdown-content .sl-link-card .icon {
323
- align-self: start;
324
- margin-top: 0.125rem;
277
+ .sl-markdown-content summary:hover:not(:where(.not-content *)) {
325
278
  color: var(--apple-link);
326
- transition: transform var(--apple-transition);
327
- }
328
- .sl-markdown-content .sl-link-card:hover .icon,
329
- .sl-markdown-content .sl-link-card:focus-within .icon {
330
- transform: translateX(0.125rem);
331
- }
332
- .sl-markdown-content .sl-link-card a:focus-visible {
333
- outline: 0;
334
- }
335
- .sl-markdown-content .sl-link-card:focus-within {
336
- outline: 3px solid var(--apple-focus);
337
- outline-offset: 2px;
338
- }
339
- @media (prefers-reduced-motion: reduce) {
340
- .sl-markdown-content .sl-link-card,
341
- .sl-markdown-content .sl-link-card .icon {
342
- transition: none;
343
- }
344
- .sl-markdown-content .sl-link-card:is(:hover, :focus-within),
345
- .sl-markdown-content .sl-link-card:hover .icon,
346
- .sl-markdown-content .sl-link-card:focus-within .icon {
347
- transform: none;
348
- }
349
- }
350
-
351
- .starlight-aside {
352
- --apple-aside-accent: var(--apple-secondary-foreground);
353
- margin-block: 1.5rem;
354
- padding: 1rem 1.125rem;
355
- border: 1px solid var(--apple-hairline);
356
- border-radius: var(--apple-radius-panel);
357
- background: var(--apple-aside-background);
358
- color: var(--apple-foreground);
359
- box-shadow: none;
360
- }
361
- .starlight-aside--caution {
362
- --apple-aside-accent: var(--apple-warning);
363
279
  }
364
- .starlight-aside--danger {
365
- --apple-aside-accent: var(--apple-danger);
366
- }
367
- .starlight-aside--tip {
368
- --apple-aside-accent: var(--apple-success);
369
- }
370
- .starlight-aside__icon {
371
- display: none;
372
- }
373
- .starlight-aside__title {
374
- margin: 0;
375
- color: var(--apple-aside-accent);
376
- font-size: 0.9375rem;
377
- font-weight: 500;
378
- line-height: 1.375rem;
379
- }
380
- .starlight-aside__title + * {
381
- margin-top: 0.375rem;
382
- }
383
- .sl-markdown-content .starlight-aside :is(p, ul, ol) {
384
- margin-block: 0.5rem;
385
- }
386
- .sl-markdown-content .starlight-aside .starlight-aside__title {
387
- margin: 0;
388
- }
389
- .starlight-aside__content > :first-child {
280
+ .sl-markdown-content details > :not(summary):not(:where(.not-content *)) {
390
281
  margin-top: 0;
391
282
  }
392
- .starlight-aside__content > :last-child {
393
- margin-bottom: 0;
283
+ .sl-markdown-content
284
+ details
285
+ > :last-child:not(summary):not(:where(.not-content *)) {
286
+ margin-bottom: 1rem;
394
287
  }
395
288
 
396
- .content-panel:first-of-type p.sl-flex:not(:where(.sl-markdown-content *)) {
397
- align-items: flex-start;
398
- gap: 0.75rem;
399
- padding: 0.875rem 1rem;
400
- border: 1px solid var(--apple-hairline);
401
- border-radius: var(--apple-radius-sm);
402
- background: var(--apple-code-background);
403
- }
404
- .content-panel:first-of-type p.sl-flex:not(:where(.sl-markdown-content *)) svg {
405
- flex-shrink: 0;
406
- }
289
+ /* ============================================================
290
+ Media
291
+ ============================================================ */
407
292
 
408
- .sl-steps > li {
409
- padding-bottom: 1rem;
410
- padding-inline-start: 2.75rem;
411
- }
412
- .sl-steps > li + li {
413
- margin-top: 0;
414
- }
415
- .sl-steps > li::before {
416
- border-color: var(--apple-border);
417
- background: var(--apple-secondary-background);
418
- color: var(--apple-foreground);
419
- font-weight: 600;
420
- box-shadow: 0 0 0 4px var(--apple-background);
421
- }
422
- .sl-steps > li:not(:last-child)::after {
423
- border-inline-start-color: var(--apple-hairline);
293
+ .sl-markdown-content :is(img, video):not(:where(.not-content *)) {
294
+ border-radius: var(--apple-radius-sm);
424
295
  }
425
296
 
426
- .pagination-links {
427
- display: grid;
428
- grid-template-columns: repeat(2, minmax(0, 1fr));
429
- gap: 2rem;
430
- margin-top: 2.5rem;
431
- padding-top: 1.5rem;
432
- border-top: 1px solid var(--apple-hairline);
433
- }
434
- .pagination-links > a {
435
- display: flex;
436
- align-items: flex-start;
437
- gap: 0.625rem;
438
- min-width: 0;
439
- padding-block: 0.5rem;
440
- color: var(--apple-link);
441
- text-decoration: none;
442
- }
443
- .pagination-links > a[rel="next"] {
444
- grid-column: 2;
445
- justify-content: flex-end;
446
- text-align: end;
447
- }
448
- .pagination-links > a:is(:hover, :focus-visible) {
449
- color: var(--apple-link-hover);
297
+ .apple-figure {
298
+ margin-inline: 0;
450
299
  }
451
- .pagination-links > a > span:not(.pagination-arrow) {
452
- min-width: 0;
300
+ .sl-markdown-content .apple-figure {
301
+ margin-block: 2rem;
453
302
  }
454
- .pagination-links small,
455
- .pagination-links .link-title {
303
+ .apple-figure > :is(img, picture, video) {
456
304
  display: block;
457
- }
458
- .pagination-links small {
459
- margin-bottom: 0.2rem;
460
- color: var(--apple-tertiary-foreground);
461
- font-size: 0.75rem;
462
- line-height: 1rem;
463
- }
464
- .pagination-links .link-title {
465
- font-size: 0.9375rem;
466
- font-weight: 500;
467
- line-height: 1.25rem;
468
- overflow-wrap: anywhere;
469
- }
470
- .pagination-arrow {
471
- flex: 0 0 auto;
472
- line-height: 1.25rem;
473
- }
474
-
475
- .hero {
476
- width: min(100%, 64rem);
477
- margin-inline: auto;
478
- padding-block: clamp(4rem, 10vw, 8rem);
479
- padding-inline: var(--sl-content-pad-x);
480
- }
481
- .hero > img {
482
- flex: 0 0 clamp(12rem, 26vw, 20rem);
483
- width: clamp(12rem, 26vw, 20rem);
305
+ width: 100%;
484
306
  height: auto;
485
- filter: saturate(0.92);
486
- }
487
- .hero .stack {
488
- gap: 1.5rem;
489
- }
490
- .hero .copy {
491
- gap: 0.75rem;
492
- }
493
- .hero h1 {
494
- max-width: 12ch;
495
- margin: 0;
496
- color: var(--apple-foreground);
497
- font-size: clamp(2.75rem, 6vw, 4.5rem);
498
- font-weight: 600;
499
- line-height: 1.02;
500
- letter-spacing: -0.035em;
501
- }
502
- .hero .tagline {
503
- max-width: 32rem;
504
- color: var(--apple-secondary-foreground);
505
- font-size: clamp(1.25rem, 2.4vw, 1.5rem);
506
- line-height: 1.4;
507
- }
508
- .hero .actions {
509
- gap: 0.75rem;
510
307
  }
511
-
512
- .sl-markdown-content starlight-tabs ul[role="tablist"] {
513
- border-bottom: 1px solid var(--apple-hairline);
308
+ .apple-figure[data-frame] > :is(img, picture, video) {
309
+ border: 1px solid var(--apple-hairline);
310
+ border-radius: 0.75rem;
311
+ box-shadow: 0 12px 32px -12px rgb(0 0 0 / 0.22);
514
312
  }
515
- .sl-markdown-content starlight-tabs a[role="tab"] {
313
+ .apple-figure figcaption {
314
+ margin-top: 0.75rem;
516
315
  color: var(--apple-secondary-foreground);
517
- }
518
- .sl-markdown-content starlight-tabs a[role="tab"][aria-selected="true"] {
519
- border-color: var(--apple-link);
520
- color: var(--apple-link);
316
+ font-size: 0.875rem;
317
+ line-height: 1.43;
318
+ letter-spacing: -0.016em;
319
+ text-align: center;
521
320
  }