Refactoring because of local scripts and tabs #9

Merged
cami merged 1 commit from refactor/code_externalthings into main 2021-05-27 01:08:42 +00:00
14 changed files with 393 additions and 380 deletions

View file

@ -1,15 +1,11 @@
import React, { useState, useEffect, Component } from 'react'; import React, { useState, useEffect, Component } from "react";
import Navbar from './components/Navbar'; import Navbar from "./components/Navbar";
import './App.css'; import "./App.css";
import { import { BrowserRouter as Router, Switch, Route } from "react-router-dom";
BrowserRouter as Router, import Home from "./components/pages/Home";
Switch, import Services from "./components/pages/Services";
Route import Products from "./components/pages/Products";
} from 'react-router-dom'; import SignUp from "./components/pages/SignUp";
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() { function App() {
return ( return (
@ -17,10 +13,10 @@ function App() {
<Router> <Router>
<Navbar /> <Navbar />
<Switch> <Switch>
<Route path='/' exact component={Home} /> <Route path="/" exact component={Home} />
<Route path='/services' component={Services} /> <Route path="/services" component={Services} />
<Route path='/products' component={Products} /> <Route path="/products" component={Products} />
<Route path='sign-up' component={SignUp} /> <Route path="/sign-up" component={SignUp} />
</Switch> </Switch>
</Router> </Router>
</> </>

View file

@ -2,7 +2,7 @@ import React from "react";
import { Button } from "./components/Button"; import { Button } from "./components/Button";
import { Link } from "react-router-dom"; import { Link } from "react-router-dom";
import "./Footer.css"; import "./Footer.css";
import "@fortawesome/fontawesome-free/css/all.css" import "@fortawesome/fontawesome-free/css/all.css";
function Footer() { function Footer() {
return ( return (
@ -67,28 +67,31 @@ function Footer() {
<section className="social-media"> <section className="social-media">
<div className="social-media-wrap"> <div className="social-media-wrap">
<div className="footer-logo"> <div className="footer-logo">
<Link to='/' className="social-logo"> <Link to="/" className="social-logo">
TRVL <i className="fab fa-typo3"></i> TRVL <i className="fab fa-typo3"></i>
</Link> </Link>
</div> </div>
<small className="website-rights">TRVL © 2</small> <small className="website-rights">TRVL © 2</small>
<div className="social-icons"> <div className="social-icons">
<Link className="social-icon-link facebook" <Link
to='/' className="social-icon-link facebook"
to="/"
target="_blank" target="_blank"
aria-label="Facebook" aria-label="Facebook"
> >
<i className="fab fa-facebook-f"></i> <i className="fab fa-facebook-f"></i>
</Link> </Link>
<Link className="social-icon-link instagram" <Link
to='/' className="social-icon-link instagram"
to="/"
target="_blank" target="_blank"
aria-label="Instagram" aria-label="Instagram"
> >
<i className="fab fa-instagram"></i> <i className="fab fa-instagram"></i>
</Link> </Link>
<Link className="social-icon-link linkedin" <Link
to='/' className="social-icon-link linkedin"
to="/"
target="_blank" target="_blank"
aria-label="LinkedIn" aria-label="LinkedIn"
> >

View file

@ -1,44 +1,43 @@
:root { :root {
--primary: #fff; --primary: #fff;
} }
.btn { .btn {
padding: 8px 20px; padding: 8px 20px;
border-radius: 2px; border-radius: 2px;
outline: none; outline: none;
border: none; border: none;
cursor: pointer; cursor: pointer;
} }
.btn--primary { .btn--primary {
background-color: var(--primary); background-color: var(--primary);
color: #242424; color: #242424;
border: 1px solid var(--primary); border: 1px solid var(--primary);
} }
.btn--outline { .btn--outline {
background-color: transparent; background-color: transparent;
color: #fff; color: #fff;
padding: 8px 20px; padding: 8px 20px;
border: 1px solid var(--primary); border: 1px solid var(--primary);
transition: all 0.3s ease-out; transition: all 0.3s ease-out;
} }
.btn--medium { .btn--medium {
padding: 8px 20px; padding: 8px 20px;
font-size: 18px; font-size: 18px;
} }
.btn--large { .btn--large {
padding: 12px 26px; padding: 12px 26px;
font-size: 20px; font-size: 20px;
} }
.btn--large:hover, .btn--large:hover,
.btn--medium:hover { .btn--medium:hover {
transition: all 0.3s ease-out; transition: all 0.3s ease-out;
background: #fff; background: #fff;
color: #242424; color: #242424;
transition: 250ms; transition: 250ms;
} }

View file

@ -1,16 +1,16 @@
import React from 'react'; import React from "react";
import './Button.css'; import "./Button.css";
import { Link } from 'react-router-dom'; import { Link } from "react-router-dom";
const STYLES = ['btn--primary', 'btn--outline']; const STYLES = ["btn--primary", "btn--outline"];
const SIZES = ['btn--medium', 'btn--large']; const SIZES = ["btn--medium", "btn--large"];
export const Button = ({ export const Button = ({
children, children,
type, type,
onClick, onClick,
buttonStyle, buttonStyle,
buttonSize buttonSize,
}) => { }) => {
const checkButtonStyle = STYLES.includes(buttonStyle) const checkButtonStyle = STYLES.includes(buttonStyle)
? buttonStyle ? buttonStyle
@ -19,7 +19,7 @@ export const Button = ({
const checkButtonSize = SIZES.includes(buttonSize) ? buttonSize : SIZES[0]; const checkButtonSize = SIZES.includes(buttonSize) ? buttonSize : SIZES[0];
return ( return (
<Link to='sign-up' className='btn-mobile'> <Link to="sign-up" className="btn-mobile">
<button <button
className={`btn ${checkButtonStyle} ${checkButtonSize}`} className={`btn ${checkButtonStyle} ${checkButtonSize}`}
onClick={onClick} onClick={onClick}

View file

@ -1,5 +1,5 @@
import React from 'react' import React from "react";
import { Link } from 'react-router-dom' import { Link } from "react-router-dom";
function CardItem(props) { function CardItem(props) {
return ( return (
@ -7,7 +7,11 @@ function CardItem(props) {
<li className="cards__item"> <li className="cards__item">
<Link className="cards__item__link" to={props.path}> <Link className="cards__item__link" to={props.path}>
<figure className="cards__item__pic-wrap" data-category={props.label}> <figure className="cards__item__pic-wrap" data-category={props.label}>
<img src={props.src} alt="Travel Image" className="cards__item__img" /> <img
src={props.src}
alt="Travel Image"
className="cards__item__img"
/>
</figure> </figure>
<div className="cards__item__info"> <div className="cards__item__info">
<h5 className="cards__item__text">{props.text}</h5> <h5 className="cards__item__text">{props.text}</h5>
@ -15,7 +19,7 @@ function CardItem(props) {
</Link> </Link>
</li> </li>
</> </>
) );
} }
export default CardItem export default CardItem;

View file

@ -1,38 +1,38 @@
.cards { .cards {
padding: 4rem; padding: 4rem;
background: #fff; background: #fff;
} }
h1 { h1 {
text-align: center; text-align: center;
} }
.cards__container { .cards__container {
display: flex; display: flex;
flex-flow: column; flex-flow: column;
align-items: center; align-items: center;
max-width: 1120px; max-width: 1120px;
width: 90%; width: 90%;
margin: 0 auto; margin: 0 auto;
} }
.cards__wrapper { .cards__wrapper {
position: relative; position: relative;
margin: 50px 0 45px; margin: 50px 0 45px;
} }
.cards__items { .cards__items {
margin-bottom: 24px; margin-bottom: 24px;
} }
.cards__item { .cards__item {
display: flex; display: flex;
flex: 1; flex: 1;
margin: 0 1rem; margin: 0 1rem;
border-radius: 10px; border-radius: 10px;
} }
.cards__item__link { .cards__item__link {
display: flex; display: flex;
flex-flow: column; flex-flow: column;
width: 100%; width: 100%;
@ -42,21 +42,21 @@
border-radius: 10px; border-radius: 10px;
overflow: hidden; overflow: hidden;
text-decoration: none; text-decoration: none;
} }
.cards__item__pic-wrap { .cards__item__pic-wrap {
position: relative; position: relative;
width: 100%; width: 100%;
padding-top: 67%; padding-top: 67%;
overflow: hidden; overflow: hidden;
} }
.fade-img { .fade-img {
animation-name: fade-img; animation-name: fade-img;
animation-duration: 2s; animation-duration: 2s;
} }
.cards__item__pic-wrap::after { .cards__item__pic-wrap::after {
content: attr(data-category); content: attr(data-category);
position: absolute; position: absolute;
bottom: 0; bottom: 0;
@ -68,9 +68,9 @@
color: #fff; color: #fff;
background-color: #1f98f4; background-color: #1f98f4;
box-sizing: border-box; box-sizing: border-box;
} }
.cards__item__img { .cards__item__img {
position: absolute; position: absolute;
top: 0; top: 0;
right: 0; right: 0;
@ -83,37 +83,36 @@
max-height: 100%; max-height: 100%;
object-fit: cover; object-fit: cover;
transition: all 0.2s linear; transition: all 0.2s linear;
} }
.cards__item__img:hover { .cards__item__img:hover {
transform: scale(1.1); transform: scale(1.1);
} }
.cards__item__info { .cards__item__info {
padding: 20px 30px 30px; padding: 20px 30px 30px;
} }
.cards__item__text { .cards__item__text {
color: #252e48; color: #252e48;
font-size: 18px; font-size: 18px;
line-height: 24px; line-height: 24px;
} }
@media only screen and (min-width: 1200px) { @media only screen and (min-width: 1200px) {
.content__blog__container { .content__blog__container {
width: 84%; width: 84%;
} }
} }
@media only screen and (min-width: 1024px) { @media only screen and (min-width: 1024px) {
.cards__items { .cards__items {
display: flex; display: flex;
} }
} }
@media only screen and (max-width: 1024px) { @media only screen and (max-width: 1024px) {
.cards__item { .cards__item {
margin-bottom: 2rem; margin-bottom: 2rem;
} }
} }

View file

@ -1,10 +1,10 @@
import React from 'react' import React from "react";
import CardItem from './CardItem' import CardItem from "./CardItem";
import './Cards.css' import "./Cards.css";
function Cards() { function Cards() {
return ( return (
<div className='cards'> <div className="cards">
<h1>Check out these EPIC Destinations</h1> <h1>Check out these EPIC Destinations</h1>
<div className="cards__container"> <div className="cards__container">
<div className="cards__wrapper"> <div className="cards__wrapper">
@ -45,7 +45,7 @@ function Cards() {
</div> </div>
</div> </div>
</div> </div>
) );
} }
export default Cards export default Cards;

View file

@ -1,32 +1,31 @@
import React from 'react'; import React from "react";
import '../App.css'; import "../App.css";
import { Button } from './Button'; import { Button } from "./Button";
import './HeroSection.css'; import "./HeroSection.css";
import '@fortawesome/fontawesome-free/css/all.css' import "@fortawesome/fontawesome-free/css/all.css";
function HeroSection() { function HeroSection() {
return ( return (
<div className='hero-container'> <div className="hero-container">
<h1>ADVENTURE wartet</h1> <h1>Herzlich Willkommen</h1>
<p>What are you waiting for?</p>
<div className="hero-btns"> <div className="hero-btns">
<Button <Button
className='btns' className="btns"
buttonStyle='btn--outline' buttonStyle="btn--outline"
buttonSize='btn--large' buttonSize="btn--large"
> >
GET STARTED GET STARTED
</Button> </Button>
<Button <Button
className='btns' className="btns"
buttonStyle='btn--primary' buttonStyle="btn--primary"
buttonSize='btn--large' buttonSize="btn--large"
> >
WATCH TRAILER <i className='far fa-play-circle' /> WATCH TRAILER <i className="far fa-play-circle" />
</Button> </Button>
</div> </div>
</div> </div>
) );
} }
export default HeroSection export default HeroSection;

View file

@ -1,8 +1,8 @@
import React, { useState, useEffect } from 'react'; import React, { useState, useEffect } from "react";
import { Button } from './Button'; import { Button } from "./Button";
import { Link } from 'react-router-dom'; import { Link } from "react-router-dom";
import './Navbar.css'; import "./Navbar.css";
import '@fortawesome/fontawesome-free/css/all.css' import "@fortawesome/fontawesome-free/css/all.css";
function Navbar() { function Navbar() {
const [click, setClick] = useState(false); const [click, setClick] = useState(false);
@ -24,38 +24,38 @@ function Navbar() {
showButton(); showButton();
}, []); }, []);
window.addEventListener('resize', showButton); window.addEventListener("resize", showButton);
return ( return (
<> <>
<nav className='navbar'> <nav className="navbar">
<div className='navbar-container'> <div className="navbar-container">
<Link to='/' className='navbar-logo' onClick={closeMobileMenu}> <Link to="/" className="navbar-logo" onClick={closeMobileMenu}>
TRVL TRVL
<i class='fab fa-typo3' /> <i class="fab fa-typo3" />
</Link> </Link>
<div className='menu-icon' onClick={handleClick}> <div className="menu-icon" onClick={handleClick}>
<i className={click ? 'fas fa-times' : 'fas fa-bars'} /> <i className={click ? "fas fa-times" : "fas fa-bars"} />
</div> </div>
<ul className={click ? 'nav-menu active' : 'nav-menu'}> <ul className={click ? "nav-menu active" : "nav-menu"}>
<li className='nav-item'> <li className="nav-item">
<Link to='/' className='nav-links' onClick={closeMobileMenu}> <Link to="/" className="nav-links" onClick={closeMobileMenu}>
Home Home
</Link> </Link>
</li> </li>
<li className='nav-item'> <li className="nav-item">
<Link <Link
to='/services' to="/services"
className='nav-links' className="nav-links"
onClick={closeMobileMenu} onClick={closeMobileMenu}
> >
Services Services
</Link> </Link>
</li> </li>
<li className='nav-item'> <li className="nav-item">
<Link <Link
to='/products' to="/products"
className='nav-links' className="nav-links"
onClick={closeMobileMenu} onClick={closeMobileMenu}
> >
Products Products
@ -64,15 +64,15 @@ function Navbar() {
<li> <li>
<Link <Link
to='/sign-up' to="/sign-up"
className='nav-links-mobile' className="nav-links-mobile"
onClick={closeMobileMenu} onClick={closeMobileMenu}
> >
Sign Up Sign Up
</Link> </Link>
</li> </li>
</ul> </ul>
{button && <Button buttonStyle='btn--outline'>SIGN UP</Button>} {button && <Button buttonStyle="btn--outline">SIGN UP</Button>}
</div> </div>
</nav> </nav>
</> </>

View file

@ -1,8 +1,8 @@
import React from 'react'; import React from "react";
import '../../App.css' import "../../App.css";
import HeroSection from '../HeroSection' import HeroSection from "../HeroSection";
import Cards from '../Cards' import Cards from "../Cards";
import Footer from '../../Footer'; import Footer from "../../Footer";
function Home() { function Home() {
return ( return (
@ -11,7 +11,7 @@ function Home() {
<Cards /> <Cards />
<Footer /> <Footer />
</> </>
) );
} }
export default Home; export default Home;

View file

@ -1,8 +1,12 @@
import React from 'react' import React from "react";
import '../../App.css' import "../../App.css";
import Footer from "../../Footer";
export default function Products() { export default function Products() {
return ( return (
<h1 className='products'>PRODUCTS</h1> <>
<h1 className="products">PRODUCTS</h1>
<Footer />
</>
); );
} }

View file

@ -1,6 +1,12 @@
import React from 'react' import React from "react";
import '../../App.css' import "../../App.css";
import Footer from "../../Footer";
export default function Services() { export default function Services() {
return <h1 className="services">SERVICES</h1>; return (
<>
<h1 className="services">SERVICES</h1>
<Footer />
</>
);
} }

View file

@ -1,6 +1,12 @@
import React from 'react' import React from "react";
import '../../App.css' import "../../App.css";
import Footer from "../../Footer";
export default function SignUp() { export default function SignUp() {
return <h1 className="sign-up">SIGN UP</h1>; return (
<>
<h1 className="sign-up">SIGN UP</h1>
<Footer />
</>
);
} }

View file

@ -1,8 +1,5 @@
import React from 'react'; import React from "react";
import ReactDOM from 'react-dom'; import ReactDOM from "react-dom";
import App from './App'; import App from "./App";
ReactDOM.render( ReactDOM.render(<App />, document.getElementById("root"));
<App />,
document.getElementById('root')
);