diff --git a/assets/img/bg_login.png b/assets/img/bg_login.png new file mode 100644 index 0000000..54ab4bf Binary files /dev/null and b/assets/img/bg_login.png differ diff --git a/assets/img/flex-type.svg b/assets/img/flex-type.svg new file mode 100644 index 0000000..bf5e620 --- /dev/null +++ b/assets/img/flex-type.svg @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/img/osw-type.svg b/assets/img/osw-type.svg new file mode 100644 index 0000000..714591d --- /dev/null +++ b/assets/img/osw-type.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/assets/img/pathways-type.svg b/assets/img/pathways-type.svg new file mode 100644 index 0000000..2edfaa0 --- /dev/null +++ b/assets/img/pathways-type.svg @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/img/tdei-logo.png b/assets/img/tdei-logo.png new file mode 100644 index 0000000..b33898b Binary files /dev/null and b/assets/img/tdei-logo.png differ diff --git a/assets/scss/main.scss b/assets/scss/main.scss index 46b42c0..3b1e1db 100644 --- a/assets/scss/main.scss +++ b/assets/scss/main.scss @@ -1,9 +1,29 @@ @import "theme.scss"; @import "bootstrap/scss/bootstrap.scss"; + +input:-webkit-autofill, +input:-webkit-autofill:hover, +input:-webkit-autofill:focus { + transition: background-color 600000s, color 600000s; +} @import "maplibre-gl/dist/maplibre-gl.css"; @import "vue3-toastify/dist/index.css"; :root { + --primary-font-family: "Open Sans", sans-serif; + --secondary-font-family: "Montserrat", sans-serif; + --brand-primary: #32006e; + --brand-accent: #4b2e83; + --primary-color: var(--brand-primary); + --primary-color-dark: var(--brand-accent); + --secondary-color: #5f647a; + --tdei-blue: #586AB5; + --tdei-green: #479FA1; + --tdei-cyan: #59c3c8; + --purple-background-light: #f4f0fb; + --purple-background-dark: #ddd2ee; + --purple-background-medium: #ebe4f6; + --white: #ffffff; --ws-create-color: $review-create-color; --ws-modify-color: $review-modify-color; --ws-delete-color: $review-delete-color; @@ -14,6 +34,14 @@ html, body, #__nuxt { height: 100%; } +body { + margin: 0; + font-family: var(--primary-font-family); + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + min-height: 100vh; +} + /* Vue page transitions */ .fade-enter-active, .fade-leave-active, .layout-enter-active, .layout-leave-active, @@ -47,6 +75,13 @@ label > .form-select:first-child { box-shadow: $box-shadow; } +.dropdown-item.active, +.dropdown-item:active { + color: #2f3661; + text-decoration: none; + background-color: #e2f0f8; +} + /* Review */ .bg-create { @@ -67,3 +102,322 @@ label > .form-select:first-child { .text-delete { color: #{darken($review-delete-color, 3%)}; } + +/* TDEI Utility Classes */ + +.tdei-primary-button { + background-color: var(--primary-color); + border-color: var(--primary-color); + color: #fff; + font-weight: 600; + border-radius: 4px; + + &:hover, + &:active { + background-color: var(--primary-color-dark); + border-color: var(--primary-color-dark); + color: #fff; + } + + &:focus { + background-color: var(--primary-color); + border-color: var(--primary-color); + box-shadow: 0 0 0 0.25rem rgba(50, 0, 110, 0.25); + } + + &:disabled { + background-color: #cccccc; + border-color: #cccccc; + color: #ffffff; + cursor: not-allowed; + } +} + +.tdei-secondary-button { + border-color: var(--secondary-color); + font-weight: 600 !important; + + &:hover { + background-color: var(--secondary-color); + color: #fff; + border-color: var(--secondary-color); + } +} + +.btn-check:checked + .tdei-secondary-button, +.btn-check:active + .tdei-secondary-button, +.tdei-secondary-button.active, +.tdei-secondary-button:active { + background-color: var(--secondary-color); + color: #fff; + border-color: var(--secondary-color); +} + +.tdei-primary-link { + color: var(--primary-color); + font-weight: 600; + text-decoration: none; + + &:hover { + color: var(--primary-color-dark); + text-decoration: underline; + } +} + +.page-header-title { + font-family: var(--secondary-font-family); + font-size: 24px; + font-weight: 700; + margin-bottom: 5px; +} + +.page-header-subtitle { + font-family: var(--secondary-font-family); + font-size: 14px; + color: var(--secondary-color); +} + +.tdei-bold-name { + font-size: 16px; + font-weight: 700; + margin-bottom: 8px; +} + +.tdei-name-desc { + font-size: 14px; + color: var(--secondary-color); +} + +.tdei-hint-text { + font-size: 14px; + color: var(--secondary-color); + font-style: italic; +} + +.apiKey { + border-top: 1px dashed #b5b5b5; + margin-top: 10px; + padding-top: 10px; +} + +.jsonContent { + border: 1px solid var(--secondary-color); + margin-top: 1%; + overflow: auto; +} + +.header { + display: flex; + justify-content: space-between; + align-items: center; + padding-bottom: 20px; +} + +.tdei-outline-cyan-button { + color: var(--tdei-cyan); + font-weight: 600; + border: 2px solid var(--tdei-cyan); + + &:hover, + &:active { + color: #fff; + background-color: var(--tdei-cyan); + border-color: var(--tdei-cyan); + } + + &:focus, + &:focus-visible { + color: var(--tdei-cyan); + border-color: var(--tdei-cyan); + box-shadow: 0 0 0 0.25rem rgba(89, 195, 200, 0.25); + } + + &:disabled { + color: #9aa0b3; + border-color: #d3d7e2; + background-color: transparent; + cursor: not-allowed; + } +} + +.btn.tdei-rounded-button { + background-color: var(--primary-color); + border-color: var(--primary-color); + color: #fff; + font-weight: 600; + border-radius: 100px; + + &:hover, + &:active { + background-color: var(--primary-color-dark); + border-color: var(--primary-color-dark); + color: #fff; + } +} + +.nav-tabs .nav-link { + color: var(--secondary-color); + background-color: transparent !important; + border-top: none !important; + border-left: none !important; + border-right: none !important; + padding: 10px 0; + margin-right: 15px; +} + +.nav-tabs .nav-link:hover { + color: gray; + border: none; +} + +.nav-tabs .nav-link.active { + color: #162848; + background-color: #fff; + font-weight: 600; + border-top: none; + border-left: none; + border-right: none; + border-bottom: 4px solid var(--primary-color); +} + +.maroon-bg, +.maroon-bg:hover { + background-color: #c84349 !important; + border-color: #c84349 !important; + color: #fff !important; + font-weight: 600; + border-radius: 100px; +} + +.form-group-custom { + position: relative; + min-height: 90px; + margin-right: 1rem; +} + +.form-group-custom .form-control, +.form-group-custom .react-datepicker-wrapper, +.form-group-custom .react-select-container { + width: 100%; +} + +.form-group-custom .invalid-feedback { + position: absolute; + bottom: 0; + left: 0; + width: 100%; +} + +.container { + padding: 20px; +} + +.column-style { + background: #FFFFFF 0% 0% no-repeat padding-box; + box-shadow: 0px 1px 12px #0000000D; + border: 1px solid #EEEEEE; + border-radius: 8px; + opacity: 1; + padding: 20px; + flex: 1; + margin-right: 15px; + + &:nth-last-child(1) { + margin-right: 0; + } +} + +.section-style { + background: #FFFFFF 0% 0% no-repeat padding-box; + box-shadow: 0px 1px 12px #0000000D; + border: 1px solid #EEEEEE; + border-radius: 8px; + opacity: 1; + padding: 20px; + margin-top: 20px; +} + +.infoIconImg { + font-size: 14px !important; + color: #a5a5a5 !important; + margin-right: 5px !important; +} + +input[type=checkbox] { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + display: inline-block; + border-radius: 6px; + border: 1.5px solid var(--secondary-color); + + &:checked { + background-color: var(--primary-color); + border: 1.5px solid var(--primary-color); + } +} + +.iconImg { + width: 15px; + margin-right: 15px !important; +} + +.formTitle { + margin-bottom: 2px; + font-size: 26px; + font-weight: 300; +} +.MuiStepper-horizontal > .MuiStep-horizontal { + padding-left: 4px; + + .column-style { + flex: unset; + margin-right: 0; + margin-bottom: 20px; + + &:nth-last-child(1) { + margin-bottom: 0; + } + } + + .page-header-title { + font-size: 16px; + } +} + +.form-check-input[type="radio"], +input[type="radio"] { + accent-color: var(--primary-color) !important; +} + +.form-check .form-check-input.form-check-input[type="radio"]:checked { + background-color: var(--primary-color) !important; + border-color: var(--primary-color) !important; +} + +.form-check .form-check-input.form-check-input[type="radio"]:focus { + border-color: var(--primary-color) !important; + box-shadow: 0 0 0 0.25rem rgba(50, 0, 110, 0.25) !important; +} + +.MuiButtonBase-root:focus-visible { + outline: 2px solid #2684ff !important; + outline-offset: 1px; + border-radius: 2px; + box-shadow: none !important; +} + +.btn:focus-visible { + outline: 2px solid #2684ff !important; + outline-offset: 1px; + border-radius: 2px; + box-shadow: none !important; +} + +button:focus-visible, +a:focus-visible { + outline: 2px solid #2684ff !important; + outline-offset: 1px; + border-radius: 2px; + box-shadow: none !important; +} diff --git a/assets/scss/theme.scss b/assets/scss/theme.scss index 5df4fdf..b1fc104 100644 --- a/assets/scss/theme.scss +++ b/assets/scss/theme.scss @@ -3,7 +3,7 @@ /* Bootstrap Customization */ $border-radius: 0.15rem; $card-height: 100%; -$primary: #9b0092; +$primary: #32006e; @import "bootstrap/scss/functions"; @import "bootstrap/scss/variables"; diff --git a/components/AppLogo.vue b/components/AppLogo.vue index 539ca6f..bb905b9 100644 --- a/components/AppLogo.vue +++ b/components/AppLogo.vue @@ -1,4 +1,4 @@ diff --git a/components/AppNavbar.vue b/components/AppNavbar.vue index 38106c5..c6174b3 100644 --- a/components/AppNavbar.vue +++ b/components/AppNavbar.vue @@ -1,51 +1,183 @@ diff --git a/components/SigninForm.vue b/components/SigninForm.vue index 7597d4c..4443b38 100644 --- a/components/SigninForm.vue +++ b/components/SigninForm.vue @@ -1,81 +1,272 @@ + + diff --git a/components/dashboard/Toolbar.vue b/components/dashboard/Toolbar.vue index 86ed05c..da31865 100644 --- a/components/dashboard/Toolbar.vue +++ b/components/dashboard/Toolbar.vue @@ -3,7 +3,8 @@ diff --git a/components/review/Toolbar.vue b/components/review/Toolbar.vue index 033505a..bbdbae5 100644 --- a/components/review/Toolbar.vue +++ b/components/review/Toolbar.vue @@ -5,7 +5,7 @@ #{{ props.item.id }}