valign attribute / vertical-align on table cells is not supported
- Dominant language
- Rust
- Stars
- 4.1k
- Forks
- 203
- Avg merge
- 8h 58m
- Merged PRs (30d)
- 112
Description
Related to #507 (same real-world emails). Table cells have no vertical alignment support: the servo-mode stylo build doesn't include the `vertical-align` longhand at all, and blitz doesn't map the `valign` presentational attribute either. Cell content always flows from the top.
## Real-world impact
HTML-email bar charts (Sentry weekly reports and similar) build columns as `` containing a shorter bar table — without `valign`, every bar hangs from the top and the chart renders upside down.
## Minimal repro
```html
```
Expected: purple block in the bottom half of the 110px column. Actual: top half.
## Approach we took
Since taffy 0.12's block layout supports `align-content`, we map the cell's `valign` attribute onto the cell's inner block style (`bottom` → `AlignContent::END`, `middle`/`center` → `CENTER`, `top` → `START`) at taffy-style build time: fifteenlabs/blitz@244abec2e51aa66e5c3e23fbb20f8df72a6c7da0. That sidesteps the missing stylo longhand; a fuller fix would add `vertical-align` to the stylo property set. Happy to upstream the attribute-level version if useful.
Contributor guide
Research direction
Start by reviewing the table-cell taffy-style build and the referenced commit 244abec2e51aa66e5c3e23fbb20f8df72a6c7da0, then trace how cell valign attributes become inner block styles. Use the minimal HTML repro to verify bottom, middle/center, and top alignment. Done means the purple block renders in the bottom half and the stated valign mappings work without regressing other cells.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- css, html, rust
- Domain
- frontend, web-dev
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 58/100