🎯 Overview

The Astra Vitae Component Collection features 6 carefully crafted React components, each built with performance, accessibility, and beautiful user experiences in mind. Perfect for developers who need production-ready components without the overhead of full template systems.

What Makes These Components Special

Performance First - Lazy loading and optimization
Accessibility Built-in - WCAG 2.1 AA compliant
TypeScript Support - Complete type definitions
React 16.8+ TypeScript Lazy Loading Mobile First

🧩 Component Catalog

BEST VALUE

Astra Vitae Component Collection

Astra Vitae Component Collection Preview
6
Premium Components
+ Future Updates
✨ SmartNavButtons 🖼️ MediaBundle Suite 📸 CommonImage 🎬 CommonVideo 🎠 ImageCarousel 💬 Testimonials
Smart Navigation

Astra Vitae SmartNavButtons

Smart intelligent page navigation system (separate package)

Features:
  • Section Detection
  • Keyboard Navigation
  • Desktop/Tablet Optimized
All-In-One

Astra Vitae MediaBundle Suite

Unified media management with carousel + lightbox

Features:
  • CommonImage
  • CommonVideo
  • ImageCarousel

Astra Vitae ImageCarousel

Touch-enabled image slideshow with navigation

Features:
  • Touch Gestures
  • Auto-Advance
  • Thumbnail Strip
  • Lightbox Integration

Astra Vitae CommonVideo

Multi-source video player with advanced controls

Features:
  • YouTube Support
  • Google Drive
  • Local Files
  • Lightbox Mode

Astra Vitae CommonImage

Enhanced image display with interactive lightbox

Features:
  • Display Modes
  • Overlay System
  • Lazy Loading
  • Responsive Design

Astra Vitae TestimonialsCarousel

Professional customer testimonial showcase (separate package)

Features:
  • Rating Stars
  • Auto-Cycle
  • Profile Photos
  • Company Branding

🌟 Astra Vitae SmartNavButtons - Smart Intelligent Navigation

📦 Note: SmartNavButtons is a separate package, available individually or in the Components Collection.

SmartNavButtons Component Preview
SMART NAV Intelligent Page Navigation System

SmartNavButtons is a revolutionary navigation component that transforms how users interact with your pages. It's a smart intelligent navigation system that automatically detects page sections, provides context-aware navigation, and includes advanced features like scroll lock mode for presentations.

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.

🎯

Smart Detection

Automatically identifies and navigates between page sections

🔒

Scroll Lock Mode

Control navigation completely for presentations

⌨️

Keyboard Support

Full arrow key navigation with accessibility

Key Features

Smart Section Detection

  • • Automatically detects current section based on scroll position
  • • Intelligent boundary detection for smooth transitions
  • • Dynamic section counting and navigation
  • • Works with any page structure

Three Navigation Modes

  • • Go Next: Smoothly navigate to next section
  • • Go to Top: Quick return to page start
  • • Go to Bottom: Jump to footer/end
  • • Context-aware button display

Advanced Capabilities

🎭

Auto-Hide Logic

Smart visibility based on user context

Pulse Animations

Visual feedback to guide interactions

🎠

Carousel Integration

Auto-hides during carousel use

📱

Mobile Optimized

Touch-friendly with proper sizing

Technical Specifications

Specification Details
React Version 16.8.0+ with hooks architecture
TypeScript Full type definitions included
Performance Intersection Observer API for optimal performance
Navigation Timing 400ms configurable smooth scroll
Bundle Size 12KB minified

Perfect For

🏠

Landing Pages

Guided navigation experience

📚

Documentation

Section-by-section navigation

🎯

Presentations

Controlled user flow

🎨

Portfolios

Smooth section transitions

Implementation Example

SmartNavButtons Setup
      
        // Installation
import SmartNavButtons from './SmartNavButtons/index.esm.js';
import './SmartNavButtons/index.css';

// Basic Usage
function App() {
  return (
    <div>
      {/* Your page content */}
      <SmartNavButtons />
    </div>
  );
}

// Advanced Configuration
<SmartNavButtons
  scrollLockMode={false}       // Enable/disable scroll lock
  autoHideDelay={3000}         // Auto-hide after 3 seconds
  animationDuration={400}      // Smooth scroll duration
  showPulseAnimation={true}    // Visual guidance
  keyboardNavigation={true}    // Arrow key support
  mobileOptimized={true}       // Touch-friendly sizing
/>

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

💎 Astra Vitae MediaBundle Suite - Flagship Component System

MediaBundle Suite Preview
⭐ FLAGSHIP SYSTEM 4 Components in 1 Unified System

