Skip to content

feat(canvas): unify visual styling and layout spacing - #4

Merged
nmrtist merged 1 commit into
mainfrom
feat/canvas-visual-layout-system
Jul 22, 2026
Merged

feat(canvas): unify visual styling and layout spacing#4
nmrtist merged 1 commit into
mainfrom
feat/canvas-visual-layout-system

Conversation

@nmrtist

@nmrtist nmrtist commented Jul 22, 2026

Copy link
Copy Markdown
Owner

Summary

Establish a unified visual and layout system for the PlotX canvas.

Canvas editing chrome previously used scattered fixed colors, including
premultiplied translucent fills that could bleach underlying figures. Grid
gutters also described frame spacing only, so axis furniture could make the
visible separation between adjacent data areas much larger than expected.

This PR:

  • Adds a theme-derived ChromeStyle role table for canvas editing feedback.
  • Adds an optional canvas accent under Preferences → Appearance.
  • Fixes translucent chrome to use unmultiplied alpha.
  • Redesigns tile previews with subtle fills and differentiated outlines.
  • Shows independent dashed guides for non-zero page margins.
  • Adds independent axis-title and tick-label visibility controls.
  • Keeps axis visibility consistent across screen, SVG, and EMF renderers.
  • Adds undoable inner-axis simplification without overwriting unrelated or
    explicit axis overrides.
  • Adds Frame and Visual spacing modes, with Visual as the default.
  • Interprets Visual gutter values as requested minimum data-area clearance
    while keeping plot frames non-overlapping.
  • Adds Tight, Normal, and Spacious minimum-spacing presets.
  • Uses shared object-aware layout logic for Apply grid, two-way split, and
    tile retile operations.
  • Exposes the new layout actions through the command catalog, Arrange menus,
    Ribbon, and Canvas settings.
  • Safely rejects Simplify Inner Axes for non-grid free layouts.
  • Updates the English and Simplified Chinese user manuals.

Tight requests a minimum of 2 mm but does not guarantee an exact 2 mm result:
axis furniture and physically constrained pages may require larger spacing.

Validation

  • cargo pr-check
  • npm run build in docs/

UI display logic

  • New or changed actions go through the command catalog (CommandId +
    description) and are searchable in the command palette.
  • Hiding happens only at Ribbon-group level; transient states use command
    availability and explanatory feedback.
  • No layout changes are triggered by background events.
  • Invalid free-layout axis simplification leaves state and undo history
    unchanged and explains how to proceed.
  • Docs were updated in English and zh-CN for user-visible behavior.

Add theme-derived canvas chrome roles, configurable accent colors,
axis-furniture visibility controls, and object-aware visual spacing.

Support inner-axis simplification, minimum-spacing presets, and shared
layout behavior across grid arrangement, split, and tile operations.
@nmrtist
nmrtist merged commit c4ef8fd into main Jul 22, 2026
11 checks passed
@nmrtist
nmrtist deleted the feat/canvas-visual-layout-system branch July 22, 2026 13:38
@github-actions github-actions Bot locked and limited conversation to collaborators Jul 22, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant