🎯 Visão Geral

A Coleção de Componentes Astra Vitae apresenta 6 componentes React cuidadosamente elaborados, cada um construído com performance, acessibilidade e belas experiências de usuário em mente. Perfeito para desenvolvedores que precisam de componentes prontos para produção sem a sobrecarga de sistemas de template completos.

O Que Torna Esses Componentes Especiais

Performance Primeiro - Lazy loading e otimização
Acessibilidade Integrada - Conforme WCAG 2.1 AA
Suporte TypeScript - Definições de tipo completas
React 16.8+ TypeScript Lazy Loading Mobile First

🧩 Catálogo de Componentes

COLEÇÃO COMPLETA

Astra Vitae Coleção de Componentes

Preview da Coleção de Componentes Astra Vitae
6
Componentes Premium
+ Atualizações Futuras
✨ SmartNavButtons 🖼️ MediaBundle Suite 📸 CommonImage 🎬 CommonVideo 🎠 ImageCarousel 💬 Testimonials
Navegação Inteligente

Astra Vitae SmartNavButtons

Sistema inteligente de navegação de páginas

Recursos:
  • Detecção de Seções
  • Navegação por Teclado
  • Otimizado para Desktop/Tablet
All-In-One

Astra Vitae MediaBundle Suite

Gerenciamento unificado de mídia com carrossel + lightbox

Recursos:
  • CommonImage
  • CommonVideo
  • ImageCarousel

Astra Vitae ImageCarousel

Slideshow de imagens com suporte a toque e navegação

Recursos:
  • Gestos Touch
  • Avanço Automático
  • Faixa de Miniaturas
  • Integração Lightbox

Astra Vitae CommonVideo

Player de vídeo multi-fonte com controles avançados

Recursos:
  • Suporte YouTube
  • Google Drive
  • Arquivos Locais
  • Modo Lightbox

Astra Vitae CommonImage

Exibição aprimorada de imagens com lightbox interativo

Recursos:
  • Modos de Exibição
  • Sistema de Overlay
  • Lazy Loading
  • Design Responsivo

Astra Vitae TestimonialsCarousel

Showcase profissional de depoimentos de clientes

Recursos:
  • Estrelas de Avaliação
  • Ciclo Automático
  • Fotos de Perfil
  • Branding da Empresa

🌟 Astra Vitae SmartNavButtons - Navegação Inteligente

SmartNavButtons Component Preview
NAV INTELIGENTE Sistema de Navegação de Páginas Inteligente

SmartNavButtons é um componente de navegação revolucionário que transforma a forma como os usuários interagem com suas páginas. É um sistema de navegação inteligente que detecta automaticamente as seções da página, fornece navegação contextual e inclui recursos avançados como modo de bloqueio de rolagem para apresentações.

A perfect fit for navigation in desktops, laptops, and tablets. Currently not optimized for mobile devices, as swiping is the most natural way to navigate on mobile devices.

🎯

Detecção Inteligente

Identifica e navega automaticamente entre seções da página

🔒

Modo Scroll Lock

Controle completo da navegação para apresentações

⌨️

Suporte a Teclado

Navegação completa com teclas de seta e acessibilidade

Recursos Principais

Detecção Inteligente de Seções

  • • Detecta automaticamente a seção atual com base na posição de rolagem
  • • Detecção inteligente de limites para transições suaves
  • • Contagem dinâmica de seções e navegação
  • • Funciona com qualquer estrutura de página

Três Modos de Navegação

  • • Ir para Próximo: Navega suavemente para a próxima seção
  • • Ir para o Topo: Retorno rápido ao início da página
  • • Ir para o Final: Pular para rodapé/fim
  • • Exibição de botões contextual

Capacidades Avançadas

🎭

Lógica de Auto-Ocultar

Visibilidade inteligente baseada no contexto do usuário

Animações de Pulso

Feedback visual para guiar interações

🎠

Integração com Carrossel

Oculta automaticamente durante o uso do carrossel

📱

Otimizado para Mobile

Amigável ao toque com dimensionamento adequado

Especificações Técnicas

Especificação Detalhes
Versão React 16.8.0+ com arquitetura de hooks
TypeScript Definições de tipo completas incluídas
Performance API Intersection Observer para performance otimizada
Timing de Navegação Rolagem suave configurável de 400ms
Tamanho do Bundle 12KB minificado

