Skip to content

Complete cross-format typography rendering - #147

Merged
PrzemyslawKlys merged 11 commits into
mainfrom
fix/raster-italic-text
Aug 29, 2026
Merged

PrzemyslawKlys merged 11 commits into
mainfrom
fix/raster-italic-text

Conversation

@PrzemyslawKlys

@PrzemyslawKlys PrzemyslawKlys commented Aug 27, 2026 •

Copy link
Copy Markdown
Member

Summary

  • Add one shared typography contract for font family, size, color, weight, italic, independent underline and strikethrough patterns, subscript, superscript, and uppercase, lowercase, title, sentence, and toggle casing.
  • Apply resolved styles consistently to chart roles, grids, compositions, primary and secondary axes, legends, centered labels, data callouts, specialized chart labels, maps, timelines, heatmaps, and standalone SVG rasterization.
  • Make fitting, wrapping, collision placement, rotated text, tick density, axis reserves, legend allocation, directional script bounds, and specialized label layout use the same styled text and effective font size that is actually rendered.
  • Preserve case-transform context across adjacent SVG text and tspan runs, including title and sentence casing.
  • Keep zero-value funnel labels above the gallery readability floor.

Outputs

The shared behavior covers native SVG and static HTML, plus the raster pipeline used by PNG, GIF, JPEG, BMP, PPM, and TIFF. SVG and HTML preserve different simultaneous underline and strikethrough patterns through nested inline text runs. WebP is not currently a ChartForgeX output format.

Compatibility

Existing Italic, Underline, font-family, weight, size, and color usage remains valid. The typed properties and fluent helpers extend the public surface without requiring existing callers to migrate. Numeric and relative weights keep consistent raster behavior, and an explicit WithPngFont selection remains authoritative over role-level family fallbacks.

Release boundary

This candidate establishes the synchronized ChartForgeX 1.7.0 package lane. Source consumers can use the API from this branch; package consumers receive it after the normal release is merged and published.

Validation

  • Release build and all 793 tests
  • 191 generated SVG/PNG/HTML visual pairs with matching dimensions, clean baselines, and zero warnings
  • Browser-rendered SVG/HTML inspection and direct PNG inspection across typography, axes, heatmaps, legends, maps, timelines, and zero-value funnels
  • Mermaid fixture validation, NativeAOT, all six 1.7.0 package pairs, and clean package-consumer validation

Related to EvotecIT/PowerBGInfo#69.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a8570672ce

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread ChartForgeX/Raster/TrueTypeFont.cs
Comment thread ChartForgeX/Raster/PngChartRenderer.Cartesian.cs
Comment thread ChartForgeX/Raster/PngChartRenderer.Axes.cs
Comment thread ChartForgeX/Raster/PngChartRenderer.Axes.cs
Comment thread ChartForgeX/Raster/PngChartRenderer.Waterfall.cs Outdated
@PrzemyslawKlys PrzemyslawKlys changed the title Honor text style overrides in PNG rendering Honor text styles across SVG and raster rendering Aug 27, 2026

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 57f71e0338

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread ChartForgeX/Raster/PngChartGridRenderer.cs Outdated
Comment thread ChartForgeX/Svg/SvgChartRenderer.Bullet.cs Outdated
Comment thread ChartForgeX/SvgRaster/SvgRasterRenderer.Text.cs
Comment thread ChartForgeX/Raster/PngChartRenderer.Sankey.cs
@PrzemyslawKlys PrzemyslawKlys changed the title Honor text styles across SVG and raster rendering Complete styled text rendering across SVG and raster outputs Aug 27, 2026

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: de7e0fb8a0

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread ChartForgeX/Typography/TextFormatting.cs
Comment thread ChartForgeX/Svg/SvgChartRenderer.Helpers.cs Outdated
Comment thread ChartForgeX/Html/HtmlChartGridRenderer.cs
Comment thread ChartForgeX/Raster/PngChartRenderer.Text.cs
Comment thread ChartForgeX/Raster/PngChartRenderer.Text.cs Outdated
@PrzemyslawKlys PrzemyslawKlys changed the title Complete styled text rendering across SVG and raster outputs Complete cross-format typography rendering Aug 27, 2026

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 46b519aa51

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread ChartForgeX/Raster/PngChartRenderer.Text.cs Outdated
Comment thread ChartForgeX/Raster/PngChartRenderer.Text.cs
Comment thread ChartForgeX/Svg/SvgChartRenderer.Bullet.cs Outdated
Comment thread ChartForgeX/Svg/SvgChartRenderer.HorizontalAxes.cs
Comment thread ChartForgeX/Svg/SvgChartRenderer.TextHelpers.cs Outdated
Comment thread ChartForgeX/SvgRaster/SvgRasterStyle.cs
Comment thread ChartForgeX/Svg/SvgChartRenderer.Heatmap.cs Outdated
Comment thread ChartForgeX/Svg/SvgChartRenderer.Funnel.cs Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e27be00479

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread ChartForgeX/Svg/SvgChartRenderer.cs Outdated
Comment thread ChartForgeX/Svg/SvgChartRenderer.TextHelpers.cs
Comment thread README.md
Comment thread README.md
Comment thread ChartForgeX/SvgRaster/SvgRasterRenderer.Text.cs Outdated
@PrzemyslawKlys
PrzemyslawKlys merged commit 16a7910 into main Aug 29, 2026
5 checks passed
@PrzemyslawKlys
PrzemyslawKlys deleted the fix/raster-italic-text branch August 29, 2026 07:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant