site prototype
This commit is contained in:
commit
8569ed720a
20
.gitignore
vendored
Normal file
20
.gitignore
vendored
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
# Dependencies
|
||||||
|
node_modules/
|
||||||
|
npm-debug.log*
|
||||||
|
yarn-debug.log*
|
||||||
|
yarn-error.log*
|
||||||
|
|
||||||
|
# Environment variables
|
||||||
|
.env
|
||||||
|
.env.local
|
||||||
|
.env.development.local
|
||||||
|
.env.test.local
|
||||||
|
.env.production.local
|
||||||
|
|
||||||
|
# Editor directories and files
|
||||||
|
.idea/
|
||||||
|
.vscode/
|
||||||
|
*.swp
|
||||||
|
*.swo
|
||||||
|
.DS_Store
|
||||||
|
Thumbs.db
|
65
README.md
Normal file
65
README.md
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
# Presentation Website
|
||||||
|
|
||||||
|
A modern, responsive presentation website template with smooth animations and mobile-friendly design.
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- Responsive design
|
||||||
|
- Mobile-friendly navigation
|
||||||
|
- Smooth scrolling
|
||||||
|
- Animated service cards
|
||||||
|
- Contact form
|
||||||
|
- Modern UI components
|
||||||
|
|
||||||
|
## Prerequisites
|
||||||
|
|
||||||
|
- Node.js (Download and install from [nodejs.org](https://nodejs.org/))
|
||||||
|
|
||||||
|
## Getting Started
|
||||||
|
|
||||||
|
1. Clone this repository:
|
||||||
|
```bash
|
||||||
|
git clone <repository-url>
|
||||||
|
cd hantalanding
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Install dependencies:
|
||||||
|
```bash
|
||||||
|
npm install
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Start the development server:
|
||||||
|
```bash
|
||||||
|
npm start
|
||||||
|
```
|
||||||
|
|
||||||
|
The website will be available at `http://localhost:3000`
|
||||||
|
|
||||||
|
## Project Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
src/
|
||||||
|
├── assets/ # Images and other static files
|
||||||
|
├── css/ # Stylesheets
|
||||||
|
├── js/ # JavaScript files
|
||||||
|
└── index.html # Main HTML file
|
||||||
|
```
|
||||||
|
|
||||||
|
## Customization
|
||||||
|
|
||||||
|
1. Replace the logo text in `index.html`
|
||||||
|
2. Update the hero section content
|
||||||
|
3. Modify the About section with your content
|
||||||
|
4. Customize service cards
|
||||||
|
5. Configure the contact form
|
||||||
|
|
||||||
|
## Development
|
||||||
|
|
||||||
|
The project uses live-server for development, which provides:
|
||||||
|
- Auto-reload on file changes
|
||||||
|
- Static file serving
|
||||||
|
- Cross-browser compatibility
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
This project is licensed under the ISC License.
|
2399
package-lock.json
generated
Normal file
2399
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
16
package.json
Normal file
16
package.json
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"name": "hantalanding",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "Modern presentation website",
|
||||||
|
"main": "index.js",
|
||||||
|
"scripts": {
|
||||||
|
"start": "live-server src --port=3000",
|
||||||
|
"test": "echo \"Error: no test specified\" && exit 1"
|
||||||
|
},
|
||||||
|
"keywords": ["landing", "presentation", "website"],
|
||||||
|
"author": "",
|
||||||
|
"license": "ISC",
|
||||||
|
"devDependencies": {
|
||||||
|
"live-server": "^1.2.2"
|
||||||
|
}
|
||||||
|
}
|
15
src/assets/globe-icon.svg
Normal file
15
src/assets/globe-icon.svg
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg width="200" height="200" viewBox="0 0 200 200" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<defs>
|
||||||
|
<linearGradient id="gradient" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||||
|
<stop offset="0%" style="stop-color:#4F46E5"/>
|
||||||
|
<stop offset="100%" style="stop-color:#818CF8"/>
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
<circle cx="100" cy="100" r="95" stroke="url(#gradient)" stroke-width="3" opacity="0.8"/>
|
||||||
|
<ellipse cx="100" cy="100" rx="95" ry="30" stroke="url(#gradient)" stroke-width="3" opacity="0.6"/>
|
||||||
|
<line x1="5" y1="100" x2="195" y2="100" stroke="url(#gradient)" stroke-width="3" opacity="0.4"/>
|
||||||
|
<line x1="100" y1="5" x2="100" y2="195" stroke="url(#gradient)" stroke-width="3" opacity="0.4"/>
|
||||||
|
<path d="M100 5C120 35 130 65 130 100C130 135 120 165 100 195" stroke="url(#gradient)" stroke-width="3" opacity="0.6"/>
|
||||||
|
<path d="M100 5C80 35 70 65 70 100C70 135 80 165 100 195" stroke="url(#gradient)" stroke-width="3" opacity="0.6"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.0 KiB |
35
src/assets/student-success.svg
Normal file
35
src/assets/student-success.svg
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg width="600" height="400" viewBox="0 0 600 400" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<defs>
|
||||||
|
<linearGradient id="grad1" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||||
|
<stop offset="0%" style="stop-color:#4F46E5;stop-opacity:0.2"/>
|
||||||
|
<stop offset="100%" style="stop-color:#818CF8;stop-opacity:0.2"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="grad2" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||||
|
<stop offset="0%" style="stop-color:#FB7185;stop-opacity:0.2"/>
|
||||||
|
<stop offset="100%" style="stop-color:#FFB1C1;stop-opacity:0.2"/>
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
|
||||||
|
<!-- Background Shapes -->
|
||||||
|
<circle cx="300" cy="200" r="150" fill="url(#grad1)"/>
|
||||||
|
<circle cx="400" cy="300" r="100" fill="url(#grad2)"/>
|
||||||
|
|
||||||
|
<!-- Graduation Cap -->
|
||||||
|
<path d="M250 150L350 150L300 100L250 150Z" fill="#4F46E5"/>
|
||||||
|
<rect x="290" y="150" width="20" height="60" fill="#4F46E5"/>
|
||||||
|
<path d="M270 160L330 160L300 180L270 160Z" fill="#818CF8"/>
|
||||||
|
|
||||||
|
<!-- Books -->
|
||||||
|
<rect x="200" y="250" width="200" height="20" fill="#FB7185" rx="5"/>
|
||||||
|
<rect x="220" y="230" width="160" height="20" fill="#4F46E5" rx="5"/>
|
||||||
|
<rect x="240" y="210" width="120" height="20" fill="#818CF8" rx="5"/>
|
||||||
|
|
||||||
|
<!-- Stars -->
|
||||||
|
<path d="M150 100L160 120L180 110L160 100L150 80L140 100L120 110L140 120L150 100Z" fill="#FB7185"/>
|
||||||
|
<path d="M450 150L460 170L480 160L460 150L450 130L440 150L420 160L440 170L450 150Z" fill="#818CF8"/>
|
||||||
|
<path d="M400 50L410 70L430 60L410 50L400 30L390 50L370 60L390 70L400 50Z" fill="#4F46E5"/>
|
||||||
|
|
||||||
|
<!-- Text -->
|
||||||
|
<text x="300" y="350" font-family="Arial, sans-serif" font-size="24" fill="#4F46E5" text-anchor="middle">Success in Education</text>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.7 KiB |
5
src/assets/universities/cambridge.svg
Normal file
5
src/assets/universities/cambridge.svg
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg width="200" height="80" viewBox="0 0 200 80" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<text x="50%" y="50%" font-family="Georgia, serif" font-size="24" fill="#4F46E5" text-anchor="middle" dominant-baseline="middle">CAMBRIDGE</text>
|
||||||
|
<text x="50%" y="70%" font-family="Georgia, serif" font-size="16" fill="#6B7280" text-anchor="middle" dominant-baseline="middle">UNIVERSITY</text>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 445 B |
5
src/assets/universities/harvard.svg
Normal file
5
src/assets/universities/harvard.svg
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg width="200" height="80" viewBox="0 0 200 80" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<text x="50%" y="50%" font-family="Georgia, serif" font-size="24" fill="#4F46E5" text-anchor="middle" dominant-baseline="middle">HARVARD</text>
|
||||||
|
<text x="50%" y="70%" font-family="Georgia, serif" font-size="16" fill="#6B7280" text-anchor="middle" dominant-baseline="middle">UNIVERSITY</text>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 443 B |
5
src/assets/universities/mit.svg
Normal file
5
src/assets/universities/mit.svg
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg width="200" height="80" viewBox="0 0 200 80" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<text x="50%" y="50%" font-family="Georgia, serif" font-size="24" fill="#4F46E5" text-anchor="middle" dominant-baseline="middle">MIT</text>
|
||||||
|
<text x="50%" y="70%" font-family="Georgia, serif" font-size="16" fill="#6B7280" text-anchor="middle" dominant-baseline="middle">Massachusetts Institute of Technology</text>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 466 B |
5
src/assets/universities/oxford.svg
Normal file
5
src/assets/universities/oxford.svg
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg width="200" height="80" viewBox="0 0 200 80" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<text x="50%" y="50%" font-family="Georgia, serif" font-size="24" fill="#4F46E5" text-anchor="middle" dominant-baseline="middle">OXFORD</text>
|
||||||
|
<text x="50%" y="70%" font-family="Georgia, serif" font-size="16" fill="#6B7280" text-anchor="middle" dominant-baseline="middle">UNIVERSITY</text>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 442 B |
766
src/css/style.css
Normal file
766
src/css/style.css
Normal file
@ -0,0 +1,766 @@
|
|||||||
|
:root {
|
||||||
|
--primary-color: #4F46E5;
|
||||||
|
--primary-dark: #3730A3;
|
||||||
|
--primary-light: #818CF8;
|
||||||
|
--secondary-color: #F4F5FF;
|
||||||
|
--accent-color: #FB7185;
|
||||||
|
--success-color: #10B981;
|
||||||
|
--text-color: #1F2937;
|
||||||
|
--text-light: #6B7280;
|
||||||
|
--white: #ffffff;
|
||||||
|
--gradient-1: linear-gradient(135deg, #4F46E5 0%, #818CF8 100%);
|
||||||
|
--gradient-2: linear-gradient(135deg, #FB7185 0%, #FFB1C1 100%);
|
||||||
|
--gradient-success: linear-gradient(135deg, #10B981 0%, #34D399 100%);
|
||||||
|
--transition: all 0.3s ease;
|
||||||
|
--shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
|
||||||
|
--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Base Animations */
|
||||||
|
@keyframes slideUp {
|
||||||
|
from {
|
||||||
|
opacity: 0;
|
||||||
|
transform: translateY(30px);
|
||||||
|
}
|
||||||
|
to {
|
||||||
|
opacity: 1;
|
||||||
|
transform: translateY(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes fadeIn {
|
||||||
|
from { opacity: 0; }
|
||||||
|
to { opacity: 1; }
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes pulse {
|
||||||
|
0% { transform: scale(1); }
|
||||||
|
50% { transform: scale(1.05); }
|
||||||
|
100% { transform: scale(1); }
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes float {
|
||||||
|
0%, 100% { transform: translateY(0); }
|
||||||
|
50% { transform: translateY(-10px); }
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes shimmer {
|
||||||
|
0% { background-position: -1000px 0; }
|
||||||
|
100% { background-position: 1000px 0; }
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Animation Classes */
|
||||||
|
.animate-slide-up {
|
||||||
|
opacity: 0;
|
||||||
|
transform: translateY(30px);
|
||||||
|
animation: slideUp 0.6s ease forwards;
|
||||||
|
}
|
||||||
|
|
||||||
|
.animate-fade-in {
|
||||||
|
opacity: 0;
|
||||||
|
animation: fadeIn 0.6s ease forwards;
|
||||||
|
}
|
||||||
|
|
||||||
|
.animate-pulse {
|
||||||
|
animation: pulse 2s infinite;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-delay] {
|
||||||
|
animation-delay: var(--delay);
|
||||||
|
}
|
||||||
|
|
||||||
|
* {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
html {
|
||||||
|
scroll-behavior: smooth;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
font-family: 'Inter', sans-serif;
|
||||||
|
line-height: 1.6;
|
||||||
|
color: var(--text-color);
|
||||||
|
background-color: var(--white);
|
||||||
|
}
|
||||||
|
|
||||||
|
.container {
|
||||||
|
max-width: 1200px;
|
||||||
|
margin: 0 auto;
|
||||||
|
padding: 0 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Header Styles */
|
||||||
|
.header {
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
background: rgba(255, 255, 255, 0.95);
|
||||||
|
backdrop-filter: blur(10px);
|
||||||
|
-webkit-backdrop-filter: blur(10px);
|
||||||
|
box-shadow: var(--shadow);
|
||||||
|
z-index: 1000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-container {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
padding: 1rem 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.logo {
|
||||||
|
font-size: 1.5rem;
|
||||||
|
font-weight: 700;
|
||||||
|
color: var(--text-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.logo span {
|
||||||
|
color: var(--primary-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-links {
|
||||||
|
display: flex;
|
||||||
|
list-style: none;
|
||||||
|
gap: 2rem;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-links a {
|
||||||
|
text-decoration: none;
|
||||||
|
color: var(--text-color);
|
||||||
|
font-weight: 500;
|
||||||
|
transition: var(--transition);
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-links a:hover {
|
||||||
|
color: var(--primary-color);
|
||||||
|
background: var(--secondary-color);
|
||||||
|
padding: 0.5rem 1rem;
|
||||||
|
border-radius: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.lang-switch {
|
||||||
|
display: flex;
|
||||||
|
gap: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.lang-switch a {
|
||||||
|
padding: 0.2rem 0.5rem;
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.lang-switch a.active {
|
||||||
|
background: var(--gradient-1);
|
||||||
|
color: var(--white);
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact-icons {
|
||||||
|
display: flex;
|
||||||
|
gap: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact-icons a {
|
||||||
|
color: var(--primary-color);
|
||||||
|
font-size: 1.5rem;
|
||||||
|
transition: var(--transition);
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact-icons a:hover {
|
||||||
|
transform: scale(1.1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-toggle {
|
||||||
|
display: none;
|
||||||
|
cursor: pointer;
|
||||||
|
font-size: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Hero Section */
|
||||||
|
.hero-section {
|
||||||
|
padding: 120px 0 60px;
|
||||||
|
background: var(--gradient-1);
|
||||||
|
position: relative;
|
||||||
|
overflow: hidden;
|
||||||
|
color: var(--white);
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-title {
|
||||||
|
font-size: 4rem;
|
||||||
|
line-height: 1.2;
|
||||||
|
margin-bottom: 2rem;
|
||||||
|
font-weight: 700;
|
||||||
|
background: var(--white);
|
||||||
|
-webkit-background-clip: text;
|
||||||
|
background-clip: text;
|
||||||
|
color: transparent;
|
||||||
|
text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.hero-description {
|
||||||
|
color: var(--secondary-color);
|
||||||
|
font-size: 1.2rem;
|
||||||
|
margin-bottom: 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hero-buttons {
|
||||||
|
display: flex;
|
||||||
|
gap: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn {
|
||||||
|
display: inline-block;
|
||||||
|
padding: 1rem 2rem;
|
||||||
|
border-radius: 50px;
|
||||||
|
text-decoration: none;
|
||||||
|
font-weight: 500;
|
||||||
|
transition: var(--transition);
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-primary {
|
||||||
|
background: var(--accent-color);
|
||||||
|
color: var(--white);
|
||||||
|
box-shadow: var(--shadow);
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-secondary {
|
||||||
|
background: transparent;
|
||||||
|
border: 2px solid var(--white);
|
||||||
|
color: var(--white);
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn:hover {
|
||||||
|
transform: translateY(-3px);
|
||||||
|
box-shadow: var(--shadow-lg);
|
||||||
|
}
|
||||||
|
|
||||||
|
.hero-image {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.floating {
|
||||||
|
animation: float 6s ease-in-out infinite;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* About Section */
|
||||||
|
.about-section {
|
||||||
|
padding: 80px 0;
|
||||||
|
background: var(--white);
|
||||||
|
}
|
||||||
|
|
||||||
|
.section-title {
|
||||||
|
font-size: 2.5rem;
|
||||||
|
margin-bottom: 2rem;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.highlight-text {
|
||||||
|
font-size: 1.5rem;
|
||||||
|
color: var(--primary-color);
|
||||||
|
margin-bottom: 1.5rem;
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.about-content {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: 1fr 1fr;
|
||||||
|
gap: 4rem;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Exams Section */
|
||||||
|
.exams-section {
|
||||||
|
padding: 80px 0;
|
||||||
|
background: var(--secondary-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.exam-grid {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
|
||||||
|
gap: 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.exam-card {
|
||||||
|
background: var(--white);
|
||||||
|
padding: 2rem;
|
||||||
|
border-radius: 15px;
|
||||||
|
box-shadow: var(--shadow);
|
||||||
|
transition: var(--transition);
|
||||||
|
border: 1px solid rgba(79, 70, 229, 0.1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.exam-card:hover {
|
||||||
|
transform: translateY(-5px);
|
||||||
|
box-shadow: var(--shadow-lg);
|
||||||
|
border-color: var(--primary-light);
|
||||||
|
}
|
||||||
|
|
||||||
|
.exam-card h3 {
|
||||||
|
color: var(--primary-color);
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.exam-card ul {
|
||||||
|
list-style-position: inside;
|
||||||
|
margin-top: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Advantages Section */
|
||||||
|
.advantages-section {
|
||||||
|
padding: 80px 0;
|
||||||
|
background: var(--white);
|
||||||
|
}
|
||||||
|
|
||||||
|
.advantages-grid {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
|
||||||
|
gap: 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.advantage-card {
|
||||||
|
text-align: center;
|
||||||
|
padding: 2rem;
|
||||||
|
border-radius: 15px;
|
||||||
|
background: var(--white);
|
||||||
|
box-shadow: var(--shadow);
|
||||||
|
transition: var(--transition);
|
||||||
|
}
|
||||||
|
|
||||||
|
.advantage-card:hover {
|
||||||
|
transform: translateY(-5px);
|
||||||
|
box-shadow: var(--shadow-lg);
|
||||||
|
}
|
||||||
|
|
||||||
|
.advantage-card i {
|
||||||
|
font-size: 3rem;
|
||||||
|
background: var(--gradient-1);
|
||||||
|
-webkit-background-clip: text;
|
||||||
|
background-clip: text;
|
||||||
|
color: transparent;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Universities Section */
|
||||||
|
.universities-section {
|
||||||
|
padding: 80px 0;
|
||||||
|
background: var(--secondary-color);
|
||||||
|
position: relative;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.universities-section::before {
|
||||||
|
content: '';
|
||||||
|
position: absolute;
|
||||||
|
top: -50%;
|
||||||
|
left: -50%;
|
||||||
|
width: 200%;
|
||||||
|
height: 200%;
|
||||||
|
background: var(--gradient-1);
|
||||||
|
opacity: 0.05;
|
||||||
|
transform: rotate(-45deg);
|
||||||
|
z-index: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.section-subtitle {
|
||||||
|
text-align: center;
|
||||||
|
color: var(--text-light);
|
||||||
|
margin-bottom: 3rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.university-logos {
|
||||||
|
position: relative;
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.university-logos img {
|
||||||
|
max-width: 180px;
|
||||||
|
height: auto;
|
||||||
|
transition: var(--transition);
|
||||||
|
filter: grayscale(1) opacity(0.7);
|
||||||
|
}
|
||||||
|
|
||||||
|
.university-logos img:hover {
|
||||||
|
filter: grayscale(0) opacity(1);
|
||||||
|
transform: scale(1.05);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Contact Section */
|
||||||
|
.contact-section {
|
||||||
|
padding: 80px 0;
|
||||||
|
background: var(--gradient-1);
|
||||||
|
color: var(--white);
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact-content {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: 1fr 1fr;
|
||||||
|
gap: 4rem;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact-text {
|
||||||
|
font-size: 1.5rem;
|
||||||
|
margin-bottom: 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact-buttons {
|
||||||
|
display: grid;
|
||||||
|
gap: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-outline {
|
||||||
|
background: transparent;
|
||||||
|
border: 2px solid var(--white);
|
||||||
|
color: var(--white);
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact-form {
|
||||||
|
display: grid;
|
||||||
|
gap: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact-form input,
|
||||||
|
.contact-form button {
|
||||||
|
background: rgba(255, 255, 255, 0.1);
|
||||||
|
border: 1px solid rgba(255, 255, 255, 0.2);
|
||||||
|
color: var(--white);
|
||||||
|
backdrop-filter: blur(10px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact-form input::placeholder {
|
||||||
|
color: rgba(255, 255, 255, 0.8);
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact-form button:hover {
|
||||||
|
background: var(--accent-color);
|
||||||
|
border-color: var(--accent-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.stats-container {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(3, 1fr);
|
||||||
|
gap: 2rem;
|
||||||
|
margin: 2rem 0;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.stat-item {
|
||||||
|
padding: 1rem;
|
||||||
|
background: rgba(255, 255, 255, 0.1);
|
||||||
|
border-radius: 10px;
|
||||||
|
backdrop-filter: blur(10px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.stat-number {
|
||||||
|
font-size: 2.5rem;
|
||||||
|
font-weight: 700;
|
||||||
|
color: var(--white);
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.methodology-grid {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
|
||||||
|
gap: 2rem;
|
||||||
|
margin-top: 3rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.method-card {
|
||||||
|
background: var(--white);
|
||||||
|
padding: 2rem;
|
||||||
|
border-radius: 15px;
|
||||||
|
box-shadow: var(--shadow);
|
||||||
|
transition: var(--transition);
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.method-card:hover {
|
||||||
|
transform: translateY(-5px);
|
||||||
|
box-shadow: var(--shadow-lg);
|
||||||
|
}
|
||||||
|
|
||||||
|
.method-icon {
|
||||||
|
width: 80px;
|
||||||
|
height: 80px;
|
||||||
|
margin: 0 auto 1.5rem;
|
||||||
|
background: var(--gradient-1);
|
||||||
|
border-radius: 50%;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.method-icon i {
|
||||||
|
font-size: 2rem;
|
||||||
|
color: var(--white);
|
||||||
|
}
|
||||||
|
|
||||||
|
.exam-features {
|
||||||
|
list-style: none;
|
||||||
|
margin: 1.5rem 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.exam-features li {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 0.8rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.exam-features i {
|
||||||
|
color: var(--success-color);
|
||||||
|
margin-right: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.score-range {
|
||||||
|
background: var(--gradient-success);
|
||||||
|
color: var(--white);
|
||||||
|
padding: 0.5rem 1rem;
|
||||||
|
border-radius: 25px;
|
||||||
|
font-weight: 500;
|
||||||
|
margin-top: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.success-grid {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
|
||||||
|
gap: 2rem;
|
||||||
|
margin-top: 3rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.success-card {
|
||||||
|
background: var(--white);
|
||||||
|
border-radius: 15px;
|
||||||
|
padding: 2rem;
|
||||||
|
box-shadow: var(--shadow);
|
||||||
|
}
|
||||||
|
|
||||||
|
.score-improvement {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
gap: 1rem;
|
||||||
|
margin-bottom: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.old-score {
|
||||||
|
color: var(--text-light);
|
||||||
|
text-decoration: line-through;
|
||||||
|
}
|
||||||
|
|
||||||
|
.new-score {
|
||||||
|
color: var(--success-color);
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
.testimonial {
|
||||||
|
font-style: italic;
|
||||||
|
margin-bottom: 1.5rem;
|
||||||
|
color: var(--text-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.student-info {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.student-name {
|
||||||
|
font-weight: 600;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.admission {
|
||||||
|
color: var(--primary-color);
|
||||||
|
font-size: 0.9rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.benefits-list {
|
||||||
|
list-style: none;
|
||||||
|
margin: 2rem 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.benefits-list li {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
color: var(--white);
|
||||||
|
}
|
||||||
|
|
||||||
|
.benefits-list i {
|
||||||
|
margin-right: 1rem;
|
||||||
|
color: var(--accent-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.animate-input {
|
||||||
|
transform-origin: left;
|
||||||
|
transition: transform 0.3s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.animate-input:focus {
|
||||||
|
transform: scale(1.02);
|
||||||
|
}
|
||||||
|
|
||||||
|
.animate-button {
|
||||||
|
position: relative;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.animate-button::after {
|
||||||
|
content: '';
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 200%;
|
||||||
|
height: 100%;
|
||||||
|
background: linear-gradient(
|
||||||
|
to right,
|
||||||
|
rgba(255,255,255,0) 0%,
|
||||||
|
rgba(255,255,255,0.3) 50%,
|
||||||
|
rgba(255,255,255,0) 100%
|
||||||
|
);
|
||||||
|
transform: translateX(-100%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.animate-button:hover::after {
|
||||||
|
transform: translateX(100%);
|
||||||
|
transition: transform 0.6s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Footer */
|
||||||
|
.footer {
|
||||||
|
background: var(--text-color);
|
||||||
|
color: var(--white);
|
||||||
|
padding: 4rem 0 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-content {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: 1fr 2fr;
|
||||||
|
gap: 4rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-links {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(3, 1fr);
|
||||||
|
gap: 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.link-group h4 {
|
||||||
|
color: var(--primary-light);
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.link-group a {
|
||||||
|
color: var(--text-light);
|
||||||
|
text-decoration: none;
|
||||||
|
display: block;
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
|
transition: var(--transition);
|
||||||
|
}
|
||||||
|
|
||||||
|
.link-group a:hover {
|
||||||
|
color: var(--white);
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-bottom {
|
||||||
|
margin-top: 3rem;
|
||||||
|
padding-top: 2rem;
|
||||||
|
border-top: 1px solid rgba(255,255,255,0.1);
|
||||||
|
text-align: center;
|
||||||
|
color: var(--text-light);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Responsive Design */
|
||||||
|
@media (max-width: 992px) {
|
||||||
|
.main-title {
|
||||||
|
font-size: 3rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.about-content,
|
||||||
|
.contact-content {
|
||||||
|
grid-template-columns: 1fr;
|
||||||
|
gap: 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.stats-container {
|
||||||
|
grid-template-columns: repeat(2, 1fr);
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-content {
|
||||||
|
grid-template-columns: 1fr;
|
||||||
|
gap: 2rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 768px) {
|
||||||
|
.nav-toggle {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-links {
|
||||||
|
display: none;
|
||||||
|
position: absolute;
|
||||||
|
top: 100%;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
background: var(--white);
|
||||||
|
flex-direction: column;
|
||||||
|
padding: 1rem 0;
|
||||||
|
box-shadow: var(--shadow);
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-links.active {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact-icons {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-title {
|
||||||
|
font-size: 2.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hero-buttons {
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
.university-logos {
|
||||||
|
grid-template-columns: repeat(2, 1fr);
|
||||||
|
}
|
||||||
|
|
||||||
|
.stats-container {
|
||||||
|
grid-template-columns: 1fr;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-links {
|
||||||
|
grid-template-columns: repeat(2, 1fr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 480px) {
|
||||||
|
.section-title {
|
||||||
|
font-size: 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.highlight-text {
|
||||||
|
font-size: 1.2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact-buttons {
|
||||||
|
grid-template-columns: 1fr;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-content {
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 1rem;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-links {
|
||||||
|
grid-template-columns: 1fr;
|
||||||
|
}
|
||||||
|
}
|
277
src/index.html
Normal file
277
src/index.html
Normal file
@ -0,0 +1,277 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>ExamPrep Pro | Your Path to Academic Success</title>
|
||||||
|
<link rel="stylesheet" href="css/style.css">
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">
|
||||||
|
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<header class="header">
|
||||||
|
<nav class="nav-container">
|
||||||
|
<div class="logo">ExamPrep<span>Pro</span></div>
|
||||||
|
<div class="nav-toggle" id="navToggle">
|
||||||
|
<i class="fas fa-bars"></i>
|
||||||
|
</div>
|
||||||
|
<ul class="nav-links">
|
||||||
|
<li><a href="#services">Our Services</a></li>
|
||||||
|
<li><a href="#methodology">Methodology</a></li>
|
||||||
|
<li><a href="#exams">Exams</a></li>
|
||||||
|
<li><a href="#success">Success Stories</a></li>
|
||||||
|
<li><a href="#contact">Contact</a></li>
|
||||||
|
<li class="lang-switch">
|
||||||
|
<a href="#" class="active">EN</a>
|
||||||
|
<a href="#">RU</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<div class="contact-icons">
|
||||||
|
<a href="https://wa.me/your-number" target="_blank" class="animate-hover"><i class="fab fa-whatsapp"></i></a>
|
||||||
|
<a href="https://t.me/your-channel" target="_blank" class="animate-hover"><i class="fab fa-telegram"></i></a>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<main>
|
||||||
|
<section id="hero" class="hero-section">
|
||||||
|
<div class="container">
|
||||||
|
<div class="hero-content animate-slide-up">
|
||||||
|
<h1 class="main-title">YOUR JOURNEY TO<br>ACADEMIC EXCELLENCE</h1>
|
||||||
|
<p class="hero-description">Expert preparation for international exams with proven methodologies and personalized approach. Join thousands of successful students worldwide.</p>
|
||||||
|
<div class="stats-container animate-fade-in">
|
||||||
|
<div class="stat-item">
|
||||||
|
<span class="stat-number" data-target="95">0</span>%
|
||||||
|
<p>Success Rate</p>
|
||||||
|
</div>
|
||||||
|
<div class="stat-item">
|
||||||
|
<span class="stat-number" data-target="1000">0</span>+
|
||||||
|
<p>Students</p>
|
||||||
|
</div>
|
||||||
|
<div class="stat-item">
|
||||||
|
<span class="stat-number" data-target="15">0</span>+
|
||||||
|
<p>Years Experience</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="hero-buttons">
|
||||||
|
<a href="#methodology" class="btn btn-primary animate-pulse">Learn Our Method</a>
|
||||||
|
<a href="#contact" class="btn btn-secondary">Start Now</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="hero-shapes">
|
||||||
|
<div class="shape shape1"></div>
|
||||||
|
<div class="shape shape2"></div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section id="methodology" class="methodology-section">
|
||||||
|
<div class="container">
|
||||||
|
<h2 class="section-title animate-slide-up">OUR METHODOLOGY</h2>
|
||||||
|
<div class="methodology-grid">
|
||||||
|
<div class="method-card animate-slide-up">
|
||||||
|
<div class="method-icon">
|
||||||
|
<i class="fas fa-brain"></i>
|
||||||
|
</div>
|
||||||
|
<h3>Diagnostic Assessment</h3>
|
||||||
|
<p>We start with a comprehensive evaluation of your current knowledge and skills to create a personalized study plan.</p>
|
||||||
|
</div>
|
||||||
|
<div class="method-card animate-slide-up" data-delay="200">
|
||||||
|
<div class="method-icon">
|
||||||
|
<i class="fas fa-route"></i>
|
||||||
|
</div>
|
||||||
|
<h3>Strategic Planning</h3>
|
||||||
|
<p>Custom study schedule based on your target exam date, current level, and available study time.</p>
|
||||||
|
</div>
|
||||||
|
<div class="method-card animate-slide-up" data-delay="400">
|
||||||
|
<div class="method-icon">
|
||||||
|
<i class="fas fa-graduation-cap"></i>
|
||||||
|
</div>
|
||||||
|
<h3>Intensive Practice</h3>
|
||||||
|
<p>Regular mock exams and targeted practice sessions with detailed feedback and improvement strategies.</p>
|
||||||
|
</div>
|
||||||
|
<div class="method-card animate-slide-up" data-delay="600">
|
||||||
|
<div class="method-icon">
|
||||||
|
<i class="fas fa-chart-line"></i>
|
||||||
|
</div>
|
||||||
|
<h3>Progress Tracking</h3>
|
||||||
|
<p>Continuous monitoring of your progress with data-driven adjustments to your study plan.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section id="exams" class="exams-section">
|
||||||
|
<div class="container">
|
||||||
|
<h2 class="section-title animate-slide-up">EXAM PREPARATION</h2>
|
||||||
|
<div class="exam-grid">
|
||||||
|
<div class="exam-card animate-slide-up">
|
||||||
|
<h3>GMAT | GRE</h3>
|
||||||
|
<ul class="exam-features">
|
||||||
|
<li><i class="fas fa-check"></i> Quantitative Reasoning</li>
|
||||||
|
<li><i class="fas fa-check"></i> Verbal Reasoning</li>
|
||||||
|
<li><i class="fas fa-check"></i> Integrated Reasoning</li>
|
||||||
|
<li><i class="fas fa-check"></i> Analytical Writing</li>
|
||||||
|
</ul>
|
||||||
|
<div class="score-range">
|
||||||
|
<span>Target Score: 700-800</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="exam-card animate-slide-up" data-delay="200">
|
||||||
|
<h3>TOEFL | IELTS</h3>
|
||||||
|
<ul class="exam-features">
|
||||||
|
<li><i class="fas fa-check"></i> Reading Comprehension</li>
|
||||||
|
<li><i class="fas fa-check"></i> Listening Skills</li>
|
||||||
|
<li><i class="fas fa-check"></i> Speaking Practice</li>
|
||||||
|
<li><i class="fas fa-check"></i> Writing Tasks</li>
|
||||||
|
</ul>
|
||||||
|
<div class="score-range">
|
||||||
|
<span>Target Score: IELTS 7.0-9.0 | TOEFL 100-120</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="exam-card animate-slide-up" data-delay="400">
|
||||||
|
<h3>SAT | ACT</h3>
|
||||||
|
<ul class="exam-features">
|
||||||
|
<li><i class="fas fa-check"></i> Mathematics</li>
|
||||||
|
<li><i class="fas fa-check"></i> Critical Reading</li>
|
||||||
|
<li><i class="fas fa-check"></i> Writing & Language</li>
|
||||||
|
<li><i class="fas fa-check"></i> Science (ACT)</li>
|
||||||
|
</ul>
|
||||||
|
<div class="score-range">
|
||||||
|
<span>Target Score: SAT 1500+ | ACT 33+</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section id="success" class="success-section">
|
||||||
|
<div class="container">
|
||||||
|
<h2 class="section-title animate-slide-up">SUCCESS STORIES</h2>
|
||||||
|
<div class="success-grid">
|
||||||
|
<div class="success-card animate-slide-up">
|
||||||
|
<div class="success-content">
|
||||||
|
<div class="score-improvement">
|
||||||
|
<span class="old-score">GMAT 600</span>
|
||||||
|
<i class="fas fa-arrow-right"></i>
|
||||||
|
<span class="new-score">GMAT 740</span>
|
||||||
|
</div>
|
||||||
|
<p class="testimonial">"The structured approach and continuous support helped me achieve my target score in just 3 months!"</p>
|
||||||
|
<div class="student-info">
|
||||||
|
<span class="student-name">Alex M.</span>
|
||||||
|
<span class="admission">Admitted to Harvard Business School</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="success-card animate-slide-up" data-delay="200">
|
||||||
|
<div class="success-content">
|
||||||
|
<div class="score-improvement">
|
||||||
|
<span class="old-score">IELTS 6.0</span>
|
||||||
|
<i class="fas fa-arrow-right"></i>
|
||||||
|
<span class="new-score">IELTS 8.0</span>
|
||||||
|
</div>
|
||||||
|
<p class="testimonial">"The intensive speaking practice and writing feedback were invaluable for my IELTS preparation."</p>
|
||||||
|
<div class="student-info">
|
||||||
|
<span class="student-name">Maria K.</span>
|
||||||
|
<span class="admission">Admitted to Oxford University</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section id="contact" class="contact-section">
|
||||||
|
<div class="container">
|
||||||
|
<h2 class="section-title">START YOUR JOURNEY</h2>
|
||||||
|
<div class="contact-content">
|
||||||
|
<div class="contact-info animate-slide-up">
|
||||||
|
<h3>Why Choose Us?</h3>
|
||||||
|
<ul class="benefits-list">
|
||||||
|
<li><i class="fas fa-check-circle"></i> Personalized Study Plan</li>
|
||||||
|
<li><i class="fas fa-check-circle"></i> Expert Instructors</li>
|
||||||
|
<li><i class="fas fa-check-circle"></i> Guaranteed Results</li>
|
||||||
|
<li><i class="fas fa-check-circle"></i> Flexible Schedule</li>
|
||||||
|
<li><i class="fas fa-check-circle"></i> Online & Offline Options</li>
|
||||||
|
</ul>
|
||||||
|
<div class="contact-buttons">
|
||||||
|
<a href="#" class="btn btn-primary">Join Free Trial Class</a>
|
||||||
|
<div class="social-links">
|
||||||
|
<a href="#" class="btn btn-outline">Telegram</a>
|
||||||
|
<a href="#" class="btn btn-outline">WhatsApp</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<form class="contact-form animate-slide-up" data-delay="200">
|
||||||
|
<div class="form-group">
|
||||||
|
<input type="text" placeholder="Your Name" required class="animate-input">
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<input type="tel" placeholder="+7 (999) 999-99-99" required class="animate-input">
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<select required class="animate-input">
|
||||||
|
<option value="">Select Exam</option>
|
||||||
|
<option value="gmat">GMAT</option>
|
||||||
|
<option value="gre">GRE</option>
|
||||||
|
<option value="toefl">TOEFL</option>
|
||||||
|
<option value="ielts">IELTS</option>
|
||||||
|
<option value="sat">SAT</option>
|
||||||
|
<option value="act">ACT</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<select required class="animate-input">
|
||||||
|
<option value="">Current Level</option>
|
||||||
|
<option value="beginner">Beginner</option>
|
||||||
|
<option value="intermediate">Intermediate</option>
|
||||||
|
<option value="advanced">Advanced</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<button type="submit" class="btn btn-primary animate-button">Start Preparation</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<footer class="footer">
|
||||||
|
<div class="container">
|
||||||
|
<div class="footer-content">
|
||||||
|
<div class="footer-info">
|
||||||
|
<div class="logo">ExamPrep<span>Pro</span></div>
|
||||||
|
<p>Your trusted partner in exam preparation since 2008</p>
|
||||||
|
</div>
|
||||||
|
<div class="footer-links">
|
||||||
|
<div class="link-group">
|
||||||
|
<h4>Exams</h4>
|
||||||
|
<a href="#">GMAT</a>
|
||||||
|
<a href="#">GRE</a>
|
||||||
|
<a href="#">TOEFL</a>
|
||||||
|
<a href="#">IELTS</a>
|
||||||
|
</div>
|
||||||
|
<div class="link-group">
|
||||||
|
<h4>Resources</h4>
|
||||||
|
<a href="#">Study Materials</a>
|
||||||
|
<a href="#">Practice Tests</a>
|
||||||
|
<a href="#">Success Stories</a>
|
||||||
|
<a href="#">Blog</a>
|
||||||
|
</div>
|
||||||
|
<div class="link-group">
|
||||||
|
<h4>Company</h4>
|
||||||
|
<a href="#">About Us</a>
|
||||||
|
<a href="#">Methodology</a>
|
||||||
|
<a href="#">Contact</a>
|
||||||
|
<a href="#">Careers</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="footer-bottom">
|
||||||
|
<p>© 2024 ExamPrep Pro. All rights reserved.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
<script src="js/main.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
263
src/js/main.js
Normal file
263
src/js/main.js
Normal file
@ -0,0 +1,263 @@
|
|||||||
|
// Custom Cursor
|
||||||
|
const cursor = document.querySelector('.cursor');
|
||||||
|
|
||||||
|
document.addEventListener('mousemove', (e) => {
|
||||||
|
cursor.style.left = e.clientX + 'px';
|
||||||
|
cursor.style.top = e.clientY + 'px';
|
||||||
|
});
|
||||||
|
|
||||||
|
document.addEventListener('mousedown', () => {
|
||||||
|
cursor.style.transform = 'translate(-50%, -50%) scale(0.8)';
|
||||||
|
});
|
||||||
|
|
||||||
|
document.addEventListener('mouseup', () => {
|
||||||
|
cursor.style.transform = 'translate(-50%, -50%) scale(1)';
|
||||||
|
});
|
||||||
|
|
||||||
|
// Intersection Observer for Animations
|
||||||
|
const observerOptions = {
|
||||||
|
threshold: 0.2,
|
||||||
|
rootMargin: '0px 0px -50px 0px'
|
||||||
|
};
|
||||||
|
|
||||||
|
const observer = new IntersectionObserver((entries) => {
|
||||||
|
entries.forEach(entry => {
|
||||||
|
if (entry.isIntersecting) {
|
||||||
|
entry.target.classList.add('animate-slide-up');
|
||||||
|
|
||||||
|
// Handle elements with delay
|
||||||
|
const delay = entry.target.getAttribute('data-delay');
|
||||||
|
if (delay) {
|
||||||
|
entry.target.style.animationDelay = `${delay}ms`;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Animate numbers if it's a stat number
|
||||||
|
if (entry.target.classList.contains('stat-number')) {
|
||||||
|
animateNumber(entry.target);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}, observerOptions);
|
||||||
|
|
||||||
|
// Observe elements
|
||||||
|
document.querySelectorAll('.animate-slide-up, .method-card, .exam-card, .success-card, .stat-number').forEach(el => {
|
||||||
|
observer.observe(el);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Number Animation
|
||||||
|
function animateNumber(element) {
|
||||||
|
const target = parseInt(element.getAttribute('data-target'));
|
||||||
|
const duration = 2000; // 2 seconds
|
||||||
|
const step = target / (duration / 16); // 60fps
|
||||||
|
let current = 0;
|
||||||
|
|
||||||
|
const updateNumber = () => {
|
||||||
|
current += step;
|
||||||
|
if (current < target) {
|
||||||
|
element.textContent = Math.round(current);
|
||||||
|
requestAnimationFrame(updateNumber);
|
||||||
|
} else {
|
||||||
|
element.textContent = target;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
updateNumber();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Mobile Navigation
|
||||||
|
const navToggle = document.getElementById('navToggle');
|
||||||
|
const navLinks = document.querySelector('.nav-links');
|
||||||
|
|
||||||
|
navToggle.addEventListener('click', () => {
|
||||||
|
navLinks.classList.toggle('active');
|
||||||
|
});
|
||||||
|
|
||||||
|
// Close mobile menu when clicking outside
|
||||||
|
document.addEventListener('click', (e) => {
|
||||||
|
if (!e.target.closest('.nav-container')) {
|
||||||
|
navLinks.classList.remove('active');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// Smooth Scrolling
|
||||||
|
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
|
||||||
|
anchor.addEventListener('click', function (e) {
|
||||||
|
e.preventDefault();
|
||||||
|
navLinks.classList.remove('active');
|
||||||
|
|
||||||
|
const target = document.querySelector(this.getAttribute('href'));
|
||||||
|
if (target) {
|
||||||
|
const headerOffset = 80;
|
||||||
|
const elementPosition = target.getBoundingClientRect().top;
|
||||||
|
const offsetPosition = elementPosition + window.pageYOffset - headerOffset;
|
||||||
|
|
||||||
|
window.scrollTo({
|
||||||
|
top: offsetPosition,
|
||||||
|
behavior: 'smooth'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// Form Animations
|
||||||
|
const formInputs = document.querySelectorAll('.animate-input');
|
||||||
|
|
||||||
|
formInputs.forEach(input => {
|
||||||
|
input.addEventListener('focus', () => {
|
||||||
|
input.parentElement.classList.add('focused');
|
||||||
|
});
|
||||||
|
|
||||||
|
input.addEventListener('blur', () => {
|
||||||
|
if (!input.value) {
|
||||||
|
input.parentElement.classList.remove('focused');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// Phone number formatting
|
||||||
|
const phoneInput = document.querySelector('input[type="tel"]');
|
||||||
|
|
||||||
|
phoneInput.addEventListener('input', function(e) {
|
||||||
|
let value = e.target.value.replace(/\D/g, '');
|
||||||
|
if (value.length > 0) {
|
||||||
|
if (value.length <= 1) {
|
||||||
|
value = '+7 (' + value;
|
||||||
|
} else if (value.length <= 4) {
|
||||||
|
value = '+7 (' + value.substring(1);
|
||||||
|
} else if (value.length <= 7) {
|
||||||
|
value = '+7 (' + value.substring(1, 4) + ') ' + value.substring(4);
|
||||||
|
} else if (value.length <= 9) {
|
||||||
|
value = '+7 (' + value.substring(1, 4) + ') ' + value.substring(4, 7) + '-' + value.substring(7);
|
||||||
|
} else {
|
||||||
|
value = '+7 (' + value.substring(1, 4) + ') ' + value.substring(4, 7) + '-' + value.substring(7, 9) + '-' + value.substring(9, 11);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
e.target.value = value;
|
||||||
|
});
|
||||||
|
|
||||||
|
// Form Submission Animation
|
||||||
|
const contactForm = document.querySelector('.contact-form');
|
||||||
|
|
||||||
|
contactForm.addEventListener('submit', function(e) {
|
||||||
|
e.preventDefault();
|
||||||
|
|
||||||
|
const button = this.querySelector('button[type="submit"]');
|
||||||
|
const originalText = button.textContent;
|
||||||
|
|
||||||
|
// Add loading state
|
||||||
|
button.disabled = true;
|
||||||
|
button.innerHTML = '<i class="fas fa-spinner fa-spin"></i> Sending...';
|
||||||
|
|
||||||
|
// Simulate form submission (replace with actual API call)
|
||||||
|
setTimeout(() => {
|
||||||
|
button.innerHTML = '<i class="fas fa-check"></i> Message Sent!';
|
||||||
|
button.style.backgroundColor = 'var(--success-color)';
|
||||||
|
|
||||||
|
// Reset form
|
||||||
|
setTimeout(() => {
|
||||||
|
this.reset();
|
||||||
|
button.disabled = false;
|
||||||
|
button.textContent = originalText;
|
||||||
|
button.style.backgroundColor = '';
|
||||||
|
}, 2000);
|
||||||
|
}, 1500);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Active Navigation Link on Scroll
|
||||||
|
const sections = document.querySelectorAll('section');
|
||||||
|
const navItems = document.querySelectorAll('.nav-links a');
|
||||||
|
|
||||||
|
function setActiveNavItem() {
|
||||||
|
let current = '';
|
||||||
|
|
||||||
|
sections.forEach(section => {
|
||||||
|
const sectionTop = section.offsetTop;
|
||||||
|
const sectionHeight = section.clientHeight;
|
||||||
|
|
||||||
|
if (pageYOffset >= sectionTop - 200) {
|
||||||
|
current = section.getAttribute('id');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
navItems.forEach(item => {
|
||||||
|
item.classList.remove('active');
|
||||||
|
if (item.getAttribute('href') === `#${current}`) {
|
||||||
|
item.classList.add('active');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
window.addEventListener('scroll', setActiveNavItem);
|
||||||
|
window.addEventListener('load', setActiveNavItem);
|
||||||
|
|
||||||
|
// Hover Animations for Cards
|
||||||
|
document.querySelectorAll('.method-card, .exam-card, .success-card').forEach(card => {
|
||||||
|
card.addEventListener('mouseenter', () => {
|
||||||
|
card.style.transform = 'translateY(-10px)';
|
||||||
|
card.style.boxShadow = 'var(--shadow-lg)';
|
||||||
|
});
|
||||||
|
|
||||||
|
card.addEventListener('mouseleave', () => {
|
||||||
|
card.style.transform = 'translateY(0)';
|
||||||
|
card.style.boxShadow = 'var(--shadow)';
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// Add animation classes
|
||||||
|
document.addEventListener('DOMContentLoaded', () => {
|
||||||
|
// Animate title on load
|
||||||
|
const mainTitle = document.querySelector('.main-title');
|
||||||
|
if (mainTitle) {
|
||||||
|
mainTitle.classList.add('animate-in');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Animate university logos
|
||||||
|
const logos = document.querySelectorAll('.university-logos img');
|
||||||
|
logos.forEach((logo, index) => {
|
||||||
|
setTimeout(() => {
|
||||||
|
logo.style.opacity = '1';
|
||||||
|
}, index * 200);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// Language switcher
|
||||||
|
const langSwitcher = document.querySelector('.lang-switch');
|
||||||
|
if (langSwitcher) {
|
||||||
|
langSwitcher.addEventListener('click', (e) => {
|
||||||
|
if (e.target.tagName === 'A') {
|
||||||
|
e.preventDefault();
|
||||||
|
langSwitcher.querySelectorAll('a').forEach(link => {
|
||||||
|
link.classList.remove('active');
|
||||||
|
});
|
||||||
|
e.target.classList.add('active');
|
||||||
|
// Here you would typically handle language change
|
||||||
|
console.log('Language changed to:', e.target.textContent);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Parallax Effect for Hero Section
|
||||||
|
const heroContent = document.querySelector('.hero-content');
|
||||||
|
const shapes = document.querySelectorAll('.shape');
|
||||||
|
|
||||||
|
window.addEventListener('scroll', () => {
|
||||||
|
const scrolled = window.pageYOffset;
|
||||||
|
|
||||||
|
heroContent.style.transform = `translateY(${scrolled * 0.3}px)`;
|
||||||
|
shapes.forEach(shape => {
|
||||||
|
shape.style.transform = `translateY(${scrolled * 0.4}px)`;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// Service Card Hover Effect
|
||||||
|
document.querySelectorAll('.service-card').forEach(card => {
|
||||||
|
card.addEventListener('mouseenter', (e) => {
|
||||||
|
const icon = card.querySelector('.card-icon i');
|
||||||
|
icon.style.transform = 'scale(1.2) rotate(10deg)';
|
||||||
|
});
|
||||||
|
|
||||||
|
card.addEventListener('mouseleave', (e) => {
|
||||||
|
const icon = card.querySelector('.card-icon i');
|
||||||
|
icon.style.transform = 'scale(1) rotate(0deg)';
|
||||||
|
});
|
||||||
|
});
|
Loading…
Reference in New Issue
Block a user