@axiapps/axi-design 1.13.0 → 1.15.0

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 (122) hide show
  1. package/README.md +38 -0
  2. package/dist/axi.css +15 -0
  3. package/dist/icons/activity.svg +3 -0
  4. package/dist/icons/arrow-down.svg +4 -0
  5. package/dist/icons/arrow-left.svg +4 -0
  6. package/dist/icons/arrow-right.svg +4 -0
  7. package/dist/icons/arrow-up.svg +4 -0
  8. package/dist/icons/calendar.svg +6 -0
  9. package/dist/icons/check-check.svg +4 -0
  10. package/dist/icons/check.svg +3 -0
  11. package/dist/icons/chevron-down.svg +3 -0
  12. package/dist/icons/chevron-left.svg +3 -0
  13. package/dist/icons/chevron-right.svg +3 -0
  14. package/dist/icons/chevron-up.svg +3 -0
  15. package/dist/icons/circle-alert.svg +5 -0
  16. package/dist/icons/circle-check.svg +4 -0
  17. package/dist/icons/circle-help.svg +5 -0
  18. package/dist/icons/circle-x.svg +5 -0
  19. package/dist/icons/clock.svg +4 -0
  20. package/dist/icons/copy.svg +4 -0
  21. package/dist/icons/crown.svg +3 -0
  22. package/dist/icons/download.svg +5 -0
  23. package/dist/icons/external-link.svg +5 -0
  24. package/dist/icons/eye.svg +4 -0
  25. package/dist/icons/file-text.svg +6 -0
  26. package/dist/icons/file.svg +4 -0
  27. package/dist/icons/filter.svg +3 -0
  28. package/dist/icons/folder-open.svg +4 -0
  29. package/dist/icons/folder.svg +3 -0
  30. package/dist/icons/icons.json +854 -0
  31. package/dist/icons/info.svg +5 -0
  32. package/dist/icons/link.svg +5 -0
  33. package/dist/icons/loader-circle.svg +3 -0
  34. package/dist/icons/lock.svg +4 -0
  35. package/dist/icons/maximize-2.svg +5 -0
  36. package/dist/icons/menu.svg +5 -0
  37. package/dist/icons/message-square.svg +3 -0
  38. package/dist/icons/minus.svg +3 -0
  39. package/dist/icons/pause.svg +4 -0
  40. package/dist/icons/pencil.svg +4 -0
  41. package/dist/icons/play.svg +3 -0
  42. package/dist/icons/plus.svg +4 -0
  43. package/dist/icons/refresh-cw.svg +6 -0
  44. package/dist/icons/save.svg +5 -0
  45. package/dist/icons/search.svg +4 -0
  46. package/dist/icons/settings-2.svg +6 -0
  47. package/dist/icons/settings.svg +4 -0
  48. package/dist/icons/share-2.svg +7 -0
  49. package/dist/icons/shield.svg +3 -0
  50. package/dist/icons/skip-forward.svg +4 -0
  51. package/dist/icons/sprite.svg +278 -0
  52. package/dist/icons/square.svg +3 -0
  53. package/dist/icons/swords.svg +6 -0
  54. package/dist/icons/tag.svg +4 -0
  55. package/dist/icons/trash-2.svg +5 -0
  56. package/dist/icons/unlock.svg +4 -0
  57. package/dist/icons/upload.svg +5 -0
  58. package/dist/icons/user.svg +4 -0
  59. package/dist/icons/users.svg +6 -0
  60. package/dist/icons/volume-2.svg +5 -0
  61. package/dist/icons/x.svg +4 -0
  62. package/docs/RULES.md +64 -0
  63. package/icons/LICENSE-LUCIDE +51 -0
  64. package/icons/activity.svg +3 -0
  65. package/icons/arrow-down.svg +4 -0
  66. package/icons/arrow-left.svg +4 -0
  67. package/icons/arrow-right.svg +4 -0
  68. package/icons/arrow-up.svg +4 -0
  69. package/icons/calendar.svg +6 -0
  70. package/icons/check-check.svg +4 -0
  71. package/icons/check.svg +3 -0
  72. package/icons/chevron-down.svg +3 -0
  73. package/icons/chevron-left.svg +3 -0
  74. package/icons/chevron-right.svg +3 -0
  75. package/icons/chevron-up.svg +3 -0
  76. package/icons/circle-alert.svg +5 -0
  77. package/icons/circle-check.svg +4 -0
  78. package/icons/circle-help.svg +5 -0
  79. package/icons/circle-x.svg +5 -0
  80. package/icons/clock.svg +4 -0
  81. package/icons/copy.svg +4 -0
  82. package/icons/crown.svg +3 -0
  83. package/icons/download.svg +5 -0
  84. package/icons/external-link.svg +5 -0
  85. package/icons/eye.svg +4 -0
  86. package/icons/file-text.svg +6 -0
  87. package/icons/file.svg +4 -0
  88. package/icons/filter.svg +3 -0
  89. package/icons/folder-open.svg +4 -0
  90. package/icons/folder.svg +3 -0
  91. package/icons/info.svg +5 -0
  92. package/icons/link.svg +5 -0
  93. package/icons/loader-circle.svg +3 -0
  94. package/icons/lock.svg +4 -0
  95. package/icons/maximize-2.svg +5 -0
  96. package/icons/menu.svg +5 -0
  97. package/icons/message-square.svg +3 -0
  98. package/icons/minus.svg +3 -0
  99. package/icons/pause.svg +4 -0
  100. package/icons/pencil.svg +4 -0
  101. package/icons/play.svg +3 -0
  102. package/icons/plus.svg +4 -0
  103. package/icons/refresh-cw.svg +6 -0
  104. package/icons/save.svg +5 -0
  105. package/icons/search.svg +4 -0
  106. package/icons/settings-2.svg +6 -0
  107. package/icons/settings.svg +4 -0
  108. package/icons/share-2.svg +7 -0
  109. package/icons/shield.svg +3 -0
  110. package/icons/skip-forward.svg +4 -0
  111. package/icons/square.svg +3 -0
  112. package/icons/swords.svg +6 -0
  113. package/icons/tag.svg +4 -0
  114. package/icons/trash-2.svg +5 -0
  115. package/icons/unlock.svg +4 -0
  116. package/icons/upload.svg +5 -0
  117. package/icons/user.svg +4 -0
  118. package/icons/users.svg +6 -0
  119. package/icons/volume-2.svg +5 -0
  120. package/icons/x.svg +4 -0
  121. package/package.json +5 -1
  122. package/src/primitives.css +15 -0