Perfeito Para

🏠

Landing Pages

Experiência de navegação guiada

📚

Documentação

Navegação seção por seção

🎯

Apresentações

Fluxo de usuário controlado

🎨

Portfólios

Transições suaves entre seções

Exemplo de Implementação

Configuração do SmartNavButtons
      
        // Instalação
import SmartNavButtons from './SmartNavButtons/index.esm.js';
import './SmartNavButtons/index.css';

// Uso Básico
function App() {
  return (
    <div>
      {/* Seu conteúdo da página */}
      <SmartNavButtons />
    </div>
  );
}

// Configuração Avançada
<SmartNavButtons
  scrollLockMode={false}       // Habilitar/desabilitar bloqueio de rolagem
  autoHideDelay={3000}         // Auto-ocultar após 3 segundos
  animationDuration={400}      // Duração da rolagem suave
  showPulseAnimation={true}    // Orientação visual
  keyboardNavigation={true}    // Suporte a teclas de seta
  mobileOptimized={true}       // Dimensionamento amigável ao toque
/>

// Interface TypeScript
interface SmartNavButtonsProps {
  scrollLockMode?: boolean;
  autoHideDelay?: number;
  animationDuration?: number;
  showPulseAnimation?: boolean;
  keyboardNavigation?: boolean;
  mobileOptimized?: boolean;
  className?: string;
  customStyles?: React.CSSProperties;
}
      
    

💎 Astra Vitae MediaBundle Suite - Sistema de Componentes Flagship

MediaBundle Suite Preview
⭐ SISTEMA FLAGSHIP 4 Componentes em 1 Sistema Unificado

MediaBundle é um sistema unificado de gerenciamento de mídia que lida com imagens, vídeos e carrosséis com uma experiência de lightbox única e coesa. Este sistema flagship fornece uma experiência de usuário consistente em todos os tipos de mídia com tamanho de bundle otimizado e eficiência de desenvolvimento.

🖼️

CommonImage

Exibição avançada de imagens com modos

📹

CommonVideo

Player de vídeo multi-fonte

🎠

ImageCarousel

Slideshow com suporte a toque

🔍

UnifiedLightbox

Visualizador universal de mídia

MediaBundle vs Componentes Individuais

Recurso MediaBundle Componentes Individuais
Suporte a Conteúdo Misto ✅ Imagens + Vídeos juntos ❌ Uso separado apenas
Arquivos CSS Necessários 1 stylesheet unificado 2+ stylesheets separados
Lightboxes Especializados ✅ 3 lightboxes otimizados Implementações separadas
Experiência de Lightbox 3 Lightboxes Especializados (otimizados por tipo) Implementações de lightbox separadas

Recursos Avançados

Manipulação de Mídia

  • Vídeo Multi-Fonte: YouTube, Google Drive, arquivos locais
  • Gestos Touch: Deslizar, pinçar, arrastar no mobile
  • Lazy Loading: Carregamento otimizado para performance
  • Design Responsivo: Perfeito em todas as telas

Excelência Técnica

  • Importação Única: Um bundle para todos os componentes
  • Código Compartilhado: Tamanho de bundle otimizado
  • TypeScript: Definições de tipo completas
  • Acessibilidade: Rótulos ARIA e navegação por teclado

Casos de Uso Perfeitos

🎨

Galerias de Mídia Mista

Imagens e vídeos no mesmo lightbox

💼

Showcases de Portfólio

Sistemas de apresentação profissional

🛍️

Catálogos de Produtos

Exibições de produtos com mídia rica

📱

Gerenciamento de Conteúdo

Abordagem unificada de manipulação de mídia

Implementation Pattern

MediaBundle Integration
      
        // Importar MediaBundle completo
import { 
  CommonImage, 
  CommonVideo, 
  ImageCarousel
} from './MediaBundle/index.esm.js';
import './MediaBundle/index.css'; // Arquivo CSS único!

// Cada componente tem seu lightbox especializado
function App() {
  return (
    <div>
      {/* Cada componente usa seu lightbox especializado automaticamente */}
      <CommonImage 
        src="/images/hero.webp"
        displayMode="inline"
        enableLightbox={true}
        {/* Usa ImageLightbox especializado para imagens estáticas */}
      />
      
      <CommonVideo 
        source="youtube"
        videoId="dQw4w9WgXcQ"
        enableLightbox={true}
        {/* Usa VideoLightbox especializado para reprodução de vídeo */}
      />
      
      <ImageCarousel 
        images={imageArray}
        enableLightbox={true}
        autoPlay={true}
      />
    </div>
  );
}

// Exemplo de Galeria de Mídia Mista
const MixedGallery = () => {
  const mediaItems = [
    { type: 'image', src: '/photo1.webp', title: 'Foto 1' },
    { type: 'video', source: 'youtube', id: 'abc123' },
    { type: 'image', src: '/photo2.webp', title: 'Foto 2' },
    { type: 'video', source: 'local', src: '/video.webm' }
  ];
  
  return (
    <div className="media-gallery">
      {mediaItems.map((item, index) => (
        item.type === 'image' ? (
          <CommonImage key={index} {...item} />
        ) : (
          <CommonVideo key={index} {...item} />
        )
      ))}
      <UnifiedLightbox /> {/* Lightbox único para tudo! */}
    </div>
  );
};
      
    

🖼️ Astra Vitae CommonImage - Premium Image Component

CommonImage Component Preview

CommonImage é um componente de imagem versátil que vai além da exibição básica de imagens. Com três modos distintos de exibição, integração de lightbox integrada e capacidades avançadas de overlay, é a solução perfeita para qualquer necessidade de apresentação de imagens.

Modos de Exibição

📐

Modo Inline

Exibição padrão de imagem com cantos arredondados e efeitos hover

🖼️

Modo Section

Seções hero de largura total com altura personalizável

🎨

Modo Background

Imagens de background posicionadas absolutamente para designs em camadas

Recursos Avançados

Capacidades Interativas

  • • Integração Lightbox com animações suaves
  • • Overlays de título e texto com estilo profissional
  • • Efeitos hover e transições
  • • Funcionalidade de clicar para expandir

Recursos Técnicos

  • • Controle de proporção para proporções perfeitas
  • • Opções de object fit (cover, contain, fill)
  • • Lazy loading pronto com IntersectionObserver
  • • Design responsivo com suporte srcset

Perfeito Para

🏔️

Imagens Hero

🎨

Itens de Galeria

📦

Exibições de Produtos

🖼️

Showcases de Recursos

Usage Examples

CommonImage Examples
      
        // Exemplos de Uso do CommonImage

// Modo Inline - Exibição padrão de imagem
<CommonImage
  src="/images/product.webp"
  alt="Imagem do Produto"
  displayMode="inline"
  enableLightbox={true}
  className="rounded-lg shadow-md"
/>

// Modo Section - Imagem hero com overlay
<CommonImage
  src="/images/hero-bg.webp"
  displayMode="section"
  height="h-96"
  overlay={{
    title: "Bem-vindo ao Nosso Site",
    text: "Descubra produtos incríveis",
    position: "center"
  }}
/>

// Modo Background - Design em camadas
<div className="relative h-screen">
  <CommonImage
    src="/images/background.webp"
    displayMode="background"
    objectFit="cover"
  />
  <div className="relative z-10">
    {/* Seu conteúdo aqui */}
  </div>
</div>
      
    

📹 Astra Vitae CommonVideo - Multi-Source Video Player

CommonVideo Component Preview

CommonVideo é um componente de vídeo poderoso que lida perfeitamente com múltiplas fontes de vídeo, incluindo YouTube, Google Drive e arquivos locais. Com fallbacks inteligentes, gerenciamento de autoplay e integração de lightbox, fornece uma experiência de vídeo profissional em todos os dispositivos.

Fontes de Vídeo

📺

YouTube

Embed com modo privacidade

☁️

Google Drive

Integração direta

💾

Arquivos Locais

MP4, WebM, OGG

🔄

Fallbacks Inteligentes

Troca automática de fonte

Controles Avançados

Recursos de Reprodução

  • • Gerenciamento de autoplay com suporte a mudo
  • • Overlays de miniatura com botão de play
  • • Suporte a loop e playlist
  • • Controle de velocidade de reprodução

Flexibilidade de Layout

  • • Player inline com dimensionamento responsivo
  • • Modo de vídeo de background em seção
  • • Modo lightbox para tela cheia
  • • Proporções personalizadas

Recursos de Performance

Lazy Loading

Carregar na entrada do viewport

🖼️

Imagens Poster

Preview antes do carregamento

📊

Otimização de Largura de Banda

Qualidade adaptativa

Exemplos de Implementação

CommonVideo Examples
      
        // Exemplos CommonVideo Multi-Fonte

// Vídeo YouTube
<CommonVideo
  source="youtube"
  videoId="dQw4w9WgXcQ"
  autoplay={true}
  muted={true}
  thumbnail="/thumbnails/video.webp"
  enableLightbox={true}
/>

// Vídeo Google Drive
<CommonVideo
  source="googledrive"
  videoId="1BxZlEb3K5mN8QPRo9TYZ"
  aspectRatio="16:9"
  controls={true}
/>

// Vídeo Local com Fallbacks
<CommonVideo
  source="local"
  src="/videos/intro.webm"
  fallbackSrc="/videos/intro.webm"
  poster="/images/video-poster.webp"
  loop={true}
  playbackRate={1.0}
/>

// Modo Background de Vídeo
<CommonVideo
  source="local"
  src="/videos/background.webm"
  displayMode="background"
  autoplay={true}
  muted={true}
  loop={true}
  className="absolute inset-0"
/>
      
    

🎠 Astra Vitae ImageCarousel - Touch-Enabled Slideshow

ImageCarousel Component Preview

ImageCarousel oferece uma experiência premium de slideshow com gestos touch, navegação por teclado e transições suaves. Perfeito para exibir múltiplas imagens com apresentação profissional.

Recursos de Navegação

👆

Gestos Touch

⬅️

Controles de Seta

Pontos Indicadores

🖼️

Miniaturas

⌨️

Navegação por Teclado

Funcionalidade

Recursos Principais

  • • Avanço automático com timing configurável
  • • Integração lightbox para visualização completa
  • • Lazy loading para performance
  • • Múltiplos efeitos de transição

Opções de Personalização

  • • Controle de autoplay com pausa no hover
  • • Personalização de indicadores visuais
  • • Tipos e duração de transição
  • • Legendas e metadados de imagem

Casos de Uso

🛍️

Galerias de Produtos

📸

Exibições de Portfólio

📖

Histórias de Imagens

🔄

Antes/Depois

Exemplos de Implementação

ImageCarousel Examples
      
        // Implementação ImageCarousel

const images = [
  { src: '/img1.webp', alt: 'Imagem 1', caption: 'Pôr do sol lindo' },
  { src: '/img2.webp', alt: 'Imagem 2', caption: 'Vista da montanha' },
  { src: '/img3.webp', alt: 'Imagem 3', caption: 'Ondas do oceano' }
];

// Carrossel Completo
<ImageCarousel
  images={images}
  autoPlay={true}
  autoPlayInterval={5000}
  showThumbnails={true}
  showIndicators={true}
  enableLightbox={true}
  transitionType="fade"
  transitionDuration={500}
  pauseOnHover={true}
  infiniteLoop={true}
  showArrows={true}
  swipeable={true}
  keyboardNavigation={true}
  lazyLoad={true}
  className="rounded-lg overflow-hidden"
/>

// Carrossel Mínimo
<ImageCarousel
  images={images}
  showIndicators={true}
  swipeable={true}
/>

// Modo Galeria com Miniaturas
<ImageCarousel
  images={images}
  showThumbnails={true}
  thumbnailPosition="bottom"
  thumbnailWidth={80}
  enableLightbox={true}
/>
      
    

💬 Astra Vitae Testimonials - Showcase Profissional de Clientes

Testimonials Component Preview

TestimonialsCarousel fornece uma forma polida de exibir feedback de clientes com estrelas de avaliação, fotos de perfil e branding da empresa. Construa confiança e credibilidade com prova social apresentada profissionalmente.

Recursos de Exibição

Estrelas de Avaliação

Avaliações de 1-5 estrelas

👤

Fotos de Perfil

