publik-base-theme/static/montpellier-2023/_custom.scss

825 lines
14 KiB
SCSS

//
// Layout
//
html {
--add-main-padding: .5rem;
--core-main-padding: 0.7rem;
--main-margin: 0.7rem;
@media ($min-desktop-viewport) {
--add-main-padding: #{$columns-gutter};
--core-main-padding: 0;
}
@media ($max-mobile-viewport) {
font-size: 93.75%;
}
}
//
// typo
//
h1, .h1 {
font-size: $fz-1;
font-weight: 700;
line-height: 1;
}
h2, .h2 {
font-size: $title-font-size;
font-weight: $title-weight;
text-transform: $title-transform;
}
h3, .h3 {
font-size: $fz-3;
font-weight: 500;
}
.pwa-label {
font-size: $fz-xsmall;
text-transform: uppercase;
line-height: 1.2;
}
body {
background: url(/assets/portal:background-mobile) no-repeat;
background-size: 100% auto;
@media ($min-desktop-viewport){
background-image: url(/assets/portal:background-desktop);
}
}
//
// Graphic
//
.solid-shadow {
--solid-shadow: 12px 12px var(--solid-shadow-color, #{$blue});
border: 1px solid $gray-light;
box-shadow: var(--solid-shadow);
border-radius: $cell-border-radius;
&.cell {
margin-right: 10px;
margin-bottom: 22px;
}
}
//
// BUTTONS
//
%button {
text-transform: uppercase;
font-size: $fz-xsmall;
font-weight: 700;
line-height: 1;
box-shadow: none;
&:hover {
box-shadow: none;
}
}
%cancel-button {
--color: #{$gray};
--background: white;
--hover-color: black;
--hover-background: white;
font-weight: 500;
border-color: transparent;
&:hover {
border-color: $gray-light;
}
}
%gray-button {
@extend %button;
--background: #{$gray-light};
--hover-color: white;
--hover-background: black;
font-weight: 500;
border-color: $gray-light;
&:hover {
border-color: black;
}
}
//
// HEADER
//
div#header,
div#nav {
max-width: none;
padding: 0;
}
div#header {
@media ($min-desktop-viewport) {
padding-top: 3rem;
}
}
#top {
display: flex;
@media ($min-desktop-viewport) {
justify-content: flex-end;
}
}
#logo {
line-height: 0;
// logo mobile
@media ($max-mobile-viewport) {
padding-left: 0;
flex: 0 0 50%;
height: 120px;
display: flex;
justify-content: center;
align-items: center;
background-color: white;
clip-path: polygon(0 0, 100% 0, calc(100% - 25px) calc(100% - 15px), 0 100%);
&.has-logo a::before {
background-image: url(/assets/header:logo-mobile);
margin-right: 0;
height: 65px;
width: 50px;
transform: translate(-10px, -8px);
}
}
}
.site-nav,
#toplinks {
position: static;
@media ($min-desktop-viewport) {
display: flex;
align-items: center;
padding: 0 1rem;
}
@media ($min-desktop-viewport) {
background-color: white;
}
}
#toplinks {
@media ($max-mobile-viewport) {
flex: 0 0 50%;
display: flex;
justify-content: center;
padding: 20px 10px 10px 10px;
}
}
.toplinks {
&--list {
font-size: $fz-xsmall;
text-transform: uppercase;
font-weight: 600;
color: white;
// icon
&::before {
content: "";
display: inline-block;
background: url(img/user.svg) no-repeat;
background-size: contain;
}
a {
color: white;
text-decoration: none;
&:hover {
text-decoration: underline;
}
}
.account-link {
text-transform: none;
}
}
@media ($max-mobile-viewport) {
&--list {
display: flex;
flex-direction: column;
align-items: center;
text-transform: none;
}
// icon
&--list::before {
background-image: url(img/user-mobile.svg);
width: 4em;
height: 4em;
border-radius: 50%;
background-color: white;
border: .75em solid;
}
&--list-item {
margin-top: .5em;
text-align: center;
}
}
@media ($min-desktop-viewport) {
&--list {
background-color: $blue;
border-radius: $cell-border-radius;
padding: 1em;
white-space: nowrap;
// icon
&::before {
width: 1.8em;
height: 1.8em;
vertical-align: -0.5em;
}
}
// separator
&--list-item:first-child::after {
content: " | ";
}
}
}
div.gru-nav {
// move button to right bottom
.gru-nav-button {
top: auto;
left: auto;
bottom: 36px;
right: 0.7rem;
border: 12px solid transparent;
border-radius: 50%;
&.toggled {
background-color: $nav-button-background;
}
&:after {
content: "Menu";
@extend .pwa-label;
position: absolute;
color: $font-color;
top: calc(100% + 19px);
left: 0;
width: 100%;
text-align: center;
}
}
:not(.toggled) {
.icon-bar-2 {
width: 53%;
}
.icon-bar-3 {
width: 40%;
}
}
}
@media (max-width: $nav-mobile-limit) {
div.gru-nav .gru-nav-button + ul {
width: 100%;
> li > a {
font-size: $fz-2;
}
> li li a {
color: $font-color;
text-transform: none;
}
}
}
.theme-plateforme-title {
text-align: left;
color: white;
margin: 1em calc(var(--add-main-padding) + var(--core-main-padding));
margin-bottom: 1.5em;
@media ($min-desktop-viewport) {
text-align: center;
margin-top: 1.5em;
}
}
//
// MAIN
//
div#main-content {
position: relative;
background-color: white;
padding: var(--add-main-padding);
padding-top: 0;
border-radius: 10px;
margin: 0 var(--main-margin);
@media (max-width: $very-small-limit) {
padding-left: 0;
padding-right: 0;
}
}
.theme-page-title--wrapper {
position: relative;
--square-size: 2.6em;
--line-height: 1.1em;
display: inline-block;
padding-left: 0;
border: 1px solid #000;
background-color: white;
margin-left: calc(var(--square-size) / 2);
margin-right: calc(var(--square-size) / 2);
transform: translateY(calc(var(--square-size) / -2));
&::before {
content: "";
display: inline-block;
width: var(--square-size);
height: var(--square-size);
background-color: $blue;
position: absolute;
top: calc(-0.3 * var(--square-size));
left: calc(-0.5 * var(--square-size));
}
h1 {
line-height: var(--line-height);
font-size: 1rem;
margin: 0;
padding: calc((var(--square-size) - var(--line-height)) / 2);
padding-left: calc(.75em + var(--square-size) / 2);
padding-right: 1.5em;
display: inline-block;
@media ($min-desktop-viewport) {
font-size: $fz-3;
}
}
}
//
// CELLS
//
%cell {
&:not(.pk-information, .pk-attention, .pk-error, .pk-success) {
padding: 0.5em;
}
}
// Links list
%cell-links-list {
& > li {
position: relative;
&::before {
content: "";
background: url("img/links-list-item-arrow.svg") no-repeat;
background-position: bottom;
background-size: 100% auto;
margin: 0 0.5em;
width: 1.5em;
height: 1.1em;
display: inline-block;
padding-top: 1em;
box-sizing: content-box;
position: absolute;
left: 0;
z-index: 1;
}
}
& > li > a,
li div.description {
padding-left: 2.5rem;
p {
margin-left: 0;
margin-right: 0;
}
}
}
// foldable icon to left
div.cell.foldable > div > h2:first-child {
display: flex;
&::after {
position: static;
order: -1;
text-align: left;
align-self: end;
}
}
// cell with picture (to the right of title)
.gru-content .cell.has-asset-picture {
$image-size: 3rem;
> div {
display: flex;
flex-wrap: wrap;
align-items: center;
> * {
flex: 0 0 100%;
}
> h2:first-child {
flex: 1 0 50%;
margin-right: -1 * ($image-size + 1);
padding-right: $image-size + 2;
}
> picture {
display: block;
// order: -1;
flex: 0 0 $image-size;
align-self: center;
margin-right: 1rem;
position: relative;
z-index: 1;
img {
padding: 0;
height: $image-size;
width: $image-size;
object-fit: contain;
}
}
}
}
// Custom classes
.shadow-blue {
.gru-content &.cell {
@extend .solid-shadow;
}
}
.shadow-green {
.gru-content &.cell {
@extend .solid-shadow;
--solid-shadow-color: #{$green};
}
}
.tracking-code-input-cell {
@extend .shadow-green;
}
// Json cell montpellier_reporting_links
// wcs image list
.reporting-categories,
.montpellier_reporting_links {
.content {
margin-top: 0.2rem;
@extend .fx-grid;
--grid-gutter: 3rem;
@media ($min-grid-desktop-viewport) {
--nb-cols: 2;
}
}
.item-with-image {
box-sizing: border-box;
margin-right: 0;
margin-bottom: var(--grid-gutter);
padding: 1.5rem Max(1.5rem, 3.5%);
display: grid;
grid-template-columns: 30% 1fr;
grid-gap: 0 2rem;
grid-template-areas:
"picture label";
align-items: center;
position: relative;
z-index: 0;
&--label {
justify-self: start;
@extend .h2;
hyphens: none;
@media ($max-mobile-viewport) {
font-size: $fz-3;
}
&::after {
content: "";
display: block;
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
z-index: -1;
@extend .solid-shadow;
}
}
&--picture {
width: 100%;
height: 100%;
object-position: center;
}
&--input {
display: none;
}
// hover
&:hover {
cursor: pointer;
.item-with-image--label::after {
border: 5px solid var(--solid-shadow-color);
}
}
// active
&--input:checked ~ .item-with-image--label::after,
&:active .item-with-image--label::after {
box-shadow: var(--solid-shadow);
border-color: var(--solid-shadow-color);
background-color: var(--solid-shadow-color);
}
}
// small layout
&.small-item {
--blur-shadow: 0px 0px 30px 0px #0356F21F;
.content {
@extend .fx-grid--auto;
justify-content: center;
@media ($max-mobile-viewport) {
--grid-gutter: 1.5rem;
}
> * {
flex-basis: 300px;
flex-grow: 1;
max-width: 350px;
@media ($max-mobile-viewport) {
flex-basis: 130px;
max-width: 180px;
}
}
}
.item-with-image {
padding: 1em;
grid-template-columns: 1fr;
grid-template-rows: 150px auto;
grid-template-areas:
"picture"
"label";
align-items: baseline;
@media ($min-desktop-viewport) {
padding-top: 2.5em;
}
@media ($max-mobile-viewport) {
padding: 0.5em;
grid-template-rows: 90px auto;
}
&--label {
justify-self: center;
text-align: center;
font-size: 1em;
line-height: 1.4;
min-height: 2.8em;
margin-top: 0.7em;
@media ($max-mobile-viewport) {
font-size: $fz-xsmall;
}
&::after {
box-shadow: 0px 0px 30px 0px #0356F21F;
border-color: transparent;
}
}
// hover
&:hover {
.item-with-image--label::after {
border-color: transparent;
box-shadow: var(--blur-shadow), var(--solid-shadow);
}
}
}
}
}
.reporting-categories {
--solid-shadow-color: #{$yellow};
.content {
@media ($min-grid-tablet-viewport) {
--nb-cols: 2;
}
@media ($min-grid-desktop-viewport) {
--nb-cols: 3;
}
}
.item-with-image--label {
font-size: 1rem;
}
}
.reporting-link {
--solid-shadow-color: #{$green};
&--title {
font-size: 1em;
font-weight: inherit;
margin-bottom: 0.3em;
margin-top: 0;
}
&--description {
margin: 0;
font-size: 1rem;
text-transform: none;
font-weight: normal;
}
&.item-with-image {
color: inherit;
text-decoration: none;
padding: 1.5rem Max(1.5rem, 8%);
}
.small-item & {
&--description {
display: none;
}
}
}
//
// WCS
//
.form-content--sidebox {
margin-top: 0;
}
.form-content--sidebox #side {
@media ($max-mobile-viewport) {
align-items: center;
}
@media ($min-desktop-viewport) {
text-align: right;
}
}
// Steps
.wcs-steps--list {
justify-content: center;
}
@media ($mq-max--wcs-steps-small-layout) {
.wcs-step {
&--marker {
align-items: baseline;
padding: 0.5em;
font-size: $fz-2;
&-nb, &-total {
transform: none;
font-size: 1em;
}
&-nb {
font-size: 1.8em;
}
&::before {
transform-origin: bottom;
height: 1em;
margin-right: 0.5em;
}
}
&--label {
color: $font-color !important;
}
}
}
@media ($mq-min--wcs-steps-horizontal-layout) {
.wcs-steps {
font-size: 1rem;
&--list {
margin-bottom: 3.5em;
}
}
.wcs-step {
position: relative;
flex-basis: 8rem;
&.last {
flex-basis: auto;
}
}
.wcs-step--marker {
font-size: $fz-2;
border: 1px solid $blue;
}
.wcs-step--label {
display: block !important;
font-weight: bold;
text-align: center;
font-size: $fz-xsmall;
left: -1.85rem;
top: calc(100% + .5em);
width: 6.5rem;
}
}
// wcs tracking code
.form-content--sidebox #tracking-code {
background-color: $green;
color: black;
padding: 0.5rem 0.625rem;
font-size: 1em;
min-width: 0;
@media ($max-mobile-viewport) {
padding: 1em 1.5em;
order: 0;
}
.tracking-code-part {
font-size: $fz-4;
font-weight: 500;
h3 {
display: inline-block;
padding: 0;
background-color: transparent;
font-size: inherit;
font-weight: inherit;
&::after {
content: " : "
}
}
a {
padding: 0;
font-size: inherit;
font-weight: inherit;
}
}
&.has-discard-button {
background-color: transparent;
padding: 0;
}
.form-discard-draft {
margin: 0;
}
}
//
// FORM
//
div#rub_service form {
padding: 0;
}
label {
display: block;
font-weight: 600;
margin-bottom: .5em;
}
@if ($field-on-error-style == custom) {
.widget-with-error {
input, textarea, select {
border-color: $error-color;
color: $error-color;
}
div.error {
color: $error-color;
font-weight: 500;
}
}
}
// widgets
.form-content--body {
h3 {
@extend .h2;
}
h4 {
@extend .h3;
}
// custom comment widget
.comment-field.categories-breadcrumb {
color: $blue;
text-transform: uppercase;
font-weight: 500;
font-size: $fz-xsmall;
> *:last-child {
margin-bottom: 0;
}
+ * {
margin-top: 0.3rem;
}
}
// test to enlarge native radio & checkbox
input[type="checkbox"],
input[type="radio"] {
transform: scale(1.4);
transform-origin: left;
}
// change default map size
div.qommon-map {
height: 450px;
max-height: calc(100vh - #{$nav-mobile-bottom-bar-height * 2});
}
}
.previous-button button {
@extend %gray-button;
}
//
// NOTiFiCATiONS
//
.errornotice,
.warningnotice,
.successnotice,
.infonotice {
font-weight: 500;
border-radius: $cell-border-radius;
}
.warningnotice {
color: $font-color;
a:not(.pk-button) {
color: inherit;
}
}
//
// PWA NAV
//
.pwa-navigation {
box-shadow: 0px 0px 24px 0px rgba(0, 0, 0, 0.15);
div > ul {
padding-right: calc(#{$nav-menu-side} + var(--main-margin));
li a {
@extend .pwa-label;
padding-top: 52px;
background-size: auto 33px;
}
}
}
//
// FOOTER
//
#footer {
padding-left: var(--main-margin);
padding-right: var(--main-margin);
%cell-links-list {
font-size: $fz-small;
& > li:not(:last-child) {
border-bottom: none;
}
& > li > a {
padding: 0.33em 0;
&:hover {
color: $cell-entry-hover-color;
background-color: transparent;
text-decoration: underline;
}
}
}
h2, %title {
text-transform: none;
}
.menu-cell .menu--item {
padding: 0 0.5em;
}
}