breadpad: fix reminder alert, snooze popover, and compose popup

Reminder alert:
- Dismiss now matches Snooze's full-opacity text color instead of 0.6
  alpha, which read as a disabled button.
- Button row inset brought to 20px to match the header/body zone above
  it (was 16px, visible as a step across the divider).

Snooze popover:
- Options are left-aligned (each button's label now sets its own
  xalign) and span the full row width instead of centering as a
  ragged-left stack of labels.
- Added a hairline divider between options so the list reads as
  distinct rows even in the popover's static/non-hover state.
- Added a "Custom…" option that reveals a free-form time entry,
  reusing the same rule-based time parsing breadman's dialogs use,
  instead of only offering the three fixed presets.
- Popover now matches the reminder card's flat-bordered elevation
  (no arrow, 1px border, no shadow) instead of GTK's default
  arrow+drop-shadow popover chrome.

Compose popup: dropped the bare accent-teal checkmark submit button
(same colour as the selected type pill, unlabeled) in favor of a
"Press Enter to add" hint, since the popup already grabs focus and is
keyboard-driven. Also made the entry's CSS padding uniform (14px on
all sides, was 12px/16px).
This commit is contained in:
Breadway 2026-07-31 07:21:13 +08:00
parent de7965edae
commit 26cb31354f
2 changed files with 107 additions and 27 deletions

View file

@ -33,7 +33,7 @@ window { border-radius: 8px; }
color: @fg;
border: 2px solid @blue;
border-radius: 6px;
padding: 12px 16px;
padding: 14px;
font-size: 14px;
caret-color: @fg;
}
@ -183,12 +183,15 @@ window { border-radius: 8px; }
color: @fg;
}
/* Dismiss and Snooze are both secondary/outline actions and should read at
equal weight - Dismiss used to sit at 0.6 alpha next to Snooze's full
opacity, which made the button that closes the reminder look disabled. */
.reminder-dismiss {
background: transparent;
border: 1px solid @overlay;
border-radius: 8px;
padding: 8px 16px;
color: alpha(@fg, 0.6);
color: @fg;
}
.reminder-dismiss:hover { background: shade(@bg, 1.1); }
@ -203,15 +206,40 @@ window { border-radius: 8px; }
.reminder-snooze:hover { background: shade(@bg, 1.1); }
/* Left-aligned (the button's child label sets xalign itself), full-width
row with a hairline divider so the list reads as distinct clickable rows
even before hover - a hover tint alone doesn't show up in a static
reading of the popover's default state. */
.snooze-option {
background: transparent;
border: none;
border-radius: 6px;
padding: 8px 12px;
padding: 10px 12px;
color: @fg;
border-bottom: 1px solid alpha(@overlay, 0.15);
}
.snooze-option:hover { background: shade(@bg, 1.2); }
.snooze-custom-entry {
background: @bg;
color: @fg;
border: 1px solid @overlay;
border-radius: 6px;
padding: 8px 12px;
margin: 4px;
}
.snooze-custom-entry:focus-within { border-color: @blue; outline: none; }
/* Matches the reminder alert card's flat-bordered elevation (1px border,
8px radius, no shadow) instead of GTK's default arrow+drop-shadow popover
chrome - the two surfaces used to speak two different elevation
languages. */
popover.snooze-popover > contents {
border: 1px solid @overlay;
box-shadow: none;
}
"#);
if let Some(extra) = user_css {