daily-focus 1.2.0-dev.5 → 1.2.0-dev.8

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.
package/public/style.css CHANGED
@@ -86,7 +86,7 @@
86
86
 
87
87
  /*
88
88
  * The UA stylesheet's `[hidden] { display: none }` loses to any class that sets
89
- * display, so `.timer`, `.focus-bar` and `.toast` all rendered as empty boxes
89
+ * display, so `.toast` rendered as an empty box
90
90
  * while "hidden". Assert it once here rather than remembering per component.
91
91
  */
92
92
  [hidden] {
@@ -351,91 +351,6 @@ body[data-view='tickets'] #brief-refresh {
351
351
  }
352
352
  }
353
353
 
354
- /* ---------- focus timer ---------- */
355
-
356
- .timer {
357
- display: flex;
358
- align-items: center;
359
- gap: 12px;
360
- max-width: 1280px;
361
- margin: 0 auto 14px;
362
- padding: 10px 14px;
363
- background: var(--surface);
364
- border: 1px solid var(--border);
365
- border-left: 3px solid var(--accent);
366
- border-radius: var(--radius);
367
- box-shadow: var(--shadow);
368
- font-size: 13.5px;
369
- color: var(--ink-2);
370
- }
371
- /* Past the target the timer stops being encouraging and starts being a fact. */
372
- .timer[data-state='overrun'] {
373
- border-left-color: var(--serious);
374
- }
375
- .timer[data-state='idle'] {
376
- border-left-color: var(--hairline);
377
- color: var(--ink-3);
378
- }
379
-
380
- .timer__clock {
381
- font-size: 20px;
382
- font-weight: 600;
383
- font-variant-numeric: tabular-nums;
384
- color: var(--ink-1);
385
- min-width: 62px;
386
- }
387
- .timer[data-state='overrun'] .timer__clock {
388
- color: var(--serious);
389
- }
390
-
391
- .timer__title {
392
- flex: 1;
393
- min-width: 0;
394
- color: var(--ink-1);
395
- overflow-wrap: anywhere;
396
- }
397
- .timer__note {
398
- color: var(--ink-3);
399
- }
400
- .timer__note--warn {
401
- color: var(--critical);
402
- }
403
- .timer__tally {
404
- color: var(--ink-3);
405
- white-space: nowrap;
406
- }
407
-
408
- /*
409
- * The bar after the timer stopped itself. Marked like the overrun state rather
410
- * than the idle one: something happened that's worth a glance, even though the
411
- * thing that happened was the dashboard being careful.
412
- */
413
- .timer[data-state='stopped'] {
414
- border-left-color: var(--serious);
415
- }
416
- .timer__away {
417
- display: flex;
418
- flex: 1;
419
- align-items: center;
420
- gap: 12px;
421
- min-width: 0;
422
- }
423
- .timer__away-body {
424
- display: flex;
425
- flex-direction: column;
426
- flex: 1;
427
- min-width: 0;
428
- }
429
- .timer__away-text {
430
- color: var(--ink-1);
431
- overflow-wrap: anywhere;
432
- }
433
- .timer__away-detail {
434
- color: var(--ink-3);
435
- font-size: 12.5px;
436
- overflow-wrap: anywhere;
437
- }
438
-
439
354
  /* ---------- banners ---------- */
440
355
 
441
356
  .banners {
@@ -692,47 +607,6 @@ body[data-view='tickets'] #brief-refresh {
692
607
  }
693
608
  }
694
609
 
695
- /* ---------- focus mode ---------- */
696
-
697
- /*
698
- * Fourteen open rows are fourteen invitations to switch task. Focus mode answers
699
- * the only question that matters mid-work — "what am I doing right now" — by
700
- * leaving the objective, one item, and the clock, and taking away the menu.
701
- */
702
- .focus-bar {
703
- display: flex;
704
- align-items: center;
705
- justify-content: space-between;
706
- gap: 12px;
707
- margin: 0 0 16px;
708
- padding: 9px 14px;
709
- background: var(--surface);
710
- border: 1px solid var(--border);
711
- border-left: 3px solid var(--accent);
712
- border-radius: var(--radius);
713
- font-size: 13px;
714
- color: var(--ink-2);
715
- }
716
-
717
- /* Scoped to the Today view: the board is a different question, and stays whole. */
718
- body[data-focus-mode='true'][data-view='today'] .stats,
719
- body[data-focus-mode='true'][data-view='today'] .headline,
720
- body[data-focus-mode='true'][data-view='today'] #today .drawer,
721
- body[data-focus-mode='true'][data-view='today'] #today .section__header,
722
- /* every section except the first, and every item in it except the first */
723
- body[data-focus-mode='true'][data-view='today'] #today .section:not(:first-of-type),
724
- body[data-focus-mode='true'][data-view='today'] #today .section:first-of-type .item:not(:first-child) {
725
- display: none;
726
- }
727
-
728
- body[data-focus-mode='true'][data-view='today'] #today .item {
729
- padding: 18px 20px;
730
- }
731
- body[data-focus-mode='true'][data-view='today'] #today .item__title {
732
- font-size: 19px;
733
- line-height: 1.35;
734
- }
735
-
736
610
  /* ---------- standing objective ---------- */
