@@ -257,24 +257,32 @@ main > ul {
257257
258258/* Values for header margin-top and blockquote margin are taken from mdbook's general.css,
259259 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+ }
260268main > h2 {
261- margin-top : calc ( 2.5 em - 16 px );
269+ margin-top : var ( --h2-margin-top );
262270 margin-bottom : calc (0.83em - 16px );
263271}
264272main > h3 {
265- margin-top : calc ( 2.5 em - 16 px );
273+ margin-top : var ( --h3-margin-top );
266274 margin-bottom : calc (1em - 16px );
267275}
268276main > h4 {
269- margin-top : calc ( 2 em - 16 px );
277+ margin-top : var ( --h4-margin-top );
270278 margin-bottom : calc (1.33em - 16px );
271279}
272280main > h5 {
273- margin-top : calc ( 2 em - 16 px );
281+ margin-top : var ( --h5-margin-top );
274282 margin-bottom : calc (1.67em - 16px );
275283}
276284main > h6 {
277- margin-top : calc ( 2 em - 16 px );
285+ margin-top : var ( --h6-margin-top );
278286 margin-bottom : calc (2.33em - 16px );
279287}
280288main > blockquote {
@@ -303,7 +311,7 @@ main > .rule {
303311}
304312
305313/* Test links */
306- .rule . popup-container {
314+ .test-link {
307315 float : right;
308316 padding-right : 10px ;
309317}
@@ -317,51 +325,77 @@ main > .rule {
317325 navigate to it. This adds an indicator that the linked rule is the one that
318326 is "current", just like normal headers are in mdbook.
319327*/
320- .rule : target a ::before {
328+ .rule : target . rule-link ::before {
321329 display : inline-block;
322330 content : "»" ;
323331 padding-right : 5px ;
324332}
325333
326334/* Dodge » from headings */
327- .rule : has (+ h1 : target ),
328- .rule : has (+ h2 : target ),
329- .rule : has (+ h3 : target ),
330- .rule : has (+ h4 : target ),
331- .rule : has (+ h5 : target ),
332- .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 ) {
333343 padding-right : 24px ;
334344}
335345
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+
336370/* Hide the rules if the width of the container is too small.
337371 The cutoff point is chosen semi-arbitrary, it felt that
338372 when `width < 14em`, there are too many breaks. */
339373@container rule (width < 14em) {
340374 main > .rule a .rule-link span ,
341- main > . rule . popup-container > a span {
375+ . test-link > a span {
342376 display : none;
343377 }
344378
345379 main > .rule > a .rule-link ::before {
346380 content : "[*]" ;
347381 }
348382
349- main > . rule . popup-container > a ::before {
383+ . test-link > a ::before {
350384 content : "[T]" ;
351385 }
352386}
353387
354388/* Align rules to various siblings */
355- .rule : has (+ p ),
356- .rule : has (+ ul ) {
389+ .rule : has (+ p , + . tests-popup + p ),
390+ .rule : has (+ ul , + . tests-popup + ul ) {
357391 margin-top : calc ((1em - var (--font-size )) / var (--font-size-mult ) / 2 );
358392}
359393
360- .rule : has (+ h1 ) {
394+ .rule : has (+ h1 , + . tests-popup + h1 ) {
361395 align-self : center;
362396}
363397
364- .rule : has (+ h2 ) {
398+ .rule : has (+ h2 , + . tests-popup + h2 ) {
365399 /* multiplying by this turns h2's em into .rule's em*/
366400 --h2-em-mult : calc (
367401 (1 / var (--font-size-mult )) /* to main font size */
@@ -375,7 +409,7 @@ main > .rule {
375409 + (1em * var (--h2-em-mult ) - 1em ) / 2
376410 )
377411}
378- .rule : has (+ h3 ) {
412+ .rule : has (+ h3 , + . tests-popup + h3 ) {
379413 /* multiplying by this turns h3's em into .rule's em*/
380414 --h3-em-mult : calc (
381415 (1 / var (--font-size-mult )) /* to main font size */
@@ -390,7 +424,7 @@ main > .rule {
390424 )
391425}
392426
393- .rule : has (+ h4 ) {
427+ .rule : has (+ h4 , + . tests-popup + h4 ) {
394428 /* multiplying by this turns h4's em into .rule's em*/
395429 --h4-em-mult : calc (
396430 (1 / var (--font-size-mult )) /* to main font size */
@@ -405,7 +439,7 @@ main > .rule {
405439 )
406440}
407441
408- .rule : has (+ h5 ) {
442+ .rule : has (+ h5 , + . tests-popup + h5 ) {
409443 /* multiplying by this turns h5's em into .rule's em*/
410444 --h5-em-mult : calc (
411445 (1 / var (--font-size-mult )) /* to main font size */
@@ -420,7 +454,7 @@ main > .rule {
420454 )
421455}
422456
423- .rule : has (+ h6 ) {
457+ .rule : has (+ h6 , + . tests-popup + h6 ) {
424458 /* multiplying by this turns h6's em into .rule's em*/
425459 --h6-em-mult : calc (
426460 (1 / var (--font-size-mult )) /* to main font size */
0 commit comments