milestoner 18.12.0 → 19.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (126) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/README.adoc +82 -68
  4. data/lib/milestoner/builders/adoc/container.rb +15 -0
  5. data/lib/milestoner/builders/adoc/dependencies.rb +9 -0
  6. data/lib/milestoner/builders/adoc/indexer.rb +28 -0
  7. data/lib/milestoner/builders/adoc/pager.rb +35 -0
  8. data/lib/milestoner/builders/ascii_doc.rb +10 -18
  9. data/lib/milestoner/builders/{import.rb → dependencies.rb} +1 -1
  10. data/lib/milestoner/builders/feed.rb +6 -15
  11. data/lib/milestoner/builders/markdown.rb +10 -18
  12. data/lib/milestoner/builders/md/container.rb +15 -0
  13. data/lib/milestoner/builders/md/dependencies.rb +9 -0
  14. data/lib/milestoner/builders/md/indexer.rb +28 -0
  15. data/lib/milestoner/builders/md/pager.rb +35 -0
  16. data/lib/milestoner/builders/path_resolver.rb +23 -0
  17. data/lib/milestoner/builders/site/container.rb +16 -0
  18. data/lib/milestoner/builders/site/dependencies.rb +9 -0
  19. data/lib/milestoner/builders/site/indexer.rb +33 -0
  20. data/lib/milestoner/builders/site/pager.rb +35 -0
  21. data/lib/milestoner/builders/site/styler.rb +47 -0
  22. data/lib/milestoner/builders/stream.rb +3 -3
  23. data/lib/milestoner/builders/syndication/builder.rb +125 -0
  24. data/lib/milestoner/builders/syndication/indexer.rb +29 -0
  25. data/lib/milestoner/builders/syndication/refine.rb +27 -0
  26. data/lib/milestoner/builders/syndication/shared.rb +27 -0
  27. data/lib/milestoner/builders/web.rb +11 -43
  28. data/lib/milestoner/cli/actions/build/basename.rb +1 -1
  29. data/lib/milestoner/cli/actions/build/format.rb +1 -1
  30. data/lib/milestoner/cli/actions/build/index.rb +26 -0
  31. data/lib/milestoner/cli/actions/build/label.rb +1 -1
  32. data/lib/milestoner/cli/actions/build/layout.rb +1 -1
  33. data/lib/milestoner/cli/actions/build/max.rb +1 -1
  34. data/lib/milestoner/cli/actions/build/output.rb +25 -0
  35. data/lib/milestoner/cli/actions/build/stylesheet.rb +5 -7
  36. data/lib/milestoner/cli/actions/build/tail.rb +1 -1
  37. data/lib/milestoner/cli/actions/build/version.rb +1 -1
  38. data/lib/milestoner/cli/actions/cache/create.rb +1 -1
  39. data/lib/milestoner/cli/actions/cache/delete.rb +1 -1
  40. data/lib/milestoner/cli/actions/cache/find.rb +1 -1
  41. data/lib/milestoner/cli/actions/cache/info.rb +1 -1
  42. data/lib/milestoner/cli/actions/cache/list.rb +1 -1
  43. data/lib/milestoner/cli/actions/next.rb +1 -1
  44. data/lib/milestoner/cli/actions/publish.rb +1 -1
  45. data/lib/milestoner/cli/commands/build.rb +4 -3
  46. data/lib/milestoner/cli/commands/cache.rb +1 -1
  47. data/lib/milestoner/cli/shell.rb +1 -1
  48. data/lib/milestoner/commits/categorizer.rb +7 -5
  49. data/lib/milestoner/commits/collector.rb +1 -1
  50. data/lib/milestoner/commits/enricher.rb +7 -5
  51. data/lib/milestoner/commits/enrichers/author.rb +1 -1
  52. data/lib/milestoner/commits/enrichers/body.rb +1 -1
  53. data/lib/milestoner/commits/enrichers/colleague.rb +1 -1
  54. data/lib/milestoner/commits/enrichers/container.rb +2 -2
  55. data/lib/milestoner/commits/enrichers/{import.rb → dependencies.rb} +1 -1
  56. data/lib/milestoner/commits/enrichers/format.rb +1 -1
  57. data/lib/milestoner/commits/enrichers/issue.rb +1 -1
  58. data/lib/milestoner/commits/enrichers/milestone.rb +1 -1
  59. data/lib/milestoner/commits/enrichers/note.rb +1 -1
  60. data/lib/milestoner/commits/enrichers/review.rb +1 -1
  61. data/lib/milestoner/commits/enrichers/uri.rb +1 -1
  62. data/lib/milestoner/commits/versioner.rb +1 -1
  63. data/lib/milestoner/configuration/contract.rb +6 -2
  64. data/lib/milestoner/configuration/defaults.yml +10 -4
  65. data/lib/milestoner/configuration/model.rb +5 -1
  66. data/lib/milestoner/configuration/transformers/gems/description.rb +1 -1
  67. data/lib/milestoner/configuration/transformers/gems/label.rb +2 -2
  68. data/lib/milestoner/configuration/transformers/gems/name.rb +1 -1
  69. data/lib/milestoner/configuration/transformers/gems/uri.rb +1 -1
  70. data/lib/milestoner/configuration/transformers/generator/label.rb +1 -1
  71. data/lib/milestoner/configuration/transformers/generator/uri.rb +1 -1
  72. data/lib/milestoner/configuration/transformers/generator/version.rb +1 -1
  73. data/lib/milestoner/configuration/transformers/project/author.rb +1 -1
  74. data/lib/milestoner/container.rb +2 -1
  75. data/lib/milestoner/{import.rb → dependencies.rb} +1 -1
  76. data/lib/milestoner/durationer.rb +25 -0
  77. data/lib/milestoner/models/commit.rb +2 -1
  78. data/lib/milestoner/renderers/universal.rb +1 -1
  79. data/lib/milestoner/tags/builder.rb +40 -0
  80. data/lib/milestoner/tags/creator.rb +7 -9
  81. data/lib/milestoner/{commits/tagger.rb → tags/enricher.rb} +27 -15
  82. data/lib/milestoner/tags/publisher.rb +1 -1
  83. data/lib/milestoner/tags/pusher.rb +1 -1
  84. data/lib/milestoner/templates/layouts/page.adoc.erb +4 -0
  85. data/lib/milestoner/templates/layouts/page.git.erb +1 -0
  86. data/lib/milestoner/templates/layouts/page.html.erb +17 -10
  87. data/lib/milestoner/templates/layouts/page.md.erb +3 -0
  88. data/lib/milestoner/templates/layouts/page.stream.erb +2 -1
  89. data/lib/milestoner/templates/layouts/page.xml.erb +4 -0
  90. data/lib/milestoner/templates/milestones/_commit.adoc.erb +4 -4
  91. data/lib/milestoner/templates/milestones/_commit.html.erb +7 -4
  92. data/lib/milestoner/templates/milestones/_commit.stream.erb +1 -1
  93. data/lib/milestoner/templates/milestones/_commit.xml.erb +2 -6
  94. data/lib/milestoner/templates/milestones/_logo.adoc.erb +1 -1
  95. data/lib/milestoner/templates/milestones/_logo.html.erb +1 -1
  96. data/lib/milestoner/templates/milestones/index.adoc.erb +13 -0
  97. data/lib/milestoner/templates/milestones/index.html.erb +31 -0
  98. data/lib/milestoner/templates/milestones/index.md.erb +13 -0
  99. data/lib/milestoner/templates/milestones/show.adoc.erb +17 -1
  100. data/lib/milestoner/templates/milestones/show.git.erb +8 -0
  101. data/lib/milestoner/templates/milestones/show.html.erb +119 -1
  102. data/lib/milestoner/templates/milestones/show.md.erb +16 -1
  103. data/lib/milestoner/templates/milestones/show.stream.erb +17 -1
  104. data/lib/milestoner/templates/milestones/show.xml.erb +22 -1
  105. data/lib/milestoner/templates/public/page.css.erb +402 -299
  106. data/lib/milestoner/views/context.rb +2 -1
  107. data/lib/milestoner/views/milestones/index.rb +23 -0
  108. data/lib/milestoner/views/milestones/show.rb +2 -2
  109. data/lib/milestoner/views/parts/commit.rb +47 -37
  110. data/lib/milestoner/views/parts/tag.rb +25 -17
  111. data/lib/milestoner/views/parts/user.rb +1 -1
  112. data/lib/milestoner.rb +5 -1
  113. data/milestoner.gemspec +18 -18
  114. data.tar.gz.sig +0 -0
  115. metadata +68 -57
  116. metadata.gz.sig +0 -0
  117. data/lib/milestoner/cli/actions/build/root.rb +0 -25
  118. data/lib/milestoner/configuration/transformers/build/root.rb +0 -21
  119. data/lib/milestoner/syndication/builder.rb +0 -123
  120. data/lib/milestoner/syndication/refine.rb +0 -25
  121. data/lib/milestoner/syndication/shared.rb +0 -25
  122. data/lib/milestoner/templates/milestones/_tag.adoc.erb +0 -13
  123. data/lib/milestoner/templates/milestones/_tag.html.erb +0 -56
  124. data/lib/milestoner/templates/milestones/_tag.md.erb +0 -14
  125. data/lib/milestoner/templates/milestones/_tag.stream.erb +0 -15
  126. data/lib/milestoner/templates/milestones/_tag.xml.erb +0 -22
