Setsunapux commited on
Commit
edf1d3e
·
verified ·
1 Parent(s): 291e0ca

tamabahkan lagiii - Follow Up Deployment

Browse files
Files changed (1) hide show
  1. index.html +259 -16
index.html CHANGED
@@ -22,6 +22,11 @@
22
  'pulse-slow': 'pulse 3s cubic-bezier(0.4, 0, 0.6, 1) infinite',
23
  'float': 'float 6s ease-in-out infinite',
24
  'wave': 'wave 1.5s ease-in-out infinite',
 
 
 
 
 
25
  },
26
  keyframes: {
27
  float: {
@@ -32,6 +37,22 @@
32
  '0%, 100%': { transform: 'rotate(0deg)' },
33
  '25%': { transform: 'rotate(5deg)' },
34
  '75%': { transform: 'rotate(-5deg)' },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
35
  }
36
  }
37
  }
@@ -39,12 +60,81 @@
39
  }
40
  </script>
41
  <style>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
42
  * {
43
  margin: 0;
44
  padding: 0;
45
  box-sizing: border-box;
46
  font-family: 'Poppins', sans-serif;
47
  }
 
 
 
 
 
 
 
 
 
48
 
49
  body {
50
  background: linear-gradient(135deg, #0f172a 0%, #1e293b 100%);
@@ -133,6 +223,24 @@
133
  }
134
  }
135
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
136
  .bounce-ball {
137
  animation: bounce 2s infinite;
138
  }
@@ -150,6 +258,7 @@
150
  <body>
151
  <!-- Header -->
152
  <header class="fixed w-full z-50">
 
153
  <nav class="container mx-auto px-6 py-4 flex justify-between items-center">
154
  <div class="text-2xl font-bold">
155
  <span class="gradient-text">Anim</span>Magic
@@ -168,10 +277,18 @@
168
  </header>
169
 
170
  <!-- Hero Section -->
171
- <section id="home" class="min-h-screen flex items-center hero-pattern">
 
 
 
 
 
 
 
172
  <div class="container mx-auto px-6 py-20 text-center">
173
  <h1 class="text-5xl md:text-7xl font-bold mb-6">
174
- <span class="gradient-text">Smooth Animations</span><br>for Modern Web
 
175
  </h1>
176
  <p class="text-xl max-w-3xl mx-auto mb-10 text-slate-300">
177
  Enhance user experience with beautiful animations that bring your website to life
@@ -210,7 +327,7 @@
210
 
211
  <div class="grid grid-cols-1 md:grid-cols-3 gap-8">
212
  <!-- Card 1 -->
213
- <div class="card p-8 transform transition-all duration-500 opacity-0 translate-y-10" data-scroll>
214
  <div class="text-5xl text-primary mb-6">
215
  <i class="fas fa-fade"></i>
216
  </div>
@@ -268,7 +385,8 @@
268
  </section>
269
 
270
  <!-- CSS Animations -->
271
- <section id="css" class="py-20">
 
272
  <div class="container mx-auto px-6">
273
  <h2 class="text-4xl font-bold text-center mb-4">CSS Animations</h2>
274
  <p class="text-center text-slate-300 max-w-2xl mx-auto mb-16">
@@ -350,7 +468,7 @@
350
 
351
  <div class="grid grid-cols-1 md:grid-cols-2 gap-12 items-center">
352
  <div>
353
- <svg viewBox="0 0 200 200" class="w-full max-w-md mx-auto">
354
  <circle cx="100" cy="100" r="80" fill="none" stroke="#6366f1" stroke-width="4" stroke-dasharray="1000" stroke-dashoffset="1000">
355
  <animate attributeName="stroke-dashoffset" from="1000" to="0" dur="2s" fill="freeze" repeatCount="indefinite" />
356
  </circle>
@@ -406,7 +524,8 @@
406
  <div class="card p-8">
407
  <h3 class="text-2xl font-semibold mb-6">Like Button</h3>
408
  <div class="flex justify-center">
409
- <button id="likeButton" class="w-16 h-16 rounded-full bg-slate-800 flex items-center justify-center group">
 
410
  <i class="fas fa-heart text-3xl text-slate-400 group-hover:text-red-500 transition-colors"></i>
411
  </button>
412
  </div>
@@ -450,6 +569,42 @@
450
  </div>
451
  </section>
452
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
453
  <!-- Canvas Animation -->
454
  <section class="py-20">
455
  <div class="container mx-auto px-6">
@@ -465,7 +620,9 @@
465
  </section>
466
 
467
  <!-- Footer -->
468
- <footer class="py-12 border-t border-slate-800">
 
 
469
  <div class="container mx-auto px-6 text-center">
470
  <div class="text-3xl font-bold mb-6">
471
  <span class="gradient-text">Anim</span>Magic
@@ -474,17 +631,17 @@
474
  Creating beautiful web experiences with smooth animations and interactions
475
  </p>
476
  <div class="flex justify-center space-x-6 mb-8">
477
- <a href="#" class="text-slate-400 hover:text-primary transition-colors">
478
- <i class="fab fa-twitter text-xl"></i>
479
  </a>
480
- <a href="#" class="text-slate-400 hover:text-primary transition-colors">
481
- <i class="fab fa-github text-xl"></i>
482
  </a>
483
- <a href="#" class="text-slate-400 hover:text-primary transition-colors">
484
- <i class="fab fa-linkedin text-xl"></i>
485
  </a>
486
- <a href="#" class="text-slate-400 hover:text-primary transition-colors">
487
- <i class="fab fa-codepen text-xl"></i>
488
  </a>
489
  </div>
490
  <p class="text-slate-500 text-sm">
@@ -494,8 +651,84 @@
494
  </footer>
495
 
496
  <script>
497
- // Scroll animations
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
498
  document.addEventListener('DOMContentLoaded', function() {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
499
  // Scroll animation for cards
500
  const scrollElements = document.querySelectorAll('[data-scroll]');
501
 
@@ -574,6 +807,16 @@
574
  }, 600);
575
  });
576
 
 
 
 
 
 
 
 
 
 
 
577
  // Canvas animation
578
  const canvas = document.getElementById('animationCanvas');
579
  const ctx = canvas.getContext('2d');
 
22
  'pulse-slow': 'pulse 3s cubic-bezier(0.4, 0, 0.6, 1) infinite',
23
  'float': 'float 6s ease-in-out infinite',
24
  'wave': 'wave 1.5s ease-in-out infinite',
25
+ 'shake': 'shake 0.5s ease-in-out infinite',
26
+ 'swing': 'swing 2s ease-in-out infinite',
27
+ 'flash': 'flash 2s ease-in-out infinite',
28
+ 'jump': 'jump 0.5s ease infinite',
29
+ 'fade-in': 'fadeIn 1s ease-in forwards',
30
  },
31
  keyframes: {
32
  float: {
 
37
  '0%, 100%': { transform: 'rotate(0deg)' },
38
  '25%': { transform: 'rotate(5deg)' },
39
  '75%': { transform: 'rotate(-5deg)' },
40
+ },
41
+ shake: {
42
+ '0%, 100%': { transform: 'translateX(0)' },
43
+ '10%, 30%, 50%, 70%, 90%': { transform: 'translateX(-5px)' },
44
+ '20%, 40%, 60%, 80%': { transform: 'translateX(5px)' },
45
+ },
46
+ swing: {
47
+ '0%': { transform: 'rotate(0deg)' },
48
+ '25%': { transform: 'rotate(10deg)' },
49
+ '50%': { transform: 'rotate(-10deg)' },
50
+ '75%': { transform: 'rotate(5deg)' },
51
+ '100%': { transform: 'rotate(0deg)' },
52
+ },
53
+ flash: {
54
+ '0%, 50%, 100%': { opacity: 1 },
55
+ '25%, 75%': { opacity: 0.3 },
56
  }
57
  }
