Brandon Thomas
aee756d604
Merge remote-tracking branch 'origin/main' into feat/cjk-and-fonts
...
# Conflicts:
# crates/ui-egui/Cargo.toml
2026-10-07 22:04:42 -04:00
skylar taylor-barrick
4910e42bcc
Render: keep outside-aligned strokes out of closed interiors
2026-10-07 16:10:24 -06:00
aiongg
6df33fa344
CJK 1.7: story direction belongs to the story
...
Vertical is a story property: every frame of a thread is vertical or
horizontal together, a frame threaded onto a story takes its direction,
and frames split off by threading or breaking a thread keep theirs.
Type > Story Direction is type.storyDirection {vertical} (checked in the
menu) for the stories of the text selection or selected frames;
object.textFrameOptions {vertical} and frame.create {vertical} set the
frames' stories. Documents that stored Vertical on the frame open with
each story taking its first frame's direction. IDML StoryOrientation is
read into and written from the story, beside its column direction
(StoryDirection), which stays a separate setting.
2026-10-07 10:44:46 -04:00
Brandon Thomas and Claude Opus 5.5
82d6def80b
Never crash: render and pdf
...
Rasters stay below vello_cpu's u16 limits (a 65535-pixel-wide render
panicked inside it), page renders larger than 2^29 pixels decline instead of
allocating, PNG encoding never panics, and the PDF heading tag can't fail.
Both crates deny the panicking lints.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-04 12:43:33 -04:00
Brandon Thomas and Claude Opus 5.5
8490965e71
CI: fix new Rust 1.99 clippy lints (as_chunks, ?, redundant ref)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-04 11:37:09 -04:00
Brandon Thomas and Claude Opus 5.5
558e798dfc
E: CMYK transparency blend space on screen
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-04 02:09:26 -04:00
Brandon Thomas and Claude Opus 5.5
b13135472a
V: Rotate Spread per spread — canvas layout through per-spread transforms
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-04 00:25:16 -04:00
Brandon Thomas and Claude Opus 5.5
7b636fb9f5
C: separations from source colours
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 23:54:54 -04:00
Brandon Thomas and Claude Opus 5.5
dc2114be26
I: PDF form fields — text, check box, combo, list, signature
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 10:48:58 -04:00
Brandon Thomas and Claude Opus 5.5
55af964ea8
X: inline XML tagging and tag markers
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 10:48:58 -04:00
Brandon Thomas and Claude Opus 5.5
9ecd3fb9fd
E: Inner Glow, Bevel and Emboss, Satin; soft effects kept in PDF export
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 08:50:43 -04:00
Brandon Thomas and Claude Opus 5.5
37f0cd99e1
P: Object Layer Options for placed PDFs
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 08:38:23 -04:00
Brandon Thomas and Claude Opus 5.5
77fc006b02
T: vertical type — Vertical Type tool, upright CJK, CJK line breaking
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 08:18:14 -04:00
Brandon Thomas and Claude Opus 5.5
fb747c5fa5
C: Color Settings, Proof Setup and Proof Colors
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 07:44:40 -04:00
Brandon Thomas and Claude Opus 5.5
839887eb04
I: video and sound — media frames, posters, EPUB players (+ Media panel)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 05:20:35 -04:00
Brandon Thomas and Claude Opus 5.5
08495e45d0
T: graphic cells — images in table cells
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 04:30:47 -04:00
Brandon Thomas and Claude Opus 5.5
3fc38549d4
I: Object States — multi-state objects (+ panel)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 04:08:35 -04:00
Brandon Thomas and Claude Opus 5.5
a4e76ed620
T: Track Changes — marked insertions and deletions, accept/reject all
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 03:57:22 -04:00
Brandon Thomas and Claude Opus 5.5
adb054df46
V: Separations Preview and ink limit view
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 03:43:22 -04:00
Brandon Thomas and Claude Opus 5.5
ba95a6f900
F: stroke styles — stripes, wavy, hash drawn (screen + PDF); named custom styles (+ IDML)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 02:39:39 -04:00
Brandon Thomas and Claude Opus 5.5
10dd488e72
H: Image Import Options — crop placed PDFs to trim/bleed/art/media box
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 02:23:41 -04:00
Brandon Thomas and Claude Opus 5.5
2f54f0b53d
O: Frame Fitting Options — auto-fit on resize, align from, crop (+ dialog, IDML)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 00:14:47 -04:00
Brandon Thomas and Claude Opus 5.5
eb2e8d8b4f
C: Appearance of Black — output rich black, Overprint [Black] at 100%
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-02 23:51:51 -04:00
Brandon Thomas and Claude Opus 5.5
3b462285c5
T: editorial notes — anchored, flagged on screen, never printed; Notes panel
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-02 23:18:21 -04:00
Brandon Thomas and Claude Opus 5.5
af0d241190
T: conditional text — conditions, hide/show in layout and exports, panel, IDML
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-02 23:02:15 -04:00
Brandon Thomas and Claude Opus 5.5
98d8edf764
T: Composition highlights — keep and H&J violations, custom tracking/kerning
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-02 22:35:23 -04:00
Brandon Thomas and Claude Opus 5.5
3609862c2e
C: Attributes panel — overprint fill/stroke/gap, nonprinting
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-02 22:18:30 -04:00
Brandon Thomas and Claude Opus 5.5
cd72171859
O: Script Label, alt text, isolate/knockout groups, sort table rows
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-02 21:27:26 -04:00
Brandon Thomas and Claude Opus 5.5
175aaf28fd
H: place a chosen PDF page (Image Import Options)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-02 20:57:38 -04:00
Brandon Thomas and Claude Opus 5.5
b10a06f7b8
V: Overprint Preview
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-02 20:36:07 -04:00
Brandon Thomas and Claude Opus 5.5
eb4fa9c64c
T: Type on a Path — tool, options, screen and PDF
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-02 20:34:20 -04:00
Brandon Thomas and Claude Opus 5.5
bfe4220840
C: Appearance of Black on screen (rich black / accurate)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-02 16:59:19 -04:00
Brandon Thomas and Claude Opus 5.5
20ef6c2c4e
T: Glyphs panel — font grid rendered in-house, search, click to insert, recently used
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-02 16:16:49 -04:00
Brandon Thomas and Claude Opus 5.5
5971553d60
H: place SVG (vector PDF export), PSD, BMP, AI — designcraft-images crate
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-02 10:51:48 -04:00
Brandon Thomas and Claude Opus 5.5
c0f8679ba5
V: Display Performance — Fast, Typical, High Quality display
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-02 10:34:40 -04:00
Brandon Thomas and Claude Opus 5.5
66ab252044
F: Gradient Swatch tool, Gradient panel, unnamed gradients (object.gradient)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-02 10:15:01 -04:00
Brandon Thomas and Claude Opus 5.5
97b305fdcd
F: Stroke panel — arrowheads (screen and PDF), cap/join/miter, gap colour
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-02 09:56:14 -04:00
Brandon Thomas and Claude Opus 5.5
da0e87b86b
H: place PDF — sized by crop box, hayro on screen, vector form XObjects in PDF export
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-02 09:11:04 -04:00
Brandon Thomas and Claude Opus 5.5
87727f279a
D: Paste Into, Polygon Settings
...
- Edit › Paste Into (⌥⌘V): copied objects (with their stories and images) become the selected
frame's content, clipped by it; Item::is_group / has_nested_items; renderer and PDF draw fill,
clipped content, stroke; IDML nests the items inside the frame both ways (verified in
InDesign 2026) (+ tests)
- Polygon Settings: sides and star inset as engine preferences used by the polygon tools and
frame.create; double-click the Polygon tool (+ test)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-02 08:24:48 -04:00
Brandon Thomas and Claude Opus 5.5
ded7c7ad04
M9: damage-region repaint — re-render only changed frames and patch the canvas texture
...
- render: damage()/damage_with() — changed items and only the frames whose composition changed
(cache keeps the composition each edit replaced; Cache::composed_for matches a document
version exactly); conservative full repaint for styles, swatches, layers, parents, wrap,
effects and cross-story text (+ tests incl. pixel-identical patch vs full render)
- UI: canvas patches its texture after edits with the view unchanged (0.6 ms vs 22 ms on the
sample when typing); perf harness row for the damage repaint
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-02 00:54:31 -04:00
Brandon Thomas and Claude Opus 5.5
69563933be
M2: Find/Replace Font and missing-font highlighting
...
- engine: font.list (fonts used, missing first), font.replace (text, cells, footnotes, styles) (+ test)
- compose: RunStyle.missing_font (memoized per composition); render: pink highlight behind such
text when RenderOptions.highlight_missing_fonts (canvas only, never output) (+ test)
- UI: Type › Find/Replace Font… dialog
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-02 00:47:12 -04:00
Brandon Thomas and Claude Opus 5.5
7a7d7b78a1
Merge main into M8 tables
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-01 12:47:48 -04:00
Brandon Thomas and Claude Opus 5.5
77a23151ba
M8: tables
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-01 12:44:45 -04:00
Brandon Thomas and Claude Opus 5.5
b62a795602
M9: render perf (glyph path cache, culling) + soft drop shadow/feather/glow; perf harness
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-01 12:31:01 -04:00
Brandon Thomas and Claude Opus 5.5
91ae2b3cc9
M0: engine, tools, egui UI, desktop app, CLI, sample document, docs
...
Engine with command registry (~100 commands), tool hosting with one-step
undo per gesture, InDesign-style egui frontend (app bar, Control panel,
Tools panel, rulers, guides, frame edges, ports/threads, Properties/Pages/
Layers dock, panels, dialogs), JSON control channel, headless CLI renderer,
generated sample magazine, README/AGENTS/ROADMAP/ASSETS.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-01 10:39:15 -04:00
Brandon Thomas
c9dcad1f6e
continued work
2026-10-01 09:36:32 -04:00