@hagicode/hagilight-docusaurus 0.0.0-stage → 0.1.0-dev.148.1.e0c630e

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/styles.css ADDED
@@ -0,0 +1,341 @@
1
+ .hagilight-footer {
2
+ --hagilight-footer-border: var(--ifm-color-emphasis-300);
3
+ --hagilight-footer-muted: var(--ifm-color-emphasis-700);
4
+ border-top: 1px solid var(--hagilight-footer-border);
5
+ color: var(--ifm-font-color-base);
6
+ padding: 1.5rem var(--ifm-spacing-horizontal, 1rem) 1rem;
7
+ }
8
+
9
+ .hagilight-footer__sections {
10
+ display: grid;
11
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr));
12
+ gap: 1.5rem;
13
+ margin: 0 auto 1.5rem;
14
+ max-width: 72rem;
15
+ }
16
+
17
+ .hagilight-footer section {
18
+ min-width: 0;
19
+ }
20
+
21
+ .hagilight-footer h2 {
22
+ margin: 0 0 0.75rem;
23
+ font-size: 0.95rem;
24
+ font-weight: 650;
25
+ }
26
+
27
+ .hagilight-footer ul {
28
+ display: grid;
29
+ gap: 0.5rem;
30
+ margin: 0;
31
+ padding: 0;
32
+ list-style: none;
33
+ }
34
+
35
+ .hagilight-footer a,
36
+ .hagilight-footer a:hover {
37
+ color: inherit;
38
+ text-decoration: none;
39
+ text-underline-offset: 0.2em;
40
+ }
41
+
42
+ .hagilight-footer a:hover {
43
+ text-decoration: underline;
44
+ }
45
+
46
+ .hagilight-footer a:focus-visible {
47
+ border-radius: 0.125rem;
48
+ outline: 2px solid currentColor;
49
+ outline-offset: 0.2rem;
50
+ }
51
+
52
+ .hagilight-footer__filings {
53
+ display: flex;
54
+ flex-wrap: wrap;
55
+ justify-content: center;
56
+ gap: 0.75rem 1.5rem;
57
+ border-top: 1px solid var(--hagilight-footer-border);
58
+ padding-top: 1rem;
59
+ text-align: center;
60
+ }
61
+
62
+ .hagilight-footer__copyright {
63
+ color: var(--hagilight-footer-muted);
64
+ font-size: 0.8rem;
65
+ margin: 1rem 0 0;
66
+ text-align: center;
67
+ }
68
+
69
+ .hagilight-footer__attribution {
70
+ overflow-wrap: anywhere;
71
+ }
72
+
73
+ .hagilight-footer__build {
74
+ overflow-wrap: anywhere;
75
+ }
76
+
77
+ @media (max-width: 40rem) {
78
+ .hagilight-footer__sections {
79
+ grid-template-columns: 1fr;
80
+ gap: 1.25rem;
81
+ }
82
+
83
+ .hagilight-footer__filings {
84
+ justify-content: flex-start;
85
+ gap: 0.75rem 1rem;
86
+ }
87
+ }
88
+
89
+ /* Product statement: headline, summary, calls to action, and the three pillars. */
90
+ .hagilight-footer .hagilight-brand {
91
+ --_heading: var(--ifm-heading-color, currentColor);
92
+ --_muted: var(--hagilight-footer-muted, var(--ifm-color-emphasis-700, color-mix(in srgb, currentColor 72%, transparent)));
93
+ --_rule: var(--hagilight-footer-border, var(--ifm-color-emphasis-300));
94
+ container: hagilight-brand / inline-size;
95
+ display: grid;
96
+ gap: 2.25rem;
97
+ margin: 0 auto 2rem;
98
+ max-width: 72rem;
99
+ padding-block: 1rem 2.25rem;
100
+ border-bottom: 1px solid var(--_rule);
101
+ }
102
+
103
+ /* Korean breaks between words, not inside them. */
104
+ .hagilight-footer .hagilight-brand:lang(ko) {
105
+ overflow-wrap: break-word;
106
+ word-break: keep-all;
107
+ }
108
+
109
+ .hagilight-footer .hagilight-brand__lead {
110
+ display: grid;
111
+ grid-template-columns: minmax(0, 1fr);
112
+ gap: 1.5rem 3.5rem;
113
+ }
114
+
115
+ .hagilight-footer .hagilight-brand__title {
116
+ display: flex;
117
+ align-items: center;
118
+ gap: 1.25rem;
119
+ min-width: 0;
120
+ }
121
+
122
+ /* The decorative avatar keeps a fixed 64 px box, so a random swap never moves the headline. */
123
+ .hagilight-footer .hagilight-brand__avatar {
124
+ display: block;
125
+ flex: none;
126
+ width: 64px;
127
+ height: 64px;
128
+ }
129
+
130
+ .hagilight-footer .hagilight-brand__avatar img {
131
+ display: block;
132
+ width: 100%;
133
+ height: 100%;
134
+ border-radius: 0.5rem;
135
+ object-fit: cover;
136
+ }
137
+
138
+ /* Hidden in a brand block narrower than 360 px, where the headline needs the full width. */
139
+ @container hagilight-brand (max-width: 359.98px) {
140
+ .hagilight-footer .hagilight-brand__avatar {
141
+ display: none;
142
+ }
143
+ }
144
+
145
+ .hagilight-footer .hagilight-brand__headline {
146
+ margin: 0;
147
+ color: var(--_heading);
148
+ font-size: clamp(1.75rem, 1.1rem + 2.6vw, 3rem);
149
+ font-size: clamp(1.75rem, 1rem + 3.2cqi, 3rem);
150
+ font-weight: 700;
151
+ letter-spacing: -0.02em;
152
+ line-height: 1.12;
153
+ text-wrap: balance;
154
+ }
155
+
156
+ .hagilight-footer .hagilight-brand__headline:lang(zh),
157
+ .hagilight-footer .hagilight-brand__headline:lang(ja),
158
+ .hagilight-footer .hagilight-brand__headline:lang(ko) {
159
+ letter-spacing: 0;
160
+ line-height: 1.25;
161
+ }
162
+
163
+ .hagilight-footer .hagilight-brand__body {
164
+ display: grid;
165
+ gap: 1.25rem;
166
+ justify-items: start;
167
+ min-width: 0;
168
+ }
169
+
170
+ .hagilight-footer .hagilight-brand__summary {
171
+ margin: 0;
172
+ max-width: 62ch;
173
+ color: var(--_muted);
174
+ font-size: 1rem;
175
+ line-height: 1.65;
176
+ text-wrap: pretty;
177
+ }
178
+
179
+ .hagilight-footer .hagilight-brand__actions {
180
+ display: flex;
181
+ flex-wrap: wrap;
182
+ align-items: center;
183
+ gap: 0.25rem 1.5rem;
184
+ }
185
+
186
+ .hagilight-footer .hagilight-brand__primary,
187
+ .hagilight-footer .hagilight-brand__secondary {
188
+ display: inline-flex;
189
+ align-items: center;
190
+ min-height: 2.75rem;
191
+ color: var(--_heading);
192
+ text-decoration: none;
193
+ }
194
+
195
+ .hagilight-footer .hagilight-brand__primary {
196
+ gap: 0.6rem;
197
+ border: 2px solid currentColor;
198
+ border-radius: 0.5rem;
199
+ padding-inline: 1.1rem;
200
+ font-weight: 650;
201
+ transition: background-color 180ms ease-out;
202
+ }
203
+
204
+ .hagilight-footer .hagilight-brand__primary:hover {
205
+ background-color: color-mix(in srgb, currentColor 10%, transparent);
206
+ }
207
+
208
+ .hagilight-footer .hagilight-brand__arrow {
209
+ flex: none;
210
+ transition: transform 280ms cubic-bezier(0.16, 1, 0.3, 1);
211
+ }
212
+
213
+ .hagilight-footer .hagilight-brand__primary:hover .hagilight-brand__arrow,
214
+ .hagilight-footer .hagilight-brand__primary:focus-visible .hagilight-brand__arrow {
215
+ transform: translateX(0.3rem);
216
+ }
217
+
218
+ .hagilight-footer .hagilight-brand__secondary {
219
+ text-decoration: underline;
220
+ text-decoration-thickness: 1px;
221
+ text-underline-offset: 0.3em;
222
+ }
223
+
224
+ .hagilight-footer .hagilight-brand__secondary:hover {
225
+ text-decoration-thickness: 2px;
226
+ }
227
+
228
+ .hagilight-footer .hagilight-brand a:focus-visible {
229
+ border-radius: 0.25rem;
230
+ outline: 2px solid currentColor;
231
+ outline-offset: 0.25rem;
232
+ }
233
+
234
+ .hagilight-footer .hagilight-brand__pillars {
235
+ display: grid;
236
+ grid-template-columns: minmax(0, 1fr);
237
+ gap: 1.25rem;
238
+ margin: 0;
239
+ padding: 0;
240
+ }
241
+
242
+ .hagilight-footer .hagilight-brand__pillar {
243
+ position: relative;
244
+ margin: 0;
245
+ padding-top: 1rem;
246
+ border-top: 1px solid var(--_rule);
247
+ }
248
+
249
+ /* The heavy rule that the scroll-driven reveal draws over the hairline track. */
250
+ .hagilight-footer .hagilight-brand__pillar::before {
251
+ content: '';
252
+ position: absolute;
253
+ inset: -1px 0 auto;
254
+ height: 2px;
255
+ background: var(--_heading);
256
+ transform-origin: left center;
257
+ }
258
+
259
+ .hagilight-footer .hagilight-brand__pillar dt {
260
+ margin: 0 0 0.4rem;
261
+ color: var(--_heading);
262
+ font-size: 1.05rem;
263
+ font-weight: 650;
264
+ }
265
+
266
+ .hagilight-footer .hagilight-brand__pillar dd {
267
+ margin: 0;
268
+ max-width: none;
269
+ color: var(--_muted);
270
+ font-size: 0.9rem;
271
+ line-height: 1.6;
272
+ text-wrap: pretty;
273
+ }
274
+
275
+ /* Breakpoints follow the width the footer is given, not the viewport: Starlight's content pane is narrow. */
276
+ @container hagilight-brand (min-width: 40rem) {
277
+ .hagilight-footer .hagilight-brand__pillars {
278
+ grid-template-columns: repeat(3, minmax(0, 1fr));
279
+ gap: 1.5rem 2.5rem;
280
+ }
281
+
282
+ .hagilight-footer .hagilight-brand__pillar dd {
283
+ max-width: 34ch;
284
+ }
285
+ }
286
+
287
+ @container hagilight-brand (min-width: 52rem) {
288
+ .hagilight-footer .hagilight-brand__lead {
289
+ grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
290
+ align-items: end;
291
+ }
292
+ }
293
+
294
+ /*
295
+ * The one authored moment: as the footer scrolls into view the headline is uncovered from
296
+ * its baseline and the three pillar rules draw in left to right, one after another.
297
+ * Without scroll-driven animation, or with reduced motion, everything is simply shown.
298
+ */
299
+ @media (prefers-reduced-motion: no-preference) {
300
+ @supports (animation-timeline: view()) {
301
+ .hagilight-footer .hagilight-brand__headline {
302
+ animation-name: hagilight-brand-uncover;
303
+ animation-timing-function: linear;
304
+ animation-fill-mode: both;
305
+ animation-timeline: view();
306
+ animation-range: entry 0% entry 80%;
307
+ }
308
+
309
+ .hagilight-footer .hagilight-brand__pillar::before {
310
+ animation-name: hagilight-brand-draw;
311
+ animation-timing-function: linear;
312
+ animation-fill-mode: both;
313
+ animation-timeline: view();
314
+ animation-range:
315
+ entry calc(10% + var(--hagilight-brand-i, 0) * 14%)
316
+ entry calc(70% + var(--hagilight-brand-i, 0) * 14%);
317
+ }
318
+ }
319
+ }
320
+
321
+ @keyframes hagilight-brand-uncover {
322
+ from {
323
+ clip-path: inset(0 0 100% 0);
324
+ transform: translateY(0.4em);
325
+ }
326
+
327
+ to {
328
+ clip-path: inset(0 0 -0.2em 0);
329
+ transform: none;
330
+ }
331
+ }
332
+
333
+ @keyframes hagilight-brand-draw {
334
+ from {
335
+ transform: scaleX(0);
336
+ }
337
+
338
+ to {
339
+ transform: scaleX(1);
340
+ }
341
+ }