Avatares de clientes

🏢

Informações da Empresa

Cargo e empresa

🎠

Ciclo Automático

Rotação automática

Gerenciamento de Conteúdo

Opções de Exibição

  • • Dados estruturados com schema markup
  • • Suporte a texto rico para depoimentos
  • • Atribuição de data e timestamps
  • • Badge verificado para autenticidade

Recursos Avançados

  • • Autoplay com pausa no hover
  • • Pontos e setas de navegação
  • • Layouts de cartão responsivos
  • • Efeitos de transição suaves

Exemplos de Implementação

Exemplos de Depoimentos
      
        // Implementação Testimonials

const testimonials = [
  {
    id: 1,
    name: "Sarah Johnson",
    role: "CEO",
    company: "TechCorp",
    avatar: "/avatars/sarah.webp",
    rating: 5,
    text: "Qualidade excepcional de componentes! O MediaBundle transformou nossas galerias de produtos.",
    verified: true,
    date: "2024-01-15"
  },
  {
    id: 2,
    name: "Mike Chen",
    role: "Desenvolvedor Líder",
    company: "StartupXYZ",
    avatar: "/avatars/mike.webp",
    rating: 5,
    text: "SmartNavButtons é revolucionário. Nossos usuários adoram a navegação intuitiva.",
    verified: true,
    date: "2024-01-20"
  }
];

// Testimonials Completo
<TestimonialsCarousel
  testimonials={testimonials}
  autoPlay={true}
  interval={6000}
  showNavigation={true}
  showIndicators={true}
  displayMode="carousel"
  cardsPerView={1}
  showRatings={true}
  showVerifiedBadge={true}
  showCompanyInfo={true}
  animationType="fade"
  pauseOnHover={true}
/>

// Modo Layout Grid
<TestimonialsCarousel
  testimonials={testimonials}
  displayMode="grid"
  columns={3}
  showRatings={true}
  className="gap-6"
/>
      
    

🚀 Implementação

Início Rápido

Uso de Componente Individual

Importação Individual
      
        // Importar componentes individuais
import SmartNavButtons from './SmartNavButtons/index.esm.js';
import './SmartNavButtons/index.css';

// Usar em seu app React
<SmartNavButtons />
      
    

Uso MediaBundle (Recomendado)

MediaBundle Import
      
        // Usar MediaBundle completo para conteúdo misto
import { 
  CommonImage, 
  CommonVideo, 
  ImageCarousel
} from './MediaBundle/index.esm.js';
import './MediaBundle/index.css';

// Cada componente tem seu lightbox especializado integrado
// ImageLightbox, VideoLightbox, CarouselLightbox incluídos
      
    

Métodos de Instalação

Pacote NPM

npm install @scl/components

Pacote Yarn

yarn add @scl/components

Instalação Manual

Copiar para src/components/

Guia Completo de Configuração

⭐ Implementação SmartNavButtons

Configuração Completa do SmartNavButtons
      
        // Passo 1: Instalar e Importar
import SmartNavButtons from '@scl/components/SmartNavButtons';
import '@scl/components/SmartNavButtons/styles.css';

// Passo 2: Adicionar ao seu layout
function Layout({ children }) {
  return (
    <div className="app-layout">
      {children}
      <SmartNavButtons 
        scrollLockMode={false}
        autoHideDelay={3000}
      />
    </div>
  );
}

// Passo 3: Definir suas seções de página
<main>
  <section id="hero" className="min-h-screen">
    {/* Conteúdo hero */}
  </section>
  <section id="features" className="min-h-screen">
    {/* Conteúdo features */}
  </section>
  <section id="pricing" className="min-h-screen">
    {/* Conteúdo pricing */}
  </section>
</main>

// SmartNavButtons detectará e navegará automaticamente entre seções!
      
    

💎 💎 Padrão de Integração MediaBundle

Integração Completa do MediaBundle
      
        // Configuração Completa MediaBundle

// Passo 1: Importar todos os componentes
import {
  CommonImage,
  CommonVideo,
  ImageCarousel,
  UnifiedLightbox,
  MediaBundleProvider
} from '@scl/components/MediaBundle';
import '@scl/components/MediaBundle/styles.css';

