Initial commit
This commit is contained in:
commit
ad49d77297
28
.gitignore
vendored
Normal file
28
.gitignore
vendored
Normal file
|
@ -0,0 +1,28 @@
|
|||
|
||||
# OS generated files #
|
||||
######################
|
||||
.DS_Store
|
||||
.DS_Store?
|
||||
._*
|
||||
.Spotlight-V100
|
||||
.Trashes
|
||||
ehthumbs.db
|
||||
Thumbs.db
|
||||
|
||||
# mousepad shit #
|
||||
*.*~
|
||||
|
||||
#### JEKYLL
|
||||
_site/
|
||||
.sass-cache/
|
||||
.jekyll-cache/
|
||||
.jekyll-metadata
|
||||
_data/.~lock.*.csv
|
||||
|
||||
## vcode
|
||||
.vscode
|
||||
.vscode/*
|
||||
|
||||
## No cover artwork or Mp3
|
||||
*.mp3
|
||||
assets/albums/
|
93
404.html
Normal file
93
404.html
Normal file
|
@ -0,0 +1,93 @@
|
|||
---
|
||||
layout: nil
|
||||
title: Error 404 This is not a page
|
||||
description: The page you are looking for has moved to the darknet.
|
||||
image: /assets/img/Chain_1.png
|
||||
permalink: /404.html
|
||||
---
|
||||
|
||||
<!DOCTYPE html>
|
||||
<!--
|
||||
Based on _Story_ by html5up.net | @ajlkn
|
||||
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
Remixed and Jekyllified by Setto
|
||||
-->
|
||||
<html lang="en">
|
||||
<head>
|
||||
{% include seo.html %}
|
||||
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=yes" />
|
||||
<link rel="stylesheet" href="/assets/css/main20200710.css" />
|
||||
<noscript><link rel="stylesheet" href="/assets/css/noscript20200710.css" /></noscript>
|
||||
</head>
|
||||
|
||||
<body id="body">
|
||||
<span id="top" style="display: none;"></span>
|
||||
<!-- Wrapper -->
|
||||
<div id="wrapper" class="divided">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- Banner -->
|
||||
<section class="banner onload-image-fade-in onload-content-fade-right style2 fullscreen content-align-center image-position-center" style="min-height:100vh;">
|
||||
|
||||
<div class="content editable">
|
||||
<h1 class="editable">{{ page.title }}</h1>
|
||||
<p>{{ page.description }}</p>
|
||||
<ul class="actions stacked">
|
||||
<li><a href="/" class="button big wide">Take me back!</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="image">
|
||||
<img src="{{ page.image }}" alt="unfound page" />
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Footer -->
|
||||
<footer id="footer" class="wrapper style1 align-center">
|
||||
<div class="footflex">
|
||||
<div>
|
||||
<h4>{{ site.title }}</h4>
|
||||
<p>{{ site.description }}
|
||||
|
||||
</p></div>
|
||||
<div>
|
||||
<ul>
|
||||
|
||||
<li><a href="{{ relBase }}/">{{ site.data.translations[page.lang].home }}</a></li>
|
||||
|
||||
{% for entry in site.data.navigation %}
|
||||
<li><a href="{{ entry.url }}">{{ entry.name }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
<div><img src="{{ site.logo }}" style="max-width:300px" /></div>
|
||||
</div>
|
||||
<div class="inner">
|
||||
|
||||
<p>©2020 Basspistol | <a href="/webcreds/">Credits</a> | <a href="/cookies/">Cookies & Privacy</a></p>
|
||||
</div>
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
{% include navigation.html %}
|
||||
|
||||
<!-- Scripts -->
|
||||
|
||||
<script src="/assets/js/jquery.min.js"></script>
|
||||
<script src="/assets/js/jquery.scrollex.min.js"></script>
|
||||
<script src="/assets/js/jquery.scrolly.min.js"></script>
|
||||
<script src="/assets/js/browser.min.js"></script>
|
||||
<script src="/assets/js/breakpoints.min.js"></script>
|
||||
<script src="/assets/js/util.js"></script>
|
||||
<script src="/assets/js/main.js"></script>
|
||||
<script src="/assets/js/set.js"></script>
|
||||
|
||||
{% include cookie-consent.html %}
|
||||
|
||||
</body>
|
||||
</html>
|
8
Gemfile
Normal file
8
Gemfile
Normal file
|
@ -0,0 +1,8 @@
|
|||
source 'https://rubygems.org'
|
||||
|
||||
gem 'jekyll', '4.0.0'
|
||||
|
||||
group :jekyll_plugins do
|
||||
gem 'jekyll-sitemap', '1.4.0'
|
||||
gem 'jekyll-last-modified-at','1.1.0'
|
||||
end
|
75
Gemfile.lock
Normal file
75
Gemfile.lock
Normal file
|
@ -0,0 +1,75 @@
|
|||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
addressable (2.7.0)
|
||||
public_suffix (>= 2.0.2, < 5.0)
|
||||
colorator (1.1.0)
|
||||
concurrent-ruby (1.1.6)
|
||||
em-websocket (0.5.1)
|
||||
eventmachine (>= 0.12.9)
|
||||
http_parser.rb (~> 0.6.0)
|
||||
eventmachine (1.2.7)
|
||||
ffi (1.13.1)
|
||||
forwardable-extended (2.6.0)
|
||||
http_parser.rb (0.6.0)
|
||||
i18n (1.8.4)
|
||||
concurrent-ruby (~> 1.0)
|
||||
jekyll (4.0.0)
|
||||
addressable (~> 2.4)
|
||||
colorator (~> 1.0)
|
||||
em-websocket (~> 0.5)
|
||||
i18n (>= 0.9.5, < 2)
|
||||
jekyll-sass-converter (~> 2.0)
|
||||
jekyll-watch (~> 2.0)
|
||||
kramdown (~> 2.1)
|
||||
kramdown-parser-gfm (~> 1.0)
|
||||
liquid (~> 4.0)
|
||||
mercenary (~> 0.3.3)
|
||||
pathutil (~> 0.9)
|
||||
rouge (~> 3.0)
|
||||
safe_yaml (~> 1.0)
|
||||
terminal-table (~> 1.8)
|
||||
jekyll-last-modified-at (1.1.0)
|
||||
jekyll (>= 3.7, < 5.0)
|
||||
posix-spawn (~> 0.3.9)
|
||||
jekyll-sass-converter (2.1.0)
|
||||
sassc (> 2.0.1, < 3.0)
|
||||
jekyll-sitemap (1.4.0)
|
||||
jekyll (>= 3.7, < 5.0)
|
||||
jekyll-watch (2.2.1)
|
||||
listen (~> 3.0)
|
||||
kramdown (2.3.0)
|
||||
rexml
|
||||
kramdown-parser-gfm (1.1.0)
|
||||
kramdown (~> 2.0)
|
||||
liquid (4.0.3)
|
||||
listen (3.2.1)
|
||||
rb-fsevent (~> 0.10, >= 0.10.3)
|
||||
rb-inotify (~> 0.9, >= 0.9.10)
|
||||
mercenary (0.3.6)
|
||||
pathutil (0.16.2)
|
||||
forwardable-extended (~> 2.6)
|
||||
posix-spawn (0.3.15)
|
||||
public_suffix (4.0.5)
|
||||
rb-fsevent (0.10.4)
|
||||
rb-inotify (0.10.1)
|
||||
ffi (~> 1.0)
|
||||
rexml (3.2.4)
|
||||
rouge (3.21.0)
|
||||
safe_yaml (1.0.5)
|
||||
sassc (2.4.0)
|
||||
ffi (~> 1.9)
|
||||
terminal-table (1.8.0)
|
||||
unicode-display_width (~> 1.1, >= 1.1.1)
|
||||
unicode-display_width (1.7.0)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
|
||||
DEPENDENCIES
|
||||
jekyll (= 4.0.0)
|
||||
jekyll-last-modified-at (= 1.1.0)
|
||||
jekyll-sitemap (= 1.4.0)
|
||||
|
||||
BUNDLED WITH
|
||||
2.1.4
|
28
LICENSE
Normal file
28
LICENSE
Normal file
|
@ -0,0 +1,28 @@
|
|||
This is free and unencumbered software released into the public domain applied to
|
||||
the code written by Sakrecoer. Code present in this repository written by other
|
||||
people will be subject to their own licensing-model respectfully, with credit
|
||||
served where credits are due.
|
||||
|
||||
Anyone is free to copy, modify, publish, use, compile, sell, or distribute the
|
||||
software written by Sakrecoer, either in source code form or as a compiled binary,
|
||||
for any purpose, commercial or non-commercial, and by any means.
|
||||
|
||||
In jurisdictions that recognize copyright laws, the author or authors
|
||||
of this software dedicate any and all copyright interest in the
|
||||
software to the public domain. We make this dedication for the benefit
|
||||
of the public at large and to the detriment of our heirs and
|
||||
successors. We intend this dedication to be an overt act of
|
||||
relinquishment in perpetuity of all present and future rights to this
|
||||
software under copyright law.
|
||||
|
||||
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 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.
|
||||
|
||||
For more information, please refer to <http://unlicense.org>
|
||||
|
||||
|
117
_albums/cyber-grany.md
Normal file
117
_albums/cyber-grany.md
Normal file
|
@ -0,0 +1,117 @@
|
|||
---
|
||||
layout: album
|
||||
slug: cyber-grany
|
||||
name: Cyber Grany
|
||||
artists: 徒 Setto セット
|
||||
bitrate: 320000
|
||||
trackCount: 1
|
||||
cover: /assets/albums/cyber-grany/1-grandma-got-the-ssh-keys.jpeg
|
||||
date: 2019-1-1
|
||||
tracks:
|
||||
- path: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/cyber-grany/1-grandma-got-the-ssh-keys.mp3
|
||||
audio: /assets/albums/cyber-grany/1-grandma-got-the-ssh-keys.mp3
|
||||
slug: cyber-grany/1-grandma-got-the-ssh-keys
|
||||
albumSlug: cyber-grany
|
||||
trackSlug: 1-grandma-got-the-ssh-keys
|
||||
coverPath: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/cyber-grany/1-grandma-got-the-ssh-keys.jpeg
|
||||
cover: /assets/albums/cyber-grany/1-grandma-got-the-ssh-keys.jpeg
|
||||
format:
|
||||
tagTypes:
|
||||
- ID3v2.3
|
||||
trackInfo: []
|
||||
lossless: false
|
||||
container: MPEG
|
||||
codec: MPEG 1 Layer 3
|
||||
sampleRate: 44100
|
||||
numberOfChannels: 2
|
||||
bitrate: 320000
|
||||
codecProfile: CBR
|
||||
numberOfSamples: 8909568
|
||||
duration: 202.03102040816327
|
||||
native:
|
||||
ID3v2.3:
|
||||
- id: TIT2
|
||||
value: Grandma got the SSH keys
|
||||
- id: TPE1
|
||||
value: 徒 Setto セット
|
||||
- id: TRCK
|
||||
value: 1/1
|
||||
- id: TALB
|
||||
value: Cyber Grany
|
||||
- id: TPE2
|
||||
value: To Setto Setto
|
||||
- id: TCON
|
||||
value: Acid Trap
|
||||
- id: 'TXXX:CDDB DiscID'
|
||||
value: 0200ca01
|
||||
- id: 'TXXX:discid'
|
||||
value: 0200ca01
|
||||
- id: 'TXXX:MusicBrainz DiscID'
|
||||
value: bhKd3SFqkr6x1L9X2JkIZ6UIaRA-
|
||||
- id: 'TXXX:musicbrainz_discid'
|
||||
value: bhKd3SFqkr6x1L9X2JkIZ6UIaRA-
|
||||
- id: COMM
|
||||
value:
|
||||
language: XXX
|
||||
description: WEBSITE
|
||||
text: 'https://setto.basspistol.com'
|
||||
- id: COMM
|
||||
value:
|
||||
language: XXX
|
||||
description: Comment
|
||||
text: Special track for Acid December 2019
|
||||
- id: TYER
|
||||
value: '2019'
|
||||
quality:
|
||||
warnings: []
|
||||
common:
|
||||
track:
|
||||
'no': 1
|
||||
of: 1
|
||||
disk:
|
||||
'no': null
|
||||
of: null
|
||||
title: Grandma got the SSH keys
|
||||
artists:
|
||||
- 徒 Setto セット
|
||||
artist: 徒 Setto セット
|
||||
album: Cyber Grany
|
||||
albumartist: To Setto Setto
|
||||
genre:
|
||||
- Acid Trap
|
||||
comment:
|
||||
- 'https://setto.basspistol.com'
|
||||
- Special track for Acid December 2019
|
||||
year: 2019
|
||||
transformed:
|
||||
ID3v2.3:
|
||||
TIT2: Grandma got the SSH keys
|
||||
TPE1: 徒 Setto セット
|
||||
TRCK: 1/1
|
||||
TALB: Cyber Grany
|
||||
TPE2: To Setto Setto
|
||||
TCON: Acid Trap
|
||||
'TXXX:CDDB DiscID': 0200ca01
|
||||
'TXXX:discid': 0200ca01
|
||||
'TXXX:MusicBrainz DiscID': bhKd3SFqkr6x1L9X2JkIZ6UIaRA-
|
||||
'TXXX:musicbrainz_discid': bhKd3SFqkr6x1L9X2JkIZ6UIaRA-
|
||||
WEBSITE: 'https://setto.basspistol.com'
|
||||
Comment: Special track for Acid December 2019
|
||||
TYER: '2019'
|
||||
all:
|
||||
TIT2: Grandma got the SSH keys
|
||||
TPE1: 徒 Setto セット
|
||||
TRCK: 1/1
|
||||
TALB: Cyber Grany
|
||||
TPE2: To Setto Setto
|
||||
TCON: Acid Trap
|
||||
'TXXX:CDDB DiscID': 0200ca01
|
||||
'TXXX:discid': 0200ca01
|
||||
'TXXX:MusicBrainz DiscID': bhKd3SFqkr6x1L9X2JkIZ6UIaRA-
|
||||
'TXXX:musicbrainz_discid': bhKd3SFqkr6x1L9X2JkIZ6UIaRA-
|
||||
WEBSITE: 'https://setto.basspistol.com'
|
||||
Comment: Special track for Acid December 2019
|
||||
TYER: '2019'
|
||||
---
|
618
_albums/darkweb.md
Normal file
618
_albums/darkweb.md
Normal file
|
@ -0,0 +1,618 @@
|
|||
---
|
||||
layout: album
|
||||
slug: darkweb
|
||||
name: Darkweb
|
||||
artists: 徒 Setto セット
|
||||
bitrate: 128000
|
||||
trackCount: 4
|
||||
cover: /assets/albums/darkweb/1-swipe.jpeg
|
||||
date: 2019-1-1
|
||||
tracks:
|
||||
- path: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/1-swipe.mp3
|
||||
audio: /assets/albums/darkweb/1-swipe.mp3
|
||||
slug: darkweb/1-swipe
|
||||
albumSlug: darkweb
|
||||
trackSlug: 1-swipe
|
||||
coverPath: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/1-swipe.jpeg
|
||||
cover: /assets/albums/darkweb/1-swipe.jpeg
|
||||
format:
|
||||
tagTypes:
|
||||
- ID3v2.3
|
||||
trackInfo: []
|
||||
lossless: false
|
||||
container: MPEG
|
||||
codec: MPEG 1 Layer 3
|
||||
sampleRate: 44100
|
||||
numberOfChannels: 2
|
||||
bitrate: 128000
|
||||
codecProfile: CBR
|
||||
numberOfSamples: 12388608
|
||||
duration: 280.9208163265306
|
||||
native:
|
||||
ID3v2.3:
|
||||
- id: TIT2
|
||||
value: Swipe
|
||||
- id: TPE1
|
||||
value: 徒 Setto セット
|
||||
- id: COMM
|
||||
value:
|
||||
language: XXX
|
||||
description: Comment
|
||||
text: >-
|
||||
Cover art by Mattias Ritarn Lindström, Music by
|
||||
To Setto Setto
|
||||
- id: TALB
|
||||
value: Darkweb
|
||||
- id: TRCK
|
||||
value: '1'
|
||||
- id: TPE2
|
||||
value: 徒 Setto セット
|
||||
- id: COMM
|
||||
value:
|
||||
language: XXX
|
||||
description: UNSYNCEDLYRICS
|
||||
text: >-
|
||||
Comme tous les après-midis, Assis dans le tram en face d'une jolie
|
||||
vie,
|
||||
|
||||
Sur mon écran elles sont encore plus sexy.
|
||||
|
||||
Swipe à gauche swipe à droite,
|
||||
|
||||
Celle-ci a l'aire plutôt maladroite,
|
||||
|
||||
Ça m'irait bien ça.
|
||||
|
||||
Mais la personne en face de moi,
|
||||
|
||||
Elle me matte, elle me mire.
|
||||
|
||||
Je ne sais pas quoi faire,
|
||||
|
||||
Qu'est-ce que je vais lui dire?
|
||||
|
||||
Elle a de belles dents!
|
||||
|
||||
Je vais retourner a mon écran.
|
||||
|
||||
je n'ai simplement,
|
||||
|
||||
Pas assez de cran.
|
||||
|
||||
|
||||
Je swipe à droite,
|
||||
|
||||
Je swipe à gauche,
|
||||
|
||||
Je yeuxt vers l'avant de temps en temps.
|
||||
|
||||
|
||||
Si seulement elle voyait mon flux,
|
||||
|
||||
Je suis sur qu'elle n'en pourrait plus!
|
||||
|
||||
Comment je fais pour l'ajouter?
|
||||
|
||||
Est-ce que Google pourrait la trouver?
|
||||
|
||||
Hashtag jolitram,
|
||||
|
||||
Faudrait que ça devienne viral sur Instagram.
|
||||
|
||||
Ensemble on aurait peut-être un avenir!
|
||||
|
||||
Mais comment coño vais-je lui dire?
|
||||
|
||||
Merde elle appuie sur arrêt!
|
||||
|
||||
Je lui tend mon casque ça le fait!
|
||||
|
||||
Elle donne le siens truc de ouf?!
|
||||
|
||||
Hésitations je m'immisce.
|
||||
|
||||
Cette personne écoute de la bonne musique de glisse.
|
||||
|
||||
|
||||
Je swipe à droite,
|
||||
|
||||
Je swipe à gauche,
|
||||
|
||||
Je yeuxt vers l'avant de temps en temps.
|
||||
- id: TCON
|
||||
value: Cyber Soul
|
||||
- id: TYER
|
||||
value: '2019'
|
||||
quality:
|
||||
warnings: []
|
||||
common:
|
||||
track:
|
||||
'no': 1
|
||||
of: null
|
||||
disk:
|
||||
'no': null
|
||||
of: null
|
||||
title: Swipe
|
||||
artists:
|
||||
- 徒 Setto セット
|
||||
artist: 徒 Setto セット
|
||||
comment:
|
||||
- >-
|
||||
Cover art by Mattias Ritarn Lindström, Music by
|
||||
To Setto Setto
|
||||
- >-
|
||||
Comme tous les après-midis, Assis dans le tram en face d'une jolie
|
||||
vie,
|
||||
|
||||
Sur mon écran elles sont encore plus sexy.
|
||||
|
||||
Swipe à gauche swipe à droite,
|
||||
|
||||
Celle-ci a l'aire plutôt maladroite,
|
||||
|
||||
Ça m'irait bien ça.
|
||||
|
||||
Mais la personne en face de moi,
|
||||
|
||||
Elle me matte, elle me mire.
|
||||
|
||||
Je ne sais pas quoi faire,
|
||||
|
||||
Qu'est-ce que je vais lui dire?
|
||||
|
||||
Elle a de belles dents!
|
||||
|
||||
Je vais retourner a mon écran.
|
||||
|
||||
je n'ai simplement,
|
||||
|
||||
Pas assez de cran.
|
||||
|
||||
|
||||
Je swipe à droite,
|
||||
|
||||
Je swipe à gauche,
|
||||
|
||||
Je yeuxt vers l'avant de temps en temps.
|
||||
|
||||
|
||||
Si seulement elle voyait mon flux,
|
||||
|
||||
Je suis sur qu'elle n'en pourrait plus!
|
||||
|
||||
Comment je fais pour l'ajouter?
|
||||
|
||||
Est-ce que Google pourrait la trouver?
|
||||
|
||||
Hashtag jolitram,
|
||||
|
||||
Faudrait que ça devienne viral sur Instagram.
|
||||
|
||||
Ensemble on aurait peut-être un avenir!
|
||||
|
||||
Mais comment coño vais-je lui dire?
|
||||
|
||||
Merde elle appuie sur arrêt!
|
||||
|
||||
Je lui tend mon casque ça le fait!
|
||||
|
||||
Elle donne le siens truc de ouf?!
|
||||
|
||||
Hésitations je m'immisce.
|
||||
|
||||
Cette personne écoute de la bonne musique de glisse.
|
||||
|
||||
|
||||
Je swipe à droite,
|
||||
|
||||
Je swipe à gauche,
|
||||
|
||||
Je yeuxt vers l'avant de temps en temps.
|
||||
album: Darkweb
|
||||
albumartist: 徒 Setto セット
|
||||
genre:
|
||||
- Cyber Soul
|
||||
year: 2019
|
||||
transformed:
|
||||
ID3v2.3:
|
||||
TIT2: Swipe
|
||||
TPE1: 徒 Setto セット
|
||||
Comment: >-
|
||||
Cover art by Mattias Ritarn Lindström, Music by
|
||||
To Setto Setto
|
||||
TALB: Darkweb
|
||||
TRCK: '1'
|
||||
TPE2: 徒 Setto セット
|
||||
UNSYNCEDLYRICS: >-
|
||||
Comme tous les après-midis, Assis dans le tram en face d'une jolie
|
||||
vie,
|
||||
|
||||
Sur mon écran elles sont encore plus sexy.
|
||||
|
||||
Swipe à gauche swipe à droite,
|
||||
|
||||
Celle-ci a l'aire plutôt maladroite,
|
||||
|
||||
Ça m'irait bien ça.
|
||||
|
||||
Mais la personne en face de moi,
|
||||
|
||||
Elle me matte, elle me mire.
|
||||
|
||||
Je ne sais pas quoi faire,
|
||||
|
||||
Qu'est-ce que je vais lui dire?
|
||||
|
||||
Elle a de belles dents!
|
||||
|
||||
Je vais retourner a mon écran.
|
||||
|
||||
je n'ai simplement,
|
||||
|
||||
Pas assez de cran.
|
||||
|
||||
|
||||
Je swipe à droite,
|
||||
|
||||
Je swipe à gauche,
|
||||
|
||||
Je yeuxt vers l'avant de temps en temps.
|
||||
|
||||
|
||||
Si seulement elle voyait mon flux,
|
||||
|
||||
Je suis sur qu'elle n'en pourrait plus!
|
||||
|
||||
Comment je fais pour l'ajouter?
|
||||
|
||||
Est-ce que Google pourrait la trouver?
|
||||
|
||||
Hashtag jolitram,
|
||||
|
||||
Faudrait que ça devienne viral sur Instagram.
|
||||
|
||||
Ensemble on aurait peut-être un avenir!
|
||||
|
||||
Mais comment coño vais-je lui dire?
|
||||
|
||||
Merde elle appuie sur arrêt!
|
||||
|
||||
Je lui tend mon casque ça le fait!
|
||||
|
||||
Elle donne le siens truc de ouf?!
|
||||
|
||||
Hésitations je m'immisce.
|
||||
|
||||
Cette personne écoute de la bonne musique de glisse.
|
||||
|
||||
|
||||
Je swipe à droite,
|
||||
|
||||
Je swipe à gauche,
|
||||
|
||||
Je yeuxt vers l'avant de temps en temps.
|
||||
TCON: Cyber Soul
|
||||
TYER: '2019'
|
||||
all:
|
||||
TIT2: Swipe
|
||||
TPE1: 徒 Setto セット
|
||||
Comment: 'Cover art by Mattias Ritarn Lindström, Music by To Setto Setto'
|
||||
TALB: Darkweb
|
||||
TRCK: '1'
|
||||
TPE2: 徒 Setto セット
|
||||
UNSYNCEDLYRICS: |-
|
||||
Comme tous les après-midis, Assis dans le tram en face d'une jolie vie,
|
||||
Sur mon écran elles sont encore plus sexy.
|
||||
Swipe à gauche swipe à droite,
|
||||
Celle-ci a l'aire plutôt maladroite,
|
||||
Ça m'irait bien ça.
|
||||
Mais la personne en face de moi,
|
||||
Elle me matte, elle me mire.
|
||||
Je ne sais pas quoi faire,
|
||||
Qu'est-ce que je vais lui dire?
|
||||
Elle a de belles dents!
|
||||
Je vais retourner a mon écran.
|
||||
je n'ai simplement,
|
||||
Pas assez de cran.
|
||||
|
||||
Je swipe à droite,
|
||||
Je swipe à gauche,
|
||||
Je yeuxt vers l'avant de temps en temps.
|
||||
|
||||
Si seulement elle voyait mon flux,
|
||||
Je suis sur qu'elle n'en pourrait plus!
|
||||
Comment je fais pour l'ajouter?
|
||||
Est-ce que Google pourrait la trouver?
|
||||
Hashtag jolitram,
|
||||
Faudrait que ça devienne viral sur Instagram.
|
||||
Ensemble on aurait peut-être un avenir!
|
||||
Mais comment coño vais-je lui dire?
|
||||
Merde elle appuie sur arrêt!
|
||||
Je lui tend mon casque ça le fait!
|
||||
Elle donne le siens truc de ouf?!
|
||||
Hésitations je m'immisce.
|
||||
Cette personne écoute de la bonne musique de glisse.
|
||||
|
||||
Je swipe à droite,
|
||||
Je swipe à gauche,
|
||||
Je yeuxt vers l'avant de temps en temps.
|
||||
TCON: Cyber Soul
|
||||
TYER: '2019'
|
||||
- path: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/2-darkweb.mp3
|
||||
audio: /assets/albums/darkweb/2-darkweb.mp3
|
||||
slug: darkweb/2-darkweb
|
||||
albumSlug: darkweb
|
||||
trackSlug: 2-darkweb
|
||||
coverPath: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/2-darkweb.jpeg
|
||||
cover: /assets/albums/darkweb/2-darkweb.jpeg
|
||||
format:
|
||||
tagTypes:
|
||||
- ID3v2.3
|
||||
trackInfo: []
|
||||
lossless: false
|
||||
container: MPEG
|
||||
codec: MPEG 1 Layer 3
|
||||
sampleRate: 44100
|
||||
numberOfChannels: 2
|
||||
bitrate: 128000
|
||||
codecProfile: CBR
|
||||
numberOfSamples: 12566016
|
||||
duration: 284.94367346938776
|
||||
native:
|
||||
ID3v2.3:
|
||||
- id: TIT2
|
||||
value: Darkweb
|
||||
- id: TPE1
|
||||
value: 徒 Setto セット
|
||||
- id: COMM
|
||||
value:
|
||||
language: XXX
|
||||
description: Comment
|
||||
text: >-
|
||||
Cover art by Mattias Ritarn Lindström, Music by
|
||||
To Setto Setto
|
||||
- id: TALB
|
||||
value: Darkweb
|
||||
- id: TRCK
|
||||
value: '2'
|
||||
- id: TPE2
|
||||
value: 徒 Setto セット
|
||||
- id: COMM
|
||||
value:
|
||||
language: XXX
|
||||
description: UNSYNCEDLYRICS
|
||||
text: "Y'en a mare de ce web\r\nIl est tout pourri\r\nOn peu plus rien y faire\r\nSeulement pousser des cris\r\nQue personne va entendre\r\nSi t'as pas mille amis\r\nTa home-page va se pendre\r\nPerdu le goût de la vie\r\nEnvois ton Paypal\r\nJ'vais lui faire un refus\r\nAjoute-moi en ami\r\nTu vas kiffer mon flux\r\nViens pas faire ton vieux troll\r\nRien a foutre de toi\r\nT’écris de belles paroles\r\nRien à foutre de toi\r\nPuis au fond de ce noire\r\nJe vois un rayon\r\nUn programme provisoire\r\nPour poser mes sillons\r\nY a une communauté\r\nDe gens mal intégrés\r\nIl sont tous comme moi\r\nMais encore plus tarés\r\nProtocole anonyme\r\nConnexion en chiffré\r\nP2P solidaire\r\nConnexion certifiée\r\nLittéraire digital\r\nTu vas aussi kiffer\r\nÇa s'appelle le Darkweb\r\nTu vas aussi kiffer\r\n\r\nFacegoogle aux gogues\r\nY a plus que des conneries\r\nPropagande démagogue\r\nPetits chats tous mimis\r\nMais c'est quoi cette shit\r\nÇa veut plus rien dire\r\nLes keums envoient leurs bites\r\nComme si elles allaient applaudir\r\nNon! C'est trop con\r\nJe veux pas participer\r\nMais si je joue pas le jeux\r\nJe vais être abandonné\r\nPlus personne entendra\r\nTout ce que j'ai à crier\r\nPlus personne ne lira\r\nTout ce que j'ai à crier\r\nPuis au bout du tunnel\r\nJe vois une lueur étrange\r\nCelle d'un réseau fermé\r\nQui reste ouvert au strange\r\nUn lieu virtuel\r\nUne cité idéelle\r\nUne banque de données\r\nPour les mal intégrés\r\nJe peux y être qui je veux\r\nUn antichrist bien pleb\r\nAvoir beaucoup de cheveux\r\nUn intello du Zagreb\r\nT'as besoin d'faire entendre\r\nTu vas aussi kiffer\r\nLa clef tu peux la prendre\r\nTu vas aussi kiffer"
|
||||
- id: TCON
|
||||
value: Cypher Rap
|
||||
- id: TYER
|
||||
value: '2019'
|
||||
quality:
|
||||
warnings: []
|
||||
common:
|
||||
track:
|
||||
'no': 2
|
||||
of: null
|
||||
disk:
|
||||
'no': null
|
||||
of: null
|
||||
title: Darkweb
|
||||
artists:
|
||||
- 徒 Setto セット
|
||||
artist: 徒 Setto セット
|
||||
comment:
|
||||
- >-
|
||||
Cover art by Mattias Ritarn Lindström, Music by
|
||||
To Setto Setto
|
||||
- "Y'en a mare de ce web\r\nIl est tout pourri\r\nOn peu plus rien y faire\r\nSeulement pousser des cris\r\nQue personne va entendre\r\nSi t'as pas mille amis\r\nTa home-page va se pendre\r\nPerdu le goût de la vie\r\nEnvois ton Paypal\r\nJ'vais lui faire un refus\r\nAjoute-moi en ami\r\nTu vas kiffer mon flux\r\nViens pas faire ton vieux troll\r\nRien a foutre de toi\r\nT’écris de belles paroles\r\nRien à foutre de toi\r\nPuis au fond de ce noire\r\nJe vois un rayon\r\nUn programme provisoire\r\nPour poser mes sillons\r\nY a une communauté\r\nDe gens mal intégrés\r\nIl sont tous comme moi\r\nMais encore plus tarés\r\nProtocole anonyme\r\nConnexion en chiffré\r\nP2P solidaire\r\nConnexion certifiée\r\nLittéraire digital\r\nTu vas aussi kiffer\r\nÇa s'appelle le Darkweb\r\nTu vas aussi kiffer\r\n\r\nFacegoogle aux gogues\r\nY a plus que des conneries\r\nPropagande démagogue\r\nPetits chats tous mimis\r\nMais c'est quoi cette shit\r\nÇa veut plus rien dire\r\nLes keums envoient leurs bites\r\nComme si elles allaient applaudir\r\nNon! C'est trop con\r\nJe veux pas participer\r\nMais si je joue pas le jeux\r\nJe vais être abandonné\r\nPlus personne entendra\r\nTout ce que j'ai à crier\r\nPlus personne ne lira\r\nTout ce que j'ai à crier\r\nPuis au bout du tunnel\r\nJe vois une lueur étrange\r\nCelle d'un réseau fermé\r\nQui reste ouvert au strange\r\nUn lieu virtuel\r\nUne cité idéelle\r\nUne banque de données\r\nPour les mal intégrés\r\nJe peux y être qui je veux\r\nUn antichrist bien pleb\r\nAvoir beaucoup de cheveux\r\nUn intello du Zagreb\r\nT'as besoin d'faire entendre\r\nTu vas aussi kiffer\r\nLa clef tu peux la prendre\r\nTu vas aussi kiffer"
|
||||
album: Darkweb
|
||||
albumartist: 徒 Setto セット
|
||||
genre:
|
||||
- Cypher Rap
|
||||
year: 2019
|
||||
transformed:
|
||||
ID3v2.3:
|
||||
TIT2: Darkweb
|
||||
TPE1: 徒 Setto セット
|
||||
Comment: >-
|
||||
Cover art by Mattias Ritarn Lindström, Music by
|
||||
To Setto Setto
|
||||
TALB: Darkweb
|
||||
TRCK: '2'
|
||||
TPE2: 徒 Setto セット
|
||||
UNSYNCEDLYRICS: "Y'en a mare de ce web\r\nIl est tout pourri\r\nOn peu plus rien y faire\r\nSeulement pousser des cris\r\nQue personne va entendre\r\nSi t'as pas mille amis\r\nTa home-page va se pendre\r\nPerdu le goût de la vie\r\nEnvois ton Paypal\r\nJ'vais lui faire un refus\r\nAjoute-moi en ami\r\nTu vas kiffer mon flux\r\nViens pas faire ton vieux troll\r\nRien a foutre de toi\r\nT’écris de belles paroles\r\nRien à foutre de toi\r\nPuis au fond de ce noire\r\nJe vois un rayon\r\nUn programme provisoire\r\nPour poser mes sillons\r\nY a une communauté\r\nDe gens mal intégrés\r\nIl sont tous comme moi\r\nMais encore plus tarés\r\nProtocole anonyme\r\nConnexion en chiffré\r\nP2P solidaire\r\nConnexion certifiée\r\nLittéraire digital\r\nTu vas aussi kiffer\r\nÇa s'appelle le Darkweb\r\nTu vas aussi kiffer\r\n\r\nFacegoogle aux gogues\r\nY a plus que des conneries\r\nPropagande démagogue\r\nPetits chats tous mimis\r\nMais c'est quoi cette shit\r\nÇa veut plus rien dire\r\nLes keums envoient leurs bites\r\nComme si elles allaient applaudir\r\nNon! C'est trop con\r\nJe veux pas participer\r\nMais si je joue pas le jeux\r\nJe vais être abandonné\r\nPlus personne entendra\r\nTout ce que j'ai à crier\r\nPlus personne ne lira\r\nTout ce que j'ai à crier\r\nPuis au bout du tunnel\r\nJe vois une lueur étrange\r\nCelle d'un réseau fermé\r\nQui reste ouvert au strange\r\nUn lieu virtuel\r\nUne cité idéelle\r\nUne banque de données\r\nPour les mal intégrés\r\nJe peux y être qui je veux\r\nUn antichrist bien pleb\r\nAvoir beaucoup de cheveux\r\nUn intello du Zagreb\r\nT'as besoin d'faire entendre\r\nTu vas aussi kiffer\r\nLa clef tu peux la prendre\r\nTu vas aussi kiffer"
|
||||
TCON: Cypher Rap
|
||||
TYER: '2019'
|
||||
all:
|
||||
TIT2: Darkweb
|
||||
TPE1: 徒 Setto セット
|
||||
Comment: 'Cover art by Mattias Ritarn Lindström, Music by To Setto Setto'
|
||||
TALB: Darkweb
|
||||
TRCK: '2'
|
||||
TPE2: 徒 Setto セット
|
||||
UNSYNCEDLYRICS: "Y'en a mare de ce web\r\nIl est tout pourri\r\nOn peu plus rien y faire\r\nSeulement pousser des cris\r\nQue personne va entendre\r\nSi t'as pas mille amis\r\nTa home-page va se pendre\r\nPerdu le goût de la vie\r\nEnvois ton Paypal\r\nJ'vais lui faire un refus\r\nAjoute-moi en ami\r\nTu vas kiffer mon flux\r\nViens pas faire ton vieux troll\r\nRien a foutre de toi\r\nT’écris de belles paroles\r\nRien à foutre de toi\r\nPuis au fond de ce noire\r\nJe vois un rayon\r\nUn programme provisoire\r\nPour poser mes sillons\r\nY a une communauté\r\nDe gens mal intégrés\r\nIl sont tous comme moi\r\nMais encore plus tarés\r\nProtocole anonyme\r\nConnexion en chiffré\r\nP2P solidaire\r\nConnexion certifiée\r\nLittéraire digital\r\nTu vas aussi kiffer\r\nÇa s'appelle le Darkweb\r\nTu vas aussi kiffer\r\n\r\nFacegoogle aux gogues\r\nY a plus que des conneries\r\nPropagande démagogue\r\nPetits chats tous mimis\r\nMais c'est quoi cette shit\r\nÇa veut plus rien dire\r\nLes keums envoient leurs bites\r\nComme si elles allaient applaudir\r\nNon! C'est trop con\r\nJe veux pas participer\r\nMais si je joue pas le jeux\r\nJe vais être abandonné\r\nPlus personne entendra\r\nTout ce que j'ai à crier\r\nPlus personne ne lira\r\nTout ce que j'ai à crier\r\nPuis au bout du tunnel\r\nJe vois une lueur étrange\r\nCelle d'un réseau fermé\r\nQui reste ouvert au strange\r\nUn lieu virtuel\r\nUne cité idéelle\r\nUne banque de données\r\nPour les mal intégrés\r\nJe peux y être qui je veux\r\nUn antichrist bien pleb\r\nAvoir beaucoup de cheveux\r\nUn intello du Zagreb\r\nT'as besoin d'faire entendre\r\nTu vas aussi kiffer\r\nLa clef tu peux la prendre\r\nTu vas aussi kiffer"
|
||||
TCON: Cypher Rap
|
||||
TYER: '2019'
|
||||
- path: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/3-swipe-instrumental-.mp3
|
||||
audio: /assets/albums/darkweb/3-swipe-instrumental-.mp3
|
||||
slug: darkweb/3-swipe-instrumental-
|
||||
albumSlug: darkweb
|
||||
trackSlug: 3-swipe-instrumental-
|
||||
coverPath: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/3-swipe-instrumental-.jpeg
|
||||
cover: /assets/albums/darkweb/3-swipe-instrumental-.jpeg
|
||||
format:
|
||||
tagTypes:
|
||||
- ID3v2.3
|
||||
trackInfo: []
|
||||
lossless: false
|
||||
container: MPEG
|
||||
codec: MPEG 1 Layer 3
|
||||
sampleRate: 44100
|
||||
numberOfChannels: 2
|
||||
bitrate: 128000
|
||||
codecProfile: CBR
|
||||
numberOfSamples: 12436992
|
||||
duration: 282.0179591836735
|
||||
native:
|
||||
ID3v2.3:
|
||||
- id: TIT2
|
||||
value: Swipe (Instrumental)
|
||||
- id: TPE1
|
||||
value: 徒 Setto セット
|
||||
- id: COMM
|
||||
value:
|
||||
language: XXX
|
||||
description: Comment
|
||||
text: >-
|
||||
Cover art by Mattias Ritarn Lindström, Music by
|
||||
To Setto Setto
|
||||
- id: TALB
|
||||
value: Darkweb
|
||||
- id: TRCK
|
||||
value: '3'
|
||||
- id: TPE2
|
||||
value: 徒 Setto セット
|
||||
- id: TCON
|
||||
value: Cyber Soul
|
||||
- id: TYER
|
||||
value: '2019'
|
||||
quality:
|
||||
warnings:
|
||||
- message: Illegal ID3v2 tag length
|
||||
common:
|
||||
track:
|
||||
'no': 3
|
||||
of: null
|
||||
disk:
|
||||
'no': null
|
||||
of: null
|
||||
title: Swipe (Instrumental)
|
||||
artists:
|
||||
- 徒 Setto セット
|
||||
artist: 徒 Setto セット
|
||||
comment:
|
||||
- >-
|
||||
Cover art by Mattias Ritarn Lindström, Music by
|
||||
To Setto Setto
|
||||
album: Darkweb
|
||||
albumartist: 徒 Setto セット
|
||||
genre:
|
||||
- Cyber Soul
|
||||
year: 2019
|
||||
transformed:
|
||||
ID3v2.3:
|
||||
TIT2: Swipe (Instrumental)
|
||||
TPE1: 徒 Setto セット
|
||||
Comment: >-
|
||||
Cover art by Mattias Ritarn Lindström, Music by
|
||||
To Setto Setto
|
||||
TALB: Darkweb
|
||||
TRCK: '3'
|
||||
TPE2: 徒 Setto セット
|
||||
TCON: Cyber Soul
|
||||
TYER: '2019'
|
||||
all:
|
||||
TIT2: Swipe (Instrumental)
|
||||
TPE1: 徒 Setto セット
|
||||
Comment: 'Cover art by Mattias Ritarn Lindström, Music by To Setto Setto'
|
||||
TALB: Darkweb
|
||||
TRCK: '3'
|
||||
TPE2: 徒 Setto セット
|
||||
TCON: Cyber Soul
|
||||
TYER: '2019'
|
||||
- path: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/4-darkweb-instrumental-.mp3
|
||||
audio: /assets/albums/darkweb/4-darkweb-instrumental-.mp3
|
||||
slug: darkweb/4-darkweb-instrumental-
|
||||
albumSlug: darkweb
|
||||
trackSlug: 4-darkweb-instrumental-
|
||||
coverPath: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/4-darkweb-instrumental-.jpeg
|
||||
cover: /assets/albums/darkweb/4-darkweb-instrumental-.jpeg
|
||||
format:
|
||||
tagTypes:
|
||||
- ID3v2.3
|
||||
trackInfo: []
|
||||
lossless: false
|
||||
container: MPEG
|
||||
codec: MPEG 1 Layer 3
|
||||
sampleRate: 44100
|
||||
numberOfChannels: 2
|
||||
bitrate: 128000
|
||||
codecProfile: CBR
|
||||
numberOfSamples: 12526848
|
||||
duration: 284.05551020408166
|
||||
native:
|
||||
ID3v2.3:
|
||||
- id: TIT2
|
||||
value: Darkweb (Instrumental)
|
||||
- id: TPE1
|
||||
value: 徒 Setto セット
|
||||
- id: COMM
|
||||
value: &ref_0
|
||||
language: XXX
|
||||
description: ''
|
||||
text: ''
|
||||
- id: TALB
|
||||
value: Darkweb
|
||||
- id: TPE2
|
||||
value: 徒 Setto セット
|
||||
- id: TCON
|
||||
value: Cypher Rap
|
||||
- id: TRCK
|
||||
value: '4'
|
||||
- id: COMM
|
||||
value:
|
||||
language: XXX
|
||||
description: Comment
|
||||
text: Cover art and music by To Setto Setto
|
||||
- id: TYER
|
||||
value: '2019'
|
||||
quality:
|
||||
warnings: []
|
||||
common:
|
||||
track:
|
||||
'no': 4
|
||||
of: null
|
||||
disk:
|
||||
'no': null
|
||||
of: null
|
||||
title: Darkweb (Instrumental)
|
||||
artists:
|
||||
- 徒 Setto セット
|
||||
artist: 徒 Setto セット
|
||||
comment:
|
||||
- ''
|
||||
- Cover art and music by To Setto Setto
|
||||
album: Darkweb
|
||||
albumartist: 徒 Setto セット
|
||||
genre:
|
||||
- Cypher Rap
|
||||
year: 2019
|
||||
transformed:
|
||||
ID3v2.3:
|
||||
TIT2: Darkweb (Instrumental)
|
||||
TPE1: 徒 Setto セット
|
||||
COMM: *ref_0
|
||||
TALB: Darkweb
|
||||
TPE2: 徒 Setto セット
|
||||
TCON: Cypher Rap
|
||||
TRCK: '4'
|
||||
Comment: Cover art and music by To Setto Setto
|
||||
TYER: '2019'
|
||||
all:
|
||||
TIT2: Darkweb (Instrumental)
|
||||
TPE1: 徒 Setto セット
|
||||
COMM: *ref_0
|
||||
TALB: Darkweb
|
||||
TPE2: 徒 Setto セット
|
||||
TCON: Cypher Rap
|
||||
TRCK: '4'
|
||||
Comment: Cover art and music by To Setto Setto
|
||||
TYER: '2019'
|
||||
---
|
89
_albums/live-with-hardware.md
Normal file
89
_albums/live-with-hardware.md
Normal file
|
@ -0,0 +1,89 @@
|
|||
---
|
||||
layout: album
|
||||
slug: live-with-hardware
|
||||
name: Live with hardware
|
||||
artists: 徒 Setto セット
|
||||
bitrate: 192000
|
||||
trackCount: 1
|
||||
cover: /assets/albums/live-with-hardware/1-ep-life-of-a-dudelini.jpeg
|
||||
date: 2020-4-20
|
||||
tracks:
|
||||
- path: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/live-with-hardware/1-ep-life-of-a-dudelini.mp3
|
||||
audio: /assets/albums/live-with-hardware/1-ep-life-of-a-dudelini.mp3
|
||||
slug: live-with-hardware/1-ep-life-of-a-dudelini
|
||||
albumSlug: live-with-hardware
|
||||
trackSlug: 1-ep-life-of-a-dudelini
|
||||
coverPath: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/live-with-hardware/1-ep-life-of-a-dudelini.jpeg
|
||||
cover: /assets/albums/live-with-hardware/1-ep-life-of-a-dudelini.jpeg
|
||||
format:
|
||||
tagTypes:
|
||||
- ID3v2.4
|
||||
trackInfo: []
|
||||
lossless: false
|
||||
container: MPEG
|
||||
codec: MPEG 1 Layer 3
|
||||
sampleRate: 48000
|
||||
numberOfChannels: 2
|
||||
bitrate: 192000
|
||||
codecProfile: CBR
|
||||
tool: LAME3.100
|
||||
duration: 683.472
|
||||
native:
|
||||
ID3v2.4:
|
||||
- id: TIT2
|
||||
value: EP-Life of a Dudelini
|
||||
- id: TPE1
|
||||
value: 徒 Setto セット
|
||||
- id: TALB
|
||||
value: Live with hardware
|
||||
- id: COMM
|
||||
value: &ref_0
|
||||
language: eng
|
||||
description: ''
|
||||
text: Live take
|
||||
- id: TDRC
|
||||
value: '2020-04-20'
|
||||
- id: TRCK
|
||||
value: '1'
|
||||
- id: TCON
|
||||
value: Cybersoul
|
||||
quality:
|
||||
warnings: []
|
||||
common:
|
||||
track:
|
||||
'no': 1
|
||||
of: null
|
||||
disk:
|
||||
'no': null
|
||||
of: null
|
||||
title: EP-Life of a Dudelini
|
||||
artists:
|
||||
- 徒 Setto セット
|
||||
artist: 徒 Setto セット
|
||||
album: Live with hardware
|
||||
comment:
|
||||
- Live take
|
||||
year: 2020
|
||||
date: '2020-04-20'
|
||||
genre:
|
||||
- Cybersoul
|
||||
transformed:
|
||||
ID3v2.4:
|
||||
TIT2: EP-Life of a Dudelini
|
||||
TPE1: 徒 Setto セット
|
||||
TALB: Live with hardware
|
||||
COMM: *ref_0
|
||||
TDRC: '2020-04-20'
|
||||
TRCK: '1'
|
||||
TCON: Cybersoul
|
||||
all:
|
||||
TIT2: EP-Life of a Dudelini
|
||||
TPE1: 徒 Setto セット
|
||||
TALB: Live with hardware
|
||||
COMM: *ref_0
|
||||
TDRC: '2020-04-20'
|
||||
TRCK: '1'
|
||||
TCON: Cybersoul
|
||||
---
|
191
_albums/satoshi-mon-ami.md
Normal file
191
_albums/satoshi-mon-ami.md
Normal file
|
@ -0,0 +1,191 @@
|
|||
---
|
||||
layout: album
|
||||
slug: satoshi-mon-ami
|
||||
name: Satoshi mon ami
|
||||
artists: 徒 Setto セット
|
||||
bitrate: 128000
|
||||
trackCount: 2
|
||||
cover: /assets/albums/satoshi-mon-ami/1-k-as-tu-fait-de-nous-.jpeg
|
||||
date: 2018-1-1
|
||||
tracks:
|
||||
- path: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/satoshi-mon-ami/1-k-as-tu-fait-de-nous-.mp3
|
||||
audio: /assets/albums/satoshi-mon-ami/1-k-as-tu-fait-de-nous-.mp3
|
||||
slug: satoshi-mon-ami/1-k-as-tu-fait-de-nous-
|
||||
albumSlug: satoshi-mon-ami
|
||||
trackSlug: 1-k-as-tu-fait-de-nous-
|
||||
coverPath: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/satoshi-mon-ami/1-k-as-tu-fait-de-nous-.jpeg
|
||||
cover: /assets/albums/satoshi-mon-ami/1-k-as-tu-fait-de-nous-.jpeg
|
||||
format:
|
||||
tagTypes:
|
||||
- ID3v2.3
|
||||
trackInfo: []
|
||||
lossless: false
|
||||
container: MPEG
|
||||
codec: MPEG 1 Layer 3
|
||||
sampleRate: 44100
|
||||
numberOfChannels: 2
|
||||
bitrate: 128000
|
||||
codecProfile: CBR
|
||||
numberOfSamples: 13433472
|
||||
duration: 304.6138775510204
|
||||
native:
|
||||
ID3v2.3:
|
||||
- id: TIT2
|
||||
value: K'as-tu fait de nous?
|
||||
- id: TPE1
|
||||
value: 徒 Setto セット
|
||||
- id: COMM
|
||||
value: &ref_0
|
||||
language: XXX
|
||||
description: ''
|
||||
text: Cover art and music by To Setto Setto
|
||||
- id: TALB
|
||||
value: Satoshi mon ami
|
||||
- id: TRCK
|
||||
value: '1'
|
||||
- id: TPE2
|
||||
value: 徒 Setto セット
|
||||
- id: COMM
|
||||
value:
|
||||
language: XXX
|
||||
description: UNSYNCEDLYRICS
|
||||
text: "Qu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\n\r\nAcid est la tribe\r\nCyberpunk le game\r\nSur des reseau de bribe\r\non fait monter le fame\r\nMeme pas besoin de files\r\nIsole sur l'iles\r\non fait un tour au grotte\r\npour pas que la story capotte\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\n\r\nSi la police nous ajoute\r\nNouvelle vie nouveau compte\r\nOn tourne le dos au toute\r\non delete sans honte\r\nMeme pas besoin d'ecrire\r\ntu peux mäentendre rire\r\nen tour de face a face\r\nQui brise la glace\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\n\r\n24 heures pour dechiffre\r\nOn dirait une invitation\r\nLa story que t'as balancer\r\nCryptokids une seul nation\r\ncelle des rave et du reve\r\nHilife a plein poumons\r\nLe flux n'as pas de treve\r\nEt en suede il mange du saumon\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou"
|
||||
- id: TCON
|
||||
value: Cyber Soul
|
||||
- id: TYER
|
||||
value: '2018'
|
||||
quality:
|
||||
warnings: []
|
||||
common:
|
||||
track:
|
||||
'no': 1
|
||||
of: null
|
||||
disk:
|
||||
'no': null
|
||||
of: null
|
||||
title: K'as-tu fait de nous?
|
||||
artists:
|
||||
- 徒 Setto セット
|
||||
artist: 徒 Setto セット
|
||||
comment:
|
||||
- Cover art and music by To Setto Setto
|
||||
- "Qu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\n\r\nAcid est la tribe\r\nCyberpunk le game\r\nSur des reseau de bribe\r\non fait monter le fame\r\nMeme pas besoin de files\r\nIsole sur l'iles\r\non fait un tour au grotte\r\npour pas que la story capotte\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\n\r\nSi la police nous ajoute\r\nNouvelle vie nouveau compte\r\nOn tourne le dos au toute\r\non delete sans honte\r\nMeme pas besoin d'ecrire\r\ntu peux mäentendre rire\r\nen tour de face a face\r\nQui brise la glace\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\n\r\n24 heures pour dechiffre\r\nOn dirait une invitation\r\nLa story que t'as balancer\r\nCryptokids une seul nation\r\ncelle des rave et du reve\r\nHilife a plein poumons\r\nLe flux n'as pas de treve\r\nEt en suede il mange du saumon\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou"
|
||||
album: Satoshi mon ami
|
||||
albumartist: 徒 Setto セット
|
||||
genre:
|
||||
- Cyber Soul
|
||||
year: 2018
|
||||
transformed:
|
||||
ID3v2.3:
|
||||
TIT2: K'as-tu fait de nous?
|
||||
TPE1: 徒 Setto セット
|
||||
COMM: *ref_0
|
||||
TALB: Satoshi mon ami
|
||||
TRCK: '1'
|
||||
TPE2: 徒 Setto セット
|
||||
UNSYNCEDLYRICS: "Qu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\n\r\nAcid est la tribe\r\nCyberpunk le game\r\nSur des reseau de bribe\r\non fait monter le fame\r\nMeme pas besoin de files\r\nIsole sur l'iles\r\non fait un tour au grotte\r\npour pas que la story capotte\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\n\r\nSi la police nous ajoute\r\nNouvelle vie nouveau compte\r\nOn tourne le dos au toute\r\non delete sans honte\r\nMeme pas besoin d'ecrire\r\ntu peux mäentendre rire\r\nen tour de face a face\r\nQui brise la glace\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\n\r\n24 heures pour dechiffre\r\nOn dirait une invitation\r\nLa story que t'as balancer\r\nCryptokids une seul nation\r\ncelle des rave et du reve\r\nHilife a plein poumons\r\nLe flux n'as pas de treve\r\nEt en suede il mange du saumon\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou"
|
||||
TCON: Cyber Soul
|
||||
TYER: '2018'
|
||||
all:
|
||||
TIT2: K'as-tu fait de nous?
|
||||
TPE1: 徒 Setto セット
|
||||
COMM: *ref_0
|
||||
TALB: Satoshi mon ami
|
||||
TRCK: '1'
|
||||
TPE2: 徒 Setto セット
|
||||
UNSYNCEDLYRICS: "Qu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\n\r\nAcid est la tribe\r\nCyberpunk le game\r\nSur des reseau de bribe\r\non fait monter le fame\r\nMeme pas besoin de files\r\nIsole sur l'iles\r\non fait un tour au grotte\r\npour pas que la story capotte\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\n\r\nSi la police nous ajoute\r\nNouvelle vie nouveau compte\r\nOn tourne le dos au toute\r\non delete sans honte\r\nMeme pas besoin d'ecrire\r\ntu peux mäentendre rire\r\nen tour de face a face\r\nQui brise la glace\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\n\r\n24 heures pour dechiffre\r\nOn dirait une invitation\r\nLa story que t'as balancer\r\nCryptokids une seul nation\r\ncelle des rave et du reve\r\nHilife a plein poumons\r\nLe flux n'as pas de treve\r\nEt en suede il mange du saumon\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou"
|
||||
TCON: Cyber Soul
|
||||
TYER: '2018'
|
||||
- path: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/satoshi-mon-ami/2-r-ve-de-toi.mp3
|
||||
audio: /assets/albums/satoshi-mon-ami/2-r-ve-de-toi.mp3
|
||||
slug: satoshi-mon-ami/2-r-ve-de-toi
|
||||
albumSlug: satoshi-mon-ami
|
||||
trackSlug: 2-r-ve-de-toi
|
||||
coverPath: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/satoshi-mon-ami/2-r-ve-de-toi.jpeg
|
||||
cover: /assets/albums/satoshi-mon-ami/2-r-ve-de-toi.jpeg
|
||||
format:
|
||||
tagTypes:
|
||||
- ID3v2.3
|
||||
trackInfo: []
|
||||
lossless: false
|
||||
container: MPEG
|
||||
codec: MPEG 1 Layer 3
|
||||
sampleRate: 44100
|
||||
numberOfChannels: 2
|
||||
bitrate: 128000
|
||||
codecProfile: CBR
|
||||
numberOfSamples: 8195328
|
||||
duration: 185.83510204081634
|
||||
native:
|
||||
ID3v2.3:
|
||||
- id: TIT2
|
||||
value: Rêve de toi
|
||||
- id: TPE1
|
||||
value: 徒 Setto セット
|
||||
- id: COMM
|
||||
value: &ref_1
|
||||
language: XXX
|
||||
description: ''
|
||||
text: Cover art and music by To Setto Setto
|
||||
- id: TALB
|
||||
value: Satoshi mon ami
|
||||
- id: TRCK
|
||||
value: '2'
|
||||
- id: TPE2
|
||||
value: 徒 Setto セット
|
||||
- id: COMM
|
||||
value:
|
||||
language: XXX
|
||||
description: UNSYNCEDLYRICS
|
||||
text: "Je rêve de toi\r\nChaque jour je te vois\r\nJe fais pas de faux pas\r\nToujours des commentaires sympas\r\n\r\nTa vie est belle\r\nÇa se voit sur les cocotiers\r\nMais mon label\r\nNe pourras pas me déployer\r\n\r\nUne fois, chaque fois, que mon téléphone\r\nS’allume, s’éclaire, sonne le vibraphone\r\nJ’espère, c'est claire, que c'est la bonne\r\nFois en moi, mais cette fois, ce n'est pas toi\r\n\r\nJ'ajoute des cœurs\r\nA tous les poste que tu publies\r\nJ’envoie des merdes\r\nA tous les cons qui t'humilient\r\n\r\nTa vie radieuse\r\nIllumine mes après-midi\r\nQuand je me lève\r\nAprès avoir perdu encore une nuit\r\n\r\nUne fois, chaque fois, que mon téléphone\r\nS’allume, s’éclaire, sonne le vibraphone\r\nJ’espère, c'est claire, que c'est la bonne\r\nFois en moi, mais cette fois, toujours pas toi"
|
||||
- id: TCON
|
||||
value: Cyber Soul
|
||||
- id: TYER
|
||||
value: '2018'
|
||||
quality:
|
||||
warnings: []
|
||||
common:
|
||||
track:
|
||||
'no': 2
|
||||
of: null
|
||||
disk:
|
||||
'no': null
|
||||
of: null
|
||||
title: Rêve de toi
|
||||
artists:
|
||||
- 徒 Setto セット
|
||||
artist: 徒 Setto セット
|
||||
comment:
|
||||
- Cover art and music by To Setto Setto
|
||||
- "Je rêve de toi\r\nChaque jour je te vois\r\nJe fais pas de faux pas\r\nToujours des commentaires sympas\r\n\r\nTa vie est belle\r\nÇa se voit sur les cocotiers\r\nMais mon label\r\nNe pourras pas me déployer\r\n\r\nUne fois, chaque fois, que mon téléphone\r\nS’allume, s’éclaire, sonne le vibraphone\r\nJ’espère, c'est claire, que c'est la bonne\r\nFois en moi, mais cette fois, ce n'est pas toi\r\n\r\nJ'ajoute des cœurs\r\nA tous les poste que tu publies\r\nJ’envoie des merdes\r\nA tous les cons qui t'humilient\r\n\r\nTa vie radieuse\r\nIllumine mes après-midi\r\nQuand je me lève\r\nAprès avoir perdu encore une nuit\r\n\r\nUne fois, chaque fois, que mon téléphone\r\nS’allume, s’éclaire, sonne le vibraphone\r\nJ’espère, c'est claire, que c'est la bonne\r\nFois en moi, mais cette fois, toujours pas toi"
|
||||
album: Satoshi mon ami
|
||||
albumartist: 徒 Setto セット
|
||||
genre:
|
||||
- Cyber Soul
|
||||
year: 2018
|
||||
transformed:
|
||||
ID3v2.3:
|
||||
TIT2: Rêve de toi
|
||||
TPE1: 徒 Setto セット
|
||||
COMM: *ref_1
|
||||
TALB: Satoshi mon ami
|
||||
TRCK: '2'
|
||||
TPE2: 徒 Setto セット
|
||||
UNSYNCEDLYRICS: "Je rêve de toi\r\nChaque jour je te vois\r\nJe fais pas de faux pas\r\nToujours des commentaires sympas\r\n\r\nTa vie est belle\r\nÇa se voit sur les cocotiers\r\nMais mon label\r\nNe pourras pas me déployer\r\n\r\nUne fois, chaque fois, que mon téléphone\r\nS’allume, s’éclaire, sonne le vibraphone\r\nJ’espère, c'est claire, que c'est la bonne\r\nFois en moi, mais cette fois, ce n'est pas toi\r\n\r\nJ'ajoute des cœurs\r\nA tous les poste que tu publies\r\nJ’envoie des merdes\r\nA tous les cons qui t'humilient\r\n\r\nTa vie radieuse\r\nIllumine mes après-midi\r\nQuand je me lève\r\nAprès avoir perdu encore une nuit\r\n\r\nUne fois, chaque fois, que mon téléphone\r\nS’allume, s’éclaire, sonne le vibraphone\r\nJ’espère, c'est claire, que c'est la bonne\r\nFois en moi, mais cette fois, toujours pas toi"
|
||||
TCON: Cyber Soul
|
||||
TYER: '2018'
|
||||
all:
|
||||
TIT2: Rêve de toi
|
||||
TPE1: 徒 Setto セット
|
||||
COMM: *ref_1
|
||||
TALB: Satoshi mon ami
|
||||
TRCK: '2'
|
||||
TPE2: 徒 Setto セット
|
||||
UNSYNCEDLYRICS: "Je rêve de toi\r\nChaque jour je te vois\r\nJe fais pas de faux pas\r\nToujours des commentaires sympas\r\n\r\nTa vie est belle\r\nÇa se voit sur les cocotiers\r\nMais mon label\r\nNe pourras pas me déployer\r\n\r\nUne fois, chaque fois, que mon téléphone\r\nS’allume, s’éclaire, sonne le vibraphone\r\nJ’espère, c'est claire, que c'est la bonne\r\nFois en moi, mais cette fois, ce n'est pas toi\r\n\r\nJ'ajoute des cœurs\r\nA tous les poste que tu publies\r\nJ’envoie des merdes\r\nA tous les cons qui t'humilient\r\n\r\nTa vie radieuse\r\nIllumine mes après-midi\r\nQuand je me lève\r\nAprès avoir perdu encore une nuit\r\n\r\nUne fois, chaque fois, que mon téléphone\r\nS’allume, s’éclaire, sonne le vibraphone\r\nJ’espère, c'est claire, que c'est la bonne\r\nFois en moi, mais cette fois, toujours pas toi"
|
||||
TCON: Cyber Soul
|
||||
TYER: '2018'
|
||||
---
|
9
_authors/_defaults.md
Normal file
9
_authors/_defaults.md
Normal file
|
@ -0,0 +1,9 @@
|
|||
---
|
||||
name:
|
||||
position:
|
||||
image:
|
||||
url_staff:
|
||||
email:
|
||||
gpg:
|
||||
blurb_markup:
|
||||
---
|
9
_authors/setto.md
Normal file
9
_authors/setto.md
Normal file
|
@ -0,0 +1,9 @@
|
|||
---
|
||||
name: 徒 setto セット
|
||||
position: 'Geek'
|
||||
image: /siteicon.png
|
||||
url_staff: 'https://setto.basspistol.com'
|
||||
email: 'setto@basspistol.com'
|
||||
gpg: 'https://keyserver.ubuntu.com/pks/lookup?search=setto%40basspistol.com&fingerprint=on&op=index'
|
||||
blurb_markup: 'Set, Party, Gang'
|
||||
---
|
118
_config.yml
Normal file
118
_config.yml
Normal file
|
@ -0,0 +1,118 @@
|
|||
url: "https://setto.basspistol.com" # the base hostname & protocol for your site
|
||||
permalink: /:categories/:title/
|
||||
|
||||
exclude:
|
||||
- changelog.md
|
||||
- '*.*~'
|
||||
- '*.xcf'
|
||||
- '*.blend*'
|
||||
- Gemfile
|
||||
- Gemfile.lock
|
||||
- README.md
|
||||
- LICENCE
|
||||
|
||||
title : 徒 setto セット
|
||||
description: 'Set, Party, Gang! #Cybersoul.'
|
||||
geo:
|
||||
timezone: "Europe/Switzerland"
|
||||
lat: '46.203918'
|
||||
long: '6.133011'
|
||||
region: 'CH-GE'
|
||||
town: 'Geneva'
|
||||
country: 'Switzerland'
|
||||
postalcode: '1201'
|
||||
|
||||
banner: /images/setto-logo.svg
|
||||
icon: /images/setto-logoicon.svg
|
||||
logo: /images/setto-logo.svg
|
||||
logo-footer: /images/setto-logo-dark.svg
|
||||
mediaurl: https://media.basspistol.com/setto.basspistol.com
|
||||
|
||||
publisher:
|
||||
name: To Setto Setto
|
||||
domain: setto.basspistol.com
|
||||
mail: setto@basspistol.com
|
||||
social:
|
||||
name: To Setto Setto
|
||||
links:
|
||||
- https://twitter.com/ToSettoSetto
|
||||
- https://instagram.com/ToSettoSetto
|
||||
|
||||
categories:
|
||||
- releases
|
||||
- ramblings
|
||||
|
||||
collections:
|
||||
albums:
|
||||
output: false
|
||||
permalink: /albums/:name/
|
||||
tracks:
|
||||
output: true
|
||||
permalink: /albums/:path/
|
||||
authors:
|
||||
output: false
|
||||
|
||||
# defaults
|
||||
|
||||
sass:
|
||||
sass_dir: _sass
|
||||
|
||||
defaults:
|
||||
- scope:
|
||||
path: ""
|
||||
values:
|
||||
lang: en
|
||||
- scope:
|
||||
path: ""
|
||||
type: "tracks"
|
||||
values:
|
||||
layout: "track"
|
||||
lang: en
|
||||
seo:
|
||||
type: "AudioObject"
|
||||
- scope:
|
||||
path: ""
|
||||
type: "albums"
|
||||
values:
|
||||
layout: "album"
|
||||
lang: en
|
||||
seo:
|
||||
type: "AudioObject"
|
||||
- scope:
|
||||
path: ""
|
||||
type: "pages"
|
||||
values:
|
||||
layout: "default"
|
||||
lang: en
|
||||
_options:
|
||||
image:
|
||||
width: 1024
|
||||
height: 720
|
||||
resize_style: cover
|
||||
uploads_dir: "/images/pages"
|
||||
content:
|
||||
width: 720
|
||||
height: 720
|
||||
resize_style: cover
|
||||
uploads_dir: "/images/pages"
|
||||
- scope:
|
||||
path: ""
|
||||
type: "posts"
|
||||
values:
|
||||
layout: "post"
|
||||
lang: en
|
||||
permalink: /:title/
|
||||
_options:
|
||||
image:
|
||||
width: 1024
|
||||
height: 720
|
||||
resize_style: cover
|
||||
uploads_dir: "/images/posts"
|
||||
content:
|
||||
width: 720
|
||||
height: 720
|
||||
resize_style: cover
|
||||
uploads_dir: "/images/posts"
|
||||
# ---------
|
||||
# Translate
|
||||
lang: en
|
1045
_data/albums.yml
Normal file
1045
_data/albums.yml
Normal file
File diff suppressed because it is too large
Load diff
44
_data/links.yml
Normal file
44
_data/links.yml
Normal file
|
@ -0,0 +1,44 @@
|
|||
- title: Good Karma Records
|
||||
url: http://www.goodkarma.ru
|
||||
banner:
|
||||
image: /assets/img/linkbanners/goodkarma%20copy.banner.png
|
||||
- title: Villamagica Records
|
||||
url: https://villamagica.bandcamp.com/
|
||||
banner:
|
||||
image: /assets/img/linkbanners/VILLAMAGICAREBOOT99XX%20copy.banner.png
|
||||
- title: Finsta
|
||||
url: https://www.finstafari.com
|
||||
banner:
|
||||
image: /assets/img/linkbanners/finsta.gif
|
||||
- title: Camera X
|
||||
url: http://www.camerax.tv/
|
||||
banner:
|
||||
image: /assets/img/linkbanners/graphstyle2011_logo_small6_1.png
|
||||
- title: Alex Understands
|
||||
url: https://www.alexunderstands.com/
|
||||
banner:
|
||||
image: /assets/img/linkbanners/alexunderstands.png
|
||||
- title: Basspistol
|
||||
url: https://basspistol.com
|
||||
banner:
|
||||
image: /assets/img/linkbanners/basspistol_logo3_1mini.png
|
||||
- title: Alsenet
|
||||
url: http://www.alsenet.com/
|
||||
banner:
|
||||
image: /assets/img/linkbanners/logo-alsenet.png
|
||||
- title: Linux Audio
|
||||
url: https://www.linuxaudio.org/
|
||||
banner:
|
||||
image: /assets/img/linkbanners/linuxaudio.png
|
||||
- title: Ubuntu Studio
|
||||
url: http://www.ubuntustudio.org/
|
||||
banner:
|
||||
image: /assets/img/linkbanners/us-logo.png
|
||||
- title: Rasta Soft
|
||||
url: https://rastasoft.org/
|
||||
banner:
|
||||
image: /assets/img/linkbanners/rastalion.jpg
|
||||
- title: Dyne
|
||||
url: https://www.dyne.org/
|
||||
banner:
|
||||
image: /assets/img/linkbanners/moebius-band.png
|
17
_data/navigation.yml
Normal file
17
_data/navigation.yml
Normal file
|
@ -0,0 +1,17 @@
|
|||
- icon: fa-disc
|
||||
url: /discography/
|
||||
name: Discog
|
||||
external_site: false
|
||||
- icon: fa-newspaper
|
||||
url: /log/
|
||||
name: Log
|
||||
external_site: false
|
||||
- icon: fa-finger-print
|
||||
url: /about/
|
||||
name: About
|
||||
external_site: false
|
||||
- icon: fa-link
|
||||
url: /links/
|
||||
name: Links
|
||||
external_site: false
|
||||
|
21
_data/social.yml
Normal file
21
_data/social.yml
Normal file
|
@ -0,0 +1,21 @@
|
|||
|
||||
- name: Twitter
|
||||
url: https://twitter.com/ToSettoSetto
|
||||
icon: fa-twitter
|
||||
share_link: 'https://twitter.com/share?url={{ site.url }}{{ page.url | xml_escape }}&text={{ page.description | xml_escape }}%20via%20@ToSettoSetto&hashtags=cybersoul'
|
||||
we_have_account: true
|
||||
- name: Instagram
|
||||
url: https://www.instagram.com/tosettosetto/
|
||||
icon: fa-instagram
|
||||
share_link:
|
||||
we_have_account: true
|
||||
- name: Telegram
|
||||
url: https://t.me/basspistol
|
||||
icon: fa-telegram
|
||||
share_link: 'https://telegram.me/share/url?url={{ site.url }}{{ page.url }}&text={{ page.description }}%20via%20@basspistol'
|
||||
we_have_account: true
|
||||
- name: Reddit
|
||||
url: https://www.reddit.com/r/basspistol
|
||||
icon: fa-reddit
|
||||
share_link: 'https://reddit.com/submit/?url={{ site.url }}{{ page.url }}&title={{ page.title | xml_escape }}'
|
||||
we_have_account: true
|
24
_data/stores.yml
Normal file
24
_data/stores.yml
Normal file
|
@ -0,0 +1,24 @@
|
|||
- name: Bandcamp
|
||||
url: https://shop.basspistol.com
|
||||
icon: fa-bandcamp
|
||||
download: true
|
||||
- name: Spotify
|
||||
url: https://open.spotify.com/artist/0gus2IdSkfrvFDBPqeiksM/
|
||||
icon: fa-spotify
|
||||
download: false
|
||||
- name: Apple Music
|
||||
url: https://itunes.apple.com/us/artist/%E5%BE%92-setto-%E3%82%BB%E3%83%83%E3%83%88/1447055514
|
||||
icon: fa-apple
|
||||
download: false
|
||||
- name: Google Play
|
||||
url: https://play.google.com/store/music/artist/%E5%BE%92_setto_%E3%82%BB%E3%83%83%E3%83%88?id=Ayi4avjpfyinbrepzebpsvpjc5a
|
||||
icon: fa-google-play
|
||||
download: false
|
||||
- name: Deezer
|
||||
url: https://www.deezer.com/fr/artist/56004012
|
||||
icon: fa-creative-commons-sampling
|
||||
download: false
|
||||
- name: Napster
|
||||
url: https://us.napster.com/artist/-setto-
|
||||
icon: fa-napster
|
||||
download: false
|
52
_data/translations.yml
Normal file
52
_data/translations.yml
Normal file
|
@ -0,0 +1,52 @@
|
|||
en:
|
||||
navigation:
|
||||
-
|
||||
read-post: 'Read post'
|
||||
name: Name
|
||||
lastname: Last name
|
||||
email: E-mail
|
||||
message: Message
|
||||
privacy: 'I agree with the <a href=''/cookies/#privacythingy''>privacy policy.</a>'
|
||||
newsletter: I want the newsletter!
|
||||
required: Required field
|
||||
contact-us: Get in touch
|
||||
contact: Contact
|
||||
write-msg: Write your message...
|
||||
send: Send Message
|
||||
news: News
|
||||
top: Back to top
|
||||
cookies: >-
|
||||
<p>I only use cookies if you consent to it. They don't contain any identifiable info: they just let me know if you enjoyed this enough to come back.
|
||||
<br />Click <a href="#" id="cookie-notice-decline">here</a> if you want this shit to go away without cookies.
|
||||
<br />Read more about how me & basspistol <a href="/cookies/">use cookies</a>
|
||||
</p>
|
||||
cookie-agree: I'm in!
|
||||
back: Take me back!
|
||||
home: Home
|
||||
post-nav: Read more posts
|
||||
|
||||
sv:
|
||||
navigation:
|
||||
read-post: 'Läs post'
|
||||
name: Namn
|
||||
lastname: Efternamn
|
||||
email: e-post
|
||||
message: Meddelande
|
||||
privacy: 'Jag godkänner <a href=''/cookies/''>sekretesspolicyn</a>'
|
||||
newsletter: Jag vill ha nyhetsutskick
|
||||
required: Obligatoriskt fält
|
||||
contact-us: Kontakta oss
|
||||
contact: Kontakt
|
||||
write-msg: Skriv ditt meddelande...
|
||||
send: Skicka Meddelande
|
||||
news: Nyheter
|
||||
top: Tillbaka till toppen
|
||||
cookies: >-
|
||||
<p>Vi använder bara cookies om du går med på det. Hjälp oss förbättra våran marknadsföring!
|
||||
<br />Klicka <a href="#" id="cookie-notice-decline">här</a> om du inte vill hjälpa till
|
||||
<br />Läs mer om <a href="/cookies/">hur vi använder cookies</a>
|
||||
</p>
|
||||
cookie-agree: Jag hjälper gärna!
|
||||
back: Ta mig tillbaka!
|
||||
home: Hem
|
||||
post-nav: Läs fler inlägg
|
33
_includes/analytics.js
Normal file
33
_includes/analytics.js
Normal file
|
@ -0,0 +1,33 @@
|
|||
{% if page.url == '/404/' %}
|
||||
|
||||
//* Matomo *//
|
||||
|
||||
var _paq = window._paq || [];
|
||||
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
|
||||
_paq.push(['setDocumentTitle', '404/URL = ' + encodeURIComponent(document.location.pathname+document.location.search) + '/From = ' + encodeURIComponent(document.referrer)]);
|
||||
_paq.push(['disableCookies']);
|
||||
_paq.push(['trackPageView']);
|
||||
_paq.push(['enableLinkTracking']);
|
||||
(function() {
|
||||
var u="https://terminalnetwork.matomo.cloud/";
|
||||
_paq.push(['setTrackerUrl', u+'matomo.php']);
|
||||
_paq.push(['setSiteId', '11']);
|
||||
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
||||
g.type='text/javascript'; g.async=true; g.defer=true; g.src='//cdn.matomo.cloud/terminalnetwork.matomo.cloud/matomo.js'; s.parentNode.insertBefore(g,s);
|
||||
})();
|
||||
|
||||
//* End Matomo *//
|
||||
|
||||
|
||||
|
||||
{% else %}
|
||||
//* Matomo Tag Manager *//
|
||||
|
||||
var _mtm = _mtm || [];
|
||||
_mtm.push({'mtm.startTime': (new Date().getTime()), 'event': 'mtm.Start'});
|
||||
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
||||
g.type='text/javascript'; g.async=true; g.defer=true; g.src='https://cdn.matomo.cloud/terminalnetwork.matomo.cloud/container_kJUGWiO2.js'; s.parentNode.insertBefore(g,s);
|
||||
|
||||
//* End Matomo Tag Manager *//
|
||||
{% endif %}
|
||||
|
33
_includes/author.html
Normal file
33
_includes/author.html
Normal file
|
@ -0,0 +1,33 @@
|
|||
{% assign author_id = page.author | prepend: "/authors/" | append: "/" %}
|
||||
{% assign author = site.authors | where: "url", author_id | first %}
|
||||
<header id="author">
|
||||
<div class="bio">
|
||||
|
||||
{% if page.collection == 'posts' %}
|
||||
<div alt="Picture of {{ author.name }}"
|
||||
style="margin-right: 10px;background-image:url({{ author.image }});background-repeat: no-repeat;background-size:cover; border-radius:150px; width:150px; height:150px;">
|
||||
</div>
|
||||
<br />
|
||||
<p style="font-style: normal;"><a href="mailto:{{ author.email }}"><strong>{{ author.name }}</strong></a></p>
|
||||
<p style="font-style: normal;">{{ author.position }}{% if author.gpg != nil %} | <a target="_blank" rel="noopener" href="{{ author.gpg }}">GPG</a>{% endif %}</p>
|
||||
<p style="font-size:14px;font-style: normal;">
|
||||
Published the
|
||||
|
||||
{% include dates.html %}
|
||||
</p>
|
||||
|
||||
{% endif %}
|
||||
<h6>
|
||||
|
||||
Share this page:
|
||||
</h6>
|
||||
<ul class="icons">
|
||||
<li><a target="_blank" rel="nofollow noopener" title="Share to facebook" alt="Share to facebook" href="https://touch.facebook.com/sharer.php?u={{ site.url }}{{ page.url | xml_escape }}&quote={{ page.title | xml_escape }}%20by%20{{ site.title xml_escape }}%20via%20{{ site.url }}" class="icon brands style1 fa-facebook-f"><span class="label">Facebook</span></a></li>
|
||||
<li><a target="_blank" rel="nofollow noopener" title="Share to twitter" alt="Share to twitter" href="https://twitter.com/share?url={{ site.url }}{{ page.url | xml_escape }}&text={{ page.title | xml_escape }}%20by%20{{ site.title xml_escape }}%20&hashtags=paxNion" class="icon brands style1 fa-twitter"><span class="label">Twitter</span></a></li>
|
||||
<li><a target="_blank" rel="nofollow noopener" title="Share to telegram" alt="Share to telgram" href="https://telegram.me/share/url?url={{ site.url }}{{ page.url }}&text={{ page.title | xml_escape }}%20by%20{{ site.title xml_escape }}" class="icon brands style1 fa-telegram"><span class="label">Telegram</span></a></li>
|
||||
<li><a target="_blank" rel="nofollow noopener" title="Share to reddit" alt="Share to reddit" href="https://reddit.com/submit/?url={{ site.url }}{{ page.url }}&title={{ page.title | xml_escape }}%20by%20{{ site.title xml_escape }}" class="icon brands style1 fa-reddit"><span class="label">Reddit</span></a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</header>
|
42
_includes/contact.html
Normal file
42
_includes/contact.html
Normal file
|
@ -0,0 +1,42 @@
|
|||
<!-- Contact -->
|
||||
<section id="contact" class="wrapper style1 align-center">
|
||||
<div class="inner medium">
|
||||
<h2 class="editable">
|
||||
|
||||
</h2>
|
||||
<form action="{{ site.baseurl }}/contact-success/" method="post">
|
||||
<input type="hidden" name="_to" value="setto@basspistol.com" /><br />
|
||||
<input type="text" name="_gotcha" style="display: none;" />
|
||||
<div class="fields">
|
||||
<div class="field half">
|
||||
<label for="name">{{ site.data.translations[page.lang].name }}</label>
|
||||
<input type="text" name="name" id="name" placeholder="{{ site.data.translations[page.lang].name }} {{ site.data.translations[page.lang].lastname }}" />
|
||||
</div>
|
||||
<div class="field half">
|
||||
<label for="email">{{ site.data.translations[page.lang].email }}</label>
|
||||
<input type="email" name="email" placeholder="{{ site.data.translations[page.lang].required }}" required />
|
||||
</div>
|
||||
<div class="field">
|
||||
<label for="message">{{ site.data.translations[page.lang].message }}</label>
|
||||
<textarea name="message" id="message" rows="6" placeholder="{{ site.data.translations[page.lang].write-msg }}"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div style="text-align: left;">
|
||||
<input type="checkbox" name="consent" id="consent" required />
|
||||
<label for="consent">{{ site.data.translations[page.lang].privacy }}
|
||||
</label>
|
||||
<br /><br />
|
||||
|
||||
<input type="checkbox" name="newsletter" id="newsletter" />
|
||||
<label for="newsletter">{{ site.data.translations[page.lang].newsletter }}
|
||||
</label>
|
||||
</div>
|
||||
<br />
|
||||
<ul class="actions special">
|
||||
<li><input type="submit" name="submit" id="submit" value="{{ site.data.translations[page.lang].send }}" /></li>
|
||||
</ul>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<!-- END Contact -->
|
65
_includes/cookie-consent.html
Normal file
65
_includes/cookie-consent.html
Normal file
|
@ -0,0 +1,65 @@
|
|||
|
||||
<div id="cookie-notice">
|
||||
{{ site.data.translations[page.lang].cookies }}
|
||||
<a class="button small yes" href="#" id="cookie-notice-accept">{{ site.data.translations[page.lang].cookie-agree }}</a>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
function createCookie(name, value, days) {
|
||||
var expires = "";
|
||||
if (days) {
|
||||
var date = new Date();
|
||||
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
|
||||
expires = "; expires=" + date.toUTCString();
|
||||
}
|
||||
document.cookie = name + "=" + value + expires + "; path=/";
|
||||
}
|
||||
function readCookie(name) {
|
||||
var nameEQ = name + "=";
|
||||
var ca = document.cookie.split(';');
|
||||
for (var i = 0; i < ca.length; i++) {
|
||||
var c = ca[i];
|
||||
while (c.charAt(0) == ' ') c = c.substring(1, c.length);
|
||||
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
function eraseCookie(name) {
|
||||
createCookie(name, "", -1);
|
||||
}
|
||||
|
||||
if (readCookie('cookie-notice-dismissed') == 'wantCookies') {
|
||||
{% include analytics.js %}
|
||||
} else {
|
||||
document.getElementById('cookie-notice').style.display = 'flex';
|
||||
|
||||
{% include matomo.js %}
|
||||
|
||||
}
|
||||
if (readCookie('cookie-notice-dismissed') == 'dontWantCookies') {
|
||||
document.getElementById('cookie-notice').style.display = 'none';
|
||||
|
||||
{% include matomo.js %}
|
||||
}
|
||||
document.getElementById('cookie-notice-accept').addEventListener("click", function () {
|
||||
createCookie('cookie-notice-dismissed', 'wantCookies', 31);
|
||||
document.getElementById('cookie-notice').style.display = 'none';
|
||||
_paq.push(['trackEvent', 'Consent', 'wantCookie']);
|
||||
location.reload();
|
||||
});
|
||||
|
||||
document.getElementById('cookie-notice-decline').addEventListener("click", function () {
|
||||
createCookie('cookie-notice-dismissed', 'dontWantCookies', 31);
|
||||
document.getElementById('cookie-notice').style.display = 'none';
|
||||
_paq.push(['trackEvent', 'Consent', 'dontWantCookie']);
|
||||
location.reload();
|
||||
});
|
||||
|
||||
// document.getElementById('cookie-notice-gimme').addEventListener("click", function () {
|
||||
// createCookie('cookie-notice-dismissed', 'wantCookies', 31);
|
||||
// document.getElementById('cookie-notice').style.display = 'none';
|
||||
// location.reload();
|
||||
// });
|
||||
|
||||
|
||||
</script>
|
21
_includes/dates.html
Normal file
21
_includes/dates.html
Normal file
|
@ -0,0 +1,21 @@
|
|||
|
||||
{% assign d = page.date | date: "%-d" %}
|
||||
{% case d %}
|
||||
{% when '1' or '21' or '31' %}{{ d }}:st
|
||||
{% when '2' or '22' %}{{ d }}:nd
|
||||
{% when '3' or '23' %}{{ d }}:rd
|
||||
{% else %}{{ d }}:th
|
||||
{% endcase %} of
|
||||
{% assign m = page.date | date: "%-m" %}
|
||||
{% case m %}
|
||||
{% when '1' %}January
|
||||
{% when '2' %}February
|
||||
{% when '3' %}March
|
||||
{% when '4' %}April
|
||||
{% when '5' %}May
|
||||
{% when '6' %}June
|
||||
{% when '7' %}July
|
||||
{% when '8' %}August
|
||||
{% when '9' %}September {% when '10' %}October {% when '11' %}November {% when '12' %}December
|
||||
{% endcase %}
|
||||
{{ page.date | date: "%Y" }}
|
32
_includes/footer.html
Normal file
32
_includes/footer.html
Normal file
|
@ -0,0 +1,32 @@
|
|||
<!-- Footer -->
|
||||
<footer id="footer" class="wrapper style1 align-center">
|
||||
<div class="footflex">
|
||||
<div>
|
||||
<h4>{{ site.title }}</h4>
|
||||
<p>{{ site.description }}
|
||||
<br /><a href="mailto:{{ site.publisher.email }}">{{ site.publisher.email }}</a></p>
|
||||
</div>
|
||||
<div>
|
||||
<ul>
|
||||
{% if page.url != '/' %}
|
||||
<li><a href="{{ relBase }}/">{{ site.data.translations[page.lang].home }}</a></li>
|
||||
{% endif %}
|
||||
{% for entry in site.data.navigation %}
|
||||
<li><a href="{{ entry.url }}">{{ entry.name }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
<div><img src="{{ relBase }}{{ site.logo-footer }}" style="max-width:300px" alt="{{ site.title }} Logo" /></div>
|
||||
</div>
|
||||
<div class="inner">
|
||||
<ul class="icons">
|
||||
{% for nw in site.data.social %}
|
||||
|
||||
<li><a target="_blank" alt="{{ site.title }} on {{ nw.name }}" title="{{ site.title }} on {{ nw.name }}" rel="noopener" href="{{ nw.url }}" class="icon brands style2 {{ nw.icon }}"><span class="label">{{ nw.name }}</span></a></li>
|
||||
|
||||
{% endfor %}
|
||||
|
||||
</ul>
|
||||
<p>©{{ site.time | date: '%Y' }} {{ site.publisher.name }} | <a href="{{ relBase }}/webcreds/">Credits</a> | <a href="{{ relBase }}/cookies/">Cookies & Privacy</a></p>
|
||||
</div>
|
||||
</footer>
|
17
_includes/matomo.html
Normal file
17
_includes/matomo.html
Normal file
|
@ -0,0 +1,17 @@
|
|||
<!-- Matomo -->
|
||||
<script type="text/javascript">
|
||||
var _paq = window._paq || [];
|
||||
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
|
||||
_paq.push(["setDocumentTitle", document.domain + "/" + document.title]);
|
||||
_paq.push(["disableCookies"]);
|
||||
_paq.push(['trackPageView']);
|
||||
_paq.push(['enableLinkTracking']);
|
||||
(function() {
|
||||
var u="https://terminalnetwork.matomo.cloud/";
|
||||
_paq.push(['setTrackerUrl', u+'matomo.php']);
|
||||
_paq.push(['setSiteId', '11']);
|
||||
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
||||
g.type='text/javascript'; g.async=true; g.defer=true; g.src='//cdn.matomo.cloud/terminalnetwork.matomo.cloud/matomo.js'; s.parentNode.insertBefore(g,s);
|
||||
})();
|
||||
</script>
|
||||
<!-- End Matomo Code -->
|
13
_includes/matomo.js
Normal file
13
_includes/matomo.js
Normal file
|
@ -0,0 +1,13 @@
|
|||
var _paq = window._paq || [];
|
||||
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
|
||||
_paq.push(["setDocumentTitle", document.domain + "/" + document.title]);
|
||||
_paq.push(["disableCookies"]);
|
||||
_paq.push(['trackPageView']);
|
||||
_paq.push(['enableLinkTracking']);
|
||||
(function() {
|
||||
var u="https://terminalnetwork.matomo.cloud/";
|
||||
_paq.push(['setTrackerUrl', u+'matomo.php']);
|
||||
_paq.push(['setSiteId', '11']);
|
||||
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
||||
g.type='text/javascript'; g.async=true; g.defer=true; g.src='//cdn.matomo.cloud/terminalnetwork.matomo.cloud/matomo.js'; s.parentNode.insertBefore(g,s);
|
||||
})();
|
28
_includes/navigation.html
Normal file
28
_includes/navigation.html
Normal file
|
@ -0,0 +1,28 @@
|
|||
<!-- Navigation -->
|
||||
<div id="logo" class="logo">
|
||||
<a href="/"><img width="100em" src="{{ site.icon }}" alt="{{ site.name }} Logo" /></a>
|
||||
<a href="#navbar" onclick="blurBody()" alt="Navigation Menu" title="Navigation Menu"><span style="font-size: 34px;" class="icon solid fa-bars"></span></a>
|
||||
</div>
|
||||
|
||||
<div id="navbar" style="display: block;" class="modalDialog">
|
||||
<a href="#close" onclick="removeBlur()" alt="Close Menu" title="Close Menu"><div id="closearea"> </div></a>
|
||||
<nav>
|
||||
<a href="#close" title="Close" onclick="removeBlur()" class="close-button close" style="margin: 0 auto;">X</a>
|
||||
<ul>
|
||||
{% if page.url != '/' %}
|
||||
<li><a href="{{ relBase }}/" class="button smaller">{{ site.data.translations[page.lang].home }}</a></li>
|
||||
{% endif %}
|
||||
{% for entry in site.data.navigation %}
|
||||
{% if entry.external_site == false %}
|
||||
<li><a href="{{ relBase }}{{ entry.url }}" class="button smaller">{{ entry.name }}</a></li>
|
||||
{% else %}
|
||||
<li><a href="{{ entry.url }}" target="_blank" rel="noopener" class="button smaller">{{ entry.name }}</a></li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- End Navigation -->
|
12
_includes/relBase.html
Normal file
12
_includes/relBase.html
Normal file
|
@ -0,0 +1,12 @@
|
|||
{% assign relBase = '' %}
|
||||
{% assign tempDepth = page.url | append: 'hackish-solution' | split: '/' | size | minus: 2 %}
|
||||
{% for i in (1..tempDepth) %}
|
||||
{% if forloop.last %}
|
||||
{% assign relBase = relBase | append: ".." %}
|
||||
{% else %}
|
||||
{% assign relBase = relBase | append: "../" %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% if relBase == '' %}
|
||||
{% assign relBase = '.' %}
|
||||
{% endif %}
|
10
_includes/scripts.html
Normal file
10
_includes/scripts.html
Normal file
|
@ -0,0 +1,10 @@
|
|||
<!-- Scripts -->
|
||||
{% include relBase.html %}
|
||||
<script src="{{ relBase }}/assets/js/jquery.min.js"></script>
|
||||
<script src="{{ relBase }}/assets/js/jquery.scrollex.min.js"></script>
|
||||
<script src="{{ relBase }}/assets/js/jquery.scrolly.min.js"></script>
|
||||
<script src="{{ relBase }}/assets/js/browser.min.js"></script>
|
||||
<script src="{{ relBase }}/assets/js/breakpoints.min.js"></script>
|
||||
<script src="{{ relBase }}/assets/js/util.js"></script>
|
||||
<script src="{{ relBase }}/assets/js/main.js"></script>
|
||||
<script src="{{ relBase }}/assets/js/set.js"></script>
|
255
_includes/seo.html
Normal file
255
_includes/seo.html
Normal file
|
@ -0,0 +1,255 @@
|
|||
<!--
|
||||
..............................................
|
||||
..............................................
|
||||
...........'';,...............................
|
||||
.........'',,;:o:,............................
|
||||
.......',;;::::::;;;,.........................
|
||||
.....,;:ooooooooooo;,,''''....................
|
||||
....,;ooooooooooooooo;,'..'''''...............
|
||||
...,:ooooooooooooooooo;''......'''............
|
||||
..,;:ooooooooooooooooo',,.........,'.......... _______ _ _ __
|
||||
..,,;:,ooooo;;:ooo;o,:;,',.........;,''....... \____ \____ _____ __________ |_| ______/ |_ ___ | |
|
||||
..,'..,,;:o,''.,;;'''..'';,,,,,,''',;'''...... | | _/\__ \/ __// __/\___ \| |/ __/\ _\/ \| |
|
||||
..,'......':ooo:.......'';,'''''''',;,,,...... | | _/\__ \/ __// __/\___ \| |/ __/\ _\/ \| |
|
||||
..,,.......,:o:'.......,'oooo:::::;:,.',;,.... | | _/\__ \/ __// __/\___ \| |/ __/\ _\/ \| |
|
||||
..','.................',,..'',,,;;;;;;,.,:.... | | \ / _ \__ \ \__ \ | |_> > |\__ \ | | ( <> ) |__
|
||||
...,,'...............',;oooooooooo:;;:,;oo,... |____ /(___ /___ >___ >| __/|_/____ > |_| \___/|____/
|
||||
....,,'.............,,;ooooooooo;,..'',oooo,.. \/ \/ \/ \/ |_| \/
|
||||
.....',,'........',,;ooo::;;,'........'oooo;..
|
||||
.......'',,'''',,;;;,,'...............';;;'... All you saw was sound!
|
||||
...........'''''..............................
|
||||
..............................................
|
||||
..............................................
|
||||
..............................................
|
||||
..............................................
|
||||
-->
|
||||
{% if page.collection == 'tracks' %}
|
||||
<!-- BEGIN seo.html -->
|
||||
|
||||
<title>Play {{ page.common.title }} by {{ page.common.artist }} | {{ site.title }}</title>
|
||||
<meta name="title" content="Play "{{ page.common.title| strip_html }}" by {{ page.common.artist }}" />
|
||||
<meta name="description" content="A track by {{ page.common.artist }} named "{{ page.common.title | strip_html }}" published on {{ site.title }}" />
|
||||
<meta name="dc.date.modified" scheme="ISO8601" content="{{ page.last_modified_at | date_to_xmlschema }}" />
|
||||
<meta name="robots" content="index" />
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<link rel="canonical" href="{{ site.url }}{{ page.url }}" />
|
||||
<link rel="alternate" hreflang="x-default" href="{{ site.url }}{{ page.url }}" />
|
||||
<meta name="geo.region" content="{{ site.geo.region }}" />
|
||||
<meta name="geo.placename" content="{{ site.geo.town }}" />
|
||||
<meta name="geo.position" content="{{ site.geo.lat }};{{ site.geo.long }}" />
|
||||
<meta name="ICBM" content="{{ site.geo.lat }}, {{ site.geo.long }}" />
|
||||
<meta name="author" content="{{ site.title }}" />
|
||||
<meta name="generator" content="Jekyll v4.0.0" />
|
||||
|
||||
<!-- Dublin Core basic info -->
|
||||
|
||||
<meta name="dcterms.Identifier" content="{{ site.url }}" />
|
||||
<meta name="dcterms.Format" content="text/html" />
|
||||
<meta name="dcterms.Relation" content="{{ site.title }}" />
|
||||
<meta name="dcterms.Publisher" content="{{ site.publisher.name }}" />
|
||||
<meta name="dcterms.Type" content="text/html" />
|
||||
<meta name="dcterms.Coverage" content="{{ site.url }}/" />
|
||||
<meta name="dcterms.Rights" content="Copyright ©{{ site.time | date: '%Y' }} {{ site.title }}." />
|
||||
<meta name="dcterms.Subject" content="A track by {{ page.common.artist }} named "{{ page.common.title| strip_html }}" published on {{ site.title }}" />
|
||||
<meta name="dcterms.Title" content="Play "{{ page.common.title| strip_html }}" by {{ page.common.artist }}" />
|
||||
<meta name="dcterms.Contributor" content="{{ site.title }}" />
|
||||
<meta name="dcterms.Date" content="{{ page.last_modified_at | date: '%Y-%m-%d' }}" />
|
||||
<meta name="dcterms.Description" content="Listen and to a track by {{ page.common.artist | strip_html }} from the release "{{ page.common.album | strip_html }}" and support your remote artist!" />
|
||||
|
||||
<!-- Facebook -->
|
||||
|
||||
<meta property="og:title" content="{{ page.common.title }}" />
|
||||
<meta property="og:locale" content="en" />
|
||||
<meta property="og:description" content="Listen and to a track by {{ page.common.artist | strip_html }} from the release "{{ page.common.album | strip_html }}" and support your remote artist!" />
|
||||
<meta property="og:url" content="{{ site.url }}{{ page.url }}" />
|
||||
<meta property="og:site_name" content="{{ site.title }}" />
|
||||
<meta property="og:type" content="music:album:track" />
|
||||
<meta property="og:audio" content="{{ site.mediaurl }}/{{ page.slug }}.mp3" />
|
||||
<meta property="article:published_time" content="{{ page.last_modified_at | date_to_xmlschema }}" />
|
||||
<meta property="og:image" content="{{ site.mediaurl }}/{{ page.slug }}.jpeg" />
|
||||
<!-- Twitter Card -->
|
||||
|
||||
<meta name="twitter:card" content="summary" />
|
||||
<meta name="twitter:title" content="{{ page.common.title }} | {{ site.title }}" />
|
||||
<meta name="twitter:description" content="Listen and to a track by {{ page.common.artist | strip_html }} from the release "{{ page.common.album | strip_html }}" and support your remote artist!" />
|
||||
<meta name="twitter:image" content="{{ site.mediaurl }}/{{ page.slug }}.jpeg" />
|
||||
|
||||
|
||||
{% elsif page.collection == 'albums' %}
|
||||
|
||||
<!-- BEGIN seo.html -->
|
||||
{% capture namelist %}{% for art in page.artists %}{{ art }}{% unless forloop.last %}, {% endunless %}{% endfor %}{% endcapture %}
|
||||
{% capture artist %}{{ namelist }}{% endcapture %}
|
||||
|
||||
<title>Play "{{ page.name }}" by {{ artist | uniq }} | {{ site.title }}</title>
|
||||
<meta name="title" content="Play "{{ page.name | strip_html }}" by {{ artist | uniq }}" />
|
||||
<meta name="description" content="A release by {{ artist | uniq }} named "{{ page.name | strip_html }}" published on {{ site.title }}" />
|
||||
<meta name="dc.date.modified" scheme="ISO8601" content="{{ page.last_modified_at | date_to_xmlschema }}" />
|
||||
<meta name="robots" content="index" />
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<link rel="canonical" href="{{ site.url }}{{ page.url }}" />
|
||||
<link rel="alternate" hreflang="x-default" href="{{ site.url }}{{ page.url }}" />
|
||||
<meta name="geo.region" content="{{ site.geo.region }}" />
|
||||
<meta name="geo.placename" content="{{ site.geo.town }}" />
|
||||
<meta name="geo.position" content="{{ site.geo.lat }};{{ site.geo.long }}" />
|
||||
<meta name="ICBM" content="{{ site.geo.lat }}, {{ site.geo.long }}" />
|
||||
<meta name="author" content="{{ site.title }}" />
|
||||
<meta name="generator" content="Jekyll v4.0.0" />
|
||||
|
||||
<!-- Dublin Core basic info -->
|
||||
|
||||
<meta name="dcterms.Identifier" content="{{ site.url }}" />
|
||||
<meta name="dcterms.Format" content="text/html" />
|
||||
<meta name="dcterms.Relation" content="{{ site.title }}" />
|
||||
<meta name="dcterms.Publisher" content="{{ site.publisher.name }}" />
|
||||
<meta name="dcterms.Type" content="text/html" />
|
||||
<meta name="dcterms.Coverage" content="{{ site.url }}/" />
|
||||
<meta name="dcterms.Rights" content="Copyright ©{{ site.time | date: '%Y' }} {{ site.title }}." />
|
||||
<meta name="dcterms.Subject" content="A release by {{ artist | uniq }} named "{{ page.name | strip_html }}" published on {{ site.title }}" />
|
||||
<meta name="dcterms.Title" content="Play "{{ page.name | strip_html }}" by {{ artist | uniq }}" />
|
||||
<meta name="dcterms.Contributor" content="{{ site.title }}" />
|
||||
<meta name="dcterms.Date" content="{{ page.last_modified_at | date: '%Y-%m-%d' }}" />
|
||||
<meta name="dcterms.Description" content="Listen and to a release by {{ artist | uniq }} named "{{ page.name | strip_html }}" and support your remote artist!" />
|
||||
|
||||
<!-- Facebook -->
|
||||
|
||||
<meta property="og:title" content="{{ page.name }} by {{ artist | uniq }}" />
|
||||
<meta property="og:locale" content="en" />
|
||||
<meta property="og:description" content="Listen and to a release by {{ artist | uniq }} named "{{ page.name | strip_html }}" and support your remote artist!" />
|
||||
<meta property="og:url" content="{{ site.url }}{{ page.url }}" />
|
||||
<meta property="og:site_name" content="{{ site.title }}" />
|
||||
<meta property="og:type" content="music:album" />
|
||||
{% for track in page.tracks %}<meta property="og:audio" content="{{ site.mediaurl }}/{{ track.albumSlug }}/{{ track.trackSlug }}.mp3" />
|
||||
{% endfor %}
|
||||
<meta property="article:published_time" content="{{ page.last_modified_at | date_to_xmlschema }}" />
|
||||
<meta property="og:image" content="{{ site.mediaurl }}/{{ page.tracks[0].slug }}.jpeg" />
|
||||
<!-- Twitter Card -->
|
||||
|
||||
<meta name="twitter:card" content="summary" />
|
||||
<meta name="twitter:title" content="{{ page.name }} | {{ site.title }}" />
|
||||
<meta name="twitter:description" content="Listen and to a release by {{ artist | uniq }} named "{{ page.name | strip_html }}" and support your remote artist!" />
|
||||
<meta name="twitter:image" content="{{ site.mediaurl }}/{{ page.tracks[0].slug }}.jpeg" />
|
||||
|
||||
|
||||
|
||||
{% else %}
|
||||
<!-- BEGIN seo.html -->
|
||||
|
||||
<title>{{ page.title }} | {{ site.title }}</title>
|
||||
<meta name="title" content="{{ page.title }} | {{ site.title }}" />
|
||||
<meta name="description" content="{{ page.description }}" />
|
||||
<meta name="dc.date.modified" scheme="ISO8601" content="{{ page.last_modified_at | date_to_xmlschema }}" />
|
||||
<meta name="robots" content="index" />
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<link rel="canonical" href="{{ site.url }}{{ page.url }}" />
|
||||
<link rel="alternate" hreflang="x-default" href="{{ site.url }}{{ page.url }}" />
|
||||
<meta name="geo.region" content="{{ site.geo.region }}" />
|
||||
<meta name="geo.placename" content="{{ site.geo.town }}" />
|
||||
<meta name="geo.position" content="{{ site.geo.lat }};{{ site.geo.long }}" />
|
||||
<meta name="ICBM" content="{{ site.geo.lat }}, {{ site.geo.long }}" />
|
||||
<meta name="author" content="{{ site.title }}" />
|
||||
<meta name="generator" content="Jekyll v4.0.0" />
|
||||
|
||||
<!-- Dublin Core basic info -->
|
||||
|
||||
<meta name="dcterms.Identifier" content="{{ site.url }}" />
|
||||
<meta name="dcterms.Format" content="text/html" />
|
||||
<meta name="dcterms.Relation" content="{{ site.title }}" />
|
||||
<meta name="dcterms.Publisher" content="{{ site.publisher.name }}" />
|
||||
<meta name="dcterms.Type" content="text/html" />
|
||||
<meta name="dcterms.Coverage" content="{{ site.url }}/" />
|
||||
<meta name="dcterms.Rights" content="Copyright ©{{ site.time | date: '%Y' }} {{ site.title }}." />
|
||||
<meta name="dcterms.Subject" content="{{ page.description }}" />
|
||||
<meta name="dcterms.Title" content="{{ page.title }}" />
|
||||
<meta name="dcterms.Contributor" content="{{ site.title }}" />
|
||||
<meta name="dcterms.Date" content="{{ page.last_modified_at | date: '%Y-%m-%d' }}" />
|
||||
<meta name="dcterms.Description" content="{{ page.description }}" />
|
||||
|
||||
<!-- Facebook -->
|
||||
|
||||
<meta property="og:title" content="{{ page.title }} | {{ site.title }}" />
|
||||
<meta property="og:locale" content="en" />
|
||||
<meta property="og:description" content="{{ page.description }}" />
|
||||
<meta property="og:url" content="{{ site.url }}{{ page.url }}" />
|
||||
<meta property="og:site_name" content="{{ site.title }}" />
|
||||
<meta property="og:type" content="webpage" />
|
||||
<meta property="article:published_time" content="{{ page.last_modified_at | date_to_xmlschema }}" />
|
||||
<meta property="og:image" content="{{ site.url }}{{ page.image }}" />
|
||||
<!-- Twitter Card -->
|
||||
|
||||
<meta name="twitter:card" content="summary" />
|
||||
<meta name="twitter:title" content="{{ page.name }} | {{ site.title }}" />
|
||||
<meta name="twitter:description" content="{{ page.description }}" />
|
||||
<meta name="twitter:image" content="{{ site.url }}{{ page.image }}" />
|
||||
|
||||
|
||||
{% endif %}
|
||||
|
||||
|
||||
<script type='application/ld+json'>
|
||||
{
|
||||
"@context": "http://www.schema.org",
|
||||
"@type": "Organization",
|
||||
"name": "{{ site.title }}",
|
||||
"url": "{{ site.url }}",
|
||||
"sameAs": [
|
||||
{% for social in site.social.links %}"{{ social }}"{% unless forloop.last %},{% endunless %}{% endfor %}
|
||||
],
|
||||
"logo": "{{ site.url }}{{ site.banner }}",
|
||||
"image": "{{ site.url }}{{ site.banner }}",
|
||||
"description": "{{ site.description | strip_html }}",
|
||||
"address": {
|
||||
"@type": "PostalAddress",
|
||||
"addressLocality": "{{ site.geo.town }}",
|
||||
"addressRegion": "{{ site.geo.region }}",
|
||||
"postalCode": "{{ site.geo.postalcode }}",
|
||||
"addressCountry": "{{ site.geo.country }}"
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
{% if page.url == '/radio/' or page.url == '/' %}
|
||||
<script type='application/ld+json'>
|
||||
{
|
||||
"@context": "http://www.schema.org",
|
||||
"@type": "RadioStation",
|
||||
"name": "Basspistol Libre Radio",
|
||||
"url": "{{ site.url }}/radio",
|
||||
"logo": "{{ site.url }}{{ site.logo }}",
|
||||
"image": "{{ site.url }}{{ site.logo }}",
|
||||
"description": "Unexpected and Impossible Music. Live interventions and special guests. This is Libre music!",
|
||||
"address": {
|
||||
"@type": "PostalAddress",
|
||||
"addressLocality": "{{ site.geo.town }}",
|
||||
"addressRegion": "{{ site.geo.region }}",
|
||||
"postalCode": "{{ site.geo.postalcode }}",
|
||||
"addressCountry": "{{ site.geo.country }}"
|
||||
},
|
||||
"geo": {
|
||||
"@type": "GeoCoordinates",
|
||||
"latitude": "{{ site.geo.lat }}",
|
||||
"longitude": "{{ site.geo.long }}"
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
function getData() {
|
||||
$.getJSON('https://radio.basspistol.com/status-json.xsl', function(json) {
|
||||
output = "<p>" + "<span style='font-size:14px;'>Now Playing:</span> " + "<br/>";
|
||||
output += "<strong>" + json.icestats.source[1].title + "</strong> by <strong>" + json.icestats.source[1].artist + "</strong></p>";
|
||||
output += "<p style='font-size:14px;'>" + json.icestats.source[0].listeners + " peers are listening in MP3 <br />";
|
||||
output += json.icestats.source[1].listeners + " peers are listening in OGG</p>";
|
||||
document.getElementById("radioPlaceholder").innerHTML=output;
|
||||
});
|
||||
}
|
||||
setInterval(getData, 7000);
|
||||
|
||||
$(function() {
|
||||
getData();
|
||||
});
|
||||
</script>
|
||||
{% endif %}
|
||||
|
||||
<!-- END seo.html -->
|
176
_includes/streamer.html
Normal file
176
_includes/streamer.html
Normal file
|
@ -0,0 +1,176 @@
|
|||
<section class="streambox" style="padding: 40px;">
|
||||
{% if page.collection == 'posts' %}
|
||||
{% if page.category == 'releases' %}
|
||||
{% if page.check_this_if_cannot_be_bought == false %}
|
||||
|
||||
<h3 style="text-align: center;display: block;">Buy this release</h3>
|
||||
<div class="streamer">
|
||||
{% for shop in page.stores %}
|
||||
{% if shop.download == true %}
|
||||
<a onclick="_paq.push(['trackEvent', 'StoreLink', '{{ shop.name | remove: " " }}']);" target="_blank" rel="noopener" href="{{ shop.url }}" alt="Stream from {{ shop.name }}" title="Stream from {{ shop.name }}" class="button icon brands {{ shop.icon }}">{{ shop.name }}</a>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
<h3 style="text-align: center;display: block;margin-top:40px;"> </h3>
|
||||
<div class="streamer">
|
||||
|
||||
{% for shop in page.stores %}
|
||||
{% if shop.download != true %}
|
||||
|
||||
<a onclick="_paq.push(['trackEvent', 'StoreLink', '{{ shop.name | remove: " " }}']);" style="flex: 0 0 75px;margin:10px; font-size: 75px;" target="_blank" rel="noopener" href="{{ shop.url }}" alt="Stream from {{ shop.name }}" title="Stream from {{ shop.name }}" class="icon style2 brands {{ shop.icon }}"><span class="label">{{ shop.name }}</span></a>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
{% else %}
|
||||
|
||||
<h3 style="text-align: center;display: block;">This release can't be bought</h3>
|
||||
<p>But you can find others here:</p>
|
||||
<div class="streamer">
|
||||
{% for shop in site.data.stores %}
|
||||
{% if shop.download == true %}
|
||||
<a onclick="_paq.push(['trackEvent', 'StoreLink', '{{ shop.name | remove: " " }}']);" target="_blank" rel="noopener" href="{{ shop.url }}" alt="Stream from {{ shop.name }}" title="Stream from {{ shop.name }}" class="button icon brands {{ shop.icon }}">{{ shop.name }}</a>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
<h3 style="text-align: center;display: block;"> </h3>
|
||||
|
||||
<div class="streamer">
|
||||
{% for shop in site.data.stores %}
|
||||
{% if shop.download != true %}
|
||||
<a onclick="_paq.push(['trackEvent', 'StoreLink', '{{ shop.name | remove: " " }}']);" target="_blank" rel="noopener" href="{{ shop.url }}" alt="Stream from {{ shop.name }}" title="Stream from {{ shop.name }}" class="button icon brands {{ shop.icon }}">{{ shop.name }}</a>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
{% elsif page.collection == 'tracks' %}
|
||||
|
||||
|
||||
{% for post in site.posts %}
|
||||
{% if post.album == page.albumSlug %}
|
||||
{% if post.check_this_if_cannot_be_bought == false %}
|
||||
|
||||
<h3 style="text-align: center;display: block;">Buy this track</h3>
|
||||
<div class="streamer">
|
||||
{% for shop in post.stores %}
|
||||
{% if shop.download == true %}
|
||||
<a onclick="_paq.push(['trackEvent', 'StoreLink', '{{ shop.name | remove: " " }}']);" target="_blank" rel="noopener" href="{{ shop.url }}" alt="Stream from {{ shop.name }}" title="Stream from {{ shop.name }}" class="button icon brands {{ shop.icon }}">{{ shop.name }}</a>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
<h3 style="text-align: center;display: block;margin-top:40px;"> </h3>
|
||||
<div class="streamer">
|
||||
|
||||
{% for shop in post.stores %}
|
||||
{% if shop.download != true %}
|
||||
|
||||
<a onclick="_paq.push(['trackEvent', 'StoreLink', '{{ shop.name | remove: " " }}']);" style="flex: 0 0 75px;margin:10px; font-size: 75px;" target="_blank" rel="noopener" href="{{ shop.url }}" alt="Stream from {{ shop.name }}" title="Stream from {{ shop.name }}" class="icon style2 brands {{ shop.icon }}"><span class="label">{{ shop.name }}</span></a>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% else %}
|
||||
|
||||
<h3 style="text-align: center;display: block;">This track can't be bought</h3>
|
||||
<p>But you can find others here:</p>
|
||||
<div class="streamer">
|
||||
{% for shop in site.data.stores %}
|
||||
{% if shop.download == true %}
|
||||
<a onclick="_paq.push(['trackEvent', 'StoreLink', '{{ shop.name | remove: " " }}']);" target="_blank" rel="noopener" href="{{ shop.url }}" alt="Stream from {{ shop.name }}" title="Stream from {{ shop.name }}" class="button icon brands {{ shop.icon }}">{{ shop.name }}</a>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
<h3 style="text-align: center;display: block;"> </h3>
|
||||
|
||||
<div class="streamer">
|
||||
{% for shop in site.data.stores %}
|
||||
{% if shop.download != true %}
|
||||
<a onclick="_paq.push(['trackEvent', 'StoreLink', '{{ shop.name | remove: " " }}']);" target="_blank" rel="noopener" href="{{ shop.url }}" alt="Stream from {{ shop.name }}" title="Stream from {{ shop.name }}" class="button icon brands {{ shop.icon }}">{{ shop.name }}</a>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% break %}
|
||||
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
|
||||
{% elsif page.collection == 'albums' %}
|
||||
|
||||
|
||||
{% for post in site.posts %}
|
||||
{% if post.album == page.slug %}
|
||||
{% if post.check_this_if_cannot_be_bought == false %}
|
||||
|
||||
<h3 style="text-align: center;display: block;">Buy this album</h3>
|
||||
<div class="streamer">
|
||||
{% for shop in post.stores %}
|
||||
{% if shop.download == true %}
|
||||
<a onclick="_paq.push(['trackEvent', 'StoreLink', '{{ shop.name | remove: " " }}']);" target="_blank" rel="noopener" href="{{ shop.url }}" alt="Stream from {{ shop.name }}" title="Stream from {{ shop.name }}" class="button icon brands {{ shop.icon }}">{{ shop.name }}</a>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
<h3 style="text-align: center;display: block;margin-top:40px;"> </h3>
|
||||
<div class="streamer">
|
||||
|
||||
{% for shop in post.stores %}
|
||||
{% if shop.download != true %}
|
||||
|
||||
<a onclick="_paq.push(['trackEvent', 'StoreLink', '{{ shop.name | remove: " " }}']);" style="flex: 0 0 75px;margin:10px; font-size: 75px;" target="_blank" rel="noopener" href="{{ shop.url }}" alt="Stream from {{ shop.name }}" title="Stream from {{ shop.name }}" class="icon style2 brands {{ shop.icon }}"><span class="label">{{ shop.name }}</span></a>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% else %}
|
||||
|
||||
<h3 style="text-align: center;display: block;">This album can't be bought</h3>
|
||||
<p>But you can find others here:</p>
|
||||
<div class="streamer">
|
||||
{% for shop in site.data.stores %}
|
||||
{% if shop.download == true %}
|
||||
<a onclick="_paq.push(['trackEvent', 'StoreLink', '{{ shop.name | remove: " " }}']);" target="_blank" rel="noopener" href="{{ shop.url }}" alt="Stream from {{ shop.name }}" title="Stream from {{ shop.name }}" class="button icon brands {{ shop.icon }}">{{ shop.name }}</a>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
<h3 style="text-align: center;display: block;"> </h3>
|
||||
|
||||
<div class="streamer">
|
||||
{% for shop in site.data.stores %}
|
||||
{% if shop.download != true %}
|
||||
<a onclick="_paq.push(['trackEvent', 'StoreLink', '{{ shop.name | remove: " " }}']);" target="_blank" rel="noopener" href="{{ shop.url }}" alt="Stream from {{ shop.name }}" title="Stream from {{ shop.name }}" class="button icon brands {{ shop.icon }}">{{ shop.name }}</a>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% break %}
|
||||
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
|
||||
|
||||
{% else %}
|
||||
<h3 style="text-align: center;display: block;">Support {{ site.name }}</h3>
|
||||
<p>Pay for music here:</p>
|
||||
<div class="streamer">
|
||||
{% for shop in site.data.stores %}
|
||||
{% if shop.download == true %}
|
||||
<a onclick="_paq.push(['trackEvent', 'StoreLink', '{{ shop.name | remove: " " }}']);" target="_blank" rel="noopener" href="{{ shop.url }}" alt="Stream from {{ shop.name }}" title="Stream from {{ shop.name }}" class="button icon brands {{ shop.icon }}">{{ shop.name }}</a>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
<h3 style="text-align: center;display: block;"> </h3>
|
||||
|
||||
<div class="streamer">
|
||||
{% for shop in site.data.stores %}
|
||||
{% if shop.download != true %}
|
||||
<a onclick="_paq.push(['trackEvent', 'StoreLink', '{{ shop.name | remove: " " }}']);" target="_blank" rel="noopener" href="{{ shop.url }}" alt="Stream from {{ shop.name }}" title="Stream from {{ shop.name }}" class="button icon brands {{ shop.icon }}">{{ shop.name }}</a>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
</section>
|
300
_layouts/album.html
Normal file
300
_layouts/album.html
Normal file
|
@ -0,0 +1,300 @@
|
|||
---
|
||||
lang: en
|
||||
---
|
||||
<!DOCTYPE HTML>
|
||||
<!--
|
||||
Based on _Story_ by html5up.net | @ajlkn
|
||||
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
Remixed and Jekyllified by Setto
|
||||
-->
|
||||
<html lang="{% if page.lang != site.lang %}{{ page.lang }}{% else %}{{ site.lang }}{% endif %}">
|
||||
<head>
|
||||
|
||||
<link type="application/atom+xml" rel="alternate" href="{{ site.url }}/feed.xml" title="{{ site.name }}" />
|
||||
{% include seo.html %}
|
||||
{% include relBase.html %}
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=yes" />
|
||||
<link rel="stylesheet" href="{{ relBase }}/assets/css/main20200710.css" />
|
||||
<link rel="apple-touch-icon" href="{{ site.url }}/apple-touch-icon.png">
|
||||
<link rel="icon" type="image/png" href="{{ site.url }}/touch-icon.png" sizes="192x192">
|
||||
<link rel="shortcut icon" href="{{ site.url }}{{ site.icon }}" type="image/png" />
|
||||
<noscript><link rel="stylesheet" href="{{ relBase }}/assets/css/noscript20200710.css" /></noscript>
|
||||
</head>
|
||||
<body id="body">
|
||||
<span id="top" style="display: none;"></span>
|
||||
<!-- Wrapper -->
|
||||
<div id="wrapper" class="divided">
|
||||
|
||||
<!-- Banner -->
|
||||
<section
|
||||
class="banner onload-image-fade-in onload-content-fade-right style2 fullscreen content-align-center image-position-center"
|
||||
style="min-height:100vh;">
|
||||
<div class="content editable">
|
||||
<h1 class="editable">{{ page.title }}</h1>
|
||||
<p>by <strong>{{ page.artists }}</strong>
|
||||
<br />{{ page.date | date: '%Y' }}
|
||||
</p>
|
||||
<ul class="actions stacked">
|
||||
<li><a href="#moe" class="button small smooth-scroll">cheggit!</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="image">
|
||||
<img src="{{ site.mediaurl }}/{{ page.slug }}/{{ page.tracks[0].trackSlug }}.jpeg" alt="{{ page.title }}" />
|
||||
</div>
|
||||
</section>
|
||||
<!-- Content -->
|
||||
<section class="wrapper style1 align-center">
|
||||
<div class="inner" style="padding-top: 40px;">
|
||||
<div class="index align-left">
|
||||
<!-- Author -->
|
||||
<section style="padding-top:40px;" id="moe">
|
||||
{% include author.html %}
|
||||
<!-- Content -->
|
||||
<div class="content">
|
||||
|
||||
|
||||
<!-- HERE BEGINS MADNESS -->
|
||||
|
||||
|
||||
<!-- Content -->
|
||||
<div class="content">
|
||||
<div id="mainwrap">
|
||||
<div id="nowPlay">
|
||||
<p class="right" id="npTitle" style="font-weight: bold;"></p>
|
||||
<p class="left" id="npAction">Paused...</p>
|
||||
</div>
|
||||
<div id="audiowrap">
|
||||
<div id="audio0">
|
||||
<audio id="audio1" preload="metadata" controls="controls">Your browser does not support HTML5
|
||||
Audio!</audio>
|
||||
</div>{% assign onetracker = page.tracks | size %}
|
||||
{% if onetracker > 1 %}
|
||||
<div id="tracks">
|
||||
<a id="btnPrev"><span class="icon solid fa-fast-backward"></span></a>
|
||||
<a id="btnNext"><span class="icon solid fa-fast-forward"></span></a>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div id="plwrap">
|
||||
<ul id="plList">
|
||||
{% for track in page.tracks %}
|
||||
<li class="">
|
||||
<div class="plItem">
|
||||
<div class="plNum">{{ track.common.track.no }}.</div>
|
||||
<div class="plTitle">{{ track.common.title }}</div>
|
||||
<div class="plLength">{% assign round_seconds = track.format.duration | round %}{% assign minutes = round_seconds | divided_by: 60 %}{% assign leftover_seconds = minutes | times: 60 %}{{ minutes }}:{% assign seconds_without_zero = round_seconds | minus: leftover_seconds %}{% if seconds_without_zero < 10 %}0{% endif %}{{ seconds_without_zero }}</div>
|
||||
</div>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div id="noJSalbum">
|
||||
|
||||
{% for track in page.tracks %}
|
||||
|
||||
<div class="plItem">
|
||||
<div class="plNum">{{ track.common.track.no }}.</div>
|
||||
<div class="plTitle"><a href="{{ track.audio }}">{{ track.common.title }} </a></div>
|
||||
<div class="plLength">{% assign round_seconds = track.format.duration | round %}{% assign minutes = round_seconds | divided_by: 60 %}{% assign leftover_seconds = minutes | times: 60 %}{{ minutes }}:{% assign seconds_without_zero = round_seconds | minus: leftover_seconds %}{% if seconds_without_zero < 10 %}0{% endif %}{{ seconds_without_zero }}</div>
|
||||
</div>
|
||||
|
||||
{% endfor %}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="content" style="font-family: monospace;font-size: 16px;margin-top:60px;">
|
||||
{{ content }}
|
||||
<p>{{ page.credits }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
<!-- HERE ENDS MADNESS -->
|
||||
{% include streamer.html %}
|
||||
<section class="wrapper style1 align-center">
|
||||
|
||||
<div class="inner">
|
||||
<h2>Track list</h2>
|
||||
<p>Use thses pages to share one song in particular</p>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
{% for track in page.tracks %}
|
||||
|
||||
<section
|
||||
class="spotlight style4 orient-{% cycle 'left', 'right' %} content-align-{% cycle 'right', 'left' %} image-position-center onscroll-image-fade-in"
|
||||
{% if forloop.index == 1 %}style="box-shadow: none;" {% endif %}>
|
||||
<div class="content">
|
||||
<h3>{{ track.common.title }}</h3>
|
||||
<p>
|
||||
{% assign round_seconds = track.format.duration | round %}{% assign minutes = round_seconds | divided_by: 60 %}{% assign leftover_seconds = minutes | times: 60 %}{{ minutes }}:{% assign seconds_without_zero = round_seconds | minus: leftover_seconds %}{% if seconds_without_zero < 10 %}0{% endif %}{{ seconds_without_zero }}
|
||||
<br /><strong>{{ track.common.genre }}</strong>
|
||||
<br />{{ track.common.year }}</p>
|
||||
|
||||
<ul class="actions stacked">
|
||||
<li><a href="{{ relBase }}/albums/{{ track.slug }}/" class="button">Track</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="image">
|
||||
<img src="{{ site.mediaurl }}/{{ track.albumSlug }}/{{ track.trackSlug }}.jpeg" alt="{{ track.common.title }}" />
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{% endfor %}
|
||||
|
||||
|
||||
|
||||
<section class="wrapper style1 align-center">
|
||||
<div class="inner">
|
||||
<div class="index align-left">
|
||||
<!-- Author -->
|
||||
|
||||
<section>
|
||||
|
||||
<!-- Content -->
|
||||
<div class="content">
|
||||
<!-- post Naviation -->
|
||||
<div style="text-align: center;">
|
||||
<h3>More releases</h3>
|
||||
</div>
|
||||
<div class="post-nav">
|
||||
<div>
|
||||
{% if page.previous.url and page.lang == page.previous.lang %}
|
||||
<h4><a href="{{page.previous.url}}" alt="Read {{page.previous.title}}" title="Read {{page.previous.title}}"><i class="fas fa-arrow-left"></i></a> <a
|
||||
href="{{page.previous.url}}"> {{page.previous.title}}</a></h4>
|
||||
<p style="margin-right: 20px">{{ page.previous.description }}</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="post-nav-next">
|
||||
{% if page.next.url and page.lang == page.next.lang %}
|
||||
<h4><a href="{{page.next.url}}"> {{page.next.title}}</a> <a href="{{page.next.url}}" alt="Read {{page.next.title}}" title="Read {{page.next.title}}"><i
|
||||
class="fas fa-arrow-right"></i></a></h4>
|
||||
<p style="margin-left: 20px">{{ page.next.description }}</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
<!-- End Post Navigation -->
|
||||
</div>
|
||||
</section>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
{% include footer.html %}
|
||||
</div>
|
||||
{% include navigation.html %}
|
||||
{% include scripts.html %}
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
// html5media enables <video> and <audio> tags in all major browsers
|
||||
// External File: http://api.html5media.info/1.1.8/html5media.min.js
|
||||
|
||||
|
||||
// Add user agent as an attribute on the <html> tag...
|
||||
// Inspiration: http://css-tricks.com/ie-10-specific-styles/
|
||||
var b = document.documentElement;
|
||||
b.setAttribute('data-useragent', navigator.userAgent);
|
||||
b.setAttribute('data-platform', navigator.platform);
|
||||
|
||||
|
||||
// HTML5 audio player + playlist controls...
|
||||
// Inspiration: http://jonhall.info/how_to/create_a_playlist_for_html5_audio
|
||||
// Mythium Archive: https://archive.org/details/mythium/
|
||||
jQuery(function ($) {
|
||||
var supportsAudio = !!document.createElement('audio').canPlayType;
|
||||
if (supportsAudio) {
|
||||
var index = 0,
|
||||
playing = false,
|
||||
mediaPath = '',
|
||||
extension = '',
|
||||
tracks = [{% for track in page.tracks %}{
|
||||
"track": {{ track.common.track.no }},
|
||||
"name": "{{ track.common.title }}",
|
||||
"length": "{% assign round_seconds = track.format.duration | round %}{% assign minutes = round_seconds | divided_by: 60 %}{% assign leftover_seconds = minutes | times: 60 %}{{ minutes }}:{{ round_seconds | minus: leftover_seconds }}",
|
||||
"file": "{{ site.mediaurl }}/{{ track.albumSlug }}/{{ track.trackSlug }}"
|
||||
}{% unless forloop.last %},{% endunless %}{% endfor %}],
|
||||
trackCount = tracks.length,
|
||||
npAction = $('#npAction'),
|
||||
npTitle = $('#npTitle'),
|
||||
audio = $('#audio1').bind('play', function () {
|
||||
playing = true;
|
||||
npAction.text('Playing...');
|
||||
}).bind('pause', function () {
|
||||
playing = false;
|
||||
npAction.text('Paused...');
|
||||
}).bind('ended', function () {
|
||||
npAction.text('Paused...');
|
||||
if ((index + 1) < trackCount) {
|
||||
index++;
|
||||
loadTrack(index);
|
||||
audio.play();
|
||||
} else {
|
||||
audio.pause();
|
||||
index = 0;
|
||||
loadTrack(index);
|
||||
}
|
||||
}).get(0),
|
||||
btnPrev = $('#btnPrev').click(function () {
|
||||
if ((index - 1) > -1) {
|
||||
index--;
|
||||
loadTrack(index);
|
||||
if (playing) {
|
||||
audio.play();
|
||||
}
|
||||
} else {
|
||||
audio.pause();
|
||||
index = 0;
|
||||
loadTrack(index);
|
||||
}
|
||||
}),
|
||||
btnNext = $('#btnNext').click(function () {
|
||||
if ((index + 1) < trackCount) {
|
||||
index++;
|
||||
loadTrack(index);
|
||||
if (playing) {
|
||||
audio.play();
|
||||
}
|
||||
} else {
|
||||
audio.pause();
|
||||
index = 0;
|
||||
loadTrack(index);
|
||||
}
|
||||
}),
|
||||
li = $('#plList li').click(function () {
|
||||
var id = parseInt($(this).index());
|
||||
if (id !== index) {
|
||||
playTrack(id);
|
||||
}
|
||||
}),
|
||||
loadTrack = function (id) {
|
||||
$('.plSel').removeClass('plSel');
|
||||
$('#plList li:eq(' + id + ')').addClass('plSel');
|
||||
npTitle.text(tracks[id].name);
|
||||
index = id;
|
||||
audio.src = mediaPath + tracks[id].file + extension;
|
||||
$('audio').attr("data-matomo-title", tracks[id].name);
|
||||
},
|
||||
playTrack = function (id) {
|
||||
loadTrack(id);
|
||||
audio.play();
|
||||
};
|
||||
extension = audio.canPlayType('audio/mpeg') ? '.mp3' : audio.canPlayType('audio/ogg') ? '.ogg' : '';
|
||||
loadTrack(index);
|
||||
}
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
{% include cookie-consent.html %}
|
||||
</body>
|
||||
</html>
|
3
_layouts/blog.html
Normal file
3
_layouts/blog.html
Normal file
|
@ -0,0 +1,3 @@
|
|||
---
|
||||
layout: default
|
||||
---
|
34
_layouts/default.html
Normal file
34
_layouts/default.html
Normal file
|
@ -0,0 +1,34 @@
|
|||
---
|
||||
---
|
||||
<!DOCTYPE HTML>
|
||||
<!--
|
||||
Based on _Story_ by html5up.net | @ajlkn
|
||||
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
Remixed and Jekyllified by Setto
|
||||
-->
|
||||
<html lang="{% if page.lang != site.lang %}{{ page.lang }}{% else %}{{ site.lang }}{% endif %}">
|
||||
<head>
|
||||
|
||||
{% include seo.html %}
|
||||
{% include relBase.html %}
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=yes" />
|
||||
<link rel="stylesheet" href="{{ relBase }}/assets/css/main20200710.css" />
|
||||
|
||||
<link rel="apple-touch-icon" href="{{ site.url }}/apple-touch-icon.png">
|
||||
<link rel="icon" type="image/png" href="{{ site.url }}/touch-icon.png" sizes="192x192">
|
||||
<link rel="shortcut icon" href="{{ site.url }}{{ site.icon }}" type="image/png" />
|
||||
<noscript><link rel="stylesheet" href="{{ relBase }}/assets/css/noscript20200710.css" /></noscript>
|
||||
</head>
|
||||
|
||||
<body id="body">
|
||||
<span id="top" style="display: none;"></span>
|
||||
<!-- Wrapper -->
|
||||
<div id="wrapper" class="divided">
|
||||
{{ content }}
|
||||
</div>
|
||||
{% include navigation.html %}
|
||||
{% include scripts.html %}
|
||||
{% include cookie-consent.html %}
|
||||
</body>
|
||||
</html>
|
3
_layouts/nil.html
Normal file
3
_layouts/nil.html
Normal file
|
@ -0,0 +1,3 @@
|
|||
---
|
||||
---
|
||||
{{ content }}
|
43
_layouts/page.html
Normal file
43
_layouts/page.html
Normal file
|
@ -0,0 +1,43 @@
|
|||
---
|
||||
layout: default
|
||||
---
|
||||
|
||||
{% include relBase.html %}
|
||||
|
||||
<!-- Banner -->
|
||||
<section class="banner onload-image-fade-in onload-content-fade-right style2 fullscreen content-align-center image-position-center" style="min-height:100vh;">
|
||||
|
||||
<div class="content">
|
||||
<h1>{{ page.title }}</h1>
|
||||
<p>{{ page.description }}</p>
|
||||
</div>
|
||||
|
||||
<div class="image">
|
||||
<img src="{{ page.image }}" alt="unfound page" />
|
||||
</div>
|
||||
</section>
|
||||
<!-- Content -->
|
||||
<section class="wrapper style1 align-center">
|
||||
<div class="inner">
|
||||
|
||||
<div class="index align-left">
|
||||
<!-- Author -->
|
||||
<section>
|
||||
{% if page.url != '/cookies/' %}
|
||||
{% if page.url != '/webcreds/' %}
|
||||
{% include author.html %}
|
||||
{% endif %}{% endif %}
|
||||
<!-- Content -->
|
||||
<div class="content">
|
||||
{{ content }}
|
||||
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
|
||||
{% include footer.html %}
|
402
_layouts/post.html
Normal file
402
_layouts/post.html
Normal file
|
@ -0,0 +1,402 @@
|
|||
---
|
||||
---
|
||||
{% if page.category == 'releases' %}
|
||||
<!DOCTYPE HTML>
|
||||
<!--
|
||||
Based on _Story_ by html5up.net | @ajlkn
|
||||
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
Remixed and Jekyllified by Setto
|
||||
-->
|
||||
<html lang="{% if page.lang != site.lang %}{{ page.lang }}{% else %}{{ site.lang }}{% endif %}">
|
||||
<head>
|
||||
|
||||
<link type="application/atom+xml" rel="alternate" href="{{ site.url }}/feed.xml" title="{{ site.name }}" />
|
||||
{% include seo.html %}
|
||||
{% include relBase.html %}
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=yes" />
|
||||
<link rel="stylesheet" href="{{ relBase }}/assets/css/main20200710.css" />
|
||||
<link rel="apple-touch-icon" href="{{ site.url }}/apple-touch-icon.png">
|
||||
<link rel="icon" type="image/png" href="{{ site.url }}/touch-icon.png" sizes="192x192">
|
||||
<link rel="shortcut icon" href="{{ site.url }}{{ site.icon }}" type="image/png" />
|
||||
<noscript><link rel="stylesheet" href="{{ relBase }}/assets/css/noscript20200710.css" /></noscript>
|
||||
</head>
|
||||
<body id="body">
|
||||
<span id="top" style="display: none;"></span>
|
||||
<!-- Wrapper -->
|
||||
<div id="wrapper" class="divided">
|
||||
|
||||
<!-- Banner -->
|
||||
<section
|
||||
class="banner onload-image-fade-in onload-content-fade-right style2 fullscreen content-align-center image-position-center"
|
||||
style="min-height:100vh;">
|
||||
<div class="content editable">
|
||||
<h1 class="editable">{{ page.title }}</h1>
|
||||
<p>{{ page.description }}</p>
|
||||
<ul class="actions stacked">
|
||||
<li><a href="#moe" class="button small smooth-scroll">cheggit!</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="image">
|
||||
<img src="{{ relBase }}{{ page.image }}" alt="{{ page.title }}" class="editable" />
|
||||
</div>
|
||||
</section>
|
||||
<!-- Content -->
|
||||
<section class="wrapper style1 align-center">
|
||||
<div class="inner" style="padding-top: 40px;">
|
||||
<div class="index align-left">
|
||||
<!-- Author -->
|
||||
<section style="padding-top:40px;" id="moe">
|
||||
{% include author.html %}
|
||||
<!-- Content -->
|
||||
<div class="content">
|
||||
|
||||
|
||||
<!-- HERE BEGINS MADNESS -->
|
||||
{% for album in site.albums %}
|
||||
{% if page.album == album.slug %}
|
||||
<!-- Content -->
|
||||
<div class="content">
|
||||
<div id="mainwrap">
|
||||
<div id="nowPlay">
|
||||
<p class="right" id="npTitle" style="font-weight: bold;"></p>
|
||||
<p class="left" id="npAction">Paused...</p>
|
||||
</div>
|
||||
<div id="audiowrap">
|
||||
<div id="audio0">
|
||||
<audio id="audio1" preload="metadata" controls="controls">Your browser does not support HTML5
|
||||
Audio!</audio>
|
||||
</div>{% assign onetracker = album.tracks | size %}
|
||||
{% if onetracker > 1 %}
|
||||
<div id="tracks">
|
||||
<a id="btnPrev"><span class="icon solid fa-fast-backward"></span></a>
|
||||
<a id="btnNext"><span class="icon solid fa-fast-forward"></span></a>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div id="plwrap">
|
||||
<ul id="plList">
|
||||
{% for track in album.tracks %}
|
||||
<li class="">
|
||||
<div class="plItem">
|
||||
<div class="plNum">{{ track.common.track.no }}.</div>
|
||||
<div class="plTitle">{{ track.common.title }}</div>
|
||||
<div class="plLength">{% assign round_seconds = track.format.duration | round %}{% assign minutes = round_seconds | divided_by: 60 %}{% assign leftover_seconds = minutes | times: 60 %}{{ minutes }}:{% assign seconds_without_zero = round_seconds | minus: leftover_seconds %}{% if seconds_without_zero < 10 %}0{% endif %}{{ seconds_without_zero }}</div>
|
||||
</div>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div id="noJSalbum">
|
||||
|
||||
{% for track in album.tracks %}
|
||||
|
||||
<div class="plItem">
|
||||
<div class="plNum">{{ track.common.track.no }}.</div>
|
||||
<div class="plTitle"><a href="{{ site.mediaurl }}/{{ track.albumSlug }}/{{ track.trackSlug }}.mp3">{{ track.common.title }} </a></div>
|
||||
<div class="plLength">{% assign round_seconds = track.format.duration | round %}{% assign minutes = round_seconds | divided_by: 60 %}{% assign leftover_seconds = minutes | times: 60 %}{{ minutes }}:{{ round_seconds | minus: leftover_seconds }}</div>
|
||||
</div>
|
||||
|
||||
{% endfor %}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="content editable" style="font-family: monospace;font-size: 16px;margin-top:60px;">
|
||||
{{ content }}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{% include streamer.html %}
|
||||
<!-- Tracks -->
|
||||
{% for track in album.tracks %}
|
||||
|
||||
<section
|
||||
class="spotlight style4 orient-{% cycle 'left', 'right' %} content-align-left image-position-center onscroll-image-fade-in"
|
||||
{% if forloop.index == 1 %}style="box-shadow: none;" {% endif %}>
|
||||
<div class="content">
|
||||
<h3>{{ track.common.title }}</h3>
|
||||
<p>
|
||||
{% assign round_seconds = track.format.duration | round %}{% assign minutes = round_seconds | divided_by: 60 %}{% assign leftover_seconds = minutes | times: 60 %}{{ minutes }}:{{ round_seconds | minus: leftover_seconds }}
|
||||
<br /><strong>{{ track.common.genre }}</strong>
|
||||
<br />{{ track.common.year }}</p>
|
||||
|
||||
<ul class="actions stacked">
|
||||
<li><a href="{{ relBase }}/albums/{{ track.slug }}/" class="button">Track</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="image">
|
||||
<img src="{{ site.mediaurl }}/{{ track.albumSlug }}/{{ track.trackSlug }}.jpeg" alt="{{ track.common.title }}" />
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{% endfor %}
|
||||
|
||||
<!-- END Tracks -->
|
||||
|
||||
{% break %} {% endif %} {% endfor %}
|
||||
<!-- HERE ENDS MADNESS -->
|
||||
|
||||
|
||||
<section class="wrapper style1 align-center">
|
||||
<div class="inner">
|
||||
<div class="index align-left">
|
||||
<!-- Author -->
|
||||
|
||||
<section>
|
||||
|
||||
<!-- Content -->
|
||||
<div class="content">
|
||||
<!-- post Naviation -->
|
||||
<div style="text-align: center;">
|
||||
<h3>{{ site.data.translations[page.lang].post-nav}}</h3>
|
||||
</div>
|
||||
<div class="post-nav">
|
||||
<div>
|
||||
{% if page.previous.url and page.lang == page.previous.lang %}
|
||||
<h4><a href="{{page.previous.url}}" alt="Read {{page.previous.title}}" title="Read {{page.previous.title}}"><i class="fas fa-arrow-left"></i></a> <a
|
||||
href="{{page.previous.url}}"> {{page.previous.title}}</a></h4>
|
||||
<p style="margin-right: 20px">{{ page.previous.description }}</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="post-nav-next">
|
||||
{% if page.next.url and page.lang == page.next.lang %}
|
||||
<h4><a href="{{page.next.url}}"> {{page.next.title}}</a> <a href="{{page.next.url}}" alt="Read {{page.next.title}}" title="Read {{page.next.title}}"><i
|
||||
class="fas fa-arrow-right"></i></a></h4>
|
||||
<p style="margin-left: 20px">{{ page.next.description }}</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
<!-- End Post Navigation -->
|
||||
</div>
|
||||
</section>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
{% include footer.html %}
|
||||
</div>
|
||||
{% include navigation.html %}
|
||||
{% include scripts.html %}
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
// html5media enables <video> and <audio> tags in all major browsers
|
||||
// External File: http://api.html5media.info/1.1.8/html5media.min.js
|
||||
|
||||
|
||||
// Add user agent as an attribute on the <html> tag...
|
||||
// Inspiration: http://css-tricks.com/ie-10-specific-styles/
|
||||
var b = document.documentElement;
|
||||
b.setAttribute('data-useragent', navigator.userAgent);
|
||||
b.setAttribute('data-platform', navigator.platform);
|
||||
|
||||
|
||||
// HTML5 audio player + playlist controls...
|
||||
// Inspiration: http://jonhall.info/how_to/create_a_playlist_for_html5_audio
|
||||
// Mythium Archive: https://archive.org/details/mythium/
|
||||
jQuery(function ($) {
|
||||
var supportsAudio = !!document.createElement('audio').canPlayType;
|
||||
if (supportsAudio) {
|
||||
var index = 0,
|
||||
playing = false,
|
||||
mediaPath = '',
|
||||
extension = '',
|
||||
tracks = [{% for album in site.albums %}{% if page.album == album.slug %}{% for track in album.tracks %}{
|
||||
"track": {{ track.common.track.no }},
|
||||
"name": "{{ track.common.title }}",
|
||||
"length": "{% assign round_seconds = track.format.duration | round %}{% assign minutes = round_seconds | divided_by: 60 %}{% assign leftover_seconds = minutes | times: 60 %}{{ minutes }}:{{ round_seconds | minus: leftover_seconds }}",
|
||||
"file": "{{ site.mediaurl }}/{{ track.albumSlug }}/{{ track.trackSlug }}"
|
||||
}{% unless forloop.last %},{% endunless %}{% endfor %}{% break %} {% endif %}{% endfor %}],
|
||||
trackCount = tracks.length,
|
||||
npAction = $('#npAction'),
|
||||
npTitle = $('#npTitle'),
|
||||
audio = $('#audio1').bind('play', function () {
|
||||
playing = true;
|
||||
npAction.text('Playing...');
|
||||
}).bind('pause', function () {
|
||||
playing = false;
|
||||
npAction.text('Paused...');
|
||||
}).bind('ended', function () {
|
||||
npAction.text('Paused...');
|
||||
if ((index + 1) < trackCount) {
|
||||
index++;
|
||||
loadTrack(index);
|
||||
audio.play();
|
||||
} else {
|
||||
audio.pause();
|
||||
index = 0;
|
||||
loadTrack(index);
|
||||
}
|
||||
}).get(0),
|
||||
btnPrev = $('#btnPrev').click(function () {
|
||||
if ((index - 1) > -1) {
|
||||
index--;
|
||||
loadTrack(index);
|
||||
if (playing) {
|
||||
audio.play();
|
||||
}
|
||||
} else {
|
||||
audio.pause();
|
||||
index = 0;
|
||||
loadTrack(index);
|
||||
}
|
||||
}),
|
||||
btnNext = $('#btnNext').click(function () {
|
||||
if ((index + 1) < trackCount) {
|
||||
index++;
|
||||
loadTrack(index);
|
||||
if (playing) {
|
||||
audio.play();
|
||||
}
|
||||
} else {
|
||||
audio.pause();
|
||||
index = 0;
|
||||
loadTrack(index);
|
||||
}
|
||||
}),
|
||||
li = $('#plList li').click(function () {
|
||||
var id = parseInt($(this).index());
|
||||
if (id !== index) {
|
||||
playTrack(id);
|
||||
}
|
||||
}),
|
||||
loadTrack = function (id) {
|
||||
$('.plSel').removeClass('plSel');
|
||||
$('#plList li:eq(' + id + ')').addClass('plSel');
|
||||
npTitle.text(tracks[id].name);
|
||||
index = id;
|
||||
audio.src = mediaPath + tracks[id].file + extension;
|
||||
$('audio').attr("data-matomo-title", tracks[id].name);
|
||||
},
|
||||
playTrack = function (id) {
|
||||
loadTrack(id);
|
||||
audio.play();
|
||||
};
|
||||
extension = audio.canPlayType('audio/mpeg') ? '.mp3' : audio.canPlayType('audio/ogg') ? '.ogg' : '';
|
||||
loadTrack(index);
|
||||
}
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
{% include cookie-consent.html %}
|
||||
</body>
|
||||
</html>
|
||||
{% else %}
|
||||
|
||||
<!DOCTYPE HTML>
|
||||
<!--
|
||||
Based on _Story_ by html5up.net | @ajlkn
|
||||
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
Remixed and Jekyllified by Setto
|
||||
-->
|
||||
<html lang="{% if page.lang != site.lang %}{{ page.lang }}{% else %}{{ site.lang }}{% endif %}">
|
||||
<head>
|
||||
|
||||
<link type="application/atom+xml" rel="alternate" href="{{ site.url }}/feed.xml" title="{{ site.name }}" />
|
||||
{% include seo.html %}
|
||||
{% include relBase.html %}
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=yes" />
|
||||
<link rel="stylesheet" href="{{ relBase }}/assets/css/main20200710.css" />
|
||||
|
||||
<link rel="apple-touch-icon" href="{{ site.url }}/apple-touch-icon.png">
|
||||
<link rel="icon" type="image/png" href="{{ site.url }}/touch-icon.png" sizes="192x192">
|
||||
<link rel="shortcut icon" href="{{ site.url }}{{ site.icon }}" type="image/png" />
|
||||
<noscript><link rel="stylesheet" href="{{ relBase }}/assets/css/noscript20200710.css" /></noscript>
|
||||
</head>
|
||||
|
||||
<body id="body">
|
||||
<span id="top" style="display: none;"></span>
|
||||
<!-- Wrapper -->
|
||||
<div id="wrapper" class="divided">
|
||||
|
||||
<!-- Banner -->
|
||||
<section class="banner onload-image-fade-in onload-content-fade-right style2 fullscreen content-align-center image-position-center" style="min-height:85vh;">
|
||||
|
||||
<div class="content">
|
||||
<h1>{{ page.title }}</h1>
|
||||
<p>{{ page.description }}</p>
|
||||
</div>
|
||||
|
||||
<div class="image">
|
||||
<img src="{{ page.image }}" alt="unfound page" />
|
||||
</div>
|
||||
</section>
|
||||
<!-- Content -->
|
||||
<section class="wrapper style1 align-center">
|
||||
<div class="inner">
|
||||
|
||||
<div class="index align-left">
|
||||
<!-- Author -->
|
||||
<section>
|
||||
{% if page.url != '/cookies/' %}
|
||||
{% if page.url != '/webcreds/' %}
|
||||
{% include author.html %}
|
||||
{% endif %}{% endif %}
|
||||
<!-- Content -->
|
||||
<div class="content editable">
|
||||
{{ content }}
|
||||
{% if page.link != nil %}
|
||||
<ul class="actions stacked">
|
||||
<li><a href="{{ page.link }}?ref=SakrecoerSentMe" target="_blank" rel="noopener" class="button small">cheggit!</a></li>
|
||||
</ul>
|
||||
{% endif %}
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="wrapper style1 align-center">
|
||||
<div class="inner">
|
||||
<div class="index align-left">
|
||||
<!-- Author -->
|
||||
|
||||
<section>
|
||||
|
||||
<!-- Content -->
|
||||
<div class="content">
|
||||
<!-- post Naviation -->
|
||||
<div style="text-align: center;">
|
||||
<h3>{{ site.data.translations[page.lang].post-nav}}</h3>
|
||||
</div>
|
||||
<div class="post-nav">
|
||||
<div>
|
||||
{% if page.previous.url and page.lang == page.previous.lang %}
|
||||
<h4><a href="{{page.previous.url}}" alt="Read {{page.previous.title}}" title="Read {{page.previous.title}}"><i class="fas fa-arrow-left"></i></a> <a
|
||||
href="{{page.previous.url}}"> {{page.previous.title}}</a></h4>
|
||||
<p style="margin-right: 20px">{{ page.previous.description }}</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="post-nav-next">
|
||||
{% if page.next.url and page.lang == page.next.lang %}
|
||||
<h4><a href="{{page.next.url}}"> {{page.next.title}}</a> <a href="{{page.next.url}}" alt="Read {{page.next.title}}" title="Read {{page.next.title}}"><i
|
||||
class="fas fa-arrow-right"></i></a></h4>
|
||||
<p style="margin-left: 20px">{{ page.next.description }}</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
<!-- End Post Navigation -->
|
||||
</div>
|
||||
</section>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{% include footer.html %}
|
||||
|
||||
</div>
|
||||
{% include navigation.html %}
|
||||
{% include scripts.html %}
|
||||
{% include cookie-consent.html %}
|
||||
</body>
|
||||
</html>
|
||||
{% endif %}
|
154
_layouts/track.html
Normal file
154
_layouts/track.html
Normal file
|
@ -0,0 +1,154 @@
|
|||
---
|
||||
layout: default
|
||||
---
|
||||
|
||||
{% include relBase.html %}
|
||||
<!-- Banner -->
|
||||
<section
|
||||
class="banner onload-image-fade-in onload-content-fade-right style3 fullscreen content-align-center image-position-center" style="background-image:url('{{ site.mediaurl }}/{{ page.slug }}.jpeg');background-size: cover; background-repeat: no-repeat;">
|
||||
<div style="z-index:0;position:absolute; top:0; left:0; width:100%;min-height:100%;background-color: rgba(13, 13 ,13, 0.5);"></div>
|
||||
<div class="content" style="z-index:1">
|
||||
<h1 style="margin-top:80px">{{ page.common.title }}</h1>
|
||||
<p><strong>{% for style in page.common.genre %}{{ style }}{% endfor %}</strong> by <strong>{{ page.common.artist }}</strong>
|
||||
<br />{{ page.common.year }}
|
||||
</p>
|
||||
|
||||
<p><strong><span id="tracktime"></span></strong><span id="{{ page.common.title | slugify | remove: '-' }}"></span></strong></p>
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
var {{ page.common.title | slugify | remove: '-' }}timestamp = {{ page.format.duration | round }};
|
||||
var {{ page.common.title | slugify | remove: '-' }}hours = Math.floor({{ page.common.title | slugify | remove: '-' }}timestamp / 60 / 60);
|
||||
var {{ page.common.title | slugify | remove: '-' }}minutes = Math.floor({{ page.common.title | slugify | remove: '-' }}timestamp / 60) - ({{ page.common.title | slugify | remove: '-' }}hours * 60);
|
||||
var {{ page.common.title | slugify | remove: '-' }}seconds = {{ page.common.title | slugify | remove: '-' }}timestamp % 60;
|
||||
var {{ page.common.title | slugify | remove: '-' }}formatted = {{ page.common.title | slugify | remove: '-' }}hours.toString().padStart(2, '0') + ':' + {{ page.common.title | slugify | remove: '-' }}minutes.toString().padStart(2, '0') + ':' + {{ page.common.title | slugify | remove: '-' }}seconds.toString().padStart(2, '0');
|
||||
var theSpan = document.getElementById("{{ page.common.title | slugify | remove: '-' }}");
|
||||
theSpan.innerHTML = {{ page.common.title | slugify | remove: '-' }}formatted;
|
||||
</script>
|
||||
|
||||
|
||||
<ul class="actions stacked">
|
||||
<li><button id="mu_pause" class="button icon solid fa-play">Play dat!</button></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="image">
|
||||
<img src="{{ site.mediaurl }}/{{ page.slug }}.jpeg" alt="{{ page.title }} logo" id="coverart" />
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Content -->
|
||||
<section class="wrapper style1 align-center">
|
||||
<div class="inner" style="padding-top:40px">
|
||||
<div class="index align-left">
|
||||
<section style="padding-top:40px">
|
||||
{% include author.html %}
|
||||
<!-- Content -->
|
||||
{% if page.all.UNSYNCEDLYRICS != nil %}
|
||||
<div class="content">
|
||||
{% unless page.all.UNSYNCEDLYRICS == '' %}<h2>Lyrics</h2>{% endunless %}
|
||||
<p style="font-family: monospace;font-size:16px;">
|
||||
{{ page.all.UNSYNCEDLYRICS | newline_to_br }}
|
||||
</p>
|
||||
<p>credits:
|
||||
{{ page.all.Comment }}
|
||||
</p>
|
||||
</div>
|
||||
{% endif %}
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{% include streamer.html %}
|
||||
<!-- Page navigation -->
|
||||
<section class="wrapper style1 align-center">
|
||||
<div class="inner">
|
||||
<div class="index align-left">
|
||||
<!-- Author -->
|
||||
|
||||
<section>
|
||||
<!-- Content -->
|
||||
<div class="content">
|
||||
<!-- post Naviation -->
|
||||
<div style="text-align: center;">
|
||||
<h3>Play more songs grom this release</h3>
|
||||
</div>
|
||||
<div class="post-nav">
|
||||
<div>
|
||||
{% if page.previous.url and page.lang == page.previous.lang %}
|
||||
<h4><a href="{{ relBase }}/albums/{{ page.previousTrack.slug }}/" alt="Read {{ page.previousTrack.common.title }}" title="Read {{ page.previousTrack.common.title }}"><i class="fas fa-arrow-left"></i></a> <a
|
||||
href="{{ relBase }}/albums/{{ page.previousTrack.slug }}/"> {{ page.previousTrack.common.title }}</a>
|
||||
</h4>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="post-nav-next">
|
||||
{% if page.next.url and page.lang == page.next.lang %}
|
||||
<h4><a href="{{ relBase }}/albums/{{ page.nextTrack.slug }}/"> {{ page.nextTrack.common.title }}</a> <a
|
||||
href="{{ relBase }}/albums/{{ page.nextTrack.slug }}/" alt="Read {{ page.nextTrack.common.title }}" title="Read {{ page.nextTrack.common.title }}"><i class="fas fa-arrow-right"></i></a></h4>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
<!-- End Post Navigation -->
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Audio player-->
|
||||
<audio autoplay preload="metadata" data-matomo-title="{{ page.common.title }}">
|
||||
<source src="{{ site.mediaurl }}/{{ page.slug }}.mp3" type="audio/mpeg" ontimeupdate='updateTrackTime(this);' />
|
||||
<h1>Your browser isn't ready for so much hotness. Use the download-link instead.</h1>.
|
||||
</audio>
|
||||
{% include footer.html %}
|
||||
|
||||
<script type="text/javascript">
|
||||
function loadUrl(newLocation) {
|
||||
window.location = newLocation;
|
||||
return false;
|
||||
}
|
||||
|
||||
var mu = document.getElementsByTagName("audio")[0];
|
||||
var pauseButton = document.getElementById("mu_pause");
|
||||
var spincover = document.getElementById("coverart");
|
||||
|
||||
mu.addEventListener('ended', function () {
|
||||
// only functional if "loop" is removed
|
||||
mu.pause();
|
||||
mu.currentTime = 0;
|
||||
loadUrl("{{ relBase }}/albums/{{ page.nextTrack.slug }}/"); return false;
|
||||
});
|
||||
mu.onplaying = function() {
|
||||
pauseButton.innerHTML = "Pause";
|
||||
pauseButton.classList.remove("fa-play");
|
||||
pauseButton.classList.add("fa-pause");
|
||||
spincover.classList.add("spinnit");
|
||||
spincover.classList.remove("paused");
|
||||
};
|
||||
|
||||
pauseButton.addEventListener("click", function () {
|
||||
if (mu.paused) {
|
||||
mu.play();
|
||||
|
||||
}
|
||||
else {
|
||||
mu.pause();
|
||||
pauseButton.innerHTML = "Resume";
|
||||
pauseButton.classList.add("fa-play");
|
||||
pauseButton.classList.remove("fa-pause");
|
||||
spincover.classList.add("paused");
|
||||
}
|
||||
});
|
||||
|
||||
mu.addEventListener('timeupdate', function () {
|
||||
var timestamp = Math.floor(mu.currentTime);
|
||||
var hours = Math.floor(timestamp / 60 / 60);
|
||||
var minutes = Math.floor(timestamp / 60) - (hours * 60);
|
||||
var seconds = timestamp % 60;
|
||||
var formatted = hours.toString().padStart(2, '0') + ':' + minutes.toString().padStart(2, '0') + ':' + seconds.toString().padStart(2, '0');
|
||||
var thecurrentSpan = document.getElementById("tracktime");
|
||||
thecurrentSpan.innerHTML = formatted + ' / ';
|
||||
});
|
||||
|
||||
</script>
|
44
_posts/2018-12-17-satoshi-mon-ami.md
Normal file
44
_posts/2018-12-17-satoshi-mon-ami.md
Normal file
|
@ -0,0 +1,44 @@
|
|||
---
|
||||
title: Satoshi Mon Ami
|
||||
author: setto
|
||||
date: 2018-12-17 19:00:00
|
||||
description: >-
|
||||
The 2 tracks of laid back cloud rap are tales of daily digital life-struggles.
|
||||
When day-to-day communication blurs the line between the virtual and real.
|
||||
image: /images/posts/1-k-as-tu-fait-de-nous-.jpeg
|
||||
category: releases
|
||||
credits: ''
|
||||
album: satoshi-mon-ami
|
||||
stores:
|
||||
- name: Bandcamp
|
||||
url: 'https://shop.basspistol.com/album/satoshi-mon-ami'
|
||||
icon: fa-bandcamp
|
||||
download: true
|
||||
- name: Spotify
|
||||
url: 'https://open.spotify.com/album/116YJCcI5T9Iw9UBQCvJWF'
|
||||
icon: fa-spotify
|
||||
download: false
|
||||
- name: Apple Music
|
||||
url: >-
|
||||
https://itunes.apple.com/us/album/satoshi-mon-ami-single/1447055511?uo=4&app=music&at=1001lry3&ct=dashboard
|
||||
img:
|
||||
icon: fa-apple
|
||||
download: false
|
||||
- name: Google Play
|
||||
url: >-
|
||||
https://play.google.com/store/music/album/%E5%BE%92_setto_%E3%82%BB%E3%83%83%E3%83%88_Satoshi_mon_ami?id=Bygwvidl75kflmclmchl6wc5uba
|
||||
icon: fa-google-play
|
||||
download: false
|
||||
- name: Deezer
|
||||
url: 'https://www.deezer.com/album/82118382'
|
||||
icon: fa-creative-commons-sampling
|
||||
download: false
|
||||
- name: Napster
|
||||
url: 'https://us.napster.com/artist/-setto-/album/satoshi-mon-ami'
|
||||
icon: fa-napster
|
||||
download: false
|
||||
---
|
||||
|
||||
The 2 tracks of laid back cloud rap are tales of daily digital life-struggles. When day-to-day communication blurs the line between the virtual and real.
|
||||
|
||||
Being close to someone, without them knowing, anonymously and obsessively through a device. Decrypting interconnected sub-stories from every node in the graph and losing your mind on it.What's the latest story? FOMO to the max, The Fear Of Missing Out!
|
42
_posts/2019-02-07-darkweb.md
Normal file
42
_posts/2019-02-07-darkweb.md
Normal file
|
@ -0,0 +1,42 @@
|
|||
---
|
||||
title: Darkweb
|
||||
author: setto
|
||||
date: 2019-02-07 19:07:00
|
||||
description: >-
|
||||
As dystopian as the present might seem on-line, there is always room for the
|
||||
strange in the cypher...
|
||||
image: /images/posts/2-darkweb-instrumental-.jpeg
|
||||
category: releases
|
||||
credits: 'Cover-art by <a href="https://ritarn.com/" target="_blank" rel="noopener">Mattias “Ritarn” Lindström</a>'
|
||||
album: darkweb
|
||||
stores:
|
||||
- name: Bandcamp
|
||||
url: 'https://shop.basspistol.com/album/darkweb'
|
||||
icon: fa-bandcamp
|
||||
download: true
|
||||
- name: Spotify
|
||||
url: 'https://open.spotify.com/album/0meSZO7BeGoHJc6BWnRvhN'
|
||||
icon: fa-spotify
|
||||
download: false
|
||||
- name: Apple Music
|
||||
url: 'https://itunes.apple.com/us/album/darkweb-single/1449847586'
|
||||
icon: fa-apple
|
||||
download: false
|
||||
- name: Google Play
|
||||
url: >-
|
||||
https://play.google.com/store/music/album/%E5%BE%92_setto_%E3%82%BB%E3%83%83%E3%83%88_Darkweb?id=Bcrzzrtj7yfcyladynit7hg4age
|
||||
icon: fa-google-play
|
||||
download: false
|
||||
- name: Deezer
|
||||
url: 'https://www.deezer.com/fr/album/84669482'
|
||||
icon: fa-creative-commons-sampling
|
||||
download: false
|
||||
- name: Napster
|
||||
url: 'https://us.napster.com/artist/-setto-/album/darkweb-single'
|
||||
icon: fa-napster
|
||||
download: false
|
||||
---
|
||||
|
||||
As dystopian as the present might seem on-line, there is always room for the strange in the cypher.
|
||||
|
||||
At the end of the tunnel through the flashy but controlled cyberspace we call the "Internet", there is a light of hope for the underground.
|
20
_posts/2019-12-12-cyber-grany.md
Normal file
20
_posts/2019-12-12-cyber-grany.md
Normal file
|
@ -0,0 +1,20 @@
|
|||
---
|
||||
title: Granny is a cyborg now
|
||||
author: setto
|
||||
date: 2019-12-12 03:03:00
|
||||
description: Jazzy Cybersoul with a hint of 303 baselines.
|
||||
image: /images/posts/1-grandma-got-the-ssh-keys.jpeg
|
||||
category: releases
|
||||
layout: post
|
||||
credits:
|
||||
album: cyber-grany
|
||||
stores:
|
||||
- name:
|
||||
url:
|
||||
icon:
|
||||
download: false
|
||||
---
|
||||
|
||||
My grandmother, 93, added me on social media yesterday. So I called her. Long-chat good talk. TL;DR Damn what a woman\! She told me she had a roll-walker. I said "we're in the future now Grandma, you're a cyborg, half machine\!"
|
||||
|
||||
She laughed and acknowledge it was a marvellous invention\!
|
27
_posts/2020-04-19-live-with-hardware.md
Normal file
27
_posts/2020-04-19-live-with-hardware.md
Normal file
|
@ -0,0 +1,27 @@
|
|||
---
|
||||
title: Live with hardware
|
||||
author: setto
|
||||
date: 2020-04-19 07:07:00
|
||||
description: >-
|
||||
There is a weird meta-core to anything social exchange on internet that I
|
||||
can't get my finger on. Assumptions and projections that I think partially
|
||||
stem from the lack in body language
|
||||
image: /images/posts/1-ep-life-of-a-dudelini.jpeg
|
||||
category: releases
|
||||
layout: post
|
||||
credits:
|
||||
album: live-with-hardware
|
||||
stores:
|
||||
- name:
|
||||
url:
|
||||
icon:
|
||||
download: false
|
||||
---
|
||||
|
||||
There is a weird meta-core to anything social exchange on internet that I can't get my finger on. Assumptions and projections that I think partially stem from the lack in body language and the fact that we tend to be alone with our devices when we exchange. Even when we do so while our physical self is in a room full of friends. One of it's symptoms is the *endorsement paradox,* for lack of better words. At some point it was common to see Twitter bios with the line *"retweets \!= Endorsement".* It might have a better name, but that "endorsement paradox" is something I feel heavily used as a propaganda strategy. The thing is, there is always someone in anyone's acquaintances that will resonate to shared info and critique in unexpected ways. For example some unspeakable parties triggered everyone to a point where everyone got so obsessed that everyone kept talking about those parties non stop. Basically taking said unspeakable parties out of the void they were in, and promoting them into a mass that had to be accounted for. I'm not saying unspeakable party propaganda should be ignored, but I think some information is better dissected away from public spaces where there is no control over the dimension of time since the discussion can keep on forever, even when everyone involved at first have moved on. Like that which happened to 4chan.
|
||||
|
||||
It takes at least 2 to have a dialogue. And to achieve that plurality in cyberspace seems to require a lot of effort. Probably due to that aforementioned conflict between solitude and time-traversing company. "Company" as in being accompanied and time-traversing because what we record today can be used in the future, and in the future we might use recordings from the past.
|
||||
|
||||
Either way, there is always something that escapes me when I try to thinker about exchange of information that pertain to the power limbo between humans. Hence the idea of a meta core: like a Russian doll. After all information is vehicular to energy. Be it human or robot information exchange: an impulse that turns a turbine on, a poem that make your heart beat faster…
|
||||
|
||||
Audio extracted from the 360 video of [this jam](/hw-jam/) recorded a while back.
|
16
_posts/_defaults.md
Normal file
16
_posts/_defaults.md
Normal file
|
@ -0,0 +1,16 @@
|
|||
---
|
||||
title:
|
||||
author:
|
||||
date:
|
||||
description:
|
||||
image:
|
||||
category:
|
||||
layout:
|
||||
credits: ''
|
||||
album:
|
||||
stores:
|
||||
- name:
|
||||
url:
|
||||
icon:
|
||||
download: false
|
||||
---
|
481
_sass/_set.scss
Normal file
481
_sass/_set.scss
Normal file
|
@ -0,0 +1,481 @@
|
|||
|
||||
|
||||
/* Animation */
|
||||
@-webkit-keyframes infiniteRotate {
|
||||
0% { -webkit-transform: rotate(0deg); }
|
||||
100% { -webkit-transform: rotate(360deg); }
|
||||
}
|
||||
|
||||
@keyframes infinite-rotate {
|
||||
0% { -webkit-transform: rotate(0deg); }
|
||||
100% { -webkit-transform: rotate(360deg); }
|
||||
}
|
||||
@-moz-keyframes infinite-rotate {
|
||||
0% { -webkit-transform: rotate(0deg); }
|
||||
100% { -webkit-transform: rotate(360deg); }
|
||||
}
|
||||
|
||||
|
||||
|
||||
@-webkit-keyframes backgroundBlink {
|
||||
0%{background-position:73% 0%}
|
||||
50%{background-position:28% 100%}
|
||||
100%{background-position:73% 0%}
|
||||
}
|
||||
@-moz-keyframes backgroundBlink {
|
||||
0%{background-position:73% 0%}
|
||||
50%{background-position:28% 100%}
|
||||
100%{background-position:73% 0%}
|
||||
}
|
||||
@keyframes backgroundBlink {
|
||||
0%{background-position:73% 0%}
|
||||
50%{background-position:28% 100%}
|
||||
100%{background-position:73% 0%}
|
||||
}
|
||||
|
||||
@-webkit-keyframes BackgroundFlow {
|
||||
0%{background-position:0% 50%}
|
||||
50%{background-position:100% 50%}
|
||||
100%{background-position:0% 50%}
|
||||
}
|
||||
@-moz-keyframes BackgroundFlow {
|
||||
0%{background-position:0% 50%}
|
||||
50%{background-position:100% 50%}
|
||||
100%{background-position:0% 50%}
|
||||
}
|
||||
@keyframes BackgroundFlow {
|
||||
0%{background-position:0% 100%}
|
||||
50%{background-position:100% 0%}
|
||||
100%{background-position:0% 100%}
|
||||
}
|
||||
|
||||
.slow-background {
|
||||
-webkit-animation: BackgroundFlow 200s ease infinite;
|
||||
-moz-animation: BackgroundFlow 200s ease infinite;
|
||||
animation: BackgroundFlow 200s ease infinite;
|
||||
}
|
||||
|
||||
.spinnit {
|
||||
|
||||
-webkit-animation: infiniteRotate 2s linear infinite; /* Safari */
|
||||
-moz-animation: infiniteRotate 2s linear infinite;
|
||||
animation: infiniteRotate 2s linear infinite;
|
||||
}
|
||||
.paused {
|
||||
animation-play-state: paused;
|
||||
}
|
||||
|
||||
|
||||
/* NAVIGATION */
|
||||
/* Style the navbar */
|
||||
#navbar {
|
||||
z-index: 100000;
|
||||
}
|
||||
#logo {
|
||||
padding:10px;
|
||||
z-index: 10000;
|
||||
-webkit-transition: filter 400ms ease-in;
|
||||
-moz-transition: filter 400ms ease-in;
|
||||
transition: filter 400ms ease-in;
|
||||
|
||||
}
|
||||
.logo:hover {
|
||||
filter: blur(0px);
|
||||
-webkit-transition: filter 400ms ease-in;
|
||||
-moz-transition: filter 400ms ease-in;
|
||||
transition: filter 400ms ease-in;
|
||||
|
||||
}
|
||||
.logo {
|
||||
filter: blur(20px);
|
||||
text-decoration: none;
|
||||
position: fixed;
|
||||
top:20px;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
width: 300px;
|
||||
height: 95px;
|
||||
background-color: transparent;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center;
|
||||
background-size: 95% 95%;
|
||||
-webkit-transition: all 400ms ease-in;
|
||||
-moz-transition: all 400ms ease-in;
|
||||
transition: all 400ms ease-in;
|
||||
box-shadow: none;
|
||||
border-radius: 20px;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
|
||||
}
|
||||
.sticky {
|
||||
filter: blur(0px);
|
||||
-webkit-transition: filter 400ms ease-in;
|
||||
-moz-transition: filter 400ms ease-in;
|
||||
transition: filter 400ms ease-in;
|
||||
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center;
|
||||
background-size: 95% 95%;
|
||||
-webkit-transition: all 400ms ease-in;
|
||||
-moz-transition: all 400ms ease-in;
|
||||
transition: all 400ms ease-in;
|
||||
|
||||
}
|
||||
|
||||
|
||||
nav {
|
||||
position: absolute;
|
||||
width: 300px;
|
||||
|
||||
max-height: 90vh;
|
||||
max-width: 90vw;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
background-color: _palette(bg);
|
||||
border-radius: 20px;
|
||||
padding: 20px;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
|
||||
|
||||
ul {
|
||||
margin: auto;
|
||||
|
||||
width: 100%
|
||||
|
||||
}
|
||||
li {
|
||||
list-style-type: none;
|
||||
margin: 10px;
|
||||
width: 80%;
|
||||
padding: 0;
|
||||
a {
|
||||
width: 100%;
|
||||
display: block;
|
||||
margin: auto !important;
|
||||
font-size: 14px
|
||||
}
|
||||
}
|
||||
}
|
||||
.blurredout {
|
||||
filter: blur(5px);
|
||||
-webkit-transition: filter 400ms ease-in;
|
||||
-moz-transition: filter 400ms ease-in;
|
||||
transition: filter 400ms ease-in;
|
||||
}
|
||||
|
||||
#wrapper {
|
||||
-webkit-transition: filter 400ms ease-in;
|
||||
-moz-transition: filter 400ms ease-in;
|
||||
transition: filter 400ms ease-in;
|
||||
}
|
||||
.modalDialog {
|
||||
position: fixed;
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
background: _palette(fg-light);
|
||||
z-index: 11;
|
||||
opacity:0;
|
||||
-webkit-transition: opacity 400ms ease-in;
|
||||
-moz-transition: opacity 400ms ease-in;
|
||||
transition: opacity 400ms ease-in;
|
||||
pointer-events: none;
|
||||
|
||||
}
|
||||
|
||||
.modalDialog:target {
|
||||
opacity:1;
|
||||
pointer-events: auto;
|
||||
}
|
||||
|
||||
.modalDialog > div {
|
||||
width: 80%;
|
||||
max-width: 1100px;
|
||||
max-height: 80vh;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
position: relative;
|
||||
margin: 100px auto;
|
||||
padding: 20px;
|
||||
border-radius: 3px;
|
||||
background: rgb(0, 31, 36);
|
||||
background: -moz-linear-gradient(#000, rgb(0, 31, 36));
|
||||
background: -webkit-linear-gradient(#000, rgb(0, 31, 36));
|
||||
background: -o-linear-gradient(#000, rgb(0, 31, 36));
|
||||
}
|
||||
|
||||
|
||||
.close-button {
|
||||
background-color: #FFFFFF;
|
||||
color: _palette(accent-dark);
|
||||
line-height: 48px;
|
||||
position: absolute;
|
||||
right: -12px;
|
||||
text-align: center;
|
||||
top: -10px;
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
text-decoration: none;
|
||||
font-weight: bold;
|
||||
-webkit-border-radius: 48px;
|
||||
-moz-border-radius: 48px;
|
||||
border-radius: 48px;
|
||||
-moz-box-shadow: 1px 1px 3px #000;
|
||||
-webkit-box-shadow: 1px 1px 3px #000;
|
||||
box-shadow: 1px 1px 3px #000;
|
||||
transition: all 400ms ease-in;
|
||||
}
|
||||
|
||||
.close-button:hover {
|
||||
background-color: _palette(accent);
|
||||
color: #FFFFFF;
|
||||
}
|
||||
|
||||
#closearea {
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
||||
}
|
||||
|
||||
//* POSTS *//
|
||||
|
||||
#post-text {
|
||||
padding-top: 1rem;
|
||||
}
|
||||
//* FOOTER *//
|
||||
|
||||
#footer {
|
||||
|
||||
background-color: _palette(fg);
|
||||
color: _palette(bg);
|
||||
box-shadow: inset 0 10px 10px 0 rgba(0, 45, 107, 0.25) !important;
|
||||
|
||||
h1, h2, h3, h4, h5, p, a, strong {
|
||||
color: _palette(bg);
|
||||
}
|
||||
a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.footflex {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-evenly;
|
||||
div {
|
||||
text-align: left;
|
||||
flex: 0 1 300px;
|
||||
max-width: 300px;
|
||||
margin: 80px 80px 0 80px;
|
||||
|
||||
ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
li {
|
||||
list-style: none;
|
||||
border-bottom: 1px solid _palette(bg);
|
||||
line-height: 3em;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
.style2 {
|
||||
&:before {
|
||||
box-shadow: inset 0 0 0 _size(border-width) _palette(bg);
|
||||
}
|
||||
}
|
||||
.style2:hover {
|
||||
&:before {
|
||||
box-shadow: inset 0 0 0 _size(border-width) _palette(accent);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* AUTHOR */
|
||||
|
||||
#author {
|
||||
.bio {
|
||||
padding-right: 20px;
|
||||
p {
|
||||
color: _palette(fg);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/* Content images */
|
||||
div.content {
|
||||
img {
|
||||
width: 100%;
|
||||
height: auto;
|
||||
max-width: 500px;
|
||||
}
|
||||
}
|
||||
|
||||
/* Cloudcannon editor links */
|
||||
|
||||
.editor-link {
|
||||
display: none;
|
||||
margin-top: 0;
|
||||
padding-top: 30px;
|
||||
.btn {
|
||||
border: 0;
|
||||
border-radius: 2px;
|
||||
width: 100%;
|
||||
max-width: 500px;
|
||||
box-sizing: border-box;
|
||||
text-decoration: none;
|
||||
padding: 10px 15px;
|
||||
margin: 0;
|
||||
font-size: 18px;
|
||||
cursor: pointer;
|
||||
background-color: #f7e064;
|
||||
color: #333;
|
||||
box-shadow: 1px 1px 5px 0 rgba(0, 0, 0, 0.2);
|
||||
|
||||
&:hover {
|
||||
background-color: #f4d525;
|
||||
color: #333;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.cms-editor-active .editor-link {
|
||||
display: block;
|
||||
}
|
||||
|
||||
/* cookies */
|
||||
|
||||
#cookie-notice {
|
||||
padding: 15px;
|
||||
display: none;
|
||||
text-align: right;
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
background-color: _palette(accent-dark);
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-evenly;
|
||||
align-content: center;
|
||||
align-items: center;
|
||||
z-index: 1000;
|
||||
|
||||
p {
|
||||
flex: 1 0 250px;
|
||||
margin: 0;
|
||||
font-size: 12px;
|
||||
font-family: monospace;
|
||||
}
|
||||
@media only screen and (max-width: 569px) {
|
||||
p {
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.yes {
|
||||
flex: 0 0 250px;
|
||||
|
||||
-moz-transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
|
||||
-webkit-transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
|
||||
-ms-transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
|
||||
transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
|
||||
border-radius: 0.375em;
|
||||
border: 0;
|
||||
color: #000 !important;
|
||||
background-position-x: 0%;
|
||||
background-position-y: 0%;
|
||||
background-repeat: repeat;
|
||||
background-attachment: scroll;
|
||||
background-image: linear-gradient(228deg, _palette(bg), _palette(fg));
|
||||
background-origin: padding-box;
|
||||
background-clip: border-box;
|
||||
|
||||
background-size: 400% 400%;
|
||||
-webkit-animation: backgroundBlink 2s ease infinite;
|
||||
-moz-animation: backgroundBlink 2s ease infinite;
|
||||
animation: backgroundBlink 2s ease infinite;
|
||||
margin: 20px;
|
||||
|
||||
}
|
||||
.yes:hover {
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
/* Background Video */
|
||||
.fullscreen-bg {
|
||||
position: absolute;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
z-index: -100;
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
.fullscreen-bg__video {
|
||||
background: #fff;
|
||||
position: relative;
|
||||
left: 50%;
|
||||
top:50%;
|
||||
transform: translate(-50%, -50%);
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/* Post Navigation */
|
||||
|
||||
.post-nav {
|
||||
/* Insert your custom styling here. Example:
|
||||
|
||||
font-size: 14px;
|
||||
margin-bottom: 1em;
|
||||
*/
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-between;
|
||||
|
||||
}
|
||||
.post-nav div {
|
||||
/* flex-grow, flex-shrink, flex-basis */
|
||||
flex: 0 1 300px;
|
||||
|
||||
}
|
||||
.post-nav-next {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
|
||||
/* Stream links */
|
||||
.streambox {
|
||||
|
||||
display: block;
|
||||
text-align: center;
|
||||
|
||||
.streamer {
|
||||
list-style-type:none;
|
||||
display:flex;
|
||||
justify-content: center;
|
||||
flex-wrap: wrap;
|
||||
|
||||
a {
|
||||
flex: 1 0 150px;
|
||||
margin:10px;
|
||||
}
|
||||
.button {
|
||||
display: block;
|
||||
flex: unset;
|
||||
}
|
||||
h3 {
|
||||
flex: unset;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
47
_sass/base/_page.scss
Normal file
47
_sass/base/_page.scss
Normal file
|
@ -0,0 +1,47 @@
|
|||
///
|
||||
/// Story by HTML5 UP
|
||||
/// html5up.net | @ajlkn
|
||||
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
///
|
||||
|
||||
/* Basic */
|
||||
|
||||
// MSIE: Required for IEMobile.
|
||||
@-ms-viewport {
|
||||
width: device-width;
|
||||
}
|
||||
|
||||
// MSIE: Prevents scrollbar from overlapping content.
|
||||
body {
|
||||
-ms-overflow-style: scrollbar;
|
||||
}
|
||||
|
||||
// Ensures page width is always >=320px.
|
||||
@include breakpoint('<=xsmall') {
|
||||
html, body {
|
||||
min-width: 320px;
|
||||
}
|
||||
}
|
||||
|
||||
// Set box model to border-box.
|
||||
// Based on css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice
|
||||
html {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
*, *:before, *:after {
|
||||
box-sizing: inherit;
|
||||
}
|
||||
|
||||
body {
|
||||
background: _palette(bg);
|
||||
|
||||
// Stops initial animations until page loads.
|
||||
&.is-preload {
|
||||
*, *:before, *:after {
|
||||
@include vendor('animation', 'none !important');
|
||||
@include vendor('transition', 'none !important');
|
||||
}
|
||||
}
|
||||
|
||||
}
|
76
_sass/base/_reset.scss
Normal file
76
_sass/base/_reset.scss
Normal file
|
@ -0,0 +1,76 @@
|
|||
///
|
||||
/// Story by HTML5 UP
|
||||
/// html5up.net | @ajlkn
|
||||
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
///
|
||||
|
||||
// Reset.
|
||||
// Based on meyerweb.com/eric/tools/css/reset (v2.0 | 20110126 | License: public domain)
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
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;
|
||||
|
||||
&:before,
|
||||
&:after {
|
||||
content: '';
|
||||
content: none;
|
||||
}
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
-webkit-text-size-adjust: none;
|
||||
}
|
||||
|
||||
mark {
|
||||
background-color: transparent;
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
input::-moz-focus-inner {
|
||||
border: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
input, select, textarea {
|
||||
-moz-appearance: none;
|
||||
-webkit-appearance: none;
|
||||
-ms-appearance: none;
|
||||
appearance: none;
|
||||
}
|
234
_sass/base/_typography.scss
Normal file
234
_sass/base/_typography.scss
Normal file
|
@ -0,0 +1,234 @@
|
|||
///
|
||||
/// Story by HTML5 UP
|
||||
/// html5up.net | @ajlkn
|
||||
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
///
|
||||
|
||||
/* Type */
|
||||
|
||||
html {
|
||||
font-size: 18pt;
|
||||
|
||||
@include breakpoint('<=xlarge') {
|
||||
font-size: 20pt;
|
||||
}
|
||||
|
||||
@include breakpoint('<=large') {
|
||||
font-size: 18pt;
|
||||
}
|
||||
|
||||
@include breakpoint('<=small') {
|
||||
font-size: 17pt;
|
||||
}
|
||||
|
||||
@include breakpoint('<=xxsmall') {
|
||||
font-size: 17pt;
|
||||
}
|
||||
}
|
||||
|
||||
body {
|
||||
|
||||
background-size: 20%;
|
||||
background-repeat: repeat;
|
||||
color: _palette(fg);
|
||||
}
|
||||
|
||||
body, input, select, textarea {
|
||||
font-family: _font(family-fixed);
|
||||
font-size: 0.75rem;
|
||||
font-weight: _font(weight);
|
||||
line-height: 1.45;
|
||||
}
|
||||
|
||||
a {
|
||||
@include vendor('transition', 'color #{_duration(transition)} ease-in-out');
|
||||
text-decoration: underline;
|
||||
|
||||
&:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
|
||||
strong, b {
|
||||
font-weight: _font(weight-bold);
|
||||
}
|
||||
|
||||
em, i {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 0 0 _size(element-margin) 0;
|
||||
|
||||
&.major {
|
||||
font-size: 1.25rem;
|
||||
}
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
font-weight: _font(weight-bold);
|
||||
line-height: 1.375;
|
||||
letter-spacing: _font(kerning);
|
||||
margin: 0 0 (_size(element-margin) * 0.5) 0;
|
||||
font-family: _font(family);
|
||||
|
||||
a {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 3.5rem;
|
||||
line-height: 1.2;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 2.25rem;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
|
||||
h4 {
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
|
||||
h5 {
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
|
||||
h6 {
|
||||
font-size: 0.7rem;
|
||||
}
|
||||
|
||||
sub {
|
||||
font-size: 0.8rem;
|
||||
position: relative;
|
||||
top: 0.5rem;
|
||||
}
|
||||
|
||||
sup {
|
||||
font-size: 0.8rem;
|
||||
position: relative;
|
||||
top: -0.5rem;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
border-left: solid (_size(border-width) * 4);
|
||||
font-style: italic;
|
||||
margin: 0 0 _size(element-margin) 0;
|
||||
padding: (_size(element-margin) / 4) 0 (_size(element-margin) / 4) _size(element-margin);
|
||||
}
|
||||
|
||||
code {
|
||||
border-radius: _size(border-radius);
|
||||
font-family: _font(family-fixed);
|
||||
font-size: 0.9em;
|
||||
margin: 0 0.25rem;
|
||||
padding: 0.25rem 0.325rem;
|
||||
}
|
||||
|
||||
pre {
|
||||
-webkit-overflow-scrolling: touch;
|
||||
font-family: _font(family-fixed);
|
||||
font-size: 0.9em;
|
||||
margin: 0 0 _size(element-margin) 0;
|
||||
|
||||
code {
|
||||
display: block;
|
||||
line-height: 1.5;
|
||||
padding: 0.75rem 1rem;
|
||||
overflow-x: auto;
|
||||
}
|
||||
}
|
||||
|
||||
hr {
|
||||
border: 0;
|
||||
border-bottom: solid _size(border-width);
|
||||
margin: (_size(element-margin) * 1.25) 0;
|
||||
|
||||
&.major {
|
||||
margin: (_size(element-margin) * 1.75) 0;
|
||||
}
|
||||
}
|
||||
|
||||
.align-left {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.align-center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.align-right {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
@include breakpoint('<=small') {
|
||||
p {
|
||||
&.major {
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 2.5rem;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 2rem;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 1.25rem;
|
||||
}
|
||||
|
||||
h4 {
|
||||
font-size: 1rem;
|
||||
}
|
||||
}
|
||||
|
||||
@mixin color-typography($p: null) {
|
||||
|
||||
@if $p != null {
|
||||
background-color: _palette($p, bg);
|
||||
color: _palette($p, fg);
|
||||
}
|
||||
|
||||
input, select, textarea {
|
||||
color: _palette($p, fg-bold);
|
||||
}
|
||||
|
||||
a {
|
||||
color: _palette($p, fg-bold);
|
||||
|
||||
&:hover {
|
||||
color: _palette($p, accent);
|
||||
}
|
||||
}
|
||||
|
||||
strong, b {
|
||||
color: _palette($p, fg-bold);
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
color: _palette($p, fg-bold);
|
||||
}
|
||||
|
||||
blockquote {
|
||||
border-left-color: _palette($p, border);
|
||||
}
|
||||
|
||||
code {
|
||||
background: _palette($p, border-bg);
|
||||
border-color: _palette($p, border);
|
||||
}
|
||||
|
||||
hr {
|
||||
border-bottom-color: _palette($p, border);
|
||||
}
|
||||
}
|
||||
|
||||
@include color-typography;
|
101
_sass/components/_actions.scss
Normal file
101
_sass/components/_actions.scss
Normal file
|
@ -0,0 +1,101 @@
|
|||
///
|
||||
/// Story by HTML5 UP
|
||||
/// html5up.net | @ajlkn
|
||||
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
///
|
||||
|
||||
/* Actions */
|
||||
|
||||
ul.actions {
|
||||
@include vendor('display', 'flex');
|
||||
cursor: default;
|
||||
list-style: none;
|
||||
margin-left: (_size(element-margin) * -0.5);
|
||||
padding-left: 0;
|
||||
|
||||
li {
|
||||
padding: 0 0 0 (_size(element-margin) * 0.5);
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
&.special {
|
||||
@include vendor('justify-content', 'center');
|
||||
width: 100%;
|
||||
margin-left: 0;
|
||||
|
||||
li {
|
||||
&:first-child {
|
||||
padding-left: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.stacked {
|
||||
@include vendor('flex-direction', 'column');
|
||||
margin-left: 0;
|
||||
|
||||
li {
|
||||
padding: (_size(element-margin) * 0.65) 0 0 0;
|
||||
|
||||
&:first-child {
|
||||
padding-top: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.fit {
|
||||
width: calc(100% + #{_size(element-margin) * 0.5});
|
||||
|
||||
li {
|
||||
@include vendor('flex-grow', '1');
|
||||
@include vendor('flex-shrink', '1');
|
||||
width: 100%;
|
||||
|
||||
> * {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
&.stacked {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=xsmall') {
|
||||
&:not(.fixed) {
|
||||
@include vendor('flex-direction', 'column');
|
||||
margin-left: 0;
|
||||
width: 100% !important;
|
||||
|
||||
li {
|
||||
@include vendor('flex-grow', '1');
|
||||
@include vendor('flex-shrink', '1');
|
||||
padding: (_size(element-margin) * 0.5) 0 0 0;
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
|
||||
> * {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
&:first-child {
|
||||
padding-top: 0;
|
||||
}
|
||||
|
||||
input[type="submit"],
|
||||
input[type="reset"],
|
||||
input[type="button"],
|
||||
button,
|
||||
.button {
|
||||
width: 100%;
|
||||
|
||||
&.icon {
|
||||
&:before {
|
||||
margin-left: -0.5rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
990
_sass/components/_banner.scss
Normal file
990
_sass/components/_banner.scss
Normal file
|
@ -0,0 +1,990 @@
|
|||
///
|
||||
/// Story by HTML5 UP
|
||||
/// html5up.net | @ajlkn
|
||||
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
///
|
||||
|
||||
/* Banner (transitions) */
|
||||
|
||||
.banner {
|
||||
|
||||
// Mixin.
|
||||
@mixin transition-banner($event) {
|
||||
$x: null;
|
||||
$y: null;
|
||||
|
||||
@if ($event == 'load') {
|
||||
$x: 'body.is-preload &';
|
||||
$y: _duration(on-load);
|
||||
}
|
||||
@else if ($event == 'scroll') {
|
||||
$x: '&.is-inactive';
|
||||
$y: _duration(on-scroll);
|
||||
}
|
||||
|
||||
// Content.
|
||||
&.on#{$event}-content-fade-up {
|
||||
.content {
|
||||
@include vendor('transition', (
|
||||
'opacity #{$y} ease-in-out',
|
||||
'transform #{$y} ease-in-out'
|
||||
));
|
||||
}
|
||||
|
||||
#{$x} {
|
||||
.content {
|
||||
@include vendor('transform', 'translateY(1rem)');
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.on#{$event}-content-fade-down {
|
||||
.content {
|
||||
@include vendor('transition', (
|
||||
'opacity #{$y} ease-in-out',
|
||||
'transform #{$y} ease-in-out'
|
||||
));
|
||||
}
|
||||
|
||||
#{$x} {
|
||||
.content {
|
||||
@include vendor('transform', 'translateY(-1rem)');
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.on#{$event}-content-fade-left {
|
||||
.content {
|
||||
@include vendor('transition', (
|
||||
'opacity #{$y} ease-in-out',
|
||||
'transform #{$y} ease-in-out'
|
||||
));
|
||||
}
|
||||
|
||||
#{$x} {
|
||||
.content {
|
||||
@include vendor('transform', 'translateX(1rem)');
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.on#{$event}-content-fade-right {
|
||||
.content {
|
||||
@include vendor('transition', (
|
||||
'opacity #{$y} ease-in-out',
|
||||
'transform #{$y} ease-in-out'
|
||||
));
|
||||
}
|
||||
|
||||
#{$x} {
|
||||
.content {
|
||||
@include vendor('transform', 'translateX(-1rem)');
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.on#{$event}-content-fade-in {
|
||||
.content {
|
||||
@include vendor('transition', 'opacity #{$y} ease-in-out');
|
||||
}
|
||||
|
||||
#{$x} {
|
||||
.content {
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Image.
|
||||
&.on#{$event}-image-fade-up {
|
||||
.image {
|
||||
@include vendor('transition', (
|
||||
'opacity #{$y} ease-in-out',
|
||||
'transform #{$y} ease-in-out'
|
||||
));
|
||||
|
||||
img {
|
||||
@include vendor('transition', 'opacity #{$y} ease-in-out');
|
||||
@include vendor('transition-delay', '#{$y * 0.75}');
|
||||
}
|
||||
}
|
||||
|
||||
#{$x} {
|
||||
.image {
|
||||
@include vendor('transform', 'translateY(1rem)');
|
||||
opacity: 0;
|
||||
|
||||
img {
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.on#{$event}-image-fade-down {
|
||||
.image {
|
||||
@include vendor('transition', (
|
||||
'opacity #{$y} ease-in-out',
|
||||
'transform #{$y} ease-in-out'
|
||||
));
|
||||
|
||||
img {
|
||||
@include vendor('transition', 'opacity #{$y} ease-in-out');
|
||||
@include vendor('transition-delay', '#{$y * 0.75}');
|
||||
}
|
||||
}
|
||||
|
||||
#{$x} {
|
||||
.image {
|
||||
@include vendor('transform', 'translateY(-1rem)');
|
||||
opacity: 0;
|
||||
|
||||
img {
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.on#{$event}-image-fade-left {
|
||||
.image {
|
||||
@include vendor('transition', (
|
||||
'opacity #{$y} ease-in-out',
|
||||
'transform #{$y} ease-in-out'
|
||||
));
|
||||
|
||||
img {
|
||||
@include vendor('transition', 'opacity #{$y} ease-in-out');
|
||||
@include vendor('transition-delay', '#{$y * 0.75}');
|
||||
}
|
||||
}
|
||||
|
||||
#{$x} {
|
||||
.image {
|
||||
@include vendor('transform', 'translateX(1rem)');
|
||||
opacity: 0;
|
||||
|
||||
img {
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.on#{$event}-image-fade-right {
|
||||
.image {
|
||||
@include vendor('transition', (
|
||||
'opacity #{$y} ease-in-out',
|
||||
'transform #{$y} ease-in-out'
|
||||
));
|
||||
|
||||
img {
|
||||
@include vendor('transition', 'opacity #{$y} ease-in-out');
|
||||
@include vendor('transition-delay', '#{$y * 0.75}');
|
||||
}
|
||||
}
|
||||
|
||||
#{$x} {
|
||||
.image {
|
||||
@include vendor('transform', 'translateX(-1rem)');
|
||||
opacity: 0;
|
||||
|
||||
img {
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.on#{$event}-image-fade-in {
|
||||
.image {
|
||||
img {
|
||||
@include vendor('transition', 'opacity #{$y} ease-in-out');
|
||||
}
|
||||
}
|
||||
|
||||
#{$x} {
|
||||
.image {
|
||||
img {
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// On Load.
|
||||
@include transition-banner('load');
|
||||
|
||||
// On Scroll.
|
||||
@include transition-banner('scroll');
|
||||
|
||||
}
|
||||
|
||||
/* Banner (style1) */
|
||||
|
||||
.banner.style1 {
|
||||
@include vendor('align-items', 'stretch');
|
||||
@include vendor('display', 'flex');
|
||||
@include vendor('flex-direction', 'row');
|
||||
@include vendor('justify-content', 'flex-end');
|
||||
position: relative;
|
||||
text-align: left;
|
||||
overflow-x: hidden;
|
||||
|
||||
.content {
|
||||
@include padding(_size(padding, default), _size(padding, default));
|
||||
@include vendor('align-self', 'center');
|
||||
@include vendor('flex-grow', '1');
|
||||
@include vendor('flex-shrink', '1');
|
||||
width: 50%;
|
||||
max-width: (_size(inner) * 0.75);
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.image {
|
||||
@include vendor('flex-grow', '0');
|
||||
@include vendor('flex-shrink', '0');
|
||||
border-radius: 0;
|
||||
width: 50%;
|
||||
|
||||
img {
|
||||
@include vendor('object-fit', 'cover');
|
||||
@include vendor('object-position', 'center');
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border-radius: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=xlarge') {
|
||||
.content {
|
||||
@include padding(_size(padding, xlarge), _size(padding, xlarge));
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=large') {
|
||||
.content {
|
||||
@include padding(_size(padding, large), _size(padding, large));
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=medium') {
|
||||
.content {
|
||||
@include padding(_size(padding, medium) * 1.25, _size(padding, medium));
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=small') {
|
||||
.content {
|
||||
@include padding(_size(padding, small) * 1.25, _size(padding, small));
|
||||
}
|
||||
}
|
||||
|
||||
@include orientation(portrait) {
|
||||
@include vendor('flex-direction', 'column-reverse');
|
||||
text-align: center;
|
||||
|
||||
.content {
|
||||
@include vendor('display', 'flex');
|
||||
@include vendor('flex-direction', 'column');
|
||||
@include vendor('justify-content', 'center');
|
||||
width: 100%;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.image {
|
||||
width: 100%;
|
||||
max-width: 100%;
|
||||
height: 45vh;
|
||||
}
|
||||
}
|
||||
|
||||
// Modifiers.
|
||||
|
||||
// Size.
|
||||
&.fullscreen {
|
||||
min-height: 100vh;
|
||||
|
||||
@include orientation(portrait) {
|
||||
.content {
|
||||
min-height: 50vh;
|
||||
}
|
||||
|
||||
.image {
|
||||
height: 50vh;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Orientation.
|
||||
&.orient-left {
|
||||
// ...
|
||||
}
|
||||
|
||||
&.orient-right {
|
||||
@include vendor('flex-direction', 'row-reverse');
|
||||
|
||||
@include orientation(portrait) {
|
||||
@include vendor('flex-direction', 'column-reverse');
|
||||
}
|
||||
}
|
||||
|
||||
// Content Alignment.
|
||||
&.content-align-left {
|
||||
// ...
|
||||
}
|
||||
|
||||
&.content-align-center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
&.content-align-right {
|
||||
text-align: right;
|
||||
|
||||
@include orientation(portrait) {
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
||||
// Image Position.
|
||||
&.image-position-left {
|
||||
.image {
|
||||
img {
|
||||
@include vendor('object-position', 'left');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.image-position-center {
|
||||
.image {
|
||||
img {
|
||||
// ...
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.image-position-right {
|
||||
.image {
|
||||
img {
|
||||
@include vendor('object-position', 'right');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/* Banner (style2) */
|
||||
|
||||
.banner.style2 {
|
||||
@include padding(_size(padding, default) * 0.75, _size(padding, default) * 0.75);
|
||||
@include vendor('align-items', 'center');
|
||||
@include vendor('display', 'flex');
|
||||
@include vendor('justify-content', 'center');
|
||||
background-color: _palette(border-darken);
|
||||
position: relative;
|
||||
text-align: center;
|
||||
overflow-x: hidden;
|
||||
|
||||
.content {
|
||||
@include padding(_size(padding, default) * 0.75, _size(padding, default) * 0.75);
|
||||
position: relative;
|
||||
width: (_size(inner) * 0.625);
|
||||
max-width: 100%;
|
||||
background-color: inherit;
|
||||
border-radius: _size(border-radius-alt);
|
||||
margin-bottom: _size(element-margin);
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.image {
|
||||
@include vendor('flex-grow', '0');
|
||||
@include vendor('flex-shrink', '0');
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
top: 0;
|
||||
left: 0;
|
||||
border-radius: 0;
|
||||
|
||||
img {
|
||||
@include vendor('object-fit', 'cover');
|
||||
@include vendor('object-position', 'center');
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border-radius: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=xlarge') {
|
||||
@include padding(_size(padding, xlarge) * 0.75, _size(padding, xlarge) * 0.75);
|
||||
|
||||
.content {
|
||||
@include padding(_size(padding, xlarge) * 0.75, _size(padding, xlarge) * 0.75);
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=large') {
|
||||
@include padding(_size(padding, large), _size(padding, large) * 0.75);
|
||||
|
||||
.content {
|
||||
@include padding(_size(padding, large), _size(padding, large) * 0.75);
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=medium') {
|
||||
@include padding(_size(padding, medium), _size(padding, medium));
|
||||
|
||||
.content {
|
||||
@include padding(_size(padding, medium) * 1.25, _size(padding, medium) * 0.75);
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=small') {
|
||||
@include padding(_size(padding, small), _size(padding, small));
|
||||
|
||||
.content {
|
||||
@include padding(_size(padding, small) * 1.25, _size(padding, small) * 0.75);
|
||||
}
|
||||
}
|
||||
|
||||
// Modifiers.
|
||||
|
||||
// Size.
|
||||
&.fullscreen {
|
||||
min-height: 80vh;
|
||||
}
|
||||
|
||||
// Orientation.
|
||||
&.orient-left {
|
||||
@include vendor('justify-content', 'flex-start');
|
||||
padding-left: 0;
|
||||
|
||||
.content {
|
||||
border-top-left-radius: 0;
|
||||
border-bottom-left-radius: 0;
|
||||
}
|
||||
}
|
||||
|
||||
&.orient-center {
|
||||
// ...
|
||||
}
|
||||
|
||||
&.orient-right {
|
||||
@include vendor('justify-content', 'flex-end');
|
||||
padding-right: 0;
|
||||
|
||||
.content {
|
||||
border-top-right-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
}
|
||||
}
|
||||
|
||||
// Content Alignment.
|
||||
&.content-align-left {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
&.content-align-center {
|
||||
// ...
|
||||
}
|
||||
|
||||
&.content-align-right {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
// Image Position.
|
||||
&.image-position-left {
|
||||
.image {
|
||||
img {
|
||||
@include vendor('object-position', 'left');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.image-position-center {
|
||||
.image {
|
||||
img {
|
||||
// ...
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.image-position-right {
|
||||
.image {
|
||||
img {
|
||||
@include vendor('object-position', 'right');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/* Banner (style3) */
|
||||
|
||||
.banner.style3 {
|
||||
$image-size: 21rem;
|
||||
$content-size: (_size(inner) * 0.875) - $image-size - (_size(element-margin) * 1.75);
|
||||
|
||||
@include padding(_size(padding, default), _size(padding, default));
|
||||
@include vendor('align-items', 'center');
|
||||
@include vendor('display', 'flex');
|
||||
@include vendor('flex-direction', 'row-reverse');
|
||||
@include vendor('justify-content', 'center');
|
||||
position: relative;
|
||||
text-align: left;
|
||||
overflow-x: hidden;
|
||||
|
||||
.content {
|
||||
width: $content-size;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.image {
|
||||
@include vendor('flex-grow', '0');
|
||||
@include vendor('flex-shrink', '0');
|
||||
width: $image-size;
|
||||
height: $image-size;
|
||||
border-radius: 100%;
|
||||
margin: 0 (_size(element-margin) * 1.75) _size(element-margin) 0;
|
||||
|
||||
img {
|
||||
@include vendor('object-fit', 'cover');
|
||||
@include vendor('object-position', 'center');
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border-radius: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=xlarge') {
|
||||
@include padding(_size(padding, xlarge), _size(padding, xlarge));
|
||||
}
|
||||
|
||||
@include breakpoint('<=large') {
|
||||
@include padding(_size(padding, large), _size(padding, large));
|
||||
}
|
||||
|
||||
@include breakpoint('<=medium') {
|
||||
@include padding(_size(padding, medium) * 1.25, _size(padding, medium));
|
||||
|
||||
.image {
|
||||
width: ($image-size * 0.875);
|
||||
height: ($image-size * 0.875);
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=small') {
|
||||
@include padding(_size(padding, small) * 1.25, _size(padding, small));
|
||||
@include vendor('align-items', 'flex-start');
|
||||
|
||||
.image {
|
||||
width: ($image-size * 0.75);
|
||||
height: ($image-size * 0.75);
|
||||
margin: 0 (_size(element-margin) * 1) _size(element-margin) 0;
|
||||
}
|
||||
}
|
||||
|
||||
@include orientation(portrait) {
|
||||
@include vendor('align-items', 'center');
|
||||
@include vendor('flex-direction', 'column-reverse');
|
||||
text-align: center;
|
||||
|
||||
.content {
|
||||
width: 34rem;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.image {
|
||||
margin-right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
// Modifiers.
|
||||
|
||||
// Size.
|
||||
&.fullscreen {
|
||||
min-height: 100vh;
|
||||
}
|
||||
|
||||
// Orientation.
|
||||
&.orient-left {
|
||||
@include vendor('flex-direction', 'row');
|
||||
|
||||
.image {
|
||||
margin: 0 0 _size(element-margin) (_size(element-margin) * 1.75);
|
||||
}
|
||||
|
||||
@include breakpoint('<=small') {
|
||||
.image {
|
||||
margin: 0 0 _size(element-margin) (_size(element-margin) * 1);
|
||||
}
|
||||
}
|
||||
|
||||
@include orientation(portrait) {
|
||||
@include vendor('flex-direction', 'column-reverse');
|
||||
|
||||
.image {
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.orient-right {
|
||||
// ...
|
||||
}
|
||||
|
||||
// Content Alignment.
|
||||
&.content-align-left {
|
||||
// ...
|
||||
}
|
||||
|
||||
&.content-align-center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
&.content-align-right {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
// Image Position.
|
||||
&.image-position-left {
|
||||
.image {
|
||||
img {
|
||||
@include vendor('object-position', 'left');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.image-position-center {
|
||||
// ...
|
||||
}
|
||||
|
||||
&.image-position-right {
|
||||
.image {
|
||||
img {
|
||||
@include vendor('object-position', 'right');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/* Banner (style4) */
|
||||
|
||||
.banner.style4 {
|
||||
$image-width: 13rem;
|
||||
$content-size: (_size(inner) * 0.75) - $image-width - (_size(element-margin) * 1.75);
|
||||
|
||||
@include padding(_size(padding, default), _size(padding, default));
|
||||
@include vendor('align-items', 'center');
|
||||
@include vendor('display', 'flex');
|
||||
@include vendor('flex-direction', 'row-reverse');
|
||||
@include vendor('justify-content', 'center');
|
||||
position: relative;
|
||||
text-align: left;
|
||||
overflow-x: hidden;
|
||||
|
||||
.content {
|
||||
width: $content-size;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.image {
|
||||
@include phone($image-width);
|
||||
margin-right: (_size(element-margin) * 1.75);
|
||||
}
|
||||
|
||||
@include breakpoint('<=xlarge') {
|
||||
@include padding(_size(padding, xlarge), _size(padding, xlarge));
|
||||
}
|
||||
|
||||
@include breakpoint('<=large') {
|
||||
@include padding(_size(padding, large), _size(padding, large));
|
||||
}
|
||||
|
||||
@include breakpoint('<=medium') {
|
||||
@include padding(_size(padding, medium) * 1.25, _size(padding, medium));
|
||||
|
||||
.image {
|
||||
@include resize-phone($image-width, 0.875);
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=small') {
|
||||
@include padding(_size(padding, small) * 1.25, _size(padding, small));
|
||||
@include vendor('align-items', 'flex-start');
|
||||
|
||||
.image {
|
||||
@include resize-phone($image-width, 0.625);
|
||||
}
|
||||
}
|
||||
|
||||
@include orientation(portrait) {
|
||||
@include vendor('align-items', 'center');
|
||||
@include vendor('flex-direction', 'column-reverse');
|
||||
text-align: center;
|
||||
|
||||
.content {
|
||||
width: 34rem;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.image {
|
||||
margin-right: 0;
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
// Modifiers.
|
||||
|
||||
// Size.
|
||||
&.fullscreen {
|
||||
min-height: 100vh;
|
||||
}
|
||||
|
||||
// Variant.
|
||||
&.iphone {
|
||||
// ...
|
||||
}
|
||||
|
||||
&.android {
|
||||
// ...
|
||||
}
|
||||
|
||||
// Orientation.
|
||||
&.orient-left {
|
||||
@include vendor('flex-direction', 'row');
|
||||
|
||||
.image {
|
||||
margin-right: 0;
|
||||
margin-left: (_size(element-margin) * 1.75);
|
||||
}
|
||||
|
||||
@include orientation(portrait) {
|
||||
@include vendor('flex-direction', 'column-reverse');
|
||||
|
||||
.image {
|
||||
margin-right: 0;
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.orient-right {
|
||||
// ...
|
||||
}
|
||||
|
||||
// Content Alignment.
|
||||
&.content-align-left {
|
||||
// ...
|
||||
}
|
||||
|
||||
&.content-align-center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
&.content-align-right {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
// Image Position.
|
||||
&.image-position-left {
|
||||
.image {
|
||||
img {
|
||||
@include vendor('object-position', 'left');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.image-position-center {
|
||||
// ...
|
||||
}
|
||||
|
||||
&.image-position-right {
|
||||
.image {
|
||||
img {
|
||||
@include vendor('object-position', 'right');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/* Banner (style5) */
|
||||
|
||||
.banner.style5 {
|
||||
@include padding(_size(padding, default), _size(padding, default));
|
||||
@include vendor('align-items', 'center');
|
||||
@include vendor('display', 'flex');
|
||||
@include vendor('justify-content', 'center');
|
||||
background-color: inherit;
|
||||
position: relative;
|
||||
text-align: center;
|
||||
overflow-x: hidden;
|
||||
|
||||
.content {
|
||||
position: relative;
|
||||
width: (_size(inner) * 0.625);
|
||||
max-width: 100%;
|
||||
margin-bottom: _size(element-margin);
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.image {
|
||||
@include vendor('flex-grow', '0');
|
||||
@include vendor('flex-shrink', '0');
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
top: 0;
|
||||
left: 0;
|
||||
border-radius: 0;
|
||||
opacity: 0.1;
|
||||
|
||||
img {
|
||||
@include vendor('object-fit', 'cover');
|
||||
@include vendor('object-position', 'center');
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border-radius: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=xlarge') {
|
||||
@include padding(_size(padding, xlarge), _size(padding, xlarge));
|
||||
}
|
||||
|
||||
@include breakpoint('<=large') {
|
||||
@include padding(_size(padding, large), _size(padding, large));
|
||||
}
|
||||
|
||||
@include breakpoint('<=medium') {
|
||||
@include padding(_size(padding, medium) * 1.25, _size(padding, medium));
|
||||
}
|
||||
|
||||
@include breakpoint('<=small') {
|
||||
@include padding(_size(padding, small) * 1.25, _size(padding, small));
|
||||
}
|
||||
|
||||
// Modifiers.
|
||||
|
||||
// Size.
|
||||
&.fullscreen {
|
||||
min-height: 80vh;
|
||||
}
|
||||
|
||||
// Content Alignment.
|
||||
&.content-align-left {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
&.content-align-center {
|
||||
// ...
|
||||
}
|
||||
|
||||
&.content-align-right {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
// Image Position.
|
||||
&.image-position-left {
|
||||
.image {
|
||||
img {
|
||||
@include vendor('object-position', 'left');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.image-position-center {
|
||||
// ...
|
||||
}
|
||||
|
||||
&.image-position-right {
|
||||
.image {
|
||||
img {
|
||||
@include vendor('object-position', 'right');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Mixin
|
||||
|
||||
@mixin color-banner($p: null) {
|
||||
.banner {
|
||||
.image {
|
||||
background-color: transparentize(_palette($p, fg-bold), 0.875);
|
||||
}
|
||||
|
||||
@if ($p != 'invert') {
|
||||
&.invert {
|
||||
.image {
|
||||
background-color: transparentize(_palette(invert, fg-bold), 0.875);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.banner.style4 {
|
||||
.image {
|
||||
@include color-phone($p);
|
||||
}
|
||||
|
||||
// Variant.
|
||||
&.iphone {
|
||||
.image {
|
||||
@include color-phone-variant('iphone', $p);
|
||||
}
|
||||
}
|
||||
|
||||
&.android {
|
||||
.image {
|
||||
@include color-phone-variant('android', $p);
|
||||
}
|
||||
}
|
||||
|
||||
@if ($p != 'invert') {
|
||||
&.invert {
|
||||
.image {
|
||||
@include color-phone(invert);
|
||||
}
|
||||
|
||||
// Variant.
|
||||
&.iphone {
|
||||
.image {
|
||||
@include color-phone-variant('iphone', invert);
|
||||
}
|
||||
}
|
||||
|
||||
&.android {
|
||||
.image {
|
||||
@include color-phone-variant('android', invert);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include color-banner;
|
34
_sass/components/_box.scss
Normal file
34
_sass/components/_box.scss
Normal file
|
@ -0,0 +1,34 @@
|
|||
///
|
||||
/// Story by HTML5 UP
|
||||
/// html5up.net | @ajlkn
|
||||
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
///
|
||||
|
||||
/* Box */
|
||||
|
||||
.box {
|
||||
border-radius: _size(border-radius);
|
||||
border: solid _size(border-width);
|
||||
margin-bottom: _size(element-margin);
|
||||
padding: 1.5rem;
|
||||
|
||||
> :last-child,
|
||||
> :last-child > :last-child,
|
||||
> :last-child > :last-child > :last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
&.alt {
|
||||
border: 0;
|
||||
border-radius: 0;
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@mixin color-box($p: null) {
|
||||
.box {
|
||||
border-color: _palette($p, border);
|
||||
}
|
||||
}
|
||||
|
||||
@include color-box;
|
121
_sass/components/_button.scss
Normal file
121
_sass/components/_button.scss
Normal file
|
@ -0,0 +1,121 @@
|
|||
///
|
||||
/// Story by HTML5 UP
|
||||
/// html5up.net | @ajlkn
|
||||
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
///
|
||||
|
||||
/* Button */
|
||||
|
||||
input[type="submit"],
|
||||
input[type="reset"],
|
||||
input[type="button"],
|
||||
button,
|
||||
.button {
|
||||
@include vendor('appearance', 'none');
|
||||
@include vendor('transition', (
|
||||
'background-color #{_duration(transition)} ease-in-out',
|
||||
'box-shadow #{_duration(transition)} ease-in-out',
|
||||
'color #{_duration(transition)} ease-in-out'
|
||||
));
|
||||
border: 0;
|
||||
cursor: pointer;
|
||||
display: inline-block;
|
||||
font-weight: _font(weight-bold);
|
||||
font-family: monospace;
|
||||
letter-spacing: _font(kerning-alt);
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
text-transform: uppercase;
|
||||
white-space: nowrap;
|
||||
font-size: 0.75rem;
|
||||
max-width: 20rem;
|
||||
height: 3.75em;
|
||||
line-height: 3.75em;
|
||||
border-radius: 7px;
|
||||
padding: 0 2.5em;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
|
||||
&.icon {
|
||||
&:before {
|
||||
margin-right: 0.5rem;
|
||||
}
|
||||
}
|
||||
|
||||
&.fit {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
&.small {
|
||||
font-size: 0.7rem;
|
||||
height: 3.325em;
|
||||
line-height: 3.325em;
|
||||
border-radius: 7px;
|
||||
padding: 0 2em;
|
||||
}
|
||||
&.smaller {
|
||||
font-size: 0.5rem;
|
||||
height: 2.75em;
|
||||
line-height: 2.75em;
|
||||
border-radius: 7px;
|
||||
padding: 0 2em;
|
||||
}
|
||||
|
||||
&.large {
|
||||
font-size: 0.8rem;
|
||||
height: 4em;
|
||||
line-height: 4em;
|
||||
border-radius: 7px;
|
||||
padding: 0 3em;
|
||||
}
|
||||
|
||||
&.wide {
|
||||
min-width: 14em;
|
||||
}
|
||||
|
||||
&.disabled,
|
||||
&:disabled {
|
||||
@include vendor('pointer-events', 'none');
|
||||
opacity: 0.25;
|
||||
}
|
||||
}
|
||||
|
||||
@mixin color-button($p: null) {
|
||||
input[type="submit"],
|
||||
input[type="reset"],
|
||||
input[type="button"],
|
||||
button,
|
||||
.button {
|
||||
background-color: _palette(fg);
|
||||
box-shadow: inset 0 0 5px _size(border-width) _palette($p, border-darken);
|
||||
color: _palette($p, bg) !important;
|
||||
|
||||
&:hover {
|
||||
box-shadow: inset 0 0 5px _size(border-width) _palette($p, border);
|
||||
color: _palette($p, fg) !important;
|
||||
background-color: _palette(border-darken);
|
||||
}
|
||||
|
||||
&:active {
|
||||
background-color: transparentize(_palette($p, accent), 0.8);
|
||||
box-shadow: inset 0 0 0 _size(border-width) _palette($p, accent);
|
||||
color: _palette($p, accent) !important;
|
||||
}
|
||||
|
||||
&.primary {
|
||||
background-color: _palette($p, fg-bold);
|
||||
box-shadow: none;
|
||||
color: _palette($p, bg) !important;
|
||||
|
||||
&:hover {
|
||||
background-color: _palette($p, accent);
|
||||
}
|
||||
|
||||
&:active {
|
||||
background-color: darken(_palette($p, accent), 12);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include color-button;
|
287
_sass/components/_form.scss
Normal file
287
_sass/components/_form.scss
Normal file
|
@ -0,0 +1,287 @@
|
|||
///
|
||||
/// Story by HTML5 UP
|
||||
/// html5up.net | @ajlkn
|
||||
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
///
|
||||
|
||||
/* Form */
|
||||
|
||||
form {
|
||||
margin: 0 0 _size(element-margin) 0;
|
||||
|
||||
> :last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
> .fields {
|
||||
$gutter: (_size(element-margin) * 0.75);
|
||||
|
||||
@include vendor('display', 'flex');
|
||||
@include vendor('flex-wrap', 'wrap');
|
||||
width: calc(100% + #{$gutter * 2});
|
||||
margin: ($gutter * -1) 0 _size(element-margin) ($gutter * -1);
|
||||
|
||||
> .field {
|
||||
@include vendor('flex-grow', '0');
|
||||
@include vendor('flex-shrink', '0');
|
||||
padding: $gutter 0 0 $gutter;
|
||||
width: calc(100% - #{$gutter * 1});
|
||||
|
||||
&.half {
|
||||
width: calc(50% - #{$gutter * 0.5});
|
||||
}
|
||||
|
||||
&.third {
|
||||
width: calc(#{100% / 3} - #{$gutter * (1 / 3)});
|
||||
}
|
||||
|
||||
&.quarter {
|
||||
width: calc(25% - #{$gutter * 0.25});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=xsmall') {
|
||||
> .fields {
|
||||
$gutter: (_size(element-margin) * 0.75);
|
||||
|
||||
width: calc(100% + #{$gutter * 2});
|
||||
margin: ($gutter * -1) 0 _size(element-margin) ($gutter * -1);
|
||||
|
||||
> .field {
|
||||
padding: $gutter 0 0 $gutter;
|
||||
width: calc(100% - #{$gutter * 1});
|
||||
|
||||
&.half {
|
||||
width: calc(100% - #{$gutter * 1});
|
||||
}
|
||||
|
||||
&.third {
|
||||
width: calc(100% - #{$gutter * 1});
|
||||
}
|
||||
|
||||
&.quarter {
|
||||
width: calc(100% - #{$gutter * 1});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
label {
|
||||
display: block;
|
||||
font-size: 0.9rem;
|
||||
font-weight: _font(weight-bold);
|
||||
margin: 0 0 (_size(element-margin) * 0.5) 0;
|
||||
}
|
||||
|
||||
input[type="text"],
|
||||
input[type="password"],
|
||||
input[type="email"],
|
||||
input[type="tel"],
|
||||
input[type="search"],
|
||||
input[type="url"],
|
||||
select,
|
||||
textarea {
|
||||
@include vendor('appearance', 'none');
|
||||
background-color: _palette(bg-transparent);
|
||||
border-radius: _size(border-radius);
|
||||
border: none;
|
||||
border: solid _size(border-width);
|
||||
color: inherit;
|
||||
display: block;
|
||||
outline: 0;
|
||||
padding: 0 0.825rem;
|
||||
text-decoration: none;
|
||||
width: 100%;
|
||||
box-shadow: inset 0 0 5px 1px _palette(border);
|
||||
|
||||
&:invalid {
|
||||
box-shadow: none;
|
||||
}
|
||||
}
|
||||
|
||||
select {
|
||||
background-size: 1.25rem;
|
||||
background-repeat: no-repeat;
|
||||
background-position: calc(100% - 1rem) center;
|
||||
height: _size(element-height);
|
||||
padding-right: _size(element-height);
|
||||
text-overflow: ellipsis;
|
||||
|
||||
&:focus {
|
||||
&::-ms-value {
|
||||
background-color: transparent;
|
||||
}
|
||||
}
|
||||
|
||||
&::-ms-expand {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
input[type="text"],
|
||||
input[type="password"],
|
||||
input[type="email"],
|
||||
input[type="tel"],
|
||||
input[type="search"],
|
||||
input[type="url"],
|
||||
select {
|
||||
height: _size(element-height);
|
||||
}
|
||||
|
||||
textarea {
|
||||
padding: 0.75rem 1rem;
|
||||
}
|
||||
|
||||
input[type="checkbox"],
|
||||
input[type="radio"], {
|
||||
@include vendor('appearance', 'none');
|
||||
display: block;
|
||||
float: left;
|
||||
margin-right: -2rem;
|
||||
opacity: 0;
|
||||
width: 1rem;
|
||||
z-index: -1;
|
||||
|
||||
& + label {
|
||||
@include icon(false, solid);
|
||||
@include vendor('user-select', 'none');
|
||||
cursor: pointer;
|
||||
display: inline-block;
|
||||
font-size: 1rem;
|
||||
font-weight: _font(weight);
|
||||
padding-left: (_size(element-height) * 0.6) + 0.75rem;
|
||||
padding-right: 0.75rem;
|
||||
position: relative;
|
||||
margin-bottom: 0;
|
||||
|
||||
&:before {
|
||||
border-radius: _size(border-radius);
|
||||
border: solid _size(border-width);
|
||||
content: '';
|
||||
display: inline-block;
|
||||
font-size: 0.8rem;
|
||||
height: (_size(element-height) * 0.6);
|
||||
left: 0;
|
||||
line-height: (_size(element-height) * 0.6);
|
||||
position: absolute;
|
||||
text-align: center;
|
||||
top: 0;
|
||||
width: (_size(element-height) * 0.6);
|
||||
}
|
||||
}
|
||||
|
||||
&:checked + label {
|
||||
&:before {
|
||||
content: '\f00c';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
input[type="checkbox"] {
|
||||
& + label {
|
||||
&:before {
|
||||
border-radius: _size(border-radius);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
input[type="radio"] {
|
||||
& + label {
|
||||
&:before {
|
||||
border-radius: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
::-webkit-input-placeholder {
|
||||
opacity: 1.0;
|
||||
}
|
||||
|
||||
:-moz-placeholder {
|
||||
opacity: 1.0;
|
||||
}
|
||||
|
||||
::-moz-placeholder {
|
||||
opacity: 1.0;
|
||||
}
|
||||
|
||||
:-ms-input-placeholder {
|
||||
opacity: 1.0;
|
||||
}
|
||||
|
||||
@mixin color-form($p: null) {
|
||||
label {
|
||||
color: _palette($p, fg-bold);
|
||||
}
|
||||
|
||||
input[type="text"],
|
||||
input[type="password"],
|
||||
input[type="email"],
|
||||
input[type="tel"],
|
||||
input[type="search"],
|
||||
input[type="url"],
|
||||
select,
|
||||
textarea {
|
||||
border-color: _palette($p, border);
|
||||
|
||||
&:focus {
|
||||
border-color: _palette($p, accent);
|
||||
box-shadow: 0 0 0 _size(border-width) _palette($p, accent);
|
||||
}
|
||||
}
|
||||
|
||||
select {
|
||||
background-image: svg-url("<svg xmlns='http://www.w3.org/2000/svg' width='40' height='40' preserveAspectRatio='none' viewBox='0 0 40 40'><path d='M9.4,12.3l10.4,10.4l10.4-10.4c0.2-0.2,0.5-0.4,0.9-0.4c0.3,0,0.6,0.1,0.9,0.4l3.3,3.3c0.2,0.2,0.4,0.5,0.4,0.9 c0,0.4-0.1,0.6-0.4,0.9L20.7,31.9c-0.2,0.2-0.5,0.4-0.9,0.4c-0.3,0-0.6-0.1-0.9-0.4L4.3,17.3c-0.2-0.2-0.4-0.5-0.4-0.9 c0-0.4,0.1-0.6,0.4-0.9l3.3-3.3c0.2-0.2,0.5-0.4,0.9-0.4S9.1,12.1,9.4,12.3z' fill='#{_palette(border)}' /></svg>");
|
||||
|
||||
option {
|
||||
color: _palette(fg-bold);
|
||||
background: _palette(bg);
|
||||
}
|
||||
}
|
||||
|
||||
input[type="checkbox"],
|
||||
input[type="radio"], {
|
||||
& + label {
|
||||
color: _palette($p, fg);
|
||||
|
||||
&:before {
|
||||
border-color: _palette($p, fg-light);
|
||||
}
|
||||
}
|
||||
|
||||
&:checked + label {
|
||||
&:before {
|
||||
background-color: _palette($p, fg-bold);
|
||||
border-color: _palette($p, fg-bold);
|
||||
color: _palette($p, bg);
|
||||
}
|
||||
}
|
||||
|
||||
&:focus + label {
|
||||
&:before {
|
||||
border-color: _palette($p, accent);
|
||||
box-shadow: 0 0 0 _size(border-width) _palette($p, accent);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
::-webkit-input-placeholder {
|
||||
color: _palette($p, fg-light) !important;
|
||||
}
|
||||
|
||||
:-moz-placeholder {
|
||||
color: _palette($p, fg-light) !important;
|
||||
}
|
||||
|
||||
::-moz-placeholder {
|
||||
color: _palette($p, fg-light) !important;
|
||||
}
|
||||
|
||||
:-ms-input-placeholder {
|
||||
color: _palette($p, fg-light) !important;
|
||||
}
|
||||
}
|
||||
|
||||
@include color-form;
|
616
_sass/components/_gallery.scss
Normal file
616
_sass/components/_gallery.scss
Normal file
|
@ -0,0 +1,616 @@
|
|||
///
|
||||
/// Story by HTML5 UP
|
||||
/// html5up.net | @ajlkn
|
||||
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
///
|
||||
|
||||
/* Gallery (transitions) */
|
||||
|
||||
.gallery {
|
||||
|
||||
// Mixin.
|
||||
@mixin transition-gallery($event) {
|
||||
$x: null;
|
||||
$y: null;
|
||||
|
||||
@if ($event == 'load') {
|
||||
$x: 'body.is-preload &';
|
||||
$y: _duration(on-load);
|
||||
}
|
||||
@else if ($event == 'scroll') {
|
||||
$x: '&.is-inactive';
|
||||
$y: _duration(on-scroll);
|
||||
}
|
||||
|
||||
&.on#{$event}-fade-in {
|
||||
article {
|
||||
.image {
|
||||
img {
|
||||
@include vendor('transition', 'opacity #{$y} ease-in-out');
|
||||
@include vendor('transition-delay', '#{_misc(gallery-limit) * _duration(gallery-delay)}');
|
||||
}
|
||||
}
|
||||
|
||||
@for $i from 0 through _misc(gallery-limit) {
|
||||
&:nth-child(#{$i + 1}) {
|
||||
.image {
|
||||
img {
|
||||
@include vendor('transition-delay', '#{$i * _duration(gallery-delay)}');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#{$x} {
|
||||
article {
|
||||
.image {
|
||||
img {
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// On Load.
|
||||
@include transition-gallery('load');
|
||||
|
||||
// On Scroll.
|
||||
@include transition-gallery('scroll');
|
||||
|
||||
}
|
||||
|
||||
/* Gallery (style1) */
|
||||
|
||||
.gallery.style1 {
|
||||
@include color-typography(invert);
|
||||
@include color-button(invert);
|
||||
@include vendor('align-items', 'center');
|
||||
@include vendor('display', 'flex');
|
||||
@include vendor('flex-wrap', 'wrap');
|
||||
@include vendor('justify-content', 'center');
|
||||
position: relative;
|
||||
width: 100%;
|
||||
background-color: transparent;
|
||||
|
||||
> .forward, >.backward {
|
||||
display: none;
|
||||
}
|
||||
|
||||
> .inner {
|
||||
@include vendor('align-items', 'inherit');
|
||||
@include vendor('display', 'inherit');
|
||||
@include vendor('flex-wrap', 'inherit');
|
||||
@include vendor('justify-content', 'inherit');
|
||||
}
|
||||
|
||||
article {
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
width: 25%;
|
||||
|
||||
.image {
|
||||
@include vendor('transition', 'opacity #{_duration(transition)} ease-in-out');
|
||||
display: block;
|
||||
width: 100%;
|
||||
border-radius: 0;
|
||||
|
||||
img {
|
||||
display: block;
|
||||
width: 100%;
|
||||
border-radius: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.caption {
|
||||
@include vendor('align-items', 'center');
|
||||
@include vendor('display', 'flex');
|
||||
@include vendor('flex-direction', 'column');
|
||||
@include vendor('justify-content', 'center');
|
||||
@include vendor('pointer-events', 'none');
|
||||
@include vendor('transition', 'opacity #{_duration(transition)} ease-in-out');
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: transparentize(_palette(invert, bg), 1 - _misc(overlay-opacity));
|
||||
opacity: 0;
|
||||
padding: 2rem;
|
||||
z-index: 1;
|
||||
font-size: 0.8rem;
|
||||
|
||||
a {
|
||||
@include vendor('pointer-events', 'auto');
|
||||
}
|
||||
|
||||
h2, h3, h4, h5, h6 {
|
||||
font-size: 1.25rem;
|
||||
margin-bottom: 0.25rem;
|
||||
}
|
||||
|
||||
> * {
|
||||
max-width: 100%;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
> :last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
&:hover {
|
||||
.caption {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=large') {
|
||||
article {
|
||||
width: (100% / 3);
|
||||
|
||||
.caption {
|
||||
padding: 1rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=medium') {
|
||||
article {
|
||||
width: 50%;
|
||||
|
||||
.caption {
|
||||
padding: 1rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=xsmall') {
|
||||
article {
|
||||
width: 100%;
|
||||
|
||||
.caption {
|
||||
padding: 1rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Modifiers.
|
||||
|
||||
// size
|
||||
&.small {
|
||||
article {
|
||||
width: 20%;
|
||||
|
||||
.caption {
|
||||
padding: 1rem;
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=large') {
|
||||
article {
|
||||
width: 25%;
|
||||
|
||||
.caption {
|
||||
padding: 1rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=medium') {
|
||||
article {
|
||||
width: (100% / 3);
|
||||
|
||||
.caption {
|
||||
padding: 1rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=xsmall') {
|
||||
article {
|
||||
width: 50%;
|
||||
|
||||
.caption {
|
||||
padding: 1rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.medium {
|
||||
// ...
|
||||
}
|
||||
|
||||
&.big {
|
||||
article {
|
||||
width: (100% / 3);
|
||||
|
||||
.caption {
|
||||
padding: 3rem;
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=large') {
|
||||
article {
|
||||
width: 50%;
|
||||
|
||||
.caption {
|
||||
padding: 2rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=medium') {
|
||||
article {
|
||||
width: 50%;
|
||||
|
||||
.caption {
|
||||
padding: 2rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=xsmall') {
|
||||
article {
|
||||
width: 100%;
|
||||
|
||||
.caption {
|
||||
padding: 1rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/* Gallery (style2) */
|
||||
|
||||
.gallery.style2 {
|
||||
@include color-typography(invert);
|
||||
@include color-button(invert);
|
||||
@include vendor('display', 'flex');
|
||||
-webkit-overflow-scrolling: touch;
|
||||
position: relative;
|
||||
background-color: transparent;
|
||||
|
||||
> .forward, >.backward {
|
||||
@include icon(false, solid);
|
||||
@include vendor('transition', 'opacity #{_duration(transition)} ease-in-out');
|
||||
position: absolute;
|
||||
top: 0;
|
||||
width: 5rem;
|
||||
height: 100%;
|
||||
cursor: pointer;
|
||||
opacity: 0;
|
||||
z-index: 2;
|
||||
|
||||
&:before {
|
||||
display: block;
|
||||
top: calc(50% - 1.5rem);
|
||||
width: 4rem;
|
||||
height: 3rem;
|
||||
line-height: 1em;
|
||||
font-size: 3rem;
|
||||
position: absolute;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
||||
&:hover {
|
||||
> .forward, > .backward {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
> .forward {
|
||||
right: 0;
|
||||
background-image: linear-gradient(to left, rgba(0,0,0,0.25) 15%, rgba(0,0,0,0));
|
||||
|
||||
&:before {
|
||||
content: '\f105';
|
||||
right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
> .backward {
|
||||
left: 0;
|
||||
background-image: linear-gradient(to right, rgba(0,0,0,0.25) 15%, rgba(0,0,0,0));
|
||||
|
||||
&:before {
|
||||
content: '\f104';
|
||||
left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
> .inner {
|
||||
@include vendor('display', 'inherit');
|
||||
overflow-x: auto;
|
||||
overflow-y: hidden;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
article {
|
||||
@include vendor('flex-grow', '0');
|
||||
@include vendor('flex-shrink', '0');
|
||||
display: block;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
width: 22.5rem;
|
||||
max-width: 75vw;
|
||||
|
||||
.image {
|
||||
display: block;
|
||||
width: 100%;
|
||||
border-radius: 0;
|
||||
|
||||
img {
|
||||
display: block;
|
||||
width: 100%;
|
||||
border-radius: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.caption {
|
||||
@include vendor('align-items', 'center');
|
||||
@include vendor('display', 'flex');
|
||||
@include vendor('flex-direction', 'column');
|
||||
@include vendor('justify-content', 'center');
|
||||
@include vendor('pointer-events', 'none');
|
||||
@include vendor('transition', 'opacity #{_duration(transition)} ease-in-out');
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: transparentize(_palette(invert, bg), 1 - _misc(lightbox-opacity));
|
||||
opacity: 0;
|
||||
padding: 3rem;
|
||||
z-index: 1;
|
||||
font-size: 1rem;
|
||||
|
||||
a {
|
||||
@include vendor('pointer-events', 'auto');
|
||||
}
|
||||
|
||||
h2, h3, h4, h5, h6 {
|
||||
font-size: 1.25rem;
|
||||
margin-bottom: 0.25rem;
|
||||
}
|
||||
|
||||
> * {
|
||||
max-width: 100%;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
> :last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
&:hover {
|
||||
.caption {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=medium') {
|
||||
article {
|
||||
.caption {
|
||||
padding: 2rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=small') {
|
||||
article {
|
||||
.caption {
|
||||
padding: 2rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Modifiers.
|
||||
|
||||
// size
|
||||
&.small {
|
||||
article {
|
||||
width: 17.5rem;
|
||||
|
||||
.caption {
|
||||
padding: 2rem;
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=medium') {
|
||||
article {
|
||||
.caption {
|
||||
padding: 2rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=small') {
|
||||
article {
|
||||
.caption {
|
||||
padding: 2rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.medium {
|
||||
// ...
|
||||
}
|
||||
|
||||
&.big {
|
||||
article {
|
||||
width: 30rem;
|
||||
|
||||
.caption {
|
||||
padding: 4rem;
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=medium') {
|
||||
article {
|
||||
.caption {
|
||||
padding: 3rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=small') {
|
||||
article {
|
||||
.caption {
|
||||
padding: 2rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/* Gallery (lightbox) */
|
||||
|
||||
@include keyframes('gallery-modal-spinner') {
|
||||
0% {
|
||||
@include vendor('transform', 'rotate(0deg)');
|
||||
}
|
||||
|
||||
100% {
|
||||
@include vendor('transform', 'rotate(360deg)');
|
||||
}
|
||||
}
|
||||
|
||||
.gallery.lightbox {
|
||||
.modal {
|
||||
@include vendor('display', 'flex');
|
||||
@include vendor('align-items', 'center');
|
||||
@include vendor('justify-content', 'center');
|
||||
@include vendor('pointer-events', 'none');
|
||||
@include vendor('user-select', 'none');
|
||||
@include vendor('transition', (
|
||||
'opacity #{_duration(gallery-lightbox)} ease',
|
||||
'visibility #{_duration(gallery-lightbox)}',
|
||||
'z-index #{_duration(gallery-lightbox)}'
|
||||
));
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
outline: 0;
|
||||
background-color: transparentize(_palette(invert, bg), 1 - _misc(lightbox-opacity));
|
||||
visibility: none;
|
||||
opacity: 0;
|
||||
z-index: 0;
|
||||
|
||||
&:before {
|
||||
@include vendor('animation', 'gallery-modal-spinner 1s infinite linear');
|
||||
@include vendor('transition', 'opacity #{_duration(gallery-lightbox) * 0.5} ease');
|
||||
@include vendor('transition-delay', '#{_duration(gallery-lightbox)}');
|
||||
content: '';
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
width: 4rem;
|
||||
height: 4rem;
|
||||
margin: -2rem 0 0 -2rem;
|
||||
background-image: svg-url('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="96px" height="96px" viewBox="0 0 96 96" zoomAndPan="disable"><style>circle {fill: transparent; stroke: #{_palette(invert, fg-bold)}; stroke-width: 1.5px; }</style><defs><clipPath id="corner"><polygon points="0,0 48,0 48,48 96,48 96,96 0,96" /></clipPath></defs><g clip-path="url(#corner)"><circle cx="48" cy="48" r="32"/></g></svg>');
|
||||
background-position: center;
|
||||
background-repeat: no-repeat;
|
||||
background-size: 4rem;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
&:after {
|
||||
content: '';
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 0.5rem;
|
||||
right: 0.5rem;
|
||||
width: 4rem;
|
||||
height: 4rem;
|
||||
cursor: pointer;
|
||||
background-image: svg-url('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="64px" height="64px" viewBox="0 0 64 64" zoomAndPan="disable"><style>line {stroke: #{_palette(invert, fg-bold)};stroke-width: 1.5px;}</style><line x1="20" y1="20" x2="44" y2="44" /><line x1="20" y1="44" x2="44" y2="20" /></svg>');
|
||||
background-position: center;
|
||||
background-repeat: no-repeat;
|
||||
background-size: 3rem;
|
||||
}
|
||||
|
||||
.inner {
|
||||
@include vendor('transform', 'translateY(0.75rem)');
|
||||
@include vendor('transition', (
|
||||
'opacity #{_duration(gallery-lightbox) * 0.5} ease',
|
||||
'transform #{_duration(gallery-lightbox) * 0.5} ease'
|
||||
));
|
||||
opacity: 0;
|
||||
|
||||
img {
|
||||
display: block;
|
||||
max-width: 90vw;
|
||||
max-height: 85vh;
|
||||
box-shadow: 0 1rem 3rem 0 rgba(0, 0, 0, 0.35);
|
||||
}
|
||||
}
|
||||
|
||||
&.visible {
|
||||
@include vendor('pointer-events', 'auto');
|
||||
visibility: visible;
|
||||
opacity: 1;
|
||||
z-index: _misc(z-index-base) + 1;
|
||||
|
||||
&:before {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
&.loaded {
|
||||
.inner {
|
||||
@include vendor('transform', 'translateY(0)');
|
||||
@include vendor('transition', (
|
||||
'opacity #{_duration(gallery-lightbox)} ease',
|
||||
'transform #{_duration(gallery-lightbox)} ease'
|
||||
));
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
&:before {
|
||||
@include vendor('transition-delay', '0s');
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=medium') {
|
||||
.modal {
|
||||
.inner {
|
||||
img {
|
||||
max-width: 100vw;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Mixin
|
||||
|
||||
@mixin color-gallery($p: null) {
|
||||
.gallery {
|
||||
article {
|
||||
.image {
|
||||
background-color: transparentize(_palette($p, fg-bold), 0.875);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include color-gallery;
|
103
_sass/components/_icon.scss
Normal file
103
_sass/components/_icon.scss
Normal file
|
@ -0,0 +1,103 @@
|
|||
///
|
||||
/// Story by HTML5 UP
|
||||
/// html5up.net | @ajlkn
|
||||
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
///
|
||||
|
||||
/* Icon */
|
||||
|
||||
.icon {
|
||||
@include icon;
|
||||
border-bottom: none;
|
||||
position: relative;
|
||||
text-align: center;
|
||||
|
||||
> .label {
|
||||
display: none;
|
||||
}
|
||||
|
||||
&:before {
|
||||
line-height: inherit;
|
||||
}
|
||||
|
||||
&.solid {
|
||||
&:before {
|
||||
font-weight: 900;
|
||||
}
|
||||
}
|
||||
|
||||
&.brands {
|
||||
&:before {
|
||||
font-family: 'Font Awesome 5 Brands';
|
||||
}
|
||||
}
|
||||
|
||||
&.style2 {
|
||||
&:before {
|
||||
border-radius: 2.75em;
|
||||
display: inline-block;
|
||||
height: 2.75em;
|
||||
line-height: 2.75em;
|
||||
width: 2.75em;
|
||||
}
|
||||
}
|
||||
|
||||
&.major {
|
||||
display: block;
|
||||
margin: 0 0 (_size(element-margin) * 0.5) 0;
|
||||
|
||||
&:before {
|
||||
font-size: 1.25rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
a.icon {
|
||||
&.style2 {
|
||||
&:before {
|
||||
@include vendor('transition', (
|
||||
'background-color #{_duration(transition)} ease-in-out',
|
||||
'box-shadow #{_duration(transition)} ease-in-out',
|
||||
'color #{_duration(transition)} ease-in-out'
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@mixin color-icon($p: null) {
|
||||
.icon {
|
||||
&.style2 {
|
||||
&:before {
|
||||
box-shadow: inset 0 0 0 _size(border-width) _palette($p, border);
|
||||
}
|
||||
}
|
||||
}
|
||||
.player {
|
||||
&.style2 {
|
||||
&:before {
|
||||
box-shadow: inset 0 0 0 _size(border-width) _palette($p, fg-light);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
a.icon {
|
||||
&.style2 {
|
||||
&:hover {
|
||||
&:before {
|
||||
box-shadow: inset 0 0 0 _size(border-width) _palette($p, accent);
|
||||
color: _palette($p, accent);
|
||||
}
|
||||
}
|
||||
|
||||
&:active {
|
||||
&:before {
|
||||
background-color: transparentize(_palette($p, accent), 0.9);
|
||||
box-shadow: inset 0 0 0 _size(border-width) _palette($p, accent);
|
||||
color: _palette($p, accent);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include color-icon;
|
22
_sass/components/_icons.scss
Normal file
22
_sass/components/_icons.scss
Normal file
|
@ -0,0 +1,22 @@
|
|||
///
|
||||
/// Story by HTML5 UP
|
||||
/// html5up.net | @ajlkn
|
||||
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
///
|
||||
|
||||
/* Icons */
|
||||
|
||||
ul.icons {
|
||||
cursor: default;
|
||||
list-style: none;
|
||||
padding-left: 0;
|
||||
|
||||
li {
|
||||
display: inline-block;
|
||||
padding: 0 0.75rem 0 0;
|
||||
|
||||
&:last-child {
|
||||
padding-right: 0;
|
||||
}
|
||||
}
|
||||
}
|
61
_sass/components/_image.scss
Normal file
61
_sass/components/_image.scss
Normal file
|
@ -0,0 +1,61 @@
|
|||
///
|
||||
/// Story by HTML5 UP
|
||||
/// html5up.net | @ajlkn
|
||||
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
///
|
||||
|
||||
/* Image */
|
||||
|
||||
.image {
|
||||
border: 0;
|
||||
border-radius: _size(border-radius);
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
|
||||
img {
|
||||
display: block;
|
||||
border-radius: _size(border-radius);
|
||||
}
|
||||
|
||||
&.left,
|
||||
&.right {
|
||||
width: 40%;
|
||||
max-width: 10rem;
|
||||
|
||||
img {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
&.left {
|
||||
float: left;
|
||||
margin: 0 1.5rem 1rem 0;
|
||||
top: 0.25rem;
|
||||
}
|
||||
|
||||
&.right {
|
||||
float: right;
|
||||
margin: 0 0 1rem 1.5rem;
|
||||
top: 0.25rem;
|
||||
}
|
||||
|
||||
&.fit {
|
||||
display: block;
|
||||
margin: 0 0 _size(element-margin) 0;
|
||||
width: 100%;
|
||||
|
||||
img {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
&.main {
|
||||
display: block;
|
||||
margin: 0 0 (_size(element-margin) * 1.5) 0;
|
||||
width: 100%;
|
||||
|
||||
img {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
}
|
66
_sass/components/_index.scss
Normal file
66
_sass/components/_index.scss
Normal file
|
@ -0,0 +1,66 @@
|
|||
///
|
||||
/// Story by HTML5 UP
|
||||
/// html5up.net | @ajlkn
|
||||
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
///
|
||||
|
||||
/* Index */
|
||||
|
||||
.index {
|
||||
> * {
|
||||
@include padding(3rem, 0);
|
||||
@include vendor('display', 'flex');
|
||||
border-top: solid 1px;
|
||||
|
||||
> header {
|
||||
@include vendor('flex-grow', '0');
|
||||
@include vendor('flex-shrink', '0');
|
||||
width: 15rem;
|
||||
}
|
||||
|
||||
> .content {
|
||||
@include vendor('flex-grow', '1');
|
||||
@include vendor('flex-shrink', '1');
|
||||
}
|
||||
}
|
||||
|
||||
> :first-child {
|
||||
border-top: 0;
|
||||
}
|
||||
|
||||
@include breakpoint('<=medium') {
|
||||
> * {
|
||||
> header {
|
||||
width: 11rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=small') {
|
||||
> * {
|
||||
> header {
|
||||
width: 10rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=xsmall') {
|
||||
> * {
|
||||
@include vendor('flex-direction', 'column');
|
||||
|
||||
> header {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@mixin color-index($p: null) {
|
||||
.index {
|
||||
> * {
|
||||
border-top-color: _palette($p, border);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include color-index;
|
338
_sass/components/_items.scss
Normal file
338
_sass/components/_items.scss
Normal file
|
@ -0,0 +1,338 @@
|
|||
///
|
||||
/// Story by HTML5 UP
|
||||
/// html5up.net | @ajlkn
|
||||
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
///
|
||||
|
||||
/* Items (transitions) */
|
||||
|
||||
.items {
|
||||
|
||||
// Mixin.
|
||||
@mixin transition-items($event) {
|
||||
$x: null;
|
||||
$y: null;
|
||||
|
||||
@if ($event == 'load') {
|
||||
$x: 'body.is-preload &';
|
||||
$y: _duration(on-load);
|
||||
}
|
||||
@else if ($event == 'scroll') {
|
||||
$x: '&.is-inactive';
|
||||
$y: _duration(on-scroll);
|
||||
}
|
||||
|
||||
&.on#{$event}-fade-in {
|
||||
> * {
|
||||
> .inner {
|
||||
@include vendor('transition', 'opacity #{$y} ease-in-out');
|
||||
@include vendor('transition-delay', '#{_misc(items-limit) * _duration(items-delay)}');
|
||||
}
|
||||
|
||||
@for $i from 0 through _misc(items-limit) {
|
||||
&:nth-child(#{$i + 1}) {
|
||||
> .inner {
|
||||
@include vendor('transition-delay', '#{$i * _duration(items-delay)}');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#{$x} {
|
||||
> * {
|
||||
> .inner {
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// On Load.
|
||||
@include transition-items('load');
|
||||
|
||||
// On Scroll.
|
||||
@include transition-items('scroll');
|
||||
|
||||
}
|
||||
|
||||
/* Items (style1) */
|
||||
|
||||
@mixin items-style1-size($name, $size, $padding) {
|
||||
&.#{$name} {
|
||||
> * {
|
||||
@include padding($padding, $padding);
|
||||
width: #{100% / $size};
|
||||
|
||||
&:nth-child(-n + #{$size}) {
|
||||
border-top-width: 0;
|
||||
}
|
||||
|
||||
&:nth-child(#{$size}n + 1) {
|
||||
border-left-width: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@mixin items-style1-size-reset($name, $size) {
|
||||
&.#{$name} {
|
||||
> * {
|
||||
&:nth-child(-n + #{$size}) {
|
||||
border-top-width: _size(border-width);
|
||||
}
|
||||
|
||||
&:nth-child(#{$size}n + 1) {
|
||||
border-left-width: _size(border-width);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.items.style1 {
|
||||
@include vendor('display', 'flex');
|
||||
@include vendor('flex-wrap', 'wrap');
|
||||
@include vendor('justify-content', 'center');
|
||||
margin: (_size(element-margin) * 1.5) 0;
|
||||
position: relative;
|
||||
|
||||
> * {
|
||||
@include vendor('flex-grow', '0');
|
||||
@include vendor('flex-shrink', '0');
|
||||
border-style: solid;
|
||||
border-left-width: _size(border-width);
|
||||
border-top-width: _size(border-width);
|
||||
}
|
||||
|
||||
// Modifiers.
|
||||
|
||||
// Size.
|
||||
@include items-style1-size(big, 2, _size(gutter));
|
||||
@include items-style1-size(medium, 3, _size(gutter) * 0.625);
|
||||
@include items-style1-size(small, 4, _size(gutter) * 0.375);
|
||||
|
||||
@include breakpoint('<=large') {
|
||||
@include items-style1-size-reset(small, 4);
|
||||
@include items-style1-size(small, 3, _size(gutter) * 0.625);
|
||||
}
|
||||
|
||||
@include breakpoint('<=medium') {
|
||||
@include items-style1-size-reset(medium, 3);
|
||||
@include items-style1-size(medium, 2, _size(gutter));
|
||||
|
||||
@include items-style1-size-reset(small, 3);
|
||||
@include items-style1-size(small, 2, _size(gutter));
|
||||
}
|
||||
|
||||
@include breakpoint('<=xsmall') {
|
||||
@include items-style1-size-reset(big, 2);
|
||||
@include items-style1-size(big, 1, _size(gutter) * 0.75);
|
||||
|
||||
@include items-style1-size-reset(medium, 2);
|
||||
@include items-style1-size(medium, 1, _size(gutter) * 0.75);
|
||||
|
||||
@include items-style1-size-reset(small, 2);
|
||||
@include items-style1-size(small, 1, _size(gutter) * 0.75);
|
||||
|
||||
&.big,
|
||||
&.medium,
|
||||
&.small {
|
||||
> * {
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
> :first-child {
|
||||
padding-top: 0;
|
||||
}
|
||||
|
||||
> :last-child {
|
||||
padding-bottom: 0;
|
||||
|
||||
> .inner {
|
||||
> :last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/* Items (style2) */
|
||||
|
||||
@mixin items-style2-size($name, $size, $padding) {
|
||||
&.#{$name} {
|
||||
> * {
|
||||
@include padding($padding, $padding);
|
||||
width: #{100% / $size};
|
||||
|
||||
&:nth-child(-n + #{$size}) {
|
||||
border-top-width: 0;
|
||||
}
|
||||
|
||||
&:nth-child(#{$size}n + 1) {
|
||||
border-left-width: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@mixin items-style2-size-reset($name, $size) {
|
||||
&.#{$name} {
|
||||
> * {
|
||||
&:nth-child(-n + #{$size}) {
|
||||
border-top-width: _size(border-width);
|
||||
}
|
||||
|
||||
&:nth-child(#{$size}n + 1) {
|
||||
border-left-width: _size(border-width);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.items.style2 {
|
||||
@include vendor('display', 'flex');
|
||||
@include vendor('flex-wrap', 'wrap');
|
||||
@include vendor('justify-content', 'center');
|
||||
margin: (_size(element-margin) * 1.5) 0;
|
||||
position: relative;
|
||||
border: solid _size(border-width);
|
||||
border-radius: _size(border-radius);
|
||||
|
||||
> * {
|
||||
@include vendor('flex-grow', '0');
|
||||
@include vendor('flex-shrink', '0');
|
||||
border-style: solid;
|
||||
border-left-width: _size(border-width);
|
||||
border-top-width: _size(border-width);
|
||||
}
|
||||
|
||||
// Modifiers.
|
||||
|
||||
// Size.
|
||||
@include items-style2-size(big, 2, _size(gutter));
|
||||
@include items-style2-size(medium, 3, _size(gutter) * 0.625);
|
||||
@include items-style2-size(small, 4, _size(gutter) * 0.375);
|
||||
|
||||
@include breakpoint('<=large') {
|
||||
@include items-style2-size-reset(small, 4);
|
||||
@include items-style2-size(small, 3, _size(gutter) * 0.625);
|
||||
}
|
||||
|
||||
@include breakpoint('<=medium') {
|
||||
@include items-style2-size-reset(medium, 3);
|
||||
@include items-style2-size(medium, 2, _size(gutter));
|
||||
|
||||
@include items-style2-size-reset(small, 3);
|
||||
@include items-style2-size(small, 2, _size(gutter));
|
||||
}
|
||||
|
||||
@include breakpoint('<=xsmall') {
|
||||
@include items-style2-size-reset(big, 2);
|
||||
@include items-style2-size(big, 1, _size(gutter) * 0.75);
|
||||
|
||||
@include items-style2-size-reset(medium, 2);
|
||||
@include items-style2-size(medium, 1, _size(gutter) * 0.75);
|
||||
|
||||
@include items-style2-size-reset(small, 2);
|
||||
@include items-style2-size(small, 1, _size(gutter) * 0.75);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/* Items (style3) */
|
||||
|
||||
@mixin items-style3-size($name, $size, $padding) {
|
||||
&.#{$name} {
|
||||
> * {
|
||||
@include padding($padding, $padding);
|
||||
width: #{100% / $size};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.items.style3 {
|
||||
@include vendor('display', 'flex');
|
||||
@include vendor('flex-wrap', 'wrap');
|
||||
@include vendor('justify-content', 'center');
|
||||
margin: (_size(element-margin) * 1.5) 0;
|
||||
position: relative;
|
||||
|
||||
> * {
|
||||
@include vendor('flex-grow', '0');
|
||||
@include vendor('flex-shrink', '0');
|
||||
}
|
||||
|
||||
// Modifiers.
|
||||
|
||||
// Size.
|
||||
@include items-style3-size(big, 2, _size(gutter) * 0.5);
|
||||
@include items-style3-size(medium, 3, _size(gutter) * 0.5 * 0.625);
|
||||
@include items-style3-size(small, 4, _size(gutter) * 0.5 * 0.375);
|
||||
|
||||
@include breakpoint('<=large') {
|
||||
@include items-style3-size(small, 3, _size(gutter) * 0.5 * 0.625);
|
||||
}
|
||||
|
||||
@include breakpoint('<=medium') {
|
||||
@include items-style3-size(medium, 2, _size(gutter) * 0.5);
|
||||
@include items-style3-size(small, 2, _size(gutter) * 0.5);
|
||||
}
|
||||
|
||||
@include breakpoint('<=small') {
|
||||
margin: _size(element-margin) 0;
|
||||
}
|
||||
|
||||
@include breakpoint('<=xsmall') {
|
||||
@include items-style3-size(big, 1, _size(gutter) * 0.5 * 0.75);
|
||||
@include items-style3-size(medium, 1, _size(gutter) * 0.5 * 0.75);
|
||||
@include items-style3-size(small, 1, _size(gutter) * 0.5 * 0.75);
|
||||
|
||||
&.big,
|
||||
&.medium,
|
||||
&.small {
|
||||
> * {
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
> :first-child {
|
||||
padding-top: 0;
|
||||
}
|
||||
|
||||
> :last-child {
|
||||
padding-bottom: 0;
|
||||
|
||||
> .inner {
|
||||
> :last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Mixin
|
||||
|
||||
@mixin color-items($p: null) {
|
||||
.items.style1 {
|
||||
> * {
|
||||
border-color: _palette($p, #fff);
|
||||
}
|
||||
}
|
||||
|
||||
.items.style2 {
|
||||
border-color: _palette($p, border);
|
||||
|
||||
> * {
|
||||
border-color: _palette($p, border);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include color-items;
|
86
_sass/components/_list.scss
Normal file
86
_sass/components/_list.scss
Normal file
|
@ -0,0 +1,86 @@
|
|||
///
|
||||
/// Story by HTML5 UP
|
||||
/// html5up.net | @ajlkn
|
||||
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
///
|
||||
|
||||
/* List */
|
||||
|
||||
ol {
|
||||
list-style: decimal;
|
||||
margin: 0 0 _size(element-margin) 0;
|
||||
padding-left: 1.25rem;
|
||||
|
||||
li {
|
||||
padding-left: 0.25rem;
|
||||
}
|
||||
}
|
||||
|
||||
ul {
|
||||
list-style: disc;
|
||||
margin: 0 0 _size(element-margin) 0;
|
||||
padding-left: 1rem;
|
||||
|
||||
li {
|
||||
padding-left: 0.5rem;
|
||||
}
|
||||
|
||||
&.alt {
|
||||
list-style: none;
|
||||
padding-left: 0;
|
||||
|
||||
li {
|
||||
border-top: solid _size(border-width);
|
||||
padding: 0.5rem 0;
|
||||
|
||||
&:first-child {
|
||||
border-top: 0;
|
||||
padding-top: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dl {
|
||||
margin: 0 0 _size(element-margin) 0;
|
||||
|
||||
dt {
|
||||
display: block;
|
||||
font-weight: _font(weight-bold);
|
||||
margin: 0 0 (_size(element-margin) * 0.5) 0;
|
||||
}
|
||||
|
||||
dd {
|
||||
margin-left: _size(element-margin);
|
||||
}
|
||||
|
||||
&.style2 {
|
||||
dt {
|
||||
width: 25%;
|
||||
float: left;
|
||||
}
|
||||
|
||||
dd {
|
||||
width: 70%;
|
||||
float: left;
|
||||
}
|
||||
|
||||
&:after {
|
||||
content: '';
|
||||
display: block;
|
||||
clear: both;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@mixin color-list($p: null) {
|
||||
ul {
|
||||
&.alt {
|
||||
li {
|
||||
border-top-color: _palette($p, border);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include color-list;
|
35
_sass/components/_row.scss
Normal file
35
_sass/components/_row.scss
Normal file
|
@ -0,0 +1,35 @@
|
|||
///
|
||||
/// Story by HTML5 UP
|
||||
/// html5up.net | @ajlkn
|
||||
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
///
|
||||
|
||||
/* Row */
|
||||
|
||||
.row {
|
||||
@include html-grid(2rem);
|
||||
|
||||
@include breakpoint('<=xlarge') {
|
||||
@include html-grid(2rem, 'xlarge');
|
||||
}
|
||||
|
||||
@include breakpoint('<=large') {
|
||||
@include html-grid(2rem, 'large');
|
||||
}
|
||||
|
||||
@include breakpoint('<=medium') {
|
||||
@include html-grid(2rem, 'medium');
|
||||
}
|
||||
|
||||
@include breakpoint('<=small') {
|
||||
@include html-grid(2rem, 'small');
|
||||
}
|
||||
|
||||
@include breakpoint('<=xsmall') {
|
||||
@include html-grid(2rem, 'xsmall');
|
||||
}
|
||||
|
||||
@include breakpoint('<=xxsmall') {
|
||||
@include html-grid(2rem, 'xxsmall');
|
||||
}
|
||||
}
|
49
_sass/components/_section.scss
Normal file
49
_sass/components/_section.scss
Normal file
|
@ -0,0 +1,49 @@
|
|||
///
|
||||
/// Story by HTML5 UP
|
||||
/// html5up.net | @ajlkn
|
||||
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
///
|
||||
|
||||
/* Section/Article */
|
||||
|
||||
section, article {
|
||||
&.special {
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
||||
header {
|
||||
p {
|
||||
position: relative;
|
||||
margin: (_size(element-margin) * -0.325) 0 (_size(element-margin) * 0.75) 0;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
h1 + p {
|
||||
font-size: 1.375rem;
|
||||
}
|
||||
|
||||
h2 + p {
|
||||
font-size: 1.25rem;
|
||||
}
|
||||
|
||||
h3 + p {
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
|
||||
h4 + p,
|
||||
h5 + p,
|
||||
h6 + p {
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
}
|
||||
|
||||
@mixin color-section($p: null) {
|
||||
header {
|
||||
p {
|
||||
color: _palette($p, fg-light);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include color-section;
|
1012
_sass/components/_spotlight.scss
Normal file
1012
_sass/components/_spotlight.scss
Normal file
File diff suppressed because it is too large
Load diff
137
_sass/components/_table.scss
Normal file
137
_sass/components/_table.scss
Normal file
|
@ -0,0 +1,137 @@
|
|||
///
|
||||
/// Story by HTML5 UP
|
||||
/// html5up.net | @ajlkn
|
||||
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
///
|
||||
|
||||
/* Table */
|
||||
|
||||
.table-wrapper {
|
||||
-webkit-overflow-scrolling: touch;
|
||||
margin: 0 0 _size(element-margin) 0;
|
||||
overflow-x: auto;
|
||||
|
||||
> table {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
table {
|
||||
margin: 0 0 _size(element-margin) 0;
|
||||
width: 100%;
|
||||
|
||||
tbody {
|
||||
tr {
|
||||
border: solid _size(border-width);
|
||||
border-left: 0;
|
||||
border-right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
td {
|
||||
padding: 0.75rem 0.75rem;
|
||||
}
|
||||
|
||||
th {
|
||||
font-size: 0.9rem;
|
||||
font-weight: _font(weight-bold);
|
||||
padding: 0 0.75rem 0.75rem 0.75rem;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
thead {
|
||||
border-bottom: solid (_size(border-width) * 2);
|
||||
}
|
||||
|
||||
tfoot {
|
||||
border-top: solid (_size(border-width) * 2);
|
||||
}
|
||||
|
||||
&.alt {
|
||||
border-collapse: separate;
|
||||
|
||||
tbody {
|
||||
tr {
|
||||
td {
|
||||
border: solid _size(border-width);
|
||||
border-left-width: 0;
|
||||
border-top-width: 0;
|
||||
|
||||
&:first-child {
|
||||
border-left-width: _size(border-width);
|
||||
}
|
||||
}
|
||||
|
||||
&:first-child {
|
||||
td {
|
||||
border-top-width: _size(border-width);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
thead {
|
||||
border-bottom: 0;
|
||||
}
|
||||
|
||||
tfoot {
|
||||
border-top: 0;
|
||||
}
|
||||
}
|
||||
|
||||
&.fixed {
|
||||
table-layout: fixed;
|
||||
}
|
||||
}
|
||||
|
||||
@mixin color-table($p: null) {
|
||||
table {
|
||||
tbody {
|
||||
tr {
|
||||
border-color: _palette($p, border);
|
||||
|
||||
&:nth-child(2n + 1) {
|
||||
background-color: _palette($p, border-bg);
|
||||
}
|
||||
|
||||
&.alt {
|
||||
background-color: _palette($p, border-bg) !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
th {
|
||||
color: _palette($p, fg-bold);
|
||||
}
|
||||
|
||||
thead {
|
||||
border-bottom-color: _palette($p, border);
|
||||
}
|
||||
|
||||
tfoot {
|
||||
border-top-color: _palette($p, border);
|
||||
}
|
||||
|
||||
&.alt {
|
||||
tbody {
|
||||
tr {
|
||||
td {
|
||||
border-color: _palette($p, border);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.uniform {
|
||||
tbody {
|
||||
tr {
|
||||
&:nth-child(2n + 1) {
|
||||
background-color: transparent;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include color-table;
|
120
_sass/components/_wrapper.scss
Normal file
120
_sass/components/_wrapper.scss
Normal file
|
@ -0,0 +1,120 @@
|
|||
///
|
||||
/// Story by HTML5 UP
|
||||
/// html5up.net | @ajlkn
|
||||
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
///
|
||||
|
||||
/* Wrapper (style1) */
|
||||
|
||||
.wrapper.style1 {
|
||||
> .inner {
|
||||
@include padding(_size(padding, default), _size(padding, default) * 0.5);
|
||||
margin: 0 auto;
|
||||
max-width: 100%;
|
||||
width: _size(inner);
|
||||
|
||||
&.medium {
|
||||
width: _size(inner) * 0.75;
|
||||
}
|
||||
|
||||
&.small {
|
||||
width: _size(inner) * 0.5;
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=xlarge') {
|
||||
> .inner {
|
||||
@include padding(_size(padding, xlarge), _size(padding, xlarge) * 0.5);
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=large') {
|
||||
> .inner {
|
||||
@include padding(_size(padding, large), _size(padding, large));
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=medium') {
|
||||
> .inner {
|
||||
@include padding(_size(padding, medium) * 1.5, _size(padding, medium));
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=small') {
|
||||
> .inner {
|
||||
@include padding(_size(padding, small) * 1.5, _size(padding, small));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Wrapper (style2) */
|
||||
|
||||
.wrapper.style2 {
|
||||
padding: _size(padding, default);
|
||||
background-color: _palette(bg-alt);
|
||||
|
||||
> .inner {
|
||||
@include padding(_size(padding, default) * 0.75, _size(padding, default) * 0.5);
|
||||
background-color: _palette(bg);
|
||||
border-radius: _size(border-radius-alt);
|
||||
margin: 0 auto;
|
||||
max-width: 100%;
|
||||
position: relative;
|
||||
width: _size(inner);
|
||||
z-index: 1;
|
||||
|
||||
&.medium {
|
||||
width: _size(inner) * 0.75;
|
||||
}
|
||||
|
||||
&.small {
|
||||
width: _size(inner) * 0.5;
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=xlarge') {
|
||||
padding: _size(padding, xlarge);
|
||||
|
||||
> .inner {
|
||||
@include padding(_size(padding, xlarge) * 0.75, _size(padding, xlarge) * 0.5);
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=large') {
|
||||
padding: _size(padding, large);
|
||||
|
||||
> .inner {
|
||||
@include padding(_size(padding, large) * 0.75, _size(padding, large) * 0.5);
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=medium') {
|
||||
padding: _size(padding, medium) * 0.75;
|
||||
|
||||
> .inner {
|
||||
@include padding(_size(padding, medium), _size(padding, medium) * 0.75);
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=small') {
|
||||
padding: _size(padding, small) * 0.75;
|
||||
|
||||
> .inner {
|
||||
@include padding(_size(padding, small), _size(padding, small) * 0.75);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#wrapper {
|
||||
> .wrapper.style2 {
|
||||
&.invert {
|
||||
&:not(.color1):not(.color2):not(.color3):not(.color4):not(.color5):not(.color6):not(.color7) {
|
||||
background-color: _palette(invert, bg-alt);
|
||||
}
|
||||
|
||||
> .inner {
|
||||
background-color: _palette(invert, bg);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
49
_sass/layout/_wrapper.scss
Normal file
49
_sass/layout/_wrapper.scss
Normal file
|
@ -0,0 +1,49 @@
|
|||
///
|
||||
/// Story by HTML5 UP
|
||||
/// html5up.net | @ajlkn
|
||||
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
///
|
||||
|
||||
/* Wrapper */
|
||||
|
||||
@mixin wrapper-color($n) {
|
||||
> .color#{$n} {
|
||||
background-color: _palette(color#{$n});
|
||||
}
|
||||
}
|
||||
|
||||
#wrapper {
|
||||
background-color: inherit;
|
||||
width: 100%;
|
||||
overflow-x: hidden;
|
||||
|
||||
> .invert {
|
||||
@include color(invert);
|
||||
}
|
||||
|
||||
@include wrapper-color(1);
|
||||
@include wrapper-color(2);
|
||||
@include wrapper-color(3);
|
||||
@include wrapper-color(4);
|
||||
@include wrapper-color(5);
|
||||
@include wrapper-color(6);
|
||||
@include wrapper-color(7);
|
||||
|
||||
&.divided {
|
||||
> * {
|
||||
box-shadow: inset 0 10px 10px 0 _palette(border-alt);
|
||||
|
||||
&:first-child {
|
||||
box-shadow: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
> .invert {
|
||||
box-shadow: inset 0 1px 0 0 _palette(invert, border-alt);
|
||||
|
||||
&:first-child {
|
||||
box-shadow: none !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
223
_sass/libs/_breakpoints.scss
Normal file
223
_sass/libs/_breakpoints.scss
Normal file
|
@ -0,0 +1,223 @@
|
|||
// breakpoints.scss v1.0 | @ajlkn | MIT licensed */
|
||||
|
||||
// Vars.
|
||||
|
||||
/// Breakpoints.
|
||||
/// @var {list}
|
||||
$breakpoints: () !global;
|
||||
|
||||
// Mixins.
|
||||
|
||||
/// Sets breakpoints.
|
||||
/// @param {map} $x Breakpoints.
|
||||
@mixin breakpoints($x: ()) {
|
||||
$breakpoints: $x !global;
|
||||
}
|
||||
|
||||
/// Wraps @content in a @media block targeting a specific orientation.
|
||||
/// @param {string} $orientation Orientation.
|
||||
@mixin orientation($orientation) {
|
||||
@media screen and (orientation: #{$orientation}) {
|
||||
@content;
|
||||
}
|
||||
}
|
||||
|
||||
/// Wraps @content in a @media block using a given query.
|
||||
/// @param {string} $query Query.
|
||||
@mixin breakpoint($query: null) {
|
||||
|
||||
$breakpoint: null;
|
||||
$op: null;
|
||||
$media: null;
|
||||
|
||||
// Determine operator, breakpoint.
|
||||
|
||||
// Greater than or equal.
|
||||
@if (str-slice($query, 0, 2) == '>=') {
|
||||
|
||||
$op: 'gte';
|
||||
$breakpoint: str-slice($query, 3);
|
||||
|
||||
}
|
||||
|
||||
// Less than or equal.
|
||||
@elseif (str-slice($query, 0, 2) == '<=') {
|
||||
|
||||
$op: 'lte';
|
||||
$breakpoint: str-slice($query, 3);
|
||||
|
||||
}
|
||||
|
||||
// Greater than.
|
||||
@elseif (str-slice($query, 0, 1) == '>') {
|
||||
|
||||
$op: 'gt';
|
||||
$breakpoint: str-slice($query, 2);
|
||||
|
||||
}
|
||||
|
||||
// Less than.
|
||||
@elseif (str-slice($query, 0, 1) == '<') {
|
||||
|
||||
$op: 'lt';
|
||||
$breakpoint: str-slice($query, 2);
|
||||
|
||||
}
|
||||
|
||||
// Not.
|
||||
@elseif (str-slice($query, 0, 1) == '!') {
|
||||
|
||||
$op: 'not';
|
||||
$breakpoint: str-slice($query, 2);
|
||||
|
||||
}
|
||||
|
||||
// Equal.
|
||||
@else {
|
||||
|
||||
$op: 'eq';
|
||||
$breakpoint: $query;
|
||||
|
||||
}
|
||||
|
||||
// Build media.
|
||||
@if ($breakpoint and map-has-key($breakpoints, $breakpoint)) {
|
||||
|
||||
$a: map-get($breakpoints, $breakpoint);
|
||||
|
||||
// Range.
|
||||
@if (type-of($a) == 'list') {
|
||||
|
||||
$x: nth($a, 1);
|
||||
$y: nth($a, 2);
|
||||
|
||||
// Max only.
|
||||
@if ($x == null) {
|
||||
|
||||
// Greater than or equal (>= 0 / anything)
|
||||
@if ($op == 'gte') {
|
||||
$media: 'screen';
|
||||
}
|
||||
|
||||
// Less than or equal (<= y)
|
||||
@elseif ($op == 'lte') {
|
||||
$media: 'screen and (max-width: ' + $y + ')';
|
||||
}
|
||||
|
||||
// Greater than (> y)
|
||||
@elseif ($op == 'gt') {
|
||||
$media: 'screen and (min-width: ' + ($y + 1) + ')';
|
||||
}
|
||||
|
||||
// Less than (< 0 / invalid)
|
||||
@elseif ($op == 'lt') {
|
||||
$media: 'screen and (max-width: -1px)';
|
||||
}
|
||||
|
||||
// Not (> y)
|
||||
@elseif ($op == 'not') {
|
||||
$media: 'screen and (min-width: ' + ($y + 1) + ')';
|
||||
}
|
||||
|
||||
// Equal (<= y)
|
||||
@else {
|
||||
$media: 'screen and (max-width: ' + $y + ')';
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Min only.
|
||||
@else if ($y == null) {
|
||||
|
||||
// Greater than or equal (>= x)
|
||||
@if ($op == 'gte') {
|
||||
$media: 'screen and (min-width: ' + $x + ')';
|
||||
}
|
||||
|
||||
// Less than or equal (<= inf / anything)
|
||||
@elseif ($op == 'lte') {
|
||||
$media: 'screen';
|
||||
}
|
||||
|
||||
// Greater than (> inf / invalid)
|
||||
@elseif ($op == 'gt') {
|
||||
$media: 'screen and (max-width: -1px)';
|
||||
}
|
||||
|
||||
// Less than (< x)
|
||||
@elseif ($op == 'lt') {
|
||||
$media: 'screen and (max-width: ' + ($x - 1) + ')';
|
||||
}
|
||||
|
||||
// Not (< x)
|
||||
@elseif ($op == 'not') {
|
||||
$media: 'screen and (max-width: ' + ($x - 1) + ')';
|
||||
}
|
||||
|
||||
// Equal (>= x)
|
||||
@else {
|
||||
$media: 'screen and (min-width: ' + $x + ')';
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Min and max.
|
||||
@else {
|
||||
|
||||
// Greater than or equal (>= x)
|
||||
@if ($op == 'gte') {
|
||||
$media: 'screen and (min-width: ' + $x + ')';
|
||||
}
|
||||
|
||||
// Less than or equal (<= y)
|
||||
@elseif ($op == 'lte') {
|
||||
$media: 'screen and (max-width: ' + $y + ')';
|
||||
}
|
||||
|
||||
// Greater than (> y)
|
||||
@elseif ($op == 'gt') {
|
||||
$media: 'screen and (min-width: ' + ($y + 1) + ')';
|
||||
}
|
||||
|
||||
// Less than (< x)
|
||||
@elseif ($op == 'lt') {
|
||||
$media: 'screen and (max-width: ' + ($x - 1) + ')';
|
||||
}
|
||||
|
||||
// Not (< x and > y)
|
||||
@elseif ($op == 'not') {
|
||||
$media: 'screen and (max-width: ' + ($x - 1) + '), screen and (min-width: ' + ($y + 1) + ')';
|
||||
}
|
||||
|
||||
// Equal (>= x and <= y)
|
||||
@else {
|
||||
$media: 'screen and (min-width: ' + $x + ') and (max-width: ' + $y + ')';
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// String.
|
||||
@else {
|
||||
|
||||
// Missing a media type? Prefix with "screen".
|
||||
@if (str-slice($a, 0, 1) == '(') {
|
||||
$media: 'screen and ' + $a;
|
||||
}
|
||||
|
||||
// Otherwise, use as-is.
|
||||
@else {
|
||||
$media: $a;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Output.
|
||||
@media #{$media} {
|
||||
@content;
|
||||
}
|
||||
|
||||
}
|
8
_sass/libs/_fonts.scss
Normal file
8
_sass/libs/_fonts.scss
Normal file
|
@ -0,0 +1,8 @@
|
|||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'Astloch';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: local('Astloch Bold'), local('Astloch-Bold'), url(/assets/fonts/Astloch-Bold.ttf) format('truetype');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||
}
|
90
_sass/libs/_functions.scss
Normal file
90
_sass/libs/_functions.scss
Normal file
|
@ -0,0 +1,90 @@
|
|||
/// Removes a specific item from a list.
|
||||
/// @author Hugo Giraudel
|
||||
/// @param {list} $list List.
|
||||
/// @param {integer} $index Index.
|
||||
/// @return {list} Updated list.
|
||||
@function remove-nth($list, $index) {
|
||||
|
||||
$result: null;
|
||||
|
||||
@if type-of($index) != number {
|
||||
@warn "$index: #{quote($index)} is not a number for `remove-nth`.";
|
||||
}
|
||||
@else if $index == 0 {
|
||||
@warn "List index 0 must be a non-zero integer for `remove-nth`.";
|
||||
}
|
||||
@else if abs($index) > length($list) {
|
||||
@warn "List index is #{$index} but list is only #{length($list)} item long for `remove-nth`.";
|
||||
}
|
||||
@else {
|
||||
|
||||
$result: ();
|
||||
$index: if($index < 0, length($list) + $index + 1, $index);
|
||||
|
||||
@for $i from 1 through length($list) {
|
||||
|
||||
@if $i != $index {
|
||||
$result: append($result, nth($list, $i));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@return $result;
|
||||
|
||||
}
|
||||
|
||||
/// Gets a value from a map.
|
||||
/// @author Hugo Giraudel
|
||||
/// @param {map} $map Map.
|
||||
/// @param {string} $keys Key(s).
|
||||
/// @return {string} Value.
|
||||
@function val($map, $keys...) {
|
||||
|
||||
@if nth($keys, 1) == null {
|
||||
$keys: remove-nth($keys, 1);
|
||||
}
|
||||
|
||||
@each $key in $keys {
|
||||
$map: map-get($map, $key);
|
||||
}
|
||||
|
||||
@return $map;
|
||||
|
||||
}
|
||||
|
||||
/// Gets a duration value.
|
||||
/// @param {string} $keys Key(s).
|
||||
/// @return {string} Value.
|
||||
@function _duration($keys...) {
|
||||
@return val($duration, $keys...);
|
||||
}
|
||||
|
||||
/// Gets a font value.
|
||||
/// @param {string} $keys Key(s).
|
||||
/// @return {string} Value.
|
||||
@function _font($keys...) {
|
||||
@return val($font, $keys...);
|
||||
}
|
||||
|
||||
/// Gets a misc value.
|
||||
/// @param {string} $keys Key(s).
|
||||
/// @return {string} Value.
|
||||
@function _misc($keys...) {
|
||||
@return val($misc, $keys...);
|
||||
}
|
||||
|
||||
/// Gets a palette value.
|
||||
/// @param {string} $keys Key(s).
|
||||
/// @return {string} Value.
|
||||
@function _palette($keys...) {
|
||||
@return val($palette, $keys...);
|
||||
}
|
||||
|
||||
/// Gets a size value.
|
||||
/// @param {string} $keys Key(s).
|
||||
/// @return {string} Value.
|
||||
@function _size($keys...) {
|
||||
@return val($size, $keys...);
|
||||
}
|
149
_sass/libs/_html-grid.scss
Normal file
149
_sass/libs/_html-grid.scss
Normal file
|
@ -0,0 +1,149 @@
|
|||
// html-grid.scss v1.0 | @ajlkn | MIT licensed */
|
||||
|
||||
// Mixins.
|
||||
|
||||
/// Initializes the current element as an HTML grid.
|
||||
/// @param {mixed} $gutters Gutters (either a single number to set both column/row gutters, or a list to set them individually).
|
||||
/// @param {mixed} $suffix Column class suffix (optional; either a single suffix or a list).
|
||||
@mixin html-grid($gutters: 1.5em, $suffix: '') {
|
||||
|
||||
// Initialize.
|
||||
$cols: 12;
|
||||
$multipliers: 0, 0.25, 0.5, 1, 1.50, 2.00;
|
||||
$unit: 100% / $cols;
|
||||
|
||||
// Suffixes.
|
||||
$suffixes: null;
|
||||
|
||||
@if (type-of($suffix) == 'list') {
|
||||
$suffixes: $suffix;
|
||||
}
|
||||
@else {
|
||||
$suffixes: ($suffix);
|
||||
}
|
||||
|
||||
// Gutters.
|
||||
$guttersCols: null;
|
||||
$guttersRows: null;
|
||||
|
||||
@if (type-of($gutters) == 'list') {
|
||||
|
||||
$guttersCols: nth($gutters, 1);
|
||||
$guttersRows: nth($gutters, 2);
|
||||
|
||||
}
|
||||
@else {
|
||||
|
||||
$guttersCols: $gutters;
|
||||
$guttersRows: 0;
|
||||
|
||||
}
|
||||
|
||||
// Row.
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
box-sizing: border-box;
|
||||
align-items: stretch;
|
||||
|
||||
// Columns.
|
||||
> * {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
// Gutters.
|
||||
&.gtr-uniform {
|
||||
> * {
|
||||
> :last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Alignment.
|
||||
&.aln-left {
|
||||
justify-content: flex-start;
|
||||
}
|
||||
|
||||
&.aln-center {
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
&.aln-right {
|
||||
justify-content: flex-end;
|
||||
}
|
||||
|
||||
&.aln-top {
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
&.aln-middle {
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
&.aln-bottom {
|
||||
align-items: flex-end;
|
||||
}
|
||||
|
||||
// Step through suffixes.
|
||||
@each $suffix in $suffixes {
|
||||
|
||||
// Suffix.
|
||||
@if ($suffix != '') {
|
||||
$suffix: '-' + $suffix;
|
||||
}
|
||||
@else {
|
||||
$suffix: '';
|
||||
}
|
||||
|
||||
// Row.
|
||||
|
||||
// Important.
|
||||
> .imp#{$suffix} {
|
||||
order: -1;
|
||||
}
|
||||
|
||||
// Columns, offsets.
|
||||
@for $i from 1 through $cols {
|
||||
> .col-#{$i}#{$suffix} {
|
||||
width: $unit * $i;
|
||||
}
|
||||
|
||||
> .off-#{$i}#{$suffix} {
|
||||
margin-left: $unit * $i;
|
||||
}
|
||||
}
|
||||
|
||||
// Step through multipliers.
|
||||
@each $multiplier in $multipliers {
|
||||
|
||||
// Gutters.
|
||||
$class: null;
|
||||
|
||||
@if ($multiplier != 1) {
|
||||
$class: '.gtr-' + ($multiplier * 100);
|
||||
}
|
||||
|
||||
&#{$class} {
|
||||
margin-top: ($guttersRows * $multiplier * -1);
|
||||
margin-left: ($guttersCols * $multiplier * -1);
|
||||
|
||||
> * {
|
||||
padding: ($guttersRows * $multiplier) 0 0 ($guttersCols * $multiplier);
|
||||
}
|
||||
|
||||
// Uniform.
|
||||
&.gtr-uniform {
|
||||
margin-top: $guttersCols * $multiplier * -1;
|
||||
|
||||
> * {
|
||||
padding-top: $guttersCols * $multiplier;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
78
_sass/libs/_mixins.scss
Normal file
78
_sass/libs/_mixins.scss
Normal file
|
@ -0,0 +1,78 @@
|
|||
/// Makes an element's :before pseudoelement a FontAwesome icon.
|
||||
/// @param {string} $content Optional content value to use.
|
||||
/// @param {string} $category Optional category to use.
|
||||
/// @param {string} $where Optional pseudoelement to target (before or after).
|
||||
@mixin icon($content: false, $category: regular, $where: before) {
|
||||
|
||||
text-decoration: none;
|
||||
|
||||
&:#{$where} {
|
||||
|
||||
@if $content {
|
||||
content: $content;
|
||||
}
|
||||
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
display: inline-block;
|
||||
font-style: normal;
|
||||
font-variant: normal;
|
||||
text-rendering: auto;
|
||||
line-height: 1;
|
||||
text-transform: none !important;
|
||||
|
||||
@if ($category == brands) {
|
||||
font-family: 'Font Awesome 5 Brands';
|
||||
}
|
||||
@elseif ($category == solid) {
|
||||
font-family: 'Font Awesome 5 Free';
|
||||
font-weight: 900;
|
||||
}
|
||||
@else {
|
||||
font-family: 'Font Awesome 5 Free';
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/// Applies padding to an element, taking the current element-margin value into account.
|
||||
/// @param {mixed} $tb Top/bottom padding.
|
||||
/// @param {mixed} $lr Left/right padding.
|
||||
/// @param {list} $pad Optional extra padding (in the following order top, right, bottom, left)
|
||||
/// @param {bool} $important If true, adds !important.
|
||||
@mixin padding($tb, $lr, $pad: (0,0,0,0), $important: null) {
|
||||
|
||||
@if $important {
|
||||
$important: '!important';
|
||||
}
|
||||
|
||||
$x: 0.1em;
|
||||
|
||||
@if unit(_size(element-margin)) == 'rem' {
|
||||
$x: 0.1rem;
|
||||
}
|
||||
|
||||
padding: ($tb + nth($pad,1)) ($lr + nth($pad,2)) max($x, $tb - _size(element-margin) + nth($pad,3)) ($lr + nth($pad,4)) #{$important};
|
||||
|
||||
}
|
||||
|
||||
/// Encodes a SVG data URL so IE doesn't choke (via codepen.io/jakob-e/pen/YXXBrp).
|
||||
/// @param {string} $svg SVG data URL.
|
||||
/// @return {string} Encoded SVG data URL.
|
||||
@function svg-url($svg) {
|
||||
|
||||
$svg: str-replace($svg, '"', '\'');
|
||||
$svg: str-replace($svg, '%', '%25');
|
||||
$svg: str-replace($svg, '<', '%3C');
|
||||
$svg: str-replace($svg, '>', '%3E');
|
||||
$svg: str-replace($svg, '&', '%26');
|
||||
$svg: str-replace($svg, '#', '%23');
|
||||
$svg: str-replace($svg, '{', '%7B');
|
||||
$svg: str-replace($svg, '}', '%7D');
|
||||
$svg: str-replace($svg, ';', '%3B');
|
||||
|
||||
@return url("data:image/svg+xml;charset=utf8,#{$svg}");
|
||||
|
||||
}
|
85
_sass/libs/_vars.scss
Normal file
85
_sass/libs/_vars.scss
Normal file
|
@ -0,0 +1,85 @@
|
|||
// Misc.
|
||||
$misc: (
|
||||
z-index-base: 10000,
|
||||
overlay-opacity: 0.75,
|
||||
lightbox-opacity: 0.75,
|
||||
gallery-limit: 32,
|
||||
items-limit: 16
|
||||
);
|
||||
|
||||
// Duration.
|
||||
$duration: (
|
||||
menu: 0.5s,
|
||||
transition: 0.2s,
|
||||
gallery-lightbox: 0.5s,
|
||||
gallery-delay: 0.15s,
|
||||
items-delay: 0.15s,
|
||||
on-load: 0.75s,
|
||||
on-scroll: 0.75s
|
||||
);
|
||||
|
||||
// Size.
|
||||
$size: (
|
||||
border-radius: 4px,
|
||||
border-radius-alt: 0.5rem,
|
||||
border-width: 1px,
|
||||
element-height: 2.75rem,
|
||||
element-margin: 2rem,
|
||||
gutter: 3.5rem,
|
||||
inner: 64rem,
|
||||
padding: (
|
||||
default: 7rem,
|
||||
xlarge: 5rem,
|
||||
large: 4rem,
|
||||
medium: 3rem,
|
||||
small: 2rem
|
||||
)
|
||||
);
|
||||
|
||||
// Font.
|
||||
$font: (
|
||||
family: ('Astloch', Helvetica, sans-serif),
|
||||
family-fixed: ('Courier New', monospace),
|
||||
weight: 400,
|
||||
weight-bold: 700,
|
||||
kerning: -0.025em,
|
||||
kerning-alt: 0.125em
|
||||
);
|
||||
|
||||
// Palette.
|
||||
$palette: (
|
||||
color1: #30363d,
|
||||
color2: #db8992,
|
||||
color3: #ab7aad,
|
||||
color4: #897cad,
|
||||
color5: #7794ce,
|
||||
color6: #64abb4,
|
||||
color7: #6ba78c,
|
||||
|
||||
|
||||
bg: #111111,
|
||||
bg-alt: rgb(238, 238, 238),
|
||||
bg-transparent: rgba(238, 238, 238, 0.5),
|
||||
fg: rgb(238, 238, 238),
|
||||
fg-bold: rgb(238, 238, 238),
|
||||
fg-light: rgba(238, 238, 238, 0.75),
|
||||
border: rgba(0, 0, 0, 0.2),
|
||||
border-alt: rgba(0, 0, 0, 0.075),
|
||||
border-bg: rgba(0, 0, 0, 0.05),
|
||||
border-darken: rgba(0, 0, 0, 0.25),
|
||||
border-dark: rgba(0, 0, 0, 0.85),
|
||||
accent: rgba(233, 77, 29, 1),
|
||||
accent-dark: rgb(0, 0, 0),
|
||||
|
||||
invert: (
|
||||
bg: #000000,
|
||||
bg-alt: #222222,
|
||||
fg: #ffffff,
|
||||
fg-bold: #ffffff,
|
||||
fg-light: #ffffff,
|
||||
border: rgb(0, 0, 0),
|
||||
border-alt: rgba(238, 238, 238, 0.25),
|
||||
border-bg: rgba(0, 0, 0, 0.125),
|
||||
accent: #47D3E5
|
||||
),
|
||||
);
|
376
_sass/libs/_vendor.scss
Normal file
376
_sass/libs/_vendor.scss
Normal file
|
@ -0,0 +1,376 @@
|
|||
// vendor.scss v1.0 | @ajlkn | MIT licensed */
|
||||
|
||||
// Vars.
|
||||
|
||||
/// Vendor prefixes.
|
||||
/// @var {list}
|
||||
$vendor-prefixes: (
|
||||
'-moz-',
|
||||
'-webkit-',
|
||||
'-ms-',
|
||||
''
|
||||
);
|
||||
|
||||
/// Properties that should be vendorized.
|
||||
/// Data via caniuse.com, github.com/postcss/autoprefixer, and developer.mozilla.org
|
||||
/// @var {list}
|
||||
$vendor-properties: (
|
||||
|
||||
// Animation.
|
||||
'animation',
|
||||
'animation-delay',
|
||||
'animation-direction',
|
||||
'animation-duration',
|
||||
'animation-fill-mode',
|
||||
'animation-iteration-count',
|
||||
'animation-name',
|
||||
'animation-play-state',
|
||||
'animation-timing-function',
|
||||
|
||||
// Appearance.
|
||||
'appearance',
|
||||
|
||||
// Backdrop filter.
|
||||
'backdrop-filter',
|
||||
|
||||
// Background image options.
|
||||
'background-clip',
|
||||
'background-origin',
|
||||
'background-size',
|
||||
|
||||
// Box sizing.
|
||||
'box-sizing',
|
||||
|
||||
// Clip path.
|
||||
'clip-path',
|
||||
|
||||
// Filter effects.
|
||||
'filter',
|
||||
|
||||
// Flexbox.
|
||||
'align-content',
|
||||
'align-items',
|
||||
'align-self',
|
||||
'flex',
|
||||
'flex-basis',
|
||||
'flex-direction',
|
||||
'flex-flow',
|
||||
'flex-grow',
|
||||
'flex-shrink',
|
||||
'flex-wrap',
|
||||
'justify-content',
|
||||
'order',
|
||||
|
||||
// Font feature.
|
||||
'font-feature-settings',
|
||||
'font-language-override',
|
||||
'font-variant-ligatures',
|
||||
|
||||
// Font kerning.
|
||||
'font-kerning',
|
||||
|
||||
// Fragmented borders and backgrounds.
|
||||
'box-decoration-break',
|
||||
|
||||
// Grid layout.
|
||||
'grid-column',
|
||||
'grid-column-align',
|
||||
'grid-column-end',
|
||||
'grid-column-start',
|
||||
'grid-row',
|
||||
'grid-row-align',
|
||||
'grid-row-end',
|
||||
'grid-row-start',
|
||||
'grid-template-columns',
|
||||
'grid-template-rows',
|
||||
|
||||
// Hyphens.
|
||||
'hyphens',
|
||||
'word-break',
|
||||
|
||||
// Masks.
|
||||
'mask',
|
||||
'mask-border',
|
||||
'mask-border-outset',
|
||||
'mask-border-repeat',
|
||||
'mask-border-slice',
|
||||
'mask-border-source',
|
||||
'mask-border-width',
|
||||
'mask-clip',
|
||||
'mask-composite',
|
||||
'mask-image',
|
||||
'mask-origin',
|
||||
'mask-position',
|
||||
'mask-repeat',
|
||||
'mask-size',
|
||||
|
||||
// Multicolumn.
|
||||
'break-after',
|
||||
'break-before',
|
||||
'break-inside',
|
||||
'column-count',
|
||||
'column-fill',
|
||||
'column-gap',
|
||||
'column-rule',
|
||||
'column-rule-color',
|
||||
'column-rule-style',
|
||||
'column-rule-width',
|
||||
'column-span',
|
||||
'column-width',
|
||||
'columns',
|
||||
|
||||
// Object fit.
|
||||
'object-fit',
|
||||
'object-position',
|
||||
|
||||
// Regions.
|
||||
'flow-from',
|
||||
'flow-into',
|
||||
'region-fragment',
|
||||
|
||||
// Scroll snap points.
|
||||
'scroll-snap-coordinate',
|
||||
'scroll-snap-destination',
|
||||
'scroll-snap-points-x',
|
||||
'scroll-snap-points-y',
|
||||
'scroll-snap-type',
|
||||
|
||||
// Shapes.
|
||||
'shape-image-threshold',
|
||||
'shape-margin',
|
||||
'shape-outside',
|
||||
|
||||
// Tab size.
|
||||
'tab-size',
|
||||
|
||||
// Text align last.
|
||||
'text-align-last',
|
||||
|
||||
// Text decoration.
|
||||
'text-decoration-color',
|
||||
'text-decoration-line',
|
||||
'text-decoration-skip',
|
||||
'text-decoration-style',
|
||||
|
||||
// Text emphasis.
|
||||
'text-emphasis',
|
||||
'text-emphasis-color',
|
||||
'text-emphasis-position',
|
||||
'text-emphasis-style',
|
||||
|
||||
// Text size adjust.
|
||||
'text-size-adjust',
|
||||
|
||||
// Text spacing.
|
||||
'text-spacing',
|
||||
|
||||
// Transform.
|
||||
'transform',
|
||||
'transform-origin',
|
||||
|
||||
// Transform 3D.
|
||||
'backface-visibility',
|
||||
'perspective',
|
||||
'perspective-origin',
|
||||
'transform-style',
|
||||
|
||||
// Transition.
|
||||
'transition',
|
||||
'transition-delay',
|
||||
'transition-duration',
|
||||
'transition-property',
|
||||
'transition-timing-function',
|
||||
|
||||
// Unicode bidi.
|
||||
'unicode-bidi',
|
||||
|
||||
// User select.
|
||||
'user-select',
|
||||
|
||||
// Writing mode.
|
||||
'writing-mode',
|
||||
|
||||
);
|
||||
|
||||
/// Values that should be vendorized.
|
||||
/// Data via caniuse.com, github.com/postcss/autoprefixer, and developer.mozilla.org
|
||||
/// @var {list}
|
||||
$vendor-values: (
|
||||
|
||||
// Cross fade.
|
||||
'cross-fade',
|
||||
|
||||
// Element function.
|
||||
'element',
|
||||
|
||||
// Filter function.
|
||||
'filter',
|
||||
|
||||
// Flexbox.
|
||||
'flex',
|
||||
'inline-flex',
|
||||
|
||||
// Grab cursors.
|
||||
'grab',
|
||||
'grabbing',
|
||||
|
||||
// Gradients.
|
||||
'linear-gradient',
|
||||
'repeating-linear-gradient',
|
||||
'radial-gradient',
|
||||
'repeating-radial-gradient',
|
||||
|
||||
// Grid layout.
|
||||
'grid',
|
||||
'inline-grid',
|
||||
|
||||
// Image set.
|
||||
'image-set',
|
||||
|
||||
// Intrinsic width.
|
||||
'max-content',
|
||||
'min-content',
|
||||
'fit-content',
|
||||
'fill',
|
||||
'fill-available',
|
||||
'stretch',
|
||||
|
||||
// Sticky position.
|
||||
'sticky',
|
||||
|
||||
// Transform.
|
||||
'transform',
|
||||
|
||||
// Zoom cursors.
|
||||
'zoom-in',
|
||||
'zoom-out',
|
||||
|
||||
);
|
||||
|
||||
// Functions.
|
||||
|
||||
/// Removes a specific item from a list.
|
||||
/// @author Hugo Giraudel
|
||||
/// @param {list} $list List.
|
||||
/// @param {integer} $index Index.
|
||||
/// @return {list} Updated list.
|
||||
@function remove-nth($list, $index) {
|
||||
|
||||
$result: null;
|
||||
|
||||
@if type-of($index) != number {
|
||||
@warn "$index: #{quote($index)} is not a number for `remove-nth`.";
|
||||
}
|
||||
@else if $index == 0 {
|
||||
@warn "List index 0 must be a non-zero integer for `remove-nth`.";
|
||||
}
|
||||
@else if abs($index) > length($list) {
|
||||
@warn "List index is #{$index} but list is only #{length($list)} item long for `remove-nth`.";
|
||||
}
|
||||
@else {
|
||||
|
||||
$result: ();
|
||||
$index: if($index < 0, length($list) + $index + 1, $index);
|
||||
|
||||
@for $i from 1 through length($list) {
|
||||
|
||||
@if $i != $index {
|
||||
$result: append($result, nth($list, $i));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@return $result;
|
||||
|
||||
}
|
||||
|
||||
/// Replaces a substring within another string.
|
||||
/// @author Hugo Giraudel
|
||||
/// @param {string} $string String.
|
||||
/// @param {string} $search Substring.
|
||||
/// @param {string} $replace Replacement.
|
||||
/// @return {string} Updated string.
|
||||
@function str-replace($string, $search, $replace: '') {
|
||||
|
||||
$index: str-index($string, $search);
|
||||
|
||||
@if $index {
|
||||
@return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);
|
||||
}
|
||||
|
||||
@return $string;
|
||||
|
||||
}
|
||||
|
||||
/// Replaces a substring within each string in a list.
|
||||
/// @param {list} $strings List of strings.
|
||||
/// @param {string} $search Substring.
|
||||
/// @param {string} $replace Replacement.
|
||||
/// @return {list} Updated list of strings.
|
||||
@function str-replace-all($strings, $search, $replace: '') {
|
||||
|
||||
@each $string in $strings {
|
||||
$strings: set-nth($strings, index($strings, $string), str-replace($string, $search, $replace));
|
||||
}
|
||||
|
||||
@return $strings;
|
||||
|
||||
}
|
||||
|
||||
// Mixins.
|
||||
|
||||
/// Wraps @content in vendorized keyframe blocks.
|
||||
/// @param {string} $name Name.
|
||||
@mixin keyframes($name) {
|
||||
|
||||
@-moz-keyframes #{$name} { @content; }
|
||||
@-webkit-keyframes #{$name} { @content; }
|
||||
@-ms-keyframes #{$name} { @content; }
|
||||
@keyframes #{$name} { @content; }
|
||||
|
||||
}
|
||||
|
||||
/// Vendorizes a declaration's property and/or value(s).
|
||||
/// @param {string} $property Property.
|
||||
/// @param {mixed} $value String/list of value(s).
|
||||
@mixin vendor($property, $value) {
|
||||
|
||||
// Determine if property should expand.
|
||||
$expandProperty: index($vendor-properties, $property);
|
||||
|
||||
// Determine if value should expand (and if so, add '-prefix-' placeholder).
|
||||
$expandValue: false;
|
||||
|
||||
@each $x in $value {
|
||||
@each $y in $vendor-values {
|
||||
@if $y == str-slice($x, 1, str-length($y)) {
|
||||
|
||||
$value: set-nth($value, index($value, $x), '-prefix-' + $x);
|
||||
$expandValue: true;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Expand property?
|
||||
@if $expandProperty {
|
||||
@each $vendor in $vendor-prefixes {
|
||||
#{$vendor}#{$property}: #{str-replace-all($value, '-prefix-', $vendor)};
|
||||
}
|
||||
}
|
||||
|
||||
// Expand just the value?
|
||||
@elseif $expandValue {
|
||||
@each $vendor in $vendor-prefixes {
|
||||
#{$property}: #{str-replace-all($value, '-prefix-', $vendor)};
|
||||
}
|
||||
}
|
||||
|
||||
// Neither? Treat them as a normal declaration.
|
||||
@else {
|
||||
#{$property}: #{$value};
|
||||
}
|
||||
|
||||
}
|
136
_sass/player.scss
Normal file
136
_sass/player.scss
Normal file
|
@ -0,0 +1,136 @@
|
|||
/* Audio Player Styles
|
||||
================================================== */
|
||||
|
||||
/* Default / Desktop / Firefox */
|
||||
|
||||
audio {
|
||||
margin: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#mainwrap {
|
||||
border-radius: 5px;
|
||||
width: 100%;
|
||||
ul {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
li:last-child {
|
||||
border-radius: 0 0 5px 5px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#audiowrap {
|
||||
background-color: _palette(accent-dark);
|
||||
margin: 0 auto 0 auto;
|
||||
}
|
||||
|
||||
#plwrap {
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
#tracks {
|
||||
min-height: 65px;
|
||||
position: relative;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
|
||||
}
|
||||
|
||||
|
||||
#nowPlay {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
height: 60px;
|
||||
flex-wrap: unset;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
background-color: _palette(accent-dark);
|
||||
border-radius: 5px 5px 0 0;
|
||||
}
|
||||
|
||||
#npTitle {
|
||||
margin: 0;
|
||||
padding: 21px;
|
||||
|
||||
}
|
||||
|
||||
#npAction {
|
||||
display: none;
|
||||
margin: 0;
|
||||
padding: 21px;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
#plList {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#plList li {
|
||||
background-color: _palette(border-darken);
|
||||
cursor: pointer;
|
||||
margin: 0;
|
||||
padding: 21px 0;
|
||||
border: 1px solid _palette(accent-dark);
|
||||
border-top: 0;
|
||||
transition: all 400ms ease-in-out;
|
||||
}
|
||||
|
||||
#plList li:hover {
|
||||
background-color: _palette(border-alt);
|
||||
transition: all 400ms ease-in-out;
|
||||
}
|
||||
|
||||
.plItem {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.plTitle {
|
||||
left: 75px;
|
||||
overflow: hidden;
|
||||
position: absolute;
|
||||
right: 65px;
|
||||
text-overflow: ellipsis;
|
||||
top: 0;
|
||||
white-space: nowrap;
|
||||
font-weight: bold;
|
||||
padding-right: 10px;
|
||||
}
|
||||
|
||||
.plNum {
|
||||
padding-left: 21px;
|
||||
width: 65px;
|
||||
}
|
||||
|
||||
.plLength {
|
||||
padding-left: 21px;
|
||||
position: absolute;
|
||||
right: 21px;
|
||||
top: 0;
|
||||
}
|
||||
|
||||
.plSel, .plSel:hover {
|
||||
background-color: _palette(border-alt)!important;
|
||||
cursor: default!important;
|
||||
border-radius: 5px;
|
||||
|
||||
}
|
||||
|
||||
a[id^="btn"] {
|
||||
background-color: _palette(border-darken);
|
||||
color: _palette(fg);
|
||||
cursor: pointer;
|
||||
margin: 0;
|
||||
padding: 0 27px 0 21px;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
|
||||
a[id^="btn"]::-moz-focus-inner {
|
||||
border: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#noJSalbum {
|
||||
display: none;
|
||||
}
|
126
_tracks/cyber-grany/1-grandma-got-the-ssh-keys.md
Normal file
126
_tracks/cyber-grany/1-grandma-got-the-ssh-keys.md
Normal file
|
@ -0,0 +1,126 @@
|
|||
---
|
||||
layout: track
|
||||
path: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/cyber-grany/1-grandma-got-the-ssh-keys.mp3
|
||||
audio: /assets/albums/cyber-grany/1-grandma-got-the-ssh-keys.mp3
|
||||
slug: cyber-grany/1-grandma-got-the-ssh-keys
|
||||
albumSlug: cyber-grany
|
||||
trackSlug: 1-grandma-got-the-ssh-keys
|
||||
coverPath: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/cyber-grany/1-grandma-got-the-ssh-keys.jpeg
|
||||
cover: /assets/albums/cyber-grany/1-grandma-got-the-ssh-keys.jpeg
|
||||
format: &ref_0
|
||||
tagTypes:
|
||||
- ID3v2.3
|
||||
trackInfo: []
|
||||
lossless: false
|
||||
container: MPEG
|
||||
codec: MPEG 1 Layer 3
|
||||
sampleRate: 44100
|
||||
numberOfChannels: 2
|
||||
bitrate: 320000
|
||||
codecProfile: CBR
|
||||
numberOfSamples: 8909568
|
||||
duration: 202.03102040816327
|
||||
native: &ref_1
|
||||
ID3v2.3:
|
||||
- id: TIT2
|
||||
value: Grandma got the SSH keys
|
||||
- id: TPE1
|
||||
value: 徒 Setto セット
|
||||
- id: TRCK
|
||||
value: 1/1
|
||||
- id: TALB
|
||||
value: Cyber Grany
|
||||
- id: TPE2
|
||||
value: To Setto Setto
|
||||
- id: TCON
|
||||
value: Acid Trap
|
||||
- id: 'TXXX:CDDB DiscID'
|
||||
value: 0200ca01
|
||||
- id: 'TXXX:discid'
|
||||
value: 0200ca01
|
||||
- id: 'TXXX:MusicBrainz DiscID'
|
||||
value: bhKd3SFqkr6x1L9X2JkIZ6UIaRA-
|
||||
- id: 'TXXX:musicbrainz_discid'
|
||||
value: bhKd3SFqkr6x1L9X2JkIZ6UIaRA-
|
||||
- id: COMM
|
||||
value:
|
||||
language: XXX
|
||||
description: WEBSITE
|
||||
text: 'https://setto.basspistol.com'
|
||||
- id: COMM
|
||||
value:
|
||||
language: XXX
|
||||
description: Comment
|
||||
text: Special track for Acid December 2019
|
||||
- id: TYER
|
||||
value: '2019'
|
||||
quality: &ref_2
|
||||
warnings: []
|
||||
common: &ref_3
|
||||
track:
|
||||
'no': 1
|
||||
of: 1
|
||||
disk:
|
||||
'no': null
|
||||
of: null
|
||||
title: Grandma got the SSH keys
|
||||
artists:
|
||||
- 徒 Setto セット
|
||||
artist: 徒 Setto セット
|
||||
album: Cyber Grany
|
||||
albumartist: To Setto Setto
|
||||
genre:
|
||||
- Acid Trap
|
||||
comment:
|
||||
- 'https://setto.basspistol.com'
|
||||
- Special track for Acid December 2019
|
||||
year: 2019
|
||||
transformed: &ref_4
|
||||
ID3v2.3:
|
||||
TIT2: Grandma got the SSH keys
|
||||
TPE1: 徒 Setto セット
|
||||
TRCK: 1/1
|
||||
TALB: Cyber Grany
|
||||
TPE2: To Setto Setto
|
||||
TCON: Acid Trap
|
||||
'TXXX:CDDB DiscID': 0200ca01
|
||||
'TXXX:discid': 0200ca01
|
||||
'TXXX:MusicBrainz DiscID': bhKd3SFqkr6x1L9X2JkIZ6UIaRA-
|
||||
'TXXX:musicbrainz_discid': bhKd3SFqkr6x1L9X2JkIZ6UIaRA-
|
||||
WEBSITE: 'https://setto.basspistol.com'
|
||||
Comment: Special track for Acid December 2019
|
||||
TYER: '2019'
|
||||
all: &ref_5
|
||||
TIT2: Grandma got the SSH keys
|
||||
TPE1: 徒 Setto セット
|
||||
TRCK: 1/1
|
||||
TALB: Cyber Grany
|
||||
TPE2: To Setto Setto
|
||||
TCON: Acid Trap
|
||||
'TXXX:CDDB DiscID': 0200ca01
|
||||
'TXXX:discid': 0200ca01
|
||||
'TXXX:MusicBrainz DiscID': bhKd3SFqkr6x1L9X2JkIZ6UIaRA-
|
||||
'TXXX:musicbrainz_discid': bhKd3SFqkr6x1L9X2JkIZ6UIaRA-
|
||||
WEBSITE: 'https://setto.basspistol.com'
|
||||
Comment: Special track for Acid December 2019
|
||||
TYER: '2019'
|
||||
nextTrack: &ref_6
|
||||
path: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/cyber-grany/1-grandma-got-the-ssh-keys.mp3
|
||||
audio: /assets/albums/cyber-grany/1-grandma-got-the-ssh-keys.mp3
|
||||
slug: cyber-grany/1-grandma-got-the-ssh-keys
|
||||
albumSlug: cyber-grany
|
||||
trackSlug: 1-grandma-got-the-ssh-keys
|
||||
coverPath: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/cyber-grany/1-grandma-got-the-ssh-keys.jpeg
|
||||
cover: /assets/albums/cyber-grany/1-grandma-got-the-ssh-keys.jpeg
|
||||
format: *ref_0
|
||||
native: *ref_1
|
||||
quality: *ref_2
|
||||
common: *ref_3
|
||||
transformed: *ref_4
|
||||
all: *ref_5
|
||||
previousTrack: *ref_6
|
||||
---
|
451
_tracks/darkweb/1-swipe.md
Normal file
451
_tracks/darkweb/1-swipe.md
Normal file
|
@ -0,0 +1,451 @@
|
|||
---
|
||||
layout: track
|
||||
path: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/1-swipe.mp3
|
||||
audio: /assets/albums/darkweb/1-swipe.mp3
|
||||
slug: darkweb/1-swipe
|
||||
albumSlug: darkweb
|
||||
trackSlug: 1-swipe
|
||||
coverPath: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/1-swipe.jpeg
|
||||
cover: /assets/albums/darkweb/1-swipe.jpeg
|
||||
format:
|
||||
tagTypes:
|
||||
- ID3v2.3
|
||||
trackInfo: []
|
||||
lossless: false
|
||||
container: MPEG
|
||||
codec: MPEG 1 Layer 3
|
||||
sampleRate: 44100
|
||||
numberOfChannels: 2
|
||||
bitrate: 128000
|
||||
codecProfile: CBR
|
||||
numberOfSamples: 12388608
|
||||
duration: 280.9208163265306
|
||||
native:
|
||||
ID3v2.3:
|
||||
- id: TIT2
|
||||
value: Swipe
|
||||
- id: TPE1
|
||||
value: 徒 Setto セット
|
||||
- id: COMM
|
||||
value:
|
||||
language: XXX
|
||||
description: Comment
|
||||
text: >-
|
||||
Cover art by Mattias Ritarn Lindström, Music by
|
||||
To Setto Setto
|
||||
- id: TALB
|
||||
value: Darkweb
|
||||
- id: TRCK
|
||||
value: '1'
|
||||
- id: TPE2
|
||||
value: 徒 Setto セット
|
||||
- id: COMM
|
||||
value:
|
||||
language: XXX
|
||||
description: UNSYNCEDLYRICS
|
||||
text: >-
|
||||
Comme tous les après-midis, Assis dans le tram en face d'une jolie
|
||||
vie,
|
||||
|
||||
Sur mon écran elles sont encore plus sexy.
|
||||
|
||||
Swipe à gauche swipe à droite,
|
||||
|
||||
Celle-ci a l'aire plutôt maladroite,
|
||||
|
||||
Ça m'irait bien ça.
|
||||
|
||||
Mais la personne en face de moi,
|
||||
|
||||
Elle me matte, elle me mire.
|
||||
|
||||
Je ne sais pas quoi faire,
|
||||
|
||||
Qu'est-ce que je vais lui dire?
|
||||
|
||||
Elle a de belles dents!
|
||||
|
||||
Je vais retourner a mon écran.
|
||||
|
||||
je n'ai simplement,
|
||||
|
||||
Pas assez de cran.
|
||||
|
||||
|
||||
Je swipe à droite,
|
||||
|
||||
Je swipe à gauche,
|
||||
|
||||
Je yeuxt vers l'avant de temps en temps.
|
||||
|
||||
|
||||
Si seulement elle voyait mon flux,
|
||||
|
||||
Je suis sur qu'elle n'en pourrait plus!
|
||||
|
||||
Comment je fais pour l'ajouter?
|
||||
|
||||
Est-ce que Google pourrait la trouver?
|
||||
|
||||
Hashtag jolitram,
|
||||
|
||||
Faudrait que ça devienne viral sur Instagram.
|
||||
|
||||
Ensemble on aurait peut-être un avenir!
|
||||
|
||||
Mais comment coño vais-je lui dire?
|
||||
|
||||
Merde elle appuie sur arrêt!
|
||||
|
||||
Je lui tend mon casque ça le fait!
|
||||
|
||||
Elle donne le siens truc de ouf?!
|
||||
|
||||
Hésitations je m'immisce.
|
||||
|
||||
Cette personne écoute de la bonne musique de glisse.
|
||||
|
||||
|
||||
Je swipe à droite,
|
||||
|
||||
Je swipe à gauche,
|
||||
|
||||
Je yeuxt vers l'avant de temps en temps.
|
||||
- id: TCON
|
||||
value: Cyber Soul
|
||||
- id: TYER
|
||||
value: '2019'
|
||||
quality:
|
||||
warnings: []
|
||||
common:
|
||||
track:
|
||||
'no': 1
|
||||
of: null
|
||||
disk:
|
||||
'no': null
|
||||
of: null
|
||||
title: Swipe
|
||||
artists:
|
||||
- 徒 Setto セット
|
||||
artist: 徒 Setto セット
|
||||
comment:
|
||||
- 'Cover art by Mattias Ritarn Lindström, Music by To Setto Setto'
|
||||
- |-
|
||||
Comme tous les après-midis, Assis dans le tram en face d'une jolie vie,
|
||||
Sur mon écran elles sont encore plus sexy.
|
||||
Swipe à gauche swipe à droite,
|
||||
Celle-ci a l'aire plutôt maladroite,
|
||||
Ça m'irait bien ça.
|
||||
Mais la personne en face de moi,
|
||||
Elle me matte, elle me mire.
|
||||
Je ne sais pas quoi faire,
|
||||
Qu'est-ce que je vais lui dire?
|
||||
Elle a de belles dents!
|
||||
Je vais retourner a mon écran.
|
||||
je n'ai simplement,
|
||||
Pas assez de cran.
|
||||
|
||||
Je swipe à droite,
|
||||
Je swipe à gauche,
|
||||
Je yeuxt vers l'avant de temps en temps.
|
||||
|
||||
Si seulement elle voyait mon flux,
|
||||
Je suis sur qu'elle n'en pourrait plus!
|
||||
Comment je fais pour l'ajouter?
|
||||
Est-ce que Google pourrait la trouver?
|
||||
Hashtag jolitram,
|
||||
Faudrait que ça devienne viral sur Instagram.
|
||||
Ensemble on aurait peut-être un avenir!
|
||||
Mais comment coño vais-je lui dire?
|
||||
Merde elle appuie sur arrêt!
|
||||
Je lui tend mon casque ça le fait!
|
||||
Elle donne le siens truc de ouf?!
|
||||
Hésitations je m'immisce.
|
||||
Cette personne écoute de la bonne musique de glisse.
|
||||
|
||||
Je swipe à droite,
|
||||
Je swipe à gauche,
|
||||
Je yeuxt vers l'avant de temps en temps.
|
||||
album: Darkweb
|
||||
albumartist: 徒 Setto セット
|
||||
genre:
|
||||
- Cyber Soul
|
||||
year: 2019
|
||||
transformed:
|
||||
ID3v2.3:
|
||||
TIT2: Swipe
|
||||
TPE1: 徒 Setto セット
|
||||
Comment: 'Cover art by Mattias Ritarn Lindström, Music by To Setto Setto'
|
||||
TALB: Darkweb
|
||||
TRCK: '1'
|
||||
TPE2: 徒 Setto セット
|
||||
UNSYNCEDLYRICS: |-
|
||||
Comme tous les après-midis, Assis dans le tram en face d'une jolie vie,
|
||||
Sur mon écran elles sont encore plus sexy.
|
||||
Swipe à gauche swipe à droite,
|
||||
Celle-ci a l'aire plutôt maladroite,
|
||||
Ça m'irait bien ça.
|
||||
Mais la personne en face de moi,
|
||||
Elle me matte, elle me mire.
|
||||
Je ne sais pas quoi faire,
|
||||
Qu'est-ce que je vais lui dire?
|
||||
Elle a de belles dents!
|
||||
Je vais retourner a mon écran.
|
||||
je n'ai simplement,
|
||||
Pas assez de cran.
|
||||
|
||||
Je swipe à droite,
|
||||
Je swipe à gauche,
|
||||
Je yeuxt vers l'avant de temps en temps.
|
||||
|
||||
Si seulement elle voyait mon flux,
|
||||
Je suis sur qu'elle n'en pourrait plus!
|
||||
Comment je fais pour l'ajouter?
|
||||
Est-ce que Google pourrait la trouver?
|
||||
Hashtag jolitram,
|
||||
Faudrait que ça devienne viral sur Instagram.
|
||||
Ensemble on aurait peut-être un avenir!
|
||||
Mais comment coño vais-je lui dire?
|
||||
Merde elle appuie sur arrêt!
|
||||
Je lui tend mon casque ça le fait!
|
||||
Elle donne le siens truc de ouf?!
|
||||
Hésitations je m'immisce.
|
||||
Cette personne écoute de la bonne musique de glisse.
|
||||
|
||||
Je swipe à droite,
|
||||
Je swipe à gauche,
|
||||
Je yeuxt vers l'avant de temps en temps.
|
||||
TCON: Cyber Soul
|
||||
TYER: '2019'
|
||||
all:
|
||||
TIT2: Swipe
|
||||
TPE1: 徒 Setto セット
|
||||
Comment: 'Cover art by Mattias Ritarn Lindström, Music by To Setto Setto'
|
||||
TALB: Darkweb
|
||||
TRCK: '1'
|
||||
TPE2: 徒 Setto セット
|
||||
UNSYNCEDLYRICS: |-
|
||||
Comme tous les après-midis, Assis dans le tram en face d'une jolie vie,
|
||||
Sur mon écran elles sont encore plus sexy.
|
||||
Swipe à gauche swipe à droite,
|
||||
Celle-ci a l'aire plutôt maladroite,
|
||||
Ça m'irait bien ça.
|
||||
Mais la personne en face de moi,
|
||||
Elle me matte, elle me mire.
|
||||
Je ne sais pas quoi faire,
|
||||
Qu'est-ce que je vais lui dire?
|
||||
Elle a de belles dents!
|
||||
Je vais retourner a mon écran.
|
||||
je n'ai simplement,
|
||||
Pas assez de cran.
|
||||
|
||||
Je swipe à droite,
|
||||
Je swipe à gauche,
|
||||
Je yeuxt vers l'avant de temps en temps.
|
||||
|
||||
Si seulement elle voyait mon flux,
|
||||
Je suis sur qu'elle n'en pourrait plus!
|
||||
Comment je fais pour l'ajouter?
|
||||
Est-ce que Google pourrait la trouver?
|
||||
Hashtag jolitram,
|
||||
Faudrait que ça devienne viral sur Instagram.
|
||||
Ensemble on aurait peut-être un avenir!
|
||||
Mais comment coño vais-je lui dire?
|
||||
Merde elle appuie sur arrêt!
|
||||
Je lui tend mon casque ça le fait!
|
||||
Elle donne le siens truc de ouf?!
|
||||
Hésitations je m'immisce.
|
||||
Cette personne écoute de la bonne musique de glisse.
|
||||
|
||||
Je swipe à droite,
|
||||
Je swipe à gauche,
|
||||
Je yeuxt vers l'avant de temps en temps.
|
||||
TCON: Cyber Soul
|
||||
TYER: '2019'
|
||||
nextTrack:
|
||||
path: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/2-darkweb.mp3
|
||||
audio: /assets/albums/darkweb/2-darkweb.mp3
|
||||
slug: darkweb/2-darkweb
|
||||
albumSlug: darkweb
|
||||
trackSlug: 2-darkweb
|
||||
coverPath: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/2-darkweb.jpeg
|
||||
cover: /assets/albums/darkweb/2-darkweb.jpeg
|
||||
format:
|
||||
tagTypes:
|
||||
- ID3v2.3
|
||||
trackInfo: []
|
||||
lossless: false
|
||||
container: MPEG
|
||||
codec: MPEG 1 Layer 3
|
||||
sampleRate: 44100
|
||||
numberOfChannels: 2
|
||||
bitrate: 128000
|
||||
codecProfile: CBR
|
||||
numberOfSamples: 12566016
|
||||
duration: 284.94367346938776
|
||||
native:
|
||||
ID3v2.3:
|
||||
- id: TIT2
|
||||
value: Darkweb
|
||||
- id: TPE1
|
||||
value: 徒 Setto セット
|
||||
- id: COMM
|
||||
value:
|
||||
language: XXX
|
||||
description: Comment
|
||||
text: >-
|
||||
Cover art by Mattias Ritarn Lindström, Music by
|
||||
To Setto Setto
|
||||
- id: TALB
|
||||
value: Darkweb
|
||||
- id: TRCK
|
||||
value: '2'
|
||||
- id: TPE2
|
||||
value: 徒 Setto セット
|
||||
- id: COMM
|
||||
value:
|
||||
language: XXX
|
||||
description: UNSYNCEDLYRICS
|
||||
text: "Y'en a mare de ce web\r\nIl est tout pourri\r\nOn peu plus rien y faire\r\nSeulement pousser des cris\r\nQue personne va entendre\r\nSi t'as pas mille amis\r\nTa home-page va se pendre\r\nPerdu le goût de la vie\r\nEnvois ton Paypal\r\nJ'vais lui faire un refus\r\nAjoute-moi en ami\r\nTu vas kiffer mon flux\r\nViens pas faire ton vieux troll\r\nRien a foutre de toi\r\nT’écris de belles paroles\r\nRien à foutre de toi\r\nPuis au fond de ce noire\r\nJe vois un rayon\r\nUn programme provisoire\r\nPour poser mes sillons\r\nY a une communauté\r\nDe gens mal intégrés\r\nIl sont tous comme moi\r\nMais encore plus tarés\r\nProtocole anonyme\r\nConnexion en chiffré\r\nP2P solidaire\r\nConnexion certifiée\r\nLittéraire digital\r\nTu vas aussi kiffer\r\nÇa s'appelle le Darkweb\r\nTu vas aussi kiffer\r\n\r\nFacegoogle aux gogues\r\nY a plus que des conneries\r\nPropagande démagogue\r\nPetits chats tous mimis\r\nMais c'est quoi cette shit\r\nÇa veut plus rien dire\r\nLes keums envoient leurs bites\r\nComme si elles allaient applaudir\r\nNon! C'est trop con\r\nJe veux pas participer\r\nMais si je joue pas le jeux\r\nJe vais être abandonné\r\nPlus personne entendra\r\nTout ce que j'ai à crier\r\nPlus personne ne lira\r\nTout ce que j'ai à crier\r\nPuis au bout du tunnel\r\nJe vois une lueur étrange\r\nCelle d'un réseau fermé\r\nQui reste ouvert au strange\r\nUn lieu virtuel\r\nUne cité idéelle\r\nUne banque de données\r\nPour les mal intégrés\r\nJe peux y être qui je veux\r\nUn antichrist bien pleb\r\nAvoir beaucoup de cheveux\r\nUn intello du Zagreb\r\nT'as besoin d'faire entendre\r\nTu vas aussi kiffer\r\nLa clef tu peux la prendre\r\nTu vas aussi kiffer"
|
||||
- id: TCON
|
||||
value: Cypher Rap
|
||||
- id: TYER
|
||||
value: '2019'
|
||||
quality:
|
||||
warnings: []
|
||||
common:
|
||||
track:
|
||||
'no': 2
|
||||
of: null
|
||||
disk:
|
||||
'no': null
|
||||
of: null
|
||||
title: Darkweb
|
||||
artists:
|
||||
- 徒 Setto セット
|
||||
artist: 徒 Setto セット
|
||||
comment:
|
||||
- 'Cover art by Mattias Ritarn Lindström, Music by To Setto Setto'
|
||||
- "Y'en a mare de ce web\r\nIl est tout pourri\r\nOn peu plus rien y faire\r\nSeulement pousser des cris\r\nQue personne va entendre\r\nSi t'as pas mille amis\r\nTa home-page va se pendre\r\nPerdu le goût de la vie\r\nEnvois ton Paypal\r\nJ'vais lui faire un refus\r\nAjoute-moi en ami\r\nTu vas kiffer mon flux\r\nViens pas faire ton vieux troll\r\nRien a foutre de toi\r\nT’écris de belles paroles\r\nRien à foutre de toi\r\nPuis au fond de ce noire\r\nJe vois un rayon\r\nUn programme provisoire\r\nPour poser mes sillons\r\nY a une communauté\r\nDe gens mal intégrés\r\nIl sont tous comme moi\r\nMais encore plus tarés\r\nProtocole anonyme\r\nConnexion en chiffré\r\nP2P solidaire\r\nConnexion certifiée\r\nLittéraire digital\r\nTu vas aussi kiffer\r\nÇa s'appelle le Darkweb\r\nTu vas aussi kiffer\r\n\r\nFacegoogle aux gogues\r\nY a plus que des conneries\r\nPropagande démagogue\r\nPetits chats tous mimis\r\nMais c'est quoi cette shit\r\nÇa veut plus rien dire\r\nLes keums envoient leurs bites\r\nComme si elles allaient applaudir\r\nNon! C'est trop con\r\nJe veux pas participer\r\nMais si je joue pas le jeux\r\nJe vais être abandonné\r\nPlus personne entendra\r\nTout ce que j'ai à crier\r\nPlus personne ne lira\r\nTout ce que j'ai à crier\r\nPuis au bout du tunnel\r\nJe vois une lueur étrange\r\nCelle d'un réseau fermé\r\nQui reste ouvert au strange\r\nUn lieu virtuel\r\nUne cité idéelle\r\nUne banque de données\r\nPour les mal intégrés\r\nJe peux y être qui je veux\r\nUn antichrist bien pleb\r\nAvoir beaucoup de cheveux\r\nUn intello du Zagreb\r\nT'as besoin d'faire entendre\r\nTu vas aussi kiffer\r\nLa clef tu peux la prendre\r\nTu vas aussi kiffer"
|
||||
album: Darkweb
|
||||
albumartist: 徒 Setto セット
|
||||
genre:
|
||||
- Cypher Rap
|
||||
year: 2019
|
||||
transformed:
|
||||
ID3v2.3:
|
||||
TIT2: Darkweb
|
||||
TPE1: 徒 Setto セット
|
||||
Comment: 'Cover art by Mattias Ritarn Lindström, Music by To Setto Setto'
|
||||
TALB: Darkweb
|
||||
TRCK: '2'
|
||||
TPE2: 徒 Setto セット
|
||||
UNSYNCEDLYRICS: "Y'en a mare de ce web\r\nIl est tout pourri\r\nOn peu plus rien y faire\r\nSeulement pousser des cris\r\nQue personne va entendre\r\nSi t'as pas mille amis\r\nTa home-page va se pendre\r\nPerdu le goût de la vie\r\nEnvois ton Paypal\r\nJ'vais lui faire un refus\r\nAjoute-moi en ami\r\nTu vas kiffer mon flux\r\nViens pas faire ton vieux troll\r\nRien a foutre de toi\r\nT’écris de belles paroles\r\nRien à foutre de toi\r\nPuis au fond de ce noire\r\nJe vois un rayon\r\nUn programme provisoire\r\nPour poser mes sillons\r\nY a une communauté\r\nDe gens mal intégrés\r\nIl sont tous comme moi\r\nMais encore plus tarés\r\nProtocole anonyme\r\nConnexion en chiffré\r\nP2P solidaire\r\nConnexion certifiée\r\nLittéraire digital\r\nTu vas aussi kiffer\r\nÇa s'appelle le Darkweb\r\nTu vas aussi kiffer\r\n\r\nFacegoogle aux gogues\r\nY a plus que des conneries\r\nPropagande démagogue\r\nPetits chats tous mimis\r\nMais c'est quoi cette shit\r\nÇa veut plus rien dire\r\nLes keums envoient leurs bites\r\nComme si elles allaient applaudir\r\nNon! C'est trop con\r\nJe veux pas participer\r\nMais si je joue pas le jeux\r\nJe vais être abandonné\r\nPlus personne entendra\r\nTout ce que j'ai à crier\r\nPlus personne ne lira\r\nTout ce que j'ai à crier\r\nPuis au bout du tunnel\r\nJe vois une lueur étrange\r\nCelle d'un réseau fermé\r\nQui reste ouvert au strange\r\nUn lieu virtuel\r\nUne cité idéelle\r\nUne banque de données\r\nPour les mal intégrés\r\nJe peux y être qui je veux\r\nUn antichrist bien pleb\r\nAvoir beaucoup de cheveux\r\nUn intello du Zagreb\r\nT'as besoin d'faire entendre\r\nTu vas aussi kiffer\r\nLa clef tu peux la prendre\r\nTu vas aussi kiffer"
|
||||
TCON: Cypher Rap
|
||||
TYER: '2019'
|
||||
all:
|
||||
TIT2: Darkweb
|
||||
TPE1: 徒 Setto セット
|
||||
Comment: 'Cover art by Mattias Ritarn Lindström, Music by To Setto Setto'
|
||||
TALB: Darkweb
|
||||
TRCK: '2'
|
||||
TPE2: 徒 Setto セット
|
||||
UNSYNCEDLYRICS: "Y'en a mare de ce web\r\nIl est tout pourri\r\nOn peu plus rien y faire\r\nSeulement pousser des cris\r\nQue personne va entendre\r\nSi t'as pas mille amis\r\nTa home-page va se pendre\r\nPerdu le goût de la vie\r\nEnvois ton Paypal\r\nJ'vais lui faire un refus\r\nAjoute-moi en ami\r\nTu vas kiffer mon flux\r\nViens pas faire ton vieux troll\r\nRien a foutre de toi\r\nT’écris de belles paroles\r\nRien à foutre de toi\r\nPuis au fond de ce noire\r\nJe vois un rayon\r\nUn programme provisoire\r\nPour poser mes sillons\r\nY a une communauté\r\nDe gens mal intégrés\r\nIl sont tous comme moi\r\nMais encore plus tarés\r\nProtocole anonyme\r\nConnexion en chiffré\r\nP2P solidaire\r\nConnexion certifiée\r\nLittéraire digital\r\nTu vas aussi kiffer\r\nÇa s'appelle le Darkweb\r\nTu vas aussi kiffer\r\n\r\nFacegoogle aux gogues\r\nY a plus que des conneries\r\nPropagande démagogue\r\nPetits chats tous mimis\r\nMais c'est quoi cette shit\r\nÇa veut plus rien dire\r\nLes keums envoient leurs bites\r\nComme si elles allaient applaudir\r\nNon! C'est trop con\r\nJe veux pas participer\r\nMais si je joue pas le jeux\r\nJe vais être abandonné\r\nPlus personne entendra\r\nTout ce que j'ai à crier\r\nPlus personne ne lira\r\nTout ce que j'ai à crier\r\nPuis au bout du tunnel\r\nJe vois une lueur étrange\r\nCelle d'un réseau fermé\r\nQui reste ouvert au strange\r\nUn lieu virtuel\r\nUne cité idéelle\r\nUne banque de données\r\nPour les mal intégrés\r\nJe peux y être qui je veux\r\nUn antichrist bien pleb\r\nAvoir beaucoup de cheveux\r\nUn intello du Zagreb\r\nT'as besoin d'faire entendre\r\nTu vas aussi kiffer\r\nLa clef tu peux la prendre\r\nTu vas aussi kiffer"
|
||||
TCON: Cypher Rap
|
||||
TYER: '2019'
|
||||
previousTrack:
|
||||
path: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/4-darkweb-instrumental-.mp3
|
||||
audio: /assets/albums/darkweb/4-darkweb-instrumental-.mp3
|
||||
slug: darkweb/4-darkweb-instrumental-
|
||||
albumSlug: darkweb
|
||||
trackSlug: 4-darkweb-instrumental-
|
||||
coverPath: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/4-darkweb-instrumental-.jpeg
|
||||
cover: /assets/albums/darkweb/4-darkweb-instrumental-.jpeg
|
||||
format:
|
||||
tagTypes:
|
||||
- ID3v2.3
|
||||
trackInfo: []
|
||||
lossless: false
|
||||
container: MPEG
|
||||
codec: MPEG 1 Layer 3
|
||||
sampleRate: 44100
|
||||
numberOfChannels: 2
|
||||
bitrate: 128000
|
||||
codecProfile: CBR
|
||||
numberOfSamples: 12526848
|
||||
duration: 284.05551020408166
|
||||
native:
|
||||
ID3v2.3:
|
||||
- id: TIT2
|
||||
value: Darkweb (Instrumental)
|
||||
- id: TPE1
|
||||
value: 徒 Setto セット
|
||||
- id: COMM
|
||||
value: &ref_0
|
||||
language: XXX
|
||||
description: ''
|
||||
text: ''
|
||||
- id: TALB
|
||||
value: Darkweb
|
||||
- id: TPE2
|
||||
value: 徒 Setto セット
|
||||
- id: TCON
|
||||
value: Cypher Rap
|
||||
- id: TRCK
|
||||
value: '4'
|
||||
- id: COMM
|
||||
value:
|
||||
language: XXX
|
||||
description: Comment
|
||||
text: Cover art and music by To Setto Setto
|
||||
- id: TYER
|
||||
value: '2019'
|
||||
quality:
|
||||
warnings: []
|
||||
common:
|
||||
track:
|
||||
'no': 4
|
||||
of: null
|
||||
disk:
|
||||
'no': null
|
||||
of: null
|
||||
title: Darkweb (Instrumental)
|
||||
artists:
|
||||
- 徒 Setto セット
|
||||
artist: 徒 Setto セット
|
||||
comment:
|
||||
- ''
|
||||
- Cover art and music by To Setto Setto
|
||||
album: Darkweb
|
||||
albumartist: 徒 Setto セット
|
||||
genre:
|
||||
- Cypher Rap
|
||||
year: 2019
|
||||
transformed:
|
||||
ID3v2.3:
|
||||
TIT2: Darkweb (Instrumental)
|
||||
TPE1: 徒 Setto セット
|
||||
COMM: *ref_0
|
||||
TALB: Darkweb
|
||||
TPE2: 徒 Setto セット
|
||||
TCON: Cypher Rap
|
||||
TRCK: '4'
|
||||
Comment: Cover art and music by To Setto Setto
|
||||
TYER: '2019'
|
||||
all:
|
||||
TIT2: Darkweb (Instrumental)
|
||||
TPE1: 徒 Setto セット
|
||||
COMM: *ref_0
|
||||
TALB: Darkweb
|
||||
TPE2: 徒 Setto セット
|
||||
TCON: Cypher Rap
|
||||
TRCK: '4'
|
||||
Comment: Cover art and music by To Setto Setto
|
||||
TYER: '2019'
|
||||
---
|
446
_tracks/darkweb/2-darkweb.md
Normal file
446
_tracks/darkweb/2-darkweb.md
Normal file
|
@ -0,0 +1,446 @@
|
|||
---
|
||||
layout: track
|
||||
path: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/2-darkweb.mp3
|
||||
audio: /assets/albums/darkweb/2-darkweb.mp3
|
||||
slug: darkweb/2-darkweb
|
||||
albumSlug: darkweb
|
||||
trackSlug: 2-darkweb
|
||||
coverPath: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/2-darkweb.jpeg
|
||||
cover: /assets/albums/darkweb/2-darkweb.jpeg
|
||||
format:
|
||||
tagTypes:
|
||||
- ID3v2.3
|
||||
trackInfo: []
|
||||
lossless: false
|
||||
container: MPEG
|
||||
codec: MPEG 1 Layer 3
|
||||
sampleRate: 44100
|
||||
numberOfChannels: 2
|
||||
bitrate: 128000
|
||||
codecProfile: CBR
|
||||
numberOfSamples: 12566016
|
||||
duration: 284.94367346938776
|
||||
native:
|
||||
ID3v2.3:
|
||||
- id: TIT2
|
||||
value: Darkweb
|
||||
- id: TPE1
|
||||
value: 徒 Setto セット
|
||||
- id: COMM
|
||||
value:
|
||||
language: XXX
|
||||
description: Comment
|
||||
text: >-
|
||||
Cover art by Mattias Ritarn Lindström, Music by
|
||||
To Setto Setto
|
||||
- id: TALB
|
||||
value: Darkweb
|
||||
- id: TRCK
|
||||
value: '2'
|
||||
- id: TPE2
|
||||
value: 徒 Setto セット
|
||||
- id: COMM
|
||||
value:
|
||||
language: XXX
|
||||
description: UNSYNCEDLYRICS
|
||||
text: "Y'en a mare de ce web\r\nIl est tout pourri\r\nOn peu plus rien y faire\r\nSeulement pousser des cris\r\nQue personne va entendre\r\nSi t'as pas mille amis\r\nTa home-page va se pendre\r\nPerdu le goût de la vie\r\nEnvois ton Paypal\r\nJ'vais lui faire un refus\r\nAjoute-moi en ami\r\nTu vas kiffer mon flux\r\nViens pas faire ton vieux troll\r\nRien a foutre de toi\r\nT’écris de belles paroles\r\nRien à foutre de toi\r\nPuis au fond de ce noire\r\nJe vois un rayon\r\nUn programme provisoire\r\nPour poser mes sillons\r\nY a une communauté\r\nDe gens mal intégrés\r\nIl sont tous comme moi\r\nMais encore plus tarés\r\nProtocole anonyme\r\nConnexion en chiffré\r\nP2P solidaire\r\nConnexion certifiée\r\nLittéraire digital\r\nTu vas aussi kiffer\r\nÇa s'appelle le Darkweb\r\nTu vas aussi kiffer\r\n\r\nFacegoogle aux gogues\r\nY a plus que des conneries\r\nPropagande démagogue\r\nPetits chats tous mimis\r\nMais c'est quoi cette shit\r\nÇa veut plus rien dire\r\nLes keums envoient leurs bites\r\nComme si elles allaient applaudir\r\nNon! C'est trop con\r\nJe veux pas participer\r\nMais si je joue pas le jeux\r\nJe vais être abandonné\r\nPlus personne entendra\r\nTout ce que j'ai à crier\r\nPlus personne ne lira\r\nTout ce que j'ai à crier\r\nPuis au bout du tunnel\r\nJe vois une lueur étrange\r\nCelle d'un réseau fermé\r\nQui reste ouvert au strange\r\nUn lieu virtuel\r\nUne cité idéelle\r\nUne banque de données\r\nPour les mal intégrés\r\nJe peux y être qui je veux\r\nUn antichrist bien pleb\r\nAvoir beaucoup de cheveux\r\nUn intello du Zagreb\r\nT'as besoin d'faire entendre\r\nTu vas aussi kiffer\r\nLa clef tu peux la prendre\r\nTu vas aussi kiffer"
|
||||
- id: TCON
|
||||
value: Cypher Rap
|
||||
- id: TYER
|
||||
value: '2019'
|
||||
quality:
|
||||
warnings: []
|
||||
common:
|
||||
track:
|
||||
'no': 2
|
||||
of: null
|
||||
disk:
|
||||
'no': null
|
||||
of: null
|
||||
title: Darkweb
|
||||
artists:
|
||||
- 徒 Setto セット
|
||||
artist: 徒 Setto セット
|
||||
comment:
|
||||
- 'Cover art by Mattias Ritarn Lindström, Music by To Setto Setto'
|
||||
- "Y'en a mare de ce web\r\nIl est tout pourri\r\nOn peu plus rien y faire\r\nSeulement pousser des cris\r\nQue personne va entendre\r\nSi t'as pas mille amis\r\nTa home-page va se pendre\r\nPerdu le goût de la vie\r\nEnvois ton Paypal\r\nJ'vais lui faire un refus\r\nAjoute-moi en ami\r\nTu vas kiffer mon flux\r\nViens pas faire ton vieux troll\r\nRien a foutre de toi\r\nT’écris de belles paroles\r\nRien à foutre de toi\r\nPuis au fond de ce noire\r\nJe vois un rayon\r\nUn programme provisoire\r\nPour poser mes sillons\r\nY a une communauté\r\nDe gens mal intégrés\r\nIl sont tous comme moi\r\nMais encore plus tarés\r\nProtocole anonyme\r\nConnexion en chiffré\r\nP2P solidaire\r\nConnexion certifiée\r\nLittéraire digital\r\nTu vas aussi kiffer\r\nÇa s'appelle le Darkweb\r\nTu vas aussi kiffer\r\n\r\nFacegoogle aux gogues\r\nY a plus que des conneries\r\nPropagande démagogue\r\nPetits chats tous mimis\r\nMais c'est quoi cette shit\r\nÇa veut plus rien dire\r\nLes keums envoient leurs bites\r\nComme si elles allaient applaudir\r\nNon! C'est trop con\r\nJe veux pas participer\r\nMais si je joue pas le jeux\r\nJe vais être abandonné\r\nPlus personne entendra\r\nTout ce que j'ai à crier\r\nPlus personne ne lira\r\nTout ce que j'ai à crier\r\nPuis au bout du tunnel\r\nJe vois une lueur étrange\r\nCelle d'un réseau fermé\r\nQui reste ouvert au strange\r\nUn lieu virtuel\r\nUne cité idéelle\r\nUne banque de données\r\nPour les mal intégrés\r\nJe peux y être qui je veux\r\nUn antichrist bien pleb\r\nAvoir beaucoup de cheveux\r\nUn intello du Zagreb\r\nT'as besoin d'faire entendre\r\nTu vas aussi kiffer\r\nLa clef tu peux la prendre\r\nTu vas aussi kiffer"
|
||||
album: Darkweb
|
||||
albumartist: 徒 Setto セット
|
||||
genre:
|
||||
- Cypher Rap
|
||||
year: 2019
|
||||
transformed:
|
||||
ID3v2.3:
|
||||
TIT2: Darkweb
|
||||
TPE1: 徒 Setto セット
|
||||
Comment: 'Cover art by Mattias Ritarn Lindström, Music by To Setto Setto'
|
||||
TALB: Darkweb
|
||||
TRCK: '2'
|
||||
TPE2: 徒 Setto セット
|
||||
UNSYNCEDLYRICS: "Y'en a mare de ce web\r\nIl est tout pourri\r\nOn peu plus rien y faire\r\nSeulement pousser des cris\r\nQue personne va entendre\r\nSi t'as pas mille amis\r\nTa home-page va se pendre\r\nPerdu le goût de la vie\r\nEnvois ton Paypal\r\nJ'vais lui faire un refus\r\nAjoute-moi en ami\r\nTu vas kiffer mon flux\r\nViens pas faire ton vieux troll\r\nRien a foutre de toi\r\nT’écris de belles paroles\r\nRien à foutre de toi\r\nPuis au fond de ce noire\r\nJe vois un rayon\r\nUn programme provisoire\r\nPour poser mes sillons\r\nY a une communauté\r\nDe gens mal intégrés\r\nIl sont tous comme moi\r\nMais encore plus tarés\r\nProtocole anonyme\r\nConnexion en chiffré\r\nP2P solidaire\r\nConnexion certifiée\r\nLittéraire digital\r\nTu vas aussi kiffer\r\nÇa s'appelle le Darkweb\r\nTu vas aussi kiffer\r\n\r\nFacegoogle aux gogues\r\nY a plus que des conneries\r\nPropagande démagogue\r\nPetits chats tous mimis\r\nMais c'est quoi cette shit\r\nÇa veut plus rien dire\r\nLes keums envoient leurs bites\r\nComme si elles allaient applaudir\r\nNon! C'est trop con\r\nJe veux pas participer\r\nMais si je joue pas le jeux\r\nJe vais être abandonné\r\nPlus personne entendra\r\nTout ce que j'ai à crier\r\nPlus personne ne lira\r\nTout ce que j'ai à crier\r\nPuis au bout du tunnel\r\nJe vois une lueur étrange\r\nCelle d'un réseau fermé\r\nQui reste ouvert au strange\r\nUn lieu virtuel\r\nUne cité idéelle\r\nUne banque de données\r\nPour les mal intégrés\r\nJe peux y être qui je veux\r\nUn antichrist bien pleb\r\nAvoir beaucoup de cheveux\r\nUn intello du Zagreb\r\nT'as besoin d'faire entendre\r\nTu vas aussi kiffer\r\nLa clef tu peux la prendre\r\nTu vas aussi kiffer"
|
||||
TCON: Cypher Rap
|
||||
TYER: '2019'
|
||||
all:
|
||||
TIT2: Darkweb
|
||||
TPE1: 徒 Setto セット
|
||||
Comment: 'Cover art by Mattias Ritarn Lindström, Music by To Setto Setto'
|
||||
TALB: Darkweb
|
||||
TRCK: '2'
|
||||
TPE2: 徒 Setto セット
|
||||
UNSYNCEDLYRICS: "Y'en a mare de ce web\r\nIl est tout pourri\r\nOn peu plus rien y faire\r\nSeulement pousser des cris\r\nQue personne va entendre\r\nSi t'as pas mille amis\r\nTa home-page va se pendre\r\nPerdu le goût de la vie\r\nEnvois ton Paypal\r\nJ'vais lui faire un refus\r\nAjoute-moi en ami\r\nTu vas kiffer mon flux\r\nViens pas faire ton vieux troll\r\nRien a foutre de toi\r\nT’écris de belles paroles\r\nRien à foutre de toi\r\nPuis au fond de ce noire\r\nJe vois un rayon\r\nUn programme provisoire\r\nPour poser mes sillons\r\nY a une communauté\r\nDe gens mal intégrés\r\nIl sont tous comme moi\r\nMais encore plus tarés\r\nProtocole anonyme\r\nConnexion en chiffré\r\nP2P solidaire\r\nConnexion certifiée\r\nLittéraire digital\r\nTu vas aussi kiffer\r\nÇa s'appelle le Darkweb\r\nTu vas aussi kiffer\r\n\r\nFacegoogle aux gogues\r\nY a plus que des conneries\r\nPropagande démagogue\r\nPetits chats tous mimis\r\nMais c'est quoi cette shit\r\nÇa veut plus rien dire\r\nLes keums envoient leurs bites\r\nComme si elles allaient applaudir\r\nNon! C'est trop con\r\nJe veux pas participer\r\nMais si je joue pas le jeux\r\nJe vais être abandonné\r\nPlus personne entendra\r\nTout ce que j'ai à crier\r\nPlus personne ne lira\r\nTout ce que j'ai à crier\r\nPuis au bout du tunnel\r\nJe vois une lueur étrange\r\nCelle d'un réseau fermé\r\nQui reste ouvert au strange\r\nUn lieu virtuel\r\nUne cité idéelle\r\nUne banque de données\r\nPour les mal intégrés\r\nJe peux y être qui je veux\r\nUn antichrist bien pleb\r\nAvoir beaucoup de cheveux\r\nUn intello du Zagreb\r\nT'as besoin d'faire entendre\r\nTu vas aussi kiffer\r\nLa clef tu peux la prendre\r\nTu vas aussi kiffer"
|
||||
TCON: Cypher Rap
|
||||
TYER: '2019'
|
||||
nextTrack:
|
||||
path: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/3-swipe-instrumental-.mp3
|
||||
audio: /assets/albums/darkweb/3-swipe-instrumental-.mp3
|
||||
slug: darkweb/3-swipe-instrumental-
|
||||
albumSlug: darkweb
|
||||
trackSlug: 3-swipe-instrumental-
|
||||
coverPath: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/3-swipe-instrumental-.jpeg
|
||||
cover: /assets/albums/darkweb/3-swipe-instrumental-.jpeg
|
||||
format:
|
||||
tagTypes:
|
||||
- ID3v2.3
|
||||
trackInfo: []
|
||||
lossless: false
|
||||
container: MPEG
|
||||
codec: MPEG 1 Layer 3
|
||||
sampleRate: 44100
|
||||
numberOfChannels: 2
|
||||
bitrate: 128000
|
||||
codecProfile: CBR
|
||||
numberOfSamples: 12436992
|
||||
duration: 282.0179591836735
|
||||
native:
|
||||
ID3v2.3:
|
||||
- id: TIT2
|
||||
value: Swipe (Instrumental)
|
||||
- id: TPE1
|
||||
value: 徒 Setto セット
|
||||
- id: COMM
|
||||
value:
|
||||
language: XXX
|
||||
description: Comment
|
||||
text: >-
|
||||
Cover art by Mattias Ritarn Lindström, Music by
|
||||
To Setto Setto
|
||||
- id: TALB
|
||||
value: Darkweb
|
||||
- id: TRCK
|
||||
value: '3'
|
||||
- id: TPE2
|
||||
value: 徒 Setto セット
|
||||
- id: TCON
|
||||
value: Cyber Soul
|
||||
- id: TYER
|
||||
value: '2019'
|
||||
quality:
|
||||
warnings:
|
||||
- message: Illegal ID3v2 tag length
|
||||
common:
|
||||
track:
|
||||
'no': 3
|
||||
of: null
|
||||
disk:
|
||||
'no': null
|
||||
of: null
|
||||
title: Swipe (Instrumental)
|
||||
artists:
|
||||
- 徒 Setto セット
|
||||
artist: 徒 Setto セット
|
||||
comment:
|
||||
- 'Cover art by Mattias Ritarn Lindström, Music by To Setto Setto'
|
||||
album: Darkweb
|
||||
albumartist: 徒 Setto セット
|
||||
genre:
|
||||
- Cyber Soul
|
||||
year: 2019
|
||||
transformed:
|
||||
ID3v2.3:
|
||||
TIT2: Swipe (Instrumental)
|
||||
TPE1: 徒 Setto セット
|
||||
Comment: 'Cover art by Mattias Ritarn Lindström, Music by To Setto Setto'
|
||||
TALB: Darkweb
|
||||
TRCK: '3'
|
||||
TPE2: 徒 Setto セット
|
||||
TCON: Cyber Soul
|
||||
TYER: '2019'
|
||||
all:
|
||||
TIT2: Swipe (Instrumental)
|
||||
TPE1: 徒 Setto セット
|
||||
Comment: 'Cover art by Mattias Ritarn Lindström, Music by To Setto Setto'
|
||||
TALB: Darkweb
|
||||
TRCK: '3'
|
||||
TPE2: 徒 Setto セット
|
||||
TCON: Cyber Soul
|
||||
TYER: '2019'
|
||||
previousTrack:
|
||||
path: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/1-swipe.mp3
|
||||
audio: /assets/albums/darkweb/1-swipe.mp3
|
||||
slug: darkweb/1-swipe
|
||||
albumSlug: darkweb
|
||||
trackSlug: 1-swipe
|
||||
coverPath: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/1-swipe.jpeg
|
||||
cover: /assets/albums/darkweb/1-swipe.jpeg
|
||||
format:
|
||||
tagTypes:
|
||||
- ID3v2.3
|
||||
trackInfo: []
|
||||
lossless: false
|
||||
container: MPEG
|
||||
codec: MPEG 1 Layer 3
|
||||
sampleRate: 44100
|
||||
numberOfChannels: 2
|
||||
bitrate: 128000
|
||||
codecProfile: CBR
|
||||
numberOfSamples: 12388608
|
||||
duration: 280.9208163265306
|
||||
native:
|
||||
ID3v2.3:
|
||||
- id: TIT2
|
||||
value: Swipe
|
||||
- id: TPE1
|
||||
value: 徒 Setto セット
|
||||
- id: COMM
|
||||
value:
|
||||
language: XXX
|
||||
description: Comment
|
||||
text: >-
|
||||
Cover art by Mattias Ritarn Lindström, Music by
|
||||
To Setto Setto
|
||||
- id: TALB
|
||||
value: Darkweb
|
||||
- id: TRCK
|
||||
value: '1'
|
||||
- id: TPE2
|
||||
value: 徒 Setto セット
|
||||
- id: COMM
|
||||
value:
|
||||
language: XXX
|
||||
description: UNSYNCEDLYRICS
|
||||
text: >-
|
||||
Comme tous les après-midis, Assis dans le tram en face d'une jolie
|
||||
vie,
|
||||
|
||||
Sur mon écran elles sont encore plus sexy.
|
||||
|
||||
Swipe à gauche swipe à droite,
|
||||
|
||||
Celle-ci a l'aire plutôt maladroite,
|
||||
|
||||
Ça m'irait bien ça.
|
||||
|
||||
Mais la personne en face de moi,
|
||||
|
||||
Elle me matte, elle me mire.
|
||||
|
||||
Je ne sais pas quoi faire,
|
||||
|
||||
Qu'est-ce que je vais lui dire?
|
||||
|
||||
Elle a de belles dents!
|
||||
|
||||
Je vais retourner a mon écran.
|
||||
|
||||
je n'ai simplement,
|
||||
|
||||
Pas assez de cran.
|
||||
|
||||
|
||||
Je swipe à droite,
|
||||
|
||||
Je swipe à gauche,
|
||||
|
||||
Je yeuxt vers l'avant de temps en temps.
|
||||
|
||||
|
||||
Si seulement elle voyait mon flux,
|
||||
|
||||
Je suis sur qu'elle n'en pourrait plus!
|
||||
|
||||
Comment je fais pour l'ajouter?
|
||||
|
||||
Est-ce que Google pourrait la trouver?
|
||||
|
||||
Hashtag jolitram,
|
||||
|
||||
Faudrait que ça devienne viral sur Instagram.
|
||||
|
||||
Ensemble on aurait peut-être un avenir!
|
||||
|
||||
Mais comment coño vais-je lui dire?
|
||||
|
||||
Merde elle appuie sur arrêt!
|
||||
|
||||
Je lui tend mon casque ça le fait!
|
||||
|
||||
Elle donne le siens truc de ouf?!
|
||||
|
||||
Hésitations je m'immisce.
|
||||
|
||||
Cette personne écoute de la bonne musique de glisse.
|
||||
|
||||
|
||||
Je swipe à droite,
|
||||
|
||||
Je swipe à gauche,
|
||||
|
||||
Je yeuxt vers l'avant de temps en temps.
|
||||
- id: TCON
|
||||
value: Cyber Soul
|
||||
- id: TYER
|
||||
value: '2019'
|
||||
quality:
|
||||
warnings: []
|
||||
common:
|
||||
track:
|
||||
'no': 1
|
||||
of: null
|
||||
disk:
|
||||
'no': null
|
||||
of: null
|
||||
title: Swipe
|
||||
artists:
|
||||
- 徒 Setto セット
|
||||
artist: 徒 Setto セット
|
||||
comment:
|
||||
- 'Cover art by Mattias Ritarn Lindström, Music by To Setto Setto'
|
||||
- |-
|
||||
Comme tous les après-midis, Assis dans le tram en face d'une jolie vie,
|
||||
Sur mon écran elles sont encore plus sexy.
|
||||
Swipe à gauche swipe à droite,
|
||||
Celle-ci a l'aire plutôt maladroite,
|
||||
Ça m'irait bien ça.
|
||||
Mais la personne en face de moi,
|
||||
Elle me matte, elle me mire.
|
||||
Je ne sais pas quoi faire,
|
||||
Qu'est-ce que je vais lui dire?
|
||||
Elle a de belles dents!
|
||||
Je vais retourner a mon écran.
|
||||
je n'ai simplement,
|
||||
Pas assez de cran.
|
||||
|
||||
Je swipe à droite,
|
||||
Je swipe à gauche,
|
||||
Je yeuxt vers l'avant de temps en temps.
|
||||
|
||||
Si seulement elle voyait mon flux,
|
||||
Je suis sur qu'elle n'en pourrait plus!
|
||||
Comment je fais pour l'ajouter?
|
||||
Est-ce que Google pourrait la trouver?
|
||||
Hashtag jolitram,
|
||||
Faudrait que ça devienne viral sur Instagram.
|
||||
Ensemble on aurait peut-être un avenir!
|
||||
Mais comment coño vais-je lui dire?
|
||||
Merde elle appuie sur arrêt!
|
||||
Je lui tend mon casque ça le fait!
|
||||
Elle donne le siens truc de ouf?!
|
||||
Hésitations je m'immisce.
|
||||
Cette personne écoute de la bonne musique de glisse.
|
||||
|
||||
Je swipe à droite,
|
||||
Je swipe à gauche,
|
||||
Je yeuxt vers l'avant de temps en temps.
|
||||
album: Darkweb
|
||||
albumartist: 徒 Setto セット
|
||||
genre:
|
||||
- Cyber Soul
|
||||
year: 2019
|
||||
transformed:
|
||||
ID3v2.3:
|
||||
TIT2: Swipe
|
||||
TPE1: 徒 Setto セット
|
||||
Comment: 'Cover art by Mattias Ritarn Lindström, Music by To Setto Setto'
|
||||
TALB: Darkweb
|
||||
TRCK: '1'
|
||||
TPE2: 徒 Setto セット
|
||||
UNSYNCEDLYRICS: |-
|
||||
Comme tous les après-midis, Assis dans le tram en face d'une jolie vie,
|
||||
Sur mon écran elles sont encore plus sexy.
|
||||
Swipe à gauche swipe à droite,
|
||||
Celle-ci a l'aire plutôt maladroite,
|
||||
Ça m'irait bien ça.
|
||||
Mais la personne en face de moi,
|
||||
Elle me matte, elle me mire.
|
||||
Je ne sais pas quoi faire,
|
||||
Qu'est-ce que je vais lui dire?
|
||||
Elle a de belles dents!
|
||||
Je vais retourner a mon écran.
|
||||
je n'ai simplement,
|
||||
Pas assez de cran.
|
||||
|
||||
Je swipe à droite,
|
||||
Je swipe à gauche,
|
||||
Je yeuxt vers l'avant de temps en temps.
|
||||
|
||||
Si seulement elle voyait mon flux,
|
||||
Je suis sur qu'elle n'en pourrait plus!
|
||||
Comment je fais pour l'ajouter?
|
||||
Est-ce que Google pourrait la trouver?
|
||||
Hashtag jolitram,
|
||||
Faudrait que ça devienne viral sur Instagram.
|
||||
Ensemble on aurait peut-être un avenir!
|
||||
Mais comment coño vais-je lui dire?
|
||||
Merde elle appuie sur arrêt!
|
||||
Je lui tend mon casque ça le fait!
|
||||
Elle donne le siens truc de ouf?!
|
||||
Hésitations je m'immisce.
|
||||
Cette personne écoute de la bonne musique de glisse.
|
||||
|
||||
Je swipe à droite,
|
||||
Je swipe à gauche,
|
||||
Je yeuxt vers l'avant de temps en temps.
|
||||
TCON: Cyber Soul
|
||||
TYER: '2019'
|
||||
all:
|
||||
TIT2: Swipe
|
||||
TPE1: 徒 Setto セット
|
||||
Comment: 'Cover art by Mattias Ritarn Lindström, Music by To Setto Setto'
|
||||
TALB: Darkweb
|
||||
TRCK: '1'
|
||||
TPE2: 徒 Setto セット
|
||||
UNSYNCEDLYRICS: |-
|
||||
Comme tous les après-midis, Assis dans le tram en face d'une jolie vie,
|
||||
Sur mon écran elles sont encore plus sexy.
|
||||
Swipe à gauche swipe à droite,
|
||||
Celle-ci a l'aire plutôt maladroite,
|
||||
Ça m'irait bien ça.
|
||||
Mais la personne en face de moi,
|
||||
Elle me matte, elle me mire.
|
||||
Je ne sais pas quoi faire,
|
||||
Qu'est-ce que je vais lui dire?
|
||||
Elle a de belles dents!
|
||||
Je vais retourner a mon écran.
|
||||
je n'ai simplement,
|
||||
Pas assez de cran.
|
||||
|
||||
Je swipe à droite,
|
||||
Je swipe à gauche,
|
||||
Je yeuxt vers l'avant de temps en temps.
|
||||
|
||||
Si seulement elle voyait mon flux,
|
||||
Je suis sur qu'elle n'en pourrait plus!
|
||||
Comment je fais pour l'ajouter?
|
||||
Est-ce que Google pourrait la trouver?
|
||||
Hashtag jolitram,
|
||||
Faudrait que ça devienne viral sur Instagram.
|
||||
Ensemble on aurait peut-être un avenir!
|
||||
Mais comment coño vais-je lui dire?
|
||||
Merde elle appuie sur arrêt!
|
||||
Je lui tend mon casque ça le fait!
|
||||
Elle donne le siens truc de ouf?!
|
||||
Hésitations je m'immisce.
|
||||
Cette personne écoute de la bonne musique de glisse.
|
||||
|
||||
Je swipe à droite,
|
||||
Je swipe à gauche,
|
||||
Je yeuxt vers l'avant de temps en temps.
|
||||
TCON: Cyber Soul
|
||||
TYER: '2019'
|
||||
---
|
272
_tracks/darkweb/3-swipe-instrumental-.md
Normal file
272
_tracks/darkweb/3-swipe-instrumental-.md
Normal file
|
@ -0,0 +1,272 @@
|
|||
---
|
||||
layout: track
|
||||
path: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/3-swipe-instrumental-.mp3
|
||||
audio: /assets/albums/darkweb/3-swipe-instrumental-.mp3
|
||||
slug: darkweb/3-swipe-instrumental-
|
||||
albumSlug: darkweb
|
||||
trackSlug: 3-swipe-instrumental-
|
||||
coverPath: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/3-swipe-instrumental-.jpeg
|
||||
cover: /assets/albums/darkweb/3-swipe-instrumental-.jpeg
|
||||
format:
|
||||
tagTypes:
|
||||
- ID3v2.3
|
||||
trackInfo: []
|
||||
lossless: false
|
||||
container: MPEG
|
||||
codec: MPEG 1 Layer 3
|
||||
sampleRate: 44100
|
||||
numberOfChannels: 2
|
||||
bitrate: 128000
|
||||
codecProfile: CBR
|
||||
numberOfSamples: 12436992
|
||||
duration: 282.0179591836735
|
||||
native:
|
||||
ID3v2.3:
|
||||
- id: TIT2
|
||||
value: Swipe (Instrumental)
|
||||
- id: TPE1
|
||||
value: 徒 Setto セット
|
||||
- id: COMM
|
||||
value:
|
||||
language: XXX
|
||||
description: Comment
|
||||
text: >-
|
||||
Cover art by Mattias Ritarn Lindström, Music by
|
||||
To Setto Setto
|
||||
- id: TALB
|
||||
value: Darkweb
|
||||
- id: TRCK
|
||||
value: '3'
|
||||
- id: TPE2
|
||||
value: 徒 Setto セット
|
||||
- id: TCON
|
||||
value: Cyber Soul
|
||||
- id: TYER
|
||||
value: '2019'
|
||||
quality:
|
||||
warnings:
|
||||
- message: Illegal ID3v2 tag length
|
||||
common:
|
||||
track:
|
||||
'no': 3
|
||||
of: null
|
||||
disk:
|
||||
'no': null
|
||||
of: null
|
||||
title: Swipe (Instrumental)
|
||||
artists:
|
||||
- 徒 Setto セット
|
||||
artist: 徒 Setto セット
|
||||
comment:
|
||||
- 'Cover art by Mattias Ritarn Lindström, Music by To Setto Setto'
|
||||
album: Darkweb
|
||||
albumartist: 徒 Setto セット
|
||||
genre:
|
||||
- Cyber Soul
|
||||
year: 2019
|
||||
transformed:
|
||||
ID3v2.3:
|
||||
TIT2: Swipe (Instrumental)
|
||||
TPE1: 徒 Setto セット
|
||||
Comment: 'Cover art by Mattias Ritarn Lindström, Music by To Setto Setto'
|
||||
TALB: Darkweb
|
||||
TRCK: '3'
|
||||
TPE2: 徒 Setto セット
|
||||
TCON: Cyber Soul
|
||||
TYER: '2019'
|
||||
all:
|
||||
TIT2: Swipe (Instrumental)
|
||||
TPE1: 徒 Setto セット
|
||||
Comment: 'Cover art by Mattias Ritarn Lindström, Music by To Setto Setto'
|
||||
TALB: Darkweb
|
||||
TRCK: '3'
|
||||
TPE2: 徒 Setto セット
|
||||
TCON: Cyber Soul
|
||||
TYER: '2019'
|
||||
nextTrack:
|
||||
path: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/4-darkweb-instrumental-.mp3
|
||||
audio: /assets/albums/darkweb/4-darkweb-instrumental-.mp3
|
||||
slug: darkweb/4-darkweb-instrumental-
|
||||
albumSlug: darkweb
|
||||
trackSlug: 4-darkweb-instrumental-
|
||||
coverPath: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/4-darkweb-instrumental-.jpeg
|
||||
cover: /assets/albums/darkweb/4-darkweb-instrumental-.jpeg
|
||||
format:
|
||||
tagTypes:
|
||||
- ID3v2.3
|
||||
trackInfo: []
|
||||
lossless: false
|
||||
container: MPEG
|
||||
codec: MPEG 1 Layer 3
|
||||
sampleRate: 44100
|
||||
numberOfChannels: 2
|
||||
bitrate: 128000
|
||||
codecProfile: CBR
|
||||
numberOfSamples: 12526848
|
||||
duration: 284.05551020408166
|
||||
native:
|
||||
ID3v2.3:
|
||||
- id: TIT2
|
||||
value: Darkweb (Instrumental)
|
||||
- id: TPE1
|
||||
value: 徒 Setto セット
|
||||
- id: COMM
|
||||
value: &ref_0
|
||||
language: XXX
|
||||
description: ''
|
||||
text: ''
|
||||
- id: TALB
|
||||
value: Darkweb
|
||||
- id: TPE2
|
||||
value: 徒 Setto セット
|
||||
- id: TCON
|
||||
value: Cypher Rap
|
||||
- id: TRCK
|
||||
value: '4'
|
||||
- id: COMM
|
||||
value:
|
||||
language: XXX
|
||||
description: Comment
|
||||
text: Cover art and music by To Setto Setto
|
||||
- id: TYER
|
||||
value: '2019'
|
||||
quality:
|
||||
warnings: []
|
||||
common:
|
||||
track:
|
||||
'no': 4
|
||||
of: null
|
||||
disk:
|
||||
'no': null
|
||||
of: null
|
||||
title: Darkweb (Instrumental)
|
||||
artists:
|
||||
- 徒 Setto セット
|
||||
artist: 徒 Setto セット
|
||||
comment:
|
||||
- ''
|
||||
- Cover art and music by To Setto Setto
|
||||
album: Darkweb
|
||||
albumartist: 徒 Setto セット
|
||||
genre:
|
||||
- Cypher Rap
|
||||
year: 2019
|
||||
transformed:
|
||||
ID3v2.3:
|
||||
TIT2: Darkweb (Instrumental)
|
||||
TPE1: 徒 Setto セット
|
||||
COMM: *ref_0
|
||||
TALB: Darkweb
|
||||
TPE2: 徒 Setto セット
|
||||
TCON: Cypher Rap
|
||||
TRCK: '4'
|
||||
Comment: Cover art and music by To Setto Setto
|
||||
TYER: '2019'
|
||||
all:
|
||||
TIT2: Darkweb (Instrumental)
|
||||
TPE1: 徒 Setto セット
|
||||
COMM: *ref_0
|
||||
TALB: Darkweb
|
||||
TPE2: 徒 Setto セット
|
||||
TCON: Cypher Rap
|
||||
TRCK: '4'
|
||||
Comment: Cover art and music by To Setto Setto
|
||||
TYER: '2019'
|
||||
previousTrack:
|
||||
path: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/2-darkweb.mp3
|
||||
audio: /assets/albums/darkweb/2-darkweb.mp3
|
||||
slug: darkweb/2-darkweb
|
||||
albumSlug: darkweb
|
||||
trackSlug: 2-darkweb
|
||||
coverPath: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/2-darkweb.jpeg
|
||||
cover: /assets/albums/darkweb/2-darkweb.jpeg
|
||||
format:
|
||||
tagTypes:
|
||||
- ID3v2.3
|
||||
trackInfo: []
|
||||
lossless: false
|
||||
container: MPEG
|
||||
codec: MPEG 1 Layer 3
|
||||
sampleRate: 44100
|
||||
numberOfChannels: 2
|
||||
bitrate: 128000
|
||||
codecProfile: CBR
|
||||
numberOfSamples: 12566016
|
||||
duration: 284.94367346938776
|
||||
native:
|
||||
ID3v2.3:
|
||||
- id: TIT2
|
||||
value: Darkweb
|
||||
- id: TPE1
|
||||
value: 徒 Setto セット
|
||||
- id: COMM
|
||||
value:
|
||||
language: XXX
|
||||
description: Comment
|
||||
text: >-
|
||||
Cover art by Mattias Ritarn Lindström, Music by
|
||||
To Setto Setto
|
||||
- id: TALB
|
||||
value: Darkweb
|
||||
- id: TRCK
|
||||
value: '2'
|
||||
- id: TPE2
|
||||
value: 徒 Setto セット
|
||||
- id: COMM
|
||||
value:
|
||||
language: XXX
|
||||
description: UNSYNCEDLYRICS
|
||||
text: "Y'en a mare de ce web\r\nIl est tout pourri\r\nOn peu plus rien y faire\r\nSeulement pousser des cris\r\nQue personne va entendre\r\nSi t'as pas mille amis\r\nTa home-page va se pendre\r\nPerdu le goût de la vie\r\nEnvois ton Paypal\r\nJ'vais lui faire un refus\r\nAjoute-moi en ami\r\nTu vas kiffer mon flux\r\nViens pas faire ton vieux troll\r\nRien a foutre de toi\r\nT’écris de belles paroles\r\nRien à foutre de toi\r\nPuis au fond de ce noire\r\nJe vois un rayon\r\nUn programme provisoire\r\nPour poser mes sillons\r\nY a une communauté\r\nDe gens mal intégrés\r\nIl sont tous comme moi\r\nMais encore plus tarés\r\nProtocole anonyme\r\nConnexion en chiffré\r\nP2P solidaire\r\nConnexion certifiée\r\nLittéraire digital\r\nTu vas aussi kiffer\r\nÇa s'appelle le Darkweb\r\nTu vas aussi kiffer\r\n\r\nFacegoogle aux gogues\r\nY a plus que des conneries\r\nPropagande démagogue\r\nPetits chats tous mimis\r\nMais c'est quoi cette shit\r\nÇa veut plus rien dire\r\nLes keums envoient leurs bites\r\nComme si elles allaient applaudir\r\nNon! C'est trop con\r\nJe veux pas participer\r\nMais si je joue pas le jeux\r\nJe vais être abandonné\r\nPlus personne entendra\r\nTout ce que j'ai à crier\r\nPlus personne ne lira\r\nTout ce que j'ai à crier\r\nPuis au bout du tunnel\r\nJe vois une lueur étrange\r\nCelle d'un réseau fermé\r\nQui reste ouvert au strange\r\nUn lieu virtuel\r\nUne cité idéelle\r\nUne banque de données\r\nPour les mal intégrés\r\nJe peux y être qui je veux\r\nUn antichrist bien pleb\r\nAvoir beaucoup de cheveux\r\nUn intello du Zagreb\r\nT'as besoin d'faire entendre\r\nTu vas aussi kiffer\r\nLa clef tu peux la prendre\r\nTu vas aussi kiffer"
|
||||
- id: TCON
|
||||
value: Cypher Rap
|
||||
- id: TYER
|
||||
value: '2019'
|
||||
quality:
|
||||
warnings: []
|
||||
common:
|
||||
track:
|
||||
'no': 2
|
||||
of: null
|
||||
disk:
|
||||
'no': null
|
||||
of: null
|
||||
title: Darkweb
|
||||
artists:
|
||||
- 徒 Setto セット
|
||||
artist: 徒 Setto セット
|
||||
comment:
|
||||
- 'Cover art by Mattias Ritarn Lindström, Music by To Setto Setto'
|
||||
- "Y'en a mare de ce web\r\nIl est tout pourri\r\nOn peu plus rien y faire\r\nSeulement pousser des cris\r\nQue personne va entendre\r\nSi t'as pas mille amis\r\nTa home-page va se pendre\r\nPerdu le goût de la vie\r\nEnvois ton Paypal\r\nJ'vais lui faire un refus\r\nAjoute-moi en ami\r\nTu vas kiffer mon flux\r\nViens pas faire ton vieux troll\r\nRien a foutre de toi\r\nT’écris de belles paroles\r\nRien à foutre de toi\r\nPuis au fond de ce noire\r\nJe vois un rayon\r\nUn programme provisoire\r\nPour poser mes sillons\r\nY a une communauté\r\nDe gens mal intégrés\r\nIl sont tous comme moi\r\nMais encore plus tarés\r\nProtocole anonyme\r\nConnexion en chiffré\r\nP2P solidaire\r\nConnexion certifiée\r\nLittéraire digital\r\nTu vas aussi kiffer\r\nÇa s'appelle le Darkweb\r\nTu vas aussi kiffer\r\n\r\nFacegoogle aux gogues\r\nY a plus que des conneries\r\nPropagande démagogue\r\nPetits chats tous mimis\r\nMais c'est quoi cette shit\r\nÇa veut plus rien dire\r\nLes keums envoient leurs bites\r\nComme si elles allaient applaudir\r\nNon! C'est trop con\r\nJe veux pas participer\r\nMais si je joue pas le jeux\r\nJe vais être abandonné\r\nPlus personne entendra\r\nTout ce que j'ai à crier\r\nPlus personne ne lira\r\nTout ce que j'ai à crier\r\nPuis au bout du tunnel\r\nJe vois une lueur étrange\r\nCelle d'un réseau fermé\r\nQui reste ouvert au strange\r\nUn lieu virtuel\r\nUne cité idéelle\r\nUne banque de données\r\nPour les mal intégrés\r\nJe peux y être qui je veux\r\nUn antichrist bien pleb\r\nAvoir beaucoup de cheveux\r\nUn intello du Zagreb\r\nT'as besoin d'faire entendre\r\nTu vas aussi kiffer\r\nLa clef tu peux la prendre\r\nTu vas aussi kiffer"
|
||||
album: Darkweb
|
||||
albumartist: 徒 Setto セット
|
||||
genre:
|
||||
- Cypher Rap
|
||||
year: 2019
|
||||
transformed:
|
||||
ID3v2.3:
|
||||
TIT2: Darkweb
|
||||
TPE1: 徒 Setto セット
|
||||
Comment: 'Cover art by Mattias Ritarn Lindström, Music by To Setto Setto'
|
||||
TALB: Darkweb
|
||||
TRCK: '2'
|
||||
TPE2: 徒 Setto セット
|
||||
UNSYNCEDLYRICS: "Y'en a mare de ce web\r\nIl est tout pourri\r\nOn peu plus rien y faire\r\nSeulement pousser des cris\r\nQue personne va entendre\r\nSi t'as pas mille amis\r\nTa home-page va se pendre\r\nPerdu le goût de la vie\r\nEnvois ton Paypal\r\nJ'vais lui faire un refus\r\nAjoute-moi en ami\r\nTu vas kiffer mon flux\r\nViens pas faire ton vieux troll\r\nRien a foutre de toi\r\nT’écris de belles paroles\r\nRien à foutre de toi\r\nPuis au fond de ce noire\r\nJe vois un rayon\r\nUn programme provisoire\r\nPour poser mes sillons\r\nY a une communauté\r\nDe gens mal intégrés\r\nIl sont tous comme moi\r\nMais encore plus tarés\r\nProtocole anonyme\r\nConnexion en chiffré\r\nP2P solidaire\r\nConnexion certifiée\r\nLittéraire digital\r\nTu vas aussi kiffer\r\nÇa s'appelle le Darkweb\r\nTu vas aussi kiffer\r\n\r\nFacegoogle aux gogues\r\nY a plus que des conneries\r\nPropagande démagogue\r\nPetits chats tous mimis\r\nMais c'est quoi cette shit\r\nÇa veut plus rien dire\r\nLes keums envoient leurs bites\r\nComme si elles allaient applaudir\r\nNon! C'est trop con\r\nJe veux pas participer\r\nMais si je joue pas le jeux\r\nJe vais être abandonné\r\nPlus personne entendra\r\nTout ce que j'ai à crier\r\nPlus personne ne lira\r\nTout ce que j'ai à crier\r\nPuis au bout du tunnel\r\nJe vois une lueur étrange\r\nCelle d'un réseau fermé\r\nQui reste ouvert au strange\r\nUn lieu virtuel\r\nUne cité idéelle\r\nUne banque de données\r\nPour les mal intégrés\r\nJe peux y être qui je veux\r\nUn antichrist bien pleb\r\nAvoir beaucoup de cheveux\r\nUn intello du Zagreb\r\nT'as besoin d'faire entendre\r\nTu vas aussi kiffer\r\nLa clef tu peux la prendre\r\nTu vas aussi kiffer"
|
||||
TCON: Cypher Rap
|
||||
TYER: '2019'
|
||||
all:
|
||||
TIT2: Darkweb
|
||||
TPE1: 徒 Setto セット
|
||||
Comment: 'Cover art by Mattias Ritarn Lindström, Music by To Setto Setto'
|
||||
TALB: Darkweb
|
||||
TRCK: '2'
|
||||
TPE2: 徒 Setto セット
|
||||
UNSYNCEDLYRICS: "Y'en a mare de ce web\r\nIl est tout pourri\r\nOn peu plus rien y faire\r\nSeulement pousser des cris\r\nQue personne va entendre\r\nSi t'as pas mille amis\r\nTa home-page va se pendre\r\nPerdu le goût de la vie\r\nEnvois ton Paypal\r\nJ'vais lui faire un refus\r\nAjoute-moi en ami\r\nTu vas kiffer mon flux\r\nViens pas faire ton vieux troll\r\nRien a foutre de toi\r\nT’écris de belles paroles\r\nRien à foutre de toi\r\nPuis au fond de ce noire\r\nJe vois un rayon\r\nUn programme provisoire\r\nPour poser mes sillons\r\nY a une communauté\r\nDe gens mal intégrés\r\nIl sont tous comme moi\r\nMais encore plus tarés\r\nProtocole anonyme\r\nConnexion en chiffré\r\nP2P solidaire\r\nConnexion certifiée\r\nLittéraire digital\r\nTu vas aussi kiffer\r\nÇa s'appelle le Darkweb\r\nTu vas aussi kiffer\r\n\r\nFacegoogle aux gogues\r\nY a plus que des conneries\r\nPropagande démagogue\r\nPetits chats tous mimis\r\nMais c'est quoi cette shit\r\nÇa veut plus rien dire\r\nLes keums envoient leurs bites\r\nComme si elles allaient applaudir\r\nNon! C'est trop con\r\nJe veux pas participer\r\nMais si je joue pas le jeux\r\nJe vais être abandonné\r\nPlus personne entendra\r\nTout ce que j'ai à crier\r\nPlus personne ne lira\r\nTout ce que j'ai à crier\r\nPuis au bout du tunnel\r\nJe vois une lueur étrange\r\nCelle d'un réseau fermé\r\nQui reste ouvert au strange\r\nUn lieu virtuel\r\nUne cité idéelle\r\nUne banque de données\r\nPour les mal intégrés\r\nJe peux y être qui je veux\r\nUn antichrist bien pleb\r\nAvoir beaucoup de cheveux\r\nUn intello du Zagreb\r\nT'as besoin d'faire entendre\r\nTu vas aussi kiffer\r\nLa clef tu peux la prendre\r\nTu vas aussi kiffer"
|
||||
TCON: Cypher Rap
|
||||
TYER: '2019'
|
||||
---
|
444
_tracks/darkweb/4-darkweb-instrumental-.md
Normal file
444
_tracks/darkweb/4-darkweb-instrumental-.md
Normal file
|
@ -0,0 +1,444 @@
|
|||
---
|
||||
layout: track
|
||||
path: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/4-darkweb-instrumental-.mp3
|
||||
audio: /assets/albums/darkweb/4-darkweb-instrumental-.mp3
|
||||
slug: darkweb/4-darkweb-instrumental-
|
||||
albumSlug: darkweb
|
||||
trackSlug: 4-darkweb-instrumental-
|
||||
coverPath: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/4-darkweb-instrumental-.jpeg
|
||||
cover: /assets/albums/darkweb/4-darkweb-instrumental-.jpeg
|
||||
format:
|
||||
tagTypes:
|
||||
- ID3v2.3
|
||||
trackInfo: []
|
||||
lossless: false
|
||||
container: MPEG
|
||||
codec: MPEG 1 Layer 3
|
||||
sampleRate: 44100
|
||||
numberOfChannels: 2
|
||||
bitrate: 128000
|
||||
codecProfile: CBR
|
||||
numberOfSamples: 12526848
|
||||
duration: 284.05551020408166
|
||||
native:
|
||||
ID3v2.3:
|
||||
- id: TIT2
|
||||
value: Darkweb (Instrumental)
|
||||
- id: TPE1
|
||||
value: 徒 Setto セット
|
||||
- id: COMM
|
||||
value: &ref_0
|
||||
language: XXX
|
||||
description: ''
|
||||
text: ''
|
||||
- id: TALB
|
||||
value: Darkweb
|
||||
- id: TPE2
|
||||
value: 徒 Setto セット
|
||||
- id: TCON
|
||||
value: Cypher Rap
|
||||
- id: TRCK
|
||||
value: '4'
|
||||
- id: COMM
|
||||
value:
|
||||
language: XXX
|
||||
description: Comment
|
||||
text: Cover art and music by To Setto Setto
|
||||
- id: TYER
|
||||
value: '2019'
|
||||
quality:
|
||||
warnings: []
|
||||
common:
|
||||
track:
|
||||
'no': 4
|
||||
of: null
|
||||
disk:
|
||||
'no': null
|
||||
of: null
|
||||
title: Darkweb (Instrumental)
|
||||
artists:
|
||||
- 徒 Setto セット
|
||||
artist: 徒 Setto セット
|
||||
comment:
|
||||
- ''
|
||||
- Cover art and music by To Setto Setto
|
||||
album: Darkweb
|
||||
albumartist: 徒 Setto セット
|
||||
genre:
|
||||
- Cypher Rap
|
||||
year: 2019
|
||||
transformed:
|
||||
ID3v2.3:
|
||||
TIT2: Darkweb (Instrumental)
|
||||
TPE1: 徒 Setto セット
|
||||
COMM: *ref_0
|
||||
TALB: Darkweb
|
||||
TPE2: 徒 Setto セット
|
||||
TCON: Cypher Rap
|
||||
TRCK: '4'
|
||||
Comment: Cover art and music by To Setto Setto
|
||||
TYER: '2019'
|
||||
all:
|
||||
TIT2: Darkweb (Instrumental)
|
||||
TPE1: 徒 Setto セット
|
||||
COMM: *ref_0
|
||||
TALB: Darkweb
|
||||
TPE2: 徒 Setto セット
|
||||
TCON: Cypher Rap
|
||||
TRCK: '4'
|
||||
Comment: Cover art and music by To Setto Setto
|
||||
TYER: '2019'
|
||||
nextTrack:
|
||||
path: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/1-swipe.mp3
|
||||
audio: /assets/albums/darkweb/1-swipe.mp3
|
||||
slug: darkweb/1-swipe
|
||||
albumSlug: darkweb
|
||||
trackSlug: 1-swipe
|
||||
coverPath: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/1-swipe.jpeg
|
||||
cover: /assets/albums/darkweb/1-swipe.jpeg
|
||||
format:
|
||||
tagTypes:
|
||||
- ID3v2.3
|
||||
trackInfo: []
|
||||
lossless: false
|
||||
container: MPEG
|
||||
codec: MPEG 1 Layer 3
|
||||
sampleRate: 44100
|
||||
numberOfChannels: 2
|
||||
bitrate: 128000
|
||||
codecProfile: CBR
|
||||
numberOfSamples: 12388608
|
||||
duration: 280.9208163265306
|
||||
native:
|
||||
ID3v2.3:
|
||||
- id: TIT2
|
||||
value: Swipe
|
||||
- id: TPE1
|
||||
value: 徒 Setto セット
|
||||
- id: COMM
|
||||
value:
|
||||
language: XXX
|
||||
description: Comment
|
||||
text: >-
|
||||
Cover art by Mattias Ritarn Lindström, Music by
|
||||
To Setto Setto
|
||||
- id: TALB
|
||||
value: Darkweb
|
||||
- id: TRCK
|
||||
value: '1'
|
||||
- id: TPE2
|
||||
value: 徒 Setto セット
|
||||
- id: COMM
|
||||
value:
|
||||
language: XXX
|
||||
description: UNSYNCEDLYRICS
|
||||
text: >-
|
||||
Comme tous les après-midis, Assis dans le tram en face d'une jolie
|
||||
vie,
|
||||
|
||||
Sur mon écran elles sont encore plus sexy.
|
||||
|
||||
Swipe à gauche swipe à droite,
|
||||
|
||||
Celle-ci a l'aire plutôt maladroite,
|
||||
|
||||
Ça m'irait bien ça.
|
||||
|
||||
Mais la personne en face de moi,
|
||||
|
||||
Elle me matte, elle me mire.
|
||||
|
||||
Je ne sais pas quoi faire,
|
||||
|
||||
Qu'est-ce que je vais lui dire?
|
||||
|
||||
Elle a de belles dents!
|
||||
|
||||
Je vais retourner a mon écran.
|
||||
|
||||
je n'ai simplement,
|
||||
|
||||
Pas assez de cran.
|
||||
|
||||
|
||||
Je swipe à droite,
|
||||
|
||||
Je swipe à gauche,
|
||||
|
||||
Je yeuxt vers l'avant de temps en temps.
|
||||
|
||||
|
||||
Si seulement elle voyait mon flux,
|
||||
|
||||
Je suis sur qu'elle n'en pourrait plus!
|
||||
|
||||
Comment je fais pour l'ajouter?
|
||||
|
||||
Est-ce que Google pourrait la trouver?
|
||||
|
||||
Hashtag jolitram,
|
||||
|
||||
Faudrait que ça devienne viral sur Instagram.
|
||||
|
||||
Ensemble on aurait peut-être un avenir!
|
||||
|
||||
Mais comment coño vais-je lui dire?
|
||||
|
||||
Merde elle appuie sur arrêt!
|
||||
|
||||
Je lui tend mon casque ça le fait!
|
||||
|
||||
Elle donne le siens truc de ouf?!
|
||||
|
||||
Hésitations je m'immisce.
|
||||
|
||||
Cette personne écoute de la bonne musique de glisse.
|
||||
|
||||
|
||||
Je swipe à droite,
|
||||
|
||||
Je swipe à gauche,
|
||||
|
||||
Je yeuxt vers l'avant de temps en temps.
|
||||
- id: TCON
|
||||
value: Cyber Soul
|
||||
- id: TYER
|
||||
value: '2019'
|
||||
quality:
|
||||
warnings: []
|
||||
common:
|
||||
track:
|
||||
'no': 1
|
||||
of: null
|
||||
disk:
|
||||
'no': null
|
||||
of: null
|
||||
title: Swipe
|
||||
artists:
|
||||
- 徒 Setto セット
|
||||
artist: 徒 Setto セット
|
||||
comment:
|
||||
- 'Cover art by Mattias Ritarn Lindström, Music by To Setto Setto'
|
||||
- |-
|
||||
Comme tous les après-midis, Assis dans le tram en face d'une jolie vie,
|
||||
Sur mon écran elles sont encore plus sexy.
|
||||
Swipe à gauche swipe à droite,
|
||||
Celle-ci a l'aire plutôt maladroite,
|
||||
Ça m'irait bien ça.
|
||||
Mais la personne en face de moi,
|
||||
Elle me matte, elle me mire.
|
||||
Je ne sais pas quoi faire,
|
||||
Qu'est-ce que je vais lui dire?
|
||||
Elle a de belles dents!
|
||||
Je vais retourner a mon écran.
|
||||
je n'ai simplement,
|
||||
Pas assez de cran.
|
||||
|
||||
Je swipe à droite,
|
||||
Je swipe à gauche,
|
||||
Je yeuxt vers l'avant de temps en temps.
|
||||
|
||||
Si seulement elle voyait mon flux,
|
||||
Je suis sur qu'elle n'en pourrait plus!
|
||||
Comment je fais pour l'ajouter?
|
||||
Est-ce que Google pourrait la trouver?
|
||||
Hashtag jolitram,
|
||||
Faudrait que ça devienne viral sur Instagram.
|
||||
Ensemble on aurait peut-être un avenir!
|
||||
Mais comment coño vais-je lui dire?
|
||||
Merde elle appuie sur arrêt!
|
||||
Je lui tend mon casque ça le fait!
|
||||
Elle donne le siens truc de ouf?!
|
||||
Hésitations je m'immisce.
|
||||
Cette personne écoute de la bonne musique de glisse.
|
||||
|
||||
Je swipe à droite,
|
||||
Je swipe à gauche,
|
||||
Je yeuxt vers l'avant de temps en temps.
|
||||
album: Darkweb
|
||||
albumartist: 徒 Setto セット
|
||||
genre:
|
||||
- Cyber Soul
|
||||
year: 2019
|
||||
transformed:
|
||||
ID3v2.3:
|
||||
TIT2: Swipe
|
||||
TPE1: 徒 Setto セット
|
||||
Comment: 'Cover art by Mattias Ritarn Lindström, Music by To Setto Setto'
|
||||
TALB: Darkweb
|
||||
TRCK: '1'
|
||||
TPE2: 徒 Setto セット
|
||||
UNSYNCEDLYRICS: |-
|
||||
Comme tous les après-midis, Assis dans le tram en face d'une jolie vie,
|
||||
Sur mon écran elles sont encore plus sexy.
|
||||
Swipe à gauche swipe à droite,
|
||||
Celle-ci a l'aire plutôt maladroite,
|
||||
Ça m'irait bien ça.
|
||||
Mais la personne en face de moi,
|
||||
Elle me matte, elle me mire.
|
||||
Je ne sais pas quoi faire,
|
||||
Qu'est-ce que je vais lui dire?
|
||||
Elle a de belles dents!
|
||||
Je vais retourner a mon écran.
|
||||
je n'ai simplement,
|
||||
Pas assez de cran.
|
||||
|
||||
Je swipe à droite,
|
||||
Je swipe à gauche,
|
||||
Je yeuxt vers l'avant de temps en temps.
|
||||
|
||||
Si seulement elle voyait mon flux,
|
||||
Je suis sur qu'elle n'en pourrait plus!
|
||||
Comment je fais pour l'ajouter?
|
||||
Est-ce que Google pourrait la trouver?
|
||||
Hashtag jolitram,
|
||||
Faudrait que ça devienne viral sur Instagram.
|
||||
Ensemble on aurait peut-être un avenir!
|
||||
Mais comment coño vais-je lui dire?
|
||||
Merde elle appuie sur arrêt!
|
||||
Je lui tend mon casque ça le fait!
|
||||
Elle donne le siens truc de ouf?!
|
||||
Hésitations je m'immisce.
|
||||
Cette personne écoute de la bonne musique de glisse.
|
||||
|
||||
Je swipe à droite,
|
||||
Je swipe à gauche,
|
||||
Je yeuxt vers l'avant de temps en temps.
|
||||
TCON: Cyber Soul
|
||||
TYER: '2019'
|
||||
all:
|
||||
TIT2: Swipe
|
||||
TPE1: 徒 Setto セット
|
||||
Comment: 'Cover art by Mattias Ritarn Lindström, Music by To Setto Setto'
|
||||
TALB: Darkweb
|
||||
TRCK: '1'
|
||||
TPE2: 徒 Setto セット
|
||||
UNSYNCEDLYRICS: |-
|
||||
Comme tous les après-midis, Assis dans le tram en face d'une jolie vie,
|
||||
Sur mon écran elles sont encore plus sexy.
|
||||
Swipe à gauche swipe à droite,
|
||||
Celle-ci a l'aire plutôt maladroite,
|
||||
Ça m'irait bien ça.
|
||||
Mais la personne en face de moi,
|
||||
Elle me matte, elle me mire.
|
||||
Je ne sais pas quoi faire,
|
||||
Qu'est-ce que je vais lui dire?
|
||||
Elle a de belles dents!
|
||||
Je vais retourner a mon écran.
|
||||
je n'ai simplement,
|
||||
Pas assez de cran.
|
||||
|
||||
Je swipe à droite,
|
||||
Je swipe à gauche,
|
||||
Je yeuxt vers l'avant de temps en temps.
|
||||
|
||||
Si seulement elle voyait mon flux,
|
||||
Je suis sur qu'elle n'en pourrait plus!
|
||||
Comment je fais pour l'ajouter?
|
||||
Est-ce que Google pourrait la trouver?
|
||||
Hashtag jolitram,
|
||||
Faudrait que ça devienne viral sur Instagram.
|
||||
Ensemble on aurait peut-être un avenir!
|
||||
Mais comment coño vais-je lui dire?
|
||||
Merde elle appuie sur arrêt!
|
||||
Je lui tend mon casque ça le fait!
|
||||
Elle donne le siens truc de ouf?!
|
||||
Hésitations je m'immisce.
|
||||
Cette personne écoute de la bonne musique de glisse.
|
||||
|
||||
Je swipe à droite,
|
||||
Je swipe à gauche,
|
||||
Je yeuxt vers l'avant de temps en temps.
|
||||
TCON: Cyber Soul
|
||||
TYER: '2019'
|
||||
previousTrack:
|
||||
path: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/3-swipe-instrumental-.mp3
|
||||
audio: /assets/albums/darkweb/3-swipe-instrumental-.mp3
|
||||
slug: darkweb/3-swipe-instrumental-
|
||||
albumSlug: darkweb
|
||||
trackSlug: 3-swipe-instrumental-
|
||||
coverPath: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/3-swipe-instrumental-.jpeg
|
||||
cover: /assets/albums/darkweb/3-swipe-instrumental-.jpeg
|
||||
format:
|
||||
tagTypes:
|
||||
- ID3v2.3
|
||||
trackInfo: []
|
||||
lossless: false
|
||||
container: MPEG
|
||||
codec: MPEG 1 Layer 3
|
||||
sampleRate: 44100
|
||||
numberOfChannels: 2
|
||||
bitrate: 128000
|
||||
codecProfile: CBR
|
||||
numberOfSamples: 12436992
|
||||
duration: 282.0179591836735
|
||||
native:
|
||||
ID3v2.3:
|
||||
- id: TIT2
|
||||
value: Swipe (Instrumental)
|
||||
- id: TPE1
|
||||
value: 徒 Setto セット
|
||||
- id: COMM
|
||||
value:
|
||||
language: XXX
|
||||
description: Comment
|
||||
text: >-
|
||||
Cover art by Mattias Ritarn Lindström, Music by
|
||||
To Setto Setto
|
||||
- id: TALB
|
||||
value: Darkweb
|
||||
- id: TRCK
|
||||
value: '3'
|
||||
- id: TPE2
|
||||
value: 徒 Setto セット
|
||||
- id: TCON
|
||||
value: Cyber Soul
|
||||
- id: TYER
|
||||
value: '2019'
|
||||
quality:
|
||||
warnings:
|
||||
- message: Illegal ID3v2 tag length
|
||||
common:
|
||||
track:
|
||||
'no': 3
|
||||
of: null
|
||||
disk:
|
||||
'no': null
|
||||
of: null
|
||||
title: Swipe (Instrumental)
|
||||
artists:
|
||||
- 徒 Setto セット
|
||||
artist: 徒 Setto セット
|
||||
comment:
|
||||
- 'Cover art by Mattias Ritarn Lindström, Music by To Setto Setto'
|
||||
album: Darkweb
|
||||
albumartist: 徒 Setto セット
|
||||
genre:
|
||||
- Cyber Soul
|
||||
year: 2019
|
||||
transformed:
|
||||
ID3v2.3:
|
||||
TIT2: Swipe (Instrumental)
|
||||
TPE1: 徒 Setto セット
|
||||
Comment: 'Cover art by Mattias Ritarn Lindström, Music by To Setto Setto'
|
||||
TALB: Darkweb
|
||||
TRCK: '3'
|
||||
TPE2: 徒 Setto セット
|
||||
TCON: Cyber Soul
|
||||
TYER: '2019'
|
||||
all:
|
||||
TIT2: Swipe (Instrumental)
|
||||
TPE1: 徒 Setto セット
|
||||
Comment: 'Cover art by Mattias Ritarn Lindström, Music by To Setto Setto'
|
||||
TALB: Darkweb
|
||||
TRCK: '3'
|
||||
TPE2: 徒 Setto セット
|
||||
TCON: Cyber Soul
|
||||
TYER: '2019'
|
||||
---
|
98
_tracks/live-with-hardware/1-ep-life-of-a-dudelini.md
Normal file
98
_tracks/live-with-hardware/1-ep-life-of-a-dudelini.md
Normal file
|
@ -0,0 +1,98 @@
|
|||
---
|
||||
layout: track
|
||||
path: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/live-with-hardware/1-ep-life-of-a-dudelini.mp3
|
||||
audio: /assets/albums/live-with-hardware/1-ep-life-of-a-dudelini.mp3
|
||||
slug: live-with-hardware/1-ep-life-of-a-dudelini
|
||||
albumSlug: live-with-hardware
|
||||
trackSlug: 1-ep-life-of-a-dudelini
|
||||
coverPath: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/live-with-hardware/1-ep-life-of-a-dudelini.jpeg
|
||||
cover: /assets/albums/live-with-hardware/1-ep-life-of-a-dudelini.jpeg
|
||||
format: &ref_1
|
||||
tagTypes:
|
||||
- ID3v2.4
|
||||
trackInfo: []
|
||||
lossless: false
|
||||
container: MPEG
|
||||
codec: MPEG 1 Layer 3
|
||||
sampleRate: 48000
|
||||
numberOfChannels: 2
|
||||
bitrate: 192000
|
||||
codecProfile: CBR
|
||||
tool: LAME3.100
|
||||
duration: 683.472
|
||||
native: &ref_2
|
||||
ID3v2.4:
|
||||
- id: TIT2
|
||||
value: EP-Life of a Dudelini
|
||||
- id: TPE1
|
||||
value: 徒 Setto セット
|
||||
- id: TALB
|
||||
value: Live with hardware
|
||||
- id: COMM
|
||||
value: &ref_0
|
||||
language: eng
|
||||
description: ''
|
||||
text: Live take
|
||||
- id: TDRC
|
||||
value: '2020-04-20'
|
||||
- id: TRCK
|
||||
value: '1'
|
||||
- id: TCON
|
||||
value: Cybersoul
|
||||
quality: &ref_3
|
||||
warnings: []
|
||||
common: &ref_4
|
||||
track:
|
||||
'no': 1
|
||||
of: null
|
||||
disk:
|
||||
'no': null
|
||||
of: null
|
||||
title: EP-Life of a Dudelini
|
||||
artists:
|
||||
- 徒 Setto セット
|
||||
artist: 徒 Setto セット
|
||||
album: Live with hardware
|
||||
comment:
|
||||
- Live take
|
||||
year: 2020
|
||||
date: '2020-04-20'
|
||||
genre:
|
||||
- Cybersoul
|
||||
transformed: &ref_5
|
||||
ID3v2.4:
|
||||
TIT2: EP-Life of a Dudelini
|
||||
TPE1: 徒 Setto セット
|
||||
TALB: Live with hardware
|
||||
COMM: *ref_0
|
||||
TDRC: '2020-04-20'
|
||||
TRCK: '1'
|
||||
TCON: Cybersoul
|
||||
all: &ref_6
|
||||
TIT2: EP-Life of a Dudelini
|
||||
TPE1: 徒 Setto セット
|
||||
TALB: Live with hardware
|
||||
COMM: *ref_0
|
||||
TDRC: '2020-04-20'
|
||||
TRCK: '1'
|
||||
TCON: Cybersoul
|
||||
nextTrack: &ref_7
|
||||
path: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/live-with-hardware/1-ep-life-of-a-dudelini.mp3
|
||||
audio: /assets/albums/live-with-hardware/1-ep-life-of-a-dudelini.mp3
|
||||
slug: live-with-hardware/1-ep-life-of-a-dudelini
|
||||
albumSlug: live-with-hardware
|
||||
trackSlug: 1-ep-life-of-a-dudelini
|
||||
coverPath: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/live-with-hardware/1-ep-life-of-a-dudelini.jpeg
|
||||
cover: /assets/albums/live-with-hardware/1-ep-life-of-a-dudelini.jpeg
|
||||
format: *ref_1
|
||||
native: *ref_2
|
||||
quality: *ref_3
|
||||
common: *ref_4
|
||||
transformed: *ref_5
|
||||
all: *ref_6
|
||||
previousTrack: *ref_7
|
||||
---
|
185
_tracks/satoshi-mon-ami/1-k-as-tu-fait-de-nous-.md
Normal file
185
_tracks/satoshi-mon-ami/1-k-as-tu-fait-de-nous-.md
Normal file
|
@ -0,0 +1,185 @@
|
|||
---
|
||||
layout: track
|
||||
path: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/satoshi-mon-ami/1-k-as-tu-fait-de-nous-.mp3
|
||||
audio: /assets/albums/satoshi-mon-ami/1-k-as-tu-fait-de-nous-.mp3
|
||||
slug: satoshi-mon-ami/1-k-as-tu-fait-de-nous-
|
||||
albumSlug: satoshi-mon-ami
|
||||
trackSlug: 1-k-as-tu-fait-de-nous-
|
||||
coverPath: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/satoshi-mon-ami/1-k-as-tu-fait-de-nous-.jpeg
|
||||
cover: /assets/albums/satoshi-mon-ami/1-k-as-tu-fait-de-nous-.jpeg
|
||||
format:
|
||||
tagTypes:
|
||||
- ID3v2.3
|
||||
trackInfo: []
|
||||
lossless: false
|
||||
container: MPEG
|
||||
codec: MPEG 1 Layer 3
|
||||
sampleRate: 44100
|
||||
numberOfChannels: 2
|
||||
bitrate: 128000
|
||||
codecProfile: CBR
|
||||
numberOfSamples: 13433472
|
||||
duration: 304.6138775510204
|
||||
native:
|
||||
ID3v2.3:
|
||||
- id: TIT2
|
||||
value: K'as-tu fait de nous?
|
||||
- id: TPE1
|
||||
value: 徒 Setto セット
|
||||
- id: COMM
|
||||
value: &ref_0
|
||||
language: XXX
|
||||
description: ''
|
||||
text: Cover art and music by To Setto Setto
|
||||
- id: TALB
|
||||
value: Satoshi mon ami
|
||||
- id: TRCK
|
||||
value: '1'
|
||||
- id: TPE2
|
||||
value: 徒 Setto セット
|
||||
- id: COMM
|
||||
value:
|
||||
language: XXX
|
||||
description: UNSYNCEDLYRICS
|
||||
text: "Qu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\n\r\nAcid est la tribe\r\nCyberpunk le game\r\nSur des reseau de bribe\r\non fait monter le fame\r\nMeme pas besoin de files\r\nIsole sur l'iles\r\non fait un tour au grotte\r\npour pas que la story capotte\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\n\r\nSi la police nous ajoute\r\nNouvelle vie nouveau compte\r\nOn tourne le dos au toute\r\non delete sans honte\r\nMeme pas besoin d'ecrire\r\ntu peux mäentendre rire\r\nen tour de face a face\r\nQui brise la glace\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\n\r\n24 heures pour dechiffre\r\nOn dirait une invitation\r\nLa story que t'as balancer\r\nCryptokids une seul nation\r\ncelle des rave et du reve\r\nHilife a plein poumons\r\nLe flux n'as pas de treve\r\nEt en suede il mange du saumon\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou"
|
||||
- id: TCON
|
||||
value: Cyber Soul
|
||||
- id: TYER
|
||||
value: '2018'
|
||||
quality:
|
||||
warnings: []
|
||||
common:
|
||||
track:
|
||||
'no': 1
|
||||
of: null
|
||||
disk:
|
||||
'no': null
|
||||
of: null
|
||||
title: K'as-tu fait de nous?
|
||||
artists:
|
||||
- 徒 Setto セット
|
||||
artist: 徒 Setto セット
|
||||
comment:
|
||||
- Cover art and music by To Setto Setto
|
||||
- "Qu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\n\r\nAcid est la tribe\r\nCyberpunk le game\r\nSur des reseau de bribe\r\non fait monter le fame\r\nMeme pas besoin de files\r\nIsole sur l'iles\r\non fait un tour au grotte\r\npour pas que la story capotte\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\n\r\nSi la police nous ajoute\r\nNouvelle vie nouveau compte\r\nOn tourne le dos au toute\r\non delete sans honte\r\nMeme pas besoin d'ecrire\r\ntu peux mäentendre rire\r\nen tour de face a face\r\nQui brise la glace\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\n\r\n24 heures pour dechiffre\r\nOn dirait une invitation\r\nLa story que t'as balancer\r\nCryptokids une seul nation\r\ncelle des rave et du reve\r\nHilife a plein poumons\r\nLe flux n'as pas de treve\r\nEt en suede il mange du saumon\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou"
|
||||
album: Satoshi mon ami
|
||||
albumartist: 徒 Setto セット
|
||||
genre:
|
||||
- Cyber Soul
|
||||
year: 2018
|
||||
transformed:
|
||||
ID3v2.3:
|
||||
TIT2: K'as-tu fait de nous?
|
||||
TPE1: 徒 Setto セット
|
||||
COMM: *ref_0
|
||||
TALB: Satoshi mon ami
|
||||
TRCK: '1'
|
||||
TPE2: 徒 Setto セット
|
||||
UNSYNCEDLYRICS: "Qu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\n\r\nAcid est la tribe\r\nCyberpunk le game\r\nSur des reseau de bribe\r\non fait monter le fame\r\nMeme pas besoin de files\r\nIsole sur l'iles\r\non fait un tour au grotte\r\npour pas que la story capotte\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\n\r\nSi la police nous ajoute\r\nNouvelle vie nouveau compte\r\nOn tourne le dos au toute\r\non delete sans honte\r\nMeme pas besoin d'ecrire\r\ntu peux mäentendre rire\r\nen tour de face a face\r\nQui brise la glace\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\n\r\n24 heures pour dechiffre\r\nOn dirait une invitation\r\nLa story que t'as balancer\r\nCryptokids une seul nation\r\ncelle des rave et du reve\r\nHilife a plein poumons\r\nLe flux n'as pas de treve\r\nEt en suede il mange du saumon\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou"
|
||||
TCON: Cyber Soul
|
||||
TYER: '2018'
|
||||
all:
|
||||
TIT2: K'as-tu fait de nous?
|
||||
TPE1: 徒 Setto セット
|
||||
COMM: *ref_0
|
||||
TALB: Satoshi mon ami
|
||||
TRCK: '1'
|
||||
TPE2: 徒 Setto セット
|
||||
UNSYNCEDLYRICS: "Qu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\n\r\nAcid est la tribe\r\nCyberpunk le game\r\nSur des reseau de bribe\r\non fait monter le fame\r\nMeme pas besoin de files\r\nIsole sur l'iles\r\non fait un tour au grotte\r\npour pas que la story capotte\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\n\r\nSi la police nous ajoute\r\nNouvelle vie nouveau compte\r\nOn tourne le dos au toute\r\non delete sans honte\r\nMeme pas besoin d'ecrire\r\ntu peux mäentendre rire\r\nen tour de face a face\r\nQui brise la glace\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\n\r\n24 heures pour dechiffre\r\nOn dirait une invitation\r\nLa story que t'as balancer\r\nCryptokids une seul nation\r\ncelle des rave et du reve\r\nHilife a plein poumons\r\nLe flux n'as pas de treve\r\nEt en suede il mange du saumon\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou"
|
||||
TCON: Cyber Soul
|
||||
TYER: '2018'
|
||||
nextTrack: &ref_2
|
||||
path: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/satoshi-mon-ami/2-r-ve-de-toi.mp3
|
||||
audio: /assets/albums/satoshi-mon-ami/2-r-ve-de-toi.mp3
|
||||
slug: satoshi-mon-ami/2-r-ve-de-toi
|
||||
albumSlug: satoshi-mon-ami
|
||||
trackSlug: 2-r-ve-de-toi
|
||||
coverPath: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/satoshi-mon-ami/2-r-ve-de-toi.jpeg
|
||||
cover: /assets/albums/satoshi-mon-ami/2-r-ve-de-toi.jpeg
|
||||
format:
|
||||
tagTypes:
|
||||
- ID3v2.3
|
||||
trackInfo: []
|
||||
lossless: false
|
||||
container: MPEG
|
||||
codec: MPEG 1 Layer 3
|
||||
sampleRate: 44100
|
||||
numberOfChannels: 2
|
||||
bitrate: 128000
|
||||
codecProfile: CBR
|
||||
numberOfSamples: 8195328
|
||||
duration: 185.83510204081634
|
||||
native:
|
||||
ID3v2.3:
|
||||
- id: TIT2
|
||||
value: Rêve de toi
|
||||
- id: TPE1
|
||||
value: 徒 Setto セット
|
||||
- id: COMM
|
||||
value: &ref_1
|
||||
language: XXX
|
||||
description: ''
|
||||
text: Cover art and music by To Setto Setto
|
||||
- id: TALB
|
||||
value: Satoshi mon ami
|
||||
- id: TRCK
|
||||
value: '2'
|
||||
- id: TPE2
|
||||
value: 徒 Setto セット
|
||||
- id: COMM
|
||||
value:
|
||||
language: XXX
|
||||
description: UNSYNCEDLYRICS
|
||||
text: "Je rêve de toi\r\nChaque jour je te vois\r\nJe fais pas de faux pas\r\nToujours des commentaires sympas\r\n\r\nTa vie est belle\r\nÇa se voit sur les cocotiers\r\nMais mon label\r\nNe pourras pas me déployer\r\n\r\nUne fois, chaque fois, que mon téléphone\r\nS’allume, s’éclaire, sonne le vibraphone\r\nJ’espère, c'est claire, que c'est la bonne\r\nFois en moi, mais cette fois, ce n'est pas toi\r\n\r\nJ'ajoute des cœurs\r\nA tous les poste que tu publies\r\nJ’envoie des merdes\r\nA tous les cons qui t'humilient\r\n\r\nTa vie radieuse\r\nIllumine mes après-midi\r\nQuand je me lève\r\nAprès avoir perdu encore une nuit\r\n\r\nUne fois, chaque fois, que mon téléphone\r\nS’allume, s’éclaire, sonne le vibraphone\r\nJ’espère, c'est claire, que c'est la bonne\r\nFois en moi, mais cette fois, toujours pas toi"
|
||||
- id: TCON
|
||||
value: Cyber Soul
|
||||
- id: TYER
|
||||
value: '2018'
|
||||
quality:
|
||||
warnings: []
|
||||
common:
|
||||
track:
|
||||
'no': 2
|
||||
of: null
|
||||
disk:
|
||||
'no': null
|
||||
of: null
|
||||
title: Rêve de toi
|
||||
artists:
|
||||
- 徒 Setto セット
|
||||
artist: 徒 Setto セット
|
||||
comment:
|
||||
- Cover art and music by To Setto Setto
|
||||
- "Je rêve de toi\r\nChaque jour je te vois\r\nJe fais pas de faux pas\r\nToujours des commentaires sympas\r\n\r\nTa vie est belle\r\nÇa se voit sur les cocotiers\r\nMais mon label\r\nNe pourras pas me déployer\r\n\r\nUne fois, chaque fois, que mon téléphone\r\nS’allume, s’éclaire, sonne le vibraphone\r\nJ’espère, c'est claire, que c'est la bonne\r\nFois en moi, mais cette fois, ce n'est pas toi\r\n\r\nJ'ajoute des cœurs\r\nA tous les poste que tu publies\r\nJ’envoie des merdes\r\nA tous les cons qui t'humilient\r\n\r\nTa vie radieuse\r\nIllumine mes après-midi\r\nQuand je me lève\r\nAprès avoir perdu encore une nuit\r\n\r\nUne fois, chaque fois, que mon téléphone\r\nS’allume, s’éclaire, sonne le vibraphone\r\nJ’espère, c'est claire, que c'est la bonne\r\nFois en moi, mais cette fois, toujours pas toi"
|
||||
album: Satoshi mon ami
|
||||
albumartist: 徒 Setto セット
|
||||
genre:
|
||||
- Cyber Soul
|
||||
year: 2018
|
||||
transformed:
|
||||
ID3v2.3:
|
||||
TIT2: Rêve de toi
|
||||
TPE1: 徒 Setto セット
|
||||
COMM: *ref_1
|
||||
TALB: Satoshi mon ami
|
||||
TRCK: '2'
|
||||
TPE2: 徒 Setto セット
|
||||
UNSYNCEDLYRICS: "Je rêve de toi\r\nChaque jour je te vois\r\nJe fais pas de faux pas\r\nToujours des commentaires sympas\r\n\r\nTa vie est belle\r\nÇa se voit sur les cocotiers\r\nMais mon label\r\nNe pourras pas me déployer\r\n\r\nUne fois, chaque fois, que mon téléphone\r\nS’allume, s’éclaire, sonne le vibraphone\r\nJ’espère, c'est claire, que c'est la bonne\r\nFois en moi, mais cette fois, ce n'est pas toi\r\n\r\nJ'ajoute des cœurs\r\nA tous les poste que tu publies\r\nJ’envoie des merdes\r\nA tous les cons qui t'humilient\r\n\r\nTa vie radieuse\r\nIllumine mes après-midi\r\nQuand je me lève\r\nAprès avoir perdu encore une nuit\r\n\r\nUne fois, chaque fois, que mon téléphone\r\nS’allume, s’éclaire, sonne le vibraphone\r\nJ’espère, c'est claire, que c'est la bonne\r\nFois en moi, mais cette fois, toujours pas toi"
|
||||
TCON: Cyber Soul
|
||||
TYER: '2018'
|
||||
all:
|
||||
TIT2: Rêve de toi
|
||||
TPE1: 徒 Setto セット
|
||||
COMM: *ref_1
|
||||
TALB: Satoshi mon ami
|
||||
TRCK: '2'
|
||||
TPE2: 徒 Setto セット
|
||||
UNSYNCEDLYRICS: "Je rêve de toi\r\nChaque jour je te vois\r\nJe fais pas de faux pas\r\nToujours des commentaires sympas\r\n\r\nTa vie est belle\r\nÇa se voit sur les cocotiers\r\nMais mon label\r\nNe pourras pas me déployer\r\n\r\nUne fois, chaque fois, que mon téléphone\r\nS’allume, s’éclaire, sonne le vibraphone\r\nJ’espère, c'est claire, que c'est la bonne\r\nFois en moi, mais cette fois, ce n'est pas toi\r\n\r\nJ'ajoute des cœurs\r\nA tous les poste que tu publies\r\nJ’envoie des merdes\r\nA tous les cons qui t'humilient\r\n\r\nTa vie radieuse\r\nIllumine mes après-midi\r\nQuand je me lève\r\nAprès avoir perdu encore une nuit\r\n\r\nUne fois, chaque fois, que mon téléphone\r\nS’allume, s’éclaire, sonne le vibraphone\r\nJ’espère, c'est claire, que c'est la bonne\r\nFois en moi, mais cette fois, toujours pas toi"
|
||||
TCON: Cyber Soul
|
||||
TYER: '2018'
|
||||
previousTrack: *ref_2
|
||||
---
|
185
_tracks/satoshi-mon-ami/2-r-ve-de-toi.md
Normal file
185
_tracks/satoshi-mon-ami/2-r-ve-de-toi.md
Normal file
|
@ -0,0 +1,185 @@
|
|||
---
|
||||
layout: track
|
||||
path: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/satoshi-mon-ami/2-r-ve-de-toi.mp3
|
||||
audio: /assets/albums/satoshi-mon-ami/2-r-ve-de-toi.mp3
|
||||
slug: satoshi-mon-ami/2-r-ve-de-toi
|
||||
albumSlug: satoshi-mon-ami
|
||||
trackSlug: 2-r-ve-de-toi
|
||||
coverPath: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/satoshi-mon-ami/2-r-ve-de-toi.jpeg
|
||||
cover: /assets/albums/satoshi-mon-ami/2-r-ve-de-toi.jpeg
|
||||
format:
|
||||
tagTypes:
|
||||
- ID3v2.3
|
||||
trackInfo: []
|
||||
lossless: false
|
||||
container: MPEG
|
||||
codec: MPEG 1 Layer 3
|
||||
sampleRate: 44100
|
||||
numberOfChannels: 2
|
||||
bitrate: 128000
|
||||
codecProfile: CBR
|
||||
numberOfSamples: 8195328
|
||||
duration: 185.83510204081634
|
||||
native:
|
||||
ID3v2.3:
|
||||
- id: TIT2
|
||||
value: Rêve de toi
|
||||
- id: TPE1
|
||||
value: 徒 Setto セット
|
||||
- id: COMM
|
||||
value: &ref_0
|
||||
language: XXX
|
||||
description: ''
|
||||
text: Cover art and music by To Setto Setto
|
||||
- id: TALB
|
||||
value: Satoshi mon ami
|
||||
- id: TRCK
|
||||
value: '2'
|
||||
- id: TPE2
|
||||
value: 徒 Setto セット
|
||||
- id: COMM
|
||||
value:
|
||||
language: XXX
|
||||
description: UNSYNCEDLYRICS
|
||||
text: "Je rêve de toi\r\nChaque jour je te vois\r\nJe fais pas de faux pas\r\nToujours des commentaires sympas\r\n\r\nTa vie est belle\r\nÇa se voit sur les cocotiers\r\nMais mon label\r\nNe pourras pas me déployer\r\n\r\nUne fois, chaque fois, que mon téléphone\r\nS’allume, s’éclaire, sonne le vibraphone\r\nJ’espère, c'est claire, que c'est la bonne\r\nFois en moi, mais cette fois, ce n'est pas toi\r\n\r\nJ'ajoute des cœurs\r\nA tous les poste que tu publies\r\nJ’envoie des merdes\r\nA tous les cons qui t'humilient\r\n\r\nTa vie radieuse\r\nIllumine mes après-midi\r\nQuand je me lève\r\nAprès avoir perdu encore une nuit\r\n\r\nUne fois, chaque fois, que mon téléphone\r\nS’allume, s’éclaire, sonne le vibraphone\r\nJ’espère, c'est claire, que c'est la bonne\r\nFois en moi, mais cette fois, toujours pas toi"
|
||||
- id: TCON
|
||||
value: Cyber Soul
|
||||
- id: TYER
|
||||
value: '2018'
|
||||
quality:
|
||||
warnings: []
|
||||
common:
|
||||
track:
|
||||
'no': 2
|
||||
of: null
|
||||
disk:
|
||||
'no': null
|
||||
of: null
|
||||
title: Rêve de toi
|
||||
artists:
|
||||
- 徒 Setto セット
|
||||
artist: 徒 Setto セット
|
||||
comment:
|
||||
- Cover art and music by To Setto Setto
|
||||
- "Je rêve de toi\r\nChaque jour je te vois\r\nJe fais pas de faux pas\r\nToujours des commentaires sympas\r\n\r\nTa vie est belle\r\nÇa se voit sur les cocotiers\r\nMais mon label\r\nNe pourras pas me déployer\r\n\r\nUne fois, chaque fois, que mon téléphone\r\nS’allume, s’éclaire, sonne le vibraphone\r\nJ’espère, c'est claire, que c'est la bonne\r\nFois en moi, mais cette fois, ce n'est pas toi\r\n\r\nJ'ajoute des cœurs\r\nA tous les poste que tu publies\r\nJ’envoie des merdes\r\nA tous les cons qui t'humilient\r\n\r\nTa vie radieuse\r\nIllumine mes après-midi\r\nQuand je me lève\r\nAprès avoir perdu encore une nuit\r\n\r\nUne fois, chaque fois, que mon téléphone\r\nS’allume, s’éclaire, sonne le vibraphone\r\nJ’espère, c'est claire, que c'est la bonne\r\nFois en moi, mais cette fois, toujours pas toi"
|
||||
album: Satoshi mon ami
|
||||
albumartist: 徒 Setto セット
|
||||
genre:
|
||||
- Cyber Soul
|
||||
year: 2018
|
||||
transformed:
|
||||
ID3v2.3:
|
||||
TIT2: Rêve de toi
|
||||
TPE1: 徒 Setto セット
|
||||
COMM: *ref_0
|
||||
TALB: Satoshi mon ami
|
||||
TRCK: '2'
|
||||
TPE2: 徒 Setto セット
|
||||
UNSYNCEDLYRICS: "Je rêve de toi\r\nChaque jour je te vois\r\nJe fais pas de faux pas\r\nToujours des commentaires sympas\r\n\r\nTa vie est belle\r\nÇa se voit sur les cocotiers\r\nMais mon label\r\nNe pourras pas me déployer\r\n\r\nUne fois, chaque fois, que mon téléphone\r\nS’allume, s’éclaire, sonne le vibraphone\r\nJ’espère, c'est claire, que c'est la bonne\r\nFois en moi, mais cette fois, ce n'est pas toi\r\n\r\nJ'ajoute des cœurs\r\nA tous les poste que tu publies\r\nJ’envoie des merdes\r\nA tous les cons qui t'humilient\r\n\r\nTa vie radieuse\r\nIllumine mes après-midi\r\nQuand je me lève\r\nAprès avoir perdu encore une nuit\r\n\r\nUne fois, chaque fois, que mon téléphone\r\nS’allume, s’éclaire, sonne le vibraphone\r\nJ’espère, c'est claire, que c'est la bonne\r\nFois en moi, mais cette fois, toujours pas toi"
|
||||
TCON: Cyber Soul
|
||||
TYER: '2018'
|
||||
all:
|
||||
TIT2: Rêve de toi
|
||||
TPE1: 徒 Setto セット
|
||||
COMM: *ref_0
|
||||
TALB: Satoshi mon ami
|
||||
TRCK: '2'
|
||||
TPE2: 徒 Setto セット
|
||||
UNSYNCEDLYRICS: "Je rêve de toi\r\nChaque jour je te vois\r\nJe fais pas de faux pas\r\nToujours des commentaires sympas\r\n\r\nTa vie est belle\r\nÇa se voit sur les cocotiers\r\nMais mon label\r\nNe pourras pas me déployer\r\n\r\nUne fois, chaque fois, que mon téléphone\r\nS’allume, s’éclaire, sonne le vibraphone\r\nJ’espère, c'est claire, que c'est la bonne\r\nFois en moi, mais cette fois, ce n'est pas toi\r\n\r\nJ'ajoute des cœurs\r\nA tous les poste que tu publies\r\nJ’envoie des merdes\r\nA tous les cons qui t'humilient\r\n\r\nTa vie radieuse\r\nIllumine mes après-midi\r\nQuand je me lève\r\nAprès avoir perdu encore une nuit\r\n\r\nUne fois, chaque fois, que mon téléphone\r\nS’allume, s’éclaire, sonne le vibraphone\r\nJ’espère, c'est claire, que c'est la bonne\r\nFois en moi, mais cette fois, toujours pas toi"
|
||||
TCON: Cyber Soul
|
||||
TYER: '2018'
|
||||
nextTrack: &ref_2
|
||||
path: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/satoshi-mon-ami/1-k-as-tu-fait-de-nous-.mp3
|
||||
audio: /assets/albums/satoshi-mon-ami/1-k-as-tu-fait-de-nous-.mp3
|
||||
slug: satoshi-mon-ami/1-k-as-tu-fait-de-nous-
|
||||
albumSlug: satoshi-mon-ami
|
||||
trackSlug: 1-k-as-tu-fait-de-nous-
|
||||
coverPath: >-
|
||||
/home/set/git/basspistol/setto.basspistol.com/assets/albums/satoshi-mon-ami/1-k-as-tu-fait-de-nous-.jpeg
|
||||
cover: /assets/albums/satoshi-mon-ami/1-k-as-tu-fait-de-nous-.jpeg
|
||||
format:
|
||||
tagTypes:
|
||||
- ID3v2.3
|
||||
trackInfo: []
|
||||
lossless: false
|
||||
container: MPEG
|
||||
codec: MPEG 1 Layer 3
|
||||
sampleRate: 44100
|
||||
numberOfChannels: 2
|
||||
bitrate: 128000
|
||||
codecProfile: CBR
|
||||
numberOfSamples: 13433472
|
||||
duration: 304.6138775510204
|
||||
native:
|
||||
ID3v2.3:
|
||||
- id: TIT2
|
||||
value: K'as-tu fait de nous?
|
||||
- id: TPE1
|
||||
value: 徒 Setto セット
|
||||
- id: COMM
|
||||
value: &ref_1
|
||||
language: XXX
|
||||
description: ''
|
||||
text: Cover art and music by To Setto Setto
|
||||
- id: TALB
|
||||
value: Satoshi mon ami
|
||||
- id: TRCK
|
||||
value: '1'
|
||||
- id: TPE2
|
||||
value: 徒 Setto セット
|
||||
- id: COMM
|
||||
value:
|
||||
language: XXX
|
||||
description: UNSYNCEDLYRICS
|
||||
text: "Qu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\n\r\nAcid est la tribe\r\nCyberpunk le game\r\nSur des reseau de bribe\r\non fait monter le fame\r\nMeme pas besoin de files\r\nIsole sur l'iles\r\non fait un tour au grotte\r\npour pas que la story capotte\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\n\r\nSi la police nous ajoute\r\nNouvelle vie nouveau compte\r\nOn tourne le dos au toute\r\non delete sans honte\r\nMeme pas besoin d'ecrire\r\ntu peux mäentendre rire\r\nen tour de face a face\r\nQui brise la glace\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\n\r\n24 heures pour dechiffre\r\nOn dirait une invitation\r\nLa story que t'as balancer\r\nCryptokids une seul nation\r\ncelle des rave et du reve\r\nHilife a plein poumons\r\nLe flux n'as pas de treve\r\nEt en suede il mange du saumon\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou"
|
||||
- id: TCON
|
||||
value: Cyber Soul
|
||||
- id: TYER
|
||||
value: '2018'
|
||||
quality:
|
||||
warnings: []
|
||||
common:
|
||||
track:
|
||||
'no': 1
|
||||
of: null
|
||||
disk:
|
||||
'no': null
|
||||
of: null
|
||||
title: K'as-tu fait de nous?
|
||||
artists:
|
||||
- 徒 Setto セット
|
||||
artist: 徒 Setto セット
|
||||
comment:
|
||||
- Cover art and music by To Setto Setto
|
||||
- "Qu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\n\r\nAcid est la tribe\r\nCyberpunk le game\r\nSur des reseau de bribe\r\non fait monter le fame\r\nMeme pas besoin de files\r\nIsole sur l'iles\r\non fait un tour au grotte\r\npour pas que la story capotte\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\n\r\nSi la police nous ajoute\r\nNouvelle vie nouveau compte\r\nOn tourne le dos au toute\r\non delete sans honte\r\nMeme pas besoin d'ecrire\r\ntu peux mäentendre rire\r\nen tour de face a face\r\nQui brise la glace\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\n\r\n24 heures pour dechiffre\r\nOn dirait une invitation\r\nLa story que t'as balancer\r\nCryptokids une seul nation\r\ncelle des rave et du reve\r\nHilife a plein poumons\r\nLe flux n'as pas de treve\r\nEt en suede il mange du saumon\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou"
|
||||
album: Satoshi mon ami
|
||||
albumartist: 徒 Setto セット
|
||||
genre:
|
||||
- Cyber Soul
|
||||
year: 2018
|
||||
transformed:
|
||||
ID3v2.3:
|
||||
TIT2: K'as-tu fait de nous?
|
||||
TPE1: 徒 Setto セット
|
||||
COMM: *ref_1
|
||||
TALB: Satoshi mon ami
|
||||
TRCK: '1'
|
||||
TPE2: 徒 Setto セット
|
||||
UNSYNCEDLYRICS: "Qu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\n\r\nAcid est la tribe\r\nCyberpunk le game\r\nSur des reseau de bribe\r\non fait monter le fame\r\nMeme pas besoin de files\r\nIsole sur l'iles\r\non fait un tour au grotte\r\npour pas que la story capotte\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\n\r\nSi la police nous ajoute\r\nNouvelle vie nouveau compte\r\nOn tourne le dos au toute\r\non delete sans honte\r\nMeme pas besoin d'ecrire\r\ntu peux mäentendre rire\r\nen tour de face a face\r\nQui brise la glace\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\n\r\n24 heures pour dechiffre\r\nOn dirait une invitation\r\nLa story que t'as balancer\r\nCryptokids une seul nation\r\ncelle des rave et du reve\r\nHilife a plein poumons\r\nLe flux n'as pas de treve\r\nEt en suede il mange du saumon\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou"
|
||||
TCON: Cyber Soul
|
||||
TYER: '2018'
|
||||
all:
|
||||
TIT2: K'as-tu fait de nous?
|
||||
TPE1: 徒 Setto セット
|
||||
COMM: *ref_1
|
||||
TALB: Satoshi mon ami
|
||||
TRCK: '1'
|
||||
TPE2: 徒 Setto セット
|
||||
UNSYNCEDLYRICS: "Qu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\n\r\nAcid est la tribe\r\nCyberpunk le game\r\nSur des reseau de bribe\r\non fait monter le fame\r\nMeme pas besoin de files\r\nIsole sur l'iles\r\non fait un tour au grotte\r\npour pas que la story capotte\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\n\r\nSi la police nous ajoute\r\nNouvelle vie nouveau compte\r\nOn tourne le dos au toute\r\non delete sans honte\r\nMeme pas besoin d'ecrire\r\ntu peux mäentendre rire\r\nen tour de face a face\r\nQui brise la glace\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\n\r\n24 heures pour dechiffre\r\nOn dirait une invitation\r\nLa story que t'as balancer\r\nCryptokids une seul nation\r\ncelle des rave et du reve\r\nHilife a plein poumons\r\nLe flux n'as pas de treve\r\nEt en suede il mange du saumon\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou"
|
||||
TCON: Cyber Soul
|
||||
TYER: '2018'
|
||||
previousTrack: *ref_2
|
||||
---
|
34
about.md
Normal file
34
about.md
Normal file
|
@ -0,0 +1,34 @@
|
|||
---
|
||||
title: About
|
||||
layout: page
|
||||
description: What is Sakrecoer about and what does its music stand for?
|
||||
image: /assets/img/cs-vid-3.jpg
|
||||
---
|
||||
|
||||
## Sakrecoer Uncorporated Stands for independent fun-loving Activism, Art & Music.
|
||||
|
||||
I am a 1980 born robot. If [Monica Zetterlund](https://en.wikipedia.org/wiki/Monica_Zetterlund){: target="_blank"} was a cyberpunk making electronic music, I would probably be Her. I aim for questions rather than answers and at pushing your creativity. I move by feet in the streets and value my integrity.
|
||||
|
||||
![](/assets/img/cs-vid-1.jpg){: width="350" height="227"}
|
||||
|
||||
I go by many aliases that you will find if you scroll down this page.
|
||||
|
||||
![](/assets/img/cs-vid-2.jpg){: width="270" height="180"}
|
||||
|
||||
This website was designed and executed by [me](http://set.hallstrom.ch){: target="_blank"} On these pages I push sounds, images, thoughts and passion for cool robots like you, thanks to the good [Alsenet.com](https://alsenet.com){: target="_blank"} people and the Helevtico-Russian-Swedo-Geramno-Spanglish Linux Lovers Circle.
|
||||
|
||||
![](/assets/img/cs-vid-4.jpg){: width="270" height="180"}
|
||||
|
||||
The past gig list is to long times and for forgotten times\! Received with enthusiasm by several venues, big and small such as:
|
||||
|
||||
* Apolo Nitsa - Barcelona
|
||||
* Dachkantine - Zürich
|
||||
* Center Of Contemporary Art - Geneva
|
||||
* Alcazar - Stockholm
|
||||
* Microdisco Festival - Berlin
|
||||
* Button Factory - Dublin
|
||||
* And many many other really really nice ones :) delivering good mood, beat, base and bass\!
|
||||
|
||||
![](/assets/img/sakrecoerLIVE.png){: width="639" height="799"}
|
||||
|
||||
|
BIN
apple-touch-icon.png
Normal file
BIN
apple-touch-icon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 41 KiB |
5
assets/css/fontawesome-all.min.css
vendored
Normal file
5
assets/css/fontawesome-all.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
192
assets/css/main20200710.scss
Normal file
192
assets/css/main20200710.scss
Normal file
|
@ -0,0 +1,192 @@
|
|||
---
|
||||
---
|
||||
@import 'libs/vars';
|
||||
@import 'libs/functions';
|
||||
@import 'libs/mixins';
|
||||
@import 'libs/vendor';
|
||||
@import 'libs/breakpoints';
|
||||
@import 'libs/html-grid';
|
||||
@import 'fontawesome-all.min.css';
|
||||
@import 'libs/fonts';
|
||||
|
||||
/*
|
||||
Story by HTML5 UP
|
||||
html5up.net | @ajlkn
|
||||
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
*/
|
||||
|
||||
// Breakpoints.
|
||||
|
||||
@include breakpoints((
|
||||
xlarge: ( 1281px, 1680px ),
|
||||
large: ( 981px, 1280px ),
|
||||
medium: ( 737px, 980px ),
|
||||
small: ( 481px, 736px ),
|
||||
xsmall: ( 361px, 480px ),
|
||||
xxsmall: ( null, 360px )
|
||||
));
|
||||
|
||||
// Mixins.
|
||||
|
||||
@mixin color($p) {
|
||||
@include color-typography($p);
|
||||
@include color-box($p);
|
||||
@include color-button($p);
|
||||
@include color-form($p);
|
||||
@include color-icon($p);
|
||||
@include color-list($p);
|
||||
@include color-section($p);
|
||||
@include color-table($p);
|
||||
@include color-banner($p);
|
||||
@include color-spotlight($p);
|
||||
@include color-gallery($p);
|
||||
@include color-items($p);
|
||||
@include color-index($p);
|
||||
}
|
||||
|
||||
// Phone.
|
||||
|
||||
@mixin phone($image-width) {
|
||||
@include vendor('flex-grow', '0');
|
||||
@include vendor('flex-shrink', '0');
|
||||
border-radius: 0;
|
||||
border: solid _size(border-width);
|
||||
|
||||
img {
|
||||
@include vendor('object-fit', 'cover');
|
||||
@include vendor('object-position', 'center');
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
&:before {
|
||||
content: '';
|
||||
display: block;
|
||||
background-position: center;
|
||||
background-repeat: no-repeat;
|
||||
border: solid _size(border-width);
|
||||
border-bottom: 0;
|
||||
}
|
||||
|
||||
&:after {
|
||||
content: '';
|
||||
display: block;
|
||||
background-position: center;
|
||||
background-repeat: no-repeat;
|
||||
border: solid _size(border-width);
|
||||
border-top: 0;
|
||||
}
|
||||
|
||||
@include resize-phone($image-width, 1);
|
||||
}
|
||||
|
||||
@mixin resize-phone($image-width, $image-factor) {
|
||||
$image-pad-top: 2.5rem;
|
||||
$image-pad-bottom: 3rem;
|
||||
$image-height: ($image-width * (1920 / 1080));
|
||||
|
||||
width: ($image-width * $image-factor);
|
||||
height: (($image-width * $image-factor) * (1920 / 1080));
|
||||
margin-top: ($image-pad-top * $image-factor);
|
||||
margin-bottom: (_size(element-margin) + ($image-pad-bottom * $image-factor));
|
||||
|
||||
&:before {
|
||||
height: ($image-pad-top * $image-factor);
|
||||
background-size: (64px * $image-factor) (32px * $image-factor);
|
||||
margin-top: (($image-pad-top * $image-factor) * -1);
|
||||
border-radius: (1rem * $image-factor) (1rem * $image-factor) 0 0;
|
||||
}
|
||||
|
||||
&:after {
|
||||
height: ($image-pad-bottom * $image-factor);
|
||||
background-size: (64px * $image-factor) (32px * $image-factor);
|
||||
margin-bottom: (($image-pad-bottom * $image-factor) * -1);
|
||||
border-radius: 0 0 (1rem * $image-factor) (1rem * $image-factor);
|
||||
}
|
||||
}
|
||||
|
||||
@mixin color-phone($p) {
|
||||
border-color: _palette($p, border);
|
||||
background-color: _palette($p, border);
|
||||
|
||||
@if ($p != 'invert') {
|
||||
border-width: 0;
|
||||
}
|
||||
@else {
|
||||
border-width: _size(border-width);
|
||||
}
|
||||
|
||||
&:before {
|
||||
background-image: svg-url('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="64px" height="32px" viewBox="0 0 64 32" zoomAndPan="disable"><style>rect {fill: transparent; stroke: #{_palette($p, border)}; stroke-width: #{_size(border-width)}; }</style><rect rx="4" ry="4" x="11" y="12" width="42" height="8" vector-effect="non-scaling-stroke" /></svg>');
|
||||
border-color: _palette($p, border);
|
||||
|
||||
@if ($p == 'invert') {
|
||||
width: calc(100% + #{_size(border-width) * 2});
|
||||
margin-left: (_size(border-width) * -1);
|
||||
}
|
||||
@else {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
&:after {
|
||||
background-image: svg-url('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="64px" height="32px" viewBox="0 0 64 32" zoomAndPan="disable"><style>circle {fill: transparent; stroke: #{_palette($p, border)}; stroke-width: #{_size(border-width)}; }</style><circle cx="32" cy="16" r="14" vector-effect="non-scaling-stroke" /></svg>');
|
||||
border-color: _palette($p, border);
|
||||
|
||||
@if ($p == 'invert') {
|
||||
width: calc(100% + #{_size(border-width) * 2});
|
||||
margin-left: (_size(border-width) * -1);
|
||||
}
|
||||
@else {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@mixin color-phone-variant($v, $p) {
|
||||
@if ($v == 'android') {
|
||||
&:after {
|
||||
background-image: svg-url('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="64px" height="32px" viewBox="0 0 64 32" zoomAndPan="disable"><style>rect {fill: transparent; stroke: #{_palette($p, border)}; stroke-width: #{_size(border-width)}; }</style><rect rx="4" ry="4" x="6" y="4" width="52" height="24" vector-effect="non-scaling-stroke" /></svg>');
|
||||
}
|
||||
}
|
||||
@else if ($p == 'iphone') {
|
||||
// ...
|
||||
}
|
||||
}
|
||||
|
||||
// Base.
|
||||
|
||||
@import 'base/reset';
|
||||
@import 'base/page';
|
||||
@import 'base/typography';
|
||||
|
||||
// Component.
|
||||
|
||||
@import 'components/row';
|
||||
@import 'components/box';
|
||||
@import 'components/button';
|
||||
@import 'components/form';
|
||||
@import 'components/icon';
|
||||
@import 'components/image';
|
||||
@import 'components/list';
|
||||
@import 'components/actions';
|
||||
@import 'components/icons';
|
||||
@import 'components/section';
|
||||
@import 'components/table';
|
||||
@import 'components/banner';
|
||||
@import 'components/spotlight';
|
||||
@import 'components/gallery';
|
||||
@import 'components/wrapper';
|
||||
@import 'components/items';
|
||||
@import 'components/index';
|
||||
|
||||
// Layout.
|
||||
|
||||
@import 'layout/wrapper';
|
||||
|
||||
// Set's customizations
|
||||
|
||||
@import 'set.scss';
|
||||
@import 'player.scss';
|
258
assets/css/noscript20200710.scss
Normal file
258
assets/css/noscript20200710.scss
Normal file
|
@ -0,0 +1,258 @@
|
|||
---
|
||||
---
|
||||
@import 'libs/vars';
|
||||
@import 'libs/functions';
|
||||
@import 'libs/mixins';
|
||||
@import 'libs/vendor';
|
||||
@import 'libs/breakpoints';
|
||||
@import 'libs/html-grid';
|
||||
@import 'libs/fonts';
|
||||
|
||||
|
||||
/*
|
||||
Story by HTML5 UP
|
||||
html5up.net | @ajlkn
|
||||
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
*/
|
||||
|
||||
/* Banner (transitions) */
|
||||
|
||||
.banner {
|
||||
|
||||
// Mixin.
|
||||
@mixin transition-banner($event) {
|
||||
$x: null;
|
||||
$y: null;
|
||||
|
||||
@if ($event == 'load') {
|
||||
$x: 'body.is-preload &';
|
||||
$y: _duration(on-load);
|
||||
}
|
||||
@else if ($event == 'scroll') {
|
||||
$x: '&.is-inactive';
|
||||
$y: _duration(on-scroll);
|
||||
}
|
||||
|
||||
// Content.
|
||||
&.on#{$event}-content-fade-up {
|
||||
.content {
|
||||
@include vendor('transition', 'none');
|
||||
}
|
||||
|
||||
#{$x} {
|
||||
.content {
|
||||
@include vendor('transform', 'none');
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.on#{$event}-content-fade-down {
|
||||
.content {
|
||||
@include vendor('transition', 'none');
|
||||
}
|
||||
|
||||
#{$x} {
|
||||
.content {
|
||||
@include vendor('transform', 'none');
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.on#{$event}-content-fade-left {
|
||||
.content {
|
||||
@include vendor('transition', 'none');
|
||||
}
|
||||
|
||||
#{$x} {
|
||||
.content {
|
||||
@include vendor('transform', 'none');
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.on#{$event}-content-fade-right {
|
||||
.content {
|
||||
@include vendor('transition', 'none');
|
||||
}
|
||||
|
||||
#{$x} {
|
||||
.content {
|
||||
@include vendor('transform', 'none');
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.on#{$event}-content-fade-in {
|
||||
.content {
|
||||
@include vendor('transition', 'none');
|
||||
}
|
||||
|
||||
#{$x} {
|
||||
.content {
|
||||
@include vendor('transform', 'none');
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Image.
|
||||
&.on#{$event}-image-fade-up {
|
||||
.image {
|
||||
@include vendor('transition', 'none');
|
||||
|
||||
img {
|
||||
@include vendor('transition', 'none');
|
||||
}
|
||||
}
|
||||
|
||||
#{$x} {
|
||||
.image {
|
||||
@include vendor('transform', 'none');
|
||||
opacity: 1;
|
||||
|
||||
img {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.on#{$event}-image-fade-down {
|
||||
.image {
|
||||
@include vendor('transition', 'none');
|
||||
|
||||
img {
|
||||
@include vendor('transition', 'none');
|
||||
}
|
||||
}
|
||||
|
||||
#{$x} {
|
||||
.image {
|
||||
@include vendor('transform', 'none');
|
||||
opacity: 1;
|
||||
|
||||
img {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.on#{$event}-image-fade-left {
|
||||
.image {
|
||||
@include vendor('transition', 'none');
|
||||
|
||||
img {
|
||||
@include vendor('transition', 'none');
|
||||
}
|
||||
}
|
||||
|
||||
#{$x} {
|
||||
.image {
|
||||
@include vendor('transform', 'none');
|
||||
opacity: 1;
|
||||
|
||||
img {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.on#{$event}-image-fade-right {
|
||||
.image {
|
||||
@include vendor('transition', 'none');
|
||||
|
||||
img {
|
||||
@include vendor('transition', 'none');
|
||||
}
|
||||
}
|
||||
|
||||
#{$x} {
|
||||
.image {
|
||||
@include vendor('transform', 'none');
|
||||
opacity: 1;
|
||||
|
||||
img {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.on#{$event}-image-fade-in {
|
||||
.image {
|
||||
img {
|
||||
@include vendor('transition', 'none');
|
||||
}
|
||||
}
|
||||
|
||||
#{$x} {
|
||||
.image {
|
||||
img {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// On Load.
|
||||
@include transition-banner('load');
|
||||
|
||||
// On Scroll.
|
||||
@include transition-banner('scroll');
|
||||
|
||||
}
|
||||
|
||||
// Set's customizations
|
||||
|
||||
@import 'set';
|
||||
@import 'player';
|
||||
|
||||
.logo {
|
||||
position: fixed;
|
||||
top: 20px;
|
||||
right: 20px;
|
||||
width: 50%;
|
||||
height: 10%;
|
||||
background-color: transparent;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center;
|
||||
background-size: 95% 95%;
|
||||
-webkit-transition: all 400ms ease-in;
|
||||
-moz-transition: all 400ms ease-in;
|
||||
transition: all 400ms ease-in;
|
||||
box-shadow: 0 0 10px 1px _palette(border-alt);
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 769px) {
|
||||
.logo {
|
||||
position: fixed;
|
||||
top: 20px;
|
||||
right: 20px;
|
||||
width: 20%;
|
||||
height: 10%;
|
||||
background-color: transparent;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center;
|
||||
background-size: 95% 95%;
|
||||
-webkit-transition: all 400ms ease-in;
|
||||
-moz-transition: all 400ms ease-in;
|
||||
transition: all 400ms ease-in;
|
||||
box-shadow: 0 0 10px 1px _palette(border-alt);
|
||||
}
|
||||
}
|
||||
|
||||
// Player link
|
||||
#mainwrap {
|
||||
display: none;
|
||||
}
|
||||
#noJSalbum {
|
||||
display: unset;
|
||||
}
|
BIN
assets/fonts/Astloch-Bold.ttf
Normal file
BIN
assets/fonts/Astloch-Bold.ttf
Normal file
Binary file not shown.
2
assets/js/breakpoints.min.js
vendored
Normal file
2
assets/js/breakpoints.min.js
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
/* breakpoints.js v1.0 | @ajlkn | MIT licensed */
|
||||
var breakpoints=function(){"use strict";function e(e){t.init(e)}var t={list:null,media:{},events:[],init:function(e){t.list=e,window.addEventListener("resize",t.poll),window.addEventListener("orientationchange",t.poll),window.addEventListener("load",t.poll),window.addEventListener("fullscreenchange",t.poll)},active:function(e){var n,a,s,i,r,d,c;if(!(e in t.media)){if(">="==e.substr(0,2)?(a="gte",n=e.substr(2)):"<="==e.substr(0,2)?(a="lte",n=e.substr(2)):">"==e.substr(0,1)?(a="gt",n=e.substr(1)):"<"==e.substr(0,1)?(a="lt",n=e.substr(1)):"!"==e.substr(0,1)?(a="not",n=e.substr(1)):(a="eq",n=e),n&&n in t.list)if(i=t.list[n],Array.isArray(i)){if(r=parseInt(i[0]),d=parseInt(i[1]),isNaN(r)){if(isNaN(d))return;c=i[1].substr(String(d).length)}else c=i[0].substr(String(r).length);if(isNaN(r))switch(a){case"gte":s="screen";break;case"lte":s="screen and (max-width: "+d+c+")";break;case"gt":s="screen and (min-width: "+(d+1)+c+")";break;case"lt":s="screen and (max-width: -1px)";break;case"not":s="screen and (min-width: "+(d+1)+c+")";break;default:s="screen and (max-width: "+d+c+")"}else if(isNaN(d))switch(a){case"gte":s="screen and (min-width: "+r+c+")";break;case"lte":s="screen";break;case"gt":s="screen and (max-width: -1px)";break;case"lt":s="screen and (max-width: "+(r-1)+c+")";break;case"not":s="screen and (max-width: "+(r-1)+c+")";break;default:s="screen and (min-width: "+r+c+")"}else switch(a){case"gte":s="screen and (min-width: "+r+c+")";break;case"lte":s="screen and (max-width: "+d+c+")";break;case"gt":s="screen and (min-width: "+(d+1)+c+")";break;case"lt":s="screen and (max-width: "+(r-1)+c+")";break;case"not":s="screen and (max-width: "+(r-1)+c+"), screen and (min-width: "+(d+1)+c+")";break;default:s="screen and (min-width: "+r+c+") and (max-width: "+d+c+")"}}else s="("==i.charAt(0)?"screen and "+i:i;t.media[e]=!!s&&s}return t.media[e]!==!1&&window.matchMedia(t.media[e]).matches},on:function(e,n){t.events.push({query:e,handler:n,state:!1}),t.active(e)&&n()},poll:function(){var e,n;for(e=0;e<t.events.length;e++)n=t.events[e],t.active(n.query)?n.state||(n.state=!0,n.handler()):n.state&&(n.state=!1)}};return e._=t,e.on=function(e,n){t.on(e,n)},e.active=function(e){return t.active(e)},e}();!function(e,t){"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?module.exports=t():e.breakpoints=t()}(this,function(){return breakpoints});
|
2
assets/js/browser.min.js
vendored
Normal file
2
assets/js/browser.min.js
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
/* browser.js v1.0 | @ajlkn | MIT licensed */
|
||||
var browser=function(){"use strict";var e={name:null,version:null,os:null,osVersion:null,touch:null,mobile:null,_canUse:null,canUse:function(n){e._canUse||(e._canUse=document.createElement("div"));var o=e._canUse.style,r=n.charAt(0).toUpperCase()+n.slice(1);return n in o||"Moz"+r in o||"Webkit"+r in o||"O"+r in o||"ms"+r in o},init:function(){var n,o,r,i,t=navigator.userAgent;for(n="other",o=0,r=[["firefox",/Firefox\/([0-9\.]+)/],["bb",/BlackBerry.+Version\/([0-9\.]+)/],["bb",/BB[0-9]+.+Version\/([0-9\.]+)/],["opera",/OPR\/([0-9\.]+)/],["opera",/Opera\/([0-9\.]+)/],["edge",/Edge\/([0-9\.]+)/],["safari",/Version\/([0-9\.]+).+Safari/],["chrome",/Chrome\/([0-9\.]+)/],["ie",/MSIE ([0-9]+)/],["ie",/Trident\/.+rv:([0-9]+)/]],i=0;i<r.length;i++)if(t.match(r[i][1])){n=r[i][0],o=parseFloat(RegExp.$1);break}for(e.name=n,e.version=o,n="other",o=0,r=[["ios",/([0-9_]+) like Mac OS X/,function(e){return e.replace("_",".").replace("_","")}],["ios",/CPU like Mac OS X/,function(e){return 0}],["wp",/Windows Phone ([0-9\.]+)/,null],["android",/Android ([0-9\.]+)/,null],["mac",/Macintosh.+Mac OS X ([0-9_]+)/,function(e){return e.replace("_",".").replace("_","")}],["windows",/Windows NT ([0-9\.]+)/,null],["bb",/BlackBerry.+Version\/([0-9\.]+)/,null],["bb",/BB[0-9]+.+Version\/([0-9\.]+)/,null],["linux",/Linux/,null],["bsd",/BSD/,null],["unix",/X11/,null]],i=0;i<r.length;i++)if(t.match(r[i][1])){n=r[i][0],o=parseFloat(r[i][2]?r[i][2](RegExp.$1):RegExp.$1);break}e.os=n,e.osVersion=o,e.touch="wp"==e.os?navigator.msMaxTouchPoints>0:!!("ontouchstart"in window),e.mobile="wp"==e.os||"android"==e.os||"ios"==e.os||"bb"==e.os}};return e.init(),e}();!function(e,n){"function"==typeof define&&define.amd?define([],n):"object"==typeof exports?module.exports=n():e.browser=n()}(this,function(){return browser});
|
563
assets/js/demo.js
Normal file
563
assets/js/demo.js
Normal file
|
@ -0,0 +1,563 @@
|
|||
/*
|
||||
Story by HTML5 UP
|
||||
html5up.net | @ajlkn
|
||||
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
|
||||
Note: Only needed for demo purposes. Delete for production sites.
|
||||
*/
|
||||
|
||||
(function($) {
|
||||
|
||||
var $window = $(window);
|
||||
|
||||
// Styles.
|
||||
$(
|
||||
'<style>' +
|
||||
'.demo-animate-all:not(.gallery), .demo-animate-all:not(.gallery) *, .demo-animate-all:not(.gallery) *:before, .demo-animate-all:not(.gallery) *:after { transition: all 0.5s ease-in-out; }' +
|
||||
'.demo-controls .property .classes { display: none; }' +
|
||||
'.demo-controls .property[data-requires] { display: none; }' +
|
||||
'.demo-controls .property[data-requires].active { display: inline; }' +
|
||||
'.demo-controls .property .tooltip { position: relative; }' +
|
||||
'.demo-controls .property .tooltip:before { content: \'Click to change!\'; font-size: 0.7rem; position: absolute; bottom: 100%; left: 0; background: #47D3E5; color: #ffffff; line-height: 1; white-space: nowrap; font-weight: bold; border-radius: 0.125rem; padding: 0.325rem 0.425rem; animation: demo-controls-tooltip 1.5s forwards; animation-delay: 1s; opacity: 0; }' +
|
||||
'.demo-controls .property .tooltip:after { content: \'\'; position: absolute; bottom: calc(100% - 0.25rem); left: 0.5rem; border-left: solid 0.5rem transparent; border-right: solid 0.5rem transparent; border-top: solid 0.5rem #47D3E5; width: 0.5rem; height: 0.5rem; animation: demo-controls-tooltip 1.5s forwards; animation-delay: 1s; opacity: 0; }' +
|
||||
'@keyframes demo-controls-tooltip {' +
|
||||
'0% { opacity: 0; transform: translateY(0); }' +
|
||||
'10% { opacity: 1; transform: translateY(0.125rem); }' +
|
||||
'20% { opacity: 1; transform: translateY(-0.125rem); }' +
|
||||
'30% { opacity: 1; transform: translateY(0.125rem); }' +
|
||||
'40% { opacity: 1; transform: translateY(-0.125rem); }' +
|
||||
'50% { opacity: 1; transform: translateY(0.125rem); }' +
|
||||
'60% { opacity: 1; transform: translateY(0); }' +
|
||||
'90% { opacity: 1; }' +
|
||||
'100% { opacity: 0; }' +
|
||||
'}' +
|
||||
'</style>'
|
||||
).appendTo($('head'));
|
||||
|
||||
// Functions.
|
||||
$.fn.demo_controls = function(styles, userOptions) {
|
||||
|
||||
var $this = $(this),
|
||||
$styleProperty, $stylePropertyClasses,
|
||||
$controls, $x, $y, $z,
|
||||
options,
|
||||
current, i, j, k, s, n, count;
|
||||
|
||||
// No elements?
|
||||
if (this.length == 0)
|
||||
return $this;
|
||||
|
||||
// Multiple elements?
|
||||
if (this.length > 1) {
|
||||
|
||||
for (var i=0; i < this.length; i++)
|
||||
$(this[i]).demo_controls(styles, userOptions);
|
||||
|
||||
return $this;
|
||||
|
||||
}
|
||||
|
||||
// Options.
|
||||
options = $.extend({
|
||||
target: null,
|
||||
palette: true
|
||||
}, userOptions);
|
||||
|
||||
// Controls.
|
||||
if (styles) {
|
||||
|
||||
$controls = $(
|
||||
'<span class="demo-controls">' +
|
||||
'<span class="property" data-name="style">' +
|
||||
'<a href="#" class="title tooltip">style</a>' +
|
||||
'<span class="classes"></span>' + (options.palette ? ', ' : ' ') +
|
||||
'</span>' +
|
||||
(options.palette ?
|
||||
'<span class="property active" data-name="scheme">' +
|
||||
'<a href="#" class="title">scheme</a>' +
|
||||
'<span class="classes">' +
|
||||
'<span data-class="-" class="active">default</span>' +
|
||||
'<span data-class="invert">invert</span>' +
|
||||
'</span>, ' +
|
||||
'</span>' +
|
||||
'<span class="property active" data-name="color">' +
|
||||
'<a href="#" class="title">color</a>' +
|
||||
'<span class="classes">' +
|
||||
'<span data-class="-" class="active">default</span>' +
|
||||
'<span data-class="color1">color1</span>' +
|
||||
'<span data-class="color2">color2</span>' +
|
||||
'<span data-class="color3">color3</span>' +
|
||||
'<span data-class="color4">color4</span>' +
|
||||
'<span data-class="color5">color5</span>' +
|
||||
'<span data-class="color6">color6</span>' +
|
||||
'<span data-class="color7">color7</span>' +
|
||||
'</span>, ' +
|
||||
'</span>'
|
||||
: '') +
|
||||
'</span>'
|
||||
);
|
||||
|
||||
}
|
||||
else {
|
||||
|
||||
$controls = $(
|
||||
'<span class="demo-controls">' +
|
||||
(options.palette ?
|
||||
'<span class="property active" data-name="scheme">' +
|
||||
'<a href="#" class="title">scheme</a>' +
|
||||
'<span class="classes">' +
|
||||
'<span data-class="-" class="active">default</span>' +
|
||||
'<span data-class="invert">invert</span>' +
|
||||
'</span> and ' +
|
||||
'</span>' +
|
||||
'<span class="property active" data-name="color">' +
|
||||
'<a href="#" class="title">color</a>' +
|
||||
'<span class="classes">' +
|
||||
'<span data-class="-" class="active">default</span>' +
|
||||
'<span data-class="color1">color1</span>' +
|
||||
'<span data-class="color2">color2</span>' +
|
||||
'<span data-class="color3">color3</span>' +
|
||||
'<span data-class="color4">color4</span>' +
|
||||
'<span data-class="color5">color5</span>' +
|
||||
'<span data-class="color6">color6</span>' +
|
||||
'<span data-class="color7">color7</span>' +
|
||||
'</span>' +
|
||||
'</span>'
|
||||
: '') +
|
||||
'</span>'
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
// Target.
|
||||
switch (options.target) {
|
||||
|
||||
case 'previous':
|
||||
$this.prev().find('.demo-controls').replaceWith($controls);
|
||||
break;
|
||||
|
||||
default:
|
||||
$this.find('.demo-controls').replaceWith($controls);
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
// Styles.
|
||||
if (styles) {
|
||||
|
||||
$styleProperty = $controls.find('.property[data-name="style"]');
|
||||
$stylePropertyClasses = $styleProperty.children('.classes');
|
||||
|
||||
for (i in styles) {
|
||||
|
||||
current = false;
|
||||
count = Object.keys(styles[i]).length;
|
||||
n = 1;
|
||||
|
||||
// Add to style property.
|
||||
$x = $('<span data-class="' + i + '">, ' + i + '</span>')
|
||||
.appendTo($stylePropertyClasses);
|
||||
|
||||
if ($this.hasClass(i)) {
|
||||
|
||||
$x.addClass('active');
|
||||
current = true;
|
||||
|
||||
}
|
||||
|
||||
// Step through properties.
|
||||
for (j in styles[i]) {
|
||||
|
||||
$x = $(
|
||||
'<span class="property" data-name="' + j + '" data-requires="' + i + '">' +
|
||||
(n == count ? '<span>and </span>' : '') +
|
||||
'<a href="#" class="title">' + j + '</a>' +
|
||||
'<span class="classes">' +
|
||||
'</span>' + (n < count ? ', ' : '') +
|
||||
'</span>'
|
||||
).appendTo($controls);
|
||||
|
||||
$y = $x.children('.classes');
|
||||
|
||||
if (current)
|
||||
$x.addClass('active');
|
||||
|
||||
for (k in styles[i][j]) {
|
||||
|
||||
$z = $('<span data-class="' + k + '">, ' + styles[i][j][k].replace('*', '') + '</span>')
|
||||
.appendTo($y);
|
||||
|
||||
if (styles[i][j][k].substr(-1, 1) == '*')
|
||||
$z.addClass('default');
|
||||
|
||||
if (current
|
||||
&& $this.hasClass(k))
|
||||
$z.addClass('active');
|
||||
|
||||
}
|
||||
|
||||
n++;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Events.
|
||||
$controls.on('click', 'a', function(event) {
|
||||
event.preventDefault();
|
||||
});
|
||||
|
||||
$controls.on('click', '.property.active', function(event) {
|
||||
|
||||
var $property = $(this);
|
||||
var $classes = $property.find('.classes > *');
|
||||
var $current = $classes.filter('.active');
|
||||
var $next;
|
||||
|
||||
// Determine next.
|
||||
if ($current.length == 0
|
||||
|| $current.index() == $classes.length - 1)
|
||||
$next = $classes.first();
|
||||
else
|
||||
$next = $current.next();
|
||||
|
||||
// Turn on animate all.
|
||||
$this.addClass('demo-animate-all');
|
||||
|
||||
// Deactivate current.
|
||||
$current.removeClass('active');
|
||||
$this.removeClass($current.data('class'));
|
||||
|
||||
// Activate next.
|
||||
$next.addClass('active');
|
||||
$this.addClass($next.data('class'));
|
||||
|
||||
// Turn off animate all.
|
||||
setTimeout(function() {
|
||||
$this.removeClass('demo-animate-all');
|
||||
}, 500);
|
||||
|
||||
});
|
||||
|
||||
$controls.on('click', '.property[data-name="style"]', function(event) {
|
||||
|
||||
var $property = $(this);
|
||||
var $classes = $property.find('.classes > *');
|
||||
var $current = $classes.filter('.active');
|
||||
var $next;
|
||||
|
||||
// Determine next.
|
||||
if ($current.length == 0
|
||||
|| $current.index() == $classes.length - 1)
|
||||
$next = $classes.first();
|
||||
else
|
||||
$next = $current.next();
|
||||
|
||||
// Turn on animate all.
|
||||
$this.addClass('demo-animate-all');
|
||||
|
||||
// Deactivate current.
|
||||
$current.removeClass('active');
|
||||
$this.removeClass($current.data('class'));
|
||||
|
||||
$controls.find('.property[data-requires="' + $current.data('class') + '"]')
|
||||
.removeClass('active');
|
||||
|
||||
$controls.find('.property[data-requires="' + $current.data('class') + '"] > .classes > .active').each(function() {
|
||||
|
||||
$(this).removeClass('active');
|
||||
|
||||
if ($(this).data('class') != '-')
|
||||
$this.removeClass($(this).data('class'));
|
||||
|
||||
});
|
||||
|
||||
// Activate next.
|
||||
$next.addClass('active');
|
||||
$this.addClass($next.data('class'));
|
||||
|
||||
$controls.find('.property[data-requires="' + $next.data('class') + '"]')
|
||||
.addClass('active');
|
||||
|
||||
$controls.find('.property[data-requires="' + $next.data('class') + '"] > .classes > .default').each(function() {
|
||||
|
||||
$(this).addClass('active');
|
||||
|
||||
if ($(this).data('class') != '-')
|
||||
$this.addClass($(this).data('class'));
|
||||
|
||||
});
|
||||
|
||||
// Turn off animate all.
|
||||
setTimeout(function() {
|
||||
$this.removeClass('demo-animate-all');
|
||||
}, 500);
|
||||
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
// Elements.
|
||||
|
||||
// Wrappers.
|
||||
$('.wrapper').demo_controls(null, {
|
||||
palette: true
|
||||
});
|
||||
|
||||
// Banner.
|
||||
$('.banner').demo_controls({
|
||||
style1: {
|
||||
'size': {
|
||||
'-': 'normal',
|
||||
'fullscreen': 'fullscreen*'
|
||||
},
|
||||
'orientation': {
|
||||
'orient-left': 'left*',
|
||||
'orient-right': 'right'
|
||||
},
|
||||
'content alignment': {
|
||||
'content-align-left': 'left*',
|
||||
'content-align-center': 'center',
|
||||
'content-align-right': 'right'
|
||||
},
|
||||
'image position': {
|
||||
'image-position-left': 'left',
|
||||
'image-position-center': 'center*',
|
||||
'image-position-right': 'right'
|
||||
}
|
||||
},
|
||||
style2: {
|
||||
'size': {
|
||||
'-': 'normal',
|
||||
'fullscreen': 'fullscreen*'
|
||||
},
|
||||
'orientation': {
|
||||
'orient-left': 'left',
|
||||
'orient-center': 'center*',
|
||||
'orient-right': 'right'
|
||||
},
|
||||
'content alignment': {
|
||||
'content-align-left': 'left',
|
||||
'content-align-center': 'center*',
|
||||
'content-align-right': 'right'
|
||||
},
|
||||
'image position': {
|
||||
'image-position-left': 'left',
|
||||
'image-position-center': 'center*',
|
||||
'image-position-right': 'right'
|
||||
}
|
||||
},
|
||||
style3: {
|
||||
'size': {
|
||||
'-': 'normal',
|
||||
'fullscreen': 'fullscreen*'
|
||||
},
|
||||
'orientation': {
|
||||
'orient-left': 'left',
|
||||
'orient-right': 'right*'
|
||||
},
|
||||
'content alignment': {
|
||||
'content-align-left': 'left*',
|
||||
'content-align-center': 'center',
|
||||
'content-align-right': 'right'
|
||||
},
|
||||
'image position': {
|
||||
'image-position-left': 'left',
|
||||
'image-position-center': 'center*',
|
||||
'image-position-right': 'right'
|
||||
}
|
||||
},
|
||||
style4: {
|
||||
'size': {
|
||||
'-': 'normal',
|
||||
'fullscreen': 'fullscreen*'
|
||||
},
|
||||
'phone type': {
|
||||
'iphone': 'iphone*',
|
||||
'android': 'android'
|
||||
},
|
||||
'orientation': {
|
||||
'orient-left': 'left',
|
||||
'orient-right': 'right*'
|
||||
},
|
||||
'content alignment': {
|
||||
'content-align-left': 'left*',
|
||||
'content-align-center': 'center',
|
||||
'content-align-right': 'right'
|
||||
},
|
||||
'image position': {
|
||||
'image-position-left': 'left',
|
||||
'image-position-center': 'center*',
|
||||
'image-position-right': 'right'
|
||||
}
|
||||
},
|
||||
style5: {
|
||||
'size': {
|
||||
'-': 'normal',
|
||||
'fullscreen': 'fullscreen*'
|
||||
},
|
||||
'content alignment': {
|
||||
'content-align-left': 'left',
|
||||
'content-align-center': 'center*',
|
||||
'content-align-right': 'right'
|
||||
},
|
||||
'image position': {
|
||||
'image-position-left': 'left',
|
||||
'image-position-center': 'center*',
|
||||
'image-position-right': 'right'
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// Spotlight.
|
||||
$('.spotlight').demo_controls({
|
||||
style1: {
|
||||
'orientation': {
|
||||
'orient-left': 'left',
|
||||
'orient-right': 'right*'
|
||||
},
|
||||
'content alignment': {
|
||||
'content-align-left': 'left*',
|
||||
'content-align-center': 'center',
|
||||
'content-align-right': 'right'
|
||||
},
|
||||
'image position': {
|
||||
'image-position-left': 'left*',
|
||||
'image-position-center': 'center',
|
||||
'image-position-right': 'right'
|
||||
}
|
||||
},
|
||||
style2: {
|
||||
'orientation': {
|
||||
'orient-left': 'left',
|
||||
'orient-right': 'right*'
|
||||
},
|
||||
'content alignment': {
|
||||
'content-align-left': 'left*',
|
||||
'content-align-center': 'center',
|
||||
'content-align-right': 'right'
|
||||
},
|
||||
'image position': {
|
||||
'image-position-left': 'left',
|
||||
'image-position-center': 'center*',
|
||||
'image-position-right': 'right'
|
||||
}
|
||||
},
|
||||
style3: {
|
||||
'phone type': {
|
||||
'iphone': 'iphone*',
|
||||
'android': 'android'
|
||||
},
|
||||
'orientation': {
|
||||
'orient-left': 'left',
|
||||
'orient-right': 'right*'
|
||||
},
|
||||
'content alignment': {
|
||||
'content-align-left': 'left*',
|
||||
'content-align-center': 'center',
|
||||
'content-align-right': 'right'
|
||||
},
|
||||
'image position': {
|
||||
'image-position-left': 'left',
|
||||
'image-position-center': 'center*',
|
||||
'image-position-right': 'right'
|
||||
}
|
||||
},
|
||||
style4: {
|
||||
'size': {
|
||||
'-size': 'normal',
|
||||
'fullscreen': 'fullscreen*',
|
||||
'halfscreen': 'halfscreen'
|
||||
},
|
||||
'orientation': {
|
||||
'orient-left': 'left*',
|
||||
'orient-center': 'center',
|
||||
'orient-right': 'right'
|
||||
},
|
||||
'content alignment': {
|
||||
'content-align-left': 'left*',
|
||||
'content-align-center': 'center',
|
||||
'content-align-right': 'right'
|
||||
},
|
||||
'image position': {
|
||||
'image-position-left': 'left',
|
||||
'image-position-center': 'center*',
|
||||
'image-position-right': 'right'
|
||||
}
|
||||
},
|
||||
style5: {
|
||||
'size': {
|
||||
'-size': 'normal',
|
||||
'fullscreen': 'fullscreen*',
|
||||
'halfscreen': 'halfscreen'
|
||||
},
|
||||
'orientation': {
|
||||
'orient-left': 'left*',
|
||||
'orient-center': 'center',
|
||||
'orient-right': 'right'
|
||||
},
|
||||
'content alignment': {
|
||||
'content-align-left': 'left*',
|
||||
'content-align-center': 'center',
|
||||
'content-align-right': 'right'
|
||||
},
|
||||
'image position': {
|
||||
'image-position-left': 'left',
|
||||
'image-position-center': 'center*',
|
||||
'image-position-right': 'right'
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
// Gallery.
|
||||
$('.gallery').demo_controls({
|
||||
style1: {
|
||||
'size': {
|
||||
'small': 'small',
|
||||
'medium': 'medium*',
|
||||
'big': 'big'
|
||||
}
|
||||
},
|
||||
style2: {
|
||||
'size': {
|
||||
'small': 'small',
|
||||
'medium': 'medium*',
|
||||
'big': 'big'
|
||||
}
|
||||
},
|
||||
}, {
|
||||
target: 'previous',
|
||||
palette: false
|
||||
});
|
||||
|
||||
// Items.
|
||||
$('.items').demo_controls({
|
||||
style1: {
|
||||
'size': {
|
||||
'small': 'small',
|
||||
'medium': 'medium*',
|
||||
'big': 'big'
|
||||
}
|
||||
},
|
||||
style2: {
|
||||
'size': {
|
||||
'small': 'small',
|
||||
'medium': 'medium*',
|
||||
'big': 'big'
|
||||
}
|
||||
},
|
||||
style3: {
|
||||
'size': {
|
||||
'small': 'small',
|
||||
'medium': 'medium*',
|
||||
'big': 'big'
|
||||
}
|
||||
}
|
||||
}, {
|
||||
target: 'previous',
|
||||
palette: false
|
||||
});
|
||||
|
||||
})(jQuery);
|
2
assets/js/jquery-3.4.1.min.js
vendored
Normal file
2
assets/js/jquery-3.4.1.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
2
assets/js/jquery.min.js
vendored
Normal file
2
assets/js/jquery.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
2
assets/js/jquery.scrollex.min.js
vendored
Normal file
2
assets/js/jquery.scrollex.min.js
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
/* jquery.scrollex v0.2.1 | (c) @ajlkn | github.com/ajlkn/jquery.scrollex | MIT licensed */
|
||||
!function(t){function e(t,e,n){return"string"==typeof t&&("%"==t.slice(-1)?t=parseInt(t.substring(0,t.length-1))/100*e:"vh"==t.slice(-2)?t=parseInt(t.substring(0,t.length-2))/100*n:"px"==t.slice(-2)&&(t=parseInt(t.substring(0,t.length-2)))),t}var n=t(window),i=1,o={};n.on("scroll",function(){var e=n.scrollTop();t.map(o,function(t){window.clearTimeout(t.timeoutId),t.timeoutId=window.setTimeout(function(){t.handler(e)},t.options.delay)})}).on("load",function(){n.trigger("scroll")}),jQuery.fn.scrollex=function(l){var s=t(this);if(0==this.length)return s;if(this.length>1){for(var r=0;r<this.length;r++)t(this[r]).scrollex(l);return s}if(s.data("_scrollexId"))return s;var a,u,h,c,p;switch(a=i++,u=jQuery.extend({top:0,bottom:0,delay:0,mode:"default",enter:null,leave:null,initialize:null,terminate:null,scroll:null},l),u.mode){case"top":h=function(t,e,n,i,o){return t>=i&&o>=t};break;case"bottom":h=function(t,e,n,i,o){return n>=i&&o>=n};break;case"middle":h=function(t,e,n,i,o){return e>=i&&o>=e};break;case"top-only":h=function(t,e,n,i,o){return i>=t&&n>=i};break;case"bottom-only":h=function(t,e,n,i,o){return n>=o&&o>=t};break;default:case"default":h=function(t,e,n,i,o){return n>=i&&o>=t}}return c=function(t){var i,o,l,s,r,a,u=this.state,h=!1,c=this.$element.offset();i=n.height(),o=t+i/2,l=t+i,s=this.$element.outerHeight(),r=c.top+e(this.options.top,s,i),a=c.top+s-e(this.options.bottom,s,i),h=this.test(t,o,l,r,a),h!=u&&(this.state=h,h?this.options.enter&&this.options.enter.apply(this.element):this.options.leave&&this.options.leave.apply(this.element)),this.options.scroll&&this.options.scroll.apply(this.element,[(o-r)/(a-r)])},p={id:a,options:u,test:h,handler:c,state:null,element:this,$element:s,timeoutId:null},o[a]=p,s.data("_scrollexId",p.id),p.options.initialize&&p.options.initialize.apply(this),s},jQuery.fn.unscrollex=function(){var e=t(this);if(0==this.length)return e;if(this.length>1){for(var n=0;n<this.length;n++)t(this[n]).unscrollex();return e}var i,l;return(i=e.data("_scrollexId"))?(l=o[i],window.clearTimeout(l.timeoutId),delete o[i],e.removeData("_scrollexId"),l.options.terminate&&l.options.terminate.apply(this),e):e}}(jQuery);
|
2
assets/js/jquery.scrolly.min.js
vendored
Normal file
2
assets/js/jquery.scrolly.min.js
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
/* jquery.scrolly v1.0.0-dev | (c) @ajlkn | MIT licensed */
|
||||
(function(e){function u(s,o){var u,a,f;if((u=e(s))[t]==0)return n;a=u[i]()[r];switch(o.anchor){case"middle":f=a-(e(window).height()-u.outerHeight())/2;break;default:case r:f=Math.max(a,0)}return typeof o[i]=="function"?f-=o[i]():f-=o[i],f}var t="length",n=null,r="top",i="offset",s="click.scrolly",o=e(window);e.fn.scrolly=function(i){var o,a,f,l,c=e(this);if(this[t]==0)return c;if(this[t]>1){for(o=0;o<this[t];o++)e(this[o]).scrolly(i);return c}l=n,f=c.attr("href");if(f.charAt(0)!="#"||f[t]<2)return c;a=jQuery.extend({anchor:r,easing:"swing",offset:0,parent:e("body,html"),pollOnce:!1,speed:1e3},i),a.pollOnce&&(l=u(f,a)),c.off(s).on(s,function(e){var t=l!==n?l:u(f,a);t!==n&&(e.preventDefault(),a.parent.stop().animate({scrollTop:t},a.speed,a.easing))})}})(jQuery);
|
341
assets/js/main.js
Normal file
341
assets/js/main.js
Normal file
|
@ -0,0 +1,341 @@
|
|||
/*
|
||||
Story by HTML5 UP
|
||||
html5up.net | @ajlkn
|
||||
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
*/
|
||||
|
||||
(function($) {
|
||||
|
||||
var $window = $(window),
|
||||
$body = $('body'),
|
||||
$wrapper = $('#wrapper');
|
||||
|
||||
// Breakpoints.
|
||||
breakpoints({
|
||||
xlarge: [ '1281px', '1680px' ],
|
||||
large: [ '981px', '1280px' ],
|
||||
medium: [ '737px', '980px' ],
|
||||
small: [ '481px', '736px' ],
|
||||
xsmall: [ '361px', '480px' ],
|
||||
xxsmall: [ null, '360px' ]
|
||||
});
|
||||
|
||||
// Play initial animations on page load.
|
||||
$window.on('load', function() {
|
||||
window.setTimeout(function() {
|
||||
$body.removeClass('is-preload');
|
||||
}, 100);
|
||||
});
|
||||
|
||||
// Browser fixes.
|
||||
|
||||
// IE: Flexbox min-height bug.
|
||||
if (browser.name == 'ie')
|
||||
(function() {
|
||||
|
||||
var flexboxFixTimeoutId;
|
||||
|
||||
$window.on('resize.flexbox-fix', function() {
|
||||
|
||||
var $x = $('.fullscreen');
|
||||
|
||||
clearTimeout(flexboxFixTimeoutId);
|
||||
|
||||
flexboxFixTimeoutId = setTimeout(function() {
|
||||
|
||||
if ($x.prop('scrollHeight') > $window.height())
|
||||
$x.css('height', 'auto');
|
||||
else
|
||||
$x.css('height', '100vh');
|
||||
|
||||
}, 250);
|
||||
|
||||
}).triggerHandler('resize.flexbox-fix');
|
||||
|
||||
})();
|
||||
|
||||
// Object fit workaround.
|
||||
if (!browser.canUse('object-fit'))
|
||||
(function() {
|
||||
|
||||
$('.banner .image, .spotlight .image').each(function() {
|
||||
|
||||
var $this = $(this),
|
||||
$img = $this.children('img'),
|
||||
positionClass = $this.parent().attr('class').match(/image-position-([a-z]+)/);
|
||||
|
||||
// Set image.
|
||||
$this
|
||||
.css('background-image', 'url("' + $img.attr('src') + '")')
|
||||
.css('background-repeat', 'no-repeat')
|
||||
.css('background-size', 'cover');
|
||||
|
||||
// Set position.
|
||||
switch (positionClass.length > 1 ? positionClass[1] : '') {
|
||||
|
||||
case 'left':
|
||||
$this.css('background-position', 'left');
|
||||
break;
|
||||
|
||||
case 'right':
|
||||
$this.css('background-position', 'right');
|
||||
break;
|
||||
|
||||
default:
|
||||
case 'center':
|
||||
$this.css('background-position', 'center');
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
// Hide original.
|
||||
$img.css('opacity', '0');
|
||||
|
||||
});
|
||||
|
||||
})();
|
||||
|
||||
// Smooth scroll.
|
||||
$('.smooth-scroll').scrolly();
|
||||
$('.smooth-scroll-middle').scrolly({ anchor: 'middle' });
|
||||
|
||||
// Wrapper.
|
||||
$wrapper.children()
|
||||
.scrollex({
|
||||
top: '30vh',
|
||||
bottom: '30vh',
|
||||
initialize: function() {
|
||||
$(this).addClass('is-inactive');
|
||||
},
|
||||
terminate: function() {
|
||||
$(this).removeClass('is-inactive');
|
||||
},
|
||||
enter: function() {
|
||||
$(this).removeClass('is-inactive');
|
||||
},
|
||||
leave: function() {
|
||||
|
||||
var $this = $(this);
|
||||
|
||||
if ($this.hasClass('onscroll-bidirectional'))
|
||||
$this.addClass('is-inactive');
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
// Items.
|
||||
$('.items')
|
||||
.scrollex({
|
||||
top: '30vh',
|
||||
bottom: '30vh',
|
||||
delay: 50,
|
||||
initialize: function() {
|
||||
$(this).addClass('is-inactive');
|
||||
},
|
||||
terminate: function() {
|
||||
$(this).removeClass('is-inactive');
|
||||
},
|
||||
enter: function() {
|
||||
$(this).removeClass('is-inactive');
|
||||
},
|
||||
leave: function() {
|
||||
|
||||
var $this = $(this);
|
||||
|
||||
if ($this.hasClass('onscroll-bidirectional'))
|
||||
$this.addClass('is-inactive');
|
||||
|
||||
}
|
||||
})
|
||||
.children()
|
||||
.wrapInner('<div class="inner"></div>');
|
||||
|
||||
// Gallery.
|
||||
$('.gallery')
|
||||
.wrapInner('<div class="inner"></div>')
|
||||
.prepend(browser.mobile ? '' : '<div class="forward"></div><div class="backward"></div>')
|
||||
.scrollex({
|
||||
top: '30vh',
|
||||
bottom: '30vh',
|
||||
delay: 50,
|
||||
initialize: function() {
|
||||
$(this).addClass('is-inactive');
|
||||
},
|
||||
terminate: function() {
|
||||
$(this).removeClass('is-inactive');
|
||||
},
|
||||
enter: function() {
|
||||
$(this).removeClass('is-inactive');
|
||||
},
|
||||
leave: function() {
|
||||
|
||||
var $this = $(this);
|
||||
|
||||
if ($this.hasClass('onscroll-bidirectional'))
|
||||
$this.addClass('is-inactive');
|
||||
|
||||
}
|
||||
})
|
||||
.children('.inner')
|
||||
//.css('overflow', 'hidden')
|
||||
.css('overflow-y', browser.mobile ? 'visible' : 'hidden')
|
||||
.css('overflow-x', browser.mobile ? 'scroll' : 'hidden')
|
||||
.scrollLeft(0);
|
||||
|
||||
// Style #1.
|
||||
// ...
|
||||
|
||||
// Style #2.
|
||||
$('.gallery')
|
||||
.on('wheel', '.inner', function(event) {
|
||||
|
||||
var $this = $(this),
|
||||
delta = (event.originalEvent.deltaX * 10);
|
||||
|
||||
// Cap delta.
|
||||
if (delta > 0)
|
||||
delta = Math.min(25, delta);
|
||||
else if (delta < 0)
|
||||
delta = Math.max(-25, delta);
|
||||
|
||||
// Scroll.
|
||||
$this.scrollLeft( $this.scrollLeft() + delta );
|
||||
|
||||
})
|
||||
.on('mouseenter', '.forward, .backward', function(event) {
|
||||
|
||||
var $this = $(this),
|
||||
$inner = $this.siblings('.inner'),
|
||||
direction = ($this.hasClass('forward') ? 1 : -1);
|
||||
|
||||
// Clear move interval.
|
||||
clearInterval(this._gallery_moveIntervalId);
|
||||
|
||||
// Start interval.
|
||||
this._gallery_moveIntervalId = setInterval(function() {
|
||||
$inner.scrollLeft( $inner.scrollLeft() + (5 * direction) );
|
||||
}, 10);
|
||||
|
||||
})
|
||||
.on('mouseleave', '.forward, .backward', function(event) {
|
||||
|
||||
// Clear move interval.
|
||||
clearInterval(this._gallery_moveIntervalId);
|
||||
|
||||
});
|
||||
|
||||
// Lightbox.
|
||||
$('.gallery.lightbox')
|
||||
.on('click', 'a', function(event) {
|
||||
|
||||
var $a = $(this),
|
||||
$gallery = $a.parents('.gallery'),
|
||||
$modal = $gallery.children('.modal'),
|
||||
$modalImg = $modal.find('img'),
|
||||
href = $a.attr('href');
|
||||
|
||||
// Not an image? Bail.
|
||||
if (!href.match(/\.(jpg|gif|png|mp4)$/))
|
||||
return;
|
||||
|
||||
// Prevent default.
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
|
||||
// Locked? Bail.
|
||||
if ($modal[0]._locked)
|
||||
return;
|
||||
|
||||
// Lock.
|
||||
$modal[0]._locked = true;
|
||||
|
||||
// Set src.
|
||||
$modalImg.attr('src', href);
|
||||
|
||||
// Set visible.
|
||||
$modal.addClass('visible');
|
||||
|
||||
// Focus.
|
||||
$modal.focus();
|
||||
|
||||
// Delay.
|
||||
setTimeout(function() {
|
||||
|
||||
// Unlock.
|
||||
$modal[0]._locked = false;
|
||||
|
||||
}, 600);
|
||||
|
||||
})
|
||||
.on('click', '.modal', function(event) {
|
||||
|
||||
var $modal = $(this),
|
||||
$modalImg = $modal.find('img');
|
||||
|
||||
// Locked? Bail.
|
||||
if ($modal[0]._locked)
|
||||
return;
|
||||
|
||||
// Already hidden? Bail.
|
||||
if (!$modal.hasClass('visible'))
|
||||
return;
|
||||
|
||||
// Lock.
|
||||
$modal[0]._locked = true;
|
||||
|
||||
// Clear visible, loaded.
|
||||
$modal
|
||||
.removeClass('loaded')
|
||||
|
||||
// Delay.
|
||||
setTimeout(function() {
|
||||
|
||||
$modal
|
||||
.removeClass('visible')
|
||||
|
||||
setTimeout(function() {
|
||||
|
||||
// Clear src.
|
||||
$modalImg.attr('src', '');
|
||||
|
||||
// Unlock.
|
||||
$modal[0]._locked = false;
|
||||
|
||||
// Focus.
|
||||
$body.focus();
|
||||
|
||||
}, 475);
|
||||
|
||||
}, 125);
|
||||
|
||||
})
|
||||
.on('keypress', '.modal', function(event) {
|
||||
|
||||
var $modal = $(this);
|
||||
|
||||
// Escape? Hide modal.
|
||||
if (event.keyCode == 27)
|
||||
$modal.trigger('click');
|
||||
|
||||
})
|
||||
.prepend('<div class="modal" tabIndex="-1"><div class="inner"><img src="" /></div></div>')
|
||||
.find('img')
|
||||
.on('load', function(event) {
|
||||
|
||||
var $modalImg = $(this),
|
||||
$modal = $modalImg.parents('.modal');
|
||||
|
||||
setTimeout(function() {
|
||||
|
||||
// No longer visible? Bail.
|
||||
if (!$modal.hasClass('visible'))
|
||||
return;
|
||||
|
||||
// Set loaded.
|
||||
$modal.addClass('loaded');
|
||||
|
||||
}, 275);
|
||||
|
||||
});
|
||||
|
||||
})(jQuery);
|
32
assets/js/set.js
Normal file
32
assets/js/set.js
Normal file
|
@ -0,0 +1,32 @@
|
|||
// When the user scrolls the page, execute scrollMenu
|
||||
window.onscroll = function () { scrollMenu() };
|
||||
|
||||
// Get the navbar
|
||||
var navbar = document.getElementById("logo");
|
||||
|
||||
// Get the offset position of the navbar
|
||||
var sticky = navbar.offsetTop;
|
||||
|
||||
|
||||
|
||||
// Add the sticky class to the navbar when you reach its scroll position. Remove "sticky" when you leave the scroll position
|
||||
function scrollMenu() {
|
||||
if (window.pageYOffset >= sticky) {
|
||||
navbar.classList.add("sticky")
|
||||
} else {
|
||||
navbar.classList.remove("sticky")
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// Make a pretty background when menu is open
|
||||
var bodyBluring = document.getElementById("wrapper")
|
||||
|
||||
function blurBody() {
|
||||
bodyBluring.classList.toggle("blurredout");
|
||||
}
|
||||
function removeBlur() {
|
||||
bodyBluring.classList.remove("blurredout")
|
||||
}
|
||||
|
||||
/// request permission to autoplay
|
587
assets/js/util.js
Normal file
587
assets/js/util.js
Normal file
|
@ -0,0 +1,587 @@
|
|||
(function($) {
|
||||
|
||||
/**
|
||||
* Generate an indented list of links from a nav. Meant for use with panel().
|
||||
* @return {jQuery} jQuery object.
|
||||
*/
|
||||
$.fn.navList = function() {
|
||||
|
||||
var $this = $(this);
|
||||
$a = $this.find('a'),
|
||||
b = [];
|
||||
|
||||
$a.each(function() {
|
||||
|
||||
var $this = $(this),
|
||||
indent = Math.max(0, $this.parents('li').length - 1),
|
||||
href = $this.attr('href'),
|
||||
target = $this.attr('target');
|
||||
|
||||
b.push(
|
||||
'<a ' +
|
||||
'class="link depth-' + indent + '"' +
|
||||
( (typeof target !== 'undefined' && target != '') ? ' target="' + target + '"' : '') +
|
||||
( (typeof href !== 'undefined' && href != '') ? ' href="' + href + '"' : '') +
|
||||
'>' +
|
||||
'<span class="indent-' + indent + '"></span>' +
|
||||
$this.text() +
|
||||
'</a>'
|
||||
);
|
||||
|
||||
});
|
||||
|
||||
return b.join('');
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
* Panel-ify an element.
|
||||
* @param {object} userConfig User config.
|
||||
* @return {jQuery} jQuery object.
|
||||
*/
|
||||
$.fn.panel = function(userConfig) {
|
||||
|
||||
// No elements?
|
||||
if (this.length == 0)
|
||||
return $this;
|
||||
|
||||
// Multiple elements?
|
||||
if (this.length > 1) {
|
||||
|
||||
for (var i=0; i < this.length; i++)
|
||||
$(this[i]).panel(userConfig);
|
||||
|
||||
return $this;
|
||||
|
||||
}
|
||||
|
||||
// Vars.
|
||||
var $this = $(this),
|
||||
$body = $('body'),
|
||||
$window = $(window),
|
||||
id = $this.attr('id'),
|
||||
config;
|
||||
|
||||
// Config.
|
||||
config = $.extend({
|
||||
|
||||
// Delay.
|
||||
delay: 0,
|
||||
|
||||
// Hide panel on link click.
|
||||
hideOnClick: false,
|
||||
|
||||
// Hide panel on escape keypress.
|
||||
hideOnEscape: false,
|
||||
|
||||
// Hide panel on swipe.
|
||||
hideOnSwipe: false,
|
||||
|
||||
// Reset scroll position on hide.
|
||||
resetScroll: false,
|
||||
|
||||
// Reset forms on hide.
|
||||
resetForms: false,
|
||||
|
||||
// Side of viewport the panel will appear.
|
||||
side: null,
|
||||
|
||||
// Target element for "class".
|
||||
target: $this,
|
||||
|
||||
// Class to toggle.
|
||||
visibleClass: 'visible'
|
||||
|
||||
}, userConfig);
|
||||
|
||||
// Expand "target" if it's not a jQuery object already.
|
||||
if (typeof config.target != 'jQuery')
|
||||
config.target = $(config.target);
|
||||
|
||||
// Panel.
|
||||
|
||||
// Methods.
|
||||
$this._hide = function(event) {
|
||||
|
||||
// Already hidden? Bail.
|
||||
if (!config.target.hasClass(config.visibleClass))
|
||||
return;
|
||||
|
||||
// If an event was provided, cancel it.
|
||||
if (event) {
|
||||
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
|
||||
}
|
||||
|
||||
// Hide.
|
||||
config.target.removeClass(config.visibleClass);
|
||||
|
||||
// Post-hide stuff.
|
||||
window.setTimeout(function() {
|
||||
|
||||
// Reset scroll position.
|
||||
if (config.resetScroll)
|
||||
$this.scrollTop(0);
|
||||
|
||||
// Reset forms.
|
||||
if (config.resetForms)
|
||||
$this.find('form').each(function() {
|
||||
this.reset();
|
||||
});
|
||||
|
||||
}, config.delay);
|
||||
|
||||
};
|
||||
|
||||
// Vendor fixes.
|
||||
$this
|
||||
.css('-ms-overflow-style', '-ms-autohiding-scrollbar')
|
||||
.css('-webkit-overflow-scrolling', 'touch');
|
||||
|
||||
// Hide on click.
|
||||
if (config.hideOnClick) {
|
||||
|
||||
$this.find('a')
|
||||
.css('-webkit-tap-highlight-color', 'rgba(0,0,0,0)');
|
||||
|
||||
$this
|
||||
.on('click', 'a', function(event) {
|
||||
|
||||
var $a = $(this),
|
||||
href = $a.attr('href'),
|
||||
target = $a.attr('target');
|
||||
|
||||
if (!href || href == '#' || href == '' || href == '#' + id)
|
||||
return;
|
||||
|
||||
// Cancel original event.
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
|
||||
// Hide panel.
|
||||
$this._hide();
|
||||
|
||||
// Redirect to href.
|
||||
window.setTimeout(function() {
|
||||
|
||||
if (target == '_blank')
|
||||
window.open(href);
|
||||
else
|
||||
window.location.href = href;
|
||||
|
||||
}, config.delay + 10);
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
// Event: Touch stuff.
|
||||
$this.on('touchstart', function(event) {
|
||||
|
||||
$this.touchPosX = event.originalEvent.touches[0].pageX;
|
||||
$this.touchPosY = event.originalEvent.touches[0].pageY;
|
||||
|
||||
})
|
||||
|
||||
$this.on('touchmove', function(event) {
|
||||
|
||||
if ($this.touchPosX === null
|
||||
|| $this.touchPosY === null)
|
||||
return;
|
||||
|
||||
var diffX = $this.touchPosX - event.originalEvent.touches[0].pageX,
|
||||
diffY = $this.touchPosY - event.originalEvent.touches[0].pageY,
|
||||
th = $this.outerHeight(),
|
||||
ts = ($this.get(0).scrollHeight - $this.scrollTop());
|
||||
|
||||
// Hide on swipe?
|
||||
if (config.hideOnSwipe) {
|
||||
|
||||
var result = false,
|
||||
boundary = 20,
|
||||
delta = 50;
|
||||
|
||||
switch (config.side) {
|
||||
|
||||
case 'left':
|
||||
result = (diffY < boundary && diffY > (-1 * boundary)) && (diffX > delta);
|
||||
break;
|
||||
|
||||
case 'right':
|
||||
result = (diffY < boundary && diffY > (-1 * boundary)) && (diffX < (-1 * delta));
|
||||
break;
|
||||
|
||||
case 'top':
|
||||
result = (diffX < boundary && diffX > (-1 * boundary)) && (diffY > delta);
|
||||
break;
|
||||
|
||||
case 'bottom':
|
||||
result = (diffX < boundary && diffX > (-1 * boundary)) && (diffY < (-1 * delta));
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
if (result) {
|
||||
|
||||
$this.touchPosX = null;
|
||||
$this.touchPosY = null;
|
||||
$this._hide();
|
||||
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Prevent vertical scrolling past the top or bottom.
|
||||
if (($this.scrollTop() < 0 && diffY < 0)
|
||||
|| (ts > (th - 2) && ts < (th + 2) && diffY > 0)) {
|
||||
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
// Event: Prevent certain events inside the panel from bubbling.
|
||||
$this.on('click touchend touchstart touchmove', function(event) {
|
||||
event.stopPropagation();
|
||||
});
|
||||
|
||||
// Event: Hide panel if a child anchor tag pointing to its ID is clicked.
|
||||
$this.on('click', 'a[href="#' + id + '"]', function(event) {
|
||||
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
|
||||
config.target.removeClass(config.visibleClass);
|
||||
|
||||
});
|
||||
|
||||
// Body.
|
||||
|
||||
// Event: Hide panel on body click/tap.
|
||||
$body.on('click touchend', function(event) {
|
||||
$this._hide(event);
|
||||
});
|
||||
|
||||
// Event: Toggle.
|
||||
$body.on('click', 'a[href="#' + id + '"]', function(event) {
|
||||
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
|
||||
config.target.toggleClass(config.visibleClass);
|
||||
|
||||
});
|
||||
|
||||
// Window.
|
||||
|
||||
// Event: Hide on ESC.
|
||||
if (config.hideOnEscape)
|
||||
$window.on('keydown', function(event) {
|
||||
|
||||
if (event.keyCode == 27)
|
||||
$this._hide(event);
|
||||
|
||||
});
|
||||
|
||||
return $this;
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
* Apply "placeholder" attribute polyfill to one or more forms.
|
||||
* @return {jQuery} jQuery object.
|
||||
*/
|
||||
$.fn.placeholder = function() {
|
||||
|
||||
// Browser natively supports placeholders? Bail.
|
||||
if (typeof (document.createElement('input')).placeholder != 'undefined')
|
||||
return $(this);
|
||||
|
||||
// No elements?
|
||||
if (this.length == 0)
|
||||
return $this;
|
||||
|
||||
// Multiple elements?
|
||||
if (this.length > 1) {
|
||||
|
||||
for (var i=0; i < this.length; i++)
|
||||
$(this[i]).placeholder();
|
||||
|
||||
return $this;
|
||||
|
||||
}
|
||||
|
||||
// Vars.
|
||||
var $this = $(this);
|
||||
|
||||
// Text, TextArea.
|
||||
$this.find('input[type=text],textarea')
|
||||
.each(function() {
|
||||
|
||||
var i = $(this);
|
||||
|
||||
if (i.val() == ''
|
||||
|| i.val() == i.attr('placeholder'))
|
||||
i
|
||||
.addClass('polyfill-placeholder')
|
||||
.val(i.attr('placeholder'));
|
||||
|
||||
})
|
||||
.on('blur', function() {
|
||||
|
||||
var i = $(this);
|
||||
|
||||
if (i.attr('name').match(/-polyfill-field$/))
|
||||
return;
|
||||
|
||||
if (i.val() == '')
|
||||
i
|
||||
.addClass('polyfill-placeholder')
|
||||
.val(i.attr('placeholder'));
|
||||
|
||||
})
|
||||
.on('focus', function() {
|
||||
|
||||
var i = $(this);
|
||||
|
||||
if (i.attr('name').match(/-polyfill-field$/))
|
||||
return;
|
||||
|
||||
if (i.val() == i.attr('placeholder'))
|
||||
i
|
||||
.removeClass('polyfill-placeholder')
|
||||
.val('');
|
||||
|
||||
});
|
||||
|
||||
// Password.
|
||||
$this.find('input[type=password]')
|
||||
.each(function() {
|
||||
|
||||
var i = $(this);
|
||||
var x = $(
|
||||
$('<div>')
|
||||
.append(i.clone())
|
||||
.remove()
|
||||
.html()
|
||||
.replace(/type="password"/i, 'type="text"')
|
||||
.replace(/type=password/i, 'type=text')
|
||||
);
|
||||
|
||||
if (i.attr('id') != '')
|
||||
x.attr('id', i.attr('id') + '-polyfill-field');
|
||||
|
||||
if (i.attr('name') != '')
|
||||
x.attr('name', i.attr('name') + '-polyfill-field');
|
||||
|
||||
x.addClass('polyfill-placeholder')
|
||||
.val(x.attr('placeholder')).insertAfter(i);
|
||||
|
||||
if (i.val() == '')
|
||||
i.hide();
|
||||
else
|
||||
x.hide();
|
||||
|
||||
i
|
||||
.on('blur', function(event) {
|
||||
|
||||
event.preventDefault();
|
||||
|
||||
var x = i.parent().find('input[name=' + i.attr('name') + '-polyfill-field]');
|
||||
|
||||
if (i.val() == '') {
|
||||
|
||||
i.hide();
|
||||
x.show();
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
x
|
||||
.on('focus', function(event) {
|
||||
|
||||
event.preventDefault();
|
||||
|
||||
var i = x.parent().find('input[name=' + x.attr('name').replace('-polyfill-field', '') + ']');
|
||||
|
||||
x.hide();
|
||||
|
||||
i
|
||||
.show()
|
||||
.focus();
|
||||
|
||||
})
|
||||
.on('keypress', function(event) {
|
||||
|
||||
event.preventDefault();
|
||||
x.val('');
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
// Events.
|
||||
$this
|
||||
.on('submit', function() {
|
||||
|
||||
$this.find('input[type=text],input[type=password],textarea')
|
||||
.each(function(event) {
|
||||
|
||||
var i = $(this);
|
||||
|
||||
if (i.attr('name').match(/-polyfill-field$/))
|
||||
i.attr('name', '');
|
||||
|
||||
if (i.val() == i.attr('placeholder')) {
|
||||
|
||||
i.removeClass('polyfill-placeholder');
|
||||
i.val('');
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
})
|
||||
.on('reset', function(event) {
|
||||
|
||||
event.preventDefault();
|
||||
|
||||
$this.find('select')
|
||||
.val($('option:first').val());
|
||||
|
||||
$this.find('input,textarea')
|
||||
.each(function() {
|
||||
|
||||
var i = $(this),
|
||||
x;
|
||||
|
||||
i.removeClass('polyfill-placeholder');
|
||||
|
||||
switch (this.type) {
|
||||
|
||||
case 'submit':
|
||||
case 'reset':
|
||||
break;
|
||||
|
||||
case 'password':
|
||||
i.val(i.attr('defaultValue'));
|
||||
|
||||
x = i.parent().find('input[name=' + i.attr('name') + '-polyfill-field]');
|
||||
|
||||
if (i.val() == '') {
|
||||
i.hide();
|
||||
x.show();
|
||||
}
|
||||
else {
|
||||
i.show();
|
||||
x.hide();
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 'checkbox':
|
||||
case 'radio':
|
||||
i.attr('checked', i.attr('defaultValue'));
|
||||
break;
|
||||
|
||||
case 'text':
|
||||
case 'textarea':
|
||||
i.val(i.attr('defaultValue'));
|
||||
|
||||
if (i.val() == '') {
|
||||
i.addClass('polyfill-placeholder');
|
||||
i.val(i.attr('placeholder'));
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
i.val(i.attr('defaultValue'));
|
||||
break;
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
return $this;
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
* Moves elements to/from the first positions of their respective parents.
|
||||
* @param {jQuery} $elements Elements (or selector) to move.
|
||||
* @param {bool} condition If true, moves elements to the top. Otherwise, moves elements back to their original locations.
|
||||
*/
|
||||
$.prioritize = function($elements, condition) {
|
||||
|
||||
var key = '__prioritize';
|
||||
|
||||
// Expand $elements if it's not already a jQuery object.
|
||||
if (typeof $elements != 'jQuery')
|
||||
$elements = $($elements);
|
||||
|
||||
// Step through elements.
|
||||
$elements.each(function() {
|
||||
|
||||
var $e = $(this), $p,
|
||||
$parent = $e.parent();
|
||||
|
||||
// No parent? Bail.
|
||||
if ($parent.length == 0)
|
||||
return;
|
||||
|
||||
// Not moved? Move it.
|
||||
if (!$e.data(key)) {
|
||||
|
||||
// Condition is false? Bail.
|
||||
if (!condition)
|
||||
return;
|
||||
|
||||
// Get placeholder (which will serve as our point of reference for when this element needs to move back).
|
||||
$p = $e.prev();
|
||||
|
||||
// Couldn't find anything? Means this element's already at the top, so bail.
|
||||
if ($p.length == 0)
|
||||
return;
|
||||
|
||||
// Move element to top of parent.
|
||||
$e.prependTo($parent);
|
||||
|
||||
// Mark element as moved.
|
||||
$e.data(key, $p);
|
||||
|
||||
}
|
||||
|
||||
// Moved already?
|
||||
else {
|
||||
|
||||
// Condition is true? Bail.
|
||||
if (condition)
|
||||
return;
|
||||
|
||||
$p = $e.data(key);
|
||||
|
||||
// Move element back to its original location (using our placeholder).
|
||||
$e.insertAfter($p);
|
||||
|
||||
// Unmark element as moved.
|
||||
$e.removeData(key);
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
})(jQuery);
|
BIN
assets/webfonts/fa-brands-400.eot
Normal file
BIN
assets/webfonts/fa-brands-400.eot
Normal file
Binary file not shown.
3442
assets/webfonts/fa-brands-400.svg
Normal file
3442
assets/webfonts/fa-brands-400.svg
Normal file
File diff suppressed because it is too large
Load diff
After Width: | Height: | Size: 674 KiB |
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue