Logo Cloud Section
Sección de prueba social con marquesina continua de logos de clientes, socios y patrocinadores.
sectionslogospartnerscloudsocial-proof
Vista Previa en Vivo
POWERING FORWARD-THINKING WEB PROJECTS
▲ Vercel
☁ Cloudflare
⚡ Supabase
≋ TailwindCSS
◈ Netlify
⚓ Docker
Uso
Copia y pega este código directamente en tu página de Astro:
astro
---
import { LogoCloudSection } from 'astro-component-kit';
---
<LogoCloudSection /> ---
import { LogoCloudSection } from 'astro-component-kit';
---
<LogoCloudSection /> Instalación Manual
Si no estás usando el paquete npm, crea un archivo nuevo y pega el siguiente código: src/components/sections/LogoCloudSection.astro:
astro
---
/**
* LogoCloudSection — High-trust partner and client brand wall with monochrome glass badges.
*
* @param {string} title - Section headline. Default is 'TRUSTED BY MODERN TECH STACKS'.
* @param {Array<{name: string, symbol: string}>} logos - Partner entries list.
*/
interface Props {
title?: string;
logos?: Array<{ name: string; symbol: string }>;
}
const {
title = 'POWERING FORWARD-THINKING WEB PROJECTS',
logos = [
{ name: 'Vercel', symbol: '▲' },
{ name: 'Cloudflare', symbol: '☁' },
{ name: 'Supabase', symbol: '⚡' },
{ name: 'TailwindCSS', symbol: '≋' },
{ name: 'Netlify', symbol: '◈' },
{ name: 'Docker', symbol: '⚓' },
],
} = Astro.props;
---
<section class="logo-cloud">
<div class="logo-cloud__inner">
<p class="logo-cloud__title">{title}</p>
<div class="logo-cloud__grid">
{logos.map((logo) => (
<div class="logo-badge">
<span class="logo-badge__symbol">{logo.symbol}</span>
<span class="logo-badge__name">{logo.name}</span>
</div>
))}
</div>
</div>
</section>
<style>
.logo-cloud {
padding: var(--sp-8, 2rem) var(--sp-6, 1.5rem);
width: 100%;
font-family: var(--font-sans, system-ui, sans-serif);
}
.logo-cloud__inner {
max-width: 1100px;
margin: 0 auto;
text-align: center;
}
.logo-cloud__title {
font-size: 0.75rem;
font-weight: 800;
letter-spacing: 0.12em;
color: var(--c-text-3, #737373);
text-transform: uppercase;
margin-bottom: 1.5rem;
}
.logo-cloud__grid {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: center;
gap: 16px;
}
.logo-badge {
display: inline-flex;
align-items: center;
gap: 10px;
padding: 0.65rem 1.4rem;
background: rgb(var(--ink-rgb, 255 255 255) / 0.02);
backdrop-filter: blur(12px);
border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.06);
border-radius: var(--r-full, 9999px);
color: var(--c-text-2, #a3a3a3);
font-size: 0.88rem;
font-weight: 700;
transition: all 0.25s ease;
}
.logo-badge:hover {
color: var(--c-text-1, #ffffff);
background: rgb(var(--ink-rgb, 255 255 255) / 0.06);
border-color: color-mix(in srgb, var(--c-primary, #b8860b) 40%, transparent);
transform: translateY(-2px);
}
.logo-badge__symbol {
font-size: 1.1rem;
color: var(--c-primary-light, #d4a017);
}
</style> ---
/**
* LogoCloudSection — High-trust partner and client brand wall with monochrome glass badges.
*
* @param {string} title - Section headline. Default is 'TRUSTED BY MODERN TECH STACKS'.
* @param {Array<{name: string, symbol: string}>} logos - Partner entries list.
*/
interface Props {
title?: string;
logos?: Array<{ name: string; symbol: string }>;
}
const {
title = 'POWERING FORWARD-THINKING WEB PROJECTS',
logos = [
{ name: 'Vercel', symbol: '▲' },
{ name: 'Cloudflare', symbol: '☁' },
{ name: 'Supabase', symbol: '⚡' },
{ name: 'TailwindCSS', symbol: '≋' },
{ name: 'Netlify', symbol: '◈' },
{ name: 'Docker', symbol: '⚓' },
],
} = Astro.props;
---
<section class="logo-cloud">
<div class="logo-cloud__inner">
<p class="logo-cloud__title">{title}</p>
<div class="logo-cloud__grid">
{logos.map((logo) => (
<div class="logo-badge">
<span class="logo-badge__symbol">{logo.symbol}</span>
<span class="logo-badge__name">{logo.name}</span>
</div>
))}
</div>
</div>
</section>
<style>
.logo-cloud {
padding: var(--sp-8, 2rem) var(--sp-6, 1.5rem);
width: 100%;
font-family: var(--font-sans, system-ui, sans-serif);
}
.logo-cloud__inner {
max-width: 1100px;
margin: 0 auto;
text-align: center;
}
.logo-cloud__title {
font-size: 0.75rem;
font-weight: 800;
letter-spacing: 0.12em;
color: var(--c-text-3, #737373);
text-transform: uppercase;
margin-bottom: 1.5rem;
}
.logo-cloud__grid {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: center;
gap: 16px;
}
.logo-badge {
display: inline-flex;
align-items: center;
gap: 10px;
padding: 0.65rem 1.4rem;
background: rgb(var(--ink-rgb, 255 255 255) / 0.02);
backdrop-filter: blur(12px);
border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.06);
border-radius: var(--r-full, 9999px);
color: var(--c-text-2, #a3a3a3);
font-size: 0.88rem;
font-weight: 700;
transition: all 0.25s ease;
}
.logo-badge:hover {
color: var(--c-text-1, #ffffff);
background: rgb(var(--ink-rgb, 255 255 255) / 0.06);
border-color: color-mix(in srgb, var(--c-primary, #b8860b) 40%, transparent);
transform: translateY(-2px);
}
.logo-badge__symbol {
font-size: 1.1rem;
color: var(--c-primary-light, #d4a017);
}
</style>