proctolog 0.1.0 → 0.1.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 784717d224b472eba9ce15227d5ffb578dabce10741c802d6cd62e642f8aee96
4
- data.tar.gz: 879591d6f7db0c4448563096e0e82ed566f68364c2c55e5b0ac03a739855a207
3
+ metadata.gz: b6eb6543861d7372fd74ab555d42c786fd2880d7f236a2a606cb8d8a69dda443
4
+ data.tar.gz: 9c3785dbab77433adad9a7d388bd451864a213ca206cb3e99a919b9ade5773ce
5
5
  SHA512:
6
- metadata.gz: 0e7c19af833d9fe3099f47e221f7663cd9c43066dcdf08b7a96b48e04374af2ac4f4017158dc308f244a07abc827d78ba0563ae85e9d2f9a3c9bdcfb5bc175cc
7
- data.tar.gz: 5da7be3fd3fcd54977e57f350b6f496ddda3d70b5c10982976116d8e1d814fc052a503526039195065f73ce1587415fb938fa251b93e8156313c4bb0b335f1dc
6
+ metadata.gz: 83f284129d2ab34f5235510c39b196a181158a5b853dcbe41b31b855f0400df548c41e0d631902e5b398a8f1fcb893856b0509d3bd70d7232ddbbf128cf62090
7
+ data.tar.gz: 80cf8f0953c7f7badbc7c5ed7791b4211b2f9a5d9047bb7bb7c8a2117b2f6ff133edc409c12b46c948d58e03862a536cf94f5e27adea2b9715d55a649d5d4900
data/CHANGELOG.md CHANGED
@@ -4,6 +4,16 @@ What changed in each version of the `proctolog` gem, newest first. Versions
4
4
  are semantic ([docs/manual/updates.md](docs/manual/updates.md)); a release
5
5
  that asks something of you says what under **You do**.
6
6
 
7
+ ## 0.1.1
8
+
9
+ - The Try it rail follows the reading column and its keys rather than the far
10
+ edge of the window, and grows to 20rem on wide screens; its outline scrolls
11
+ on its own, leaving the starter room.
12
+ - Even insets: 16px for page explanations, toolbars and sections, 12px for a
13
+ scenario's cells; result choices sit in two steady columns.
14
+ - `bin/release` no longer stops for uncommitted changes here: GitHub releases
15
+ main as origin has it.
16
+
7
17
  ## 0.1.0
8
18
 
9
19
  The first one published as a gem.
@@ -3,5 +3,5 @@
3
3
  module Proctolog
4
4
  # Semantic: a patch fixes, a minor adds, a major asks something new of the
5
5
  # owner (a command gone, a file moved). docs/manual/updates.md says more.
6
- VERSION = "0.1.0"
6
+ VERSION = "0.1.1"
7
7
  end
data/public/terminal.css CHANGED
@@ -41,9 +41,12 @@
41
41
  --change: var(--ink);
42
42
  --question: var(--ink);
43
43
  --side: 320px;
44
+ --section-gap: 16px;
44
45
  --group-gap: 24px;
45
46
  --row-pad: 4px;
46
47
  --control-gap: 8px;
48
+ --lane-gap: 20px;
49
+ --key-space: 12rem;
47
50
 
48
51
  /* One bead, 2.3px across, every 6px: the line round the plaque's figure,
49
52
  and the only line the desk draws that is not a hairline. It frames the
@@ -128,6 +131,13 @@ h1 {
128
131
  font-size: 0.933rem;
129
132
  }
130
133
 
134
+ .burst .lede,
135
+ .burst .tally,
136
+ .films-head .tally {
137
+ box-sizing: border-box;
138
+ padding-inline: 16px;
139
+ }
140
+
131
141
  /* The title plate has a cut corner and a stippled lower edge. Its full width
132
142
  belongs to the title, with no ornament that could be mistaken for a control. */
133
143
  .burst h1,
