Skip to main content

fontations 0.1.2 copy "fontations: ^0.1.2" to clipboard
fontations: ^0.1.2 copied to clipboard

Dart bindings for the Rust-based fontations font stack (read-fonts, skrifa, write-fonts) — read, shape and write OpenType fonts.

0.1.2 #

  • 📝 Docs: improved the documentation.

0.1.1 #

  • ✨ Example: light/dark themes derived from the Google Fonts logo palette with per-page accents; responsive glyph editor focus mode; short AppBar titles on narrow screens; horizontal shaping preview for wide runs; rebrand app as fontations with launcher icons.
  • 📱 Native: Android Gradle migrated to Kotlin DSL (AGP 9.3.1, Kotlin 2.4.0); macOS XCFramework built for arm64 only (drop x86_64) with CocoaPods integration removed; iOS XCFramework lists simulator slice first.
  • 🤖 CI: GitHub Actions for CI, web preview and release builds; hardened Linux integration tests with Xvfb/software GL; cargo-fuzz and SwiftPM macOS test fixes.
  • 🔧 Misc: Cargokit runs pub get without --no-precompile; example dependency bumps.

0.1.0 #

📖 Read #

  • 📐 Outlines & hinting through the skrifa 0.50 scaler. Hinting never silently changes linear bounds or advance; outline returns the scaler that ran, outlines draws a run through one scaler.
  • 📄 Any table: raw bytes plus a structured GSUB / GPOS view. extendedTables() structures SVG , gasp, meta, BASE and AAT and reports which optional tables are present.
  • 🎨 Color & bitmap: COLR/CPAL glyphs (with a Dart paint helper) and sbix / CBDT / EBDT strikes. Vertical metrics come from vhea / vmtx / VORG.
  • ∑ MATH, VARC composites, cmap format 14 variation selectors, and avar / avar2 coordinate remapping.

🧩 Shape #

  • 🪄 shape() applies GSUB and GPOS instead of only describing them: every substitution and positioning type, original and 2026 v2 subtables, with feature variations resolved at the current variation location.
  • 🐞 Shaping fixes: mark-filtering sets are honoured, ligatures no longer reach across ignored glyphs, cursive attachment writes its correction to yOffset (not yAdvance), and mark lookups respect the lookup flags.

✍️ Write #

  • 🏗 buildFont compiles contours into a .ttf: variable fonts (fvar / gvar / STAT), ligatures, ss01/cv01 alternates, composite glyphs, COLR v0, avar, MVAR, vhea/vmtx, TrueType hinting, verbatim tables and cmap format 14.
  • 🔧 modifyFont patches metadata, kerning, ligatures and substitutions while leaving outlines and cmap untouched.
  • ✂️ subsetFont keeps only chosen code points or glyphs; withVariations() returns a handle pinned to one variation location.
  • 🧩 Typed patch APIs for existing fonts: addBitmapStrikes, addSubstitutions (with 2026 v2 output), addColorPaints, addFeatureVariations, addMathTable, addVarcGlyphs, addSvgDocuments, addVerticalOrigins and addRawTables.

🌐 Web #

  • ⚡ The crate compiles to WebAssembly and the API is unchanged. The threaded module needs cross-origin isolation (COOP/COEP); example/web/coi_serviceworker.js or scripts/coop_server.py provides it, and the app must be built with --no-web-resources-cdn.

📦 Packaging #

  • 🍎 Added SwiftPM support for iOS and macOS: apps link a committed prebuilt fontations.xcframework instead of compiling Rust during the Xcode build. CocoaPods still compiles from source when SwiftPM is off.

🤖 CI & Dev #

  • 🛠 CI runs six jobs — rust, dart, web, fuzz, artifacts and macos — and fails when the committed XCFramework no longer matches rust/.
  • ⬆️ Upgraded to the fontations 2026-11-10 release (read-fonts 0.47, skrifa 0.50, write-fonts 0.56).
1
likes
160
points
35
downloads
screenshot

Documentation

API reference

Publisher

verified publishernoob-coder.com

Weekly Downloads

Dart bindings for the Rust-based fontations font stack (read-fonts, skrifa, write-fonts) — read, shape and write OpenType fonts.

Homepage
Repository (GitHub)
View/report issues

Topics

#font #opentype #typography #variable-fonts #font-subsetting

License

MIT (license)

Dependencies

flutter, flutter_rust_bridge, flutter_web_plugins

More

Packages that depend on fontations

Packages that implement fontations