Merge remote-tracking branch 'origin/develop' into features/funnel-transitions

This commit is contained in:
Max 2021-11-04 16:48:42 -04:00
commit 6364d81c3c
19 changed files with 304 additions and 286 deletions

View file

@ -1,3 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" xml:space="preserve">
<path d="M2.1 16C2.1 8.3 8.3 2.1 16 2.1c3.8 0 7.2 1.5 9.7 4l1.4-1.4C24.3 1.9 20.3.1 16 .1 7.2.1.1 7.3.1 16.1l2-.1c0 .1 0 0 0 0z" fill="#73e5b9"/>
<path d="M2.1 16C2.1 8.3 8.3 2.1 16 2.1c3.8 0 7.2 1.5 9.7 4l1.4-1.4C24.3 1.9 20.3.1 16 .1 7.2.1.1 7.3.1 16.1l2-.1c0 .1 0 0 0 0z" fill="#167CAC"/>
</svg>

Before

Width:  |  Height:  |  Size: 237 B

After

Width:  |  Height:  |  Size: 237 B

View file

@ -1,22 +0,0 @@
body {
font-size: 16px;
background-color: #fff;
padding: .5rem;
.container-fluid {
max-width: 576px;//Remove once desktop app is complete
&.container-shadow {
box-shadow: 0px 0px 6px 0px rgba(0,0,0,0.15);//Use instead of Bootstrap's helper
}
}
a {
color: $blue-600;
text-decoration: none;
border-bottom: 1px solid $blue-600;
&:hover {
color: $blue-400;
}
}
.pointer {
cursor: pointer;
}
}

View file

@ -1,68 +0,0 @@
.select-car {
height: 100vh;
.select-car-form, .car_info, .radio_question {
background: $white;
height: 100%;
.list-view {
height: calc(100% - 230px);
overflow-y: scroll;
overflow-x: hidden;
}
.car_list, .current_car_info-text, .needed_car_info-text {
flex-shrink: 0;
width: 100%;
position: relative;
transition: transform .3s;
}
}
.current_car_info {
position: relative;
min-height: 2.5rem;
.current_car_info-text {
position: absolute;
}
}
.back-button {
margin-left: 5px;
img {
width: 20px;
}
}
}
.slide-enter-from {
opacity: 0;
transform: translateX(30vw);
}
.slide-enter-active, .slide-leave-active {
transition: all .4s;
}
.slide-leave-to {
opacity: 0;
transform: translateX(-30vw);
}
.slide_reverse-enter-from {
opacity: 0;
transform: translateX(-30vw);
}
.slide_reverse-enter-active, .slide_reverse-leave-active {
transition: all .4s;
}
.slide_reverse-leave-to {
opacity: 0;
transform: translateX(30vw);
}
.fade-enter-from, .fade-leave-to {
opacity: 0;
}
.fade-enter-active, .fade-leave-active {
transition: all .5s ease;
}

View file

@ -1,76 +0,0 @@
//Custom button styles
.btn {
&.btn-primary {
position: relative;
background: $blue-700;
background: linear-gradient(270deg, $blue-500 0%, $blue-700 100%);
border: none;
border-radius: $border-radius-lg;
height: 48px;
color: $white;
transition: all 150ms linear;
&:hover {
background: linear-gradient(270deg, rgba(6,87,124,1) 0%, rgba(6,87,124,1) 100%);
}
&:focus, // Mouse, touch, stylus focus
&:focus-visible { // Keyboard focus for accessibility
outline: none;
box-shadow: 0 0 0 3px, 0 0 0 5.5px $blue-700;
}
&.button-loader {
padding: 0 40px 0 12px;
&:after {
content: url(../../assets/img/icons/button-spinner-white.svg);
position: absolute;
right: 14px;
width: 16px;
height: 16px;
margin-left: 12px;
animation: rotation 1s infinite linear;
@keyframes rotation {
100% {
transform:rotate(360deg);
}
}
}
}
}
&:disabled {
background: $gray-100 !important;
background: linear-gradient(270deg, $gray-100 0%, $gray-100 100%) !important;
color: $gray-400 !important;
height: 48px;
border: none;
border-radius: $border-radius-lg;
}
&.list-button {
position: relative;
background: $white;
height: 48px;
transition: all 150ms linear;
border-radius: $border-radius-lg;
border: 1px solid rgba($gray-300,.3);
width: 100%;
&:focus, // Mouse, touch, stylus focus
&:focus-visible { // Keyboard focus for accessibility
box-shadow: none;
}
&.button-loader {
padding: 0 40px 0 12px;
&:after {
content: url(../../assets/img/icons/button-spinner-green.svg);
position: absolute;
right: 14px;
width: 16px;
height: 16px;
margin-left: 12px;
animation: rotation 1s infinite linear;
@keyframes rotation {
100% {
transform:rotate(360deg);
}
}
}
}
}
}

