@hawiyah/styles 0.0.0-stage → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/LICENSE +73 -0
  2. package/NOTICE +34 -0
  3. package/README.md +246 -2
  4. package/dist/accordion-motion.css +18 -0
  5. package/dist/assets/external-link.svg +1 -0
  6. package/dist/assets/favicon.svg +4 -0
  7. package/dist/assets/fonts/riyal-LICENSE.txt +93 -0
  8. package/dist/assets/fonts/riyal-provenance.json +47 -0
  9. package/dist/assets/fonts/riyal.woff2 +0 -0
  10. package/dist/assets/hawiyah-loader-256.gif +0 -0
  11. package/dist/assets/hawiyah-loader-white-256.gif +0 -0
  12. package/dist/assets/hawiyah-loader-white.gif +0 -0
  13. package/dist/assets/hawiyah-loader.gif +0 -0
  14. package/dist/assets/hawiyah-lockup-ar-mono.svg +4 -0
  15. package/dist/assets/hawiyah-lockup-ar-reverse.svg +4 -0
  16. package/dist/assets/hawiyah-lockup-ar-white.svg +4 -0
  17. package/dist/assets/hawiyah-lockup-ar.svg +4 -0
  18. package/dist/assets/hawiyah-lockup-bilingual-mono.svg +4 -0
  19. package/dist/assets/hawiyah-lockup-bilingual-reverse.svg +4 -0
  20. package/dist/assets/hawiyah-lockup-bilingual-white.svg +4 -0
  21. package/dist/assets/hawiyah-lockup-bilingual.svg +4 -0
  22. package/dist/assets/hawiyah-lockup-en-mono.svg +4 -0
  23. package/dist/assets/hawiyah-lockup-en-reverse.svg +4 -0
  24. package/dist/assets/hawiyah-lockup-en-white.svg +4 -0
  25. package/dist/assets/hawiyah-lockup-en.svg +4 -0
  26. package/dist/assets/hawiyah-pattern.svg +4 -0
  27. package/dist/assets/hawiyah-symbol-mono.svg +4 -0
  28. package/dist/assets/hawiyah-symbol-reverse.svg +4 -0
  29. package/dist/assets/hawiyah-symbol-white.svg +4 -0
  30. package/dist/assets/hawiyah-symbol.svg +4 -0
  31. package/dist/assets/hawiyah-wordmark-loader-256.gif +0 -0
  32. package/dist/assets/hawiyah-wordmark-loader-white-256.gif +0 -0
  33. package/dist/assets/hawiyah-wordmark-loader-white.gif +0 -0
  34. package/dist/assets/hawiyah-wordmark-loader.gif +0 -0
  35. package/dist/assets/hawiyah-wordmark-mono.svg +4 -0
  36. package/dist/assets/hawiyah-wordmark-reverse.svg +4 -0
  37. package/dist/assets/hawiyah-wordmark-white.svg +4 -0
  38. package/dist/assets/hawiyah-wordmark.svg +4 -0
  39. package/dist/assets/icons/LICENSE +21 -0
  40. package/dist/assets/icons/add-01.svg +4 -0
  41. package/dist/assets/icons/alert-02.svg +5 -0
  42. package/dist/assets/icons/arrow-data-transfer-vertical.svg +4 -0
  43. package/dist/assets/icons/arrow-down-01.svg +3 -0
  44. package/dist/assets/icons/arrow-down-02.svg +4 -0
  45. package/dist/assets/icons/arrow-left-01.svg +3 -0
  46. package/dist/assets/icons/arrow-left-02.svg +4 -0
  47. package/dist/assets/icons/arrow-right-01.svg +3 -0
  48. package/dist/assets/icons/arrow-right-02.svg +4 -0
  49. package/dist/assets/icons/arrow-up-01.svg +3 -0
  50. package/dist/assets/icons/arrow-up-02.svg +4 -0
  51. package/dist/assets/icons/arrow-up-right-01.svg +3 -0
  52. package/dist/assets/icons/calendar-03.svg +6 -0
  53. package/dist/assets/icons/cancel-01.svg +3 -0
  54. package/dist/assets/icons/cancel-circle.svg +4 -0
  55. package/dist/assets/icons/checkmark-circle-02.svg +4 -0
  56. package/dist/assets/icons/exclamation-mark.svg +4 -0
  57. package/dist/assets/icons/filter-horizontal.svg +8 -0
  58. package/dist/assets/icons/home-01.svg +3 -0
  59. package/dist/assets/icons/information-circle.svg +5 -0
  60. package/dist/assets/icons/link-04.svg +4 -0
  61. package/dist/assets/icons/link-square-02.svg +4 -0
  62. package/dist/assets/icons/lock-password.svg +7 -0
  63. package/dist/assets/icons/menu-01.svg +5 -0
  64. package/dist/assets/icons/minus-sign-circle.svg +4 -0
  65. package/dist/assets/icons/minus-sign.svg +3 -0
  66. package/dist/assets/icons/provenance.json +403 -0
  67. package/dist/assets/icons/search-01.svg +4 -0
  68. package/dist/assets/icons/sorting-05.svg +8 -0
  69. package/dist/assets/icons/star.svg +3 -0
  70. package/dist/assets/icons/thumbs-down.svg +4 -0
  71. package/dist/assets/icons/thumbs-up.svg +4 -0
  72. package/dist/assets/icons/tick-02.svg +3 -0
  73. package/dist/assets/icons/view-off-slash.svg +5 -0
  74. package/dist/assets/icons/view.svg +4 -0
  75. package/dist/assets/notifications/danger-outline.svg +3 -0
  76. package/dist/assets/notifications/danger.svg +4 -0
  77. package/dist/assets/notifications/info-outline.svg +3 -0
  78. package/dist/assets/notifications/info.svg +4 -0
  79. package/dist/assets/notifications/neutral-outline.svg +3 -0
  80. package/dist/assets/notifications/neutral.svg +4 -0
  81. package/dist/assets/notifications/success-outline.svg +3 -0
  82. package/dist/assets/notifications/success.svg +4 -0
  83. package/dist/assets/notifications/warning-outline.svg +3 -0
  84. package/dist/assets/notifications/warning.svg +4 -0
  85. package/dist/assets/pagination-arrow.svg +1 -0
  86. package/dist/assets/select-down.svg +4 -0
  87. package/dist/assets/select-up.svg +4 -0
  88. package/dist/brand-loader.css +12 -0
  89. package/dist/components.css +335 -0
  90. package/dist/content-navigation.css +44 -0
  91. package/dist/date-picker.css +50 -0
  92. package/dist/dga.css +316 -0
  93. package/dist/direction.css +14 -0
  94. package/dist/extended.css +310 -0
  95. package/dist/feedback.css +48 -0
  96. package/dist/file-upload-list.css +64 -0
  97. package/dist/icons.css +67 -0
  98. package/dist/layout.css +129 -0
  99. package/dist/link-composition.css +10 -0
  100. package/dist/mobile-navigation.css +43 -0
  101. package/dist/mobile-top-bar.css +15 -0
  102. package/dist/navigation-drawer.css +104 -0
  103. package/dist/nic-accordion.css +97 -0
  104. package/dist/nic-avatars.css +33 -0
  105. package/dist/nic-badges.css +56 -0
  106. package/dist/nic-buttons.css +80 -0
  107. package/dist/nic-cards.css +77 -0
  108. package/dist/nic-carousel.css +77 -0
  109. package/dist/nic-choices.css +64 -0
  110. package/dist/nic-footer.css +73 -0
  111. package/dist/nic-foundations.css +115 -0
  112. package/dist/nic-icons.css +72 -0
  113. package/dist/nic-input-groups.css +35 -0
  114. package/dist/nic-links.css +61 -0
  115. package/dist/nic-lists.css +68 -0
  116. package/dist/nic-notification-dialog.css +115 -0
  117. package/dist/nic-notifications.css +126 -0
  118. package/dist/nic-pagination.css +73 -0
  119. package/dist/nic-rating.css +53 -0
  120. package/dist/nic-search.css +70 -0
  121. package/dist/nic-segmented.css +117 -0
  122. package/dist/nic-select.css +51 -0
  123. package/dist/nic-tables.css +68 -0
  124. package/dist/nic-tabs.css +86 -0
  125. package/dist/password-field.css +16 -0
  126. package/dist/portal-branches.css +52 -0
  127. package/dist/portal.css +24 -0
  128. package/dist/reset.css +12 -0
  129. package/dist/riyal.css +32 -0
  130. package/dist/search-field.css +11 -0
  131. package/dist/site-verification.css +36 -0
  132. package/dist/stepper.css +46 -0
  133. package/dist/styles.css +49 -0
  134. package/dist/tooltip-placement.css +65 -0
  135. package/package.json +51 -3
