Загрузка...

HTML span для караоке-подсветки слов. Атрибут locator для тестов. Идеально для анимированных текстов и субтитров.
<section class="sm:py-24 grid-corners border-white/5 border-t pt-24 pb-24 relative"
data-element-locator="html > body:nth-of-type(1) > section:nth-of-type(6)">
<div class="grid-corners-bottom"></div>
<div class="sm:px-6 lg:px-8 max-w-7xl mr-auto ml-auto pr-4 pl-4 relative">
<div class="grid grid-cols-1 lg:grid-cols-2 gap-10 items-center">
<div class="animate-slide-left">
<h2 class="text-3xl sm:text-4xl font-semibold tracking-tight karaoke-container" data-karaoke-wrapped="true"
data-karaoke-animated="true">
<span class="karaoke-word"></span>
<span class="karaoke-word" data-element-locator="html > body:nth-of-type(1) > section:nth-of-type(6) > div:nth-of-type(2) > div:nth-of-type(1) > div:nth-of-type(1) > h2:nth-of-type(1) > span:nth-of-type(2)">Concept.</span>
<span class="karaoke-word">Code.</span>
<span class="karaoke-word">Deploy.</span>
<span class="karaoke-word"></span>
</h2>
<p class="mt-3 text-neutral-300 karaoke-container" data-karaoke-wrapped="true" data-karaoke-animated="true">
<span class="karaoke-word"></span>
<span class="karaoke-word">Transform</span>
<span class="karaoke-word">hours</span>
<span class="karaoke-word">of</span>
<span class="karaoke-word">manual</span>
<span class="karaoke-word">work</span>
<span class="karaoke-word">into</span>
<span class="karaoke-word">minutes.</span>
<span class="karaoke-word">Maintain</span>
<span class="karaoke-word">full</span>
<span class="karaoke-word">control</span>
<span class="karaoke-word">with</span>
<span class="karaoke-word">human</span>
<span class="karaoke-word">oversight</span>
<span class="karaoke-word">at</span>
<span class="karaoke-word">every</span>
<span class="karaoke-word">step.</span>
<span class="karaoke-word"></span>
</p>
<ul class="mt-6 space-y-3 text-sm">
<li class="flex items-start gap-3">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
data-lucide="check-circle-2" class="lucide lucide-check-circle-2 mt-0.5 h-5 w-5 text-lime-300">
<circle cx="12" cy="12" r="10" class=""></circle>
<path d="m9 12 2 2 4-4" class=""></path>
</svg>
Battle-tested code and architecture patterns
</li>
<li class="flex items-start gap-3">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
data-lucide="check-circle-2" class="lucide lucide-check-circle-2 mt-0.5 h-5 w-5 text-lime-300">
<circle cx="12" cy="12" r="10" class=""></circle>
<path d="m9 12 2 2 4-4" class=""></path>
</svg>
Version control with instant rollback capability
</li>
<li class="flex items-start gap-3">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
data-lucide="check-circle-2" class="lucide lucide-check-circle-2 mt-0.5 h-5 w-5 text-lime-300">
<circle cx="12" cy="12" r="10" class=""></circle>
<path d="m9 12 2 2 4-4" class=""></path>
</svg>
Integrated testing and performance monitoring
</li>
</ul>
<div class="mt-6 inline-flex gap-3">
<a href="#pricing"
class="inline-flex items-center gap-2 rounded-full border border-white/10 px-5 py-3 text-neutral-200 hover:bg-white/5 transition">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
data-lucide="credit-card" class="lucide lucide-credit-card h-5 w-5">
<rect width="20" height="14" x="2" y="5" rx="2" class=""></rect>
<line x1="2" x2="22" y1="10" y2="10" class=""></line>
</svg>
View plans
</a>
<a href="#cta"
class="inline-flex items-center gap-2 rounded-full bg-lime-400 px-5 py-3 text-neutral-950 font-medium hover:bg-lime-300 transition">
Start building
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
data-lucide="chevron-right" class="lucide lucide-chevron-right h-4 w-4">
<path d="m9 18 6-6-6-6" class=""></path>
</svg>
</a>
</div>
</div>
<div class="animate-slide-right relative overflow-hidden rounded-2xl ring-1 ring-white/10">
<img src="https://hoirqrkdgbmvpwutwuwj-all.supabase.co/storage/v1/object/public/assets/assets/c3691670-52f5-409f-a1aa-c66aabcff3e5_1600w.png" alt="Minimal workspace" class="h-full w-full object-cover">
<div class="bg-gradient-to-tr from-black/50 via-transparent to-black/20 absolute top-0 right-0 bottom-0 left-0">
</div>
<div class="absolute bottom-4 left-4 right-4 rounded-xl bg-black/60 p-4 ring-1 ring-white/10">
<div class="flex text-sm items-center justify-between">
<div class="flex items-center gap-2">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-lucide="bot"
class="lucide lucide-bot h-4 w-4 text-lime-300">
<path d="M12 8V4H8" class=""></path>
<rect width="16" height="12" x="4" y="8" rx="2" class=""></rect>
<path d="M2 14h2" class=""></path>
<path d="M20 14h2" class=""></path>
<path d="M15 13v2" class=""></path>
<path d="M9 13v2" class=""></path>
</svg>
<span class="font-medium">AI Assistant</span>
</div>
<span class="text-xs text-neutral-400">
24 tasks · 8 running
</span>
</div>
</div>
</div>
</div>
<!-- Floating Glass Compass Orb -->
<div class="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 pointer-events-none z-30"
style="animation: compassFloat 8s ease-in-out infinite;">
<div class="relative" style="width: 180px; height: 180px;">
<!-- Outer glass ring -->
<div class="absolute inset-0 rounded-full border-2 border-white/20 backdrop-blur-xl"
style="background: radial-gradient(circle at 30% 30%, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0.03)); box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3), inset 0 2px 8px rgba(255, 255, 255, 0.2); animation: compassRotate 20s linear infinite;">
<!-- Glass highlight -->
<div
class="absolute inset-0 rounded-full bg-gradient-to-br from-white/30 via-transparent to-transparent opacity-60">
</div>
</div>
<!-- Middle compass ring -->
<div class="absolute inset-6 rounded-full border border-lime-300/30 backdrop-blur-md"
style="background: rgba(163, 230, 53, 0.08); box-shadow: 0 0 20px rgba(163, 230, 53, 0.3), inset 0 1px 4px rgba(255, 255, 255, 0.15); animation: compassPulse 4s ease-in-out infinite;">
<!-- Cardinal points -->
<div class="absolute top-2 left-1/2 -translate-x-1/2 text-lime-300 text-xs font-semibold"
style="text-shadow: 0 0 8px rgba(163, 230, 53, 0.8);">
N
</div>
<div class="absolute bottom-2 left-1/2 -translate-x-1/2 text-white/40 text-xs">
S
</div>
<div class="absolute right-2 top-1/2 -translate-y-1/2 text-white/40 text-xs">
E
</div>
<div class="absolute left-2 top-1/2 -translate-y-1/2 text-white/40 text-xs">
W
</div>
</div>
<!-- Center orb -->
<div class="absolute inset-0 flex items-center justify-center">
<div class="relative w-20 h-20 rounded-full border-2 border-lime-300/40 backdrop-blur-xl overflow-hidden"
style="background: linear-gradient(135deg, rgba(163, 230, 53, 0.25) 0%, rgba(163, 230, 53, 0.08) 100%); box-shadow: 0 12px 40px rgba(163, 230, 53, 0.4), inset 0 2px 6px rgba(255, 255, 255, 0.3);">
<!-- Glare effect -->
<div class="absolute inset-0 bg-gradient-to-br from-white/40 via-transparent to-transparent"></div>
<!-- Compass needle -->
<div class="absolute inset-0 flex items-center justify-center"
style="animation: compassNeedle 6s ease-in-out infinite;">
<div class="relative w-1 h-12" style="transform-origin: center center;">
<!-- North needle (red) -->
<div class="absolute top-0 left-0 w-full h-6 bg-gradient-to-b from-lime-400 to-lime-300"
style="clip-path: polygon(50% 0%, 0% 100%, 100% 100%); filter: drop-shadow(0 2px 4px rgba(163, 230, 53, 0.6));">
</div>
<!-- South needle (white) -->
<div class="absolute bottom-0 left-0 w-full h-6 bg-gradient-to-t from-white/60 to-white/30"
style="clip-path: polygon(0% 0%, 100% 0%, 50% 100%);"></div>
<!-- Center pin -->
<div
class="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-2 h-2 rounded-full bg-white ring-1 ring-lime-300/50"
style="box-shadow: 0 0 8px rgba(255, 255, 255, 0.8);"></div>
</div>
</div>
<!-- Center icon -->
<div class="absolute inset-0 flex items-center justify-center opacity-30">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
class="text-lime-300">
<circle cx="12" cy="12" r="10" class=""></circle>
<path d="m16.2 7.8-2 6.3-6.4 2.1 2-6.3z" class=""></path>
</svg>
</div>
</div>
</div>
<!-- Orbiting particles -->
<div class="absolute w-2 h-2 rounded-full bg-lime-400/80 backdrop-blur-sm ring-1 ring-lime-300/50"
style="top: 15px; left: 50%; transform: translateX(-50%); box-shadow: 0 0 10px rgba(163, 230, 53, 0.8); animation: orbitCompass1 10s linear infinite;">
</div>
<div class="absolute w-1.5 h-1.5 rounded-full bg-white/60 backdrop-blur-sm ring-1 ring-white/40"
style="top: 50%; right: 15px; transform: translateY(-50%); box-shadow: 0 0 8px rgba(255, 255, 255, 0.6); animation: orbitCompass2 12s linear infinite;">
</div>
<div class="absolute w-2 h-2 rounded-full bg-lime-300/60 backdrop-blur-sm ring-1 ring-lime-300/40"
style="bottom: 15px; left: 50%; transform: translateX(-50%); box-shadow: 0 0 10px rgba(163, 230, 53, 0.6); animation: orbitCompass3 14s linear infinite;">
</div>
</div>
<!-- Info label -->
<div
class="absolute -bottom-16 left-1/2 -translate-x-1/2 rounded-xl border border-white/10 backdrop-blur-md px-4 py-2 text-xs whitespace-nowrap"
style="background: rgba(0, 0, 0, 0.4); box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3);">
<div class="flex items-center gap-2">
<div class="w-1.5 h-1.5 rounded-full bg-lime-400" style="animation: pulse 2s ease-in-out infinite;"></div>
<span class="text-neutral-300 font-medium">
Navigation Active
</span>
</div>
</div>
</div>
<style>
@keyframes compassFloat {
0%,
100% {
transform: translate(-50%, -50%) translateY(0px);
}
50% {
transform: translate(-50%, -50%) translateY(-20px);
}
}
@keyframes compassRotate {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
@keyframes compassPulse {
0%,
100% {
opacity: 1;
transform: scale(1);
}
50% {
opacity: 0.8;
transform: scale(1.02);
}
}
@keyframes compassNeedle {
0%,
100% {
transform: rotate(0deg);
}
25% {
transform: rotate(15deg);
}
75% {
transform: rotate(-15deg);
}
}
@keyframes orbitCompass1 {
0% {
transform: translateX(-50%) rotate(0deg) translateX(90px) rotate(0deg);
}
100% {
transform: translateX(-50%) rotate(360deg) translateX(90px) rotate(-360deg);
}
}
@keyframes orbitCompass2 {
0% {
transform: translateY(-50%) rotate(120deg) translateX(90px) rotate(-120deg);
}
100% {
transform: translateY(-50%) rotate(480deg) translateX(90px) rotate(-480deg);
}
}
@keyframes orbitCompass3 {
0% {
transform: translateX(-50%) rotate(240deg) translateX(90px) rotate(-240deg);
}
100% {
transform: translateX(-50%) rotate(600deg) translateX(90px) rotate(-600deg);
}
}
</style>
</div>
</section>