commit fonctionne ou pas ?

This commit is contained in:
val
2022-11-30 17:27:28 +01:00
commit e9dd38c3a8
3397 changed files with 593718 additions and 0 deletions
View File
@@ -0,0 +1,5 @@
# v0.1.0
## 11/25/2021
1. [](#new)
* ChangeLog started...
+21
View File
@@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) 2021 Valentin Le Moign
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
+7
View File
@@ -0,0 +1,7 @@
# Figureslibres V2 Theme
The **Figureslibres V2** Theme is for [Grav CMS](http://github.com/getgrav/grav). This README.md file should be modified to describe the features, installation, configuration, and general usage of this theme.
## Description
Refonte du site du collectif Figures Libres
@@ -0,0 +1,32 @@
name: Figureslibres V2
slug: figureslibres-v2
type: theme
version: 0.1.0
description: Refonte du site du collectif Figures Libres
icon: rebel
author:
name: Valentin Le Moign
email: valentin_le_moign@figureslibres.io
homepage: https://github.com/valentin-le-moign/grav-theme-figureslibres-v2
demo: http://demo.yoursite.com
keywords: grav, theme, etc
bugs: https://github.com/valentin-le-moign/grav-theme-figureslibres-v2/issues
readme: https://github.com/valentin-le-moign/grav-theme-figureslibres-v2/blob/develop/README.md
license: MIT
dependencies:
- { name: grav, version: '>=1.6.0' }
form:
validation: loose
fields:
dropdown.enabled:
type: toggle
label: Dropdown in Menu
highlight: 1
default: 1
options:
1: PLUGIN_ADMIN.ENABLED
0: PLUGIN_ADMIN.DISABLED
validate:
type: bool
+175
View File
@@ -0,0 +1,175 @@
/* Core Stuff */
* {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
body {
font-size: 1rem;
line-height: 1.7;
color: #606d6e;
}
h1,
h2,
h3,
h4,
h5,
h6 {
color: #454B4D;
}
a {
color: #1F8CD6;
text-decoration: none;
}
a:hover {
color: #175E91;
}
pre {
background: #F0F0F0;
margin: 1rem 0;
border-radius: 2px;
}
blockquote {
border-left: 10px solid #eee;
margin: 0;
padding: 0 2rem;
}
/* Utility Classes */
.wrapper {
margin: 0 3rem;
}
.padding {
padding: 3rem 1rem;
}
.left {
float: left;
}
.right {
float: right
}
.text-center {
text-align: center;
}
.text-right {
text-align: right;
}
.text-left {
text-align: left;
}
/* Content Styling */
.header .padding {
padding: 1rem 0;
}
.header {
background-color: #1F8DD6;
color: #eee;
}
.header a {
color: #fff;
}
.header .logo {
font-size: 1.7rem;
text-transform: uppercase;
}
.footer {
background-color: #eee;
}
/* Menu Settings */
.main-nav ul {
text-align: center;
letter-spacing: -1em;
margin: 0;
padding: 0;
}
.main-nav ul li {
display: inline-block;
letter-spacing: normal;
}
.main-nav ul li a {
position: relative;
display: block;
line-height: 45px;
color: #fff;
padding: 0 20px;
white-space: nowrap;
}
.main-nav > ul > li > a {
border-radius: 2px;
}
/*Active dropdown nav item */
.main-nav ul li:hover > a {
background-color: #175E91;
}
/* Selected Dropdown nav item */
.main-nav ul li.selected > a {
background-color: #fff;
color: #175E91;
}
/* Dropdown CSS */
.main-nav ul li {position: relative;}
.main-nav ul li ul {
position: absolute;
background-color: #1F8DD6;
min-width: 100%;
text-align: left;
z-index: 999;
display: none;
}
.main-nav ul li ul li {
display: block;
}
/* Dropdown CSS */
.main-nav ul li ul ul {
left: 100%;
top: 0;
}
/* Active on Hover */
.main-nav li:hover > ul {
display: block;
}
/* Child Indicator */
.main-nav .has-children > a {
padding-right: 30px;
}
.main-nav .has-children > a:after {
font-family: FontAwesome;
content: '\f107';
position: absolute;
display: inline-block;
right: 8px;
top: 0;
}
.main-nav .has-children .has-children > a:after {
content: '\f105';
}
+6
View File
@@ -0,0 +1,6 @@
/**
* Owl Carousel v2.3.4
* Copyright 2013-2018 David Deutsch
* Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE
*/
.owl-carousel,.owl-carousel .owl-item{-webkit-tap-highlight-color:transparent;position:relative}.owl-carousel{display:none;width:100%;z-index:1}.owl-carousel .owl-stage{position:relative;-ms-touch-action:pan-Y;touch-action:manipulation;-moz-backface-visibility:hidden}.owl-carousel .owl-stage:after{content:".";display:block;clear:both;visibility:hidden;line-height:0;height:0}.owl-carousel .owl-stage-outer{position:relative;overflow:hidden;-webkit-transform:translate3d(0,0,0)}.owl-carousel .owl-item,.owl-carousel .owl-wrapper{-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0)}.owl-carousel .owl-item{min-height:1px;float:left;-webkit-backface-visibility:hidden;-webkit-touch-callout:none}.owl-carousel .owl-item img{display:block;width:100%}.owl-carousel .owl-dots.disabled,.owl-carousel .owl-nav.disabled{display:none}.no-js .owl-carousel,.owl-carousel.owl-loaded{display:block}.owl-carousel .owl-dot,.owl-carousel .owl-nav .owl-next,.owl-carousel .owl-nav .owl-prev{cursor:pointer;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.owl-carousel .owl-nav button.owl-next,.owl-carousel .owl-nav button.owl-prev,.owl-carousel button.owl-dot{background:0 0;color:inherit;border:none;padding:0!important;font:inherit}.owl-carousel.owl-loading{opacity:0;display:block}.owl-carousel.owl-hidden{opacity:0}.owl-carousel.owl-refresh .owl-item{visibility:hidden}.owl-carousel.owl-drag .owl-item{-ms-touch-action:pan-y;touch-action:pan-y;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.owl-carousel.owl-grab{cursor:move;cursor:grab}.owl-carousel.owl-rtl{direction:rtl}.owl-carousel.owl-rtl .owl-item{float:right}.owl-carousel .animated{animation-duration:1s;animation-fill-mode:both}.owl-carousel .owl-animated-in{z-index:0}.owl-carousel .owl-animated-out{z-index:1}.owl-carousel .fadeOut{animation-name:fadeOut}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}.owl-height{transition:height .5s ease-in-out}.owl-carousel .owl-item .owl-lazy{opacity:0;transition:opacity .4s ease}.owl-carousel .owl-item .owl-lazy:not([src]),.owl-carousel .owl-item .owl-lazy[src^=""]{max-height:0}.owl-carousel .owl-item img.owl-lazy{transform-style:preserve-3d}.owl-carousel .owl-video-wrapper{position:relative;height:100%;background:#000}.owl-carousel .owl-video-play-icon{position:absolute;height:80px;width:80px;left:50%;top:50%;margin-left:-40px;margin-top:-40px;background:url(owl.video.play.png) no-repeat;cursor:pointer;z-index:1;-webkit-backface-visibility:hidden;transition:transform .1s ease}.owl-carousel .owl-video-play-icon:hover{-ms-transform:scale(1.3,1.3);transform:scale(1.3,1.3)}.owl-carousel .owl-video-playing .owl-video-play-icon,.owl-carousel .owl-video-playing .owl-video-tn{display:none}.owl-carousel .owl-video-tn{opacity:0;height:100%;background-position:center center;background-repeat:no-repeat;background-size:contain;transition:opacity .4s ease}.owl-carousel .owl-video-frame{position:relative;z-index:1;height:100%;width:100%}
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
@@ -0,0 +1,9 @@
<?php
namespace Grav\Theme;
use Grav\Common\Theme;
class FigureslibresV2 extends Theme
{
// Access plugin events in this class
}
@@ -0,0 +1,3 @@
enabled: true
dropdown:
enabled: false
@@ -0,0 +1,48 @@
/*! Generated by Font Squirrel (https://www.fontsquirrel.com) on November 25, 2021 */
@font-face {
font-family: 'latobold';
src: url('lato-bold.woff2') format('woff2'),
url('lato-bold.woff') format('woff');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'latobold_italic';
src: url('lato-bolditalic.woff2') format('woff2'),
url('lato-bolditalic.woff') format('woff');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'latoitalic';
src: url('lato-italic.woff2') format('woff2'),
url('lato-italic.woff') format('woff');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'latoregular';
src: url('lato-regular.woff2') format('woff2'),
url('lato-regular.woff') format('woff');
font-weight: normal;
font-style: normal;
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="margin: auto; background: none; display: block; shape-rendering: auto;" width="24px" height="24px" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid">
<circle cx="50" cy="50" fill="none" stroke="#0b1117" stroke-width="5" r="35" stroke-dasharray="164.93361431346415 56.97787143782138">
<animateTransform attributeName="transform" type="rotate" repeatCount="indefinite" dur="1s" values="0 50 50;360 50 50" keyTimes="0;1"></animateTransform>
</circle>
</svg>

After

Width:  |  Height:  |  Size: 589 B

@@ -0,0 +1,65 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 24 18"
version="1.1"
x="0px"
y="0px"
id="svg14"
sodipodi:docname="arrow-diagonal.svg"
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
width="24"
height="18"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<defs
id="defs18" />
<sodipodi:namedview
id="namedview16"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="10.687828"
inkscape:cx="11.695547"
inkscape:cy="35.273771"
inkscape:window-width="1920"
inkscape:window-height="1051"
inkscape:window-x="1366"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg14" />
<title
id="title2">icons / Arrow</title>
<desc
id="desc4">Created with Sketch.</desc>
<g
stroke="none"
stroke-width="1"
fill="none"
fill-rule="evenodd"
id="g8"
transform="translate(-0.15587972,-2.2663626)">
<path
d="m 20,3 0.01935,1.862e-4 c 0.02333,4.487e-4 0.04664,0.00171 0.0699,0.00378 L 20,3 c 0.05062,0 0.100362,0.00376 0.148961,0.011019 0.01699,0.00261 0.03441,0.00568 0.05176,0.00922 0.02202,0.0044 0.04371,0.00959 0.06511,0.015481 0.01562,0.00438 0.03101,0.00901 0.0463,0.014017 0.01966,0.00638 0.03944,0.013578 0.05892,0.021366 0.01774,0.00709 0.03504,0.014575 0.05216,0.022569 0.02067,0.0097 0.04107,0.02012 0.06106,0.031202 0.01212,0.00662 0.02434,0.013731 0.03643,0.02112 0.02557,0.015723 0.05042,0.032495 0.07445,0.050318 0.0074,0.00544 0.01468,0.010971 0.02186,0.016614 0.06316,0.049624 0.120426,0.1068906 0.170192,0.1703222 l -0.08011,-0.090357 c 0.03539,0.035394 0.06758,0.072781 0.09656,0.1118002 0.01785,0.024176 0.03462,0.049032 0.05027,0.074646 0.0075,0.012047 0.01457,0.024266 0.0214,0.036598 0.01088,0.019768 0.02129,0.040171 0.03102,0.060963 0.008,0.017001 0.01546,0.034304 0.02243,0.051763 0.0079,0.019757 0.0151,0.039538 0.02168,0.0596 0.0048,0.014885 0.0094,0.030273 0.0137,0.045743 0.006,0.021556 0.0112,0.043247 0.01568,0.065199 0.0035,0.017419 0.0065,0.034845 0.0091,0.052327 0.0016,0.010231 0.003,0.021012 0.0043,0.031846 l 0.0031,0.031397 c 0.0015,0.017301 0.0025,0.034633 0.0031,0.051977 L 21,4 v 10.97379 c 0,0.552285 -0.447715,1 -1,1 -0.512836,0 -0.935507,-0.38604 -0.993272,-0.883378 L 19,14.97379 18.999,6.415 5.7071068,19.707107 c -0.3905243,0.390524 -1.0236893,0.390524 -1.4142136,0 C 3.9324093,19.346623 3.9046797,18.779392 4.2097046,18.387101 L 4.2928932,18.292893 17.585,4.999 9.0001227,5 C 8.4872869,5 8.0646156,4.6139598 8.0068505,4.1166211 L 8.0001227,4 c 0,-0.5128358 0.3860402,-0.9355072 0.8833789,-0.9932723 L 9.0001227,3 Z"
fill="#000000"
fill-rule="nonzero"
id="path6" />
</g>
<metadata
id="metadata835">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:title>icons / Arrow</dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
</svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

@@ -0,0 +1,61 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 24 30"
version="1.1"
x="0px"
y="0px"
id="svg12"
sodipodi:docname="arrow-down.svg"
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<defs
id="defs16" />
<sodipodi:namedview
id="namedview14"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="8.125267"
inkscape:cx="-5.6613524"
inkscape:cy="8.9843202"
inkscape:window-width="1920"
inkscape:window-height="1051"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg12" />
<title
id="title2">icons / Arrow-Right</title>
<g
stroke="none"
stroke-width="1"
fill="none"
fill-rule="evenodd"
id="g6"
transform="rotate(90,11,12.999996)">
<path
d="m 16.681932,5.2684395 0.08629,0.091376 5.042819,6.0548205 v 0 l 0.06362,0.100098 v 0 l 0.06561,0.144066 v 0 l 0.0389,0.137168 v 0 l 0.01717,0.117449 v 0 L 22,12 v 0 l -0.0025,0.07061 v 0 l -0.01594,0.12126 v 0 l -0.02359,0.09573 -0.0317,0.08965 v 0 l -0.06326,0.128377 v 0 l -0.09484,0.134549 -5,6 c -0.353564,0.424277 -0.984128,0.481601 -1.408405,0.128037 C 14.968124,18.441846 14.889154,17.879455 15.15741,17.46116 L 15.231779,17.359816 18.864,12.999975 3,13 C 2.4477153,13 2,12.552285 2,12 2,11.487164 2.3860402,11.064493 2.8833789,11.006728 L 3,11 18.864,10.999975 15.231779,6.6401844 c -0.353564,-0.4242769 -0.29624,-1.0548416 0.128037,-1.4084057 0.39164,-0.3263668 0.959052,-0.3026278 1.322116,0.036661 z"
fill="#000000"
fill-rule="nonzero"
id="path4" />
</g>
<metadata
id="metadata833">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:title>icons / Arrow-Right</dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

@@ -0,0 +1,65 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 24 16"
version="1.1"
x="0px"
y="0px"
id="svg12"
sodipodi:docname="arrow-right.svg"
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
width="24"
height="16"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<defs
id="defs16" />
<sodipodi:namedview
id="namedview14"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="8.125267"
inkscape:cx="11.445778"
inkscape:cy="6.5228626"
inkscape:window-width="1366"
inkscape:window-height="739"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg12"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1" />
<title
id="title2">icons / Arrow-Right</title>
<g
stroke="none"
stroke-width="1"
fill="none"
fill-rule="evenodd"
id="g6"
transform="matrix(-1,0,0,1,24,-4)">
<path
d="m 16.681932,5.2684395 0.08629,0.091376 5.042819,6.0548205 v 0 l 0.06362,0.100098 v 0 l 0.06561,0.144066 v 0 l 0.0389,0.137168 v 0 l 0.01717,0.117449 v 0 L 22,12 v 0 l -0.0025,0.07061 v 0 l -0.01594,0.12126 v 0 l -0.02359,0.09573 -0.0317,0.08965 v 0 l -0.06326,0.128377 v 0 l -0.09484,0.134549 -5,6 c -0.353564,0.424277 -0.984128,0.481601 -1.408405,0.128037 C 14.968124,18.441846 14.889154,17.879455 15.15741,17.46116 L 15.231779,17.359816 18.864,12.999975 3,13 C 2.4477153,13 2,12.552285 2,12 2,11.487164 2.3860402,11.064493 2.8833789,11.006728 L 3,11 18.864,10.999975 15.231779,6.6401844 c -0.353564,-0.4242769 -0.29624,-1.0548416 0.128037,-1.4084057 0.39164,-0.3263668 0.959052,-0.3026278 1.322116,0.036661 z"
fill="#000000"
fill-rule="nonzero"
id="path4" />
</g>
<metadata
id="metadata833">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:title>icons / Arrow-Right</dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

@@ -0,0 +1,63 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 24 16"
version="1.1"
x="0px"
y="0px"
id="svg12"
sodipodi:docname="arrow-right.svg"
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
width="24"
height="16"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<defs
id="defs16" />
<sodipodi:namedview
id="namedview14"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="8.125267"
inkscape:cx="11.445778"
inkscape:cy="6.5228626"
inkscape:window-width="1366"
inkscape:window-height="739"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg12" />
<title
id="title2">icons / Arrow-Right</title>
<g
stroke="none"
stroke-width="1"
fill="none"
fill-rule="evenodd"
id="g6"
transform="translate(0,-4)">
<path
d="m 16.681932,5.2684395 0.08629,0.091376 5.042819,6.0548205 v 0 l 0.06362,0.100098 v 0 l 0.06561,0.144066 v 0 l 0.0389,0.137168 v 0 l 0.01717,0.117449 v 0 L 22,12 v 0 l -0.0025,0.07061 v 0 l -0.01594,0.12126 v 0 l -0.02359,0.09573 -0.0317,0.08965 v 0 l -0.06326,0.128377 v 0 l -0.09484,0.134549 -5,6 c -0.353564,0.424277 -0.984128,0.481601 -1.408405,0.128037 C 14.968124,18.441846 14.889154,17.879455 15.15741,17.46116 L 15.231779,17.359816 18.864,12.999975 3,13 C 2.4477153,13 2,12.552285 2,12 2,11.487164 2.3860402,11.064493 2.8833789,11.006728 L 3,11 18.864,10.999975 15.231779,6.6401844 c -0.353564,-0.4242769 -0.29624,-1.0548416 0.128037,-1.4084057 0.39164,-0.3263668 0.959052,-0.3026278 1.322116,0.036661 z"
fill="#000000"
fill-rule="nonzero"
id="path4" />
</g>
<metadata
id="metadata833">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:title>icons / Arrow-Right</dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

@@ -0,0 +1,78 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 20.200001 17"
version="1.1"
x="0px"
y="0px"
id="svg14"
sodipodi:docname="burger.svg"
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
width="20.200001"
height="17"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<defs
id="defs18" />
<sodipodi:namedview
id="namedview16"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="24.233333"
inkscape:cx="5.4057772"
inkscape:cy="6.8088034"
inkscape:window-width="1920"
inkscape:window-height="1051"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg14" />
<title
id="title2">icons / menu</title>
<desc
id="desc4">Created with Sketch.</desc>
<g
stroke="none"
stroke-width="1"
fill="none"
fill-rule="evenodd"
id="g8"
transform="translate(-1.8782495,-3.5162497)">
<path
d="m 21,18 c 0.552285,0 1,0.447715 1,1 0,0.512836 -0.38604,0.935507 -0.883379,0.993272 L 21,20 H 3 C 2.4477153,20 2,19.552285 2,19 2,18.487164 2.3860402,18.064493 2.8833789,18.006728 L 3,18 Z m 0,-7 c 0.552285,0 1,0.447715 1,1 0,0.512836 -0.38604,0.935507 -0.883379,0.993272 L 21,13 H 3 C 2.4477153,13 2,12.552285 2,12 2,11.487164 2.3860402,11.064493 2.8833789,11.006728 L 3,11 Z m 0,-7 c 0.552285,0 1,0.4477152 1,1 0,0.5128358 -0.38604,0.9355072 -0.883379,0.9932723 L 21,6 H 3 C 2.4477153,6 2,5.5522847 2,5 2,4.4871642 2.3860402,4.0644928 2.8833789,4.0067277 L 3,4 Z"
fill="#000000"
fill-rule="nonzero"
id="path6" />
</g>
<metadata
id="metadata835">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:title>icons / menu</dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
stroke="none"
stroke-width="1"
fill="none"
fill-rule="evenodd"
id="g827"
transform="translate(-1.8782495,-3.5162497)">
<path
d="m 21,18 c 0.552285,0 1,0.447715 1,1 0,0.512836 -0.38604,0.935507 -0.883379,0.993272 L 21,20 H 3 C 2.4477153,20 2,19.552285 2,19 2,18.487164 2.3860402,18.064493 2.8833789,18.006728 L 3,18 Z m 0,-7 c 0.552285,0 1,0.447715 1,1 0,0.512836 -0.38604,0.935507 -0.883379,0.993272 L 21,13 H 3 C 2.4477153,13 2,12.552285 2,12 2,11.487164 2.3860402,11.064493 2.8833789,11.006728 L 3,11 Z m 0,-7 c 0.552285,0 1,0.4477152 1,1 0,0.5128358 -0.38604,0.9355072 -0.883379,0.9932723 L 21,6 H 3 C 2.4477153,6 2,5.5522847 2,5 2,4.4871642 2.3860402,4.0644928 2.8833789,4.0067277 L 3,4 Z"
fill="#000000"
fill-rule="nonzero"
id="path825" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.0 KiB

@@ -0,0 +1,66 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 24 14"
version="1.1"
x="0px"
y="0px"
id="svg14"
sodipodi:docname="chevron-down.svg"
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
width="24"
height="14"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<defs
id="defs18" />
<sodipodi:namedview
id="namedview16"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="11.28428"
inkscape:cx="25.965325"
inkscape:cy="21.71162"
inkscape:window-width="1920"
inkscape:window-height="1051"
inkscape:window-x="1366"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg14" />
<title
id="title2">icons / arrow-down</title>
<desc
id="desc4">Created with Sketch.</desc>
<g
stroke="none"
stroke-width="1"
fill="none"
fill-rule="evenodd"
id="g8"
transform="translate(0,-6)">
<path
d="m 11.292893,8.2928932 c 0.360484,-0.3604839 0.927715,-0.3882135 1.320006,-0.083189 l 0.09421,0.083189 8,7.9999998 c 0.390524,0.390524 0.390524,1.023689 0,1.414214 -0.360484,0.360484 -0.927715,0.388213 -1.320006,0.08319 L 19.292893,17.707107 12,10.415 4.7071068,17.707107 c -0.360484,0.360484 -0.927715,0.388213 -1.3200062,0.08319 l -0.094207,-0.08319 C 2.9324093,17.346623 2.9046797,16.779392 3.2097046,16.387101 l 0.083189,-0.09421 z"
fill="#000000"
fill-rule="nonzero"
transform="matrix(1,0,0,-1,0,26)"
id="path6" />
</g>
<metadata
id="metadata835">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:title>icons / arrow-down</dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

@@ -0,0 +1,66 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 16.1 16.1"
version="1.1"
x="0px"
y="0px"
id="svg14"
sodipodi:docname="cross.svg"
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
width="16.1"
height="16.1"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<defs
id="defs18" />
<sodipodi:namedview
id="namedview16"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="32"
inkscape:cx="6.34375"
inkscape:cy="4.5625"
inkscape:window-width="1920"
inkscape:window-height="1051"
inkscape:window-x="1366"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg14" />
<title
id="title2">icons / close</title>
<desc
id="desc4">Created with Sketch.</desc>
<g
stroke="none"
stroke-width="1"
fill="none"
fill-rule="evenodd"
id="g8"
transform="translate(-3.9346218,-3.9381361)">
<path
d="m 12,1 c 0.512836,0 0.935507,0.4718269 0.993272,1.0796853 L 13,2.2222222 V 11 h 8.777778 C 22.452792,11 23,11.447715 23,12 c 0,0.512836 -0.471827,0.935507 -1.079685,0.993272 L 21.777778,13 H 13 v 8.777778 C 13,22.452792 12.552285,23 12,23 11.487164,23 11.064493,22.528173 11.006728,21.920315 L 11,21.777778 V 13 H 2.2222222 C 1.5472075,13 1,12.552285 1,12 1,11.487164 1.4718269,11.064493 2.0796853,11.006728 L 2.2222222,11 H 11 V 2.2222222 C 11,1.5472075 11.447715,1 12,1 Z"
fill="#000000"
fill-rule="nonzero"
transform="rotate(45,12,12)"
id="path6" />
</g>
<metadata
id="metadata835">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:title>icons / close</dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
</svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

File diff suppressed because one or more lines are too long
@@ -0,0 +1,50 @@
(function(Blotter) {
Blotter.LiquidDistortMaterial = function() {
Blotter.Material.apply(this, arguments);
};
Blotter.LiquidDistortMaterial.prototype = Object.create(Blotter.Material.prototype);
Blotter._extendWithGettersSetters(Blotter.LiquidDistortMaterial.prototype, (function () {
function _mainImageSrc () {
var mainImageSrc = [
Blotter.Assets.Shaders.Noise3D,
"void mainImage( out vec4 mainImage, in vec2 fragCoord )",
"{",
" // Setup ========================================================================",
" vec2 uv = fragCoord.xy / uResolution.xy;",
" float z = uSeed + uGlobalTime * uSpeed;",
" uv += snoise(vec3(uv, z)) * uVolatility;",
" mainImage = textTexture(uv);",
"}"
].join("\n");
return mainImageSrc;
}
return {
constructor : Blotter.LiquidDistortMaterial,
init : function () {
this.mainImage = _mainImageSrc();
this.uniforms = {
uSpeed : { type : "1f", value : 1.0 },
uVolatility : { type : "1f", value : 0.15 },
uSeed : { type : "1f", value : 0.1 }
};
}
};
})());
})(
this.Blotter
);
File diff suppressed because one or more lines are too long
@@ -0,0 +1,2 @@
/*! jQuery & Zepto Lazy v1.7.10 - http://jquery.eisbehr.de/lazy - MIT&GPL-2.0 license - Copyright 2012-2018 Daniel 'Eisbehr' Kern */
!function(t,e){"use strict";function r(r,a,i,u,l){function f(){L=t.devicePixelRatio>1,i=c(i),a.delay>=0&&setTimeout(function(){s(!0)},a.delay),(a.delay<0||a.combined)&&(u.e=v(a.throttle,function(t){"resize"===t.type&&(w=B=-1),s(t.all)}),u.a=function(t){t=c(t),i.push.apply(i,t)},u.g=function(){return i=n(i).filter(function(){return!n(this).data(a.loadedName)})},u.f=function(t){for(var e=0;e<t.length;e++){var r=i.filter(function(){return this===t[e]});r.length&&s(!1,r)}},s(),n(a.appendScroll).on("scroll."+l+" resize."+l,u.e))}function c(t){var i=a.defaultImage,o=a.placeholder,u=a.imageBase,l=a.srcsetAttribute,f=a.loaderAttribute,c=a._f||{};t=n(t).filter(function(){var t=n(this),r=m(this);return!t.data(a.handledName)&&(t.attr(a.attribute)||t.attr(l)||t.attr(f)||c[r]!==e)}).data("plugin_"+a.name,r);for(var s=0,d=t.length;s<d;s++){var A=n(t[s]),g=m(t[s]),h=A.attr(a.imageBaseAttribute)||u;g===N&&h&&A.attr(l)&&A.attr(l,b(A.attr(l),h)),c[g]===e||A.attr(f)||A.attr(f,c[g]),g===N&&i&&!A.attr(E)?A.attr(E,i):g===N||!o||A.css(O)&&"none"!==A.css(O)||A.css(O,"url('"+o+"')")}return t}function s(t,e){if(!i.length)return void(a.autoDestroy&&r.destroy());for(var o=e||i,u=!1,l=a.imageBase||"",f=a.srcsetAttribute,c=a.handledName,s=0;s<o.length;s++)if(t||e||A(o[s])){var g=n(o[s]),h=m(o[s]),b=g.attr(a.attribute),v=g.attr(a.imageBaseAttribute)||l,p=g.attr(a.loaderAttribute);g.data(c)||a.visibleOnly&&!g.is(":visible")||!((b||g.attr(f))&&(h===N&&(v+b!==g.attr(E)||g.attr(f)!==g.attr(F))||h!==N&&v+b!==g.css(O))||p)||(u=!0,g.data(c,!0),d(g,h,v,p))}u&&(i=n(i).filter(function(){return!n(this).data(c)}))}function d(t,e,r,i){++z;var o=function(){y("onError",t),p(),o=n.noop};y("beforeLoad",t);var u=a.attribute,l=a.srcsetAttribute,f=a.sizesAttribute,c=a.retinaAttribute,s=a.removeAttribute,d=a.loadedName,A=t.attr(c);if(i){var g=function(){s&&t.removeAttr(a.loaderAttribute),t.data(d,!0),y(T,t),setTimeout(p,1),g=n.noop};t.off(I).one(I,o).one(D,g),y(i,t,function(e){e?(t.off(D),g()):(t.off(I),o())})||t.trigger(I)}else{var h=n(new Image);h.one(I,o).one(D,function(){t.hide(),e===N?t.attr(C,h.attr(C)).attr(F,h.attr(F)).attr(E,h.attr(E)):t.css(O,"url('"+h.attr(E)+"')"),t[a.effect](a.effectTime),s&&(t.removeAttr(u+" "+l+" "+c+" "+a.imageBaseAttribute),f!==C&&t.removeAttr(f)),t.data(d,!0),y(T,t),h.remove(),p()});var m=(L&&A?A:t.attr(u))||"";h.attr(C,t.attr(f)).attr(F,t.attr(l)).attr(E,m?r+m:null),h.complete&&h.trigger(D)}}function A(t){var e=t.getBoundingClientRect(),r=a.scrollDirection,n=a.threshold,i=h()+n>e.top&&-n<e.bottom,o=g()+n>e.left&&-n<e.right;return"vertical"===r?i:"horizontal"===r?o:i&&o}function g(){return w>=0?w:w=n(t).width()}function h(){return B>=0?B:B=n(t).height()}function m(t){return t.tagName.toLowerCase()}function b(t,e){if(e){var r=t.split(",");t="";for(var a=0,n=r.length;a<n;a++)t+=e+r[a].trim()+(a!==n-1?",":"")}return t}function v(t,e){var n,i=0;return function(o,u){function l(){i=+new Date,e.call(r,o)}var f=+new Date-i;n&&clearTimeout(n),f>t||!a.enableThrottle||u?l():n=setTimeout(l,t-f)}}function p(){--z,i.length||z||y("onFinishedAll")}function y(t,e,n){return!!(t=a[t])&&(t.apply(r,[].slice.call(arguments,1)),!0)}var z=0,w=-1,B=-1,L=!1,T="afterLoad",D="load",I="error",N="img",E="src",F="srcset",C="sizes",O="background-image";"event"===a.bind||o?f():n(t).on(D+"."+l,f)}function a(a,o){var u=this,l=n.extend({},u.config,o),f={},c=l.name+"-"+ ++i;return u.config=function(t,r){return r===e?l[t]:(l[t]=r,u)},u.addItems=function(t){return f.a&&f.a("string"===n.type(t)?n(t):t),u},u.getItems=function(){return f.g?f.g():{}},u.update=function(t){return f.e&&f.e({},!t),u},u.force=function(t){return f.f&&f.f("string"===n.type(t)?n(t):t),u},u.loadAll=function(){return f.e&&f.e({all:!0},!0),u},u.destroy=function(){return n(l.appendScroll).off("."+c,f.e),n(t).off("."+c),f={},e},r(u,l,a,f,c),l.chainable?a:u}var n=t.jQuery||t.Zepto,i=0,o=!1;n.fn.Lazy=n.fn.lazy=function(t){return new a(this,t)},n.Lazy=n.lazy=function(t,r,i){if(n.isFunction(r)&&(i=r,r=[]),n.isFunction(i)){t=n.isArray(t)?t:[t],r=n.isArray(r)?r:[r];for(var o=a.prototype.config,u=o._f||(o._f={}),l=0,f=t.length;l<f;l++)(o[t[l]]===e||n.isFunction(o[t[l]]))&&(o[t[l]]=i);for(var c=0,s=r.length;c<s;c++)u[r[c]]=t[0]}},a.prototype.config={name:"lazy",chainable:!0,autoDestroy:!0,bind:"load",threshold:500,visibleOnly:!1,appendScroll:t,scrollDirection:"both",imageBase:null,defaultImage:"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==",placeholder:null,delay:-1,combined:!1,attribute:"data-src",srcsetAttribute:"data-srcset",sizesAttribute:"data-sizes",retinaAttribute:"data-retina",loaderAttribute:"data-loader",imageBaseAttribute:"data-imagebase",removeAttribute:!0,handledName:"handled",loadedName:"loaded",effect:"show",effectTime:0,enableThrottle:!0,throttle:250,beforeLoad:e,afterLoad:e,onError:e,onFinishedAll:e},n(t).on("load",function(){o=!0})}(window);
File diff suppressed because one or more lines are too long
+890
View File
@@ -0,0 +1,890 @@
$(document).ready( () => {
lazyLoading()
displayPictograms()
getDeviceSize()
hideMobileNavOnResize()
hoverDesktopNavItems()
if (currentPage.text().trim() == 'Accueil') {
hideFooter()
animateText()
} else if (currentPage.text().trim() == 'Projets' && $('main').children(":first").attr('id') != 'reader') {
hideFooter()
loadProjetIndex()
} else if ($('main').children(":first").attr('id') == 'reader') {
hideFooter()
displayReader()
}
initBarba()
})
// GLOBAL VARIABLES
let isMobileNavOpen = false,
isDesktopDevice = false,
currentPage,
indexIsReady = false,
filterObj = {
publiqueCardsDisplayed : true,
socialeCardsDisplayed : true,
culturelleCardsDisplayed : true
},
projectTitleIsScrolling = false,
titleScrollTimer
// MAIN FUNCTIONS
function initBarba() {
barba.init({
prefetchIgnore: true,
transitions: [{
name: 'opacity-transition',
leave(data) {
return gsap.to(data.current.container, {
opacity: 0
})
},
enter(data) {
return gsap.from(data.next.container, {
opacity: 0
})
}
}]
})
barba.hooks.beforeLeave((data) => {
if (isMobileNavOpen) { toggleMobileNav() }
if ($(data.current.container).attr('id') == 'projets-index') { resetFilters() }
if ($(data.current.container).attr('id') == 'text-content' ) { hideFooter() }
})
barba.hooks.afterLeave((data) => {
if ($(data.current.container).attr('id') == 'reader') {
if ($(data.next.container).attr('id') != 'reader') {
leaveReader()
$('#nav-container h1').empty().append(currentPage.text())
}
}
})
barba.hooks.beforeEnter((data) => {
lazyLoading()
displayPictograms()
$('html, body').scrollTop(0)
if ($(data.next.container).attr('id') == 'index-content') {
animateText()
indexIsReady = false
} else if ($(data.next.container).attr('id') == 'projets-index') {
loadProjetIndex()
filterWhenEntering()
} else if ($(data.next.container).attr('id') == 'text-content')
{ if (isDesktopDevice) { displayFooter() } }
})
barba.hooks.after((data) => {
let pageTitleComparator, navIndex
switch ($('main').children(":first").attr('id')) {
case 'index-content':
pageTitleComparator = 'Accueil'
navIndex = 0
break
case 'text-content':
// dirty hack to get what content it is
if ($('main').children(":first").children(":first").text().substring(3).replace(/ .*/,'') == "équipe") {
pageTitleComparator = 'Le collectif'
navIndex = 1;
} else {
pageTitleComparator = 'Logiciels Libres'
navIndex = 3;
}
break
case 'projets-index':
case 'reader':
pageTitleComparator = 'Projets'
navIndex = 2
break
}
if (pageTitleComparator != currentPage.text().trim()) {
changeMenuSelected($('header nav ul li').eq(navIndex))
}
if ($(data.next.container).attr('id') == 'reader') {
displayReader()
}
})
}
function lazyLoading() {
$('.lazy').Lazy({
scrollDirection: 'vertical',
effect: 'fadeIn',
effectTime: 400,
threshold: 100,
afterLoad: function(element) {
$(element).removeClass('loader')
if ($(element).parent().is('figure')) {
$(element).parent().addClass('loaded')
} else {
$(element).parentsUntil('figure').parent().addClass('loaded')
}
}
})
}
// UI FUNCTIONS
// general content
function displayPictograms() {
// To be able to change the pictograms color through scss variables
addLinkPictogram()
$('.picto').each((i, el) => {
let source = $(el).data('src')
$(el).css({
'-webkit-mask': 'url(' + source + ') 0% 0% / contain no-repeat',
'mask': 'url(' + source + ') 0% 0% / contain no-repeat',
})
})
}
function addLinkPictogram() {
$('main a[target="_blank"]').each( (i, e) => {
$(e).append('<div class="picto picto-url" data-src="/user/themes/figureslibres-v2/images/pictos/arrow-diagonal.svg" aria-hidden="true"></div>')
})
// hardcoded url because cant use twig in js
}
function getDeviceSize() {
function setDeviceSize() {
if (window.matchMedia('(min-width: 996px)').matches) {
isDesktopDevice = true
} else {
isDesktopDevice = false
}
}
setDeviceSize()
let timer
$(window).on('resize', () => {
clearTimeout(timer)
timer = setTimeout(setDeviceSize(), 100)
refreshUiOnResize()
})
}
function refreshUiOnResize() {
hideFooterOnResize()
hideMobileNavOnResize()
checkTitleAutoScroll()
}
function triggerLazyLoading() {
setTimeout(() => {
$(document).scrollTop($(document).scrollTop() + 1)
setTimeout(() => {
$(document).scrollTop($(document).scrollTop() - 1)
}, 100)
}, 300)
}
function titleScrollTop() {
if ($('html, body').scrollTop() > 0) {
$('html, body').animate({scrollTop: 0}, 1200)
if (currentPage.text().trim() == 'Accueil') {
toggleIndexContent(true)
}
}
}
// set navigation
function toggleMobileNav() {
if (!isMobileNavOpen) {
$('nav').addClass('mobile-nav-open')
$('footer').fadeIn()
isMobileNavOpen = true
} else {
$('nav').removeClass('mobile-nav-open')
isMobileNavOpen = false
if (window.matchMedia('(min-width: 576px)').matches && (currentPage.text().trim() == 'Figures Libres' || currentPage.text().trim() == 'Logiciels Libres')) {
return
} else {
$('footer').fadeOut()
}
}
}
function hideMobileNavOnResize() {
if (!isDesktopDevice) {
if (isMobileNavOpen) {
toggleMobileNav()
}
$('nav').css('display', 'none')
setTimeout( () => {
$('nav').css('display', 'flex')
}, 200)
}
}
function hoverDesktopNavItems() {
currentPage = $('.selected')
$('nav li').hover(() => {
if (isDesktopDevice) {
currentPage.removeClass('selected')
}
}, () => {
if (isDesktopDevice) {
currentPage.addClass('selected')
}
})
}
function changeMenuSelected(page) {
$('.selected').removeClass('selected')
currentPage = $(page)
currentPage.addClass('selected')
changeMobileTitle()
}
function changeMobileTitle() {
$('#nav-container h1').empty().append(currentPage.text())
}
// index interaction
function toggleIndexContent(closeEverything) {
let isTextOpen = false,
isCommanditairesOpen = false,
isExtraitOpen = false,
quelExtrait
if (closeEverything) {
closeEverything()
}
$('#second-p-index, #commanditaires-grid, #extrait-publique, #extrait-social, #extrait-culturelle').children().fadeOut()
$('#arrowIndex').click( () => {
if (!isTextOpen && !isExtraitOpen) {
if (isDesktopDevice) {
displayContent($('#second-p-index'), '70vh')
} else {
displayContent($('#second-p-index'), '90vh')
}
turnArrow('down')
isTextOpen = true
} else {
if (isExtraitOpen) {
hideContent($('#extrait-' + quelExtrait))
$('#' + quelExtrait).css('text-decoration', 'none')
isExtraitOpen = false
turnArrow('top')
}
if (isTextOpen) {
hideContent($('#second-p-index'))
turnArrow('top')
isTextOpen = false
}
if (isCommanditairesOpen) {
hideContent($('#commanditaires-grid'))
$('#commanditaires').css('text-decoration', 'none')
isCommanditairesOpen = false
}
}
})
$('#index-content canvas').click( function(event) {
target = $(event.target).parent().attr('id')
if (target == 'publique' || target == 'sociale' || target == 'culturelle') {
toggleExtrait(target)
return false
} else if (target == 'commanditaires') {
toggleCommanditaires()
return false
} else {
switch (target) {
case 'figureslibres':
changeMenuSelected($('nav li a[href$=collectif]').parent())
break
case 'logicielslibres':
changeMenuSelected($('nav li a[href$=logiciels-libres]').parent())
break
case 'projets':
changeMenuSelected($('nav li a[href$=projets]').parent())
break
}
}
})
$('#extrait-projets .projets-link-filter').click(() => {
changeMenuSelected($('nav li a[href$=projets]').parent())
})
function toggleExtrait(category) {
if(!isExtraitOpen) {
if (isTextOpen) {
hideContent($('#second-p-index'))
isTextOpen = false
}
if (isCommanditairesOpen) {
hideContent($('#commanditaires-grid'))
$('#commanditaires').css('text-decoration', 'none')
isCommanditairesOpen = false
}
displayContent($('#extrait-' + category), '80vh')
turnArrow('down')
$('#' + category).css({'text-decoration': 'underline', 'text-decoration-thickness': '2px', 'text-underline-offset': '8px'})
isExtraitOpen = true
quelExtrait = category
} else if (isExtraitOpen && quelExtrait != category) {
hideContent($('#extrait-' + quelExtrait))
$('#' + category).css({'text-decoration': 'underline', 'text-decoration-thickness': '2px', 'text-underline-offset': '8px'})
$('#' + quelExtrait).css('text-decoration', 'none')
setTimeout(() => {
displayContent($('#extrait-' + category), '80vh')
quelExtrait = category
}, 1000)
} else if (isExtraitOpen && quelExtrait == category) {
hideContent($('#extrait-' + category))
turnArrow('top')
$('#' + category).css('text-decoration', 'none')
isExtraitOpen = false
}
}
function toggleCommanditaires() {
if (!isCommanditairesOpen) {
displayContent($('#commanditaires-grid'), '150vh')
$('#commanditaires').css({'text-decoration': 'underline', 'text-decoration-thickness': '2px', 'text-underline-offset': '8px'})
isCommanditairesOpen = true
} else {
hideContent($('#commanditaires-grid'))
$('#commanditaires').css('text-decoration', 'none')
isCommanditairesOpen = false
}
}
function closeEverything() {
if (isTextOpen) {
hideContent($('#second-p-index'))
isTextOpen = false
}
if (isExtraitOpen) {
hideContent($('#extrait-' + quelExtrait))
$('#' + quelExtrait).css('text-decoration', 'none')
isExtraitOpen = false
}
if (isCommanditairesOpen) {
hideContent($('#commanditaires-grid'))
$('#commanditaires').css('text-decoration', 'none')
isCommanditairesOpen = false
}
turnArrow('top')
}
}
function turnArrow(direction) {
if (direction == 'down') {
$('#arrow-container').css({
'transform': 'rotate(180deg)',
'margin-bottom': '10vh'
})
$('#arrow-container .picto').removeAttr('id')
} else if (direction == 'top') {
$('#arrow-container').css({
'transform': 'rotate(0deg)',
'margin-bottom': '0vh'
})
$('#arrow-container .picto').attr('id', 'arrowIndex')
}
}
function displayContent(content, maxHeight) {
content.children().fadeIn()
setTimeout( () => {
content.css({
'max-height': maxHeight,
'opacity': '1'
})
if (isDesktopDevice) {
content.css('margin-top', '3vh')
}
}, 200)
setTimeout( () => {
$('html, body').animate({
scrollTop: $(content).position().top
}, 1200, 'swing')
}, 400)
}
function hideContent(content) {
content.css({
'max-height': '0vh',
'opacity': '0',
'margin-top': '0vh'
})
setTimeout(() => {
content.children().fadeOut()
}, 1200)
}
// index animation
function animateText() {
waitForWebfonts(['Moche'], () => { // idk why listing only one font makes it work....
// For each item
$(".animateText").each(function(i, e) {
$(e).contents().wrap('<span></span>')
$('#main-p-index span').css('color', 'transparent')
$('#second-p-index span').css('color', 'transparent')
// Initialize a new LiquidText instance
var liquidText = new LiquidText(
e, // Element
0.0, // Liquid Volatility
0.5 // Speed
).start()
})
toggleIndexContent()
displayIndexWhenReady()
})
}
let globalMaterial = new Blotter.LiquidDistortMaterial()
let globalBlotter = new Blotter(globalMaterial, {
texts: [],
autostart: false,
autobuild: false
})
class LiquidText {
constructor(element, volatility, speed) {
this.element = element
this.text = element.text
this.fontSize = parseInt($(element).css('font-size'))
this.fontStack = $(element).css('font-family')
this.fontWeight = $(element).css('font-weight')
this.fontColor = $(element).css('color')
this.material = globalMaterial
this.hoverDuration = 0.35
this.hoverEase = Linear.easeIn
this.liquidVolatility = volatility
this.liquidSpeed = speed
this.scope = null
this.blotter = globalBlotter
this.blotterText = null
this.onResize = this.onResize.bind(this)
this.seed = 0.1
window.addEventListener('resize', this.onResize)
this.initialize()
}
initialize() {
let blotter = this.blotter
let text = new Blotter.Text(this.text, {
family: this.fontStack,
size: this.fontSize,
fill: this.fontColor,
weight: this.fontWeight,
paddingLeft: 15,
paddingRight: 15
})
this.blotterText = text
this.material.uniforms.uSpeed.value = this.liquidSpeed
this.material.uniforms.uVolatility.value = this.liquidVolatility
blotter.addText(text)
blotter.needsUpdate = true
var scope = blotter.forText(text)
this.scope = scope
scope.appendTo(this.element)
this.material.needsUpdate = true
gsap.fromTo(this.material.uniforms.uVolatility, this.hoverDuration, {
value: 0,
ease: this.hoverEase
}, {
value: this.liquidVolatility,
ease: this.hoverEase
})
this.element.onmouseenter = (event) => {
this.scope.material.needsUpdate = true
gsap.fromTo(this.scope.material.uniforms.uVolatility, this.hoverDuration, {
value: 0,
ease: this.hoverEase
}, {
value: this.liquidVolatility + 0.04,
ease: this.hoverEase
})
}
this.element.onmouseleave = (event) => {
gsap.fromTo(this.scope.material.uniforms.uVolatility, this.hoverDuration, {
value: this.scope.material.uniforms.uVolatility.value,
ease: this.hoverEase
}, {
value: this.liquidVolatility,
ease: this.hoverEase,
onComplete: () => {
this.scope.material.needsUpdate = true
}
})
}
}
stop() {
this.blotter.stop()
}
start() {
this.blotter.start()
}
onResize() {
let text = this.blotterText
let time = 100
let timer
if(timer) clearTimeout(timer)
timer = setTimeout(() => {
text.properties.size = parseInt($(this.element).css('font-size'))
text.needsUpdate = true
}, time, event)
}
}
function displayIndexWhenReady() {
globalBlotter.on('update', () => {
if (!indexIsReady) {
indexIsReady = true
$('#loader-index').fadeOut(1400)
}
})
}
function waitForWebfonts(fonts, callback) {
var loadedFonts = 0
for (var i = 0, l = fonts.length; i < l; ++i) {
((font) => {
var node = document.createElement('span')
// Characters that vary significantly among different fonts
node.innerHTML = 'giItT1WQy@!-/#'
// Visible - so we can measure it - but not on the screen
node.style.position = 'absolute'
node.style.left = '-10000px'
node.style.top = '-10000px'
// Large font size makes even subtle changes obvious
node.style.fontSize = '300px'
// Reset any font properties
node.style.fontFamily = 'sans-serif'
node.style.fontVariant = 'normal'
node.style.fontStyle = 'normal'
node.style.fontWeight = 'normal'
node.style.letterSpacing = '0'
document.body.appendChild(node)
// Remember width with no applied web font
var width = node.offsetWidth
node.style.fontFamily = font + ', sans-serif'
var interval
function checkFont() {
// Compare current width with original width
if (node && node.offsetWidth != width) {
++loadedFonts
node.parentNode.removeChild(node)
node = null
}
// If all fonts have been loaded
if (loadedFonts >= fonts.length) {
if (interval) {
clearInterval(interval)
}
if (loadedFonts == fonts.length) {
callback()
return true
}
}
}
if (!checkFont()) {
interval = setInterval(checkFont, 50)
}
})(fonts[i])
}
}
// display project grid
function toggleCategory(category) {
let chevron = $(category).find('.chevron-category')
if (chevron.hasClass('close')) {
$(chevron.removeClass('close'))
$(category).next().slideToggle('slow')
$('.card-displayed figure').each(function() {
if ($(this).css('transform') != 'none') {
$(this).css('transform', 'none')
}
})
} else {
$(chevron.addClass('close'))
$(category).next().slideToggle('slow')
triggerLazyLoading()
}
}
function filterCards(utilite) {
let filterIsOn
function checkFilter() {
switch (utilite) {
case 'publique':
filterIsOn = filterObj.publiqueCardsDisplayed ? true : false
if (filterObj.publiqueCardsDisplayed) {
filterObj.publiqueCardsDisplayed = false
} else {
filterObj.publiqueCardsDisplayed = true
}
break
case 'sociale':
filterIsOn = filterObj.socialeCardsDisplayed ? true : false
if (filterObj.socialeCardsDisplayed) {
filterObj.socialeCardsDisplayed = false
} else {
filterObj.socialeCardsDisplayed = true
}
break
case 'culturelle':
filterIsOn = filterObj.culturelleCardsDisplayed ? true : false
if (filterObj.culturelleCardsDisplayed) {
filterObj.culturelleCardsDisplayed = false
} else {
filterObj.culturelleCardsDisplayed = true
}
break
}
}
if (Object.values(filterObj).every(Boolean) || Object.values(filterObj).every(e => e == false)) { // si tous les filtres sont actifs (état de base)
$('.projets-grid div').each(function () { // hide all cards
if($(this).hasClass(utilite + '-card')) { // except those from the filtered category
$(this).removeClass('card-hidden').addClass('card-displayed')
}
else {
$(this).removeClass('card-displayed').addClass('card-hidden')
}
})
$('#' + utilite + '-filter').css('opacity', 1)
Object.keys(filterObj).forEach(v => filterObj[v] = false)
checkFilter()
}
else if (Object.values(filterObj).filter(Boolean).length == 1) {
// check if the filter is on or off
checkFilter()
if (filterIsOn) {
$('#' + utilite + '-filter').css('opacity', 0.4)
$('.projets-grid div').each(function () { // display all cards
$(this).removeClass('card-hidden').addClass('card-displayed')
})
} else {
$('#' + utilite + '-filter').css('opacity', 1)
$('.' + utilite + '-card').each(function () { // only display cards from selected category
$(this).removeClass('card-hidden').addClass('card-displayed')
})
}
}
else if (Object.values(filterObj).filter(Boolean).length == 2) {
checkFilter()
if (filterIsOn) {
$('#' + utilite + '-filter').css('opacity', 0.4)
$('.' + utilite + '-card').each(function () { // only display cards from selected category
$(this).removeClass('card-displayed').addClass('card-hidden')
})
} else {
$('.filter-button').each(function() {
$(this).css('opacity', 0.4)
})
$('.projets-grid div').each(function () { // hide all cards
$(this).removeClass('card-hidden').addClass('card-displayed')
})
}
}
triggerLazyLoading()
checkIfCategoryEmpty() // to hide empty category
function checkIfCategoryEmpty() {
$('.projets-grid').each(function() {
let hiddenCount = 0
$(this).children().each(function() {
if ($(this).hasClass('card-hidden')) { hiddenCount++ }
})
if (hiddenCount == $(this).children().length) { $(this).prev().fadeOut() }
else { $(this).prev().fadeIn() }
})
}
}
function loadProjetIndex() {
animateProjectGrid()
isProjetsIndexLoaded = true
}
function animateProjectGrid() {
const grid = document.querySelector(".projets-grid")
animateCSSGrid.wrapGrid(grid, {duration : 600})
}
function resetFilters() {
Object.keys(filterObj).forEach(v => filterObj[v] = false)
}
function filterWhenEntering() {
let searchParam = new URLSearchParams(window.location.search)
if (searchParam.has('filter')) {
switch (searchParam.get('filter')) {
case 'publique':
filterCards('publique')
break
case 'sociale':
filterCards('sociale')
break
case 'culturelle':
filterCards('culturelle')
break
}
}
}
// display reader
function displayReader() {
$('.owl-carousel').owlCarousel()
// initCarrousel()
$('header').fadeOut()
projectTitleIsScrolling = false
checkTitleAutoScroll()
let isProjectHeaderDisplayed = false
$(window).scroll( () => {
if ($(window).scrollTop() > $('#main-project-title').offset().top && !isProjectHeaderDisplayed) {
$('#header-project').css('top', '0vh')
if(isDesktopDevice) {
$('#close-project').addClass('scrolled-cross')
}
isProjectHeaderDisplayed = true
} else if ($(window).scrollTop() < $('#main-project-title').offset().top && isProjectHeaderDisplayed) {
$('#header-project').css('top', '-9vh')
if (isDesktopDevice) {
$('#close-project').removeClass('scrolled-cross')
}
isProjectHeaderDisplayed = false
}
})
}
function leaveReader() {
$(window).off('scroll')
$('header').fadeIn()
if (!$('nav li a[href$=projets]').parent().hasClass('selected')) {
changeNavSelected('projets')
}
disableTitleAutoScroll()
}
function titleAutoScroll() {
if (!projectTitleIsScrolling) {
$('#header-project').append('<div id="gradient-long-title"></div>')
projectTitleIsScrolling = true
}
$('#header-project h2 span').addClass('scrollText')
$('#header-project h2 span').css({
'transition': 'transform 7s linear',
'transform': 'translate(-' + parseInt($('#header-project h2 span').width() / 2 + 8) + 'px, 0)'
})
titleScrollTimer = setTimeout( () => {
$('#header-project h2 span').css({'transition': 'none', 'transform': 'translate(0, 0)'})
titleAutoScroll()
}, 7000)
}
function disableTitleAutoScroll() {
$('#gradient-long-title').remove()
$('#header-project h2 span').removeClass('scrollText').css({'transition': 'none', 'transform': 'translate(0, 0)'})
projectTitleIsScrolling = false
}
function checkTitleAutoScroll() {
if (titleScrollTimer != null) { clearTimeout(titleScrollTimer) }
if ($('#header-project h2 span').width() > $('#header-project h2').width() && !projectTitleIsScrolling) {
titleAutoScroll()
} else if ($('#header-project h2 span').width() / 2 < $('#header-project h2').width() && projectTitleIsScrolling) {
$('#header-project h2 span').removeClass('scrollText')
disableTitleAutoScroll()
}
}
// function initCarrousel() {
// let isCarrouselOpen = false, currentImg
// $('#reader img').each((i, el) => {
// $(el).on('click', () => {
// if (!isCarrouselOpen) { displayCarrousel(el) }
// })
// })
// $('#bg-carrousel').on('click', () => {
// hideCarrousel()
// })
// function displayCarrousel(img) {
// // if ($(img).attr('src') == $('#cover-image img').attr('src')) {
// // $('#arrow-left .picto').addClass('disabled')
// // } else {
// // $('#arrow-left .picto').removeClass('disabled')
// // }
// // if ($(img).attr('src') == $('#reader img').last().attr('src')) {
// // $('#arrow-right .picto').addClass('disabled')
// // } else {
// // $('#arrow-right .picto').removeClass('disabled')
// // }
// $('#reader #carrousel figure img').attr('src', $(img).attr('src'))
// currentImg = $(img)
// $('#arrow-left').on('click', () => {
// $('#reader #carrousel figure img').attr('src', $(currentImg).parent().prev().children().first().attr('src'))
// currentImg = $(currentImg).parent().prev().children().first()
// })
// $('#arrow-right').on('click', () => {
// $('#reader #carrousel figure img').attr('src', $(currentImg).parent().next().children().first().attr('src'))
// currentImg = $(currentImg).parent().next().children().first()
// })
// $('#carrousel').css('display', 'block')
// isCarrouselOpen = true
// }
// function hideCarrousel() {
// $('#carrousel').css('display', 'none')
// isCarrouselOpen = false
// }
// }
// show and hide footer
function displayFooter() {
$('footer').fadeIn()
}
function hideFooter() {
$('footer').fadeOut()
}
function hideFooterOnResize() {
if ($('footer').css('display', 'flex') &&
(window.matchMedia('(max-width: 576px)').matches ||
$('.selected').text().trim() == 'Accueil' ||
$('.selected').text().trim() == 'Projets')) {
$('footer').css('display', 'none')
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

@@ -0,0 +1,43 @@
// The font filenames and folders are normalized.
// Using TTF, WOFF and WOFF2
@mixin font-face($font, $weight, $style) {
$src: null;
@if $weight == bold and $style == normal {
$src: '../fonts/' + $font + '/' + $font + '-bold/' + $font + '-bold';
} @else if $weight == normal and $style == italic {
$src: '../fonts/' + $font + '/' + $font + '-italic/' + $font + '-italic';
} @else if $weight == bold and $style == italic {
$src: '../fonts/' + $font + '/' + $font + '-bold-italic/' + $font + '-bold-italic';
} @else if $weight == normal and $style == normal {
$src: '../fonts/' + $font + '/' + $font + '-regular/' + $font + '-regular';
}
@font-face {
font-family: $font; // font name, first letter capitalized
font-weight: unquote($weight); // bold or normal
font-style: unquote($style); // italic or normal
src: url($src + '.ttf') format('truetype'),
url($src + '.woff') format('woff'),
url($src + '.woff2') format('woff2');
}
}
// Import fonts
@include font-face('Lato', 'bold', 'normal');
@include font-face('Lato', 'normal', 'italic');
@include font-face('Lato', 'bold', 'italic');
@include font-face('Lato', 'normal', 'normal');
@include font-face('Syne', 'bold', 'normal');
@include font-face('Syne', 'normal', 'normal');
@include font-face('Avara', 'bold', 'italic');
@include font-face('ManifontGrotesk', 'bold', 'italic');
@include font-face('ManifontGrotesk', 'normal', 'italic');
@include font-face('PlayfairDisplay', 'normal', 'italic');
@include font-face('Rumeur', 'bold', 'normal');
@include font-face('Moche', 'bold', 'normal');
@include font-face('Redaction50', 'bold', 'normal');
@@ -0,0 +1,47 @@
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
display: block;
}
body {
line-height: 1;
}
ol, ul {
list-style: none;
}
blockquote, q {
quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
content: '';
content: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
a, a:active, a:focus, a:visited {
text-decoration: none;
color: inherit;
}
@@ -0,0 +1,120 @@
// VARIABLES
// typography - most used fonts
$mainFont: Lato, Sans-serif;
$titleFont: Syne, Sans-serif;
// typography - utilité fonts
@mixin publique-font {
font-family: PlayfairDisplay, serif;
font-style: italic;
}
@mixin sociale-font {
font-family: ManifontGrotesk, sans-serif;
font-weight: bold;
font-style: italic;
}
@mixin culturelle-font {
font-family: Avara, serif;
font-weight: bold;
font-style: italic;
}
// typography - index fonts
@mixin figures-libres-font {
font-family: Syne, sans-serif;
font-weight: bold;
}
@mixin logiciels-libres-font {
font-family: Rumeur, sans-serif;
font-weight: bold;
}
@mixin commanditaires-font {
font-family: Moche, sans-serif;
font-weight: bold;
}
@mixin projets-font {
font-family: Redaction50, serif;
font-weight: bold;
}
// typography - general sizes
$currentSize: 1.2em;
$smallSize: 0.95em;
$tinySize: 0.75em;
$currentLineHeight: 1.25em;
$titleLineHeight: 1.1em;
// typography - sizes mobile
$titleFontSizeMobile: 1.8em;
$bigFontSizeMobile: 2.2em;
// typography - sizes desktop
$bigFontSizeDesktop: 3.8em;
// typography - pictograms
$pictoInlineWidth: 12px;
$pictoInlineHeight: 10px;
$pictoSmallWidth: 25px;
$pictoSmallHeight: 23px;
$pictoLargeWidth: 45px;
$pictoLargeHeight: 37px;
$pictoExtraLargeWidth: 60px;
$pictoExtraLargeHeight: 54px;
// colors - theme colors
$mainColor: #0b1117;
$mainColorSoft: #1f2429;
$bgColor: #f5f5f5;
// colors - gradient
$bgGradientToBottom: linear-gradient(to bottom, #{$bgColor}, #{$bgColor}00);
$bgGradientToLeft: linear-gradient(to left, #{$bgColor}, #{$bgColor}00);
// colors - opacity
$transparency: 0.4;
// layout - general
$navHeight: 7vh;
$sectionSpacing: 30px;
// layout - mobile
$bodyMarginMobile: 3vw;
$navGradientHeightMobile: 4vh;
$footerHeightMobile: 7vh;
// layout - desktop
$navGradientHeightDesktop: 2vh;
$bodyWidth: 65vw;
$maxBodyWidth: 1300px;
$footerHeightDesktop: 5vh;
$marginTopShortContent: 7vh;
$footerHeightDesktop: 4vh;
// transition
@mixin transition-ease-out($transitions...) {
$unfoldedTransitions: ();
@each $transition in $transitions {
$unfoldedTransitions: append($unfoldedTransitions, unfoldTransition($transition), comma);
}
transition: $unfoldedTransitions;
}
@function unfoldTransition ($transition) {
$property: all;
$duration: .4s;
$defaultProperties: ($property, $duration, ease-out);
$unfoldedTransition: ();
@for $i from 1 through length($defaultProperties) {
$p: null;
@if $i <= length($transition) {
$p: nth($transition, $i)
} @else {
$p: nth($defaultProperties, $i)
}
$unfoldedTransition: append($unfoldedTransition, $p);
}
@return $unfoldedTransition;
}
// animation
@keyframes arrowIndex {
30% { transform: translateY(0px); }
50% { transform: translateY(20px); }
70% { transform: translateY(0px); }
}
// media queries - tablet
$minScreenWidthS: 576px;
// media queries - small desktop
$minScreenWidthM: 996px;
// media queries - large desktop
$minScreenWidthL: 1500px;
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,5 @@
@import 'configuration/_reset';
@import 'configuration/_fonts.scss';
@import 'configuration/_variable.scss';
@import 'style.scss';
@@ -0,0 +1,5 @@
{% extends 'partials/base.html.twig' %}
{% block content %}
{{ page.content|raw }}
{% endblock %}
@@ -0,0 +1,8 @@
{% extends 'partials/base.html.twig' %}
{% block content %}
<div class="lead text-center">
<h1>Error!</h1>
{{ page.content|raw }}
</div>
{% endblock %}
@@ -0,0 +1,36 @@
{% extends 'partials/base.html.twig' %}
{% block content %}
<div class="content" id="index-content" data-barba="container" data-barba-namespace="index">
<div id="loader-index">
<img src="{{ url('theme://images/loader/rolling.svg') }}" alt="loading animation" />
</div>
<div id="main-p-index">
{{ page.content|raw }}
</div>
<div id="extrait-projets">
{% include 'partials/extrait-projets.html.twig' %}
</div>
<div id="second-p-index" class="container">
{% set home = { items: {'@page.self': '/home/texte-intro-partie-2'} } %}
{% for item in page.collection(home) %}
{{item.content}}
{% endfor %}
</div>
<div id="commanditaires-grid" class="container">
{% for p in page.find('/home/commanditaires').children.order('date','desc') %}
{{p.media.images|first}}
{% endfor %}
</div>
<div id="arrow-container">
<div class="picto" id="arrowIndex" data-src="{{ url('theme://images/pictos/arrow-down.svg') }}" aria-hidden="true"></div>
</div>
</div>
{% endblock %}
@@ -0,0 +1,70 @@
<!DOCTYPE html>
<html lang="{{ (grav.language.getActive ?: grav.config.site.default_lang)|e }}">
<head>
{% block head %}
<meta charset="utf-8" />
<title>{% if header.title %}{{ header.title|e }} | {% endif %}{{ site.title|e }}</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=0">
{% include 'partials/metadata.html.twig' %}
<link rel="icon" type="image/png" href="{{ url('theme://images/favicon.png')|e }}" />
<link rel="canonical" href="{{ page.canonical(true)|e }}" />
{% endblock head %}
{% block stylesheets %}
{% do assets.addCss('theme://css/theme.css', 95) %}
{% do assets.addCss('theme://css/owl.carousel.min.css', 95) %}
{% endblock %}
{% block javascripts %}
{% do assets.addJs('jquery', 100) %}
<script src="https://unpkg.com/@barba/core"></script>
<script src="https://unpkg.com/animate-css-grid@latest"></script>
{% do assets.addJs('theme://js/libraries/lazy/jquery.lazy.min.js', 99) %}
{% do assets.addJs('theme://js/libraries/blotter/blotter.min.js', 98) %}
{% do assets.addJs('theme://js/libraries/blotter/liquidDistortMaterial.js', 97) %}
{% do assets.addJs('theme://js/libraries/gsap/gsap.min.js', 96) %}
{% do assets.addJs('theme://js/libraries/owl.carousel.min.js', 94) %}
{% endblock %}
{% block assets deferred %}
{{ assets.css()|raw }}
{{ assets.js()|raw }}
{% endblock %}
</head>
<body id="top" class="{{ page.header.body_classes|e }}" data-barba="wrapper">
{% block header %}
<header>
{% block header_navigation %}
{% include 'partials/navigation.html.twig' %}
{% endblock %}
</header>
{% endblock %}
{% block body %}
<main>
{% block content %}{% endblock %}
</main>
{% endblock %}
{% block footer %}
{% set contact = { items: {'@page.self': '/home/contact'} } %}
<footer>
{% for item in page.collection(contact) %}
{{item.content}}
{% endfor %}
</footer>
{% endblock %}
{% block bottom %}
{{ assets.js('bottom')|raw }}
{% do assets.addJs('theme://js/script.js', 94) %}
{% endblock %}
</body>
</html>
@@ -0,0 +1,24 @@
<div id="carousel-container">
<div class="owl-carousel owl-theme">
{# <div id="bg-carrousel">
</div>
<div id="slider">
<div id="arrow-left">
<div class="picto" data-src="{{ url('theme://images/pictos/arrow-left.svg') }}" aria-hidden="true"></div>
</div>
<figure>
<img alt="{{ page.title }}" class="project-image">
</figure>
<div id="arrow-right">
<div class="picto" data-src="{{ url('theme://images/pictos/arrow-right.svg') }}" aria-hidden="true"></div>
</div>
</div> #}
{% for image in page.media.images %}
<img src="{{ url('theme://images/loader/rolling.svg') }}" data-src="{{ image.url }}" alt="{{ page.title }}" class="lazy loader project-image">
{% endfor %}
</div>
</div>
@@ -0,0 +1,42 @@
<div id="extrait-publique" class="container">
{% set utilite = { items: {'@page.children': '/projets/publique'} } %}
{% for p in page.collection(utilite).order('date', 'desc').slice(0, 4) %}
{% block extrait_cards_publiques %}
{% include 'partials/projet_card.html.twig' %}
{% endblock %}
{% endfor %}
<div>
<a href="/projets?filter=publique" class="projets-link-filter">
<p><span>Consulter tous nos projets</span></p>
<p><span>d'utilité <i id="publique-link">publique</i></span><span class="picto" data-src="{{ url('theme://images/pictos/arrow-right.svg') }}" aria-hidden="true"></span></p>
</a>
</div>
</div>
<div id="extrait-sociale" class="container">
{% set utilite = { items: {'@page.children': '/projets/sociale'} } %}
{% for p in page.collection(utilite).order('date', 'desc').slice(0, 4) %}
{% block extrait_cards_sociales %}
{% include 'partials/projet_card.html.twig' %}
{% endblock %}
{% endfor %}
<div>
<a href="/projets?filter=sociale" class="projets-link-filter">
<p><span>Consulter tous nos projets</span></p>
<p><span>d'utilité <i id="sociale-link">sociale</i></span><span class="picto" data-src="{{ url('theme://images/pictos/arrow-right.svg') }}" aria-hidden="true"></span></p>
</a>
</div>
</div>
<div id="extrait-culturelle" class="container">
{% set utilite = { items: {'@page.children': '/projets/culturelle'} } %}
{% for p in page.collection(utilite).order('date', 'desc').slice(0, 4) %}
{% block extrait_cards_culturelles %}
{% include 'partials/projet_card.html.twig' %}
{% endblock %}
{% endfor %}
<div>
<a href="/projets?filter=culturelle" class="projets-link-filter">
<p><span>Consulter tous nos projets</span></p>
<p><span>d'utilité <i id="culturelle-link">culturelle</i></span><span class="picto" data-src="{{ url('theme://images/pictos/arrow-right.svg') }}" aria-hidden="true"></span></p>
</a>
</div>
</div>
@@ -0,0 +1,21 @@
<div id="nav-container">
<h1 onclick="titleScrollTop()">
{{ page.title }}
</h1>
<div class="picto" id="burger" onclick="toggleMobileNav()" data-src="{{ url('theme://images/pictos/burger.svg') }}" aria-hidden="true"></div>
</div>
<nav>
<div class="picto" id="crossMenu" onclick="toggleMobileNav()" data-src="{{ url('theme://images/pictos/cross.svg') }}" aria-hidden="true"></div>
<ul>
{% for page in pages.children.visible %}
{% set current_page = (page.active or page.activeChild) ? 'selected' : '' %}
<li class="{{ current_page|e }}" onclick="changeMenuSelected(this)">
<a href="{{ page.url|e }}">
{{ page.menu|e }}
</a>
</li>
{% endfor %}
</ul>
</nav>
@@ -0,0 +1,37 @@
{% switch p.parent.title %}
{% case 'Publique' %}
<div class="publique-card card-displayed">
{% case 'Sociale' %}
<div class="sociale-card card-displayed">
{% case 'Culturelle' %}
<div class="culturelle-card card-displayed">
{% endswitch %}
{% set url = p.media.videos|first.url %}
{% if url != null %}
<figure class="projet-card loaded">
<a href="{{ p.url }}">
{# <video autoplay muted loop src="{{ url('theme://images/loader/circle.mp4') }}" data-src="{{ p.media.videos|first.url }}" type="video/mp4" class="lazy loader"> #}
<video autoplay muted loop src="{{ p.media.videos|first.url }}" type="video/mp4">
{% else %}
<figure class="projet-card">
<a href="{{ p.url }}">
<img src="{{ url('theme://images/loader/rolling.svg') }}" data-src="{{ p.media.images|first.url }}" alt="{{ p.title }}" class="lazy loader">
{% endif %}
</a>
<a href="{{ p.url }}">
<figcaption>
{% switch p.parent.title %}
{% case 'Publique' %}
<span class="publique-title">
{% case 'Sociale' %}
<span class="sociale-title">
{% case 'Culturelle' %}
<span class="culturelle-title">
{% endswitch %}
{{ p.title }}</span>,
{% for tag in p.taxonomy.tag %}{{ tag }}, {% endfor %}
{{ p.date|date("Y") }}
</figcaption>
</a>
</figure>
</div>
@@ -0,0 +1,50 @@
<div id="related-pages">
<hr>
<h3>Voir aussi</h3>
<div id="related-grid">
{% set category = random(page.taxonomy.category) %}
{% set p = random(taxonomy.findTaxonomy({'category': category}))%}
{% if p == page %}
{% set category = random(page.taxonomy.category) %}
{% set p = random(taxonomy.findTaxonomy({'category': category}))%}
{% if p == page %}
{% set category = random(page.taxonomy.category) %}
{% set p = random(taxonomy.findTaxonomy({'category': category}))%}
{% if p == page %}
{% set category = random(page.taxonomy.category) %}
{% set p = random(taxonomy.findTaxonomy({'category': category}))%}
{% endif %}
{% endif %}
{% endif %}
{% include 'partials/projet_card.html.twig' %}
{% set p = random(page.parent.children) %}
{% if p == page or p == related_category_page %}
{% set p = random(page.parent.children) %}
{% if p == page or p == related_category_page %}
{% set p = random(page.parent.children) %}
{% if p == page or p == related_category_page %}
{% set p = random(page.parent.children) %}
{% endif %}
{% endif %}
{% endif %}
{% include 'partials/projet_card.html.twig' %}
{% set random_utilite = random(page.find('/projets').children) %}
{% set p = random(random_utilite.children) %}
{% if p == page or p == related_utilite_page or p == related_category_page %}
{% set random_utilite = random(page.find('/projets').children) %}
{% set p = random(random_utilite.children) %}
{% if p == page or p == related_utilite_page or p == related_category_page %}
{% set random_utilite = random(page.find('/projets').children) %}
{% set p = random(random_utilite.children) %}
{% if p == page or p == related_utilite_page or p == related_category_page %}
{% set random_utilite = random(page.find('/projets').children) %}
{% set p = random(random_utilite.children) %}
{% endif %}
{% endif %}
{% endif %}
{% include 'partials/projet_card.html.twig' %}
</div>
</div>
@@ -0,0 +1,39 @@
{% extends 'partials/base.html.twig' %}
{% block content %}
<div class="content" id="projets-index" data-barba="container" data-barba-namespace="projetsindex">
<div id="filter-index">
<p>Consulter les projets d'utilité</p>
<p>
<span id="publique-filter" class="filter-button" onClick="filterCards('publique')">publique</span>,
<span id="sociale-filter" class="filter-button" onClick="filterCards('sociale')">sociale</span>,
<span id="culturelle-filter" class="filter-button" onClick="filterCards('culturelle')">culturelle</span>
</p>
</div>
<hr>
{% for category in taxonomylist.get().category|keys %}
<div class="title-category" onclick="toggleCategory(this)">
<h2>
{{ category }}
</h2>
<div class="picto chevron-category" data-src="{{ url('theme://images/pictos/chevron-down.svg') }}" aria-hidden="true"></div>
</div>
{% set cat = { items: {'@taxonomy': {'category': category} } } %}
{% set pages = page.collection(cat) %}
<div class="projets-grid">
{% for p in pages.order('date', 'desc') %}
{% block project_card %}
{% include 'partials/projet_card.html.twig' %}
{% endblock %}
{% endfor %}
</div>
{% endfor %}
</div>
{% endblock %}
@@ -0,0 +1,61 @@
{% extends 'partials/base.html.twig' %}
{% block content %}
<div id="reader" class="content" data-barba="container" data-barba-namespace="reader">
<div id="header-project">
{% switch page.parent.title %}
{% case 'Publique' %}
<h2 class="info-project-publique">
{% case 'Sociale' %}
<h2 class="info-project-sociale">
{% case 'Culturelle' %}
<h2 class="info-project-culturelle">
{% endswitch %}
<span data-text="{{ page.title }}">{{ page.title }}</span></h2>
</div>
<a href="{{ page.parent.parent.url }}"><div id="close-project" class="picto" data-src="{{ url('theme://images/pictos/cross.svg') }}" aria-hidden="true"></div></a>
<figure id="cover-image-mobile">
<img src="{{ url('theme://images/loader/rolling.svg') }}" data-src="{{ page.media.images|first.url }}" alt="{{ page.title }}" class="lazy loader">
</figure>
{% switch page.parent.title %}
{% case 'Publique' %}
<div id="info-project" class="info-project-publique">
{% case 'Sociale' %}
<div id="info-project" class="info-project-sociale">
{% case 'Culturelle' %}
<div id="info-project" class="info-project-culturelle">
{% endswitch %}
<h2 id="main-project-title">{{ page.title }}</h2>
<div>
{% for tag in page.taxonomy.tag %}
{{ tag }},
{% endfor %}
{{ page.date|date("Y") }}
</div>
</div>
<figure id="cover-image">
<img src="{{ url('theme://images/loader/rolling.svg') }}" data-src="{{ page.media.images|first.url }}" alt="{{ page.title }}" class="lazy loader">
</figure>
<hr>
<div id="project-description">
{{ page.content|raw }}
</div>
<div id="project-images-grid">
{% for image in page.media.images %}
{% if image != page.media.images | first %}
<figure>
<img src="{{ url('theme://images/loader/rolling.svg') }}" data-src="{{ image.url }}" alt="{{ page.title }}" class="lazy loader project-image">
</figure>
{% endif %}
{% endfor %}
</div>
{% block related_pages %}
{% include 'partials/relatedpages.html.twig' %}
{% endblock %}
{% block carrousel %}
{% include 'partials/carrousel.html.twig' %}
{% endblock %}
</div>
{% endblock %}
@@ -0,0 +1,11 @@
{% extends 'partials/base.html.twig' %}
{% block content %}
<div class="content" id="text-content" data-barba="container" data-barba-namespace="text-content">
{% for p in page.children.order('date', 'asc') %}
<div class="text-item">
{{ p.content }}
</div>
{% endfor %}
</div>
{% endblock %}
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB