Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit ee07003

Browse filesBrowse 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
Copy full SHA for ee07003

File tree

3 files changed

+131
-154
lines changed
Filter options

3 files changed

+131
-154
lines changed

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

Copy file name to clipboardExpand all lines: src/Symfony/Component/HttpKernel/EventListener/RouterListener.php
+1-1Lines 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
}
+124-152Lines 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+
</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)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.