diff --git a/README.md b/README.md new file mode 100644 index 0000000..1b6986c --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ +# Code-Innovation-Series-NMAMIT +Finite loop club - Incubate IND - online hackathon project submission. diff --git a/public/404.html b/public/404.html new file mode 100644 index 0000000..829eda8 --- /dev/null +++ b/public/404.html @@ -0,0 +1,33 @@ + + + + + + Page Not Found + + + + +
+

404

+

Page Not Found

+

The specified file was not found on this website. Please check the URL for mistakes and try again.

+

Why am I seeing this?

+

This page was generated by the Firebase Command-Line Interface. To modify it, edit the 404.html file in your project's configured public directory.

+
+ + diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000..a11777c Binary files /dev/null and b/public/favicon.ico differ diff --git a/public/images/afterp.jpg b/public/images/afterp.jpg new file mode 100644 index 0000000..58ee876 Binary files /dev/null and b/public/images/afterp.jpg differ diff --git a/public/images/ai.jpg b/public/images/ai.jpg new file mode 100644 index 0000000..1aa62f0 Binary files /dev/null and b/public/images/ai.jpg differ diff --git a/public/images/appetizers.jpg b/public/images/appetizers.jpg new file mode 100644 index 0000000..ad0ac35 Binary files /dev/null and b/public/images/appetizers.jpg differ diff --git a/public/images/backgroundw.jpg b/public/images/backgroundw.jpg new file mode 100644 index 0000000..3cb159b Binary files /dev/null and b/public/images/backgroundw.jpg differ diff --git a/public/images/coffee.jpg b/public/images/coffee.jpg new file mode 100644 index 0000000..4d26328 Binary files /dev/null and b/public/images/coffee.jpg differ diff --git a/public/images/customer.jpg b/public/images/customer.jpg new file mode 100644 index 0000000..3b65349 Binary files /dev/null and b/public/images/customer.jpg differ diff --git a/public/images/gap.jpg b/public/images/gap.jpg new file mode 100644 index 0000000..c844562 Binary files /dev/null and b/public/images/gap.jpg differ diff --git a/public/images/hotelsmall.jpg b/public/images/hotelsmall.jpg new file mode 100644 index 0000000..37ad2f0 Binary files /dev/null and b/public/images/hotelsmall.jpg differ diff --git a/public/images/icecream.jpg b/public/images/icecream.jpg new file mode 100644 index 0000000..0e6b6b5 Binary files /dev/null and b/public/images/icecream.jpg differ diff --git a/public/images/indian.jpg b/public/images/indian.jpg new file mode 100644 index 0000000..268245a Binary files /dev/null and b/public/images/indian.jpg differ diff --git a/public/images/luxehotel.jpg b/public/images/luxehotel.jpg new file mode 100644 index 0000000..081275d Binary files /dev/null and b/public/images/luxehotel.jpg differ diff --git a/public/images/rasgulla.jpg b/public/images/rasgulla.jpg new file mode 100644 index 0000000..11468bb Binary files /dev/null and b/public/images/rasgulla.jpg differ diff --git a/public/images/resort.jpg b/public/images/resort.jpg new file mode 100644 index 0000000..ecd500f Binary files /dev/null and b/public/images/resort.jpg differ diff --git a/public/images/restaurant.jpg b/public/images/restaurant.jpg new file mode 100644 index 0000000..11bb2ef Binary files /dev/null and b/public/images/restaurant.jpg differ diff --git a/public/images/smallhotel.jpg b/public/images/smallhotel.jpg new file mode 100644 index 0000000..0a06eef Binary files /dev/null and b/public/images/smallhotel.jpg differ diff --git a/public/images/smoothie.jpg b/public/images/smoothie.jpg new file mode 100644 index 0000000..2f8abb9 Binary files /dev/null and b/public/images/smoothie.jpg differ diff --git a/public/images/snack.jpg b/public/images/snack.jpg new file mode 100644 index 0000000..719c61f Binary files /dev/null and b/public/images/snack.jpg differ diff --git a/public/images/software.jpg b/public/images/software.jpg new file mode 100644 index 0000000..6254f9e Binary files /dev/null and b/public/images/software.jpg differ diff --git a/public/images/waitqrlogo.png b/public/images/waitqrlogo.png new file mode 100644 index 0000000..2958a49 Binary files /dev/null and b/public/images/waitqrlogo.png differ diff --git a/public/index.html b/public/index.html new file mode 100644 index 0000000..c71069f --- /dev/null +++ b/public/index.html @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + React App + + + +
+ + + diff --git a/public/logo192.png b/public/logo192.png new file mode 100644 index 0000000..fc44b0a Binary files /dev/null and b/public/logo192.png differ diff --git a/public/logo512.png b/public/logo512.png new file mode 100644 index 0000000..a4e47a6 Binary files /dev/null and b/public/logo512.png differ diff --git a/public/manifest.json b/public/manifest.json new file mode 100644 index 0000000..080d6c7 --- /dev/null +++ b/public/manifest.json @@ -0,0 +1,25 @@ +{ + "short_name": "React App", + "name": "Create React App Sample", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + }, + { + "src": "logo192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "logo512.png", + "type": "image/png", + "sizes": "512x512" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/public/robots.txt b/public/robots.txt new file mode 100644 index 0000000..e9e57dc --- /dev/null +++ b/public/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/src/App.css b/src/App.css new file mode 100644 index 0000000..416733e --- /dev/null +++ b/src/App.css @@ -0,0 +1,44 @@ +* { + box-sizing: border-box; + margin: 0; + padding: 0; + font-family: "Fondamento", cursive; +} + +.home, +.services, +.products, +.sign-up { + display: flex; + height: 90vh; + align-items: center; + justify-content: center; + font-size: 3rem; +} + +.services { + background-image: url("https://wallpaperset.com/w/full/9/6/e/93952.jpg"); + background-position: center; + background-size: cover; + background-repeat: no-repeat; + color: #fff; + font-size: 100px; +} + +.products { + background-image: url("https://wallpaperset.com/w/full/9/6/e/93952.jpg"); + background-position: center; + background-size: fill; + background-repeat: no-repeat; + color: #fff; + font-size: 100px; +} + +.sign-up { + background-image: url("https://wallpaperset.com/w/full/9/6/e/93952.jpg"); + background-position: center; + background-size: cover; + background-repeat: no-repeat; + color: #fff; + font-size: 100px; +} diff --git a/src/App.js b/src/App.js new file mode 100644 index 0000000..4bf0212 --- /dev/null +++ b/src/App.js @@ -0,0 +1,25 @@ +import React from "react"; +import Navbar from "./components/Navbar"; +import { BrowserRouter as Router, Switch, Route } from "react-router-dom"; +import "./App.css"; +import Home from "./components/pages/Home"; +import Services from "./components/pages/Services"; +import Products from "./components/pages/Products"; +import SignUp from "./components/pages/SignUp"; +function App() { + return ( + <> + + + + + + + + + + + ); +} + +export default App; diff --git a/src/components/Button.css b/src/components/Button.css new file mode 100644 index 0000000..9313379 --- /dev/null +++ b/src/components/Button.css @@ -0,0 +1,38 @@ +:root { + --primary: #fff; +} +.btn { + padding: 8px 20px; + border-radius: 2px; + outline: none; + border: none; + cursor: pointer; +} +.btn--primary { + background-color: var(--primary); + color: #242424; + border: 1px solid var(--primary); +} +.btn--outline { + background-color: transparent; + color: #fff; + padding: 8px 20px; + border: 1px solid var(--primary); + transition: all 0.3s ease-out; + font-family: "Fondamento", cursive; +} +.btn--medium { + padding: 8px 20px; + font-size: 18px; +} +.btn--large { + padding: 12px 26px; + font-size: 20px; +} +.btn--medium:hover, +.btn--large:hover { + transition: all 0.3s ease-out; + background: #fff; + color: #242424; + transition: 250ms; +} diff --git a/src/components/Button.js b/src/components/Button.js new file mode 100644 index 0000000..c8918e5 --- /dev/null +++ b/src/components/Button.js @@ -0,0 +1,31 @@ +import React from "react"; +import "./Button.css"; +import { Link } from "react-router-dom"; +const STYLES = ["btn--primary", "btn--outline"]; + +const SIZES = ["btn--medium", "btn--large"]; + +export const Button = ({ + children, + type, + onClick, + buttonStyle, + buttonSize, +}) => { + const checkButtonStyle = STYLES.includes(buttonStyle) + ? buttonStyle + : STYLES[0]; + const checkButtonSize = SIZES.includes(buttonSize) ? buttonSize : SIZES[0]; + + return ( + + + + ); +}; diff --git a/src/components/CardItem.js b/src/components/CardItem.js new file mode 100644 index 0000000..9bc28ec --- /dev/null +++ b/src/components/CardItem.js @@ -0,0 +1,25 @@ +import React from "react"; +import { Link } from "react-router-dom"; + +function CardItem(props) { + return ( + <> +
  • + +
    + Travel Image +
    +
    +
    {props.text}
    +
    + +
  • + + ); +} + +export default CardItem; diff --git a/src/components/Cards.css b/src/components/Cards.css new file mode 100644 index 0000000..6ac4533 --- /dev/null +++ b/src/components/Cards.css @@ -0,0 +1,118 @@ +.cards { + padding: 4rem; + background: #fff; +} + +h1 { + text-align: center; +} + +.cards__container { + display: flex; + flex-flow: column; + align-items: center; + max-width: 1120px; + width: 90%; + margin: 0 auto; +} + +.cards__wrapper { + position: relative; + margin: 50px 0 45px; +} + +.cards__items { + margin-bottom: 24px; +} + +.cards__item { + display: flex; + flex: 1; + margin: 0 1rem; + border-radius: 10px; +} + +.cards__item__link { + display: flex; + flex-flow: column; + width: 100%; + box-shadow: 0 6px 20px rgba(56, 125, 255, 0.17); + -webkit-filter: drop-shadow(0 6px 20px rgba(56, 125, 255, 0.017)); + filter: drop-shadow(0 6px 20px rgba(56, 125, 255, 0.017)); + border-radius: 10px; + overflow: hidden; + text-decoration: none; +} + +.cards__item__pic-wrap { + position: relative; + width: 100%; + padding-top: 67%; + overflow: hidden; +} + +.fade-img { + animation-name: fade-img; + animation-duration: 2s; +} + +.cards__item__pic-wrap::after { + content: attr(data-category); + position: absolute; + bottom: 0; + margin-left: 10px; + padding: 6px 8px; + max-width: calc((100%) - 60px); + font-size: 12px; + font-weight: 700; + color: #fff; + background-color: black; + box-sizing: border-box; +} + +.cards__item__img { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + display: block; + width: 100%; + max-width: 100%; + height: 100%; + max-height: 100%; + object-fit: cover; + transition: all 0.2s linear; +} + +.cards__item__img:hover { + transform: scale(1.1); +} + +.cards__item__info { + padding: 20px 30px 30px; +} + +.cards__item__text { + color: #252e48; + font-size: 18px; + line-height: 24px; +} + +@media only screen and (min-width: 1200px) { + .content__blog__container { + width: 84%; + } +} + +@media only screen and (min-width: 1024px) { + .cards__items { + display: flex; + } +} + +@media only screen and (max-width: 1024px) { + .cards__item { + margin-bottom: 2rem; + } +} diff --git a/src/components/Cards.js b/src/components/Cards.js new file mode 100644 index 0000000..0a6bdf5 --- /dev/null +++ b/src/components/Cards.js @@ -0,0 +1,51 @@ +import React from "react"; +import "./Cards.css"; +import CardItem from "./CardItem"; + +function Cards() { + return ( +
    +

    Check out these Amazing reviews!

    +
    +
    +
      + + +
    +
      + + + +
    +
    +
    +
    + ); +} + +export default Cards; diff --git a/src/components/Footer.css b/src/components/Footer.css new file mode 100644 index 0000000..a34fd38 --- /dev/null +++ b/src/components/Footer.css @@ -0,0 +1,161 @@ +.footer-container { + background-color: #242424; + padding: 4rem 0 2rem 0; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; +} + +.footer-subscription { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + text-align: center; + + margin-bottom: 24px; + padding: 24px; + color: #fff; +} + +.footer-subscription > p { + font-family: "Fondamento", cursive; +} + +.footer-subscription-heading { + margin-bottom: 24px; + font-size: 24px; +} + +.footer-subscription-text { + margin-bottom: 24px; + font-size: 20px; +} + +.footer-input { + padding: 8px 20px; + border-radius: 2px; + margin-right: 10px; + outline: none; + border: none; + font-size: 18px; + margin-bottom: 16px; + border: 1px solid #fff; +} + +.footer-links { + width: 100%; + max-width: 1000px; + display: flex; + justify-content: center; +} + +.footer-link-wrapper { + display: flex; +} + +.footer-link-items { + display: flex; + flex-direction: column; + align-items: flex-start; + margin: 16px; + text-align: left; + width: 160px; + box-sizing: border-box; +} + +.footer-link-items h2 { + margin-bottom: 16px; +} + +.footer-link-items > h2 { + color: #fff; +} + +.footer-link-items a { + color: #fff; + text-decoration: none; + margin-bottom: 0.5rem; +} + +.footer-link-items a:hover { + color: #e9e9e9; + transition: 0.3s ease-out; +} + +.footer-email-form h2 { + margin-bottom: 2rem; +} + +.footer-input::placeholder { + color: #b1b1b1; +} + +/* Social Icons */ +.social-icon-link { + color: #fff; + font-size: 24px; +} + +.social-media { + max-width: 1000px; + width: 100%; +} +.social-media-wrap { + display: flex; + justify-content: space-between; + align-items: center; + width: 90%; + max-width: 1000px; + margin: 40px auto 0 auto; +} + +.social-icons { + display: flex; + justify-content: space-between; + align-items: center; + width: 240px; +} + +.social-logo { + color: #fff; + justify-self: start; + margin-left: 20px; + cursor: pointer; + text-decoration: none; + font-size: 2rem; + display: flex; + align-items: center; + margin-bottom: 16px; +} + +.website-rights { + color: #fff; + margin-bottom: 16px; +} + +@media screen and (max-width: 820px) { + .footer-links { + padding-top: 2rem; + } + + .footer-input { + width: 100%; + } + + .btn { + width: 100%; + } + + .footer-link-wrapper { + flex-direction: column; + } + + .social-media-wrap { + flex-direction: column; + } +} + +@media screen and (max-width: 768px) { +} diff --git a/src/components/Footer.js b/src/components/Footer.js new file mode 100644 index 0000000..cded00b --- /dev/null +++ b/src/components/Footer.js @@ -0,0 +1,115 @@ +import React from "react"; +import "./Footer.css"; +import { Button } from "./Button"; +import { Link } from "react-router-dom"; + +function Footer() { + return ( +
    +
    +

    + Join us to get a weekly newsletter and receive our best hotel deals +

    +

    + You can unsubscribe any time. +

    +
    +
    + + +
    +
    +
    + +
    + +
    +
    + ); +} + +export default Footer; diff --git a/src/components/HeroSection.css b/src/components/HeroSection.css new file mode 100644 index 0000000..cf6b1c7 --- /dev/null +++ b/src/components/HeroSection.css @@ -0,0 +1,64 @@ +.hero-container { + background: url("https://wallpaperset.com/w/full/9/6/e/93952.jpg") center + center/cover no-repeat; + height: 100vh; + width: 100%; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + box-shadow: inset 0 0 0 1000px rgba(0, 0, 0, 0.2); + object-fit: contain; +} + +.hero-container > h1 { + color: #fff; + font-size: 100px; + margin-top: -100px; +} + +.hero-container > p { + margin-top: 8px; + color: #fff; + font-size: 32px; + font-family: "Fondamento", cursive; +} + +.hero-btns { + margin-top: 32px; +} + +.hero-btns .btn { + margin: 6px; +} + +.fa-play-circle { + margin-left: 4px; +} + +@media screen and (max-width: 960px) { + .hero-container > h1 { + font-size: 70px; + margin-top: -150px; + } +} + +@media screen and (max-width: 768px) { + .hero-container > h1 { + font-size: 50px; + margin-top: -100px; + } + + .hero-container > p { + font-size: 30px; + } + + .btn-mobile { + display: block; + text-decoration: none; + } + + .btn { + width: 100%; + } +} diff --git a/src/components/HeroSection.js b/src/components/HeroSection.js new file mode 100644 index 0000000..b2c631f --- /dev/null +++ b/src/components/HeroSection.js @@ -0,0 +1,33 @@ +import React from "react"; +import "../App.css"; +import { Button } from "./Button"; +import "./HeroSection.css"; +function HeroSection() { + return ( +
    + {/*
    + ); +} + +export default HeroSection; diff --git a/src/components/Navbar.css b/src/components/Navbar.css new file mode 100644 index 0000000..7ae0df6 --- /dev/null +++ b/src/components/Navbar.css @@ -0,0 +1,158 @@ +.navbar { + background: linear-gradient(90deg, rgb(28, 27, 27) 0%, rgb(26, 23, 23) 100%); + height: 80px; + display: flex; + justify-content: center; + align-items: center; + font-size: 1.2rem; + position: sticky; + top: 0; + z-index: 999; +} + +.navbar-container { + display: flex; + justify-content: center; + align-items: center; + height: 80px; + max-width: 1500px; +} + +.navbar-logo { + color: #fff; + justify-self: start; + margin-left: 20px; + cursor: pointer; + text-decoration: none; + font-size: 2rem; + display: flex; + align-items: center; +} + +.fa-typo3 { + margin-left: 0.5rem; + font-size: 1.8rem; +} + +.nav-menu { + display: grid; + grid-template-columns: repeat(4, auto); + grid-gap: 10px; + list-style: none; + text-align: center; + width: 60vw; + justify-content: end; + margin-right: 2rem; +} + +.nav-item { + height: 80px; +} + +.nav-links { + color: #fff; + display: flex; + align-items: center; + text-decoration: none; + padding: 0.5rem 1rem; + height: 100%; +} + +.nav-links:hover { + border-bottom: 4px solid #fff; + transition: all 0.2s ease-out; +} + +.fa-bars { + color: #fff; +} + +.nav-links-mobile { + display: none; +} + +.menu-icon { + display: none; +} + +@media screen and (max-width: 960px) { + .NavbarItems { + position: relative; + } + + .nav-menu { + display: flex; + flex-direction: column; + width: 100%; + height: 90vh; + position: absolute; + top: 80px; + left: -100%; + opacity: 1; + transition: all 0.5s ease; + } + + .nav-menu.active { + background: #242222; + left: 0; + opacity: 1; + transition: all 0.5s ease; + z-index: 1; + } + + .nav-links { + text-align: center; + padding: 2rem; + width: 100%; + display: table; + } + + .nav-links:hover { + background-color: #fff; + color: #242424; + border-radius: 0; + } + + .navbar-logo { + position: absolute; + top: 0; + left: 0; + transform: translate(25%, 50%); + } + + .menu-icon { + display: block; + position: absolute; + top: 0; + right: 0; + transform: translate(-100%, 60%); + font-size: 1.8rem; + cursor: pointer; + } + + .fa-times { + color: #fff; + font-size: 2rem; + } + + .nav-links-mobile { + display: block; + text-align: center; + margin: 2rem auto; + border-radius: 4px; + width: 80%; + text-decoration: none; + font-size: 1.5rem; + background-color: transparent; + color: #fff; + padding: 14px 20px; + border: 1px solid #fff; + transition: all 0.3s ease-out; + } + + .nav-links-mobile:hover { + background: #fff; + color: #242424; + transition: 250ms; + } +} diff --git a/src/components/Navbar.js b/src/components/Navbar.js new file mode 100644 index 0000000..ab8a3c3 --- /dev/null +++ b/src/components/Navbar.js @@ -0,0 +1,73 @@ +import React, { useState, useEffect } from "react"; +import { Button } from "./Button"; +import { Link } from "react-router-dom"; +import "./Navbar.css"; +function Navbar() { + const [click, setClick] = useState(false); + const [button, setButton] = useState(true); + + const handleClick = () => setClick(!click); + const closeMobileMenu = () => setClick(false); + + const showButton = () => { + if (window.innerWidth <= 960) { + setButton(false); + } else { + setButton(true); + } + }; + useEffect(() => { + showButton(); + }, []); + window.addEventListener("resize", showButton); + return ( + <> + + + ); +} + +export default Navbar; diff --git a/src/components/pages/AboutCardItem.js b/src/components/pages/AboutCardItem.js new file mode 100644 index 0000000..dca46fe --- /dev/null +++ b/src/components/pages/AboutCardItem.js @@ -0,0 +1,25 @@ +import React from "react"; +import { Link } from "react-router-dom"; + +function AboutCardItem(props) { + return ( + <> +
  • + +
    + Travel Image +
    +
    +
    {props.text}
    +
    + +
  • + + ); +} + +export default AboutCardItem; diff --git a/src/components/pages/AboutCards.js b/src/components/pages/AboutCards.js new file mode 100644 index 0000000..6bb9282 --- /dev/null +++ b/src/components/pages/AboutCards.js @@ -0,0 +1,58 @@ +import React from "react"; +import "../Cards.css"; +import AboutCardItem from "./AboutCardItem"; + +function AboutCards() { + return ( +
    +

    What is WAITQR?

    +
    +
    +
      + + +
    +
      + + + + +
    +
    +
    +
    + ); +} + +export default AboutCards; diff --git a/src/components/pages/Home.js b/src/components/pages/Home.js new file mode 100644 index 0000000..efc0b43 --- /dev/null +++ b/src/components/pages/Home.js @@ -0,0 +1,16 @@ +import React from "react"; +import "../../App.css"; +import Cards from "../Cards"; +import Footer from "../Footer"; +import HeroSection from "../HeroSection"; + +function Home() { + return ( + <> + + +