View file

@ -1,6 +0,0 @@
.navbar {
.logo {
width: 114px;
height: auto;
}
}

View file

@ -1,28 +0,0 @@
.radio-card {
input[type=radio] {
&:focus + label {
background-color: $white;
box-shadow: 0px 0px 0px 4px $blue-600;
}
&:focus-visible + label {
background-color: $white;
box-shadow: 0px 0px 0px 4px $blue-600;
}
&:checked + label {
background-color: $blue-100;
border: 1px solid $blue-600;
}
&.invalid + label {
background-color: $white;
border: 1px solid $red-500;
}
}
label {
background: $white;
border: 1px solid $gray-400;
&:hover {
cursor: pointer;
box-shadow: 0px 0px 0px 6px $blue-100;
}
}
}

View file

@ -1,46 +0,0 @@
//Typogrophy
p {
font-size: 16px;
line-height: 1.625;
font-weight: 400;
}
//Headings
//font-size defined in _custom-variables.scss
//add helper fw-bold to any element to get bold style (500)
h1,.h1 {
line-height: 1.325;
font-weight: 300;
}
h2,.h2 {
line-height: 1.325;
font-weight: 300;
}
h3,.h3 {
line-height: 1.375;
font-weight: 300;
}
h4,.h4 {
line-height: 1.6;
font-weight: 300;
}
h5,.h5 {
line-height: 1.325;
font-weight: 400;
}
h6,.h6 {
line-height: 1.7;
letter-spacing: .75px;
text-transform: uppercase;
}
label {
line-height: 1.625;
font-weight: 400;
}
caption {
font-size: .75rem;
line-height: 1.7;
font-weight: 400;
}

View file

@ -1,6 +0,0 @@
.vehicle-image {
padding: 6px;
&.blur {
filter: blur(6px);
}
}

View file

@ -1,25 +0,0 @@
//Import files. Order matters!
//Bootstrap Functions
@import "./node_modules/bootstrap/scss/functions";
//Variable Overrides
@import "_custom-variables";
//Bootstrap Default Variables and Mixins
@import "./node_modules/bootstrap/scss/variables";
@import "./node_modules/bootstrap/scss/mixins";
//Bootstrap Defaults
@import "./node_modules/bootstrap/scss/bootstrap";
//Custom Global CSS
@import "_global-styles";
//Custom Components CSS
@import "./components/_typogrophy";
@import "./components/_navbar";
@import "./components/_SelectCar";
@import "./components/_buttons";
@import "./components/_vehicle-image";
@import "./components/_radio-card";

View file

@ -0,0 +1,6 @@
const widgetNames = {
PAGE_HEADING_WIDGET: "PageHeadingWidget",
RADIO_QUESTION_WIDGET: "RadioQuestionWidget"
}
export { widgetNames }

View file