@@ -0,0 +1,5 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
2
+ <path d="M3.5 3.5 L20.5 3.5 L20.5 20.5 L3.5 20.5 Z"/>
3
+ <path d="M12 7 L12 8.5"/>
4
+ <path d="M12 11.5 L12 17"/>
5
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
2
+ <path d="M9.5 14.5 L14.5 9.5"/>
3
+ <path d="M13.5 6.5 L16.5 3.5 L20.5 7.5 L17.5 10.5"/>
4
+ <path d="M10.5 17.5 L7.5 20.5 L3.5 16.5 L6.5 13.5"/>
5
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
2
+ <path d="M12 3.5 L3.5 3.5 L3.5 20.5 L20.5 20.5 L20.5 12"/>
3
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
2
+ <path d="M4.5 11.5 L19.5 11.5 L19.5 21.5 L4.5 21.5 Z"/>
3
+ <path d="M8.5 11.5 L8.5 6.5 L15.5 6.5 L15.5 11.5"/>
4
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
2
+ <path d="M14.5 3.5 L20.5 3.5 L20.5 9.5"/>
3
+ <path d="M9.5 20.5 L3.5 20.5 L3.5 14.5"/>
4
+ <path d="M20.5 3.5 L3.5 20.5"/>
5
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
2
+ <path d="M3.5 5.5 L20.5 5.5"/>
3
+ <path d="M3.5 12 L20.5 12"/>
4
+ <path d="M3.5 18.5 L20.5 18.5"/>
5
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
2
+ <path d="M3.5 4.5 L20.5 4.5 L20.5 16.5 L9.5 16.5 L6.5 19.5 L6.5 16.5 L3.5 16.5 Z"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
2
+ <path d="M3.5 12 L20.5 12"/>
3
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
2
+ <path d="M8.5 5.5 L8.5 18.5"/>
3
+ <path d="M15.5 5.5 L15.5 18.5"/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
2
+ <path d="M3.5 20.5 L3.5 16.5 L15.5 4.5 L19.5 8.5 L7.5 20.5 Z"/>
3
+ <path d="M12.5 7.5 L16.5 11.5"/>
4
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
2
+ <path d="M8.5 5.5 L15 12 L8.5 18.5 Z"/>
3
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
2
+ <path d="M12 3.5 L12 20.5"/>
3
+ <path d="M3.5 12 L20.5 12"/>
4
+ </svg>
@@ -0,0 +1,6 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
2
+ <path d="M8.5 4.5 L19.5 4.5 L19.5 15.5"/>
3
+ <path d="M16.5 12.5 L19.5 15.5 L22.5 12.5"/>
4
+ <path d="M15.5 19.5 L4.5 19.5 L4.5 8.5"/>
5
+ <path d="M1.5 11.5 L4.5 8.5 L7.5 11.5"/>
6
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
2
+ <path d="M3.5 3.5 L16.5 3.5 L20.5 7.5 L20.5 20.5 L3.5 20.5 Z"/>
3
+ <path d="M7.5 3.5 L7.5 9.5 L15.5 9.5 L15.5 3.5"/>
4
+ <path d="M7.5 20.5 L7.5 14.5 L16.5 14.5 L16.5 20.5"/>
5
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
2
+ <path d="M9.5 3.5 L15.5 9.5 L9.5 15.5 L3.5 9.5 Z"/>
3
+ <path d="M13.5 13.5 L20.5 20.5"/>
4
+ </svg>
@@ -0,0 +1,6 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
2
+ <path d="M3.5 8.5 L20.5 8.5"/>
3
+ <path d="M3.5 15.5 L20.5 15.5"/>
4
+ <path d="M9.5 5.5 L12.5 8.5 L9.5 11.5 L6.5 8.5 Z"/>
5
+ <path d="M15.5 12.5 L18.5 15.5 L15.5 18.5 L12.5 15.5 Z"/>
6
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
2
+ <path d="M5.5 5.5 L10.5 5.5 L10.5 2.5 L13.5 2.5 L13.5 5.5 L18.5 5.5 L18.5 10.5 L21.5 10.5 L21.5 13.5 L18.5 13.5 L18.5 18.5 L13.5 18.5 L13.5 21.5 L10.5 21.5 L10.5 18.5 L5.5 18.5 L5.5 13.5 L2.5 13.5 L2.5 10.5 L5.5 10.5 Z"/>
3
+ <path d="M12 10 L14 12 L12 14 L10 12 Z" fill="currentColor" stroke="none"/>
4
+ </svg>
@@ -0,0 +1,7 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
2
+ <path d="M8 10 L10 12 L8 14 L6 12 Z"/>
3
+ <path d="M15.5 2.5 L17.5 4.5 L15.5 6.5 L13.5 4.5 Z"/>
4
+ <path d="M15.5 17.5 L17.5 19.5 L15.5 21.5 L13.5 19.5 Z"/>
5
+ <path d="M10 10 L13.5 6.5"/>
6
+ <path d="M10 14 L13.5 17.5"/>
7
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
2
+ <path d="M5.5 3.5 L18.5 3.5 L18.5 14.5 L12 21 L5.5 14.5 Z"/>
3
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
2
+ <path d="M6.5 5.5 L13 12 L6.5 18.5 Z"/>
3
+ <path d="M17.5 5.5 L17.5 18.5"/>
4
+ </svg>
@@ -0,0 +1,278 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg">
2
+ <!-- axi design language - generated by scripts/build.mjs from icons/.
3
+ Edit the files in icons/ and run `npm run build`; do not edit this file. -->
4
+ <symbol id="axi-activity" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
5
+ <path d="M2.5 12 L6 12 L9.5 15.5 L15.5 9.5 L18 12 L21.5 12"/>
6
+ </symbol>
7
+ <symbol id="axi-arrow-down" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
8
+ <path d="M12 3.5 L12 19.5"/>
9
+ <path d="M6 13.5 L12 19.5 L18 13.5"/>
10
+ </symbol>
11
+ <symbol id="axi-arrow-left" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
12
+ <path d="M20.5 12 L4.5 12"/>
13
+ <path d="M10.5 6 L4.5 12 L10.5 18"/>
14
+ </symbol>
15
+ <symbol id="axi-arrow-right" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
16
+ <path d="M3.5 12 L19.5 12"/>
17
+ <path d="M13.5 6 L19.5 12 L13.5 18"/>
18
+ </symbol>
19
+ <symbol id="axi-arrow-up" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
20
+ <path d="M12 20.5 L12 4.5"/>
21
+ <path d="M6 10.5 L12 4.5 L18 10.5"/>
22
+ </symbol>
23
+ <symbol id="axi-calendar" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
24
+ <path d="M3.5 5.5 L20.5 5.5 L20.5 20.5 L3.5 20.5 Z"/>
25
+ <path d="M3.5 10.5 L20.5 10.5"/>
26
+ <path d="M8.5 2.5 L8.5 7.5"/>
27
+ <path d="M15.5 2.5 L15.5 7.5"/>
28
+ </symbol>
29
+ <symbol id="axi-check" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
30
+ <path d="M3.5 12.5 L9.5 18.5 L20.5 7.5"/>
31
+ </symbol>
32
+ <symbol id="axi-check-check" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
33
+ <path d="M1.5 12.5 L6.5 17.5 L15.5 8.5"/>
34
+ <path d="M9.5 15.5 L11.5 17.5 L21.5 7.5"/>
35
+ </symbol>
36
+ <symbol id="axi-chevron-down" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
37
+ <path d="M5.5 9 L12 15.5 L18.5 9"/>
38
+ </symbol>
39
+ <symbol id="axi-chevron-left" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
40
+ <path d="M15 5.5 L8.5 12 L15 18.5"/>
41
+ </symbol>
42
+ <symbol id="axi-chevron-right" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
43
+ <path d="M9 5.5 L15.5 12 L9 18.5"/>
44
+ </symbol>
45
+ <symbol id="axi-chevron-up" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
46
+ <path d="M5.5 15 L12 8.5 L18.5 15"/>
47
+ </symbol>
48
+ <symbol id="axi-circle-alert" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
49
+ <path d="M8.5 1.5 L15.5 1.5 L22.5 8.5 L22.5 15.5 L15.5 22.5 L8.5 22.5 L1.5 15.5 L1.5 8.5 Z"/>
50
+ <path d="M12 6.5 L12 13.5"/>
51
+ <path d="M12 16.5 L12 18"/>
52
+ </symbol>
53
+ <symbol id="axi-circle-check" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
54
+ <path d="M8.5 1.5 L15.5 1.5 L22.5 8.5 L22.5 15.5 L15.5 22.5 L8.5 22.5 L1.5 15.5 L1.5 8.5 Z"/>
55
+ <path d="M7 12 L10.5 15.5 L17 9"/>
56
+ </symbol>
57
+ <symbol id="axi-circle-help" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
58
+ <path d="M8.5 1.5 L15.5 1.5 L22.5 8.5 L22.5 15.5 L15.5 22.5 L8.5 22.5 L1.5 15.5 L1.5 8.5 Z"/>
59
+ <path d="M7 9 L8.5 7.5 L14.5 7.5 L14.5 11.5 L12 11.5 L12 14.5"/>
60
+ <path d="M12 17.5 L12 19"/>
61
+ </symbol>
62
+ <symbol id="axi-circle-x" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
63
+ <path d="M8.5 1.5 L15.5 1.5 L22.5 8.5 L22.5 15.5 L15.5 22.5 L8.5 22.5 L1.5 15.5 L1.5 8.5 Z"/>
64
+ <path d="M8 8 L16 16"/>
65
+ <path d="M16 8 L8 16"/>
66
+ </symbol>
67
+ <symbol id="axi-clock" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
68
+ <path d="M3.5 3.5 L20.5 3.5 L20.5 20.5 L3.5 20.5 Z"/>
69
+ <path d="M12 7.5 L12 12 L16.5 12"/>
70
+ </symbol>
71
+ <symbol id="axi-copy" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
72
+ <path d="M8.5 8.5 L20.5 8.5 L20.5 20.5 L8.5 20.5 Z"/>
73
+ <path d="M15.5 5.5 L15.5 3.5 L3.5 3.5 L3.5 15.5 L5.5 15.5"/>
74
+ </symbol>
75
+ <symbol id="axi-crown" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
76
+ <path d="M3.5 8.5 L7.5 12.5 L12 8 L16.5 12.5 L20.5 8.5 L20.5 17.5 L3.5 17.5 Z"/>
77
+ </symbol>
78
+ <symbol id="axi-download" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
79
+ <path d="M12 2.5 L12 14.5"/>
80
+ <path d="M6.5 9 L12 14.5 L17.5 9"/>
81
+ <path d="M3.5 18.5 L3.5 21.5 L20.5 21.5 L20.5 18.5"/>
82
+ </symbol>
83
+ <symbol id="axi-external-link" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
84
+ <path d="M12.5 4.5 L3.5 4.5 L3.5 20.5 L19.5 20.5 L19.5 11.5"/>
85
+ <path d="M11.5 12.5 L20.5 3.5"/>
86
+ <path d="M13.5 3.5 L20.5 3.5 L20.5 10.5"/>
87
+ </symbol>
88
+ <symbol id="axi-eye" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
89
+ <path d="M2.5 12 L8 6.5 L16 6.5 L21.5 12 L16 17.5 L8 17.5 Z"/>
90
+ <path d="M12 9 L15 12 L12 15 L9 12 Z"/>
91
+ </symbol>
92
+ <symbol id="axi-file" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
93
+ <path d="M5.5 2.5 L14.5 2.5 L19.5 7.5 L19.5 21.5 L5.5 21.5 Z"/>
94
+ <path d="M14.5 2.5 L14.5 7.5 L19.5 7.5"/>
95
+ </symbol>
96
+ <symbol id="axi-file-text" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
97
+ <path d="M5.5 2.5 L14.5 2.5 L19.5 7.5 L19.5 21.5 L5.5 21.5 Z"/>
98
+ <path d="M14.5 2.5 L14.5 7.5 L19.5 7.5"/>
99
+ <path d="M8.5 12.5 L15.5 12.5"/>
100
+ <path d="M8.5 16.5 L15.5 16.5"/>
101
+ </symbol>
102
+ <symbol id="axi-filter" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
103
+ <path d="M4.5 4.5 L19.5 4.5 L13.5 10.5 L13.5 19.5 L10.5 19.5 L10.5 10.5 Z"/>
104
+ </symbol>
105
+ <symbol id="axi-folder" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
106
+ <path d="M2.5 20.5 L2.5 4.5 L8.5 4.5 L11.5 7.5 L21.5 7.5 L21.5 20.5 Z"/>
107
+ </symbol>
108
+ <symbol id="axi-folder-open" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
109
+ <path d="M3.5 18.5 L3.5 4.5 L8.5 4.5 L11.5 7.5 L19.5 7.5 L19.5 11.5"/>
110
+ <path d="M11.5 11.5 L19.5 11.5 L12.5 18.5 L4.5 18.5 Z"/>
111
+ </symbol>
112
+ <symbol id="axi-info" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
113
+ <path d="M3.5 3.5 L20.5 3.5 L20.5 20.5 L3.5 20.5 Z"/>
114
+ <path d="M12 7 L12 8.5"/>
115
+ <path d="M12 11.5 L12 17"/>
116
+ </symbol>
117
+ <symbol id="axi-link" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
118
+ <path d="M9.5 14.5 L14.5 9.5"/>
119
+ <path d="M13.5 6.5 L16.5 3.5 L20.5 7.5 L17.5 10.5"/>
120
+ <path d="M10.5 17.5 L7.5 20.5 L3.5 16.5 L6.5 13.5"/>
121
+ </symbol>
122
+ <symbol id="axi-loader-circle" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
123
+ <path d="M12 3.5 L3.5 3.5 L3.5 20.5 L20.5 20.5 L20.5 12"/>
124
+ </symbol>
125
+ <symbol id="axi-lock" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
126
+ <path d="M4.5 11.5 L19.5 11.5 L19.5 21.5 L4.5 21.5 Z"/>
127
+ <path d="M8.5 11.5 L8.5 6.5 L15.5 6.5 L15.5 11.5"/>
128
+ </symbol>
129
+ <symbol id="axi-maximize-2" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
130
+ <path d="M14.5 3.5 L20.5 3.5 L20.5 9.5"/>
131
+ <path d="M9.5 20.5 L3.5 20.5 L3.5 14.5"/>
132
+ <path d="M20.5 3.5 L3.5 20.5"/>
133
+ </symbol>
134
+ <symbol id="axi-menu" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
135
+ <path d="M3.5 5.5 L20.5 5.5"/>
136
+ <path d="M3.5 12 L20.5 12"/>
137
+ <path d="M3.5 18.5 L20.5 18.5"/>
138
+ </symbol>
139
+ <symbol id="axi-message-square" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
140
+ <path d="M3.5 4.5 L20.5 4.5 L20.5 16.5 L9.5 16.5 L6.5 19.5 L6.5 16.5 L3.5 16.5 Z"/>
141
+ </symbol>
142
+ <symbol id="axi-minus" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
143
+ <path d="M3.5 12 L20.5 12"/>
144
+ </symbol>
145
+ <symbol id="axi-pause" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
146
+ <path d="M8.5 5.5 L8.5 18.5"/>
147
+ <path d="M15.5 5.5 L15.5 18.5"/>
148
+ </symbol>
149
+ <symbol id="axi-pencil" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
150
+ <path d="M3.5 20.5 L3.5 16.5 L15.5 4.5 L19.5 8.5 L7.5 20.5 Z"/>
151
+ <path d="M12.5 7.5 L16.5 11.5"/>
152
+ </symbol>
153
+ <symbol id="axi-play" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
154
+ <path d="M8.5 5.5 L15 12 L8.5 18.5 Z"/>
155
+ </symbol>
156
+ <symbol id="axi-plus" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
157
+ <path d="M12 3.5 L12 20.5"/>
158
+ <path d="M3.5 12 L20.5 12"/>
159
+ </symbol>
160
+ <symbol id="axi-refresh-cw" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
161
+ <path d="M8.5 4.5 L19.5 4.5 L19.5 15.5"/>
162
+ <path d="M16.5 12.5 L19.5 15.5 L22.5 12.5"/>
163
+ <path d="M15.5 19.5 L4.5 19.5 L4.5 8.5"/>
164
+ <path d="M1.5 11.5 L4.5 8.5 L7.5 11.5"/>
165
+ </symbol>
166
+ <symbol id="axi-save" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
167
+ <path d="M3.5 3.5 L16.5 3.5 L20.5 7.5 L20.5 20.5 L3.5 20.5 Z"/>
168
+ <path d="M7.5 3.5 L7.5 9.5 L15.5 9.5 L15.5 3.5"/>
169
+ <path d="M7.5 20.5 L7.5 14.5 L16.5 14.5 L16.5 20.5"/>
170
+ </symbol>
171
+ <symbol id="axi-search" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
172
+ <path d="M9.5 3.5 L15.5 9.5 L9.5 15.5 L3.5 9.5 Z"/>
173
+ <path d="M13.5 13.5 L20.5 20.5"/>
174
+ </symbol>
175
+ <symbol id="axi-settings" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
176
+ <path d="M5.5 5.5 L10.5 5.5 L10.5 2.5 L13.5 2.5 L13.5 5.5 L18.5 5.5 L18.5 10.5 L21.5 10.5 L21.5 13.5 L18.5 13.5 L18.5 18.5 L13.5 18.5 L13.5 21.5 L10.5 21.5 L10.5 18.5 L5.5 18.5 L5.5 13.5 L2.5 13.5 L2.5 10.5 L5.5 10.5 Z"/>
177
+ <path d="M12 10 L14 12 L12 14 L10 12 Z" fill="currentColor" stroke="none"/>
178
+ </symbol>
179
+ <symbol id="axi-settings-2" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
180
+ <path d="M3.5 8.5 L20.5 8.5"/>
181
+ <path d="M3.5 15.5 L20.5 15.5"/>
182
+ <path d="M9.5 5.5 L12.5 8.5 L9.5 11.5 L6.5 8.5 Z"/>
183
+ <path d="M15.5 12.5 L18.5 15.5 L15.5 18.5 L12.5 15.5 Z"/>
184
+ </symbol>
185
+ <symbol id="axi-share-2" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
186
+ <path d="M8 10 L10 12 L8 14 L6 12 Z"/>
187
+ <path d="M15.5 2.5 L17.5 4.5 L15.5 6.5 L13.5 4.5 Z"/>
188
+ <path d="M15.5 17.5 L17.5 19.5 L15.5 21.5 L13.5 19.5 Z"/>
189
+ <path d="M10 10 L13.5 6.5"/>
190
+ <path d="M10 14 L13.5 17.5"/>
191
+ </symbol>
192
+ <symbol id="axi-shield" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
193
+ <path d="M5.5 3.5 L18.5 3.5 L18.5 14.5 L12 21 L5.5 14.5 Z"/>
194
+ </symbol>
195
+ <symbol id="axi-skip-forward" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
196
+ <path d="M6.5 5.5 L13 12 L6.5 18.5 Z"/>
197
+ <path d="M17.5 5.5 L17.5 18.5"/>
198
+ </symbol>
199
+ <symbol id="axi-square" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
200
+ <path d="M4.5 4.5 L19.5 4.5 L19.5 19.5 L4.5 19.5 Z"/>
201
+ </symbol>
202
+ <symbol id="axi-swords" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
203
+ <path d="M3.5 6.5 L16.5 19.5"/>
204
+ <path d="M20.5 6.5 L7.5 19.5"/>
205
+ <path d="M12.5 18.5 L15.5 15.5"/>
206
+ <path d="M8.5 15.5 L11.5 18.5"/>
207
+ </symbol>
208
+ <symbol id="axi-tag" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
209
+ <path d="M2.5 2.5 L13.5 2.5 L21.5 10.5 L10.5 21.5 L2.5 13.5 Z"/>
210
+ <path d="M6.5 4.5 L8.5 6.5 L6.5 8.5 L4.5 6.5 Z"/>
211
+ </symbol>
212
+ <symbol id="axi-trash-2" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
213
+ <path d="M2.5 6.5 L21.5 6.5"/>
214
+ <path d="M5.5 6.5 L5.5 21.5 L18.5 21.5 L18.5 6.5"/>
215
+ <path d="M9.5 6.5 L9.5 2.5 L14.5 2.5 L14.5 6.5"/>
216
+ </symbol>
217
+ <symbol id="axi-unlock" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
218
+ <path d="M4.5 11.5 L19.5 11.5 L19.5 21.5 L4.5 21.5 Z"/>
219
+ <path d="M8.5 11.5 L8.5 6.5 L15.5 6.5"/>
220
+ </symbol>
221
+ <symbol id="axi-upload" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
222
+ <path d="M12 14.5 L12 2.5"/>
223
+ <path d="M6.5 8 L12 2.5 L17.5 8"/>
224
+ <path d="M3.5 18.5 L3.5 21.5 L20.5 21.5 L20.5 18.5"/>
225
+ </symbol>
226
+ <symbol id="axi-user" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
227
+ <path d="M12 3.5 L16.5 8 L12 12.5 L7.5 8 Z"/>
228
+ <path d="M4.5 21.5 L4.5 19.5 L8.5 15.5 L15.5 15.5 L19.5 19.5 L19.5 21.5"/>
229
+ </symbol>
230
+ <symbol id="axi-users" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
231
+ <path d="M9 2.5 L13 6.5 L9 10.5 L5 6.5 Z"/>
232
+ <path d="M1.5 20.5 L1.5 18.5 L5.5 14.5 L12.5 14.5 L16.5 18.5 L16.5 20.5"/>
233
+ <path d="M17 5.5 L20 8.5 L17 11.5"/>
234
+ <path d="M17 14.5 L19.5 14.5 L22.5 17.5 L22.5 20.5"/>
235
+ </symbol>
236
+ <symbol id="axi-volume-2" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
237
+ <path d="M2.5 9.5 L7.5 9.5 L12.5 4.5 L12.5 19.5 L7.5 14.5 L2.5 14.5 Z"/>
238
+ <path d="M16.5 8.5 L16.5 15.5"/>
239
+ <path d="M20.5 5.5 L20.5 18.5"/>
240
+ </symbol>
241
+ <symbol id="axi-x" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
242
+ <path d="M5.5 5.5 L18.5 18.5"/>
243
+ <path d="M18.5 5.5 L5.5 18.5"/>
244
+ </symbol>
245
+ <symbol id="axi-alert-circle" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
246
+ <use href="#axi-circle-alert"/>
247
+ </symbol>
248
+ <symbol id="axi-alert-triangle" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
249
+ <use href="#axi-circle-alert"/>
250
+ </symbol>
251
+ <symbol id="axi-check-circle" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
252
+ <use href="#axi-circle-check"/>
253
+ </symbol>
254
+ <symbol id="axi-check-circle-2" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
255
+ <use href="#axi-circle-check"/>
256
+ </symbol>
257
+ <symbol id="axi-circle" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
258
+ <use href="#axi-square"/>
259
+ </symbol>
260
+ <symbol id="axi-edit-2" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
261
+ <use href="#axi-pencil"/>
262
+ </symbol>
263
+ <symbol id="axi-help-circle" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
264
+ <use href="#axi-circle-help"/>
265
+ </symbol>
266
+ <symbol id="axi-loader-2" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
267
+ <use href="#axi-loader-circle"/>
268
+ </symbol>
269
+ <symbol id="axi-square-pen" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
270
+ <use href="#axi-pencil"/>
271
+ </symbol>
272
+ <symbol id="axi-triangle-alert" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
273
+ <use href="#axi-circle-alert"/>
274
+ </symbol>
275
+ <symbol id="axi-x-circle" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
276
+ <use href="#axi-circle-x"/>
277
+ </symbol>
278
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
2
+ <path d="M4.5 4.5 L19.5 4.5 L19.5 19.5 L4.5 19.5 Z"/>
3
+ </svg>
@@ -0,0 +1,6 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
2
+ <path d="M3.5 6.5 L16.5 19.5"/>
3
+ <path d="M20.5 6.5 L7.5 19.5"/>
4
+ <path d="M12.5 18.5 L15.5 15.5"/>
5
+ <path d="M8.5 15.5 L11.5 18.5"/>
6
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
2
+ <path d="M2.5 2.5 L13.5 2.5 L21.5 10.5 L10.5 21.5 L2.5 13.5 Z"/>
3
+ <path d="M6.5 4.5 L8.5 6.5 L6.5 8.5 L4.5 6.5 Z"/>
4
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
2
+ <path d="M2.5 6.5 L21.5 6.5"/>
3
+ <path d="M5.5 6.5 L5.5 21.5 L18.5 21.5 L18.5 6.5"/>
4
+ <path d="M9.5 6.5 L9.5 2.5 L14.5 2.5 L14.5 6.5"/>
5
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
2
+ <path d="M4.5 11.5 L19.5 11.5 L19.5 21.5 L4.5 21.5 Z"/>
3
+ <path d="M8.5 11.5 L8.5 6.5 L15.5 6.5"/>
4
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
2
+ <path d="M12 14.5 L12 2.5"/>
3
+ <path d="M6.5 8 L12 2.5 L17.5 8"/>
4
+ <path d="M3.5 18.5 L3.5 21.5 L20.5 21.5 L20.5 18.5"/>
5
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
2
+ <path d="M12 3.5 L16.5 8 L12 12.5 L7.5 8 Z"/>
3
+ <path d="M4.5 21.5 L4.5 19.5 L8.5 15.5 L15.5 15.5 L19.5 19.5 L19.5 21.5"/>
4
+ </svg>
@@ -0,0 +1,6 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
2
+ <path d="M9 2.5 L13 6.5 L9 10.5 L5 6.5 Z"/>
3
+ <path d="M1.5 20.5 L1.5 18.5 L5.5 14.5 L12.5 14.5 L16.5 18.5 L16.5 20.5"/>
4
+ <path d="M17 5.5 L20 8.5 L17 11.5"/>
5
+ <path d="M17 14.5 L19.5 14.5 L22.5 17.5 L22.5 20.5"/>
6
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
2
+ <path d="M2.5 9.5 L7.5 9.5 L12.5 4.5 L12.5 19.5 L7.5 14.5 L2.5 14.5 Z"/>
3
+ <path d="M16.5 8.5 L16.5 15.5"/>
4
+ <path d="M20.5 5.5 L20.5 18.5"/>
5
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
2
+ <path d="M5.5 5.5 L18.5 18.5"/>
3
+ <path d="M18.5 5.5 L5.5 18.5"/>
4
+ </svg>
package/docs/RULES.md CHANGED
@@ -357,6 +357,70 @@ anything that claims to show liveness.
357
357
 
