DioxusLabs / DioxusLabs/blitz

First-party SVG support

Open
#448 8 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Rust
Stars
4.1k
Forks
203
Avg merge
8h 58m
Merged PRs (30d)
112

Description

This issues tracks a first-party SVG implementation in `blitz-dom` and `blitz-paint`.

## Tasks

- [ ] Enable SVG CSS properties in Stylo (this PR https://github.com/servo/stylo/pull/383 enables some of them)
- [ ] Synthesize the CSS properties in the `synthesize_presentational_hints_for_legacy_attributes` https://github.com/DioxusLabs/blitz/blob/main/packages/blitz-dom/src/stylo.rs#L790 (like this PR does for Servo https://github.com/servo/servo/pull/45405/changes#diff-0c9e01a4915e7f3fa1e348d9047ffc3b145d41a4661d1f6b9211407aa8d59017R268)
- [ ] Stop parsing inline SVGs with usvg here: https://github.com/DioxusLabs/blitz/blob/main/packages/blitz-dom/src/layout/construct.rs#L131. Instead we will likely want a custom processing pass, but you may be able to skip this for the initial implementation. (perhaps we could feature flag this at first so that people can choose between resvg and the first-party impl)
- [ ] Add SVG rendering support to `blitz-paint`. This will likely work very similarly to `anyrender_svg` (https://github.com/DioxusLabs/anyrender/blob/main/crates/anyrender_svg/src/render.rs) but reading from the Blitz DOM and Stylo types rather than usvg types.

## SVG Elements

- [ ] Core
- [ ] [`

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.