starlight-theme-apple 0.4.0 → 0.6.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "starlight-theme-apple",
3
- "version": "0.4.0",
3
+ "version": "0.6.0",
4
4
  "description": "An Apple Developer Documentation-inspired theme for Astro Starlight.",
5
5
  "keywords": [
6
6
  "starlight",
package/styles/base.css CHANGED
@@ -63,12 +63,12 @@ select:disabled {
63
63
  }
64
64
 
65
65
  .sl-banner {
66
- max-width: var(--apple-content-width);
66
+ width: 100%;
67
+ max-width: none;
67
68
  margin-block: 2rem 1rem;
68
- margin-inline: var(--sl-content-pad-x);
69
- padding: 0.875rem 1.125rem;
70
- border: 1px solid var(--apple-border);
71
- border-radius: 0.75rem;
69
+ margin-inline: 0;
70
+ padding: 0.875rem var(--sl-content-pad-x);
71
+ border-block: 1px solid var(--apple-border);
72
72
  background: var(--apple-aside-background);
73
73
  box-shadow: none;
74
74
  color: var(--apple-foreground);
@@ -237,40 +237,112 @@
237
237
  .sl-markdown-content .card,
238
238
  .sl-markdown-content .sl-link-card {
239
239
  border: 1px solid var(--apple-hairline);
240
- border-radius: 0.75rem;
241
- background: var(--apple-secondary-background);
242
- box-shadow: none;
240
+ border-radius: 0.875rem;
241
+ background: var(--apple-card-background);
242
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06);
243
243
  }
244
244
  .sl-markdown-content .card {
245
+ min-height: 100%;
245
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;
263
+ }
264
+ .sl-markdown-content .card .body > :first-child {
265
+ margin-top: 0;
266
+ }
267
+ .sl-markdown-content .card .body > :last-child {
268
+ margin-bottom: 0;
246
269
  }
247
270
  .sl-markdown-content .card-grid {
271
+ align-items: stretch;
248
272
  gap: 1rem;
249
273
  }
250
274
  .sl-markdown-content .card-grid.stagger {
251
- --stagger-height: 2rem;
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: var(--apple-link);
299
+ background: var(--apple-hover-surface);
300
+ box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1);
301
+ transform: translateY(-1px);
302
+ text-decoration: none;
252
303
  }
253
- .sl-markdown-content .card .title,
254
304
  .sl-markdown-content .sl-link-card .title {
255
305
  color: var(--apple-foreground);
256
306
  font-size: 1rem;
257
307
  font-weight: 600;
308
+ line-height: 1.375rem;
258
309
  }
