Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Timeline</title>
- <!-- Bootstrap CSS -->
- <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
- <style>
- body {
- background-color: #f8f9fa;
- padding: 40px 0;
- }
- .timeline-container {
- max-width: 800px;
- margin: 0 auto;
- position: relative;
- padding: 20px 0;
- }
- /* Vertical line connecting all milestones */
- .timeline-container::before {
- content: '';
- position: absolute;
- left: 50%;
- top: 0;
- bottom: 0;
- width: 4px;
- background: linear-gradient(to bottom, #007bff, #28a745);
- transform: translateX(-50%);
- }
- .timeline-item {
- position: relative;
- margin-bottom: 40px;
- display: flex;
- align-items: center;
- }
- /* Alternate left and right positioning */
- .timeline-item:nth-child(odd) {
- flex-direction: row;
- }
- .timeline-item:nth-child(even) {
- flex-direction: row-reverse;
- }
- .timeline-content {
- width: 45%;
- background: white;
- border: 2px solid #dee2e6;
- border-radius: 8px;
- padding: 20px;
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
- transition: transform 0.3s ease, box-shadow 0.3s ease;
- }
- .timeline-content:hover {
- transform: translateY(-5px);
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
- }
- .timeline-year {
- font-size: 1.5rem;
- font-weight: bold;
- color: #007bff;
- margin-bottom: 10px;
- }
- .timeline-year.now {
- color: #28a745;
- }
- .timeline-description {
- color: #495057;
- line-height: 1.6;
- }
- .timeline-description a {
- color: #007bff;
- text-decoration: none;
- font-weight: 500;
- }
- .timeline-description a:hover {
- text-decoration: underline;
- }
- .timeline-image {
- width: 100%;
- max-width: 100%;
- height: auto;
- border-radius: 6px;
- margin-top: 15px;
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
- }
- /* Dot on the timeline */
- .timeline-dot {
- position: absolute;
- left: 50%;
- width: 20px;
- height: 20px;
- background: #007bff;
- border: 4px solid white;
- border-radius: 50%;
- transform: translateX(-50%);
- z-index: 1;
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
- }
- .timeline-item:last-child .timeline-dot {
- background: #28a745;
- animation: dotPulse 2s ease-in-out infinite;
- box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.7);
- }
- @keyframes dotPulse {
- 0% {
- transform: translateX(-50%) scale(1);
- box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.7);
- }
- 50% {
- transform: translateX(-50%) scale(1.2);
- box-shadow: 0 0 0 10px rgba(40, 167, 69, 0);
- }
- 100% {
- transform: translateX(-50%) scale(1);
- box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.7);
- }
- }
- /* Current timeline (2025) - Glowing pulsing border */
- .timeline-item:last-child .timeline-content {
- border: 3px solid #28a745;
- background: linear-gradient(135deg, #ffffff 0%, #f0fff4 100%);
- animation: pulseGlow 2s ease-in-out infinite;
- }
- @keyframes pulseGlow {
- 0% {
- box-shadow: 0 0 10px rgba(40, 167, 69, 0.5),
- 0 0 20px rgba(40, 167, 69, 0.3),
- 0 0 30px rgba(40, 167, 69, 0.2);
- border-color: #28a745;
- }
- 50% {
- box-shadow: 0 0 20px rgba(40, 167, 69, 0.8),
- 0 0 30px rgba(40, 167, 69, 0.5),
- 0 0 40px rgba(40, 167, 69, 0.3);
- border-color: #20c997;
- }
- 100% {
- box-shadow: 0 0 10px rgba(40, 167, 69, 0.5),
- 0 0 20px rgba(40, 167, 69, 0.3),
- 0 0 30px rgba(40, 167, 69, 0.2);
- border-color: #28a745;
- }
- }
- .timeline-item:last-child .timeline-content:hover {
- transform: translateY(-5px);
- animation: pulseGlow 1.5s ease-in-out infinite;
- }
- /* Responsive design */
- @media (max-width: 768px) {
- .timeline-container::before {
- left: 30px;
- }
- .timeline-item {
- flex-direction: row !important;
- padding-left: 60px;
- }
- .timeline-content {
- width: 100%;
- }
- .timeline-dot {
- left: 30px;
- }
- }
- .page-header {
- text-align: center;
- margin-bottom: 50px;
- }
- .page-header h1 {
- color: #343a40;
- font-weight: 600;
- }
- </style>
- </style>
- </head>
- <body>
- <div class="container">
- <div class="page-header">
- <h1>Our Timeline</h1>
- </div>
- <div class="timeline-container">
- <!-- 1990 -->
- <div class="timeline-item">
- <div class="timeline-content">
- <div class="timeline-year">1990</div>
- <div class="timeline-description">
- We make something <a href="#" target="_blank">(learn more)</a>
- </div>
- </div>
- <div class="timeline-dot"></div>
- </div>
- <!-- 1995 -->
- <div class="timeline-item">
- <div class="timeline-content">
- <div class="timeline-year">1995</div>
- <div class="timeline-description">
- Something happens
- </div>
- </div>
- <div class="timeline-dot"></div>
- </div>
- <!-- 1997 -->
- <div class="timeline-item">
- <div class="timeline-content">
- <div class="timeline-year">1997</div>
- <div class="timeline-description">
- Something else
- </div>
- <img src="https://akcdn.detik.net.id/community/media/visual/2025/11/17/aneka-wajah-meme-terkenal-dan-aslinya-sekarang-1763339453838_169.png"
- alt="1997 Event" class="timeline-image">
- </div>
- <div class="timeline-dot"></div>
- </div>
- <!-- 2020 -->
- <div class="timeline-item">
- <div class="timeline-content">
- <div class="timeline-year">2020</div>
- <div class="timeline-description">
- Something bad happens
- </div>
- </div>
- <div class="timeline-dot"></div>
- </div>
- <!-- 2025 (now) -->
- <div class="timeline-item">
- <div class="timeline-content">
- <div class="timeline-year now">2025 (now)</div>
- <div class="timeline-description">
- We are here
- </div>
- </div>
- <div class="timeline-dot"></div>
- </div>
- </div>
- </div>
- <!-- Bootstrap JS (optional, for any interactive features) -->
- <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment