fix(controls): say what is clickable
A `<button>` defaults to `cursor: default`, so most of this app read as text until you clicked it and found out otherwise — the headline deadline, the daily chips, the settings pills. Sixty-five controls on the checklist view alone, two of which had picked up a `cursor-pointer` at some point because somebody noticed them. So it is a base-layer rule rather than a class per call site: an affordance that has to be remembered is one that goes missing. Utilities still win over it, which is what keeps `cursor-not-allowed` on a disabled zoom step and `cursor-default` on a checklist day that cannot be ticked yet saying what they mean. Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
This commit is contained in:
co-authored by
Claude Opus 5
parent
74a50f8dca
commit
f336e8d8a4
@@ -121,6 +121,30 @@ body {
|
|||||||
background-attachment: fixed;
|
background-attachment: fixed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Anything you can act on says so under the pointer.
|
||||||
|
*
|
||||||
|
* A `<button>` defaults to `cursor: default`, so the app's own controls — a
|
||||||
|
* daily chip, the headline deadline, a settings pill — read as text until you
|
||||||
|
* click one and discover otherwise. Sixty-odd of them, which is why this is a
|
||||||
|
* rule rather than a class added at each call site: the ones that got it were
|
||||||
|
* the ones somebody noticed, and the point of an affordance is that it holds
|
||||||
|
* everywhere without being noticed.
|
||||||
|
*
|
||||||
|
* In `@layer base` on purpose. Utilities beat it, so a control that means
|
||||||
|
* something else by the pointer keeps saying it: `cursor-not-allowed` on a
|
||||||
|
* disabled zoom step, `cursor-default` on a day the checklist cannot tick yet.
|
||||||
|
* `:not(:disabled)` covers the same ground for anything that never bothered.
|
||||||
|
*/
|
||||||
|
@layer base {
|
||||||
|
button:not(:disabled),
|
||||||
|
[role="tab"],
|
||||||
|
input[type="checkbox"]:not(:disabled),
|
||||||
|
label:has(> input[type="checkbox"]:not(:disabled)) {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Countdowns tick. Tabular figures keep them from reflowing every second. */
|
/* Countdowns tick. Tabular figures keep them from reflowing every second. */
|
||||||
.tnum {
|
.tnum {
|
||||||
font-variant-numeric: tabular-nums;
|
font-variant-numeric: tabular-nums;
|
||||||
|
|||||||
Reference in New Issue
Block a user