diff --git a/assets/pasted-20260115-162026-20208a7c.jpg b/assets/pasted-20260115-162026-20208a7c.jpg new file mode 100644 index 0000000..1caa96c Binary files /dev/null and b/assets/pasted-20260115-162026-20208a7c.jpg differ diff --git a/assets/pasted-20260115-162603-0edb92a7.jpg b/assets/pasted-20260115-162603-0edb92a7.jpg new file mode 100644 index 0000000..d86b8d4 Binary files /dev/null and b/assets/pasted-20260115-162603-0edb92a7.jpg differ diff --git a/frontend/public/assets/vm-shot-2026-01-15T16-20-21-040Z.jpg b/frontend/public/assets/vm-shot-2026-01-15T16-20-21-040Z.jpg new file mode 100644 index 0000000..1caa96c Binary files /dev/null and b/frontend/public/assets/vm-shot-2026-01-15T16-20-21-040Z.jpg differ diff --git a/frontend/public/assets/vm-shot-2026-01-15T16-24-24-855Z.jpg b/frontend/public/assets/vm-shot-2026-01-15T16-24-24-855Z.jpg new file mode 100644 index 0000000..b3c4dfd Binary files /dev/null and b/frontend/public/assets/vm-shot-2026-01-15T16-24-24-855Z.jpg differ diff --git a/frontend/public/assets/vm-shot-2026-01-15T16-25-54-285Z.jpg b/frontend/public/assets/vm-shot-2026-01-15T16-25-54-285Z.jpg new file mode 100644 index 0000000..d86b8d4 Binary files /dev/null and b/frontend/public/assets/vm-shot-2026-01-15T16-25-54-285Z.jpg differ diff --git a/frontend/src/css/_landing.css b/frontend/src/css/_landing.css new file mode 100644 index 0000000..93aff2b --- /dev/null +++ b/frontend/src/css/_landing.css @@ -0,0 +1,40 @@ + +.landing-gradient { + background: linear-gradient(-45deg, #ee7752, #e73c7e, #23a6d5, #23d5ab); + background-size: 400% 400%; + animation: gradient 15s ease infinite; +} + +@keyframes gradient { + 0% { + background-position: 0% 50%; + } + 50% { + background-position: 100% 50%; + } + 100% { + background-position: 0% 50%; + } +} + +.glass-card { + background: rgba(255, 255, 255, 0.1); + backdrop-filter: blur(10px); + -webkit-backdrop-filter: blur(10px); + border: 1px solid rgba(255, 255, 255, 0.2); +} + +.fade-in-up { + animation: fadeInUp 1s ease-out forwards; +} + +@keyframes fadeInUp { + from { + opacity: 0; + transform: translateY(20px); + } + to { + opacity: 1; + transform: translateY(0); + } +} diff --git a/frontend/src/pages/_app.tsx b/frontend/src/pages/_app.tsx index 02b0a0a..ddd9058 100644 --- a/frontend/src/pages/_app.tsx +++ b/frontend/src/pages/_app.tsx @@ -6,6 +6,7 @@ import Head from 'next/head'; import { store } from '../stores/store'; import { Provider } from 'react-redux'; import '../css/main.css'; +import '../css/_landing.css'; import axios from 'axios'; import { baseURLApi } from '../config'; import { useRouter } from 'next/router'; diff --git a/frontend/src/pages/index.tsx b/frontend/src/pages/index.tsx index eab193b..36ff6fb 100644 --- a/frontend/src/pages/index.tsx +++ b/frontend/src/pages/index.tsx @@ -7,43 +7,116 @@ import SectionFullScreen from '../components/SectionFullScreen' import LayoutGuest from '../layouts/Guest' import { getPageTitle } from '../config' import { useAppSelector } from '../stores/hooks' +import { + mdiBookOpenPageVariant, + mdiAccountGroup, + mdiChartLine, + mdiGithub, + mdiTwitter, + mdiLinkedin, +} from '@mdi/js' +import BaseIcon from '../components/BaseIcon' export default function Landing() { const textColor = useAppSelector((state) => state.style.linkColor) const title = 'CourseFlow LMS' + const features = [ + { + icon: mdiBookOpenPageVariant, + title: 'Interactive Courses', + description: 'Engage your learners with rich multimedia content, quizzes, and assignments.', + }, + { + icon: mdiAccountGroup, + title: 'User Management', + description: 'Easily manage users, roles, and permissions with our flexible system.', + }, + { + icon: mdiChartLine, + title: 'Progress Tracking', + description: 'Monitor learner progress with detailed analytics and reporting tools.', + }, + ] + + const socialLinks = [ + { href: 'https://github.com', icon: mdiGithub }, + { href: 'https://twitter.com', icon: mdiTwitter }, + { href: 'https://linkedin.com', icon: mdiLinkedin }, + ] + return ( -
+
A modern and flexible platform for your online courses.
-