0.9.1-alpha.72
Alpha@xaui/native@0.9.1-alpha.72
Patch Changes
-
8ed01e0: feat(timeline): what happened, in order, with a line through it
Timelinehas nogapon its root and cannot have one: the rail runs the full height of its entry, so a gap would be a break in the line.densityis the content's bottom padding, which is the one measurement that has to be in the right place.The rail is two halves rather than one line, which is what makes
alignwork: below the marker both are a share of the height so it centres, above it the upper half is a fixed inset so it sits level with the title's first line.statusnames what happened rather than how loud it is, and a tint reachesdefaultandcurrentonly — a timeline's greens and reds mean succeeded and failed. -
cce2d57:
Timeline— the row is built on one lineThe dot, the time and the title were each placed by their own arithmetic, so none of them met. Everything now hangs off a single number,
line— the middle of the title's first line, which is the height an entry reads at.The insets were written by hand and drifted.
insetwas a per-size constant (5 / 7 / 9) rather than the value it stands for, so the dot's centre landed at 13 against a line at 12 atmd, and at 17 against 14 atlg.timelineInset(line, height)derives it now, from the title's ownlineHeight, which means a theme that changeslineHeightskeeps the column together instead of pulling it apart.Timeline.Leadingwas never on the line at all. A cell in a row stretches, and a stretchedTextdraws at the top of it — so a time, set smaller than the title it labels, sat four points above both the dot and the words. It takes the same line as the marker now: an inset on astartentry,alignSelf: 'center'on acenterone. It also setsfontVariant: ['tabular-nums'], because right-aligning proportional figures still leaves11:06and10:43starting in different places, and times that each begin somewhere else read ragged however straight their right edge is.An end segment is now drawn, just not painted.
Timeline.Connectorreturnednullfor the last entry's lower half and a bareViewfor the first entry's upper half, and the marker's place in a rail is decided by what is above and below it — so oncenterthe first dot jumped to the top of its entry and the last one fell to the bottom, an entry's height of error. Only the colour goes now; the flex stays.Timeline.Railtakesmarker— how tall the marker it carries is, when it is not the dot. The upper half of the line is a height, and the only height a rail can work out on its own is the dot's, so a rail told nothing places a 28pt circled icon eight points below the title. The number is republished into the context rather than passed to the connectors, which are children the rail does not own (R1). It stays out of the recipe's selection, so it cannot reach the style cache.The rail's column is a
minWidthand the entry is a row with agap. A composed marker wider than the dot used to spill out of a fixed 24pt column and land on the words; the three columns had no gutter between them at all. The gutter cannot be padding inside the rail — the rail's own slack is what centres the line in it, so widening it moves the line rather than the text.