landingClub + mobile adaptive

This commit is contained in:
Никита Губарь 2024-10-07 04:09:41 +03:00
parent 93e637f500
commit 523193ff62
16 changed files with 1072 additions and 80 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.9 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 122 KiB

After

Width:  |  Height:  |  Size: 162 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

View File

@ -0,0 +1,24 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="18.383462132921178 25.688 428.8840803709428 351.12" style="max-height: 500px" width="428.8840803709428" height="351.12">
<g filter="url(#filter0_bd_886_68)">
<path shape-rendering="crispEdges" fill-opacity="0.34" fill="url(#paint0_linear_886_68)" d="M439 13H25C20.5817 13 17 16.5817 17 21V313C17 317.418 20.5817 321 25 321H210.6C211.649 321 212.5 321.851 212.5 322.9C212.5 327.097 215.903 330.5 220.1 330.5H242.9C247.097 330.5 250.5 327.097 250.5 322.9C250.5 321.851 251.351 321 252.4 321H439C443.418 321 447 317.418 447 313V21C447 16.5817 443.418 13 439 13Z"/>
<path shape-rendering="crispEdges" stroke-width="0.8" stroke="white" d="M439 12.6H25C20.3608 12.6 16.6 16.3608 16.6 21V313C16.6 317.639 20.3608 321.4 25 321.4H210.6C211.428 321.4 212.1 322.072 212.1 322.9C212.1 327.318 215.682 330.9 220.1 330.9H242.9C247.318 330.9 250.9 327.318 250.9 322.9C250.9 322.072 251.572 321.4 252.4 321.4H439C443.639 321.4 447.4 317.639 447.4 313V21C447.4 16.3608 443.639 12.6 439 12.6Z"/>
</g>
<defs>
<filter color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse" height="378.902" width="491.4" y="0.299219" x="0.299952" id="filter0_bd_886_68">
<feFlood result="BackgroundImageFix" flood-opacity="0"/>
<feGaussianBlur stdDeviation="4.35" in="BackgroundImageFix"/>
<feComposite result="effect1_backgroundBlur_886_68" operator="in" in2="SourceAlpha"/>
<feColorMatrix result="hardAlpha" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" type="matrix" in="SourceAlpha"/>
<feOffset dy="18" dx="14"/>
<feGaussianBlur stdDeviation="14.95"/>
<feComposite operator="out" in2="hardAlpha"/>
<feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06 0" type="matrix"/>
<feBlend result="effect2_dropShadow_886_68" in2="effect1_backgroundBlur_886_68" mode="normal"/>
<feBlend result="shape" in2="effect2_dropShadow_886_68" in="SourceGraphic" mode="normal"/>
</filter>
<linearGradient gradientUnits="userSpaceOnUse" y2="370" x2="447" y1="174" x1="-38" id="paint0_linear_886_68">
<stop stop-color="white"/>
<stop stop-color="#EDEDED" offset="1"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View File

