@astrojs/starlight 0.33.2 → 0.34.1

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 (85) hide show
  1. package/CHANGELOG.md +106 -0
  2. package/components/AnchorHeading.astro +53 -0
  3. package/components/Banner.astro +14 -12
  4. package/components/ContentNotice.astro +13 -11
  5. package/components/ContentPanel.astro +17 -15
  6. package/components/EditLink.astro +10 -8
  7. package/components/Footer.astro +32 -27
  8. package/components/Header.astro +54 -51
  9. package/components/Hero.astro +60 -58
  10. package/components/MobileMenuFooter.astro +19 -16
  11. package/components/MobileMenuToggle.astro +41 -37
  12. package/components/MobileTableOfContents.astro +71 -69
  13. package/components/Page.astro +8 -8
  14. package/components/PageFrame.astro +61 -57
  15. package/components/PageSidebar.astro +33 -31
  16. package/components/PageTitle.astro +8 -6
  17. package/components/Pagination.astro +38 -36
  18. package/components/Search.astro +277 -272
  19. package/components/Select.astro +50 -46
  20. package/components/SidebarPersister.astro +4 -2
  21. package/components/SidebarSublist.astro +78 -76
  22. package/components/SiteTitle.astro +17 -15
  23. package/components/SkipLink.astro +17 -15
  24. package/components/SocialIcons.astro +9 -7
  25. package/components/TableOfContents/TableOfContentsList.astro +49 -47
  26. package/components/TwoColumnContent.astro +32 -30
  27. package/index.ts +11 -4
  28. package/integrations/expressive-code/index.ts +2 -0
  29. package/integrations/heading-links.ts +104 -0
  30. package/integrations/virtual-user-config.ts +9 -0
  31. package/package.json +8 -3
  32. package/schemas/head.ts +2 -2
  33. package/schemas/i18n.ts +2 -0
  34. package/style/anchor-links.css +128 -0
  35. package/style/asides.css +46 -44
  36. package/style/layers.css +1 -0
  37. package/style/markdown.css +195 -189
  38. package/style/print.css +30 -35
  39. package/style/props.css +180 -178
  40. package/style/reset.css +42 -40
  41. package/style/util.css +51 -49
  42. package/translations/ar.json +2 -1
  43. package/translations/ca.json +2 -1
  44. package/translations/cs.json +2 -1
  45. package/translations/da.json +2 -1
  46. package/translations/de.json +2 -1
  47. package/translations/en.json +2 -1
  48. package/translations/es.json +2 -1
  49. package/translations/fa.json +2 -1
  50. package/translations/fr.json +2 -1
  51. package/translations/gl.json +2 -1
  52. package/translations/he.json +2 -1
  53. package/translations/hi.json +2 -1
  54. package/translations/id.json +2 -1
  55. package/translations/it.json +2 -1
  56. package/translations/ja.json +2 -1
  57. package/translations/ko.json +2 -1
  58. package/translations/lv.json +2 -1
  59. package/translations/nb.json +2 -1
  60. package/translations/nl.json +2 -1
  61. package/translations/pl.json +2 -1
  62. package/translations/pt.json +2 -1
  63. package/translations/ro.json +2 -1
  64. package/translations/ru.json +2 -1
  65. package/translations/sk.json +2 -1
  66. package/translations/sv.json +2 -1
  67. package/translations/tr.json +2 -1
  68. package/translations/uk.json +2 -1
  69. package/translations/vi.json +2 -1
  70. package/translations/zh-CN.json +2 -1
  71. package/translations/zh-TW.json +2 -1
  72. package/user-components/Badge.astro +118 -116
  73. package/user-components/Card.astro +44 -42
  74. package/user-components/CardGrid.astro +20 -18
  75. package/user-components/FileTree.astro +105 -103
  76. package/user-components/Icon.astro +7 -5
  77. package/user-components/LinkButton.astro +43 -41
  78. package/user-components/LinkCard.astro +45 -43
  79. package/user-components/Steps.astro +65 -61
  80. package/user-components/Tabs.astro +35 -33
  81. package/utils/head.ts +12 -4
  82. package/utils/starlight-page.ts +16 -19
  83. package/utils/user-config.ts +14 -0
  84. package/virtual-internal.d.ts +2 -0
  85. package/style/shiki.css +0 -13
