mirror of
https://github.com/PR0M3TH3AN/Artstr-Studio.git
synced 2026-10-27 08:40:39 +00:00
docs: log the Illustrator parity arc + follow-ups
PEN_TOOL_FEATURE.md gets a 2026-06-02 status block documenting everything that landed on top of Phase D — Direct Selection split, auto-add/auto-delete, click-vs-drag convert, Alt-click curved ↔ pointed, multi-anchor select / marquee / arrow nudge, drag-segment bow, continue-endpoint, spacebar reposition, Alt mid-draw, handle break, Cmd+J / Cmd+Alt+J, Path Actions side panel — plus the adjacent design-tool features that shipped in the same arc (Eyedropper, Align & distribute, Free Transform rotation, Pathfinder, marquee box-select, dive-into-edit on dbl-click). TODO.md gets a "Design-tool follow-ups" section listing the gaps: Smart Guides, Gradients + shadows, Scissors / Outline text / Command palette, Flip H / V (needs renderer scaleX/scaleY), Pathfinder rotation support, pixel-art frame timeline.
This commit is contained in:
1 parent
404a6964a1
commit
5b0eec1a1a
2 files changed
+100
-1
No files matched your search
@@ -8,6 +8,29 @@ Running list of deferred work. Detailed specs for the larger items live in
|
||||
_(Empty — see "Shipped (recent)" below for the items that just
|
||||
landed. Drop new items in here as they come up.)_
|
||||
|
||||
## Design-tool follow-ups (Illustrator parity arc)
|
||||
|
||||
The pen / select / pathfinder bundle (`docs/PEN_TOOL_FEATURE.md`)
|
||||
landed with these intentional gaps:
|
||||
|
||||
- **Smart Guides.** Snap-to-anchor and snap-to-edge alignment with
|
||||
on-canvas distance hints while dragging. Biggest "feels professional"
|
||||
upgrade still on the table; deserves its own arc.
|
||||
- **Gradients + drop shadows.** Linear / radial gradient fills and a
|
||||
basic drop-shadow / glow effect on the appearance panel. Mostly an
|
||||
SVG `<defs>` + `filter` addition.
|
||||
- **Scissors (C) + Outline text + Command palette (Cmd+K).** Three
|
||||
small wins: split a path at a click, convert text to editable pen
|
||||
paths (font-independent for Nostr export), searchable action list.
|
||||
- **Flip H / V.** Prototyped during the Align panel arc but pulled
|
||||
out — needs the renderer to honor per-layer scaleX / scaleY.
|
||||
- **Pathfinder limitations to lift.** Today: refuses rotated shapes,
|
||||
flattens curves, only the first polygon's outer ring stays
|
||||
pen-editable post-op. Rotation support is the most user-facing of
|
||||
these; curve fidelity would need a Bézier-aware clipper.
|
||||
- **Pixel-art frame timeline.** Onion skin + frame list + FPS control.
|
||||
Largest open arc; transformative if pixel art is a focus.
|
||||
|
||||
## QR code layer — remaining phases
|
||||
|
||||
Phases A and B shipped (the `qr` layer type: data, error-correction level,
|
||||
|
||||
@@ -48,16 +48,92 @@ tool-mode system with flanking toolbars to host it.
|
||||
arcs, abs & rel). *Not convertible:* multi-element SVGs and compound
|
||||
(multi-subpath) paths — the panel shows a hint instead.
|
||||
|
||||
### Implementation status — 2026-06-02 (Illustrator parity arc)
|
||||
|
||||
A subsequent arc brought the pen / select tools much closer to
|
||||
Adobe Illustrator's feel. The tool-mode system from Phases A–E is
|
||||
unchanged; the new work plugs into it:
|
||||
|
||||
- **Direct Selection (A)** as a separate tool from Select (V),
|
||||
matching Illustrator's V/A split. Cmd / Ctrl held from any
|
||||
non-pen tool temporarily flips the effective tool to Direct
|
||||
Selection so a quick anchor tweak doesn't require dropping the
|
||||
current tool.
|
||||
- **Hover cursor cues**: − over an anchor in Pen mode (auto-delete),
|
||||
+ over a segment (auto-add), the "continue" pointer over an
|
||||
endpoint of an open path, grab over a segment in Direct Select
|
||||
(bow the curve).
|
||||
- **Pen auto-add / auto-delete**: clicking a segment with no
|
||||
modifier inserts an anchor at the click point; clicking an
|
||||
existing anchor deletes it. Drag (instead of click) on an anchor
|
||||
converts it on the fly — pulls symmetric handles out. Alt-drag
|
||||
pulls an asymmetric corner.
|
||||
- **Convert anchor** (Alt-click in Pen or Direct Select): flips
|
||||
curved ↔ pointed completely. Curved → pointed drops both handles
|
||||
for a real sharp corner; pointed → curved grows symmetric handles
|
||||
along the chord through the anchor (1/3 of chord length).
|
||||
- **Shift constrains** pen segments to 0 / 45 / 90° while drawing
|
||||
and previewing the next click.
|
||||
- **Multi-anchor selection**: Shift-click anchors to add / remove
|
||||
them from a selection Set. Drag a marquee inside the editable
|
||||
path to box-select anchors. Arrow keys nudge every selected
|
||||
anchor (1 px, 10 px with Shift) instead of the whole layer.
|
||||
Backspace deletes the whole anchor selection at once.
|
||||
- **Drag a segment** to bow the curve (Direct Select). Equal-split
|
||||
delta across the two inner control points so the cursor tracks
|
||||
the grabbed point; smooth anchors on either end keep their
|
||||
handles mirrored.
|
||||
- **Continue an open path**: with the Pen tool, click the start /
|
||||
end anchor of an open path to resume drawing from there. The
|
||||
source layer is hidden during the draft; on commit (Enter / close
|
||||
/ Escape) the new path takes its place, preserving z-order,
|
||||
target, fill and stroke.
|
||||
- **Spacebar reposition** during pen create-drag: slides the anchor
|
||||
itself instead of growing handles; release Space to resume
|
||||
handle-pulling from the new position.
|
||||
- **Alt mid-draw** during pen create-drag: only the outgoing handle
|
||||
is pulled, incoming side stays at the anchor — asymmetric corner
|
||||
for tangent-then-corner transitions without lifting the pen.
|
||||
- **Alt-drag handle** in Direct Selection: breaks symmetry, the
|
||||
opposite handle stays put.
|
||||
- **Path keyboard ops**: Cmd+J closes an open path when both
|
||||
endpoints are selected; Cmd+Alt+J averages selected anchors to
|
||||
their centroid.
|
||||
- **Path Actions side panel**: when Pen or Direct Selection is
|
||||
active and a pen path is selected, a sidebar block surfaces the
|
||||
same ops as buttons — Pointed corner, Curved smooth, Delete
|
||||
anchor, Average, Join endpoints, Close / Open path, Reverse
|
||||
direction. Buttons auto-disable when the action would be a no-op.
|
||||
|
||||
### Non-goals (v1)
|
||||
- A raster paint layer (true pixel buffers). Explicitly out of scope — the
|
||||
app's design-as-JSON model and Nostr-friendliness depend on storing
|
||||
instructions, not bitmaps. A `paint` layer type could be a separate future
|
||||
feature; this doc does not pursue it.
|
||||
- Pressure / tilt / velocity-sensitive brushes.
|
||||
- Boolean path operations (union / subtract / intersect).
|
||||
- Moving the existing shape-primitive menu into the left toolbar. The
|
||||
sidebar "+ Shape" menu stays; pen/pencil are additive.
|
||||
|
||||
### Adjacent design-tool features (shipped in the same arc)
|
||||
- **Eyedropper (I)** — native EyeDropper picker, samples any pixel
|
||||
on screen to the selected layer's fill (or stroke with Shift).
|
||||
- **Align & distribute panel** — six align ops + horizontal /
|
||||
vertical distribute on the layer selection (uses the selection
|
||||
bbox for 2+, target bounds for a single layer).
|
||||
- **Free Transform rotation handle** above both the single-layer
|
||||
selection bbox and the multi-layer selection box; Shift snaps to
|
||||
15°. Multi-layer rotates each layer's centre around the bbox
|
||||
centre AND advances each layer's own rotation.
|
||||
- **Pathfinder** — Unite / Subtract / Intersect / Exclude on 2+
|
||||
selected shape layers, backed by `vendor/polygon-clipping.min.js`.
|
||||
Curves are flattened to polygon approximations. Rotated layers
|
||||
are not supported yet.
|
||||
- **Marquee box-select** on empty canvas with the Select (V) tool —
|
||||
marching-ants rectangle, Shift adds to the existing selection.
|
||||
- **Double-click dive-into-edit**: a vector shape under the Select
|
||||
tool flips to Direct Selection on dbl-click and auto-converts
|
||||
primitives to editable pen paths so anchors show immediately.
|
||||
|
||||
---
|
||||
|
||||
## Why this fits the repo
|
||||
|
||||
Reference in new issue
Block a user