358
358
  Motion elsewhere is still rationed by rule 4.
359
359
 
360
+ ## 12. An icon is drawn in the language's angles, at control weight
361
+
362
+ An icon is an object, not a rule. The objects here are outlined at
363
+ `--axi-border-control` (3px), so that is the weight a glyph is drawn at — an
364
+ icon at the 2px hairline is a *rule* weight on a thing that is not a rule, and
365
+ inside a 3px-bordered button it reads as a thin drawing in a heavy frame
366
+ rather than as one object.
367
+
368
+ The contract:
369
+
370
+ | | |
371
+ |---|---|
372
+ | Canvas | 24×24 `viewBox`, all geometry inset 1.5 from every edge |
373
+ | Stroke | 3px, `currentColor`, mitered joins, butt caps |
374
+ | Corners | radius 0, as everywhere else |
375
+ | Angles | 0°, 45° and 90°, and nothing between |
376
+ | Curves | none |
377
+ | Coordinates | multiples of 0.5; an axis-aligned stroke sits on an odd half-integer or on the centre axis at 12 |
378
+
379
+ **No curve.** This language has no rounded corner (rule 3) and its motif is a
380
+ rotated square (rule 7). One arc in the set is one exception in the set, and
381
+ the exception is where the eye finds the seam. Where a borrowed metaphor
382
+ genuinely needs a circle, the circle becomes a **diamond if it is a node** — a
383
+ lens, a head, a dot, a knob — and a **square if it is a boundary** — a clock
384
+ face, a frame, a container. The diamond frame reads as a warning sign, so it
385
+ is spent only where warning is the meaning. An octagon was considered as a
386
+ third frame shape and refused for the reason rule 3 refuses a third weight
387
+ step.
388
+
389
+ **No colour of its own.** An icon inherits `currentColor` and is whatever ink
390
+ it sits in. A two-tone glyph with an accent detail would be colour encoding
391
+ nothing, which rule 5 refuses on a chip and rule 10 refuses in a chart.
392
+
393
+ **The centre-axis exemption, precisely.** A 3px stroke centred on a 24 canvas
394
+ spans 10.5–13.5: it can be centred or pixel-aligned, never both. For the few
395
+ glyphs built around a centre line, symmetry wins. The exemption is one
396
+ coordinate wide — `12` — so it cannot spread into a general licence to sit on
397
+ whole integers.
398
+
399
+ **What is mechanically enforced.** `tests/icons.test.mjs` reads every file in
400
+ `icons/` and works from an **allowlist**, not a list of prohibitions. A drawing
401
+ may contain one root `<svg>` and `<path>` elements, and nothing else — a
402
+ `<circle>`, a `<rect>` or a `<polygon>` is rejected for being unlisted rather
403
+ than for being round. The root declares exactly the six attributes in the
404
+ contract above, at exactly those values; a `<path>` may carry `d`, and `fill`
405
+ or `stroke` only at `none` or `currentColor`. Everything else — a
406
+ `transform`, an `rx`, a `stroke-linecap`, a per-element `stroke-width="2"`, a
407
+ colour of any spelling — is an unlisted attribute and fails on that ground.
408
+ A file containing no `<path>` at all fails too, because a drawing with nothing
409
+ in it satisfies every geometric check by having nothing to check.
410
+
411
+ Each `d` is then parsed — tracking the current point through relative
412
+ commands, and reading the extra coordinate pairs of an `M` as the implicit
413
+ linetos they are — and fails on a curve command, an angle that is neither
414
+ axis-aligned nor 45°, a coordinate off the 0.5 grid or outside the live
415
+ area, or an axis-aligned stroke off its permitted centerlines. Both ends of
416
+ every segment are checked, including the moveto point that starts a subpath and
417
+ may never appear as any segment's endpoint.
418
+
419
+ The checker is itself tested: `tests/icons.test.mjs` feeds it a set of drawings
420
+ that must be rejected, one per prohibition. The rule above is therefore a check
421
+ rather than a promise — the same treatment rule 3's weights get in
422
+ `tests/tokens.test.mjs`.
423
+
360
424
  ## Tokens
