zipzy-icons 1.0.26 → 1.0.28
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 +419 -87
- package/dist/index.d.mts +6 -1
- package/dist/index.d.ts +6 -1
- package/dist/index.js +59 -30
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +59 -31
- package/dist/index.mjs.map +1 -1
- package/package.json +42 -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,135 +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
|
|
33
106
|
|
|
34
|
-
|
|
107
|
+
Use `ZipZyLogoHorizontal` for top navigation bars. It inherits the nav text color via `currentColor`.
|
|
35
108
|
|
|
36
109
|
```tsx
|
|
37
|
-
|
|
38
|
-
<
|
|
39
|
-
<
|
|
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>
|
|
40
124
|
```
|
|
41
125
|
|
|
42
|
-
|
|
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
|
|
146
|
+
|
|
147
|
+
Center `ZipZyLogo` vertically for splash screens and initial load states.
|
|
148
|
+
|
|
149
|
+
```tsx
|
|
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>
|
|
154
|
+
```
|
|
155
|
+
|
|
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
|
+
/>
|
|
263
|
+
```
|
|
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>
|
|
73
320
|
```
|
|
74
|
-
|
|
321
|
+
|
|
322
|
+
---
|
|
323
|
+
|
|
324
|
+
### Tab Bars
|
|
325
|
+
|
|
75
326
|
```tsx
|
|
76
327
|
import { ZipZyDashboardIcon } from "zipzy-icons";
|
|
77
328
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
}
|
|
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>
|
|
86
362
|
```
|
|
87
|
-
|
|
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
|
+
|
|
88
372
|
```tsx
|
|
89
373
|
import { ZipZyHrms } from "zipzy-icons";
|
|
90
374
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
/>
|
|
99
|
-
);
|
|
100
|
-
}
|
|
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
|
+
/>
|
|
101
382
|
```
|
|
102
383
|
|
|
103
|
-
|
|
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
|
+
```
|
|
104
394
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
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
|
+
/>
|
|
403
|
+
```
|
|
111
404
|
|
|
112
405
|
---
|
|
113
406
|
|
|
114
|
-
##
|
|
407
|
+
## Props Reference
|
|
115
408
|
|
|
116
|
-
|
|
117
|
-
* `ZipZyMark` → Logomark only
|
|
409
|
+
### All icons
|
|
118
410
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
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) |
|
|
124
425
|
|
|
125
426
|
---
|
|
126
427
|
|
|
127
|
-
##
|
|
428
|
+
## Sizing Guide
|
|
128
429
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
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}` |
|
|
133
439
|
|
|
134
440
|
---
|
|
135
441
|
|
|
136
|
-
##
|
|
442
|
+
## TypeScript
|
|
443
|
+
|
|
444
|
+
All components are fully typed. Import types directly if needed:
|
|
137
445
|
|
|
138
|
-
|
|
446
|
+
```ts
|
|
447
|
+
import type { ZipZyIconProps, ZipZyProductIconProps } from "zipzy-icons";
|
|
448
|
+
```
|
|
139
449
|
|
|
140
450
|
---
|
|
141
451
|
|
|
142
|
-
##
|
|
452
|
+
## Design Notes
|
|
143
453
|
|
|
144
|
-
|
|
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.
|
|
145
460
|
|
|
146
461
|
---
|
|
147
462
|
|
|
148
|
-
##
|
|
463
|
+
## Requirements
|
|
149
464
|
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
* Designed for real-world UI usage
|
|
153
|
-
* Built with TypeScript
|
|
465
|
+
- React 18+
|
|
466
|
+
- Node.js 16+
|
|
154
467
|
|
|
155
468
|
---
|
|
156
469
|
|
|
157
|
-
##
|
|
470
|
+
## Roadmap
|
|
158
471
|
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
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
|
|
162
477
|
|
|
163
478
|
---
|
|
479
|
+
|
|
480
|
+
## Keywords
|
|
481
|
+
|
|
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`
|
|
483
|
+
|
|
484
|
+
---
|
|
485
|
+
|
|
486
|
+
## License
|
|
487
|
+
|
|
488
|
+
MIT © [ZipZy](https://zipzy.in)
|
|
489
|
+
|
|
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
|
};
|
|
@@ -38,4 +43,4 @@ type ZipZyDashboardIconProps = React.SVGProps<SVGSVGElement> & {
|
|
|
38
43
|
};
|
|
39
44
|
declare const ZipZyDashboardIcon: React.ForwardRefExoticComponent<Omit<ZipZyDashboardIconProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
|
|
40
45
|
|
|
41
|
-
export { ZipZyDashboard, ZipZyDashboardIcon, ZipZyHrms, ZipZyLogo, ZipZyMark, ZipZyPayments };
|
|
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
|
};
|
|
@@ -38,4 +43,4 @@ type ZipZyDashboardIconProps = React.SVGProps<SVGSVGElement> & {
|
|
|
38
43
|
};
|
|
39
44
|
declare const ZipZyDashboardIcon: React.ForwardRefExoticComponent<Omit<ZipZyDashboardIconProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
|
|
40
45
|
|
|
41
|
-
export { ZipZyDashboard, ZipZyDashboardIcon, ZipZyHrms, ZipZyLogo, ZipZyMark, ZipZyPayments };
|
|
46
|
+
export { ZipZyDashboard, ZipZyDashboardIcon, ZipZyHrms, ZipZyLogo, ZipZyLogoHorizontal, ZipZyMark, ZipZyPayments };
|