MediaBundle is our most popular offering - a unified media management system that handles images, videos, and carousels with a single, cohesive lightbox experience. This flagship system saves you development time, reduces bundle size, and provides a consistent user experience across all media types.

🖼️

CommonImage

Advanced image display with modes

📹

CommonVideo

Multi-source video player

🎠

ImageCarousel

Touch-enabled slideshow

🔍

UnifiedLightbox

Universal media viewer

MediaBundle vs Individual Components

Feature MediaBundle Individual Components
Mixed Content Support ✅ Images + Videos together ❌ Separate usage only
CSS Files Required 1 unified stylesheet 2+ separate stylesheets
Specialized Lightboxes ✅ 3 optimized lightboxes Separate implementations
Lightbox Experience 3 Specialized Lightboxes (optimized per type) Separate lightbox implementations

Advanced Features

Media Handling

  • Multi-Source Video: YouTube, Google Drive, local files
  • Touch Gestures: Swipe, pinch, drag on mobile
  • Lazy Loading: Performance optimized loading
  • Responsive Design: Perfect on all screens

Technical Excellence

  • Single Import: One bundle for all components
  • Shared Code: Optimized bundle size
  • TypeScript: Full type definitions
  • Accessibility: ARIA labels and keyboard nav

Perfect Use Cases

🎨

Mixed Media Galleries

Images and videos in same lightbox

💼

Portfolio Showcases

Professional presentation systems

🛍️

Product Catalogs

Rich media product displays

📱

Content Management

Unified media handling approach

Implementation Pattern

MediaBundle Integration
      
        // Import complete MediaBundle
import { 
  CommonImage, 
  CommonVideo, 
  ImageCarousel
} from './MediaBundle/index.esm.js';
import './MediaBundle/index.css'; // Single CSS file!

// Each component has its specialized lightbox
function App() {
  return (
    <div>
      {/* Each component uses its specialized lightbox automatically */}
      <CommonImage 
        src="/images/hero.webp"
        displayMode="inline"
        enableLightbox={true}
        {/* Uses ImageLightbox specialized for static images */}
      />
      
      <CommonVideo 
        source="youtube"
        videoId="dQw4w9WgXcQ"
        enableLightbox={true}
        {/* Uses VideoLightbox specialized for video playback */}
      />
      
      <ImageCarousel 
        images={imageArray}
        enableLightbox={true}
        autoPlay={true}
      />
    </div>
  );
}

