Merge pull request 'landing' (#33) from landing into main
Reviewed-on: #33
This commit is contained in:
commit
68a2df23c4
BIN
src/assets/images/backgroundOpportunity.png
Normal file
BIN
src/assets/images/backgroundOpportunity.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 33 KiB |
@ -2,6 +2,8 @@ import React from "react";
|
|||||||
import SVG from "react-inlinesvg";
|
import SVG from "react-inlinesvg";
|
||||||
import { Link } from "react-router-dom";
|
import { Link } from "react-router-dom";
|
||||||
|
|
||||||
|
import { Footer } from "@components/Common/Footer/Footer";
|
||||||
|
|
||||||
import arrow from "assets/icons/arrows/arrowLanding.svg";
|
import arrow from "assets/icons/arrows/arrowLanding.svg";
|
||||||
import authIcon from "assets/icons/authIcon.svg";
|
import authIcon from "assets/icons/authIcon.svg";
|
||||||
import clue from "assets/icons/landingClue.svg";
|
import clue from "assets/icons/landingClue.svg";
|
||||||
@ -37,16 +39,7 @@ export const Landing = () => {
|
|||||||
img: arrow
|
img: arrow
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
const socials = [
|
|
||||||
{
|
|
||||||
img: vk,
|
|
||||||
to: ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
img: telegram,
|
|
||||||
to: ""
|
|
||||||
}
|
|
||||||
];
|
|
||||||
return (
|
return (
|
||||||
<section className="landing">
|
<section className="landing">
|
||||||
<div className="landing__container">
|
<div className="landing__container">
|
||||||
@ -106,26 +99,7 @@ export const Landing = () => {
|
|||||||
);
|
);
|
||||||
})}
|
})}
|
||||||
</div>
|
</div>
|
||||||
<div className="landing__footer">
|
<Footer />
|
||||||
<div className="footer__links">
|
|
||||||
<div className="footer__socials">
|
|
||||||
{socials.map((social, index) => {
|
|
||||||
return (
|
|
||||||
<Link to={social.to} key={index}>
|
|
||||||
<SVG src={social.img} />
|
|
||||||
</Link>
|
|
||||||
);
|
|
||||||
})}
|
|
||||||
</div>
|
|
||||||
<Link className="footer__invite" to="/auth">
|
|
||||||
Присоединиться к команде
|
|
||||||
</Link>
|
|
||||||
</div>
|
|
||||||
<div className="footer__info">
|
|
||||||
<p>office@itguild.info</p>
|
|
||||||
<p>© 2024 - Outstaffing. Все права защищены</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
);
|
);
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
.landing {
|
.landing {
|
||||||
background: #EEEEEE;
|
background: #EEEEEE;
|
||||||
height: 100vh;
|
min-height: 100vh;
|
||||||
padding: 20px 0;
|
padding: 20px 0;
|
||||||
font-family: "GT Eesti Pro Display";
|
font-family: "GT Eesti Pro Display";
|
||||||
|
|
||||||
@ -151,7 +151,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
&__opportunities {
|
&__opportunities {
|
||||||
margin-top: 120px;
|
margin: 120px 0;
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(auto-fill, minmax(360px, 1fr));
|
grid-template-columns: repeat(auto-fill, minmax(360px, 1fr));
|
||||||
}
|
}
|
||||||
@ -243,46 +243,4 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&__footer {
|
|
||||||
margin-top: auto;
|
|
||||||
display: flex;
|
|
||||||
justify-content: space-between;
|
|
||||||
|
|
||||||
.footer {
|
|
||||||
display: flex;
|
|
||||||
&__links {
|
|
||||||
display: flex;
|
|
||||||
column-gap: 23px;
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
&__socials {
|
|
||||||
display: flex;
|
|
||||||
column-gap: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
&__invite {
|
|
||||||
color: rgba(159, 159, 159, 1);
|
|
||||||
font-size: 12px;
|
|
||||||
line-height: 14px;
|
|
||||||
letter-spacing: 0.01em;
|
|
||||||
text-decoration: underline;
|
|
||||||
}
|
|
||||||
|
|
||||||
&__info {
|
|
||||||
display: flex;
|
|
||||||
column-gap: 100px;
|
|
||||||
align-items: center;
|
|
||||||
font-size: 12px;
|
|
||||||
line-height: 14px;
|
|
||||||
letter-spacing: 0.01em;
|
|
||||||
color: rgba(159, 159, 159, 1);
|
|
||||||
|
|
||||||
p:first-child {
|
|
||||||
text-decoration: underline;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -4,12 +4,45 @@ import SVG from "react-inlinesvg";
|
|||||||
import { AuthHeader } from "@components/Common/AuthHeader/AuthHeader";
|
import { AuthHeader } from "@components/Common/AuthHeader/AuthHeader";
|
||||||
|
|
||||||
import Ellipse from "assets/images/EllipseIntro.svg";
|
import Ellipse from "assets/images/EllipseIntro.svg";
|
||||||
|
import backgroundOpp from "assets/images/backgroundOpportunity.png";
|
||||||
import cat from "assets/images/cat.png";
|
import cat from "assets/images/cat.png";
|
||||||
import clue from "assets/images/clue.png";
|
import clue from "assets/images/clue.png";
|
||||||
|
import code from "assets/images/landingBackgroundCode.png";
|
||||||
|
|
||||||
import "./stack.scss";
|
import "./stack.scss";
|
||||||
|
|
||||||
export const Stack = () => {
|
export const Stack = () => {
|
||||||
|
const subjects = [
|
||||||
|
{
|
||||||
|
name: "Backend",
|
||||||
|
skills: [
|
||||||
|
"php",
|
||||||
|
"yii2",
|
||||||
|
"laravel",
|
||||||
|
"symfony",
|
||||||
|
"django",
|
||||||
|
"nodejs",
|
||||||
|
"fastAPI",
|
||||||
|
"flask",
|
||||||
|
"python",
|
||||||
|
"exspress",
|
||||||
|
"adonis"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Front",
|
||||||
|
skills: [
|
||||||
|
"react",
|
||||||
|
"next.js",
|
||||||
|
"typescript",
|
||||||
|
"redux",
|
||||||
|
"angular",
|
||||||
|
"vue",
|
||||||
|
"jquery",
|
||||||
|
"css (sass/scss, tailwind, bootstrap, БЭМ)"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
];
|
||||||
return (
|
return (
|
||||||
<section className="stack">
|
<section className="stack">
|
||||||
<AuthHeader />
|
<AuthHeader />
|
||||||
@ -54,7 +87,46 @@ export const Stack = () => {
|
|||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
<section className="stack__opportunity">
|
<section className="stack__opportunity">
|
||||||
<div className="stack__container"></div>
|
<img src={backgroundOpp} className="background__opportunity--left" />
|
||||||
|
<img src={backgroundOpp} className="background__opportunity--right" />
|
||||||
|
<div className="stack__container opportunity__container">
|
||||||
|
<img src={code} className="opportunity__code" />
|
||||||
|
<img src={code} className="opportunity__code--center" />
|
||||||
|
<div className="opportunity__block">
|
||||||
|
<h3 className="opportunity__title">Stack</h3>
|
||||||
|
<div className="opportunity__info">
|
||||||
|
<span className="info__subtitle">
|
||||||
|
Окунитесь в экосистему ITGUIL
|
||||||
|
</span>
|
||||||
|
<p className="info__about">
|
||||||
|
<span>Вы получаете полное управление над сотрудниками,</span>{" "}
|
||||||
|
имея возможность контролировать и заменять IT штат.
|
||||||
|
</p>
|
||||||
|
<div className="info__notification">
|
||||||
|
<img src={clue} alt="clue" />
|
||||||
|
<p>
|
||||||
|
Можем подготовить специалиста конкретно под ваш проект и
|
||||||
|
используемый стек. Таким образом вы сможете сэкономить ресурсы
|
||||||
|
на поиск кандидата.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className="opportunity__subjects">
|
||||||
|
{subjects.map((subject) => {
|
||||||
|
return (
|
||||||
|
<div className="subject" key={subject.name}>
|
||||||
|
<h4>{subject.name}</h4>
|
||||||
|
<div className="subject__skills">
|
||||||
|
{subject.skills.map((skill) => {
|
||||||
|
return <span key={skill}>{skill}</span>;
|
||||||
|
})}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
})}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</section>
|
</section>
|
||||||
</section>
|
</section>
|
||||||
);
|
);
|
||||||
|
@ -37,6 +37,7 @@
|
|||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
letter-spacing: 0.03em;
|
letter-spacing: 0.03em;
|
||||||
margin: 39px 0 6px;
|
margin: 39px 0 6px;
|
||||||
|
z-index: 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
&__subtitle {
|
&__subtitle {
|
||||||
@ -72,7 +73,7 @@
|
|||||||
|
|
||||||
&__ellipse {
|
&__ellipse {
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
top: 65%;
|
top: 45%;
|
||||||
left:50%;
|
left:50%;
|
||||||
transform:translate(-50%, -50%);
|
transform:translate(-50%, -50%);
|
||||||
position: absolute;
|
position: absolute;
|
||||||
@ -185,5 +186,146 @@
|
|||||||
|
|
||||||
&__opportunity {
|
&__opportunity {
|
||||||
background: #1E1E1E;
|
background: #1E1E1E;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
.background__opportunity--left {
|
||||||
|
position: absolute;
|
||||||
|
top: -50%;
|
||||||
|
left: -5%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.background__opportunity--right {
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0;
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.opportunity {
|
||||||
|
|
||||||
|
&__container {
|
||||||
|
padding: 105px 0 0px;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
&__code {
|
||||||
|
position: absolute;
|
||||||
|
top: 35px;
|
||||||
|
left: 55px;
|
||||||
|
|
||||||
|
&--center {
|
||||||
|
position: absolute;
|
||||||
|
right: 31%;
|
||||||
|
top: 34%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&__block {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
&__title {
|
||||||
|
font-family: 'Geraspoheko';
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 343px;
|
||||||
|
line-height: 1.03;
|
||||||
|
margin-bottom: 0;
|
||||||
|
z-index: 2;
|
||||||
|
background: linear-gradient(360deg, #171717 0%, #2a2a2a 100%);
|
||||||
|
-webkit-background-clip: text;
|
||||||
|
-webkit-text-fill-color: transparent
|
||||||
|
}
|
||||||
|
|
||||||
|
&__info {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
margin-left: 15px;
|
||||||
|
.info {
|
||||||
|
&__subtitle {
|
||||||
|
padding-left: 31px;
|
||||||
|
color: rgba(167, 202, 96, 1);
|
||||||
|
font-weight: 700;
|
||||||
|
font-size: 14px;
|
||||||
|
line-height: 16.24px;
|
||||||
|
margin-bottom: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&__about {
|
||||||
|
padding-left: 31px;
|
||||||
|
font-size: 14px;
|
||||||
|
color: rgba(238, 238, 238, 1);
|
||||||
|
line-height: 19.18px;
|
||||||
|
font-weight: 250;
|
||||||
|
max-width: 355px;
|
||||||
|
margin-bottom: 27px;
|
||||||
|
|
||||||
|
span {
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&__notification {
|
||||||
|
padding: 21px 19px 23px 31px;
|
||||||
|
border-radius: 8px;
|
||||||
|
backdrop-filter: blur(8.699999809265137px);
|
||||||
|
box-shadow: 10px 9px 14px 0 rgba(0, 0, 0, 0.06);
|
||||||
|
background: linear-gradient(137deg, rgba(87, 87, 87, 0.34) 0%, rgba(104, 104, 104, 0.34) 100%);
|
||||||
|
position: relative;
|
||||||
|
border: 0.5px solid #717171;
|
||||||
|
|
||||||
|
img {
|
||||||
|
position: absolute;
|
||||||
|
width: 80.93px;
|
||||||
|
height: 74.19px;
|
||||||
|
left: -68px;
|
||||||
|
top: -10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
color: rgba(238, 238, 238, 1);
|
||||||
|
line-height: 19.18px;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&__subjects {
|
||||||
|
display: flex;
|
||||||
|
column-gap: 100px;
|
||||||
|
position: relative;
|
||||||
|
top: -100px;
|
||||||
|
z-index: 3;
|
||||||
|
right: -35px;
|
||||||
|
|
||||||
|
.subject {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
|
||||||
|
h4 {
|
||||||
|
color: rgba(167, 202, 96, 1);
|
||||||
|
letter-spacing: 0.03em;
|
||||||
|
font-weight: 900;
|
||||||
|
font-size: 88px;
|
||||||
|
line-height: 86.58px;
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
&__skills {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
gap: 14px;
|
||||||
|
margin-top: 20px;
|
||||||
|
|
||||||
|
span {
|
||||||
|
border: 0.5px solid rgba(167, 202, 96, 0.5);
|
||||||
|
border-radius: 56px;
|
||||||
|
padding: 8px 25px 8px;
|
||||||
|
color: rgba(167, 202, 96, 1);
|
||||||
|
font-size: 17px;
|
||||||
|
line-height: 20.88px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user