début du thème, footer et header en mobile

This commit is contained in:
Valentin 2023-12-06 05:01:23 +01:00
parent c62ab40411
commit b258cc3181
54 changed files with 5555 additions and 2324 deletions

View File

@ -0,0 +1,46 @@
*, *:before, *:after{
box-sizing: border-box;
}
html, body, div, span, object, iframe, figure, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, code, em, img, small, strike, strong, sub, sup, tt, b, u, i, ol, ul, li, fieldset, form, label, table, caption, tbody, tfoot, thead, tr, th, td, main, canvas, embed, footer, header, nav, section, video{
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
text-rendering: optimizeLegibility;
-webkit-font-smoothing: antialiased;
text-size-adjust: none;
}
footer, header, nav, section, main{
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;
}
input{
-webkit-appearance: none;
border-radius: 0;
}

View File

@ -0,0 +1,210 @@
/* GLOBAL */
/* Marianne */
@font-face {
font-family: "Marianne";
src: url("../fonts/Marianne/Marianne-Light.woff2") format("woff2"), url("../fonts/Marianne/Marianne-Light.woff") format("woff");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "Marianne";
src: url("../fonts/Marianne/Marianne-Light_Italic.woff2") format("woff2"), url("../fonts/Marianne/Marianne-Light_Italic.woff") format("woff");
font-weight: 400;
font-style: italic;
}
@font-face {
font-family: "Marianne";
src: url("../fonts/Marianne/Marianne-Medium.woff2") format("woff2"), url("../fonts/Marianne/Marianne-Medium.woff") format("woff");
font-weight: 800;
font-style: normal;
}
@font-face {
font-family: "Marianne";
src: url("../fonts/Marianne/Marianne-Medium_Italic.woff2") format("woff2"), url("../fonts/Marianne/Marianne-Medium_Italic.woff") format("woff");
font-weight: 800;
font-style: italic;
}
/* Barlow */
@font-face {
font-family: "Barlow";
src: url("../fonts/Barlow/barlow-light.woff2") format("woff2"), url("../fonts/Barlow/barlow_light.woff") format("woff");
font-weight: 300;
font-style: normal;
}
/* SIZES */
a {
text-decoration: none;
}
/* PARTIALS */
.layout-container {
width: 100vw;
overflow: hidden;
}
.layout-container header {
width: 100vw;
background: white;
position: fixed;
top: 0;
left: 0;
box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.2);
z-index: 99;
}
.layout-container header div {
max-width: 100%;
max-height: 7vh;
display: flex;
flex-wrap: nowrap;
justify-content: space-between;
}
.layout-container header div #block-erabletheme-logorepublique {
max-width: 15vw;
}
.layout-container header div #block-erabletheme-logorepublique a {
display: flex;
align-items: center;
}
.layout-container header div #block-erabletheme-logorepublique a img {
padding-left: 3vw;
height: auto;
width: 100%;
}
.layout-container header div #block-erabletheme-logoerable {
max-width: 30vw;
}
.layout-container header div #block-erabletheme-logoerable a {
display: flex;
align-items: center;
}
.layout-container header div #block-erabletheme-logoerable a img {
height: auto;
width: 100%;
padding-top: 3px;
padding-bottom: 3px;
}
.layout-container header div #block-erabletheme-navigationprincipale {
display: none;
}
.layout-container header div #block-erabletheme-socialmedialinks {
display: none;
}
.layout-container header div #block-erabletheme-header #hamburger {
width: 4rem;
height: 100%;
background-color: #00ff80;
display: flex;
align-items: center;
justify-content: center;
}
.layout-container header div #block-erabletheme-header #hamburger h2 {
font-size: 0.8rem;
font-family: "Marianne", sans-serif;
font-weight: 800;
text-align: center;
}
.layout-container header div #block-erabletheme-header ul {
display: none;
}
.layout-container header div #block-erabletheme-header ul.active {
display: block;
position: fixed;
background-color: #314e41;
top: 7vh;
left: 0;
width: 100vw;
z-index: 0;
padding: 30px 0;
}
.layout-container header div #block-erabletheme-header ul.active li {
width: 100%;
display: flex;
justify-content: center;
padding: 6px 0;
}
.layout-container header div #block-erabletheme-header ul.active li a {
color: white;
font-family: "Marianne", sans-serif;
font-weight: 800;
padding: 4px 6px;
}
.layout-container header div #block-erabletheme-header ul.active li a.is-active {
background-color: white;
color: #314e41;
}
.layout-container > footer {
width: 100vw;
background-color: white;
z-index: 99;
box-shadow: 0px -4px 4px rgba(0, 0, 0, 0.2);
margin-top: 50px;
padding: 0 3vw;
}
.layout-container > footer #footer_left div {
margin-top: 5px;
display: flex;
justify-content: space-between;
align-items: center;
flex-wrap: nowrap;
}
.layout-container > footer #footer_left div #block-erabletheme-logorep {
max-width: 30vw;
}
.layout-container > footer #footer_left div #block-erabletheme-logorep img {
width: 100%;
height: auto;
}
.layout-container > footer #footer_left div #block-erabletheme-logoepau {
max-width: 50vw;
}
.layout-container > footer #footer_left div #block-erabletheme-logoepau img {
width: 100%;
height: auto;
}
.layout-container > footer #footer_section {
display: flex;
width: 100%;
justify-content: space-between;
align-items: center;
margin-top: 10px;
margin-bottom: 20px;
position: relative;
}
.layout-container > footer #footer_section #footer_center {
padding-left: 2vw;
width: 50%;
}
.layout-container > footer #footer_section #footer_center nav ul {
display: flex;
justify-content: space-between;
}
.layout-container > footer #footer_section #footer_center nav ul li a {
color: #314e41;
font-size: 0.8rem;
font-family: "Marianne", sans-serif;
font-weight: 800;
text-decoration: underline;
}
.layout-container > footer #footer_section #footer_right {
width: 30%;
}
.layout-container > footer #footer_section #footer_right #block-erabletheme-socialmedialinks-2 ul {
display: flex;
justify-content: space-between;
}
.layout-container > footer #footer_section #footer_right #block-erabletheme-socialmedialinks-2 ul li a span {
font-weight: lighter;
font-size: 1.4rem;
width: 2.2rem;
height: 2.2rem;
padding: 0.4rem;
border-radius: 1.1rem;
color: white;
background-color: #038788;
}
.layout-container > footer #footer_section #footer_right #block-erabletheme-socialmedialinks-2 ul li a svg.ext {
background-color: red;
display: none;
}
/*# sourceMappingURL=styles.css.map */

View File

@ -0,0 +1 @@
{"version":3,"sourceRoot":"","sources":["../scss/styles.scss","../scss/global/_fonts.scss","../scss/global/variables/_typography.scss","../scss/global/_typography.scss","../scss/partials/_header.scss","../scss/global/variables/_layout.scss","../scss/global/variables/_colors.scss","../scss/partials/_footer.scss"],"names":[],"mappings":"AAAA;ACAA;AAEA;EACI;EACA;EAEA;EACA;;AAGJ;EACI;EACA;EAEA;EACA;;AAGJ;EACI;EACA;EAEA;EACA;;AAGJ;EACI;EACA;EAEA;EACA;;AAGJ;AAEA;EACI;EACA;EAEA;EACA;;ACzCJ;ACAA;EACI;;;AHMJ;AINA;EACI;EACA;;AACA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACI;EACA;EACA;EACA;EACA;;AACA;EACI;;AACA;EACI;EACA;;AACA;EACI,cCxBb;EDyBa;EACA;;AAIZ;EACI;;AACA;EACI;EACA;;AACA;EACI;EACA;EACA;EACA;;AAIZ;EACI;;AAEJ;EACI;;AAGA;EACI;EACA;EACA,kBErDP;EFsDO;EACA;EACA;;AACA;EACI,WFzDT;EE0DS;EACA;EACA;;AAGR;EACI;;AAEJ;EACI;EACA;EACA,kBEnEP;EFoEO;EACA;EACA;EACA;EACA;;AACA;EACI;EACA;EACA;EACA;;AACA;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA,OEtFf;;;ACHb;EACI;EACA;EACA;EACA;EACA;EACA;;AACA;EACI;EACA;EACA;EACA;EACA;;AACA;EACI;;AACA;EACI;EACA;;AAGR;EACI;;AACA;EACI;EACA;;AAIZ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACI;EACA;;AACA;EACI;EACA;;AACA;EACI,ODxCP;ECyCO,WL3CL;EK4CK;EACA;EACA;;AAKZ;EACI;;AACA;EACI;EACA;;AAEI;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA,kBDjEjB;;ACmEa;EACI;EACA","file":"styles.css"}

