DioxusLabs / DioxusLabs/blitz

valign attribute / vertical-align on table cells is not supported

Open
#508 3 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.