Files
hamed 68b8b05630 feat: add landing page templates and registration modal
- Implemented header and hero section in _header.html.twig and _hero_art.html.twig.
- Created a pre-registration modal in _reg_modal.html.twig with form fields and validation.
- Added page scripts for dynamic behavior and interaction in _page_scripts.html.twig.
- Developed landing page structure in landing.html.twig, integrating header, footer, and modal.
- Introduced tests for landing page rendering and registry validation in LandingPageTest.php and LandingRegistryTest.php.
2026-08-10 14:38:27 +03:30

81 lines
5.2 KiB
Twig

<div class="hero-art reveal d1">
<div class="art-chip chip-1">
<span class="ci">
<svg viewbox="0 0 24 24" fill="none"><path d="M12 21s-7-4.3-7-9.5A4 4 0 0 1 12 8a4 4 0 0 1 7 3.5C19 16.7 12 21 12 21Z" stroke="currentColor" stroke-width="1.9" stroke-linejoin="round"/></svg>
</span>
<div>
<b style="font-variant-numeric:tabular-nums">۹۵٪</b>
<span>رضایت بیماران</span>
</div>
</div>
<div class="art-chip chip-2">
<span class="ci">
<svg viewbox="0 0 24 24" fill="none"><path d="M8 7V5m8 2V5M4 9h16M5 7h14v12a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V7Z" stroke="currentColor" stroke-width="1.9"/></svg>
</span>
<div>
<b style="font-variant-numeric:tabular-nums">۳۸</b>
<span>نوبت امروز</span>
</div>
</div>
<svg viewbox="0 0 600 480" role="img" aria-label="تصویر مدیریت مطب">
<ellipse cx="300" cy="438" rx="250" ry="30" fill="#e2e9fb"/>
<circle cx="300" cy="244" r="184" fill="#eaeffb"/>
<g fill="#dbe4fb"><ellipse cx="138" cy="150" rx="42" ry="20"/><ellipse cx="476" cy="120" rx="48" ry="22"/><ellipse cx="508" cy="250" rx="30" ry="15"/></g>
<rect x="196" y="184" width="208" height="152" rx="13" fill="#fff" stroke="#dde3f7" stroke-width="3"/>
<rect x="210" y="198" width="180" height="124" rx="7" fill="#eef2fd"/>
<rect x="223" y="211" width="68" height="9" rx="4.5" fill="#c4cef2"/>
<circle cx="378" cy="216" r="6" fill="#f8b3a6"/>
<path d="M223 272 h24 l9 -22 12 40 10 -28 8 14 h62" fill="none" stroke="#5666e0" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
<g fill="#cdd6f4"><rect x="226" y="292" width="14" height="22" rx="3"/><rect x="246" y="284" width="14" height="30" rx="3"/><rect x="266" y="298" width="14" height="16" rx="3"/></g>
<rect x="330" y="288" width="50" height="26" rx="6" fill="#fde3df"/>
<path d="M166 336 h268 l26 28 H140 z" fill="#cfd9f9"/>
<path d="M166 336 h268 l6 6 H160 z" fill="#aab6ee"/>
<rect x="268" y="350" width="64" height="6" rx="3" fill="#9aa8ea"/>
<g fill="#fff"><ellipse cx="300" cy="190" rx="58" ry="22"/><ellipse cx="258" cy="196" rx="26" ry="15"/><ellipse cx="342" cy="196" rx="26" ry="15"/></g>
<path d="M276 150 q-20 16 -15 42 l19 -11 z" fill="#3a3a7d"/>
<path d="M324 150 q20 16 15 42 l-19 -11 z" fill="#3a3a7d"/>
<rect x="278" y="70" width="44" height="118" rx="22" fill="#fff" stroke="#dfe4f7" stroke-width="2"/>
<path d="M300 50 a22 22 0 0 1 22 26 h-44 a22 22 0 0 1 22 -26z" fill="#f17a6b"/>
<circle cx="300" cy="106" r="13" fill="#cfe0fb" stroke="#5666e0" stroke-width="3"/>
<g fill="#5666e0"><rect x="295" y="130" width="10" height="30" rx="3"/><rect x="285" y="140" width="30" height="10" rx="3"/></g>
<path d="M289 188 q11 24 11 30 q0 -6 11 -30 z" fill="#f8b3a6"/>
<g stroke="#bcc7f2" stroke-width="4" stroke-linecap="round"><path d="M250 92 h-20"/><path d="M258 112 h-13"/><path d="M350 92 h20"/><path d="M342 112 h13"/></g>
<g>
<path d="M86 332 h36 l-2 86 a6 6 0 0 1 -12 0 l-4 -52 -4 52 a6 6 0 0 1 -12 0 z" fill="#3a3a7d"/>
<ellipse cx="90" cy="420" rx="12" ry="6" fill="#2b2b5e"/>
<ellipse cx="118" cy="420" rx="12" ry="6" fill="#2b2b5e"/>
<path d="M80 262 q-14 30 -6 58" fill="none" stroke="#fff" stroke-width="15" stroke-linecap="round"/>
<circle cx="76" cy="318" r="7" fill="#f3c6a5"/>
<path d="M78 256 q26 -18 54 0 l8 80 h-70 z" fill="#fff" stroke="#dde3f7" stroke-width="2"/>
<path d="M105 250 l-9 56 9 7 9 -7 -9 -56z" fill="#eef2fd"/>
<path d="M99 254 q-12 28 9 42" fill="none" stroke="#5666e0" stroke-width="2.6"/>
<circle cx="110" cy="298" r="5" fill="#5666e0"/>
<path d="M128 260 q42 -6 66 -54" fill="none" stroke="#fff" stroke-width="15" stroke-linecap="round"/>
<circle cx="196" cy="206" r="7.5" fill="#f3c6a5"/>
<rect x="99" y="232" width="12" height="16" rx="4" fill="#e8b594"/>
<circle cx="105" cy="218" r="22" fill="#f3c6a5"/>
<path d="M83 216 q0 -30 31 -28 q19 1 21 22 q-13 -12 -30 -7 q-15 4 -22 13z" fill="#3a3a7d"/>
</g>
<g>
<path d="M478 332 h36 l-2 86 a6 6 0 0 1 -12 0 l-4 -52 -4 52 a6 6 0 0 1 -12 0 z" fill="#4f51a8"/>
<ellipse cx="482" cy="420" rx="12" ry="6" fill="#34356f"/>
<ellipse cx="510" cy="420" rx="12" ry="6" fill="#34356f"/>
<path d="M512 258 q26 -16 30 -54" fill="none" stroke="#fff" stroke-width="15" stroke-linecap="round"/>
<circle cx="543" cy="200" r="8" fill="#f3c6a5"/>
<path d="M462 256 q26 -18 54 0 l6 80 h-66 z" fill="#fff" stroke="#dde3f7" stroke-width="2"/>
<path d="M489 250 l-8 56 8 7 8 -7 -8 -56z" fill="#fde3df"/>
<path d="M464 260 q-12 28 -6 54" fill="none" stroke="#fff" stroke-width="14" stroke-linecap="round"/>
<circle cx="460" cy="316" r="7" fill="#f3c6a5"/>
<rect x="483" y="232" width="12" height="16" rx="4" fill="#e8b594"/>
<circle cx="489" cy="218" r="22" fill="#f3c6a5"/>
<path d="M467 220 q-4 -32 28 -32 q24 0 22 30 q-2 14 -6 20 q4 -22 -8 -30 q4 12 -2 18 q-10 -20 -34 -6z" fill="#3a3a7d"/>
</g>
</svg>
</div>