// Mixed Media Gallery Example
const MixedGallery = () => {
  const mediaItems = [
    { type: 'image', src: '/photo1.webp', title: 'Photo 1' },
    { type: 'video', source: 'youtube', id: 'abc123' },
    { type: 'image', src: '/photo2.webp', title: 'Photo 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 /> {/* Single lightbox for all! */}
    </div>
  );
};
      
    

🖼️ Astra Vitae CommonImage - Premium Image Component

CommonImage Component Preview

CommonImage is a versatile image component that goes beyond basic image display. With three distinct display modes, built-in lightbox integration, and advanced overlay capabilities, it's the perfect solution for any image presentation need.

Display Modes

📐

Inline Mode

Standard image display with rounded corners and hover effects

🖼️

Section Mode

Full-width hero sections with customizable height

🎨

Background Mode

Absolute positioned background images for layered designs

Advanced Features

Interactive Capabilities

  • • Lightbox Integration with smooth animations
  • • Title and text overlays with professional styling
  • • Hover effects and transitions
  • • Click-to-expand functionality

Technical Features

  • • Aspect ratio control for perfect proportions
  • • Object fit options (cover, contain, fill)
  • • Lazy loading ready with IntersectionObserver
  • • Responsive design with srcset support

Perfect For

🏔️

Hero Images

🎨

Gallery Items

📦

Product Displays

🖼️

Feature Showcases

Usage Examples

CommonImage Examples
      
        // CommonImage Usage Examples

// Inline Mode - Standard image display
<CommonImage
  src="/images/product.webp"
  alt="Product Image"
  displayMode="inline"
  enableLightbox={true}
  className="rounded-lg shadow-md"
/>

// Section Mode - Hero image with overlay
<CommonImage
  src="/images/hero-bg.webp"
  displayMode="section"
  height="h-96"
  overlay={{
    title: "Welcome to Our Site",
    text: "Discover amazing products",
    position: "center"
  }}
/>

// Background Mode - Layered design
<div className="relative h-screen">
  <CommonImage
    src="/images/background.webp"
    displayMode="background"
    objectFit="cover"
  />
  <div className="relative z-10">
    {/* Your content here */}
  </div>
</div>
      
    

📹 Astra Vitae CommonVideo - Multi-Source Video Player

CommonVideo Component Preview

CommonVideo is a powerful video component that seamlessly handles multiple video sources including YouTube, Google Drive, and local files. With smart fallbacks, autoplay management, and lightbox integration, it provides a professional video experience across all devices.

Video Sources

📺

YouTube

Embed with privacy mode

☁️

Google Drive

Direct integration

💾

Local Files

MP4, WebM, OGG

🔄

Smart Fallbacks

Automatic source switching

Advanced Controls

Playback Features

  • • Autoplay management with mute support
  • • Thumbnail overlays with play button
  • • Loop and playlist support
  • • Playback speed control

Layout Flexibility

  • • Inline player with responsive sizing
  • • Section background video mode
  • • Lightbox mode for fullscreen
  • • Custom aspect ratios

Performance Features

Lazy Loading

Load on viewport entry

🖼️

Poster Images

Preview before load

📊

Bandwidth Optimization

Adaptive quality

Implementation Examples

CommonVideo Examples
      
        // CommonVideo Multi-Source Examples

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

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

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

// Background Video Mode
<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 delivers a premium slideshow experience with touch gestures, keyboard navigation, and smooth transitions. Perfect for showcasing multiple images with professional presentation.

Navigation Features

👆

Touch Gestures

⬅️

Arrow Controls

Indicator Dots

🖼️

Thumbnails

⌨️

Keyboard Nav

Functionality

Core Features

  • • Auto-advance with configurable timing
  • • Lightbox integration for full view
  • • Lazy loading for performance
  • • Multiple transition effects

Customization Options

  • • Autoplay control with pause on hover
  • • Visual indicators customization
  • • Transition types and duration
  • • Image captions and metadata

Use Cases

🛍️

Product Galleries

📸

Portfolio Displays

📖

Image Stories

🔄

Before/After

Implementation Examples

ImageCarousel Examples
      
        // ImageCarousel Implementation

const images = [
  { src: '/img1.webp', alt: 'Image 1', caption: 'Beautiful sunset' },
  { src: '/img2.webp', alt: 'Image 2', caption: 'Mountain view' },
  { src: '/img3.webp', alt: 'Image 3', caption: 'Ocean waves' }
];

// Full-Featured Carousel
<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"
/>

// Minimal Carousel
<ImageCarousel
  images={images}
  showIndicators={true}
  swipeable={true}
/>

// Gallery Mode with Thumbnails
<ImageCarousel
  images={images}
  showThumbnails={true}
  thumbnailPosition="bottom"
  thumbnailWidth={80}
  enableLightbox={true}
/>
      
    

💬 Astra Vitae TestimonialsCarousel - Professional Customer Showcase

📦 Note: TestimonialsCarousel is a separate package, available individually or in the Components Collection.

Testimonials Component Preview

TestimonialsCarousel provides a polished way to display customer feedback with rating stars, profile photos, and company branding. Build trust and credibility with professionally presented social proof.

Display Features

Rating Stars

1-5 star ratings

👤

Profile Photos

Customer avatars

🏢

Company Info

Role and company

🎠

Auto-Cycle

Automatic rotation

Content Management

Display Options

  • • Structured data with schema markup
  • • Rich text support for testimonials
  • • Date attribution and timestamps
  • • Verified badge for authenticity

Advanced Features

  • • Autoplay with pause on hover
  • • Navigation dots and arrows
  • • Responsive card layouts
  • • Smooth transition effects

Implementation Examples

Testimonials Examples
      
        // Testimonials Implementation

const testimonials = [
  {
    id: 1,
    name: "Sarah Johnson",
    role: "CEO",
    company: "TechCorp",
    avatar: "/avatars/sarah.webp",
    rating: 5,
    text: "Outstanding component quality! The MediaBundle has transformed our product galleries.",
    verified: true,
    date: "2024-01-15"
  },
  {
    id: 2,
    name: "Mike Chen",
    role: "Lead Developer",
    company: "StartupXYZ",
    avatar: "/avatars/mike.webp",
    rating: 5,
    text: "SmartNavButtons is a game-changer. Our users love the intuitive navigation.",
    verified: true,
    date: "2024-01-20"
  }
];

// Full-Featured Testimonials
<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}
/>

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

🚀 Implementation

Quick Start

Individual Component Usage

Individual Import
      
        // Import individual components
import SmartNavButtons from './SmartNavButtons/index.esm.js';
import './SmartNavButtons/index.css';

// Use in your React app
<SmartNavButtons />
      
    

MediaBundle Usage (Recommended)

MediaBundle Import
      
        // Use complete MediaBundle for mixed content