361
425
 
362
426
  Three layers, in `src/tokens.css` — the only file permitted to contain a colour
@@ -0,0 +1,51 @@
1
+ ISC License
2
+
3
+ Copyright (c) 2026 Lucide Icons and Contributors
4
+
5
+ Permission to use, copy, modify, and/or distribute this software for any
6
+ purpose with or without fee is hereby granted, provided that the above
7
+ copyright notice and this permission notice appear in all copies.
8
+
9
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10
+ WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11
+ MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12
+ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13
+ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14
+ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15
+ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16
+
17
+ ---
18
+
19
+ The following Lucide icons are derived from the Feather project:
20
+
21
+ airplay, alert-circle, alert-octagon, alert-triangle, aperture, arrow-down-circle, arrow-down-left, arrow-down-right, arrow-down, arrow-left-circle, arrow-left, arrow-right-circle, arrow-right, arrow-up-circle, arrow-up-left, arrow-up-right, arrow-up, at-sign, calendar, cast, check, chevron-down, chevron-left, chevron-right, chevron-up, chevrons-down, chevrons-left, chevrons-right, chevrons-up, circle, clipboard, clock, code, columns, command, compass, corner-down-left, corner-down-right, corner-left-down, corner-left-up, corner-right-down, corner-right-up, corner-up-left, corner-up-right, crosshair, database, divide-circle, divide-square, dollar-sign, download, external-link, feather, frown, hash, headphones, help-circle, info, italic, key, layout, life-buoy, link-2, link, loader, lock, log-in, log-out, maximize, meh, minimize, minimize-2, minus-circle, minus-square, minus, monitor, moon, more-horizontal, more-vertical, move, music, navigation-2, navigation, octagon, pause-circle, percent, plus-circle, plus-square, plus, power, radio, rss, search, server, share, shopping-bag, sidebar, smartphone, smile, square, table-2, tablet, target, terminal, trash-2, trash, triangle, tv, type, upload, x-circle, x-octagon, x-square, x, zoom-in, zoom-out
22
+
23
+ The MIT License (MIT) (for the icons listed above)
24
+
25
+ Copyright (c) 2013-present Cole Bemis
26
+
27
+ Permission is hereby granted, free of charge, to any person obtaining a copy
28
+ of this software and associated documentation files (the "Software"), to deal
29
+ in the Software without restriction, including without limitation the rights
30
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
31
+ copies of the Software, and to permit persons to whom the Software is
32
+ furnished to do so, subject to the following conditions:
33
+
34
+ The above copyright notice and this permission notice shall be included in all
35
+ copies or substantial portions of the Software.
36
+
37
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
38
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
39
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
40
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
41
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
42
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
43
+ SOFTWARE.
44
+
45
+ ---
46
+
47
+ The axi icon set derives its vocabulary from Lucide: the inventory of icons,
48
+ the metaphors they use and the names they are called by. No Lucide path data
49
+ is used. Every glyph is re-drawn against axi's own grammar (docs/RULES.md,
50
+ rule 12), which differs from Lucide's in stroke weight, terminals, joins,
51
+ corner radius and the prohibition on curves.
@@ -0,0 +1,3 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
2
+ <path d="M2.5 12 L6 12 L9.5 15.5 L15.5 9.5 L18 12 L21.5 12"/>
3
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linejoin="miter">
2
+ <path d="M12 3.5 L12 19.5"/>
3
+ <path d="M6 13.5 L12 19.5 L18 13.5"/>
4
+ </svg>