@@ -178,11 +178,11 @@ main {
178
178
display : grid;
179
179
grid-template-columns :
180
180
/* Left margin / place for rules */
181
- [rules] minmax (20 px , 1fr )
181
+ [rules] minmax (36 px , 1fr )
182
182
/* The main text body */
183
183
[text] auto
184
184
/* Right margin */
185
- [margin] minmax (20 px , 1fr );
185
+ [margin] minmax (36 px , 1fr );
186
186
187
187
/* We do these by hand via the grid */
188
188
margin : 0 ;
@@ -257,24 +257,32 @@ main > ul {
257
257
258
258
/* Values for header margin-top and blockquote margin are taken from mdbook's general.css,
259
259
values for header margin-bottom are taken from <https://www.w3schools.com/cssref/css_default_values.php> */
260
+ : root {
261
+ /* 1.6 is body font-size */
262
+ --h2-margin-top : calc (1.5rem * 1.6 * 2.5 - 16px );
263
+ --h3-margin-top : calc (1.17rem * 1.6 * 2.5 - 16px );
264
+ --h4-margin-top : calc (1.00rem * 1.6 * 2 - 16px );
265
+ --h5-margin-top : calc (0.83rem * 1.6 * 2 - 16px );
266
+ --h6-margin-top : calc (0.67rem * 1.6 * 2 - 16px );
267
+ }
260
268
main > h2 {
261
- margin-top : calc ( 2.5 em - 16 px );
269
+ margin-top : var ( --h2-margin-top );
262
270
margin-bottom : calc (0.83em - 16px );
263
271
}
264
272
main > h3 {
265
- margin-top : calc ( 2.5 em - 16 px );
273
+ margin-top : var ( --h3-margin-top );
266
274
margin-bottom : calc (1em - 16px );
267
275
}
268
276
main > h4 {
269
- margin-top : calc ( 2 em - 16 px );
277
+ margin-top : var ( --h4-margin-top );
270
278
margin-bottom : calc (1.33em - 16px );
271
279
}
272
280
main > h5 {
273
- margin-top : calc ( 2 em - 16 px );
281
+ margin-top : var ( --h5-margin-top );
274
282
margin-bottom : calc (1.67em - 16px );
275
283
}
276
284
main > h6 {
277
- margin-top : calc ( 2 em - 16 px );
285
+ margin-top : var ( --h6-margin-top );
278
286
margin-bottom : calc (2.33em - 16px );
279
287
}
280
288
main > blockquote {
@@ -302,50 +310,92 @@ main > .rule {
302
310
color : # 999 !important ;
303
311
}
304
312
313
+ /* Test links */
314
+ .test-link {
315
+ float : right;
316
+ padding-right : 10px ;
317
+ }
318
+
319
+ .rule .popup-container > a {
320
+ float : right;
321
+ text-align : right;
322
+ }
323
+
305
324
/* When clicking a rule, it is added as a URL fragment and the browser will
306
325
navigate to it. This adds an indicator that the linked rule is the one that
307
326
is "current", just like normal headers are in mdbook.
308
327
*/
309
- .rule : target a ::before {
328
+ .rule : target . rule-link ::before {
310
329
display : inline-block;
311
330
content : "»" ;
312
331
padding-right : 5px ;
313
332
}
314
333
315
334
/* Dodge » from headings */
316
- .rule : has (+ h1 : target ),
317
- .rule : has (+ h2 : target ),
318
- .rule : has (+ h3 : target ),
319
- .rule : has (+ h4 : target ),
320
- .rule : has (+ h5 : target ),
321
- .rule : has (+ h6 : target ) {
335
+ /* Note: Some rules have a .tests-popup in the way, so that's why this selects
336
+ either with or without. */
337
+ .rule : has (+ h1 : target , + .tests-popup + h1 : target ),
338
+ .rule : has (+ h2 : target , + .tests-popup + h2 : target ),
339
+ .rule : has (+ h3 : target , + .tests-popup + h3 : target ),
340
+ .rule : has (+ h4 : target , + .tests-popup + h4 : target ),
341
+ .rule : has (+ h5 : target , + .tests-popup + h5 : target ),
342
+ .rule : has (+ h6 : target , + .tests-popup + h6 : target ) {
322
343
padding-right : 24px ;
323
344
}
324
345
346
+ /* This positioning is to push the popup down over the header's top margin.
347
+ Ideally I would like the popup to show *below* the header, but I have no idea how to do that.
348
+ */
349
+ .tests-popup : has (+ h2 ) {
350
+ position : relative;
351
+ top : calc (var (--h2-margin-top ) + 10px );
352
+ }
353
+ .tests-popup : has (+ h3 ) {
354
+ position : relative;
355
+ top : calc (var (--h3-margin-top ) + 10px );
356
+ }
357
+ .tests-popup : has (+ h4 ) {
358
+ position : relative;
359
+ top : calc (var (--h4-margin-top ) + 10px );
360
+ }
361
+ .tests-popup : has (+ h5 ) {
362
+ position : relative;
363
+ top : calc (var (--h5-margin-top ) + 10px );
364
+ }
365
+ .tests-popup : has (+ h6 ) {
366
+ position : relative;
367
+ top : calc (var (--h6-margin-top ) + 10px );
368
+ }
369
+
325
370
/* Hide the rules if the width of the container is too small.
326
371
The cutoff point is chosen semi-arbitrary, it felt that
327
372
when `width < 14em`, there are too many breaks. */
328
373
@container rule (width < 14em) {
329
- main > .rule a span {
374
+ main > .rule a .rule-link span ,
375
+ .test-link > a span {
330
376
display : none;
331
377
}
332
378
333
- main > .rule a ::before {
379
+ main > .rule > a . rule-link ::before {
334
380
content : "[*]" ;
335
- }
381
+ }
382
+
383
+ .test-link > a ::before {
384
+ content : "[T]" ;
385
+ }
336
386
}
337
387
338
388
/* Align rules to various siblings */
339
- .rule : has (+ p ),
340
- .rule : has (+ ul ) {
389
+ .rule : has (+ p , + . tests-popup + p ),
390
+ .rule : has (+ ul , + . tests-popup + ul ) {
341
391
margin-top : calc ((1em - var (--font-size )) / var (--font-size-mult ) / 2 );
342
392
}
343
393
344
- .rule : has (+ h1 ) {
394
+ .rule : has (+ h1 , + . tests-popup + h1 ) {
345
395
align-self : center;
346
396
}
347
397
348
- .rule : has (+ h2 ) {
398
+ .rule : has (+ h2 , + . tests-popup + h2 ) {
349
399
/* multiplying by this turns h2's em into .rule's em*/
350
400
--h2-em-mult : calc (
351
401
(1 / var (--font-size-mult )) /* to main font size */
@@ -359,7 +409,7 @@ main > .rule {
359
409
+ (1em * var (--h2-em-mult ) - 1em ) / 2
360
410
)
361
411
}
362
- .rule : has (+ h3 ) {
412
+ .rule : has (+ h3 , + . tests-popup + h3 ) {
363
413
/* multiplying by this turns h3's em into .rule's em*/
364
414
--h3-em-mult : calc (
365
415
(1 / var (--font-size-mult )) /* to main font size */
@@ -374,7 +424,7 @@ main > .rule {
374
424
)
375
425
}
376
426
377
- .rule : has (+ h4 ) {
427
+ .rule : has (+ h4 , + . tests-popup + h4 ) {
378
428
/* multiplying by this turns h4's em into .rule's em*/
379
429
--h4-em-mult : calc (
380
430
(1 / var (--font-size-mult )) /* to main font size */
@@ -389,7 +439,7 @@ main > .rule {
389
439
)
390
440
}
391
441
392
- .rule : has (+ h5 ) {
442
+ .rule : has (+ h5 , + . tests-popup + h5 ) {
393
443
/* multiplying by this turns h5's em into .rule's em*/
394
444
--h5-em-mult : calc (
395
445
(1 / var (--font-size-mult )) /* to main font size */
@@ -404,7 +454,7 @@ main > .rule {
404
454
)
405
455
}
406
456
407
- .rule : has (+ h6 ) {
457
+ .rule : has (+ h6 , + . tests-popup + h6 ) {
408
458
/* multiplying by this turns h6's em into .rule's em*/
409
459
--h6-em-mult : calc (
410
460
(1 / var (--font-size-mult )) /* to main font size */
0 commit comments