@@ -1,5 +1,5 @@ | |||||
<svg id="plus-circle" xmlns="http://www.w3.org/2000/svg" width="21" height="21" viewBox="0 0 21 21"> | <svg id="plus-circle" xmlns="http://www.w3.org/2000/svg" width="21" height="21" viewBox="0 0 21 21"> | ||||
<path id="Path_6147" data-name="Path 6147" d="M13.781,7.875a.656.656,0,0,1,.656.656v5.25a.656.656,0,0,1-.656.656H8.531a.656.656,0,0,1,0-1.312h4.594V8.531A.656.656,0,0,1,13.781,7.875Z" transform="translate(-3.281 -3.281)" fill="#f1be83" fill-rule="evenodd"/> | |||||
<path id="Path_6148" data-name="Path 6148" d="M16.875,17.531a.656.656,0,0,1,.656-.656h5.25a.656.656,0,0,1,0,1.313H18.188v4.594a.656.656,0,0,1-1.312,0Z" transform="translate(-7.031 -7.031)" fill="#f1be83" fill-rule="evenodd"/> | |||||
<path id="Path_6149" data-name="Path 6149" d="M10.5,19.688A9.188,9.188,0,1,0,1.313,10.5,9.187,9.187,0,0,0,10.5,19.688ZM10.5,21A10.5,10.5,0,1,0,0,10.5,10.5,10.5,0,0,0,10.5,21Z" fill="#f1be83" fill-rule="evenodd"/> | |||||
<path id="Path_6147" data-name="Path 6147" d="M13.781,7.875a.656.656,0,0,1,.656.656v5.25a.656.656,0,0,1-.656.656H8.531a.656.656,0,0,1,0-1.312h4.594V8.531A.656.656,0,0,1,13.781,7.875Z" transform="translate(-3.281 -3.281)" fill-rule="evenodd"/> | |||||
<path id="Path_6148" data-name="Path 6148" d="M16.875,17.531a.656.656,0,0,1,.656-.656h5.25a.656.656,0,0,1,0,1.313H18.188v4.594a.656.656,0,0,1-1.312,0Z" transform="translate(-7.031 -7.031)" fill-rule="evenodd"/> | |||||
<path id="Path_6149" data-name="Path 6149" d="M10.5,19.688A9.188,9.188,0,1,0,1.313,10.5,9.187,9.187,0,0,0,10.5,19.688ZM10.5,21A10.5,10.5,0,1,0,0,10.5,10.5,10.5,0,0,0,10.5,21Z" fill-rule="evenodd"/> | |||||
</svg> | </svg> |
@@ -0,0 +1,193 @@ | |||||
.pageHeader { | |||||
background-color: transparent; | |||||
text-align: center; | |||||
padding: 1.5rem 0; | |||||
position: relative; | |||||
figure { | |||||
display: block; | |||||
position: absolute; | |||||
right: 1rem; | |||||
top: 1rem; | |||||
img { | |||||
display: block; | |||||
width: 4rem; | |||||
height: 4rem; | |||||
border-radius: 50%; | |||||
border: 1px solid var(--creamy-white); | |||||
} | |||||
} | |||||
} | |||||
.tabHeading { | |||||
background-color: transparent; | |||||
position: relative; | |||||
padding: 3rem 0 8rem; | |||||
text-align: center; | |||||
&::before { | |||||
content: ''; | |||||
position: absolute; | |||||
left: 0; | |||||
bottom: 0; | |||||
width: 100%; | |||||
height: 100%; | |||||
background-color: var(--teal); | |||||
border-top-left-radius: 3rem; | |||||
border-top-right-radius: 3rem; | |||||
} | |||||
&>* { | |||||
position: relative; | |||||
} | |||||
h4 { | |||||
color: white; | |||||
font-size: 2.2rem; | |||||
} | |||||
p { | |||||
color: white; | |||||
font-size: 1.4rem; | |||||
} | |||||
} | |||||
.searchHolder { | |||||
position: relative; | |||||
&::before { | |||||
content: ''; | |||||
position: absolute; | |||||
left: 0; | |||||
bottom: 0; | |||||
width: 100%; | |||||
height: 100%; | |||||
background-color: var(--creamy-white); | |||||
border-top-left-radius: 3rem; | |||||
border-top-right-radius: 3rem; | |||||
} | |||||
&>* { | |||||
position: relative; | |||||
} | |||||
.searchBar { | |||||
background-color: white; | |||||
display: flex; | |||||
border-radius: 3rem; | |||||
height: 5rem; | |||||
width: calc(100% - 6rem); | |||||
margin: -2.5rem auto 0; | |||||
align-items: center; | |||||
justify-content: space-between; | |||||
box-shadow: 0px 5px 30px -20px var(--grey); | |||||
transform: translateY(-2.5rem); | |||||
input { | |||||
height: 100%; | |||||
border: 0; | |||||
width: calc(100% - 5rem); | |||||
background-color: transparent; | |||||
padding-left: 2rem; | |||||
font-size: 1.4rem; | |||||
} | |||||
svg { | |||||
width: 5rem; | |||||
fill: var(--red); | |||||
} | |||||
} | |||||
} | |||||
.addButton { | |||||
margin: 0 auto; | |||||
display: flex; | |||||
align-items: center; | |||||
justify-content: center; | |||||
width: calc(100% - 4rem); | |||||
border: 0.2rem dashed var(--orange); | |||||
border-radius: 3rem; | |||||
background-color: transparent; | |||||
height: 5rem; | |||||
color: var(--orange); | |||||
cursor: pointer; | |||||
font-weight: 700; | |||||
svg { | |||||
width: 2rem; | |||||
height: 2rem; | |||||
margin-right: 1rem; | |||||
fill: var(--orange); | |||||
} | |||||
} | |||||
$block-padding: 2.5rem 2rem; | |||||
.Grid { | |||||
padding: #{$block-padding}; | |||||
ul { | |||||
list-style: none; | |||||
display: grid; | |||||
grid-gap: 2rem; | |||||
grid-template-columns: 1fr 1fr; | |||||
} | |||||
li { | |||||
display: flex; | |||||
justify-content: space-between; | |||||
align-items: center; | |||||
&:nth-child(1) .icon { | |||||
background-color: var(--orange); | |||||
} | |||||
&:nth-child(2) .icon { | |||||
background-color: var(--blue); | |||||
} | |||||
&:nth-child(3) .icon { | |||||
background-color: var(--red); | |||||
} | |||||
&:nth-child(4) .icon { | |||||
background-color: var(--teal); | |||||
} | |||||
} | |||||
.icon { | |||||
width: 4.5rem; | |||||
height: 4.5rem; | |||||
background-color: var(--grey); | |||||
display: flex; | |||||
align-items: center; | |||||
justify-content: center; | |||||
border-radius: 1rem; | |||||
svg { | |||||
fill: white; | |||||
width: 2rem; | |||||
} | |||||
} | |||||
.info { | |||||
width: calc(100% - 5.5rem); | |||||
label, span { | |||||
display: block; | |||||
} | |||||
label { | |||||
font-size: 1.2rem; | |||||
color: var(--black); | |||||
font-weight: 700; | |||||
} | |||||
span { | |||||
font-size: 1rem; | |||||
color: var(--grey); | |||||
font-weight: 500; | |||||
} | |||||
} | |||||
} |
@@ -1,8 +1,81 @@ | |||||
import React from "react"; | import React from "react"; | ||||
import styles from './Categories.module.scss'; | import styles from './Categories.module.scss'; | ||||
import { ReactComponent as LogoIcon } from '../../assets/icons/anamnesis.svg'; | |||||
import { ReactComponent as SearchIcon } from '../../assets/icons/bx-search-alt.svg'; | |||||
import { ReactComponent as PlusCircledIcon } from '../../assets/icons/plus-circle.svg'; | |||||
import { ReactComponent as TimeIcon } from '../../assets/icons/time.svg'; | |||||
import { ReactComponent as PersonSpeakerIcon } from '../../assets/icons/user-speaker.svg'; | |||||
import { ReactComponent as BookMarkIcon } from '../../assets/icons/bookmark.svg'; | |||||
import { ReactComponent as BrainIcon } from '../../assets/icons/bx-brain.svg'; | |||||
export const Categories: React.FC = () => { | export const Categories: React.FC = () => { | ||||
return <section className="page"> | return <section className="page"> | ||||
categories | |||||
<header className={styles.pageHeader}> | |||||
<LogoIcon /> | |||||
<figure> | |||||
{/* eslint-disable-next-line */} | |||||
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSERA5Pm3aRBV7AaI8tvpZfzpD24ZgrU1_8NA&usqp=CAU" alt="profile-image" /> | |||||
</figure> | |||||
</header> | |||||
<header className={styles.tabHeading}> | |||||
<h4> Categories </h4> | |||||
<p> 4 Types </p> | |||||
</header> | |||||
<section className={styles.searchHolder}> | |||||
<div className={styles.searchBar}> | |||||
<input type="text" placeholder={'Search Category'} /> | |||||
<SearchIcon /> | |||||
</div> | |||||
</section> | |||||
<button className={styles.addButton}> | |||||
<PlusCircledIcon /> Add Category | |||||
</button> | |||||
<section className={styles.Grid}> | |||||
<ul> | |||||
<li> | |||||
<div className={styles.icon}> | |||||
<TimeIcon /> | |||||
</div> | |||||
<div className={styles.info}> | |||||
<label> Vocabulary </label> | |||||
<span> 5 Shelves </span> | |||||
</div> | |||||
</li> | |||||
<li> | |||||
<div className={styles.icon}> | |||||
<BookMarkIcon /> | |||||
</div> | |||||
<div className={styles.info}> | |||||
<label> Books </label> | |||||
<span> 3 Shelves </span> | |||||
</div> | |||||
</li> | |||||
<li> | |||||
<div className={styles.icon}> | |||||
<PersonSpeakerIcon /> | |||||
</div> | |||||
<div className={styles.info}> | |||||
<label> IELTS </label> | |||||
<span> 5 Shelves </span> | |||||
</div> | |||||
</li> | |||||
<li> | |||||
<div className={styles.icon}> | |||||
<BrainIcon /> | |||||
</div> | |||||
<div className={styles.info}> | |||||
<label> GRE </label> | |||||
<span> 2 Shelves </span> | |||||
</div> | |||||
</li> | |||||
</ul> | |||||
</section> | |||||
</section> | </section> | ||||
} | } |
@@ -16,7 +16,7 @@ import { ReactComponent as PersonSpeakerIcon } from '../../assets/icons/user-spe | |||||
import { ReactComponent as BrainIcon } from '../../assets/icons/bx-brain.svg'; | import { ReactComponent as BrainIcon } from '../../assets/icons/bx-brain.svg'; | ||||
import { ReactComponent as InternBadge } from '../../assets/icons/intern-badge.svg'; | import { ReactComponent as InternBadge } from '../../assets/icons/intern-badge.svg'; | ||||
import { CircularProgressbar, buildStyles } from 'react-circular-progressbar'; | |||||
import { CircularProgressbar } from 'react-circular-progressbar'; | |||||
export const Home: React.FC = () => { | export const Home: React.FC = () => { | ||||
@@ -27,8 +27,7 @@ export const Home: React.FC = () => { | |||||
</header> | </header> | ||||
<section className={styles.upfold}> | <section className={styles.upfold}> | ||||
<div className={styles.profileImage}> | |||||
{/* eslint-disable-next-line */} | |||||
<div className={styles.profileImage}> | |||||
<CircularProgressbar value={70} strokeWidth={4} | <CircularProgressbar value={70} strokeWidth={4} | ||||
styles={{ | styles={{ | ||||
path: { | path: { | ||||
@@ -40,6 +39,7 @@ export const Home: React.FC = () => { | |||||
strokeLinecap: 'round', | strokeLinecap: 'round', | ||||
}} | }} | ||||
} /> | } /> | ||||
{/* eslint-disable-next-line */} | |||||
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSERA5Pm3aRBV7AaI8tvpZfzpD24ZgrU1_8NA&usqp=CAU" alt="profile-image" /> | <img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSERA5Pm3aRBV7AaI8tvpZfzpD24ZgrU1_8NA&usqp=CAU" alt="profile-image" /> | ||||
<InternBadge /> | <InternBadge /> | ||||
</div> | </div> | ||||