@codady/icax 0.0.5 → 0.0.6

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 (305) hide show
  1. package/README.md +600 -0
  2. package/dist/icax.cjs.js +412 -24
  3. package/dist/icax.cjs.min.js +4 -4
  4. package/dist/icax.esm.js +412 -24
  5. package/dist/icax.esm.min.js +4 -4
  6. package/dist/icax.umd.js +412 -24
  7. package/dist/icax.umd.min.js +4 -4
  8. package/package.json +10 -7
  9. package/script-note.js +2 -2
  10. package/src/icax.js +268 -9
  11. package/src/icax.ts +289 -13
  12. package/src/icaxArrowDown.js +3 -0
  13. package/src/icaxArrowDown.ts +14 -0
  14. package/src/icaxArrowDownCircle.js +4 -0
  15. package/src/icaxArrowDownCircle.ts +13 -0
  16. package/src/icaxArrowDownSquare.js +4 -0
  17. package/src/icaxArrowDownSquare.ts +14 -0
  18. package/src/icaxArrowDownSquircle.js +4 -0
  19. package/src/icaxArrowDownSquircle.ts +14 -0
  20. package/src/icaxArrowEnd.js +3 -0
  21. package/src/icaxArrowEnd.ts +12 -0
  22. package/src/icaxArrowEndCircle.js +4 -0
  23. package/src/icaxArrowEndCircle.ts +12 -0
  24. package/src/icaxArrowEndDown.js +3 -0
  25. package/src/icaxArrowEndDown.ts +13 -0
  26. package/src/icaxArrowEndSquare.js +4 -0
  27. package/src/icaxArrowEndSquare.ts +13 -0
  28. package/src/icaxArrowEndSquircle.js +4 -0
  29. package/src/icaxArrowEndSquircle.ts +13 -0
  30. package/src/icaxArrowEndUp.js +3 -0
  31. package/src/icaxArrowEndUp.ts +13 -0
  32. package/src/icaxArrowStart.js +3 -0
  33. package/src/icaxArrowStart.ts +12 -0
  34. package/src/icaxArrowStartCircle.js +4 -0
  35. package/src/icaxArrowStartCircle.ts +12 -0
  36. package/src/icaxArrowStartDown.js +3 -0
  37. package/src/icaxArrowStartDown.ts +12 -0
  38. package/src/icaxArrowStartSquare.js +4 -0
  39. package/src/icaxArrowStartSquare.ts +13 -0
  40. package/src/icaxArrowStartSquircle.js +4 -0
  41. package/src/icaxArrowStartSquircle.ts +13 -0
  42. package/src/icaxArrowStartUp.js +3 -0
  43. package/src/icaxArrowStartUp.ts +13 -0
  44. package/src/icaxArrowUp.js +3 -0
  45. package/src/icaxArrowUp.ts +12 -0
  46. package/src/icaxArrowUpCircle.js +4 -0
  47. package/src/icaxArrowUpCircle.ts +12 -0
  48. package/src/icaxArrowUpSquare.js +4 -0
  49. package/src/icaxArrowUpSquare.ts +14 -0
  50. package/src/icaxArrowUpSquircle.js +4 -0
  51. package/src/icaxArrowUpSquircle.ts +15 -0
  52. package/src/icaxBubble.js +4 -0
  53. package/src/icaxBubble.ts +17 -0
  54. package/src/icaxCheck.js +1 -1
  55. package/src/icaxCheck.ts +1 -1
  56. package/src/icaxCheckCircle.js +4 -0
  57. package/src/icaxCheckCircle.ts +14 -0
  58. package/src/icaxCheckFlower.js +4 -0
  59. package/src/icaxCheckFlower.ts +15 -0
  60. package/src/icaxCheckSquare.js +4 -0
  61. package/src/icaxCheckSquare.ts +14 -0
  62. package/src/icaxCircle.js +2 -1
  63. package/src/icaxCircle.ts +2 -1
  64. package/src/icaxClose.js +1 -1
  65. package/src/icaxClose.ts +1 -1
  66. package/src/icaxCloseCircle.js +4 -0
  67. package/src/icaxCloseCircle.ts +12 -0
  68. package/src/icaxCloseSquare.js +4 -0
  69. package/src/icaxCloseSquare.ts +13 -0
  70. package/src/icaxCode.js +3 -0
  71. package/src/icaxCodeH.js +3 -0
  72. package/src/icaxCodeH.ts +14 -0
  73. package/src/icaxCodeHCircle.js +4 -0
  74. package/src/icaxCodeHCircle.ts +15 -0
  75. package/src/icaxCodeV.js +3 -0
  76. package/src/icaxCodeV.ts +14 -0
  77. package/src/icaxCodeVCircle.js +4 -0
  78. package/src/icaxCodeVCircle.ts +13 -0
  79. package/src/icaxCollapse.js +3 -0
  80. package/src/icaxCollapse.ts +12 -0
  81. package/src/icaxCollapseH.js +3 -0
  82. package/src/icaxCollapseH.ts +13 -0
  83. package/src/icaxCollapseV.js +3 -0
  84. package/src/icaxCollapseV.ts +13 -0
  85. package/src/icaxCompactDown.js +3 -0
  86. package/src/icaxCompactDown.ts +16 -0
  87. package/src/icaxCompactEnd.js +3 -0
  88. package/src/icaxCompactEnd.ts +12 -0
  89. package/src/icaxCompactStart.js +3 -0
  90. package/src/icaxCompactStart.ts +13 -0
  91. package/src/icaxCompactUp.js +3 -0
  92. package/src/icaxCompactUp.ts +16 -0
  93. package/src/icaxCornerDownEnd.js +3 -0
  94. package/src/icaxCornerDownEnd.ts +13 -0
  95. package/src/icaxCornerDownStart.js +3 -0
  96. package/src/icaxCornerDownStart.ts +13 -0
  97. package/src/icaxCornerEndDown.js +3 -0
  98. package/src/icaxCornerEndDown.ts +14 -0
  99. package/src/icaxCornerEndUp.js +3 -0
  100. package/src/icaxCornerEndUp.ts +14 -0
  101. package/src/icaxCornerStartDown.js +3 -0
  102. package/src/icaxCornerStartDown.ts +14 -0
  103. package/src/icaxCornerStartUp.js +3 -0
  104. package/src/icaxCornerStartUp.ts +14 -0
  105. package/src/icaxCornerUpEnd.js +3 -0
  106. package/src/icaxCornerUpEnd.ts +13 -0
  107. package/src/icaxCornerUpStart.js +3 -0
  108. package/src/icaxCornerUpStart.ts +13 -0
  109. package/src/icaxDivide.js +1 -1
  110. package/src/icaxDivide.ts +1 -1
  111. package/src/icaxDown.js +1 -1
  112. package/src/icaxDown.ts +1 -1
  113. package/src/icaxDownCircle.js +4 -0
  114. package/src/icaxDownCircle.ts +15 -0
  115. package/src/icaxDownSquare.js +4 -0
  116. package/src/icaxDownSquare.ts +12 -0
  117. package/src/icaxDownSquircle.js +4 -0
  118. package/src/icaxDownSquircle.ts +13 -0
  119. package/src/icaxDownload.js +3 -0
  120. package/src/icaxDownload.ts +13 -0
  121. package/src/icaxEnd.js +3 -0
  122. package/src/icaxEnd.ts +11 -0
  123. package/src/icaxEndCircle.js +4 -0
  124. package/src/icaxEndCircle.ts +12 -0
  125. package/src/icaxEndSquare.js +4 -0
  126. package/src/icaxEndSquare.ts +13 -0
  127. package/src/icaxEndSquircle.js +4 -0
  128. package/src/icaxEndSquircle.ts +13 -0
  129. package/src/icaxExpand.js +3 -0
  130. package/src/icaxExpand.ts +13 -0
  131. package/src/icaxExpandH.js +3 -0
  132. package/src/icaxExpandH.ts +14 -0
  133. package/src/icaxExpandV.js +3 -0
  134. package/src/icaxExpandV.ts +13 -0
  135. package/src/icaxFlower.js +4 -0
  136. package/src/icaxFlower.ts +15 -0
  137. package/src/icaxForvward.js +3 -0
  138. package/src/icaxForward.js +3 -0
  139. package/src/icaxForward.ts +16 -0
  140. package/src/icaxInfo.js +3 -0
  141. package/src/icaxInfo.ts +13 -0
  142. package/src/icaxInfoCircle.ts +13 -0
  143. package/src/icaxIssue.js +3 -0
  144. package/src/icaxIssue.ts +13 -0
  145. package/src/icaxIssueCircle.js +4 -0
  146. package/src/icaxIssueCircle.ts +13 -0
  147. package/src/icaxLogin.js +3 -0
  148. package/src/icaxLogin.ts +14 -0
  149. package/src/icaxLogout.js +3 -0
  150. package/src/icaxLogout.ts +14 -0
  151. package/src/icaxLongDown.js +3 -0
  152. package/src/icaxLongDown.ts +13 -0
  153. package/src/icaxLongEnd.js +3 -0
  154. package/src/icaxLongEnd.ts +13 -0
  155. package/src/icaxLongStart.js +3 -0
  156. package/src/icaxLongStart.ts +13 -0
  157. package/src/icaxLongUp.js +3 -0
  158. package/src/icaxLongUp.ts +13 -0
  159. package/src/icaxMinus.js +1 -1
  160. package/src/icaxMinus.ts +1 -1
  161. package/src/icaxMinusCircle.js +4 -0
  162. package/src/icaxMinusCircle.ts +12 -0
  163. package/src/icaxMinusSquare.js +4 -0
  164. package/src/icaxMinusSquare.ts +12 -0
  165. package/src/icaxMute.js +4 -0
  166. package/src/icaxMute.ts +17 -0
  167. package/src/icaxNext.js +3 -0
  168. package/src/icaxNext.ts +16 -0
  169. package/src/icaxPause.js +3 -0
  170. package/src/icaxPause.ts +16 -0
  171. package/src/icaxPauseCircle.js +4 -0
  172. package/src/icaxPauseCircle.ts +14 -0
  173. package/src/icaxPercent.js +1 -1
  174. package/src/icaxPercent.ts +1 -1
  175. package/src/icaxPlay - /345/211/257/346/234/254.js" +3 -0
  176. package/src/icaxPlay.js +3 -0
  177. package/src/icaxPlay.ts +14 -0
  178. package/src/icaxPlayCircle.js +4 -0
  179. package/src/icaxPlayCircle.ts +14 -0
  180. package/src/icaxPlus.js +1 -1
  181. package/src/icaxPlus.ts +1 -1
  182. package/src/icaxPlusCircle.js +4 -0
  183. package/src/icaxPlusCircle.ts +12 -0
  184. package/src/icaxPlusSquare.js +4 -0
  185. package/src/icaxPlusSquare.ts +13 -0
  186. package/src/icaxPrev.js +3 -0
  187. package/src/icaxPrev.ts +16 -0
  188. package/src/icaxRefresh.js +3 -0
  189. package/src/icaxRefresh.ts +13 -0
  190. package/src/icaxRepeat.js +3 -0
  191. package/src/icaxRepeat.ts +16 -0
  192. package/src/icaxRewind.js +3 -0
  193. package/src/icaxRewind.ts +16 -0
  194. package/src/icaxRotateCcw.js +3 -0
  195. package/src/icaxRotateCcw.ts +13 -0
  196. package/src/icaxRotateCw.js +3 -0
  197. package/src/icaxRotateCw.ts +13 -0
  198. package/src/icaxSearch.js +4 -0
  199. package/src/icaxSearch.ts +14 -0
  200. package/src/icaxSearchCircle.js +4 -0
  201. package/src/icaxSearchCircle.ts +15 -0
  202. package/src/icaxSearchSquare.js +4 -0
  203. package/src/icaxSearchSquare.ts +16 -0
  204. package/src/icaxShuffle.js +3 -0
  205. package/src/icaxShuffle.ts +16 -0
  206. package/src/icaxSquare.js +2 -1
  207. package/src/icaxSquare.ts +2 -1
  208. package/src/icaxSquircle.js +4 -0
  209. package/src/icaxSquircle.ts +13 -0
  210. package/src/icaxStart.js +3 -0
  211. package/src/icaxStart.ts +11 -0
  212. package/src/icaxStartCircle.js +4 -0
  213. package/src/icaxStartCircle.ts +12 -0
  214. package/src/icaxStartSqaure.js +4 -0
  215. package/src/icaxStartSqaure.ts +13 -0
  216. package/src/icaxStartSquircle.js +4 -0
  217. package/src/icaxStartSquircle.ts +13 -0
  218. package/src/icaxStopCircle.js +4 -0
  219. package/src/icaxStopCircle.ts +14 -0
  220. package/src/icaxSwapH.js +3 -0
  221. package/src/icaxSwapH.ts +14 -0
  222. package/src/icaxSwapV.js +3 -0
  223. package/src/icaxSwapV.ts +16 -0
  224. package/src/icaxTriangleDown.js +3 -0
  225. package/src/icaxTriangleDown.ts +13 -0
  226. package/src/icaxTriangleDownSquircle.js +4 -0
  227. package/src/icaxTriangleDownSquircle.ts +14 -0
  228. package/src/icaxTriangleEnd.js +3 -0
  229. package/src/icaxTriangleEnd.ts +13 -0
  230. package/src/icaxTriangleEndSquircle.js +4 -0
  231. package/src/icaxTriangleEndSquircle.ts +14 -0
  232. package/src/icaxTriangleStart.js +3 -0
  233. package/src/icaxTriangleStart.ts +13 -0
  234. package/src/icaxTriangleStartSquircle.js +4 -0
  235. package/src/icaxTriangleStartSquircle.ts +14 -0
  236. package/src/icaxTriangleUp.js +3 -0
  237. package/src/icaxTriangleUp.ts +13 -0
  238. package/src/icaxTriangleUpSquircle.js +4 -0
  239. package/src/icaxTriangleUpSquircle.ts +14 -0
  240. package/src/icaxTurnDown.js +3 -0
  241. package/src/icaxTurnDown.ts +13 -0
  242. package/src/icaxTurnEnd.js +3 -0
  243. package/src/icaxTurnEnd.ts +13 -0
  244. package/src/icaxTurnStart.js +3 -0
  245. package/src/icaxTurnStart.ts +13 -0
  246. package/src/icaxTurnUp.js +3 -0
  247. package/src/icaxTurnUp.ts +13 -0
  248. package/src/icaxUp.js +1 -1
  249. package/src/icaxUp.ts +1 -1
  250. package/src/icaxUpCircle.js +5 -0
  251. package/src/icaxUpCircle.ts +13 -0
  252. package/src/icaxUpSquare.js +5 -0
  253. package/src/icaxUpSquare.ts +13 -0
  254. package/src/icaxUpSquircle.js +5 -0
  255. package/src/icaxUpSquircle.ts +14 -0
  256. package/src/icaxUpload.js +3 -0
  257. package/src/icaxUpload.ts +13 -0
  258. package/src/icaxVolume.js +4 -0
  259. package/src/icaxVolume.ts +17 -0
  260. package/src/icaxVolume1.js +4 -0
  261. package/src/icaxVolume1.ts +17 -0
  262. package/src/icaxVolume2.js +4 -0
  263. package/src/icaxVolume2.ts +17 -0
  264. package/src/icaxWarn.js +3 -0
  265. package/src/icaxWarn.ts +13 -0
  266. package/src/icaxWarnCircle.js +3 -0
  267. package/src/icaxWarnCircle.ts +13 -0
  268. package/src/icaxZoomIn.js +4 -0
  269. package/src/icaxZoomIn.ts +14 -0
  270. package/src/icaxZoomOut.js +4 -0
  271. package/src/icaxZoomOut.ts +14 -0
  272. package/src/icaxinfoCircle.js +4 -0
  273. package/src/rtlStyle.js +2 -2
  274. package/src/rtlStyle.ts +2 -2
  275. package/src/shapeBubble.js +2 -0
  276. package/src/shapeBubble.ts +5 -0
  277. package/src/shapeCircle.js +2 -0
  278. package/src/shapeCircle.ts +2 -0
  279. package/src/shapeFlower.js +2 -0
  280. package/src/shapeFlower.ts +5 -0
  281. package/src/shapeSearch.js +2 -0
  282. package/src/shapeSearch.ts +3 -0
  283. package/src/shapeSquare.js +2 -0
  284. package/src/shapeSquare.ts +2 -0
  285. package/src/shapeSquircle.js +2 -0
  286. package/src/shapeSquircle.ts +4 -0
  287. package/src/shapeVolume.js +2 -0
  288. package/src/shapeVolume.ts +7 -0
  289. package/src/wrap.js +5 -4
  290. package/src/wrap.ts +6 -3
  291. package/types/icax.d.ts +3 -1
  292. package/src/icaxClipboard - /345/211/257/346/234/254.js" +0 -3
  293. package/src/icaxClose - /345/211/257/346/234/254.js" +0 -3
  294. package/src/icaxCopy - /345/211/257/346/234/254.js" +0 -3
  295. package/src/icaxDivide - /345/211/257/346/234/254.js" +0 -3
  296. package/src/icaxLeft - /345/211/257/346/234/254.js" +0 -3
  297. package/src/icaxLeft.js +0 -3
  298. package/src/icaxLeft.ts +0 -11
  299. package/src/icaxMinus - /345/211/257/346/234/254.js" +0 -3
  300. package/src/icaxPercent - /345/211/257/346/234/254.js" +0 -3
  301. package/src/icaxPlus - /345/211/257/346/234/254.js" +0 -3
  302. package/src/icaxRight - /345/211/257/346/234/254.js" +0 -3
  303. package/src/icaxRight.js +0 -3
  304. package/src/icaxRight.ts +0 -11
  305. package/src/icaxSquare - /345/211/257/346/234/254.js" +0 -3
