izi-ici: add initial theme

This commit is contained in:
Serghei Mihai 2022-01-17 17:08:52 +01:00
parent a1f32dd0be
commit 31ab6c0c11
13 changed files with 510 additions and 0 deletions

333
static/izi-ici/_custom.scss Normal file
View File

@ -0,0 +1,333 @@
%button {
@extends %button;
font-weight: bold;
}
//
// Typo
//
h1, h2, h3, h4, h5, h6 {
font-weight: bold;
}
h1 {
font-size: $fz-h1;
color: $title-color;
}
h2 {
font-size: $fz-h2;
color: $secondary-color;
}
h3 {
font-size: $fz-h3;
color: $secondary-color;
}
h4 {
font-size: $fz-h4;
color: $gray-1;
}
h5 {
font-size: $fz-h4;
color: $gray-2;
}
h6 {
font-size: $fz-h4;
color: $gray-2;
}
div#header {
height: $header-height;
h1 {
padding-left: 0;
}
@media ($max-mobile-viewport) {
height: $mobile-header-height;
}
}
#toplinks {
border: 0;
border-radius: 0;
box-shadow: none;
padding: 0.5em 0;
position: relative;
span.sep {
display: none;
}
a {
font-weight: bold;
color: $link-color;
margin: 0 1.5em;
@media ($max-mobile-viewport) {
margin: 0;
}
&.account-link {
font-weight: normal;
margin-left: 0;
}
&:hover {
text-decoration: none;
}
}
> span {
display: flex;
justify-content: space-between;
}
@media ($min-desktop-viewport) {
right: $nav-menu-side;
}
@media ($max-mobile-viewport) {
max-width: 100%;
width: 100%;
border-bottom: 1px solid #dcdcdc;
}
}
#top {
display: flex;
align-items: center;
justify-content: space-between;
height: 100%;
padding: 0.5em 0;
@media ($max-mobile-viewport) {
flex-direction: column-reverse;
align-items: baseline;
}
}
#banner {
height: 300px;
background: url('/assets/banner:background') center no-repeat;
background-size: cover;
}
.wcs-page #banner {
display: none;
}
#platform-title {
background: $primary-color;
h1 {
margin: 0 auto;
max-width: calc(#{$width} + 0.5em);
padding: 0.25em;
}
}
main {
padding-top: 2em;
}
div.title label {
font-weight: bold;
font-size: 15px;
color: $gray-1;
}
.gru-content {
div.tracking-code-input-cell, div.searchcell {
form {
display: flex;
}
button, input {
margin: 0;
line-height: 1em;
}
button {
&::after {
content: '\f002';
font-family: FontAwesome;
}
}
}
div.searchcell {
form {
padding: 0;
}
input {
border-right: 0;
}
}
div.tracking-code-input-cell {
background: #5d737e;
color: #fff;
h2:first-child {
background: transparent;
color: #fff;
}
button, input {
border: 0;
}
#tracking-code {
width: 75%;
}
}
a {
font-size: 18px;
text-decoration: underline;
}
div.wcs-tracking-code-input h2:first-child {
padding-bottom: 0;
}
div.wcsformsofcategorycell, div.linklistcell {
background: transparent;
}
div.cell h2.commune--title {
background: transparent;
color: $gray-1;
padding-bottom: 0;
}
}
a.registration::before {
content: '\f2c0';
font-family: FontAwesome;
margin-right: 0.25em;
}
a.login-link, a.logout {
&::before {
content: '\f090';
font-family: FontAwesome;
margin-right: 0.25em;
}
@media (min-width: $mobile-limit + 1) {
border-bottom: 2px solid $red;
}
}
@if $responsive-menu == top-to-bottom {
div.gru-nav-wrapper {
margin: 0;
background-color: $nav-background;
}
div.gru-nav {
position: relative;
.gru-nav-button {
position: absolute;
left: auto;
right: 0.7em;
@media ($max-mobile-viewport) {
bottom: calc(100% + 0.5em);
}
@media ($min-desktop-viewport) {
top: calc(-1 * #{$header-height + $nav-menu-side} / 2);
}
+ ul {
margin: 0;
border: 0;
position: absolute;
width: 100%;
li {
&:last-child {
border-bottom: 0;
}
a:hover span {
border-bottom: 2px solid $nav-mobile-menu-item-color;
}
}
}
}
}
}
div.cell.has-asset-picture {
$image-width: 3rem;
> div {
display: flex;
flex-wrap: wrap;
align-items: baseline;
> * {
flex: 0 0 100%;
}
> h2:first-child {
flex: 1 0 50%;
margin-left: -1 * $image-width;
padding-left: $image-width + 0.25;
}
> picture {
display: block;
order: -1;
flex: 0 0 $image-width;
align-self: stretch;
position: relative;
z-index: 1;
img {
padding: 0;
width: 100%;
height: 100%;
object-fit: contain;
position: absolute;
top: 0; bottom: 0; left: 0; right: 0;
border-top: 4px solid transparent;
border-bottom: 4px solid transparent;
}
}
&.linkcell li, li {
padding-left: $image-width - 0.75;
}
}
&.linkcell li {
background-size: $image-width - 0.5;
background-position: center left 2%;
background-repeat: no-repeat;
}
}
div.wcsformsofcategorycell, div.linklistcell, div.linkcell {
ul > li {
background-color: #fff;
margin: 5px 0;
&:not(:last-child) {
border-bottom: 0;
}
a {
font-weight: bold;
}
}
}
div.links-list {
ul {
li div.description {
font-weight: bold;
padding: 0;
color: #8e8e8e;
margin-top: -1rem;
}
> li > a:hover {
background-color: transparent;
text-decoration: underline;
}
}
}
// Custom "Services des communes" cell
div#services-communes {
background: $cell-background;
select {
width: 100%;
}
}
div.lien-signalement div.links-list {
border: $widget-border;
li {
margin: 0;
}
a, a:hover {
color: $red;
}
}
#footer-wrapper {
margin-top: 0;
}