@@ -1,7 +1,3 @@
1
- :root {
2
- --font-family: Verdana;
3
- }
4
-
5
1
  /* Rouge (https://rouge.jneen.net) */
6
2
  .rouge.highlight {
7
3
  --color-berry: hsl(240, 18%, 40%);
@@ -309,7 +305,7 @@
309
305
  color: var(--color-enoki);
310
306
  }
311
307
 
312
- .milestone {
308
+ .milestoner {
313
309
  --border-width: 0.15rem;
314
310
  --color-black: hsl(0, 0%, 0%);
315
311
  --color-butter: hsl(52, 100%, 83%);
@@ -331,12 +327,10 @@
331
327
  --color-slate: hsl(211, 23%, 41%);
332
328
  --color-smoke: hsl(229, 31%, 93%);
333
329
  --color-white: hsl(0, 0%, 100%);
330
+ --font-family: Verdana;
334
331
  --shadow-color: 0deg 0% 0%;
335
332
 
336
- display: flex;
337
- flex-direction: column;
338
333
  font-family: var(--font-family);
339
- margin: 0 12vw;
340
334
 
341
335
  blockquote {
342
336
  background-color: var(--color-silver);
@@ -395,53 +389,11 @@
395
389
  object-fit: cover;
396
390
  }
397
391
 
398
- .normal {
399
- border-bottom-color: var(--color-ghost);
400
- border-color: transparent;
401
- border-style: solid;
402
- border-width: var(--border-width);
403
- }
404
-
405
- .alert {
406
- border: var(--border-width) solid var(--color-orange);
407
- }
408
-
409
- .error {
410
- border: var(--border-width) solid var(--color-red);
411
- }
412
-
413
392
  .avatar {
414
393
  border-radius: 50%;
415
394
  height: fit-content;
416
395
  }
417
396
 
418
- .pill {
419
- border-radius: 0.5rem;
420
- padding: 0.2rem 0.4rem;
421
- }
422
-
423
- .popover {
424
- border-color: var(--color-black);
425
- border-radius: 0.5rem;
426
- padding: 1rem;
427
- max-width: calc(100vw - 20%);
428
-
429
- &::backdrop {
430
- backdrop-filter: brightness(60%);
431
- }
432
-
433
- .label {
434
- font-size: 1.5rem;
435
- text-align: center;
436
- margin: 0 0 1rem 0;
437
- }
438
-
439
- .sublabel {
440
- font-size: 1rem;
441
- margin: 0 0 1rem 0;
442
- }
443
- }
444
-
445
397
  .button {
446
398
  background-size: 200% auto;
447
399
  border-radius: 0.5rem;
@@ -452,6 +404,7 @@
452
404
  2.6px 2.7px 5.6px hsl(var(--shadow-color) / 0.14);
453
405
  cursor: pointer;
454
406
  font-size: 0.9rem;
407
+ justify-self: center;
455
408
  margin: 0;
456
409
  padding: 0.2rem 0.5rem;
457
410
  transition: 0.1s;
@@ -464,53 +417,66 @@
464
417
  }
465
418
  }
466
419
 
467
- .secure {
468
- background-color: var(--color-green);
469
- color: var(--color-white);
420
+ .dormant {
421
+ align-items: center;
422
+ display: flex;
423
+ justify-content: center;
424
+ flex-direction: column;
425
+
426
+ &::before {
427
+ content: "\1F303";
428
+ font-size: 10rem;
429
+ }
470
430
  }
471
431
 
472
- .insecure {
473
- background-color: var(--color-red);
474
- color: var(--color-white);
432
+ .key {
433
+ background-color: var(--color-silver);
434
+ border-radius: 0.2rem;
435
+ border: 0.1rem solid var(--color-slate);
436
+ color: var(--color-black);
437
+ font-size: 1.3rem;
438
+ font-weight: 600;
439
+ padding: 0.1rem 0.3rem;
440
+ white-space: nowrap;
475
441
  }
476
442
 
477
- .header {
478
- align-items: center;
479
- display: flex;
480
- flex-wrap: wrap;
481
- justify-content: space-between;
482
- margin: 1rem 0 2rem 0;
443
+ .list {
444
+ list-style: none;
445
+ padding: 0;
446
+ margin: 0;
483
447
 
484
- .title {
448
+ .item {
485
449
  align-items: center;
486
450
  display: flex;
487
451
  gap: 0.5rem;
488
- margin: 0;
489
- }
490
-
491
- .date {
492
- font-size: 1.4rem;
493
- font-weight: 600;
494
- margin: 0;
495
452
  }
496
453
  }
497
454
 
498
- .overview {
499
- align-items: center;
500
- display: flex;
501
- flex-wrap: wrap;
502
- justify-content: space-between;
503
- margin-bottom: 0.5rem;
455
+ .pill {
456
+ border-radius: 0.5rem;
457
+ padding: 0.2rem 0.4rem;
504
458
  }
505
459
 
506
- .owner {
507
- display: flex;
508
- gap: 0.5rem;
509
- }
460
+ .popover {
461
+ border-color: var(--color-black);
462
+ border-radius: 0.5rem;
463
+ padding: 1rem;
464
+ max-width: calc(100vw - 20%);
510
465
 
511
- .actions {
512
- display: flex;
513
- gap: 0.5rem;
466
+ &::backdrop {
467
+ backdrop-filter: brightness(60%);
468
+ }
469
+
470
+ .label {
471
+ font-size: 1.5rem;
472
+ text-align: center;
473
+ margin: 0 0 1rem 0;
474
+ }
475
+
476
+ .sublabel {
477
+ font-size: 1rem;
478
+ margin: 0 0 1rem 0;
479
+ }
514
480
  }
515
481
 
516
482
  .toggle {
@@ -520,300 +486,437 @@
520
486
  width: 5rem;
521
487
  }
522
488
 
523
- .columns {
524
- background-color: var(--color-black);
525
- border-top-left-radius: 0.5rem;
526
- border-top-right-radius: 0.5rem;
527
- color: var(--color-white);
528
- display: grid;
529
- grid-template: 1fr / 4.7fr 1fr 1fr 1fr 1fr 1fr;
530
- padding: 0.3rem 0;
531
-
532
- .label {
533
- font-weight: 600;
534
- text-align: center;
535
- }
489
+ .page-header {
490
+ align-items: center;
491
+ display: flex;
492
+ flex-wrap: wrap;
493
+ gap: 1rem;
494
+ justify-content: center;
536
495
  }
537
496
 
538
- .row {
539
- .label {
540
- font-weight: 600;
541
- }
542
- }
497
+ .milestones {
498
+ align-items: center;
499
+ display: flex;
500
+ flex-direction: column;
501
+ margin: 0 12vw;
543
502
 
544
- .row[open] > .summary::before {
545
- content: "\25BC";
546
- width: 0.5rem;
547
- }
503
+ .list {
504
+ background-color: var(--color-grey);
505
+ border: 0.1rem solid var(--color-black);
506
+ border-radius: 0.5rem;
507
+ display: flex;
508
+ gap: 0.5rem;
509
+ flex-direction: column;
510
+ margin: 1rem 0;
511
+ padding: 1rem;
548
512
 
549
- .summary {
550
- align-items: center;
551
- display: grid;
552
- gap: 0 1rem;
553
- grid-template: 1fr / auto 5fr 1fr 1fr 1fr 1fr 1fr;
554
- padding: 0.15rem 0;
555
- margin: 0.25rem 0 0 0;
556
-
557
- &::-webkit-details-marker {
558
- display:none;
513
+ .item {
514
+ flex-wrap: wrap;
515
+ justify-content: space-between;
516
+ }
559
517
  }
560
518
 
561
- &::before {
562
- color: var(--color-carbon);
563
- content: "\25B6";
564
- cursor: pointer;
565
- width: 0.5rem;
519
+ .date {
520
+ color: var(--color-slate);
566
521
  }
522
+ }
567
523
 
568
- &:has(~ * .major)::before {
569
- color: var(--color-major);
524
+ .milestone {
525
+ display: flex;
526
+ flex-direction: column;
527
+ margin: 0 12vw;
528
+
529
+ .normal {
530
+ border-bottom-color: var(--color-ghost);
531
+ border-color: transparent;
532
+ border-style: solid;
533
+ border-width: var(--border-width);
570
534
  }
571
535
 
572
- &:has(~ * .minor)::before {
573
- color: var(--color-minor);
536
+ .alert {
537
+ border: var(--border-width) solid var(--color-orange);
574
538
  }
575
539
 
576
- &:has(~ * .patch)::before {
577
- color: var(--color-patch);
540
+ .error {
541
+ border: var(--border-width) solid var(--color-red);
578
542
  }
579
543
 
580
- &:has(~ * .rebase)::before {
581
- color: var(--color-orange);
544
+ .secure {
545
+ background-color: var(--color-green);
546
+ color: var(--color-white);
582
547
  }
583
548
 
584
- &:has(~ * .invalid)::before {
585
- color: var(--color-red);
549
+ .insecure {
550
+ background-color: var(--color-red);
551
+ color: var(--color-white);
586
552
  }
587
553
 
588
- &:hover {
589
- background-color: var(--color-powder);
554
+ .columns {
555
+ background-color: var(--color-black);
556
+ border-top-left-radius: 0.5rem;
557
+ border-top-right-radius: 0.5rem;
558
+ color: var(--color-white);
559
+ display: grid;
560
+ grid-template: 1fr / 4.7fr 1fr 1fr 1fr 1fr 1fr;
561
+ padding: 0.3rem 0;
562
+
563
+ .label {
564
+ font-weight: 600;
565
+ text-align: center;
566
+ }
590
567
  }
591
568
 
592
- .title {
569
+ .header {
593
570
  align-items: center;
594
- display: flex;
595
- gap: 0 0.5rem;
596
- }
571
+ display: grid;
572
+ gap: 0.5rem;
573
+ grid-template: repeat(auto-fit, minmax(1rem, 1fr)) / 1fr;
574
+ justify-items: center;
575
+ margin: 1rem 0 2rem 0;
597
576
 
598
- .subject {
599
- word-break: break-word;
600
- }
577
+ @media (width >= 900px) {
578
+ grid-template: 1fr / repeat(auto-fit, minmax(1rem, 1fr));
601
579
 
602
- .author,
603
- .files,
604
- .lines,
605
- .issue,
606
- .review {
607
- text-align: center;
608
- }
580
+ & > *:first-child {
581
+ justify-self: start;
582
+ }
609
583
 
610
- .avatar {
611
- vertical-align: middle;
612
- }
584
+ & > *:last-child {
585
+ justify-self: end;
586
+ }
587
+ }
613
588
 
614
- .lines {
615
- .deletions {
616
- color: var(--color-green);
589
+ .root, .date {
590
+ font-size: 1.4rem;
591
+ font-weight: 600;
617
592
  }
618
593
 
619
- .insertions {
620
- color: var(--color-red);
594
+ .title {
595
+ align-items: center;
596
+ display: flex;
597
+ flex-wrap: wrap;
598
+ gap: 0.5rem;
599
+ justify-content: center;
600
+ margin: 0;
621
601
  }
622
602
  }
623
- }
624
603
 
625
- .details {
626
- display: grid;
627
- gap: 1rem;
628
- grid-template: auto auto auto / auto 1fr;
629
- grid-template-areas:
630
- "tag message"
631
- "tag notes"
632
- "tag info";
633
-
634
- @media (width >= 1000px) {
635
- grid-template: 1fr auto / auto 2fr 1fr;
636
- grid-template-areas:
637
- "tag message info"
638
- "tag notes info";
639
- }
604
+ .overview {
605
+ align-items: center;
606
+ display: grid;
607
+ gap: 0.5rem;
608
+ grid-template: repeat(auto-fit, minmax(1rem, 1fr)) / 1fr;
609
+ margin-bottom: 0.5rem;
640
610
 
641
- .tag {
642
- align-self: stretch;
643
- border-radius: 0.3rem;
644
- grid-area: tag;
645
- margin: 1rem 0;
646
- padding: 0 0.2rem;
647
- padding: 0.5rem 0.2rem 0.5rem 0.1rem;
648
- text-align: center;
649
- text-transform: capitalize;
650
- writing-mode: vertical-lr;
651
- }
611
+ @media (width >= 900px) {
612
+ grid-template: 1fr / repeat(auto-fit, minmax(1rem, 1fr));
652
613
 
653
- .major {
654
- background-color: var(--color-major);
655
- color: var(--color-white);
656
- }
614
+ & > *:first-child {
615
+ justify-self: start;
616
+ }
657
617
 
658
- .minor {
659
- background-color: var(--color-minor);
660
- color: var(--color-white);
661
- }
618
+ & > *:last-child {
619
+ justify-self: end;
620
+ }
621
+ }
662
622
 
663
- .patch {
664
- background-color: var(--color-patch);
665
- color: var(--color-white);
666
- }
623
+ .owner {
624
+ display: flex;
625
+ gap: 0.5rem;
626
+ justify-content: center;
627
+ }
667
628
 
668
- .rebase {
669
- background-color: var(--color-orange);
670
- color: var(--color-white);
629
+ .actions {
630
+ display: flex;
631
+ gap: 0.5rem;
632
+ justify-content: center;
633
+ }
671
634
  }
672
635
 
673
- .invalid {
674
- background-color: var(--color-red);
675
- color: var(--color-white);
636
+ .row {
637
+ .label {
638
+ font-weight: 600;
639
+ }
676
640
  }
677
641
 
678
- .unknown {
679
- background-color: var(--color-carbon);
680
- color: var(--color-white);
642
+ .row[open] > .summary::before {
643
+ content: "\25BC";
644
+ width: 0.5rem;
681
645
  }
682
646
 
683
- .bar {
684
- border-radius: 0.5rem 0.5rem 0 0;
685
- color: var(--color-black);
686
- font-size: 1rem;
687
- font-weight: 600;
688
- padding: 0 0 0 0.5rem;
689
- margin: 0;
690
- }
647
+ .summary {
648
+ align-items: center;
649
+ display: grid;
650
+ gap: 0 1rem;
651
+ grid-template: 1fr / auto 5fr 1fr 1fr 1fr 1fr 1fr;
652
+ padding: 0.15rem 0;
653
+ margin: 0.25rem 0 0 0;
654
+
655
+ &::-webkit-details-marker {
656
+ display:none;
657
+ }
691
658
 
692
- .panel {
693
- display: flex;
694
- flex-direction: column;
695
- padding: 0 0.5rem 0.5rem 0.5rem;
696
- }
659
+ &::before {
660
+ color: var(--color-carbon);
661
+ content: "\25B6";
662
+ cursor: pointer;
663
+ width: 0.5rem;
664
+ }
697
665
 
698
- .content {
699
- margin: 0 0.5rem;
700
- word-break: break-word;
701
- }
666
+ &:has(~ * .major)::before {
667
+ color: var(--color-major);
668
+ }
702
669
 
703
- .message {
704
- background-color: var(--color-grey);
705
- border-radius: 0.5rem;
706
- grid-area: message;
707
- margin-top: 1rem;
670
+ &:has(~ * .minor)::before {
671
+ color: var(--color-minor);
672
+ }
708
673
 
709
- .bar {
710
- background-color: var(--color-smoke);
674
+ &:has(~ * .patch)::before {
675
+ color: var(--color-patch);
711
676
  }
712
- }
713
677
 
714
- .notes {
715
- background-color: var(--color-cheese);
716
- border-radius: 0.5rem;
717
- grid-area: notes;
718
- margin-bottom: 1rem;
678
+ &:has(~ * .rebase)::before {
679
+ color: var(--color-orange);
680
+ }
719
681
 
720
- .bar {
721
- background-color: var(--color-butter);
682
+ &:has(~ * .invalid)::before {
683
+ color: var(--color-red);
722
684
  }
723
- }
724
685
 
725
- .list {
726
- list-style: none;
727
- padding: 0;
728
- margin: 0;
686
+ &:hover {
687
+ background-color: var(--color-powder);
688
+ border-radius: 0.5rem;
689
+ }
729
690
 
730
- .item {
691
+ .title {
731
692
  align-items: center;
732
693
  display: flex;
733
- gap: 0.5rem;
694
+ gap: 0 0.5rem;
695
+ }
696
+
697
+ .author,
698
+ .files,
699
+ .lines,
700
+ .issue,
701
+ .review {
702
+ text-align: center;
703
+ }
704
+
705
+ .avatar {
706
+ vertical-align: middle;
707
+ }
708
+
709
+ .lines {
710
+ .deletions {
711
+ color: var(--color-green);
712
+ }
713
+
714
+ .insertions {
715
+ color: var(--color-red);
716
+ }
734
717
  }
735
718
  }
736
719
 
737
- .info {
738
- grid-area: info;
739
- background-color: var(--color-ice);
740
- border-radius: 0.5rem;
741
- margin: 1rem 0;
720
+ .details {
721
+ display: grid;
722
+ gap: 1rem;
723
+ grid-template: auto auto auto / auto 1fr;
724
+ grid-template-areas:
725
+ "tag message"
726
+ "tag notes"
727
+ "tag info";
728
+
729
+ @media (width >= 1000px) {
730
+ grid-template: 1fr auto / auto 2fr 1fr;
731
+ grid-template-areas:
732
+ "tag message info"
733
+ "tag notes info";
734
+ }
742
735
 
743
- .bar {
744
- background-color: var(--color-cloud);
736
+ .tag {
737
+ align-self: stretch;
738
+ border-radius: 0.3rem;
739
+ grid-area: tag;
740
+ margin: 1rem 0;
741
+ padding: 0 0.2rem;
742
+ padding: 0.5rem 0.2rem 0.5rem 0.1rem;
743
+ text-align: center;
744
+ text-transform: capitalize;
745
+ writing-mode: vertical-lr;
745
746
  }
746
747
 
747
- .label {
748
- font-size: 0.9rem;
748
+ .major {
749
+ background-color: var(--color-major);
750
+ color: var(--color-white);
749
751
  }
750
752
 
751
- .line {
752
- align-self: start;
753
- display: flex;
754
- gap: 0.5rem;
753
+ .minor {
754
+ background-color: var(--color-minor);
755
+ color: var(--color-white);
756
+ }
757
+
758
+ .patch {
759
+ background-color: var(--color-patch);
760
+ color: var(--color-white);
761
+ }
762
+
763
+ .rebase {
764
+ background-color: var(--color-orange);
765
+ color: var(--color-white);
766
+ }
767
+
768
+ .invalid {
769
+ background-color: var(--color-red);
770
+ color: var(--color-white);
771
+ }
772
+
773
+ .unknown {
774
+ background-color: var(--color-carbon);
775
+ color: var(--color-white);
776
+ }
777
+
778
+ .bar {
779
+ border-radius: 0.5rem 0.5rem 0 0;
780
+ color: var(--color-black);
781
+ font-size: 1rem;
782
+ font-weight: 600;
783
+ padding: 0 0 0 0.5rem;
755
784
  margin: 0;
785
+ }
786
+
787
+ .panel {
788
+ display: flex;
789
+ flex-direction: column;
790
+ padding: 0 0.5rem 0.5rem 0.5rem;
791
+ }
792
+
793
+ .content {
794
+ margin: 0 0.5rem;
756
795
  word-break: break-word;
757
796
  }
758
797
 
759
- .at {
760
- flex-wrap: wrap;
798
+ .message {
799
+ background-color: var(--color-grey);
800
+ border-radius: 0.5rem;
801
+ grid-area: message;
802
+ margin-top: 1rem;
761
803
 
762
- .weekday {
763
- &:before {
764
- content: "(";
765
- }
804
+ .bar {
805
+ background-color: var(--color-smoke);
806
+ }
807
+ }
766
808
 
767
- &:after {
768
- content: ")";
769
- }
809
+ .notes {
810
+ background-color: var(--color-cheese);
811
+ border-radius: 0.5rem;
812
+ grid-area: notes;
813
+ margin-bottom: 1rem;
814
+
815
+ .bar {
816
+ background-color: var(--color-butter);
770
817
  }
771
818
  }
772
- }
773
- }
774
819
 
775
- .dormant {
776
- align-items: center;
777
- display: flex;
778
- justify-content: center;
779
- flex-direction: column;
820
+ .info {
821
+ grid-area: info;
822
+ background-color: var(--color-ice);
823
+ border-radius: 0.5rem;
824
+ margin: 1rem 0;
780
825
 
781
- &::before {
782
- content: "\1F303";
783
- font-size: 10rem;
784
- }
785
- }
826
+ .bar {
827
+ background-color: var(--color-cloud);
828
+ }
786
829
 
787
- .totals {
788
- display: flex;
789
- gap: 0 0.5rem;
790
- font-weight: 600;
791
- justify-content: center;
830
+ .label {
831
+ font-size: 0.9rem;
832
+ }
792
833
 
793
- .files {
794
- color: var(--color-slate);
834
+ .line {
835
+ align-self: start;
836
+ display: flex;
837
+ gap: 0.5rem;
838
+ margin: 0;
839
+ word-break: break-word;
840
+ }
841
+ }
795
842
  }
796
843
 
797
- .deletions {
798
- color: var(--color-green);
799
- }
844
+ .footer {
845
+ .totals {
846
+ align-items: center;
847
+ display: flex;
848
+ flex-direction: column;
849
+ font-weight: 600;
850
+ gap: 0.5rem;
851
+ justify-content: center;
800
852
 
801
- .insertions {
802
- color: var(--color-red);
803
- }
804
- }
805
- }
853
+ @media (width >= 600px) {
854
+ flex-direction: row;
855
+ }
806
856
 
807
- .footer {
808
- .generator {
809
- display: flex;
810
- font-family: var(--font-family);
811
- font-style: italic;
812
- justify-content: center;
813
- margin-top: 1rem;
857
+ .deletions {
858
+ color: var(--color-green);
859
+ }
860
+
861
+ .insertions {
862
+ color: var(--color-red);
863
+ }
864
+ }
865
+
866
+ .help {
867
+ background: none;
868
+ border: none;
869
+ font-size: 1rem;
870
+ }
871
+
872
+ .shortcut {
873
+ margin: 0.5rem 0;
874
+ }
875
+
876
+ .actions {
877
+ align-items: center;
878
+ display: flex;
879
+ gap: 0.5rem;
880
+ justify-content: space-between;
881
+ list-style: none;
882
+ margin: 2rem 0;
883
+ padding: 0;
884
+
885
+ .action {
886
+ align-items: center;
887
+ border-radius: 0.5rem;
888
+ border: 0.1rem solid var(--color-carbon);
889
+ color: var(--color-carbon);
890
+ display: flex;
891
+ gap: 0.5rem;
892
+ padding: 0.3rem 0.6rem;
893
+ text-decoration: none;
894
+ transition: 0.1s;
895
+
896
+ &[data-direction="previous"]::before {
897
+ content: "\2AA6";
898
+ }
899
+
900
+ &[data-direction="next"]::after {
901
+ content: "\2AA7";
902
+ }
903
+
904
+ &:hover {
905
+ transform: scale(0.95);
906
+ }
907
+ }
908
+ }
909
+ }
814
910
  }
815
911
 
816
- .link {
817
- padding-left: 0.3rem;
912
+ .page-footer {
913
+ .generator {
914
+ display: flex;
915
+ flex-wrap: wrap;
916
+ font-style: italic;
917
+ gap: 0.3rem;
918
+ justify-content: center;
919
+ margin-top: 1rem;
920
+ }
818
921
  }
819
922
  }