@rse/specbook 1.2.4 → 1.2.6

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.
@@ -96,6 +96,9 @@ html.theme-light {
96
96
  --gradia-color-group-name: var(--theme-color-accent-18);
97
97
  --gradia-color-group-box: var(--theme-color-accent-32);
98
98
  --gradia-color-group-border: var(--theme-color-accent-26);
99
+ --gradia-color-container-name: var(--theme-color-base-12);
100
+ --gradia-color-container-box: var(--theme-color-base-31);
101
+ --gradia-color-container-border: var(--theme-color-base-24);
99
102
  --gradia-color-edge-line: var(--theme-color-base-22);
100
103
  --gradia-color-edge-name: var(--theme-color-base-5);
101
104
  --gradia-color-edge-arity: var(--theme-color-base-5);
@@ -138,6 +141,9 @@ html.theme-light {
138
141
  --gradia-color-group-name: var(--theme-color-accent-15);
139
142
  --gradia-color-group-box: var(--theme-color-accent-1);
140
143
  --gradia-color-group-border: var(--theme-color-accent-7);
144
+ --gradia-color-container-name: var(--theme-color-base-24);
145
+ --gradia-color-container-box: var(--theme-color-base-4);
146
+ --gradia-color-container-border: var(--theme-color-base-16);
141
147
  --gradia-color-edge-line: var(--theme-color-base-20);
142
148
  --gradia-color-edge-name: var(--theme-color-base-29);
143
149
  --gradia-color-edge-arity: var(--theme-color-base-29);
@@ -395,6 +401,179 @@ div.info-popup.spec a.link-compact::before {
395
401
  display: none;
396
402
  }
397
403
  }
404
+ /* the folding tab (screen-only): the tab riding right of the brand
405
+ bar between the search tab and the table of contents tab (as wide
406
+ as those, fixed independent of the content scrolling), showing a
407
+ fold icon (drawn like the search icon), which slides the two
408
+ controls out to the right (and back in), where the tab follows the
409
+ bar when the table of contents panel shifts it aside; the controls
410
+ fold and unfold all diagrams and all over-long cell texts of the
411
+ content at once and carry, like the fold icon itself, the mark
412
+ colors in a rounded box while anything of their kind is folded */
413
+ div.fold-switch {
414
+ position: fixed;
415
+ top: 10.66rem;
416
+ left: calc(0.6rem - 1px);
417
+ z-index: 30;
418
+ display: flex;
419
+ align-items: center;
420
+ border-radius: 0 0.3rem 0.3rem 0;
421
+ color: var(--theme-color-specbook-background);
422
+ background-color: var(--theme-color-specbook-accent);
423
+ transition: left 0.3s ease;
424
+ }
425
+ body:has(nav.toc-panel.open) div.fold-switch {
426
+ left: calc(31rem - 1px);
427
+ box-shadow: 0.2rem 0 0.6rem rgba(0,0,0,0.3);
428
+ }
429
+ div.fold-switch div.fold-toggle {
430
+ padding: 0.65rem 0.1rem;
431
+ line-height: 0;
432
+ border-radius: 0 0.3rem 0.3rem 0;
433
+ cursor: pointer;
434
+ }
435
+ div.fold-switch div.fold-toggle:hover {
436
+ background-color: var(--theme-color-specbook-accent-soft);
437
+ }
438
+ div.fold-switch svg.fold-icon {
439
+ width: 1.1rem;
440
+ height: 1.1rem;
441
+ padding: 0.25rem;
442
+ border-radius: 0.3rem;
443
+ margin-right: 0.15rem;
444
+ }
445
+ div.fold-switch.folded svg.fold-icon {
446
+ color: var(--theme-color-specbook-mark-text);
447
+ background-color: var(--theme-color-specbook-mark-back);
448
+ }
449
+ div.fold-switch div.fold-controls {
450
+ display: flex;
451
+ align-items: center;
452
+ gap: 0.3rem;
453
+ overflow: hidden;
454
+ max-width: 0;
455
+ padding: 0;
456
+ transition: max-width 0.3s ease, padding 0.3s ease;
457
+ }
458
+ div.fold-switch.open div.fold-controls {
459
+ max-width: 6rem;
460
+ padding: 0 0.5rem 0 0.2rem;
461
+ }
462
+ div.fold-switch div.fold-controls > div {
463
+ padding: 0.25rem;
464
+ line-height: 0;
465
+ border-radius: 0.3rem;
466
+ cursor: pointer;
467
+ -webkit-user-select: none;
468
+ user-select: none;
469
+ }
470
+ div.fold-switch div.fold-controls > div:hover {
471
+ background-color: var(--theme-color-specbook-accent-soft);
472
+ }
473
+ div.fold-switch div.fold-controls > div.folded {
474
+ color: var(--theme-color-specbook-mark-text);
475
+ background-color: var(--theme-color-specbook-mark-back);
476
+ }
477
+ div.fold-switch div.fold-controls svg {
478
+ width: 1.1rem;
479
+ height: 1.1rem;
480
+ }
481
+ @media print {
482
+ div.fold-switch {
483
+ display: none;
484
+ }
485
+ }
486
+ /* the folding of the diagrams and the over-long table cells
487
+ (screen-only): a diagram sits in a fold container carrying a chevron
488
+ mark in the muted symbol color of the anchors at its top left corner
489
+ -- in the page margin beside the content, and in a flex row left of
490
+ the diagram inside a table cell, where no margin is left -- while an
491
+ over-long cell carries its own chevron in a rounded grey box behind
492
+ the last still shown word; a folded diagram leaves the icon of its
493
+ tab control behind in the muted color, and a running search unfolds
494
+ everything, so no match hides inside */
495
+ div.fold {
496
+ position: relative;
497
+ }
498
+ span.fold-mark,
499
+ span.fold-more {
500
+ color: var(--theme-color-specbook-symbol);
501
+ line-height: 0;
502
+ cursor: pointer;
503
+ -webkit-user-select: none;
504
+ user-select: none;
505
+ }
506
+ span.fold-mark:hover,
507
+ span.fold-more:hover {
508
+ color: var(--theme-color-specbook-accent);
509
+ }
510
+ span.fold-mark {
511
+ position: absolute;
512
+ top: 0.35rem;
513
+ left: -1.15rem;
514
+ }
515
+ span.fold-more {
516
+ display: inline-block;
517
+ margin-left: 0.2rem;
518
+ padding: 0.1rem 0.25rem;
519
+ vertical-align: -0.05em;
520
+ border: 1px solid var(--theme-color-specbook-border);
521
+ border-radius: 0.25rem;
522
+ }
523
+ span.fold-more:hover {
524
+ border-color: var(--theme-color-specbook-accent);
525
+ }
526
+ span.fold-mark svg,
527
+ span.fold-more svg {
528
+ width: 0.8rem;
529
+ height: 0.8rem;
530
+ }
531
+ div.fold.folded > span.fold-mark svg,
532
+ td.folded span.fold-more svg {
533
+ transform: rotate(-90deg);
534
+ }
535
+ span.fold-label {
536
+ display: none;
537
+ line-height: 0;
538
+ margin-bottom: 1rem;
539
+ color: var(--theme-color-specbook-muted);
540
+ }
541
+ span.fold-label svg {
542
+ width: 1.1rem;
543
+ height: 1.1rem;
544
+ }
545
+ @media screen {
546
+ td div.fold {
547
+ display: flex;
548
+ align-items: flex-start;
549
+ }
550
+ td div.fold > span.fold-mark {
551
+ position: static;
552
+ flex: 0 0 auto;
553
+ margin: 0.3rem 0.3rem 0 0;
554
+ }
555
+ td div.fold > div.diagram {
556
+ flex: 1 1 auto;
557
+ min-width: 0;
558
+ }
559
+ body:not(.searching) div.fold.folded > span.fold-label {
560
+ display: block;
561
+ }
562
+ body:not(.searching) td div.fold.folded > span.fold-label {
563
+ display: block;
564
+ margin: 0.15rem 0 0 0;
565
+ }
566
+ body:not(.searching) div.fold.folded > div.diagram,
567
+ body:not(.searching) td.folded .fold-rest {
568
+ display: none;
569
+ }
570
+ }
571
+ @media print {
572
+ span.fold-mark,
573
+ span.fold-more {
574
+ display: none;
575
+ }
576
+ }
398
577
  /* the connection status tab of the live preview (screen-only): the
399
578
  bottommost tab riding right of the brand bar below the table of
400
579
  contents tab (sized like the search tab, fixed independent of the
@@ -406,7 +585,7 @@ div.info-popup.spec a.link-compact::before {
406
585
  for 2s (toggling every 250ms) after a content reload */
407
586
  div.realtime-status {
408
587
  position: fixed;
409
- top: 13.89rem;
588
+ top: 17.12rem;
410
589
  left: calc(0.6rem - 2px);
411
590
  z-index: 30;
412
591
  padding: 0.65rem 0.1rem;
@@ -506,7 +685,7 @@ div.scroll-progress svg.scroll-icon {
506
685
  left of the brand bar and to shift it aside when slid out, with its
507
686
  tab (a menu icon drawn like the search icon, as none of the bundled
508
687
  fonts carries the U+2630 glyph, and sized like the search tab)
509
- riding right of the bar below the search tab */
688
+ riding right of the bar below the folding tab */
510
689
  nav.toc-panel {
511
690
  position: fixed;
512
691
  top: 0;
@@ -536,7 +715,7 @@ nav.toc-panel.open div.toc-tab {
536
715
  }
537
716
  nav.toc-panel div.toc-tab {
538
717
  position: absolute;
539
- top: 10.66rem;
718
+ top: 13.89rem;
540
719
  left: calc(100% - 1px);
541
720
  padding: 0.9rem 0.35rem;
542
721
  line-height: 0;
@@ -930,6 +1109,58 @@ table.objects td section {
930
1109
  table.objects td section h6 {
931
1110
  margin: 0.5rem 0 0.25rem 0;
932
1111
  }
1112
+ /* the reference coverage tables of the coverage-configured objects:
1113
+ the headers like the "Properties" and "Diagram" headers of the
1114
+ compact tables (as they name neither object kinds nor properties),
1115
+ the counts in narrow columns, the ratio as a bar in the accent
1116
+ color over the remaining width, followed by its percentage */
1117
+ table.coverage {
1118
+ border-collapse: collapse;
1119
+ margin: 1rem 0;
1120
+ width: 100%;
1121
+ }
1122
+ table.coverage th,
1123
+ table.coverage td {
1124
+ border: 0;
1125
+ border-left: 1px solid var(--theme-color-specbook-border);
1126
+ padding: 0.3rem 0.6rem;
1127
+ text-align: left;
1128
+ vertical-align: top;
1129
+ white-space: nowrap;
1130
+ }
1131
+ table.coverage th:first-child,
1132
+ table.coverage td:first-child {
1133
+ border-left: 0;
1134
+ }
1135
+ table.coverage td:first-child {
1136
+ font-weight: 600;
1137
+ }
1138
+ table.coverage th {
1139
+ background-color: var(--theme-color-specbook-tint);
1140
+ font-weight: normal;
1141
+ color: var(--theme-color-specbook-accent);
1142
+ }
1143
+ table.coverage tbody tr.even td {
1144
+ background-color: var(--theme-color-specbook-stripe);
1145
+ }
1146
+ table.coverage th.ratio,
1147
+ table.coverage td.ratio {
1148
+ width: 100%;
1149
+ }
1150
+ table.coverage span.bar {
1151
+ display: inline-block;
1152
+ vertical-align: middle;
1153
+ width: 12rem;
1154
+ height: 0.6rem;
1155
+ border-radius: 0.3rem;
1156
+ background-color: var(--theme-color-specbook-tint-deep);
1157
+ overflow: hidden;
1158
+ }
1159
+ table.coverage span.bar > span {
1160
+ display: block;
1161
+ height: 100%;
1162
+ background-color: var(--theme-color-specbook-accent);
1163
+ }
933
1164
  /* the object descriptions and their embedded images */
934
1165
  p.description,
935
1166
  div.description {
@@ -1042,8 +1273,8 @@ div.titlepage table.meta td {
1042
1273
  text-align: left;
1043
1274
  }
1044
1275
  /* the fuzzy search tab (screen-only): the middle tab riding right of
1045
- the brand bar between the info tab and the table of
1046
- contents tab (as wide as those, fixed independent of the content
1276
+ the brand bar between the info tab and the folding
1277
+ tab (as wide as those, fixed independent of the content
1047
1278
  scrolling), showing the search icon, which slides the input field
1048
1279
  and its clear symbol out to the right (and back in), where the tab
1049
1280
  follows the bar when the table of contents panel shifts it aside