@@ -1,28 +1,29 @@
1
- .sl-markdown-content
2
- :not(a, strong, em, del, span, input, code, br)
3
- + :not(a, strong, em, del, span, input, code, br, :where(.not-content *)) {
4
- margin-top: 1rem;
5
- }
1
+ @layer starlight.content {
2
+ .sl-markdown-content
3
+ :not(a, strong, em, del, span, input, code, br)
4
+ + :not(a, strong, em, del, span, input, code, br, :where(.not-content *)) {
5
+ margin-top: 1rem;
6
+ }
6
7
 
7
- /* Headings after non-headings have more spacing. */
8
- .sl-markdown-content
9
- :not(h1, h2, h3, h4, h5, h6)
10
- + :is(h1, h2, h3, h4, h5, h6):not(:where(.not-content *)) {
11
- margin-top: 1.5em;
12
- }
8
+ /* Headings after non-headings have more spacing. */
9
+ .sl-markdown-content
10
+ :not(h1, h2, h3, h4, h5, h6)
11
+ + :is(h1, h2, h3, h4, h5, h6):not(:where(.not-content *)) {
12
+ margin-top: 1.5em;
13
+ }
13
14
 
14
- .sl-markdown-content li + li:not(:where(.not-content *)),
15
- .sl-markdown-content dt + dt:not(:where(.not-content *)),
16
- .sl-markdown-content dt + dd:not(:where(.not-content *)),
17
- .sl-markdown-content dd + dd:not(:where(.not-content *)) {
18
- margin-top: 0.25rem;
19
- }
15
+ .sl-markdown-content li + li:not(:where(.not-content *)),
16
+ .sl-markdown-content dt + dt:not(:where(.not-content *)),
17
+ .sl-markdown-content dt + dd:not(:where(.not-content *)),
18
+ .sl-markdown-content dd + dd:not(:where(.not-content *)) {
19
+ margin-top: 0.25rem;
20
+ }
20
21
 
21
- .sl-markdown-content li:not(:where(.not-content *)) {
22
- overflow-wrap: anywhere;
23
- }
22
+ .sl-markdown-content li:not(:where(.not-content *)) {
23
+ overflow-wrap: anywhere;
24
+ }
24
25
 
25
- .sl-markdown-content
26
+ .sl-markdown-content
26
27
  li
27
28
  > :is(
28
29
  :last-child:not(
@@ -47,193 +48,198 @@
47
48
  */
48
49
  :not(script):has(~ script:last-child):not(:has(~ :not(script)))
49
50
  ) {
50
- margin-bottom: 1.25rem;
51
- }
51
+ margin-bottom: 1.25rem;
52
+ }
52
53
 
53
- .sl-markdown-content dt:not(:where(.not-content *)) {
54
- font-weight: 700;
55
- }
56
- .sl-markdown-content dd:not(:where(.not-content *)) {
57
- padding-inline-start: 1rem;
58
- }
54
+ .sl-markdown-content dt:not(:where(.not-content *)) {
55
+ font-weight: 700;
56
+ }
57
+ .sl-markdown-content dd:not(:where(.not-content *)) {
58
+ padding-inline-start: 1rem;
59
+ }
59
60
 
60
- .sl-markdown-content :is(h1, h2, h3, h4, h5, h6):not(:where(.not-content *)) {
61
- color: var(--sl-color-white);
62
- line-height: var(--sl-line-height-headings);
63
- font-weight: 600;
64
- }
61
+ .sl-markdown-content :is(h1, h2, h3, h4, h5, h6):not(:where(.not-content *)) {
62
+ color: var(--sl-color-white);
63
+ line-height: var(--sl-line-height-headings);
64
+ font-weight: 600;
65
+ }
65
66
 
66
- .sl-markdown-content :is(img, picture, video, canvas, svg, iframe):not(:where(.not-content *)) {
67
- display: block;
68
- max-width: 100%;
69
- height: auto;
70
- }
67
+ .sl-markdown-content :is(img, picture, video, canvas, svg, iframe):not(:where(.not-content *)) {
68
+ display: block;
69
+ max-width: 100%;
70
+ height: auto;
71
+ }
71
72
 
72
- .sl-markdown-content h1:not(:where(.not-content *)) {
73
- font-size: var(--sl-text-h1);
74
- }
75
- .sl-markdown-content h2:not(:where(.not-content *)) {
76
- font-size: var(--sl-text-h2);
77
- }
78
- .sl-markdown-content h3:not(:where(.not-content *)) {
79
- font-size: var(--sl-text-h3);
80
- }
81
- .sl-markdown-content h4:not(:where(.not-content *)) {
82
- font-size: var(--sl-text-h4);
83
- }
84
- .sl-markdown-content h5:not(:where(.not-content *)) {
85
- font-size: var(--sl-text-h5);
86
- }
87
- .sl-markdown-content h6:not(:where(.not-content *)) {
88
- font-size: var(--sl-text-h6);
89
- }
73
+ .sl-markdown-content h1:not(:where(.not-content *)) {
74
+ font-size: var(--sl-text-h1);
75
+ }
76
+ .sl-markdown-content h2:not(:where(.not-content *)) {
77
+ font-size: var(--sl-text-h2);
78
+ }
79
+ .sl-markdown-content h3:not(:where(.not-content *)) {
80
+ font-size: var(--sl-text-h3);
81
+ }
82
+ .sl-markdown-content h4:not(:where(.not-content *)) {
83
+ font-size: var(--sl-text-h4);
84
+ }
85
+ .sl-markdown-content h5:not(:where(.not-content *)) {
86
+ font-size: var(--sl-text-h5);
87
+ }
88
+ .sl-markdown-content h6:not(:where(.not-content *)) {
89
+ font-size: var(--sl-text-h6);
90
+ }
90
91
 
91
- .sl-markdown-content a:not(:where(.not-content *)) {
92
- color: var(--sl-color-text-accent);
93
- }
94
- .sl-markdown-content a:hover:not(:where(.not-content *)) {
95
- color: var(--sl-color-white);
96
- }
92
+ .sl-markdown-content a:not(:where(.not-content *)) {
93
+ color: var(--sl-color-text-accent);
94
+ }
95
+ .sl-markdown-content a:hover:not(:where(.not-content *)) {
96
+ color: var(--sl-color-white);
97
+ }
97
98
 
98
- .sl-markdown-content code:not(:where(.not-content *)) {
99
- background-color: var(--sl-color-bg-inline-code);
100
- margin-block: -0.125rem;
101
- padding: 0.125rem 0.375rem;
102
- font-size: var(--sl-text-code-sm);
103
- }
104
- .sl-markdown-content :is(h1, h2, h3, h4, h5, h6) code {
105
- font-size: inherit;
106
- }
99
+ .sl-markdown-content code:not(:where(.not-content *)) {
100
+ background-color: var(--sl-color-bg-inline-code);
101
+ margin-block: -0.125rem;
102
+ padding: 0.125rem 0.375rem;
103
+ font-size: var(--sl-text-code-sm);
104
+ }
105
+ .sl-markdown-content :is(h1, h2, h3, h4, h5, h6) code {
106
+ font-size: inherit;
107
+ }
107
108
 
108
- .sl-markdown-content pre:not(:where(.not-content *)) {
109
- border: 1px solid var(--sl-color-gray-5);
110
- padding: 0.75rem 1rem;
111
- font-size: var(--sl-text-code);
112
- tab-size: 2;
113
- }
109
+ .sl-markdown-content pre:not(:where(.not-content *)) {
110
+ border: 1px solid var(--sl-color-gray-5);
111
+ padding: 0.75rem 1rem;
112
+ font-size: var(--sl-text-code);
113
+ tab-size: 2;
114
+ }
114
115
 
115
- .sl-markdown-content pre code:not(:where(.not-content *)) {
116
- all: unset;
117
- font-family: var(--__sl-font-mono);
118
- }
116
+ .sl-markdown-content pre code:not(:where(.not-content *)) {
117
+ all: unset;
118
+ font-family: var(--__sl-font-mono);
119
+ }
119
120
 
120
- .sl-markdown-content blockquote:not(:where(.not-content *)) {
121
- border-inline-start: 1px solid var(--sl-color-gray-5);
122
- padding-inline-start: 1rem;
123
- }
121
+ .sl-markdown-content blockquote:not(:where(.not-content *)) {
122
+ border-inline-start: 1px solid var(--sl-color-gray-5);
123
+ padding-inline-start: 1rem;
124
+ }
124
125
 
125
- /* Table styling */
126
- .sl-markdown-content table:not(:where(.not-content *)) {
127
- display: block;
128
- overflow: auto;
129
- border-spacing: 0;
130
- }
131
- .sl-markdown-content :is(th, td):not(:where(.not-content *)) {
132
- border-bottom: 1px solid var(--sl-color-gray-5);
133
- padding: 0.5rem 1rem;
134
- /* Align text to the top of the row in multiline tables. */
135
- vertical-align: baseline;
136
- }
137
- .sl-markdown-content :is(th:first-child, td:first-child):not(:where(.not-content *)) {
138
- padding-inline-start: 0;
139
- }
140
- .sl-markdown-content :is(th:last-child, td:last-child):not(:where(.not-content *)) {
141
- padding-inline-end: 0;
142
- }
143
- .sl-markdown-content th:not(:where(.not-content *)) {
144
- color: var(--sl-color-white);
145
- font-weight: 600;
146
- }
147
- /* Align headings to the start of the line unless set by the `align` attribute. */
148
- .sl-markdown-content th:not([align]):not(:where(.not-content *)) {
149
- text-align: start;
150
- }
151
- /* <table>s, <hr>s, and <blockquote>s inside asides */
152
- .sl-markdown-content .starlight-aside :is(th, td, hr, blockquote):not(:where(.not-content *)) {
153
- border-color: var(--sl-color-gray-4);
154
- }
155
- @supports (border-color: color-mix(in srgb, var(--sl-color-asides-text-accent) 30%, transparent)) {
126
+ /* Table styling */
127
+ .sl-markdown-content table:not(:where(.not-content *)) {
128
+ display: block;
129
+ overflow: auto;
130
+ border-spacing: 0;
131
+ }
132
+ .sl-markdown-content :is(th, td):not(:where(.not-content *)) {
133
+ border-bottom: 1px solid var(--sl-color-gray-5);
134
+ padding: 0.5rem 1rem;
135
+ /* Align text to the top of the row in multiline tables. */
136
+ vertical-align: baseline;
137
+ }
138
+ .sl-markdown-content :is(th:first-child, td:first-child):not(:where(.not-content *)) {
139
+ padding-inline-start: 0;
140
+ }
141
+ .sl-markdown-content :is(th:last-child, td:last-child):not(:where(.not-content *)) {
142
+ padding-inline-end: 0;
143
+ }
144
+ .sl-markdown-content th:not(:where(.not-content *)) {
145
+ color: var(--sl-color-white);
146
+ font-weight: 600;
147
+ }
148
+ /* Align headings to the start of the line unless set by the `align` attribute. */
149
+ .sl-markdown-content th:not([align]):not(:where(.not-content *)) {
150
+ text-align: start;
151
+ }
152
+ /* <table>s, <hr>s, and <blockquote>s inside asides */
156
153
  .sl-markdown-content .starlight-aside :is(th, td, hr, blockquote):not(:where(.not-content *)) {
157
- border-color: color-mix(in srgb, var(--sl-color-asides-text-accent) 30%, transparent);
154
+ border-color: var(--sl-color-gray-4);
155
+ }
156
+ @supports (
157
+ border-color: color-mix(in srgb, var(--sl-color-asides-text-accent) 30%, transparent)
158
+ ) {
159
+ .sl-markdown-content .starlight-aside :is(th, td, hr, blockquote):not(:where(.not-content *)) {
160
+ border-color: color-mix(in srgb, var(--sl-color-asides-text-accent) 30%, transparent);
161
+ }
158
162
  }
159
- }
160
163
 
161
- /* <code> inside asides */
162
- @supports (border-color: color-mix(in srgb, var(--sl-color-asides-text-accent) 12%, transparent)) {
163
- .sl-markdown-content .starlight-aside code:not(:where(.not-content *)) {
164
- background-color: color-mix(in srgb, var(--sl-color-asides-text-accent) 12%, transparent);
164
+ /* <code> inside asides */
165
+ @supports (
166
+ border-color: color-mix(in srgb, var(--sl-color-asides-text-accent) 12%, transparent)
167
+ ) {
168
+ .sl-markdown-content .starlight-aside code:not(:where(.not-content *)) {
169
+ background-color: color-mix(in srgb, var(--sl-color-asides-text-accent) 12%, transparent);
170
+ }
165
171
  }
166
- }
167
172
 
168
- .sl-markdown-content hr:not(:where(.not-content *)) {
169
- border: 0;
170
- border-bottom: 1px solid var(--sl-color-hairline);
171
- }
173
+ .sl-markdown-content hr:not(:where(.not-content *)) {
174
+ border: 0;
175
+ border-bottom: 1px solid var(--sl-color-hairline);
176
+ }
172
177
 
173
- /* <details> and <summary> styles */
174
- .sl-markdown-content details:not(:where(.not-content *)) {
175
- --sl-details-border-color: var(--sl-color-gray-5);
176
- --sl-details-border-color--hover: var(--sl-color-text-accent);
178
+ /* <details> and <summary> styles */
179
+ .sl-markdown-content details:not(:where(.not-content *)) {
180
+ --sl-details-border-color: var(--sl-color-gray-5);
181
+ --sl-details-border-color--hover: var(--sl-color-text-accent);
177
182
 
178
- border-inline-start: 2px solid var(--sl-details-border-color);
179
- padding-inline-start: 1rem;
180
- }
181
- .sl-markdown-content details:not([open]):hover:not(:where(.not-content *)),
182
- .sl-markdown-content details:has(> summary:hover):not(:where(.not-content *)) {
183
- border-color: var(--sl-details-border-color--hover);
184
- }
185
- .sl-markdown-content summary:not(:where(.not-content *)) {
186
- color: var(--sl-color-white);
187
- cursor: pointer;
188
- display: block; /* Needed to hide the default marker in some browsers. */
189
- font-weight: 600;
190
- /* Expand the outline so that the marker cannot distort it. */
191
- margin-inline-start: -0.5rem;
192
- padding-inline-start: 0.5rem;
193
- }
194
- .sl-markdown-content details[open] > summary:not(:where(.not-content *)) {
195
- margin-bottom: 1rem;
196
- }
183
+ border-inline-start: 2px solid var(--sl-details-border-color);
184
+ padding-inline-start: 1rem;
185
+ }
186
+ .sl-markdown-content details:not([open]):hover:not(:where(.not-content *)),
187
+ .sl-markdown-content details:has(> summary:hover):not(:where(.not-content *)) {
188
+ border-color: var(--sl-details-border-color--hover);
189
+ }
190
+ .sl-markdown-content summary:not(:where(.not-content *)) {
191
+ color: var(--sl-color-white);
192
+ cursor: pointer;
193
+ display: block; /* Needed to hide the default marker in some browsers. */
194
+ font-weight: 600;
195
+ /* Expand the outline so that the marker cannot distort it. */
196
+ margin-inline-start: -0.5rem;
197
+ padding-inline-start: 0.5rem;
198
+ }
199
+ .sl-markdown-content details[open] > summary:not(:where(.not-content *)) {
200
+ margin-bottom: 1rem;
201
+ }
197
202
 
198
- /* <summary> marker styles */
199
- .sl-markdown-content summary:not(:where(.not-content *))::marker,
200
- .sl-markdown-content summary:not(:where(.not-content *))::-webkit-details-marker {
201
- display: none;
202
- }
203
- .sl-markdown-content summary:not(:where(.not-content *))::before {
204
- --sl-details-marker-size: 1.25rem;
205
-
206
- background-color: currentColor;
207
- content: '';
208
- display: inline-block;
209
- height: var(--sl-details-marker-size);
210
- width: var(--sl-details-marker-size);
211
- margin-inline: calc((var(--sl-details-marker-size) / 4) * -1) 0.25rem;
212
- vertical-align: middle;
213
- -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M14.8 11.3 10.6 7a1 1 0 1 0-1.4 1.5l3.5 3.5-3.5 3.5a1 1 0 0 0 0 1.4 1 1 0 0 0 .7.3 1 1 0 0 0 .7-.3l4.2-4.2a1 1 0 0 0 0-1.4Z'/%3E%3C/svg%3E%0A");
214
- mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M14.8 11.3 10.6 7a1 1 0 1 0-1.4 1.5l3.5 3.5-3.5 3.5a1 1 0 0 0 0 1.4 1 1 0 0 0 .7.3 1 1 0 0 0 .7-.3l4.2-4.2a1 1 0 0 0 0-1.4Z'/%3E%3C/svg%3E%0A");
215
- -webkit-mask-repeat: no-repeat;
216
- mask-repeat: no-repeat;
217
- }
218
- @media (prefers-reduced-motion: no-preference) {
203
+ /* <summary> marker styles */
204
+ .sl-markdown-content summary:not(:where(.not-content *))::marker,
205
+ .sl-markdown-content summary:not(:where(.not-content *))::-webkit-details-marker {
206
+ display: none;
207
+ }
219
208
  .sl-markdown-content summary:not(:where(.not-content *))::before {
220
- transition: transform 0.2s ease-in-out;
209
+ --sl-details-marker-size: 1.25rem;
210
+
211
+ background-color: currentColor;
212
+ content: '';
213
+ display: inline-block;
214
+ height: var(--sl-details-marker-size);
215
+ width: var(--sl-details-marker-size);
216
+ margin-inline: calc((var(--sl-details-marker-size) / 4) * -1) 0.25rem;
217
+ vertical-align: middle;
218
+ -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M14.8 11.3 10.6 7a1 1 0 1 0-1.4 1.5l3.5 3.5-3.5 3.5a1 1 0 0 0 0 1.4 1 1 0 0 0 .7.3 1 1 0 0 0 .7-.3l4.2-4.2a1 1 0 0 0 0-1.4Z'/%3E%3C/svg%3E%0A");
219
+ mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M14.8 11.3 10.6 7a1 1 0 1 0-1.4 1.5l3.5 3.5-3.5 3.5a1 1 0 0 0 0 1.4 1 1 0 0 0 .7.3 1 1 0 0 0 .7-.3l4.2-4.2a1 1 0 0 0 0-1.4Z'/%3E%3C/svg%3E%0A");
220
+ -webkit-mask-repeat: no-repeat;
221
+ mask-repeat: no-repeat;
222
+ }
223
+ @media (prefers-reduced-motion: no-preference) {
224
+ .sl-markdown-content summary:not(:where(.not-content *))::before {
225
+ transition: transform 0.2s ease-in-out;
226
+ }
227
+ }
228
+ .sl-markdown-content details[open] > summary:not(:where(.not-content *))::before {
229
+ transform: rotateZ(90deg);
230
+ }
231
+ [dir='rtl'] .sl-markdown-content summary:not(:where(.not-content *))::before,
232
+ .sl-markdown-content [dir='rtl'] summary:not(:where(.not-content *))::before {
233
+ transform: rotateZ(180deg);
234
+ }
235
+ /* <summary> with only a paragraph automatically added when using MDX */
236
+ .sl-markdown-content summary:not(:where(.not-content *)) p:only-child {
237
+ display: inline;
221
238
  }
222
- }
223
- .sl-markdown-content details[open] > summary:not(:where(.not-content *))::before {
224
- transform: rotateZ(90deg);
225
- }
226
- [dir='rtl'] .sl-markdown-content summary:not(:where(.not-content *))::before,
227
- .sl-markdown-content [dir='rtl'] summary:not(:where(.not-content *))::before {
228
- transform: rotateZ(180deg);
229
- }
230
- /* <summary> with only a paragraph automatically added when using MDX */
231
- .sl-markdown-content summary:not(:where(.not-content *)) p:only-child {
232
- display: inline;
233
- }
234
239
 
235
- /* <details> styles inside asides */
236
- .sl-markdown-content .starlight-aside details:not(:where(.not-content *)) {
237
- --sl-details-border-color: var(--sl-color-asides-border);
238
- --sl-details-border-color--hover: var(--sl-color-asides-text-accent);
240
+ /* <details> styles inside asides */
241
+ .sl-markdown-content .starlight-aside details:not(:where(.not-content *)) {
242
+ --sl-details-border-color: var(--sl-color-asides-border);
243
+ --sl-details-border-color--hover: var(--sl-color-asides-text-accent);
244
+ }
239
245
  }
package/style/print.css CHANGED
@@ -1,10 +1,5 @@
1
1
  @media print {
2
- /**
3
- This is increased in specificity so it works even when injected into pages before regular styles.
4
- TODO: Just use `:root` once we move to @layer.
5
- Same goes for the use of `!important` in this file.
6
- */
7
- :root[data-theme]:is(:root) {
2
+ :root {
8
3
  /* Colours — force light mode when printing */
9
4
  --sl-color-white: hsl(224, 10%, 10%);
10
5
  --sl-color-gray-1: hsl(224, 14%, 16%);
@@ -55,28 +50,28 @@
55
50
 
56
51
  /* Utility classes for controlling element visibility when printing. */
57
52
  .print\:hidden {
58
- display: none !important;
53
+ display: none;
59
54
  }
60
55
  .print\:flex {
61
- display: flex !important;
56
+ display: flex;
62
57
  }
63
58
  .print\:block {
64
- display: block !important;
59
+ display: block;
65
60
  }
66
61
 
67
62
  /* Page layout tweaks. */
68
63
  main {
69
- padding-bottom: 0 !important;
64
+ padding-bottom: 0;
70
65
  }
71
66
  main > .content-panel {
72
- padding-block-start: 0 !important;
67
+ padding-block-start: 0;
73
68
  }
74
69
  .content-panel + .content-panel {
75
- border: 0 !important;
70
+ border: 0;
76
71
  }
77
72
  /* components/PageFrame.astro */
78
73
  .page > header {
79
- position: relative !important;
74
+ position: relative;
80
75
  }
81
76
  .page > .main-frame {
82
77
  padding-top: 0;
@@ -84,13 +79,13 @@
84
79
  }
85
80
  /* components/TwoColumnContent.astro */
86
81
  .main-pane {
87
- --sl-sidebar-width: 0px !important;
88
- --sl-content-width: 100% !important;
82
+ --sl-sidebar-width: 0px;
83
+ --sl-content-width: 100%;
89
84
  }
90
85
  /* components/Banner.astro */
91
86
  .sl-banner {
92
- --sl-color-banner-text: var(--sl-color-white) !important;
93
- background-color: transparent !important;
87
+ --sl-color-banner-text: var(--sl-color-white);
88
+ background-color: transparent;
94
89
  }
95
90
 
96
91
  /* components/MarkdownContent.astro */
@@ -102,8 +97,8 @@
102
97
  widows: 2;
103
98
  }
104
99
  .sl-markdown-content pre {
105
- overflow-x: hidden !important;
106
- white-space: pre-wrap !important;
100
+ overflow-x: hidden;
101
+ white-space: pre-wrap;
107
102
  }
108
103
  .sl-markdown-content .expressive-code,
109
104
  .sl-markdown-content figure,
@@ -116,33 +111,33 @@
116
111
  }
117
112
  .expressive-code .frame.has-title:not(.is-terminal) .header {
118
113
  /* Divide title bar and code without relying on background colors. */
119
- background: transparent !important;
120
- border-bottom: 1px solid var(--sl-color-gray-6) !important;
114
+ background: transparent;
115
+ border-bottom: 1px solid var(--sl-color-gray-6);
121
116
  }
122
117
  .expressive-code .frame.has-title:not(.is-terminal) .title {
123
118
  /* Hide title tab background color. */
124
- background: transparent !important;
119
+ background: transparent;
125
120
  }
126
121
  .expressive-code .frame.has-title:not(.is-terminal) .title::after {
127
122
  /* Remove title tab highlight. */
128
- border-top: 0 !important;
123
+ border-top: 0;
129
124
  }
130
125
  .expressive-code .copy {
131
126
  /* Ensure Expressive Code copy button is hidden when printing from touch devices. */
132
- display: none !important;
127
+ display: none;
133
128
  }
134
129
  /* Inline code */
135
130
  .sl-markdown-content code:not(:where(.not-content *)) {
136
- background-color: transparent !important;
137
- padding: 0 !important;
138
- margin-block: unset !important;
139
- font-size: 0.9375em !important;
131
+ background-color: transparent;
132
+ padding: 0;
133
+ margin-block: unset;
134
+ font-size: 0.9375em;
140
135
  }
141
136
 
142
137
  /* user-components/Badge.astro */
143
138
  .sl-badge {
144
- background: transparent !important;
145
- color: var(--sl-color-white) !important;
139
+ background: transparent;
140
+ color: var(--sl-color-white);
146
141
  }
147
142
 
148
143
  /* user-components/FileTree.astro */
@@ -151,8 +146,8 @@
151
146
  }
152
147
  starlight-file-tree .highlight {
153
148
  outline: 3px solid var(--sl-color-accent-low);
154
- color: var(--sl-color-text) !important;
155
- background-color: transparent !important;
149
+ color: var(--sl-color-text);
150
+ background-color: transparent;
156
151
  }
157
152
 
158
153
  /* user-components/Aside.astro */
@@ -162,9 +157,9 @@
162
157
 
163
158
  /* user-components/LinkButton.astro */
164
159
  .sl-link-button.primary {
165
- background: transparent !important;
166
- border-color: var(--sl-color-white) !important;
167
- color: var(--sl-color-white) !important;
160
+ background: transparent;
161
+ border-color: var(--sl-color-white);
162
+ color: var(--sl-color-white);
168
163
  }
169
164
 
170
165
  /* user-components/Tabs.astro */