Keep a switch's track whole beside long text in a row
`[data-md-toggle] { min-width: 0 }` let the switch's root shrink below
its 52px track as a flex item. In `<x-row justify="between">` beside a
paragraph, flex shrinking weighs each item by its width, so the root of
a bare switch gave up a share of its 52px, and a switch with a long
label of its own gave its label a column one word wide and less; the
track, which does not shrink inside the root, ran out of it and past a
card's edge on a phone. `<x-checkbox>`'s root did the same with its box.
Both roots now keep their automatic minimum, the control and, beside a
label, its longest word, so the text beside the control, or the
control's own label, wraps instead. The toggle's docblock and the skill
say so.
A browser test lays a bare switch, a labelled switch and a bare
checkbox beside long text in rows on a 393px window and checks each
control's size and that it stays inside its row, and that the switch's
own label wraps inside its root; it fails without the change in Chrome,
Firefox and Safari.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
1885c3e54e
commit
cf63f11bfb
@@ -23,8 +23,13 @@
|
||||
@import './icon.css';
|
||||
|
||||
@layer material.components {
|
||||
/* In a flex row, a setting's text beside its switch, the root keeps its automatic minimum:
|
||||
the track, and beside a label the track, the gap and the label's longest word. So the text
|
||||
beside a bare switch, or the switch's own label, wraps before the track gives way; a root
|
||||
free to shrink below 52px left the track running out of it, and off a card's edge on a
|
||||
phone. */
|
||||
[data-md-toggle] {
|
||||
min-width: 0;
|
||||
min-width: auto;
|
||||
}
|
||||
|
||||
/* The positions below are the handle's centres less half its size, measured inside the track's
|
||||
|
||||
Reference in New Issue
Block a user