@@ -454,7 +464,7 @@ body.shell::before {
454
464
 
455
465
  .side h2 {
456
466
  margin-top: var(--group-gap);
457
- padding: 6px 12px;
467
+ padding: 6px 16px;
458
468
  border-block: 1px solid var(--rule-soft);
459
469
  background: var(--surface-head);
460
470
  color: var(--quiet);
@@ -768,6 +778,10 @@ body.shell .foot {
768
778
  align-items: center;
769
779
  }
770
780
 
781
+ .modebar .mode > span {
782
+ white-space: nowrap;
783
+ }
784
+
771
785
  .modebar .mode strong {
772
786
  padding: 0 1ch;
773
787
  background: var(--ink);
@@ -1180,10 +1194,10 @@ body.shell .foot {
1180
1194
  beside it, set smaller, measures the same; it gives way before the keys
1181
1195
  beside it and the outline do. */
1182
1196
  body[data-page="pull_requests"] > .main {
1183
- --rail: 15rem;
1197
+ --rail: 16rem;
1184
1198
  --measure: min(
1185
1199
  41rem,
1186
- calc(100vw - var(--side) - var(--gutter) - var(--rail) - 18px - 14rem - 28px)
1200
+ calc(100vw - var(--side) - var(--gutter) - var(--rail) - 24px - var(--key-space) - var(--lane-gap) - var(--lane-gap))
1187
1201
  );
1188
1202
  }
1189
1203
 
@@ -1321,7 +1335,7 @@ body[data-page="pull_requests"] .flash {
1321
1335
  .pull-request .whole {
1322
1336
  position: absolute;
1323
1337
  top: 5px;
1324
- left: calc(100% + 28px);
1338
+ left: calc(100% + var(--lane-gap));
1325
1339
  display: none;
1326
1340
  }
1327
1341
 
@@ -1333,7 +1347,7 @@ body[data-page="pull_requests"] .flash {
1333
1347
  .cursor .beside {
1334
1348
  gap: var(--control-gap);
1335
1349
  justify-items: start;
1336
- width: 13.5rem;
1350
+ width: var(--key-space);
1337
1351
  overflow: hidden;
1338
1352
  color: var(--quiet);
1339
1353
  font-size: 0.867rem;
@@ -1408,7 +1422,7 @@ body[data-page="pull_requests"] .flash {
1408
1422
  .cursor .beside {
1409
1423
  position: absolute;
1410
1424
  top: 2px;
1411
- left: calc(var(--gutter) + var(--measure) + 28px);
1425
+ left: calc(var(--gutter) + var(--measure) + var(--lane-gap));
1412
1426
  display: grid;
1413
1427
  pointer-events: auto;
1414
1428
  }
@@ -1430,13 +1444,13 @@ li[data-decision]:focus-visible,
1430
1444
 
1431
1445
  .rail {
1432
1446
  position: fixed;
1433
- top: 36px;
1434
- right: 18px;
1435
- bottom: 56px;
1447
+ top: 32px;
1448
+ left: calc(var(--side) + var(--gutter) + var(--measure) + var(--key-space) + var(--lane-gap) + var(--lane-gap));
1449
+ bottom: calc(var(--foot-height, 44px) + 12px);
1436
1450
  z-index: 2;
1437
1451
  display: flex;
1438
1452
  flex-direction: column;
1439
- gap: var(--group-gap);
1453
+ gap: var(--section-gap);
1440
1454
  width: var(--rail);
1441
1455
  }
1442
1456
 
@@ -1446,17 +1460,20 @@ li[data-decision]:focus-visible,
1446
1460
  .outline {
1447
1461
  display: grid;
1448
1462
  flex: none;
1463
+ max-height: 48%;
1449
1464
  padding: 8px;
1465
+ overflow-y: auto;
1450
1466
  border: 1px solid var(--rule);
1451
1467
  background: var(--panel);
1452
1468
  font-size: 0.867rem;
1469
+ scrollbar-width: thin;
1453
1470
  }
1454
1471
 
1455
1472
  .outline :is(button, a) {
1456
1473
  display: flex;
1457
1474
  gap: 1ch;
1458
1475
  justify-content: space-between;
1459
- padding: 4px 6px 4px 0;
1476
+ padding: 3px 6px 3px 0;
1460
1477
  border: 0;
1461
1478
  background: none;
1462
1479
  color: var(--quiet);
@@ -1502,8 +1519,8 @@ li[data-decision]:focus-visible,
1502
1519
  }
1503
1520
 
1504
1521
  .outline .apart {
1505
- margin-top: 12px;
1506
- padding-top: 12px;
1522
+ margin-top: 8px;
1523
+ padding-top: 8px;
1507
1524
  border-top: 1px solid var(--rule);
1508
1525
  }
1509
1526
 
@@ -1524,6 +1541,7 @@ details.section > summary .count[data-waits="true"] {
1524
1541
  same beads as Standing distinguish what is ready from what still waits. */
1525
1542
 
1526
1543
  .try {
1544
+ flex: 1;
1527
1545
  min-height: 0;
1528
1546
  padding: 0;
1529
1547
  overflow-y: auto;
@@ -1531,10 +1549,16 @@ details.section > summary .count[data-waits="true"] {
1531
1549
  background: var(--surface);
1532
1550
  font-size: 0.867rem;
1533
1551
  line-height: 1.5;
1552
+ overscroll-behavior-y: contain;
1553
+ scroll-padding-block: 12px;
1554
+ scrollbar-gutter: stable;
1534
1555
  scrollbar-width: thin;
1535
1556
  }
1536
1557
 
1537
1558
  .try h2 {
1559
+ position: sticky;
1560
+ top: 0;
1561
+ z-index: 1;
1538
1562
  margin: 0;
1539
1563
  padding: 8px 12px;
1540
1564
  border-bottom: 1px solid var(--rule);
@@ -1622,7 +1646,7 @@ details.section > summary .count[data-waits="true"] {
1622
1646
  .try-pop {
1623
1647
  position: fixed;
1624
1648
  inset: 42px auto auto;
1625
- right: calc(18px + var(--rail) + 14px);
1649
+ right: max(16px, calc(100vw - var(--side) - var(--gutter) - var(--measure) - var(--key-space) - var(--lane-gap) - var(--lane-gap) + 14px));
1626
1650
  width: min(72ch, 56vw);
1627
1651
  max-height: calc(100vh - 110px);
1628
1652
  margin: 0;
@@ -1723,7 +1747,7 @@ details.section > summary .count[data-waits="true"] {
1723
1747
  .try .tail {
1724
1748
  position: fixed;
1725
1749
  top: 42px;
1726
- right: calc(18px + var(--rail) + 14px);
1750
+ right: max(16px, calc(100vw - var(--side) - var(--gutter) - var(--measure) - var(--key-space) - var(--lane-gap) - var(--lane-gap) + 14px));
1727
1751
  z-index: 9;
1728
1752
  display: none;
1729
1753
  width: min(84ch, 52vw);
@@ -1850,7 +1874,7 @@ main.description + details.section {
1850
1874
 
1851
1875
  details.section > summary {
1852
1876
  position: relative;
1853
- gap: 1.4ch;
1877
+ gap: 1ch;
1854
1878
  align-items: baseline;
1855
1879
  margin-inline: -16px;
1856
1880
  padding: 9px 16px;
@@ -1917,6 +1941,7 @@ details.section > summary .count {
1917
1941
  margin-left: 0;
1918
1942
  color: var(--quiet);
1919
1943
  font-size: 0.867rem;
1944
+ white-space: nowrap;
1920
1945
  }
1921
1946
 
1922
1947
  [data-quotable] {
@@ -2865,14 +2890,14 @@ body[data-page="decisions"] .empty {
2865
2890
  }
2866
2891
 
2867
2892
  .part {
2868
- margin-top: var(--group-gap);
2893
+ margin-top: var(--section-gap);
2869
2894
  border: 1px solid var(--rule);
2870
2895
  background: var(--surface);
2871
2896
  }
2872
2897
 
2873
2898
  .part header {
2874
2899
  position: relative;
2875
- padding: 10px 16px;
2900
+ padding: 8px 16px;
2876
2901
  border-top: 0;
2877
2902
  border-bottom: 0;
2878
2903
  background: var(--surface-head);
@@ -3003,14 +3028,14 @@ details.more-pictures > summary {
3003
3028
  cursor rests on, each decision with its pull request above it. */
3004
3029
 
3005
3030
  .theme-group {
3006
- margin-top: var(--group-gap);
3031
+ margin-top: var(--section-gap);
3007
3032
  border: 1px solid var(--rule);
3008
3033
  background: var(--surface);
3009
3034
  }
3010
3035
 
3011
3036
  .theme-group header {
3012
3037
  position: relative;
3013
- padding: 10px 16px;
3038
+ padding: 8px 16px;
3014
3039
  border-top: 0;
3015
3040
  background: var(--surface-head);
3016
3041
  }
@@ -3103,14 +3128,14 @@ details.more-pictures > summary {
3103
3128
 
3104
3129
  .box[aria-current] {
3105
3130
  margin: 0;
3106
- padding: 16px 16px 12px 2.6rem;
3131
+ padding: 12px 16px 12px 2.6rem;
3107
3132
  border-top: 1px solid var(--rule);
3108
3133
  background: var(--rest);
3109
3134
  outline: 0;
3110
3135
  }
3111
3136
 
3112
3137
  .box[aria-current]::before {
3113
- top: 1.45rem;
3138
+ top: 1.2rem;
3114
3139
  }
3115
3140
 
3116
3141
  .box[aria-current] .body {
@@ -3123,12 +3148,12 @@ details.more-pictures > summary {
3123
3148
  .box[aria-current] .body > strong:first-of-type,
3124
3149
  .box[aria-current] .body > p:first-child > strong:first-child {
3125
3150
  display: block;
3126
- margin-bottom: 8px;
3151
+ margin-bottom: 4px;
3127
3152
  }
3128
3153
 
3129
3154
  .box[aria-current] .beneath {
3130
3155
  max-width: none;
3131
- margin-top: 14px;
3156
+ margin-top: 12px;
3132
3157
  font: inherit;
3133
3158
  font-size: 1rem;
3134
3159
  }
@@ -3142,11 +3167,16 @@ details.more-pictures > summary {
3142
3167
  margin-top: 0;
3143
3168
  }
3144
3169
 
3170
+ .box button.choice,
3171
+ .box .beneath > .actions > a {
3172
+ padding-block: 6px;
3173
+ }
3174
+
3145
3175
  /* The cursor at the decision at hand, in the gutter, as on a pull request's page. */
3146
3176
  .decisions .box[aria-current] .body::before {
3147
3177
  content: ">";
3148
3178
  position: absolute;
3149
- top: 14px;
3179
+ top: 10px;
3150
3180
  left: -2.4ch;
3151
3181
  color: var(--ink);
3152
3182
  font-size: 1rem;
@@ -3294,13 +3324,20 @@ details.more-pictures > summary {
3294
3324
  }
3295
3325
 
3296
3326
  .filters {
3297
- gap: var(--control-gap) 2.4ch;
3327
+ gap: 4px 12px;
3298
3328
  align-items: baseline;
3299
3329
  margin-top: 12px;
3300
3330
  padding-top: 10px;
3301
3331
  border-top: 1px solid var(--rule);
3302
3332
  }
3303
3333
 
3334
+ .filters button.quiet,
3335
+ .filters a {
3336
+ min-height: 24px;
3337
+ padding: 2px 6px;
3338
+ white-space: nowrap;
3339
+ }
3340
+
3304
3341
  .filters [data-filter="open"],
3305
3342
  .filters [data-filter="all"] {
3306
3343
  margin-left: 0;
@@ -3309,8 +3346,7 @@ details.more-pictures > summary {
3309
3346
  .filters button.quiet[aria-pressed="true"],
3310
3347
  .filters a[aria-current] {
3311
3348
  border: 0;
3312
- text-decoration: underline;
3313
- text-underline-offset: 0.4em;
3349
+ text-decoration: none;
3314
3350
  background: var(--plate);
3315
3351
  color: var(--panel);
3316
3352
  font-weight: 700;
@@ -3333,6 +3369,7 @@ details.more-pictures > summary {
3333
3369
  }
3334
3370
 
3335
3371
  .filters .by-state > summary {
3372
+ padding-block: 2px;
3336
3373
  color: var(--quiet);
3337
3374
  }
3338
3375
 
@@ -3367,6 +3404,8 @@ body[data-page="scenarios"] main.scenarios {
3367
3404
  }
3368
3405
 
3369
3406
  .server {
3407
+ display: grid;
3408
+ grid-template-columns: minmax(0, 1fr) max-content;
3370
3409
  gap: 4px 2.4ch;
3371
3410
  margin: 16px 0 0;
3372
3411
  padding: 12px 16px;
@@ -3376,6 +3415,9 @@ body[data-page="scenarios"] main.scenarios {
3376
3415
  }
3377
3416
 
3378
3417
  .server .status {
3418
+ grid-column: 1;
3419
+ grid-row: 1;
3420
+ justify-content: flex-start;
3379
3421
  gap: 1.2ch;
3380
3422
  padding: 0;
3381
3423
  border: 0;
@@ -3403,14 +3445,22 @@ body[data-page="scenarios"] main.scenarios {
3403
3445
  }
3404
3446
 
3405
3447
  .server .where {
3406
- flex-basis: 100%;
3448
+ grid-column: 1 / -1;
3407
3449
  min-width: 0;
3408
3450
  margin-left: calc(9px + 1.2ch);
3409
3451
  overflow-wrap: anywhere;
3410
3452
  }
3411
3453
 
3412
- .server .action {
3413
- margin: 0 0 0 calc(9px + 1.2ch);
3454
+ .server > form {
3455
+ grid-column: 2;
3456
+ grid-row: 1;
3457
+ margin: 0;
3458
+ }
3459
+
3460
+ .server > details {
3461
+ grid-column: 1 / -1;
3462
+ min-width: 0;
3463
+ margin-left: calc(9px + 1.2ch);
3414
3464
  }
3415
3465
 
3416
3466
  .scenarios h2 {
@@ -3444,8 +3494,8 @@ body[data-page="scenarios"] main.scenarios {
3444
3494
 
3445
3495
  .scenario {
3446
3496
  grid-template-columns: minmax(0, 1fr) minmax(8rem, 11rem) minmax(10rem, 15rem);
3447
- gap: 12px 2.4ch;
3448
- padding: 16px 0;
3497
+ gap: 0;
3498
+ padding: 0;
3449
3499
  border-top: 1px solid var(--rule);
3450
3500
  background: var(--surface);
3451
3501
  }
@@ -3455,12 +3505,12 @@ body[data-page="scenarios"] main.scenarios {
3455
3505
  }
3456
3506
 
3457
3507
  .scenario > .text {
3458
- padding-left: 12px;
3508
+ padding: 12px;
3459
3509
  }
3460
3510
 
3461
3511
  .scenario > .act,
3462
3512
  .scenario > .seen {
3463
- padding: 8px 12px;
3513
+ padding: 12px;
3464
3514
  border-left: 1px solid var(--rule);
3465
3515
  background: var(--surface-head);
3466
3516
  }
@@ -3501,6 +3551,7 @@ body[data-page="scenarios"] main.scenarios {
3501
3551
  font-weight: 700;
3502
3552
  text-decoration: underline;
3503
3553
  text-underline-offset: 0.22em;
3554
+ text-align: left;
3504
3555
  }
3505
3556
 
3506
3557
  .open:disabled {
@@ -3511,7 +3562,14 @@ body[data-page="scenarios"] main.scenarios {
3511
3562
  }
3512
3563
 
3513
3564
  .results {
3514
- gap: var(--control-gap) 1.6ch;
3565
+ display: grid;
3566
+ grid-template-columns: repeat(2, max-content);
3567
+ gap: var(--control-gap) 12px;
3568
+ }
3569
+
3570
+ .results .result {
3571
+ min-height: 24px;
3572
+ text-align: left;
3515
3573
  }
3516
3574
 
3517
3575
  .result,
@@ -3777,7 +3835,7 @@ body[data-page="prompts"] .main > details {
3777
3835
 
3778
3836
  .round-results h2 {
3779
3837
  margin: 0 0 6px;
3780
- padding: 8px 80px 8px 12px;
3838
+ padding: 8px 80px 8px 16px;
3781
3839
  border: 1px solid var(--rule);
3782
3840
  background: var(--surface-head);
3783
3841
  font-size: 1rem;
@@ -3785,6 +3843,8 @@ body[data-page="prompts"] .main > details {
3785
3843
  }
3786
3844
 
3787
3845
  .round-results > p {
3846
+ box-sizing: border-box;
3847
+ padding-inline: 16px;
3788
3848
  color: var(--quiet);
3789
3849
  font-size: 0.867rem;
3790
3850
  }
@@ -3801,6 +3861,10 @@ body[data-page="prompts"] .main > details {
3801
3861
  cursor: pointer;
3802
3862
  }
3803
3863
 
3864
+ .round-results > button {
3865
+ margin-inline-start: 16px;
3866
+ }
3867
+
3804
3868
  .round-result {
3805
3869
  position: relative;
3806
3870
  border-top: 1px solid var(--rule);
@@ -4181,15 +4245,21 @@ details.section[open] > summary {
4181
4245
  background-image: var(--grain-dots);
4182
4246
  }
4183
4247
 
4248
+ /* Spare width belongs to setup details, not to longer lines of prose. */
4249
+ @media (min-width: 110rem) {
4250
+ body[data-page="pull_requests"] > .main {
4251
+ --rail: 20rem;
4252
+ }
4253
+ }
4254
+
4184
4255
  /* A window too narrow for the column, its keys and the outline at once gives
4185
4256
  up the outline first: the reading keeps its width, and [ and ] still go
4186
4257
  from section to section. */
4187
-
4188
4258
  @media (max-width: 88rem) {
4189
4259
  body[data-page="pull_requests"] > .main {
4190
4260
  --measure: min(
4191
4261
  41rem,
4192
- calc(100vw - var(--side) - var(--gutter) - 14rem - 28px)
4262
+ calc(100vw - var(--side) - var(--gutter) - var(--key-space) - var(--lane-gap) - 24px)
4193
4263
  );
4194
4264
  }
4195
4265
 
@@ -4206,8 +4276,24 @@ details.section[open] > summary {
4206
4276
  }
4207
4277
 
4208
4278
  .try {
4279
+ flex: none;
4209
4280
  overflow: visible;
4210
4281
  }
4282
+
4283
+ .try h2 {
4284
+ position: static;
4285
+ }
4286
+
4287
+ .try-pop {
4288
+ inset: 24px 16px auto;
4289
+ width: auto;
4290
+ max-width: 72ch;
4291
+ margin-inline: auto;
4292
+ }
4293
+
4294
+ .try .tail {
4295
+ right: 16px;
4296
+ }
4211
4297
  }
4212
4298
 
4213
4299
  /* Narrower still, the route folds over the page, and a block's keys are named
@@ -4320,14 +4406,41 @@ details.section[open] > summary {
4320
4406
  }
4321
4407
 
4322
4408
  .modebar {
4409
+ display: flex;
4323
4410
  flex-wrap: wrap;
4324
- gap: 8px;
4325
- padding-block: 8px;
4411
+ gap: 4px 8px;
4412
+ padding-block: 4px;
4326
4413
  }
4327
4414
 
4328
4415
  .modebar .mode {
4329
- flex-basis: 100%;
4330
- gap: 4px 12px;
4416
+ display: contents;
4417
+ font-size: 0.8rem;
4418
+ }
4419
+
4420
+ .modebar .all-keys {
4421
+ padding-block: 1px;
4422
+ }
4423
+
4424
+ .draft-tools {
4425
+ padding-block: 8px;
4426
+ }
4427
+
4428
+ .draft-tools .bar {
4429
+ gap: 8px;
4430
+ }
4431
+
4432
+ .progress-line {
4433
+ gap: 4px 8px;
4434
+ }
4435
+
4436
+ .progress-line meter,
4437
+ .progress-line meter::-webkit-meter-bar {
4438
+ width: 4rem;
4439
+ }
4440
+
4441
+ .filters {
4442
+ margin-top: 8px;
4443
+ padding-top: 8px;
4331
4444
  }
4332
4445
 
4333
4446
  .keys-help {
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: proctolog
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gill Abarbanel