737
611
 
738
612
  /*
@@ -910,9 +784,9 @@ body[data-focus-mode='true'][data-view='today'] #today .item__title {
910
784
  scroll-margin: 90px;
911
785
  }
912
786
  /*
913
- * Three states used to share one look: selected, priority and running were all
914
- * "accent border", so the one that matters most was indistinguishable from a
915
- * keyboard cursor. They're now ranked — selected is quietest, running loudest.
787
+ * Two states used to share one look: selected and priority were both "accent
788
+ * border", so the ranked rows were indistinguishable from a keyboard cursor.
789
+ * Selected is the quieter of the two.
916
790
  */
917
791
  .item[data-selected='true'] {
918
792
  border-color: var(--ink-3);
@@ -921,33 +795,6 @@ body[data-focus-mode='true'][data-view='today'] #today .item__title {
921
795
  .item[data-priority='true'] {
922
796
  border-left: 3px solid var(--accent);
923
797
  }
924
-
925
- /* The one you committed to. Four reinforcing cues, because missing it is the
926
- * whole failure mode: a thick bar, a wash, a ring, and a live clock on the row. */
927
- .item[data-running='true'],
928
- .item[data-running='true'][data-selected='true'] {
929
- border-color: var(--accent);
930
- border-left: 5px solid var(--accent);
931
- background: var(--accent-wash);
932
- box-shadow: 0 0 0 2px var(--accent);
933
- }
934
- .item[data-running='true'][data-overrun='true'],
935
- .item[data-running='true'][data-overrun='true'][data-selected='true'] {
936
- border-color: var(--serious);
937
- border-left-color: var(--serious);
938
- box-shadow: 0 0 0 2px var(--serious);
939
- }
940
-
941
- /* While a session runs, everything else recedes — the competing rows are the
942
- * distraction the timer exists to resist. Hover brings one back so the list is
943
- * still usable without stopping the clock. */
944
- body[data-session-active='true'] #today .item:not([data-running='true']) {
945
- opacity: 0.45;
946
- }
947
- body[data-session-active='true'] #today .item:not([data-running='true']):hover,
948
- body[data-session-active='true'] #today .item:not([data-running='true']):focus-within {
949
- opacity: 1;
950
- }
951
798
  .item[data-status='done'] .item__title,
952
799
  .item[data-status='dismissed'] .item__title {
953
800
  color: var(--ink-3);
@@ -1058,17 +905,6 @@ body[data-session-active='true'] #today .item:not([data-running='true']):focus-w
1058
905
  font-weight: 600;
1059
906
  font-variant-numeric: tabular-nums;
1060
907
  }
1061
- .pill--running {
1062
- border-color: transparent;
1063
- background: var(--accent);
1064
- color: #fff;
1065
- font-weight: 600;
1066
- font-variant-numeric: tabular-nums;
1067
- }
1068
- .item[data-overrun='true'] .pill--running {
1069
- background: var(--serious);
1070
- color: #1a1a19;
1071
- }
1072
908
  .pill--objective {
1073
909
  border-color: var(--accent);
1074
910
  color: var(--accent);
@@ -1563,7 +1399,7 @@ kbd {
1563
1399
  }
1564
1400
 
1565
1401
  /*
1566
- * Which view is showing. Focus mode is scoped to Today (see the rules above).
1402
+ * Which view is showing.
1567
1403
  *
1568
1404
  * One rule per panel per view rather than `:not()`, because a view name nobody
1569
1405
  * has written a rule for should show nothing rather than everything at once.
@@ -1629,6 +1465,7 @@ body[data-view='settings'] .layout {
1629
1465
  }
1630
1466
 
1631
1467
  .item--pull[data-status='snoozed'] .item__title,
1468
+ .item--pull[data-nudged='true'] .item__title,
1632
1469
  .item--ticket[data-status='snoozed'] .item__title {
1633
1470
  color: var(--ink-3);
1634
1471
  }
@@ -1710,12 +1547,17 @@ body[data-view='settings'] .layout {
1710
1547
  padding-right: 104px;
1711
1548
  font-size: 13.5px;
1712
1549
  }
1713
- /* The exceptions, the notes and the note form all span both columns. */
1550
+ /* The exceptions, GitHub's evidence, the notes and the note form all span both columns. */
1714
1551
  #tickets .item__meta--extra,
1552
+ #tickets .item__reason,
1715
1553
  #tickets .item__notes,
1716
1554
  #tickets .note-form {
1717
1555
  grid-column: 1 / -1;
1718
1556
  }
1557
+ /* The grid's gap already spaces it from the line above. */
1558
+ #tickets .item__reason {
1559
+ margin-top: 0;
1560
+ }
1719
1561
 
1720
1562
  /*
1721
1563
  * The switch between the ticket tab's two views: what is out of sync, and what