Files

1190 lines
31 KiB
SCSS

// GENERAL STYLES
.picto {
display: block;
cursor: pointer;
background-color: $mainColor;
}
.picto-url {
display: inline-block;
width: $pictoInlineWidth;
height: $pictoInlineHeight;
}
h1, h2 {
font-family: $titleFont;
font-size: $titleFontSizeMobile;
line-height: $titleLineHeight;
}
h4 {
display: block;
padding-top: 0.8rem;
width: 100%;
font-family: $titleFont;
font-size: $currentLineHeight;
cursor: pointer;
a {
text-decoration: underline;
text-decoration-thickness: 1px;
}
}
h4:first-of-type {
padding-top: 0;
}
h4 + p {
margin-bottom: 0.5rem !important;
em {
display: block;
font-size: $tinySize;
cursor: pointer;
> img {
display: inline-block;
height: $tinySize;
width: $tinySize !important;
margin-bottom: unset !important;
margin-left: 0.3rem;
transform: rotate(0deg);
@include transition-ease-out(transform);
}
> img.open {
transform: rotate(180deg);
}
}
}
h4 + p + p {
margin-bottom: 0 !important;
line-height: $smallFontLineHeight;
padding-bottom: 0rem;
font-size: $tinySize;
max-height: 0px;
height: auto;
overflow: hidden;
@include transition-ease-out(max-height, padding-bottom);
}
h4 + p + p.open {
max-height: 50vh;
padding-bottom: 1rem;
}
h4 + p + p + h2 {
margin-top: 1.5rem;
}
p, ul, figcaption {
font-family: $mainFont;
font-size: $currentSize;
line-height: $currentLineHeight;
}
strong {
font-weight: bold;
font-family: $titleFont;
}
em {
font-style: italic;
}
// CASCADE
body {
overflow-x: hidden;
color: $mainColor;
background-color: $bgColor;
@include transition-ease-out(background-color);
header {
position: fixed;
top: 0;
z-index: 1;
width: 100%;
box-sizing: border-box;
#nav-container {
height: $navHeight;
padding: 0 $bodyMarginMobile;
display: flex;
justify-content: space-between;
align-items: center;
background-color: $bgColor;
@include transition-ease-out(background-color);
h1 {
cursor: pointer;
}
#burger {
width: $pictoSmallWidth;
height: $pictoSmallHeight;
}
}
nav {
position: absolute;
background-color: $mainColor;
top: -100vh;
width: 100%;
height: calc(100vh - #{$footerHeightMobile});
display: flex;
align-items: center;
opacity: 0;
@include transition-ease-out(opacity, top 0.7s, background-color);
#crossMenu {
position: absolute;
top: 2vh;
right: $bodyMarginMobile;
background-color: $bgColor;
width: $pictoSmallWidth;
height: $pictoSmallHeight;
}
ul {
display: flex;
flex-direction: column;
justify-content: space-between;
width: 100%;
li {
text-align: center;
color: $bgColor;
a {
display: block;
margin: 4vh 0;
padding: 2.5vh 0;
width: 100%;
font-family: $titleFont;
font-size: $bigFontSizeMobile;
}
}
li.selected a {
color: $mainColor;
background-color: $bgColor;
}
}
}
nav.mobile-nav-open {
top: 0;
opacity: 1;
}
}
header:after {
content: "";
display: block;
width: 100%;
height: $navGradientHeightMobile;
background: $bgGradientToBottom;
opacity: 1;
@include transition-ease-out(opacity);
}
header.plain_bg:after {
opacity: 0;
}
main {
position: relative;
width: 100%;
box-sizing: border-box;
margin-top: calc(#{$navHeight} + #{$navGradientHeightMobile});
z-index: 0;
.content {
position: absolute;
padding: 0 $bodyMarginMobile;
h2, p, ul{
margin-bottom: $sectionSpacing;
a {
text-decoration: underline;
text-underline-offset: 0.1em;
@include transition-ease-out(text-underline-offset);
}
a:hover {
text-underline-offset: 0.15em !important;
}
}
.projet-card {
cursor: pointer;
position: relative;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
margin-bottom: $sectionSpacing;
img, video {
border-radius: 10px;
width: 100%;
}
.loader {
min-height: 200px;
width: 20px;
opacity: $transparency;
}
a {
width: 100%;
display: flex;
justify-content: center;
figcaption {
color: $mainColor;
background-color: transparent;
padding: 0;
margin-top: 5px;
position: relative;
font-size: $smallSize;
@include transition-ease-out(opacity);
.publique-title {
@include publique-font;
}
.sociale-title {
@include sociale-font;
}
.culturelle-title {
@include culturelle-font;
}
}
}
}
.card-displayed {
display: block;
}
.card-hidden {
display: none;
}
}
#index-content {
display: flex;
flex-direction: column;
align-items: center;
.animateText {
text-decoration: underline 1px;
}
#loader-index {
position: absolute;
height: 80vh;
width: 100vw;
background-color: $bgColor;
z-index: 1;
display: flex;
justify-content: center;
align-items: center;
}
#main-p-index {
p {
font-size: $bigFontSizeMobile;
}
#figureslibres {
@include figures-libres-font;
}
#publique {
@include publique-font;
}
#sociale {
@include sociale-font;
}
#culturelle {
@include culturelle-font;
}
}
#extrait-projets {
>div {
max-height: 0vh;
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 0px 20px;
align-items: flex-start;
div {
figure {
align-items: flex-start;
}
}
div:last-of-type {
width: auto;
margin-top: 1vh;
text-align: center;
font-size: $currentSize;
grid-column-end: span 2;
p{
cursor: pointer;
margin-bottom: 5px;
width: auto;
display: flex;
align-items: center;
justify-content: center;
span {
border-bottom: solid 1px $mainColor;
padding-bottom: 1px;
#publique-link {
@include publique-font;
}
#sociale-link {
@include sociale-font;
}
#culturelle-link {
@include culturelle-font;
}
}
.picto {
display: inline-block;
height: $pictoInlineHeight;
width: $pictoSmallWidth;
margin-left: 8px;
@include transition-ease-out(margin-left);
}
}
p:first-of-type:hover + p .picto, p:last-of-type:hover .picto {
margin-left: 13px;
}
}
}
}
#second-p-index {
p {
font-size: $bigFontSizeMobile;
}
#commanditaires {
@include commanditaires-font;
}
#projets {
@include projets-font;
}
}
#commanditaires-grid {
width: 85vw;
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 25px 40px;
align-items: center;
img {
filter: grayscale(100%);
opacity: 0.7;
width: 100%;
}
}
#arrow-container {
margin-top: $sectionSpacing;
margin-bottom: 0vh;
@include transition-ease-out(transform 0.8s, margin-bottom 0.4s);
.picto {
width: $pictoLargeWidth;
height: $pictoLargeHeight;
}
#arrowIndex {
animation: arrowIndex 4s infinite ease-out;
}
}
.container {
overflow-y: hidden;
height: auto;
max-height: 0vh;
margin-top: 0vh;
opacity: 0;
@include transition-ease-out(opacity, 0.7s, max-height 1.2s, margin-top 1s);
}
a {
text-decoration: none;
}
}
#projets-index {
width: 100%;
#filter-index {
text-align: center;
width: 100%;
margin-bottom: $sectionSpacing;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
.filter-button {
cursor: pointer;
filter: grayscale(1);
opacity: $transparency;
padding: 0.25rem 0.75rem;
border-radius: 1rem;
font-size: $smallSize;
min-height: $currentLineHeight;
display: inline-block;
@include transition-ease-out(opacity, filter);
}
.filter-button:hover {
filter: grayscale(0) !important;
opacity: 1 !important;
}
p {
margin-bottom: 1rem;
}
#publique-filter {
@include publique-font;
background-color: $color_publique;
}
#sociale-filter {
@include sociale-font;
background-color: $color_sociale;
}
#culturelle-filter {
@include culturelle-font;
background-color: $color_culturelle;
}
}
hr {
width: 66%;
margin-bottom: 4vh;
opacity: $transparency;
}
.projets-grid {
width: calc(100vw - $bodyMarginMobile * 2);
display: flex;
flex-direction: column;
align-items: center;
>div {
width: 80%;
}
}
.title-category {
cursor: pointer;
display: flex;
align-items: center;
margin-bottom: $sectionSpacing;
h2 {
margin: 0;
max-width: 60%;
}
.chevron-category {
display: inline-block;
width: $pictoSmallWidth;
height: $pictoSmallHeight;
max-height: 10px;
margin-left: 6px;
@include transition-ease-out(transform);
}
.close {
transform: rotate(180deg);
}
}
}
#text-content {
display: flex;
flex-direction: column-reverse;
img {
width: 100%;
}
}
#reader {
display: flex;
flex-direction: column;
align-items: center;
figure {
width: 100%;
min-height: 200px;
display: flex;
justify-content: center;
}
img, video {
cursor: pointer;
max-width: 100%;
}
.loader {
max-width: 20px;
}
#header-project {
z-index: 1;
display: block;
position: fixed;
height: 6vh;
width: 100%;
// background-color: $bgColor;
top: -4vh;
@include transition-ease-out(top);
h2 {
margin: 0;
overflow: hidden;
position: absolute;
width: 100%;
height: 100%;
padding: 3px 0;
padding-top: 1.8vh;
padding-left: $bodyMarginMobile;
font-size: $currentSize;
span {
transform: translate(0, 0);
display: inline-block;
white-space: nowrap;
}
.scrollText:after {
content: attr(data-text);
padding-left: 20px;
white-space: nowrap;
}
}
h2.info-project-publique {
background: linear-gradient(to bottom, $color_publique, $color_publique 60%, rgba($color_publique, 0));
span {
@include publique-font;
}
}
h2.info-project-sociale {
background: linear-gradient(to bottom, $color_sociale, $color_sociale 60%, rgba($color_sociale, 0));
span {
@include sociale-font;
}
}
h2.info-project-culturelle {
background: linear-gradient(to bottom, $color_culturelle, $color_culturelle 60%, rgba($color_culturelle, 0));
span {
@include culturelle-font;
}
}
#gradient-long-title {
position: absolute;
height: 4vh;
width: 40px;
top: 1.5vh;
right: 16.5%;
background: $bgGradientToLeft;
}
}
#header-project + a {
z-index: 2;
}
#close-project {
position: fixed;
right: $bodyMarginMobile;
top: 2.3vh;
width: calc(#{$pictoSmallWidth} - 5px);
height: calc(#{$pictoSmallHeight} - 5px);
}
figure#cover-image-mobile {
margin-top: -2vh;
margin-bottom: 2vh;
}
figure#cover-image {
display: none;
}
figure#cover-image-mobile,
figure#cover-image {
position: relative;
margin-top: 3vh;
img {
filter: grayscale(0);
@include transition-ease-out(filter);
mix-blend-mode: normal;
}
}
figure#cover-image-mobile:hover img,
figure#cover-image:hover img {
filter: grayscale(1);
mix-blend-mode: darken;
}
figure#cover-image-mobile::before,
figure#cover-image::before {
position: absolute;
content: '';
height: 100%;
width: 100%;
opacity: 0;
@include transition-ease-out(opacity);
}
figure#cover-image-mobile:hover::before,
figure#cover-image:hover::before {
opacity: 1;
}
figure#cover-image-mobile.sociale:hover::before,
figure#cover-image.sociale:hover::before {
background-color: $color_sociale;
}
figure#cover-image-mobile.culturelle:hover::before,
figure#cover-image.culturelle:hover::before {
background-color: $color_culturelle;
}
figure#cover-image-mobile.publique:hover::before,
figure#cover-image.publique:hover::before {
background-color: $color_publique;
}
#info-project {
align-self: flex-start;
h2 {
margin-top: 2vh;
margin-bottom: 0;
font-size: 1.6em;
line-height: $titleLineHeight;
}
>div {
margin-top: 0.3em;
margin-bottom: 2.5vh;
font-weight: normal;
line-height: $currentLineHeight;
}
}
.info-project-publique {
h2, >div {
@include publique-font;
}
}
.info-project-sociale {
h2, >div {
@include sociale-font;
}
}
.info-project-culturelle {
h2, >div {
@include culturelle-font;
}
}
#project-description {
margin-top: 2.2vh;
}
#project-images-grid {
figure {
position: relative;
margin-top: 3vh;
img {
filter: grayscale(0);
@include transition-ease-out(filter);
mix-blend-mode: normal;
}
}
figure:hover img {
filter: grayscale(1);
mix-blend-mode: darken;
}
figure::before {
position: absolute;
content: '';
height: 100%;
width: 100%;
opacity: 0;
@include transition-ease-out(opacity);
}
figure:hover::before {
opacity: 1;
}
figure:hover.sociale::before {
background-color: $color_sociale;
}
figure:hover.publique::before {
background-color: $color_publique;
}
figure:hover.culturelle::before {
background-color: $color_culturelle;
}
}
hr {
margin-bottom: 2vh;
width: 66%;
opacity: 0.5;
color: $mainColor;
background-color: $mainColor;
}
#related-pages {
margin-top: 5vh;
width: 100%;
display: flex;
flex-direction: column;
align-items: center;
h3 {
text-align: center;
font-size: $titleFontSizeMobile;
font-family: $titleFont;
margin-bottom: 2vh;
margin-top: 2vh;
}
#related-grid {
width: 80%;
.card-displayed {
margin-top: 1.5vh;
}
}
p {
margin-top: 3vh;
margin-bottom: 5vh;
}
}
.swiper {
position: fixed;
top: 0;
left: 0;
height: 100vh;
width: 100vw;
background-color: rgba(255, 255, 255, 0.75);
backdrop-filter: blur(2px);
box-sizing: border-box;
z-index: 3;
display: none;
opacity: 0;
transition: opacity 0.3s ease-out;
.swiper-wrapper {
z-index: 9;
display: flex;
align-items: center;
.swiper-slide {
height: 100%;
width: 100%;
display: flex;
align-items: center;
justify-content: center;
img {
max-height: 90%;
max-width: 90%;
object-fit: cover;
}
}
}
.swiper-button-next, .swiper-button-prev {
color: $mainColor;
padding: 2rem;
bottom: 5vh;
top: unset;
}
#close-carousel {
width: calc(#{$pictoSmallWidth} - 5px);
height: calc(#{$pictoSmallHeight} - 5px);
position: absolute;
top: 5vh;
right: 5vh;
z-index: 10;
}
}
}
}
footer {
display: none;
position: fixed;
height: $footerHeightMobile;
bottom: 0;
align-items: center;
justify-content: center;
z-index: 1;
width: 100vw;
p {
width: 100%;
height: 100%;
text-align: center;
color: $bgColor;
a {
display: block;
background: $mainColor;
height: 100%;
width: 100%;
font-family: $titleFont;
padding: $smallSize 0;
color: $bgColor;
}
}
}
}
@media only screen and (min-width: $minScreenWidthS) {
body {
header {
nav {
height: 100vh;
}
}
main {
#index-content {
min-height: 80vh;
display: flex;
flex-direction: column;
justify-content: center;
#extrait-projets {
>div {
grid-template-columns: repeat(2, 1fr);
div:last-of-type {
overflow-x: hidden;
text-align: right;
grid-column-end: span 2;
p {
display: inline-block;
.picto {
margin-right: -6px;
}
}
p:last-of-type span:first-of-type {
margin-left: -5px;
padding-left: 5px;
}
}
}
}
#commanditaires-grid {
width: auto;
grid-template-columns: repeat(5, 1fr);
}
}
#projets-index {
width: auto;
#filter-index {
justify-content: start;
flex-direction: row;
max-width: 100%;
p:last-of-type {
margin-left: 8px;
}
}
hr {
margin-left: 0;
width: 75%;
}
.projets-grid {
width: 100%;
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 0 10px;
align-items: start;
>div {
width: 100%;
}
}
}
#reader {
#close-project {
width: $pictoInlineWidth;
height: $pictoInlineHeight;
top: 2.5vh;
}
#cover-image-mobile {
display: none !important;
}
#cover-image {
display: flex !important;
margin-bottom: 5vh;
}
h2#main-project-title {
font-size: $bigFontSizeDesktop;
}
#info-project {
margin-top: -6vh;
div {
margin-top: 0;
margin-bottom: 8vh;
}
}
#project-description {
font-size: $smallSize;
margin-bottom: 5vh;
}
#project-images-grid {
width: auto;
display: grid;
grid-template-columns: repeat(2, 1fr);
grid-gap: 1em;
figure {
margin-top: 0;
width: 100%;
min-width: 40vw;
img:not(.loader) {
width: 100%;
height: 100%;
object-fit: cover;
}
}
figure:last-child:nth-child(odd) {
grid-column: span 2;
}
}
#related-pages {
#related-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
width: auto !important;
grid-column-gap: 10%;
.card-displayed {
margin-top: 2vh !important;
width: 100%;
figure {
min-height: 80px !important;
}
}
}
p {
margin-top: 3vh;
margin-bottom: 6vh !important;
}
}
.swiper {
.swiper-button-next, .swiper-button-prev {
bottom: unset;
top: var(--swiper-navigation-top-offset,50%);
}
}
}
}
footer {
display: flex;
align-items: center;
justify-content: center;
width: auto;
padding: 0 15px;
height: $footerHeightDesktop;
right: $bodyMarginMobile;
border-radius: 20px 20px 0 0;
background-color: $mainColor;
p {
height: auto;
font-size: $smallSize;
a {
padding: 0;
background-color: transparent;
}
}
}
}
}
@media only screen and (min-width: $minScreenWidthM) {
body {
header {
#nav-container {
display: none;
}
nav {
background-color: $bgColor;
position: relative;
top: 0;
opacity: 1;
height: $navHeight;
justify-content: center;
#crossMenu {
display: none;
}
ul {
width: calc(#{$bodyWidth} - 12px);
max-width: $maxBodyWidth;
flex-direction: row;
li {
width: auto;
color: $mainColor;
height: $smallSize;
z-index: 0;
a {
display: inline;
font-size: $smallSize;
width: auto;
margin: 0;
padding: 0;
@include transition-ease-out(color);
}
}
li:hover a {
color: $bgColor;
}
li.selected {
a {
color: $bgColor;
background-color: transparent;
}
}
li:after {
content: "";
display: block;
position: relative;
opacity: 0;
height: 100%;
width: 100%;
$paddingX: 12px;
$paddingY: 4px;
padding: $paddingY $paddingX;
transform: translateX(-#{$paddingX}) translateY(calc(-100% - 2px + #{$paddingY}));
background-color: $mainColor;
border-radius: 15px;
z-index: -1;
@include transition-ease-out(opacity);
}
.selected:after, li:hover:after {
opacity: 1;
}
}
}
}
header:after {
height: $navGradientHeightDesktop;
}
main {
display: flex;
justify-content: center;
margin-top: calc(#{$navHeight} + #{$navGradientHeightDesktop} + #{$sectionSpacing});
#index-content > #extrait-projets figure a figcaption {
background-color: $mainColor;
color: $bgColor;
}
.content {
width: $bodyWidth;
padding: 0;
.card-displayed figure a figcaption {
opacity: 0;
position: absolute;
bottom: 0;
left: 0;
width: 100%;
box-sizing: border-box;
padding: 10px;
color: $mainColor;
font-size: $tinySize;
border-radius: 0 0 10px 10px;
}
.culturelle-card figure a figcaption {
background-color: $color_culturelle;
}
.sociale-card figure a figcaption {
background-color: $color_sociale;
}
.publique-card figure a figcaption {
background-color: $color_publique;
}
}
.card-displayed:hover figure a figcaption {
opacity: 1;
}
#index-content {
#extrait-projets {
>div {
grid-template-columns: repeat(4, 1fr);
div:last-of-type {
grid-column-end: span 4;
}
}
}
#commanditaires-grid {
grid-template-columns: repeat(8, 1fr);
}
}
#projets-index {
width: $bodyWidth;
.projets-grid {
grid-template-columns: repeat(4, 1fr);
}
}
#text-content {
.text-item {
width: 70%;
}
.text-item:first-of-type {
position: absolute;
top: 0;
width: 20vw;
left: 82%;
img {
width: 70%;
margin-bottom: 5vh;
}
}
}
#reader {
margin-top: -10vh;
width: 60vw;
#header-project {
width: 100%;
h2 {
width: 100%;
padding: 0;
span {
padding-left: 20vw;
padding-top: 1.4vh;
height: $currentLineHeight;
}
}
#gradient-long-title {
right: 34.2vw;
}
}
#cover-image {
width: 66.666%;
box-sizing: border-box;
margin: 0 10vw;
}
#info-project {
width: 100%;
box-sizing: border-box;
padding: 0 10vw;
margin-top: 2vh;
margin-bottom: 4vh;
h2 {
min-width: 95%;
border-right: solid 1px rgba(0, 0, 0, $transparency);
margin-top: 0;
margin-bottom: 1vh;
}
div {
margin-bottom: 2vh;
}
}
.info-project-culturelle {
h2 {
line-height: $currentLineHeight !important;
}
}
#close-project {
width: $pictoSmallWidth;
height: $pictoSmallHeight;
top: calc(4vh + $pictoSmallHeight / 2);
right: calc(30vw - #{$pictoSmallWidth} - 2vw);
transform: scale(1, 1);
@include transition-ease-out(top, right, transform);
}
.scrolled-cross {
top: 1.4vh !important;
right: 20vw !important;
transform: scale(0.7, 0.7) !important;
}
#project-description {
padding: 0 10vw;
align-self: flex-start;
}
#project-images-grid {
width: auto;
margin-bottom: 6vh;
figure {
min-width: 15vw;
}
}
#related-pages {
hr {
margin-bottom: 4vh;
}
h3 {
margin-top: 0;
}
#related-grid {
width: 100%;
grid-column-gap: 3%;
div figure {
min-width: 10vw;
}
}
p {
align-self: flex-end;
}
}
}
}
footer {
height: $footerHeightDesktop;
width: auto;
right: 12%;
p {
width: inherit;
a {
font-size: $currentSize;
}
}
}
}
}
@media only screen and (min-width: $minScreenWidthL) {
body {
main {
#index-content {
#main-p-index {
p {
font-size: $bigFontSizeDesktop;
}
}
#arrow-container {
margin-top: $marginTopShortContent;
.picto {
width: $pictoExtraLargeWidth;
height: $pictoExtraLargeHeight;
}
}
}
#projets-index {
.projets-grid {
column-gap: 2em;
grid-template-columns: repeat(4, 1fr);
}
}
#reader {
#related-pages {
padding: 0 10vw;
box-sizing: border-box;
}
}
}
}
}