75
static/izi-ici/_vars.scss Normal file
View File

@ -0,0 +1,75 @@
// Colors
$primary-color: #5D737E !default;
$secondary-color: #455E6B;
$red: #DE4855;
$gray-1: #4D4D4D;
$gray-2: #666;
$gray-3: #8f8f8f;
$gray-4: #a9a9a9;
$gray-5: #dcdcdc;
$body-background: $gray-5;
$fz-h1: 34px;
$fz-h2: 28px;
$fz-h3: 24px;
$fz-h4: 20px;
// Core vars
$font-size: 18px;
$font-family: 'Source Sans Pro';
$font-color: #4D4D4D;
$title-weight: bold;
$title-font-size: $fz-h2;
$width: 1280px;
$mobile-limit: 900px;
$very-small-limit: 600px;
$header-background-color: #fff;
$link-color: $gray-1;
$button-background: $red;
$button-color: #fff;
$title-color: #fff !default;
$title-background: $primary-color;
$title-transform: uppercase;
$cell-border: 0;
$columns-gutter: 20px;
$grid-gutter: $columns-gutter;
$nav-mobile-limit: 9999px;
$nav-button-background: transparent;
$nav-mobile-menu-background: #fff;
$nav-button-color: #5D737E;
$nav-border-color: $nav-button-color;
$nav-mobile-menu-item-hover-background: $nav-button-color;
$nav-mobile-menu-item-color: $nav-button-color;
$nav-mobile-menu-item-hover-background: transparent;
$nav-mobile-menu-item-hover-color: $nav-button-color;
$nav-mobile-bottom-bar-background: $gray-4;
$nav-mobile-bottom-bar-item-hover-background: $gray-3;
$nav-mobile-bottom-bar-item-selected-background: $nav-mobile-bottom-bar-item-hover-background;
$pwa-nav-limit: $mobile-limit;
$nav-after-image: none;
$buttons-order: previous, submit (grow), cancel;
$widget-border: 1px solid $gray-2;
$wcs-step-color: $gray-2;
// Custom vars
$header-height: 90px;
$mobile-header-height: 115px;
$footer-background: $primary-color !default;
$footer-link-color: #fff !default;