58
  }
 
60
  }
61
  </script>
62
  <style>
63
+ html {
64
+ scroll-behavior: smooth;
65
+ }
66
+
67
+ /* Particles animation */
68
+ .particles {
69
+ position: absolute;
70
+ top: 0;
71
+ left: 0;
72
+ width: 100%;
73
+ height: 100%;
74
+ z-index: 0;
75
+ overflow: hidden;
76
+ }
77
+
78
+ .particle {
79
+ position: absolute;
80
+ background: rgba(255, 255, 255, 0.5);
81
+ border-radius: 50%;
82
+ pointer-events: none;
83
+ }
84
+
85
+ @keyframes float-up {
86
+ 0% {
87
+ transform: translateY(100vh) scale(0);
88
+ opacity: 0;
89
+ }
90
+ 10% {
91
+ opacity: 1;
92
+ }
93
+ 90% {
94
+ opacity: 1;
95
+ }
96
+ 100% {
97
+ transform: translateY(-10vh) scale(1);
98
+ opacity: 0;
99
+ }
100
+ }
101
+
102
+ /* Wave animation */
103
+ .wave {
104
+ position: absolute;
105
+ bottom: 0;
106
+ left: 0;
107
+ width: 100%;
108
+ height: 100px;
109
+ background: url('data:image/svg+xml;utf8,<svg viewBox="0 0 1200 120" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="none"><path d="M0,0V46.29c47.79,22.2,103.59,32.17,158,28,70.36-5.37,136.33-33.31,206.8-37.5C438.64,32.43,512.34,53.67,583,72.05c69.27,18,138.3,24.88,209.4,13.08,36.15-6,69.85-17.84,104.45-29.34C989.49,25,1113-14.29,1200,52.47V0Z" fill="%236366f1" opacity=".25"/><path d="M0,0V15.81C13,36.92,27.64,56.86,47.69,72.05,99.41,111.27,165,111,224.58,91.58c31.15-10.15,60.09-26.07,89.67-39.8,40.92-19,84.73-46,130.83-49.67,36.26-2.85,70.9,9.42,98.6,31.56,31.77,25.39,62.32,62,103.63,73,40.44,10.79,81.35-6.69,119.13-24.28s75.16-39,116.92-43.05c59.73-5.85,113.28,22.88,168.9,38.84,30.2,8.66,59,6.17,87.09-7.5,22.43-10.89,48-26.93,60.65-49.24V0Z" fill="%238b5cf6" opacity=".5"/><path d="M0,0V5.63C149.93,59,314.09,71.32,475.83,42.57c43-7.64,84.23-20.12,127.61-26.46,59-8.63,112.48,12.24,165.56,35.4C827.93,77.22,886,95.24,951.2,90c86.53-7,172.46-45.71,236.83-84.81V0Z" fill="%23e2e8f0"/></svg>');
110
+ background-size: cover;
111
+ background-repeat: no-repeat;
112
+ animation: wave 10s linear infinite;
113
+ }
114
+
115
+ @keyframes wave {
116
+ 0% {
117
+ background-position-x: 0;
118
+ }
119
+ 100% {
120
+ background-position-x: 1000px;
121
+ }
122
+ }
123
  * {
124
  margin: 0;
125
  padding: 0;
126
  box-sizing: border-box;
127
  font-family: 'Poppins', sans-serif;
128
  }
129
+ header {
130
+ transition: all 0.3s ease;
131
+ background: rgba(15, 23, 42, 0.8);
132
+ backdrop-filter: blur(10px);
133
+ }
134
+ header.scrolled {
135
+ padding: 0.5rem 0;
136
+ box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
137
+ }
138
 
139
  body {
140
  background: linear-gradient(135deg, #0f172a 0%, #1e293b 100%);
 
223
  }
224
  }
225
 
226
+ @keyframes jump {
227
+ 0%, 100% {
228
+ transform: translateY(0);
229
+ }
230
+ 50% {
231
+ transform: translateY(-20px);
232
+ }
233
+ }
234
+
235
+ @keyframes fadeIn {
236
+ from {
237
+ opacity: 0;
238
+ }
239
+ to {
240
+ opacity: 1;
241
+ }
242
+ }
243
+
244
  .bounce-ball {
245
  animation: bounce 2s infinite;
246
  }
 
258
  <body>
259
  <!-- Header -->
260
  <header class="fixed w-full z-50">
261
+ <div class="h-1 bg-gradient-to-r from-primary to-secondary fixed top-0 left-0 right-0 z-50 origin-left scale-x-0" id="progressBar"></div>
262
  <nav class="container mx-auto px-6 py-4 flex justify-between items-center">
263
  <div class="text-2xl font-bold">
264
  <span class="gradient-text">Anim</span>Magic
 
277
  </header>
278
 
279
  <!-- Hero Section -->
280
+ <section id="home" class="min-h-screen flex items-center hero-pattern relative overflow-hidden">
281
+ <!-- Particles background -->
282
+ <div class="particles" id="particles"></div>
283
+ <div class="absolute inset-0 z-0">
284
+ <div class="absolute top-20 left-20 w-64 h-64 bg-primary/10 rounded-full filter blur-3xl animate-float"></div>
285
+ <div class="absolute bottom-20 right-20 w-64 h-64 bg-secondary/10 rounded-full filter blur-3xl animate-float delay-2000"></div>
286
+ <div class="absolute top-1/2 left-1/4 w-32 h-32 bg-primary/20 rounded-full filter blur-xl animate-pulse-slow"></div>
287
+ </div>
288
  <div class="container mx-auto px-6 py-20 text-center">
289
  <h1 class="text-5xl md:text-7xl font-bold mb-6">
290
+ <span class="gradient-text typing" id="typing-text"></span><br>
291
+ <span class="typing-cursor">|</span>
292
  </h1>
293
  <p class="text-xl max-w-3xl mx-auto mb-10 text-slate-300">
294
  Enhance user experience with beautiful animations that bring your website to life
 
327
 
328
  <div class="grid grid-cols-1 md:grid-cols-3 gap-8">
329
  <!-- Card 1 -->
330
+ <div class="card p-8 transform transition-all duration-500 opacity-0 translate-y-10" data-scroll data-delay="100">
331
  <div class="text-5xl text-primary mb-6">
332
  <i class="fas fa-fade"></i>
333
  </div>
 
385
  </section>
386
 
387
  <!-- CSS Animations -->
388
+ <section id="css" class="py-20 relative">
389
+ <div class="absolute -bottom-20 left-0 right-0 h-20 bg-gradient-to-t from-slate-900 to-transparent z-10"></div>
390
  <div class="container mx-auto px-6">
391
  <h2 class="text-4xl font-bold text-center mb-4">CSS Animations</h2>
392
  <p class="text-center text-slate-300 max-w-2xl mx-auto mb-16">
 
468
 
469
  <div class="grid grid-cols-1 md:grid-cols-2 gap-12 items-center">
470
  <div>
471
+ <svg viewBox="0 0 200 200" class="w-full max-w-md mx-auto hover:scale-105 transition-transform duration-300 cursor-pointer">
472
  <circle cx="100" cy="100" r="80" fill="none" stroke="#6366f1" stroke-width="4" stroke-dasharray="1000" stroke-dashoffset="1000">
473
  <animate attributeName="stroke-dashoffset" from="1000" to="0" dur="2s" fill="freeze" repeatCount="indefinite" />
474
  </circle>
 
524
  <div class="card p-8">
525
  <h3 class="text-2xl font-semibold mb-6">Like Button</h3>
526
  <div class="flex justify-center">
527
+ <button id="likeButton" class="w-16 h-16 rounded-full bg-slate-800 flex items-center justify-center group relative overflow-hidden">
528
+ <div class="absolute inset-0 bg-red-500 opacity-0 scale-0 group-hover:opacity-10 group-hover:scale-100 transition-all duration-300 rounded-full"></div>
529
  <i class="fas fa-heart text-3xl text-slate-400 group-hover:text-red-500 transition-colors"></i>
530
  </button>
531
  </div>
 
569
  </div>
570
  </section>
571
 
572
+ <!-- Advanced Animations -->
573
+ <section class="py-20 bg-gradient-to-b from-slate-900 to-slate-800">
574
+ <div class="container mx-auto px-6">
575
+ <h2 class="text-4xl font-bold text-center mb-4">Advanced Animations</h2>
576
+ <p class="text-center text-slate-300 max-w-2xl mx-auto mb-16">
577
+ More complex animation effects for special moments
578
+ </p>
579
+
580
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-8">
581
+ <div class="card p-8 text-center group">
582
+ <div class="w-24 h-24 mx-auto mb-6 bg-primary rounded-full flex items-center justify-center animate-shake group-hover:animate-swing">
583
+ <i class="fas fa-bell text-3xl text-white"></i>
584
+ </div>
585
+ <h3 class="text-xl font-semibold mb-3">Shake & Swing</h3>
586
+ <p class="text-slate-300">Perfect for notification alerts</p>
587
+ </div>
588
+
589
+ <div class="card p-8 text-center group">
590
+ <div class="w-24 h-24 mx-auto mb-6 bg-secondary rounded-full flex items-center justify-center animate-flash group-hover:animate-jump">
591
+ <i class="fas fa-bolt text-3xl text-white"></i>
592
+ </div>
593
+ <h3 class="text-xl font-semibold mb-3">Flash & Jump</h3>
594
+ <p class="text-slate-300">Great for important actions</p>
595
+ </div>
596
+
597
+ <div class="card p-8 text-center group">
598
+ <div class="w-24 h-24 mx-auto mb-6 bg-gradient-to-br from-primary to-secondary rounded-full flex items-center justify-center animate-float group-hover:animate-spin-slow">
599
+ <i class="fas fa-cog text-3xl text-white"></i>
600
+ </div>
601
+ <h3 class="text-xl font-semibold mb-3">Float & Spin</h3>
602
+ <p class="text-slate-300">Ideal for loading indicators</p>
603
+ </div>
604
+ </div>
605
+ </div>
606
+ </section>
607
+
608
  <!-- Canvas Animation -->
609
  <section class="py-20">
610
  <div class="container mx-auto px-6">
 
620
  </section>
621
 
622
  <!-- Footer -->
623
+ <footer class="py-12 border-t border-slate-800 bg-gradient-to-b from-slate-900/50 to-slate-900 relative overflow-hidden">
624
+ <div class="wave"></div>
625
+ <div class="absolute top-0 left-0 right-0 h-px bg-gradient-to-r from-transparent via-primary/50 to-transparent"></div>
626
  <div class="container mx-auto px-6 text-center">
627
  <div class="text-3xl font-bold mb-6">
628
  <span class="gradient-text">Anim</span>Magic
 
631
  Creating beautiful web experiences with smooth animations and interactions
632
  </p>
633
  <div class="flex justify-center space-x-6 mb-8">
634
+ <a href="#" class="text-slate-400 hover:text-primary transition-colors group">
635
+ <i class="fab fa-twitter text-xl group-hover:animate-bounce-slow"></i>
636
  </a>
637
+ <a href="#" class="text-slate-400 hover:text-primary transition-colors group">
638
+ <i class="fab fa-github text-xl group-hover:animate-float"></i>
639
  </a>
640
+ <a href="#" class="text-slate-400 hover:text-primary transition-colors group">
641
+ <i class="fab fa-linkedin text-xl group-hover:animate-pulse-slow"></i>
642
  </a>
643
+ <a href="#" class="text-slate-400 hover:text-primary transition-colors group">
644
+ <i class="fab fa-codepen text-xl group-hover:animate-spin-slow"></i>
645
  </a>
