🎯 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
🧩 Catálogo de Componentes
Astra Vitae Coleção de Componentes

Astra Vitae SmartNavButtons
Sistema inteligente de navegação de páginas
- • Detecção de Seções
- • Navegação por Teclado
- • Otimizado para Desktop/Tablet
Astra Vitae MediaBundle Suite
Gerenciamento unificado de mídia com carrossel + lightbox
- • CommonImage
- • CommonVideo
- • ImageCarousel
Astra Vitae ImageCarousel
Slideshow de imagens com suporte a toque e navegação
- • 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
- • Suporte YouTube
- • Google Drive
- • Arquivos Locais
- • Modo Lightbox
Astra Vitae CommonImage
Exibição aprimorada de imagens com lightbox interativo
- • Modos de Exibição
- • Sistema de Overlay
- • Lazy Loading
- • Design Responsivo
Astra Vitae TestimonialsCarousel
Showcase profissional de depoimentos de clientes
- • Estrelas de Avaliação
- • Ciclo Automático
- • Fotos de Perfil
- • Branding da Empresa
💎 Astra Vitae MediaBundle Suite - Sistema de Componentes Flagship

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
// 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 é 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
// 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 é 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
// 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 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
// 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

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
// 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
// Importar componentes individuais
import SmartNavButtons from './SmartNavButtons/index.esm.js';
import './SmartNavButtons/index.css';
// Usar em seu app React
<SmartNavButtons />
Uso MediaBundle (Recomendado)
// 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
// 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
// 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
// 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.
: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
