diff --git a/assets/css/custom.css b/assets/css/custom.css new file mode 100644 index 0000000..65eb75e --- /dev/null +++ b/assets/css/custom.css @@ -0,0 +1,113 @@ + +:root { + --primary-color: #5E5CE6; + --secondary-color: #00C4CC; + --background-color: #F2F2F7; + --surface-color: #FFFFFF; + --text-color: #1C1C1E; + --light-gray-color: #E5E5EA; + --border-radius: 12px; + --font-family: 'system-ui', -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; +} + +body { + background-color: var(--background-color); + font-family: var(--font-family); + color: var(--text-color); + margin: 0; + line-height: 1.6; +} + +.container { + max-width: 960px; + margin: 0 auto; + padding: 0 15px; +} + +.hero { + background: linear-gradient(135deg, var(--primary-color), #A450E4); + color: white; + padding: 100px 0; + text-align: center; + border-bottom-left-radius: var(--border-radius); + border-bottom-right-radius: var(--border-radius); +} + +.hero h1 { + font-size: 3.5rem; + font-weight: 700; + margin-bottom: 0.5rem; +} + +.hero p { + font-size: 1.25rem; + margin-bottom: 2rem; + opacity: 0.9; +} + +.cta-button { + background-color: var(--secondary-color); + color: var(--text-color); + font-size: 1.1rem; + font-weight: 600; + padding: 15px 35px; + border-radius: var(--border-radius); + text-decoration: none; + transition: transform 0.2s, box-shadow 0.2s; + display: inline-flex; + align-items: center; + gap: 10px; + border: none; + cursor: pointer; +} + +.cta-button:hover { + transform: translateY(-3px); + box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1); +} + +.upload-section { + padding: 60px 0; + text-align: center; +} + +#upload-card { + background-color: var(--surface-color); + padding: 40px; + border-radius: var(--border-radius); + box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05); + max-width: 600px; + margin: 0 auto; +} + +#file-input { + display: none; +} + +#processing-status { + text-align: left; +} + +.progress-bar-container { + background-color: var(--light-gray-color); + border-radius: 5px; + height: 10px; + margin: 15px 0; +} + +.progress-bar { + width: 0; + height: 100%; + background-color: var(--secondary-color); + border-radius: 5px; + transition: width 0.5s ease-in-out; +} + +#status-text { + font-weight: 500; + margin-bottom: 1rem; +} + +.hidden { + display: none; +} diff --git a/assets/js/main.js b/assets/js/main.js new file mode 100644 index 0000000..7dc4538 --- /dev/null +++ b/assets/js/main.js @@ -0,0 +1,46 @@ + +document.addEventListener('DOMContentLoaded', () => { + const uploadButton = document.getElementById('uploadButton'); + const fileInput = document.getElementById('fileInput'); + const uploadCard = document.getElementById('upload-card'); + const processingStatus = document.getElementById('processing-status'); + const progressBar = document.querySelector('.progress-bar'); + const statusText = document.getElementById('status-text'); + const fileNameText = document.getElementById('file-name'); + const nextStepButton = document.getElementById('nextStepButton'); + + uploadButton.addEventListener('click', () => { + fileInput.click(); + }); + + fileInput.addEventListener('change', () => { + if (fileInput.files.length > 0) { + const file = fileInput.files[0]; + fileNameText.textContent = `File: ${file.name}`; + + uploadCard.classList.add('hidden'); + processingStatus.classList.remove('hidden'); + + let progress = 0; + statusText.textContent = 'Uploading...'; + progressBar.style.width = '0%'; + nextStepButton.classList.add('hidden'); + + const interval = setInterval(() => { + progress += 10; + progressBar.style.width = `${progress}%`; + + if (progress >= 50 && progress < 100) { + statusText.textContent = 'AI is analyzing your video...'; + } + + if (progress >= 100) { + clearInterval(interval); + statusText.textContent = 'Highlights are ready!'; + progressBar.style.width = '100%'; + nextStepButton.classList.remove('hidden'); + } + }, 300); + } + }); +}); diff --git a/index.php b/index.php index 7205f3d..f56e26f 100644 --- a/index.php +++ b/index.php @@ -1,150 +1,49 @@ - - + - - - New Style - - - - - - - - - - - - - - - - - - - + + + Viral Video Clipper + + + -
-
-

Analyzing your requirements and generating your website…

-
- Loading… -
-

AI is collecting your requirements and applying the first changes.

-

This page will update automatically as the plan is implemented.

-

Runtime: PHP — UTC

+ +
+
+

Turn Your Long Videos into Viral Highlights

+

Our AI automatically finds the most engaging moments and turns them into shareable short clips.

+
-
- + +
+
+
+ + +
+ + +
+
+ + + - + \ No newline at end of file