@ -1,4 +1,5 @@
import React, { useCallback, useRef } from "react"; import React, { useCallback, useRef, useState } from "react";
import SVG from "react-inlinesvg";
import { Link } from "react-router-dom"; import { Link } from "react-router-dom";
import { Navigation } from "swiper/modules"; import { Navigation } from "swiper/modules";
import { Swiper, SwiperSlide } from "swiper/react"; import { Swiper, SwiperSlide } from "swiper/react";
@ -16,11 +17,7 @@ import bgYellow from "assets/images/landingClub/bgYellow.webp";
import blackWhiteCube from "assets/images/landingClub/blackWhiteCube.webp"; import blackWhiteCube from "assets/images/landingClub/blackWhiteCube.webp";
import blackYellowCube from "assets/images/landingClub/blackYellowCube.webp"; import blackYellowCube from "assets/images/landingClub/blackYellowCube.webp";
import elementBg2 from "assets/images/landingClub/elementBg2.webp"; import elementBg2 from "assets/images/landingClub/elementBg2.webp";
import elementBg3 from "assets/images/landingClub/elementBg3.webp";
import event2 from "assets/images/landingClub/event2.png";
import event from "assets/images/landingClub/event.png"; import event from "assets/images/landingClub/event.png";
import footerBg from "assets/images/landingClub/footerBg.webp";
import footerCube from "assets/images/landingClub/footerCube.webp";
import headerLogo2 from "assets/images/landingClub/headerLogoClub2.svg"; import headerLogo2 from "assets/images/landingClub/headerLogoClub2.svg";
import headerLogo1 from "assets/images/landingClub/headerLogoClub.svg"; import headerLogo1 from "assets/images/landingClub/headerLogoClub.svg";
import headerText from "assets/images/landingClub/headerText.svg"; import headerText from "assets/images/landingClub/headerText.svg";
@ -30,6 +27,7 @@ import iconCalendar from "assets/images/landingClub/iconCalendar.svg";
import iconPosition from "assets/images/landingClub/iconPosition.svg"; import iconPosition from "assets/images/landingClub/iconPosition.svg";
import iconTg from "assets/images/landingClub/iconTg.svg"; import iconTg from "assets/images/landingClub/iconTg.svg";
import iconVk from "assets/images/landingClub/iconVk.svg"; import iconVk from "assets/images/landingClub/iconVk.svg";
import menu from "assets/images/landingClub/menu.svg";
import newsImg from "assets/images/landingClub/news.png"; import newsImg from "assets/images/landingClub/news.png";
import orangeBlackCube from "assets/images/landingClub/orangeBlackCube.webp"; import orangeBlackCube from "assets/images/landingClub/orangeBlackCube.webp";
import questionMark from "assets/images/landingClub/questionMark.webp"; import questionMark from "assets/images/landingClub/questionMark.webp";
@ -39,9 +37,14 @@ import slider from "assets/images/landingClub/slider.png";
import "./landingClub.scss"; import "./landingClub.scss";
export const LandingClub = () => { export const LandingClub = () => {
const [activeMenu, setActiveMenu] = useState(false);
const sliderRef1 = useRef(null); const sliderRef1 = useRef(null);
const sliderRef2 = useRef(null); const sliderRef2 = useRef(null);
const handleMenu = () => {
setActiveMenu((prevState) => !prevState);
};
const handlePrev = useCallback((ref) => { const handlePrev = useCallback((ref) => {
if (!ref.current) return; if (!ref.current) return;
ref.current.swiper.slidePrev(); ref.current.swiper.slidePrev();
@ -64,11 +67,11 @@ export const LandingClub = () => {
]; ];
const missionSubjects = [ const missionSubjects = [
"необходимые <br />мероприятия", "необходимые <br /><span>мероприятия</span>",
"нетворкинг и новые <br />знакомства", "<span>нетворкинг</span> и новые <br />знакомства",
"информационную <br />поддержку", "информационную <br /><span>поддержку</span>",
"консультации опытных <br />предпринимателей и наставников", "<span>консультации</span> опытных <br />предпринимателей и наставников",
"возможность получить финансирование <br />в собственные бизнес-проекты" "<span>возможность</span> получить финансирование <br />в собственные бизнес-проекты"
]; ];
const members = [ const members = [
@ -139,6 +142,31 @@ export const LandingClub = () => {
return ( return (
<section className="club"> <section className="club">
<section
className={`club-mobile-menu ${
activeMenu ? "club-mobile-menu-active" : ""
}`}
>
<div className="menu-container">
<div className="menu__img">
<SVG src={menu} />
</div>
<nav className="menu-nav">
<Link to="#">о клубе</Link>
<Link to="#">ценности</Link>
<Link to="#">клуб в лицах</Link>
<Link to="#">мероприятия</Link>
<Link to="#">новости клуба</Link>
<Link to="#">контакты</Link>
</nav>
<div className="menu-burger" onClick={() => handleMenu()}>
<div className="menu-burger__line"></div>
<div className="menu-burger__line"></div>
<div className="menu-burger__line"></div>
</div>
</div>
</section>
<section className="club-header"> <section className="club-header">
<div className="header-container"> <div className="header-container">
<img className="header-cube" src={headerCube} alt="" /> <img className="header-cube" src={headerCube} alt="" />
@ -161,7 +189,10 @@ export const LandingClub = () => {
<section className="club-title"> <section className="club-title">
<img className="title-bg--bottom" src={bgWhite} alt="" /> <img className="title-bg--bottom" src={bgWhite} alt="" />
<div className="title-container"> <div className="title-container">
<img className="title-bg--top" src={bgWhite} alt="" /> <div className="title-bg--top">
<img src={bgWhite} alt="" />
</div>
<h3 className="title__name"> <h3 className="title__name">
<span>клуб</span> молодых <p>предпринимателей</p> <span>клуб</span> молодых <p>предпринимателей</p>
</h3> </h3>
@ -225,23 +256,28 @@ export const LandingClub = () => {
</section> </section>
<section className="club-mission"> <section className="club-mission">
<div className="mission-container">
<img className="mission-bg-element" src={elementBg2} alt="" /> <img className="mission-bg-element" src={elementBg2} alt="" />
<div className="mission-container">
<div className="mission-mobile-cube">
<img src={blackYellowCube} alt="" />
</div>
<img className="mission-cube" src={blackWhiteCube} alt="" /> <img className="mission-cube" src={blackWhiteCube} alt="" />
<img className="mission-bg" src={bgOrange} alt="" /> <div className="mission-bg">
<img src={bgOrange} alt="" />
</div>
<div className="mission-header"> <div className="mission-header">
<h3 className="mission-header__title"> <h3 className="mission-header__title">
наша наша
<br /> <br />
миссия: <span>миссия:</span>
</h3> </h3>
<div className="mission-header__text"> <div className="mission-header__text">
<p> <p>
вдохновлять молодых людей делать бизнес в России, брать <span>вдохновлять</span> молодых людей делать бизнес в России,
ответственность за себя, за своё окружение, за свой регион и <span>брать ответственность за себя</span>, за своё окружение,
будущее страны! за свой регион и будущее страны!
</p> </p>
</div> </div>
</div> </div>
@ -268,6 +304,12 @@ export const LandingClub = () => {
); );
})} })}
</div> </div>
<button className="club__button">
Вступить в клуб
<div>
<img src={arrowButton} alt="" />
</div>
</button>
<button className="mission-content__button"> <button className="mission-content__button">
Вступить в клуб Вступить в клуб
<div> <div>
@ -279,10 +321,11 @@ export const LandingClub = () => {
</section> </section>
<section className="club-members"> <section className="club-members">
<img className="members-cube" src={blackYellowCube} alt="" />
<div className="members-container"> <div className="members-container">
<img className="members-bg-element" src={elementBg3} alt="" /> <img className="members-cube" src={blackYellowCube} alt="" />
<img className="members-bg" src={bgYellow} alt="" /> <div className="members-bg">
<img src={bgYellow} alt="" />
</div>
<div className="members-header"> <div className="members-header">
<span className="members-header__subtitle">донецкий</span> <span className="members-header__subtitle">донецкий</span>
@ -301,7 +344,16 @@ export const LandingClub = () => {
ref={sliderRef1} ref={sliderRef1}
modules={[Navigation]} modules={[Navigation]}
spaceBetween={30} spaceBetween={30}
slidesPerView={3} breakpoints={{
430: {
slidesPerView: 1.3,
centeredSlides: true
},
1000: {
slidesPerView: 3,
centeredSlides: false
}
}}
> >
{members.map((member) => ( {members.map((member) => (
<SwiperSlide key={member.id}> <SwiperSlide key={member.id}>
@ -355,7 +407,9 @@ export const LandingClub = () => {
<section className="club-event"> <section className="club-event">
<div className="event-container"> <div className="event-container">
<img className="event-cube" src={blackWhiteCube} alt="" /> <div className="event-cube">
<img src={blackWhiteCube} alt="" />
</div>
<div className="event-header"> <div className="event-header">
<span className="event-header__subtitle">Спеши посетить</span> <span className="event-header__subtitle">Спеши посетить</span>
@ -389,12 +443,13 @@ export const LandingClub = () => {
</div> </div>
<div className="content-month"> <div className="content-month">
<h4 className="content__title"> <h4 className="content__title">
Август <img src={iconCalendar} alt="" /> <br /> Август
<img src={iconCalendar} alt="" /> <br />
<span>месяц</span> <span>месяц</span>
</h4> </h4>
<div className="month-container"> <div className="month-container">
<div className="month-item"> <div className="month-item">
<img className="month-item__img" src={event2} alt="" /> <img className="month-item__img" src={event} alt="" />
<div className="month-item-container"> <div className="month-item-container">
<div className="month-item-info"> <div className="month-item-info">
<span className="month-item__date"> <span className="month-item__date">
@ -417,7 +472,7 @@ export const LandingClub = () => {
</div> </div>
</div> </div>
<div className="month-item"> <div className="month-item">
<img className="month-item__img" src={event2} alt="" /> <img className="month-item__img" src={event} alt="" />
<div className="month-item-container"> <div className="month-item-container">
<div className="month-item-info"> <div className="month-item-info">
<span className="month-item__date"> <span className="month-item__date">
@ -440,7 +495,7 @@ export const LandingClub = () => {
</div> </div>
</div> </div>
<div className="month-item"> <div className="month-item">
<img className="month-item__img" src={event2} alt="" /> <img className="month-item__img" src={event} alt="" />
<div className="month-item-container"> <div className="month-item-container">
<div className="month-item-info"> <div className="month-item-info">
<span className="month-item__date"> <span className="month-item__date">
@ -465,9 +520,9 @@ export const LandingClub = () => {
</div> </div>
</div> </div>
</div> </div>
<span className="event-text"> <p className="event-text">
Чтобы быть в курсе всех мероприятий клуба Чтобы <span>быть в курсе</span> всех мероприятий клуба
</span> </p>
<button className="club__button"> <button className="club__button">
Вступить в клуб Вступить в клуб
<div> <div>
@ -480,8 +535,9 @@ export const LandingClub = () => {
<section className="club-news"> <section className="club-news">
<img src={blackYellowCube} alt="" className="news-cube" /> <img src={blackYellowCube} alt="" className="news-cube" />
<div className="news-container"> <div className="news-container">
<img src={bgBlack} alt="" className="news-bg" /> <div className="news-bg">
<img src={bgBlack} alt="" />
</div>
<div className="news-header"> <div className="news-header">
<span className="news-header__subtitle">интересно посмотреть</span> <span className="news-header__subtitle">интересно посмотреть</span>
<h3 className="news-header__title">новости клуба</h3> <h3 className="news-header__title">новости клуба</h3>
@ -498,8 +554,17 @@ export const LandingClub = () => {
<Swiper <Swiper
ref={sliderRef2} ref={sliderRef2}
modules={[Navigation]} modules={[Navigation]}
spaceBetween={30} spaceBetween={10}
slidesPerView={2} breakpoints={{
430: {
slidesPerView: 1.1,
centeredSlides: true
},
1000: {
slidesPerView: 2,
centeredSlides: false
}
}}
> >
{news.map((news) => ( {news.map((news) => (
<SwiperSlide key={news.id}> <SwiperSlide key={news.id}>
@ -530,13 +595,19 @@ export const LandingClub = () => {
<section className="club-footer"> <section className="club-footer">
<div className="footer-container"> <div className="footer-container">
<img className="footer-cube" src={footerCube} alt="" /> <div className="footer-cube">
<img className="footer-bg" src={footerBg} alt="" /> <img src={orangeBlackCube} alt="" />
</div>
<div className="footer-bg">
<img src={bgWhite} alt="" />
</div>
<div className="footer-logo"> <div className="footer-logo">
<img src={headerLogo1} alt="" /> <img src={headerLogo1} alt="" />
<div className="footer-logo--sub">
<img src={headerText} alt="" /> <img src={headerText} alt="" />
<img src={headerLogo2} alt="" /> <img src={headerLogo2} alt="" />
</div> </div>
</div>
<div className="footer-nav"> <div className="footer-nav">
<Link to="#">мероприятия</Link> <Link to="#">мероприятия</Link>
<Link to="#">новости клуба</Link> <Link to="#">новости клуба</Link>

File diff suppressed because it is too large Load Diff