0.9.1-alpha.25
Alpha@xaui/native@0.9.1-alpha.25
Patch Changes
-
0c5435f: The
fieldradius aligns on the reference implementation's — 21 points becomes 12buildRadiusderived it asbase * 1.75, which on the default base of 12 put a 48-tall field at 21 — 87% of its geometric maximum, so it read as a gélule rather than as a rounded box. The reference implementation reaches 12 for the same control from the other side of the scale: their--radius-fieldis an alias of their--radius-xl, and their base is 8 where ours is 12.It coincides with
lgat the default base and stays its own key, because that is what lets a theme round its fields without rounding its cards.Only
Inputreads it — andTextAreathrough it, since that component has no recipe of its own and renders anInputRoot.InputOTPdeliberately does not: its box is very nearly square, where a wide field's corner is a shape nobody decided for it. -
0c5435f: The
Input's column tightens by a point at every sizegapwas 4, 4, 6, 8 and is now 3, 3, 5, 7. A label, a field and a line of help are one thing the eye reads top to bottom, not three stacked blocks, and the whole spacing step let them drift far enough apart to read as a list.Quarter steps rather than a new scale:
spacingtakes a fraction, and theChipalready measures its dot and its cross that way. It stays agapon the root and not a margin on any slot (R4) — which is what keeps the space above and below the field identical, and what stops an omittedInput.Descriptionfrom leaving a hole behind it.TextAreainherits it, having no recipe of its own. -
110dd81: feat(text-area):
TextArea— a multiline field, over theInputNot "like" an
Input— it is one.TextArearenders theInput's root: the same recipe, the same resolved context, the same four variants, the samesize,radius,color,labelPlacement,isInvalidandisDisabled.TextArea.Label,.Descriptionand.Errorare literally theInput's slots, re-exported rather than wrapped.Only
TextArea.Fielddiffers, by three things:multiline, the text pinned to the top, and a height counted in lines. That is the reference implementation's answer too — theirTextAreais twenty lines rendering theirInputwith the same three defaults.rows(default3) andmaxRowsare raw values (R6), likecolor: they resolve outside the style cache from the line height the size chose, sorows={7}costs no cache entry. PastmaxRowsthe field stops growing and scrolls; unset, it grows with the text and has nothing to scroll, which is whyscrollEnabledfollowsmaxRowsrather than being a prop of its own.The
Input's recipe gains atextAreaslot carrying only the delta — the line height, the vertical padding andtextAlignVertical— layered over the field's own style, so the colours, the border and the radius are resolved once for both. The four inside-label compounds write to it as well, solabelPlacement="inside"composes.Not one of the fifteen the 1.0 core is scoped to; recorded as P5.