package/README.md CHANGED
@@ -0,0 +1,600 @@
1
+ # Icax - Lightweight SVG Icon Component System
2
+
3
+ ## 🌟 Introduction
4
+
5
+ **Icax** is a lightweight, high-performance SVG icon component system designed for modern web applications. It offers over 100 carefully crafted icons, supports complete style customization, and is specially optimized for RTL (right-to-left) layout support.
6
+
7
+ ## ✨ Core Features
8
+
9
+ ### 🎯 **Comprehensive Icon Library**
10
+ - **Basic Shapes**: Circle, square, squircle (rounded square), flower, bubble
11
+ - **Directional Indicators**: Arrows in all directions, start/end icons
12
+ - **Interactive Operations**: Check, close, plus/minus, expand/collapse
13
+ - **Media Controls**: Play, pause, volume control, forward/rewind
14
+ - **File Operations**: Upload, download, copy, clipboard
15
+ - **Status Feedback**: Warning, info, issue, search
16
+ - **Special Arrows**: Long arrows, compact arrows, turn arrows, corner arrows
17
+
18
+ ### 🎨 **Fully Customizable**
19
+ - **Size**: Any size (default: 1em)
20
+ - **Color**: Supports any color value (default: currentColor)
21
+ - **Stroke**: Adjustable thickness, line cap, line join
22
+ - **CSS Classes**: Add custom CSS classes
23
+ - **RTL Support**: Automatic mirroring for RTL layouts
24
+
25
+ ### 🚀 **Zero Dependencies**
26
+ - Pure JavaScript implementation
27
+ - No external dependencies
28
+ - Tiny file size (~20KB gzipped)
29
+
30
+ ### 🌐 **Universal Compatibility**
31
+ - Works with any frontend framework (React, Vue, Angular, etc.)
32
+ - Supports CommonJS, ES6 modules, and UMD
33
+ - Compatible with all modern browsers
34
+
35
+ ## 📦 Installation
36
+
37
+ ### npm/yarn/pnpm
38
+ ```bash
39
+ npm install @codady/icax
40
+ # or
41
+ yarn add @codady/icax
42
+ # or
43
+ pnpm add @codady/icax
44
+ ```
45
+
46
+ ### CDN
47
+ ```html
48
+ <script src="https://unpkg.com/@codady/icax"></script>
49
+ ```
50
+
51
+ ## 🚀 Quick Start
52
+
53
+ ### Basic Usage
54
+ ```javascript
55
+ // ES6 Module
56
+ import { icax } from '@codady/icax';
57
+
58
+ // Get SVG string
59
+ const checkIcon = icax.check();
60
+ const arrowIcon = icax.arrowStart({ size: '24px', color: '#007bff' });
61
+
62
+ // Insert into HTML
63
+ document.getElementById('icon-container').innerHTML = checkIcon;
64
+ ```
65
+
66
+ ### With Custom Options
67
+ ```javascript
68
+ const customIcon = icax.checkCircle({
69
+ size: '2em',
70
+ color: 'green',
71
+ thickness: 3,
72
+ linecap: 'square',
73
+ linejoin: 'miter',
74
+ classes: 'my-icon custom-class'
75
+ });
76
+ ```
77
+
78
+ ## 📖 API Reference
79
+
80
+ ### Icon Functions
81
+ All icons follow the same pattern:
82
+ ```javascript
83
+ icax.iconName(options)
84
+ ```
85
+
86
+ ### Options Object
87
+ | Parameter | Type | Default | Description |
88
+ |-----------|------|---------|-------------|
89
+ | `size` | string | '1em' | Icon dimensions (width and height) |
90
+ | `color` | string | 'currentColor' | Stroke color |
91
+ | `thickness` | number | 2 | Stroke width in pixels |
92
+ | `linecap` | string | 'round' | Stroke line cap (butt, round, square) |
93
+ | `linejoin` | string | 'round' | Stroke line join (miter, round, bevel) |
94
+ | `classes` | string/array | '' | Additional CSS classes |
95
+
96
+ ### Available Icons (Categories)
97
+
98
+ #### Basic Shapes
99
+ ```javascript
100
+ icax.square() // Square icon
101
+ icax.circle() // Circle icon
102
+ icax.squircle() // Rounded square
103
+ icax.flower() // Flower shape
104
+ icax.bubble() // Speech bubble
105
+ ```
106
+
107
+ #### Directional Arrows
108
+ ```javascript
109
+ // Simple arrows
110
+ icax.start() // Left arrow
111
+ icax.end() // Right arrow
112
+ icax.up() // Up arrow
113
+ icax.down() // Down arrow
114
+
115
+ // With shapes
116
+ icax.startCircle() // Left arrow in circle
117
+ icax.endSquare() // Right arrow in square
118
+ icax.upSquircle() // Up arrow in squircle
119
+ ```
120
+
121
+ #### Interactive Icons
122
+ ```javascript
123
+ icax.check() // Check mark
124
+ icax.close() // Close/X icon
125
+ icax.plus() // Plus sign
126
+ icax.minus() // Minus sign
127
+ icax.copy() // Copy icon
128
+ icax.clipboard() // Clipboard
129
+ ```
130
+
131
+ #### Media Controls
132
+ ```javascript
133
+ icax.play() // Play button
134
+ icax.pause() // Pause button
135
+ icax.volume() // Volume icon
136
+ icax.volume1() // Volume 1 bar
137
+ icax.volume2() // Volume 2 bars
138
+ icax.mute() // Mute icon
139
+ icax.prev() // Previous track
140
+ icax.next() // Next track
141
+ ```
142
+
143
+ #### Status & Feedback
144
+ ```javascript
145
+ icax.info() // Info icon
146
+ icax.warn() // Warning icon
147
+ icax.issue() // Issue/help icon
148
+ icax.search() // Search icon
149
+ icax.zoomIn() // Zoom in
150
+ icax.zoomOut() // Zoom out
151
+ ```
152
+
153
+ #### File Operations
154
+ ```javascript
155
+ icax.upload() // Upload icon
156
+ icax.download() // Download icon
157
+ ```
158
+
159
+ ## 🎨 Styling Examples
160
+
161
+ ### Using CSS Variables
162
+ ```css
163
+ :root {
164
+ --icon-color: #333;
165
+ --icon-size: 24px;
166
+ --icon-thickness: 2;
167
+ }
168
+
169
+ .icon {
170
+ color: var(--icon-color);
171
+ font-size: var(--icon-size);
172
+ }
173
+ ```
174
+
175
+ ```javascript
176
+ const icon = icax.check({
177
+ color: 'var(--icon-color)',
178
+ size: 'var(--icon-size)',
179
+ thickness: 'var(--icon-thickness)'
180
+ });
181
+ ```
182
+
183
+ ### Dynamic Theming
184
+ ```javascript
185
+ function getIcon(theme) {
186
+ return icax.checkCircle({
187
+ color: theme === 'dark' ? '#ffffff' : '#000000',
188
+ size: theme === 'compact' ? '16px' : '24px'
189
+ });
190
+ }
191
+ ```
192
+
193
+ ## 🌍 RTL Support
194
+
195
+ Icax automatically handles RTL layouts:
196
+ ```html
197
+ <html dir="rtl">
198
+ <!-- Icons will automatically mirror when needed -->
199
+ </html>
200
+ ```
201
+
202
+ Manual RTL control:
203
+ ```javascript
204
+ // Some icons have built-in RTL awareness
205
+ icax.start() // Will mirror in RTL mode
206
+ icax.end() // Will mirror in RTL mode
207
+ ```
208
+
209
+ ## 🔧 Advanced Usage
210
+
211
+ ### React Component Example
212
+ ```jsx
213
+ import React from 'react';
214
+ import { icax } from '@codady/icax';
215
+
216
+ const Icon = ({ name, ...props }) => {
217
+ const iconHtml = icax[name](props);
218
+ return <div dangerouslySetInnerHTML={{ __html: iconHtml }} />;
219
+ };
220
+
221
+ // Usage
222
+ <Icon name="check" size="32px" color="green" />
223
+ ```
224
+
225
+ ### Vue Component Example
226
+ ```vue
227
+ <template>
228
+ <div v-html="iconSvg"></div>
229
+ </template>
230
+
231
+ <script>
232
+ import { icax } from '@codady/icax';
233
+
234
+ export default {
235
+ props: {
236
+ name: String,
237
+ size: { type: String, default: '1em' },
238
+ color: { type: String, default: 'currentColor' }
239
+ },
240
+ computed: {
241
+ iconSvg() {
242
+ return icax[this.name]({
243
+ size: this.size,
244
+ color: this.color
245
+ });
246
+ }
247
+ }
248
+ };
249
+ </script>
250
+ ```
251
+
252
+ ### Batch Processing
253
+ ```javascript
254
+ // Generate multiple icons with same style
255
+ const iconConfig = {
256
+ size: '20px',
257
+ color: '#666',
258
+ thickness: 1.5
259
+ };
260
+
261
+ const icons = {
262
+ check: icax.check(iconConfig),
263
+ close: icax.close(iconConfig),
264
+ plus: icax.plus(iconConfig)
265
+ };
266
+ ```
267
+
268
+ ## 📊 Performance
269
+
270
+ - **File Size**: ~20KB (gzipped)
271
+ - **Render Speed**: Instant SVG generation
272
+ - **Memory Usage**: Minimal, no runtime overhead
273
+ - **Tree Shaking**: Fully supported
274
+
275
+ ## 📄 License
276
+
277
+ MIT License - see [LICENSE](LICENSE) for details.
278
+
279
+ This software supports the MIT License, allowing free learning and commercial use, but please retain the terms 'Icax' and 'ICAX' within the software.
280
+
281
+ ## 🔗 Links
282
+
283
+ - **Official Website**: [https://icax.axui.cn](https://icax.axui.cn)
284
+ - **GitHub Repository**: [https://github.com/codady/icax](https://github.com/codady/icax)
285
+ - **Gitee Repository**: [https://gitee.com/codady/icax](https://gitee.com/codady/icax)
286
+ - **NPM Package**: [https://www.npmjs.com/package/@codady/icax](https://www.npmjs.com/package/@codady/icax)
287
+ - **Issue Tracker**:
288
+ - GitHub: [https://github.com/codady/icax/issues](https://github.com/codady/icax/issues)
289
+ - Gitee: [https://gitee.com/codady/icax/issues](https://gitee.com/codady/icax/issues)
290
+ - **Support**: QQ Group: 952502085
291
+
292
+ ## 🙏 Acknowledgments
293
+
294
+ Thanks to all contributors and the open-source community for making this project possible.
295
+
296
+ ---
297
+
298
+ **Icax** - Making beautiful, customizable SVG icons simple and accessible for everyone.
299
+
300
+ ---
301
+
302
+ # Icax - 轻量级SVG图标组件系统
303
+
304
+ ## 🌟 简介
305
+
306
+ **Icax** 是一个轻量级、高性能的SVG图标组件系统,专为现代Web应用设计。它提供了100多个精心设计的图标,支持完全自定义样式,并特别优化了RTL(从右到左)布局支持。
307
+
308
+ ## ✨ 核心特性
309
+
310
+ ### 🎯 **全面的图标库**
311
+ - **基础形状**:圆形、方形、圆角方形(squircle)、花朵、气泡等
312
+ - **方向指示**:上下左右箭头、开始结束图标
313
+ - **交互操作**:勾选、关闭、加减、展开折叠
314
+ - **多媒体控制**:播放、暂停、音量控制、快进快退
315
+ - **文件操作**:上传、下载、复制、剪贴板
316
+ - **状态反馈**:警告、信息、问题、搜索
317
+ - **特殊箭头**:长箭头、紧凑箭头、转向箭头、角落箭头
318
+
319
+ ### 🎨 **完全可定制**
320
+ - **尺寸**:任意大小(默认1em)
321
+ - **颜色**:支持任何颜色值(默认currentColor)
322
+ - **描边**:可调粗细、端点样式、连接样式
323
+ - **CSS类**:添加自定义CSS类
324
+ - **RTL支持**:自动镜像支持RTL布局
325
+
326
+ ### 🚀 **零依赖**
327
+ - 纯JavaScript实现
328
+ - 无外部依赖
329
+ - 极小的文件体积(约20KB gzip后)
330
+
331
+ ### 🌐 **通用兼容性**
332
+ - 适用于任何前端框架(React、Vue、Angular等)
333
+ - 支持CommonJS、ES6模块和UMD
334
+ - 兼容所有现代浏览器
335
+
336
+ ## 📦 安装
337
+
338
+ ### npm/yarn/pnpm
339
+ ```bash
340
+ npm install @codady/icax
341
+ # 或
342
+ yarn add @codady/icax
343
+ # 或
344
+ pnpm add @codady/icax
345
+ ```
346
+
347
+ ### CDN
348
+ ```html
349
+ <script src="https://unpkg.com/@codady/icax"></script>
350
+ ```
351
+
352
+ ## 🚀 快速开始
353
+
354
+ ### 基础用法
355
+ ```javascript
356
+ // ES6模块
357
+ import { icax } from '@codady/icax';
358
+
359
+ // 获取SVG字符串
360
+ const checkIcon = icax.check();
361
+ const arrowIcon = icax.arrowStart({ size: '24px', color: '#007bff' });
362
+
363
+ // 插入到HTML
364
+ document.getElementById('icon-container').innerHTML = checkIcon;
365
+ ```
366
+
367
+ ### 自定义选项
368
+ ```javascript
369
+ const customIcon = icax.checkCircle({
370
+ size: '2em',
371
+ color: 'green',
372
+ thickness: 3,
373
+ linecap: 'square',
374
+ linejoin: 'miter',
375
+ classes: 'my-icon custom-class'
376
+ });
377
+ ```
378
+
379
+ ## 📖 API参考
380
+
381
+ ### 图标函数
382
+ 所有图标都遵循相同的模式:
383
+ ```javascript
384
+ icax.iconName(options)
385
+ ```
386
+
387
+ ### 选项对象
388
+ | 参数 | 类型 | 默认值 | 描述 |
389
+ |------|------|--------|------|
390
+ | `size` | string | '1em' | 图标尺寸(宽高相同) |
391
+ | `color` | string | 'currentColor' | 描边颜色 |
392
+ | `thickness` | number | 2 | 描边宽度(像素) |
393
+ | `linecap` | string | 'round' | 描边端点样式 |
394
+ | `linejoin` | string | 'round' | 描边连接样式 |
395
+ | `classes` | string/array | '' | 额外的CSS类 |
396
+
397
+ ### 可用图标(分类)
398
+
399
+ #### 基础形状
400
+ ```javascript
401
+ icax.square() // 正方形图标
402
+ icax.circle() // 圆形图标
403
+ icax.squircle() // 圆角方形
404
+ icax.flower() // 花朵形状
405
+ icax.bubble() // 对话气泡
406
+ ```
407
+
408
+ #### 方向箭头
409
+ ```javascript
410
+ // 简单箭头
411
+ icax.start() // 左箭头
412
+ icax.end() // 右箭头
413
+ icax.up() // 上箭头
414
+ icax.down() // 下箭头
415
+
416
+ // 带形状的箭头
417
+ icax.startCircle() // 圆形中的左箭头
418
+ icax.endSquare() // 方形中的右箭头
419
+ icax.upSquircle() // 圆角方形中的上箭头
420
+ ```
421
+
422
+ #### 交互图标
423
+ ```javascript
424
+ icax.check() // 勾选标记
425
+ icax.close() // 关闭/X图标
426
+ icax.plus() // 加号
427
+ icax.minus() // 减号
428
+ icax.copy() // 复制图标
429
+ icax.clipboard() // 剪贴板
430
+ ```
431
+
432
+ #### 媒体控制
433
+ ```javascript
434
+ icax.play() // 播放按钮
435
+ icax.pause() // 暂停按钮
436
+ icax.volume() // 音量图标
437
+ icax.volume1() // 音量1格
438
+ icax.volume2() // 音量2格
439
+ icax.mute() // 静音图标
440
+ icax.prev() // 上一曲
441
+ icax.next() // 下一曲
442
+ ```
443
+
444
+ #### 状态反馈
445
+ ```javascript
446
+ icax.info() // 信息图标
447
+ icax.warn() // 警告图标
448
+ icax.issue() // 问题/帮助图标
449
+ icax.search() // 搜索图标
450
+ icax.zoomIn() // 放大
451
+ icax.zoomOut() // 缩小
452
+ ```
453
+
454
+ #### 文件操作
455
+ ```javascript
456
+ icax.upload() // 上传图标
457
+ icax.download() // 下载图标
458
+ ```
459
+
460
+ ## 🎨 样式示例
461
+
462
+ ### 使用CSS变量
463
+ ```css
464
+ :root {
465
+ --icon-color: #333;
466
+ --icon-size: 24px;
467
+ --icon-thickness: 2;
468
+ }
469
+
470
+ .icon {
471
+ color: var(--icon-color);
472
+ font-size: var(--icon-size);
473
+ }
474
+ ```
475
+
476
+ ```javascript
477
+ const icon = icax.check({
478
+ color: 'var(--icon-color)',
479
+ size: 'var(--icon-size)',
480
+ thickness: 'var(--icon-thickness)'
481
+ });
482
+ ```
483
+
484
+ ### 动态主题
485
+ ```javascript
486
+ function getIcon(theme) {
487
+ return icax.checkCircle({
488
+ color: theme === 'dark' ? '#ffffff' : '#000000',
489
+ size: theme === 'compact' ? '16px' : '24px'
490
+ });
491
+ }
492
+ ```
493
+
494
+ ## 🌍 RTL支持
495
+
496
+ Icax自动处理RTL布局:
497
+ ```html
498
+ <html dir="rtl">
499
+ <!-- 图标会在需要时自动镜像 -->
500
+ </html>
501
+ ```
502
+
503
+ 手动RTL控制:
504
+ ```javascript
505
+ // 一些图标内置了RTL感知
506
+ icax.start() // 在RTL模式下会镜像
507
+ icax.end() // 在RTL模式下会镜像
508
+ ```
509
+
510
+ ## 🔧 高级用法
511
+
512
+ ### React组件示例
513
+ ```jsx
514
+ import React from 'react';
515
+ import { icax } from '@codady/icax';
516
+
517
+ const Icon = ({ name, ...props }) => {
518
+ const iconHtml = icax[name](props);
519
+ return <div dangerouslySetInnerHTML={{ __html: iconHtml }} />;
520
+ };
521
+
522
+ // 使用
523
+ <Icon name="check" size="32px" color="green" />
524
+ ```
525
+
526
+ ### Vue组件示例
527
+ ```vue
528
+ <template>
529
+ <div v-html="iconSvg"></div>
530
+ </template>
531
+
532
+ <script>
533
+ import { icax } from '@codady/icax';
534
+
535
+ export default {
536
+ props: {
537
+ name: String,
538
+ size: { type: String, default: '1em' },
539
+ color: { type: String, default: 'currentColor' }
540
+ },
541
+ computed: {
542
+ iconSvg() {
543
+ return icax[this.name]({
544
+ size: this.size,
545
+ color: this.color
546
+ });
547
+ }
548
+ }
549
+ };
550
+ </script>
551
+ ```
552
+
553
+ ### 批量处理
554
+ ```javascript
555
+ // 用相同样式生成多个图标
556
+ const iconConfig = {
557
+ size: '20px',
558
+ color: '#666',
559
+ thickness: 1.5
560
+ };
561
+
562
+ const icons = {
563
+ check: icax.check(iconConfig),
564
+ close: icax.close(iconConfig),
565
+ plus: icax.plus(iconConfig)
566
+ };
567
+ ```
568
+
569
+ ## 📊 性能
570
+
571
+ - **文件大小**:约20KB(gzip后)
572
+ - **渲染速度**:即时SVG生成
573
+ - **内存使用**:最小化,无运行时开销
574
+ - **Tree Shaking**:完全支持
575
+
576
+
577
+ ## 📄 许可证
578
+
579
+ MIT许可证 - 详见[LICENSE](LICENSE)。
580
+
581
+ 本软件支持MIT许可证,允许免费学习和商业使用,但请在软件中保留'Icax'和'ICAX'字样。
582
+
583
+ ## 🔗 链接
584
+
585
+ - **官方网站**:[https://icax.axui.cn](https://icax.axui.cn)
586
+ - **GitHub仓库**:[https://github.com/codady/icax](https://github.com/codady/icax)
587
+ - **Gitee仓库**:[https://gitee.com/codady/icax](https://gitee.com/codady/icax)
588
+ - **NPM包**:[https://www.npmjs.com/package/@codady/icax](https://www.npmjs.com/package/@codady/icax)
589
+ - **问题跟踪**:
590
+ - GitHub:[https://github.com/codady/icax/issues](https://github.com/codady/icax/issues)
591
+ - Gitee:[https://gitee.com/codady/icax/issues](https://gitee.com/codady/icax/issues)
592
+ - **Support**: QQ 群: 952502085
593
+
594
+ ## 🙏 致谢
595
+
596
+ 感谢所有贡献者和开源社区,使这个项目成为可能。
597
+
598
+ ---
599
+
600
+ **Icax** - 让美观、可定制的SVG图标对每个人都变得简单易用。