// Passo 2: Envolver seu app com MediaBundleProvider
function App() {
  return (
    <MediaBundleProvider>
      <Routes />
      <UnifiedLightbox /> {/* Lightbox único para toda mídia */}
    </MediaBundleProvider>
  );
}

// Passo 3: Usar componentes em qualquer lugar
function Gallery() {
  const mediaItems = [
    { type: 'image', src: '/photo1.webp', title: 'Pôr do sol' },
    { type: 'video', source: 'youtube', id: 'abc123' },
    { type: 'carousel', images: [...] }
  ];
  
  return (
    <div className="gallery-grid">
      {mediaItems.map((item) => {
        switch(item.type) {
          case 'image':
            return <CommonImage {...item} enableLightbox />;
          case 'video':
            return <CommonVideo {...item} enableLightbox />;
          case 'carousel':
            return <ImageCarousel {...item} enableLightbox />;
        }
      })}
    </div>
  );
}
      
    

Configuração TypeScript

Configuração TypeScript
      
        // tsconfig.json
{
  "compilerOptions": {
    "types": ["@scl/components"]
  }
}

// Definições de Tipo
import type {
  SmartNavButtonsProps,
  CommonImageProps,
  CommonVideoProps,
  ImageCarouselProps,
  UnifiedLightboxProps,
  MediaItem,
  VideoSource,
  DisplayMode,
  TransitionType
} from '@scl/components';

// Uso fortemente tipado
const imageProps: CommonImageProps = {
  src: '/image.webp',
  alt: 'Descrição',
  displayMode: 'inline',
  enableLightbox: true,
  lazy: true,
  aspectRatio: '16:9'
};

const videoProps: CommonVideoProps = {
  source: 'youtube',
  videoId: 'dQw4w9WgXcQ',
  autoplay: false,
  controls: true,
  thumbnail: '/thumb.webp'
};
      
    

🎨 Personalização

Variáveis de Tema

Todos os componentes usam propriedades CSS customizadas para facilitar a personalização de temas. Simplesmente sobrescreva essas variáveis no seu CSS global para corresponder à sua marca.

Personalização de Tema
      
        :root {
  /* Cores Primárias */
  --media-primary-purple: #e6b3ff;
  --media-primary-gold: #d4af37;
  
  /* Efeitos */
  --media-glow-purple: 0 0 3px #e6b3ff;
  --media-glow-gold: 0 0 8px #d4af37;
  
  /* Animações */
  --media-duration-fast: 150ms;
  --media-duration-normal: 300ms;
}
      
    

Classes de Componentes

  • • Classes de Container para estilização de wrapper
  • • Classes de Elemento para partes individuais
  • • Classes de Estado para interações
  • • Classes Responsivas para breakpoints

Opções Avançadas

  • • Timing de animação personalizado
  • • Integração de cores da marca
  • • Suporte a modo escuro
  • • Suporte a idiomas RTL

⚡ Performance e Otimização

Recursos de Performance Integrados

Otimização de Carregamento

  • • Lazy loading para toda mídia
  • • Suporte a code splitting
  • • Compatível com tree shaking
  • • Overhead de runtime mínimo

Performance de Runtime

  • • API Intersection Observer
  • • RequestAnimationFrame
  • • Event listeners passivos
  • • Interações com debounce

🔄 Comparação Bundle vs Individual

Quando Escolher Componentes Individuais

  • Você precisa apenas de um componente específico
  • Tamanho mínimo de bundle é crítico
  • Não precisa de manipulação unificada de mídia
  • Funcionalidade direcionada para caso de uso específico

Quando Escolher Bundles

  • Precisa de múltiplos componentes
  • Quer experiência de mídia unificada
  • Prefere arquivo CSS único
  • Solução completa com todos os componentes

🚀 Demos ao Vivo

Teste Cada Componente ao Vivo

Todos os componentes são totalmente funcionais em nosso demo do template Premium. Explore-os para ver todos os recursos em ação.

  • ✓ Navegação SmartNavButtons
  • ✓ MediaBundle com conteúdo misto
  • ✓ Carrosséis de imagens com toque
  • ✓ Players de vídeo com múltiplas fontes
  • ✓ Testimonials com ciclo automático
  • ✓ Todos os recursos interativos