259
- .sl-markdown-content .card .title .icon {
310
+ .sl-markdown-content .sl-link-card:hover .title,
311
+ .sl-markdown-content .sl-link-card:focus-within .title {
260
312
  color: var(--apple-link);
261
- font-size: 1.5rem;
262
- }
263
- .sl-markdown-content .sl-link-card:is(:hover, :focus-visible) {
264
- border-color: var(--apple-border);
265
- background: var(--apple-hover-surface);
266
- box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
267
- text-decoration: none;
268
313
  }
269
314
  .sl-markdown-content .sl-link-card .description {
270
315
  color: var(--apple-secondary-foreground);
316
+ font-size: 0.9375rem;
317
+ line-height: 1.4375rem;
271
318
  }
272
319
  .sl-markdown-content .sl-link-card .icon {
273
- color: var(--apple-tertiary-foreground);
320
+ align-self: start;
321
+ margin-top: 0.125rem;
322
+ color: var(--apple-link);
323
+ transition: transform var(--apple-transition);
324
+ }
325
+ .sl-markdown-content .sl-link-card:hover .icon,
326
+ .sl-markdown-content .sl-link-card:focus-within .icon {
327
+ transform: translateX(0.125rem);
328
+ }
329
+ .sl-markdown-content .sl-link-card a:focus-visible {
330
+ outline: 0;
331
+ }
332
+ .sl-markdown-content .sl-link-card:focus-within {
333
+ outline: 3px solid var(--apple-focus);
334
+ outline-offset: 2px;
335
+ }
336
+ @media (prefers-reduced-motion: reduce) {
337
+ .sl-markdown-content .sl-link-card,
338
+ .sl-markdown-content .sl-link-card .icon {
339
+ transition: none;
340
+ }
341
+ .sl-markdown-content .sl-link-card:is(:hover, :focus-within),
342
+ .sl-markdown-content .sl-link-card:hover .icon,
343
+ .sl-markdown-content .sl-link-card:focus-within .icon {
344
+ transform: none;
345
+ }
274
346
  }
275
347
 
276
348
  .starlight-aside {
@@ -3,62 +3,77 @@
3
3
  display: inline-flex;
4
4
  align-items: center;
5
5
  justify-content: center;
6
- gap: 0.4rem;
7
- min-height: 2.25rem;
8
- padding: 0.45rem 0.875rem;
9
- border: 1px solid transparent;
10
- border-radius: var(--apple-radius-sm);
6
+ gap: 0.375rem;
7
+ min-width: 1.875rem;
8
+ min-height: 2.0625rem;
9
+ padding: 0.25rem 0.9375rem;
10
+ border: 0;
11
+ border-radius: 0.25rem;
11
12
  box-shadow: none;
12
- font-size: 0.875rem;
13
- font-weight: 600;
14
- line-height: 1.25rem;
13
+ font-size: 1.0625rem;
14
+ font-weight: 400;
15
+ line-height: 1.5625rem;
16
+ letter-spacing: normal;
15
17
  text-decoration: none;
18
+ cursor: pointer;
19
+ transition:
20
+ color var(--apple-transition),
21
+ background-color var(--apple-transition),
22
+ border-color var(--apple-transition),
23
+ box-shadow var(--apple-transition);
16
24
  }
17
25
  .sl-markdown-content .sl-link-button + .sl-link-button {
18
26
  margin-inline-start: 0.5rem;
19
27
  }
20
28
  .hero .sl-link-button {
21
- min-height: 2.5rem;
22
- padding: 0.55rem 1rem;
29
+ min-height: 2.0625rem;
30
+ padding: 0.25rem 0.9375rem;
23
31
  }
24
32
  .hero .sl-link-button svg,
25
33
  .sl-markdown-content .sl-link-button svg {
26
34
  flex-shrink: 0;
27
- font-size: 1.125rem;
35
+ font-size: 1rem;
28
36
  }
29
37
 
30
38
  :is(.hero, .sl-markdown-content) .sl-link-button.primary {
31
- border-color: var(--apple-link);
32
- background: var(--apple-link);
39
+ background: var(--apple-button-background);
33
40
  color: var(--apple-control-primary-text);
34
41
  }
35
42
  :is(.hero, .sl-markdown-content)
36
43
  .sl-link-button.primary:is(:hover, :focus-visible) {
37
- border-color: var(--apple-link-hover);
38
- background: var(--apple-link-hover);
44
+ background: var(--apple-button-background-hover);
39
45
  color: var(--apple-control-primary-text);
40
46
  text-decoration: none;
41
47
  }
48
+ :is(.hero, .sl-markdown-content) .sl-link-button.primary:active {
49
+ background: var(--apple-button-background-active);
50
+ }
42
51
  :is(.hero, .sl-markdown-content) .sl-link-button.secondary {
43
- border-color: var(--apple-border);
44
- background: transparent;
45
- color: var(--apple-foreground);
52
+ background: var(--apple-button-secondary-background);
53
+ color: var(--apple-link);
46
54
  }
47
55
  :is(.hero, .sl-markdown-content)
48
56
  .sl-link-button.secondary:is(:hover, :focus-visible) {
49
- background: var(--apple-active-surface);
50
- color: var(--apple-foreground);
57
+ background: var(--apple-button-secondary-hover);
58
+ color: var(--apple-link);
51
59
  text-decoration: none;
52
60
  }
53
61
  :is(.hero, .sl-markdown-content) .sl-link-button.minimal {
62
+ min-width: 0;
63
+ padding-inline: 0;
54
64
  background: transparent;
55
65
  color: var(--apple-link);
56
66
  }
57
67
  :is(.hero, .sl-markdown-content)
58
68
  .sl-link-button.minimal:is(:hover, :focus-visible) {
59
- background: var(--apple-hover-surface);
60
- color: var(--apple-link-hover);
61
- text-decoration: none;
69
+ background: transparent;
70
+ color: var(--apple-link);
71
+ text-decoration: underline;
72
+ text-underline-offset: 0.14em;
73
+ }
74
+ :is(.hero, .sl-markdown-content) .sl-link-button:focus-visible {
75
+ outline: 0;
76
+ box-shadow: 0 0 0 4px var(--apple-focus);
62
77
  }
63
78
 
64
79
  .sl-markdown-content starlight-tabs {
@@ -113,7 +128,8 @@
113
128
  padding-inline: 0.5rem;
114
129
  border: 0;
115
130
  border-radius: 999px;
116
- background: color-mix(in srgb, currentColor 14%, transparent);
131
+ background: var(--sl-color-bg-badge);
132
+ color: var(--sl-color-text-badge);
117
133
  font-weight: 600;
118
134
  line-height: 1.2;
119
135
  vertical-align: 0.08em;
@@ -129,16 +145,45 @@
129
145
  font-size: 0.6875rem;
130
146
  line-height: 1;
131
147
  }
148
+ .sidebar-content a[aria-current="page"] > .sl-badge {
149
+ color: inherit;
150
+ }
132
151
 
133
- .sl-markdown-content
134
- :is(input, select, textarea, button):not(:where(.not-content *)) {
152
+ .sl-markdown-content :is(input, select, textarea):not(:where(.not-content *)) {
135
153
  min-height: 2.25rem;
136
154
  border: 1px solid var(--apple-border);
137
- border-radius: var(--apple-radius-sm);
155
+ border-radius: 0.5rem;
138
156
  background: var(--apple-secondary-background);
139
157
  color: var(--apple-foreground);
140
158
  font: inherit;
141
159
  }
160
+ .sl-markdown-content button:not(:where(.not-content *)) {
161
+ min-width: 1.875rem;
162
+ min-height: 2.0625rem;
163
+ padding: 0.25rem 0.9375rem;
164
+ border: 0;
165
+ border-radius: 0.25rem;
166
+ background: var(--apple-button-background);
167
+ color: var(--apple-control-primary-text);
168
+ box-shadow: none;
169
+ font: inherit;
170
+ font-size: 1.0625rem;
171
+ font-weight: 400;
172
+ line-height: 1.5625rem;
173
+ cursor: pointer;
174
+ }
175
+ .sl-markdown-content
176
+ button:is(:hover, :focus-visible):not(:where(.not-content *)) {
177
+ background: var(--apple-button-background-hover);
178
+ }
179
+ .sl-markdown-content button:active:not(:where(.not-content *)) {
180
+ background: var(--apple-button-background-active);
181
+ box-shadow: none;
182
+ }
183
+ .sl-markdown-content button:focus-visible:not(:where(.not-content *)) {
184
+ outline: 0;
185
+ box-shadow: 0 0 0 4px var(--apple-focus);
186
+ }
142
187
  .sl-markdown-content :is(input, select, textarea):focus {
143
188
  border-color: var(--apple-link);
144
189
  box-shadow: 0 0 0 3px var(--apple-focus);
package/styles/tokens.css CHANGED
@@ -3,6 +3,7 @@
3
3
  --apple-background: #111;
4
4
  --apple-navigator-background: #161616;
5
5
  --apple-secondary-background: #1c1c1e;
6
+ --apple-card-background: #1c1c1e;
6
7
  --apple-surface: #2a2a2a;
7
8
  --apple-hover-surface: rgba(0, 153, 255, 0.08);
8
9
  --apple-active-surface: rgba(255, 255, 255, 0.1);
@@ -14,7 +15,12 @@
14
15
  --apple-link: #09f;
15
16
  --apple-link-hover: #40b3ff;
16
17
  --apple-focus: rgba(0, 153, 255, 0.35);
17
- --apple-control-primary-text: #000;
18
+ --apple-button-background: #06f;
19
+ --apple-button-background-hover: #09f;
20
+ --apple-button-background-active: #06f;
21
+ --apple-button-secondary-background: #161616;
22
+ --apple-button-secondary-hover: #2a2a2a;
23
+ --apple-control-primary-text: #fff;
18
24
  --apple-disabled-opacity: 0.42;
19
25
  --apple-header-background: rgba(17, 17, 17, 0.82);
20
26
  --apple-code-background: #1c1c1e;
@@ -74,6 +80,7 @@
74
80
  --apple-background: #fff;
75
81
  --apple-navigator-background: #f7f7f7;
76
82
  --apple-secondary-background: #fff;
83
+ --apple-card-background: #f5f5f7;
77
84
  --apple-surface: #f0f0f0;
78
85
  --apple-hover-surface: rgba(51, 102, 255, 0.05);
79
86
  --apple-active-surface: rgba(0, 0, 0, 0.06);
@@ -85,6 +92,11 @@
85
92
  --apple-link: #36f;
86
93
  --apple-link-hover: #174ea6;
87
94
  --apple-focus: rgba(51, 102, 255, 0.24);
95
+ --apple-button-background: #00f;
96
+ --apple-button-background-hover: #36f;
97
+ --apple-button-background-active: #36f;
98
+ --apple-button-secondary-background: #f7f7f7;
99
+ --apple-button-secondary-hover: #f0f0f0;
88
100
  --apple-control-primary-text: #fff;
89
101
  --apple-header-background: rgba(255, 255, 255, 0.82);
90
102
  --apple-code-background: #f5f5f7;