@nice2dev/icons-education 1.0.10

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 ADDED
@@ -0,0 +1,225 @@
1
+ # @nice2dev/icons-education
2
+
3
+ Animated education icons for learning applications. Part of the Nice2Dev UI component library.
4
+
5
+ ## Features
6
+
7
+ - ๐ŸŽญ **60 Unique Icons** โ€” School, Science, Math, and Arts categories
8
+ - โœจ **SMIL Animations** โ€” 9 built-in animation types (pulse, grow, shake, spin, bounce, fade, flip, slide, glow)
9
+ - ๐ŸŽจ **3 Variants** โ€” Filled, outlined, and duotone styles
10
+ - โšก **Tree-shakeable** โ€” Import only what you need
11
+ - ๐Ÿ“ฆ **Lazy Loading** โ€” Icon collections support dynamic imports
12
+ - ๐Ÿ”ง **TypeScript** โ€” Full type safety with strict typing
13
+ - โ™ฟ **Accessible** โ€” ARIA attributes and keyboard support
14
+
15
+ ## Installation
16
+
17
+ ```bash
18
+ # npm
19
+ npm install @nice2dev/icons-education
20
+
21
+ # pnpm
22
+ pnpm add @nice2dev/icons-education
23
+
24
+ # yarn
25
+ yarn add @nice2dev/icons-education
26
+ ```
27
+
28
+ ## Quick Start
29
+
30
+ ```tsx
31
+ import { GraduationCapIcon, AtomIcon, CalculatorIcon, PaletteIcon } from '@nice2dev/icons-education';
32
+
33
+ function App() {
34
+ return (
35
+ <div>
36
+ {/* Static icon */}
37
+ <GraduationCapIcon size={24} />
38
+
39
+ {/* Animated icon */}
40
+ <AtomIcon animation="spin" size={32} />
41
+
42
+ {/* Custom styling */}
43
+ <PaletteIcon variant="duotone" color="#3b82f6" accentColor="#93c5fd" animation="grow" />
44
+ </div>
45
+ );
46
+ }
47
+ ```
48
+
49
+ ## Icon Categories
50
+
51
+ ### School (15 icons)
52
+
53
+ | Icon | Name | Description |
54
+ | ---- | ------------------- | -------------------------- |
55
+ | ๐ŸŽ“ | `GraduationCapIcon` | Graduation cap/mortarboard |
56
+ | ๐Ÿ“• | `BookIcon` | Closed book |
57
+ | ๐Ÿ“– | `BookOpenIcon` | Open book |
58
+ | ๐Ÿ“š | `LibraryIcon` | Library/bookshelf |
59
+ | ๐ŸŽ’ | `BackpackIcon` | School backpack |
60
+ | โœ๏ธ | `PencilIcon` | Writing pencil |
61
+ | ๐Ÿ–Š๏ธ | `PenFancyIcon` | Fancy pen |
62
+ | ๐Ÿ“ | `RulerIcon` | Measuring ruler |
63
+ | ๐Ÿงน | `EraserIcon` | Eraser |
64
+ | โœ‚๏ธ | `ScissorsIcon` | Scissors |
65
+ | ๐Ÿ““ | `NotebookIcon` | Notebook |
66
+ | ๐Ÿ“ | `HomeworkIcon` | Homework/assignment |
67
+ | ๐Ÿ“œ | `DiplomaIcon` | Diploma |
68
+ | ๐Ÿ… | `CertificateIcon` | Certificate |
69
+ | ๐Ÿ”” | `BellIcon` | School bell |
70
+
71
+ ### Science (15 icons)
72
+
73
+ | Icon | Name | Description |
74
+ | ---- | ---------------- | ------------------ |
75
+ | โš›๏ธ | `AtomIcon` | Atom structure |
76
+ | ๐Ÿ”ฌ | `MicroscopeIcon` | Microscope |
77
+ | ๐Ÿ”ญ | `TelescopeIcon` | Telescope |
78
+ | ๐Ÿงช | `FlaskIcon` | Lab flask |
79
+ | ๐Ÿงซ | `BeakerIcon` | Beaker |
80
+ | ๐Ÿงฌ | `DNAIcon` | DNA helix |
81
+ | โš—๏ธ | `MoleculeIcon` | Molecule |
82
+ | ๐Ÿงฒ | `MagnetIcon` | Magnet |
83
+ | ๐Ÿช | `PlanetIcon` | Planet with ring |
84
+ | ๐Ÿš€ | `RocketIcon` | Rocket |
85
+ | ๐Ÿ”ฌ | `LabIcon` | Laboratory |
86
+ | ๐Ÿงซ | `PetriDishIcon` | Petri dish |
87
+ | โš—๏ธ | `ChemicalIcon` | Chemical/test tube |
88
+ | โ˜ข๏ธ | `RadiationIcon` | Radiation symbol |
89
+ | ๐Ÿฆ  | `BiologyIcon` | Biology/cell |
90
+
91
+ ### Math (15 icons)
92
+
93
+ | Icon | Name | Description |
94
+ | ---- | ---------------- | ----------------- |
95
+ | ๐Ÿงฎ | `CalculatorIcon` | Calculator |
96
+ | ฯ€ | `PiIcon` | Pi symbol |
97
+ | ฮฃ | `SigmaIcon` | Sigma/summation |
98
+ | โˆž | `InfinityIcon` | Infinity symbol |
99
+ | ฦ’ | `FunctionIcon` | Function notation |
100
+ | ๐Ÿ“ˆ | `GraphIcon` | Graph/chart |
101
+ | โ–ณ | `GeometryIcon` | Geometry shapes |
102
+ | โญ• | `CompassIcon` | Drawing compass |
103
+ | ๐Ÿ“ | `ProtractorIcon` | Protractor |
104
+ | ๐Ÿงฎ | `AbacusIcon` | Abacus |
105
+ | xยฒ | `FormulaIcon` | Math formula |
106
+ | % | `PercentIcon` | Percent symbol |
107
+ | รท | `DivisionIcon` | Division symbol |
108
+ | ยฑ | `PlusMinusIcon` | Plus-minus symbol |
109
+ | = | `EqualsIcon` | Equals sign |
110
+
111
+ ### Arts (15 icons)
112
+
113
+ | Icon | Name | Description |
114
+ | ---- | --------------- | -------------- |
115
+ | ๐ŸŽจ | `PaletteIcon` | Artist palette |
116
+ | ๐Ÿ–Œ๏ธ | `BrushIcon` | Paint brush |
117
+ | ๐Ÿ–ผ๏ธ | `EaselIcon` | Art easel |
118
+ | ๐Ÿ–ผ๏ธ | `CanvasIcon` | Canvas |
119
+ | ๐ŸŽต | `MusicNoteIcon` | Music note |
120
+ | ๐ŸŽน | `PianoIcon` | Piano keys |
121
+ | ๐ŸŽธ | `GuitarIcon` | Guitar |
122
+ | ๐ŸŽญ | `DramaIcon` | Drama masks |
123
+ | ๐ŸŽญ | `TheaterIcon` | Theater stage |
124
+ | ๐Ÿ—ฟ | `SculptureIcon` | Sculpture |
125
+ | ๐Ÿ“ท | `CameraIcon` | Camera |
126
+ | ๐ŸŽฌ | `FilmIcon` | Film reel |
127
+ | ๐Ÿ’ƒ | `DanceIcon` | Dance figure |
128
+ | โœ‚๏ธ | `CraftsIcon` | Arts & crafts |
129
+ | ๐Ÿบ | `PotteryIcon` | Pottery |
130
+
131
+ ## Animation Types
132
+
133
+ ```tsx
134
+ import { AtomIcon } from '@nice2dev/icons-education';
135
+
136
+ // Available animations
137
+ <AtomIcon animation="pulse" /> // Pulsing opacity
138
+ <AtomIcon animation="grow" /> // Scale up/down
139
+ <AtomIcon animation="shake" /> // Horizontal shake
140
+ <AtomIcon animation="spin" /> // 360ยฐ rotation
141
+ <AtomIcon animation="bounce" /> // Vertical bounce
142
+ <AtomIcon animation="fade" /> // Fade in/out
143
+ <AtomIcon animation="flip" /> // Y-axis flip
144
+ <AtomIcon animation="slide" /> // Horizontal slide
145
+ <AtomIcon animation="glow" /> // Drop shadow glow
146
+ ```
147
+
148
+ ### Animation Duration
149
+
150
+ ```tsx
151
+ <AtomIcon animation="spin" animationDuration="fast" /> // 0.5s
152
+ <AtomIcon animation="spin" animationDuration="normal" /> // 1s (default)
153
+ <AtomIcon animation="spin" animationDuration="slow" /> // 2s
154
+ ```
155
+
156
+ ## Icon Variants
157
+
158
+ ```tsx
159
+ import { GraduationCapIcon } from '@nice2dev/icons-education';
160
+
161
+ // Filled (default)
162
+ <GraduationCapIcon variant="filled" />
163
+
164
+ // Outlined
165
+ <GraduationCapIcon variant="outlined" />
166
+
167
+ // Duotone (two-color)
168
+ <GraduationCapIcon
169
+ variant="duotone"
170
+ color="#3b82f6"
171
+ accentColor="#93c5fd"
172
+ />
173
+ ```
174
+
175
+ ## Props Reference
176
+
177
+ | Prop | Type | Default | Description |
178
+ | ------------------- | ------------------------------------- | ---------------- | ------------------------------------------ |
179
+ | `size` | `number \| string` | `24` | Icon size in pixels or CSS string |
180
+ | `color` | `string` | `'currentColor'` | Primary icon color |
181
+ | `accentColor` | `string` | `color` | Secondary/accent color for duotone |
182
+ | `variant` | `'filled' \| 'outlined' \| 'duotone'` | `'filled'` | Icon style variant |
183
+ | `animation` | `EducationIconAnimation` | `'none'` | Animation type |
184
+ | `animationDuration` | `'slow' \| 'normal' \| 'fast'` | `'normal'` | Animation speed |
185
+ | `animate` | `boolean` | `true` | Whether animation should play |
186
+ | `strokeWidth` | `number` | `2` | Stroke width for outlined variant |
187
+ | `className` | `string` | `undefined` | Additional CSS class |
188
+ | `title` | `string` | `undefined` | Accessible title (also enables aria-label) |
189
+ | `style` | `CSSProperties` | `undefined` | Inline styles |
190
+
191
+ ## Dynamic Imports
192
+
193
+ For code-splitting, use the icon collections:
194
+
195
+ ```tsx
196
+ import { SchoolIcons } from '@nice2dev/icons-education';
197
+
198
+ // Dynamically load an icon
199
+ const loadGraduationCapIcon = async () => {
200
+ const GraduationCapIcon = await SchoolIcons.GraduationCap();
201
+ return GraduationCapIcon;
202
+ };
203
+ ```
204
+
205
+ ## TypeScript
206
+
207
+ All icons are fully typed:
208
+
209
+ ```tsx
210
+ import type {
211
+ EducationIconProps,
212
+ EducationIconAnimation,
213
+ SchoolIconName,
214
+ ScienceIconName,
215
+ MathIconName,
216
+ ArtsIconName,
217
+ } from '@nice2dev/icons-education';
218
+
219
+ // Type-safe icon name unions
220
+ type AllIconNames = SchoolIconName | ScienceIconName | MathIconName | ArtsIconName;
221
+ ```
222
+
223
+ ## License
224
+
225
+ MIT ยฉ Nice2Dev