zipzy-icons 1.0.25 → 1.0.27
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.
- package/README.md +423 -77
- package/dist/index.d.mts +18 -1
- package/dist/index.d.ts +18 -1
- package/dist/index.js +131 -20
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +129 -21
- package/dist/index.mjs.map +1 -1
- package/package.json +50 -4
package/README.md
CHANGED
|
@@ -1,27 +1,77 @@
|
|
|
1
|
-
#
|
|
1
|
+
# zipzy-icons
|
|
2
2
|
|
|
3
|
-
Lightweight, customizable React icon library for ZipZy products.
|
|
3
|
+
> Lightweight, customizable React icon library for ZipZy products — logomarks, wordmarks, and product icons with full TypeScript support.
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/zipzy-icons)
|
|
6
|
+
[](https://www.npmjs.com/package/zipzy-icons)
|
|
7
|
+
[](./LICENSE)
|
|
8
|
+
[](https://react.dev)
|
|
9
|
+
[](https://www.typescriptlang.org)
|
|
10
|
+
|
|
11
|
+
**zipzy-icons** is the official icon package for [ZipZy](https://zipzy.in) products. It provides brand logos, logomarks, and product-specific icons (HRMS, Payments, Dashboard) as optimized React SVG components. Every icon supports `currentColor`, Tailwind CSS classes, inline styles, and standard SVG props — zero configuration needed.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Contents
|
|
16
|
+
|
|
17
|
+
- [Installation](#installation)
|
|
18
|
+
- [Quick Start](#quick-start)
|
|
19
|
+
- [Available Icons](#available-icons)
|
|
20
|
+
- [Usage by Context](#usage-by-context)
|
|
21
|
+
- [Navbar & Header](#navbar--header)
|
|
22
|
+
- [Favicon & App Icon](#favicon--app-icon)
|
|
23
|
+
- [Splash & Loading Screen](#splash--loading-screen)
|
|
24
|
+
- [Dark Backgrounds](#dark-backgrounds)
|
|
25
|
+
- [Product Pages (HRMS)](#product-pages-hrms)
|
|
26
|
+
- [Product Pages (Dashboard)](#product-pages-dashboard)
|
|
27
|
+
- [Product Pages (Payments)](#product-pages-payments)
|
|
28
|
+
- [Product Switcher Grid](#product-switcher-grid)
|
|
29
|
+
- [Sidebar Nav Items](#sidebar-nav-items)
|
|
30
|
+
- [Tab Bars](#tab-bars)
|
|
31
|
+
- [Email Templates](#email-templates)
|
|
32
|
+
- [Multi-color Product Icons](#multi-color-product-icons)
|
|
33
|
+
- [Props Reference](#props-reference)
|
|
34
|
+
- [Sizing Guide](#sizing-guide)
|
|
35
|
+
- [TypeScript](#typescript)
|
|
36
|
+
- [Design Notes](#design-notes)
|
|
37
|
+
- [Requirements](#requirements)
|
|
38
|
+
- [Roadmap](#roadmap)
|
|
39
|
+
- [License](#license)
|
|
4
40
|
|
|
5
41
|
---
|
|
6
42
|
|
|
7
|
-
##
|
|
43
|
+
## Installation
|
|
8
44
|
|
|
9
45
|
```bash
|
|
10
46
|
npm install zipzy-icons
|
|
11
47
|
```
|
|
12
48
|
|
|
49
|
+
```bash
|
|
50
|
+
yarn add zipzy-icons
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
pnpm add zipzy-icons
|
|
55
|
+
```
|
|
56
|
+
|
|
13
57
|
---
|
|
14
58
|
|
|
15
|
-
##
|
|
59
|
+
## Quick Start
|
|
16
60
|
|
|
17
61
|
```tsx
|
|
18
|
-
import { ZipZyLogo, ZipZyMark } from "zipzy-icons";
|
|
62
|
+
import { ZipZyLogo, ZipZyMark, ZipZyLogoHorizontal } from "zipzy-icons";
|
|
19
63
|
|
|
20
64
|
export default function App() {
|
|
21
65
|
return (
|
|
22
66
|
<div className="flex items-center gap-2">
|
|
67
|
+
{/* Logomark only */}
|
|
23
68
|
<ZipZyMark className="h-8 w-8 text-orange-500" />
|
|
69
|
+
|
|
70
|
+
{/* Full stacked logo */}
|
|
24
71
|
<ZipZyLogo className="h-10 text-orange-500" />
|
|
72
|
+
|
|
73
|
+
{/* Horizontal layout */}
|
|
74
|
+
<ZipZyLogoHorizontal className="h-10 text-orange-500" />
|
|
25
75
|
</div>
|
|
26
76
|
);
|
|
27
77
|
}
|
|
@@ -29,121 +79,417 @@ export default function App() {
|
|
|
29
79
|
|
|
30
80
|
---
|
|
31
81
|
|
|
32
|
-
##
|
|
82
|
+
## Available Icons
|
|
83
|
+
|
|
84
|
+
### Brand (Standalone)
|
|
85
|
+
|
|
86
|
+
| Component | Description | Color pattern |
|
|
87
|
+
|-----------|-------------|---------------|
|
|
88
|
+
| `ZipZyMark` | Logomark only — no text | `currentColor` |
|
|
89
|
+
| `ZipZyLogo` | Stacked: mark + wordmark | `currentColor` |
|
|
90
|
+
| `ZipZyLogoHorizontal` | Horizontal: mark + wordmark | `currentColor` |
|
|
91
|
+
|
|
92
|
+
### Products
|
|
93
|
+
|
|
94
|
+
| Component | Description | Color pattern |
|
|
95
|
+
|-----------|-------------|---------------|
|
|
96
|
+
| `ZipZyHrms` | HRMS product logo | `primaryColor` · `secondaryColor` · `accentColor` |
|
|
97
|
+
| `ZipZyPayments` | Payments product logo | `primaryColor` · `secondaryColor` |
|
|
98
|
+
| `ZipZyDashboard` | Dashboard branded logo | `primaryColor` · `secondaryColor` |
|
|
99
|
+
| `ZipZyDashboardIcon` | Dashboard icon (no text) | `currentColor` |
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## Usage by Context
|
|
104
|
+
|
|
105
|
+
### Navbar & Header
|
|
106
|
+
|
|
107
|
+
Use `ZipZyLogoHorizontal` for top navigation bars. It inherits the nav text color via `currentColor`.
|
|
108
|
+
|
|
109
|
+
```tsx
|
|
110
|
+
// Light navbar
|
|
111
|
+
<nav className="bg-white border-b px-6 py-4">
|
|
112
|
+
<ZipZyLogoHorizontal className="h-8 text-gray-900" />
|
|
113
|
+
</nav>
|
|
114
|
+
|
|
115
|
+
// Dark navbar
|
|
116
|
+
<nav className="bg-gray-900 px-6 py-4">
|
|
117
|
+
<ZipZyLogoHorizontal className="h-8 text-white" />
|
|
118
|
+
</nav>
|
|
119
|
+
|
|
120
|
+
// Brand color
|
|
121
|
+
<nav>
|
|
122
|
+
<ZipZyLogoHorizontal className="h-8 text-orange-500" />
|
|
123
|
+
</nav>
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
### Favicon & App Icon
|
|
129
|
+
|
|
130
|
+
Use `ZipZyMark` when space is constrained — tab icons, breadcrumbs, avatar placeholders.
|
|
131
|
+
|
|
132
|
+
```tsx
|
|
133
|
+
// Browser tab / favicon context
|
|
134
|
+
<ZipZyMark className="h-8 w-8 text-orange-500" />
|
|
135
|
+
|
|
136
|
+
// Small inline icon
|
|
137
|
+
<ZipZyMark size={16} className="text-orange-500" />
|
|
138
|
+
|
|
139
|
+
// Larger app icon
|
|
140
|
+
<ZipZyMark size={48} className="text-orange-500" />
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
### Splash & Loading Screen
|
|
33
146
|
|
|
34
|
-
|
|
147
|
+
Center `ZipZyLogo` vertically for splash screens and initial load states.
|
|
35
148
|
|
|
36
149
|
```tsx
|
|
37
|
-
<
|
|
38
|
-
<ZipZyLogo className="
|
|
39
|
-
<
|
|
150
|
+
<div className="flex flex-col items-center justify-center min-h-screen gap-4">
|
|
151
|
+
<ZipZyLogo size={72} className="text-orange-500" />
|
|
152
|
+
<p className="text-sm text-gray-400 animate-pulse">Loading...</p>
|
|
153
|
+
</div>
|
|
40
154
|
```
|
|
41
155
|
|
|
42
|
-
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
### Dark Backgrounds
|
|
159
|
+
|
|
160
|
+
All standalone icons use `currentColor` — switching to dark themes requires only a color class change.
|
|
161
|
+
|
|
162
|
+
```tsx
|
|
163
|
+
// Dark sidebar / panel
|
|
164
|
+
<aside className="bg-gray-950 p-4">
|
|
165
|
+
<ZipZyLogoHorizontal className="h-7 text-white" />
|
|
166
|
+
</aside>
|
|
167
|
+
|
|
168
|
+
// Colored brand on dark
|
|
169
|
+
<header className="bg-gray-900">
|
|
170
|
+
<ZipZyLogoHorizontal className="h-8 text-orange-400" />
|
|
171
|
+
</header>
|
|
172
|
+
|
|
173
|
+
// Collapsed sidebar (mark only)
|
|
174
|
+
<aside className="w-16 bg-gray-950 flex flex-col items-center pt-4">
|
|
175
|
+
<ZipZyMark size={28} className="text-orange-400" />
|
|
176
|
+
</aside>
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
### Product Pages (HRMS)
|
|
182
|
+
|
|
183
|
+
`ZipZyHrms` has three independent color slots: logomark, "ZipZy" text, and "HRMS" accent text.
|
|
43
184
|
|
|
44
|
-
Product icons like ZipZyHrms support independent color control:
|
|
45
185
|
```tsx
|
|
46
186
|
import { ZipZyHrms } from "zipzy-icons";
|
|
47
187
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
188
|
+
// Hero / landing page — light
|
|
189
|
+
<ZipZyHrms
|
|
190
|
+
size={140}
|
|
191
|
+
primaryColor="#0DBEFF" // logomark
|
|
192
|
+
secondaryColor="#000000" // "ZipZy" text
|
|
193
|
+
accentColor="#0DBEFF" // "HRMS" text
|
|
194
|
+
/>
|
|
195
|
+
|
|
196
|
+
// Login screen header — dark theme
|
|
197
|
+
<ZipZyHrms
|
|
198
|
+
size={120}
|
|
199
|
+
primaryColor="#0DBEFF"
|
|
200
|
+
secondaryColor="#ffffff"
|
|
201
|
+
accentColor="#0DBEFF"
|
|
202
|
+
/>
|
|
203
|
+
|
|
204
|
+
// Compact — product card
|
|
205
|
+
<ZipZyHrms
|
|
206
|
+
size={64}
|
|
207
|
+
primaryColor="#0DBEFF"
|
|
208
|
+
secondaryColor="#374151"
|
|
209
|
+
accentColor="#0DBEFF"
|
|
210
|
+
/>
|
|
58
211
|
```
|
|
59
|
-
|
|
212
|
+
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
### Product Pages (Dashboard)
|
|
216
|
+
|
|
217
|
+
`ZipZyDashboard` takes two colors: the logomark and the combined wordmark.
|
|
218
|
+
|
|
60
219
|
```tsx
|
|
61
|
-
import { ZipZyDashboard } from "zipzy-icons";
|
|
220
|
+
import { ZipZyDashboard, ZipZyDashboardIcon } from "zipzy-icons";
|
|
221
|
+
|
|
222
|
+
// Branded login header
|
|
223
|
+
<ZipZyDashboard
|
|
224
|
+
size={140}
|
|
225
|
+
primaryColor="#000000"
|
|
226
|
+
secondaryColor="#000000"
|
|
227
|
+
/>
|
|
228
|
+
|
|
229
|
+
// Indigo-themed dashboard header
|
|
230
|
+
<ZipZyDashboard
|
|
231
|
+
size={100}
|
|
232
|
+
primaryColor="#6366f1"
|
|
233
|
+
secondaryColor="#111827"
|
|
234
|
+
/>
|
|
235
|
+
|
|
236
|
+
// Icon-only (nav item, button, tab)
|
|
237
|
+
<ZipZyDashboardIcon size={20} className="text-indigo-500" />
|
|
238
|
+
|
|
239
|
+
// Icon on active nav item (white on colored bg)
|
|
240
|
+
<ZipZyDashboardIcon size={20} className="text-white" />
|
|
241
|
+
```
|
|
62
242
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
}
|
|
243
|
+
---
|
|
244
|
+
|
|
245
|
+
### Product Pages (Payments)
|
|
246
|
+
|
|
247
|
+
```tsx
|
|
248
|
+
import { ZipZyPayments } from "zipzy-icons";
|
|
249
|
+
|
|
250
|
+
// Payments landing hero
|
|
251
|
+
<ZipZyPayments
|
|
252
|
+
size={140}
|
|
253
|
+
primaryColor="#10b981"
|
|
254
|
+
secondaryColor="#000000"
|
|
255
|
+
/>
|
|
256
|
+
|
|
257
|
+
// Compact card
|
|
258
|
+
<ZipZyPayments
|
|
259
|
+
size={64}
|
|
260
|
+
primaryColor="#10b981"
|
|
261
|
+
secondaryColor="#374151"
|
|
262
|
+
/>
|
|
73
263
|
```
|
|
74
|
-
|
|
264
|
+
|
|
265
|
+
---
|
|
266
|
+
|
|
267
|
+
### Product Switcher Grid
|
|
268
|
+
|
|
269
|
+
Display all ZipZy products at a consistent size for a unified product-picker UI.
|
|
270
|
+
|
|
271
|
+
```tsx
|
|
272
|
+
import { ZipZyHrms, ZipZyPayments, ZipZyDashboard } from "zipzy-icons";
|
|
273
|
+
|
|
274
|
+
<div className="grid grid-cols-2 gap-4 p-4">
|
|
275
|
+
<div className="flex flex-col items-center gap-2 p-4 rounded-xl border hover:bg-gray-50 cursor-pointer">
|
|
276
|
+
<ZipZyHrms size={80} primaryColor="#0DBEFF" secondaryColor="#000" accentColor="#0DBEFF" />
|
|
277
|
+
<span className="text-xs text-gray-500">HR Management</span>
|
|
278
|
+
</div>
|
|
279
|
+
|
|
280
|
+
<div className="flex flex-col items-center gap-2 p-4 rounded-xl border hover:bg-gray-50 cursor-pointer">
|
|
281
|
+
<ZipZyPayments size={80} primaryColor="#10b981" secondaryColor="#000" />
|
|
282
|
+
<span className="text-xs text-gray-500">Payments</span>
|
|
283
|
+
</div>
|
|
284
|
+
|
|
285
|
+
<div className="flex flex-col items-center gap-2 p-4 rounded-xl border hover:bg-gray-50 cursor-pointer">
|
|
286
|
+
<ZipZyDashboard size={80} primaryColor="#6366f1" secondaryColor="#000" />
|
|
287
|
+
<span className="text-xs text-gray-500">Dashboard</span>
|
|
288
|
+
</div>
|
|
289
|
+
</div>
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
---
|
|
293
|
+
|
|
294
|
+
### Sidebar Nav Items
|
|
295
|
+
|
|
296
|
+
Use `ZipZyDashboardIcon` (currentColor) in navigation lists — it follows your active/inactive color logic automatically.
|
|
297
|
+
|
|
298
|
+
```tsx
|
|
299
|
+
const navItems = [
|
|
300
|
+
{ label: "Dashboard", icon: ZipZyDashboardIcon, href: "/dashboard" },
|
|
301
|
+
// ...
|
|
302
|
+
];
|
|
303
|
+
|
|
304
|
+
<nav>
|
|
305
|
+
{navItems.map(({ label, icon: Icon, href }) => (
|
|
306
|
+
<a
|
|
307
|
+
key={href}
|
|
308
|
+
href={href}
|
|
309
|
+
className={`flex items-center gap-3 px-4 py-2 rounded-lg transition-colors
|
|
310
|
+
${isActive(href)
|
|
311
|
+
? "bg-indigo-600 text-white"
|
|
312
|
+
: "text-gray-600 hover:bg-gray-100"
|
|
313
|
+
}`}
|
|
314
|
+
>
|
|
315
|
+
<Icon size={18} />
|
|
316
|
+
<span className="text-sm font-medium">{label}</span>
|
|
317
|
+
</a>
|
|
318
|
+
))}
|
|
319
|
+
</nav>
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
---
|
|
323
|
+
|
|
324
|
+
### Tab Bars
|
|
325
|
+
|
|
326
|
+
```tsx
|
|
327
|
+
import { ZipZyDashboardIcon } from "zipzy-icons";
|
|
328
|
+
|
|
329
|
+
<div className="flex border-b">
|
|
330
|
+
<button
|
|
331
|
+
className={`flex items-center gap-2 px-4 py-3 text-sm font-medium border-b-2 transition-colors
|
|
332
|
+
${active === "dashboard"
|
|
333
|
+
? "border-indigo-600 text-indigo-600"
|
|
334
|
+
: "border-transparent text-gray-500 hover:text-gray-700"
|
|
335
|
+
}`}
|
|
336
|
+
onClick={() => setActive("dashboard")}
|
|
337
|
+
>
|
|
338
|
+
<ZipZyDashboardIcon size={16} />
|
|
339
|
+
Dashboard
|
|
340
|
+
</button>
|
|
341
|
+
</div>
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
---
|
|
345
|
+
|
|
346
|
+
### Email Templates
|
|
347
|
+
|
|
348
|
+
For HTML emails, inline the SVG directly — React components don't work in email clients.
|
|
349
|
+
|
|
350
|
+
```html
|
|
351
|
+
<!-- Paste the rendered SVG output inline in your email template -->
|
|
352
|
+
<table>
|
|
353
|
+
<tr>
|
|
354
|
+
<td style="padding: 24px;">
|
|
355
|
+
<!-- Export ZipZyLogoHorizontal to SVG string and paste here -->
|
|
356
|
+
<svg width="120" height="32" viewBox="0 0 120 32" ...>
|
|
357
|
+
<!-- SVG path data -->
|
|
358
|
+
</svg>
|
|
359
|
+
</td>
|
|
360
|
+
</tr>
|
|
361
|
+
</table>
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
> **Tip:** Use `ReactDOMServer.renderToStaticMarkup(<ZipZyLogoHorizontal />)` to get the raw SVG string for email use.
|
|
365
|
+
|
|
366
|
+
---
|
|
367
|
+
|
|
368
|
+
## Multi-color Product Icons
|
|
369
|
+
|
|
370
|
+
Product icons support per-element color control. This allows the same icon to adapt to light, dark, and branded themes without separate assets.
|
|
371
|
+
|
|
75
372
|
```tsx
|
|
76
373
|
import { ZipZyHrms } from "zipzy-icons";
|
|
77
374
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
375
|
+
// Three slots: mark · wordmark · product accent
|
|
376
|
+
<ZipZyHrms
|
|
377
|
+
size={140}
|
|
378
|
+
primaryColor="#0DBEFF" // logomark / mark background
|
|
379
|
+
secondaryColor="#000000" // "ZipZy" wordmark text
|
|
380
|
+
accentColor="#0DBEFF" // "HRMS" product text
|
|
381
|
+
/>
|
|
382
|
+
```
|
|
383
|
+
|
|
384
|
+
```tsx
|
|
385
|
+
import { ZipZyDashboard } from "zipzy-icons";
|
|
386
|
+
|
|
387
|
+
// Two slots: mark · wordmark
|
|
388
|
+
<ZipZyDashboard
|
|
389
|
+
size={140}
|
|
390
|
+
primaryColor="#000000" // logomark
|
|
391
|
+
secondaryColor="#000000" // "ZipZy Dashboard" text
|
|
392
|
+
/>
|
|
393
|
+
```
|
|
394
|
+
|
|
395
|
+
```tsx
|
|
396
|
+
import { ZipZyDashboardIcon } from "zipzy-icons";
|
|
397
|
+
|
|
398
|
+
// No color props — inherits from CSS `color`
|
|
399
|
+
<ZipZyDashboardIcon
|
|
400
|
+
size={140}
|
|
401
|
+
className="text-white"
|
|
402
|
+
/>
|
|
88
403
|
```
|
|
89
404
|
|
|
90
|
-
|
|
405
|
+
---
|
|
406
|
+
|
|
407
|
+
## Props Reference
|
|
91
408
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
|
95
|
-
|
|
96
|
-
| `
|
|
97
|
-
|
|
|
409
|
+
### All icons
|
|
410
|
+
|
|
411
|
+
| Prop | Type | Default | Description |
|
|
412
|
+
|------|------|---------|-------------|
|
|
413
|
+
| `size` | `number \| string` | — | Sets width; height scales automatically |
|
|
414
|
+
| `className` | `string` | — | Tailwind or CSS class string |
|
|
415
|
+
| `style` | `React.CSSProperties` | — | Inline style object |
|
|
416
|
+
| `...props` | `SVGProps<SVGSVGElement>` | — | All standard SVG attributes |
|
|
417
|
+
|
|
418
|
+
### Multi-color icons only (`ZipZyHrms`, `ZipZyDashboard`, `ZipZyPayments`)
|
|
419
|
+
|
|
420
|
+
| Prop | Type | Description |
|
|
421
|
+
|------|------|-------------|
|
|
422
|
+
| `primaryColor` | `string` | Logomark color (hex recommended) |
|
|
423
|
+
| `secondaryColor` | `string` | "ZipZy" wordmark text color |
|
|
424
|
+
| `accentColor` | `string` | Product label text color (HRMS only) |
|
|
98
425
|
|
|
99
426
|
---
|
|
100
427
|
|
|
101
|
-
##
|
|
428
|
+
## Sizing Guide
|
|
102
429
|
|
|
103
|
-
|
|
104
|
-
|
|
430
|
+
| Use case | Recommended size |
|
|
431
|
+
|----------|-----------------|
|
|
432
|
+
| Favicon / breadcrumb | `size={16}` or `className="h-4"` |
|
|
433
|
+
| Inline icon (button, tab) | `size={18}` – `size={20}` |
|
|
434
|
+
| Navbar / sidebar logo | `size={24}` or `className="h-8"` |
|
|
435
|
+
| Product switcher tile | `size={48}` – `size={80}` |
|
|
436
|
+
| Login / auth screen header | `size={80}` – `size={120}` |
|
|
437
|
+
| Splash / loading screen | `size={64}` – `size={80}` |
|
|
438
|
+
| Landing page hero | `size={100}` – `size={140}` |
|
|
105
439
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
440
|
+
---
|
|
441
|
+
|
|
442
|
+
## TypeScript
|
|
443
|
+
|
|
444
|
+
All components are fully typed. Import types directly if needed:
|
|
445
|
+
|
|
446
|
+
```ts
|
|
447
|
+
import type { ZipZyIconProps, ZipZyProductIconProps } from "zipzy-icons";
|
|
448
|
+
```
|
|
110
449
|
|
|
111
450
|
---
|
|
112
451
|
|
|
113
|
-
##
|
|
452
|
+
## Design Notes
|
|
114
453
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
454
|
+
- **`currentColor`** — standalone brand icons (`ZipZyMark`, `ZipZyLogo`, `ZipZyLogoHorizontal`, `ZipZyDashboardIcon`) inherit the CSS `color` property, making them trivial to theme with Tailwind or CSS variables.
|
|
455
|
+
- **Responsive** — all icons scale cleanly at any size. Use `size` for fixed dimensions or `className="h-X"` for fluid scaling.
|
|
456
|
+
- **Tailwind compatible** — works with Tailwind CSS v3 and v4.
|
|
457
|
+
- **CSS-in-JS compatible** — pass any valid `React.CSSProperties` via `style`.
|
|
458
|
+
- **No external dependencies** — pure SVG wrapped in React. Zero runtime overhead.
|
|
459
|
+
- **Tree-shakeable** — import only the icons you use; unused icons are excluded from your bundle.
|
|
119
460
|
|
|
120
461
|
---
|
|
121
462
|
|
|
122
|
-
##
|
|
463
|
+
## Requirements
|
|
123
464
|
|
|
124
|
-
|
|
465
|
+
- React 18+
|
|
466
|
+
- Node.js 16+
|
|
125
467
|
|
|
126
468
|
---
|
|
127
469
|
|
|
128
|
-
##
|
|
470
|
+
## Roadmap
|
|
129
471
|
|
|
130
|
-
|
|
472
|
+
- [ ] More brand and UI icons
|
|
473
|
+
- [ ] Outlined / filled variants
|
|
474
|
+
- [ ] Auto-generated SVG pipeline from Figma
|
|
475
|
+
- [ ] Next.js Image-compatible exports
|
|
476
|
+
- [ ] Vue 3 support
|
|
131
477
|
|
|
132
478
|
---
|
|
133
479
|
|
|
134
|
-
##
|
|
480
|
+
## Keywords
|
|
135
481
|
|
|
136
|
-
|
|
137
|
-
* Fully customizable
|
|
138
|
-
* Designed for real-world UI usage
|
|
139
|
-
* Built with TypeScript
|
|
482
|
+
`zipzy` · `zipzy-icons` · `react icons` · `svg icons` · `logo component` · `hrms icons` · `dashboard icons` · `payments icons` · `typescript icons` · `tailwind icons` · `react svg` · `icon library` · `zipzy hrms` · `zipzy dashboard` · `zipzy payments`
|
|
140
483
|
|
|
141
484
|
---
|
|
142
485
|
|
|
143
|
-
##
|
|
486
|
+
## License
|
|
144
487
|
|
|
145
|
-
|
|
146
|
-
* Icon variants (outlined / filled)
|
|
147
|
-
* Auto-generated SVG pipeline
|
|
488
|
+
MIT © [ZipZy](https://zipzy.in)
|
|
148
489
|
|
|
149
490
|
---
|
|
491
|
+
|
|
492
|
+
## Links
|
|
493
|
+
|
|
494
|
+
- [npm package](https://www.npmjs.com/package/zipzy-icons)
|
|
495
|
+
- [ZipZy website](https://zipzy.in)
|
package/dist/index.d.mts
CHANGED
|
@@ -5,6 +5,11 @@ type ZipZyLogoProps = React.SVGProps<SVGSVGElement> & {
|
|
|
5
5
|
};
|
|
6
6
|
declare const ZipZyLogo: React.ForwardRefExoticComponent<Omit<ZipZyLogoProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
|
|
7
7
|
|
|
8
|
+
type ZipZyLogoHorizontalProps = React.SVGProps<SVGSVGElement> & {
|
|
9
|
+
size?: number | string;
|
|
10
|
+
};
|
|
11
|
+
declare const ZipZyLogoHorizontal: React.ForwardRefExoticComponent<Omit<ZipZyLogoHorizontalProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
|
|
12
|
+
|
|
8
13
|
type ZipZyMarkProps = React.SVGProps<SVGSVGElement> & {
|
|
9
14
|
size?: number | string;
|
|
10
15
|
};
|
|
@@ -26,4 +31,16 @@ type ZipZyPaymentsProps = React.SVGProps<SVGSVGElement> & {
|
|
|
26
31
|
};
|
|
27
32
|
declare const ZipZyPayments: React.ForwardRefExoticComponent<Omit<ZipZyPaymentsProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
|
|
28
33
|
|
|
29
|
-
|
|
34
|
+
type ZipZyDashboardProps = React.SVGProps<SVGSVGElement> & {
|
|
35
|
+
size?: number | string;
|
|
36
|
+
primaryColor?: string;
|
|
37
|
+
secondaryColor?: string;
|
|
38
|
+
};
|
|
39
|
+
declare const ZipZyDashboard: React.ForwardRefExoticComponent<Omit<ZipZyDashboardProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
|
|
40
|
+
|
|
41
|
+
type ZipZyDashboardIconProps = React.SVGProps<SVGSVGElement> & {
|
|
42
|
+
size?: number | string;
|
|
43
|
+
};
|
|
44
|
+
declare const ZipZyDashboardIcon: React.ForwardRefExoticComponent<Omit<ZipZyDashboardIconProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
|
|
45
|
+
|
|
46
|
+
export { ZipZyDashboard, ZipZyDashboardIcon, ZipZyHrms, ZipZyLogo, ZipZyLogoHorizontal, ZipZyMark, ZipZyPayments };
|
package/dist/index.d.ts
CHANGED
|
@@ -5,6 +5,11 @@ type ZipZyLogoProps = React.SVGProps<SVGSVGElement> & {
|
|
|
5
5
|
};
|
|
6
6
|
declare const ZipZyLogo: React.ForwardRefExoticComponent<Omit<ZipZyLogoProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
|
|
7
7
|
|
|
8
|
+
type ZipZyLogoHorizontalProps = React.SVGProps<SVGSVGElement> & {
|
|
9
|
+
size?: number | string;
|
|
10
|
+
};
|
|
11
|
+
declare const ZipZyLogoHorizontal: React.ForwardRefExoticComponent<Omit<ZipZyLogoHorizontalProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
|
|
12
|
+
|
|
8
13
|
type ZipZyMarkProps = React.SVGProps<SVGSVGElement> & {
|
|
9
14
|
size?: number | string;
|
|
10
15
|
};
|
|
@@ -26,4 +31,16 @@ type ZipZyPaymentsProps = React.SVGProps<SVGSVGElement> & {
|
|
|
26
31
|
};
|
|
27
32
|
declare const ZipZyPayments: React.ForwardRefExoticComponent<Omit<ZipZyPaymentsProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
|
|
28
33
|
|
|
29
|
-
|
|
34
|
+
type ZipZyDashboardProps = React.SVGProps<SVGSVGElement> & {
|
|
35
|
+
size?: number | string;
|
|
36
|
+
primaryColor?: string;
|
|
37
|
+
secondaryColor?: string;
|
|
38
|
+
};
|
|
39
|
+
declare const ZipZyDashboard: React.ForwardRefExoticComponent<Omit<ZipZyDashboardProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
|
|
40
|
+
|
|
41
|
+
type ZipZyDashboardIconProps = React.SVGProps<SVGSVGElement> & {
|
|
42
|
+
size?: number | string;
|
|
43
|
+
};
|
|
44
|
+
declare const ZipZyDashboardIcon: React.ForwardRefExoticComponent<Omit<ZipZyDashboardIconProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
|
|
45
|
+
|
|
46
|
+
export { ZipZyDashboard, ZipZyDashboardIcon, ZipZyHrms, ZipZyLogo, ZipZyLogoHorizontal, ZipZyMark, ZipZyPayments };
|