Building blocks/Pages & Assets

Quran SVG Elements

Beta

Fully decomposed Mushaf pages where words, marks, and other page elements can be addressed programmatically.

Words · marks
77,432 · 436,398
Split so far
Hafs (KFGQPC)

What it provides

  • Quran SVG pages put through the split pipeline: interactive pages where every word is a group and every mark its own named shape
  • A stable surah:ayah:word key on every word, and the library to drive them in a page
  • Pixel-identical to the print artwork it came from — and heading for letter-level split

Use it when you need

Use it when your application needs interaction at word or mark level, such as recitation highlighting, learning tools, word-level audio, meanings, or linguistic data.

  • Word-level interaction on the web — selection, styling, highlighting
  • Styling down to one diacritic of one word
  • Composing an ayah range onto a new canvas from printed artwork

Not for

  • Any mushaf that has not been split — splitting is hard, and not every mushaf will be. Use Quran SVG.
  • Mobile and native, where SVG stops performing. Use Quran Engine.
  • Tapping whole ayat, where an ayah polygon is simpler. Use Quran SVG.

See it work

Several things this block does, each running on data from the repository itself.

Look inside a page

One file, parsed: its viewBox, its lines, its words, its marks — and every attribute it carries.

Real data
Nothing is parsed for you: this is the file, queried.
Loading the decomposed page…
Loading the data…

Provenance

Every dataset identifies its source, edition, riwayah, version, and verification status. The digest lets you confirm the file you ship is the file that was verified.

View full provenance →
Quran SVG ElementsBeta
Repositoryquran-ws/quran-svg-elements
LicenceCC BY 4.0 (the work) · KFGQPC terms (the artwork)
Publicat launch

Quick start

The shortest path to something running. The repository’s README covers the rest.

$ gh release download v1.0.0 -R quran-ws/quran-svg-elements
# one word, its shapes and their taxonomy names
shapes["2:255:3"] → base glyph + fathah + shaddah'
Read the full documentation →

Works with

Blocks meet through shared references, not through a framework. Each of these understands something this block produces.