Конвертер SVG у JSX
Перетворіть SVG на React JSX: атрибути стають camelCase, вбудований style перетворюється на обʼєкт, а результат — inline JSX, memo чи forwardRef.
Конвертер SVG у JSX — Вставте SVG-розмітку або перетягніть файл .svg й миттєво отримайте готовий для React JSX: атрибути на кшталт stroke-width стають camelCase, class стає className, рядок вбудованого style переписується в обʼєкт style JSX, а порожні елементи самозакриваються. За бажанням можна спершу виконати очищення у стилі SVGO, а потім вивести вбудований JSX або функціональний, memo- чи forwardRef-компонент, що розгортає SVGProps. Усе це чисте перетворення рядка, що виконується цілком у вашому браузері; ваша розмітка ніколи не залишає сторінку й не потрапляє на сервер.
Що таке Конвертер SVG у JSX?
Конвертер SVG у JSX — це безкоштовний браузерний інструмент, що перетворює звичайну SVG-розмітку на коректний React JSX, який можна одразу вставити в компонент. React очікує DOM-атрибути в camelCase (strokeWidth, clipPath, fillRule), використовує className замість class і вимагає атрибут style як обʼєкт із властивостей у camelCase, а не рядок — цей інструмент виправляє все це автоматично. Фронтенд-розробники та дизайнери користуються ним під час експорту іконок з Figma, Illustrator чи набору іконок. Увімкніть необовʼязкове очищення, щоб видалити коментарі, метадані редактора та XML-оголошення, і виберіть, чи буде вивід вбудованим JSX, чи функціональним, memo()- або forwardRef-компонентом, типізованим через React.SVGProps.
Як користуватися Конвертер SVG у JSX
- Вставте SVG-розмітку в поле введення або перетягніть файл .svg у зону скидання.
- Перегляньте перетворений JSX у полі виведення — атрибути приведені до camelCase, class став className, вбудований style став обʼєктом style, а порожні теги самозакриті.
- Відкрийте «Налаштування» і виберіть «Вивід компонента»: вбудований JSX, функціональний компонент, memo()-компонент або forwardRef-компонент.
- Задайте поле «Імʼя компонента», щоб керувати імʼям в обгортці (наприклад, MyIcon).
- Увімкніть «Пропси TypeScript», щоб типізувати компонент через React.SVGProps, або ввімкніть «Очистити SVG», щоб спершу видалити коментарі та метадані редактора.
- Натисніть «Копіювати», щоб скопіювати JSX, потім вставте його у свій проєкт React або Next.js.
Приклади
Вбудовані стилі та атрибути перетворені
Вхідні дані
<svg viewBox="0 0 24 24"><path stroke-width="2" style="fill:none;stroke-linecap:round" d="M4 12h16"/></svg>
Результат
<svg viewBox="0 0 24 24"><path strokeWidth="2" style={{ fill: "none", strokeLinecap: "round" }} d="M4 12h16" /></svg>forwardRef-компонент із типізованими пропсами
Вхідні дані
<svg viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"/></svg>
Результат
export const MyIcon = React.forwardRef<SVGSVGElement, React.SVGProps<SVGSVGElement>>(function MyIcon(props, ref) {
return (
<svg viewBox="0 0 24 24" ref={ref} {...props}><circle cx="12" cy="12" r="10" /></svg>
);
});Поширені запитання
- Що конвертер змінює в моєму SVG?
- Він перейменовує атрибути з дефісами та простором імен на camelCase-форму React (stroke-width на strokeWidth, xlink:href на xlinkHref), перетворює class на className, переписує рядок вбудованого style на обʼєкт style JSX із ключами в camelCase і самозакриває порожні елементи на кшталт path і rect, щоб вони були коректним JSX.
- Як працюють опції виводу компонента?
- Виберіть вбудований JSX, щоб розмістити розмітку будь-де, або обгорніть її як функціональний, memo()- чи forwardRef-компонент із введеним вами імʼям компонента. forwardRef-компонент отримує ref, прикріплений до кореневого svg. Увімкніть «Пропси TypeScript», щоб типізувати будь-яку обгортку через React.SVGProps і розгорнути {...props}.
- Чи перетворює він вбудовані стилі?
- Так. Атрибут style="fill:red;stroke-width:2" переписується на обʼєкт style JSX виду style={{ fill: "red", strokeWidth: "2" }}, з іменами властивостей у camelCase і значеннями як рядками. CSS-змінні (--var) зберігаються як рядкові ключі.
- Що робить очищення у стилі SVGO?
- Коли «Очистити SVG» ввімкнено, інструмент видаляє XML-оголошення, DOCTYPE, коментарі, <metadata>, простори імен редактора на кшталт inkscape: і sodipodi:, а також атрибут version у svg, потім стискає пробіли — усе це до запуску перетворення в JSX.
- Чи завантажується мій SVG кудись?
- Ні. Перетягування файлу або вставлення розмітки запускають чисте перетворення рядка цілком у вашому браузері, тож ваш SVG ніколи не надсилається на сервер, і інструмент працює офлайн.
Схожі інструменти
Код у зображення
Перетворіть фрагмент коду на зображення з підсвічуванням синтаксису прямо в браузері — з понад 20 мовами, власними темами й тлами, номерами рядків та експортом у PNG або SVG.
Перевірка контрастності кольорів
Перевірте контраст WCAG 2.1 і оцінку APCA Lc між кольором тексту та фону, перегляньте позначки AA, AAA і 3:1 та застосуйте найближчий прохідний колір.
Змішувач кольорів
Змішуйте два HEX-кольори у вибраній пропорції в колірному просторі RGB або Lab і зчитуйте отриманий проміжний колір як зразок і копійоване HEX-значення.
Генератор відтінків кольору
Перетворіть один базовий колір HEX на шкалу OKLCH, HSL або RGB з налаштовними щаблями, підказками контрасту WCAG на кожному щаблі та експортом у CSS, Tailwind і JSON.