PackageTrack
Sign in Get early access

arabic_text_justification

Arabic kashida justification for Flutter using HarfBuzz shaping and FreeType outlines — native FFI on mobile, WebAssembly on web.

0.5.1 kartikasw/arabic_text_justification

What this package is like to depend on

Last release 2 months ago

12 Jun 2026

Release timing varies

gaps range from 8 days to 2 months

Nearly every release is documented

notes for 8 of 8 stable releases

Nothing withdrawn

no release was ever pulled

4 months old

8 releases · first in 2026

8 releases in the last 12 months

see the full history below

Release timeline

8 releases · Apr 2026 to Jun 2026
Release Pre-release

Releases

latest 8
  1. 0.5.1 12 Jun 2026
    Release notes
    • Fix word highlights to render as continuous gap-filled blocks
    Open source →
  2. 0.5.0 12 Jun 2026
    Release notes
    • Add web (WASM) support: the HarfBuzz/FreeType shaper compiles to WebAssembly via Emscripten (scripts/build_web.sh).
    • Add a font parameter (JustificationFont) to JustifiedArabicLine, JustifiedArabicBitmapLine, and JustifiedArabicBlock to select the bundled font; export JustificationFont (madinah, digitalKhatt).
    • Add preserveLineHeight to JustifiedArabicBlock: lock each row to the layout grid so changing fontSize no longer moves the lines (glyphs centered in a fixed slot).
    • Add staticMarker / markerFontSize to JustifiedArabicBlock: render markers (e.g. ayah marks) at a fixed size while the body text resizes; falls back to the block's auto-fit size.
    Open source →
  3. 0.4.0 23 Apr 2026
    Release notes
    • Add JustifiedArabicBlock for multi-line rendering with a shared font size
    • Align line and block sizing so both widgets pick the same fontSize for the same slot
    Open source →
  4. 0.3.0 18 Apr 2026
    Release notes
    • Add colorSpans for per-character color tinting inside words
    • Add height parameter to auto-fit the line to a given height
    Open source →
    Release notes
    • Add colorSpans for per-character color tinting inside words
    • Add height parameter to auto-fit the line to a given height
    Open source →
  5. 0.2.0 17 Apr 2026
    Release notes
    • Add JustifiedArabicLine and JustifiedArabicBitmapLine widgets
    • Add word / marker tap callbacks with verseMarker support
    • Add highlightedWordIndices for tap-selection highlights
    • Add WordProgress for read-along animation (passed + active words, background + glyph tint)
    • Add WordProgressStyle.sweep and .whole for active-word animation
    • Add hiddenWordIndices for progressive-reveal
    • Fix non-justified line width to natural text extents
    • Narrow public API to the widgets; remove low-level renderLine / getOutline export
    Open source →
    Release notes
    • Add JustifiedArabicLine and JustifiedArabicBitmapLine widgets
    • Add word / marker tap callbacks with marker support
    • Add highlightedWordIndices for tap-selection highlights
    • Add WordProgress for read-along animation (passed + active words, background + glyph tint)
    • Add WordProgressStyle.sweep and .whole for active-word animation
    • Add hiddenWordIndices for progressive-reveal
    • Fix non-justified line width to natural text extents
    • Narrow public API to the widgets; remove low-level renderLine / getOutline export
    Open source →
  6. 0.1.0 14 Apr 2026
    Release notes
    • Add JustificationFont enum exposing the bundled digitalKhatt font with a load() helper that copies the asset to the application support directory and returns its path
    • Ship prebuilt native binaries for Android and iOS; drop HarfBuzz/FreeType git submodules so consumers no longer need to build them from source
    • Implement kashida justification via the font's LTAT/RTAT variable-font axes instead of glyph-level tatweel insertion
    • Tighten kashida solver: bracket the full axis range and return the upper bracket so justified lines reach the target width instead of undershooting
    • Use available line width when sizing justified bitmaps and outlines so equal-width lines are no longer clipped
    Open source →
    Release notes
    • Add JustificationFont enum exposing the bundled digitalKhatt font with a load() helper that copies the asset to the application support directory and returns its path
    • Ship prebuilt native binaries for Android and iOS; drop HarfBuzz/FreeType git submodules so consumers no longer need to build them from source
    • Implement kashida justification via the font's LTAT/RTAT variable-font axes instead of glyph-level tatweel insertion
    • Tighten kashida solver: bracket the full axis range and return the upper bracket so justified lines reach the target width instead of undershooting
    • Use available line width when sizing justified bitmaps and outlines so equal-width lines are no longer clipped
    Open source →
  7. 0.0.2 05 Apr 2026
    Release notes
    • Add vector outline rendering via getOutline using FT_Outline_Decompose
    • Add kashida justification toggle (justify parameter) for renderLine and getOutline
    • Add per-glyph word index for word-by-word animation
    • Add ArabicOutlinePainter for Canvas-based rendering
    • Restructure lib into src/ (native_structs, models, painter, api)
    Open source →
    Release notes
    • Add vector outline rendering via getOutline using FT_Outline_Decompose
    • Add kashida justification toggle (justify parameter) for renderLine and getOutline
    • Add per-glyph word index for word-by-word animation
    • Add ArabicOutlinePainter for Canvas-based rendering
    • Restructure lib into src/ (native_structs, models, painter, api)
    Open source →
  8. 0.0.1 05 Apr 2026
    Release notes
    • Initial project setup with Flutter FFI plugin scaffold
    • Integrate HarfBuzz for Arabic text shaping (RTL, script-aware)
    • Integrate FreeType for glyph rasterization
    • Add shapeLine and renderLine APIs via dart:ffi
    • Android and iOS platform support
    Open source →
    Release notes
    • Initial project setup with Flutter FFI plugin scaffold
    • Integrate HarfBuzz for Arabic text shaping (RTL, script-aware)
    • Integrate FreeType for glyph rasterization
    • Add shapeLine and renderLine APIs via dart:ffi
    • Android and iOS platform support
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive