1 estrella en GitHub = 1 componente nuevo.

Dar una estrella
Secciones Hero

Hero Glass

Cabecera hero con tarjeta de cristal esmerilado, titulares con degradado y badges interactivos.

heroglassmorphismanimated-orbstrustresponsive
Vista Previa en Vivo

Your Complete Component Library

Build stunning landing pages and apps with 200+ accessible, responsive, and customizable components.

Trusted by 5,000+ developers
ABCD+

Uso

Copia y pega este código directamente en tu componente React:

tsx
import { HeroGlass } from 'react-component-kit-ui/sections';

<HeroGlass />

Instalación Manual

Si no estás usando el paquete npm, crea un archivo nuevo y pega el siguiente código: src/components/sections/HeroGlass.tsx + HeroGlass.css:

HeroGlass.tsx
'use client';

import './HeroGlass.css';

// HeroGlass.astro — Centered hero with glassmorphism card overlay

/** HeroGlass — ported from astro-component-kit. */
export interface HeroGlassProps {
  title?: string;
  subtitle?: string;
}

export function HeroGlass({
  title = "Your Complete Component Library",
  subtitle = "Build stunning landing pages and apps with 200+ accessible, responsive, and customizable components.",
}: HeroGlassProps) {
  return (
    <>
      <div className="cq-hero-glass-cq" data-rk-2480b8="">
      <section className="hero-glass" data-rk-2480b8="">
        <div className="hero-glass__bg" aria-hidden="true" data-rk-2480b8="">
          <div className="hero-glass__orb hero-glass__orb--1" data-rk-2480b8=""></div>
          <div className="hero-glass__orb hero-glass__orb--2" data-rk-2480b8=""></div>
          <div className="hero-glass__orb hero-glass__orb--3" data-rk-2480b8=""></div>
        </div>
        <div className="container" data-rk-2480b8="">
          <div className="hero-glass__card" data-rk-2480b8="">
            <h1 className="hero-glass__title" data-rk-2480b8="">{title}</h1>
            <p className="hero-glass__subtitle" data-rk-2480b8="">{subtitle}</p>
            <div className="hero-glass__actions" data-rk-2480b8="">
              <button className="hero-glass__btn hero-glass__btn--primary" data-rk-2480b8="">
                Get Started Free
                <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.5" data-rk-2480b8=""><path d="M5 12h14M12 5l7 7-7 7" data-rk-2480b8="" /></svg>
              </button>
              <button className="hero-glass__btn hero-glass__btn--secondary" data-rk-2480b8="">
                <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" data-rk-2480b8=""><polygon points="5 3 19 12 5 21 5 3" data-rk-2480b8="" /></svg>
                Watch Demo
              </button>
            </div>
            <div className="hero-glass__trust" data-rk-2480b8="">
              <span data-rk-2480b8="">Trusted by 5,000+ developers</span>
              <div className="hero-glass__avatars" data-rk-2480b8="">
                <span className="hero-glass__avatar" data-rk-2480b8="">A</span>
                <span className="hero-glass__avatar" data-rk-2480b8="">B</span>
                <span className="hero-glass__avatar" data-rk-2480b8="">C</span>
                <span className="hero-glass__avatar" data-rk-2480b8="">D</span>
                <span className="hero-glass__avatar hero-glass__avatar--more" data-rk-2480b8="">+</span>
              </div>
            </div>
          </div>
        </div>
      </section>
      </div>
    </>
  );
}

export default HeroGlass;
HeroGlass.css
/* HeroGlass — ported from astro-component-kit (sections/HeroGlass.astro) */

.cq-hero-glass-cq:where([data-rk-2480b8]) { container-type: inline-size; }
.hero-glass:where([data-rk-2480b8]) {
  position: relative;
  min-height: 90vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--sp-8) var(--sp-6);
  overflow: hidden;
}
.hero-glass__bg:where([data-rk-2480b8]) {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 20% 50%, color-mix(in srgb, var(--c-primary, #b8860b) 12%, transparent) 0%, transparent 50%),
              radial-gradient(ellipse at 80% 20%, color-mix(in srgb, var(--c-primary, #b8860b) 8%, transparent) 0%, transparent 50%),
              radial-gradient(ellipse at 50% 80%, color-mix(in srgb, var(--c-primary, #b8860b) 6%, transparent) 0%, transparent 50%);
}
.hero-glass__orb:where([data-rk-2480b8]) {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  animation: hero-glass-orbFloat 10s ease-in-out infinite alternate;
}
.hero-glass__orb--1:where([data-rk-2480b8]) {
  width: 400px; height: 400px;
  top: 10%; left: 15%;
  background: color-mix(in srgb, var(--c-primary, #b8860b) 15%, transparent);
}
.hero-glass__orb--2:where([data-rk-2480b8]) {
  width: 300px; height: 300px;
  top: 40%; right: 10%;
  background: color-mix(in srgb, var(--c-primary, #b8860b) 10%, transparent);
  animation-delay: 2s;
}
.hero-glass__orb--3:where([data-rk-2480b8]) {
  width: 250px; height: 250px;
  bottom: 15%; left: 40%;
  background: color-mix(in srgb, var(--c-primary, #b8860b) 8%, transparent);
  animation-delay: 4s;
}
@keyframes hero-glass-orbFloat {
  0% { transform: translate(0, 0) scale(1); }
  50% { transform: translate(20px, -15px) scale(1.05); }
  100% { transform: translate(-10px, 10px) scale(0.95); }
}
.hero-glass__card:where([data-rk-2480b8]) {
  position: relative;
  z-index: 1;
  max-width: 700px;
  margin: 0 auto;
  padding: var(--sp-8);
  background: rgba(10, 10, 10, 0.6);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.1);
  border-radius: var(--r-xl);
  box-shadow: 0 24px 80px rgba(0,0,0,0.5),
              inset 0 1px 0 rgb(var(--ink-rgb, 255 255 255) / 0.05);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--sp-6);
}
.hero-glass__title:where([data-rk-2480b8]) {
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 900;
  color: var(--c-text-1);
  letter-spacing: -0.03em;
  line-height: 1.1;
  margin: 0;
  text-align: center;
}
.hero-glass__subtitle:where([data-rk-2480b8]) {
  font-size: 1.05rem;
  color: var(--c-text-2);
  line-height: 1.6;
  margin: 0;
  text-align: center;
  max-width: 500px;
}
.hero-glass__actions:where([data-rk-2480b8]) {
  display: flex;
  gap: var(--sp-4);
  flex-wrap: wrap;
  justify-content: center;
  margin-top: var(--sp-4);
}
.hero-glass__btn:where([data-rk-2480b8]) {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-2);
  padding: 0.8rem 1.6rem;
  font-size: 0.9rem;
  font-weight: 600;
  font-family: var(--font-sans);
  border-radius: var(--r-md);
  cursor: pointer;
  transition: all 0.25s ease;
}
.hero-glass__btn--primary:where([data-rk-2480b8]) {
  background: linear-gradient(135deg, var(--c-primary-light), var(--c-primary));
  color: var(--c-on-primary, #0a0a0a);
  border: none;
  box-shadow: 0 4px 20px color-mix(in srgb, var(--c-primary, #b8860b) 30%, transparent);
}
.hero-glass__btn--primary:hover:where([data-rk-2480b8]) {
  transform: translateY(-2px);
  box-shadow: 0 8px 30px color-mix(in srgb, var(--c-primary, #b8860b) 45%, transparent);
}
.hero-glass__btn--secondary:where([data-rk-2480b8]) {
  background: rgb(var(--ink-rgb, 255 255 255) / 0.05);
  color: var(--c-text-1);
  border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.12);
}
.hero-glass__btn--secondary:hover:where([data-rk-2480b8]) {
  background: rgb(var(--ink-rgb, 255 255 255) / 0.1);
  border-color: color-mix(in srgb, var(--c-primary, #b8860b) 30%, transparent);
  transform: translateY(-2px);
}
.hero-glass__trust:where([data-rk-2480b8]) {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  font-size: 0.8rem;
  color: var(--c-text-3);
  padding-top: var(--sp-3);
  border-top: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.06);
}
.hero-glass__avatars:where([data-rk-2480b8]) { display: flex; }
.hero-glass__avatar:where([data-rk-2480b8]) {
  width: 28px; height: 28px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--c-primary), var(--c-primary-light));
  color: var(--c-on-primary, #0a0a0a);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.65rem;
  font-weight: 700;
  border: 2px solid rgba(10,10,10,0.8);
  margin-left: -8px;
}
.hero-glass__avatar:first-child:where([data-rk-2480b8]) { margin-left: 0; }
.hero-glass__avatar--more:where([data-rk-2480b8]) {
  background: rgb(var(--ink-rgb, 255 255 255) / 0.1);
  color: var(--c-text-3);
}

@container (max-width: 640px) {
  .hero-glass:where([data-rk-2480b8]) { min-height: 75vh; padding: var(--sp-8) var(--sp-4); }
  .hero-glass__card:where([data-rk-2480b8]) { padding: var(--sp-6); }
  .hero-glass__actions:where([data-rk-2480b8]) { flex-direction: column; width: 100%; max-width: 260px; }
  .hero-glass__btn:where([data-rk-2480b8]) { width: 100%; justify-content: center; }
}