@@ -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}> | <div className={styles.container}> | ||||
<h2> Let's Get Started </h2> | <h2> Let's Get Started </h2> | ||||
<p> | <p> | ||||
Welcome to <strong> WorkX </strong> <br/> | |||||
Exclusive, Extreme & Exuberant... | |||||
Welcome to <strong> WorkX </strong> | |||||
</p> | </p> | ||||
<div className={styles.actionButtonsHolder}> | <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 { Component } from 'react'; | ||||
import styles from './Signup.module.scss'; | |||||
import styles from './AdditionalQuestions.module.scss'; | |||||
type Props = { }; | type Props = { }; | ||||
type OwnState = { | type OwnState = { | ||||
index: number, | index: number, | ||||
userType: 'INDIVIDUAL' | 'COMPANY' | '' | |||||
}; | }; | ||||
const slideOpts = { | const slideOpts = { | ||||
initialSlide: 1, | 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> { | class AdditionalQuestions extends Component<Props, OwnState> { | ||||
constructor( | constructor( | ||||
@@ -20,34 +37,43 @@ class AdditionalQuestions extends Component<Props, OwnState> { | |||||
) { | ) { | ||||
super(props); | super(props); | ||||
this.state = { | this.state = { | ||||
index: 0 | |||||
index: 0, | |||||
userType: '' | |||||
}; | }; | ||||
} | } | ||||
getPadding = (digit: number) => { | |||||
return digit.toString().padStart(2, '0'); | |||||
} | |||||
render() { | 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; | opacity: 1; | ||||
transform: translateY(0vh); | transform: translateY(0vh); | ||||
} | } | ||||
} | |||||
.slides { | |||||
width: 100%; | |||||
ion-slide { | |||||
display: block; | |||||
} | |||||
} | } |
@@ -14,12 +14,17 @@ ion-button { | |||||
--padding-bottom: 0; | --padding-bottom: 0; | ||||
--padding-top: 0; | --padding-top: 0; | ||||
--padding-end: 0; | --padding-end: 0; | ||||
text-transform: none; | |||||
} | } | ||||
h1, h2, h3, h4, h5, h6 { | h1, h2, h3, h4, h5, h6 { | ||||
font-weight: 700; | font-weight: 700; | ||||
} | } | ||||
ion-content { | |||||
--background: white; | |||||
} | |||||
/* Ionic Variables and Theming. For more info, please see: | /* Ionic Variables and Theming. For more info, please see: | ||||
http://ionicframework.com/docs/theming/ */ | http://ionicframework.com/docs/theming/ */ | ||||
@@ -121,7 +126,3 @@ http://ionicframework.com/docs/theming/ */ | |||||
--ivory: #f4f4f4; | --ivory: #f4f4f4; | ||||
--pearl: #f7f7f7; | --pearl: #f7f7f7; | ||||
} | } | ||||
ion-content { | |||||
--background: white; | |||||
} |