Split Hero
A copy-paste hero sections component in pure HTML & CSS. Zero dependencies, framework-agnostic, MIT-licensed.
Hero SectionsHTMLCSSany framework
One repo. Zero deps.
Copy-paste freedom.
Browse →Copy into your project
HTML
<!-- Split Hero — text left, visual right -->
<section class="nuda-hero-s">
<div class="nuda-hero-s__text">
<h2>One repo. Zero deps.</h2>
<p>Copy-paste freedom.</p>
<a class="nuda-hero-s__cta" href="#">Browse →</a>
</div>
<div class="nuda-hero-s__visual">
<div class="nuda-hero-s__card">
<div class="nuda-hero-s__line" style="width: 70%"></div>
<div class="nuda-hero-s__line" style="width: 50%"></div>
<div class="nuda-hero-s__line" style="width: 85%"></div>
</div>
</div>
</section>CSS
/* Split Hero
Two-column hero: text fades from the left, visual from the right.
Customize: --hs-accent, content of the visual side. */
.nuda-hero-s {
--hs-accent: #e4ff54;
display: grid;
grid-template-columns: 1fr 1fr;
align-items: center;
gap: 32px;
width: 100%;
max-width: 1100px;
margin: 0 auto;
padding: 60px 24px;
}
@media (max-width: 720px) {
.nuda-hero-s { grid-template-columns: 1fr; }
}
.nuda-hero-s__text {
display: flex;
flex-direction: column;
gap: 12px;
animation: nuda-hs-l 0.7s cubic-bezier(0.4, 0, 0.2, 1) backwards;
}
.nuda-hero-s__text h2 {
font: 800 clamp(2rem, 4vw, 3.25rem) ui-sans-serif, system-ui, sans-serif;
color: #fafafa;
margin: 0;
line-height: 1.1;
letter-spacing: -0.02em;
}
.nuda-hero-s__text p {
font: 500 1rem ui-sans-serif, system-ui, sans-serif;
color: #a1a1aa;
margin: 0;
}
.nuda-hero-s__cta {
font: 700 0.95rem ui-sans-serif, system-ui, sans-serif;
color: var(--hs-accent);
cursor: pointer;
margin-top: 8px;
text-decoration: none;
}
.nuda-hero-s__visual {
display: flex;
align-items: center;
justify-content: center;
animation: nuda-hs-r 0.7s cubic-bezier(0.4, 0, 0.2, 1) 0.15s backwards;
}
.nuda-hero-s__card {
width: 100%;
max-width: 320px;
padding: 20px;
background: rgba(255, 255, 255, 0.04);
border: 1px solid rgba(228, 255, 84, 0.15);
border-radius: 12px;
display: flex;
flex-direction: column;
gap: 10px;
transform: rotate(-3deg);
box-shadow: 0 16px 40px -8px rgba(228, 255, 84, 0.2);
}
.nuda-hero-s__line {
height: 8px;
background: linear-gradient(90deg, var(--hs-accent), rgba(228, 255, 84, 0.3));
border-radius: 4px;
}
@keyframes nuda-hs-l {
from { opacity: 0; transform: translateX(-16px); }
to { opacity: 1; transform: translateX(0); }
}
@keyframes nuda-hs-r {
from { opacity: 0; transform: translateX(16px) rotate(-3deg); }
to { opacity: 1; transform: translateX(0) rotate(-3deg); }
}
@media (prefers-reduced-motion: reduce) {
.nuda-hero-s__text, .nuda-hero-s__visual { animation: none; }
}How to use Split Hero
Paste the HTML where you need it and the CSS into a global stylesheet (or a <style> tag). Every class is prefixed nuda- so it never collides with Tailwind or your own styles. Tweak the CSS custom properties to match your design system.
Works in React, Vue, Svelte, Astro, Next.js, Nuxt, Laravel Blade, Django, Rails — or a single .html file. No npm install, no build step.