mirror of
https://github.com/storytold/designcraft.git
synced 2026-10-24 18:26:50 -06:00
Cells and cell styles had no first-baseline setting, so every cell set its first line by the Ascent offset (the font's typographic ascender). IDML documents that set FirstBaselineOffset on a cell style (CapHeight is common, often through a table style's body region) composed every row taller than the document asked for. With a font whose typographic ascender is a full em (Avenir), each row grew about 2.6 pt and long tables overset, losing their last rows. - doc: Cell.first_baseline / first_baseline_min; CellStyle.first_baseline / first_baseline_min, applied by CellStyle::apply_to and carried through resolve_cell_style's BasedOn chain. - idml: FirstBaselineOffset and MinimumFirstBaselineOffset read and written on cells and cell styles. - compose: a cell's text frame uses the cell's first baseline offset and minimum. - engine: table.setCell, style.cell.create/edit take firstBaseline / firstBaselineMin; table.get reports them; style.cell.create fromSelection captures them. - tests: import through BasedOn and a table style's body region, a cell's own override, IDML round trip; composer cap height vs ascent and a fixed minimum; command parameters and validation. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>