View File

@ -0,0 +1,23 @@
{
"label": "IZI ICI",
"variables": {
"global_title": "IZI ICI",
"pwa_display": "standalone",
"theme_color": "#5d737e",
"email_header_asset": "emails:logo"
},
"settings": {
"combo": {
"COMBO_ASSET_SLOTS.update": {
"header:logo": {"label": "Têtière : logo"},
"emails:logo": {"label": "Emails : logo"},
"banner:background": {"label": "Bannière : image de fond"}
},
"COMBO_CELL_ASSET_SLOTS.update": {
"data_linkcell": {
"picture": {"prefix": "Icône"}
}
}
}
}
}

View File

@ -0,0 +1,6 @@
@charset "UTF-8";
@import '../includes/fonts/source-sans-pro';
@import 'vars';
@import '../includes/publik';
@import 'custom';

View File

@ -0,0 +1,2 @@
<h2>{{ title }}{% if items %} ({{ items|length }}){% endif %}</h2>
{% include "combo/asset_picture_fragment.html" %}

View File

@ -0,0 +1,24 @@
{% block cell-content %}
<h2 class="commune--title">PAR COMMUNE</h2>
<div class="cell--body">
<form>
<select id="commune--select-{{ cell.id }}" class="commune--select">
<option value="">Sélectionnez</option>
{% for link in links %}
<option value="{{ link.url }}">{{ link.title }}</option>
{% endfor %}
</select>
</form>
<p>Sélectionnez une commune pour découvrir ses services en ligne</p>
</div>
{% endblock %}
<script>
$(function() {
$('#commune--select-{{ cell.id }}').change(function(e){
const link = this.options[this.selectedIndex].value;
if (link) {
window.location.href = link;
}
})
});
</script>

View File

@ -0,0 +1,8 @@
{% load assets %}
{% get_asset cell=cell type='picture' as asset %}
<div class="links-list">
<ul>
<li{% if asset %} style="background-image: url({{ asset.asset.url }})"{% endif %}><a href="{{url}}">{{title}}</a></li>
</ul>
</div>

View File

@ -0,0 +1,5 @@
{% extends "combo/link-list-cell.html" %}
{% block cell-header %}
{% include "combo/cell-header.html" with items=links %}
{% endblock %}

View File

@ -0,0 +1,10 @@
{% extends "combo/page_template.html" %}
{% load combo %}
{% block before-main-content %}
<div id="banner"></div>
{{ block.super }}
<div id="platform-title">
{% placeholder "site-title" name="Titre du site" acquired=True %}
</div>
{% endblock %}

View File

@ -0,0 +1,2 @@
{% extends "combo/search-cell.html" %}
{% block submit-content %}{% endblock %}

View File

@ -0,0 +1,5 @@
{% extends "combo/wcs/forms_of_category.html" %}
{% block cell-header %}
{% include "combo/cell-header.html" with items=forms %}
{% endblock %}

View File

@ -0,0 +1,12 @@
{% extends "combo/wcs/tracking_code_input.html" %}
{% block form-top %}{% endblock %}
{% block submit-content %}{% endblock %}
{% block form-post %}
Un code de suivi peut être associé à vos demandes, il
facilite vos échanges avec les services.
Pour retrouver une demande disposant dun code de suivi, indiquez ce dernier
ci-dessus.
{% endblock %}

View File

@ -0,0 +1,5 @@
{% extends "includes/user-info.html" %}
{% block user-info-login-label %}SE CONNECTER{% endblock %}
{% block user-info-registration-label %}S'INSCRIRE{% endblock %}
{% block user-info-logout-label %}SE DÉCONNECTER{% endblock %}