8000 bug #53689 [HttpKernel] Fix including welcome page multiple times (Hy… · symfony/symfony@ee07003 · GitHub
[go: up one dir, main page]

Skip to content

Commit ee07003

Browse files
bug #53689 [HttpKernel] Fix including welcome page multiple times (HypeMC)
This PR was merged into the 7.0 branch. Discussion ---------- [HttpKernel] Fix including welcome page multiple times | Q | A | ------------- | --- | Branch? | 7.0 | Bug fix? | yes | New feature? | no | Deprecations? | no | Issues | Fix #53686 | License | MIT Reverts #53239 & switches to using closures instead. Commits ------- 4e55227 [HttpKernel] Fix including welcome page multiple times
2 parents 853912a + 4e55227 commit ee07003

File tree

3 files changed

+131
-154
lines changed

3 files changed

+131
-154
lines changed

src/Symfony/Component/HttpKernel/EventListener/RouterListener.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ private function createWelcomeResponse(): Response
159159
$docVersion = substr(Kernel::VERSION, 0, 3);
160160

161161
ob_start();
162-
include_once \dirname(__DIR__).'/Resources/welcome.html.php';
162+
include \dirname(__DIR__).'/Resources/welcome.html.php';
163163

164164
return new Response(ob_get_clean(), Response::HTTP_NOT_FOUND);
165165
}
Lines changed: 124 additions & 152 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,118 @@
1+
<?php
2+
$renderSymfonyLogoSvg = <<<SVG
3+
<svg aria-hidden="true" focusable="false" height="48" width="48" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64.9 64.9"><path fill="currentColor" d="M32.5 0A32.5 32.5 0 0 0 0 32.5a32.5 32.5 0 0 0 32.5 32.4 32.5 32.5 0 0 0 32.4-32.4A32.5 32.5 0 0 0 32.5 0Zm14.1 12c3.3-.1 5.8 1.4 6 3.8 0 1-.6 3-2.6 3-1.5 0-2.6-.9-2.6-2.2 0-.5 0-1 .4-1.5.4-.6.4-.7.4-1 0-.9-1.3-.9-1.7-.9-4.8.2-6.1 6.8-7.2 12.1l-.5 2.8c2.8.4 4.8 0 6-.8 1.5-1-.5-2-.2-3.2a2.3 2.3 0 0 1 2.1-1.8c1.2 0 2 1.2 2 2.5 0 2-2.7 5-8.2 4.8l-2-.1-1 5.7c-.9 4.3-2.1 10.3-6.5 15.4a13.4 13.4 0 0 1-9.4 5.3c-3.2.1-5.4-1.6-5.4-3.9-.1-2.2 1.9-3.4 3.1-3.5 1.8 0 3 1.2 3 2.6 0 1.3-.6 1.6-1 1.9-.3.2-.7.4-.7 1 0 .1.2.6 1 .6 1.3 0 2.2-.7 2.9-1.2 3.1-2.6 4.3-7.1 5.9-15.4l.3-2c.6-2.8 1.2-5.8 2-8.8-2.1-1.6-3.5-3.7-6.4-4.5-2-.6-3.3-.1-4.2 1a3 3 0 0 0 .3 4l1.7 1.9c2 2.3 3.1 4.1 2.7 6.6-.7 3.9-5.3 6.9-10.9 5.2-4.7-1.4-5.6-4.8-5-6.6.5-1.6 1.8-2 3-1.6 1.4.5 2 2 1.5 3.3 0 .2 0 .4-.2.7l-.6 1c-.3 1 1 1.7 2 2 2.1.7 4.2-.4 4.7-2.1.5-1.6-.5-2.7-1-3.1l-2-2.1c-.8-1-2.8-3.9-1.9-7a6.8 6.8 0 0 1 2.4-3.5c2.4-1.8 5-2 7.6-1.3 3.2.9 4.8 3 6.8 4.7a28 28 0 0 1 5.1-9.3c2.2-2.6 5-4.4 8.3-4.5z"/></svg>
4+
SVG;
5+
6+
// SVG icons from the Tabler Icons project
7+
// MIT License - Copyright (c) 2020-2023 Paweł Kuna
8+
// https://github.com/tabler/tabler-icons/blob/master/LICENSE
9+
10+
$renderBoxIconSvg = <<<SVG
11+
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-box" width="24" height="24" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
12+
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
13+
<path d="M12 3l8 4.5l0 9l-8 4.5l-8 -4.5l0 -9l8 -4.5" />
14+
<path d="M12 12l8 -4.5" />
15+
<path d="M12 12l0 9" />
16+
<path d="M12 12l-8 -4.5" />
17+
</svg>
18+
SVG;
19+
20+
$renderFolderIconSvg = <<<SVG
21+
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-folder-open" width="40" height="40" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
22+
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
23+
<path d="M5 19l2.757 -7.351a1 1 0 0 1 .936 -.649h12.307a1 1 0 0 1 .986 1.164l-.996 5.211a2 2 0 0 1 -1.964 1.625h-14.026a2 2 0 0 1 -2 -2v-11a2 2 0 0 1 2 -2h4l3 3h7a2 2 0 0 1 2 2v2"></path>
24+
</svg>
25+
SVG;
26+
27+
$renderInfoIconSvg = <<<SVG
28+
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-info-circle" width="40" height="40" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
29+
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
30+
<path d="M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0"></path>
31+
<path d="M12 9h.01"></path>
32+
<path d="M11 12h1v4h1"></path>
33+
</svg>
34+
SVG;
35+
36+
$renderNextStepIconSvg = <<<SVG
37+
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-square-chevrons-right" width="24" height="24" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
38+
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
39+
<path d="M8 9l3 3l-3 3" />
40+
<path d="M13 9l3 3l-3 3" />
41+
<path d="M3 5a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-14z" />
42+
</svg>
43+
SVG;
44+
45+
$renderLearnIconSvg = <<<SVG
46+
<svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-book" width="40" height="40" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
47+
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
48+
<path d="M3 19a9 9 0 0 1 9 0a9 9 0 0 1 9 0"></path>
49+
<path d="M3 6a9 9 0 0 1 9 0a9 9 0 0 1 9 0"></path>
50+
<path d="M3 6l0 13"></path>
51+
<path d="M12 6l0 13"></path>
52+
<path d="M21 6l0 13"></path>
53+
</svg>
54+
SVG;
55+
56+
$renderCommunityIconSvg = <<<SVG
57+
<svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-users" width="40" height="40" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
58+
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
59+
<path d="M9 7m-4 0a4 4 0 1 0 8 0a4 4 0 1 0 -8 0"></path>
60+
<path d="M3 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2"></path>
61+
<path d="M16 3.13a4 4 0 0 1 0 7.75"></path>
62+
<path d="M21 21v-2a4 4 0 0 0 -3 -3.85"></path>
63+
</svg>
64+
SVG;
65+
66+
$renderUpdatesIconSvg = <<<SVG
67+
<svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-bell-ringing" width="40" height="40" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
68+
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
69+
<path d="M10 5a2 2 0 0 1 4 0a7 7 0 0 1 4 6v3a4 4 0 0 0 2 3h-16a4 4 0 0 0 2 -3v-3a7 7 0 0 1 4 -6" />
70+
<path d="M9 17v1a3 3 0 0 0 6 0v-1" />
71+
<path d="M21 6.727a11.05 11.05 0 0 0 -2.794 -3.727" />
72+
<path d="M3 6.727a11.05 11.05 0 0 1 2.792 -3.727" />
73+
</svg>
74+
SVG;
75+
76+
$renderWavesSvg = <<<SVG
77+
<svg aria-hidden="true" focusable="false" style="pointer-events: none" class="wave" width="100%" height="50px" preserveAspectRatio="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1920 75">
78+
<defs>
79+
<style>
80+
.a { fill: none; }
81+
.b { clip-path: url(#a); }
82+
.c, .d { fill: var(--light-color); }
83+
.d { opacity: 0.5; isolation: isolate; }
84+
@keyframes waveMotion {
85+
0% { transform: scaleX(1) translateX(0); }
86+
50% { transform: scaleX(1.5) translateX(-30%); }
87+
0% { transform: scaleX(1) translateX(0); }
88+
}
89+
90+
.b:nth-child(5) { animation: waveMotion 14s infinite alternate; }
91+
.b:nth-child(2) { animation: waveMotion 12s infinite alternate; }
92+
.b:nth-child(3) { animation: waveMotion 13s infinite alternate; }
93+
.b:nth-child(4) { animation: waveMotion 8s infinite alternate; }
94+
95+
@media (prefers-reduced-motion) {
96+
.b { animation: none !important; }
97+
}
98+
</style>
99+
<clipPath id="a"><rect class="a" width="1920" height="75"></rect></clipPath>
100+
</defs>
101+
<g class="b">
102+
<path class="c" d="M1963,327H-105V65A2647.49,2647.49,0,0,1,431,19c217.7,3.5,239.6,30.8,470,36,297.3,6.7,367.5-36.2,642-28a2511.41,2511.41,0,0,1,420,48"></path>
103+
</g>
104+
<g class="b">
105+
<path class="d" d="M-127,404H1963V44c-140.1-28-343.3-46.7-566,22-75.5,23.3-118.5,45.9-162,64-48.6,20.2-404.7,128-784,0C355.2,97.7,341.6,78.3,235,50,86.6,10.6-41.8,6.9-127,10"></path>
106 10000 +
</g>
107+
<g class="b">
108+
<path class="d" d="M1979,462-155,446V106C251.8,20.2,576.6,15.9,805,30c167.4,10.3,322.3,32.9,680,56,207,13.4,378,20.3,494,24"></path>
109+
</g>
110+
<g class="b">
111+
<path class="d" d="M1998,484H-243V100c445.8,26.8,794.2-4.1,1035-39,141-20.4,231.1-40.1,378-45,349.6-11.6,636.7,73.8,828,150"></path>
112+
</g>
113+
</svg>
114+
SVG;
115+
?>
1116
<!DOCTYPE html>
2117
<html dir="ltr" lang="en">
3118
<head>
@@ -111,7 +226,7 @@
111226
<header>
112227
<div class="wrapper">
113228
<section class="logo">
114-
<?php echo renderSymfonyLogoSvg(); ?>
229+
<?php echo $renderSymfonyLogoSvg; ?>
115230
<h1>
116231
<small>Welcome to</small>
117232
<span translate="no" class="notranslate">Symfony</span> <?php echo explode('.', $version, 2)[0]; ?>
@@ -121,24 +236,24 @@
121236
<section class="info">
122237
<ul>
123238
<li>
124-
<?php echo renderBoxIconSvg(); ?>
239+
<?php echo $renderBoxIconSvg; ?>
125240
<span>You are using Symfony <strong><?php echo $version; ?></strong> version</span>
126241
</li>
127242

128243
<li>
129-
<?php echo renderFolderIconSvg(); ?>
244+
<?php echo $renderFolderIconSvg; ?>
130245
<span>Your application is ready at: <code translate="no" class="notranslate project_dir_path"><?php echo $projectDir; ?></code></span>
131246
</li>
132247

133248
<li>
134-
<?php echo renderInfoIconSvg(); ?>
249+
<?php echo $renderInfoIconSvg; ?>
135250
<span>You are seeing this page because the homepage URL is not configured and <a target="_blank" href="https://symfony.com/doc/<?php echo $docVersion; ?>/debug-mode">debug mode</a> is enabled.</span>
136251
</li>
137252
</ul>
138253

139254
<p class="next-step">
140255
<strong>Next Step</strong>
141-
<?php echo renderNextStepIconSvg(); ?>
256+
<?php echo $renderNextStepIconSvg; ?>
142257
<span>
143258
<a href="https://symfony.com/doc/<?php echo $docVersion; ?>/page_creation.html">Create your first page</a>
144259
to replace this placeholder page.
@@ -148,7 +263,7 @@
148263
</div>
149264

150265
<section class="waves">
151-
<?php echo renderWavesSvg(); ?>
266+
<?php echo $renderWavesSvg; ?>
152267
</section>
153268
</header>
154269

@@ -157,7 +272,7 @@
157272
<article>
158273
<section>
159274
<h2>
160-
<span><?php echo renderLearnIconSvg(); ?></span>
275+
<span><?php echo $renderLearnIconSvg; ?></span>
161276
Learn
162277
</h2>
163278
<ul>
@@ -175,7 +290,7 @@
175290

176291
<section>
177292
<h2>
178-
<span><?php echo renderCommunityIconSvg(); ?></span>
293+
<span><?php echo $renderCommunityIconSvg; ?></span>
179294
Community & Support
180295
</h2>
181296
<ul>
@@ -193,7 +308,7 @@
193308

194309
<section>
195310
<h2>
196-
<span><?php echo renderUpdatesIconSvg(); ?></span>
311+
<span><?php echo $renderUpdatesIconSvg; ?></span>
197312
Stay Updated
198313
</h2>
199314
<ul>
@@ -211,148 +326,5 @@
211326
</article>
212327
</div>
213328
</main>
214-
215-
<?php
216-
function renderSymfonyLogoSvg()
217-
{
218-
return <<<SVG
219-
<svg aria-hidden="true" focusable="false" height="48" width="48" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64.9 64.9"><path fill="currentColor" d="M32.5 0A32.5 32.5 0 0 0 0 32.5a32.5 32.5 0 0 0 32.5 32.4 32.5 32.5 0 0 0 32.4-32.4A32.5 32.5 0 0 0 32.5 0Zm14.1 12c3.3-.1 5.8 1.4 6 3.8 0 1-.6 3-2.6 3-1.5 0-2.6-.9-2.6-2.2 0-.5 0-1 .4-1.5.4-.6.4-.7.4-1 0-.9-1.3-.9-1.7-.9-4.8.2-6.1 6.8-7.2 12.1l-.5 2.8c2.8.4 4.8 0 6-.8 1.5-1-.5-2-.2-3.2a2.3 2.3 0 0 1 2.1-1.8c1.2 0 2 1.2 2 2.5 0 2-2.7 5-8.2 4.8l-2-.1-1 5.7c-.9 4.3-2.1 10.3-6.5 15.4a13.4 13.4 0 0 1-9.4 5.3c-3.2.1-5.4-1.6-5.4-3.9-.1-2.2 1.9-3.4 3.1-3.5 1.8 0 3 1.2 3 2.6 0 1.3-.6 1.6-1 1.9-.3.2-.7.4-.7 1 0 .1.2.6 1 .6 1.3 0 2.2-.7 2.9-1.2 3.1-2.6 4.3-7.1 5.9-15.4l.3-2c.6-2.8 1.2-5.8 2-8.8-2.1-1.6-3.5-3.7-6.4-4.5-2-.6-3.3-.1-4.2 1a3 3 0 0 0 .3 4l1.7 1.9c2 2.3 3.1 4.1 2.7 6.6-.7 3.9-5.3 6.9-10.9 5.2-4.7-1.4-5.6-4.8-5-6.6.5-1.6 1.8-2 3-1.6 1.4.5 2 2 1.5 3.3 0 .2 0 .4-.2.7l-.6 1c-.3 1 1 1.7 2 2 2.1.7 4.2-.4 4.7-2.1.5-1.6-.5-2.7-1-3.1l-2-2.1c-.8-1-2.8-3.9-1.9-7a6.8 6.8 0 0 1 2.4-3.5c2.4-1.8 5-2 7.6-1.3 3.2.9 4.8 3 6.8 4.7a28 28 0 0 1 5.1-9.3c2.2-2.6 5-4.4 8.3-4.5z"/></svg>
220-
SVG;
221-
}
222-
223-
// SVG icons from the Tabler Icons project
224-
// MIT License - Copyright (c) 2020-2023 Paweł Kuna
225-
// https://github.com/tabler/tabler-icons/blob/master/LICENSE
226-
227-
function renderBoxIconSvg()
228-
{
229-
return <<<SVG
230-
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-box" width="24" height="24" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
231-
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
232-
<path d="M12 3l8 4.5l0 9l-8 4.5l-8 -4.5l0 -9l8 -4.5" />
233-
<path d="M12 12l8 -4.5" />
234-
<path d="M12 12l0 9" />
235-
<path d="M12 12l-8 -4.5" />
236-
</svg>
237-
SVG;
238-
}
239-
240-
function renderFolderIconSvg()
241-
{
242-
return <<<SVG
243-
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-folder-open" width="40" height="40" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
244-
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
245-
<path d="M5 19l2.757 -7.351a1 1 0 0 1 .936 -.649h12.307a1 1 0 0 1 .986 1.164l-.996 5.211a2 2 0 0 1 -1.964 1.625h-14.026a2 2 0 0 1 -2 -2v-11a2 2 0 0 1 2 -2h4l3 3h7a2 2 0 0 1 2 2v2"></path>
246-
</svg>
247-
SVG;
248-
}
249-
250-
function renderInfoIconSvg()
251-
{
252-
return <<<SVG
253-
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-info-circle" width="40" height="40" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
254-
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
255-
<path d="M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0"></path>
256-
<path d="M12 9h.01"></path>
257-
<path d="M11 12h1v4h1"></path>
258-
</svg>
259-
SVG;
260-
}
261-
262-
function renderNextStepIconSvg()
263-
{
264-
return <<<SVG
265-
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-square-chevrons-right" width="24" height="24" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
266-
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
267-
<path d="M8 9l3 3l-3 3" />
268-
<path d="M13 9l3 3l-3 3" />
269-
<path d="M3 5a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-14z" />
270-
</svg>
271-
SVG;
272-
}
273-
274-
function renderLearnIconSvg()
275-
{
276-
return <<<SVG
277-
<svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-book" width="40" height="40" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
278-
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
279-
<path d="M3 19a9 9 0 0 1 9 0a9 9 0 0 1 9 0"></path>
280-
<path d="M3 6a9 9 0 0 1 9 0a9 9 0 0 1 9 0"></path>
281-
<path d="M3 6l0 13"></path>
282-
<path d="M12 6l0 13"></path>
283-
<path d="M21 6l0 13"></path>
284-
</svg>
285-
SVG;
286-
}
287-
288-
function renderCommunityIconSvg()
289-
{
290-
return <<<SVG
291-
<svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-users" width="40" height="40" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
292-
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
293-
<path d="M9 7m-4 0a4 4 0 1 0 8 0a4 4 0 1 0 -8 0"></path>
294-
<path d="M3 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2"></path>
295-
<path d="M16 3.13a4 4 0 0 1 0 7.75"></path>
296-
<path d="M21 21v-2a4 4 0 0 0 -3 -3.85"></path>
297-
</svg>
298-
SVG;
299-
}
300-
301-
function renderUpdatesIconSvg()
302-
{
303-
return <<<SVG
304-
<svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-bell-ringing" width="40" height="40" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
305-
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
306-
<path d="M10 5a2 2 0 0 1 4 0a7 7 0 0 1 4 6v3a4 4 0 0 0 2 3h-16a4 4 0 0 0 2 -3v-3a7 7 0 0 1 4 -6" />
307-
<path d="M9 17v1a3 3 0 0 0 6 0v-1" />
308-
<path d="M21 6.727a11.05 11.05 0 0 0 -2.794 -3.727" />
309-
<path d="M3 6.727a11.05 11.05 0 0 1 2.792 -3.727" />
310-
</svg>
311-
SVG;
312-
}
313-
314-
function renderWavesSvg()
315-
{
316-
return <<<SVG
317-
<svg aria-hidden="true" focusable="false" style="pointer-events: none" class="wave" width="100%" height="50px" preserveAspectRatio="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1920 75">
318-
<defs>
319-
<style>
320-
.a { fill: none; }
321-
.b { clip-path: url(#a); }
322-
.c, .d { fill: var(--light-color); }
323-
.d { opacity: 0.5; isolation: isolate; }
324-
@keyframes waveMotion {
325-
0% { transform: scaleX(1) translateX(0); }
326-
50% { transform: scaleX(1.5) translateX(-30%); }
327-
0% { transform: scaleX(1) translateX(0); }
328-
}
329-
330-
.b:nth-child(5) { animation: waveMotion 14s infinite alternate; }
331-
.b:nth-child(2) { animation: waveMotion 12s infinite alternate; }
332-
.b:nth-child(3) { animation: waveMotion 13s infinite alternate; }
333-
.b:nth-child(4) { animation: waveMotion 8s infinite alternate; }
334-
335-
@media (prefers-reduced-motion) {
336-
.b { animation: none !important; }
337-
}
338-
</style>
339-
<clipPath id="a"><rect class="a" width="1920" height="75"></rect></clipPath>
340-
</defs>
341-
<g class="b">
342-
<path class="c" d="M1963,327H-105V65A2647.49,2647.49,0,0,1,431,19c217.7,3.5,239.6,30.8,470,36,297.3,6.7,367.5-36.2,642-28a2511.41,2511.41,0,0,1,420,48"></path>
343-
</g>
344-
<g class="b">
345-
<path class="d" d="M-127,404H1963V44c-140.1-28-343.3-46.7-566,22-75.5,23.3-118.5,45.9-162,64-48.6,20.2-404.7,128-784,0C355.2,97.7,341.6,78.3,235,50,86.6,10.6-41.8,6.9-127,10"></path>
346-
</g>
347-
<g class="b">
348-
<path class="d" d="M1979,462-155,446V106C251.8,20.2,576.6,15.9,805,30c167.4,10.3,322.3,32.9,680,56,207,13.4,378,20.3,494,24"></path>
349-
</g>
350-
<g class="b">
351-
<path class="d" d="M1998,484H-243V100c445.8,26.8,794.2-4.1,1035-39,141-20.4,231.1-40.1,378-45,349.6-11.6,636.7,73.8,828,150"></path>
352-
</g>
353-
</svg>
354-
SVG;
355-
}
356-
?>
357329
</body>
358330
</html>

0 commit comments

Comments
 (0)
0