scr/components/Services 폴더 만들기
index.js 와 ServiceElements.js 파일 만들기
index.js 에 다음과 같이 작성하기
import React from 'react'
import Icon1 from '../../images/svg-1.svg'
import Icon2 from '../../images/svg-2.svg'
import Icon3 from '../../images/svg-3.svg'
import {ServicesContainer, ServicesH1, ServicesWrapper, ServicesCard, ServicesIcon, ServicesH2, ServicesP} from './ServiceElements'
const Services = () => {
return (
<ServicesContainer id='services'>
<ServicesH1>Our services</ServicesH1>
<ServicesWrapper>
<ServicesCard>
<ServicesIcon src={Icon1}/>
<ServicesH2>Reduce expenses</ServicesH2>
<ServicesP>We help your fess and increase your overall revenue.</ServicesP>
</ServicesCard>
<ServicesCard>
<ServicesIcon src={Icon2}/>
<ServicesH2>Virtual Offices</ServicesH2>
<ServicesP>you can acess our plataform online anywhere in the world.</ServicesP>
</ServicesCard>
<ServicesCard>
<ServicesIcon src={Icon3}/>
<ServicesH2>Reduce expenses</ServicesH2>
<ServicesP>Unlock our special membership card that returns 5% cash back.</ServicesP>
</ServicesCard>
</ServicesWrapper>
</ServicesContainer>
)
}
export default Services
1) 컴포넌트부터 추가하기
2) props만들기
import {ServicesContainer, ServicesH1, ServicesWrapper, ServicesCard, ServicesIcon, ServicesH2, ServicesP} from './ServiceElements'
3) Icon들 가져오기
import Icon1 from '../../images/svg-1.svg'
import Icon2 from '../../images/svg-2.svg'
import Icon3 from '../../images/svg-3.svg'
3)
ServiceCard 복붙해서 여러 개 만들기
3)
import React, {useState} from 'react'
import Footer from '../components/Footer';
import Hero from '../components/Hero'
import Info from '../components/Info'
import { homeObjOne, homeObjTwo, homeObjThree} from '../components/Info/Data';
import Navbar from '../components/Navbar'
import Services from '../components/Services';
import Sidebar from '../components/SideBar'
const Home = () => {
const [isOpen, setIsOpen] = useState(false)
const toggle = () =>{
setIsOpen(!isOpen);
}
return (
<>
<Sidebar isOpen={isOpen} toggle={toggle} />
<Navbar toggle={toggle}/>
<Hero />
<Info {...homeObjOne}/>
<Info {...homeObjTwo}/>
<Services />
<Info {...homeObjThree}/>
<Footer />
</>
)
}
export default Home
1) 컴포넌트 가져오기/추가
2) Service의 경우 딱히 props의 값은 없다.
import styled from 'styled-components'
export const ServicesContainer = styled.div`
height: 800px;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
background: #010606;
@media screen and (max-width: 768px) {
height: 1100px;
}
@media screen and (max-width: 480px) {
height: 1300px;
}
`
export const ServicesWrapper = styled.div`
max-width: 1000px;
margin: 0 auto;
display: grid;
grid-template-columns: 1fr 1fr 1fr;
align-items: center;
grid-gap: 16px;
padding: 0 50px;
@media screen and (max-width: 1000px) {
grid-template-columns: 1fr 1fr;
}
@media screen and (max-width: 786px) {
grid-template-columns: 1fr;
padding: 0 20px;
}
`
export const ServicesCard = styled.div`
background: #fff;
display: flex;
flex-direction: column;
justify-content: flex-start;
align-items: center;
border-radius: 10px;
max-height: 340px;
padding: 30px;
box-shadow: 0 1px 3px rgba(0,0,0,0.2);
transition: all 0.2s ease-in-out;
&:hover {
transform: scale(1.02);
transition: all 0.2s ease-in-out;
cursor:pointer;
}
`
export const ServicesIcon = styled.img`
height: 160px;
width: 160px;
margin-bottom: 10px;
`
export const ServicesH1 = styled.h1`
font-size: 2.5rem;
color: #fff;
margin-bottom: 64px;
@media screen and (max-width: 480px) {
font-size: 2rem;
}
`
export const ServicesH2 = styled.h2`
font-size: 1rem;
margin-bottom: 10px;
`
export const ServicesP = styled.p`
font-size: 1rem;
text-align: center;
`
1) ServicesContainer 만들기
2) ServicesWrapper 만들기
3) ServicesCard 만들기
4) ServicesIcon 만들기
5) ServiceH1 만들기
6) ServiceH2 만들기
7) ServiceP 만들기
import React from 'react'
import ScrollToTop from '../components/ScrollToTop'
import SignIn from '../Signin'
const SigninPage = () => {
return (
<>
<ScrollToTop />
<SignIn />
</>
)
}
export default SigninPage
1) 컴포넌트 추가하기
(App.js)
import './App.css';
import {BrowserRouter as Router, Switch, Route} from 'react-router-dom'
import Home from './pages';
import SigninPage from './pages/signin';
function App() {
return (
<Router>
<Switch>
<Route path='/' component={Home} exact />
<Route path='/signin' component={SigninPage} exact />
</Switch>
</Router>
);
}
export default App;
1) path 추가하기
2)
src/components/Footer 폴더 추가하기
Footer폴더에 index.js와 FooterElements.js 파일 추가하기
index.js 다음과 같이 작성
import React from 'react'
import { FaFacebook, FaInstagram, FaLinkedin, FaTwitter, FaYoutube } from 'react-icons/fa'
import { FooterContainer, FooterWrap, FooterLinkWrapper, FooterLinkItems, FooterLinkContainer, FooterLinkTitle, FooterLink, SocialIconLink, SocialIcons, SocialLogo, SocialMedia, SocialMediaWrap, WebsiteRights } from './FooterElements'
import { animateScroll as scroll } from 'react-scroll';
const Footer = () => {
const toggleHome = () => {
scroll.scrollToTop();
}
return (
<FooterContainer>
<FooterWrap>
<FooterLinkContainer>
<FooterLinkWrapper>
<FooterLinkItems>
<FooterLinkTitle>About us</FooterLinkTitle>
<FooterLink to='/'>How it works</FooterLink>
<FooterLink to='/'>Testimonials</FooterLink>
<FooterLink to='/'>Carrers</FooterLink>
<FooterLink to='/'>Investor</FooterLink>
<FooterLink to='/'>Terms of Service</FooterLink>
</FooterLinkItems>
<FooterLinkItems>
<FooterLinkTitle>Contact Us</FooterLinkTitle>
<FooterLink to='/'>Contact</FooterLink>
<FooterLink to='/'>Support</FooterLink>
<FooterLink to='/'>Destinations</FooterLink>
<FooterLink to='/'>Sponsorships</FooterLink>
</FooterLinkItems>
</FooterLinkWrapper>
<FooterLinkWrapper>
<FooterLinkItems>
<FooterLinkTitle>Videos</FooterLinkTitle>
<FooterLink to='/'>Submit Video</FooterLink>
<FooterLink to='/'>Ambassadors</FooterLink>
<FooterLink to='/'>Agency</FooterLink>
<FooterLink to='/'>Influencer</FooterLink>
</FooterLinkItems>
<FooterLinkItems>
<FooterLinkTitle>Social Media</FooterLinkTitle>
<FooterLink to='/'>Instagram</FooterLink>
<FooterLink to='/'>Facebook</FooterLink>
<FooterLink to='/'>Youtube</FooterLink>
<FooterLink to='/'>Twitter</FooterLink>
</FooterLinkItems>
</FooterLinkWrapper>
</FooterLinkContainer>
<SocialMedia>
<SocialMediaWrap>
<SocialLogo to='/' onClick={toggleHome}>
dolla
</SocialLogo>
<WebsiteRights>dolla © {new Date().getFullYear()} All rights reserved.</WebsiteRights>
<SocialIcons>
<SocialIconLink href='/' target='_blank' arial-label='Facebook'>
<FaFacebook />
</SocialIconLink>
<SocialIconLink href='//www.instagram.com/leonardtcomdt/' target='_blank' arial-label='Instagram'>
<FaInstagram/>
</SocialIconLink>
<SocialIconLink href='//www.youtube.com/channel/UCF6Cz50AqAJcg6JC5LDRElg/videos?view_as=subscriber' target='_blank' arial-label='Youtube'>
<FaYoutube />
</SocialIconLink>
<SocialIconLink href='/' target='_blank' arial-label='Twitter'>
<FaTwitter/>
</SocialIconLink>
<SocialIconLink href='//www.linkedin.com/in/leonardtlauenstein/' target='_blank' arial-label='Linkedin'>
<FaLinkedin />
</SocialIconLink>
</SocialIcons>
</SocialMediaWrap>
</SocialMedia>
</FooterWrap>
</FooterContainer>
)
}
export default Footer
1) 컴포넌트 추가
2)(선행작업: 5번) props 추가
import { FooterContainer, FooterWrap, FooterLinkWrapper, FooterLinkItems, FooterLinkContainer, FooterLinkTitle, FooterLink, SocialIconLink, SocialIcons, SocialLogo, SocialMedia, SocialMediaWrap, WebsiteRights } from './FooterElements'
3) SocialMedia 부분 디테일 작업하기
4) 소셜미디어 아이콘 가져오기
import { FaFacebook, FaInstagram, FaLinkedin, FaTwitter, FaYoutube } from 'react-icons/fa'
import React, {useState} from 'react'
import Footer from '../components/Footer';
import Hero from '../components/Hero'
import Info from '../components/Info'
import { homeObjOne, homeObjTwo, homeObjThree} from '../components/Info/Data';
import Navbar from '../components/Navbar'
import Services from '../components/Services';
import Sidebar from '../components/SideBar'
const Home = () => {
const [isOpen, setIsOpen] = useState(false)
const toggle = () =>{
setIsOpen(!isOpen);
}
return (
<>
<Sidebar isOpen={isOpen} toggle={toggle} />
<Navbar toggle={toggle}/>
<Hero />
<Info {...homeObjOne}/>
<Info {...homeObjTwo}/>
<Services />
<Info {...homeObjThree}/>
<Footer />
</>
)
}
export default Home
import styled from 'styled-components'
import {Link} from 'react-router-dom'
export const FooterContainer = styled.footer`
background-color: #101522;
`
export const FooterWrap = styled.div`
padding: 48px 24px;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
max-width: 1100px;
margin: 0 auto;
`
export const FooterLinkContainer = styled.div`
display: flex;
justify-content: center;
@media screen and (max-width: 820px) {
padding-top: 32px;
}
`
export const FooterLinkWrapper = styled.div`
display: flex;
@media screen and (max-width: 820px) {
flex-direction: column;
}
`
export const FooterLinkItems = styled.div`
display: flex;
flex-direction: column;
align-items: flex-start;
margin: 16px;
text-align: left;
width: 160px;
box-sizing: border-box;
color: #fff;
@media screen and (max-width: 420px) {
margin: 0;
padding: 10px;
width: 100%;
}
`
export const FooterLinkTitle = styled.h1`
font-size: 14px;
margin-bottom: 16px;
`
export const FooterLink = styled(Link)`
color: #fff;
text-decoration: none;
margin-bottom: 0.5rem;
font-size: 14px;
&:hover {
color: #01bf71;
transition: 0.3s ease-in-out;
}
`
export const SocialMedia = styled.section`
max-width: 1000px;
width: 100%;
`
export const SocialMediaWrap = styled.div`
display: flex;
justify-content: space-between;
align-items: center;
max-width: 1100px;
margin: 40px auto 0 auto;
@media screen and (max-width: 820px) {
flex-direction: column;
}
`
export const SocialLogo = styled(Link)`
color: #fff;
justify-self: start;
cursor: pointer;
text-decoration: none;
font-size: 1.5rem;
display: flex;
align-items: center;
margin-bottom: 16px;
font-weight: bold;
`
export const WebsiteRights = styled.small`
color: #fff;
margin-bottom: 16px;
`
export const SocialIcons = styled.div`
display: flex;
justify-content: space-between;
align-items: center;
width: 240px;
`
export const SocialIconLink = styled.a`
color: #fff;
font-size: 24px;
`
1) FooterContainer 설정
-footer 디자인
2) FooterWrap 설정
3) FooterLinksContainer 설정
4) FooterLinksWrapper 설정
5) FooterLinkItems 설정
6)FooterLinkTitle 설정
7) FooterLink 설정
8) SocialMedia 설정
9) SocialMediaWrap 설정
10) SocialLogo 설정
-Link를 스타일링한다
-좌측에 위치해 있다.
11) WebsiteRights 설정
-small 을 스타일링한다
12) SocialIcons 설정
13) SocialIconLink 설정