-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
318 lines (303 loc) · 24.9 KB
/
Copy pathindex.html
File metadata and controls
318 lines (303 loc) · 24.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>SVG Path Merger - Merge SVG Paths Online Tool</title>
<!-- SEO Meta Tags -->
<meta name="description" content="Free online tool to merge multiple SVG path elements into a single path. Optimize your SVG files, reduce file size, and simplify your SVG structure instantly.">
<meta name="keywords" content="SVG, path merger, SVG optimizer, merge paths, SVG tool, online SVG editor, SVG combine, optimize SVG">
<meta name="author" content="SVG Path Merger">
<meta name="robots" content="index, follow">
<meta name="language" content="English">
<meta name="theme-color" content="#6366f1">
<!-- Open Graph / Facebook -->
<meta property="og:type" content="website">
<meta property="og:url" content="https://firestar300.github.io/SVG-Path-Merger/">
<meta property="og:title" content="SVG Path Merger - Merge SVG Paths Online">
<meta property="og:description" content="Free online tool to merge multiple SVG path elements into a single path. Optimize and simplify your SVG files instantly.">
<meta property="og:image" content="https://firestar300.github.io/SVG-Path-Merger/og-image.png">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<!-- Twitter -->
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:url" content="https://firestar300.github.io/SVG-Path-Merger/">
<meta name="twitter:title" content="SVG Path Merger - Merge SVG Paths Online">
<meta name="twitter:description" content="Free online tool to merge multiple SVG path elements into a single path. Optimize and simplify your SVG files instantly.">
<meta name="twitter:image" content="https://firestar300.github.io/SVG-Path-Merger/og-image.png">
<!-- Canonical URL -->
<link rel="canonical" href="https://firestar300.github.io/SVG-Path-Merger/">
<!-- Favicon -->
<link rel="icon" type="image/x-icon" href="/favicon.ico">
<link rel="icon" type="image/svg+xml" href="/favicon.svg">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="192x192" href="/favicon-192x192.png">
<link rel="apple-touch-icon" sizes="180x180" href="/favicon-192x192.png">
<link rel="manifest" href="/site.webmanifest">
<!-- JSON-LD Structured Data -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebApplication",
"name": "SVG Path Merger",
"description": "Free online tool to merge multiple SVG path elements into a single path. Optimize your SVG files, reduce file size, and simplify your SVG structure instantly.",
"url": "https://firestar300.github.io/SVG-Path-Merger/",
"applicationCategory": "DesignApplication",
"operatingSystem": "Any",
"offers": {
"@type": "Offer",
"price": "0",
"priceCurrency": "USD"
},
"featureList": [
"Merge multiple SVG paths into one",
"Real-time preview",
"File size optimization",
"Dark mode support",
"Copy to clipboard"
]
}
</script>
<!-- FAQ Schema for Rich Snippets -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "What is an SVG path?",
"acceptedAnswer": {
"@type": "Answer",
"text": "An SVG path is a series of drawing commands that create shapes in SVG files. The <path> element is one of the most powerful elements in SVG for creating complex shapes."
}
},
{
"@type": "Question",
"name": "Will merging paths change my SVG appearance?",
"acceptedAnswer": {
"@type": "Answer",
"text": "In most cases, no. The visual appearance remains the same when paths use the same colors. However, if your SVG uses multiple fill or stroke colors, see the question about multi-colored SVGs."
}
},
{
"@type": "Question",
"name": "What happens with multi-colored SVGs?",
"acceptedAnswer": {
"@type": "Answer",
"text": "When merging paths with different colors, all paths will inherit the color of the first path. This means details with different colors may become less visible or disappear. The tool will warn you when this happens. For best results, use this tool with single-color SVGs or SVGs where overlapping paths create cutouts."
}
},
{
"@type": "Question",
"name": "Is this tool free to use?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes! SVG Path Merger is completely free to use with no limitations, no registration required, and no hidden costs."
}
},
{
"@type": "Question",
"name": "Can I use this for commercial projects?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Absolutely! You can use this tool for any purpose, including commercial projects, without any restrictions."
}
},
{
"@type": "Question",
"name": "What browsers are supported?",
"acceptedAnswer": {
"@type": "Answer",
"text": "SVG Path Merger works on all modern browsers including Chrome, Firefox, Safari, Edge, and Opera."
}
}
]
}
</script>
<meta name="google-site-verification" content="f-IZyEhpwN5qV3JabnOWGKJR-ed2_K2KxCrpGs5Jono" />
</head>
<body class="bg-slate-50 dark:bg-slate-900 text-slate-950 dark:text-slate-100 transition-colors">
<div class="max-w-7xl mx-auto p-8">
<!-- Header -->
<header class="text-center mb-12">
<div class="flex justify-end mb-4">
<button type="button" id="darkModeToggle" class="p-2.5 rounded-lg bg-slate-200 dark:bg-slate-700 hover:bg-slate-300 dark:hover:bg-slate-600 transition-colors" aria-label="Toggle dark mode">
<svg aria-hidden="true" focusable="false" id="sunIcon" class="w-5 h-5 text-slate-800 dark:text-slate-200 hidden dark:block" fill="currentColor" viewBox="0 0 20 20">
<path d="M10 2a1 1 0 011 1v1a1 1 0 11-2 0V3a1 1 0 011-1zm4 8a4 4 0 11-8 0 4 4 0 018 0zm-.464 4.95l.707.707a1 1 0 001.414-1.414l-.707-.707a1 1 0 00-1.414 1.414zm2.12-10.607a1 1 0 010 1.414l-.706.707a1 1 0 11-1.414-1.414l.707-.707a1 1 0 011.414 0zM17 11a1 1 0 100-2h-1a1 1 0 100 2h1zm-7 4a1 1 0 011 1v1a1 1 0 11-2 0v-1a1 1 0 011-1zM5.05 6.464A1 1 0 106.465 5.05l-.708-.707a1 1 0 00-1.414 1.414l.707.707zm1.414 8.486l-.707.707a1 1 0 01-1.414-1.414l.707-.707a1 1 0 011.414 1.414zM4 11a1 1 0 100-2H3a1 1 0 000 2h1z" fill-rule="evenodd" clip-rule="evenodd"></path>
</svg>
<svg aria-hidden="true" focusable="false" id="moonIcon" class="w-5 h-5 text-slate-800 dark:text-slate-200 block dark:hidden" fill="currentColor" viewBox="0 0 20 20">
<path d="M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z"></path>
</svg>
</button>
</div>
<svg class="w-14 h-14 mx-auto my-4 fill-primary dark:fill-indigo-300" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 110 110" fill="none" aria-hidden="true" focusable="false">
<path d="M27.5 50.417c-6.34 0-11.745-2.235-16.213-6.703-4.47-4.469-6.704-9.874-6.704-16.214 0-6.416 2.235-11.84 6.704-16.27C15.755 6.798 21.16 4.582 27.5 4.582c6.417 0 11.84 2.216 16.271 6.646 4.43 4.43 6.646 9.855 6.646 16.271 0 6.34-2.215 11.745-6.646 16.214-4.43 4.468-9.854 6.703-16.27 6.703Zm0-9.167c3.896 0 7.162-1.337 9.797-4.01 2.636-2.674 3.953-5.92 3.953-9.74 0-3.896-1.318-7.161-3.953-9.797-2.635-2.635-5.901-3.953-9.797-3.953-3.82 0-7.066 1.318-9.74 3.953-2.673 2.636-4.01 5.901-4.01 9.797 0 3.82 1.337 7.066 4.01 9.74 2.674 2.673 5.92 4.01 9.74 4.01Zm45.834 64.167c-2.521 0-4.68-.898-6.475-2.693s-2.692-3.953-2.692-6.474V73.334c0-2.521.897-4.68 2.692-6.475 1.796-1.795 3.954-2.692 6.475-2.692H96.25c2.521 0 4.679.897 6.474 2.692 1.795 1.796 2.693 3.954 2.693 6.475V96.25c0 2.521-.898 4.679-2.693 6.474s-3.953 2.693-6.474 2.693H73.334Zm0-9.167H96.25V73.334H73.334V96.25Zm7.906-60.958L35.292 81.125c.382.917.706 1.872.974 2.865.267.993.4 2.024.4 3.094 0 3.819-1.317 7.066-3.952 9.74-2.636 2.673-5.901 4.009-9.797 4.009-3.82 0-7.066-1.336-9.74-4.01-2.673-2.673-4.01-5.92-4.01-9.74 0-3.895 1.337-7.161 4.01-9.796 2.674-2.636 5.92-3.954 9.74-3.954 1.07 0 2.1.134 3.094.401.993.268 1.948.593 2.864.975L74.71 28.76a24.415 24.415 0 0 1-.975-2.808 11.216 11.216 0 0 1-.4-3.036c0-3.896 1.336-7.162 4.01-9.797 2.674-2.635 5.92-3.953 9.74-3.953 3.895 0 7.161 1.318 9.796 3.953 2.636 2.635 3.953 5.901 3.953 9.797 0 3.82-1.317 7.066-3.953 9.74-2.635 2.673-5.9 4.01-9.796 4.01-1.07 0-2.082-.134-3.037-.401a24.396 24.396 0 0 1-2.807-.974Z"/>
</svg>
<h1 class="text-4xl font-bold text-primary dark:text-indigo-300 mb-2">SVG Path Merger</h1>
<p class="text-lg text-slate-600 dark:text-slate-400">Merge all <code class="text-slate-800 dark:text-slate-300" aria-label="path HTML tag"><path></code> elements from an SVG into a single path</p>
</header>
<main>
<!-- Grid Layout -->
<div class="grid lg:grid-cols-2 gap-8 mb-8">
<!-- Input Section -->
<div class="flex flex-col gap-4">
<div class="flex justify-between items-center">
<h2 class="text-2xl font-semibold text-slate-900 dark:text-slate-100">Original SVG</h2>
<button type="button" id="clearBtn" class="btn btn-secondary">
<svg aria-hidden="true" focusable="false" width="20" height="20" viewBox="0 0 16 16" fill="currentColor">
<path d="M5.5 5.5A.5.5 0 0 1 6 6v6a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5zm2.5 0a.5.5 0 0 1 .5.5v6a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5zm3 .5a.5.5 0 0 0-1 0v6a.5.5 0 0 0 1 0V6z"/>
<path fill-rule="evenodd" d="M14.5 3a1 1 0 0 1-1 1H13v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V4h-.5a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1H6a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1h3.5a1 1 0 0 1 1 1v1zM4.118 4 4 4.059V13a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V4.059L11.882 4H4.118zM2.5 3V2h11v1h-11z"/>
</svg>
<span class="sr-only">Clear the input textarea</span>
</button>
</div>
<label for="inputSvg" class="sr-only">Original SVG</label>
<textarea
id="inputSvg"
placeholder="Paste your SVG code here..."
spellcheck="false"
class="w-full min-h-[200px] p-4 border-2 border-slate-300 dark:border-slate-600 rounded-lg font-mono text-sm resize-y bg-white dark:bg-slate-800 text-slate-900 dark:text-slate-100 transition-colors focus:outline-none focus:border-primary dark:focus:border-indigo-400 placeholder:text-slate-400 dark:placeholder:text-slate-500"
></textarea>
<div class="bg-white dark:bg-slate-800 border-2 border-slate-300 dark:border-slate-600 rounded-lg p-6 min-h-[250px] flex flex-col gap-4">
<div class="relative">
<div id="inputPreview" class="flex-1 flex items-center justify-center min-h-[200px] preview-checkerboard rounded-md overflow-hidden" data-bg="transparent">
<div class="text-slate-500 dark:text-slate-400 italic text-center p-8">Preview will appear here</div>
</div>
<button type="button" id="inputBgToggle" class="absolute top-2 right-2 p-2 rounded-md bg-white/80 dark:bg-slate-900/80 hover:bg-white dark:hover:bg-slate-900 border border-slate-300 dark:border-slate-600 transition-colors shadow-sm">
<svg aria-hidden="true" focusable="false" class="w-4 h-4 text-slate-700 dark:text-slate-300" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 21a4 4 0 01-4-4V5a2 2 0 012-2h4a2 2 0 012 2v12a4 4 0 01-4 4zm0 0h12a2 2 0 002-2v-4a2 2 0 00-2-2h-2.343M11 7.343l1.657-1.657a2 2 0 012.828 0l2.829 2.829a2 2 0 010 2.828l-8.486 8.485M7 17h.01"></path>
</svg>
<span class="sr-only">Change background color</span>
</button>
</div>
<output id="inputStats" for="inputSvg" class="block p-3 bg-slate-50 dark:bg-slate-900 rounded-md text-sm text-slate-700 dark:text-slate-300"></output>
</div>
</div>
<!-- Output Section -->
<div class="flex flex-col gap-4">
<div class="flex justify-between items-center">
<h2 class="text-2xl font-semibold text-slate-900 dark:text-slate-100">Merged SVG</h2>
<button type="button" id="copyBtn" class="btn btn-primary" aria-label="Copy the output SVG to the clipboard">
<svg aria-hidden="true" focusable="false" width="16" height="16" viewBox="0 0 16 16" fill="currentColor">
<path d="M4 1.5H3a2 2 0 0 0-2 2V14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V3.5a2 2 0 0 0-2-2h-1v1h1a1 1 0 0 1 1 1V14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V3.5a1 1 0 0 1 1-1h1v-1z"/>
<path d="M9.5 1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-1a.5.5 0 0 1 .5-.5h3zm-3-1A1.5 1.5 0 0 0 5 1.5v1A1.5 1.5 0 0 0 6.5 4h3A1.5 1.5 0 0 0 11 2.5v-1A1.5 1.5 0 0 0 9.5 0h-3z"/>
</svg>
Copy
</button>
</div>
<label for="outputSvg" class="sr-only">Merged paths SVG</label>
<textarea
id="outputSvg"
readonly
placeholder="Merged SVG will appear here..."
spellcheck="false"
class="w-full min-h-[200px] p-4 border-2 border-slate-300 dark:border-slate-600 rounded-lg font-mono text-sm resize-y bg-slate-50 dark:bg-slate-800 text-slate-900 dark:text-slate-100 cursor-default placeholder:text-slate-400 dark:placeholder:text-slate-500"
></textarea>
<div class="bg-white dark:bg-slate-800 border-2 border-slate-300 dark:border-slate-600 rounded-lg p-6 min-h-[250px] flex flex-col gap-4">
<div class="relative">
<div id="outputPreview" class="flex-1 flex items-center justify-center min-h-[200px] preview-checkerboard rounded-md overflow-hidden" data-bg="transparent">
<div class="text-slate-500 dark:text-slate-400 italic text-center p-8">Preview will appear here</div>
</div>
<button type="button" id="outputBgToggle" class="absolute top-2 right-2 p-2 rounded-md bg-white/80 dark:bg-slate-900/80 hover:bg-white dark:hover:bg-slate-900 border border-slate-300 dark:border-slate-600 transition-colors shadow-sm">
<svg aria-hidden="true" focusable="false" class="w-4 h-4 text-slate-700 dark:text-slate-300" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 21a4 4 0 01-4-4V5a2 2 0 012-2h4a2 2 0 012 2v12a4 4 0 01-4 4zm0 0h12a2 2 0 002-2v-4a2 2 0 00-2-2h-2.343M11 7.343l1.657-1.657a2 2 0 012.828 0l2.829 2.829a2 2 0 010 2.828l-8.486 8.485M7 17h.01"></path>
</svg>
<span class="sr-only">Change background color</span>
</button>
</div>
<output id="outputStats" for="outputSvg" class="block p-3 bg-slate-50 dark:bg-slate-900 rounded-md text-sm text-slate-700 dark:text-slate-300"></output>
</div>
</div>
</div>
<!-- Info Section -->
<div class="mt-12 space-y-8">
<div class="bg-white dark:bg-slate-800 border-2 border-slate-300 dark:border-slate-600 rounded-lg p-8">
<h2 class="text-2xl mb-4 text-primary dark:text-indigo-300 font-semibold">How to Merge SVG Paths Online</h2>
<ol class="ml-6 list-decimal space-y-2 text-slate-600 dark:text-slate-400">
<li>Paste your SVG code in the left field</li>
<li>The application will automatically merge all <code class="text-slate-800 dark:text-slate-300" aria-label="path HTML tag"><path></code> elements into a single path</li>
<li>The result will appear in the right field with real-time preview</li>
<li>Click "Copy" to copy the merged SVG to your clipboard</li>
</ol>
</div>
<!-- Why Section -->
<div class="bg-white dark:bg-slate-800 border-2 border-slate-300 dark:border-slate-600 rounded-lg p-8">
<h2 class="text-2xl mb-4 text-primary dark:text-indigo-300 font-semibold">Why Merge SVG Paths?</h2>
<div class="space-y-4 text-slate-600 dark:text-slate-400">
<p><strong class="text-slate-900 dark:text-slate-100">Reduce file size:</strong> Combining multiple SVG paths into one can significantly reduce your SVG file size, making your website load faster.</p>
<p><strong class="text-slate-900 dark:text-slate-100">Simplify SVG structure:</strong> A single path is easier to manipulate, animate, and maintain in your code than multiple scattered paths.</p>
<p><strong class="text-slate-900 dark:text-slate-100">Improve performance:</strong> Fewer DOM elements mean better rendering performance in browsers, especially for complex graphics.</p>
<p><strong class="text-slate-900 dark:text-slate-100">Easier CSS styling:</strong> Apply fills, strokes, and animations to a single path element instead of managing multiple paths.</p>
</div>
</div>
<!-- Features Section -->
<div class="bg-white dark:bg-slate-800 border-2 border-slate-300 dark:border-slate-600 rounded-lg p-8">
<h2 class="text-2xl mb-4 text-primary dark:text-indigo-300 font-semibold">Features</h2>
<div class="grid md:grid-cols-2 gap-4 text-slate-600 dark:text-slate-400">
<div>
<h3 class="font-semibold text-slate-900 dark:text-slate-100 mb-2">🚀 Instant Processing</h3>
<p>Merge SVG paths in real-time without any server upload. All processing happens directly in your browser.</p>
</div>
<div>
<h3 class="font-semibold text-slate-900 dark:text-slate-100 mb-2">👁️ Live Preview</h3>
<p>See both original and merged SVG side by side with live visual previews before copying the result.</p>
</div>
<div>
<h3 class="font-semibold text-slate-900 dark:text-slate-100 mb-2">📊 File Statistics</h3>
<p>View the number of paths and file size reduction percentage after merging your SVG paths.</p>
</div>
<div>
<h3 class="font-semibold text-slate-900 dark:text-slate-100 mb-2">🔒 100% Private</h3>
<p>Your SVG files never leave your browser. No server upload means complete privacy and security.</p>
</div>
<div>
<h3 class="font-semibold text-slate-900 dark:text-slate-100 mb-2">🌙 Dark Mode</h3>
<p>Comfortable viewing with automatic dark mode that adapts to your system preferences.</p>
</div>
<div>
<h3 class="font-semibold text-slate-900 dark:text-slate-100 mb-2">📋 One-Click Copy</h3>
<p>Copy your optimized SVG to clipboard instantly and paste it directly into your project.</p>
</div>
</div>
</div>
<!-- FAQ Section -->
<div class="bg-white dark:bg-slate-800 border-2 border-slate-300 dark:border-slate-600 rounded-lg p-8">
<h2 class="text-2xl mb-4 text-primary dark:text-indigo-300 font-semibold">Frequently Asked Questions</h2>
<div class="space-y-6">
<div>
<h3 class="font-semibold text-slate-900 dark:text-slate-100 mb-2">What is an SVG path?</h3>
<p class="text-slate-600 dark:text-slate-400">An SVG path is a series of drawing commands that create shapes in SVG files. The <code class="text-slate-800 dark:text-slate-300" aria-label="path HTML tag"><path></code> element is one of the most powerful elements in SVG for creating complex shapes.</p>
</div>
<div>
<h3 class="font-semibold text-slate-900 dark:text-slate-100 mb-2">Will merging paths change my SVG appearance?</h3>
<p class="text-slate-600 dark:text-slate-400">In most cases, no. The visual appearance remains the same when paths use the same colors. However, if your SVG uses multiple fill or stroke colors, see the question below about multi-colored SVGs.</p>
</div>
<div>
<h3 class="font-semibold text-slate-900 dark:text-slate-100 mb-2">What happens with multi-colored SVGs?</h3>
<p class="text-slate-600 dark:text-slate-400">When merging paths with different colors, all paths will inherit the color of the first path. This means details with different colors may become less visible or disappear. The tool will warn you when this happens. For best results, use this tool with single-color SVGs or SVGs where overlapping paths create cutouts (which will be preserved using <code class="text-slate-800 dark:text-slate-300">fill-rule="evenodd"</code>).</p>
</div>
<div>
<h3 class="font-semibold text-slate-900 dark:text-slate-100 mb-2">Is this tool free to use?</h3>
<p class="text-slate-600 dark:text-slate-400">Yes! SVG Path Merger is completely free to use with no limitations, no registration required, and no hidden costs.</p>
</div>
<div>
<h3 class="font-semibold text-slate-900 dark:text-slate-100 mb-2">Can I use this for commercial projects?</h3>
<p class="text-slate-600 dark:text-slate-400">Absolutely! You can use this tool for any purpose, including commercial projects, without any restrictions.</p>
</div>
<div>
<h3 class="font-semibold text-slate-900 dark:text-slate-100 mb-2">What browsers are supported?</h3>
<p class="text-slate-600 dark:text-slate-400">SVG Path Merger works on all modern browsers including Chrome, Firefox, Safari, Edge, and Opera.</p>
</div>
</div>
</div>
</div>
<div id="toast"></div>
</main>
<footer class="text-center mt-16 pt-8 border-t border-slate-300 dark:border-slate-700 text-slate-600 dark:text-slate-400">
<p>Made with ❤️ by <a href="https://milanricoul.com" class="font-medium text-indigo-700 underline decoration-2 underline-offset-2 hover:text-indigo-900 focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-600 focus-visible:ring-offset-2 focus-visible:ring-offset-slate-50 dark:text-indigo-300 dark:hover:text-indigo-200 dark:focus-visible:ring-indigo-400 dark:focus-visible:ring-offset-slate-900 rounded-sm transition-colors" target="_blank" rel="noopener noreferrer">firestar300</a> to simplify working with SVGs</p>
</footer>
</div>
<script type="module" src="/src/main.js"></script>
</body>
</html>