@nice2dev/icons 1.0.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.
- package/CHANGELOG.md +124 -0
- package/LICENSE +21 -0
- package/README.md +581 -0
- package/dist/cjs/NiceIconPicker.js +387 -0
- package/dist/cjs/NiceIconPicker.js.map +1 -0
- package/dist/cjs/NiceVectorEditor.js +675 -0
- package/dist/cjs/NiceVectorEditor.js.map +1 -0
- package/dist/cjs/animationControls.js +690 -0
- package/dist/cjs/animationControls.js.map +1 -0
- package/dist/cjs/createIcon.js +142 -0
- package/dist/cjs/createIcon.js.map +1 -0
- package/dist/cjs/figmaExport.js +288 -0
- package/dist/cjs/figmaExport.js.map +1 -0
- package/dist/cjs/icons/actions.js +257 -0
- package/dist/cjs/icons/actions.js.map +1 -0
- package/dist/cjs/icons/brand.js +128 -0
- package/dist/cjs/icons/brand.js.map +1 -0
- package/dist/cjs/icons/business.js +228 -0
- package/dist/cjs/icons/business.js.map +1 -0
- package/dist/cjs/icons/devtech.js +374 -0
- package/dist/cjs/icons/devtech.js.map +1 -0
- package/dist/cjs/icons/ecommerce.js +171 -0
- package/dist/cjs/icons/ecommerce.js.map +1 -0
- package/dist/cjs/icons/files.js +286 -0
- package/dist/cjs/icons/files.js.map +1 -0
- package/dist/cjs/icons/fintech.js +151 -0
- package/dist/cjs/icons/fintech.js.map +1 -0
- package/dist/cjs/icons/fun.js +124 -0
- package/dist/cjs/icons/fun.js.map +1 -0
- package/dist/cjs/icons/health.js +132 -0
- package/dist/cjs/icons/health.js.map +1 -0
- package/dist/cjs/icons/media.js +219 -0
- package/dist/cjs/icons/media.js.map +1 -0
- package/dist/cjs/icons/navigation.js +147 -0
- package/dist/cjs/icons/navigation.js.map +1 -0
- package/dist/cjs/icons/saas.js +141 -0
- package/dist/cjs/icons/saas.js.map +1 -0
- package/dist/cjs/icons/shapes.js +205 -0
- package/dist/cjs/icons/shapes.js.map +1 -0
- package/dist/cjs/icons/smarthome.js +141 -0
- package/dist/cjs/icons/smarthome.js.map +1 -0
- package/dist/cjs/icons/social.js +159 -0
- package/dist/cjs/icons/social.js.map +1 -0
- package/dist/cjs/icons/ui.js +262 -0
- package/dist/cjs/icons/ui.js.map +1 -0
- package/dist/cjs/icons/weather.js +187 -0
- package/dist/cjs/icons/weather.js.map +1 -0
- package/dist/cjs/index.js +362 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/nicetodev-icons.css +1 -0
- package/dist/cjs/smilAnimations.js +182 -0
- package/dist/cjs/smilAnimations.js.map +1 -0
- package/dist/cjs/types.js +47 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/esm/NiceIconPicker.js +385 -0
- package/dist/esm/NiceIconPicker.js.map +1 -0
- package/dist/esm/NiceVectorEditor.js +673 -0
- package/dist/esm/NiceVectorEditor.js.map +1 -0
- package/dist/esm/animationControls.js +680 -0
- package/dist/esm/animationControls.js.map +1 -0
- package/dist/esm/createIcon.js +140 -0
- package/dist/esm/createIcon.js.map +1 -0
- package/dist/esm/figmaExport.js +279 -0
- package/dist/esm/figmaExport.js.map +1 -0
- package/dist/esm/icons/actions.js +231 -0
- package/dist/esm/icons/actions.js.map +1 -0
- package/dist/esm/icons/brand.js +124 -0
- package/dist/esm/icons/brand.js.map +1 -0
- package/dist/esm/icons/business.js +209 -0
- package/dist/esm/icons/business.js.map +1 -0
- package/dist/esm/icons/devtech.js +342 -0
- package/dist/esm/icons/devtech.js.map +1 -0
- package/dist/esm/icons/ecommerce.js +154 -0
- package/dist/esm/icons/ecommerce.js.map +1 -0
- package/dist/esm/icons/files.js +254 -0
- package/dist/esm/icons/files.js.map +1 -0
- package/dist/esm/icons/fintech.js +136 -0
- package/dist/esm/icons/fintech.js.map +1 -0
- package/dist/esm/icons/fun.js +110 -0
- package/dist/esm/icons/fun.js.map +1 -0
- package/dist/esm/icons/health.js +118 -0
- package/dist/esm/icons/health.js.map +1 -0
- package/dist/esm/icons/media.js +195 -0
- package/dist/esm/icons/media.js.map +1 -0
- package/dist/esm/icons/navigation.js +132 -0
- package/dist/esm/icons/navigation.js.map +1 -0
- package/dist/esm/icons/saas.js +127 -0
- package/dist/esm/icons/saas.js.map +1 -0
- package/dist/esm/icons/shapes.js +182 -0
- package/dist/esm/icons/shapes.js.map +1 -0
- package/dist/esm/icons/smarthome.js +127 -0
- package/dist/esm/icons/smarthome.js.map +1 -0
- package/dist/esm/icons/social.js +150 -0
- package/dist/esm/icons/social.js.map +1 -0
- package/dist/esm/icons/ui.js +233 -0
- package/dist/esm/icons/ui.js.map +1 -0
- package/dist/esm/icons/weather.js +166 -0
- package/dist/esm/icons/weather.js.map +1 -0
- package/dist/esm/index.js +25 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/nicetodev-icons.css +1 -0
- package/dist/esm/smilAnimations.js +176 -0
- package/dist/esm/smilAnimations.js.map +1 -0
- package/dist/esm/types.js +44 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/types/NiceIconPicker.d.ts +149 -0
- package/dist/types/NiceVectorEditor.d.ts +75 -0
- package/dist/types/animationControls.d.ts +307 -0
- package/dist/types/createIcon.d.ts +76 -0
- package/dist/types/figmaExport.d.ts +243 -0
- package/dist/types/icons/actions.d.ts +25 -0
- package/dist/types/icons/brand.d.ts +3 -0
- package/dist/types/icons/business.d.ts +25 -0
- package/dist/types/icons/devtech.d.ts +39 -0
- package/dist/types/icons/ecommerce.d.ts +16 -0
- package/dist/types/icons/files.d.ts +31 -0
- package/dist/types/icons/fintech.d.ts +14 -0
- package/dist/types/icons/fun.d.ts +13 -0
- package/dist/types/icons/health.d.ts +14 -0
- package/dist/types/icons/index.d.ts +17 -0
- package/dist/types/icons/media.d.ts +23 -0
- package/dist/types/icons/navigation.d.ts +14 -0
- package/dist/types/icons/saas.d.ts +13 -0
- package/dist/types/icons/shapes.d.ts +22 -0
- package/dist/types/icons/smarthome.d.ts +13 -0
- package/dist/types/icons/social.d.ts +18 -0
- package/dist/types/icons/ui.d.ts +28 -0
- package/dist/types/icons/weather.d.ts +20 -0
- package/dist/types/index.d.ts +69 -0
- package/dist/types/smilAnimations.d.ts +102 -0
- package/dist/types/types.d.ts +179 -0
- package/package.json +86 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to `@nice2dev/icons` will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [1.0.0] - 2026-03-17
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
#### Icon Library
|
|
13
|
+
- **350+ icons** across 21 categories (UI, Navigation, Media, Communication, Commerce, Files, Weather, Social, Arrows, Shapes, Devices, Finance, Health, Food, Travel, Sports, Animals, E-commerce, Fintech, SaaS, SmartHome)
|
|
14
|
+
- **DevTech Logo Icons:** Vite, Bun, Deno, Tauri, Svelte, Next.js, Astro, Qwik, SolidJS
|
|
15
|
+
|
|
16
|
+
#### Icon Variants
|
|
17
|
+
- `solid` — Filled icon shapes
|
|
18
|
+
- `outline` — Stroked paths only
|
|
19
|
+
- `duotone` — Two-tone rendering with background layer
|
|
20
|
+
- `flat` — Badge-style with colored background
|
|
21
|
+
- `sharp` — Solid with sharp corners (no rounded edges)
|
|
22
|
+
- `rounded` — Solid with extra-rounded corners
|
|
23
|
+
- `mini` — Compact, optimized for small sizes (12-16px)
|
|
24
|
+
- `3d` — Pseudo-3D with SVG filter shadows and highlights
|
|
25
|
+
|
|
26
|
+
#### Multi-Color System
|
|
27
|
+
- `primaryColor`, `secondaryColor`, `accentColor` props
|
|
28
|
+
- Per-color opacity controls (`primaryOpacity`, `secondaryOpacity`, `accentOpacity`)
|
|
29
|
+
|
|
30
|
+
#### Gradient Fills
|
|
31
|
+
- 12 gradient presets: `sunset`, `ocean`, `aurora`, `fire`, `forest`, `candy`, `steel`, `royal`, `neon`, `earth`, `ice`, `lava`
|
|
32
|
+
- Linear and radial gradient types
|
|
33
|
+
- Configurable gradient angle
|
|
34
|
+
- Gradient animations: `shift`, `spin`, `pulse`
|
|
35
|
+
|
|
36
|
+
#### CSS Animations
|
|
37
|
+
- **65+ CSS animations** organized in categories:
|
|
38
|
+
- Core transforms: spin, pulse, bounce, shake, float, flip, glow, wiggle, rubber, swing, tada, heartbeat
|
|
39
|
+
- Entrances: fade-in, slide-up/down/left/right, drop, rise, roll-in, materialize, vortex, meteor, scale-in, signature, draw-sequence, reveal, unfold, assemble, draw
|
|
40
|
+
- Exits: scale-out, fold, dissolve
|
|
41
|
+
- Organic: breathe, drift, orbit, sway, tilt, rock, pendulum, levitate, flap, skate
|
|
42
|
+
- Energetic: jello, pop, squeeze, crush, stretch, stomp, snap, twist, dash, surge
|
|
43
|
+
- Effects: flash, blink, flicker, vibrate, tremble, glitch, neon, earthquake
|
|
44
|
+
- Complex: wobble, spiral, warp, morph, zoom-pulse, ripple, radar
|
|
45
|
+
- Dramatic: ping, implode, explode, scatter, rotate-x, draw-loop
|
|
46
|
+
|
|
47
|
+
#### SMIL Animations (SVG-native)
|
|
48
|
+
- **25 SMIL animation types** as CSS alternative:
|
|
49
|
+
- spin, pulse, bounce, shake, float, flip, wiggle, heartbeat
|
|
50
|
+
- scale-pulse, grow, shrink, rubber, pop, fade, blink, glow
|
|
51
|
+
- slide-x, slide-y, orbit, wave, draw, draw-reverse, color-shift
|
|
52
|
+
- `SmilAnimationWrapper` component
|
|
53
|
+
- `generateSmilAnimation` utility function
|
|
54
|
+
- Configurable duration, easing, repeat count, delay
|
|
55
|
+
|
|
56
|
+
#### Animation Controls
|
|
57
|
+
- `AnimationController` component with play/pause/reset/goToStep
|
|
58
|
+
- `InteractiveIcon` component with trigger support:
|
|
59
|
+
- `hover` — animate on mouse enter/leave
|
|
60
|
+
- `click` — animate on click
|
|
61
|
+
- `focus` — animate on focus/blur
|
|
62
|
+
- `visible` — animate when scrolled into view (IntersectionObserver)
|
|
63
|
+
- Animation sequences (chain multiple animations)
|
|
64
|
+
- Preset sequences: attention, success, error, loading, celebrate, notification, gentle, reveal
|
|
65
|
+
- Preset interactions: hoverBounce, hoverPulse, hoverSpin, clickPop, clickTada, visibleFadeIn, visibleBounce
|
|
66
|
+
|
|
67
|
+
#### NiceIconPicker Component
|
|
68
|
+
- Searchable dropdown with category tabs
|
|
69
|
+
- Grid preview with configurable icon size
|
|
70
|
+
- Controlled selection (`value`/`onChange`)
|
|
71
|
+
- Multi-select mode (`multiSelect`, `values`, `onChangeMulti`)
|
|
72
|
+
- Maximum selection limit (`maxSelections`)
|
|
73
|
+
- Virtualization for 1000+ icons
|
|
74
|
+
- Favorites with localStorage persistence
|
|
75
|
+
- History of recently used icons
|
|
76
|
+
- **Drag & drop** to external applications (SVG data, JSON metadata)
|
|
77
|
+
- Keyboard navigation (Escape to close)
|
|
78
|
+
- Click-outside dismissal
|
|
79
|
+
- Clearable selection
|
|
80
|
+
- Imperative handle for programmatic control
|
|
81
|
+
|
|
82
|
+
#### Figma/Sketch Export
|
|
83
|
+
- `exportIconToSvgString()` — clean SVG string for Figma import
|
|
84
|
+
- `exportIconToDataUrl()` — base64 data URL
|
|
85
|
+
- `downloadIconAsSvg()` — browser download as SVG
|
|
86
|
+
- `downloadIconAsPng()` — browser download as PNG (with scale support)
|
|
87
|
+
- `copyIconToClipboard()` — copy SVG to clipboard
|
|
88
|
+
- `batchExportIcons()` — export multiple icons at once
|
|
89
|
+
- `generateFigmaPluginManifest()` — JSON manifest for Figma plugins
|
|
90
|
+
- Figma-compatible type definitions (FigmaVectorPath, FigmaIconFrame, etc.)
|
|
91
|
+
|
|
92
|
+
#### NiceVectorEditor Component
|
|
93
|
+
- Simple vector editor for creating custom icons
|
|
94
|
+
- Layer management (vector, text, image layers)
|
|
95
|
+
- SVG export functionality
|
|
96
|
+
|
|
97
|
+
#### Developer Experience
|
|
98
|
+
- `createIcon()` factory function for custom icons
|
|
99
|
+
- Full TypeScript with strict mode
|
|
100
|
+
- TSDoc documentation for all public APIs
|
|
101
|
+
- Zero runtime dependencies (React as peer)
|
|
102
|
+
- Rollup build (CJS + ESM bundles)
|
|
103
|
+
- Vitest for unit testing
|
|
104
|
+
- Storybook for documentation
|
|
105
|
+
|
|
106
|
+
### Technical Details
|
|
107
|
+
|
|
108
|
+
- **Package name:** `@nice2dev/icons`
|
|
109
|
+
- **Peer dependencies:** React 18+
|
|
110
|
+
- **Bundle formats:** CommonJS (`dist/cjs`), ESM (`dist/esm`)
|
|
111
|
+
- **TypeScript:** Strict mode enabled
|
|
112
|
+
- **CSS:** BEM-style classes with CSS custom properties for theming
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## [Unreleased]
|
|
117
|
+
|
|
118
|
+
### Planned
|
|
119
|
+
- Figma / Sketch export plugin
|
|
120
|
+
- PNG sprite-sheet generation
|
|
121
|
+
- Icon font generation (TTF/WOFF2)
|
|
122
|
+
- Rollup plugin for tree-shaking analysis
|
|
123
|
+
- CDN standalone build
|
|
124
|
+
- Visual regression testing (Chromatic/Percy)
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 NiceToDev
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|