diff --git a/src/apps/public/components/About.scss b/src/apps/public/components/About.scss new file mode 100644 index 0000000..c63d3e9 --- /dev/null +++ b/src/apps/public/components/About.scss @@ -0,0 +1,32 @@ + + .about { + background: #f9f9f9; + height: 327px; + display : flex; + align-items: center; + justify-content: center; + flex-direction: column; + + + &_title { + width: 306px; + height: 44px; + font-family: Termina; + font-weight: 600; + font-size: 37px; + line-height: 100%; + letter-spacing: 1%; + margin-bottom: 30px; + } + + &_description { + width: 860px; + height: 153px; + font-family: Space Grotesk; + font-weight: 400; + font-size: 18px; + line-height: 160%; + letter-spacing: -0.6px; + text-align: center; + } + } \ No newline at end of file diff --git a/src/apps/public/components/About.tsx b/src/apps/public/components/About.tsx new file mode 100644 index 0000000..dca4e49 --- /dev/null +++ b/src/apps/public/components/About.tsx @@ -0,0 +1,18 @@ +import './About.scss' + +export const About = () => { + return ( +
+

Who Are We?

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim + ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut + aliquip ex ea commodo consequat. Duis aute irure dolor in + reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla + pariatur. Excepteur sint occaecat cupidatat non proident, sunt in + culpa qui officia deserunt mollit anim id est laborum. +

+
+ ) +} diff --git a/src/apps/public/components/CTA.scss b/src/apps/public/components/CTA.scss new file mode 100644 index 0000000..9bd304d --- /dev/null +++ b/src/apps/public/components/CTA.scss @@ -0,0 +1,33 @@ +.cta { + height: 539px; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + gap: 50px; + + &_title{ + text-align: center; + font-family: Termina; + font-weight: 600; + font-size: 37px; + line-height: 100%; + letter-spacing: 1%; + } + + &_button { + display: flex; + justify-content: center; + align-items: center; + width: 178px; + height: 45px; + color: #5B2222; + border: 2px solid #5B2222; + border-radius: 50px; + font-family: Termina; + font-weight: 700; + font-size: 13px; + line-height: 100%; + letter-spacing: 2%; + } +} \ No newline at end of file diff --git a/src/apps/public/components/CTA.tsx b/src/apps/public/components/CTA.tsx new file mode 100644 index 0000000..53c3d92 --- /dev/null +++ b/src/apps/public/components/CTA.tsx @@ -0,0 +1,10 @@ +import './CTA.scss' + +export const CTA = () => { + return ( +
+

Ready to get coding?

Pick a repo and get Started!

+ CTA Primary +
+ ) +} diff --git a/src/apps/public/components/Features.scss b/src/apps/public/components/Features.scss new file mode 100644 index 0000000..55cb066 --- /dev/null +++ b/src/apps/public/components/Features.scss @@ -0,0 +1,79 @@ +.features { + height: 1176px; + padding: 0px 106px; + display: flex; + flex-direction: column; + align-items: center; + + &_title { + align-self: start; + font-family: Termina; + font-weight: 600; + font-size: 37px; + line-height: 100%; + letter-spacing: 1%; + margin-top: 120px; + } + + &_grid { + width: 1300px; + height: 826px; + margin-top: 50px; + display: grid; + grid-template-columns: repeat(3, 1fr); + grid-template-rows: repeat(2, 1fr); + gap:20px + } + + &_card { + display: flex; + flex-direction: column; + gap: 3rem; + padding: 3rem 2rem; + position: relative; + } + + &_card-icon { + width: 83px; + height: 83px; + border-radius: 83px; + background-color: #F8F8F8; + } + + &_card-title { + font-family: Termina; + font-weight: 600; + font-size: 23px; + line-height: 100%; + letter-spacing: 0%; + color: #000000; + } + + &_card-description { + font-family: Poppins; + font-weight: 400; + font-size: 14px; + line-height: 21px; + letter-spacing: 1%; + color: #000000; + width: 380px; + height: 105px; + } + + &_card-link { + position: absolute; + bottom: 3rem; + left: 2rem; + color: #2F1515; + font-family: Poppins; + font-weight: 600; + font-size: 16px; + line-height: 100%; + letter-spacing: 3%; + } + + &_card-colored { + background-color: #CEECF2; + border-radius: 30px; + } +} \ No newline at end of file diff --git a/src/apps/public/components/Features.tsx b/src/apps/public/components/Features.tsx new file mode 100644 index 0000000..0398a73 --- /dev/null +++ b/src/apps/public/components/Features.tsx @@ -0,0 +1,97 @@ +import './Features.scss' + +export const Features = () => { + return ( +
+
+

Notable Features

+
+
+
+

Topic Title

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut + enim ad minim veniam, quis nostrud exercitation ullamco laboris + nisi ut aliquip ex ea commodo consequat.{' '} +

+ + {' '} + Inline CTA → + +
+
+
+

Topic Title

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut + enim ad minim veniam, quis nostrud exercitation ullamco laboris + nisi ut aliquip ex ea commodo consequat.{' '} +

+ + {' '} + Inline CTA → + +
+
+
+

Topic Title

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut + enim ad minim veniam, quis nostrud exercitation ullamco laboris + nisi ut aliquip ex ea commodo consequat.{' '} +

+ + {' '} + Inline CTA → + +
+
+
+

Topic Title

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut + enim ad minim veniam, quis nostrud exercitation ullamco laboris + nisi ut aliquip ex ea commodo consequat.{' '} +

+ + {' '} + Inline CTA → + +
+
+
+

Topic Title

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut + enim ad minim veniam, quis nostrud exercitation ullamco laboris + nisi ut aliquip ex ea commodo consequat.{' '} +

+ + {' '} + Inline CTA → + +
+
+
+

Topic Title

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut + enim ad minim veniam, quis nostrud exercitation ullamco laboris + nisi ut aliquip ex ea commodo consequat.{' '} +

+ + {' '} + Inline CTA → + +
+
+
+
+ ) +} diff --git a/src/apps/public/components/Hero.scss b/src/apps/public/components/Hero.scss new file mode 100644 index 0000000..6718517 --- /dev/null +++ b/src/apps/public/components/Hero.scss @@ -0,0 +1,85 @@ + + .hero { + height: calc(100vh - 100px); + overflow: hidden; + + &_container { + display: flex; + height: 100%; + width: 100%; + position: relative; + } + + &_left { + position: absolute; + display: flex; + flex-direction: column; + margin-left: 107px; + margin-top: 229px; + z-index: 5; + gap: 10px + } + + &_title { + font-family: Termina; + font-weight: 800; + font-size: 64px; + line-height: 67px; + letter-spacing: 3%; + } + + &_highlight { + color: #C86649; + } + + &_subtitle { + font-family: Poppins; + font-weight: 300; + font-size: 20px; + line-height: 140%; + letter-spacing: -0.6px; + color: #17233E; + width: 611px; + opacity: 0.7; + } + + &_button { + display: flex; + align-self: flex-start; + align-items: center; + margin-top: 72px; + height: 45px; + position: relative; + border: 4px solid #5B2222; + border-radius: 50px; + padding: 21px 43px; + color: #5B2222; + font-family: Termina; + font-weight: 700; + font-size: 13px; + line-height: 100%; + letter-spacing: 2%; + } + + &_arrow { + position: absolute; + bottom: 0; + right: 0; + transform: translate(50%, 50%); + } + + &_right { + flex: 1 1 0%; + height: 100%; + } + + &_image { + position: absolute; + right: 0; + bottom: 0; + height: 100%; + transform: translate(0%, 11%); + } + + + } \ No newline at end of file diff --git a/src/apps/public/components/Hero.tsx b/src/apps/public/components/Hero.tsx new file mode 100644 index 0000000..c629f0e --- /dev/null +++ b/src/apps/public/components/Hero.tsx @@ -0,0 +1,46 @@ +import ButtonArrow from 'src/assets/svg/ButtonArrow.svg?react' +import MaskGroup from 'src/assets/svg/MaskGroup.svg?react' +import './Hero.scss' + +export const Hero = () => { + return ( +
+
+
+

+ Welcome to
+ the Jukebox Project +

+

+ Amet minim mollit non deserunt ullamco est sit aliqua dolor do amet + sint. Velit officia consequat duis enim velit mollit. Exercitation + veniam consequat sunt nostrud amet. +

+ + Get Started + + +
+
+ + {/* +
+
+
+
+
+
+
+
+
+
+
+
+
+
+ */} +
+
+
+ ) +} diff --git a/src/apps/public/components/Repos.scss b/src/apps/public/components/Repos.scss new file mode 100644 index 0000000..ef3d485 --- /dev/null +++ b/src/apps/public/components/Repos.scss @@ -0,0 +1,106 @@ +.repos { + background-color: #5B2222; + display: flex; + flex-direction: column; + align-items: center; + padding-top: 120px; + padding-bottom: 163px; + + &_top { + display: flex ; + justify-content: space-between; + } + + &_title { + align-self: start; + font-family: Termina; + font-weight: 600; + font-size: 37px; + line-height: 100%; + letter-spacing: 1%; + margin-bottom: 83px; + color: #FFFFFF; + } + + &_button { + width: 178px; + height: 45px; + border: 2px solid #CEECF2; + align-items: center; + border-radius: 50px; + font-family: Termina; + font-weight: 700; + font-size:13px; + line-height: 100%; + letter-spacing: 2%; + color: #CEECF2; + display: flex; + justify-content: center; + } + + &_accordion { + width: 1300px; + min-height: 121px; + border-top: 1px solid #FFFFFF; + border-bottom: 1px solid #FFFFFF; + background-color: #FFFFFF0D; + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + padding: 0px 20px; + } + + &_accordion-header { + display: flex; + justify-content: space-between; + width: 100%; + } + + &_accordion-label { + display: flex; + align-items: center; + justify-content: center; + gap: 54px; + } + + &_accordion-index { + font-family: Termina; + font-weight: 500; + font-size: 25px; + line-height: 100%; + letter-spacing: 0%; + color: #FFFFFFBF; + } + + &_accordion-title { + font-family: Termina; + font-weight: 600; + font-size: 23px; + line-height: 100%; + letter-spacing: 0%; + color: #FFFFFF; + } + + &_accordion-content { + display: flex; + gap: 353px; + margin-bottom: 52px; + } + + &_accordion-text { + width: 526px; + font-family: Poppins; + font-weight: 400; + font-size: 16px; + line-height: 26px; + letter-spacing: 1%; + color: #FFFFFF + } + + &_accordion-icon { + width: 200px; + height: 200px; + background-color: #D9D9D9; + } +} \ No newline at end of file diff --git a/src/apps/public/components/Repos.tsx b/src/apps/public/components/Repos.tsx new file mode 100644 index 0000000..2fd42df --- /dev/null +++ b/src/apps/public/components/Repos.tsx @@ -0,0 +1,82 @@ +import { useState } from 'react' +import Plus from 'src/assets/svg/Plus.svg?react' +import Subtract from 'src/assets/svg/Subtract.svg?react' +import './Repos.scss' + +export const Repos = () => { + const [isOpen, setIsOpen] = useState(Array(3).fill(false)) + + const handleToggle = (idx: number) => { + setIsOpen((states) => states.map((open, i) => (i === idx ? !open : open))) + } + return ( +
+
+
+

Repositories

+ Sign Up +
+
handleToggle(0)}> +
+
+ 01 +

