Skip to content

XLSX: worksheet-drawing scheme colors ignore the workbook theme #430

Description

@developer0hye

Current behavior

parser/xlsx_drawing.rs (drawing_color) resolves <a:schemeClr> in worksheet drawings (text boxes, shapes) with a hardcoded fallback: lt1/bg1/lt2/bg2 → white, dk1/tx1/dk2/tx2 → black, and every other scheme slot (accent1..6, hlink, ...) → None. Color transforms (tint, shade, lumMod, lumOff) are not applied either.

The doc comment notes worksheet drawings rarely restyle scheme colors, which holds for the current fixture corpus — but a workbook that uses accent scheme colors or luminance-modified fills in drawing shapes will render with missing or wrong colors.

Expected behavior

Resolve scheme colors against the workbook theme (xl/theme/theme1.xml) with the same transform math the PPTX path already implements (parser/pptx_theme.rs: resolve_scheme_color + apply_color_transforms — tint/shade in RGB, lumMod/lumOff in HSL).

Notes

  • The PPTX implementation is the reference; extracting its transform math into a shared module makes sense when this second consumer materializes (deliberately not done speculatively in the refactor pass — see PR refactor: unify OPC .rels parsing on xml_util #429 context).
  • This is a behavior change to rendered output, so the fix needs a fixture that exercises accent/transformed scheme colors in a worksheet drawing plus the standard visual comparison workflow.

Found during the 2026-07-24 refactoring audit.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions