Categoría · Secciones de Características Nivel de Dificultad · Intermedio Publicado el · 15 de enero de 2024

Sección de Cultura Empresarial

Una sección moderna de cultura empresarial con valores del equipo, declaración de misión y elementos interactivos

#company #culture #about #team #values #mission #corporate

Diseño Responsivo

Soporte para Modo Oscuro

No

líneas

461

Compatibilidad del Navegador

No

Vista Previa en Vivo

Interactúa con el componente sin salir de la página.

300px

Sección de Cultura Empresarial

Una sección integral de cultura empresarial que muestra los valores, misión y cultura del equipo de tu organización con diseño moderno y elementos interactivos.

Características

  • Diseño Responsivo: Se adapta perfectamente a todos los tamaños de pantalla
  • Tarjetas de Valores Interactivas: Efectos hover y animaciones
  • Declaración de Misión: Visualización prominente con tipografía elegante
  • Estadísticas del Equipo: Contadores animados para métricas clave
  • UI Moderna: Diseño limpio y profesional con transiciones suaves
  • Accesibilidad: Etiquetas ARIA y soporte para navegación por teclado
  • Personalizable: Fácil de modificar colores, contenido y diseño

HTML

<section class="company-culture-section">
  <div class="container">
    <!-- Encabezado -->
    <div class="section-header">
      <h2 class="section-title">Nuestra Cultura Empresarial</h2>
      <p class="section-subtitle">Construyendo un lugar de trabajo donde la innovación prospera y las personas crecen</p>
    </div>

    <!-- Declaración de Misión -->
    <div class="mission-statement">
      <div class="mission-content">
        <h3 class="mission-title">Nuestra Misión</h3>
        <p class="mission-text">
          Creemos en crear tecnología que empodere a las personas y transforme los negocios. 
          Nuestra misión es entregar soluciones innovadoras mientras fomentamos una cultura de 
          colaboración, creatividad y aprendizaje continuo.
        </p>
      </div>
      <div class="mission-visual">
        <div class="mission-icon">
          <svg viewBox="0 0 24 24" fill="none" stroke="currentColor">
            <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 10V3L4 14h7v7l9-11h-7z" />
          </svg>
        </div>
      </div>
    </div>

    <!-- Valores Fundamentales -->
    <div class="values-section">
      <h3 class="values-title">Nuestros Valores Fundamentales</h3>
      <div class="values-grid">
        <div class="value-card" data-value="innovation">
          <div class="value-icon">
            <svg viewBox="0 0 24 24" fill="none" stroke="currentColor">
              <circle cx="12" cy="12" r="5"/>
              <line x1="12" y1="1" x2="12" y2="3"/>
              <line x1="12" y1="21" x2="12" y2="23"/>
              <line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/>
              <line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/>
              <line x1="1" y1="12" x2="3" y2="12"/>
              <line x1="21" y1="12" x2="23" y2="12"/>
              <line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/>
              <line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/>
            </svg>
          </div>
          <h4 class="value-name">Innovación</h4>
          <p class="value-description">Abrazamos nuevas ideas y tecnologías para resolver problemas complejos</p>
        </div>

        <div class="value-card" data-value="collaboration">
          <div class="value-icon">
            <svg viewBox="0 0 24 24" fill="none" stroke="currentColor">
              <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 20h5v-2a3 3 0 00-5.356-1.857M17 20H7m10 0v-2c0-.656-.126-1.283-.356-1.857M7 20H2v-2a3 3 0 015.356-1.857M7 20v-2c0-.656.126-1.283.356-1.857m0 0a5.002 5.002 0 019.288 0M15 7a3 3 0 11-6 0 3 3 0 016 0zm6 3a2 2 0 11-4 0 2 2 0 014 0zM7 10a2 2 0 11-4 0 2 2 0 014 0z" />
            </svg>
          </div>
          <h4 class="value-name">Colaboración</h4>
          <p class="value-description">Juntos logramos más de lo que podríamos lograr solos</p>
        </div>

        <div class="value-card" data-value="integrity">
          <div class="value-icon">
            <svg viewBox="0 0 24 24" fill="none" stroke="currentColor">
              <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z" />
            </svg>
          </div>
          <h4 class="value-name">Integridad</h4>
          <p class="value-description">Hacemos lo correcto, incluso cuando nadie nos está viendo</p>
        </div>

        <div class="value-card" data-value="growth">
          <div class="value-icon">
            <svg viewBox="0 0 24 24" fill="none" stroke="currentColor">
              <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 7h8m0 0v8m0-8l-8 8-4-4-6 6" />
            </svg>
          </div>
          <h4 class="value-name">Crecimiento</h4>
          <p class="value-description">El aprendizaje continuo y la mejora impulsan nuestro éxito</p>
        </div>
      </div>
    </div>

    <!-- Estadísticas -->
    <div class="stats-section">
      <div class="stats-grid">
        <div class="stat-item">
          <div class="stat-number" data-target="150">0</div>
          <div class="stat-label">Miembros del Equipo</div>
        </div>
        <div class="stat-item">
          <div class="stat-number" data-target="50">0</div>
          <div class="stat-label">Países</div>
        </div>
        <div class="stat-item">
          <div class="stat-number" data-target="98">0</div>
          <div class="stat-label">Satisfacción del Cliente</div>
          <div class="stat-suffix">%</div>
        </div>
        <div class="stat-item">
          <div class="stat-number" data-target="5">0</div>
          <div class="stat-label">Años de Excelencia</div>
        </div>
      </div>
    </div>
  </div>
</section>

CSS

.company-culture-section {
  padding: 80px 0;
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  color: white;
  position: relative;
  overflow: hidden;
}

.company-culture-section::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><defs><pattern id="grain" width="100" height="100" patternUnits="userSpaceOnUse"><circle cx="50" cy="50" r="1" fill="%23ffffff" opacity="0.1"/></pattern></defs><rect width="100" height="100" fill="url(%23grain)"/></svg>') repeat;
  pointer-events: none;
}

.container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
  position: relative;
  z-index: 1;
}

/* Encabezado de Sección */
.section-header {
  text-align: center;
  margin-bottom: 60px;
}

.section-title {
  font-size: 3rem;
  font-weight: 700;
  margin-bottom: 16px;
  background: linear-gradient(45deg, #ffffff, #e0e7ff);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.section-subtitle {
  font-size: 1.25rem;
  opacity: 0.9;
  max-width: 600px;
  margin: 0 auto;
  line-height: 1.6;
}

/* Declaración de Misión */
.mission-statement {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 40px;
  align-items: center;
  margin-bottom: 80px;
  padding: 40px;
  background: rgba(255, 255, 255, 0.1);
  border-radius: 20px;
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.2);
}

.mission-title {
  font-size: 2rem;
  font-weight: 600;
  margin-bottom: 20px;
  color: #e0e7ff;
}

.mission-text {
  font-size: 1.125rem;
  line-height: 1.7;
  opacity: 0.95;
}

.mission-visual {
  display: flex;
  justify-content: center;
  align-items: center;
}

.mission-icon {
  width: 120px;
  height: 120px;
  background: linear-gradient(45deg, #fbbf24, #f59e0b);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2);
  animation: float 3s ease-in-out infinite;
}

.mission-icon svg {
  width: 60px;
  height: 60px;
  color: white;
}

@keyframes float {
  0%, 100% { transform: translateY(0px); }
  50% { transform: translateY(-10px); }
}

/* Sección de Valores */
.values-section {
  margin-bottom: 80px;
}

.values-title {
  font-size: 2.5rem;
  font-weight: 600;
  text-align: center;
  margin-bottom: 50px;
  color: #e0e7ff;
}

.values-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 30px;
}

.value-card {
  background: rgba(255, 255, 255, 0.1);
  border-radius: 16px;
  padding: 30px;
  text-align: center;
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.2);
  transition: all 0.3s ease;
  cursor: pointer;
}

.value-card:hover {
  transform: translateY(-10px);
  background: rgba(255, 255, 255, 0.15);
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2);
}

.value-icon {
  width: 80px;
  height: 80px;
  background: linear-gradient(45deg, #10b981, #059669);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 20px;
  transition: all 0.3s ease;
}

.value-card:hover .value-icon {
  transform: scale(1.1);
  background: linear-gradient(45deg, #059669, #047857);
}

.value-icon svg {
  width: 40px;
  height: 40px;
  color: white;
}

.value-name {
  font-size: 1.5rem;
  font-weight: 600;
  margin-bottom: 12px;
  color: #e0e7ff;
}

.value-description {
  font-size: 1rem;
  line-height: 1.6;
  opacity: 0.9;
}

/* Sección de Estadísticas */
.stats-section {
  background: rgba(255, 255, 255, 0.1);
  border-radius: 20px;
  padding: 40px;
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.2);
}

.stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 40px;
}

.stat-item {
  text-align: center;
}

.stat-number {
  font-size: 3rem;
  font-weight: 700;
  color: #fbbf24;
  margin-bottom: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
}

.stat-suffix {
  font-size: 2rem;
  color: #fbbf24;
}

.stat-label {
  font-size: 1.125rem;
  opacity: 0.9;
  font-weight: 500;
}

/* Diseño Responsivo */
@media (max-width: 768px) {
  .company-culture-section {
    padding: 60px 0;
  }
  
  .section-title {
    font-size: 2.5rem;
  }
  
  .mission-statement {
    grid-template-columns: 1fr;
    text-align: center;
    gap: 30px;
  }
  
  .values-grid {
    grid-template-columns: 1fr;
  }
  
  .stats-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 30px;
  }
  
  .stat-number {
    font-size: 2.5rem;
  }
}

@media (max-width: 480px) {
  .section-title {
    font-size: 2rem;
  }
  
  .stats-grid {
    grid-template-columns: 1fr;
  }
}

JavaScript

// Contador Animado para Estadísticas
class AnimatedCounter {
  constructor(element, target, duration = 2000) {
    this.element = element;
    this.target = parseInt(target);
    this.duration = duration;
    this.startValue = 0;
    this.startTime = null;
    this.isAnimating = false;
  }

  animate(currentTime) {
    if (!this.startTime) this.startTime = currentTime;
    
    const elapsed = currentTime - this.startTime;
    const progress = Math.min(elapsed / this.duration, 1);
    
    // Función de easing para animación suave
    const easeOutQuart = 1 - Math.pow(1 - progress, 4);
    const currentValue = Math.floor(this.startValue + (this.target - this.startValue) * easeOutQuart);
    
    this.element.textContent = currentValue;
    
    if (progress < 1) {
      requestAnimationFrame((time) => this.animate(time));
    } else {
      this.element.textContent = this.target;
      this.isAnimating = false;
    }
  }

  start() {
    if (!this.isAnimating) {
      this.isAnimating = true;
      this.startTime = null;
      requestAnimationFrame((time) => this.animate(time));
    }
  }
}

// Intersection Observer para activar animaciones
const observerOptions = {
  threshold: 0.5,
  rootMargin: '0px 0px -100px 0px'
};

const observer = new IntersectionObserver((entries) => {
  entries.forEach(entry => {
    if (entry.isIntersecting) {
      // Animar contadores de estadísticas
      if (entry.target.classList.contains('stats-section')) {
        const statNumbers = entry.target.querySelectorAll('.stat-number');
        statNumbers.forEach(statNumber => {
          const target = statNumber.getAttribute('data-target');
          if (target && !statNumber.classList.contains('animated')) {
            statNumber.classList.add('animated');
            const counter = new AnimatedCounter(statNumber, target, 2000);
            setTimeout(() => counter.start(), Math.random() * 500);
          }
        });
      }
      
      // Animar tarjetas de valores
      if (entry.target.classList.contains('values-section')) {
        const valueCards = entry.target.querySelectorAll('.value-card');
        valueCards.forEach((card, index) => {
          setTimeout(() => {
            card.style.opacity = '0';
            card.style.transform = 'translateY(30px)';
            card.style.transition = 'all 0.6s ease';
            
            setTimeout(() => {
              card.style.opacity = '1';
              card.style.transform = 'translateY(0)';
            }, 100);
          }, index * 200);
        });
      }
    }
  });
}, observerOptions);

// Inicializar cuando el DOM esté cargado
document.addEventListener('DOMContentLoaded', () => {
  // Observar secciones para animaciones
  const statsSection = document.querySelector('.stats-section');
  const valuesSection = document.querySelector('.values-section');
  
  if (statsSection) observer.observe(statsSection);
  if (valuesSection) observer.observe(valuesSection);
  
  // Agregar efectos hover interactivos a las tarjetas de valores
  const valueCards = document.querySelectorAll('.value-card');
  valueCards.forEach(card => {
    card.addEventListener('mouseenter', () => {
      card.style.transform = 'translateY(-10px) scale(1.02)';
    });
    
    card.addEventListener('mouseleave', () => {
      card.style.transform = 'translateY(0) scale(1)';
    });
  });
  
  // Agregar efectos de clic
  valueCards.forEach(card => {
    card.addEventListener('click', () => {
      const valueName = card.getAttribute('data-value');
      
      // Agregar efecto ripple
      const ripple = document.createElement('div');
      ripple.style.cssText = `
        position: absolute;
        border-radius: 50%;
        background: rgba(255, 255, 255, 0.3);
        transform: scale(0);
        animation: ripple 0.6s linear;
        pointer-events: none;
        left: 50%;
        top: 50%;
        width: 100px;
        height: 100px;
        margin-left: -50px;
        margin-top: -50px;
      `;
      
      card.style.position = 'relative';
      card.appendChild(ripple);
      
      setTimeout(() => {
        ripple.remove();
      }, 600);
      
      // Opcional: Agregar acción personalizada para cada valor
      console.log(`Se hizo clic en el valor ${valueName}`);
    });
  });
});

// CSS para animación ripple
const style = document.createElement('style');
style.textContent = `
  @keyframes ripple {
    to {
      transform: scale(4);
      opacity: 0;
    }
  }
`;
document.head.appendChild(style);

Opciones de Personalización

Colores

  • Gradiente Principal: Modifica la propiedad background en .company-culture-section
  • Colores de Acento: Cambia los colores del gradiente en .mission-icon y .value-icon
  • Colores de Texto: Ajusta los valores de color para títulos y descripciones

Contenido

  • Declaración de Misión: Actualiza el texto en .mission-text
  • Valores: Modifica las tarjetas de valores con los valores fundamentales de tu empresa
  • Estadísticas: Cambia los atributos data-target y las etiquetas

Diseño

  • Columnas de Grid: Ajusta grid-template-columns para diferentes diseños
  • Espaciado: Modifica los valores de padding y margin
  • Tamaños de Tarjetas: Cambia los valores minmax en las definiciones de grid

Compatibilidad del Navegador

  • ✅ Chrome 60+
  • ✅ Firefox 55+
  • ✅ Safari 12+
  • ✅ Edge 79+
  • ⚠️ IE 11 (con polyfills)

Notas de Rendimiento

  • Usa transformaciones CSS para animaciones suaves
  • Intersection Observer para animaciones eficientes basadas en scroll
  • Optimizado para animaciones a 60fps
  • Huella mínima de JavaScript
  • Efectos acelerados por GPU con transform y opacity

HTML

123

líneas

CSS

338

líneas


                <section class="company-culture-section">
  <div class="container">
    <!-- Declaración de Misión -->
    <div class="mission-statement">
      <h2 class="section-title">Nuestra Misión</h2>
      <div class="mission-content">
        <p class="mission-text">Nuestra misión es crear soluciones tecnológicas innovadoras que transformen la forma en que las empresas operan, permitiéndoles alcanzar su máximo potencial mientras mantienen un impacto positivo en la sociedad y el medio ambiente.</p>
      </div>
    </div>
    
    <!-- Valores Principales -->
    <div class="core-values">
      <h2 class="section-title">Nuestros Valores</h2>
      <div class="values-container">
        <!-- Valor: Innovación -->
        <div class="value-card" data-value="innovation">
          <div class="card-inner">
            <div class="card-front">
              <div class="value-icon">
                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                  <path d="M12 2v4M12 18v4M4.93 4.93l2.83 2.83M16.24 16.24l2.83 2.83M2 12h4M18 12h4M4.93 19.07l2.83-2.83M16.24 7.76l2.83-2.83"/>
                </svg>
              </div>
              <h3 class="value-title">Innovación</h3>
              <p class="value-brief">Impulsamos el cambio a través de ideas creativas</p>
            </div>
            <div class="card-back">
              <h3 class="value-title">Innovación</h3>
              <p class="value-description">Constantemente desafiamos el status quo y buscamos nuevas formas de resolver problemas. Fomentamos un entorno donde las ideas audaces son bienvenidas y la experimentación es alentada.</p>
              <button class="value-learn-more" aria-label="Más sobre Innovación">Leer más</button>
            </div>
          </div>
        </div>
        
        <!-- Valor: Colaboración -->
        <div class="value-card" data-value="collaboration">
          <div class="card-inner">
            <div class="card-front">
              <div class="value-icon">
                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                  <path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"/>
                  <circle cx="9" cy="7" r="4"/>
                  <path d="M23 21v-2a4 4 0 0 0-3-3.87"/>
                  <path d="M16 3.13a4 4 0 0 1 0 7.75"/>
                </svg>
              </div>
              <h3 class="value-title">Colaboración</h3>
              <p class="value-brief">Juntos logramos más</p>
            </div>
            <div class="card-back">
              <h3 class="value-title">Colaboración</h3>
              <p class="value-description">Creemos en el poder del trabajo en equipo y la diversidad de pensamiento. Construimos relaciones sólidas basadas en la confianza, el respeto mutuo y la comunicación abierta.</p>
              <button class="value-learn-more" aria-label="Más sobre Colaboración">Leer más</button>
            </div>
          </div>
        </div>
        
        <!-- Valor: Integridad -->
        <div class="value-card" data-value="integrity">
          <div class="card-inner">
            <div class="card-front">
              <div class="value-icon">
                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                  <path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/>
                </svg>
              </div>
              <h3 class="value-title">Integridad</h3>
              <p class="value-brief">Hacemos lo correcto, siempre</p>
            </div>
            <div class="card-back">
              <h3 class="value-title">Integridad</h3>
              <p class="value-description">Actuamos con honestidad, transparencia y responsabilidad en todo lo que hacemos. Mantenemos los más altos estándares éticos y cumplimos nuestras promesas a clientes, socios y entre nosotros.</p>
              <button class="value-learn-more" aria-label="Más sobre Integridad">Leer más</button>
            </div>
          </div>
        </div>
        
        <!-- Valor: Crecimiento -->
        <div class="value-card" data-value="growth">
          <div class="card-inner">
            <div class="card-front">
              <div class="value-icon">
                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                  <path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"/>
                </svg>
              </div>
              <h3 class="value-title">Crecimiento</h3>
              <p class="value-brief">Evolucionamos constantemente</p>
            </div>
            <div class="card-back">
              <h3 class="value-title">Crecimiento</h3>
              <p class="value-description">Estamos comprometidos con el aprendizaje continuo y el desarrollo personal. Abrazamos los desafíos como oportunidades para crecer y nos esforzamos por ser mejores cada día.</p>
              <button class="value-learn-more" aria-label="Más sobre Crecimiento">Leer más</button>
            </div>
          </div>
        </div>
      </div>
    </div>
    
    <!-- Estadísticas de la Empresa -->
    <div class="company-stats">
      <h2 class="section-title">Nuestro Impacto</h2>
      <div class="stats-container">
        <div class="stat-item">
          <div class="stat-value" id="employeeCount" data-target="120">0</div>
          <div class="stat-label">Empleados Globales</div>
        </div>
        <div class="stat-item">
          <div class="stat-value" id="projectsCount" data-target="250">0</div>
          <div class="stat-label">Proyectos Completados</div>
        </div>
        <div class="stat-item">
          <div class="stat-value" id="countriesCount" data-target="15">0</div>
          <div class="stat-label">Países</div>
        </div>
        <div class="stat-item">
          <div class="stat-value" id="clientsCount" data-target="500">0</div>
          <div class="stat-label">Clientes Satisfechos</div>
        </div>
      </div>
    </div>
  </div>
</section>

              
123líneas
6362caracteres
HTMLIdioma

Fragmentos de Código Relacionados

Explora packs de plantillas

¿Necesitas bloques más grandes? Descubre landings y colecciones de componentes.

Abrir la biblioteca de plantillas →