@ -48,5 +48,26 @@ export default {
radioQuestion,
Header,
},
// Sample Call to Mockey to represent real data being sent back from the API, and how the modles are supposed to
});
})
}
}
break;
}
default: {
break;
this.radioQuestion = m.Model;
case this.widgetNames.RADIO_QUESTION_WIDGET: {
}
this.pageHeader = m.Model;
break;
case this.widgetNames.PAGE_HEADING_WIDGET: {
switch (m.Type) {
response.data.Result.forEach((m) => {
// be prosessed and passed to child components.
axios.get("https://mockey.qa.sagaws.net/service/content/selectYear").then((response) => {
};
</script>

View file

@ -6,9 +6,6 @@ import baseMixin from "@/mixins/baseMixin.js";
//Bootstrap JavaScript
import "../node_modules/bootstrap/dist/js/bootstrap.js";
//Get Bootstrap and Custom Styles
import "./assets/scss/custom.scss";
// Vue App Setup
const vueApp = createApp(App);

View file

@ -1,4 +1,5 @@
import { storeActions } from "@/constants/storeActions.js";
import { widgetNames } from "@/constants/widgetNames.js";
export default {
methods: {
@ -18,5 +19,8 @@ export default {
storeActions() {
return storeActions;
},
widgetNames(){
return widgetNames;
}
},
}

View file

@ -0,0 +1,208 @@
body {
font-size: 16px;
background-color: #fff;
padding: .5rem;
.container-fluid {
max-width: 576px;//Remove once desktop app is complete
&.container-shadow {
box-shadow: 0px 0px 6px 0px rgba(0,0,0,0.15);//Use instead of Bootstrap's helper
}
}
a {
color: $blue;
text-decoration: none;
border-bottom: 1px solid $blue;
&:hover {
color: $blue-400;
}
}
.pointer {
cursor: pointer;
}
}
//Typogrophy
p {
font-size: 16px;
line-height: 1.625;
font-weight: 400;
}
//Headings
//add helper fw-bold to any element to get bold style (500)
h1,.h1 {
line-height: 1.325;
font-weight: 300;
}
h2,.h2 {
line-height: 1.325;
font-weight: 300;
}
h3,.h3 {
line-height: 1.375;
font-weight: 300;
}
h4,.h4 {
line-height: 1.6;
font-weight: 300;
}
h5,.h5 {
line-height: 1.325;
font-weight: 400;
}
h6,.h6 {
line-height: 1.7;
letter-spacing: .75px;
text-transform: uppercase;
}
label {
line-height: 1.625;
font-weight: 400;
}
caption {
font-size: .75rem;
line-height: 1.7;
font-weight: 400;
}
//Custom button styles
.btn {
&.btn-primary {
position: relative;
background: $blue-700;
background: linear-gradient(270deg, $blue-500 0%, $blue-700 100%);
border: none;
border-radius: $border-radius-lg;
height: 48px;
color: $white;
transition: all 150ms linear;
&:hover {
background: linear-gradient(270deg, rgba(6,87,124,1) 0%, rgba(6,87,124,1) 100%);
}
&:focus, // Mouse, touch, stylus focus
&:focus-visible { // Keyboard focus for accessibility
outline: none;
box-shadow: 0 0 0 3px, 0 0 0 5.5px $blue-700;
}
&.button-loader {
padding: 0 40px 0 12px;
&:after {
content: url(../../assets/img/icons/button-spinner-white.svg);
position: absolute;
right: 14px;
width: 16px;
height: 16px;
margin-left: 12px;
animation: rotation 1s infinite linear;
@keyframes rotation {
100% {
transform:rotate(360deg);
}
}
}
}
&:disabled {
background: $gray-100 !important;
background: linear-gradient(270deg, $gray-100 0%, $gray-100 100%) !important;
color: $gray !important;
height: 48px;
border: none;
border-radius: $border-radius-lg;
}
}
&.list-button {
position: relative;
background: $white;
height: 48px;
transition: all 150ms linear;
border-radius: $border-radius-lg;
border: 1px solid rgba($gray-300,.3);
width: 100%;
&:focus, // Mouse, touch, stylus focus
&:focus-visible { // Keyboard focus for accessibility
box-shadow: none;
}
&.button-loader {
padding: 0 40px 0 12px;
&:after {
content: url(../../assets/img/icons/button-spinner-blue.svg);
position: absolute;
right: 14px;
width: 16px;
height: 16px;
margin-left: 12px;
animation: rotation 1s infinite linear;
@keyframes rotation {
100% {
transform:rotate(360deg);
}
}
}
}
}
}
// SelectCar styles
.select-car {
height: 100vh;
.select-car-form {
background: $white;
height: 100%;
form {
height: calc(100% - 230px);
overflow-y: scroll;
overflow-x: hidden;
}
.car_list, .current_car_info-text, .needed_car_info-text {
flex-shrink: 0;
width: 100%;
position: relative;
transition: transform .3s;
}
}
.current_car_info {
position: relative;
min-height: 2.5rem;
.current_car_info-text {
position: absolute;
}
}
}
.slide-enter-from {
opacity: 0;
transform: translateX(30vw);
}
.slide-enter-active, .slide-leave-active {
transition: all .4s;
}
.slide-leave-to {
opacity: 0;
transform: translateX(-30vw);
}
.slide_reverse-enter-from {
opacity: 0;
transform: translateX(-30vw);
}
.slide_reverse-enter-active, .slide_reverse-leave-active {
transition: all .4s;
}
.slide_reverse-leave-to {
opacity: 0;
transform: translateX(30vw);
}
.fade-enter-from, .fade-leave-to {
opacity: 0;
}
.fade-enter-active, .fade-leave-active {
transition: all .5s ease;
}

View file

@ -115,11 +115,11 @@ $font-family-code: $font-family-monospace;
$font-size-base: 1rem; // Assumes the browser default, typically `16px`
//Font weight
$font-weight-lighter: lighter !default;
$font-weight-light: 300 !default;
$font-weight-normal: 400 !default;
$font-weight-bold: 500 !default;
$font-weight-bolder: bolder !default;
$font-weight-lighter: lighter;
$font-weight-light: 300;
$font-weight-normal: 400;
$font-weight-bold: 500;
$font-weight-bolder: bolder;
//Headings
$h1-font-size: $font-size-base * 3;

View file

@ -45,3 +45,34 @@ export default {
},
};
</script>
<style lang="scss">
.radio-card {
input[type=radio] {
&:focus + label {
background-color: $white;
box-shadow: 0px 0px 0px 4px $blue;
}
&:focus-visible + label {
background-color: $white;
box-shadow: 0px 0px 0px 4px $blue;
}
&:checked + label {
background-color: $blue-100;
border: 1px solid $blue;
}
&.invalid + label {
background-color: $white;
border: 1px solid $red;
}
}
label {
background: $white;
border: 1px solid $gray;
&:hover {
cursor: pointer;
box-shadow: 0px 0px 0px 6px $blue-100;
}
}
}
</style>

View file

@ -13,4 +13,18 @@ module.exports = {
},
},
},
css: {
loaderOptions: {
sass: { // Load Order Matters!!!
prependData: `
@import "./node_modules/bootstrap/scss/functions";
@import "@/styles/uxVariables.scss";
@import "./node_modules/bootstrap/scss/variables";
@import "./node_modules/bootstrap/scss/mixins";
@import "./node_modules/bootstrap/scss/bootstrap";
@import "@/styles/commonStyles.scss";
`
}
}
}
};

View file

@ -3,4 +3,18 @@ process.env.VUE_APP_CONSUMER_API_GATEWAY = "__VUE_APP_CONSUMER_API_GATEWAY__";
module.exports = {
outputDir: "dist/fmg",
publicPath: "/fmg",
css: {
loaderOptions: {
sass: { // Load Order Matters!!!
prependData: `
@import "./node_modules/bootstrap/scss/functions";
@import "@/styles/uxVariables.scss";
@import "./node_modules/bootstrap/scss/variables";
@import "./node_modules/bootstrap/scss/mixins";
@import "./node_modules/bootstrap/scss/bootstrap";
@import "@/styles/commonStyles.scss";
`
}
}
}
};