{"id":28220452,"url":"https://github.com/nuqayah/kitab-font","last_synced_at":"2025-08-09T19:49:54.479Z","repository":{"id":41362683,"uuid":"231406364","full_name":"nuqayah/kitab-font","owner":"nuqayah","description":"A classical Arabic Naskh font","archived":false,"fork":false,"pushed_at":"2025-07-29T08:24:27.000Z","size":21947,"stargazers_count":84,"open_issues_count":9,"forks_count":6,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-07-30T12:35:03.611Z","etag":null,"topics":["arabic-font","naskh"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nuqayah.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.txt","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-01-02T15:14:38.000Z","updated_at":"2025-07-29T08:24:31.000Z","dependencies_parsed_at":"2025-03-20T03:03:29.091Z","dependency_job_id":null,"html_url":"https://github.com/nuqayah/kitab-font","commit_stats":null,"previous_names":["mustafa0x/kitab-font","nuqayah/kitab-font"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nuqayah/kitab-font","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nuqayah%2Fkitab-font","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nuqayah%2Fkitab-font/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nuqayah%2Fkitab-font/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nuqayah%2Fkitab-font/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nuqayah","download_url":"https://codeload.github.com/nuqayah/kitab-font/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nuqayah%2Fkitab-font/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269631042,"owners_count":24450138,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-09T02:00:10.424Z","response_time":111,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arabic-font","naskh"],"created_at":"2025-05-18T04:15:32.050Z","updated_at":"2025-08-09T19:49:54.416Z","avatar_url":"https://github.com/nuqayah.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Kitab\n\nKitab, based on [Scheherazade](https://software.sil.org/scheherazade/), is an Arabic font\nwith a design based on traditional typefaces such as Monotype Naskh,\nextended to cover the full Unicode Arabic repertoire.\n\nIt is also designed to support rendering [Quranic text](https://github.com/quranacademy/quran-text) in a Unicode-compliant manner.\n\n## Changes\n\n- Increased the base font size.\n- Decreased the base line height.\n- Added the Basmalah (U+FDFD), ﷺ, and ﷻ characters from Amiri.\n- Replaced the angle quotes and ayah quotes with Amiri's (i.e., «» and ﴿﴾).\n- Replaced U+06E0 (small high upright rectangular zero) with Amiri's.\n- Added laam hamzah alif ligature (i.e., لا but with a hamzah in the middle).\n  This is needed for Quranic orthography (e.g. الـٔاخرة).\n  Currently there is no pure Unicode solution for this\n- The width of ۩ (U+06E9) was increased.\n- A slight curve was added to U+0670 (Small alif).\n- Numerous collision fixes.\n\nThe follow glyphs were enlarged:\n- U+06E4 (Small high maddah)\n- U+06DB (Small high 3 dots)\n- U+06D8 (Small high meem initial form)\n- U+06E5 (Small waaw)\n\nThe following glyphs were made to be lower on \"the line\" when in a word.\n- U+0654 (Hamzah above) (أَنۢبِـُٔونِی)\n- U+06E7 (Small high yaa) (ٱلنَّبِیِّـۧنَ)\n- U+06E4 (madd) when on top of U+06E6 (small yaa) (یَسۡتَحۡیِۦۤ)\n\nThe following honorifics were added (note: these honorifics are set to be included in Unicode 14)\n- U+FDFE (سبحانه وتعالى)\n- U+FDFF (عز وجل)\n- U+FD40 (رحمه الله)\n- U+FD41 (رضي الله عنه)\n- U+FD42 (رضي الله عنها)\n- U+FD43 (رضي الله عنهم)\n- U+FD44 (رضي الله عنهما)\n- U+FD45 (رضي الله عنهن)\n- U+FD47 (عليه السلام)\n- U+FD4D (عليها السلام)\n- U+FD48 (عليهم السلام)\n- U+FD49 (عليهما السلام)\n\n## Subsetting and compressing\n\n- `./subset.mjs` (requires [pyftsubset](https://github.com/fonttools/fonttools) and [zx](https://github.com/google/zx)) -- it will output `build/{kitab-base,kitab-base-bold,kitab-phrases}.{woff,woff2}`\n\n## CSS\n\n```css\n@font-face {\n  font-family: Kitab;\n  src: url(/assets/kitab-base.woff2);\n  unicode-range: U+200?, U+60C, U+618-61B, U+61F, U+621-63A, U+640-655, U+65C, U+660-66C, U+670-671, U+6CC, U+6D4, U+6D6-6DD, U+6DF-6E8, U+6EA-6ED, U+8F0-8F3, U+FD3E-FD3F, U+FDF2;\n}\n@font-face {\n  font-family: Kitab;\n  src: url(/assets/kitab-base-bold.woff2);\n  font-weight: 700;\n  unicode-range: U+200?, U+60C, U+618-61B, U+61F, U+621-63A, U+640-655, U+65C, U+660-66C, U+670-671, U+6CC, U+6D4, U+6D6-6DD, U+6DF-6E8, U+6EA-6ED, U+8F0-8F3, U+FD3E-FD3F, U+FDF2;\n}\n@font-face {\n  font-family: Kitab;\n  src: url(/assets/kitab-phrases.woff2);\n  unicode-range: U+6DE, U+6E9, U+E100-E103, U+FD3E-FD45, U+FD47-FD4F, U+FDFA-FDFB, U+FDFD-FDFF;\n}\n@font-face {\n  font-family: Kitab;\n  src: url(/assets/kitab-phrases.woff2);\n  font-weight: 700;\n  unicode-range: U+6DE, U+6E9, U+E100-E103, U+FD3E-FD45, U+FD47-FD4F, U+FDFA-FDFB, U+FDFD-FDFF;\n}\n```\n\n## unicode-range\n\nThe following code can create a valid CSS unicode-range from a set of characters.\n\n```py\nimport itertools\n\ndef ranges(i):\n    for a, b in itertools.groupby(enumerate(i), lambda pair: pair[1] - pair[0]):\n        b = list(b)\n        yield b[0][1], b[-1][1]\n\ndef unicode_range(chars):\n    ints = sorted([ord(c) for c in set(chars)])\n    groups = list(ranges(ints))\n    groups1 = [(hex(a), hex(b)) for a, b in groups]\n    groups2 = [(f'{a}-{b}' if a != b else a) for a, b in groups1]\n    return ', '.join(groups2).replace('-0x', '-').replace('0x', 'U+').upper()\n```\n\n## License\n\nThis font software is free to use, modify, and redistribute\naccording to the terms of the [SIL Open Font License](http://scripts.sil.org/ofl).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnuqayah%2Fkitab-font","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnuqayah%2Fkitab-font","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnuqayah%2Fkitab-font/lists"}