first commit
This commit is contained in:
25
src/components/Candidate/Candidate.js
Normal file
25
src/components/Candidate/Candidate.js
Normal file
@ -0,0 +1,25 @@
|
||||
import React from 'react';
|
||||
import { NavLink } from 'react-router-dom';
|
||||
|
||||
// import PhotoBlock from './PhotoBlock';
|
||||
|
||||
// import { candidatesList } from '../Home/Home'
|
||||
|
||||
import classes from './Candidate.module.scss';
|
||||
|
||||
const Candidate = () => {
|
||||
// const { id: candidateId } = useParams();
|
||||
// const currentCandidate = candidatesList.find((el) => el.id === Number(candidateId));
|
||||
|
||||
return (
|
||||
<div className={classes.wrapper}>
|
||||
<NavLink to="/">Home</NavLink>
|
||||
{/* <h1>
|
||||
Candidate name: <span>{currentCandidate.name}</span>
|
||||
</h1>
|
||||
<PhotoBlock /> */}
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default Candidate;
|
4
src/components/Candidate/Candidate.module.scss
Normal file
4
src/components/Candidate/Candidate.module.scss
Normal file
@ -0,0 +1,4 @@
|
||||
.wrapper {
|
||||
font-size: 30px;
|
||||
color: red;
|
||||
}
|
12
src/components/Candidate/PhotoBlock.js
Normal file
12
src/components/Candidate/PhotoBlock.js
Normal file
@ -0,0 +1,12 @@
|
||||
import React from 'react';
|
||||
|
||||
const PhotoBlock = () => {
|
||||
return (
|
||||
<div>
|
||||
PhotoBlock
|
||||
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default PhotoBlock;
|
3
src/components/Candidate/index.js
Normal file
3
src/components/Candidate/index.js
Normal file
@ -0,0 +1,3 @@
|
||||
import Candidate from './Candidate';
|
||||
|
||||
export default Candidate;
|
17
src/components/Home/Home.js
Normal file
17
src/components/Home/Home.js
Normal file
@ -0,0 +1,17 @@
|
||||
import React from 'react';
|
||||
import Outstaffing from './sections/Outstaffing';
|
||||
import Description from './sections/Description';
|
||||
|
||||
const Home = () => {
|
||||
return (
|
||||
<div>
|
||||
{/* <h1>HomePage</h1>
|
||||
<ul>{renderCandidatesList}</ul> */}
|
||||
|
||||
<Outstaffing />
|
||||
<Description />
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default Home;
|
3
src/components/Home/index.js
Normal file
3
src/components/Home/index.js
Normal file
@ -0,0 +1,3 @@
|
||||
import Home from './Home';
|
||||
|
||||
export default Home;
|
74
src/components/Home/sections/Description.js
Normal file
74
src/components/Home/sections/Description.js
Normal file
@ -0,0 +1,74 @@
|
||||
import React from 'react';
|
||||
import style from './Description.module.scss';
|
||||
import photo from '../../../images/medium_male.png';
|
||||
import rectangle from '../../../images/rectangle_secondPage.png';
|
||||
import arrowLeft from '../../../images/arrow_left.png';
|
||||
import arrowRight from '../../../images/arrow_right.png';
|
||||
import { Link } from 'react-router-dom';
|
||||
|
||||
export const candidatesList = [
|
||||
{ id: 1, name: 'Artyom' },
|
||||
{ id: 2, name: 'Vitaliy' },
|
||||
];
|
||||
|
||||
const Description = () => {
|
||||
return (
|
||||
<section className={style.description}>
|
||||
<div className="container">
|
||||
<div className={style.description__wrapper}>
|
||||
{candidatesList.map((el) => (
|
||||
<div className="row" key={el.id}>
|
||||
<div className="col-2">
|
||||
<img className={style.description__img} src={photo} alt="" />
|
||||
</div>
|
||||
<div className="col-6">
|
||||
<h3 className={style.description__title}>Frontend разработчик, Middle</h3>
|
||||
<p className={style.description__text}>
|
||||
- 10 лет пишу приложения под IOS, отлично владею Objective-C и Swift.
|
||||
</p>
|
||||
<p className={style.description__text}>- 5 лет руковожу командами мобильной разработки.</p>
|
||||
<p className={style.description__text}>- 3 года преподаю в IOS-школе Сбера</p>
|
||||
</div>
|
||||
<div className="col-4">
|
||||
<Link to={`/candidate/${el.id}`}>
|
||||
<button className={style.description__button}>Подробное резюме</button>
|
||||
</Link>
|
||||
</div>
|
||||
<div className="col-12">
|
||||
<span className={style.description__sp}>
|
||||
{' '}
|
||||
JavaScript · Typescript · ReactJS · Vue.js · Redux · MobX · Storybook · Jest · Адаптивная верстка ·
|
||||
БЭМ
|
||||
</span>
|
||||
<img className={style.description__rectangle} src={rectangle} alt="" />
|
||||
</div>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
|
||||
<div className="row">
|
||||
<div className="col-12">
|
||||
<div className={style.description__footer}>
|
||||
<div className={style.description__footer__btn}>
|
||||
<button>
|
||||
<a href="#">Загрузить еще</a>
|
||||
</button>
|
||||
</div>
|
||||
<div className={style.description__footer__box}>
|
||||
<div className={style.arrow__left}>
|
||||
<img src={arrowLeft} alt="" />
|
||||
</div>
|
||||
<span className={style.description__footer__sp}>1/15</span>
|
||||
<div className={style.arrow__right}>
|
||||
<img src={arrowRight} alt="" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
);
|
||||
};
|
||||
|
||||
export default Description;
|
129
src/components/Home/sections/Description.module.scss
Normal file
129
src/components/Home/sections/Description.module.scss
Normal file
@ -0,0 +1,129 @@
|
||||
.description {
|
||||
margin-top: 120px;
|
||||
margin-bottom: 120px;
|
||||
&__wrapper {
|
||||
border: 2px solid whitesmoke;
|
||||
padding-top: 60px;
|
||||
border-bottom: none;
|
||||
}
|
||||
&__img {
|
||||
margin-left: 40px;
|
||||
margin-top: 16px;
|
||||
}
|
||||
&__title {
|
||||
font-family: "GT Eesti Pro Display";
|
||||
font-size: 25px;
|
||||
font-weight: 700;
|
||||
font-style: normal;
|
||||
letter-spacing: normal;
|
||||
line-height: 36px;
|
||||
text-align: left;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
&__text {
|
||||
font-family: "GT Eesti Pro Display";
|
||||
font-size: 20px;
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
letter-spacing: normal;
|
||||
line-height: 24px;
|
||||
text-align: left;
|
||||
line-height: 36px;
|
||||
}
|
||||
&__button {
|
||||
width: 290px;
|
||||
height: 62px;
|
||||
border-radius: 100px;
|
||||
background-color: #5ab426;
|
||||
border: none;
|
||||
color: #ffffff;
|
||||
font-family: "Muller Extra Bold";
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
font-style: normal;
|
||||
letter-spacing: normal;
|
||||
text-align: center;
|
||||
margin-top: 74px;
|
||||
}
|
||||
&__sp {
|
||||
display: block;
|
||||
font-family: "GT Eesti Pro Display";
|
||||
font-size: 18px;
|
||||
font-weight: 700;
|
||||
font-style: normal;
|
||||
letter-spacing: normal;
|
||||
line-height: 36px;
|
||||
text-align: center;
|
||||
margin-top: 20px;
|
||||
}
|
||||
&__rectangle {
|
||||
display: block;
|
||||
margin: 60px auto;
|
||||
}
|
||||
&__footer {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
margin-top: 60px;
|
||||
&__btn {
|
||||
& button {
|
||||
width: 220px;
|
||||
height: 60px;
|
||||
border-radius: 100px;
|
||||
border: 1px solid #5ab424;
|
||||
background-color: white;
|
||||
margin-right: 60px;
|
||||
& a {
|
||||
text-decoration: none;
|
||||
color: #a0a0a0;
|
||||
font-family: "GT Eesti Pro Display";
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
font-style: normal;
|
||||
letter-spacing: normal;
|
||||
line-height: normal;
|
||||
text-align: left;
|
||||
}
|
||||
}
|
||||
}
|
||||
&__box {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
& span {
|
||||
color: #705fa3;
|
||||
font-family: Circe;
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
letter-spacing: normal;
|
||||
text-align: center;
|
||||
margin: 0 10px;
|
||||
}
|
||||
& .arrow__left {
|
||||
position: relative;
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
border-radius: 20px;
|
||||
background-color: #f6f6f6;
|
||||
& img {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
}
|
||||
}
|
||||
& .arrow__right {
|
||||
position: relative;
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
border-radius: 20px;
|
||||
background-color: #74be4d;
|
||||
& img {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
75
src/components/Home/sections/Outstaffing.js
Normal file
75
src/components/Home/sections/Outstaffing.js
Normal file
@ -0,0 +1,75 @@
|
||||
import React from 'react';
|
||||
import style from './Outstaffing.module.scss';
|
||||
import front from '../../../images/front_end.png';
|
||||
import back from '../../../images/back_end.png';
|
||||
import design from '../../../images/design.png';
|
||||
|
||||
const Outstaffing = () => {
|
||||
return (
|
||||
<section className={style.outstaffing}>
|
||||
<div className="container">
|
||||
<div className="row">
|
||||
<div className="col-12">
|
||||
<div className={style.outstaffing__title}>
|
||||
<h2>
|
||||
<span>Аутстаффинг</span> it-персонала
|
||||
</h2>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="row">
|
||||
<div className="col-4">
|
||||
<div className={style.outstaffing__box}>
|
||||
<img src={front} alt="" />
|
||||
|
||||
<ul className={style.items}>
|
||||
<li>Ruby on Rails</li>
|
||||
<li>Nginx</li>
|
||||
<li>Docker</li>
|
||||
<li>PostgreSQL</li>
|
||||
<li>Git</li>
|
||||
<li>Typescript</li>
|
||||
<li>ReactJS</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="col-4">
|
||||
<div className={style.outstaffing__box}>
|
||||
<img src={back} alt="" />
|
||||
|
||||
<ul className={style.items}>
|
||||
<li>Ruby on Rails</li>
|
||||
<li>Nginx</li>
|
||||
<li>Docker</li>
|
||||
<li>PostgreSQL</li>
|
||||
<li>Git</li>
|
||||
<li>Typescript</li>
|
||||
<li>ReactJS</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="col-4">
|
||||
<div className={style.outstaffing__box}>
|
||||
<img src={design} alt="" />
|
||||
|
||||
<ul className={style.items}>
|
||||
<li>Ruby on Rails</li>
|
||||
<li>Nginx</li>
|
||||
<li>Docker</li>
|
||||
<li>PostgreSQL</li>
|
||||
<li>Git</li>
|
||||
<li>Typescript</li>
|
||||
<li>ReactJS</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
);
|
||||
};
|
||||
|
||||
export default Outstaffing;
|
44
src/components/Home/sections/Outstaffing.module.scss
Normal file
44
src/components/Home/sections/Outstaffing.module.scss
Normal file
@ -0,0 +1,44 @@
|
||||
.outstaffing {
|
||||
&__title {
|
||||
margin-top: 60px;
|
||||
& h2 {
|
||||
text-align: center;
|
||||
color: #52b709;
|
||||
font-family: 'GT Eesti Pro Display';
|
||||
font-size: 53px;
|
||||
font-weight: 700;
|
||||
font-style: normal;
|
||||
letter-spacing: normal;
|
||||
line-height: 77.81px;
|
||||
& span {
|
||||
color: #282828;
|
||||
font-style: normal;
|
||||
letter-spacing: 0.56px;
|
||||
line-height: normal;
|
||||
}
|
||||
}
|
||||
}
|
||||
&__box {
|
||||
margin-top: 120px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
& img {
|
||||
max-width: 240px;
|
||||
max-height: 120px;
|
||||
}
|
||||
& .items {
|
||||
margin-top: 60px;
|
||||
& li {
|
||||
font-family: 'GT Eesti Pro Display - Thin';
|
||||
font-size: 18px;
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
letter-spacing: normal;
|
||||
line-height: 36px;
|
||||
text-align: left;
|
||||
list-style: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user