This repository has been archived on 2023-02-21. You can view files and clone it, but cannot push or open issues or pull requests.
cut-publik-theme/static/grandlyon-cut/_custom.scss

1144 lines
27 KiB
SCSS

@import '../../publik-base-theme/static/includes/fonts/roboto';
body {
background: $body-background;
}
@mixin header($width) {
@extend %title;
width: $width;
}
a.button {
@extend %button;
}
a.support-link {
border-bottom: 2px solid $link-color;
}
a.show-scopes {
text-align: center;
display: block;
margin: 2ex 0;
position: relative;
&::after {
position: absolute;
top: 0;
content: '\f0dd';
font-family: FontAwesome;
margin-left: 5px;
}
}
.highlight {
font-size: 1.45em !important;
}
.nodata {
font-style: italic;
}
.hidden {
display: none;
}
.option {
&::before {
background: $primary-color;
color: #fff;
border-radius: 50%;
display: inline-block;
width: 1em;
height: 1em;
padding: 5px;
margin-right: 5px;
float: left;
}
&.first::before {
content: '1';
}
&.second::before {
content: '2';
}
}
form ul.errorlist {
margin: 0;
font-size: 0.9em;
li {
color: $primary-color;
text-align: center;
}
~ input, + p input {
border: 1px solid $primary-color;
}
~ p {
margin-top: 0;
}
&.nonfield {
margin: 0 0 2ex 0;
li {
border: 1px solid $primary-color;
border-radius: 0.3em;
background: #fff;
color: #000;
margin-top: 1em;
text-align: left;
font-weight: bold;
background-image: url(images/warning.png);
background-repeat: no-repeat;
background-position: 10px 50%;
background-size: 40px auto;
padding: 1.2em 1em 1.2em 60px;
&::before {
display: none;
}
}
~ input, + p input {
border: 1px solid default;
}
}
}
div#header {
padding: 0;
background: #fff;
h1#logo {
border-top: 25px solid $primary-color;
background: url(images/compte-usager.png) calc(50% + 134px) center no-repeat;
background-size: auto 40%;
@media screen and (max-width: $mobile-limit) {
border-top: 3px solid $primary-color;
padding: 0 0.5em;
background-size: auto 50px;
background-position: calc(50% + 120px) 70%;
}
@media screen and (max-width: 570px) {
background-position: calc(50% + 72px) 70%;
background-size: auto 30px;
}
a {
display: block;
background-size: auto 40%;
height: 140px;
line-height: 160px;
width: 352px;
margin: 0 auto 0 calc(50% - 298px);
text-indent: -9999px;
background-position: center left;
background-repeat: no-repeat;
@media screen and (max-width: $mobile-limit) {
text-indent: -1000px;
width: auto;
background-size: auto 50px;
background-position: 0% 70%;
margin: 0 auto 0 calc(50% - 270px);
}
@media screen and (max-width: 570px) {
background-position: 0% 70%;
margin: 0 auto 0 calc(50% - 160px);
background-size: auto 30px;
}
}
}
div#return {
background: $primary-color;
position: absolute;
top: 50%;
left: 1%;
@media screen and (max-width: $mobile-limit) {
top: 3%;
}
a {
color: #000;
background: #fff url(images/back.png) center left no-repeat;
background-size: contain;
padding: 10px 0 10px 50px;
@media screen and (max-width: $mobile-limit) {
display: block;
text-indent: -9999px;
}
}
}
div#help {
position: absolute;
top: 25%;
right: 3%;
a {
background: url(images/help.png) center right no-repeat;
background-size: contain;
padding: 0 20px 0 0;
}
}
}
div#main-content {
.field-live-hint button {
width: auto;
}
padding: 0;
font-size: 16px;
div#content {
display: block;
}
div.a2-container, div.a2-continue {
width: 30em;
margin: 0 auto 3ex auto;
@media screen and (max-width: $mobile-limit) {
width: auto;
margin: 0 0.5em 3ex 0.5em;
}
}
div.a2-continue {
text-align: center;
}
input[type=radio] {
width: auto;
}
ul#id_title li, #registration_completion li {
padding-right: 1em;
}
#messages {
ul {
width: 50%;
margin: 0 auto;
@media screen and (max-width: $mobile-limit) {
width: 95%;
}
@each $i in (info, warning) {
li.#{$i} {
border: 1px solid $primary-color;
border-radius: 0.3em;
background: #fff;
color: #000;
margin-top: 3em;
text-align: left;
font-weight: bold;
background-image: url(images/#{$i}.png);
background-repeat: no-repeat;
background-position: 10px 0.5em;
background-size: 40px auto;
padding: 1.2em 1em 1.2em 60px;
&::before {
display: none;
}
h2 {
margin: 0 auto auto auto;
}
p {
font-weight: normal;
text-align: left;
}
> ol {
width: auto;
li {
background: none;
padding: 0;
font-weight: normal;
&::before {
display: none;
}
}
}
}
}
}
}
div#login-page h2, div#registration h2, div#login-footer h2 {
@include header(100%);
@media screen and (max-width: $common-screen-width) {
padding-top: 0rem;
}
a {
font-size: 1em;
}
}
div#registration_complete {
padding: 5em 0;
h3 {
font-weight: normal;
text-align: center;
margin: 3em 0;
}
}
h3 {
padding-bottom: 1ex;
border-bottom: 2px solid #000;
&.section {
font-weight: normal;
border-bottom: 2px solid #b3b3b3;
padding-bottom: 0;
}
}
div.registration-steps {
position: relative;
ul {
padding: 0;
@media screen and (max-width: 800px) {
display: none;
}
li {
list-style-type: none;
display: inline-flex;
width: 24.5%;
box-sizing: border-box;
align-items: center;
flex-direction: column;
span {
&.marker {
border: 1px solid #000;
padding: 4px;
border-radius: 50%;
width: 22px;
height: 22px;
display: inline-block;
text-align: center;
background: #ffffff;
z-index: 10;
font-size: 10px;
}
&.label {
margin-top: 0.5em;
display: block;
text-transform: uppercase;
font-size: 13px;
}
}
&.current {
span.marker {
background: #000;
color: #fff;
}
}
}
&::before {
position: absolute;
top: calc(50% - 12px);
content: '';
border-top: 1px solid #000;
width: 74.5%;
left: 12.5%;
z-index: -1;
}
}
}
div#registration_completion, div.registration-steps {
width: 60em;
margin: 0 auto;
h2 {
@include header(100%);
padding-bottom: 2ex;
}
p {
text-align: left;
}
form {
label {
font-weight: bold;
text-transform: uppercase;
}
> div {
margin: 5ex 0 0 0;
column-count: 2;
-moz-column-count: 2;
-webkit-column-count: 2;
column-gap: 3em;
@media screen and (max-width: $mobile-limit) {
column-count: 1;
-moz-column-count: 1;
-webkit-column-count: 1;
column-gap: 0;
}
> div {
width: 100%;
height: 14ex;
text-align: left;
display: inline-block;
}
}
input[type=submit] {
white-space: normal;
min-height: 2.5em;
width: 35%;
@media screen and (max-width: $mobile-limit) {
width: 70%;
}
}
}
@media screen and (max-width: $mobile-limit) {
width: auto;
margin: 0 0.5em;
}
}
input, button {
width: 100%;
border-radius: 0.1em;
padding: 0.7em 1em;
margin: 1ex 0 0.5ex 0;
}
input[type=submit], button {
margin-top: 1ex;
width: 100%;
text-transform: uppercase;
}
a, input {
font-size: 1.4rem;
}
p {
text-align: center;
}
label {
text-align: left;
}
form {
margin: 0;
}
div#columns > div.a2-block,
div#columns > div.separator {
width: 30em;
display: block;
float: none;
margin: 0 auto;
}
div#login-page {
span.helptext {
display: none;
}
label[for=id_remember_me] {
float: left;
}
#id_remember_me {
margin: 0 auto;
width: 1em;
float: left;
margin: 0.4ex 1ex;
}
}
div#login-page, div#registration {
font-weight: normal;
width: 100%;
margin: 0 auto;
&.methods2 {
> div.block {
display: block;
float: none;
margin: 0 auto;
width: 30em;
background: inherit;
padding: 0 1em;
}
}
div#methods {
div#fc-button-wrapper {
margin-bottom: 0;
}
div#fc-explanation-text {
margin-top: 0;
}
width: 60em;
margin: 2ex auto;
@media screen and (max-width: $common-screen-width) {
margin: 1ex auto;
}
padding: 0 1em;
display: flex;
display: -ms-flexbox;
-ms-flex-direction: row;
@media screen and (max-width: $mobile-limit) {
width: auto;
flex-direction: column;
-ms-flex-direction: column;
}
div.separator {
color: #000;
text-align: center;
font-size: 20px;
padding: 1ex 0;
margin: 0 1.5em;
width: 2px;
border-left: 2px solid #C5C5B6;
display: flex;
flex-direction: column;
display: -ms-flexbox;
-ms-flex-direction: column;
@media screen and (max-width: $mobile-limit) {
width: auto;
border: 0;
margin: 2em 0;
border-top: 2px solid #C5C5B6;
flex-direction: row;
}
> div {
background: $body-background;
padding: 1em 0;
margin: auto auto auto calc(-1em + 4px);
@media screen and (max-width: $mobile-limit) {
padding: 0 1em;
margin: calc(-1em - 2px) auto auto auto;
}
}
}
> div {
width: 27em;
margin: 0 1ex;
vertical-align: top;
&.agent-auth {
margin: 0 auto;
margin-bottom: 1ex;
> p {
display: none;
}
}
@media screen and (max-width: $mobile-limit) {
width: auto;
}
p {
margin-top: 0;
font-size: 1.1em;
}
}
input[name='cancel'] {
display: none;
}
}
&.fc-authenticated {
div#fc-button-wrapper {
background: #fff;
}
div.separator {
display: none;
}
div#methods {
width: 60em;
column-count: 2;
-moz-column-count: 2;
-webkit-column-count: 2;
@media screen and (max-width: $mobile-limit) {
width: auto;
column-count: 1;
-moz-column-count: 1;
-webkit-column-count: 1;
column-gap: 0;
}
div.block {
width: 70%;
margin: 0 1em;
}
}
}
}
div.a2-block {
background: transparent;
h2 {
@include header(100%);
}
}
div.a2-authorization {
width: 60em;
margin: 0 auto;
h2 {
text-align: center;
}
div.a2-authorization-explanation {
display: flex;
flex-wrap: wrap;
> div {
width: 28em;
margin: 15px;
@media screen and (max-width: $mobile-limit) {
width: auto;
}
}
}
span.a2-authorization-explanation-title {
display: block;
font-weight: bold;
font-style: italic;
}
@media screen and (max-width: $mobile-limit) {
width: auto;
margin: 0 0.5em;
}
#scopes {
display: none;
&:target {
display: block;
}
}
p {
margin-bottom: 5ex;
}
div.a2-authorization-form {
form p {
display: flex;
flex-direction: row-reverse;
justify-content: center;
flex-wrap: wrap;
}
input[type=submit] {
width: 11em;
margin: 5px 0.8em;
&.lock {
background-image: url(images/lock.png);
background-repeat: no-repeat;
background-position: 10%;
background-size: 15px;
}
&.refuse {
background-color: #ffffff;
color: #000000;
border: 2px solid #000000;
}
}
}
a {
font-size: 1em;
}
}
ul#id_title {
margin: 0;
padding: 0;
li {
list-style-type: none;
display: inline-block;
label {
font-weight: normal;
}
}
}
}
div#toplinks {
position: absolute;
top: 50%;
right: 1%;
border: 0;
box-shadow: none;
text-align: center;
background: transparent;
padding: 1ex 1em 0.3ex 1em;
@media screen and (max-width: $mobile-limit) {
max-width: 100%;
margin-top: 4px;
}
span.login {
display: none;
}
span.logged-in {
background: $body-background;
border-radius: 1.5em;
padding: 1.2ex 1.5em;
@media screen and (max-width: $mobile-limit) {
border-radius: 0 0 1.5em 1.5em;
}
a {
&.logout {
background: url(images/logout.png) no-repeat;
background-size: contain;
background-position: center right;
display: inline-block;
padding-right: 15px;
@media screen and (max-width: $mobile-limit) {
text-indent: -9999px;
}
}
}
}
div.last-login {
margin-top: 2ex;
}
@media screen and (max-width: $mobile-limit) {
top: 0;
right: 0;
}
}
#login-footer {
background: #fff;
width: $width;
padding-bottom: 2rem;
&::before {
content: '';
background: #f2f2f2;
width: 2.8em;
height: 2.8em;
display: block;
margin: 0 calc(50% - 1.4em);
transform: rotate(-45deg);
position: relative;
top: -1.4em;
}
a {
background-image: url(images/forward.png);
background-repeat: no-repeat;
background-position: 95% center;
background-size: 9px;
display: inline-block;
padding-right: 2.5em;
padding-left: 2.5em;
}
}
div#footer-wrapper {
background: url(images/footer-background.jpg) no-repeat;
background-size: cover;
@media screen and (max-width: $mobile-limit) {
display: none;
}
}
div#footer {
margin: 3rem auto;
font-size: 14px;
text-align: center;
width: 60em;
@media screen and (max-width: $mobile-limit) {
width: auto;
}
h3 {
display: inline-block;
padding: 5px 10px;
margin: 6.5em 0 1em 1em;
font-size: 1.4rem;
}
@each $i in (simple, unique, securise) {
.#{$i} {
background: url(images/#{$i}.png) no-repeat;
background-size: 40%;
background-position: top center;
}
}
}
div#footnote {
font-size: 15px;
max-width: $width;
padding: 1rem 0 0 0;
> div {
padding: 1rem 0;
&.footnote-top img {
height: 40px;
margin: 0 1em;
}
&.footnote-bottom {
background: #000;
color: #ffffff;
a {
color: #ffffff;
&.metro {
display: inline-block;
padding-top: 2px;
padding-left: 34px;
background: url(images/footer-metropole-plus.png) no-repeat center left;
min-height: 22px;
float: right;
@media screen and (max-width: $mobile-limit) {
float: none;
}
}
}
}
> div {
max-width: 95rem;
@media screen and (max-width: $mobile-limit) {
width: auto;
}
margin: 0 auto;
> div {
width: 49.5%;
display: inline-block;
vertical-align: top;
margin: 0 auto;
}
@media screen and (max-width: $mobile-limit) {
width: auto;
> div {
width: auto;
display: block;
text-align: center;
}
}
}
}
}
#cut-nav {
float: left;
width: 22%;
@media screen and (max-width: $mobile-limit) {
width: auto;
float: none;
margin: 0 0.5em;
}
a:hover {
text-decoration: none;
}
div.cut-back {
text-align: right;
margin: 5ex 3em;
@media screen and (max-width: $mobile-limit) {
text-align: left;
margin: 0 0 5ex 0;
}
a::after {
content: '';
background: url(images/fast-back.png) no-repeat;
background-size: contain;
display: inline-block;
width: 0.8em;
height: 0.8em;
vertical-align: middle;
margin-left: 0.5em;
}
}
ul {
margin: 0 5%;
@media screen and (max-width: $mobile-limit) {
display: none;
}
li {
list-style-type: none;
margin: 5ex 0;
a {
padding: 0.3ex 0;
&:hover {
border-bottom: 4px solid $link-color;
}
}
}
}
}
div.cut-edit {
> div {
column-count: 2;
-moz-column-count: 2;
-webkit-column-count: 2;
column-gap: 3em;
@media screen and (max-width: $mobile-limit) {
column-count: 1;
-moz-column-count: 1;
-webkit-column-count: 1;
}
div {
-webkit-column-break-inside: avoid;
page-break-inside: avoid;
break-inside: avoid;
break-inside: avoid-column;
height: 14ex;
margin-bottom: 2ex;
}
}
h2 {
color: #808080;
border-bottom: 3px solid #ccc;
}
label {
font-weight: bold;
}
}
#cut-account {
float: left;
position: relative;
width: 70%;
border-left: 1px solid #ccc;
margin: 3ex 0;
padding-left: 5%;
@media screen and (max-width: $mobile-limit) {
float: none;
width: auto;
padding: 0;
margin: 0 0.5em;
border: 0;
}
.associated-email {
color: $link-color;
span {
display: block;
color: #000;
font-weight: bold;
}
}
div.progress {
padding-right: 10%;
border-right: 1px solid #ccc;
width: 60%;
margin-bottom: 10ex;
&.validated {
margin-bottom: 1ex;
}
@media screen and (max-width: $mobile-limit) {
border: 0;
border-bottom: 1px solid #ccc;
float: none;
padding: 0;
width: auto;
padding-bottom: 3ex;
}
ul.profile {
padding: 2.5ex 5em 2.5ex 14em;
@media screen and (max-width: $mobile-limit) {
padding: 0;
}
li {
list-style-type: none;
background: url(images/check-nok.png) no-repeat;
background-size: contain;
margin: 3ex 0;
padding: 0 0 0 2.3em;
white-space: nowrap;
}
@each $status in (completed, fc-validated, guichet-validated) {
@each $i in (1, 2, 3) {
&.profile-#{$status}-#{$i}-3 {
background: url(images/profile-#{$status}-#{$i}-3.png) no-repeat;
@media screen and (max-width: $mobile-limit) {
background-image: none;
}
background-size: contain;
@for $j from 1 through $i {
li:nth-child(#{$j}) {
background-image: url(images/check-ok.png);
color: #000;
}
}
}
}
}
}
div.fc-validated, div.guichet-validated {
background: #034ea2;
color: #fff;
padding: 1ex 1em;
border-radius: 0.3em;
margin: 4ex 0 0 0;
> div {
display: flex;
flex-wrap: wrap;
> div {
width: 50%;
@media screen and (max-width: $mobile-limit) {
width: auto;
}
}
}
div.info {
p {
text-align: left;
}
}
div.fc-block {
a {
color: #fff;
}
p.more-info {
text-align: right;
@media screen and (max-width: $mobile-limit) {
display: none;
}
a {
background: url(images/more.png) top right no-repeat;
background-size: 65%;
padding-top: 6ex;
}
}
}
&::before {
background: #034ea2;
content: "";
display: block;
width: 2em;
height: 2em;
transform: rotate(45deg);
margin: -1em 4em;
@media screen and (max-width: $mobile-limit) {
display: none;
}
}
}
div.guichet-validated {
background: #00a8a7;
&::before {
background: #00a8a7;
}
}
}
div#account-management {
position: absolute;
top: 0;
right: 0;
width: 25%;
@media screen and (max-width: $mobile-limit) {
float: none;
width: auto;
position: relative;
}
.block {
margin: 0 0 0 5%;
@media screen and (max-width: $mobile-limit) {
width: auto;
margin: 1ex 0;
}
ul {
margin: 3ex 0;
li {
margin: 1ex 0;
border: 0;
a {
color: #fff;
@extend button;
justify-content: center;
}
}
}
}
div#account-management-fc {
text-align: center;
@media screen and (max-width: $mobile-limit) {
width: 300px;
margin: 0 auto;
}
}
}
div#profile {
p {
text-align: left;
}
ul {
margin: 5ex 0;
padding: 0;
li {
&:first-child {
border-top: 2px solid #ccc;
}
list-style-type: none;
padding: 2.5ex 0;
border-bottom: 2px solid #ccc;
margin-left: 1em;
&.nodata {
border: 0;
padding: 0;
margin-left: 0;
}
span.field-value {
float: right;
color: #000;
font-weight: bold;
@media screen and (max-width: $mobile-limit) {
float: none;
display: block;
}
}
}
}
div.edit {
width: 30em;
margin: 5ex auto;
@media screen and (max-width: 570px) {
width: auto;
}
}
}
}
.center {
text-align: center !important;
}
div.password-reset-form, div#registration_complete {
margin: 0 auto 3ex auto;
width: 33em;
@media screen and (max-width: $mobile-limit) {
width: auto;
margin: 0 0.5em;
}
}
span.helptext {
font-size: 0.7em;
}
div#cgu {
width: $mobile-limit;
margin: 0 auto;
p {
text-align: justify;
}
a {
color: $primary-color;
}
}
/* don't display navigation */
div#nav {
display: none;
}
/* a2 password widgets */
.helptext.a2-password-ok, .helptext.a2-password-nok {
background: #d5eee0;
padding: 1ex;
border-radius: 5px;
margin-top: 1ex;
position: relative;
::before {
content: "";
display: block;
width: 1.6ex;
height: 1.6ex;
background: #d5eee0;
position: absolute;
top: -0.8ex;
transform: rotate(45deg);
left: 2ex;
}
}
.helptext.a2-password-nok {
background: #fbd3d3;
color: $primary-color;
::before {
background: #fbd3d3;
}
}
input[type="checkbox"] {
position: absolute;
left: -99999px;
+ label {
position: relative;
padding-left: 20px;
&::before {
position: absolute;
left: 0;
top: 3px;
content: '';
display: block;
border: 1px solid #777777;
background: #ffffff;
width: 13px;
height: 13px;
}
}
&:checked {
+ label::after {
content: '';
position: absolute;
top: 5px;
left: 2px;
background-color: #000000;
transition: all .2s;
width: 11px;
height: 11px;
}
}
}