Company Timeline & Development History
An interactive timeline showcasing company milestones, achievements, and development history with smooth animations
Responsive Design
Yes
Dark Mode Support
No
lines
540
Browser Compatibility
No
Live Preview
Interact with the component without leaving the page.
Company Timeline & Development History
An elegant and interactive timeline component that showcases your company’s journey, major milestones, and achievements with smooth scroll animations and responsive design.
Features
- Interactive Timeline: Smooth scroll-triggered animations
- Responsive Design: Adapts to all screen sizes with mobile-first approach
- Milestone Cards: Rich content cards with images, dates, and descriptions
- Progress Indicator: Visual progress line that fills as user scrolls
- Hover Effects: Engaging micro-interactions
- Accessibility: Screen reader friendly with proper ARIA labels
- Customizable: Easy to modify content, colors, and layout
- Performance Optimized: Efficient animations using CSS transforms
HTML
<section class="company-timeline">
<div class="container">
<!-- Header -->
<div class="timeline-header">
<h2 class="timeline-title">Our Journey</h2>
<p class="timeline-subtitle">Discover the milestones that shaped our company's evolution</p>
</div>
<!-- Timeline Container -->
<div class="timeline-container">
<!-- Progress Line -->
<div class="timeline-progress">
<div class="progress-line" id="progressLine"></div>
</div>
<!-- Timeline Items -->
<div class="timeline-items">
<!-- Milestone 1 -->
<div class="timeline-item" data-year="2019">
<div class="timeline-marker">
<div class="marker-dot"></div>
<div class="marker-year">2019</div>
</div>
<div class="timeline-content">
<div class="content-card">
<div class="card-image">
<img src="https://images.unsplash.com/photo-1560472354-b33ff0c44a43?w=400&h=250&fit=crop" alt="Company Foundation" loading="lazy">
<div class="image-overlay">
<svg class="overlay-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4" />
</svg>
</div>
</div>
<div class="card-content">
<h3 class="card-title">Company Founded</h3>
<p class="card-description">
Started with a vision to revolutionize the tech industry. Our founders
established the company with just 3 employees in a small garage office.
</p>
<div class="card-stats">
<div class="stat">
<span class="stat-number">3</span>
<span class="stat-label">Employees</span>
</div>
<div class="stat">
<span class="stat-number">1</span>
<span class="stat-label">Office</span>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Milestone 2 -->
<div class="timeline-item" data-year="2020">
<div class="timeline-marker">
<div class="marker-dot"></div>
<div class="marker-year">2020</div>
</div>
<div class="timeline-content">
<div class="content-card">
<div class="card-image">
<img src="https://images.unsplash.com/photo-1551434678-e076c223a692?w=400&h=250&fit=crop" alt="First Product Launch" loading="lazy">
<div class="image-overlay">
<svg class="overlay-icon" 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 class="card-content">
<h3 class="card-title">First Product Launch</h3>
<p class="card-description">
Successfully launched our flagship product, gaining 10,000+ users
within the first month and establishing our presence in the market.
</p>
<div class="card-stats">
<div class="stat">
<span class="stat-number">10K+</span>
<span class="stat-label">Users</span>
</div>
<div class="stat">
<span class="stat-number">15</span>
<span class="stat-label">Team Size</span>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Milestone 3 -->
<div class="timeline-item" data-year="2021">
<div class="timeline-marker">
<div class="marker-dot"></div>
<div class="marker-year">2021</div>
</div>
<div class="timeline-content">
<div class="content-card">
<div class="card-image">
<img src="https://images.unsplash.com/photo-1559136555-9303baea8ebd?w=400&h=250&fit=crop" alt="Series A Funding" loading="lazy">
<div class="image-overlay">
<svg class="overlay-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8c1.11 0 2.08.402 2.599 1M12 8V7m0 1v8m0 0v1m0-1c-1.11 0-2.08-.402-2.599-1M21 12a9 9 0 11-18 0 9 9 0 0118 0z" />
</svg>
</div>
</div>
<div class="card-content">
<h3 class="card-title">Series A Funding</h3>
<p class="card-description">
Secured $5M in Series A funding, enabling rapid expansion and
the development of new innovative features for our platform.
</p>
<div class="card-stats">
<div class="stat">
<span class="stat-number">$5M</span>
<span class="stat-label">Funding</span>
</div>
<div class="stat">
<span class="stat-number">50K+</span>
<span class="stat-label">Users</span>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Milestone 4 -->
<div class="timeline-item" data-year="2022">
<div class="timeline-marker">
<div class="marker-dot"></div>
<div class="marker-year">2022</div>
</div>
<div class="timeline-content">
<div class="content-card">
<div class="card-image">
<img src="https://images.unsplash.com/photo-1521737711867-e3b97375f902?w=400&h=250&fit=crop" alt="Global Expansion" loading="lazy">
<div class="image-overlay">
<svg class="overlay-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3.055 11H5a2 2 0 012 2v1a2 2 0 002 2 2 2 0 012 2v2.945M8 3.935V5.5A2.5 2.5 0 0010.5 8h.5a2 2 0 012 2 2 2 0 104 0 2 2 0 012-2h1.064M15 20.488V18a2 2 0 012-2h3.064M21 12a9 9 0 11-18 0 9 9 0 0118 0z" />
</svg>
</div>
</div>
<div class="card-content">
<h3 class="card-title">Global Expansion</h3>
<p class="card-description">
Expanded operations to 15 countries, opened international offices,
and reached 200,000+ active users worldwide.
</p>
<div class="card-stats">
<div class="stat">
<span class="stat-number">15</span>
<span class="stat-label">Countries</span>
</div>
<div class="stat">
<span class="stat-number">200K+</span>
<span class="stat-label">Users</span>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Milestone 5 -->
<div class="timeline-item" data-year="2023">
<div class="timeline-marker">
<div class="marker-dot"></div>
<div class="marker-year">2023</div>
</div>
<div class="timeline-content">
<div class="content-card">
<div class="card-image">
<img src="https://images.unsplash.com/photo-1485827404703-89b55fcc595e?w=400&h=250&fit=crop" alt="AI Integration" loading="lazy">
<div class="image-overlay">
<svg class="overlay-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z" />
</svg>
</div>
</div>
<div class="card-content">
<h3 class="card-title">AI Integration</h3>
<p class="card-description">
Launched AI-powered features, revolutionizing user experience
and positioning ourselves as an industry leader in innovation.
</p>
<div class="card-stats">
<div class="stat">
<span class="stat-number">500K+</span>
<span class="stat-label">Users</span>
</div>
<div class="stat">
<span class="stat-number">100+</span>
<span class="stat-label">Team</span>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Milestone 6 -->
<div class="timeline-item" data-year="2024">
<div class="timeline-marker">
<div class="marker-dot"></div>
<div class="marker-year">2024</div>
</div>
<div class="timeline-content">
<div class="content-card">
<div class="card-image">
<img src="https://images.unsplash.com/photo-1552664730-d307ca884978?w=400&h=250&fit=crop" alt="Future Vision" loading="lazy">
<div class="image-overlay">
<svg class="overlay-icon" 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>
</div>
<div class="card-content">
<h3 class="card-title">Future Vision</h3>
<p class="card-description">
Continuing our mission to innovate and lead the industry,
with exciting new products and features on the horizon.
</p>
<div class="card-stats">
<div class="stat">
<span class="stat-number">1M+</span>
<span class="stat-label">Goal Users</span>
</div>
<div class="stat">
<span class="stat-number">∞</span>
<span class="stat-label">Possibilities</span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>CSS
.company-timeline {
padding: 80px 0;
background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
position: relative;
overflow: hidden;
}
.company-timeline::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 60 60"><defs><pattern id="dots" width="60" height="60" patternUnits="userSpaceOnUse"><circle cx="30" cy="30" r="1.5" fill="%23ffffff" opacity="0.3"/></pattern></defs><rect width="60" height="60" fill="url(%23dots)"/></svg>') repeat;
pointer-events: none;
}
.container {
max-width: 1200px;
margin: 0 auto;
padding: 0 20px;
position: relative;
z-index: 1;
}
/* Timeline Header */
.timeline-header {
text-align: center;
margin-bottom: 80px;
}
.timeline-title {
font-size: 3.5rem;
font-weight: 700;
color: #2d3748;
margin-bottom: 16px;
background: linear-gradient(45deg, #667eea, #764ba2);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.timeline-subtitle {
font-size: 1.25rem;
color: #4a5568;
max-width: 600px;
margin: 0 auto;
line-height: 1.6;
}
/* Timeline Container */
.timeline-container {
position: relative;
max-width: 800px;
margin: 0 auto;
}
/* Progress Line */
.timeline-progress {
position: absolute;
left: 50%;
top: 0;
bottom: 0;
width: 4px;
background: #e2e8f0;
transform: translateX(-50%);
border-radius: 2px;
overflow: hidden;
}
.progress-line {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 0%;
background: linear-gradient(180deg, #667eea 0%, #764ba2 100%);
border-radius: 2px;
transition: height 0.3s ease;
}
/* Timeline Items */
.timeline-items {
position: relative;
}
.timeline-item {
position: relative;
margin-bottom: 60px;
opacity: 0;
transform: translateY(50px);
transition: all 0.6s ease;
}
.timeline-item.animate {
opacity: 1;
transform: translateY(0);
}
.timeline-item:nth-child(even) .timeline-content {
margin-left: 50%;
padding-left: 40px;
}
.timeline-item:nth-child(odd) .timeline-content {
margin-right: 50%;
padding-right: 40px;
text-align: right;
}
/* Timeline Marker */
.timeline-marker {
position: absolute;
left: 50%;
top: 30px;
transform: translateX(-50%);
z-index: 10;
}
.marker-dot {
width: 20px;
height: 20px;
background: linear-gradient(45deg, #667eea, #764ba2);
border-radius: 50%;
border: 4px solid white;
box-shadow: 0 4px 12px rgba(102, 126, 234, 0.3);
transition: all 0.3s ease;
}
.timeline-item.animate .marker-dot {
transform: scale(1.2);
box-shadow: 0 6px 20px rgba(102, 126, 234, 0.4);
}
.marker-year {
position: absolute;
top: 35px;
left: 50%;
transform: translateX(-50%);
background: linear-gradient(45deg, #667eea, #764ba2);
color: white;
padding: 8px 16px;
border-radius: 20px;
font-size: 0.875rem;
font-weight: 600;
white-space: nowrap;
box-shadow: 0 4px 12px rgba(102, 126, 234, 0.2);
}
/* Content Card */
.content-card {
background: white;
border-radius: 16px;
overflow: hidden;
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
transition: all 0.3s ease;
border: 1px solid #e2e8f0;
}
.content-card:hover {
transform: translateY(-5px);
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15);
}
.card-image {
position: relative;
height: 200px;
overflow: hidden;
}
.card-image img {
width: 100%;
height: 100%;
object-fit: cover;
transition: transform 0.3s ease;
}
.content-card:hover .card-image img {
transform: scale(1.05);
}
.image-overlay {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: linear-gradient(45deg, rgba(102, 126, 234, 0.8), rgba(118, 75, 162, 0.8));
display: flex;
align-items: center;
justify-content: center;
opacity: 0;
transition: opacity 0.3s ease;
}
.content-card:hover .image-overlay {
opacity: 1;
}
.overlay-icon {
width: 48px;
height: 48px;
color: white;
stroke-width: 1.5;
}
.card-content {
padding: 30px;
}
.card-title {
font-size: 1.5rem;
font-weight: 600;
color: #2d3748;
margin-bottom: 12px;
}
.card-description {
font-size: 1rem;
color: #4a5568;
line-height: 1.6;
margin-bottom: 20px;
}
.card-stats {
display: flex;
gap: 30px;
}
.stat {
text-align: center;
}
.stat-number {
display: block;
font-size: 1.5rem;
font-weight: 700;
color: #667eea;
margin-bottom: 4px;
}
.stat-label {
font-size: 0.875rem;
color: #718096;
font-weight: 500;
}
/* Responsive Design */
@media (max-width: 768px) {
.company-timeline {
padding: 60px 0;
}
.timeline-title {
font-size: 2.5rem;
}
.timeline-progress {
left: 30px;
}
.timeline-marker {
left: 30px;
}
.timeline-item:nth-child(even) .timeline-content,
.timeline-item:nth-child(odd) .timeline-content {
margin-left: 70px;
margin-right: 0;
padding-left: 0;
padding-right: 0;
text-align: left;
}
.marker-year {
left: 80px;
transform: none;
}
.card-stats {
gap: 20px;
}
}
@media (max-width: 480px) {
.timeline-title {
font-size: 2rem;
}
.card-content {
padding: 20px;
}
.card-stats {
flex-direction: column;
gap: 15px;
}
}JavaScript
// Timeline Animation Controller
class TimelineController {
constructor() {
this.timelineItems = document.querySelectorAll('.timeline-item');
this.progressLine = document.getElementById('progressLine');
this.observerOptions = {
threshold: 0.3,
rootMargin: '0px 0px -100px 0px'
};
this.init();
}
init() {
this.setupIntersectionObserver();
this.setupScrollProgress();
this.addInteractiveEffects();
}
setupIntersectionObserver() {
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
entry.target.classList.add('animate');
this.updateProgress();
}
});
}, this.observerOptions);
this.timelineItems.forEach(item => {
observer.observe(item);
});
}
setupScrollProgress() {
window.addEventListener('scroll', () => {
this.updateProgress();
});
}
updateProgress() {
const timelineContainer = document.querySelector('.timeline-container');
const containerRect = timelineContainer.getBoundingClientRect();
const containerTop = containerRect.top + window.pageYOffset;
const containerHeight = containerRect.height;
const scrollTop = window.pageYOffset;
const windowHeight = window.innerHeight;
// Calculate progress based on scroll position
const scrollProgress = Math.max(0, Math.min(1,
(scrollTop + windowHeight - containerTop) / (containerHeight + windowHeight)
));
this.progressLine.style.height = `${scrollProgress * 100}%`;
}
addInteractiveEffects() {
this.timelineItems.forEach((item, index) => {
const card = item.querySelector('.content-card');
// Add hover sound effect (optional)
card.addEventListener('mouseenter', () => {
this.playHoverSound();
});
// Add click interaction
card.addEventListener('click', () => {
this.handleCardClick(item, index);
});
// Add keyboard navigation
card.setAttribute('tabindex', '0');
card.addEventListener('keydown', (e) => {
if (e.key === 'Enter' || e.key === ' ') {
e.preventDefault();
this.handleCardClick(item, index);
}
});
});
}
playHoverSound() {
// Optional: Add subtle hover sound
// const audio = new Audio('data:audio/wav;base64,UklGRnoGAABXQVZFZm10IBAAAAABAAEAQB8AAEAfAAABAAgAZGF0YQoGAACBhYqFbF1fdJivrJBhNjVgodDbq2EcBj+a2/LDciUFLIHO8tiJNwgZaLvt559NEAxQp+PwtmMcBjiR1/LMeSwFJHfH8N2QQAoUXrTp66hVFApGn+DyvmwhBSuBzvLZiTYIG2m98OScTgwOUarm7blmGgU7k9n1unEiBC13yO/eizEIHWq+8+OWT');
// audio.volume = 0.1;
// audio.play().catch(() => {});
}
handleCardClick(item, index) {
const year = item.getAttribute('data-year');
const title = item.querySelector('.card-title').textContent;
// Add ripple effect
this.createRippleEffect(item.querySelector('.content-card'));
// Optional: Show detailed modal or navigate to detailed page
console.log(`Clicked on milestone: ${title} (${year})`);
// Example: Show more details
this.showMilestoneDetails(item);
}
createRippleEffect(element) {
const ripple = document.createElement('div');
const rect = element.getBoundingClientRect();
const size = Math.max(rect.width, rect.height);
ripple.style.cssText = `
position: absolute;
border-radius: 50%;
background: rgba(102, 126, 234, 0.3);
transform: scale(0);
animation: ripple 0.6s linear;
pointer-events: none;
width: ${size}px;
height: ${size}px;
left: 50%;
top: 50%;
margin-left: ${-size/2}px;
margin-top: ${-size/2}px;
`;
element.style.position = 'relative';
element.appendChild(ripple);
setTimeout(() => {
ripple.remove();
}, 600);
}
showMilestoneDetails(item) {
const card = item.querySelector('.content-card');
const isExpanded = card.classList.contains('expanded');
// Toggle expanded state
if (isExpanded) {
card.classList.remove('expanded');
this.collapseCard(card);
} else {
// Collapse other cards first
document.querySelectorAll('.content-card.expanded').forEach(expandedCard => {
expandedCard.classList.remove('expanded');
this.collapseCard(expandedCard);
});
card.classList.add('expanded');
this.expandCard(card);
}
}
expandCard(card) {
// Add expanded content if it doesn't exist
if (!card.querySelector('.expanded-content')) {
const expandedContent = document.createElement('div');
expandedContent.className = 'expanded-content';
expandedContent.innerHTML = `
<div class="expanded-divider"></div>
<h4>Key Achievements:</h4>
<ul>
<li>Milestone achievement 1</li>
<li>Milestone achievement 2</li>
<li>Milestone achievement 3</li>
</ul>
<button class="learn-more-btn">Learn More</button>
`;
card.querySelector('.card-content').appendChild(expandedContent);
}
// Animate expansion
const expandedContent = card.querySelector('.expanded-content');
expandedContent.style.maxHeight = '0';
expandedContent.style.opacity = '0';
expandedContent.style.overflow = 'hidden';
expandedContent.style.transition = 'all 0.3s ease';
setTimeout(() => {
expandedContent.style.maxHeight = '200px';
expandedContent.style.opacity = '1';
}, 10);
}
collapseCard(card) {
const expandedContent = card.querySelector('.expanded-content');
if (expandedContent) {
expandedContent.style.maxHeight = '0';
expandedContent.style.opacity = '0';
setTimeout(() => {
expandedContent.remove();
}, 300);
}
}
}
// Smooth scroll for timeline navigation
function scrollToTimelineItem(year) {
const item = document.querySelector(`[data-year="${year}"]`);
if (item) {
item.scrollIntoView({
behavior: 'smooth',
block: 'center'
});
}
}
// Initialize timeline when DOM is loaded
document.addEventListener('DOMContentLoaded', () => {
new TimelineController();
// Add CSS for animations
const style = document.createElement('style');
style.textContent = `
@keyframes ripple {
to {
transform: scale(4);
opacity: 0;
}
}
.expanded-content {
padding-top: 20px;
}
.expanded-divider {
height: 1px;
background: linear-gradient(90deg, transparent, #e2e8f0, transparent);
margin-bottom: 15px;
}
.expanded-content h4 {
font-size: 1.1rem;
font-weight: 600;
color: #2d3748;
margin-bottom: 10px;
}
.expanded-content ul {
list-style: none;
padding: 0;
margin-bottom: 15px;
}
.expanded-content li {
padding: 5px 0;
color: #4a5568;
position: relative;
padding-left: 20px;
}
.expanded-content li::before {
content: '✓';
position: absolute;
left: 0;
color: #667eea;
font-weight: bold;
}
.learn-more-btn {
background: linear-gradient(45deg, #667eea, #764ba2);
color: white;
border: none;
padding: 8px 16px;
border-radius: 6px;
font-size: 0.875rem;
font-weight: 500;
cursor: pointer;
transition: all 0.2s ease;
}
.learn-more-btn:hover {
transform: translateY(-1px);
box-shadow: 0 4px 12px rgba(102, 126, 234, 0.3);
}
`;
document.head.appendChild(style);
});Customization Options
Content
- Timeline Items: Add or modify milestones in the HTML
- Images: Replace Unsplash URLs with your own images
- Statistics: Update the stats in each milestone card
- Years: Modify the
data-yearattributes
Styling
- Colors: Change the gradient colors throughout the CSS
- Layout: Adjust the timeline orientation (vertical/horizontal)
- Card Design: Modify the card styling and hover effects
- Animation Speed: Adjust transition durations
Functionality
- Scroll Speed: Modify the progress calculation in
updateProgress() - Animation Triggers: Adjust the
observerOptionsthreshold - Interactive Features: Add custom click handlers or modal displays
Browser Compatibility
- ✅ Chrome 60+
- ✅ Firefox 55+
- ✅ Safari 12+
- ✅ Edge 79+
- ⚠️ IE 11 (with polyfills for Intersection Observer)
Performance Notes
- Uses Intersection Observer for efficient scroll-based animations
- CSS transforms for smooth 60fps animations
- Lazy loading for images
- Optimized for mobile devices
- Minimal JavaScript footprint
HTML
242
lines
CSS
298
lines
<section class="company-timeline">
<div class="container">
<!-- Header -->
<div class="timeline-header">
<h2 class="timeline-title">Our Journey</h2>
<p class="timeline-subtitle">Discover the milestones that shaped our company's evolution</p>
</div>
<!-- Timeline Container -->
<div class="timeline-container">
<!-- Progress Line -->
<div class="timeline-progress">
<div class="progress-line" id="progressLine"></div>
</div>
<!-- Timeline Items -->
<div class="timeline-items">
<!-- Milestone 1 -->
<div class="timeline-item" data-year="2019">
<div class="timeline-marker">
<div class="marker-dot"></div>
<div class="marker-year">2019</div>
</div>
<div class="timeline-content">
<div class="content-card">
<div class="card-image">
<img src="https://images.unsplash.com/photo-1560472354-b33ff0c44a43?w=400&h=250&fit=crop" alt="Company Foundation" loading="lazy">
<div class="image-overlay">
<svg class="overlay-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4" />
</svg>
</div>
</div>
<div class="card-content">
<h3 class="card-title">Company Founded</h3>
<p class="card-description">
Started with a vision to revolutionize the tech industry. Our founders
established the company with just 3 employees in a small garage office.
</p>
<div class="card-stats">
<div class="stat">
<span class="stat-number">3</span>
<span class="stat-label">Employees</span>
</div>
<div class="stat">
<span class="stat-number">1</span>
<span class="stat-label">Office</span>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Milestone 2 -->
<div class="timeline-item" data-year="2020">
<div class="timeline-marker">
<div class="marker-dot"></div>
<div class="marker-year">2020</div>
</div>
<div class="timeline-content">
<div class="content-card">
<div class="card-image">
<img src="https://images.unsplash.com/photo-1551434678-e076c223a692?w=400&h=250&fit=crop" alt="First Product Launch" loading="lazy">
<div class="image-overlay">
<svg class="overlay-icon" 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 class="card-content">
<h3 class="card-title">First Product Launch</h3>
<p class="card-description">
Successfully launched our flagship product, gaining 10,000+ users
within the first month and establishing our presence in the market.
</p>
<div class="card-stats">
<div class="stat">
<span class="stat-number">10K+</span>
<span class="stat-label">Users</span>
</div>
<div class="stat">
<span class="stat-number">15</span>
<span class="stat-label">Team Size</span>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Milestone 3 -->
<div class="timeline-item" data-year="2021">
<div class="timeline-marker">
<div class="marker-dot"></div>
<div class="marker-year">2021</div>
</div>
<div class="timeline-content">
<div class="content-card">
<div class="card-image">
<img src="https://images.unsplash.com/photo-1559136555-9303baea8ebd?w=400&h=250&fit=crop" alt="Series A Funding" loading="lazy">
<div class="image-overlay">
<svg class="overlay-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8c1.11 0 2.08.402 2.599 1M12 8V7m0 1v8m0 0v1m0-1c-1.11 0-2.08-.402-2.599-1M21 12a9 9 0 11-18 0 9 9 0 0118 0z" />
</svg>
</div>
</div>
<div class="card-content">
<h3 class="card-title">Series A Funding</h3>
<p class="card-description">
Secured \$5M in Series A funding, enabling rapid expansion and
the development of new innovative features for our platform.
</p>
<div class="card-stats">
<div class="stat">
<span class="stat-number">\$5M</span>
<span class="stat-label">Funding</span>
</div>
<div class="stat">
<span class="stat-number">50K+</span>
<span class="stat-label">Users</span>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Milestone 4 -->
<div class="timeline-item" data-year="2022">
<div class="timeline-marker">
<div class="marker-dot"></div>
<div class="marker-year">2022</div>
</div>
<div class="timeline-content">
<div class="content-card">
<div class="card-image">
<img src="https://images.unsplash.com/photo-1521737711867-e3b97375f902?w=400&h=250&fit=crop" alt="Global Expansion" loading="lazy">
<div class="image-overlay">
<svg class="overlay-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3.055 11H5a2 2 0 012 2v1a2 2 0 002 2 2 2 0 012 2v2.945M8 3.935V5.5A2.5 2.5 0 0010.5 8h.5a2 2 0 012 2 2 2 0 104 0 2 2 0 012-2h1.064M15 20.488V18a2 2 0 012-2h3.064M21 12a9 9 0 11-18 0 9 9 0 0118 0z" />
</svg>
</div>
</div>
<div class="card-content">
<h3 class="card-title">Global Expansion</h3>
<p class="card-description">
Expanded operations to 15 countries, opened international offices,
and reached 200,000+ active users worldwide.
</p>
<div class="card-stats">
<div class="stat">
<span class="stat-number">15</span>
<span class="stat-label">Countries</span>
</div>
<div class="stat">
<span class="stat-number">200K+</span>
<span class="stat-label">Users</span>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Milestone 5 -->
<div class="timeline-item" data-year="2023">
<div class="timeline-marker">
<div class="marker-dot"></div>
<div class="marker-year">2023</div>
</div>
<div class="timeline-content">
<div class="content-card">
<div class="card-image">
<img src="https://images.unsplash.com/photo-1485827404703-89b55fcc595e?w=400&h=250&fit=crop" alt="AI Integration" loading="lazy">
<div class="image-overlay">
<svg class="overlay-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z" />
</svg>
</div>
</div>
<div class="card-content">
<h3 class="card-title">AI Integration</h3>
<p class="card-description">
Launched AI-powered features, revolutionizing user experience
and positioning ourselves as an industry leader in innovation.
</p>
<div class="card-stats">
<div class="stat">
<span class="stat-number">500K+</span>
<span class="stat-label">Users</span>
</div>
<div class="stat">
<span class="stat-number">100+</span>
<span class="stat-label">Team</span>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Milestone 6 -->
<div class="timeline-item" data-year="2024">
<div class="timeline-marker">
<div class="marker-dot"></div>
<div class="marker-year">2024</div>
</div>
<div class="timeline-content">
<div class="content-card">
<div class="card-image">
<img src="https://images.unsplash.com/photo-1552664730-d307ca884978?w=400&h=250&fit=crop" alt="Future Vision" loading="lazy">
<div class="image-overlay">
<svg class="overlay-icon" 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>
</div>
<div class="card-content">
<h3 class="card-title">Future Vision</h3>
<p class="card-description">
Continuing our mission to innovate and lead the industry,
with exciting new products and features on the horizon.
</p>
<div class="card-stats">
<div class="stat">
<span class="stat-number">1M+</span>
<span class="stat-label">Goal Users</span>
</div>
<div class="stat">
<span class="stat-number">∞</span>
<span class="stat-label">Possibilities</span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>