@bobfrankston/rmfmail 1.2.101 → 1.2.102
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/TODO.md +2 -2
- package/client/app.bundle.js.map +1 -1
- package/client/app.js +4 -4
- package/client/app.js.map +1 -1
- package/client/app.ts +4 -4
- package/client/styles/components.css +39 -28
- package/package.json +1 -1
package/client/app.ts
CHANGED
|
@@ -4286,10 +4286,10 @@ optTwoLine?.addEventListener("change", () => {
|
|
|
4286
4286
|
localStorage.setItem("mailx-two-line", String(optTwoLine.checked));
|
|
4287
4287
|
});
|
|
4288
4288
|
|
|
4289
|
-
// Eleanor view toggle — Thunderbird-classic
|
|
4290
|
-
// (
|
|
4291
|
-
// the row markup is unchanged. TODO.md: generalize into
|
|
4292
|
-
// control instead of a named preset.
|
|
4289
|
+
// Eleanor view toggle — Thunderbird-classic two-line card list at every
|
|
4290
|
+
// width (From … Date / Subject, outlined entries, airy, monochrome).
|
|
4291
|
+
// Pure CSS class; the row markup is unchanged. TODO.md: generalize into
|
|
4292
|
+
// per-column view control instead of a named preset.
|
|
4293
4293
|
function applyEleanorView(on: boolean): void {
|
|
4294
4294
|
document.getElementById("message-list")?.classList.toggle("eleanor-view", on);
|
|
4295
4295
|
if (optEleanor) optEleanor.checked = on;
|
|
@@ -539,39 +539,49 @@ button.tb-menu-item { background: none; border: none; color: inherit; width: 100
|
|
|
539
539
|
}
|
|
540
540
|
|
|
541
541
|
/* ── Eleanor view ──────────────────────────────────────────────────────
|
|
542
|
-
Thunderbird-classic
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
generalizing it into
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
.
|
|
550
|
-
|
|
551
|
-
|
|
542
|
+
Thunderbird-classic two-line card list at EVERY width: From … Date on
|
|
543
|
+
the first line, Subject on the second, each entry outlined and set off
|
|
544
|
+
with breathing room. No avatar, no snippet, monochrome rows. Named for
|
|
545
|
+
its first user; TODO.md tracks generalizing it into per-column view
|
|
546
|
+
control with drag-reorder.
|
|
547
|
+
Defined without reference to .two-line so the layout is identical
|
|
548
|
+
whether the ResizeObserver has forced two-line (narrow) or not (wide);
|
|
549
|
+
these rules sit after the .two-line block, so they win when both
|
|
550
|
+
classes are present. */
|
|
551
|
+
.message-list.eleanor-view {
|
|
552
|
+
/* flag | from + subject | date */
|
|
553
|
+
grid-template-columns: 1.7em minmax(0, 1fr) auto;
|
|
552
554
|
column-gap: var(--gap-md);
|
|
553
555
|
}
|
|
554
|
-
.message-list.eleanor-view
|
|
555
|
-
grid-template-
|
|
556
|
-
|
|
557
|
-
|
|
556
|
+
.message-list.eleanor-view .ml-row {
|
|
557
|
+
grid-template-columns: subgrid;
|
|
558
|
+
grid-template-rows: auto auto;
|
|
559
|
+
margin: var(--gap-xs) var(--gap-sm);
|
|
560
|
+
padding: 8px var(--gap-sm);
|
|
561
|
+
border: 1px solid color-mix(in oklch, var(--color-text-muted) 55%, transparent);
|
|
562
|
+
border-radius: 4px;
|
|
558
563
|
line-height: 1.5;
|
|
559
564
|
}
|
|
560
|
-
.message-list.eleanor-view
|
|
561
|
-
.message-list.eleanor-view
|
|
562
|
-
.message-list.eleanor-view
|
|
563
|
-
|
|
565
|
+
.message-list.eleanor-view .ml-avatar { display: none; }
|
|
566
|
+
.message-list.eleanor-view .ml-flag { grid-column: 1; grid-row: 1 / 3; align-self: center; font-size: 1.15em; }
|
|
567
|
+
.message-list.eleanor-view .ml-from { grid-column: 2; grid-row: 1; }
|
|
568
|
+
.message-list.eleanor-view .ml-date { grid-column: 3; grid-row: 1; padding-right: var(--gap-md); }
|
|
569
|
+
.message-list.eleanor-view .ml-subject {
|
|
570
|
+
grid-column: 2 / 4;
|
|
571
|
+
grid-row: 2;
|
|
572
|
+
/* !important beats the two-line block's !important accent color when
|
|
573
|
+
both classes are present; muted gray keeps the view monochrome. */
|
|
574
|
+
color: var(--color-text-muted) !important;
|
|
575
|
+
font-size: var(--font-size-base);
|
|
564
576
|
white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
|
|
565
577
|
}
|
|
566
|
-
|
|
567
|
-
.message-list.eleanor-view
|
|
568
|
-
|
|
569
|
-
.message-list.eleanor-view
|
|
570
|
-
.message-list.eleanor-view
|
|
571
|
-
.message-list.eleanor-view
|
|
572
|
-
|
|
573
|
-
.message-list.eleanor-view:not(.two-line) .ml-col-date { grid-column: 4; grid-row: 1; }
|
|
574
|
-
/* Single clean line: no body snippet after the subject. */
|
|
578
|
+
/* Sortable header mirrors the row anatomy (Subject on its own line). */
|
|
579
|
+
.message-list.eleanor-view .ml-col-avatar { display: none; }
|
|
580
|
+
.message-list.eleanor-view .ml-col-flag { grid-column: 1; grid-row: 1; }
|
|
581
|
+
.message-list.eleanor-view .ml-col-from { grid-column: 2; grid-row: 1; }
|
|
582
|
+
.message-list.eleanor-view .ml-col-date { grid-column: 3; grid-row: 1; }
|
|
583
|
+
.message-list.eleanor-view .ml-col-subject { grid-column: 2 / 4; grid-row: 2; }
|
|
584
|
+
/* Clean rows: no body snippet after the subject. */
|
|
575
585
|
.message-list.eleanor-view .ml-preview { display: none; }
|
|
576
586
|
/* Monochrome: unread speaks through weight alone; flagged rows keep the
|
|
577
587
|
gold ★ glyph but lose the row wash; priority loses bar + tint. The
|
|
@@ -579,7 +589,8 @@ button.tb-menu-item { background: none; border: none; color: inherit; width: 100
|
|
|
579
589
|
.message-list.eleanor-view .ml-row.unread { color: var(--color-text); }
|
|
580
590
|
.message-list.eleanor-view .ml-row.flagged:not(.selected) { background: transparent; }
|
|
581
591
|
.message-list.eleanor-view .ml-row.priority:not(.selected) {
|
|
582
|
-
|
|
592
|
+
/* replace the gold accent bar with the card's own outline */
|
|
593
|
+
border-left: 1px solid color-mix(in oklch, var(--color-text-muted) 55%, transparent);
|
|
583
594
|
padding-left: var(--gap-sm);
|
|
584
595
|
background: transparent;
|
|
585
596
|
}
|