@jsenv/navi 0.29.377 → 0.29.379
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/dist/dev/jsenv_navi.js +87 -11
- package/dist/dev/jsenv_navi.js.map +7 -7
- package/dist/jsenv_navi.js +81 -11
- package/dist/jsenv_navi.js.map +7 -7
- package/docs/AI_INSTRUCTIONS.md +3 -1
- package/docs/popup_lift.md +5 -1
- package/docs/typography.md +28 -3
- package/package.json +1 -1
package/docs/AI_INSTRUCTIONS.md
CHANGED
|
@@ -227,7 +227,9 @@ to start when unsure which export solves a problem.
|
|
|
227
227
|
viewport on Chrome Android and miscenters every dialog; `overflow-x: clip`.
|
|
228
228
|
- `z_index.md` — DOM order first; a `z-index` without `isolation: isolate`
|
|
229
229
|
competes with the page; navi's bands. Read before writing a `z-index`.
|
|
230
|
-
- `typography.md` — text is a component; `maxLines` is the one truncation
|
|
230
|
+
- `typography.md` — text is a component; `maxLines` is the one truncation
|
|
231
|
+
(never `lineClamp`/`overflowEllipsis`/`text-overflow` by hand), on `Text`
|
|
232
|
+
and its family, a `Picker`'s value, a `Binder`'s tabs, a `BadgeList`'s rows;
|
|
231
233
|
`attachLastChild`; one line height for everything (`--navi-line-height`,
|
|
232
234
|
1.25). Read before an overflowing label, and before touching a
|
|
233
235
|
`line-height`.
|
package/docs/popup_lift.md
CHANGED
|
@@ -116,7 +116,11 @@ paints nothing, off the first descendant that has its box and paints.
|
|
|
116
116
|
So a transparent wrapper around the card is fine, and a card whose colour
|
|
117
117
|
lives on a nested element of a different size is not: publish the colour on
|
|
118
118
|
the box that is the card. A gradient or an image travels as well
|
|
119
|
-
(`background-image`)
|
|
119
|
+
(`background-image`). A shadow or a halo (`box-shadow`, `filter:
|
|
120
|
+
drop-shadow()`) is in the picture but cut at the box's edge, with the content
|
|
121
|
+
the box uncovers — except when the two boxes are the same size (`box`) or the
|
|
122
|
+
same aspect ratio (`scene`): both pictures then fit the box the whole way,
|
|
123
|
+
nothing needs uncovering, and the ink travels with the box.
|
|
120
124
|
|
|
121
125
|
Corners are not paint: they are written per box, on purpose — the same card at
|
|
122
126
|
two sizes does not want the same round, a 6px corner stops showing on a big
|
package/docs/typography.md
CHANGED
|
@@ -66,9 +66,34 @@ Do **not** write `lineClamp={1}`. `lineClamp` and `overflowEllipsis` are raw
|
|
|
66
66
|
is not a `Text` (or deliberately opts out of it) and still needs that CSS. They
|
|
67
67
|
know nothing about each other, so `lineClamp={1}` gives a single-line webkit box
|
|
68
68
|
without the single-line handling `maxLines={1}` brings — `maxLines` switches the
|
|
69
|
-
element to a block, sets `min-width: 0` on itself, and
|
|
70
|
-
|
|
71
|
-
|
|
69
|
+
element to a block, sets `min-width: 0` on itself, and states the `white-space`
|
|
70
|
+
its line count needs: one line does not wrap, n lines may (a `<p>` keeps its
|
|
71
|
+
line breaks in both cases). That last part is what makes it hold anywhere:
|
|
72
|
+
`white-space` is inherited, and a raw clamp put under a single-line ancestor — a
|
|
73
|
+
`Picker`'s value, a `Time` — inherits `nowrap`, gets one line to cut, and lets
|
|
74
|
+
the text run past its box instead. On a `Text`, `maxLines` is always the right
|
|
75
|
+
answer, and an explicit `noWrap`/`pre`/`preLine` beside it still wins.
|
|
76
|
+
|
|
77
|
+
### Who takes `maxLines`
|
|
78
|
+
|
|
79
|
+
The prop is the same everywhere: a number of lines, cut with an ellipsis.
|
|
80
|
+
|
|
81
|
+
- **`Text`** and everything built on it — `Title`, `Paragraph`, `Caption`,
|
|
82
|
+
`Link`, `Time`, `Quantity`… — the prop flows through. `Badge` is `maxLines={1}`
|
|
83
|
+
by construction.
|
|
84
|
+
- **`Picker`** — its value, `maxLines={1}` by default; `variant="text"` and
|
|
85
|
+
`variant="bare"` draw the caller's own thing and are not clamped, a `Text` in
|
|
86
|
+
their `ui` cuts itself with its own `maxLines`.
|
|
87
|
+
- **`PickerSpin`** (`DaySpin`, `TimeSpin`…) — its value; left out, a long value
|
|
88
|
+
wraps and the box grows.
|
|
89
|
+
- **`Binder`** — its tab labels, `maxLines={1}` by default, `false` lets them
|
|
90
|
+
wrap; overridable per item.
|
|
91
|
+
- **`BadgeList`** — its rows, measured (a wrapped flex row is not a line box):
|
|
92
|
+
the badges that fit and a "+N" badge for the rest. Inside a `Picker` it
|
|
93
|
+
inherits the picker's count, see [badge_list.md](./badge_list.md).
|
|
94
|
+
|
|
95
|
+
On a plain `Box`, `maxLines` is the raw CSS mapping described above: it clamps
|
|
96
|
+
whatever the box holds, and states nothing else.
|
|
72
97
|
|
|
73
98
|
### Truncation only happens if something says "you may shrink"
|
|
74
99
|
|