646
  </div>
647
  <p class="text-slate-500 text-sm">
 
651
  </footer>
652
 
653
  <script>
654
+ // Enhanced animations
655
+ // Typing animation
656
+ const typingText = document.getElementById('typing-text');
657
+ const texts = ["Smooth Animations", "Interactive Elements", "Engaging UX", "Modern Web"];
658
+ let textIndex = 0;
659
+ let charIndex = 0;
660
+ let isDeleting = false;
661
+
662
+ function type() {
663
+ const currentText = texts[textIndex];
664
+
665
+ if (isDeleting) {
666
+ typingText.textContent = currentText.substring(0, charIndex - 1);
667
+ charIndex--;
668
+ } else {
669
+ typingText.textContent = currentText.substring(0, charIndex + 1);
670
+ charIndex++;
671
+ }
672
+
673
+ if (!isDeleting && charIndex === currentText.length) {
674
+ setTimeout(() => isDeleting = true, 1000);
675
+ } else if (isDeleting && charIndex === 0) {
676
+ isDeleting = false;
677
+ textIndex = (textIndex + 1) % texts.length;
678
+ }
679
+
680
+ setTimeout(type, isDeleting ? 50 : 100);
681
+ }
682
+
683
+ // Start typing animation
684
+ setTimeout(type, 1000);
685
+
686
+ // Particles animation
687
+ function createParticles() {
688
+ const particlesContainer = document.getElementById('particles');
689
+ const particleCount = Math.floor(window.innerWidth / 10);
690
+
691
+ for (let i = 0; i < particleCount; i++) {
692
+ const particle = document.createElement('div');
693
+ particle.classList.add('particle');
694
+
695
+ const size = Math.random() * 5 + 1;
696
+ const posX = Math.random() * window.innerWidth;
697
+ const delay = Math.random() * 10;
698
+ const duration = Math.random() * 20 + 10;
699
+
700
+ particle.style.width = `${size}px`;
701
+ particle.style.height = `${size}px`;
702
+ particle.style.left = `${posX}px`;
703
+ particle.style.animation = `float-up ${duration}s linear ${delay}s infinite`;
704
+ particle.style.opacity = Math.random() * 0.5 + 0.1;
705
+
706
+ particlesContainer.appendChild(particle);
707
+ }
708
+ }
709
+
710
+ createParticles();
711
  document.addEventListener('DOMContentLoaded', function() {
712
+ // Header scroll effect
713
+ const header = document.querySelector('header');
714
+ window.addEventListener('scroll', () => {
715
+ if (window.scrollY > 50) {
716
+ header.classList.add('scrolled');
717
+ } else {
718
+ header.classList.remove('scrolled');
719
+ }
720
+ });
721
+
722
+ // Initialize GSAP for smoother animations
723
+ const gsap = window.gsap;
724
+ if (gsap) {
725
+ gsap.from(".hero-content", {
726
+ duration: 1.5,
727
+ y: 50,
728
+ opacity: 0,
729
+ ease: "power3.out"
730
+ });
731
+ }
732
  // Scroll animation for cards
733
  const scrollElements = document.querySelectorAll('[data-scroll]');
734
 
 
807
  }, 600);
808
  });
809
 
810
+ // Scroll progress bar
811
+ const progressBar = document.getElementById('progressBar');
812
+ window.addEventListener('scroll', () => {
813
+ const scrollTop = document.documentElement.scrollTop;
814
+ const scrollHeight = document.documentElement.scrollHeight;
815
+ const clientHeight = document.documentElement.clientHeight;
816
+ const scrollPercent = (scrollTop / (scrollHeight - clientHeight)) * 100;
817
+ progressBar.style.transform = `scaleX(${scrollPercent / 100})`;
818
+ });
819
+
820
  // Canvas animation
821
  const canvas = document.getElementById('animationCanvas');
822
  const ctx = canvas.getContext('2d');