├── cover.jpg
├── src
├── assets
│ ├── cta.png
│ ├── avatar.png
│ ├── blog-1.png
│ ├── heroImg.png
│ ├── achievement.png
│ ├── company-logo-1.png
│ ├── company-logo-2.png
│ ├── company-logo-3.png
│ ├── company-logo-4.png
│ ├── quotationMark.png
│ ├── grey-star.svg
│ ├── yellow-star.svg
│ ├── index.js
│ ├── lock.svg
│ ├── hamburgerMenu.svg
│ ├── react.svg
│ ├── logo.svg
│ └── close.svg
├── main.jsx
├── components
│ ├── index.js
│ ├── Card.jsx
│ ├── CTA.jsx
│ ├── CategoryCard.jsx
│ ├── Companies.jsx
│ ├── FeedbackCard.jsx
│ ├── StarRating.jsx
│ ├── Hero.jsx
│ ├── Courses.jsx
│ ├── Feedback.jsx
│ ├── Categories.jsx
│ ├── Navbar.jsx
│ ├── Footer.jsx
│ └── Achievement.jsx
├── App.jsx
├── index.css
├── App.css
└── data
│ └── Courses.js
├── postcss.config.cjs
├── vite.config.js
├── tailwind.config.cjs
├── README.md
├── .gitignore
├── index.html
├── package.json
└── public
└── vite.svg
/cover.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TECHCROWDMY/practice-landing-page/HEAD/cover.jpg
--------------------------------------------------------------------------------
/src/assets/cta.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TECHCROWDMY/practice-landing-page/HEAD/src/assets/cta.png
--------------------------------------------------------------------------------
/src/assets/avatar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TECHCROWDMY/practice-landing-page/HEAD/src/assets/avatar.png
--------------------------------------------------------------------------------
/src/assets/blog-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TECHCROWDMY/practice-landing-page/HEAD/src/assets/blog-1.png
--------------------------------------------------------------------------------
/src/assets/heroImg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TECHCROWDMY/practice-landing-page/HEAD/src/assets/heroImg.png
--------------------------------------------------------------------------------
/src/assets/achievement.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TECHCROWDMY/practice-landing-page/HEAD/src/assets/achievement.png
--------------------------------------------------------------------------------
/postcss.config.cjs:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | tailwindcss: {},
4 | autoprefixer: {},
5 | },
6 | }
7 |
--------------------------------------------------------------------------------
/src/assets/company-logo-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TECHCROWDMY/practice-landing-page/HEAD/src/assets/company-logo-1.png
--------------------------------------------------------------------------------
/src/assets/company-logo-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TECHCROWDMY/practice-landing-page/HEAD/src/assets/company-logo-2.png
--------------------------------------------------------------------------------
/src/assets/company-logo-3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TECHCROWDMY/practice-landing-page/HEAD/src/assets/company-logo-3.png
--------------------------------------------------------------------------------
/src/assets/company-logo-4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TECHCROWDMY/practice-landing-page/HEAD/src/assets/company-logo-4.png
--------------------------------------------------------------------------------
/src/assets/quotationMark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TECHCROWDMY/practice-landing-page/HEAD/src/assets/quotationMark.png
--------------------------------------------------------------------------------
/vite.config.js:
--------------------------------------------------------------------------------
1 | import { defineConfig } from 'vite'
2 | import react from '@vitejs/plugin-react'
3 |
4 | // https://vitejs.dev/config/
5 | export default defineConfig({
6 | plugins: [react()],
7 | })
8 |
--------------------------------------------------------------------------------
/tailwind.config.cjs:
--------------------------------------------------------------------------------
1 | /** @type {import('tailwindcss').Config} */
2 | module.exports = {
3 | content: [
4 | "./index.html",
5 | "./src/**/*.{js,ts,jsx,tsx}",
6 | ],
7 | theme: {
8 | extend: {},
9 | },
10 | plugins: [],
11 | }
12 |
--------------------------------------------------------------------------------
/src/main.jsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import ReactDOM from 'react-dom/client'
3 | import App from './App'
4 | import './index.css'
5 |
6 | ReactDOM.createRoot(document.getElementById('root')).render(
7 |
8 |
9 | ,
10 | )
11 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Build An Awesome Landing Page in ReactJS & TailwindCSS!
2 | 
3 |
4 |
5 | 1. Clone the repository.
6 | 2. Run npm install command. ```npm install```
7 | 3. Run npm run dev. ```npm run dev```
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | pnpm-debug.log*
8 | lerna-debug.log*
9 |
10 | node_modules
11 | dist
12 | dist-ssr
13 | *.local
14 |
15 | # Editor directories and files
16 | .vscode/*
17 | !.vscode/extensions.json
18 | .idea
19 | .DS_Store
20 | *.suo
21 | *.ntvs*
22 | *.njsproj
23 | *.sln
24 | *.sw?
25 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Vite + React
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/src/components/index.js:
--------------------------------------------------------------------------------
1 | import Navbar from "./Navbar";
2 | import Hero from "./Hero";
3 | import Companies from "./Companies";
4 | import Courses from "./Courses";
5 | import Achievement from "./Achievement";
6 | import Categories from "./Categories";
7 | import Feedback from "./Feedback";
8 | import CTA from "./CTA";
9 | import Footer from "./Footer";
10 |
11 |
12 |
13 | export {Navbar,Hero, Companies,Courses,Achievement,Categories,Feedback,CTA,Footer}
--------------------------------------------------------------------------------
/src/App.jsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { Hero, Navbar,Companies, Courses, Achievement, Categories, Feedback, CTA, Footer } from './components';
3 | import './App.css'
4 |
5 | const App = () => {
6 | return (
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 | )
19 | }
20 |
21 | export default App
--------------------------------------------------------------------------------
/src/assets/grey-star.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/assets/yellow-star.svg:
--------------------------------------------------------------------------------
1 | Third star
2 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "landing-page",
3 | "private": true,
4 | "version": "0.0.0",
5 | "type": "module",
6 | "scripts": {
7 | "dev": "vite",
8 | "build": "vite build",
9 | "preview": "vite preview"
10 | },
11 | "dependencies": {
12 | "react": "^18.2.0",
13 | "react-dom": "^18.2.0",
14 | "react-icons": "^4.7.1",
15 | "react-slick": "^0.29.0",
16 | "slick-carousel": "^1.8.1"
17 | },
18 | "devDependencies": {
19 | "@types/react": "^18.0.26",
20 | "@types/react-dom": "^18.0.9",
21 | "@vitejs/plugin-react": "^3.0.0",
22 | "autoprefixer": "^10.4.13",
23 | "postcss": "^8.4.20",
24 | "tailwindcss": "^3.2.4",
25 | "vite": "^4.0.0"
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/components/Card.jsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { blogImg1 } from '../assets'
3 | import StarRating from './StarRating'
4 |
5 | const Card = ({course}) => {
6 | return (
7 |
8 |
12 |
13 |
{course.title}
14 |
15 |
16 |
{course.price}
17 |
18 |
19 | {course.category}
20 |
21 |
22 | )
23 | }
24 |
25 | export default Card
--------------------------------------------------------------------------------
/src/assets/index.js:
--------------------------------------------------------------------------------
1 | import hamburgerMenu from "./hamburgerMenu.svg";
2 | import close from "./close.svg";
3 | import logo from "./logo.svg";
4 | import lock from "./lock.svg";
5 | import heroImg from "./heroImg.png";
6 | import companyLogo1 from "./company-logo-1.png";
7 | import companyLogo2 from "./company-logo-2.png";
8 | import companyLogo3 from "./company-logo-3.png";
9 | import companyLogo4 from "./company-logo-4.png";
10 | import blogImg1 from "./blog-1.png";
11 | import achievement from "./achievement.png";
12 | import avatar from "./avatar.png";
13 | import quotationMark from "./quotationMark.png";
14 | import cta from "./cta.png"
15 |
16 | export {
17 | hamburgerMenu,
18 | close,
19 | logo,
20 | lock,
21 | heroImg,
22 | companyLogo1,
23 | companyLogo2,
24 | companyLogo3,
25 | companyLogo4,
26 | blogImg1,
27 | achievement,
28 | avatar,
29 | quotationMark,
30 | cta
31 |
32 |
33 | };
--------------------------------------------------------------------------------
/src/assets/lock.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/src/components/CTA.jsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { cta } from '../assets'
3 |
4 | const CTA = () => {
5 | return (
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
Join World's largest learning platform today
14 |
Start learning by registering for free
15 |
Sign Up For Free
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 | )
28 | }
29 |
30 | export default CTA
--------------------------------------------------------------------------------
/src/components/CategoryCard.jsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import {BsVectorPen, BsArrowUpRight} from 'react-icons/bs'
3 |
4 | const CategoryCard = ({icons,title}) => {
5 | return (
6 |
7 |
8 | {icons}
9 |
{title}
10 |
11 |
12 |
13 |
19 |
20 |
21 |
22 | )
23 | }
24 |
25 | export default CategoryCard
--------------------------------------------------------------------------------
/src/components/Companies.jsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { companyLogo1, companyLogo2, companyLogo3, companyLogo4 } from '../assets';
3 |
4 | const Companies = () => {
5 | return (
6 |
7 |
8 |
Trusted by over 25,000 teams around the world.
9 |
Leading companies use the same courses to help employees keep their skills fresh.
10 |
18 |
19 |
20 |
21 |
22 | )
23 | }
24 |
25 | export default Companies
--------------------------------------------------------------------------------
/src/components/FeedbackCard.jsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { avatar, quotationMark } from '../assets'
3 |
4 | const FeedbackCard = () => {
5 | return (
6 |
7 |
8 |
9 |
10 |
11 |
Jenny Wilson
12 |
UI-UX Designer
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
Ut pharetra ipsum nec leo blandit, sit amet tincidunt eros pharetra. Nam sed imperdiet turpis. In hac habitasse platea dictumst. Praesent nulla massa, hendrerit vestibulum gravida in, feugiat auctor felis.Ut pharetra ipsum nec leo blandit, sit amet tincidunt eros pharetra. Nam sed imperdiet turpis. In hac habitasse platea dictumst.
21 |
22 |
23 | )
24 | }
25 |
26 | export default FeedbackCard
--------------------------------------------------------------------------------
/public/vite.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/index.css:
--------------------------------------------------------------------------------
1 | @tailwind base;
2 | @tailwind components;
3 | @tailwind utilities;
4 |
5 | /*
6 | :root {
7 | font-family: Inter, Avenir, Helvetica, Arial, sans-serif;
8 | font-size: 16px;
9 | line-height: 24px;
10 | font-weight: 400;
11 |
12 | color-scheme: light dark;
13 | color: rgba(255, 255, 255, 0.87);
14 | background-color: #242424;
15 |
16 | font-synthesis: none;
17 | text-rendering: optimizeLegibility;
18 | -webkit-font-smoothing: antialiased;
19 | -moz-osx-font-smoothing: grayscale;
20 | -webkit-text-size-adjust: 100%;
21 | }
22 |
23 | a {
24 | font-weight: 500;
25 | color: #646cff;
26 | text-decoration: inherit;
27 | }
28 | a:hover {
29 | color: #535bf2;
30 | }
31 |
32 | body {
33 | margin: 0;
34 | display: flex;
35 | place-items: center;
36 | min-width: 320px;
37 | min-height: 100vh;
38 | }
39 |
40 | h1 {
41 | font-size: 3.2em;
42 | line-height: 1.1;
43 | }
44 |
45 | button {
46 | border-radius: 8px;
47 | border: 1px solid transparent;
48 | padding: 0.6em 1.2em;
49 | font-size: 1em;
50 | font-weight: 500;
51 | font-family: inherit;
52 | background-color: #1a1a1a;
53 | cursor: pointer;
54 | transition: border-color 0.25s;
55 | }
56 | button:hover {
57 | border-color: #646cff;
58 | }
59 | button:focus,
60 | button:focus-visible {
61 | outline: 4px auto -webkit-focus-ring-color;
62 | }
63 |
64 | @media (prefers-color-scheme: light) {
65 | :root {
66 | color: #213547;
67 | background-color: #ffffff;
68 | }
69 | a:hover {
70 | color: #747bff;
71 | }
72 | button {
73 | background-color: #f9f9f9;
74 | }
75 | } */
76 |
--------------------------------------------------------------------------------
/src/components/StarRating.jsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 |
3 | const StarRating = ({rating}) => {
4 | return (
5 |
6 |
7 | {[...Array(rating)].map((x,i)=>
8 |
12 |
13 | )}
14 | {[...Array(5-rating)].map((x,i)=>
15 |
19 | )}
20 |
(15)
21 |
22 |
23 |
24 | )
25 | }
26 |
27 | export default StarRating
--------------------------------------------------------------------------------
/src/App.css:
--------------------------------------------------------------------------------
1 | @import url('https://fonts.googleapis.com/css2?family=Public+Sans:wght@300;400;500;600;700&display=swap');
2 | @import "slick-carousel/slick/slick.css";
3 | @import "slick-carousel/slick/slick-theme.css";
4 |
5 | #root {
6 | font-family: 'Public Sans', sans-serif;
7 |
8 | }
9 |
10 | .input-box-shadow{
11 | filter: drop-shadow(-4px -4px 44px rgba(0, 0, 0, 0.08));
12 | }
13 |
14 | .slick-prev:before,
15 | .slick-next:before {
16 | color: black;
17 | font-size: 40px;
18 | }
19 |
20 | .slick-next:before{
21 | position: absolute;
22 | right:0;
23 | margin-top: -10px;
24 | margin-right: 5px;
25 | }
26 |
27 | .slick-next,
28 | .slick-prev
29 | {
30 | position: absolute;
31 | right:0;
32 | }
33 |
34 | .slick-prev{
35 | z-index: 99999;
36 | margin-left: 25px;
37 | }
38 |
39 | .category-card:hover .arrow-icon{
40 | fill: white;
41 | }
42 |
43 | .slick-arrow{
44 | position: absolute;
45 | right:50;
46 | margin-right: 25px;
47 | }
48 |
49 | .slick-dots {
50 | @apply ml-[-10px] hidden
51 | }
52 |
53 |
54 |
55 |
56 | /* #root {
57 | max-width: 1280px;
58 | margin: 0 auto;
59 | padding: 2rem;
60 | text-align: center;
61 | }
62 |
63 | .logo {
64 | height: 6em;
65 | padding: 1.5em;
66 | will-change: filter;
67 | }
68 | .logo:hover {
69 | filter: drop-shadow(0 0 2em #646cffaa);
70 | }
71 | .logo.react:hover {
72 | filter: drop-shadow(0 0 2em #61dafbaa);
73 | }
74 |
75 | @keyframes logo-spin {
76 | from {
77 | transform: rotate(0deg);
78 | }
79 | to {
80 | transform: rotate(360deg);
81 | }
82 | }
83 |
84 | @media (prefers-reduced-motion: no-preference) {
85 | a:nth-of-type(2) .logo {
86 | animation: logo-spin infinite 20s linear;
87 | }
88 | }
89 |
90 | .card {
91 | padding: 2em;
92 | }
93 |
94 | .read-the-docs {
95 | color: #888;
96 | } */
97 |
--------------------------------------------------------------------------------
/src/components/Hero.jsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { heroImg } from '../assets';
3 | import {AiOutlineSearch} from 'react-icons/ai'
4 |
5 | const Hero = () => {
6 | return (
7 |
8 |
9 |
10 |
11 |
START TO SUCCESS
12 |
Access To 5000+ Courses
13 | from 300 Instructors
14 | & Institutions
15 |
16 |
Various versions have evolved over the years, sometimes by accident.
17 |
18 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 | )
45 | }
46 |
47 | export default Hero
--------------------------------------------------------------------------------
/src/components/Courses.jsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import Card from './Card'
3 | import Slider from "react-slick";
4 | import { courses } from '../data/Courses';
5 |
6 | const Courses = () => {
7 | var settings = {
8 | dots: true,
9 | infinite: false,
10 | speed: 500,
11 | slidesToShow: 4,
12 | slidesToScroll: 1,
13 | responsive: [
14 | {
15 | breakpoint: 1024,
16 | settings: {
17 | slidesToShow: 2,
18 | slidesToScroll: 1,
19 | infinite: false,
20 | dots: true
21 | }
22 | },
23 | {
24 | breakpoint: 600,
25 | settings: {
26 | slidesToShow: 1,
27 | slidesToScroll: 1,
28 | infinite: false,
29 | dots: true
30 | }
31 | },
32 | {
33 | breakpoint: 480,
34 | settings: {
35 | slidesToShow: 1,
36 | slidesToScroll: 1,
37 | infinite: false,
38 | dots: true
39 | }
40 | }
41 | // You can unslick at a given breakpoint now by adding:
42 | // settings: "unslick"
43 | // instead of a settings object
44 | ]
45 | };
46 |
47 | return (
48 |
49 |
50 |
51 |
Most Popular Courses
52 |
Various versions have evolved over the years, sometimes by accident.
53 |
54 |
55 |
56 | {courses.map((course,i)=>
57 |
58 |
59 |
) }
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 | )
68 | }
69 |
70 | export default Courses
--------------------------------------------------------------------------------
/src/components/Feedback.jsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import Card from './Card'
3 | import Slider from "react-slick";
4 | import { courses } from '../data/Courses';
5 | import FeedbackCard from './FeedbackCard';
6 |
7 | const Feedback = () => {
8 | var settings = {
9 | dots: true,
10 | infinite: false,
11 | speed: 500,
12 | slidesToShow: 2,
13 | slidesToScroll: 1,
14 | responsive: [
15 | {
16 | breakpoint: 1024,
17 | settings: {
18 | slidesToShow:1,
19 | slidesToScroll: 1,
20 | infinite: false,
21 | dots: true
22 | }
23 | },
24 | {
25 | breakpoint: 600,
26 | settings: {
27 | slidesToShow: 2,
28 | slidesToScroll: 2,
29 | infinite: false,
30 | dots: true
31 | }
32 | },
33 | {
34 | breakpoint: 480,
35 | settings: {
36 | slidesToShow: 1,
37 | slidesToScroll: 1,
38 | infinite: false,
39 | dots: true
40 | }
41 | }
42 | // You can unslick at a given breakpoint now by adding:
43 | // settings: "unslick"
44 | // instead of a settings object
45 | ]
46 | };
47 |
48 | return (
49 |
50 |
51 |
52 |
Students' Feedback
53 |
Various versions have evolved over the years, sometimes by accident.
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 | )
72 | }
73 |
74 | export default Feedback
--------------------------------------------------------------------------------
/src/components/Categories.jsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import CategoryCard from './CategoryCard'
3 | import {BsVectorPen} from 'react-icons/bs'
4 | import {TiHtml5} from 'react-icons/ti'
5 | import {TbMicrophone2,TbMusic} from 'react-icons/tb'
6 | import {HiOutlineBriefcase} from 'react-icons/hi'
7 | import {WiSunrise} from 'react-icons/wi'
8 | import {AiOutlineCamera} from 'react-icons/ai'
9 | import {BiData} from 'react-icons/bi'
10 | import {MdAttachMoney} from 'react-icons/md'
11 | import {FaUniversity} from 'react-icons/fa'
12 |
13 | const Categories = () => {
14 | return (
15 |
16 |
17 |
Most Popular Categories
18 |
Various versions have evolved over the years, sometimes by accident.
19 |
20 |
21 | } title={'Design'} />
22 | } title={'Development'} />
23 | } title={'Marketing'} />
24 | } title={'Business'} />
25 |
26 | } title={'Lifestyle'} />
27 | } title={'Photography'} />
28 | } title={'Music'} />
29 | } title={'Data Science'} />
30 |
31 | } title={'Personal Develop'} />
32 | } title={'Health & Fitness'} />
33 | } title={'Finance'} />
34 | } title={'Teaching'} />
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 | )
45 | }
46 |
47 | export default Categories
--------------------------------------------------------------------------------
/src/assets/hamburgerMenu.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/src/components/Navbar.jsx:
--------------------------------------------------------------------------------
1 | import React, { useState } from 'react';
2 | import {logo,lock, hamburgerMenu, close} from '../assets'
3 |
4 | const Navbar = () => {
5 |
6 | const [toggle,setToggle]=useState(false)
7 | const handleClick = ()=> setToggle(!toggle)
8 |
9 | return (
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | Home
18 | About
19 | Support
20 | Platform
21 | Pricing
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 | Login
30 |
31 |
Sign Up For Free
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 | Home
46 | About
47 | Support
48 | Platform
49 | Pricing
50 |
51 |
52 |
53 | Login
54 |
55 |
Sign Up For Free
56 |
57 |
58 |
59 |
60 |
61 |
62 | )
63 | }
64 |
65 | export default Navbar
--------------------------------------------------------------------------------
/src/data/Courses.js:
--------------------------------------------------------------------------------
1 | export const courses = [
2 | {
3 | id: 1,
4 | title: 'The Complete Flutter Development Bootcamp with Dart',
5 | category:'Flutter',
6 | rating:5,
7 | price: '$59.99',
8 | linkImg:
9 | 'https://imgs.search.brave.com/YrWdDcc30vLk1ujOOb2T7YspGn9p6AsTC4LbTGaWiJI/rs:fit:480:270:1/g:ce/aHR0cHM6Ly93ZWVr/Y291cnNlcmV2aWV3/LmNvbS93cC1jb250/ZW50L3VwbG9hZHMv/MjAxOS8wNS9mbHV0/dGVyLWJvb3RjYW1w/LXdpdGgtZGFydC1p/bWcuanBn'
10 | },
11 | {
12 | id: 2,
13 | title: 'The Complete 2023 Web Development Bootcamp',
14 | category:'Web Dev',
15 | rating:4,
16 | price: '$59.99',
17 | linkImg:
18 | 'https://imgs.search.brave.com/ZkwGbElTOq8Zo7NeRU669-o016O6XSLJftZZ5I--HJg/rs:fit:750:422:1/g:ce/aHR0cHM6Ly9kaXNj/b3VudHNlcmllcy5j/b20vd3AtY29udGVu/dC91cGxvYWRzLzIw/MjAvMTEvMTAwLWRh/eXMtb2YtY29kZS10/aGUtY29tcGxldGUt/cHl0aG9uLXByby1i/b290Y2FtcC1mb3It/MjAyMi1jb3Vyc2Uu/anBn',
19 | },
20 | {
21 | id: 3,
22 | title: 'Learn Python: The Complete Python Programming CourseLearn A-Z everything about Python, from the basics, to advanced topics like Python GUI, Python Data Analysis, and more!',
23 | category:'Python',
24 | rating:4,
25 | price: '$59.99',
26 | linkImg:
27 | 'https://imgs.search.brave.com/Nhj_cLAZOWcUjlnR8QMX8A02rX-2RYra9w-0j-B9Rbg/rs:fit:750:422:1/g:ce/aHR0cHM6Ly9pLnBp/bmltZy5jb20vb3Jp/Z2luYWxzL2IxLzJi/L2NjL2IxMmJjYzA4/YmQ4YzlhOTFjMmM5/NjY3ZTM5NzE1NzA0/LmpwZw',
28 | },
29 | {
30 | id: 4,
31 | title: 'The Complete JavaScript Course 2023: From Zero to Expert!',
32 | category:'Javascript',
33 | rating:4,
34 | price: '$59.99',
35 | linkImg:
36 | 'https://imgs.search.brave.com/ERyn_YUVTbB0slaulPioLMmU7Zto9A8aCA6OPptRZkI/rs:fit:768:432:1/g:ce/aHR0cHM6Ly9jb3Vy/c2Vjb3Vwb25jbHVi/LmNvbS93cC1jb250/ZW50L3VwbG9hZHMv/MjAyMS8wMy84NTE3/MTJfZmM2MV82LTc2/OHg0MzIuanBn',
37 | },
38 | {
39 | id: 5,
40 | title: 'Cuphead',
41 | category:'Flutter',
42 | rating:4,
43 | price: '$19.99',
44 | linkImg:
45 | 'https://assets.nintendo.com/image/upload/ar_16:9,b_auto:border,c_lpad/b_white/f_auto/q_auto/dpr_auto/c_scale,w_300/v1/ncom/en_US/games/switch/c/cuphead-switch/hero?_a=AJADJWI0',
46 | },
47 | {
48 | id: 6,
49 | title: 'Minecraft',
50 | category:'Flutter',
51 | rating:4,
52 | price: '$29.99',
53 | linkImg:
54 | 'https://assets.nintendo.com/image/upload/ar_16:9,b_auto:border,c_lpad/b_white/f_auto/q_auto/dpr_auto/c_scale,w_300/v1/ncom/en_US/games/switch/m/minecraft-switch/hero?_a=AJADJWI0',
55 | },
56 | {
57 | id: 7,
58 | title: 'Mario + Rabbids® Kingdom Battle',
59 | category:'Flutter',
60 | rating:4,
61 | price: '$59.99',
62 | linkImg:
63 | 'https://assets.nintendo.com/image/upload/ar_16:9,b_auto:border,c_lpad/b_white/f_auto/q_auto/dpr_auto/c_scale,w_300/v1/ncom/en_US/games/switch/u/unravel-two-switch/hero?_a=AJADJWI0',
64 | },
65 | {
66 | id: 8,
67 | title: 'Unravel Two',
68 | category:'Flutter',
69 | rating:4,
70 | price: '$59.99',
71 | sale: 63,
72 | linkImg:
73 | 'https://assets.nintendo.com/image/upload/ar_16:9,b_auto:border,c_lpad/b_white/f_auto/q_auto/dpr_auto/c_scale,w_300/v1/ncom/en_US/games/switch/u/unravel-two-switch/hero?_a=AJADJWI0',
74 | },
75 | ];
--------------------------------------------------------------------------------
/src/components/Footer.jsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { logo } from '../assets'
3 | import {FaFacebookF,FaDribbble,FaLinkedinIn,FaInstagram,FaBehance} from 'react-icons/fa'
4 |
5 | const Footer = () => {
6 | return (
7 |
8 |
9 |
10 |
11 |
12 |
Contact Us
13 |
Call : +123 400 123
14 |
Praesent nulla massa, hendrerit vestibulum gravida in, feugiat auctor felis.
15 |
Email: example@mail.com
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
Explore
29 |
30 | Home
31 | About
32 | Course
33 | Blog
34 | Contact
35 |
36 |
37 |
38 |
39 |
40 |
Category
41 |
42 | Design
43 | Development
44 | Marketing
45 | Business
46 | Lifestyle
47 | Photography
48 | Music
49 |
50 |
51 |
52 |
53 |
54 |
Subscribe
55 | Praesent nulla massa, hendrerit vestibulum gravida in, feugiat auctor felis.
56 |
64 |
65 |
66 |
67 |
68 |
69 |
70 | )
71 | }
72 |
73 | export default Footer
--------------------------------------------------------------------------------
/src/components/Achievement.jsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { achievement } from '../assets'
3 | import {SlGraduation} from 'react-icons/sl'
4 | import {FiVideo} from 'react-icons/fi'
5 | import {SlPeople} from 'react-icons/sl'
6 |
7 | const Achievement = () => {
8 | return (
9 |
10 |
11 |
12 |
13 |
Our Achievements
14 |
Various versions have evolved over the years, sometimes by accident.
15 |
16 |
17 |
18 |
19 |
23 |
24 |
25 |
300
26 |
Instructor
27 |
28 |
29 |
30 |
31 |
32 |
36 |
37 |
38 |
10,000+
39 |
Video
40 |
41 |
42 |
43 |
44 |
45 |
49 |
50 |
51 |
20,000+
52 |
Student
53 |
54 |
55 |
56 |
57 |
58 |
62 |
63 |
64 |
1,00,000+
65 |
Users
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 | )
84 | }
85 |
86 | export default Achievement
--------------------------------------------------------------------------------
/src/assets/react.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/assets/logo.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/src/assets/close.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------