@@ -0,0 +1,3 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="18.854" height="15.898" viewBox="0 0 18.854 15.898"> | |||
<path id="arrow-back-up" d="M19.86,16.489l4.494-4.494L19.86,7.5m4.494,4.494H11.994a4.494,4.494,0,1,0,0,8.989h1.124" transform="translate(-6.5 -6.086)" fill="none" stroke="white" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/> | |||
</svg> |
@@ -0,0 +1,3 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="14.131" height="17.664" viewBox="0 0 14.131 17.664"> | |||
<path id="building" d="M7.766,3h10.6a1.766,1.766,0,0,1,1.766,1.766v15.9H6V4.766A1.766,1.766,0,0,1,7.766,3Zm0,15.9H11.3V15.365h3.533V18.9h3.533V4.766H7.766ZM13.949,6.533H16.6v2.65h-2.65ZM9.533,10.949h2.65V13.6H9.533Zm4.416,0H16.6V13.6h-2.65ZM9.533,6.533h2.65v2.65H9.533Z" transform="translate(-6 -3)" fill="#f7a057"/> | |||
</svg> |
@@ -0,0 +1,3 @@ | |||
<svg id="check-circle-fill" xmlns="http://www.w3.org/2000/svg" width="17.832" height="17.832" viewBox="0 0 17.832 17.832"> | |||
<path id="Path_299" data-name="Path 299" d="M17.832,8.916A8.916,8.916,0,1,1,8.916,0a8.916,8.916,0,0,1,8.916,8.916ZM13.407,5.539a.836.836,0,0,0-1.2.024L8.333,10.5,6,8.162A.836.836,0,0,0,4.819,9.343l2.949,2.95a.836.836,0,0,0,1.2-.022L13.42,6.709a.836.836,0,0,0-.011-1.17Z" fill="#2cc38c" fill-rule="evenodd"/> | |||
</svg> |
@@ -0,0 +1,5 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="15.421" height="15.932" viewBox="0 0 15.421 15.932"> | |||
<g id="angle-double-right" transform="translate(15.787 -17.902) rotate(180)"> | |||
<path id="Path_298" data-name="Path 298" d="M9.657-32.509a.5.5,0,0,0-.16-.367l-.8-.8a.5.5,0,0,0-.367-.16.5.5,0,0,0-.367.16L.526-26.235a.5.5,0,0,0-.16.367.5.5,0,0,0,.16.367l7.439,7.439a.5.5,0,0,0,.367.16.5.5,0,0,0,.367-.16l.8-.8a.5.5,0,0,0,.16-.367.5.5,0,0,0-.16-.367L3.223-25.868,9.5-32.142a.5.5,0,0,0,.16-.367Zm6.13,0a.5.5,0,0,0-.16-.367l-.8-.8a.5.5,0,0,0-.367-.16.5.5,0,0,0-.367.16L6.656-26.235a.5.5,0,0,0-.16.367.5.5,0,0,0,.16.367L14.1-18.062a.5.5,0,0,0,.367.16.5.5,0,0,0,.367-.16l.8-.8a.5.5,0,0,0,.16-.367.5.5,0,0,0-.16-.367L9.354-25.868l6.274-6.274a.5.5,0,0,0,.16-.367Z" fill="silver"/> | |||
</g> | |||
</svg> |
@@ -0,0 +1,6 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="12.667" height="19" viewBox="0 0 12.667 19"> | |||
<g id="user" transform="translate(-9 -4.5)"> | |||
<path id="Path_296" data-name="Path 296" d="M20.444,8.722A4.222,4.222,0,1,1,16.222,4.5,4.222,4.222,0,0,1,20.444,8.722Zm-2.111,0a2.111,2.111,0,1,1-2.111-2.111A2.111,2.111,0,0,1,18.333,8.722Z" transform="translate(-0.889)" fill="#51ccc7" fill-rule="evenodd"/> | |||
<path id="Path_297" data-name="Path 297" d="M19.556,21.167A1.056,1.056,0,0,0,18.5,20.111H12.167a1.056,1.056,0,0,0-1.056,1.056V27.5H9V21.167A3.167,3.167,0,0,1,12.167,18H18.5a3.167,3.167,0,0,1,3.167,3.167V27.5H19.556Z" transform="translate(0 -4)" fill="#51ccc7"/> | |||
</g> | |||
</svg> |
@@ -27,8 +27,7 @@ class WelcomePage extends Component<Props, OwnState> { | |||
<div className={styles.container}> | |||
<h2> Let's Get Started </h2> | |||
<p> | |||
Welcome to <strong> WorkX </strong> <br/> | |||
Exclusive, Extreme & Exuberant... | |||
Welcome to <strong> WorkX </strong> | |||
</p> | |||
<div className={styles.actionButtonsHolder}> | |||
@@ -0,0 +1,136 @@ | |||
.slidersNavBar { | |||
height: 60px; | |||
display: flex; | |||
align-items: center; | |||
justify-content: center; | |||
h4 { | |||
width: 60%; | |||
text-align: right; | |||
font-size: 24px; | |||
color: var(--charcoal); | |||
span { | |||
font-size: 18px; | |||
font-weight: 400; | |||
color: var(--ash); | |||
} | |||
} | |||
ion-button { | |||
--background: transparent; | |||
--color: var(--ash); | |||
--box-shadow: none; | |||
font-size: 14px; | |||
margin-left: auto; | |||
margin-right: 5%; | |||
ion-icon { | |||
font-size: 16px; | |||
margin-left: 5px; | |||
transform: translateY(2px); | |||
} | |||
} | |||
} | |||
.slides { | |||
width: 100%; | |||
margin-top: 20px; | |||
overflow: hidden; | |||
height: calc(100vh - 60px - 20px); | |||
ion-slide { | |||
text-align: left; | |||
display: block; | |||
} | |||
.questionContainer { | |||
height: 35%; | |||
position: relative; | |||
padding: 0 7%; | |||
.question { | |||
word-spacing: 1px; | |||
font-size: 28px; | |||
font-weight: 400; | |||
color: var(--charcoal); | |||
} | |||
.hint { | |||
position: absolute; | |||
bottom: 40px; | |||
left: 7%; | |||
font-size: 14px; | |||
color: var(--grey-rock); | |||
} | |||
} | |||
.choiceContainer { | |||
height: 65%; | |||
background-color: var(--dark-charcoal); | |||
padding: 40px 7%; | |||
border-top-left-radius: 35px; | |||
border-top-right-radius: 35px; | |||
button { | |||
width: 100%; | |||
text-align: left; | |||
outline: none; | |||
padding: 0 30px; | |||
display: block; | |||
background-color: var(--charcoal); | |||
box-shadow: 0px 0px 10px black; | |||
border-radius: 10px; | |||
height: 55px; | |||
font-size: 17px; | |||
color: var(--grey-rock); | |||
margin-bottom: 30px; | |||
transition: box-shadow 0.3s, color 0.3s; | |||
&.active { | |||
color: white; | |||
box-shadow: 0px 0px 10px 1px var(--shamrock); | |||
ion-icon:nth-child(2) { | |||
opacity: 1; | |||
} | |||
} | |||
ion-icon { | |||
font-size: 20px; | |||
vertical-align: middle; | |||
transition: opacity 0.3s; | |||
&:nth-child(1) { | |||
margin-right: 15px; | |||
} | |||
&:nth-child(2) { | |||
opacity: 0; | |||
float: right; | |||
} | |||
} | |||
} | |||
} | |||
} | |||
.nextButton { | |||
position: fixed; | |||
bottom: 5%; | |||
right: 7%; | |||
z-index: 1; | |||
width: 150px; | |||
height: 60px; | |||
--border-radius: 30px; | |||
--box-shadow: none; | |||
--background: var(--shamrock); | |||
--color: white; | |||
font-size: 18px; | |||
ion-icon { | |||
font-size: 18px; | |||
margin-left: 10px; | |||
} | |||
} |
@@ -1,18 +1,35 @@ | |||
import { IonContent, IonButton, IonPage, IonSlides, IonSlide } from '@ionic/react'; | |||
import { IonContent, IonButton, IonPage, IonSlides, IonSlide, IonIcon } from '@ionic/react'; | |||
import { Component } from 'react'; | |||
import styles from './Signup.module.scss'; | |||
import styles from './AdditionalQuestions.module.scss'; | |||
type Props = { }; | |||
type OwnState = { | |||
index: number, | |||
userType: 'INDIVIDUAL' | 'COMPANY' | '' | |||
}; | |||
const slideOpts = { | |||
initialSlide: 1, | |||
speed: 400 | |||
speed: 400, | |||
followFinger: false, | |||
draggable: false, | |||
}; | |||
const jobSectors = [{ | |||
id: 1, | |||
name: 'Information Technology' | |||
}, { | |||
id: 2, | |||
name: 'Health Care' | |||
}, { | |||
id: 3, | |||
name: 'Finance' | |||
}, { | |||
id: 4, | |||
name: 'Communication Services' | |||
}]; | |||
class AdditionalQuestions extends Component<Props, OwnState> { | |||
constructor( | |||
@@ -20,34 +37,43 @@ class AdditionalQuestions extends Component<Props, OwnState> { | |||
) { | |||
super(props); | |||
this.state = { | |||
index: 0 | |||
index: 0, | |||
userType: '' | |||
}; | |||
} | |||
getPadding = (digit: number) => { | |||
return digit.toString().padStart(2, '0'); | |||
} | |||
render() { | |||
return <IonPage> | |||
<IonContent fullscreen> | |||
<header> | |||
<h4> | |||
{ this.state.index } / 05 | |||
</h4> | |||
<IonButton> Skip >> </IonButton> | |||
</header> | |||
<IonSlides pager={false} options={slideOpts} | |||
className={styles.slides}> | |||
<IonSlide> | |||
<div className={styles.questionContainer}> | |||
<p> Select if you represent a <strong> company </strong> of if you're an <strong> individual </strong> </p> | |||
<p> Select answer below </p> | |||
</div> | |||
<div className={styles.choiceContainer}> | |||
<IonButton> Company </IonButton> | |||
<IonButton> Individual </IonButton> | |||
</div> | |||
</IonSlide> | |||
</IonSlides> | |||
</IonContent> | |||
</IonPage> | |||
return <IonContent fullscreen> | |||
<header className={styles.slidersNavBar}> | |||
<h4> | |||
{ this.getPadding(this.state.index + 1)}<span>/05 </span> | |||
</h4> | |||
<IonButton> Skip <IonIcon src='assets/images/signup/skip.svg'></IonIcon> </IonButton> | |||
</header> | |||
<IonSlides options={slideOpts} className={styles.slides}> | |||
<IonSlide> | |||
<div className={styles.questionContainer}> | |||
<p className={styles.question}> Select if you represent a <strong> company </strong> or if you're an <strong> individual </strong> </p> | |||
<p className={styles.hint}> Select answer below </p> | |||
</div> | |||
<div className={styles.choiceContainer}> | |||
<button className={ this.state.userType === 'COMPANY' ? styles.active : '' } | |||
onClick={e => this.setState({ userType: 'COMPANY' })}> <IonIcon src='assets/images/signup/building.svg'></IonIcon> Company <IonIcon src='assets/images/signup/checkmark.svg'></IonIcon> </button> | |||
<button className={ this.state.userType === 'INDIVIDUAL' ? styles.active : '' } | |||
onClick={e => this.setState({ userType: 'INDIVIDUAL' })}> <IonIcon src='assets/images/signup/user.svg'></IonIcon> Individual <IonIcon src='assets/images/signup/checkmark.svg'></IonIcon> </button> | |||
</div> | |||
</IonSlide> | |||
</IonSlides> | |||
<IonButton className={styles.nextButton}> | |||
Next <IonIcon src='assets/images/signup/arrow-next.svg'></IonIcon> | |||
</IonButton> | |||
</IonContent> | |||
}; | |||
}; | |||
@@ -158,13 +158,4 @@ | |||
opacity: 1; | |||
transform: translateY(0vh); | |||
} | |||
} | |||
.slides { | |||
width: 100%; | |||
ion-slide { | |||
display: block; | |||
} | |||
} |
@@ -14,12 +14,17 @@ ion-button { | |||
--padding-bottom: 0; | |||
--padding-top: 0; | |||
--padding-end: 0; | |||
text-transform: none; | |||
} | |||
h1, h2, h3, h4, h5, h6 { | |||
font-weight: 700; | |||
} | |||
ion-content { | |||
--background: white; | |||
} | |||
/* Ionic Variables and Theming. For more info, please see: | |||
http://ionicframework.com/docs/theming/ */ | |||
@@ -121,7 +126,3 @@ http://ionicframework.com/docs/theming/ */ | |||
--ivory: #f4f4f4; | |||
--pearl: #f7f7f7; | |||
} | |||
ion-content { | |||
--background: white; | |||
} |