package/LICENSE ADDED
@@ -0,0 +1,73 @@
1
+ Apache License
2
+ Version 2.0, January 2004
3
+ http://www.apache.org/licenses/
4
+
5
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
+
7
+ 1. Definitions.
8
+
9
+ "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
10
+
11
+ "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
12
+
13
+ "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
14
+
15
+ "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
16
+
17
+ "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
18
+
19
+ "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
20
+
21
+ "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
22
+
23
+ "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
24
+
25
+ "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
26
+
27
+ "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
28
+
29
+ 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
30
+
31
+ 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
32
+
33
+ 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
34
+
35
+ (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and
36
+
37
+ (b) You must cause any modified files to carry prominent notices stating that You changed the files; and
38
+
39
+ (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
40
+
41
+ (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.
42
+
43
+ You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
44
+
45
+ 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
46
+
47
+ 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
48
+
49
+ 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
50
+
51
+ 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
52
+
53
+ 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
54
+
55
+ END OF TERMS AND CONDITIONS
56
+
57
+ APPENDIX: How to apply the Apache License to your work.
58
+
59
+ To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives.
60
+
61
+ Copyright [yyyy] [name of copyright owner]
62
+
63
+ Licensed under the Apache License, Version 2.0 (the "License");
64
+ you may not use this file except in compliance with the License.
65
+ You may obtain a copy of the License at
66
+
67
+ http://www.apache.org/licenses/LICENSE-2.0
68
+
69
+ Unless required by applicable law or agreed to in writing, software
70
+ distributed under the License is distributed on an "AS IS" BASIS,
71
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
72
+ See the License for the specific language governing permissions and
73
+ limitations under the License.
package/NOTICE ADDED
@@ -0,0 +1,34 @@
1
+ Hawiyah — هوية
2
+
3
+ تم التطوير بواسطة فريق التطوير في قطاع المنصات الوطنية - مركز المعلومات الوطني
4
+ Developed by the Development Team in the National Platforms Sector — National Information Center.
5
+
6
+ Copyright 2026 Mohamed Embarak
7
+
8
+ Licensed under the Apache License, Version 2.0. See LICENSE.
9
+
10
+ This distribution includes an Umm al-Qura calendar table derived from
11
+ HijriDate 2.3.0, Copyright (c) 2018 Mohammed Alshehri, licensed under MIT.
12
+ The full notice and provenance are in packages/core/third-party in the
13
+ source repository and third-party in the core package.
14
+
15
+ Brand source fonts are licensed separately under the SIL Open Font License
16
+ 1.1. The unmodified notices accompany their files in brand/third-party.
17
+ Font software and third-party dependencies retain their own licenses.
18
+ The Hawiyah name and identity do not imply endorsement by Saudi Arabia's
19
+ Digital Government Authority. Apache 2.0 does not grant trademark rights.
20
+
21
+ The curated Stroke Rounded SVG icons are Copyright (c) 2025 Hugeicons,
22
+ licensed under MIT. Their complete license and pinned source provenance
23
+ are included in dist/assets/icons/LICENSE and dist/assets/icons/provenance.json
24
+ (src/assets/icons in the source repository). The original icon subset is
25
+ mapped to supplied DGA source names; password visibility and calendar-field artwork are an
26
+ additional upstream subset without a DGA node comparison. None are direct
27
+ DGA Figma exports.
28
+
29
+ HawiyahRiyal is a U+20C1-only derivative of Noto Naskh Arabic 2.021,
30
+ Copyright 2022 The Noto Project Authors (https://github.com/notofonts/arabic),
31
+ licensed under the SIL Open Font License 1.1. The full license and
32
+ reproducible provenance are included in dist/assets/fonts/riyal-LICENSE.txt
33
+ and dist/assets/fonts/riyal-provenance.json (src/assets/fonts in the source
34
+ repository). The symbol glyph is unchanged; its font family is renamed.
package/README.md CHANGED
@@ -1,3 +1,247 @@
1
- # Temporary Holding Version
1
+ # @hawiyah/styles
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ Framework-neutral presentation for Hawiyah. The same styles serve semantic vanilla
4
+ HTML and the React, Angular, and Vue adapters. Every component is opt-in; no global
5
+ application reset or external font fetch occurs in the component stylesheet.
6
+
7
+ ```ts
8
+ import '@hawiyah/styles/styles.css';
9
+ // Optional, for a new application whose base styling you own:
10
+ import '@hawiyah/styles/reset.css';
11
+ ```
12
+
13
+ The stylesheet imports `@hawiyah/tokens/tokens.css`; a bundler must resolve the bare
14
+ package import. For direct browser use, bundle once or rewrite that import to your
15
+ self-hosted token stylesheet. CSS custom properties provide theming without a
16
+ framework, utility-class compiler, or CSS-in-JS runtime.
17
+
18
+ ```html
19
+ <main lang="ar" dir="rtl" data-hw-theme="dga" data-hw-mode="light">
20
+ <div class="hw-field">
21
+ <label class="hw-label" for="request-name">اسم الطلب</label>
22
+ <input class="hw-input" id="request-name" aria-describedby="name-hint">
23
+ <p class="hw-hint" id="name-hint">اسم واضح يساعدك على متابعة الطلب.</p>
24
+ </div>
25
+ <button class="hw-button" type="submit">متابعة الطلب</button>
26
+ </main>
27
+ ```
28
+
29
+ ## Stable class and state API
30
+
31
+ | Family | Classes and attributes |
32
+ | --- | --- |
33
+ | Actions | `hw-button`; `data-variant="primary|default|secondary|outline|outline-white|light|danger|ghost|soft|link"`; `data-size="sm|md|lg"`; `data-icon-only` |
34
+ | Icons | `hw-icon-button`; `data-shape="square|circle"`; `hw-icon-background` with `data-size="xs|md|xl"` |
35
+ | Forms | `hw-field`, `hw-label`, `hw-input`, `hw-textarea`, `hw-select`, `hw-hint`, `hw-error`; `aria-invalid="true"` |
36
+ | Search | `hw-search-field`, `hw-search-control`, `hw-search-clear`, `hw-search-suggestions`, `hw-search-option`, `hw-search-submit`; composition: `hw-search-form`, `hw-search-terms`, `hw-search-term`, `hw-search-advanced`; active option uses `aria-selected="true"` |
37
+ | Choices | `hw-choice` on a label; `hw-checkbox`, `hw-radio`, `hw-switch` on native inputs |
38
+ | Tabs | `hw-tabs`, `hw-tab-list`, `hw-tab`, `hw-tab-panel`; `aria-selected`; optional vertical `aria-orientation` |
39
+ | Tab overflow | `hw-tab-bar`, `hw-tabs-overflow` (`details`), `hw-tab-overflow-trigger` (`summary`), `hw-tab-overflow-menu`, `hw-tab-overflow-item`; controller-owned `data-hw-overflow-hidden`; [source and keyboard notes](../../docs/nic-tabs.md) |
40
+ | Content navigation | `hw-content-nav`, `hw-content-nav-heading`, `hw-content-nav-list`, `hw-content-nav-sublist`, `hw-content-nav-link`, `hw-content-nav-marker`, `hw-content-nav-label`; `aria-current="location"`; optional `data-sticky="true"`, `--hw-content-nav-top`, `--hw-content-nav-bottom-reserve`, `--hw-content-nav-indent` |
41
+ | Dialog | `hw-dialog` on native `dialog`; `hw-dialog-header`, `hw-dialog-body`, `hw-dialog-footer` |
42
+ | Combobox | `hw-combobox`, `hw-input`, `hw-listbox`, `hw-option`; `data-active` for keyboard focus, `aria-selected` for committed selection |
43
+ | Surfaces | `hw-card`, `hw-card-header`, `hw-card-body`, `hw-card-footer` |
44
+ | Feedback | `hw-badge` and `hw-alert`; `data-tone="neutral|success|warning|danger|info"` (neutral is badge default); badges support `data-variant="soft|outline|dot"` and `hw-badges` wrapping groups; [source notes](../../docs/nic-badges.md) |
45
+ | Data | `hw-table-wrap`, `hw-table`, `hw-pagination`, `hw-breadcrumb`; native table semantics, `aria-current="page"`; `data-numeric` on numeric cells |
46
+ | Pagination | `hw-pagination-item`, `hw-pagination-arrow`, `hw-pagination-gap` (`details`), `hw-pagination-gap-trigger` (`summary`), `hw-pagination-menu`, `hw-pagination-jump`; [source and keyboard notes](../../docs/nic-pagination.md) |
47
+ | Rating | `hw-rating` for native integer radios; `hw-rating-display`, `hw-rating-stars`, `hw-rating-star`, `hw-rating-fill`, `hw-rating-score` for non-interactive fractional scores; [source and accessibility notes](../../docs/nic-rating.md) |
48
+ | Disclosure | `hw-accordion`; `hw-accordion-item` on `details`; `hw-accordion-trigger` on `summary`; optional `hw-accordion-content` |
49
+ | Status | `hw-progress`, `hw-skeleton`, `hw-spinner`, `hw-avatar`, `hw-divider` |
50
+ | Avatar options | `hw-avatar`; `data-size="40|64|80|120|sm|md|lg|xl"`, `data-variant="circle|square"`; [geometry and theme notes](../../docs/nic-avatars.md) |
51
+ | Workflow | `hw-toolbar`, `hw-chip`, `hw-empty`, `hw-stepper`, `hw-step`, `hw-timeline`, `hw-upload`, `hw-tooltip` |
52
+ | Layout | `hw-stack`, `hw-cluster`, `hw-container`, `hw-sr-only` |
53
+
54
+ Defaults are primary/medium buttons, comfortable density, light mode, and the
55
+ DGA reference theme. Select `data-hw-theme="hawiyah"` for the original palette. Use `data-hw-density="compact"` to reduce control and
56
+ table spacing. Compact and small controls may require additional hit-area spacing
57
+ for touch-heavy applications. Step states are `active`, `complete` (or `completed`),
58
+ and `error`; current steps should also use `aria-current="step"`. Steps include a
59
+ CSS counter circle, so their content should contain the label without another
60
+ visible number. Timelines style direct list items. Upload supports
61
+ `data-state="dragging|error"`; drop behavior belongs to application code.
62
+
63
+ `hw-stack` and `hw-cluster` accept the scoped `--hw-gap` property. This is a
64
+ layout customization hook, not a global design token. Components otherwise use
65
+ the semantic `--hw-*` variables documented by `@hawiyah/tokens`.
66
+
67
+ ## Semantics and behavior
68
+
69
+ Use genuine disabled controls where possible. An `aria-disabled` attribute changes
70
+ presentation and communicates state but does not suppress click behavior by itself.
71
+ Keep inactive panels and closed tooltips/listboxes `hidden`; component display
72
+ rules preserve that attribute. The stylesheet does not assign roles, manage focus,
73
+ trap dialogs, announce errors, or implement keyboard navigation. Use native HTML
74
+ and Hawiyah adapters for those responsibilities.
75
+
76
+ Native `select`, `checkbox`, and `radio` preserve platform behavior. Labels and
77
+ messages must be associated in markup. Native progress needs a label; loading
78
+ spinners and skeletons need suitable surrounding loading announcements. A tooltip
79
+ must supplement an accessible control name. Its wrapper uses `data-hw="tooltip"`
80
+ and must have room for the positioned tooltip; adapters do not promise collision
81
+ avoidance. Make horizontally overflowing table wrappers keyboard focusable with an
82
+ accessible label when scrolling is needed.
83
+
84
+ All layout uses logical inline/block properties. Focus rings remain visible in
85
+ both directions. Reduced-motion preferences remove animation and transitions;
86
+ forced-colors mode preserves visible controls and selection boundaries. The
87
+ package styles target WCAG-oriented use, but CSS alone cannot certify an application.
88
+
89
+ New visual recipes should use existing semantic tokens, retain native semantics,
90
+ respect hidden/disabled/invalid states, and be checked in Arabic/English,
91
+ RTL/LTR, light/dark, both densities, keyboard and forced-colors modes. The reset
92
+ stays a separate opt-in entry point.
93
+
94
+ ## Self-contained branding assets
95
+
96
+ The package also exports the Arabic-only outlined logo and transparent loaders:
97
+
98
+ ```ts
99
+ import wordmark from '@hawiyah/styles/assets/hawiyah-wordmark.svg';
100
+ import loader from '@hawiyah/styles/assets/hawiyah-loader.gif';
101
+ import whiteLoader from '@hawiyah/styles/assets/hawiyah-loader-white.gif';
102
+ ```
103
+
104
+ Asset imports depend on the application's bundler; vanilla projects can copy the
105
+ files into their public directory. Use the static SVG in a `<picture>` source
106
+ with `media="(prefers-reduced-motion: reduce)"`, give the decorative image empty
107
+ alt text, and provide separate localized `role="status"` loading text. 256px GIF
108
+ variants use `hawiyah-loader-256.gif` and `hawiyah-loader-white-256.gif`. Font outlines
109
+ are embedded in the SVG; Aref Ruqaa is not a runtime dependency or a font request.
110
+
111
+ ## Curated interface icons
112
+
113
+ The shared stylesheet includes 17 self-hosted Hugeicons Stroke Rounded icons.
114
+ They work in vanilla, React, Vue and Angular without a renderer dependency; each
115
+ framework owns the ordinary `span` it renders. In React use `className` in place
116
+ of `class` in this example:
117
+
118
+ ```html
119
+ <button type="button" class="hw-button hw-icon-button" data-variant="ghost" aria-label="بحث">
120
+ <span class="hw-icon" data-icon="search-01" aria-hidden="true"></span>
121
+ </button>
122
+ <a href="/next">
123
+ التالي
124
+ <span class="hw-icon" data-icon="arrow-right-01"
125
+ data-directional="true" aria-hidden="true"></span>
126
+ </a>
127
+ ```
128
+
129
+ Available `data-icon` names: `search-01`, `menu-01`, `cancel-01`, `arrow-left-01`, `arrow-right-01`, `arrow-down-01`, `filter-horizontal`, `sorting-05`, `home-01`, `checkmark-circle-02`, `view`, `view-off-slash`, `calendar-03`, `thumbs-up`, `thumbs-down`, `link-04`, `lock-password`. The CSS alpha mask uses `currentColor` and defaults to
130
+ `1.5rem` (24px at the usual root size). Set the scoped `--hw-icon-size` variable
131
+ to change rendered size; icon size does not establish an accessible touch target.
132
+ Provide a visible label or an accessible name on the containing control; these
133
+ decorative spans must remain `aria-hidden="true"`.
134
+
135
+ Icon buttons center 20px artwork (16px for small) in DGA themes, including SVGs
136
+ inside framework wrappers. Target dimensions follow the selected density;
137
+ `--hw-icon-size` still overrides the artwork. Use `data-shape="circle"` for a round
138
+ action. Background icons are noninteractive decoration: `.hw-icon-background`
139
+ uses 48px circles; `data-size="xs"` uses 30px and `xl` remains 48px as in the source.
140
+ Set `data-size="sm|md|lg|xl|2xl"` on `.hw-icon` for 14/20/24/30/48px artwork.
141
+ Keep the wrapper hidden for decoration or give it meaningful image semantics.
142
+
143
+ Only left/right arrows with `data-directional="true"` mirror in RTL. Use this for
144
+ semantic forward/back navigation, not physical direction. Other glyphs keep their
145
+ orientation. Do not apply mirroring to logos, flags, text alignment, or media
146
+ controls by default. Forced-colors mode retains a system-colored mask.
147
+
148
+ SVG files are unchanged from a pinned commit of the official MIT-licensed
149
+ [Hugeicons repository](https://github.com/hugeicons/hugeicons). The original ten names map to
150
+ the supplied DGA Figma Stroke components; these are **not direct Figma exports**.
151
+ Additional icons do not imply new Figma geometry comparisons; per-icon evidence
152
+ is recorded in provenance. Mapping does not assert pixel parity. The package includes the full MIT
153
+ notice and per-icon hashes/node IDs in `assets/icons/LICENSE` and
154
+ `assets/icons/provenance.json`. The guide also ships these notices. Solid, custom,
155
+ and brand assets from the supplied Figma catalog are not part of this subset.
156
+
157
+ Direct asset imports are available through the existing asset export:
158
+
159
+ ```ts
160
+ import searchIcon from '@hawiyah/styles/assets/icons/search-01.svg';
161
+ ```
162
+
163
+ ## DGA reference compositions
164
+
165
+ The stylesheet includes the mapped DGA profile, input state transitions and portal
166
+ compositions. `hw-service-container` provides the 1280px content region;
167
+ `hw-service-layout` composes `hw-service-main` and `hw-service-aside` with a 32px gap.
168
+ `hw-form-layout` supports a desktop progress column and a single-column mobile
169
+ flow. `hw-stepper-responsive` groups the desktop list with a mobile summary;
170
+ `hw-stepper-ring` uses `--hw-step-progress` for its decorative progress ring.
171
+ Provide an accessible current/total label alongside that ring.
172
+
173
+ Keep source order meaningful: progress summary, form, then contextual guidance.
174
+ Portal headers/footers retain their public `hw-portal-*` classes. The adapters
175
+ provide responsive disclosure behavior; vanilla uses `createPortalHeader` or
176
+ `enhance`. Template content, validation and integrations remain application responsibilities.
177
+ The Figma-derived examples are available in the guide's template gallery.
178
+
179
+ ### Opt-in mobile control sizing
180
+
181
+ Set `data-hw-density="mobile"` on an application or subtree, or pass
182
+ `{ density: 'mobile' }` to `createThemeVariables`. At a 16 px root size,
183
+ small/default/large buttons are 32/40/44 px. Single-line `.hw-input` and
184
+ `.hw-select` controls have a 44 px minimum across size variants, using the
185
+ additive `--hw-control-field-min-height` token. Existing control-height overrides
186
+ still apply when larger. Textareas remain multiline and grow independently.
187
+ Comfortable/compact scopes reset the field minimum, including inside mobile.
188
+ This is an explicit profile shared by all four adapters; viewport width does not
189
+ automatically select it. Hawiyah/custom palettes, corners and dark mode remain
190
+ application choices; this does not establish source mobile dark-mode parity.
191
+
192
+ Source: supplied Mobile Components input set `3149:54894`, body `11167:15771`
193
+ (320 × 44, radius 4); button nodes `407:510377`, `407:510548`, `407:510617`
194
+ (large/medium/small: 44/40/32). These are decoded dimensions. A single source
195
+ input size informs a shared minimum, not a claim that every Hawiyah variant is an
196
+ exact source component. The source small button is not a blanket 44 px touch
197
+ target; applications must still evaluate target spacing and interaction needs.
198
+
199
+ ### Component motion
200
+
201
+ DGA/custom switches use `--hw-duration-switch: 200ms` and ease-in-out for both
202
+ track (`--hw-ease-switch-track`) and thumb (`--hw-ease-switch`). Spinners use
203
+ `--hw-duration-spinner: 1000ms` for a linear full rotation. Hawiyah keeps its original
204
+ 180 ms switch and 700 ms spinner defaults. Override these roles independently
205
+ of generic durations. Reduced-motion preferences stop button/switch/field
206
+ transitions and loading animations while preserving state and focus behavior.
207
+ The reference JSON records source nodes and the four-segment spinner mapping;
208
+ these values do not establish universal DGA motion or visual parity.
209
+
210
+ The NIC accordion profile uses 150 ms hover/focus color transitions and the
211
+ separate `--hw-duration-accordion-indicator: 200ms` chevron role. Disclosure
212
+ height retains `--hw-duration-accordion: 300ms`. Original Hawiyah remains immediate.
213
+ `--hw-color-accordion-border` and `--hw-color-accordion-focus` support scoped
214
+ color overrides; source geometry and accessibility adaptations are documented
215
+ in `docs/nic-accordion.md`.
216
+
217
+
218
+ ### Table profile
219
+
220
+ `.hw-table` inside `.hw-table-wrap` uses NIC-informed 48px minimum cells,
221
+ 8px/16px padding and an 8px outer radius in the DGA/custom profile.
222
+ `data-variant="striped|bordered"` and `data-size="sm|lg"` remain explicit
223
+ Hawiyah extensions. Use `.hw-table-heading` only for the optional 12px/18px
224
+ medium-weight heading composition. `--hw-color-table-row-hover` and
225
+ `--hw-color-table-row-hover-odd` are themeable semantic colors. Native table
226
+ markup needs captions, scoped headers and a named focusable overflow wrapper;
227
+ CSS does not add these semantics or selection behavior. See
228
+ [table evidence](../../docs/nic-tables.md).
229
+
230
+ For vanilla sorting, place `<span class="hw-table-sort-icon" aria-hidden="true"></span>`
231
+ inside the header button. Its decorative indicator follows `aria-sort` on the
232
+ native `th`; the controller supplies that semantic state.
233
+
234
+ The DGA Select indicator follows focus and writing direction. Multiple selects,
235
+ visible-row listboxes and forced colors use the native indicator treatment.
236
+ Scale field descriptions with `--hw-profile-helper-size` and
237
+ `--hw-profile-error-size`. The light and dark palettes expose
238
+ `--hw-color-field-helper` and `--hw-color-field-error-text`.
239
+
240
+ Use `hw-type` and a `data-scale` value to choose the NIC display, heading or body metrics independently of the heading level. Use `hw-line-clamp` with `data-lines` for a visual excerpt. When people need the full text, provide a visible way to expand or open it. `hw-divider` supports neutral, primary, gold and tertiary tones with `data-tone`. Use `aria-orientation="vertical"` in inline layouts. See the [foundations measurements](../../docs/nic-foundations.md).
241
+ ## HTML reading direction
242
+
243
+ Set `dir="rtl"` or `dir="ltr"` on the document or on the nearest section that changes direction. The carousel track, directional arrows, calendar controls, select indicator, overflow markers and notification entry follow that boundary. A nested override takes effect even when the language stays the same. Physical arrow icons mirror only when explicitly marked directional.
244
+
245
+ For `dir="auto"`, Hawiyah uses a CSS `@scope` root with the native `:dir(rtl)` selector. This preserves the browser’s first-strong-character decision when the guide or a consumer minifies CSS. Engines without CSS scope still apply explicit direction boundaries. Decorative geometry at an automatic boundary falls back to LTR in those engines. Set an explicit direction when the host already knows the reading order.
246
+
247
+ The production direction regression loads the minified package stylesheet used by the guide editor. It checks carousel alignment, directional icon mirroring, select indicator placement and an overflow popup at 320px and desktop width.
@@ -0,0 +1,18 @@
1
+ /* Native details remain the no-script fallback. Motion is owned by each adapter. */
2
+ .hw-accordion-item[data-hw-expanded] > .hw-accordion-trigger::after {
3
+ content: '';
4
+ inline-size: 1rem;
5
+ block-size: 1rem;
6
+ border: 0;
7
+ background: currentColor;
8
+ mask: url('./assets/icons/arrow-down-01.svg') center / contain no-repeat;
9
+ transform: rotate(0deg);
10
+ transition: transform var(--hw-duration-accordion-indicator, 0ms) var(--hw-ease-accordion, ease-in-out);
11
+ }
12
+ .hw-accordion-item[data-hw-expanded='true'] > .hw-accordion-trigger::after { transform: rotate(180deg); }
13
+ @media (prefers-reduced-motion: reduce) {
14
+ .hw-accordion-item[data-hw-expanded] > .hw-accordion-trigger::after { transition: none; }
15
+ }
16
+ @media (forced-colors: active) {
17
+ .hw-accordion-item[data-hw-expanded] > .hw-accordion-trigger::after { background: ButtonText; forced-color-adjust: none; }
18
+ }
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M14 4h6v6m0-6-9 9M10 4H6a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-4" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 96" role="img" aria-labelledby="title desc">
2
+ <title id="title">هوية</title><desc id="desc">Outlined Arabic Hawiyah wordmark in Aref Ruqaa Bold. No font dependency.</desc>
3
+ <rect width="96" height="96" rx="20" fill="#1B8354"/><g transform="translate(0 10.666667) scale(.6666667)"><path fill="#FFFFFF" transform="translate(16.68432 81.16184) scale(0.0760353 -0.0760353)" d="M261 599 318 712Q323 720 318.0 725.5Q313 731 306 729Q261 720 215.5 711.5Q170 703 123 695Q121 694 118.0 692.5Q115 691 114 689L58 575Q54 568 58.5 562.5Q63 557 70 558Q116 566 161.5 575.0Q207 584 253 592Q259 595 261 599ZM78 130Q107 130 130.5 142.0Q154 154 170 168L181 11Q182 3 190.5 1.0Q199 -1 203 6L277 142L259 400Q257 471 215 488Q206 492 193 492Q158 492 120 455V456Q117 453 112.5 448.5Q108 444 103 437Q70 394 40.5 343.0Q11 292 -5 232Q-9 220 -9 204Q-9 181 5.0 164.5Q19 148 39.5 139.0Q60 130 78 130ZM156 290Q156 289 156.0 288.0Q156 287 156 285Q156 284 155.5 283.0Q155 282 155 280Q150 279 145.0 278.5Q140 278 135 278Q121 278 110 281Q89 288 79 304Q76 309 76 312Q76 314 79 318Q84 325 91.0 331.0Q98 337 106 344Q116 352 125 352Q129 352 131.0 351.0Q133 350 137 349Q149 345 152.5 326.5Q156 308 156 290ZM454 -165 511 -52Q516 -44 511.0 -38.5Q506 -33 499 -35Q454 -44 408.5 -52.5Q363 -61 316 -69Q314 -70 311.0 -71.5Q308 -73 307 -75L251 -189Q247 -196 251.5 -201.5Q256 -207 263 -206Q309 -198 354.5 -189.0Q400 -180 446 -172Q452 -169 454 -165ZM375 60Q395 77 411.0 97.5Q427 118 441 141Q471 189 473 260Q474 327 450 396Q448 404 441.0 404.5Q434 405 429 398L355 289Q351 285 353 279Q361 252 367.5 229.5Q374 207 378 184Q355 170 333.5 163.5Q312 157 285.0 153.5Q258 150 216 145Q208 143 206 134L184 14Q183 8 186.5 3.5Q190 -1 196 0Q252 5 297.5 18.5Q343 32 375 60ZM792 266V267Q810 245 854 245Q870 245 883 248Q885 244 886 241Q886 240 886.0 238.5Q886 237 886 235Q886 234 886.5 233.5Q887 233 887 233V232Q860 202 819 185Q736 151 650.0 118.0Q564 85 488 43Q479 37 479 25Q479 10 495 8Q524 6 554.0 3.0Q584 0 614 0Q618 0 619.0 0.0Q620 0 624 0Q649 0 671.0 2.0Q693 4 715 8Q765 18 807.0 46.5Q849 75 882.5 113.5Q916 152 938 193Q953 222 964.0 257.5Q975 293 976 333V339Q976 408 928 457Q921 464 909.5 471.0Q898 478 884 478Q871 478 858 465Q840 445 828.0 420.5Q816 396 804 370Q797 356 787.5 337.5Q778 319 778 301Q778 289 782.0 281.0Q786 273 792 266ZM1105 302H1114Q1181 302 1232.5 319.0Q1284 336 1323 366Q1347 386 1370.0 413.5Q1393 441 1412 469Q1434 502 1449.0 540.0Q1464 578 1464 628Q1464 642 1463.0 655.0Q1462 668 1460 679L1447 764Q1435 834 1404 855Q1396 861 1386.0 864.5Q1376 868 1362 868Q1342 868 1328.0 862.0Q1314 856 1300 847Q1274 830 1249.5 806.0Q1225 782 1206 756L1189 734Q1175 715 1160.5 694.5Q1146 674 1138 650Q1136 646 1136 643Q1136 627 1156 627Q1174 627 1181 636V635Q1192 648 1202.5 661.5Q1213 675 1223 690Q1239 715 1269 730Q1273 732 1276.0 733.0Q1279 734 1283 734Q1288 734 1295 730Q1307 722 1313 711Q1352 630 1352 516V490Q1314 469 1266 457Q1269 463 1272.0 468.5Q1275 474 1277 478Q1286 497 1298.0 519.5Q1310 542 1310 567Q1310 600 1291 631V630Q1275 660 1249 660Q1221 660 1190 623Q1156 583 1127.0 533.5Q1098 484 1075 431L938 408Q931 407 929 399L906 273Q905 266 909.0 261.5Q913 257 920 259Q964 270 1008.0 280.5Q1052 291 1095 301H1094ZM1154 446Q1153 448 1150.5 450.0Q1148 452 1148 455Q1148 457 1148.0 457.0Q1148 457 1148 458Q1154 471 1162.5 481.5Q1171 492 1184 496Q1184 496 1184.0 496.0Q1184 496 1185 496Q1195 496 1205 470Q1184 455 1154 446Z"/></g>
4
+ </svg>
@@ -0,0 +1,93 @@
1
+ Copyright 2022 The Noto Project Authors (https://github.com/notofonts/arabic)
2
+
3
+ This Font Software is licensed under the SIL Open Font License, Version 1.1.
4
+ This license is copied below, and is also available with a FAQ at:
5
+ https://openfontlicense.org
6
+
7
+
8
+ -----------------------------------------------------------
9
+ SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
10
+ -----------------------------------------------------------
11
+
12
+ PREAMBLE
13
+ The goals of the Open Font License (OFL) are to stimulate worldwide
14
+ development of collaborative font projects, to support the font creation
15
+ efforts of academic and linguistic communities, and to provide a free and
16
+ open framework in which fonts may be shared and improved in partnership
17
+ with others.
18
+
19
+ The OFL allows the licensed fonts to be used, studied, modified and
20
+ redistributed freely as long as they are not sold by themselves. The
21
+ fonts, including any derivative works, can be bundled, embedded,
22
+ redistributed and/or sold with any software provided that any reserved
23
+ names are not used by derivative works. The fonts and derivatives,
24
+ however, cannot be released under any other type of license. The
25
+ requirement for fonts to remain under this license does not apply
26
+ to any document created using the fonts or their derivatives.
27
+
28
+ DEFINITIONS
29
+ "Font Software" refers to the set of files released by the Copyright
30
+ Holder(s) under this license and clearly marked as such. This may
31
+ include source files, build scripts and documentation.
32
+
33
+ "Reserved Font Name" refers to any names specified as such after the
34
+ copyright statement(s).
35
+
36
+ "Original Version" refers to the collection of Font Software components as
37
+ distributed by the Copyright Holder(s).
38
+
39
+ "Modified Version" refers to any derivative made by adding to, deleting,
40
+ or substituting -- in part or in whole -- any of the components of the
41
+ Original Version, by changing formats or by porting the Font Software to a
42
+ new environment.
43
+
44
+ "Author" refers to any designer, engineer, programmer, technical
45
+ writer or other person who contributed to the Font Software.
46
+
47
+ PERMISSION & CONDITIONS
48
+ Permission is hereby granted, free of charge, to any person obtaining
49
+ a copy of the Font Software, to use, study, copy, merge, embed, modify,
50
+ redistribute, and sell modified and unmodified copies of the Font
51
+ Software, subject to the following conditions:
52
+
53
+ 1) Neither the Font Software nor any of its individual components,
54
+ in Original or Modified Versions, may be sold by itself.
55
+
56
+ 2) Original or Modified Versions of the Font Software may be bundled,
57
+ redistributed and/or sold with any software, provided that each copy
58
+ contains the above copyright notice and this license. These can be
59
+ included either as stand-alone text files, human-readable headers or
60
+ in the appropriate machine-readable metadata fields within text or
61
+ binary files as long as those fields can be easily viewed by the user.
62
+
63
+ 3) No Modified Version of the Font Software may use the Reserved Font
64
+ Name(s) unless explicit written permission is granted by the corresponding
65
+ Copyright Holder. This restriction only applies to the primary font name as
66
+ presented to the users.
67
+
68
+ 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
69
+ Software shall not be used to promote, endorse or advertise any
70
+ Modified Version, except to acknowledge the contribution(s) of the
71
+ Copyright Holder(s) and the Author(s) or with their explicit written
72
+ permission.
73
+
74
+ 5) The Font Software, modified or unmodified, in part or in whole,
75
+ must be distributed entirely under this license, and must not be
76
+ distributed under any other license. The requirement for fonts to
77
+ remain under this license does not apply to any document created
78
+ using the Font Software.
79
+
80
+ TERMINATION
81
+ This license becomes null and void if any of the above conditions are
82
+ not met.
83
+
84
+ DISCLAIMER
85
+ THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
86
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
87
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
88
+ OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
89
+ COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
90
+ INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
91
+ DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
92
+ FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
93
+ OTHER DEALINGS IN THE FONT SOFTWARE.
@@ -0,0 +1,47 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "family": "HawiyahRiyal",
4
+ "file": "riyal.woff2",
5
+ "sha256": "c3fb35e141547460b4f40838e5c53356d8aa125d0d701f85d5ccf83eeebb0a0f",
6
+ "bytes": 2560,
7
+ "codepoints": [
8
+ "U+20C1"
9
+ ],
10
+ "license": "SIL Open Font License 1.1",
11
+ "licenseFile": "riyal-LICENSE.txt",
12
+ "licenseSha256": "a7a5a25eb188bf1cd96982030d53e23c33485c69b1044a562254226857ee13af",
13
+ "copyright": "Copyright 2022 The Noto Project Authors (https://github.com/notofonts/arabic)",
14
+ "source": {
15
+ "family": "Noto Naskh Arabic",
16
+ "version": "2.021",
17
+ "releaseUrl": "https://github.com/notofonts/arabic/releases/tag/NotoNaskhArabic-v2.021",
18
+ "archiveUrl": "https://github.com/notofonts/arabic/releases/download/NotoNaskhArabic-v2.021/NotoNaskhArabic-v2.021.zip",
19
+ "archiveSha256": "6c050ab9bd087d69b733c505a7576e60c528c2f33cd7b91005a5bd7da4514032",
20
+ "archiveMember": "NotoNaskhArabic/hinted/ttf/NotoNaskhArabic-Regular.ttf",
21
+ "fontSha256": "6f0a92031367b2f5a2078fe9d24f3433122b61a0bad57c423aad8f3c39aa2e6e",
22
+ "retrieved": "2026-11-01"
23
+ },
24
+ "modifications": [
25
+ "Subset to U+20C1 plus required .notdef glyph; no artwork redrawn.",
26
+ "Rename family/full/PostScript identifiers to HawiyahRiyal; retain upstream copyright and license metadata.",
27
+ "Remove unrelated layout tables; compress as WOFF2."
28
+ ],
29
+ "tools": {
30
+ "fontTools": "4.59.2",
31
+ "Brotli": "1.1.0"
32
+ },
33
+ "reproduction": {
34
+ "prerequisites": "Install fonttools==4.59.2 and Brotli==1.1.0; extract the archiveMember from the verified upstream ZIP. Save the Python script below as subset-riyal.py.",
35
+ "command": "python subset-riyal.py NotoNaskhArabic-Regular.ttf riyal.woff2",
36
+ "pythonScript": "from fontTools.ttLib import TTFont\nfrom fontTools import subset\nimport sys\nfont=TTFont(sys.argv[1],recalcTimestamp=False)\noptions=subset.Options()\noptions.flavor=\"woff2\"\noptions.glyph_names=True\noptions.notdef_outline=True\noptions.name_IDs=[0,1,2,3,4,5,6,13,14,16,17]\noptions.name_legacy=True\noptions.name_languages=[\"*\"]\noptions.layout_features=[]\noptions.drop_tables += [\"GDEF\",\"GPOS\",\"GSUB\"]\nsubsetter=subset.Subsetter(options=options)\nsubsetter.populate(unicodes=[0x20C1])\nsubsetter.subset(font)\nrenames={1:\"HawiyahRiyal\",2:\"Regular\",3:\"HawiyahRiyal Regular 2.021 subset 2026-11-01\",4:\"HawiyahRiyal Regular\",6:\"HawiyahRiyal-Regular\",16:\"HawiyahRiyal\",17:\"Regular\"}\nfor record in font[\"name\"].names:\n if record.nameID in renames:\n record.string=renames[record.nameID].encode(record.getEncoding())\nfont.flavor=\"woff2\"\nfont.save(sys.argv[2])\n"
37
+ },
38
+ "validation": {
39
+ "unicodeCmap": [
40
+ "U+20C1"
41
+ ],
42
+ "glyphName": "uni20C1",
43
+ "nonEmptyContours": 2,
44
+ "glyphCoordinatesAndAdvanceUnchanged": true,
45
+ "notAnOfficialSvgExport": true
46
+ }
47
+ }
Binary file
Binary file
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 144 112" role="img" aria-labelledby="title desc">
2
+ <title id="title">هوية</title><desc id="desc">Outlined Arabic Hawiyah wordmark in Aref Ruqaa Bold. No font dependency.</desc>
3
+ <path fill="#161616" transform="translate(16.68432 81.16184) scale(0.0760353 -0.0760353)" d="M261 599 318 712Q323 720 318.0 725.5Q313 731 306 729Q261 720 215.5 711.5Q170 703 123 695Q121 694 118.0 692.5Q115 691 114 689L58 575Q54 568 58.5 562.5Q63 557 70 558Q116 566 161.5 575.0Q207 584 253 592Q259 595 261 599ZM78 130Q107 130 130.5 142.0Q154 154 170 168L181 11Q182 3 190.5 1.0Q199 -1 203 6L277 142L259 400Q257 471 215 488Q206 492 193 492Q158 492 120 455V456Q117 453 112.5 448.5Q108 444 103 437Q70 394 40.5 343.0Q11 292 -5 232Q-9 220 -9 204Q-9 181 5.0 164.5Q19 148 39.5 139.0Q60 130 78 130ZM156 290Q156 289 156.0 288.0Q156 287 156 285Q156 284 155.5 283.0Q155 282 155 280Q150 279 145.0 278.5Q140 278 135 278Q121 278 110 281Q89 288 79 304Q76 309 76 312Q76 314 79 318Q84 325 91.0 331.0Q98 337 106 344Q116 352 125 352Q129 352 131.0 351.0Q133 350 137 349Q149 345 152.5 326.5Q156 308 156 290ZM454 -165 511 -52Q516 -44 511.0 -38.5Q506 -33 499 -35Q454 -44 408.5 -52.5Q363 -61 316 -69Q314 -70 311.0 -71.5Q308 -73 307 -75L251 -189Q247 -196 251.5 -201.5Q256 -207 263 -206Q309 -198 354.5 -189.0Q400 -180 446 -172Q452 -169 454 -165ZM375 60Q395 77 411.0 97.5Q427 118 441 141Q471 189 473 260Q474 327 450 396Q448 404 441.0 404.5Q434 405 429 398L355 289Q351 285 353 279Q361 252 367.5 229.5Q374 207 378 184Q355 170 333.5 163.5Q312 157 285.0 153.5Q258 150 216 145Q208 143 206 134L184 14Q183 8 186.5 3.5Q190 -1 196 0Q252 5 297.5 18.5Q343 32 375 60ZM792 266V267Q810 245 854 245Q870 245 883 248Q885 244 886 241Q886 240 886.0 238.5Q886 237 886 235Q886 234 886.5 233.5Q887 233 887 233V232Q860 202 819 185Q736 151 650.0 118.0Q564 85 488 43Q479 37 479 25Q479 10 495 8Q524 6 554.0 3.0Q584 0 614 0Q618 0 619.0 0.0Q620 0 624 0Q649 0 671.0 2.0Q693 4 715 8Q765 18 807.0 46.5Q849 75 882.5 113.5Q916 152 938 193Q953 222 964.0 257.5Q975 293 976 333V339Q976 408 928 457Q921 464 909.5 471.0Q898 478 884 478Q871 478 858 465Q840 445 828.0 420.5Q816 396 804 370Q797 356 787.5 337.5Q778 319 778 301Q778 289 782.0 281.0Q786 273 792 266ZM1105 302H1114Q1181 302 1232.5 319.0Q1284 336 1323 366Q1347 386 1370.0 413.5Q1393 441 1412 469Q1434 502 1449.0 540.0Q1464 578 1464 628Q1464 642 1463.0 655.0Q1462 668 1460 679L1447 764Q1435 834 1404 855Q1396 861 1386.0 864.5Q1376 868 1362 868Q1342 868 1328.0 862.0Q1314 856 1300 847Q1274 830 1249.5 806.0Q1225 782 1206 756L1189 734Q1175 715 1160.5 694.5Q1146 674 1138 650Q1136 646 1136 643Q1136 627 1156 627Q1174 627 1181 636V635Q1192 648 1202.5 661.5Q1213 675 1223 690Q1239 715 1269 730Q1273 732 1276.0 733.0Q1279 734 1283 734Q1288 734 1295 730Q1307 722 1313 711Q1352 630 1352 516V490Q1314 469 1266 457Q1269 463 1272.0 468.5Q1275 474 1277 478Q1286 497 1298.0 519.5Q1310 542 1310 567Q1310 600 1291 631V630Q1275 660 1249 660Q1221 660 1190 623Q1156 583 1127.0 533.5Q1098 484 1075 431L938 408Q931 407 929 399L906 273Q905 266 909.0 261.5Q913 257 920 259Q964 270 1008.0 280.5Q1052 291 1095 301H1094ZM1154 446Q1153 448 1150.5 450.0Q1148 452 1148 455Q1148 457 1148.0 457.0Q1148 457 1148 458Q1154 471 1162.5 481.5Q1171 492 1184 496Q1184 496 1184.0 496.0Q1184 496 1185 496Q1195 496 1205 470Q1184 455 1154 446Z"/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 144 112" role="img" aria-labelledby="title desc">
2
+ <title id="title">هوية</title><desc id="desc">Outlined Arabic Hawiyah wordmark in Aref Ruqaa Bold. No font dependency.</desc>
3
+ <path fill="#F3FCF6" transform="translate(16.68432 81.16184) scale(0.0760353 -0.0760353)" d="M261 599 318 712Q323 720 318.0 725.5Q313 731 306 729Q261 720 215.5 711.5Q170 703 123 695Q121 694 118.0 692.5Q115 691 114 689L58 575Q54 568 58.5 562.5Q63 557 70 558Q116 566 161.5 575.0Q207 584 253 592Q259 595 261 599ZM78 130Q107 130 130.5 142.0Q154 154 170 168L181 11Q182 3 190.5 1.0Q199 -1 203 6L277 142L259 400Q257 471 215 488Q206 492 193 492Q158 492 120 455V456Q117 453 112.5 448.5Q108 444 103 437Q70 394 40.5 343.0Q11 292 -5 232Q-9 220 -9 204Q-9 181 5.0 164.5Q19 148 39.5 139.0Q60 130 78 130ZM156 290Q156 289 156.0 288.0Q156 287 156 285Q156 284 155.5 283.0Q155 282 155 280Q150 279 145.0 278.5Q140 278 135 278Q121 278 110 281Q89 288 79 304Q76 309 76 312Q76 314 79 318Q84 325 91.0 331.0Q98 337 106 344Q116 352 125 352Q129 352 131.0 351.0Q133 350 137 349Q149 345 152.5 326.5Q156 308 156 290ZM454 -165 511 -52Q516 -44 511.0 -38.5Q506 -33 499 -35Q454 -44 408.5 -52.5Q363 -61 316 -69Q314 -70 311.0 -71.5Q308 -73 307 -75L251 -189Q247 -196 251.5 -201.5Q256 -207 263 -206Q309 -198 354.5 -189.0Q400 -180 446 -172Q452 -169 454 -165ZM375 60Q395 77 411.0 97.5Q427 118 441 141Q471 189 473 260Q474 327 450 396Q448 404 441.0 404.5Q434 405 429 398L355 289Q351 285 353 279Q361 252 367.5 229.5Q374 207 378 184Q355 170 333.5 163.5Q312 157 285.0 153.5Q258 150 216 145Q208 143 206 134L184 14Q183 8 186.5 3.5Q190 -1 196 0Q252 5 297.5 18.5Q343 32 375 60ZM792 266V267Q810 245 854 245Q870 245 883 248Q885 244 886 241Q886 240 886.0 238.5Q886 237 886 235Q886 234 886.5 233.5Q887 233 887 233V232Q860 202 819 185Q736 151 650.0 118.0Q564 85 488 43Q479 37 479 25Q479 10 495 8Q524 6 554.0 3.0Q584 0 614 0Q618 0 619.0 0.0Q620 0 624 0Q649 0 671.0 2.0Q693 4 715 8Q765 18 807.0 46.5Q849 75 882.5 113.5Q916 152 938 193Q953 222 964.0 257.5Q975 293 976 333V339Q976 408 928 457Q921 464 909.5 471.0Q898 478 884 478Q871 478 858 465Q840 445 828.0 420.5Q816 396 804 370Q797 356 787.5 337.5Q778 319 778 301Q778 289 782.0 281.0Q786 273 792 266ZM1105 302H1114Q1181 302 1232.5 319.0Q1284 336 1323 366Q1347 386 1370.0 413.5Q1393 441 1412 469Q1434 502 1449.0 540.0Q1464 578 1464 628Q1464 642 1463.0 655.0Q1462 668 1460 679L1447 764Q1435 834 1404 855Q1396 861 1386.0 864.5Q1376 868 1362 868Q1342 868 1328.0 862.0Q1314 856 1300 847Q1274 830 1249.5 806.0Q1225 782 1206 756L1189 734Q1175 715 1160.5 694.5Q1146 674 1138 650Q1136 646 1136 643Q1136 627 1156 627Q1174 627 1181 636V635Q1192 648 1202.5 661.5Q1213 675 1223 690Q1239 715 1269 730Q1273 732 1276.0 733.0Q1279 734 1283 734Q1288 734 1295 730Q1307 722 1313 711Q1352 630 1352 516V490Q1314 469 1266 457Q1269 463 1272.0 468.5Q1275 474 1277 478Q1286 497 1298.0 519.5Q1310 542 1310 567Q1310 600 1291 631V630Q1275 660 1249 660Q1221 660 1190 623Q1156 583 1127.0 533.5Q1098 484 1075 431L938 408Q931 407 929 399L906 273Q905 266 909.0 261.5Q913 257 920 259Q964 270 1008.0 280.5Q1052 291 1095 301H1094ZM1154 446Q1153 448 1150.5 450.0Q1148 452 1148 455Q1148 457 1148.0 457.0Q1148 457 1148 458Q1154 471 1162.5 481.5Q1171 492 1184 496Q1184 496 1184.0 496.0Q1184 496 1185 496Q1195 496 1205 470Q1184 455 1154 446Z"/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 144 112" role="img" aria-labelledby="title desc">
2
+ <title id="title">هوية</title><desc id="desc">Outlined Arabic Hawiyah wordmark in Aref Ruqaa Bold. No font dependency.</desc>
3
+ <path fill="#FFFFFF" transform="translate(16.68432 81.16184) scale(0.0760353 -0.0760353)" d="M261 599 318 712Q323 720 318.0 725.5Q313 731 306 729Q261 720 215.5 711.5Q170 703 123 695Q121 694 118.0 692.5Q115 691 114 689L58 575Q54 568 58.5 562.5Q63 557 70 558Q116 566 161.5 575.0Q207 584 253 592Q259 595 261 599ZM78 130Q107 130 130.5 142.0Q154 154 170 168L181 11Q182 3 190.5 1.0Q199 -1 203 6L277 142L259 400Q257 471 215 488Q206 492 193 492Q158 492 120 455V456Q117 453 112.5 448.5Q108 444 103 437Q70 394 40.5 343.0Q11 292 -5 232Q-9 220 -9 204Q-9 181 5.0 164.5Q19 148 39.5 139.0Q60 130 78 130ZM156 290Q156 289 156.0 288.0Q156 287 156 285Q156 284 155.5 283.0Q155 282 155 280Q150 279 145.0 278.5Q140 278 135 278Q121 278 110 281Q89 288 79 304Q76 309 76 312Q76 314 79 318Q84 325 91.0 331.0Q98 337 106 344Q116 352 125 352Q129 352 131.0 351.0Q133 350 137 349Q149 345 152.5 326.5Q156 308 156 290ZM454 -165 511 -52Q516 -44 511.0 -38.5Q506 -33 499 -35Q454 -44 408.5 -52.5Q363 -61 316 -69Q314 -70 311.0 -71.5Q308 -73 307 -75L251 -189Q247 -196 251.5 -201.5Q256 -207 263 -206Q309 -198 354.5 -189.0Q400 -180 446 -172Q452 -169 454 -165ZM375 60Q395 77 411.0 97.5Q427 118 441 141Q471 189 473 260Q474 327 450 396Q448 404 441.0 404.5Q434 405 429 398L355 289Q351 285 353 279Q361 252 367.5 229.5Q374 207 378 184Q355 170 333.5 163.5Q312 157 285.0 153.5Q258 150 216 145Q208 143 206 134L184 14Q183 8 186.5 3.5Q190 -1 196 0Q252 5 297.5 18.5Q343 32 375 60ZM792 266V267Q810 245 854 245Q870 245 883 248Q885 244 886 241Q886 240 886.0 238.5Q886 237 886 235Q886 234 886.5 233.5Q887 233 887 233V232Q860 202 819 185Q736 151 650.0 118.0Q564 85 488 43Q479 37 479 25Q479 10 495 8Q524 6 554.0 3.0Q584 0 614 0Q618 0 619.0 0.0Q620 0 624 0Q649 0 671.0 2.0Q693 4 715 8Q765 18 807.0 46.5Q849 75 882.5 113.5Q916 152 938 193Q953 222 964.0 257.5Q975 293 976 333V339Q976 408 928 457Q921 464 909.5 471.0Q898 478 884 478Q871 478 858 465Q840 445 828.0 420.5Q816 396 804 370Q797 356 787.5 337.5Q778 319 778 301Q778 289 782.0 281.0Q786 273 792 266ZM1105 302H1114Q1181 302 1232.5 319.0Q1284 336 1323 366Q1347 386 1370.0 413.5Q1393 441 1412 469Q1434 502 1449.0 540.0Q1464 578 1464 628Q1464 642 1463.0 655.0Q1462 668 1460 679L1447 764Q1435 834 1404 855Q1396 861 1386.0 864.5Q1376 868 1362 868Q1342 868 1328.0 862.0Q1314 856 1300 847Q1274 830 1249.5 806.0Q1225 782 1206 756L1189 734Q1175 715 1160.5 694.5Q1146 674 1138 650Q1136 646 1136 643Q1136 627 1156 627Q1174 627 1181 636V635Q1192 648 1202.5 661.5Q1213 675 1223 690Q1239 715 1269 730Q1273 732 1276.0 733.0Q1279 734 1283 734Q1288 734 1295 730Q1307 722 1313 711Q1352 630 1352 516V490Q1314 469 1266 457Q1269 463 1272.0 468.5Q1275 474 1277 478Q1286 497 1298.0 519.5Q1310 542 1310 567Q1310 600 1291 631V630Q1275 660 1249 660Q1221 660 1190 623Q1156 583 1127.0 533.5Q1098 484 1075 431L938 408Q931 407 929 399L906 273Q905 266 909.0 261.5Q913 257 920 259Q964 270 1008.0 280.5Q1052 291 1095 301H1094ZM1154 446Q1153 448 1150.5 450.0Q1148 452 1148 455Q1148 457 1148.0 457.0Q1148 457 1148 458Q1154 471 1162.5 481.5Q1171 492 1184 496Q1184 496 1184.0 496.0Q1184 496 1185 496Q1195 496 1205 470Q1184 455 1154 446Z"/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 144 112" role="img" aria-labelledby="title desc">
2
+ <title id="title">هوية</title><desc id="desc">Outlined Arabic Hawiyah wordmark in Aref Ruqaa Bold. No font dependency.</desc>
3
+ <path fill="#1B8354" transform="translate(16.68432 81.16184) scale(0.0760353 -0.0760353)" d="M261 599 318 712Q323 720 318.0 725.5Q313 731 306 729Q261 720 215.5 711.5Q170 703 123 695Q121 694 118.0 692.5Q115 691 114 689L58 575Q54 568 58.5 562.5Q63 557 70 558Q116 566 161.5 575.0Q207 584 253 592Q259 595 261 599ZM78 130Q107 130 130.5 142.0Q154 154 170 168L181 11Q182 3 190.5 1.0Q199 -1 203 6L277 142L259 400Q257 471 215 488Q206 492 193 492Q158 492 120 455V456Q117 453 112.5 448.5Q108 444 103 437Q70 394 40.5 343.0Q11 292 -5 232Q-9 220 -9 204Q-9 181 5.0 164.5Q19 148 39.5 139.0Q60 130 78 130ZM156 290Q156 289 156.0 288.0Q156 287 156 285Q156 284 155.5 283.0Q155 282 155 280Q150 279 145.0 278.5Q140 278 135 278Q121 278 110 281Q89 288 79 304Q76 309 76 312Q76 314 79 318Q84 325 91.0 331.0Q98 337 106 344Q116 352 125 352Q129 352 131.0 351.0Q133 350 137 349Q149 345 152.5 326.5Q156 308 156 290ZM454 -165 511 -52Q516 -44 511.0 -38.5Q506 -33 499 -35Q454 -44 408.5 -52.5Q363 -61 316 -69Q314 -70 311.0 -71.5Q308 -73 307 -75L251 -189Q247 -196 251.5 -201.5Q256 -207 263 -206Q309 -198 354.5 -189.0Q400 -180 446 -172Q452 -169 454 -165ZM375 60Q395 77 411.0 97.5Q427 118 441 141Q471 189 473 260Q474 327 450 396Q448 404 441.0 404.5Q434 405 429 398L355 289Q351 285 353 279Q361 252 367.5 229.5Q374 207 378 184Q355 170 333.5 163.5Q312 157 285.0 153.5Q258 150 216 145Q208 143 206 134L184 14Q183 8 186.5 3.5Q190 -1 196 0Q252 5 297.5 18.5Q343 32 375 60ZM792 266V267Q810 245 854 245Q870 245 883 248Q885 244 886 241Q886 240 886.0 238.5Q886 237 886 235Q886 234 886.5 233.5Q887 233 887 233V232Q860 202 819 185Q736 151 650.0 118.0Q564 85 488 43Q479 37 479 25Q479 10 495 8Q524 6 554.0 3.0Q584 0 614 0Q618 0 619.0 0.0Q620 0 624 0Q649 0 671.0 2.0Q693 4 715 8Q765 18 807.0 46.5Q849 75 882.5 113.5Q916 152 938 193Q953 222 964.0 257.5Q975 293 976 333V339Q976 408 928 457Q921 464 909.5 471.0Q898 478 884 478Q871 478 858 465Q840 445 828.0 420.5Q816 396 804 370Q797 356 787.5 337.5Q778 319 778 301Q778 289 782.0 281.0Q786 273 792 266ZM1105 302H1114Q1181 302 1232.5 319.0Q1284 336 1323 366Q1347 386 1370.0 413.5Q1393 441 1412 469Q1434 502 1449.0 540.0Q1464 578 1464 628Q1464 642 1463.0 655.0Q1462 668 1460 679L1447 764Q1435 834 1404 855Q1396 861 1386.0 864.5Q1376 868 1362 868Q1342 868 1328.0 862.0Q1314 856 1300 847Q1274 830 1249.5 806.0Q1225 782 1206 756L1189 734Q1175 715 1160.5 694.5Q1146 674 1138 650Q1136 646 1136 643Q1136 627 1156 627Q1174 627 1181 636V635Q1192 648 1202.5 661.5Q1213 675 1223 690Q1239 715 1269 730Q1273 732 1276.0 733.0Q1279 734 1283 734Q1288 734 1295 730Q1307 722 1313 711Q1352 630 1352 516V490Q1314 469 1266 457Q1269 463 1272.0 468.5Q1275 474 1277 478Q1286 497 1298.0 519.5Q1310 542 1310 567Q1310 600 1291 631V630Q1275 660 1249 660Q1221 660 1190 623Q1156 583 1127.0 533.5Q1098 484 1075 431L938 408Q931 407 929 399L906 273Q905 266 909.0 261.5Q913 257 920 259Q964 270 1008.0 280.5Q1052 291 1095 301H1094ZM1154 446Q1153 448 1150.5 450.0Q1148 452 1148 455Q1148 457 1148.0 457.0Q1148 457 1148 458Q1154 471 1162.5 481.5Q1171 492 1184 496Q1184 496 1184.0 496.0Q1184 496 1185 496Q1195 496 1205 470Q1184 455 1154 446Z"/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 144 112" role="img" aria-labelledby="title desc">
2
+ <title id="title">هوية</title><desc id="desc">Outlined Arabic Hawiyah wordmark in Aref Ruqaa Bold. No font dependency.</desc>
3
+ <path fill="#161616" transform="translate(16.68432 81.16184) scale(0.0760353 -0.0760353)" d="M261 599 318 712Q323 720 318.0 725.5Q313 731 306 729Q261 720 215.5 711.5Q170 703 123 695Q121 694 118.0 692.5Q115 691 114 689L58 575Q54 568 58.5 562.5Q63 557 70 558Q116 566 161.5 575.0Q207 584 253 592Q259 595 261 599ZM78 130Q107 130 130.5 142.0Q154 154 170 168L181 11Q182 3 190.5 1.0Q199 -1 203 6L277 142L259 400Q257 471 215 488Q206 492 193 492Q158 492 120 455V456Q117 453 112.5 448.5Q108 444 103 437Q70 394 40.5 343.0Q11 292 -5 232Q-9 220 -9 204Q-9 181 5.0 164.5Q19 148 39.5 139.0Q60 130 78 130ZM156 290Q156 289 156.0 288.0Q156 287 156 285Q156 284 155.5 283.0Q155 282 155 280Q150 279 145.0 278.5Q140 278 135 278Q121 278 110 281Q89 288 79 304Q76 309 76 312Q76 314 79 318Q84 325 91.0 331.0Q98 337 106 344Q116 352 125 352Q129 352 131.0 351.0Q133 350 137 349Q149 345 152.5 326.5Q156 308 156 290ZM454 -165 511 -52Q516 -44 511.0 -38.5Q506 -33 499 -35Q454 -44 408.5 -52.5Q363 -61 316 -69Q314 -70 311.0 -71.5Q308 -73 307 -75L251 -189Q247 -196 251.5 -201.5Q256 -207 263 -206Q309 -198 354.5 -189.0Q400 -180 446 -172Q452 -169 454 -165ZM375 60Q395 77 411.0 97.5Q427 118 441 141Q471 189 473 260Q474 327 450 396Q448 404 441.0 404.5Q434 405 429 398L355 289Q351 285 353 279Q361 252 367.5 229.5Q374 207 378 184Q355 170 333.5 163.5Q312 157 285.0 153.5Q258 150 216 145Q208 143 206 134L184 14Q183 8 186.5 3.5Q190 -1 196 0Q252 5 297.5 18.5Q343 32 375 60ZM792 266V267Q810 245 854 245Q870 245 883 248Q885 244 886 241Q886 240 886.0 238.5Q886 237 886 235Q886 234 886.5 233.5Q887 233 887 233V232Q860 202 819 185Q736 151 650.0 118.0Q564 85 488 43Q479 37 479 25Q479 10 495 8Q524 6 554.0 3.0Q584 0 614 0Q618 0 619.0 0.0Q620 0 624 0Q649 0 671.0 2.0Q693 4 715 8Q765 18 807.0 46.5Q849 75 882.5 113.5Q916 152 938 193Q953 222 964.0 257.5Q975 293 976 333V339Q976 408 928 457Q921 464 909.5 471.0Q898 478 884 478Q871 478 858 465Q840 445 828.0 420.5Q816 396 804 370Q797 356 787.5 337.5Q778 319 778 301Q778 289 782.0 281.0Q786 273 792 266ZM1105 302H1114Q1181 302 1232.5 319.0Q1284 336 1323 366Q1347 386 1370.0 413.5Q1393 441 1412 469Q1434 502 1449.0 540.0Q1464 578 1464 628Q1464 642 1463.0 655.0Q1462 668 1460 679L1447 764Q1435 834 1404 855Q1396 861 1386.0 864.5Q1376 868 1362 868Q1342 868 1328.0 862.0Q1314 856 1300 847Q1274 830 1249.5 806.0Q1225 782 1206 756L1189 734Q1175 715 1160.5 694.5Q1146 674 1138 650Q1136 646 1136 643Q1136 627 1156 627Q1174 627 1181 636V635Q1192 648 1202.5 661.5Q1213 675 1223 690Q1239 715 1269 730Q1273 732 1276.0 733.0Q1279 734 1283 734Q1288 734 1295 730Q1307 722 1313 711Q1352 630 1352 516V490Q1314 469 1266 457Q1269 463 1272.0 468.5Q1275 474 1277 478Q1286 497 1298.0 519.5Q1310 542 1310 567Q1310 600 1291 631V630Q1275 660 1249 660Q1221 660 1190 623Q1156 583 1127.0 533.5Q1098 484 1075 431L938 408Q931 407 929 399L906 273Q905 266 909.0 261.5Q913 257 920 259Q964 270 1008.0 280.5Q1052 291 1095 301H1094ZM1154 446Q1153 448 1150.5 450.0Q1148 452 1148 455Q1148 457 1148.0 457.0Q1148 457 1148 458Q1154 471 1162.5 481.5Q1171 492 1184 496Q1184 496 1184.0 496.0Q1184 496 1185 496Q1195 496 1205 470Q1184 455 1154 446Z"/>
4
+ </svg>