Some Title

+
+ {isOpen[0] ? : } +
+ {isOpen[0] && ( +
+

+ {' '} + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut + enim ad minim veniam, quis nostrud exercitation ullamco laboris{' '} +

+
+
+ )} +
+
handleToggle(1)}> +
+
+ 02 +

Some Title

+
+ {isOpen[1] ? : } +
+ {isOpen[1] && ( +
+

+ {' '} + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut + enim ad minim veniam, quis nostrud exercitation ullamco laboris{' '} +

+
+
+ )} +
+
handleToggle(2)}> +
+
+ 03 +

Some Title

+
+ {isOpen[2] ? : } +
+ {isOpen[2] && ( +
+

+ {' '} + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut + enim ad minim veniam, quis nostrud exercitation ullamco laboris{' '} +

+
+
+ )} +
+
+
+ ) +} diff --git a/src/apps/public/components/index.ts b/src/apps/public/components/index.ts index e69de29..c9612f0 100644 --- a/src/apps/public/components/index.ts +++ b/src/apps/public/components/index.ts @@ -0,0 +1,5 @@ +export * from './Hero' +export * from './About' +export * from './Features' +export * from './Repos' +export * from './CTA' \ No newline at end of file diff --git a/src/apps/public/layout/Footer.scss b/src/apps/public/layout/Footer.scss new file mode 100644 index 0000000..1d3c2af --- /dev/null +++ b/src/apps/public/layout/Footer.scss @@ -0,0 +1,10 @@ +.public-footer { + display: flex; + background: #502524; + height: 90px; + + &_text { + color: #fff; + margin: auto; + } +} \ No newline at end of file diff --git a/src/apps/public/layout/Footer.tsx b/src/apps/public/layout/Footer.tsx new file mode 100644 index 0000000..78d2621 --- /dev/null +++ b/src/apps/public/layout/Footer.tsx @@ -0,0 +1,9 @@ +import './Footer.scss' + +export const Footer = () => { + return ( + + ) +} \ No newline at end of file diff --git a/src/apps/public/layout/Header.scss b/src/apps/public/layout/Header.scss new file mode 100644 index 0000000..26e360d --- /dev/null +++ b/src/apps/public/layout/Header.scss @@ -0,0 +1,83 @@ +.public-header { + position: fixed; + top: 0; + width: 100%; + z-index: 1000; + + &_nav { + display: flex; + align-items: center; + justify-content: space-between; + padding-bottom: 27px; + padding-top: 28px; + padding-left: 106px; + padding-right: 107px; + background: linear-gradient(to right, #2F1515 0%, #181212 100%); + height: 100px; + } + + &_logo { + display: flex; + background: #F9F9F9; + width: 200px; + height: 45px; + justify-content: center; + align-items: center; + } + + &_logo-text { + font-family: Poppins; + color: #000000; + font-weight: 400; + font-size: 16px; + line-height: 26px; + letter-spacing: 1%; + width: 39px; + height: 26px; + } + + &_spacer { + display: flex; + } + + &_links { + display: flex; + list-style: none; + justify-content: center; + align-items: center; + gap: 56px; + + li a { + color: #fff; + font-family: Poppins; + font-weight: 400; + font-size: 16px; + line-height: 26px; + letter-spacing: 1%; + } + + } + &_signup-button { + display: flex; + justify-content: center; + align-items: center; + border: 2px solid #CEECF2; + width: 178px; + height: 45px; + border-radius: 50px; + margin-left: 44px; + color: #CEECF2; + } + &_signup-button-text { + display: flex; + justify-content: center; + align-items: center; + font-weight: 700; + font-family: Termina; + font-size: 13px; + letter-spacing: 2%; + line-height: 100%; + width: 109px; + height: 18px; + } +} \ No newline at end of file diff --git a/src/apps/public/layout/Header.tsx b/src/apps/public/layout/Header.tsx new file mode 100644 index 0000000..a1d8557 --- /dev/null +++ b/src/apps/public/layout/Header.tsx @@ -0,0 +1,35 @@ +import './Header.scss' + +export const Header = () => { + return ( +
+ +
+ ) +} diff --git a/src/apps/public/layout/index.ts b/src/apps/public/layout/index.ts index e69de29..aee9762 100644 --- a/src/apps/public/layout/index.ts +++ b/src/apps/public/layout/index.ts @@ -0,0 +1,2 @@ +export * from './Header' +export * from './Footer' \ No newline at end of file diff --git a/src/apps/public/pages/Home.scss b/src/apps/public/pages/Home.scss index e69de29..33923ed 100644 --- a/src/apps/public/pages/Home.scss +++ b/src/apps/public/pages/Home.scss @@ -0,0 +1,6 @@ +html { + scroll-padding-top: 100px; // Same as your header height +} +.home-page { + padding-top: 100px; // Same as header height +} diff --git a/src/apps/public/pages/Home.tsx b/src/apps/public/pages/Home.tsx index 31aad75..e51e9c4 100644 --- a/src/apps/public/pages/Home.tsx +++ b/src/apps/public/pages/Home.tsx @@ -1,5 +1,17 @@ +import { About, CTA, Features, Hero, Repos } from '../components' +import { Footer, Header } from '../layout' import './Home.scss' export const Home = () => { - return
Home
+ return ( +
+
+ + + + + +
+
+ ) } diff --git a/src/assets/svg/ButtonArrow.svg b/src/assets/svg/ButtonArrow.svg new file mode 100644 index 0000000..e16970b --- /dev/null +++ b/src/assets/svg/ButtonArrow.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/assets/svg/MaskGroup.svg b/src/assets/svg/MaskGroup.svg new file mode 100644 index 0000000..be9713d --- /dev/null +++ b/src/assets/svg/MaskGroup.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/assets/svg/Plus.svg b/src/assets/svg/Plus.svg new file mode 100644 index 0000000..6660ed0 --- /dev/null +++ b/src/assets/svg/Plus.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/svg/Subtract.svg b/src/assets/svg/Subtract.svg new file mode 100644 index 0000000..a3d53da --- /dev/null +++ b/src/assets/svg/Subtract.svg @@ -0,0 +1,3 @@ + + +