From 91b88cd809ea502a8d21d61cc67c1de3e87c1ba8 Mon Sep 17 00:00:00 2001 From: Paul Trowbridge Date: Wed, 23 Sep 2026 22:28:57 -0400 Subject: [PATCH] Name every section, and give the buttons some weight - Button labels are capitalised and font-medium, the segmented groups carry a border and a shadow of their own. An inactive segment used to be white text-on-white inside a group border, which is why none of them read as something you could press. - Each section says what it is: the operation strip, LEDGER (or RECODE TO / CLONE TO, which is what the form under those two operations is), SETTINGS over the toggles, LABEL THIS CHANGE. - Together/Each moves down beside Price/Volume and Forecast/Total, in a wrapping row. Three one-line settings stacked cost three rows of a dock that is 260px tall to begin with, and they are read together anyway: what absorbs the change, what it is measured against, and whether it applies once or per slice. Co-Authored-By: Claude Opus 5 --- ui/src/components/OperationPanel.jsx | 110 +++++++++++++++------------ 1 file changed, 61 insertions(+), 49 deletions(-) diff --git a/ui/src/components/OperationPanel.jsx b/ui/src/components/OperationPanel.jsx index a38c837..4e158ee 100644 --- a/ui/src/components/OperationPanel.jsx +++ b/ui/src/components/OperationPanel.jsx @@ -78,10 +78,10 @@ function TextButton({ onClick, children, title, danger }) { function Button({ onClick, active, children, title, disabled }) { return ( ) @@ -119,9 +119,9 @@ function Field({ label, children, hint, stack }) { // Same 10px uppercase as the ledger table headers, so the groupings read as part // of the same family rather than as a second style. -function SectionLabel({ children }) { +function SectionLabel({ children, className = '' }) { return ( -
+
{children}
) @@ -132,8 +132,8 @@ function SectionLabel({ children }) { // says the choice has been made elsewhere. function Segmented({ options, value, onChange, disabled }) { return ( -
+
{options.map(([val, label, title]) => ( @@ -145,7 +145,7 @@ function Segmented({ options, value, onChange, disabled }) { function Submit({ onClick, children, disabled, busy }) { return (