# @gromlab/svg-sprites
[π¬π§ English](README.md) | π·πΊ Π ΡΡΡΠΊΠΈΠΉ
 
`@gromlab/svg-sprites` β Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ SVG-ΡΠΏΡΠ°ΠΉΡΠΎΠ² Π΄Π»Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ½ ΡΠΎΠ±ΠΈΡΠ°Π΅Ρ Π²ΡΠ±ΡΠ°Π½Π½ΡΠ΅ SVG-ΠΈΠΊΠΎΠ½ΠΊΠΈ Π² ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π½Π΅ΡΠ½ΠΈΡ
ΠΊΠ΅ΡΠΈΡΡΠ΅ΠΌΡΡ
ΡΠΏΡΠ°ΠΉΡΠΎΠ² ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠ°Π²Π»ΠΈΠ²Π°Π΅Ρ ΠΈΡ
Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅.
ΠΠ»Ρ React ΠΈ Next.js ΠΏΠ°ΠΊΠ΅Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΈ Π²Π½Π΅ΡΠ½ΠΈΠ΅ SVG assets, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Ρ Vite, Webpack 5 ΠΈ Turbopack.
## SVG-ΡΠΏΡΠ°ΠΉΡ ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΡΠΎΡΡ, ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½Π°Ρ SVG-ΠΈΠΊΠΎΠ½ΠΊΠ°
ΠΠ»Ρ Π²ΡΠ΅Π³ΠΎ ΡΠΏΡΠ°ΠΉΡΠ° Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ React-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ. ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΠΈΠΊΠΎΠ½ΠΊΡ ΡΠ΅ΡΠ΅Π· `icon`, Π° ΡΠ΅Π΄Π°ΠΊΡΠΎΡ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ Π°Π²ΡΠΎΠΊΠΎΠΌΠΏΠ»ΠΈΡ Π²ΡΠ΅Ρ
Π΄ΠΎΡΡΡΠΏΠ½ΡΡ
ΠΈΠΌΡΠ½.
```tsx
```
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΏΡΠΈΠ²ΡΡΠ½ΡΠ΅ SVG-Π°ΡΡΠΈΠ±ΡΡΡ: ΡΠ°Π·ΠΌΠ΅ΡΡ, `color`, `className`, `style`, `aria-*` ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ. ΠΡΠ»ΠΈ Π½ΡΠΆΠ΅Π½ Π²Π½Π΅ΡΠ½ΠΈΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ `wrapped`.
```tsx
```
Π ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π½Π΅ ΠΏΡΠΈΡ
ΠΎΠ΄ΠΈΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎ ΡΠΏΡΠ°ΠΉΡΠΎΠΌ Π½Π°ΠΏΡΡΠΌΡΡ. ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π΅Π³ΠΎ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΡΡ SVG-ΠΈΠΊΠΎΠ½ΠΊΡ, Π½ΠΎ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, Π°Π²ΡΠΎΠΊΠΎΠΌΠΏΠ»ΠΈΡ ΠΈ TypeScript-ΠΏΡΠΎΠ²Π΅ΡΠΊΡ Π²ΡΠ΅Ρ
ΠΈΠΌΡΠ½.
## AI-friendly ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈ
`@gromlab/svg-sprites` ΡΡΠ°Π·Ρ ΡΠ°ΡΡΡΠΈΡΠ°Π½ Π½Π° ΡΠ°Π±ΠΎΡΡ Ρ AI-Π°Π³Π΅Π½ΡΠ°ΠΌΠΈ. ΠΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΠ΅ Π³ΠΎΡΠΎΠ²ΡΠΉ skill ΠΈ ΠΏΠΎΡΡΡΠΈΡΠ΅ Π°Π³Π΅Π½ΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΡ, ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ ΠΈΠ»ΠΈ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΡ Π±Π΅Π· Π΄Π»ΠΈΠ½Π½ΡΡ
ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ ΠΈ ΡΡΡΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ.
[π·πΊ Π‘ΠΊΠ°ΡΠ°ΡΡ AI skill (Π½Π° ΡΡΡΡΠΊΠΎΠΌ)](https://github.com/gromlab-ru/svg-sprites/releases/latest/download/svg-sprites-ru.zip)
[π¬π§ Π‘ΠΊΠ°ΡΠ°ΡΡ AI skill (Π½Π° Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠΌ)](https://github.com/gromlab-ru/svg-sprites/releases/latest/download/svg-sprites.zip)
## ΠΡ SVG Π΄ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π·Π° ΡΠ΅ΡΡΡΠ΅ ΡΠ°Π³Π°
ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Next.js App Router ΠΈ Turbopack.
### 1. Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΠΏΠ°ΠΊΠ΅Ρ
```bash
npm install --save-dev @gromlab/svg-sprites
```
### 2. Π£ΠΊΠ°ΠΆΠΈΡΠ΅ Π½ΡΠΆΠ½ΡΠ΅ ΠΈΠΊΠΎΠ½ΠΊΠΈ
SVG ΠΌΠΎΠ³ΡΡ ΠΎΡΡΠ°Π²Π°ΡΡΡΡ Π² ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΉ ΡΡΡΡΠΊΡΡΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ°:
```text
src/
βββ assets/icons/
β βββ search.svg
β βββ settings.svg
βββ features/profile/
β βββ user.svg
βββ ui/app-icons/
βββ svg-sprite.config.ts
```
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΡΠΏΡΠ°ΠΉΡΠ°:
```ts
// src/ui/app-icons/svg-sprite.config.ts
import { defineSpriteConfig } from '@gromlab/svg-sprites'
export default defineSpriteConfig({
mode: 'next@app/turbopack',
name: 'app',
inputFiles: [
'../../assets/icons/search.svg',
'../../assets/icons/settings.svg',
'../../features/profile/user.svg',
],
})
```
### 3. ΠΠΎΠ±Π°Π²ΡΡΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ
```json
{
"scripts": {
"sprites": "svg-sprites src/ui/app-icons/svg-sprite.config.ts",
"predev": "npm run sprites",
"prebuild": "npm run sprites"
}
}
```
ΠΠ΅ΡΠ²ΡΠΉ Π·Π°ΠΏΡΡΠΊ:
```bash
npm run sprites
```
ΠΠ°ΠΊΠ΅Ρ ΡΠΎΠ·Π΄Π°ΡΡ `AppIcon`, TypeScript-ΡΠΈΠΏΡ ΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ SVG-ΡΠΏΡΠ°ΠΉΡ.
### 4. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΡΡ ΠΈΠΊΠΎΠ½ΠΊΡ
```tsx
import { AppIcon } from '@/ui/app-icons'
export default function SearchButton() {
return (
)
}
```
ΠΡΠΎ Server Component. ΠΠ»Ρ ΠΈΠΊΠΎΠ½ΠΊΠΈ Π½Π΅ Π½ΡΠΆΠ½Ρ provider, `'use client'` ΠΈΠ»ΠΈ ΡΡΡΠ½Π°Ρ ΡΠ±ΠΎΡΠΊΠ° URL.
## Π’ΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ React-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Ρ Π°Π²ΡΠΎΠΊΠΎΠΌΠΏΠ»ΠΈΡΠΎΠΌ
ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠΏΡΠ°ΠΉΡ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ Π³ΠΎΡΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ. Π‘Π²ΠΎΠΉΡΡΠ²ΠΎ `icon` ΡΠΎΡΠΌΠΈΡΡΠ΅ΡΡΡ ΠΈΠ· ΡΠ΅Π°Π»ΡΠ½ΡΡ
ΠΈΠΌΡΠ½ SVG, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠΎΡΠ½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ
ΠΈΠΊΠΎΠ½ΠΎΠΊ, Π° TypeScript ΡΡΠ°Π·Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°Π΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΊΠΈ.
```tsx
// Π΄ΠΎΡΡΡΠΏΠ½Π°Ρ ΠΈΠΊΠΎΠ½ΠΊΠ°
// ΠΎΡΠΈΠ±ΠΊΠ° TypeScript
```
ΠΠΎΡΠ»Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠΉ SVG-ΠΈΠΊΠΎΠ½ΠΊΠΈ ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΉ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ Π΅Ρ ΠΈΠΌΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π² ΡΠΈΠΏΠ°Ρ
ΠΈ Π°Π²ΡΠΎΠΊΠΎΠΌΠΏΠ»ΠΈΡΠ΅. ΠΠ΅ Π½ΡΠΆΠ½ΠΎ Π²ΡΡΡΠ½ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, union-ΡΠΈΠΏΡ ΠΈΠ»ΠΈ ΡΠ΅Π΅ΡΡΡ ΠΈΠΌΡΠ½.
## Next.js App Router ΠΈ SSR ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈ
Generated-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² Server Components, SSR ΠΈ SSG Π±Π΅Π· `'use client'`.
ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠΊΠΎΠ½ΠΊΠΈ Π½Π΅ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΡ ΡΡΡΠ°Π½ΠΈΡΡ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ, Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ provider ΠΈ Π½Π΅ ΡΠΎΠ·Π΄Π°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π³ΡΠ°Π½ΠΈΡΡ Π³ΠΈΠ΄ΡΠ°ΡΠ°ΡΠΈΠΈ.
ΠΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² `page.tsx`, `layout.tsx`, ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ
ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΡ
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°Ρ
.
## ΠΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠΏΡΠ°ΠΉΡΡ Π²ΠΌΠ΅ΡΡΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠ³ΠΎ
ΠΡΠΎΠ΅ΠΊΡ Π½Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ ΠΎΠ΄Π½ΠΈΠΌ Π½Π°Π±ΠΎΡΠΎΠΌ ΠΈΠΊΠΎΠ½ΠΎΠΊ. Π‘ΠΎΠ·Π΄Π°Π²Π°ΠΉΡΠ΅ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠ΅ ΡΠΏΡΠ°ΠΉΡΡ Π΄Π»Ρ ΠΎΠ±ΡΠΈΡ
ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ
ΡΡΡΠ°Π½ΠΈΡ ΠΈ ΠΊΡΡΠΏΠ½ΡΡ
UI-ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ.
```tsx
```
ΠΠ°ΠΆΠ΄ΡΠΉ Π½Π°Π±ΠΎΡ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΈ SVG asset, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ°Π·Π΄Π΅Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π΅ Π½Π΅ΡΡΡ ΠΈΠΊΠΎΠ½ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌ Π½Π΅ Π½ΡΠΆΠ½Ρ.
## ΠΠ°ΠΆΠ΄Π°Ρ ΠΈΠΊΠΎΠ½ΠΊΠ° Ρ
ΡΠ°Π½ΠΈΡΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ΅
Π Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ ΠΈΡΡ
ΠΎΠ΄Π½ΠΈΠΊΠΎΠ² ΠΊΠ°ΠΆΠ΄Π°Ρ SVG-ΠΈΠΊΠΎΠ½ΠΊΠ° Ρ
ΡΠ°Π½ΠΈΡΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ΅ ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π²Ρ
ΠΎΠ΄ΠΈΡΡ Π² Π»ΡΠ±ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΏΡΠ°ΠΉΡΠΎΠ². ΠΠ±ΡΠΈΠ΅ ΠΈΠΊΠΎΠ½ΠΊΠΈ Π½Π΅ ΠΏΡΠΈΡ
ΠΎΠ΄ΠΈΡΡΡ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΡΠ°Π½ΠΈΡΠ°ΠΌΠΈ ΠΈ ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ: ΠΎΠ½ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ Π΄Π»Ρ Π²ΡΠ΅Ρ
Π½Π°Π±ΠΎΡΠΎΠ² ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ°.
```text
search.svg ββ¬ββ AppIcon
βββ AnalyticsIcon
βββ EditorIcon
```
Π‘ΠΏΡΠ°ΠΉΡΡ ΡΠ°Π·Π΄Π΅Π»ΡΡΡΡΡ ΡΠ°Π΄ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, Π½ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΈΡΡ
ΠΎΠ΄Π½ΡΡ
ΠΈΠΊΠΎΠ½ΠΎΠΊ ΠΎΡΡΠ°ΡΡΡΡ Π΅Π΄ΠΈΠ½ΠΎΠΉ.
## ΠΡΠ°ΡΠ·Π΅ΡΠ½ΠΎΠ΅ ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
ΠΡΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Vite, Webpack ΠΈΠ»ΠΈ Next.js ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠΏΡΠ°ΠΉΡ Π²ΡΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌ Π²Π΅ΡΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ SVG-ΡΠ°ΠΉΠ»ΠΎΠΌ.
ΠΠΎΠΊΠ° Π½Π°Π±ΠΎΡ ΠΈΠΊΠΎΠ½ΠΎΠΊ Π½Π΅ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ, Π±ΡΠ°ΡΠ·Π΅Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΡ
ΡΠ°Π½ΡΠ½Π½ΡΡ ΠΊΠΎΠΏΠΈΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ JavaScript ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ React-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ Π·Π°Π³ΡΡΠΆΠ°ΡΡ Π³Π΅ΠΎΠΌΠ΅ΡΡΠΈΡ Π²ΡΠ΅Ρ
ΠΈΠΊΠΎΠ½ΠΎΠΊ.
## JavaScript Π±Π΅Π· SVG-Π±Π°Π»Π»Π°ΡΡΠ°
ΠΠΎΠ½ΡΡΡΡ ΠΈΠΊΠΎΠ½ΠΎΠΊ ΠΎΡΡΠ°ΡΡΡΡ Π²ΠΎ Π²Π½Π΅ΡΠ½ΠΈΡ
SVG assets ΠΈ Π½Π΅ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡ chunks ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
```text
React-ΠΊΠΎΠ΄ β JavaScript chunks
SVG-ΠΈΠΊΠΎΠ½ΠΊΠΈ β ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ SVG assets
```
JavaScript ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, Π° Π³ΡΠ°ΡΠΈΠΊΠ° Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ ΠΈ ΠΊΠ΅ΡΠΈΡΡΠ΅ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ.
## Π’ΡΠ°Π½ΡΡΠΎΡΠΌΠ°ΡΠΈΠΈ SVG ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈ
ΠΠΎ Π²ΡΠ΅ΠΌΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΏΠ°ΠΊΠ΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠ°Π²Π»ΠΈΠ²Π°Π΅Ρ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠ΅ SVG Π΄Π»Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°:
- ΡΠ΄Π°Π»ΡΠ΅Ρ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ `width` ΠΈ `height`;
- ΡΠΎΡ
ΡΠ°Π½ΡΠ΅Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ `viewBox`;
- ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ `fill` ΠΈ `stroke` Π² CSS-ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅;
- Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΏΠ»Π°Π²Π½ΡΠ΅ transitions Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² ΡΠ²Π΅ΡΠ½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈΠΊΠΎΠ½ΠΊΠΈ.
ΠΠ°ΠΆΠ΄ΡΡ ΡΡΠ°Π½ΡΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΈΠ»ΠΈ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ.
## ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ²Π΅Ρ ΠΏΠΎΠ΄ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΠΌ CSS
ΠΡΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΡΠ²Π΅ΡΠ° `fill` ΠΈ `stroke` Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΡΡΡΡ Π² CSS-ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ `--icon-color-N`.
ΠΠΎΠ½ΠΎΡ
ΡΠΎΠΌΠ½Π°Ρ ΠΈΠΊΠΎΠ½ΠΊΠ° Π½Π°ΡΠ»Π΅Π΄ΡΠ΅Ρ `currentColor`:
```tsx
```
Π ΠΌΠ½ΠΎΠ³ΠΎΡΠ²Π΅ΡΠ½ΠΎΠΉ ΠΈΠΊΠΎΠ½ΠΊΠ΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ²Π΅Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ:
```tsx
```
Π’Π΅ΠΌΡ, ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΈ hover-ΡΡΡΠ΅ΠΊΡΡ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π±Π΅Π· ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ SVG ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ
ΠΊΠΎΠΏΠΈΠΉ ΠΈΠΊΠΎΠ½ΠΊΠΈ.
## SpriteViewer: Π²ΡΠ΅ ΡΠΏΡΠ°ΠΉΡΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ debug-ΡΡΡΠ°Π½ΠΈΡΠ΅
`SpriteViewer` ΡΠ΅Π½Π΄Π΅ΡΠΈΡ Π²ΡΠ΅ ΡΠΏΡΠ°ΠΉΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ ΠΈ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠΊΠΎΠ½ΠΊΠΈ Π²ΠΎΡΠ»ΠΈ Π² ΠΊΠ°ΠΆΠ΄ΡΠΉ Π½Π°Π±ΠΎΡ ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π²ΡΠ³Π»ΡΠ΄ΡΡ.
ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠΊΠΎΠ½ΠΊΠΈ Π²ΠΈΠ΄Π½Ρ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ CSS-ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈ ΠΈΡ
fallback-ΡΠ²Π΅ΡΠ°. ΠΠ½Π°ΡΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡΡ ΠΏΡΡΠΌΠΎ Π² Viewer ΠΈ ΡΡΠ°Π·Ρ Π½Π°Π±Π»ΡΠ΄Π°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
ΠΠ΄Π΅ΡΡ ΠΆΠ΅ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π³ΠΎΡΠΎΠ²ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ΅ΡΠ΅Π·:
- React;
- `