commit fonctionne ou pas ?
@@ -0,0 +1,5 @@
|
||||
# v0.1.0
|
||||
## 11/25/2021
|
||||
|
||||
1. [](#new)
|
||||
* ChangeLog started...
|
||||
@@ -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.
|
||||
@@ -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
|
||||
@@ -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';
|
||||
}
|
||||
@@ -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%}
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
|
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 |
@@ -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
|
||||
);
|
||||
@@ -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);
|
||||
@@ -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')
|
||||
}
|
||||
}
|
||||
|
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;
|
||||
@@ -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 %}
|
||||
|
After Width: | Height: | Size: 3.6 KiB |