View File

@ -2,6 +2,11 @@
global: global:
js: js:
js/erabletheme.js: {} js/erabletheme.js: {}
librairies/slick-1.8.1/slick/slick.min.js: {}
css: css:
theme: theme:
css/reset.css: {}
css/styles.css: {} css/styles.css: {}
dependencies:
- core/jquery

View File

@ -32,3 +32,7 @@ function erabletheme_preprocess_node(&$variables) {
function erabletheme_preprocess_form(&$variables) { function erabletheme_preprocess_form(&$variables) {
$t="t"; $t="t";
} }
function erabletheme_preprocess_region(&$variables) {
$t="t";
}

Binary file not shown.

Binary file not shown.

View File

@ -9,8 +9,24 @@
Drupal.behaviors.erabletheme = { Drupal.behaviors.erabletheme = {
attach: function (context, settings) { attach: function (context, settings) {
console.log('It works!'); const hamburgerBtn = document.getElementById("hamburger");
const menu = hamburgerBtn.nextElementSibling;
// Toggle menu visibility on hamburger click
hamburgerBtn.addEventListener("click", function(event) {
event.stopPropagation();
menu.classList.toggle("active");
});
// Close menu when clicking outside of the menu
document.addEventListener("click", function(event) {
const isMenuClicked = event.target.closest("#menu") !== null;
const isHamburgerClicked = event.target === hamburgerBtn;
if (!isMenuClicked && !isHamburgerClicked) {
menu.classList.remove("active");
}
});
} }
}; };

View File

@ -0,0 +1,2 @@
.sass-cache
node_modules

View File

@ -0,0 +1,35 @@
## Submitting issues
### Test case required
**All bug reports and problem issues require a jsFiddle**.
[Please fork this JSFiddle as a baseline](http://jsfiddle.net/simeydotme/fmo50w7n/).
+ A test case clearly demonstrates the bug or issue.
+ It contains the bare minimum HTML, CSS, and JavaScript required to demonstrate the bug.
+ Assets are not minified (we cannot debug .min.js files).
+ A link to your production site is **not** a reduced test case.
Providing a test case is the best way to get your issue addressed. Without a test case; your issue may be closed.
You must provide a clear and simple way to reproduce the issue with the provided fiddle.
## Support
Although Slick is designed to be super easy to use, there's always things that can go wrong, especially when interacting with other plugins and complicated websites. If you are **having problems getting Slick to work**, or can't figure something out, **this repository**'s issues section **is not the place to ask about it**.
I have set up a subreddit for Slick discussion at [reddit.com/r/slickcarousel](http://www.reddit.com/r/slickcarousel/).
And a gitter chatroom here: [gitter.im/kenwheeler/slick](https://gitter.im/kenwheeler/slick).
And finally you can ask the world for help, and find out if anyone else has your problem at [stackoverflow](http://stackoverflow.com/search?q=slick+carousel).
Please use these forums as an area to discuss Slick and any issues you may have.
## Feature Requests
If you would like to request or propose a feature, please do so in the the Slick subreddit or gitter chat:
[reddit.com/r/slickcarousel](http://www.reddit.com/r/slickcarousel/) / [gitter.im/kenwheeler/slick](https://gitter.im/kenwheeler/slick).
## Pull requests
**Contributions are welcome**! That said, please *be prepared to edit* your pull request at request, and provide a jsFiddle of your fork working interoperably with every "mode" that Slick supports, and with varying numbers of slides, slidesToShow & slidesToScroll. Failure to do so will result in your pull request being closed.
*Please note that while Slick is open source, this is still my baby, and by submitting a pull request you are authorizing me to edit or modify it in any way shape or form. You will be listed in Github as a contributor, but I have and will continue to steer the direction of this project.*

View File

@ -0,0 +1,50 @@
> short description of the bug / issue, provide more detail below.
====================================================================
###### `[ paste your jsfiddle link here ]`
use this jsfiddle to reproduce your bug:
http://jsfiddle.net/simeydotme/fmo50w7n/
we will likely close your issue without it.
====================================================================
#### Steps to reproduce the problem
1. ...
2. ...
====================================================================
#### What is the expected behaviour?
...
====================================================================
#### What is observed behaviour?
...
====================================================================
#### More Details
- Which browsers/versions does it happen on?
- Which jQuery/Slick version are you using?
- Did this work before?

View File

@ -0,0 +1,20 @@
The MIT License (MIT)
Copyright (c) 2013-2016
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.

View File

@ -0,0 +1,8 @@
build: components slick.js slick.css
@component build --dev
components: component.json
@component install --dev
.PHONY: clean

View File

@ -0,0 +1,292 @@
slick
-------
[1]: <https://github.com/kenwheeler/slick>
_the last carousel you'll ever need_
#### Demo
[http://kenwheeler.github.io/slick](http://kenwheeler.github.io/slick/)
#### CDN
To start working with Slick right away, there's a couple of CDN choices availabile
to serve the files as close, and fast as possible to your users:
- https://cdnjs.com/libraries/slick-carousel
- https://www.jsdelivr.com/projects/jquery.slick
##### Example using jsDelivr
Just add a link to the css file in your `<head>`:
```html
<!-- Add the slick-theme.css if you want default styling -->
<link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/gh/kenwheeler/slick@1.8.0/slick/slick.css"/>
<!-- Add the slick-theme.css if you want default styling -->
<link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/gh/kenwheeler/slick@1.8.0/slick/slick-theme.css"/>
```
Then, before your closing ```<body>``` tag add:
```html
<script type="text/javascript" src="//cdn.jsdelivr.net/gh/kenwheeler/slick@1.8.0/slick/slick.min.js"></script>
```
#### Package Managers
```sh
# Bower
bower install --save slick-carousel
# NPM
npm install slick-carousel
```
#### Contributing
PLEASE review CONTRIBUTING.markdown prior to requesting a feature, filing a pull request or filing an issue.
### Data Attribute Settings
In slick 1.5 you can now add settings using the data-slick attribute. You still need to call $(element).slick() to initialize slick on the element.
Example:
```html
<div data-slick='{"slidesToShow": 4, "slidesToScroll": 4}'>
<div><h3>1</h3></div>
<div><h3>2</h3></div>
<div><h3>3</h3></div>
<div><h3>4</h3></div>
<div><h3>5</h3></div>
<div><h3>6</h3></div>
</div>
```
### Settings
Option | Type | Default | Description
------ | ---- | ------- | -----------
accessibility | boolean | true | Enables tabbing and arrow key navigation. Unless `autoplay: true`, sets browser focus to current slide (or first of current slide set, if multiple `slidesToShow`) after slide change. For full a11y compliance enable focusOnChange in addition to this.
adaptiveHeight | boolean | false | Adapts slider height to the current slide
appendArrows | string | $(element) | Change where the navigation arrows are attached (Selector, htmlString, Array, Element, jQuery object)
appendDots | string | $(element) | Change where the navigation dots are attached (Selector, htmlString, Array, Element, jQuery object)
arrows | boolean | true | Enable Next/Prev arrows
asNavFor | string | $(element) | Enables syncing of multiple sliders
autoplay | boolean | false | Enables auto play of slides
autoplaySpeed | int | 3000 | Auto play change interval
centerMode | boolean | false | Enables centered view with partial prev/next slides. Use with odd numbered slidesToShow counts.
centerPadding | string | '50px' | Side padding when in center mode. (px or %)
cssEase | string | 'ease' | CSS3 easing
customPaging | function | n/a | Custom paging templates. See source for use example.
dots | boolean | false | Current slide indicator dots
dotsClass | string | 'slick-dots' | Class for slide indicator dots container
draggable | boolean | true | Enables desktop dragging
easing | string | 'linear' | animate() fallback easing
edgeFriction | integer | 0.15 | Resistance when swiping edges of non-infinite carousels
fade | boolean | false | Enables fade
focusOnSelect | boolean | false | Enable focus on selected element (click)
focusOnChange | boolean | false | Puts focus on slide after change
infinite | boolean | true | Infinite looping
initialSlide | integer | 0 | Slide to start on
lazyLoad | string | 'ondemand' | Accepts 'ondemand' or 'progressive' for lazy load technique. 'ondemand' will load the image as soon as you slide to it, 'progressive' loads one image after the other when the page loads.
mobileFirst | boolean | false | Responsive settings use mobile first calculation
nextArrow | string (html \| jQuery selector) \| object (DOM node \| jQuery object) | `<button type="button" class="slick-next">Next</button>` | Allows you to select a node or customize the HTML for the "Next" arrow.
pauseOnDotsHover | boolean | false | Pauses autoplay when a dot is hovered
pauseOnFocus | boolean | true | Pauses autoplay when slider is focussed
pauseOnHover | boolean | true | Pauses autoplay on hover
prevArrow | string (html \| jQuery selector) \| object (DOM node \| jQuery object) | `<button type="button" class="slick-prev">Previous</button>` | Allows you to select a node or customize the HTML for the "Previous" arrow.
respondTo | string | 'window' | Width that responsive object responds to. Can be 'window', 'slider' or 'min' (the smaller of the two).
responsive | array | null | Array of objects [containing breakpoints and settings objects (see example)](#responsive-option-example). Enables settings at given `breakpoint`. Set `settings` to "unslick" instead of an object to disable slick at a given breakpoint.
rows | int | 1 | Setting this to more than 1 initializes grid mode. Use slidesPerRow to set how many slides should be in each row.
rtl | boolean | false | Change the slider's direction to become right-to-left
slide | string | '' | Slide element query
slidesPerRow | int | 1 | With grid mode initialized via the rows option, this sets how many slides are in each grid row.
slidesToScroll | int | 1 | # of slides to scroll at a time
slidesToShow | int | 1 | # of slides to show at a time
speed | int | 300 | Transition speed
swipe | boolean | true | Enables touch swipe
swipeToSlide | boolean | false | Swipe to slide irrespective of slidesToScroll
touchMove | boolean | true | Enables slide moving with touch
touchThreshold | int | 5 | To advance slides, the user must swipe a length of (1/touchThreshold) * the width of the slider.
useCSS | boolean | true | Enable/Disable CSS Transitions
useTransform | boolean | true | Enable/Disable CSS Transforms
variableWidth | boolean | false | Disables automatic slide width calculation
vertical | boolean | false | Vertical slide direction
verticalSwiping | boolean | false | Changes swipe direction to vertical
waitForAnimate | boolean | true | Ignores requests to advance the slide while animating
zIndex | number | 1000 | Set the zIndex values for slides, useful for IE9 and lower
##### Responsive Option Example
The responsive option, and value, is quite unique and powerful.
You can use it like so:
```javascript
$(".slider").slick({
// normal options...
infinite: false,
// the magic
responsive: [{
breakpoint: 1024,
settings: {
slidesToShow: 3,
infinite: true
}
}, {
breakpoint: 600,
settings: {
slidesToShow: 2,
dots: true
}
}, {
breakpoint: 300,
settings: "unslick" // destroys slick
}]
});
```
### Events
In slick 1.4, callback methods were deprecated and replaced with events. Use them before the initialization of slick as shown below:
```javascript
// On swipe event
$('.your-element').on('swipe', function(event, slick, direction){
console.log(direction);
// left
});
// On edge hit
$('.your-element').on('edge', function(event, slick, direction){
console.log('edge was hit')
});
// On before slide change
$('.your-element').on('beforeChange', function(event, slick, currentSlide, nextSlide){
console.log(nextSlide);
});
```
Event | Params | Description
------ | -------- | -----------
afterChange | event, slick, currentSlide | After slide change callback
beforeChange | event, slick, currentSlide, nextSlide | Before slide change callback
breakpoint | event, slick, breakpoint | Fires after a breakpoint is hit
destroy | event, slick | When slider is destroyed, or unslicked.
edge | event, slick, direction | Fires when an edge is overscrolled in non-infinite mode.
init | event, slick | When Slick initializes for the first time callback. Note that this event should be defined before initializing the slider.
reInit | event, slick | Every time Slick (re-)initializes callback
setPosition | event, slick | Every time Slick recalculates position
swipe | event, slick, direction | Fires after swipe/drag
lazyLoaded | event, slick, image, imageSource | Fires after image loads lazily
lazyLoadError | event, slick, image, imageSource | Fires after image fails to load
#### Methods
Methods are called on slick instances through the slick method itself in version 1.4, see below:
```javascript
// Add a slide
$('.your-element').slick('slickAdd',"<div></div>");
// Get the current slide
var currentSlide = $('.your-element').slick('slickCurrentSlide');
```
This new syntax allows you to call any internal slick method as well:
```javascript
// Manually refresh positioning of slick
$('.your-element').slick('setPosition');
```
Method | Argument | Description
------ | -------- | -----------
`slick` | options : object | Initializes Slick
`unslick` | | Destroys Slick
`slickNext` | | Triggers next slide
`slickPrev` | | Triggers previous slide
`slickPause` | | Pause Autoplay
`slickPlay` | | Start Autoplay (_will also set `autoplay` option to `true`_)
`slickGoTo` | index : int, dontAnimate : bool | Goes to slide by index, skipping animation if second parameter is set to true
`slickCurrentSlide` | | Returns the current slide index
`slickAdd` | element : html or DOM object, index: int, addBefore: bool | Add a slide. If an index is provided, will add at that index, or before if addBefore is set. If no index is provided, add to the end or to the beginning if addBefore is set. Accepts HTML String || Object
`slickRemove` | index: int, removeBefore: bool | Remove slide by index. If removeBefore is set true, remove slide preceding index, or the first slide if no index is specified. If removeBefore is set to false, remove the slide following index, or the last slide if no index is set.
`slickFilter` | filter : selector or function | Filters slides using jQuery .filter syntax
`slickUnfilter` | | Removes applied filter
`slickGetOption` | option : string(option name) | Gets an option value.
`slickSetOption` | change an option, `refresh` is always `boolean` and will update UI changes...
| `option, value, refresh` | change a [single `option`](https://github.com/kenwheeler/slick#settings) to given `value`; `refresh` is optional.
| `"responsive", [{ breakpoint: n, settings: {} }, ... ], refresh` | change or add [whole sets of responsive options](#responsive-option-example)
| `{ option: value, option: value, ... }, refresh` | change [multiple `option`s](https://github.com/kenwheeler/slick#settings) to corresponding `value`s.
#### Example
Initialize with:
```javascript
$(element).slick({
dots: true,
speed: 500
});
```
Change the speed with:
```javascript
$(element).slick('slickSetOption', 'speed', 5000, true);
```
Destroy with:
```javascript
$(element).slick('unslick');
```
#### Sass Variables
Variable | Type | Default | Description
------ | ---- | ------- | -----------
$slick-font-path | string | "./fonts/" | Directory path for the slick icon font
$slick-font-family | string | "slick" | Font-family for slick icon font
$slick-loader-path | string | "./" | Directory path for the loader image
$slick-arrow-color | color | white | Color of the left/right arrow icons
$slick-dot-color | color | black | Color of the navigation dots
$slick-dot-color-active | color | $slick-dot-color | Color of the active navigation dot
$slick-prev-character | string | '\2190' | Unicode character code for the previous arrow icon
$slick-next-character | string | '\2192' | Unicode character code for the next arrow icon
$slick-dot-character | string | '\2022' | Unicode character code for the navigation dot icon
$slick-dot-size | pixels | 6px | Size of the navigation dots
#### Browser support
Slick works on IE8+ in addition to other modern browsers such as Chrome, Firefox, and Safari.
#### Dependencies
jQuery 1.7
#### License
Copyright (c) 2017 Ken Wheeler
Licensed under the MIT license.
Free as in Bacon.

View File

@ -0,0 +1,32 @@
{
"name": "slick-carousel",
"main": [
"slick/slick.js",
"slick/slick.css",
"slick/slick.less",
"slick/slick.scss"
],
"homepage": "https://github.com/kenwheeler/slick",
"authors": [
"Ken Wheeler <ken_wheeler@me.com>"
],
"description": "the last carousel you'll ever need",
"keywords": [
"responsive",
"carousel",
"jquery"
],
"license": "MIT",
"ignore": [
"**/.*",
"node_modules",
"bower_components",
"test",
"tests",
"package.json",
"index.html"
],
"dependencies": {
"jquery": ">=1.7"
}
}

View File

@ -0,0 +1,18 @@
{
"name": "slick",
"repo": "kenwheeler/slick",
"description": "the last carousel you'll ever need",
"version": "1.8.0",
"keywords": ["ui", "jquery", "carousel", "responsive", "slider"],
"dependencies": {
"component/jquery": "*"
},
"development": {},
"scripts": {
"slick/slick.js": "slick.js"
},
"styles": {
"slick/slick.css": "slick.css",
"slick/slick-theme.css": "slick-theme.css"
}
}

View File

@ -0,0 +1,373 @@
<!DOCTYPE html>
<html>
<head>
<title>Slick Playground</title>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="./slick/slick.css">
<link rel="stylesheet" type="text/css" href="./slick/slick-theme.css">
<style type="text/css">
html, body {
margin: 0;
padding: 0;
}
* {
box-sizing: border-box;
}
.slider {
width: 50%;
margin: 100px auto;
}
.slick-slide {
margin: 0px 20px;
}
.slick-slide img {
width: 100%;
}
.slick-prev:before,
.slick-next:before {
color: black;
}
.slick-slide {
transition: all ease-in-out .3s;
opacity: .2;
}
.slick-active {
opacity: .5;
}
.slick-current {
opacity: 1;
}
</style>
</head>
<body>
<section class="vertical-center-4 slider">
<div>
<img src="http://placehold.it/350x100?text=1">
</div>
<div>
<img src="http://placehold.it/350x100?text=2">
</div>
<div>
<img src="http://placehold.it/350x100?text=3">
</div>
<div>
<img src="http://placehold.it/350x100?text=4">
</div>
<div>
<img src="http://placehold.it/350x100?text=5">
</div>
<div>
<img src="http://placehold.it/350x100?text=6">
</div>
<div>
<img src="http://placehold.it/350x100?text=7">
</div>
<div>
<img src="http://placehold.it/350x100?text=8">
</div>
<div>
<img src="http://placehold.it/350x100?text=9">
</div>
<div>
<img src="http://placehold.it/350x100?text=10">
</div>
</section>
<section class="vertical-center-3 slider">
<div>
<img src="http://placehold.it/350x100?text=1">
</div>
<div>
<img src="http://placehold.it/350x100?text=2">
</div>
<div>
<img src="http://placehold.it/350x100?text=3">
</div>
<div>
<img src="http://placehold.it/350x100?text=4">
</div>
<div>
<img src="http://placehold.it/350x100?text=5">
</div>
<div>
<img src="http://placehold.it/350x100?text=6">
</div>
<div>
<img src="http://placehold.it/350x100?text=7">
</div>
<div>
<img src="http://placehold.it/350x100?text=8">
</div>
<div>
<img src="http://placehold.it/350x100?text=9">
</div>
<div>
<img src="http://placehold.it/350x100?text=10">
</div>
</section>
<section class="vertical-center-2 slider">
<div>
<img src="http://placehold.it/350x100?text=1">
</div>
<div>
<img src="http://placehold.it/350x100?text=2">
</div>
<div>
<img src="http://placehold.it/350x100?text=3">
</div>
<div>
<img src="http://placehold.it/350x100?text=4">
</div>
<div>
<img src="http://placehold.it/350x100?text=5">
</div>
<div>
<img src="http://placehold.it/350x100?text=6">
</div>
<div>
<img src="http://placehold.it/350x100?text=7">
</div>
<div>
<img src="http://placehold.it/350x100?text=8">
</div>
<div>
<img src="http://placehold.it/350x100?text=9">
</div>
<div>
<img src="http://placehold.it/350x100?text=10">
</div>
</section>
<section class="vertical-center slider">
<div>
<img src="http://placehold.it/350x100?text=1">
</div>
<div>
<img src="http://placehold.it/350x100?text=2">
</div>
<div>
<img src="http://placehold.it/350x100?text=3">
</div>
<div>
<img src="http://placehold.it/350x100?text=4">
</div>
<div>
<img src="http://placehold.it/350x100?text=5">
</div>
<div>
<img src="http://placehold.it/350x100?text=6">
</div>
<div>
<img src="http://placehold.it/350x100?text=7">
</div>
<div>
<img src="http://placehold.it/350x100?text=8">
</div>
<div>
<img src="http://placehold.it/350x100?text=9">
</div>
<div>
<img src="http://placehold.it/350x100?text=10">
</div>
</section>
<section class="vertical slider">
<div>
<img src="http://placehold.it/350x100?text=1">
</div>
<div>
<img src="http://placehold.it/350x100?text=2">
</div>
<div>
<img src="http://placehold.it/350x100?text=3">
</div>
<div>
<img src="http://placehold.it/350x100?text=4">
</div>
<div>
<img src="http://placehold.it/350x100?text=5">
</div>
<div>
<img src="http://placehold.it/350x100?text=6">
</div>
<div>
<img src="http://placehold.it/350x100?text=7">
</div>
<div>
<img src="http://placehold.it/350x100?text=8">
</div>
<div>
<img src="http://placehold.it/350x100?text=9">
</div>
<div>
<img src="http://placehold.it/350x100?text=10">
</div>
</section>
<section class="regular slider">
<div>
<img src="http://placehold.it/350x300?text=1">
</div>
<div>
<img src="http://placehold.it/350x300?text=2">
</div>
<div>
<img src="http://placehold.it/350x300?text=3">
</div>
<div>
<img src="http://placehold.it/350x300?text=4">
</div>
<div>
<img src="http://placehold.it/350x300?text=5">
</div>
<div>
<img src="http://placehold.it/350x300?text=6">
</div>
</section>
<section class="center slider">
<div>
<img src="http://placehold.it/350x300?text=1">
</div>
<div>
<img src="http://placehold.it/350x300?text=2">
</div>
<div>
<img src="http://placehold.it/350x300?text=3">
</div>
<div>
<img src="http://placehold.it/350x300?text=4">
</div>
<div>
<img src="http://placehold.it/350x300?text=5">
</div>
<div>
<img src="http://placehold.it/350x300?text=6">
</div>
<div>
<img src="http://placehold.it/350x300?text=7">
</div>
<div>
<img src="http://placehold.it/350x300?text=8">
</div>
<div>
<img src="http://placehold.it/350x300?text=9">
</div>
</section>
<section class="variable slider">
<div>
<img src="http://placehold.it/350x300?text=1">
</div>
<div>
<img src="http://placehold.it/200x300?text=2">
</div>
<div>
<img src="http://placehold.it/100x300?text=3">
</div>
<div>
<img src="http://placehold.it/200x300?text=4">
</div>
<div>
<img src="http://placehold.it/350x300?text=5">
</div>
<div>
<img src="http://placehold.it/300x300?text=6">
</div>
</section>
<section class="lazy slider" data-sizes="50vw">
<div>
<img data-lazy="http://placehold.it/350x300?text=1-350w" data-srcset="http://placehold.it/650x300?text=1-650w 650w, http://placehold.it/960x300?text=1-960w 960w" data-sizes="100vw">
</div>
<div>
<img data-lazy="http://placehold.it/350x300?text=2-350w" data-srcset="http://placehold.it/650x300?text=2-650w 650w, http://placehold.it/960x300?text=2-960w 960w" data-sizes="100vw">
</div>
<div>
<img data-lazy="http://placehold.it/350x300?text=3-350w" data-srcset="http://placehold.it/650x300?text=3-650w 650w, http://placehold.it/960x300?text=3-960w 960w" data-sizes="100vw">
</div>
<div>
<img data-lazy="http://placehold.it/350x300?text=4-350w" data-srcset="http://placehold.it/650x300?text=4-650w 650w, http://placehold.it/960x300?text=4-960w 960w" data-sizes="100vw">
</div>
<div>
<img data-lazy="http://placehold.it/350x300?text=5-350w" data-srcset="http://placehold.it/650x300?text=5-650w 650w, http://placehold.it/960x300?text=5-960w 960w" data-sizes="100vw">
</div>
<div>
<!-- this slide should inherit the sizes attr from the parent slider -->
<img data-lazy="http://placehold.it/350x300?text=6-350w" data-srcset="http://placehold.it/650x300?text=6-650w 650w, http://placehold.it/960x300?text=6-960w 960w">
</div>
</section>
<script src="https://code.jquery.com/jquery-2.2.0.min.js" type="text/javascript"></script>
<script src="./slick/slick.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
$(document).on('ready', function() {
$(".vertical-center-4").slick({
dots: true,
vertical: true,
centerMode: true,
slidesToShow: 4,
slidesToScroll: 2
});
$(".vertical-center-3").slick({
dots: true,
vertical: true,
centerMode: true,
slidesToShow: 3,
slidesToScroll: 3
});
$(".vertical-center-2").slick({
dots: true,
vertical: true,
centerMode: true,
slidesToShow: 2,
slidesToScroll: 2
});
$(".vertical-center").slick({
dots: true,
vertical: true,
centerMode: true,
});
$(".vertical").slick({
dots: true,
vertical: true,
slidesToShow: 3,
slidesToScroll: 3
});
$(".regular").slick({
dots: true,
infinite: true,
slidesToShow: 3,
slidesToScroll: 3
});
$(".center").slick({
dots: true,
infinite: true,
centerMode: true,
slidesToShow: 5,
slidesToScroll: 3
});
$(".variable").slick({
dots: true,
infinite: true,
variableWidth: true
});
$(".lazy").slick({
lazyLoad: 'ondemand', // ondemand progressive anticipated
infinite: true
});
});
</script>
</body>
</html>

View File

@ -0,0 +1,50 @@
{
"name": "slick-carousel",
"version": "1.8.1",
"description": "the last carousel you'll ever need",
"main": "slick/slick.js",
"repository": {
"type": "git",
"url": "https://github.com/kenwheeler/slick.git"
},
"keywords": [
"carousel",
"slick",
"responsive",
"js",
"slider"
],
"author": "Ken Wheeler <ken_wheeler@me.com>",
"contributors": [
{
"name": "ken wheeler",
"email": "ken_wheeler@me.com",
"url": "http://kenwheeler.github.io/"
},
{
"name": "simon goellner",
"email": "simey.me@gmail.com",
"url": "http://simey.me"
},
{
"name": "ahmad el-alfy",
"email": "ahmadalfy@gmail.com",
"url": "http://www.alfy.me"
},
{
"name": "leggomuhgreggo",
"email": "gwestneat@gmail.com"
},
{
"name": "ashley mcknight",
"email": "ash@sharpteef.net"
}
],
"license": "MIT",
"bugs": {
"url": "https://github.com/kenwheeler/slick/issues"
},
"peerDependencies": {
"jquery": ">=1.8.0"
}
}

View File

@ -0,0 +1,34 @@
{
"name": "slick",
"title": "slick",
"description": "A jQuery responsive touch carousel",
"keywords": [
"responsive",
"slider",
"carousel",
"touch",
"mobile"
],
"version": "1.8.0",
"author": {
"name": "Ken Wheeler",
"url": "http://kenwheeler.github.io"
},
"maintainers": [{
"name": "Ken Wheeler",
"email": "dubmediagroup@gmail.com",
"url": "http://www.dubmediagroup.com"
}],
"licenses": [{
"type": "MIT",
"url": "https://github.com/kenwheeler/slick/blob/master/LICENSE"
}],
"demo": "http://kenwheeler.github.io/slick/",
"bugs": "https://github.com/kenwheeler/slick/issues",
"homepage": "https://github.com/kenwheeler/slick/",
"docs": "https://github.com/kenwheeler/slick/",
"download": "https://github.com/kenwheeler/slick/archive/master.zip",
"dependencies": {
"jquery": ">=1.7"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

View File

@ -0,0 +1,10 @@
css_dir = "."
sass_dir = "."
images_dir = "."
fonts_dir = "fonts"
relative_assets = true
output_style = :compact
line_comments = false
preferred_syntax = :scss

View File

@ -0,0 +1,14 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>Generated by Fontastic.me</metadata>
<defs>
<font id="slick" horiz-adv-x="512">
<font-face font-family="slick" units-per-em="512" ascent="480" descent="-32"/>
<missing-glyph horiz-adv-x="512" />
<glyph unicode="&#8594;" d="M241 113l130 130c4 4 6 8 6 13 0 5-2 9-6 13l-130 130c-3 3-7 5-12 5-5 0-10-2-13-5l-29-30c-4-3-6-7-6-12 0-5 2-10 6-13l87-88-87-88c-4-3-6-8-6-13 0-5 2-9 6-12l29-30c3-3 8-5 13-5 5 0 9 2 12 5z m234 143c0-40-9-77-29-110-20-34-46-60-80-80-33-20-70-29-110-29-40 0-77 9-110 29-34 20-60 46-80 80-20 33-29 70-29 110 0 40 9 77 29 110 20 34 46 60 80 80 33 20 70 29 110 29 40 0 77-9 110-29 34-20 60-46 80-80 20-33 29-70 29-110z"/>
<glyph unicode="&#8592;" d="M296 113l29 30c4 3 6 7 6 12 0 5-2 10-6 13l-87 88 87 88c4 3 6 8 6 13 0 5-2 9-6 12l-29 30c-3 3-8 5-13 5-5 0-9-2-12-5l-130-130c-4-4-6-8-6-13 0-5 2-9 6-13l130-130c3-3 7-5 12-5 5 0 10 2 13 5z m179 143c0-40-9-77-29-110-20-34-46-60-80-80-33-20-70-29-110-29-40 0-77 9-110 29-34 20-60 46-80 80-20 33-29 70-29 110 0 40 9 77 29 110 20 34 46 60 80 80 33 20 70 29 110 29 40 0 77-9 110-29 34-20 60-46 80-80 20-33 29-70 29-110z"/>
<glyph unicode="&#8226;" d="M475 256c0-40-9-77-29-110-20-34-46-60-80-80-33-20-70-29-110-29-40 0-77 9-110 29-34 20-60 46-80 80-20 33-29 70-29 110 0 40 9 77 29 110 20 34 46 60 80 80 33 20 70 29 110 29 40 0 77-9 110-29 34-20 60-46 80-80 20-33 29-70 29-110z"/>
<glyph unicode="&#97;" d="M475 439l0-128c0-5-1-9-5-13-4-4-8-5-13-5l-128 0c-8 0-13 3-17 11-3 7-2 14 4 20l40 39c-28 26-62 39-100 39-20 0-39-4-57-11-18-8-33-18-46-32-14-13-24-28-32-46-7-18-11-37-11-57 0-20 4-39 11-57 8-18 18-33 32-46 13-14 28-24 46-32 18-7 37-11 57-11 23 0 44 5 64 15 20 9 38 23 51 42 2 1 4 3 7 3 3 0 5-1 7-3l39-39c2-2 3-3 3-6 0-2-1-4-2-6-21-25-46-45-76-59-29-14-60-20-93-20-30 0-58 5-85 17-27 12-51 27-70 47-20 19-35 43-47 70-12 27-17 55-17 85 0 30 5 58 17 85 12 27 27 51 47 70 19 20 43 35 70 47 27 12 55 17 85 17 28 0 55-5 81-15 26-11 50-26 70-45l37 37c6 6 12 7 20 4 8-4 11-9 11-17z"/>
</font></defs></svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -0,0 +1,204 @@
@charset 'UTF-8';
/* Slider */
.slick-loading .slick-list
{
background: #fff url('./ajax-loader.gif') center center no-repeat;
}
/* Icons */
@font-face
{
font-family: 'slick';
font-weight: normal;
font-style: normal;
src: url('./fonts/slick.eot');
src: url('./fonts/slick.eot?#iefix') format('embedded-opentype'), url('./fonts/slick.woff') format('woff'), url('./fonts/slick.ttf') format('truetype'), url('./fonts/slick.svg#slick') format('svg');
}
/* Arrows */
.slick-prev,
.slick-next
{
font-size: 0;
line-height: 0;
position: absolute;
top: 50%;
display: block;
width: 20px;
height: 20px;
padding: 0;
-webkit-transform: translate(0, -50%);
-ms-transform: translate(0, -50%);
transform: translate(0, -50%);
cursor: pointer;
color: transparent;
border: none;
outline: none;
background: transparent;
}
.slick-prev:hover,
.slick-prev:focus,
.slick-next:hover,
.slick-next:focus
{
color: transparent;
outline: none;
background: transparent;
}
.slick-prev:hover:before,
.slick-prev:focus:before,
.slick-next:hover:before,
.slick-next:focus:before
{
opacity: 1;
}
.slick-prev.slick-disabled:before,
.slick-next.slick-disabled:before
{
opacity: .25;
}
.slick-prev:before,
.slick-next:before
{
font-family: 'slick';
font-size: 20px;
line-height: 1;
opacity: .75;
color: white;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.slick-prev
{
left: -25px;
}
[dir='rtl'] .slick-prev
{
right: -25px;
left: auto;
}
.slick-prev:before
{
content: '←';
}
[dir='rtl'] .slick-prev:before
{
content: '→';
}
.slick-next
{
right: -25px;
}
[dir='rtl'] .slick-next
{
right: auto;
left: -25px;
}
.slick-next:before
{
content: '→';
}
[dir='rtl'] .slick-next:before
{
content: '←';
}
/* Dots */
.slick-dotted.slick-slider
{
margin-bottom: 30px;
}
.slick-dots
{
position: absolute;
bottom: -25px;
display: block;
width: 100%;
padding: 0;
margin: 0;
list-style: none;
text-align: center;
}
.slick-dots li
{
position: relative;
display: inline-block;
width: 20px;
height: 20px;
margin: 0 5px;
padding: 0;
cursor: pointer;
}
.slick-dots li button
{
font-size: 0;
line-height: 0;
display: block;
width: 20px;
height: 20px;
padding: 5px;
cursor: pointer;
color: transparent;
border: 0;
outline: none;
background: transparent;
}
.slick-dots li button:hover,
.slick-dots li button:focus
{
outline: none;
}
.slick-dots li button:hover:before,
.slick-dots li button:focus:before
{
opacity: 1;
}
.slick-dots li button:before
{
font-family: 'slick';
font-size: 6px;
line-height: 20px;
position: absolute;
top: 0;
left: 0;
width: 20px;
height: 20px;
content: '•';
text-align: center;
opacity: .25;
color: black;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.slick-dots li.slick-active button:before
{
opacity: .75;
color: black;
}

View File

@ -0,0 +1,168 @@
@charset "UTF-8";
// Default Variables
@slick-font-path: "./fonts/";
@slick-font-family: "slick";
@slick-loader-path: "./";
@slick-arrow-color: white;
@slick-dot-color: black;
@slick-dot-color-active: @slick-dot-color;
@slick-prev-character: "←";
@slick-next-character: "→";
@slick-dot-character: "•";
@slick-dot-size: 6px;
@slick-opacity-default: 0.75;
@slick-opacity-on-hover: 1;
@slick-opacity-not-active: 0.25;
/* Slider */
.slick-loading .slick-list{
background: #fff url('@{slick-loader-path}ajax-loader.gif') center center no-repeat;
}
/* Arrows */
.slick-prev,
.slick-next {
position: absolute;
display: block;
height: 20px;
width: 20px;
line-height: 0px;
font-size: 0px;
cursor: pointer;
background: transparent;
color: transparent;
top: 50%;
-webkit-transform: translate(0, -50%);
-ms-transform: translate(0, -50%);
transform: translate(0, -50%);
padding: 0;
border: none;
outline: none;
&:hover, &:focus {
outline: none;
background: transparent;
color: transparent;
&:before {
opacity: @slick-opacity-on-hover;
}
}
&.slick-disabled:before {
opacity: @slick-opacity-not-active;
}
}
.slick-prev:before, .slick-next:before {
font-family: @slick-font-family;
font-size: 20px;
line-height: 1;
color: @slick-arrow-color;
opacity: @slick-opacity-default;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
& when ( @slick-font-family = 'slick' ) {
/* Icons */
@font-face {
font-family: 'slick';
font-weight: normal;
font-style: normal;
src: url('@{slick-font-path}slick.eot');
src: url('@{slick-font-path}slick.eot?#iefix') format('embedded-opentype'), url('@{slick-font-path}slick.woff') format('woff'), url('@{slick-font-path}slick.ttf') format('truetype'), url('@{slick-font-path}slick.svg#slick') format('svg');
}
}
}
.slick-prev {
left: -25px;
[dir="rtl"] & {
left: auto;
right: -25px;
}
&:before {
content: @slick-prev-character;
[dir="rtl"] & {
content: @slick-next-character;
}
}
}
.slick-next {
right: -25px;
[dir="rtl"] & {
left: -25px;
right: auto;
}
&:before {
content: @slick-next-character;
[dir="rtl"] & {
content: @slick-prev-character;
}
}
}
/* Dots */
.slick-dotted .slick-slider {
margin-bottom: 30px;
}
.slick-dots {
position: absolute;
bottom: -25px;
list-style: none;
display: block;
text-align: center;
padding: 0;
margin: 0;
width: 100%;
li {
position: relative;
display: inline-block;
height: 20px;
width: 20px;
margin: 0 5px;
padding: 0;
cursor: pointer;
button {
border: 0;
background: transparent;
display: block;
height: 20px;
width: 20px;
outline: none;
line-height: 0px;
font-size: 0px;
color: transparent;
padding: 5px;
cursor: pointer;
&:hover, &:focus {
outline: none;
&:before {
opacity: @slick-opacity-on-hover;
}
}
&:before {
position: absolute;
top: 0;
left: 0;
content: @slick-dot-character;
width: 20px;
height: 20px;
font-family: @slick-font-family;
font-size: @slick-dot-size;
line-height: 20px;
text-align: center;
color: @slick-dot-color;
opacity: @slick-opacity-not-active;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
}
&.slick-active button:before {
color: @slick-dot-color-active;
opacity: @slick-opacity-default;
}
}
}

View File

@ -0,0 +1,194 @@
@charset "UTF-8";
// Default Variables
// Slick icon entity codes outputs the following
// "\2190" outputs ascii character ""
// "\2192" outputs ascii character ""
// "\2022" outputs ascii character ""
$slick-font-path: "./fonts/" !default;
$slick-font-family: "slick" !default;
$slick-loader-path: "./" !default;
$slick-arrow-color: white !default;
$slick-dot-color: black !default;
$slick-dot-color-active: $slick-dot-color !default;
$slick-prev-character: "\2190" !default;
$slick-next-character: "\2192" !default;
$slick-dot-character: "\2022" !default;
$slick-dot-size: 6px !default;
$slick-opacity-default: 0.75 !default;
$slick-opacity-on-hover: 1 !default;
$slick-opacity-not-active: 0.25 !default;
@function slick-image-url($url) {
@if function-exists(image-url) {
@return image-url($url);
}
@else {
@return url($slick-loader-path + $url);
}
}
@function slick-font-url($url) {
@if function-exists(font-url) {
@return font-url($url);
}
@else {
@return url($slick-font-path + $url);
}
}
/* Slider */
.slick-list {
.slick-loading & {
background: #fff slick-image-url("ajax-loader.gif") center center no-repeat;
}
}
/* Icons */
@if $slick-font-family == "slick" {
@font-face {
font-family: "slick";
src: slick-font-url("slick.eot");
src: slick-font-url("slick.eot?#iefix") format("embedded-opentype"), slick-font-url("slick.woff") format("woff"), slick-font-url("slick.ttf") format("truetype"), slick-font-url("slick.svg#slick") format("svg");
font-weight: normal;
font-style: normal;
}
}
/* Arrows */
.slick-prev,
.slick-next {
position: absolute;
display: block;
height: 20px;
width: 20px;
line-height: 0px;
font-size: 0px;
cursor: pointer;
background: transparent;
color: transparent;
top: 50%;
-webkit-transform: translate(0, -50%);
-ms-transform: translate(0, -50%);
transform: translate(0, -50%);
padding: 0;
border: none;
outline: none;
&:hover, &:focus {
outline: none;
background: transparent;
color: transparent;
&:before {
opacity: $slick-opacity-on-hover;
}
}
&.slick-disabled:before {
opacity: $slick-opacity-not-active;
}
&:before {
font-family: $slick-font-family;
font-size: 20px;
line-height: 1;
color: $slick-arrow-color;
opacity: $slick-opacity-default;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
}
.slick-prev {
left: -25px;
[dir="rtl"] & {
left: auto;
right: -25px;
}
&:before {
content: $slick-prev-character;
[dir="rtl"] & {
content: $slick-next-character;
}
}
}
.slick-next {
right: -25px;
[dir="rtl"] & {
left: -25px;
right: auto;
}
&:before {
content: $slick-next-character;
[dir="rtl"] & {
content: $slick-prev-character;
}
}
}
/* Dots */
.slick-dotted.slick-slider {
margin-bottom: 30px;
}
.slick-dots {
position: absolute;
bottom: -25px;
list-style: none;
display: block;
text-align: center;
padding: 0;
margin: 0;
width: 100%;
li {
position: relative;
display: inline-block;
height: 20px;
width: 20px;
margin: 0 5px;
padding: 0;
cursor: pointer;
button {
border: 0;
background: transparent;
display: block;
height: 20px;
width: 20px;
outline: none;
line-height: 0px;
font-size: 0px;
color: transparent;
padding: 5px;
cursor: pointer;
&:hover, &:focus {
outline: none;
&:before {
opacity: $slick-opacity-on-hover;
}
}
&:before {
position: absolute;
top: 0;
left: 0;
content: $slick-dot-character;
width: 20px;
height: 20px;
font-family: $slick-font-family;
font-size: $slick-dot-size;
line-height: 20px;
text-align: center;
color: $slick-dot-color;
opacity: $slick-opacity-not-active;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
}
&.slick-active button:before {
color: $slick-dot-color-active;
opacity: $slick-opacity-default;
}
}
}

View File

@ -0,0 +1,119 @@
/* Slider */
.slick-slider
{
position: relative;
display: block;
box-sizing: border-box;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-touch-callout: none;
-khtml-user-select: none;
-ms-touch-action: pan-y;
touch-action: pan-y;
-webkit-tap-highlight-color: transparent;
}
.slick-list
{
position: relative;
display: block;
overflow: hidden;
margin: 0;
padding: 0;
}
.slick-list:focus
{
outline: none;
}
.slick-list.dragging
{
cursor: pointer;
cursor: hand;
}
.slick-slider .slick-track,
.slick-slider .slick-list
{
-webkit-transform: translate3d(0, 0, 0);
-moz-transform: translate3d(0, 0, 0);
-ms-transform: translate3d(0, 0, 0);
-o-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
}
.slick-track
{
position: relative;
top: 0;
left: 0;
display: block;
margin-left: auto;
margin-right: auto;
}
.slick-track:before,
.slick-track:after
{
display: table;
content: '';
}
.slick-track:after
{
clear: both;
}
.slick-loading .slick-track
{
visibility: hidden;
}
.slick-slide
{
display: none;
float: left;
height: 100%;
min-height: 1px;
}
[dir='rtl'] .slick-slide
{
float: right;
}
.slick-slide img
{
display: block;
}
.slick-slide.slick-loading img
{
display: none;
}
.slick-slide.dragging img
{
pointer-events: none;
}
.slick-initialized .slick-slide
{
display: block;
}
.slick-loading .slick-slide
{
visibility: hidden;
}
.slick-vertical .slick-slide
{
display: block;
height: auto;
border: 1px solid transparent;
}
.slick-arrow.slick-hidden {
display: none;
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,100 @@
/* Slider */
.slick-slider {
position: relative;
display: block;
box-sizing: border-box;
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-ms-touch-action: pan-y;
touch-action: pan-y;
-webkit-tap-highlight-color: transparent;
}
.slick-list {
position: relative;
overflow: hidden;
display: block;
margin: 0;
padding: 0;
&:focus {
outline: none;
}
&.dragging {
cursor: pointer;
cursor: hand;
}
}
.slick-slider .slick-track,
.slick-slider .slick-list {
-webkit-transform: translate3d(0, 0, 0);
-moz-transform: translate3d(0, 0, 0);
-ms-transform: translate3d(0, 0, 0);
-o-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
}
.slick-track {
position: relative;
left: 0;
top: 0;
display: block;
margin-left: auto;
margin-right: auto;
&:before,
&:after {
content: "";
display: table;
}
&:after {
clear: both;
}
.slick-loading & {
visibility: hidden;
}
}
.slick-slide {
float: left;
height: 100%;
min-height: 1px;
[dir="rtl"] & {
float: right;
}
img {
display: block;
}
&.slick-loading img {
display: none;
}
display: none;
&.dragging img {
pointer-events: none;
}
.slick-initialized & {
display: block;
}
.slick-loading & {
visibility: hidden;
}
.slick-vertical & {
display: block;
height: auto;
border: 1px solid transparent;
}
}
.slick-arrow.slick-hidden {
display: none;
}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,100 @@
/* Slider */
.slick-slider {
position: relative;
display: block;
box-sizing: border-box;
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-ms-touch-action: pan-y;
touch-action: pan-y;
-webkit-tap-highlight-color: transparent;
}
.slick-list {
position: relative;
overflow: hidden;
display: block;
margin: 0;
padding: 0;
&:focus {
outline: none;
}
&.dragging {
cursor: pointer;
cursor: hand;
}
}
.slick-slider .slick-track,
.slick-slider .slick-list {
-webkit-transform: translate3d(0, 0, 0);
-moz-transform: translate3d(0, 0, 0);
-ms-transform: translate3d(0, 0, 0);
-o-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
}
.slick-track {
position: relative;
left: 0;
top: 0;
display: block;
margin-left: auto;
margin-right: auto;
&:before,
&:after {
content: "";
display: table;
}
&:after {
clear: both;
}
.slick-loading & {
visibility: hidden;
}
}
.slick-slide {
float: left;
height: 100%;
min-height: 1px;
[dir="rtl"] & {
float: right;
}
img {
display: block;
}
&.slick-loading img {
display: none;
}
display: none;
&.dragging img {
pointer-events: none;
}
.slick-initialized & {
display: block;
}
.slick-loading & {
visibility: hidden;
}
.slick-vertical & {
display: block;
height: auto;
border: 1px solid transparent;
}
}
.slick-arrow.slick-hidden {
display: none;
}

File diff suppressed because it is too large Load Diff

View File

@ -8,7 +8,7 @@
}, },
"author": "", "author": "",
"license": "ISC", "license": "ISC",
"devDependencies": { "dependencies": {
"node-sass": "^9.0.0" "sass": "^1.69.5"
} }
} }

View File

@ -0,0 +1,43 @@
/* Marianne */
@font-face {
font-family: 'Marianne';
src: url('../fonts/Marianne/Marianne-Light.woff2') format('woff2'),
url('../fonts/Marianne/Marianne-Light.woff') format('woff');
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: 'Marianne';
src: url('../fonts/Marianne/Marianne-Light_Italic.woff2') format('woff2'),
url('../fonts/Marianne/Marianne-Light_Italic.woff') format('woff');
font-weight: 400;
font-style: italic;
}
@font-face {
font-family: 'Marianne';
src: url('../fonts/Marianne/Marianne-Medium.woff2') format('woff2'),
url('../fonts/Marianne/Marianne-Medium.woff') format('woff');
font-weight: 800;
font-style: normal;
}
@font-face {
font-family: 'Marianne';
src: url('../fonts/Marianne/Marianne-Medium_Italic.woff2') format('woff2'),
url('../fonts/Marianne/Marianne-Medium_Italic.woff') format('woff');
font-weight: 800;
font-style: italic;
}
/* Barlow */
@font-face {
font-family: 'Barlow';
src: url('../fonts/Barlow/barlow-light.woff2') format('woff2'),
url('../fonts/Barlow/barlow_light.woff') format('woff');
font-weight: 300;
font-style: normal;
}

View File

@ -0,0 +1,3 @@
a {
text-decoration: none;
}

View File

@ -0,0 +1,4 @@
$fluo_green: #00ff80;
$teal: #038788;
$beige: #fcf9ee;
$dark_green: #314e41;

View File

@ -0,0 +1,2 @@
$x_margin: 3vw;
$y_margins: 2vh;

View File

@ -0,0 +1,2 @@
/* SIZES */
$sm_font_size: 0.8rem;

View File

@ -0,0 +1,79 @@
.layout-container > footer {
width: 100vw;
background-color: white;
z-index: 99;
box-shadow: 0px -4px 4px rgba(0, 0, 0, 0.2);
margin-top: 50px;
padding: 0 $x_margin;
#footer_left div {
margin-top: 5px;
display: flex;
justify-content: space-between;
align-items: center;
flex-wrap: nowrap;
#block-erabletheme-logorep {
max-width: 30vw;
img {
width: 100%;
height: auto;
}
}
#block-erabletheme-logoepau {
max-width: 50vw;
img {
width: 100%;
height: auto;
}
}
}
#footer_section {
display: flex;
width: 100%;
justify-content: space-between;
align-items: center;
margin-top: 10px;
margin-bottom: 20px;
position: relative;
#footer_center {
padding-left: 2vw;
width: 50%;
nav ul {
display: flex;
justify-content: space-between;
li a {
color: $dark_green;
font-size: $sm_font_size;
font-family: 'Marianne', sans-serif;
font-weight: 800;
text-decoration: underline;
}
}
}
#footer_right {
width: 30%;
#block-erabletheme-socialmedialinks-2 ul {
display: flex;
justify-content: space-between;
li a {
span {
font-weight: lighter;
font-size: 1.4rem;
width: 2.2rem;
height: 2.2rem;
padding: 0.4rem;
border-radius: 1.1rem;
color: white;
background-color: $teal;
}
svg.ext {
background-color: red;
display: none;
}
}
}
}
}
}

View File

@ -0,0 +1,99 @@
.layout-container {
width: 100vw;
overflow: hidden;
header {
width: 100vw;
background: white;
position: fixed;
top: 0;
left: 0;
box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.2);
z-index: 99;
div {
max-width: 100%;
max-height: 7vh;
display: flex;
flex-wrap: nowrap;
justify-content: space-between;
#block-erabletheme-logorepublique {
max-width: 15vw;
a {
display: flex;
align-items: center;
img {
padding-left: $x_margin;
height: auto;
width: 100%;
}
}
}
#block-erabletheme-logoerable {
max-width: 30vw;
a {
display: flex;
align-items: center;
img {
height: auto;
width: 100%;
padding-top: 3px;
padding-bottom: 3px;
}
}
}
#block-erabletheme-navigationprincipale {
display: none;
}
#block-erabletheme-socialmedialinks {
display: none;
}
#block-erabletheme-header {
#hamburger {
width: 4rem;
height: 100%;
background-color: $fluo_green;
display: flex;
align-items: center;
justify-content: center;
h2 {
font-size: $sm_font_size;
font-family: 'Marianne', sans-serif;
font-weight: 800;
text-align: center;
}
}
ul {
display: none;
}
ul.active {
display: block;
position: fixed;
background-color: $dark_green;
top: 7vh;
left: 0;
width: 100vw;
z-index: 0;
padding: 30px 0;
li {
width: 100%;
display: flex;
justify-content: center;
padding: 6px 0;
a {
color: white;
font-family: 'Marianne', sans-serif;
font-weight: 800;
padding: 4px 6px;
}
a.is-active {
background-color: white;
color: $dark_green;
}
}
}
}
}
}
}

View File

@ -1,3 +1,10 @@
body{ /* GLOBAL */
// background-color: red; @import "global/_fonts";
} @import "global/variables/_colors";
@import "global/variables/_layout";
@import "global/variables/_typography";
@import "global/_typography";
/* PARTIALS */
@import "partials/_header";
@import "partials/_footer";

View File

@ -0,0 +1,42 @@
{#
/**
* @file
* Default theme implementation to display a block.
*
* Available variables:
* - plugin_id: The ID of the block implementation.
* - label: The configured label of the block if visible.
* - configuration: A list of the block's configuration values.
* - label: The configured label for the block.
* - label_display: The display settings for the label.
* - provider: The module or other provider that provided this block plugin.
* - Block plugin specific settings will also be stored here.
* - in_preview: Whether the plugin is being rendered in preview mode.
* - content: The content of this block.
* - attributes: array of HTML attributes populated by modules, intended to
* be added to the main container tag of this template.
* - id: A valid HTML ID and guaranteed unique.
* - title_attributes: Same as attributes, except applied to the main title
* tag that appears in the template.
* - title_prefix: Additional output populated by modules, intended to be
* displayed in front of the main title tag that appears in the template.
* - title_suffix: Additional output populated by modules, intended to be
* displayed after the main title tag that appears in the template.
*
* @see template_preprocess_block()
*
* @ingroup themeable
*/
#}
<div{{ attributes }}>
{{ title_prefix }}
{% if label %}
<div id="hamburger">
<h2{{ title_attributes }}>{{ label }}</h2>
</div>
{% endif %}
{{ title_suffix }}
{% block content %}
{{ content }}
{% endblock %}
</div>

View File

@ -89,8 +89,10 @@
<section id="footer_top">{{ page.footer_top }}</section> <section id="footer_top">{{ page.footer_top }}</section>
<section id="footer_middle"> <section id="footer_middle">
<section id="footer_left">{{ page.footer_left }}</section> <section id="footer_left">{{ page.footer_left }}</section>
<div id="footer_section">
<section id="footer_center">{{ page.footer_center }}</section> <section id="footer_center">{{ page.footer_center }}</section>
<section id="footer_right">{{ page.footer_right }}</section> <section id="footer_right">{{ page.footer_right }}</section>
</div>
</section> </section>
<section id="footer_bottom">{{ page.bottom }}</section> <section id="footer_bottom">{{ page.bottom }}</section>

View File

@ -0,0 +1,21 @@
{#
/**
* @file
* Default theme implementation to display a region.
*
* Available variables:
* - content: The content for this region, typically blocks.
* - attributes: HTML attributes for the region <div>.
* - region: The name of the region variable as defined in the theme's
* .info.yml file.
*
* @see template_preprocess_region()
*
* @ingroup themeable
*/
#}
{% if content %}
<div{{ attributes }}>
{{ content }}
</div>
{% endif %}