Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
0f55f76
Add variable font support: axes, sources, interpolation, and preview …
claude Apr 6, 2026
286d730
Add MutatorSansVariable.glyphs fixture and variable font tests
claude Apr 6, 2026
5c640bf
Add .designspace file loading support
kostyafarber Apr 6, 2026
dc94be9
Replace homebrew fixtures with real MutatorSans designspace
kostyafarber Apr 6, 2026
0102579
Always use default layer for glyph rendering and edit sessions
kostyafarber Apr 6, 2026
e4f9b05
Fix interpolation: skip empty support layer masters, add debug logging
kostyafarber Apr 6, 2026
2670a32
Replace inverse-distance interpolation with OpenType VariationModel
kostyafarber Apr 6, 2026
8f0c00c
temp: add debug logging to VariationPanel
kostyafarber Apr 6, 2026
6a15a7d
Fix getGlyphMasterSnapshots for editing glyph
kostyafarber Apr 6, 2026
8af4473
Handle duplicate locations and errors in interpolation
kostyafarber Apr 6, 2026
5e25924
Fix duplicate React keys in master buttons
kostyafarber Apr 6, 2026
d9becdd
temp: debug slider callback
kostyafarber Apr 6, 2026
f18e2dd
temp: more debug
kostyafarber Apr 6, 2026
a653536
Remove debug logging from interpolation and VariationPanel
kostyafarber Apr 6, 2026
816996f
debug: log master contour counts and compat result on slider
kostyafarber Apr 6, 2026
d30c8a4
debug: rust-side master snapshot logging
kostyafarber Apr 6, 2026
2a8a110
Filter incompatible masters instead of failing, remove debug logs
kostyafarber Apr 6, 2026
83df34c
Use majority-vote compatibility filtering for interpolation
kostyafarber Apr 6, 2026
727006f
Add directBlend fallback when default master is incompatible
kostyafarber Apr 6, 2026
a0bd24b
Sort contours deterministically and filter empty ones in master snaps…
kostyafarber Apr 6, 2026
3c5b9b1
Add edge case tests for interpolation and master snapshots
kostyafarber Apr 6, 2026
31c1f75
Remove directBlend, use default-as-reference filtering like Fontra
kostyafarber Apr 6, 2026
c3a4fc7
Replace flat-array interpolation with structured itemwise arithmetic
kostyafarber Apr 6, 2026
50f1155
Wire variation sliders to glyph grid preview
kostyafarber Apr 6, 2026
ba25ad0
Use IndexMap for GlyphLayer contours to preserve insertion order
kostyafarber Apr 6, 2026
8611208
Add Rust-native variable font interpolation via VariationModel
kostyafarber Apr 11, 2026
7354023
Switch GlyphPreview to Rust interpolateGlyph for grid perf
kostyafarber Apr 11, 2026
7540a82
wip
kostyafarber Apr 11, 2026
de9ba1c
Fix VariationPanel for consolidated Editor/Font API
kostyafarber Apr 12, 2026
0601cce
Fix text run: use font.glyphName() for codepoint resolution
kostyafarber Apr 12, 2026
57e2bbb
Round xAdvance display in GlyphSection
kostyafarber Apr 12, 2026
962df9d
Font.getPath() interpolates live when variation location is active
kostyafarber Apr 12, 2026
d45eadc
Interpolate xAdvance too: getAdvance() uses interpolated snapshot
kostyafarber Apr 12, 2026
c89afec
Fix text run re-layout on variation change
kostyafarber Apr 12, 2026
cb48f28
Memoize interpolation per location — no Rust calls during pan/zoom
kostyafarber Apr 12, 2026
fc34021
Variation engine: weights from Rust, deltas × apply in TS signals
kostyafarber Apr 12, 2026
3804119
Fix interpolation: use Rust-computed forward-differenced deltas
kostyafarber Apr 12, 2026
b29b6e6
Simplify Variation: use Rust interpolateGlyph directly with per-locat…
kostyafarber Apr 12, 2026
07bff46
Revert Variation engine — Rust interpolation has multi-axis bug
kostyafarber Apr 12, 2026
3167cc8
Merge branch 'main' into kostya/rust-interpolation
kostyafarber Apr 23, 2026
7ae0c9d
replace handrolled variation with fontdrasils
kostyafarber Apr 25, 2026
af2df1a
Wire variation: fontdrasil deltas in Rust, eval in TS
kostyafarber Apr 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
7 changes: 6 additions & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,10 +1,15 @@
repos:
# Standard file hygiene
# Generated files (ts-rs output, NAPI .d.ts, parity fixtures) are excluded
# because their format is owned by the generator. Re-formatting them here
# creates a loop with the cargo-test hook that regenerates them.
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v5.0.0
hooks:
- id: trailing-whitespace
exclude: '^(packages/types/src/generated/|packages/types/__fixtures__/|crates/shift-node/index\.(d\.ts|js))'
- id: end-of-file-fixer
exclude: '^(packages/types/src/generated/|packages/types/__fixtures__/|crates/shift-node/index\.(d\.ts|js))'
- id: check-yaml
- id: check-added-large-files
- id: check-merge-conflict
Expand All @@ -20,7 +25,7 @@ repos:

- id: no-console-log
name: no console.log in production code
entry: "bash -c 'for f in \"$@\"; do case \"$f\" in *.test.*|*/testing/*|*/e2e/*) continue;; esac; if grep -n \"^\\s*console\\.log\\b\" \"$f\" >/dev/null 2>&1; then echo \"$f has console.log:\"; grep -n \"^\\s*console\\.log\\b\" \"$f\"; exit 1; fi; done'"
entry: "bash -c 'for f in \"$@\"; do case \"$f\" in *.test.*|*/testing/*|*/e2e/*|scripts/*) continue;; esac; if grep -n \"^\\s*console\\.log\\b\" \"$f\" >/dev/null 2>&1; then echo \"$f has console.log:\"; grep -n \"^\\s*console\\.log\\b\" \"$f\"; exit 1; fi; done'"
language: system
types_or: [javascript, jsx, ts, tsx]

Expand Down
1 change: 1 addition & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ out
*.min.css
pnpm-lock.yaml
packages/types/src/generated
packages/types/__fixtures__
crates/shift-node/index.js
crates/shift-node/index.d.ts
**/vendor
Loading
Loading