Spaces:
Running
Running
Upload 5 files
Browse files- public/hold.mp3 +3 -0
- public/index.css +116 -34
- public/index.html +90 -14
- public/risenfall.mp3 +3 -0
- public/v1.mp4 +3 -0
public/hold.mp3
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:a824a9cf88b465a99563af784db9820f300f83ff33a910dbfc53ddfb57b46fa5
|
3 |
+
size 8558828
|
public/index.css
CHANGED
@@ -4,8 +4,8 @@ html {
|
|
4 |
|
5 |
body {
|
6 |
margin: 0;
|
7 |
-
|
8 |
-
|
9 |
}
|
10 |
|
11 |
/* GTA Text */
|
@@ -18,6 +18,32 @@ h2 {
|
|
18 |
text-shadow: 0 0 0.125em rgb(192 38 211 / 0.5), 0 0 0.45em currentColor;
|
19 |
}
|
20 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
21 |
div #logo_container::before {
|
22 |
z-index: 20;
|
23 |
content: "";
|
@@ -36,50 +62,27 @@ div #logo_container::before {
|
|
36 |
|
37 |
#videoElement {
|
38 |
opacity: 0;
|
|
|
39 |
transition: opacity 3s ease-in-out;
|
|
|
|
|
40 |
}
|
41 |
|
42 |
#videoElement.fade-in {
|
43 |
opacity: 1;
|
44 |
-
margin-top: 155px;
|
45 |
|
46 |
}
|
47 |
|
48 |
.fade-out {
|
49 |
opacity: 0.09;
|
50 |
-
transition: opacity
|
51 |
-
}
|
52 |
-
|
53 |
-
/* Example responsive styles */
|
54 |
-
@media (max-width: 768px) {
|
55 |
-
#playPauseBtn {
|
56 |
-
width: 40px;
|
57 |
-
height: 40px;
|
58 |
-
}
|
59 |
-
|
60 |
-
#playPauseBtn img {
|
61 |
-
width: 25px;
|
62 |
-
height: 25px;
|
63 |
-
}
|
64 |
-
}
|
65 |
-
|
66 |
-
@media (max-width: 480px) {
|
67 |
-
#playPauseBtn {
|
68 |
-
width: 30px;
|
69 |
-
height: 30px;
|
70 |
-
}
|
71 |
-
|
72 |
-
#playPauseBtn img {
|
73 |
-
width: 20px;
|
74 |
-
height: 20px;
|
75 |
-
}
|
76 |
}
|
77 |
|
78 |
/* Modern React Native Design Principles */
|
79 |
/* 1. Minimalistic Design */
|
80 |
|
81 |
#playPauseBtn {
|
82 |
-
background-color: #
|
83 |
opacity: 35;
|
84 |
border-radius: 50%;
|
85 |
width: 50px;
|
@@ -116,6 +119,7 @@ div #logo_container::before {
|
|
116 |
animation: ripple 0.4s linear;
|
117 |
}
|
118 |
|
|
|
119 |
@keyframes ripple {
|
120 |
0% {
|
121 |
transform: scale(0);
|
@@ -143,7 +147,85 @@ div #logo_container::before {
|
|
143 |
#playPauseBtn:not(:hover) {
|
144 |
animation: floatUpDown 5s ease-in-out infinite;
|
145 |
}
|
146 |
-
|
147 |
-
/*
|
148 |
-
|
149 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
|
5 |
body {
|
6 |
margin: 0;
|
7 |
+
padding: 0;
|
8 |
+
overflow-x: hidden; /* Enable scrolling on the y-axis */
|
9 |
}
|
10 |
|
11 |
/* GTA Text */
|
|
|
18 |
text-shadow: 0 0 0.125em rgb(192 38 211 / 0.5), 0 0 0.45em currentColor;
|
19 |
}
|
20 |
|
21 |
+
#backgroundVideo video {
|
22 |
+
position: absolute;
|
23 |
+
top: 0;
|
24 |
+
left: 0;
|
25 |
+
width: 100%;
|
26 |
+
height: 100vh; /* Adjust the height as needed */
|
27 |
+
object-fit: cover;
|
28 |
+
}
|
29 |
+
|
30 |
+
#backgroundVideo {
|
31 |
+
position: fixed;
|
32 |
+
top: 0;
|
33 |
+
left: 0;
|
34 |
+
width: 100%;
|
35 |
+
height: 100vh; /* Adjust the height as needed */
|
36 |
+
}
|
37 |
+
|
38 |
+
#placeholder {
|
39 |
+
position: relative;
|
40 |
+
left: 0;
|
41 |
+
width: 100%;
|
42 |
+
height: 75vh; /* Adjust the height as needed */
|
43 |
+
background-color: transparent; /* Set the background color to transparent */
|
44 |
+
z-index: 20; /* Place the background behind other elements */
|
45 |
+
}
|
46 |
+
|
47 |
div #logo_container::before {
|
48 |
z-index: 20;
|
49 |
content: "";
|
|
|
62 |
|
63 |
#videoElement {
|
64 |
opacity: 0;
|
65 |
+
width: 80%;
|
66 |
transition: opacity 3s ease-in-out;
|
67 |
+
margin-top: 155px;
|
68 |
+
|
69 |
}
|
70 |
|
71 |
#videoElement.fade-in {
|
72 |
opacity: 1;
|
|
|
73 |
|
74 |
}
|
75 |
|
76 |
.fade-out {
|
77 |
opacity: 0.09;
|
78 |
+
transition: opacity 16s ease-in-out;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
79 |
}
|
80 |
|
81 |
/* Modern React Native Design Principles */
|
82 |
/* 1. Minimalistic Design */
|
83 |
|
84 |
#playPauseBtn {
|
85 |
+
background-color: #ffea8c;
|
86 |
opacity: 35;
|
87 |
border-radius: 50%;
|
88 |
width: 50px;
|
|
|
119 |
animation: ripple 0.4s linear;
|
120 |
}
|
121 |
|
122 |
+
|
123 |
@keyframes ripple {
|
124 |
0% {
|
125 |
transform: scale(0);
|
|
|
147 |
#playPauseBtn:not(:hover) {
|
148 |
animation: floatUpDown 5s ease-in-out infinite;
|
149 |
}
|
150 |
+
|
151 |
+
/* Tooltip */
|
152 |
+
#playPauseBtn .tooltip-text {
|
153 |
+
visibility: hidden;
|
154 |
+
width: 120px;
|
155 |
+
background-color: #555;
|
156 |
+
color: #fff;
|
157 |
+
text-align: center;
|
158 |
+
border-radius: 6px;
|
159 |
+
padding: 5px 0;
|
160 |
+
position: absolute;
|
161 |
+
z-index: 1;
|
162 |
+
bottom: 125%;
|
163 |
+
left: 50%;
|
164 |
+
margin-left: -60px;
|
165 |
+
opacity: 0;
|
166 |
+
transition: opacity 0.3s;
|
167 |
+
}
|
168 |
+
|
169 |
+
#playPauseBtn:hover .tooltip-text {
|
170 |
+
visibility: visible;
|
171 |
+
opacity: 1;
|
172 |
+
}
|
173 |
+
|
174 |
+
#playPauseBtn .tooltip-text::after {
|
175 |
+
content: "";
|
176 |
+
position: absolute;
|
177 |
+
top: 100%;
|
178 |
+
left: 50%;
|
179 |
+
margin-left: -5px;
|
180 |
+
border-width: 5px;
|
181 |
+
border-style: solid;
|
182 |
+
border-color: #555 transparent transparent transparent transparent;
|
183 |
+
}
|
184 |
+
|
185 |
+
/* Style the scrollbar */
|
186 |
+
::-webkit-scrollbar {
|
187 |
+
width: 5px; /* Adjust the width as needed */
|
188 |
+
height: 12px; /* Adjust the height as needed */
|
189 |
+
}
|
190 |
+
|
191 |
+
::-webkit-scrollbar-track {
|
192 |
+
background: transparent; /* Set the background color of the scrollbar track */
|
193 |
+
border-radius: 10px; /* Adjust the border radius as needed */
|
194 |
+
}
|
195 |
+
|
196 |
+
::-webkit-scrollbar-thumb {
|
197 |
+
background: #888888; /* Set the background color of the scrollbar thumb */
|
198 |
+
border-radius: 12px; /* Adjust the border radius as needed */
|
199 |
+
}
|
200 |
+
|
201 |
+
/* Responsive styles */
|
202 |
+
@media (max-width: 768px) {
|
203 |
+
#playPauseBtn {
|
204 |
+
width: 40px;
|
205 |
+
height: 40px;
|
206 |
+
}
|
207 |
+
|
208 |
+
#playPauseBtn img {
|
209 |
+
width: 25px;
|
210 |
+
height: 25px;
|
211 |
+
}
|
212 |
+
}
|
213 |
+
|
214 |
+
@media (max-width: 480px) {
|
215 |
+
#playPauseBtn {
|
216 |
+
width: 30px;
|
217 |
+
height: 30px;
|
218 |
+
}
|
219 |
+
|
220 |
+
#playPauseBtn img {
|
221 |
+
width: 20px;
|
222 |
+
height: 20px;
|
223 |
+
}
|
224 |
+
}
|
225 |
+
|
226 |
+
@media only screen and (max-width: 768px) {
|
227 |
+
#backgroundVideo {
|
228 |
+
height: auto; /* Adjust the height as needed */
|
229 |
+
min-height: 100vh; /* Adjust the minimum height as needed */
|
230 |
+
}
|
231 |
+
}
|
public/index.html
CHANGED
@@ -11,7 +11,7 @@
|
|
11 |
href="https://fonts.googleapis.com/css2?family=Inter:wght@900&family=Satisfy&display=swap"
|
12 |
rel="stylesheet"
|
13 |
/>
|
14 |
-
<audio id="audioPlayer" src="
|
15 |
|
16 |
<script src="/mpegts.js"></script>
|
17 |
</head>
|
@@ -19,14 +19,10 @@
|
|
19 |
<div
|
20 |
class="h-screen w-screen grid place-content-center place-items-center overflow-hidden bg-gradient-to-b from-slate-900 to-black"
|
21 |
>
|
22 |
-
<div
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
background-image: url('https://media2.giphy.com/media/APExBZ9Aqqy4cDXNoS/giphy.gif?cid=82a1493bd7eswewmapwt3vu83f904rw67jl86246jk211bnz&ep=v1_videos_related&rid=giphy.gif&ct=v');
|
27 |
-
background-size: cover;
|
28 |
-
background-position: center;
|
29 |
-
"
|
30 |
>
|
31 |
<div class="flex place-content-center justify-between flex-row">
|
32 |
<h1 class="display-flex text-4xl font-black text-teal-300">VGФЙЧ</h1>
|
@@ -38,7 +34,7 @@
|
|
38 |
<div class="flex grid place-content-center justify-center w-full p-2">
|
39 |
<video
|
40 |
id="videoElement"
|
41 |
-
class="aspect-video mx-auto w-auto border-4 border-6 border-
|
42 |
preload="auto"
|
43 |
muted
|
44 |
autoplay
|
@@ -73,9 +69,9 @@
|
|
73 |
</div>
|
74 |
</div>
|
75 |
<div class="flex-col items-center justify-center pt-14">
|
76 |
-
<a class="flex grid place-content-end "">
|
77 |
-
<svg
|
78 |
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 16l4-4m0 0l-4-4m4 4H7m6 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h4a3
|
79 |
</svg>
|
80 |
</a>
|
81 |
<button
|
@@ -85,11 +81,91 @@
|
|
85 |
aria-label="Pause"
|
86 |
>
|
87 |
<img src="headphones.svg" alt="Pause Button" width="10" height="10" />
|
|
|
88 |
</button>
|
89 |
-
|
90 |
</div>
|
91 |
</div>
|
92 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
93 |
<script>
|
94 |
// Get the audio element and play/pause button
|
95 |
// Get the audio element and play/pause button
|
|
|
11 |
href="https://fonts.googleapis.com/css2?family=Inter:wght@900&family=Satisfy&display=swap"
|
12 |
rel="stylesheet"
|
13 |
/>
|
14 |
+
<audio id="audioPlayer" src="risenfall.mp3" autoplay></audio>
|
15 |
|
16 |
<script src="/mpegts.js"></script>
|
17 |
</head>
|
|
|
19 |
<div
|
20 |
class="h-screen w-screen grid place-content-center place-items-center overflow-hidden bg-gradient-to-b from-slate-900 to-black"
|
21 |
>
|
22 |
+
<div id="backgroundVideo" class="absolute inset-0 z-0" style="background-size: cover; background-position: center;">
|
23 |
+
<video autoplay muted loop class="w-full h-full object-cover">
|
24 |
+
<source src="v1.mp4" type="video/mp4">
|
25 |
+
</video>
|
|
|
|
|
|
|
|
|
26 |
>
|
27 |
<div class="flex place-content-center justify-between flex-row">
|
28 |
<h1 class="display-flex text-4xl font-black text-teal-300">VGФЙЧ</h1>
|
|
|
34 |
<div class="flex grid place-content-center justify-center w-full p-2">
|
35 |
<video
|
36 |
id="videoElement"
|
37 |
+
class="aspect-video mx-auto w-auto border-4 border-6 border-orange-900/20 rounded-full"
|
38 |
preload="auto"
|
39 |
muted
|
40 |
autoplay
|
|
|
69 |
</div>
|
70 |
</div>
|
71 |
<div class="flex-col items-center justify-center pt-14">
|
72 |
+
<a class="flex grid place-content-end mr-8" href="https://vgony.tech">
|
73 |
+
<svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="white">
|
74 |
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 16l4-4m0 0l-4-4m4 4H7m6 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h4a3 0 013 3v1"></path>
|
75 |
</svg>
|
76 |
</a>
|
77 |
<button
|
|
|
81 |
aria-label="Pause"
|
82 |
>
|
83 |
<img src="headphones.svg" alt="Pause Button" width="10" height="10" />
|
84 |
+
<a class="tooltip-text">1 New Message</a>
|
85 |
</button>
|
|
|
86 |
</div>
|
87 |
</div>
|
88 |
</div>
|
89 |
+
<div id="placeholder" class="relative inset-0 z-0"></div>
|
90 |
+
|
91 |
+
<script>
|
92 |
+
// Get the audio element and play/pause button
|
93 |
+
// Get the audio element and play/pause button
|
94 |
+
const audioPlayer = document.getElementById('audioPlayer');
|
95 |
+
const playPauseBtn = document.getElementById('playPauseBtn');
|
96 |
+
|
97 |
+
// Array of audio file paths
|
98 |
+
const audioFiles = [
|
99 |
+
'hold.mp3',
|
100 |
+
'hold.mp3',
|
101 |
+
'risenfall.mp3',
|
102 |
+
'hold.mp3',
|
103 |
+
'risenfall.mp3',
|
104 |
+
'hold.mp3',
|
105 |
+
'risenfall.mp3',
|
106 |
+
'hold.mp3',
|
107 |
+
'tst.mp3',
|
108 |
+
// Add more audio file paths here
|
109 |
+
];
|
110 |
+
|
111 |
+
// Shuffle the audio files array
|
112 |
+
function shuffleArray(array) {
|
113 |
+
for (let i = array.length - 1; i > 0; i--) {
|
114 |
+
const j = Math.floor(Math.random() * (i + 1));
|
115 |
+
[array[i], array[j]] = [array[j], array[i]];
|
116 |
+
}
|
117 |
+
return array;
|
118 |
+
}
|
119 |
+
|
120 |
+
// Play the next audio file in the shuffled array
|
121 |
+
function playNextAudio() {
|
122 |
+
const currentIndex = audioFiles.findIndex(file => file === audioPlayer.src);
|
123 |
+
const nextIndex = (currentIndex + 1) % audioFiles.length;
|
124 |
+
audioPlayer.src = audioFiles[nextIndex];
|
125 |
+
audioPlayer.play();
|
126 |
+
}
|
127 |
+
|
128 |
+
// Add a click event listener to the play/pause button
|
129 |
+
playPauseBtn.addEventListener('click', () => {
|
130 |
+
if (audioPlayer.paused) {
|
131 |
+
audioPlayer.play();
|
132 |
+
playPauseBtn.querySelector('img').src = 'pause.svg';
|
133 |
+
|
134 |
+
} else {
|
135 |
+
audioPlayer.pause();
|
136 |
+
playPauseBtn.querySelector('img').src = 'headphones.svg';
|
137 |
+
|
138 |
+
}
|
139 |
+
});
|
140 |
+
|
141 |
+
// Shuffle the audio files array on page load
|
142 |
+
shuffleArray(audioFiles);
|
143 |
+
audioPlayer.src = audioFiles[0];
|
144 |
+
audioPlayer.play();
|
145 |
+
|
146 |
+
// Automatically play the next audio file after the current one finishes
|
147 |
+
audioPlayer.addEventListener('ended', playNextAudio);
|
148 |
+
|
149 |
+
|
150 |
+
|
151 |
+
|
152 |
+
document.addEventListener("DOMContentLoaded", function () {
|
153 |
+
setTimeout(function () {
|
154 |
+
showVideo();
|
155 |
+
fadeBackgroundImage();
|
156 |
+
}, 6500); //
|
157 |
+
});
|
158 |
+
|
159 |
+
function showVideo() {
|
160 |
+
var videoElement = document.getElementById("videoElement");
|
161 |
+
videoElement.classList.add("fade-in");
|
162 |
+
}
|
163 |
+
|
164 |
+
function fadeBackgroundImage() {
|
165 |
+
var backgroundElement = document.getElementById("backgroundImage");
|
166 |
+
backgroundElement.classList.add("fade-out");
|
167 |
+
}
|
168 |
+
</script>
|
169 |
<script>
|
170 |
// Get the audio element and play/pause button
|
171 |
// Get the audio element and play/pause button
|
public/risenfall.mp3
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:a365082dee6e74df55d0dc8f05114081599db4538a8b0b014af69d57aab09ad6
|
3 |
+
size 8675756
|
public/v1.mp4
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:c1e077d774fc71ff9b1816b7ba255dc68f942912972b29d0d592a0129a9fb0b2
|
3 |
+
size 59345310
|