import { 
  CommonImage, 
  CommonVideo, 
  ImageCarousel
} from './MediaBundle/index.esm.js';
import './MediaBundle/index.css';

// Each component has its specialized lightbox built-in
// ImageLightbox, VideoLightbox, CarouselLightbox included
      
    

Installation Methods

NPM Package

npm install @scl/components

Yarn Package

yarn add @scl/components

Manual Installation

Copy to src/components/

Complete Setup Guide

⭐ SmartNavButtons Implementation

SmartNavButtons Complete Setup
      
        // Step 1: Install and Import
import SmartNavButtons from '@scl/components/SmartNavButtons';
import '@scl/components/SmartNavButtons/styles.css';

// Step 2: Add to your layout
function Layout({ children }) {
  return (
    <div className="app-layout">
      {children}
      <SmartNavButtons 
        scrollLockMode={false}
        autoHideDelay={3000}
      />
    </div>
  );
}

// Step 3: Define your page sections
<main>
  <section id="hero" className="min-h-screen">
    {/* Hero content */}
  </section>
  <section id="features" className="min-h-screen">
    {/* Features content */}
  </section>
  <section id="pricing" className="min-h-screen">
    {/* Pricing content */}
  </section>
</main>

// SmartNavButtons will automatically detect and navigate between sections!
      
    

💎 💎 MediaBundle Integration Pattern

MediaBundle Complete Integration
      
        // Complete MediaBundle Setup

// Step 1: Import all components
import {
  CommonImage,
  CommonVideo,
  ImageCarousel,
  UnifiedLightbox,
  MediaBundleProvider
} from '@scl/components/MediaBundle';
import '@scl/components/MediaBundle/styles.css';

// Step 2: Wrap your app with MediaBundleProvider
function App() {
  return (
    <MediaBundleProvider>
      <Routes />
      <UnifiedLightbox /> {/* Single lightbox for all media */}
    </MediaBundleProvider>
  );
}

// Step 3: Use components anywhere
function Gallery() {
  const mediaItems = [
    { type: 'image', src: '/photo1.webp', title: 'Sunset' },
    { 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>
  );
}
      
    

TypeScript Configuration

TypeScript Setup
      
        // tsconfig.json
{
  "compilerOptions": {
    "types": ["@scl/components"]
  }
}

// Type Definitions
import type {
  SmartNavButtonsProps,
  CommonImageProps,
  CommonVideoProps,
  ImageCarouselProps,
  UnifiedLightboxProps,
  MediaItem,
  VideoSource,
  DisplayMode,
  TransitionType
} from '@scl/components';

// Strongly typed usage
const imageProps: CommonImageProps = {
  src: '/image.webp',
  alt: 'Description',
  displayMode: 'inline',
  enableLightbox: true,
  lazy: true,
  aspectRatio: '16:9'
};

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

🎨 Customization

Theme Variables

All components use CSS custom properties for easy theming. Simply override these variables in your global CSS to match your brand.

Theme Customization
      
        :root {
  /* Primary Colors */
  --media-primary-purple: #e6b3ff;
  --media-primary-gold: #d4af37;
  
  /* Effects */
  --media-glow-purple: 0 0 3px #e6b3ff;
  --media-glow-gold: 0 0 8px #d4af37;
  
  /* Animations */
  --media-duration-fast: 150ms;
  --media-duration-normal: 300ms;
}
      
    

Component Classes

  • • Container Classes for wrapper styling
  • • Element Classes for individual parts
  • • State Classes for interactions
  • • Responsive Classes for breakpoints

Advanced Options

  • • Custom animation timing
  • • Brand color integration
  • • Dark mode support
  • • RTL language support

⚡ Performance & Optimization

Built-in Performance Features

Loading Optimization

  • • Lazy loading for all media
  • • Code splitting support
  • • Tree shaking compatible
  • • Minimal runtime overhead

Runtime Performance

  • • Intersection Observer API
  • • RequestAnimationFrame
  • • Passive event listeners
  • • Debounced interactions

🔄 Bundle vs Individual Comparison

When to Choose Individual Components

  • You only need one specific component
  • Minimal bundle size is critical
  • No need for unified media handling
  • Budget constraints for single component

When to Choose Bundles

  • Need multiple components
  • Want unified media experience
  • Prefer single CSS file
  • Best value with 40% savings

🚀 Live Demos

Test Every Component Live

All components are fully functional in our Premium template demo. Test them thoroughly before purchasing.

  • ✓ SmartNavButtons navigation
  • ✓ MediaBundle with mixed content
  • ✓ Image carousels with touch
  • ✓ Video players with multiple sources
  • ✓ Testimonials with auto-cycle
  • ✓ All interactive features