@ -1,29 +0,0 @@
|
||||
variables: |
||||
GIT_SUBMODULE_STRATEGY: recursive |
||||
|
||||
stages: |
||||
- build |
||||
|
||||
make-pdf: |
||||
stage: build |
||||
image: |
||||
name: astefanutti/decktape:2.11.0 |
||||
entrypoint: [""] |
||||
tags: |
||||
- france |
||||
- sii |
||||
script: |
||||
# |
||||
# 1. We change the size with --size due to a strange rendering bug |
||||
# decribed here: https://github.com/astefanutti/decktape/issues/151 |
||||
# |
||||
# 2. We also specify --chrome-arg=--disable-web-security to autorize |
||||
# Cross origin requests in chrome |
||||
# |
||||
- node /decktape/decktape.js --chrome-path chromium-browser --chrome-arg=--no-sandbox --chrome-arg=--disable-web-security --size='1576x1182' index.html ansible-formation.pdf |
||||
artifacts: |
||||
name: ansible.pdf |
||||
expire_in: 3 month |
||||
paths: |
||||
- ansible-formation.pdf |
||||
|
@ -1,3 +0,0 @@
|
||||
[submodule "revealjs"] |
||||
path = revealjs |
||||
url = ../../template-revealjs-sii-theme.git |
@ -1,118 +0,0 @@
|
||||
# Ansible |
||||
__Formation__ |
||||
|
||||
Christian Tritten • Stéfan Lebosq |
||||
|
||||
|
||||
## Pré-requis |
||||
|
||||
* Virtualbox |
||||
4 VMs téléchargées et importées |
||||
|
||||
* Putty |
||||
https://www.putty.org/ |
||||
|
||||
* Café (!) |
||||
|
||||
|
||||
## Formation à distance |
||||
|
||||
* Laisser votre caméra allumée afin de favoriser |
||||
les échanges |
||||
|
||||
* Vous pouvez intervenir quand vous voulez... |
||||
mais gardez votre micro coupé le reste du temps |
||||
|
||||
* Levez la main en cas de problème |
||||
(debug sur les TPs en aparté) |
||||
|
||||
* Double pause pour éviter la surchauffe ! |
||||
|
||||
|
||||
## Horaires jour |
||||
|
||||
||| |
||||
|:-|-:| |
||||
|démarrage|__9h30__| |
||||
|pause|__~ 10h30 ~ 11h30__| |
||||
|repas|__12h30__| |
||||
|reprise|__14h00__| |
||||
|pause|__~ 15h00 ~ 16h00__| |
||||
|fin|__17h30__| |
||||
|
||||
|
||||
## Badge |
||||
|
||||
Le port du badge SII de façon visible |
||||
est obligatoire dans les locaux. |
||||
|
||||
|
||||
## Tour de table |
||||
|
||||
* Qui êtes-vous ? |
||||
|
||||
* Connaissez-vous déjà Ansible ou des outils similaires ? |
||||
|
||||
* Qu'attendez-vous de la formation ? |
||||
|
||||
* Avez-vous des à priori sur le mode distanciel ? |
||||
|
||||
|
||||
## Programme |
||||
|
||||
|
||||
### 1. Introduction |
||||
* DevOps et Infrastructure as Code |
||||
* Présentation d'Ansible |
||||
|
||||
|
||||
### 2. Installation et Mise en œuvre |
||||
* Installation et configuration |
||||
* Configuration SSH |
||||
* Mise en place de l’inventaire |
||||
|
||||
|
||||
### 3. Les commandes Ad-Hoc |
||||
|
||||
* CLI Ansible |
||||
* Principaux modules Ad-Hoc |
||||
|
||||
|
||||
### 4. Les Playbooks |
||||
* Définition de tâches |
||||
* Utilisation de variables |
||||
* Handlers et Notify |
||||
* Notion de rôles |
||||
|
||||
|
||||
### 5. Les structures de contrôle |
||||
* Les facts |
||||
* Les boucles et conditions |
||||
* Les inclusions |
||||
|
||||
|
||||
### 6. Les Templates |
||||
* Jinja2 |
||||
* Filtres |
||||
* Tests |
||||
|
||||
|
||||
### 7. Notions avancées |
||||
* Ansible Vault |
||||
* Tester ses Playbooks Ansible |
||||
* Développer ses propres modules |
||||
|
||||
|
||||
## C'est parti !!! |
||||
|
||||
[La formation](index.html) |
||||
|
||||
|
||||
## Ressources internes |
||||
<!-- .slide: data-state="cheat-sheet" --> |
||||
|
||||
1. Formation Ansible SII |
||||
<small>[https://gitlab.siinergy.net/sii-ouest/trainings/ansible](https://gitlab.siinergy.net/sii-ouest/trainings/ansible)</small> |
||||
|
||||
2. Mattermost DevOps SII ouest |
||||
<small>[https://mattermost.siinergy.net/ouest/channels/topic-devops](https://mattermost.siinergy.net/ouest/channels/topic-devops)</small> |
@ -1,206 +0,0 @@
|
||||
<!-- .slide: data-state="nologo-slide" style="text-align: center" --> |
||||
# Ansible |
||||
|
||||
 |
||||
|
||||
<small>Antoire Bouhier • Christian Tritten • Alban Berthout</small> |
||||
|
||||
|
||||
## DevOps |
||||
## Infrastructure as Code |
||||
|
||||
|
||||
## DevOps |
||||
|
||||
* Mouvement qui consiste à promouvoir le dialogue et la collaboration entre les équipes _Dev_ et _Ops_. |
||||
|
||||
* Ensemble de bonnes pratiques et de principes |
||||
établis entre : |
||||
|
||||
- les équipes DEV (de développement) |
||||
|
||||
- les équipes OPS (d’exploitations) |
||||
|
||||
* L'objectif de DevOps est de _fluidifier le processus de déploiement_ d'une application. |
||||
|
||||
|
||||
## Les principaux axes du DevOps |
||||
|
||||
1. Améliorer la communication |
||||
<small>Organisation • Collaboration • Partage d'outils communs • Conférences • Réunions</small> |
||||
|
||||
2. Accepter et banaliser les erreurs |
||||
<small>Droit à l'erreur • Responsabilité partagée</small> |
||||
|
||||
3. Mettre en prod le plus souvent possible |
||||
<small>Robustesse • Confiance</small> |
||||
|
||||
4. Automatiser tout ce qui peut l'être |
||||
<small>Tests • Cloud • Déploiements • Configuration • Chaos monkey</small> |
||||
|
||||
5. Récolter des métriques et indicateurs |
||||
dans une optique d'amélioration continue |
||||
|
||||
|
||||
## Le champ d'application du DevOps |
||||
 |
||||
|
||||
|
||||
## Automatisation |
||||
|
||||
Traiter de manière automatique les opérations |
||||
|
||||
* de contrôle, |
||||
|
||||
* de régulation, |
||||
|
||||
* d’administration, |
||||
|
||||
avec peu ou pas d’intervention humaine. |
||||
|
||||
|
||||
## Intérêt de l'automatisation |
||||
|
||||
* Réduire la complexité |
||||
|
||||
* Réduire les possibilités d’erreurs humaine |
||||
|
||||
* Améliorer les performance d’un système |
||||
|
||||
* Augmenter la productivité et l’innovation |
||||
|
||||
* Améliorer la robustesse, l’agilité du déploiement |
||||
|
||||
* Réduire le TTM d’une application |
||||
|
||||
|
||||
## Infrastructure As Code |
||||
|
||||
* L'infrastructure cible peut-être décrite dans des fichiers de description à l'aide d'une syntaxe spécifique. |
||||
|
||||
* Il devient alors possible de gérer et de versionner chaque modification apportée à l'infrastructure. |
||||
|
||||
* Construire, reconstruire, modifier ou dupliquer une infrastructure s'en trouve d'autant simplifié. |
||||
|
||||
* Outils : Terraform, Ansible, Puppet, Docker, Kubernetes... |
||||
|
||||
|
||||
## Les outils de gestion de configuration |
||||
|
||||
* Permettent de contrôler l'ensemble des modifications apportées sur l’infrastructure d’une entreprise. |
||||
|
||||
* Assurent que cette infrastructure est configurée selon les bonnes spécifications. |
||||
|
||||
* Évitent l'apparition de trop grandes variations de configuration entre les serveurs. |
||||
|
||||
|
||||
## Quelques outils |
||||
|
||||
- CFEngine (1993) |
||||
|
||||
- Puppet (2005) |
||||
|
||||
- Chef (2009) |
||||
|
||||
- Ansible (2012) |
||||
|
||||
|
||||
## Ansible |
||||
|
||||
* Logiciel libre (GPL-3.0) |
||||
|
||||
* Initié en 2012 |
||||
|
||||
- Version 1.0 = 2013 |
||||
|
||||
- Version actuelle = 2.10 (2020), 2.9 pour Red Hat subscribers |
||||
|
||||
* Développé en Python |
||||
[https://github.com/ansible/ansible](https://github.com/ansible/ansible) |
||||
|
||||
* Forte communauté d'utilisateurs |
||||
|
||||
|
||||
* Ansible racheté par Red Hat en octobre 2015 |
||||
|
||||
* Red Hat racheté par IBM en octobre 2018 |
||||
|
||||
|
||||
* Ansible est un moteur d'automatisation permettant : |
||||
|
||||
- le provisionnement de logiciel, |
||||
|
||||
- la gestion de la configuration. |
||||
|
||||
|
||||
* Pas d'agent |
||||
|
||||
- utilise _SSH_ sur __Linux/Unix__ |
||||
|
||||
- utilise _WinRM_ sur __Windows__ |
||||
|
||||
* Mode _Push_ |
||||
<small>Peut aussi fonctionner en _Pull_ (sur cibles Linux uniquement)</small> |
||||
|
||||
|
||||
### Cibles Linux |
||||
|
||||
* La plupart des systèmes Linux sont supportés. |
||||
|
||||
* Connexion par SSH. |
||||
|
||||
* Pré-requis sur les machines cibles : |
||||
|
||||
- SSH server |
||||
|
||||
- Python 2.7 ou 3.5 |
||||
|
||||
|
||||
### Cibles Windows |
||||
|
||||
* Desktop : |
||||
Windows 7, 8.1, 10 |
||||
|
||||
* Server : |
||||
Windows Server 2008, 2008 R2, 2012, 2012 R2, 2016, 2019 |
||||
|
||||
* Connexion par WinRM. |
||||
|
||||
* Pré-requis sur les machines cibles : |
||||
- PowerShell 3.0 ou + |
||||
- .NET 4.0 ou + |
||||
- Un WinRM listener doit être créé et activé. |
||||
|
||||
|
||||
### Documentation pour Windows |
||||
|
||||
<small>https://docs.ansible.com/ansible/latest/user_guide/windows.html</small> |
||||
|
||||
### Liste des modules pour Windows |
||||
<small>https://docs.ansible.com/ansible/2.9/modules/list_of_windows_modules.html</small> |
||||
<small>https://docs.ansible.com/ansible/latest/collections/ansible/windows/index.html</small> |
||||
|
||||
|
||||
### Pourquoi utiliser Ansible ? |
||||
|
||||
* Maîtrise des actions exécutées sur les machines cibles. |
||||
|
||||
* Moins d'erreurs qu'avec des actions manuelles. |
||||
|
||||
* Simple à mettre en oeuvre. |
||||
|
||||
* Courbe d'apprentissage rapide. |
||||
|
||||
* Syntaxe déclarative (pas de scripting). |
||||
|
||||
* Libère les Ops des tâches répétitives. |
||||
|
||||
|
||||
### Sans outil de gestion de Configuration |
||||
|
||||
 |
||||
|
||||
|
||||
### Avec Ansible |
||||
|
||||
 |
@ -1,85 +0,0 @@
|
||||
<!-- .slide: data-state="nologo-slide" style="text-align: center" --> |
||||
 |
||||
# Bonnes pratiques |
||||
|
||||
|
||||
## Rester simple ! |
||||
|
||||
|
||||
## Rester clair ! |
||||
|
||||
- Apporter tout le soin nécessaire à la lisibilité du code Ansible. |
||||
|
||||
- Nommer toujours vos Plays et Tasks de manière précise et significative. |
||||
|
||||
- Privilégiez la syntaxe YAML native. |
||||
<small>(Pas de : `name=httpd state=started enabled=yes`)</small> |
||||
|
||||
- Ainsi fait, le code Ansible peut devenir la documentation de référence de votre workflow. |
||||
|
||||
|
||||
## Penser "déclaratif" |
||||
|
||||
- Ansible permet de décrire un _état désiré_. |
||||
|
||||
- Si vous essayez d'écrire du code dans vos playbooks et rôles, vous augmentez le risque d'échec. |
||||
|
||||
- Utilisez prioritairement les Modules Ansible chaque fois que c'est possible. |
||||
|
||||
|
||||
## Utiliser les Roles |
||||
|
||||
- Utilisez les Roles ! |
||||
|
||||
- Ils permettent un très bon découpage du code Ansible. |
||||
|
||||
- Ils permettent de gérer des variables par défaut pour les composants. |
||||
|
||||
|
||||
## Attention aux variables ! |
||||
|
||||
- Ansible permet de déclarer des variables dans une grande variété d'emplacements. Il devient facile de s'y perdre ! |
||||
|
||||
- Évitez de trop disperser les déclarations de variables dans le code Ansible. |
||||
|
||||
- Limitez les déclarations de variables à deux ou trois emplacements clés : |
||||
|
||||
1. variables de groupes |
||||
2. variables de rôles |
||||
|
||||
- Documenter précisément les variables que vous déclarez dans votre code Ansible. |
||||
|
||||
|
||||
## Eviter autant que possible les Modules "Commands" |
||||
|
||||
- Les modules de commandes génériques tels que `shell` ou `command` peuvent conduire à certains dysfonctionnements. En effet les commandes Shell : |
||||
|
||||
- ne sont pas toujours idempotentes. |
||||
|
||||
- s'exécuteront toujours et retourneront l'état `changed` (à moins de spécifier `changed_when`). |
||||
|
||||
- Les modules plus spécifiques sont souvent prévus pour être agnostique du système d'exploitation, ce qui permet d'augmenter la ré-utilisabilité du code. |
||||
|
||||
|
||||
## Eviter le module "lineinfile" |
||||
|
||||
- Utiliser les modules `copy` ou `template` plutôt que `lineinfile` ou `replace` |
||||
|
||||
- Pas besoin de connaître la syntaxe `regex`. |
||||
|
||||
- Permet de contrôler exactement le contenu du fichier final. |
||||
|
||||
|
||||
## Créer des fichiers d’inventaires séparés |
||||
|
||||
- Si vous devez gérer plusieurs environnements, créez des fichiers d'inventaires séparés afin d'éviter les problèmes ! |
||||
|
||||
|
||||
## Les bonnes pratiques selon Ansible |
||||
|
||||
<small>https://docs.ansible.com/ansible/latest/user_guide/playbooks_best_practices.html</small> |
||||
|
||||
|
||||
## Autres bonnes pratiques |
||||
|
||||
<small>https://www.serverraumgeschichten.de/2018/04/ansible-best-practices/</small> |
@ -1,384 +0,0 @@
|
||||
<!-- .slide: data-state="nologo-slide" style="text-align: center" --> |
||||
 |
||||
# Commandes Ad-Hoc |
||||
|
||||
Exécuter des actions simples |
||||
sur un ensemble de machines. |
||||
|
||||
|
||||
## Les commandes Ad-Hoc ? |
||||
|
||||
* Commandes permettant l'exécution simple, rapide et ponctuelle de commandes unitaires. |
||||
|
||||
* Elles peuvent cibler |
||||
|
||||
- une seule machine, |
||||
|
||||
- un groupe de machines spécifique, |
||||
|
||||
- l'ensemble des machines présentes dans l'inventaire. |
||||
|
||||
* Elles se reposent sur les Modules Ansible. |
||||
|
||||
|
||||
## Les Modules Ansible |
||||
|
||||
* Unités de traitement réutilisables. |
||||
|
||||
* Permettent la réalisation d’une tâche précise. |
||||
|
||||
* Écrits en Python. |
||||
|
||||
* Code éprouvé. |
||||
|
||||
* Nombreux modules disponibles. |
||||
|
||||
* Possibilité d'écrire ses propres modules. |
||||
|
||||
|
||||
## Des centaines de modules disponibles ! |
||||
|
||||
<small> |
||||
Cloud Modules • Clustering Modules • Commands Modules • Crypto Modules • |
||||
Database Modules • Files Modules • Identity Modules • Inventory Modules • |
||||
Messaging Modules • Monitoring Modules • Network Modules • Notification |
||||
Modules • Packaging Modules • Source Control Modules • Storage Modules • |
||||
System Modules • Utilities Modules • Web Infrastructure Modules • Windows |
||||
Modules • ... |
||||
|
||||
</small> |
||||
|
||||
<small>https://docs.ansible.com/ansible/2.9/modules/modules_by_category.html</small> |
||||
<small>https://docs.ansible.com/ansible/latest/collections/index.html</small> |
||||
|
||||
|
||||
## Utilisation de modules |
||||
|
||||
`$ ansible <pattern> -m <module> [-a <params>]` |
||||
|
||||
* `<pattern>` peut représenter : |
||||
|
||||
- une machine |
||||
|
||||
- toutes les machines (alias `all`) |
||||
|
||||
- un groupe |
||||
|
||||
- une expression |
||||
|
||||
<!-- .slide: data-state="small-code" --> |
||||
```none |
||||
$ ansible formation:\!web -m command -a "uname -r" |
||||
bdd.formation.sii.fr | SUCCESS | rc=0 >> |
||||
3.10.0-327.28.3.el7.x86_64 |
||||
|
||||
lb.formation.sii.fr | SUCCESS | rc=0 >> |
||||
3.10.0-327.28.3.el7.x86_64 |
||||
``` |
||||
|
||||
|
||||
## Module Command |
||||
|
||||
* À utiliser : |
||||
|
||||
* pour des commandes simples |
||||
* Pour recueillir des informations |
||||
|
||||
* Exemples : |
||||
|
||||
* Éteindre/redémarrer des serveurs |
||||
* Copier des fichiers |
||||
* Créer des users/groups |
||||
* Installer des packages |
||||
|
||||
|
||||
### Exemple |
||||
<!-- .slide: data-state="medium-code" --> |
||||
Création rapide d'un utilisateur |
||||
sur un ensemble de machines |
||||
```none |
||||
$ ansible -m command -a "sudo useradd donald" 'formation' |
||||
10.6.214.70 | SUCCESS | rc=0 >> |
||||
10.6.214.73 | SUCCESS | rc=0 >> |
||||
10.6.214.74 | SUCCESS | rc=0 >> |
||||
10.6.214.72 | SUCCESS | rc=0 >> |
||||
|
||||
$ ansible -m command -a "useradd donald" 'formation' --become |
||||
``` |
||||
|
||||
`--become` permet de passer changer d'utilisateur |
||||
pour jouer la commande. |
||||
|
||||
|
||||
### Exemple |
||||
<!-- .slide: data-state="medium-code" --> |
||||
Affichage des utilisateurs créés |
||||
```none |
||||
$ ansible -m command -a "grep donald /etc/passwd" 'formation' |
||||
10.6.214.74 | SUCCESS | rc=0 >> |
||||
donald:x:1009:1010::/home/donald:/bin/bash |
||||
|
||||
10.6.214.70 | SUCCESS | rc=0 >> |
||||
donald:x:1009:1010::/home/donald:/bin/bash |
||||
|
||||
10.6.214.72 | SUCCESS | rc=0 >> |
||||
donald:x:1009:1010::/home/donald:/bin/bash |
||||
|
||||
10.6.214.73 | SUCCESS | rc=0 >> |
||||
donald:x:1009:1010::/home/donald:/bin/bash |
||||
``` |
||||
|
||||
|
||||
## Documentation des modules |
||||
|
||||
* Recherche "ansible module nom-module" (Google) |
||||
|
||||
* `$ ansible-doc <nom-module>` (CLI) |
||||
|
||||
|
||||
<!-- .slide: data-state="nologo-slide" style="text-align: center" --> |
||||
## Travaux pratiques |
||||
|
||||
 |
||||
|
||||
<small>[TP Ansible : commandes ad-hoc bases](travaux-pratiques/tp-ansible-les-commandes-ad-hoc.html)</small> |
||||
|
||||
|
||||
## Modules de commandes |
||||
|
||||
<!-- .slide: data-state="small-table" --> |
||||
Module (2.9) | Module (2.10) | Description |
||||
- | - | - |
||||
`command` | `ansible.builtin.command` | Executes a command on a remote node |
||||
`expect` | `ansible.builtin.expect` | Executes a command and responds to prompts. |
||||
`psexec` | `community.windows.psexec` | Runs commands on a remote Windows host based on the PsExec model |
||||
`raw` | `ansible.builtin.raw` | Executes a low-down and dirty SSH command |
||||
`script` | `ansible.builtin.script` | Runs a local script on a remote node after transferring it |
||||
`shell` | `ansible.builtin.shell` | Execute commands in nodes. |
||||
`telnet` | `ansible.netcommon.telnet` | Executes a low-down and dirty telnet command |
||||
|
||||
<small>https://docs.ansible.com/ansible/2.9/modules/list_of_commands_modules.html</small> |
||||
|
||||
|
||||
## Modules de gestion de fichiers |
||||
<!-- .slide: data-state="small-table" --> |
||||
Module (2.9) | Module (2.10) | Description |
||||
- | - | - |
||||
`blockinfile` | `ansible.builtin.blockinfile` | Insert/update/remove a text block surrounded by marker lines |
||||
`copy` | `ansible.builtin.copy` | Copies files to remote locations |
||||
`fetch` | `ansible.builtin.fetch` | Fetches a file from remote nodes |
||||
`file` | `ansible.builtin.file` | Sets attributes of files |
||||
`lineinfile` | `ansible.builtin.lineinfile` | Manage lines in text files |
||||
`replace` | `ansible.builtin.replace` | Replace all instances of a particular string in a file using a back-referenced regular expression. |
||||
`stat` | `ansible.builtin.stat` | Retrieve file or file system status |
||||
`template` | `ansible.builtin.template` | Templates a file out to a remote server |
||||
... | ... | ... |
||||
|
||||
<small>https://docs.ansible.com/ansible/2.9/modules/list_of_files_modules.html</small> |
||||
|
||||
|
||||
### Exemple |
||||
|
||||
Modifier les attributs d'un fichier sur les machines |
||||
du groupe formation |
||||
|
||||
<!-- .slide: data-state="small-code" --> |
||||
```none |
||||
$ ansible -m file -a "dest=/etc/foo mode=0660 owner=root group=root" \ |
||||
formation |
||||
|
||||
10.6.214.72 | SUCCESS => { |
||||
"changed": true, |
||||
"gid": 0, |
||||
"group": "root", |
||||
"mode": "0660", |
||||
"owner": "root", |
||||
"path": "/etc/foo", |
||||
"secontext": "system_u:object_r:net_conf_t:s0", |
||||
"size": 158, |
||||
"state": "file", |
||||
"uid": 0 |
||||
... |
||||
} |
||||
``` |
||||
|
||||
|
||||
## Modules de gestion de paquets |
||||
|
||||
<small>https://docs.ansible.com/ansible/2.9/modules/list_of_packaging_modules.html</small> |
||||
|
||||
|
||||
### Paquets Debian / Ubuntu |
||||
<!-- .slide: data-state="small-table" --> |
||||
Module (2.9) | Module (2.10) | Description |
||||
- | - | - |
||||
`apt` | `ansible.builtin.apt` | Manages apt-packages |
||||
`apt_key` | `ansible.builtin.apt_key` | Add or remove an apt key |
||||
`apt_repository` | `ansible.builtin.apt_repository` | Add and remove APT repositories |
||||
`dpkg_selections` | `ansible.builtin.dpkg_selections` | Dpkg package selection selections |
||||
`package` | `ansible.builtin.package` | Generic OS package manager |
||||
`package_facts` | `ansible.builtin.package_facts` | Package information as facts |
||||
|
||||
|
||||
<!-- .slide: data-state="small-table" --> |
||||
### Paquets RedHat / CentOS / Fedora |
||||
Module (2.9) | Module (2.10) | Description |
||||
- | - | - |
||||
`dnf` | `ansible.builtin.dnf` | Manages packages with the dnf package manager |
||||
`yum` | `ansible.builtin.yum` | Manages packages with the yum package manager |
||||
`yum_repository` | `ansible.builtin.yum_repository` |Add or remove YUM repositories |
||||
`redhat_subscription` | `community.general.redhat_subscription` | Manage registration and subscriptions to RHSM using subscription-manager |
||||
`rhn_channel` | `community.general.rhn_channel` | Adds or removes Red Hat software channels |
||||
`rhn_register` | `community.general.rhn_register` | Manage RHN registration using rhnreg_ks |
||||
`rhsm_repository` | `community.general.rhsm_repository` | Manage RHSM repositories using subscription-manager |
||||
`rpm_key` | `ansible.builtin.rpm_key` | Adds or removes a gpg key from the rpm db |
||||
`package` | `ansible.builtin.package` | Generic OS package manager |
||||
`package_facts` | `ansible.builtin.package_facts` | Package information as facts |
||||
|
||||
|
||||
<!-- .slide: data-state="small-table" --> |
||||
### Paquets Suse / OpenSuse |
||||
Module (2.9) | Module (2.10) | Description |
||||
- | - | - |
||||
`zypper` | `community.general.zypper` | Manage packages on SUSE and openSUSE |
||||
`zypper_repository` |`community.general.zypper_repository` | Add and remove Zypper repositories |
||||
`package` | `ansible.builtin.package` | Generic OS package manager |
||||
`package_facts` | `ansible.builtin.package_facts` | Package information as facts |
||||
|
||||
|
||||
<!-- .slide: data-state="small-table" --> |
||||
### Paquets relatifs à des langages de programmation |
||||
Module (2.9) | Module (2.10) | Description |
||||
- | - | - |
||||
`cpanm` | `community.general.cpanm` | Manages Perl library dependencies. |
||||
`gem` | `community.general.gem` | Manage Ruby gems |
||||
`npm` | `community.general.npm` | Manage node.js packages with npm |
||||
`pip` |`ansible.builtin.pip` | Manages Python library dependencies |
||||
... | ... | ... |
||||
|
||||
|
||||
### Exemple |
||||
Vérification de la présence d'un paquet |
||||
<!-- .slide: data-state="small-code" --> |
||||
```none |
||||
$ ansible -m yum -a "name=vim state=present" 'formation' |
||||
10.6.214.70 | SUCCESS => { |
||||
"changed": true, |
||||
"rc": 0, |
||||
"results": [ |
||||
... |
||||
Installing : |
||||
2:vim-filesystem-7.4.160-1.el7_3.1.x86_64 |
||||
2:vim-common-7.4.160-1.el7_3.1.x86_64 |
||||
gpm-libs-1.20.7-5.el7.x86_64 |
||||
2:vim-enhanced-7.4.160-1.el7_3.1.x86_64 |
||||
|
||||
Installed: |
||||
vim-enhanced.x86_64 2:7.4.160-1.el7_3.1 |
||||
Dependency Installed: |
||||
gpm-libs.x86_64 0:1.20.7-5.el7 |
||||
vim-common.x86_64 2:7.4.160-1.el7_3.1 |
||||
vim-filesystem.x86_64 2:7.4.160-1.el7_3.1 |
||||
|
||||
Complete!" |
||||
] |
||||
} |
||||
``` |
||||
|
||||
|
||||
## Modules de gestion de code |
||||
* git |
||||
* subversion |
||||
* hg |
||||
|
||||
Ces modules permettent de cloner des dépôts de code. |
||||
|
||||
<small>https://docs.ansible.com/ansible/2.9/modules/list_of_source_control_modules.html</small> |
||||
|
||||
|
||||
|
||||
## Modules de gestion du système |
||||
|
||||
<small>https://docs.ansible.com/ansible/2.9/modules/list_of_system_modules.html</small> |
||||
|
||||
|
||||
<!-- .slide: data-state="small-table" --> |
||||
### Utilisateurs et groupes |
||||
Module (2.9) | Module (2.10) | Description |
||||
- | - | - |
||||
`user` | `ansible.builtin.user` | Manage user accounts |
||||
`group` | `ansible.builtin.group` | Add or remove groups |
||||
|
||||
|
||||
<!-- .slide: data-state="small-table" --> |
||||
### Stockage |
||||
Module (2.9) | Module (2.10) | Description |
||||
- | - | - |
||||
`parted` | `community.general.parted` | Configure block device partitions |
||||
`lvg` | `community.general.lvg` | Configure LVM volume groups |
||||
`lvol` | `community.general.lvol` | Configure LVM logical volumes |
||||
`filesystem` | `community.general.filesystem` | Makes a filesystem |
||||
|
||||
|
||||
<!-- .slide: data-state="small-table" --> |
||||
### Services |
||||
Module (2.9) | Module (2.10) | Description |
||||
- | - | - |
||||
`service` | `ansible.builtin.service` | Manage services |
||||
`service_facts` | `ansible.builtin.service_facts` | Return service state information as fact data |
||||
`systemd` | `ansible.builtin.systemd` | Manage services |
||||
`sysvinit` | `ansible.builtin.sysvinit` | Manage SysV services |
||||
|
||||
|
||||
<!-- .slide: data-state="small-table" --> |
||||
### Réseau |
||||
Module (2.9) | Module (2.10) | Description |
||||
- | - | - |
||||
`ping` | `ansible.builtin.ping` | Try to connect to host, verify a usable python and return pong on success |
||||
`hostname` | `ansible.builtin.hostname` | Manage hostname |
||||
`firewalld` | `ansible.posix.firewalld` | Manage arbitrary ports/services with firewalld |
||||
`iptables` | `ansible.builtin.iptables` | Modify the systems iptables |
||||
|
||||
|
||||
<!-- .slide: data-state="small-table" --> |
||||
### Configuration SSH |
||||
Module (2.9) | Module (2.10) | Description |
||||
- | - | - |
||||
`authorized_key` | `ansible.posix.authorized_key` | Adds or removes an SSH authorized key |
||||
`known_hosts` | `ansible.builtin.known_hosts` | Add or remove a host from the known_hosts file |
||||
|
||||
|
||||
### Divers |
||||
<!-- .slide: data-state="small-table" --> |
||||
Module (2.9) | Module (2.10) | Description |
||||
- | - | - |
||||
`cron` | `ansible.builtin.cron` | Manage cron.d and crontab entries |
||||
`reboot` | `ansible.builtin.reboot` | Reboot a machine |
||||
`setup` | `ansible.builtin.setup` | Gathers facts about remote hosts |
||||
`timezone` | `community.general.timezone` | Configure timezone setting |
||||
|
||||
|
||||
### Exemple |
||||
<!-- .slide: data-state="small-code" --> |
||||
Récupération des _facts_ de machines distantes |
||||
```none |
||||
$ ansible -m setup 'formation' |
||||
10.6.214.70 | SUCCESS => { |
||||
"ansible_facts": { |
||||
"ansible_all_ipv4_addresses": [ |
||||
"10.6.214.70" |
||||
], |
||||
"ansible_all_ipv6_addresses": [ |
||||
"fe80::250:56ff:fe9d:1ae5" |
||||
], |
||||
"ansible_architecture": "x86_64", |
||||
"ansible_bios_date": "09/17/2015", |
||||
"ansible_bios_version": "6.00", |
||||
"ansible_cmdline": { |
||||
"BOOT_IMAGE": "/vmlinuz-3.10.0-327.28.3.el7.x86_64", |
||||
"LANG": "fr_FR.UTF-8", |
||||
"crashkernel": "auto", |
||||
"quiet": true, |
||||
"rd.lvm.lv": "rootvg/slashlv", |
||||
"rhgb": true, |
||||
``` |
@ -1,578 +0,0 @@
|
||||
<!-- .slide: data-state="nologo-slide" style="text-align: center" --> |
||||
 |
||||
# Playbooks Ansible |
||||
|
||||
Jouer et rejouer facilement un jeu de commandes prédéfini sur un ensemble de machines. |
||||
|
||||
|
||||
 |
||||
|
||||
|
||||
## Format du Playbook |
||||
|
||||
* Il se présente sous la forme d'un simple fichier texte au format `yaml`. |
||||
|
||||
* Il peut donc être facilement versionné dans un outil de gestion de version. |
||||
|
||||
|
||||
### yaml |
||||
|
||||
* Format ouvert de représentation de données. |
||||
|
||||
* Acronyme récursif de _YAML Ain't Markup Language_. |
||||
|
||||
* Permet de représenter des données complexes tout en conservant une excellente lisibilité. |
||||
|
||||
* Utilisation en forte progression ces dernières années. |
||||
<small>Ansible, GitLab, Docker Compose, Kubernetes manifests, etc...</small> |
||||
|
||||
* Site officiel : https://yaml.org/ |
||||
|
||||
|
||||
### YAML basics |
||||
|
||||
https://fr.wikipedia.org/wiki/YAML |
||||
|
||||
* _attention_ ! l'indentation se fait avec un ou plusieurs espaces, jamais avec des tabulations ! |
||||
|
||||
* Les commentaires sont signalés par le signe dièse `#` et se prolongent sur toute la ligne. |
||||
|
||||
* Les éléments de listes sont dénotés par le tiret `-`, suivi d'une espace, à raison d'un élément par ligne. |
||||
|
||||
* Les tableaux sont de la forme `clé: valeur`, à raison d'un couple par ligne. |
||||
|
||||
|
||||
### YAML basics |
||||
|
||||
https://fr.wikipedia.org/wiki/YAML |
||||
|
||||
* Les chaînes de caractères peuvent être entourées de guillemets doubles `"`, ou simples `'`, sachant qu'un guillemet s'échappe avec un antislash `\`, alors qu'une apostrophe s'échappe avec une autre apostrophe. |
||||
|
||||
* Les chaînes de caractères peuvent de plus être représentées par un bloc indenté avec des modificateurs facultatifs pour conserver `|` ou éliminer `>` les retours à la ligne. |
||||
|
||||
* Plusieurs documents rassemblés dans un seul fichier sont séparés par trois traits d'union `---`. |
||||
|
||||
|
||||
### YAML basics |
||||
|
||||
https://fr.wikipedia.org/wiki/YAML |
||||
|
||||
<!-- .slide: data-state="medium-code" --> |
||||
``` |
||||
--- |
||||
receipt: Oz-Ware Purchase Invoice |
||||
date: 2012-08-06 |
||||
customer: |
||||
given: Dorothy |
||||
family: Gale |
||||
|
||||
items: |
||||
- part_no: A4786 |
||||
descrip: Water Bucket (Filled) |
||||
price: 1.47 |
||||
quantity: 4 |
||||
|
||||
- part_no: E1628 |
||||
descrip: High Heeled "Ruby" Slippers |
||||
size: 8 |
||||
price: 100.27 |
||||
quantity: 1 |
||||
|
||||
bill-to: &id001 |
||||
street: | |
||||
123 Tornado Alley |
||||
Suite 16 |
||||
city: East Centerville |
||||
state: KS |
||||
|
||||
ship-to: *id001 |
||||
|
||||
specialDelivery: > |
||||
Follow the Yellow Brick |
||||
Road to the Emerald City. |
||||
Pay no attention to the |
||||
man behind the curtain. |
||||
... |
||||
``` |
||||
|
||||
|
||||
### yaml - Définition d’une collection (-) |
||||
<!-- .slide: data-state="medium-code" --> |
||||
|
||||
```yaml |
||||
# Une liste de fruits |
||||
fruits: |
||||
- pomme |
||||
- orange |
||||
- framboise |
||||
- mangue |
||||
``` |
||||
|
||||
Forme abrégée : |
||||
```yaml |
||||
# Une liste de fruits |
||||
fruits: ['pomme', 'orange', 'framboise', 'mangue'] |
||||
``` |
||||
|
||||
|
||||
### Définition d’un dictionnaire (key: value) |
||||
<!-- .slide: data-state="medium-code" --> |
||||
|
||||
```yaml |
||||
# Un utilisateur |
||||
martin: |
||||
name: Martin Dupond |
||||
job: developer |
||||
skill: python |
||||
``` |
||||
|
||||
Forme abrégée : |
||||
```yaml |
||||
# Un utilisateur |
||||
martin: { name: Martin Dupond, job: developer, skill: python } |
||||
``` |
||||
|
||||
|
||||
## Tasks |
||||
|
||||
* Les commandes d'un Playbook sont découpées en instructions unitaires appelées _tâches_ (tasks). |
||||
|
||||
* Chaque tâche exécute un module Ansible avec des paramètres spécifiques. |
||||
|
||||
* Format d'une tâche : |
||||
|
||||
```none |
||||
- name: Description de la tâche |
||||
<nom-du-module>: |
||||
<paramètre-1>: <valeur-1> |
||||
<paramètre-2>: <valeur-2> |
||||
<paramètre-3>: <valeur-3> |
||||
``` |
||||
|
||||
|
||||
### Liste de tâches |
||||
|
||||
* Un playbook peut décrire une liste de plusieurs tâches. |
||||
|
||||
* Les tâches seront exécutées dans l'ordre d'apparition et de façon séquentielle sur chacune des machines cibles. |
||||
|
||||
```none |
||||
tasks: <----------------------------- liste de tâche |
||||
|
||||
- name: Ma tâche 1 <--------------- tâche 1 |
||||
<nom-du-module>: |
||||
<paramètre-1>: <valeur-1> |
||||
<paramètre-2>: <valeur-2> |
||||
<paramètre-3>: <valeur-3> |
||||
|
||||
- name: Ma tâche 2 <--------------- tâche 2 |
||||
<nom-du-module>: |
||||
<paramètre-1>: <valeur-1> |
||||
<paramètre-2>: <valeur-2> |
||||
``` |
||||
|
||||
|
||||
### Exemple réel |
||||
<!-- .slide: data-state="medium-code" --> |
||||
```yaml |
||||
- hosts: web # exécution d'un 'Play' sur le groupe 'web' |
||||
tasks: |
||||
- name: Installation of Apache Package # tâche 1 |
||||
yum: |
||||
name: httpd |
||||
state: present |
||||
update_cache: yes |
||||
|
||||
- name: Ensure Apache is running (and enabled at boot) # tâche 2 |
||||
service: name=httpd state=started enabled=yes |
||||
``` |
||||
|
||||
* Ici on mixe les deux types de syntaxes (normale et abrégée). |
||||
* __Les bonnes pratiques préconisent l'utilisation de la syntaxe normale.__ |
||||
|
||||
|
||||
### Exemple réel |
||||
avec syntaxe normale |
||||
<!-- .slide: data-state="medium-code" --> |
||||
```yaml |
||||
- hosts: web |
||||
tasks: |
||||
- name: Installation of Apache Package |
||||
yum: |
||||
name: httpd |
||||
state: present |
||||
update_cache: yes |
||||
|
||||
- name: Ensure Apache is running (and enabled at boot) |
||||
service: |
||||
name: httpd |
||||
state: started |
||||
enabled: yes |
||||
``` |
||||
|
||||
|
||||
### Notion de Play |
||||
|
||||
<!-- .slide: data-state="medium-code" --> |
||||
```yaml |
||||
--- |
||||
- hosts: webservers # Play 1 sur le groupe webservers |
||||
tasks: |
||||
- name: My task |
||||
... |
||||
|
||||
- hosts: databases # Play 2 sur le groupe databases |
||||
tasks: |
||||
- name: My task... |
||||
... |
||||
``` |
||||
|
||||
* Chaque Play contient sa propre liste de tâches et cible un ensemble spécifique de machines. |
||||
|
||||
|
||||
## Lancer un playbook |
||||
|
||||
<small>`$ ansible-playbook <fichier-playbook> -i <fichier-inventaire>`</small> |
||||
|
||||
<!-- .slide: data-state="small-code" --> |
||||
```none |
||||
$ ansible-playbook playbook.yaml -i ./hosts |
||||
|
||||
PLAY [web] ******************************************************************* |
||||
|
||||
TASK [setup] ***************************************************************** |
||||
ok: [web1.formation.sii.fr] |
||||
ok: [web2.formation.sii.fr] |
||||
|
||||
TASK [Installation du package Apache] **************************************** |
||||
changed: [web2.formation.sii.fr] |
||||
changed: [web1.formation.sii.fr] |
||||
|
||||
TASK [Ensure Apache is running (and enable it at boot)] ********************** |
||||
changed: [web1.formation.sii.fr] |
||||
changed: [web2.formation.sii.fr] |
||||
|
||||
PLAY RECAP ******************************************************************* |
||||
web1.formation.sii.fr : ok=3 changed=2 unreachable=0 failed=0 |
||||
web2.formation.sii.fr : ok=3 changed=2 unreachable=0 failed=0 |
||||
``` |
||||
<small> |
||||
* Notre Playbook comportait 2 tâches seulement, nous en voyons 3 ! |
||||
|
||||
* Ansible a automatiquement ajouté à l'exécution une tâche nommée _setup_ dont l'objectif est de récupérer les _facts_ des machines cibles. |
||||
<small> |
||||
|
||||
|
||||
## Récapitulatif du Playbook |
||||
|
||||
<!-- .slide: data-state="small-code" --> |
||||
```none |
||||
PLAY RECAP ******************************************************************* |
||||
web1.formation.sii.fr : ok=3 changed=2 unreachable=0 failed=0 |
||||
web2.formation.sii.fr : ok=3 changed=2 unreachable=0 failed=0 |
||||
``` |
||||
|
||||
* Sur les 2 machines cibles : |
||||
|
||||
- `ok` : 3 tâches ont été exécutées avec succès. |
||||
- `changed` : 2 tâches ont modifié l'état du système. |
||||
- `unreachable` : Toutes les machines étaient joignables. |
||||
- `failed` : Aucune tâche n'a échoué. |
||||
|
||||
|
||||
## Relancer un playbook |
||||
|
||||
<!-- .slide: data-state="small-code" --> |
||||
```none |
||||
$ ansible-playbook playbook.yaml -i ./hosts --become |
||||
|
||||
PLAY [web] ******************************************************************* |
||||
|
||||
TASK [setup] ***************************************************************** |
||||
ok: [web1.formation.sii.fr] |
||||
ok: [web2.formation.sii.fr] |
||||
|
||||
TASK [Installation du package Apache] **************************************** |
||||
ok: [web1.formation.sii.fr] |
||||
ok: [web2.formation.sii.fr] |
||||
|
||||
TASK [Ensure Apache is running (and enable it at boot)] ********************** |
||||
ok: [web1.formation.sii.fr] |
||||
ok: [web2.formation.sii.fr] |
||||
|
||||
PLAY RECAP ******************************************************************* |
||||
web1.formation.sii.fr : ok=3 changed=0 unreachable=0 failed=0 |
||||
web2.formation.sii.fr : ok=3 changed=0 unreachable=0 failed=0 |
||||
``` |
||||
|
||||
|
||||
## Première exécution |
||||
|
||||
<!-- .slide: data-state="small-code" --> |
||||
```none |
||||
PLAY RECAP ******************************************************************* |
||||
web1.formation.sii.fr : ok=3 changed=2 unreachable=0 failed=0 |
||||
web2.formation.sii.fr : ok=3 changed=2 unreachable=0 failed=0 |
||||
``` |
||||
|
||||
## Seconde exécution |
||||
|
||||
```none |
||||
PLAY RECAP ******************************************************************* |
||||
web1.formation.sii.fr : ok=3 changed=0 unreachable=0 failed=0 |
||||
web2.formation.sii.fr : ok=3 changed=0 unreachable=0 failed=0 |
||||
``` |
||||
|
||||
|
||||
## Ordre d'exécution |
||||
|
||||
* Il est possible de contrôler l'ordre dans lequel les machines cibles sont adressées. |
||||
|
||||
* L'ordre par défaut est l'ordre d'apparition dans l'inventaire. |
||||
|
||||
```yaml |
||||
- hosts: all |
||||
order: sorted # l'ordre est défini ici |
||||
gather_facts: False |
||||
tasks: |
||||
- debug: |
||||
var: inventory_hostname |
||||
``` |
||||
|
||||
|
||||
Ordre | Description |
||||
- | - |
||||
`inventory` | Ordre d'apparition dans l'inventaire. C'est le choix par défaut. |
||||
`reverse_inventory` | Ordre inverse d'apparition dans l'inventaire. |
||||
`sorted` | Ordre alphabétique des noms de machines. |
||||
`reverse_sorted` | Ordre alphabétique inverse des noms de machines. |
||||
`shuffle` | Ordre aléatoire. |
||||
|
||||
|
||||
## Démarrer l'exécution à un endroit précis |
||||
|
||||
`$ ansible-playbook playbook.yaml --start-at-task="my task"` |
||||
|
||||
Cette commande démarre l'exécution du playbook à partir de la tâche nommée `my task`. |
||||
|
||||
<small>https://docs.ansible.com/ansible/latest/user_guide/playbooks_startnstep.html</small> |
||||
|
||||
|
||||
## Ignorer le code de retour d'une commande |
||||
|
||||
* Les modules _command_ et _shell_ sont sensibles au code de retour des commandes. |
||||
|
||||
* Pour ignorer les erreurs sur une commande qui renvoie un code > 0 on peut utiliser `ignore_errors`. |
||||
|
||||
* Ou, utiliser `failed_when`. |
||||
|
||||
* De même, `changed_when` peut être utilisé. |
||||
|
||||
```yaml |
||||
tasks: |
||||
- name: run this command and ignore the result |
||||
shell: /usr/bin/somecommand |
||||
ignore_errors: True |
||||
``` |
||||
|
||||
|
||||
## Déclaration de variables |
||||
|
||||
```yaml |
||||
- hosts: web |
||||
vars: |
||||
- app_directory: /var/www/html |
||||
- app_user: apache |
||||
- app_group: apache |
||||
|
||||
tasks: |
||||
- name: Modify permission on {{ app_directory }} |
||||
file: |
||||
dest: '{{ app_directory }}' |
||||
mode: 0755 |
||||
owner: '{{ app_user }}' |
||||
group: '{{ app_group }}' |
||||
recurse: yes |
||||
``` |
||||
|
||||
Les variables sont déclarées dans _vars_ |
||||
et résolues avec `{{ }}`. |
||||
|
||||
|
||||
<!-- .slide: data-state="small-code" --> |
||||
```none |
||||
$ ansible-playbook playbook.yaml -i ./hosts |
||||
|
||||
PLAY [web] **************************************************************** |
||||
|
||||
TASK [setup] ************************************************************** |
||||
ok: [web1.formation.sii.fr] |
||||
ok: [web2.formation.sii.fr] |
||||
|
||||
TASK [Modify permission of directory /var/www/html] *********************** |
||||
changed: [web1.formation.sii.fr] |
||||
changed: [web2.formation.sii.fr] |
||||
|
||||
PLAY RECAP **************************************************************** |
||||
web1.formation.sii.fr : ok=2 changed=1 unreachable=0 failed=0 |
||||
web2.formation.sii.fr : ok=2 changed=1 unreachable=0 failed=0 |
||||
``` |
||||
|
||||
|
||||
## Les _handlers_ et les _notify_ |
||||
|
||||
<!-- .slide: data-state="medium-code" --> |
||||
```yaml |
||||
- hosts: web |
||||
vars: |
||||
- apache_listen_port: 8080 |
||||
|
||||
tasks: |
||||
- name: Modify Apache configuration |
||||
lineinfile: |
||||
dest: /etc/httpd/conf/httpd.conf |
||||
regexp: '^Listen ' |
||||
line: 'Listen {{ apache_listen_port }}' |
||||
notify: Reload Apache # Signale que la configuration |
||||
# d'Apache doit être rechargée |
||||
handlers: |
||||
- name: Reload Apache # Recharge la configuration |
||||
service: |
||||
name: httpd |
||||
state: reloaded |
||||
``` |
||||
|
||||
|
||||
<!-- .slide: data-state="small-code" --> |
||||
```none |
||||
$ ansible-playbook playbook.yaml -i ./hosts |
||||
|
||||
PLAY [web] ******************************************************************* |
||||
|
||||
TASK [setup] ***************************************************************** |
||||
ok: [web1.formation.sii.fr] |
||||
ok: [web2.formation.sii.fr] |
||||
|
||||
TASK [Modify Apache configuration] ******************************************* |
||||
changed: [web1.formation.sii.fr] |
||||
changed: [web2.formation.sii.fr] |
||||
|
||||
RUNNING HANDLER [Reload Apache] ********************************************* |
||||
changed: [web1.formation.sii.fr] |
||||
changed: [web2.formation.sii.fr] |
||||
|
||||
PLAY RECAP ******************************************************************* |
||||
web1.formation.sii.fr : ok=3 changed=2 unreachable=0 failed=0 |
||||
web2.formation.sii.fr : ok=3 changed=2 unreachable=0 failed=0 |
||||
``` |
||||
|
||||
|
||||
## Idempotence |
||||
|
||||
* L'idempotence signifie qu'une opération a le même effet qu'on l'applique une ou plusieurs fois. |
||||
|
||||
* Les commandes d'un Playbook doivent être écrites de manière à produire le même résultat quel que soit le nombre de fois où elles sont exécutées sur une même cible. |
||||
|
||||
|
||||
<!-- .slide: data-state="nologo-slide" style="text-align: center" --> |
||||
## Travaux pratiques |
||||
|
||||
 |
||||
|
||||
<small>[TP Ansible : playbooks](travaux-pratiques/tp-ansible-playbooks.html)</small> |
||||
|
||||
|
||||
## Variables sur la ligne de commande |
||||
|
||||
Il est possible d'initialiser des variables directement sur la ligne de commande avec l'option `--extra-vars` (ou `-e`). |
||||
|
||||
|
||||
* Ces variables peuvent être définies sous la forme : |
||||
|
||||
- chaîne de caractères |
||||
|
||||
`$ ansible-playbook playbook.yaml --extra-vars "my_var_1=foo my_var_2=bar"` |
||||
|
||||
- json |
||||
|
||||
`$ ansible-playbook playbook.yaml --extra-vars '{"my_var_1":"foo","my_var_2":"bar"}'` |
||||
|
||||
`$ ansible-playbook playbook.yaml --extra-vars '{"my_var":"foo","my_list":["foo","bar"]}'` |
||||
|
||||
|
||||
* Utilisez le fomat _json_ si vous voulez passer autre chose que des _strings_ : |
||||
|
||||
- booleans |
||||
- integers |
||||
- floats |
||||
- lists |
||||
- ... |
||||
|
||||
|
||||
## Découper un Playbook |
||||
|
||||
* Un Playbook peut se présenter sous la forme d'un fichier unique. |
||||
|
||||
* Toutefois il est possible de le découper en plusieurs fichiers séparés afin de mieux organiser et favoriser la ré-utilisation de certaines parties. |
||||
|
||||
* Il existe plusieurs manières de découper un Playbook : |
||||
les _includes_, les _imports_, et les _roles_. |
||||
|
||||
<small>https://docs.ansible.com/ansible/latest/user_guide/playbooks_reuse.html</small> |
||||
|
||||
|
||||
### Includes et Imports |
||||
|
||||
* Disponibles à partir de Ansible v2.4. |
||||
|
||||
* Permettent le découpage des tâches d'un gros Playbook en fichiers plus petits. |
||||
|
||||
* Ces fichiers peuvent ensuite être appelés : |
||||
|
||||
- depuis un ou plusieurs Playbooks |
||||
|
||||
- plusieurs fois dans un même Playbook. |
||||
|
||||
|
||||
### Import dynamique vs statique |
||||
|
||||
* Les commandes `import` permettent |
||||
un chargement statique. |
||||
<small>(import_playbook, import_tasks, etc.)</small> |
||||
|
||||
* Les commandes `include` permettent |
||||
un chargement dynamique. |
||||
<small>(include_tasks, include_role, etc.)</small> |
||||
|
||||
|
||||
### Statique vs Dynamique |
||||
|
||||
* _Statique_ |
||||
Ansible traite les imports statique au moment de l'analyse du Playbook (avant l'exécution). |
||||
|
||||
* _Dynamique_ |
||||
Ansible traite les imports dynamiques au fur et à mesure durant l'exécution du Playbook. |
||||
|
||||
* Les imports statiques et dynamiques peuvent être mixés, toutefois cela n'est pas recommandé car cela rend le debug des Playbooks plus complexe. |
||||
|
||||
|
||||
### Import de Playbooks |
||||
|
||||
* Il est possible d'importer un ou plusieurs Playbooks à l'intérieur d'un Playbook maître, avec `import_playbook`. |
||||
|
||||
|
||||
### Roles |
||||
|
||||
* Plus puissants que les _includes_ et les _imports_. |
||||
|
||||
* Permettent d'empaqueter un ensemble de tâches ainsi que les variables, handlers et autres autres éléments associés. |
||||
|
||||
* Les _roles_ peuvent être facilement ré-utilisés et partagés. |
||||
|
||||
|
||||
<!-- .slide: data-state="nologo-slide" style="text-align: center" --> |
||||
## Travaux pratiques |
||||
|
||||
 |
||||
|
||||
<small>[TP Ansible : imports](travaux-pratiques/tp-ansible-imports.html)</small> |
@ -1,516 +0,0 @@
|
||||
<!-- .slide: data-state="nologo-slide" style="text-align: center" --> |
||||
 |
||||
# Templates |
||||
|
||||
|
||||
## Syntaxe jinja2 |
||||
|
||||
* Documentation |
||||
|
||||
- Jinja language : |
||||
http://jinja.pocoo.org/docs/ |
||||
- Template formatting : |
||||
http://jinja.pocoo.org/docs/templates/ |
||||
|
||||
|
||||
## Principe |
||||
|
||||
* On créé les fichiers dans le dossier `templates` du Role. |
||||
|
||||
* On indique l'emplacement des zones variables à l'aide de la syntaxe `{{ ma_variable }}`. |
||||
|
||||
`templates/httpd.conf.j2` |
||||
```none |
||||
... |
||||
Listen {{ apache_port }} |
||||
DocumentRoot {{ apache_document_root }} |
||||
ServerName {{ apache_server_name }} |
||||
ServerAdmin {{ apache_server_admin }} |
||||
... |
||||
``` |
||||
|
||||
|
||||
On utilise le module _template_ |
||||
|
||||
<!-- .slide: data-state="medium-code" --> |
||||
```yaml |
||||
- hosts: web |
||||
vars: |
||||
apache_port: 80 |
||||
apache_document_root: /var/www/html |
||||
apache_server_name: my-server |
||||
apache_server_admin: admin@localhost |
||||
tasks: |
||||
- name: Deploy Apache configuration |
||||
template: |
||||
src: templates/httpd.conf.j2 |
||||
dest: /etc/http/httpd.conf |
||||
owner: apache |
||||
group: apache |
||||
mode: 0600 |
||||
``` |
||||
|
||||
Les variables sont automatiquement injectées dans le fichier sur la cible. |
||||
|
||||
|
||||
## Exemple pour une configuration du service NTP |
||||
<!-- .slide: data-state="small-code" --> |
||||
`./group_vars/all` |
||||
```none |
||||
ntp_servers: |
||||
- 0.pool.ntp.org |
||||
- 1.pool.ntp.org |
||||
- 2.pool.ntp.org |
||||
- 3.pool.ntp.org |
||||
``` |
||||
|
||||
`./roles/ntp/templates/ntp.conf.j2` |
||||
```none |
||||
... |
||||
{% for server in ntp_servers %} |
||||
server {{ server }} |
||||
{% endfor %} |
||||
... |
||||
``` |
||||
|
||||
|
||||
`./roles/ntp/tasks/main.yaml` |
||||
```yaml |
||||
- name: Install NTP package |
||||
apt: |
||||
name: "ntp" |
||||
|
||||
- name: Configure NTP |
||||
template: |
||||
src: ntp.conf.j2 |
||||
dest: "/etc/ntp.conf" |
||||
owner: "root" |
||||
group: "root" |
||||
mode: 0644 |
||||
notify: Restart ntp service |
||||
``` |
||||
|
||||
|
||||
## Contrôle conditionnel |
||||
|
||||
```none |
||||
{% if condition %} |
||||
do_some_thing |
||||
{% elif condition2 %} |
||||
do_another_thing |
||||
{% else %} |
||||
do_something_else |
||||
{% endif %} |
||||
``` |
||||
|
||||
|
||||
## Filtres |
||||
|
||||
Les variables peuvent être modifiées par des filtres. |
||||
|
||||
<small>https://docs.ansible.com/ansible/playbooks_filters.html</small> |
||||
|
||||
|
||||
### Filtres Jinja2 |
||||
|
||||
* Les filtres Ansible reposent sur Jinja2. |
||||
|
||||
* Ils sont utilisés pour transformer des données. |
||||
|
||||
* Les filtres peuvent être chaînés. |
||||
|
||||
* Il est possible de créer des filtres personnalisés. |
||||
|
||||
|
||||
### Fixer une valeur par défaut aux variables non-définies |
||||
|
||||
```none |
||||
{{ variable | default(5) }} |
||||
``` |
||||
|
||||
|
||||
### Formater des données |
||||
|
||||
```none |
||||
{{ variable | to_json }} |
||||
{{ variable | to_yaml }} |
||||
``` |
||||
```none |
||||
{{ variable | from_json }} |
||||
{{ variable | from_yaml }} |
||||
``` |
||||
|
||||
|
||||
### Filtres de listes |
||||
|
||||
Récupérer les valeurs minimales ou maximales |
||||
```none |
||||
{{ ma_liste | min }} |
||||
{{ [3, 4, 2] | max }} |
||||
``` |
||||
|
||||
Eliminer les doublons |
||||
|
||||
```none |
||||
{{ list1 | unique }} |
||||
``` |
||||
|
||||
Combiner deux listes |
||||
|
||||
```none |
||||
{{ list1 | union(list2) }} |
||||
``` |
||||
|
||||
Obtenir la différence entre deux listes (éléments dans list1 qui n'existent pas dans list2) |
||||
|
||||
```none |
||||
{{ list1 | difference(list2) }} |
||||
``` |
||||
|
||||
|
||||
### Filtres de nombres aléatoires |
||||
|
||||
Obtenir un élément au hasard parmi une liste |
||||
|
||||
```none |
||||
"{{ ['a','b','c'] | random }}" |
||||
# => 'c' |
||||
``` |
||||
|
||||
Obtenir un nombre au hasard entre 0 et une valeur spécifiée |
||||
|
||||
```none |
||||
"{{ 60 | random}} * * * * root /script/from/cron“ |
||||
# => '21 * * * * root /script/from/cron' |
||||
``` |
||||
|
||||
Obtenir un nombre au hasard entre 0 et 100 par pas de 10 |
||||
|
||||
```none |
||||
{{ 101 | random(step=10) }} |
||||
# => 70 |
||||
``` |
||||
|
||||
|
||||
### Tester des adresses IP |
||||
|
||||
Tester si une chaîne est une adresse IP valide |
||||
|
||||
```none |
||||
{{ myvar | ipaddr }} |
||||
``` |
||||
|
||||
Même chose en forçant la version du protocole IP |
||||
|
||||
```none |
||||
{{ myvar | ipv4 }} |
||||
{{ myvar | ipv6 }} |
||||
``` |
||||
|
||||
|
||||
### Filtres sur la notation CIDR |
||||
|
||||
```none |
||||
{{ '192.0.2.1/24' | ipaddr('address') }} |
||||
'192.0.2.1/24' |
||||
``` |
||||
```none |
||||
{{ '192.0.2.1/24' | ipaddr('prefix') }} |
||||
'24' |
||||
``` |
||||
|
||||
<small>https://docs.ansible.com/ansible/playbooks_filters_ipaddr.html</small> |
||||
|
||||
|
||||
### Fonctions de hashage |
||||
|
||||
Obtenir l'empreinte sha1 ou md5 d'une chaîne |
||||
|
||||
```none |
||||
{{ 'test1' | hash('sha1') }} |
||||
'dba7673010f19a94af4345453005933fd511bea9' |
||||
|
||||
{{ 'test1' | hash('md5') }} |
||||
'3e7705498e8be60520841409ebc69bc1' |
||||
``` |
||||
<small>https://docs.ansible.com/ansible/latest/user_guide/playbooks_filters.html#hashing-filters</small> |
||||
|
||||
|
||||
<!-- .slide: data-state="medium-code" --> |
||||
Obtenir un hashage de mot de passe sha512 |
||||
|
||||
```none |
||||
{{ 'passwordsaresecret' | password_hash('sha512') }} |
||||
``` |
||||
|
||||
Obtenir un hashage de mot de passe sha256 avec salage |
||||
|
||||
```none |
||||
{{ 'secretpassword' | password_hash('sha256', 'mysecretsalt') }} |
||||
``` |
||||
|
||||
Exemple d'utilisation dans un fichier de variables |
||||
|
||||
```none |
||||
user_password: "{{ 'Mon super password' | password_hash('sha256') }}" |
||||
``` |
||||
|
||||
|
||||
### Filtres de commentaires |
||||
|
||||
Il permettent de "décorer" un texte |
||||
avec un style de commentaire. |
||||
|
||||
Exemple : |
||||
|
||||
```none |
||||
{{ "Hello" | comment }} |
||||
``` |
||||
|
||||
produit : |
||||
|
||||
```none |
||||
# |
||||
# Hello |
||||
# |
||||
``` |
||||
|
||||
|
||||
Il est possible d'appliquer |
||||
différents types de commentaires : |
||||
|
||||
```none |
||||
{{ "C style" | comment('c') }} |
||||
'// C style' |
||||
``` |
||||
|
||||
```none |
||||
{{ "C block style" | comment('cblock') }} |
||||
'/* C block style */' |
||||
``` |
||||
|
||||
```none |
||||
{{ "XML style" | comment('xml') }} |
||||
'<!--XML style-->' |
||||
``` |
||||
|
||||
|
||||
### Filtres d'URL |
||||
|
||||
<!-- .slide: data-state="small-code medium-table" --> |
||||
Obtenir une sous-partie d'une URL. |
||||
```none |
||||
{{ "http://bob:1234@www.test.com:81/dir/index.html?query=term#fragment" |
||||
| urlsplit('scheme') }} |
||||
# => 'http' |
||||
``` |
||||
|
||||
Filtre | Résultat |
||||
- | - |
||||
urlsplit('scheme') | 'http' |
||||
urlsplit('username') | 'bob' |
||||
urlsplit('password') | '1234' |
||||
urlsplit('hostname') | 'www.test.com' |
||||
urlsplit('port') | '81' |
||||
urlsplit('path') | '/dir/index.html' |
||||
urlsplit('query') | 'query=term' |
||||
urlsplit('fragment') | 'fragment' |
||||
|
||||
|
||||
### Autres filtres utiles |
||||
|
||||
|
||||
Ajouter des guillemets pour protéger des variables |
||||
(usage shell) |
||||
|
||||
```none |
||||
- shell: echo {{ string_value | quote }} |
||||
``` |
||||
|
||||
Retourner une valeur si un test est vrai |
||||
et une autre si il est faux |
||||
|
||||
```none |
||||
{{ (name == "John") | ternary('Mr','Mme') }} |
||||
``` |
||||
|
||||
|
||||
Concatener une liste en chaîne |
||||
|
||||
```none |
||||
{{ list | join(" ") }} |
||||
``` |
||||
|
||||
```none |
||||
{{ list | join(",") }} |
||||
``` |
||||
|
||||
|
||||
Obtenir le dernier élément d'un chemin |
||||
|
||||
```none |
||||
{{ '/etc/foo/bar.txt' | basename }} |
||||
'bar.txt' |
||||
``` |
||||
|
||||
Obtenir le début d'un chemin |
||||
|
||||
```none |
||||
{{ '/etc/foo/bar.txt' | dirname }} |
||||
'/etc/foo' |
||||
``` |
||||
|
||||
Obtenir le chemin réel d'un lien |
||||
|
||||
```none |
||||
{{ path | realpath }} |
||||
``` |
||||
|
||||
|
||||
Expanser un chemin contenant un tilde (~) |
||||
|
||||
```none |
||||
{{ path | expanduser }} |
||||
``` |
||||
|
||||
Expanser un chemin contenant des variables d'environnement |
||||
|
||||
```none |
||||
{{ path | expandvars }} |
||||
``` |
||||
|
||||
|
||||
Découper un nom de fichier |
||||
|
||||
```none |
||||
{{ path | splitext }} |
||||
``` |
||||
|
||||
Avec `path` == `nginx.conf` le retour sera `('nginx', '.conf')` |
||||
|
||||
|
||||
## Tests |
||||
|
||||
`variable` is `test expression` |
||||
|
||||
<small>https://docs.ansible.com/ansible/playbooks_tests.html</small> |
||||
|
||||
|
||||
### Tester des chaînes de caractères |
||||
<!-- .slide: data-state="small-code" --> |
||||
```yaml |
||||
vars: |
||||
url: "http://example.com/users/foo/resources/bar" |
||||
|
||||
tasks: |
||||
- debug: |
||||
msg: "matched pattern 1" |
||||
when: url is match("http://example.com/users/.*/resources/.*") |
||||
|
||||
- debug: |
||||
msg: "matched pattern 2" |
||||
when: url is search("/users/.*/resources/.*") |
||||
|
||||
- debug: |
||||
msg: "matched pattern 3" |
||||
when: url is search("/groups/") |
||||
``` |
||||
|
||||
```none |
||||
TASK [debug] ***************************************************************** |
||||
ok: [my-host] => { "msg": "matched pattern 1" } |
||||
|
||||
TASK [debug] ***************************************************************** |
||||
ok: [my-host] => { "msg": "matched pattern 2" } |
||||
|
||||
TASK [debug] ***************************************************************** |
||||
skipping: [my-host] |
||||
``` |
||||
|
||||
|
||||
### Tester des numéros de version |
||||
|
||||
Si `ansible_facts['distribution_version']` est supérieur ou égal à 16.04, le test retourne `True`, sinon il retourne `False`. |
||||
|
||||
<!-- .slide: data-state="medium-code" --> |
||||
```none |
||||
{{ ansible_facts['distribution_version'] is version('16.04', '>=') }} |
||||
``` |
||||
|
||||
Opérateurs acceptés : |
||||
`<`, `lt`, `<=`, `le`, `>`, `gt`, `>=`, `ge`, `==`, `=`, `eq`, `!=`, `<>`, `ne` |
||||
|
||||
|
||||
### Tester des chemins |
||||
|
||||
<!-- .slide: data-state="small-code" --> |
||||
```yaml |
||||
- debug: |
||||
msg: "path is a directory" |
||||
when: mypath is directory |
||||
|
||||
- debug: |
||||
msg: "path is a file" |
||||
when: mypath is file |
||||
|
||||
- debug: |
||||
msg: "path is a symlink" |
||||
when: mypath is link |
||||
|
||||
- debug: |
||||
msg: "path already exists" |
||||
when: mypath is exists |
||||
``` |
||||
|
||||
Chaque tâche est effectuée ou abandonnée |
||||
en fonction du résultat du test. |
||||
|
||||
|
||||
### Tester le résultat final d'une tâche |
||||
|
||||
```yaml |
||||
- shell: /usr/bin/foo |
||||
register: result |
||||
ignore_errors: True |
||||
|
||||
- debug: |
||||
msg: "it failed" |
||||
when: result is failed |
||||
|
||||
- debug: |
||||
msg: "it succeeded" |
||||
when: result is succeeded |
||||
``` |
||||
|
||||
|
||||
## Sortir prématurément en fonction de conditions |
||||
|
||||
* Le module _fail_ permet de stopper l'exécution d'un playbook si un condition n'est pas remplie. |
||||
|
||||
* Dans l'exemple suivant, l'exécution s'arrête car la variable `param2` n'est pas définie. |
||||
|
||||
|
||||
<!-- .slide: data-state="medium-code" --> |
||||
```yaml |
||||
--- |
||||
- hosts: ansible-1 |
||||
|
||||
vars: |
||||
- param1: "test" |
||||
|
||||
tasks: |
||||
- name: 'exit if param1 or param2 are null or invalid' |
||||
fail: msg="Please enter correct Params" |
||||
when: param1 is not defined or param2 is not defined |
||||
|
||||
- debug: |
||||
msg: "other tasks..." |
||||
``` |
||||
|
||||
|
||||
## Travaux pratiques |
||||
<!-- .slide: data-state="nologo-slide" style="text-align: center" --> |
||||
|
||||
 |
||||
|
||||
<small>[TP Ansible : templates](travaux-pratiques/tp-ansible-templates.html)</small> |
@ -1,306 +0,0 @@
|
||||
<!-- .slide: data-state="nologo-slide" style="text-align: center" --> |
||||
 |
||||
# ansible-vault |
||||
|
||||
Sécuriser les données sensibles. |
||||
|
||||
|
||||
* La commande `ansible-vault` permet la création de conteneurs chiffrés pour les variables sensibles. |
||||
|
||||
```nohighlight |
||||
$ ansible-vault create test.yaml |
||||
Vault password: |
||||
``` |
||||
|
||||
* Le choix d'un un mot de passe est obligatoire lors de la création du fichier. |
||||
|
||||
|
||||
<!-- .slide: data-state="small-code" --> |
||||
Le contenu en clair : |
||||
|
||||
```nohighlight |
||||
mon_super_mot_de_passe: 12345678 |
||||
``` |
||||
|
||||
devient après chiffrement : |
||||
|
||||
```nohighlight |
||||
$ cat test.yaml |
||||
$ANSIBLE_VAULT;1.1;AES256 |
||||
62366463643661313763313135376434303535646637653237633233306663623635643761643161 |
||||
3834383236386535366533303733613838653836623661340a383263633435336234333335343539 |
||||
30333664666364613731666666636235373633346463353766356364623039656262363238363830 |
||||
3236656664353565620a303034643732636166376535386436616231653363386334663065326337 |
||||
3561 |
||||
``` |
||||
|
||||
|
||||
Le mot de passe sera demandé lors de chacune des exécutions du playbook : |
||||
|
||||
```nohighlight |
||||
$ ansible-playbook mon-playbook.yaml –ask-vault-pass |
||||
Vault password: |
||||
``` |
||||
|
||||
|
||||
### Travaux pratiques |
||||
<!-- .slide: data-state="nologo-slide" style="text-align: center" --> |
||||
|
||||
 |
||||
|
||||
<small>[TP Ansible vault](travaux-pratiques/tp-ansible-vault.html)</small> |
||||
|
||||
|
||||
|
||||
<!-- .slide: data-state="nologo-slide" style="text-align: center" --> |
||||
 |
||||
# Notions avancées |
||||
|
||||
|
||||
## Surcharge de variables |
||||
|
||||
* Ansible permet la déclaration de variables en de multiples endroits. |
||||
|
||||
* Ansible supporte la surcharge de variables, cette surcharge dépend de l’endroit où les variables sont déclarées. |
||||
|
||||
|
||||
Ordre de priorité croissant lors de la surcharge : |
||||
|
||||
<small> |
||||
|
||||
* role defaults |
||||
* inventory file or script group vars |
||||
* inventory group_vars/all |
||||
* playbook group_vars/all |
||||
* inventory group_vars/* |
||||
* playbook group_vars/* |
||||
* inventory file or script host vars |
||||
* inventory host_vars/* |
||||
* playbook host_vars/* |
||||
* host facts / cached set_facts |
||||
* play vars |
||||
* play vars_files |
||||
* role vars (defined in role/vars/main.yaml) |
||||
* task vars (only for the task) |
||||
* include_vars |
||||
* set_facts / registered vars |
||||
* role (and include_role) params |
||||
* include params |
||||
* extra vars (always win precedence) |
||||
|
||||
</small> |
||||
|
||||
|
||||
## register + debug + verbosity |
||||
<!-- .slide: data-state="medium-code" --> |
||||
|
||||
```yaml |
||||
- shell: /usr/bin/uptime |
||||
register: result |
||||
|
||||
- name: Display uptime |
||||
debug: |
||||
var: result |
||||
verbosity: 2 # affiché à partir du niveau -vv |
||||
|
||||
- name: Display all variables/facts known for a host |
||||
debug: |
||||
var: hostvars[inventory_hostname] |
||||
verbosity: 4 # affiché à partir du niveau -vvvv |
||||
``` |
||||
|
||||
|
||||
## Niveau de verbosité |
||||
|
||||
```nohighlight |
||||
$ ansible-playbook -i ./hosts playbook.yaml |
||||
``` |
||||
|
||||
```nohighlight |
||||
$ ansible-playbook -vv -i ./hosts playbook.yaml |
||||
``` |
||||
|
||||
```nohighlight |
||||
$ ansible-playbook -vvvv -i ./hosts playbook.yaml |
||||
``` |
||||
|
||||
|
||||
## Check mode (« Dry Run ») |
||||
|
||||
* Simulation de l'exécution d'un Playbook. |
||||
|
||||
* Aucun changement n'est effectué sur les hosts lors du check. |
||||
|
||||
* Utiliser l’option `--check`. |
||||
|
||||
* _Attention_ ! Certains modules sont incompatibles avec le Check mode. |
||||
|
||||
|
||||
Forcer ou non une tâche en check : `check_mode: yes/no` |
||||
|
||||
<!-- .slide: data-state="small-code" --> |
||||
```yaml |
||||
tasks: |
||||
- name: this task will make changes to the system even in check mode |
||||
command: /something/to/run --even-in-check-mode |
||||
check_mode: no |
||||
|
||||
- name: this task will always run under checkmode and not change the system |
||||
lineinfile: |
||||
line: "important config" |
||||
dest: /path/to/myconfig.conf |
||||
state: present |
||||
check_mode: yes |
||||
``` |
||||
|
||||
|
||||
## Autres options de ansible-playbook |
||||
<!-- .slide: data-state="medium-table" --> |
||||
Option | Description |
||||
- | - |
||||
`--list-hosts` | Affiche les machines concernées par le Play |
||||
`--list-tags` | Affiche les tags disponibles |
||||
`--list-tasks` | Affiche les tâches qui seront exécutées |
||||
`--step` | Demande confirmation avant l'exécution de chaque tâche |
||||
`--syntax-check` | Analyse syntaxique du Playbook (sans l'exécuter) |
||||
|
||||
|
||||
## Tester du code Ansible |
||||
|
||||
|
||||
 <!-- .element: width="150px" --> |
||||
|
||||
* Permet de tester des Roles Ansible |
||||
|
||||
<small>https://molecule.readthedocs.io/en/latest/</small> |
||||
|
||||
|
||||
 <!-- .element: width="150px" --> |
||||
|
||||
Création de tests unitaire en langage Python |
||||
|
||||
<!-- .slide: data-state="small-table" --> |
||||
```python |
||||
def test_passwd_file(host): |
||||
passwd = host.file("/etc/passwd") |
||||
assert passwd.contains("root") |
||||
assert passwd.user == "root" |
||||
assert passwd.group == "root" |
||||
assert passwd.mode == 0o644 |
||||
``` |
||||
|
||||
Combiné avec GitLab-CI/Jenkins et Docker, il permet d'automatiser le test de code Ansible. |
||||
|
||||
<small>https://testinfra.readthedocs.io/en/latest/</small> |
||||
|
||||
|
||||
## Ansible Lint |
||||
|
||||
* Permet de détecter les comportements et les pratiques qui peuvent être améliorés. |
||||
|
||||
<small>https://ansible-lint.readthedocs.io/en/latest/</small> |
||||
|
||||
|
||||
## Ansible en mode Pull |
||||
|
||||
* Ansible fonctionne traditionnellement en mode `Push`. |
||||
|
||||
* Il est possible de passer en mode `Pull` à l'aide de la commande `ansible-pull`. |
||||
|
||||
* Intérêt du mode Pull |
||||
|
||||
- Adresser un grand nombre de machines, |
||||
|
||||
- Remediation des systèmes en continu. |
||||
|
||||
|
||||
* Pré-requis du mode Pull |
||||
|
||||
* Playbooks disponibles sur un dépôt git, |
||||
|
||||
* Ansible installé sur chaque machine cible. |
||||
|
||||
<small>https://docs.ansible.com/ansible/latest/cli/ansible-pull.html</small> |
||||
|
||||
<small>https://github.com/ansible/ansible-examples/blob/master/language_features/ansible_pull.yaml</small> |
||||
|
||||
|
||||
## Développer un module personnalisé |
||||
|
||||
`./library/mymodule.py` |
||||
```python |
||||
#!/usr/bin/python |
||||
|
||||
from ansible.module_utils.basic import * |
||||
|
||||
def main(): |
||||
module = AnsibleModule(argument_spec={}) |
||||
response = {"hello": "world"} |
||||
module.exit_json(changed=False, meta=response) |
||||
if __name__ == '__main__': |
||||
main() |
||||
``` |
||||
|
||||
<small>https://blog.toast38coza.me/custom-ansible-module-hello-world/</small> |
||||
|
||||
<small>https://docs.ansible.com/ansible/latest/dev_guide/developing_modules_general.html</small> |
||||
|
||||
|
||||
## Utiliser un module personnalisé |
||||
<!-- .slide: data-state="small-code" --> |
||||
|
||||
`playbook-demo-mymodule.yaml` |
||||
```yaml |
||||
- hosts: web |
||||
tasks: |
||||
- name: Test that my module works |
||||
mymodule: |
||||
register: result |
||||
- debug: var=result |
||||
``` |
||||
```nohighlight |
||||
$ ansible-playbook -i ./hosts playbook-demo-mymodule.yaml |
||||
... |
||||
TASK [Test that my module works] *********************************************** |
||||
ok: [web2.formation.sii.fr] |
||||
ok: [web1.formation.sii.fr] |
||||
|
||||
TASK [debug] ******************************************************************* |
||||
ok: [web1.formation.sii.fr] => { |
||||
"result": { "changed": false, "meta": { "hello": "world" } } |
||||
} |
||||
ok: [web2.formation.sii.fr] => { |
||||
"result": { "changed": false, "meta": { "hello": "world" } } |
||||
} |
||||
... |
||||
``` |
||||
|
||||
|
||||
## Ansible Tower |
||||
|
||||
* Interface Web propriétaire pour le lancement de playbooks. |
||||
|
||||
* Accès à l’historique des playbooks lancés et aux logs d'exécution. |
||||
|
||||
* Gestion des utilisateurs et de l'inventaire. |
||||
|
||||
* Pilotable via API. |
||||
|
||||
<small>https://www.ansible.com/products/tower</small> |
||||
|
||||
|
||||
### Tableau de bord d'Ansible Tower |
||||
 |
||||
|
||||
|
||||
### AWX |
||||
|
||||
* Version opensource de Ansible Tower (sous licence Apache 2.0.) |
||||
|
||||
* AWX est à Ansible Tower ce que Fedora est à Red Hat Enterprise Linux. |
||||
|
||||
* Non recommandé pour les environnements de production. |
||||
|
||||
* Aucun support n'est fourni par Red Hat. |
||||
|
||||
<small>https://www.ansible.com/products/awx-project</small> |
@ -1,29 +0,0 @@
|
||||
# Formation Ansible |
||||
|
||||
|
||||
## Programme |
||||
|
||||
1. Introduction ansible |
||||
2. Installation / Inventaire |
||||
3. Commandes ad-hoc |
||||
4. Playbooks |
||||
5. Roles |
||||
6. Structures de contrôle |
||||
7. Templates |
||||
8. Notions avancées |
||||
|
||||
## Slides |
||||
|
||||
Pour récupérer les slides : |
||||
|
||||
`git clone --recurse-submodules https://gitlab.siinergy.net/sii-ouest/trainings/ansible.git` |
||||
|
||||
Version [pdf](https://gitlab.siinergy.net/sii-ouest/trainings/ansible/-/jobs/artifacts/2019-03-06/raw/ansible.pdf?job=make-pdf) |
||||
|
||||
## Machines vituelles |
||||
|
||||
Voir [ansible-config-virtualbox-vms.md](ansible-config-virtualbox-vms.md). |
||||
|
||||
## Todo |
||||
|
||||
Les améliorations à apporter à la formation : [https://gitlab.siinergy.net/sii-ouest/trainings/ansible/boards](https://gitlab.siinergy.net/sii-ouest/trainings/ansible/boards) |
@ -1,54 +0,0 @@
|
||||
# Machines virtuelles VirtualBox pour la formation Ansible |
||||
|
||||
## Pré-requis de l'hôte |
||||
|
||||
- 8 Go de RAM au minimum |
||||
- Processeur Intel Corei__X__ |
||||
|
||||
|
||||
## Machines virtuelles |
||||
|
||||
Un fichier _.ova_ contenant deux machines virtuelles prêtes à l'emploi est disponible sur le filer. |
||||
|
||||
Mot de passe de l'utilisateur `ansible` : `ansible`. |
||||
|
||||
Mot de passe de l'utilisateur `root` : `ansible`. |
||||
|
||||
VM | description |
||||
- | - |
||||
ansible-0 | Machine ansible maître avec OS Debian 9 et ansible 2.6 installé |
||||
ansible-1 | Machine de test avec OS Centos 7 |
||||
ansible-2 | Machine de test avec OS Centos 7 |
||||
ansible-3 | Machine de test avec OS Debian 9 |
||||
|
||||
### Configuration des ressources |
||||
|
||||
- 1024 Mo RAM par VM |
||||
- 1 CPU par VM |
||||
|
||||
### Configuration réseau |
||||
|
||||
Chaque VM a 2 interfaces réseaux : |
||||
|
||||
- Interface 1 : __NAT__ |
||||
L’accès Internet de la machine hôte est alors partagé, on peut faire des mises à jour etc. La machine virtuelle voit Internet mais n’est pas vue du réseau local (elle est derrière un NAT qui est géré par VirtualBox). |
||||
|
||||
- Interface 2 : __Réseau privé hôte avec DHCP__ |
||||
La machine est visible et voit la machine hôte et réciproquement. Cette interface réseau sert pour se connecter en SSH depuis la machine hôte sur la machine virtuelle. Elle permet également aux différentes machines virtuelles positionnées sur ce réseau de communiquer entre elles. |
||||
|
||||
Le type des cartes est __Intel PRO/1000 MT Desktop (82540EM)__. |
||||
|
||||
|
||||
Qui voit quoi ? |
||||
|
||||
- Via la carte en __NAT__ |
||||
* la VM a accès à Internet pour les mises à jour derrière un NAT. |
||||
* La VM est invisible du réseau local et de la machine hôte (à moins de faire des redirections de port). |
||||
|
||||
- Via la carte __Réseau privé hôte__ |
||||
* la VM a accès à la machine hôte et réciproquement. |
||||
* la VM est visible des autres machines virtuelles situées dans le même réseau privé hôte. |
||||
|
||||
En résumé, les deux machines virtuelles pourront donc communiquer entre elles via l'interface _Réseau privé hôte_ et accéder à internet via l'interface _NAT_. |
||||
|
||||
Si besoin que toutes les VMs des stagiaires se voient entre elles il est possible de remplacer la carte __NAT__ par une carte __Bridge__. |
Before Width: | Height: | Size: 46 KiB |
Before Width: | Height: | Size: 98 KiB |
Before Width: | Height: | Size: 70 KiB |
Before Width: | Height: | Size: 86 KiB |
Before Width: | Height: | Size: 44 KiB |
Before Width: | Height: | Size: 153 KiB |
Before Width: | Height: | Size: 53 KiB |
Before Width: | Height: | Size: 106 KiB |
Before Width: | Height: | Size: 135 KiB |
Before Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 76 KiB |
Before Width: | Height: | Size: 9.7 KiB |
Before Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 114 KiB |
Before Width: | Height: | Size: 101 KiB |
@ -1,150 +0,0 @@
|
||||
<!doctype html> |
||||
<html lang="en"> |
||||
|
||||
<head> |
||||
<meta charset="utf-8"> |
||||
|
||||
<title>SII - Ansible</title> |
||||
<link rel="icon" type="image/png" href="revealjs/images/favicon-logo-sii.png" /> |
||||
|
||||
<meta name="apple-mobile-web-app-capable" content="yes"> |
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"> |
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
||||
|
||||
<link rel="stylesheet" href="revealjs/css/reset.css"> |
||||
<link rel="stylesheet" href="revealjs/css/reveal.css"> |
||||
<link rel="stylesheet" href="revealjs/css/theme/sii.css"> <!-- SII theme --> |
||||
|
||||
<!-- Theme used for syntax highlighting of code --> |
||||
<link rel="stylesheet" href="revealjs/lib/css/monokai.css"> |
||||
|
||||
<!-- Specific CSS override to reduce font size and align text on the left --> |
||||
<style> |
||||
.reveal .slides { |
||||
text-align: left; |
||||
} |
||||
|
||||
.columns { |
||||
display: flex; |
||||
} |
||||
|
||||
.columns pre { |
||||
margin-right: 0.5rem; |
||||
} |
||||
</style> |
||||
|
||||
<!-- Printing and PDF exports --> |
||||
<script> |
||||
var link = document.createElement( 'link' ); |
||||
link.rel = 'stylesheet'; |
||||
link.type = 'text/css'; |
||||
link.href = window.location.search.match( /print-pdf/gi ) ? 'revealjs/css/print/pdf.css' : 'revealjs/css/print/paper.css'; |
||||
document.getElementsByTagName( 'head' )[0].appendChild( link ); |
||||
</script> |
||||
|
||||
<!--[if lt IE 9]> |
||||
<script src="lib/js/html5shiv.js"></script> |
||||
<![endif]--> |
||||
</head> |
||||
|
||||
<body> |
||||
|
||||
<div class="reveal"> |
||||
<div class="slides"> |
||||
<section data-markdown="1.Introduction-ansible.md" |
||||
data-separator="^\n\n\n" |
||||
data-separator-vertical="^\n\n" |
||||
data-separator-notes="^Note:" |
||||
data-charset="UTF-8"> |
||||
</section> |
||||
<section data-markdown="2.installation-inventaire.md" |
||||
data-separator="^\n\n\n" |
||||
data-separator-vertical="^\n\n" |
||||
data-separator-notes="^Note:" |
||||
data-charset="UTF-8"> |
||||
</section> |
||||
<section data-markdown="3.commandes-ad-hoc.md" |
||||
data-separator="^\n\n\n" |
||||
data-separator-vertical="^\n\n" |
||||
data-separator-notes="^Note:" |
||||
data-charset="UTF-8"> |
||||
</section> |
||||
<section data-markdown="4.playbooks.md" |
||||
data-separator="^\n\n\n" |
||||
data-separator-vertical="^\n\n" |
||||
data-separator-notes="^Note:" |
||||
data-charset="UTF-8"> |
||||
</section> |
||||
<section data-markdown="5.roles.md" |
||||
data-separator="^\n\n\n" |
||||
data-separator-vertical="^\n\n" |
||||
data-separator-notes="^Note:" |
||||
data-charset="UTF-8"> |
||||
</section> |
||||
<section data-markdown="6.structures-de-controle.md" |
||||
data-separator="^\n\n\n" |
||||
data-separator-vertical="^\n\n" |
||||
data-separator-notes="^Note:" |
||||
data-charset="UTF-8"> |
||||
</section> |
||||
<section data-markdown="7.templates.md" |
||||
data-separator="^\n\n\n" |
||||
data-separator-vertical="^\n\n" |
||||
data-separator-notes="^Note:" |
||||
data-charset="UTF-8"> |
||||
</section> |
||||
<section data-markdown="8.notions-avancees.md" |
||||
data-separator="^\n\n\n" |
||||
data-separator-vertical="^\n\n" |
||||
data-separator-notes="^Note:" |
||||
data-charset="UTF-8"> |
||||
</section> |
||||
<section data-markdown="9.Ansible-Galaxy.md" |
||||
data-separator="^\n\n\n" |
||||
data-separator-vertical="^\n\n" |
||||
data-separator-notes="^Note:" |
||||
data-charset="UTF-8"> |
||||
</section> |
||||
<section data-markdown="10.bonnes-pratiques.md" |
||||
data-separator="^\n\n\n" |
||||
data-separator-vertical="^\n\n" |
||||
data-separator-notes="^Note:" |
||||
data-charset="UTF-8"> |
||||
</section> |
||||
</div> |
||||
</div> |
||||
|
||||
<script src="revealjs/js/reveal.js"></script> |
||||
|
||||
<script> |
||||
|
||||
// More info https://github.com/hakimel/reveal.js#configuration |
||||
Reveal.initialize({ |
||||
controls: true, |
||||
progress: true, |
||||
center: true, |
||||
hash: true, |
||||
|
||||
transition: 'slide', // none/fade/slide/convex/concave/zoom |
||||
|
||||
// More info https://github.com/hakimel/reveal.js#dependencies |
||||
dependencies: [ |
||||
{ src: 'revealjs/plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } }, |
||||
{ src: 'revealjs/plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } }, |
||||
{ src: 'revealjs/plugin/highlight/highlight.js', async: true }, |
||||
{ src: 'revealjs/plugin/search/search.js', async: true }, |
||||
{ src: 'revealjs/plugin/zoom-js/zoom.js', async: true }, |
||||
{ src: 'revealjs/plugin/notes/notes.js', async: true } |
||||
] |
||||
}); |
||||
|
||||
Reveal.configure({ |
||||
slideNumber: 'c/t' |
||||
}); |
||||
</script> |
||||
|
||||
<img class="logo" src="revealjs/images/logo-sii.svg" /> |
||||
<p class="footer">SII • www.groupe-sii.com • février 2019</p> |
||||
</body> |
||||
</html> |
@ -1,72 +0,0 @@
|
||||
<!doctype html> |
||||
<html> |
||||
<head> |
||||
<meta charset="utf-8"> |
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> |
||||
|
||||
<title>SII - Formation Ansible</title> |
||||
<link rel="icon" type="image/png" href="revealjs/images/favicon-logo-sii.png" /> |
||||
|
||||
<link rel="stylesheet" href="revealjs/css/reveal.css"> |
||||
<link rel="stylesheet" href="revealjs/css/theme/sii.css"> <!-- SII theme --> |
||||
<link rel="stylesheet" href="revealjs/css/custom.css"> <!-- your custom styles --> |
||||
|
||||
<!-- Theme used for syntax highlighting of code --> |
||||
<link rel="stylesheet" href="revealjs/lib/css/zenburn.css"> |
||||
|
||||
<!-- Printing and PDF exports --> |
||||
<script> |
||||
var link = document.createElement( 'link' ); |
||||
link.rel = 'stylesheet'; |
||||
link.type = 'text/css'; |
||||
link.href = window.location.search.match( /print-pdf/gi ) ? 'revealjs/css/print/pdf.css' : 'revealjs/css/print/paper.css'; |
||||
document.getElementsByTagName( 'head' )[0].appendChild( link ); |
||||
</script> |
||||
</head> |
||||
<body> |
||||
<div class="reveal"> |
||||
<div class="slides"> |
||||
<section data-markdown="0.Introduction-formation.md" |
||||
data-separator="^\n\n\n" |
||||
data-separator-vertical="^\n\n" |
||||
data-separator-notes="^Note:" |
||||
data-charset="UTF-8"> |
||||
</section> |
||||
</div> |
||||
</div> |
||||
|
||||
<script src="revealjs/lib/js/head.min.js"></script> |
||||
<script src="revealjs/js/reveal.js"></script> |
||||
|
||||
<script> |
||||
// More info https://github.com/hakimel/reveal.js#configuration |
||||
Reveal.initialize({ |
||||
history: true, |
||||
|
||||
// Transition style |
||||
transition: 'slide', // none/fade/slide/convex/concave/zoom |
||||
|
||||
// Transition style for full page slide backgrounds |
||||
backgroundTransition: 'none', // none/fade/slide/convex/concave/zoom |
||||
|
||||
// More info https://github.com/hakimel/reveal.js#dependencies |
||||
dependencies: [ |
||||
{ src: 'revealjs/plugin/markdown/marked.js' }, |
||||
{ src: 'revealjs/plugin/markdown/markdown.js' }, |
||||
{ src: 'revealjs/plugin/notes/notes.js', async: true }, |
||||
{ src: 'revealjs/plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } } |
||||
] |
||||
}); |
||||
|
||||
// Slide number formatting can be configured using these variables: |
||||
// "h.v": horizontal . vertical slide number (default) |
||||
// "h/v": horizontal / vertical slide number |
||||
// "c": flattened slide number |
||||
// "c/t": flattened slide number / total slides |
||||
Reveal.configure({ slideNumber: 'c/t' }); |
||||
Reveal.configure({ transition: 'none' }); |
||||
</script> |
||||
<img class="logo" src="revealjs/images/logo-sii.svg" /> |
||||
<p class="footer">SII • www.groupe-sii.com • février 2019</p> |
||||
</body> |
||||
</html> |
@ -1,13 +0,0 @@
|
||||
# template-revealjs-sii-theme |
||||
|
||||
Template SII pour diaporama [reveal.js](http://lab.hakim.se/reveal-js/). |
||||
|
||||
Ce thème est actuellement utilisé pour les slides des formations Ansible, Docker, Kubernetes et OpenStack. |
||||
|
||||
Le thème propose : |
||||
|
||||
- un habillage respecteux de la charte graphique SII, |
||||
|
||||
- quelques [fonctionnalités utiles](content.md) (comme la gestion de taille des portions de code ou des tableaux). |
||||
|
||||
Enjoy! |
@ -1,239 +0,0 @@
|
||||
# Titre |
||||
__Sous-titre__ |
||||
|
||||
|
||||
|
||||
## Enchaînements |
||||
|
||||
|
||||
* Avec 2 lignes d'espacement, les diapo défilent __vers le bas__ |
||||
|
||||
|
||||
* Avec 3 lignes d'espacement, les diapo défilent __vers la droite__ |
||||
|
||||
|
||||
|
||||
## Formatage |
||||
|
||||
|
||||
### Styles |
||||
|
||||
\_\_gras\_\_ : __gras__ |
||||
\_emphase\_ : _emphase_ |
||||
\`code\` : `code` |
||||
|
||||
|
||||
### Puces |
||||
|
||||
* rouge |
||||
* vert |
||||
* bleu |
||||
* bleu marine |
||||
* bleu ciel |
||||
* noir |
||||
|
||||
|
||||
|
||||
## Images |
||||
|
||||
|
||||
* On peut préciser la _taille des images_ avec |
||||
`<!-- .element: height="200px" -->` |
||||
|
||||
 <!-- .element: height="200px" --> |
||||
 <!-- .element: height="100px" --> |
||||
|
||||
|
||||
|
||||
## Liens |
||||
|
||||
\[Nom de la ressource\](Url de la ressource) |
||||
|
||||
\[GitHub SII\](https://github.com/groupe-sii) |
||||
|
||||
|
||||
|
||||
## Code |
||||
|
||||
|
||||
Taille normale |
||||
|
||||
```javascript |
||||
function toggle(elemID){ |
||||
var elem = document.getElementById(elemID); |
||||
if (elem.style.display === 'block') { |
||||
elem.style.display = 'none'; |
||||
} |
||||
else { |
||||
elem.style.display = 'block'; |
||||
} |
||||
} |
||||
``` |
||||
|
||||
|
||||
Taille moyenne |
||||
|
||||
`<!-- .slide: data-state="medium-code" -->` |
||||
|
||||
<!-- .slide: data-state="medium-code" --> |
||||
```javascript |
||||
function toggle(elemID){ |
||||
var elem = document.getElementById(elemID); |
||||
if (elem.style.display === 'block') { |
||||
elem.style.display = 'none'; |
||||
} |
||||
else { |
||||
elem.style.display = 'block'; |
||||
} |
||||
} |
||||
``` |
||||
|
||||
|
||||
Petite taille |
||||
|
||||
`<!-- .slide: data-state="small-code" -->` |
||||
|
||||
<!-- .slide: data-state="small-code" --> |
||||
```javascript |
||||
function toggle(elemID){ |
||||
var elem = document.getElementById(elemID); |
||||
if (elem.style.display === 'block') { |
||||
elem.style.display = 'none'; |
||||
} |
||||
else { |
||||
elem.style.display = 'block'; |
||||
} |
||||
} |
||||
``` |
||||
|
||||
|
||||
|
||||
## Tableaux |
||||
|
||||
|
||||
Taille normale |
||||
|
||||
| Colonne 1 | Colonne 2 | Colonne 3 | |
||||
| - | - | - | |
||||
| A1 | B1 | C1 | |
||||
| A2 | B2 | C2 | |
||||
|
||||
|
||||
Taille moyenne |
||||
|
||||
`<!-- .slide: data-state="medium-table" -->` |
||||
|
||||
<!-- .slide: data-state="medium-table" --> |
||||
| Colonne 1 | Colonne 2 | Colonne 3 | |
||||
| - | - | - | |
||||
| A1 | B1 | C1 | |
||||
| A2 | B2 | C2 | |
||||
|
||||
|
||||
Petite taille |
||||
|
||||
`<!-- .slide: data-state="small-table" -->` |
||||
|
||||
<!-- .slide: data-state="small-table" --> |
||||
| Colonne 1 | Colonne 2 | Colonne 3 | |
||||
| - | - | - | |
||||
| A1 | B1 | C1 | |
||||
| A2 | B2 | C2 | |
||||
|
||||
|
||||
|
||||
## Fonctionnalités avancées |
||||
|
||||
|
||||
### Utilisation de balises HTML dans le Markdown |
||||
|
||||
- La formule Chimique de l'eau est H<sub>2</sub>O. |
||||
|
||||
- E=mc<sup>2</sup> ! |
||||
|
||||
- Voici du texte en <small>fonte réduite</small>. Cool non ? |
||||
|
||||
<!-- .slide: data-state="small-code" --> |
||||
``` |
||||
- La formule Chimique de l'eau est H<sub>2</sub>O. |
||||
|
||||
- E=mc<sup>2</sup> ! |
||||
|
||||
- Voici du texte en <small>fonte réduite</small>. Cool non ? |
||||
``` |
||||
|
||||
|
||||
### Background |
||||
|
||||
<!-- .slide: data-background-color="#888888" --> |
||||
Modifier le background des slides : |
||||
|
||||
`<!-- .slide: data-background-image="http://example.com/image.png" -->` |
||||
|
||||
`<!-- .slide: data-background-repeat="repeat" -->` |
||||
|
||||
`<!-- .slide: data-background-size="100px" -->` |
||||
|
||||
`<!-- .slide: data-background-color="#888888" -->` |
||||
|
||||
|
||||
### Transitions |
||||
|
||||
<!-- .slide: data-transition="concave" --> |
||||
|
||||
Changer le type de transition : |
||||
* default |
||||
* cube |
||||
* page |
||||
* concave |
||||
* zoom |
||||
* linear |
||||
* fade |
||||
* none |
||||
|
||||
`<!-- .slide: data-transition="concave" -->` |
||||
|
||||
|
||||
### Vitesse de transition |
||||
|
||||
<!-- .slide: data-transition="concave" data-transition-speed="slow" --> |
||||
|
||||
Changer la vitesse de la transition : |
||||
* default |
||||
* fast |
||||
* slow |
||||
|
||||
`<!-- .slide: data-transition-speed="slow" -->` |
||||
|
||||
|
||||
### data-state |
||||
<!-- .slide: data-state="data-state-slide" --> |
||||
|
||||
L'ajout de `data-state` sur une slide permet d'appliquer une *classe CSS* spécifique à une slide. |
||||
|
||||
`<!-- .slide: data-state="data-state-slide" -->` |
||||
|
||||
```css |
||||
.data-state-slide em { |
||||
color: #951753 !important; |
||||
} |
||||
``` |
||||
|
||||
|
||||
### Cheat-Sheet |
||||
<!-- .slide: data-state="cheat-sheet" --> |
||||
|
||||
1. On peut afficher une liste ordonnée façon Cheat-Sheet |
||||
`<!-- .slide: data-state="cheat-sheet" -->` |
||||
|
||||
2. Afficher une vache |
||||
`$ apt moo` |
||||
|
||||
3. Faire beugler une vache |
||||
`$ echo "Meuhhhh" | cowsay` |
||||
|
||||
|
||||
### Masquer le logo |
||||
|
||||
<!-- .slide: data-state="nologo-slide" --> |
||||
`<!-- .slide: data-state="nologo-slide" -->` |
@ -1,5 +0,0 @@
|
||||
/* customization sample */ |
||||
|
||||
.data-state-slide em { |
||||
color: #951753 !important; |
||||
} |
@ -1,202 +0,0 @@
|
||||
/* Default Print Stylesheet Template |
||||
by Rob Glazebrook of CSSnewbie.com |
||||
Last Updated: June 4, 2008 |
||||
|
||||
Feel free (nay, compelled) to edit, append, and |
||||
manipulate this file as you see fit. */ |
||||
|
||||
|
||||
@media print { |
||||
|
||||
/* SECTION 1: Set default width, margin, float, and |
||||
background. This prevents elements from extending |
||||
beyond the edge of the printed page, and prevents |
||||
unnecessary background images from printing */ |
||||
html { |
||||
background: #fff; |
||||
width: auto; |
||||
height: auto; |
||||
overflow: visible; |
||||
} |
||||
body { |
||||
background: #fff; |
||||
font-size: 20pt; |
||||
width: auto; |
||||
height: auto; |
||||
border: 0; |
||||
margin: 0 5%; |
||||
padding: 0; |
||||
overflow: visible; |
||||
float: none !important; |
||||
} |
||||
|
||||
/* SECTION 2: Remove any elements not needed in print. |
||||
This would include navigation, ads, sidebars, etc. */ |
||||
.nestedarrow, |
||||
.controls, |
||||
.fork-reveal, |
||||
.share-reveal, |
||||
.state-background, |
||||
.reveal .progress, |
||||
.reveal .backgrounds { |
||||
display: none !important; |
||||
} |
||||
|
||||
/* SECTION 3: Set body font face, size, and color. |
||||
Consider using a serif font for readability. */ |
||||
body, p, td, li, div { |
||||
font-size: 20pt!important; |
||||
font-family: Georgia, "Times New Roman", Times, serif !important; |
||||
color: #000; |
||||
} |
||||
|
||||
/* SECTION 4: Set heading font face, sizes, and color. |
||||
Differentiate your headings from your body text. |
||||
Perhaps use a large sans-serif for distinction. */ |
||||
h1,h2,h3,h4,h5,h6 { |
||||
color: #000!important; |
||||
height: auto; |
||||
line-height: normal; |
||||
font-family: Georgia, "Times New Roman", Times, serif !important; |
||||
text-shadow: 0 0 0 #000 !important; |
||||
text-align: left; |
||||
letter-spacing: normal; |
||||
} |
||||
/* Need to reduce the size of the fonts for printing */ |
||||
h1 { font-size: 28pt !important; } |
||||
h2 { font-size: 24pt !important; } |
||||
h3 { font-size: 22pt !important; } |
||||
h4 { font-size: 22pt !important; font-variant: small-caps; } |
||||
h5 { font-size: 21pt !important; } |
||||
h6 { font-size: 20pt !important; font-style: italic; } |
||||
|
||||
/* SECTION 5: Make hyperlinks more usable. |
||||
Ensure links are underlined, and consider appending |
||||
the URL to the end of the link for usability. */ |
||||
a:link, |
||||
a:visited { |
||||
color: #000 !important; |
||||
font-weight: bold; |
||||
text-decoration: underline; |
||||
} |
||||
/* |
||||
.reveal a:link:after, |
||||
.reveal a:visited:after { |
||||
content: " (" attr(href) ") "; |
||||
color: #222 !important; |
||||
font-size: 90%; |
||||
} |
||||
*/ |
||||
|
||||
|
||||
/* SECTION 6: more reveal.js specific additions by @skypanther */ |
||||
ul, ol, div, p { |
||||
visibility: visible; |
||||
position: static; |
||||
width: auto; |
||||
height: auto; |
||||
display: block; |
||||
overflow: visible; |
||||
margin: 0; |
||||
text-align: left !important; |
||||
} |
||||
.reveal pre, |
||||
.reveal table { |
||||
margin-left: 0; |
||||
margin-right: 0; |
||||
} |
||||
.reveal pre code { |
||||
padding: 20px; |
||||
border: 1px solid #ddd; |
||||
} |
||||
.reveal blockquote { |
||||
margin: 20px 0; |
||||
} |
||||
.reveal .slides { |
||||
position: static !important; |
||||
width: auto !important; |
||||
height: auto !important; |
||||
|
||||
left: 0 !important; |
||||
top: 0 !important; |
||||
margin-left: 0 !important; |
||||
margin-top: 0 !important; |
||||
padding: 0 !important; |
||||
zoom: 1 !important; |
||||
|
||||
overflow: visible !important; |
||||
display: block !important; |
||||
|
||||
text-align: left !important; |
||||
-webkit-perspective: none; |
||||
-moz-perspective: none; |
||||
-ms-perspective: none; |
||||
perspective: none; |
||||
|
||||
-webkit-perspective-origin: 50% 50%; |
||||
-moz-perspective-origin: 50% 50%; |
||||
-ms-perspective-origin: 50% 50%; |
||||
perspective-origin: 50% 50%; |
||||
} |
||||
.reveal .slides section { |
||||
visibility: visible !important; |
||||
position: static !important; |
||||
width: auto !important; |
||||
height: auto !important; |
||||
display: block !important; |
||||
overflow: visible !important; |
||||
|
||||
left: 0 !important; |
||||
top: 0 !important; |
||||
margin-left: 0 !important; |
||||
margin-top: 0 !important; |
||||
padding: 60px 20px !important; |
||||
z-index: auto !important; |
||||
|
||||
opacity: 1 !important; |
||||
|
||||
page-break-after: always !important; |
||||
|
||||
-webkit-transform-style: flat !important; |
||||
-moz-transform-style: flat !important; |
||||
-ms-transform-style: flat !important; |
||||
transform-style: flat !important; |
||||
|
||||
-webkit-transform: none !important; |
||||
-moz-transform: none !important; |
||||
-ms-transform: none !important; |
||||
transform: none !important; |
||||
|
||||
-webkit-transition: none !important; |
||||
-moz-transition: none !important; |
||||
-ms-transition: none !important; |
||||
transition: none !important; |
||||
} |
||||
.reveal .slides section.stack { |
||||
padding: 0 !important; |
||||
} |
||||
.reveal section:last-of-type { |
||||
page-break-after: avoid !important; |
||||
} |
||||
.reveal section .fragment { |
||||
opacity: 1 !important; |
||||
visibility: visible !important; |
||||
|
||||
-webkit-transform: none !important; |
||||
-moz-transform: none !important; |
||||
-ms-transform: none !important; |
||||
transform: none !important; |
||||
} |
||||
.reveal section img { |
||||
display: block; |
||||
margin: 15px 0px; |
||||
background: rgba(255,255,255,1); |
||||
border: 1px solid #666; |
||||
box-shadow: none; |
||||
} |
||||
|
||||
.reveal section small { |
||||
font-size: 0.8em; |
||||
} |
||||
|
||||
} |
@ -1,160 +0,0 @@
|
||||
/** |
||||
* This stylesheet is used to print reveal.js |
||||
* presentations to PDF. |
||||
* |
||||
* https://github.com/hakimel/reveal.js#pdf-export |
||||
*/ |
||||
|
||||
* { |
||||
-webkit-print-color-adjust: exact; |
||||
} |
||||
|
||||
body { |
||||
margin: 0 auto !important; |
||||
border: 0; |
||||
padding: 0; |
||||
float: none !important; |
||||
overflow: visible; |
||||
} |
||||
|
||||
html { |
||||
width: 100%; |
||||
height: 100%; |
||||
overflow: visible; |
||||
} |
||||
|
||||
/* Remove any elements not needed in print. */ |
||||
.nestedarrow, |
||||
.reveal .controls, |
||||
.reveal .progress, |
||||
.reveal .playback, |
||||
.reveal.overview, |
||||
.fork-reveal, |
||||
.share-reveal, |
||||
.state-background { |
||||
display: none !important; |
||||
} |
||||
|
||||
h1, h2, h3, h4, h5, h6 { |
||||
text-shadow: 0 0 0 #000 !important; |
||||
} |
||||
|
||||
.reveal pre code { |
||||
overflow: hidden !important; |
||||
font-family: Courier, 'Courier New', monospace !important; |
||||
} |
||||
|
||||
ul, ol, div, p { |
||||
visibility: visible; |
||||
position: static; |
||||
width: auto; |
||||
height: auto; |
||||
display: block; |
||||
overflow: visible; |
||||
margin: auto; |
||||
} |
||||
.reveal { |
||||
width: auto !important; |
||||
height: auto !important; |
||||
overflow: hidden !important; |
||||
} |
||||
.reveal .slides { |
||||
position: static; |
||||
width: 100%; |
||||
height: auto; |
||||
|
||||
left: auto; |
||||
top: auto; |
||||
margin: 0 !important; |
||||
padding: 0 !important; |
||||
|
||||
overflow: visible; |
||||
display: block; |
||||
|
||||
-webkit-perspective: none; |
||||
-moz-perspective: none; |
||||
-ms-perspective: none; |
||||
perspective: none; |
||||
|
||||
-webkit-perspective-origin: 50% 50%; /* there isn't a none/auto value but 50-50 is the default */ |
||||
-moz-perspective-origin: 50% 50%; |
||||
-ms-perspective-origin: 50% 50%; |
||||
perspective-origin: 50% 50%; |
||||
} |
||||
|
||||
.reveal .slides section { |
||||
page-break-after: always !important; |
||||
|
||||
visibility: visible !important; |
||||
position: relative !important; |
||||
display: block !important; |
||||
position: relative !important; |
||||
|
||||
margin: 0 !important; |
||||
padding: 0 !important; |
||||
box-sizing: border-box !important; |
||||
min-height: 1px; |
||||
|
||||
opacity: 1 !important; |
||||
|
||||
-webkit-transform-style: flat !important; |
||||
-moz-transform-style: flat !important; |
||||
-ms-transform-style: flat !important; |
||||
transform-style: flat !important; |
||||
|
||||
-webkit-transform: none !important; |
||||
-moz-transform: none !important; |
||||
-ms-transform: none !important; |
||||
transform: none !important; |
||||
} |
||||
|
||||
.reveal section.stack { |
||||
margin: 0 !important; |
||||
padding: 0 !important; |
||||
page-break-after: avoid !important; |
||||
height: auto !important; |
||||
min-height: auto !important; |
||||
} |
||||
|
||||
.reveal img { |
||||
box-shadow: none; |
||||
} |
||||
|
||||
.reveal .roll { |
||||
overflow: visible; |
||||
line-height: 1em; |
||||
} |
||||
|
||||
/* Slide backgrounds are placed inside of their slide when exporting to PDF */ |
||||
.reveal section .slide-background { |
||||
display: block !important; |
||||
position: absolute; |
||||
top: 0; |
||||
left: 0; |
||||
width: 100%; |
||||
z-index: -1; |
||||
} |
||||
|
||||
/* All elements should be above the slide-background */ |
||||
.reveal section>* { |
||||
position: relative; |
||||
z-index: 1; |
||||
} |
||||
|
||||
/* Display slide speaker notes when 'showNotes' is enabled */ |
||||
.reveal .speaker-notes-pdf { |
||||
display: block; |
||||
width: 100%; |
||||
max-height: none; |
||||
left: auto; |
||||
top: auto; |
||||
z-index: 100; |
||||
} |
||||
|
||||
/* Display slide numbers when 'slideNumber' is enabled */ |
||||
.reveal .slide-number-pdf { |
||||
display: block; |
||||
position: absolute; |
||||
font-size: 14px; |
||||
} |
||||
|
@ -1,21 +0,0 @@
|
||||
## Dependencies |
||||
|
||||
Themes are written using Sass to keep things modular and reduce the need for repeated selectors across files. Make sure that you have the reveal.js development environment including the Grunt dependencies installed before proceding: https://github.com/hakimel/reveal.js#full-setup |
||||
|
||||
## Creating a Theme |
||||
|
||||
To create your own theme, start by duplicating a ```.scss``` file in [/css/theme/source](https://github.com/hakimel/reveal.js/blob/master/css/theme/source). It will be automatically compiled by Grunt from Sass to CSS (see the [Gruntfile](https://github.com/hakimel/reveal.js/blob/master/Gruntfile.js)) when you run `grunt css-themes`. |
||||
|
||||
Each theme file does four things in the following order: |
||||
|
||||
1. **Include [/css/theme/template/mixins.scss](https://github.com/hakimel/reveal.js/blob/master/css/theme/template/mixins.scss)** |
||||
Shared utility functions. |
||||
|
||||
2. **Include [/css/theme/template/settings.scss](https://github.com/hakimel/reveal.js/blob/master/css/theme/template/settings.scss)** |
||||
Declares a set of custom variables that the template file (step 4) expects. Can be overridden in step 3. |
||||
|
||||
3. **Override** |
||||
This is where you override the default theme. Either by specifying variables (see [settings.scss](https://github.com/hakimel/reveal.js/blob/master/css/theme/template/settings.scss) for reference) or by adding any selectors and styles you please. |
||||
|
||||
4. **Include [/css/theme/template/theme.scss](https://github.com/hakimel/reveal.js/blob/master/css/theme/template/theme.scss)** |
||||
The template theme file which will generate final CSS output based on the currently defined variables. |
@ -1,291 +0,0 @@
|
||||
/** |
||||
* Beige theme for reveal.js. |
||||
* |
||||
* Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se |
||||
*/ |
||||
@import url(../../lib/font/league-gothic/league-gothic.css); |
||||
@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic); |
||||
/********************************************* |
||||
* GLOBAL STYLES |
||||
*********************************************/ |
||||
body { |
||||
background: #f7f2d3; |
||||
background: -moz-radial-gradient(center, circle cover, white 0%, #f7f2d3 100%); |
||||
background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, white), color-stop(100%, #f7f2d3)); |
||||
background: -webkit-radial-gradient(center, circle cover, white 0%, #f7f2d3 100%); |
||||
background: -o-radial-gradient(center, circle cover, white 0%, #f7f2d3 100%); |
||||
background: -ms-radial-gradient(center, circle cover, white 0%, #f7f2d3 100%); |
||||
background: radial-gradient(center, circle cover, white 0%, #f7f2d3 100%); |
||||
background-color: #f7f3de; } |
||||
|
||||
.reveal { |
||||
font-family: "Lato", sans-serif; |
||||
font-size: 36px; |
||||
font-weight: normal; |
||||
color: #333; } |
||||
|
||||
::selection { |
||||
color: #fff; |
||||
background: rgba(79, 64, 28, 0.99); |
||||
text-shadow: none; } |
||||
|
||||
.reveal .slides > section, |
||||
.reveal .slides > section > section { |
||||
line-height: 1.3; |
||||
font-weight: inherit; } |
||||
|
||||
/********************************************* |
||||
* HEADERS |
||||
*********************************************/ |
||||
.reveal h1, |
||||
.reveal h2, |
||||
.reveal h3, |
||||
.reveal h4, |
||||
.reveal h5, |
||||
.reveal h6 { |
||||
margin: 0 0 20px 0; |
||||
color: #333; |
||||
font-family: "League Gothic", Impact, sans-serif; |
||||
font-weight: normal; |
||||
line-height: 1.2; |
||||
letter-spacing: normal; |
||||
text-transform: uppercase; |
||||
text-shadow: none; |
||||
word-wrap: break-word; } |
||||
|
||||
.reveal h1 { |
||||
font-size: 3.77em; } |
||||
|
||||
.reveal h2 { |
||||
font-size: 2.11em; } |
||||
|
||||
.reveal h3 { |
||||
font-size: 1.55em; } |
||||
|
||||
.reveal h4 { |
||||
font-size: 1em; } |
||||
|
||||
.reveal h1 { |
||||
text-shadow: 0 1px 0 #ccc, 0 2px 0 #c9c9c9, 0 3px 0 #bbb, 0 4px 0 #b9b9b9, 0 5px 0 #aaa, 0 6px 1px rgba(0, 0, 0, 0.1), 0 0 5px rgba(0, 0, 0, 0.1), 0 1px 3px rgba(0, 0, 0, 0.3), 0 3px 5px rgba(0, 0, 0, 0.2), 0 5px 10px rgba(0, 0, 0, 0.25), 0 20px 20px rgba(0, 0, 0, 0.15); } |
||||
|
||||
/********************************************* |
||||
* OTHER |
||||
*********************************************/ |
||||
.reveal p { |
||||
margin: 20px 0; |
||||
line-height: 1.3; } |
||||
|
||||
/* Ensure certain elements are never larger than the slide itself */ |
||||
.reveal img, |
||||
.reveal video, |
||||
.reveal iframe { |
||||
max-width: 95%; |
||||
max-height: 95%; } |
||||
|
||||
.reveal strong, |
||||
.reveal b { |
||||
font-weight: bold; } |
||||
|
||||
.reveal em { |
||||
font-style: italic; } |
||||
|
||||
.reveal ol, |
||||
.reveal dl, |
||||
.reveal ul { |
||||
display: inline-block; |
||||
text-align: left; |
||||
margin: 0 0 0 1em; } |
||||
|
||||
.reveal ol { |
||||
list-style-type: decimal; } |
||||
|
||||
.reveal ul { |
||||
list-style-type: disc; } |
||||
|
||||
.reveal ul ul { |
||||
list-style-type: square; } |
||||
|
||||
.reveal ul ul ul { |
||||
list-style-type: circle; } |
||||
|
||||
.reveal ul ul, |
||||
.reveal ul ol, |
||||
.reveal ol ol, |
||||
.reveal ol ul { |
||||
display: block; |
||||
margin-left: 40px; } |
||||
|
||||
.reveal dt { |
||||
font-weight: bold; } |
||||
|
||||
.reveal dd { |
||||
margin-left: 40px; } |
||||
|
||||
.reveal q, |
||||
.reveal blockquote { |
||||
quotes: none; } |
||||
|
||||
.reveal blockquote { |
||||
display: block; |
||||
position: relative; |
||||
width: 70%; |
||||
margin: 20px auto; |
||||
padding: 5px; |
||||
font-style: italic; |
||||
background: rgba(255, 255, 255, 0.05); |
||||
box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); } |
||||
|
||||
.reveal blockquote p:first-child, |
||||
.reveal blockquote p:last-child { |
||||
display: inline-block; } |
||||
|
||||
.reveal q { |
||||
font-style: italic; } |
||||
|
||||
.reveal pre { |
||||
display: block; |
||||
position: relative; |
||||
width: 90%; |
||||
margin: 20px auto; |
||||
text-align: left; |
||||
font-size: 0.55em; |
||||
font-family: monospace; |
||||
line-height: 1.2em; |
||||
word-wrap: break-word; |
||||
box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3); } |
||||
|
||||
.reveal code { |
||||
font-family: monospace; } |
||||
|
||||
.reveal pre code { |
||||
display: block; |
||||
padding: 5px; |
||||
overflow: auto; |
||||
max-height: 400px; |
||||
word-wrap: normal; } |
||||
|
||||
.reveal table { |
||||
margin: auto; |
||||
border-collapse: collapse; |
||||
border-spacing: 0; } |
||||
|
||||
.reveal table th { |
||||
font-weight: bold; } |
||||
|
||||
.reveal table th, |
||||
.reveal table td { |
||||
text-align: left; |
||||
padding: 0.2em 0.5em 0.2em 0.5em; |
||||
border-bottom: 1px solid; } |
||||
|
||||
.reveal table th[align="center"], |
||||
.reveal table td[align="center"] { |
||||
text-align: center; } |
||||
|
||||
.reveal table th[align="right"], |
||||
.reveal table td[align="right"] { |
||||
text-align: right; } |
||||
|
||||
.reveal table tbody tr:last-child th, |
||||
.reveal table tbody tr:last-child td { |
||||
border-bottom: none; } |
||||
|
||||
.reveal sup { |
||||
vertical-align: super; } |
||||
|
||||
.reveal sub { |
||||
vertical-align: sub; } |
||||
|
||||
.reveal small { |
||||
display: inline-block; |
||||
font-size: 0.6em; |
||||
line-height: 1.2em; |
||||
vertical-align: top; } |
||||
|
||||
.reveal small * { |
||||
vertical-align: top; } |
||||
|
||||
/********************************************* |
||||
* LINKS |
||||
*********************************************/ |
||||
.reveal a { |
||||
color: #8b743d; |
||||
text-decoration: none; |
||||
-webkit-transition: color .15s ease; |
||||
-moz-transition: color .15s ease; |
||||
transition: color .15s ease; } |
||||
|
||||
.reveal a:hover { |
||||
color: #c0a86e; |
||||
text-shadow: none; |
||||
border: none; } |
||||
|
||||
.reveal .roll span:after { |
||||
color: #fff; |
||||
background: #564826; } |
||||
|
||||
/********************************************* |
||||
* IMAGES |
||||
*********************************************/ |
||||
.reveal section img { |
||||
margin: 15px 0px; |
||||
background: rgba(255, 255, 255, 0.12); |
||||
border: 4px solid #333; |
||||
box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); } |
||||
|
||||
.reveal section img.plain { |
||||
border: 0; |
||||
box-shadow: none; } |
||||
|
||||
.reveal a img { |
||||
-webkit-transition: all .15s linear; |
||||
-moz-transition: all .15s linear; |
||||
transition: all .15s linear; } |
||||
|
||||
.reveal a:hover img { |
||||
background: rgba(255, 255, 255, 0.2); |
||||
border-color: #8b743d; |
||||
box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); } |
||||
|
||||
/********************************************* |
||||
* NAVIGATION CONTROLS |
||||
*********************************************/ |
||||
.reveal .controls .navigate-left, |
||||
.reveal .controls .navigate-left.enabled { |
||||
border-right-color: #8b743d; } |
||||
|
||||
.reveal .controls .navigate-right, |
||||
.reveal .controls .navigate-right.enabled { |
||||
border-left-color: #8b743d; } |
||||
|
||||
.reveal .controls .navigate-up, |
||||
.reveal .controls .navigate-up.enabled { |
||||
border-bottom-color: #8b743d; } |
||||
|
||||
.reveal .controls .navigate-down, |
||||
.reveal .controls .navigate-down.enabled { |
||||
border-top-color: #8b743d; } |
||||
|
||||
.reveal .controls .navigate-left.enabled:hover { |
||||
border-right-color: #c0a86e; } |
||||
|
||||
.reveal .controls .navigate-right.enabled:hover { |
||||
border-left-color: #c0a86e; } |
||||
|
||||
.reveal .controls .navigate-up.enabled:hover { |
||||
border-bottom-color: #c0a86e; } |
||||
|
||||
.reveal .controls .navigate-down.enabled:hover { |
||||
border-top-color: #c0a86e; } |
||||
|
||||
/********************************************* |
||||
* PROGRESS BAR |
||||
*********************************************/ |
||||
.reveal .progress { |
||||
background: rgba(0, 0, 0, 0.2); } |
||||
|
||||
.reveal .progress span { |
||||
background: #8b743d; |
||||
-webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); |
||||
-moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); |
||||
transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); } |
@ -1,287 +0,0 @@
|
||||
/** |
||||
* Black theme for reveal.js. This is the opposite of the 'white' theme. |
||||
* |
||||
* By Hakim El Hattab, http://hakim.se |
||||
*/ |
||||
@import url(../../lib/font/source-sans-pro/source-sans-pro.css); |
||||
section.has-light-background, section.has-light-background h1, section.has-light-background h2, section.has-light-background h3, section.has-light-background h4, section.has-light-background h5, section.has-light-background h6 { |
||||
color: #222; } |
||||
|
||||
/********************************************* |
||||
* GLOBAL STYLES |
||||
*********************************************/ |
||||
body { |
||||
background: #222; |
||||
background-color: #222; } |
||||
|
||||
.reveal { |
||||
font-family: "Source Sans Pro", Helvetica, sans-serif; |
||||
font-size: 38px; |
||||
font-weight: normal; |
||||
color: #fff; } |
||||
|
||||
::selection { |
||||
color: #fff; |
||||
background: #bee4fd; |
||||
text-shadow: none; } |
||||
|
||||
.reveal .slides > section, |
||||
.reveal .slides > section > section { |
||||
line-height: 1.3; |
||||
font-weight: inherit; } |
||||
|
||||
/********************************************* |
||||
* HEADERS |
||||
*********************************************/ |
||||
.reveal h1, |
||||
.reveal h2, |
||||
.reveal h3, |
||||
.reveal h4, |
||||
.reveal h5, |
||||
.reveal h6 { |
||||
margin: 0 0 20px 0; |
||||
color: #fff; |
||||
font-family: "Source Sans Pro", Helvetica, sans-serif; |
||||
font-weight: 600; |
||||
line-height: 1.2; |
||||
letter-spacing: normal; |
||||
text-transform: uppercase; |
||||
text-shadow: none; |
||||
word-wrap: break-word; } |
||||
|
||||
.reveal h1 { |
||||
font-size: 2.5em; } |
||||
|
||||
.reveal h2 { |
||||
font-size: 1.6em; } |
||||
|
||||
.reveal h3 { |
||||
font-size: 1.3em; } |
||||
|
||||
.reveal h4 { |
||||
font-size: 1em; } |
||||
|
||||
.reveal h1 { |
||||
text-shadow: none; } |
||||
|
||||
/********************************************* |
||||
* OTHER |
||||
*********************************************/ |
||||
.reveal p { |
||||
margin: 20px 0; |
||||
line-height: 1.3; } |
||||
|
||||
/* Ensure certain elements are never larger than the slide itself */ |
||||
.reveal img, |
||||
.reveal video, |
||||
.reveal iframe { |
||||
max-width: 95%; |
||||
max-height: 95%; } |
||||
|
||||
.reveal strong, |
||||
.reveal b { |
||||
font-weight: bold; } |
||||
|
||||
.reveal em { |
||||
font-style: italic; } |
||||
|
||||
.reveal ol, |
||||
.reveal dl, |
||||
.reveal ul { |
||||
display: inline-block; |
||||
text-align: left; |
||||
margin: 0 0 0 1em; } |
||||
|
||||
.reveal ol { |
||||
list-style-type: decimal; } |
||||
|
||||
.reveal ul { |
||||
list-style-type: disc; } |
||||
|
||||
.reveal ul ul { |
||||
list-style-type: square; } |
||||
|
||||
.reveal ul ul ul { |
||||
list-style-type: circle; } |
||||
|
||||
.reveal ul ul, |
||||
.reveal ul ol, |
||||
.reveal ol ol, |
||||
.reveal ol ul { |
||||
display: block; |
||||
margin-left: 40px; } |
||||
|
||||
.reveal dt { |
||||
font-weight: bold; } |
||||
|
||||
.reveal dd { |
||||
margin-left: 40px; } |
||||
|
||||
.reveal q, |
||||
.reveal blockquote { |
||||
quotes: none; } |
||||
|
||||
.reveal blockquote { |
||||
display: block; |
||||
position: relative; |
||||
width: 70%; |
||||
margin: 20px auto; |
||||
padding: 5px; |
||||
font-style: italic; |
||||
background: rgba(255, 255, 255, 0.05); |
||||
box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); } |
||||
|
||||
.reveal blockquote p:first-child, |
||||
.reveal blockquote p:last-child { |
||||
display: inline-block; } |
||||
|
||||
.reveal q { |
||||
font-style: italic; } |
||||
|
||||
.reveal pre { |
||||
display: block; |
||||
position: relative; |
||||
width: 90%; |
||||
margin: 20px auto; |
||||
text-align: left; |
||||
font-size: 0.55em; |
||||
font-family: monospace; |
||||
line-height: 1.2em; |
||||
word-wrap: break-word; |
||||
box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3); } |
||||
|
||||
.reveal code { |
||||
font-family: monospace; } |
||||
|
||||
.reveal pre code { |
||||
display: block; |
||||
padding: 5px; |
||||
overflow: auto; |
||||
max-height: 400px; |
||||
word-wrap: normal; } |
||||
|
||||
.reveal table { |
||||
margin: auto; |
||||
border-collapse: collapse; |
||||
border-spacing: 0; } |
||||
|
||||
.reveal table th { |
||||
font-weight: bold; } |
||||
|
||||
.reveal table th, |
||||
.reveal table td { |
||||
text-align: left; |
||||
padding: 0.2em 0.5em 0.2em 0.5em; |
||||
border-bottom: 1px solid; } |
||||
|
||||
.reveal table th[align="center"], |
||||
.reveal table td[align="center"] { |
||||
text-align: center; } |
||||
|
||||
.reveal table th[align="right"], |
||||
.reveal table td[align="right"] { |
||||
text-align: right; } |
||||
|
||||
.reveal table tbody tr:last-child th, |
||||
.reveal table tbody tr:last-child td { |
||||
border-bottom: none; } |
||||
|
||||
.reveal sup { |
||||
vertical-align: super; } |
||||
|
||||
.reveal sub { |
||||
vertical-align: sub; } |
||||
|
||||
.reveal small { |
||||
display: inline-block; |
||||
font-size: 0.6em; |
||||
line-height: 1.2em; |
||||
vertical-align: top; } |
||||
|
||||
.reveal small * { |
||||
vertical-align: top; } |
||||
|
||||
/********************************************* |
||||
* LINKS |
||||
*********************************************/ |
||||
.reveal a { |
||||
color: #42affa; |
||||
text-decoration: none; |
||||
-webkit-transition: color .15s ease; |
||||
-moz-transition: color .15s ease; |
||||
transition: color .15s ease; } |
||||
|
||||
.reveal a:hover { |
||||
color: #8dcffc; |
||||
text-shadow: none; |
||||
border: none; } |
||||
|
||||
.reveal .roll span:after { |
||||
color: #fff; |
||||
background: #068de9; } |
||||
|
||||
/********************************************* |
||||
* IMAGES |
||||
*********************************************/ |
||||
.reveal section img { |
||||
margin: 15px 0px; |
||||
background: rgba(255, 255, 255, 0.12); |
||||
border: 4px solid #fff; |
||||
box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); } |
||||
|
||||
.reveal section img.plain { |
||||
border: 0; |
||||
box-shadow: none; } |
||||
|
||||
.reveal a img { |
||||
-webkit-transition: all .15s linear; |
||||
-moz-transition: all .15s linear; |
||||
transition: all .15s linear; } |
||||
|
||||
.reveal a:hover img { |
||||
background: rgba(255, 255, 255, 0.2); |
||||
border-color: #42affa; |
||||
box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); } |
||||
|
||||
/********************************************* |
||||
* NAVIGATION CONTROLS |
||||
*********************************************/ |
||||
.reveal .controls .navigate-left, |
||||
.reveal .controls .navigate-left.enabled { |
||||
border-right-color: #42affa; } |
||||
|
||||
.reveal .controls .navigate-right, |
||||
.reveal .controls .navigate-right.enabled { |
||||
border-left-color: #42affa; } |
||||
|
||||
.reveal .controls .navigate-up, |
||||
.reveal .controls .navigate-up.enabled { |
||||
border-bottom-color: #42affa; } |
||||
|
||||
.reveal .controls .navigate-down, |
||||
.reveal .controls .navigate-down.enabled { |
||||
border-top-color: #42affa; } |
||||
|
||||
.reveal .controls .navigate-left.enabled:hover { |
||||
border-right-color: #8dcffc; } |
||||
|
||||
.reveal .controls .navigate-right.enabled:hover { |
||||
border-left-color: #8dcffc; } |
||||
|
||||
.reveal .controls .navigate-up.enabled:hover { |
||||
border-bottom-color: #8dcffc; } |
||||
|
||||
.reveal .controls .navigate-down.enabled:hover { |
||||
border-top-color: #8dcffc; } |
||||
|
||||
/********************************************* |
||||
* PROGRESS BAR |
||||
*********************************************/ |
||||
.reveal .progress { |
||||
background: rgba(0, 0, 0, 0.2); } |
||||
|
||||
.reveal .progress span { |
||||
background: #42affa; |
||||
-webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); |
||||
-moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); |
||||
transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); } |
@ -1,310 +0,0 @@
|
||||
/** |
||||
* Blood theme for reveal.js |
||||
* Author: Walther http://github.com/Walther |
||||
* |
||||
* Designed to be used with highlight.js theme |
||||
* "monokai_sublime.css" available from |
||||
* https://github.com/isagalaev/highlight.js/ |
||||
* |
||||
* For other themes, change $codeBackground accordingly. |
||||
* |
||||
*/ |
||||
@import url(https://fonts.googleapis.com/css?family=Ubuntu:300,700,300italic,700italic); |
||||
/********************************************* |
||||
* GLOBAL STYLES |
||||
*********************************************/ |
||||
body { |
||||
background: #222; |
||||
background-color: #222; } |
||||
|
||||
.reveal { |
||||
font-family: Ubuntu, "sans-serif"; |
||||
font-size: 36px; |
||||
font-weight: normal; |
||||
color: #eee; } |
||||
|
||||
::selection { |
||||
color: #fff; |
||||
background: #a23; |
||||
text-shadow: none; } |
||||
|
||||
.reveal .slides > section, |
||||
.reveal .slides > section > section { |
||||
line-height: 1.3; |
||||
font-weight: inherit; } |
||||
|
||||
/********************************************* |
||||
* HEADERS |
||||
*********************************************/ |
||||
.reveal h1, |
||||
.reveal h2, |
||||
.reveal h3, |
||||
.reveal h4, |
||||
.reveal h5, |
||||
.reveal h6 { |
||||
margin: 0 0 20px 0; |
||||
color: #eee; |
||||
font-family: Ubuntu, "sans-serif"; |
||||
font-weight: normal; |
||||
line-height: 1.2; |
||||
letter-spacing: normal; |
||||
text-transform: uppercase; |
||||
text-shadow: 2px 2px 2px #222; |
||||
word-wrap: break-word; } |
||||
|
||||
.reveal h1 { |
||||
font-size: 3.77em; } |
||||
|
||||
.reveal h2 { |
||||
font-size: 2.11em; } |
||||
|
||||
.reveal h3 { |
||||
font-size: 1.55em; } |
||||
|
||||
.reveal h4 { |
||||
font-size: 1em; } |
||||
|
||||
.reveal h1 { |
||||
text-shadow: 0 1px 0 #ccc, 0 2px 0 #c9c9c9, 0 3px 0 #bbb, 0 4px 0 #b9b9b9, 0 5px 0 #aaa, 0 6px 1px rgba(0, 0, 0, 0.1), 0 0 5px rgba(0, 0, 0, 0.1), 0 1px 3px rgba(0, 0, 0, 0.3), 0 3px 5px rgba(0, 0, 0, 0.2), 0 5px 10px rgba(0, 0, 0, 0.25), 0 20px 20px rgba(0, 0, 0, 0.15); } |
||||
|
||||
/********************************************* |
||||
* OTHER |
||||
*********************************************/ |
||||
.reveal p { |
||||
margin: 20px 0; |
||||
line-height: 1.3; } |
||||
|
||||
/* Ensure certain elements are never larger than the slide itself */ |
||||
.reveal img, |
||||
.reveal video, |
||||
.reveal iframe { |
||||
max-width: 95%; |
||||
max-height: 95%; } |
||||
|
||||
.reveal strong, |
||||
.reveal b { |
||||
font-weight: bold; } |
||||
|
||||
.reveal em { |
||||
font-style: italic; } |
||||
|
||||
.reveal ol, |
||||
.reveal dl, |
||||
.reveal ul { |
||||
display: inline-block; |
||||
text-align: left; |
||||
margin: 0 0 0 1em; } |
||||
|
||||
.reveal ol { |
||||
list-style-type: decimal; } |
||||
|
||||
.reveal ul { |
||||
list-style-type: disc; } |
||||
|
||||
.reveal ul ul { |
||||
list-style-type: square; } |
||||
|
||||
.reveal ul ul ul { |
||||
list-style-type: circle; } |
||||
|
||||
.reveal ul ul, |
||||
.reveal ul ol, |
||||
.reveal ol ol, |
||||
.reveal ol ul { |
||||
display: block; |
||||
margin-left: 40px; } |
||||
|
||||
.reveal dt { |
||||
font-weight: bold; } |
||||
|
||||
.reveal dd { |
||||
margin-left: 40px; } |
||||
|
||||
.reveal q, |
||||
.reveal blockquote { |
||||
quotes: none; } |
||||
|
||||
.reveal blockquote { |
||||
display: block; |
||||
position: relative; |
||||
width: 70%; |
||||
margin: 20px auto; |
||||
padding: 5px; |
||||
font-style: italic; |
||||
background: rgba(255, 255, 255, 0.05); |
||||
box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); } |
||||
|
||||
.reveal blockquote p:first-child, |
||||
.reveal blockquote p:last-child { |
||||
display: inline-block; } |
||||
|
||||
.reveal q { |
||||
font-style: italic; } |
||||
|
||||
.reveal pre { |
||||
display: block; |
||||
position: relative; |
||||
width: 90%; |
||||
margin: 20px auto; |
||||
text-align: left; |
||||
font-size: 0.55em; |
||||
font-family: monospace; |
||||
line-height: 1.2em; |
||||
word-wrap: break-word; |
||||
box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3); } |
||||
|
||||
.reveal code { |
||||
font-family: monospace; } |
||||
|
||||
.reveal pre code { |
||||
display: block; |
||||
padding: 5px; |
||||
overflow: auto; |
||||
max-height: 400px; |
||||
word-wrap: normal; } |
||||
|
||||
.reveal table { |
||||
margin: auto; |
||||
border-collapse: collapse; |
||||
border-spacing: 0; } |
||||
|
||||
.reveal table th { |
||||
font-weight: bold; } |
||||
|
||||
.reveal table th, |
||||
.reveal table td { |
||||
text-align: left; |
||||
padding: 0.2em 0.5em 0.2em 0.5em; |
||||
border-bottom: 1px solid; } |
||||
|
||||
.reveal table th[align="center"], |
||||
.reveal table td[align="center"] { |
||||
text-align: center; } |
||||
|
||||
.reveal table th[align="right"], |
||||
.reveal table td[align="right"] { |
||||
text-align: right; } |
||||
|
||||
.reveal table tbody tr:last-child th, |
||||
.reveal table tbody tr:last-child td { |
||||
border-bottom: none; } |
||||
|
||||
.reveal sup { |
||||
vertical-align: super; } |
||||
|
||||
.reveal sub { |
||||
vertical-align: sub; } |
||||
|
||||
.reveal small { |
||||
display: inline-block; |
||||
font-size: 0.6em; |
||||
line-height: 1.2em; |
||||
vertical-align: top; } |
||||
|
||||
.reveal small * { |
||||
vertical-align: top; } |
||||
|
||||
/********************************************* |
||||
* LINKS |
||||
*********************************************/ |
||||
.reveal a { |
||||
color: #a23; |
||||
text-decoration: none; |
||||
-webkit-transition: color .15s ease; |
||||
-moz-transition: color .15s ease; |
||||
transition: color .15s ease; } |
||||
|
||||
.reveal a:hover { |
||||
color: #dd5566; |
||||
text-shadow: none; |
||||
border: none; } |
||||
|
||||
.reveal .roll span:after { |
||||
color: #fff; |
||||
background: #6a1520; } |
||||
|
||||
/********************************************* |
||||
* IMAGES |
||||
*********************************************/ |
||||
.reveal section img { |
||||
margin: 15px 0px; |
||||
background: rgba(255, 255, 255, 0.12); |
||||
border: 4px solid #eee; |
||||
box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); } |
||||
|
||||
.reveal section img.plain { |
||||
border: 0; |
||||
box-shadow: none; } |
||||
|
||||
.reveal a img { |
||||
-webkit-transition: all .15s linear; |
||||
-moz-transition: all .15s linear; |
||||
transition: all .15s linear; } |
||||
|
||||
.reveal a:hover img { |
||||
background: rgba(255, 255, 255, 0.2); |
||||
border-color: #a23; |
||||
box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); } |
||||
|
||||
/********************************************* |
||||
* NAVIGATION CONTROLS |
||||
*********************************************/ |
||||
.reveal .controls .navigate-left, |
||||
.reveal .controls .navigate-left.enabled { |
||||
border-right-color: #a23; } |
||||
|
||||
.reveal .controls .navigate-right, |
||||
.reveal .controls .navigate-right.enabled { |
||||
border-left-color: #a23; } |
||||
|
||||
.reveal .controls .navigate-up, |
||||
.reveal .controls .navigate-up.enabled { |
||||
border-bottom-color: #a23; } |
||||
|
||||
.reveal .controls .navigate-down, |
||||
.reveal .controls .navigate-down.enabled { |
||||
border-top-color: #a23; } |
||||
|
||||
.reveal .controls .navigate-left.enabled:hover { |
||||
border-right-color: #dd5566; } |
||||
|
||||
.reveal .controls .navigate-right.enabled:hover { |
||||
border-left-color: #dd5566; } |
||||
|
||||
.reveal .controls .navigate-up.enabled:hover { |
||||
border-bottom-color: #dd5566; } |
||||
|
||||
.reveal .controls .navigate-down.enabled:hover { |
||||
border-top-color: #dd5566; } |
||||
|
||||
/********************************************* |
||||
* PROGRESS BAR |
||||
*********************************************/ |
||||
.reveal .progress { |
||||
background: rgba(0, 0, 0, 0.2); } |
||||
|
||||
.reveal .progress span { |
||||
background: #a23; |
||||
-webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); |
||||
-moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); |
||||
transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); } |
||||
|
||||
.reveal p { |
||||
font-weight: 300; |
||||
text-shadow: 1px 1px #222; } |
||||
|
||||
.reveal h1, |
||||
.reveal h2, |
||||
.reveal h3, |
||||
.reveal h4, |
||||
.reveal h5, |
||||
.reveal h6 { |
||||
font-weight: 700; } |
||||
|
||||
.reveal p code { |
||||
background-color: #23241f; |
||||
display: inline-block; |
||||
border-radius: 7px; } |
||||
|
||||
.reveal small code { |
||||
vertical-align: baseline; } |
@ -1,293 +0,0 @@
|
||||
/** |
||||
* League theme for reveal.js. |
||||
* |
||||
* This was the default theme pre-3.0.0. |
||||
* |
||||
* Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se |
||||
*/ |
||||
@import url(../../lib/font/league-gothic/league-gothic.css); |
||||
@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic); |
||||
/********************************************* |
||||
* GLOBAL STYLES |
||||
*********************************************/ |
||||
body { |
||||
background: #1c1e20; |
||||
background: -moz-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%); |
||||
background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, #555a5f), color-stop(100%, #1c1e20)); |
||||
background: -webkit-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%); |
||||
background: -o-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%); |
||||
background: -ms-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%); |
||||
background: radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%); |
||||
background-color: #2b2b2b; } |
||||
|
||||
.reveal { |
||||
font-family: "Lato", sans-serif; |
||||
font-size: 36px; |
||||
font-weight: normal; |
||||
color: #eee; } |
||||
|
||||
::selection { |
||||
color: #fff; |
||||
background: #FF5E99; |
||||
text-shadow: none; } |
||||
|
||||
.reveal .slides > section, |
||||
.reveal .slides > section > section { |
||||
line-height: 1.3; |
||||
font-weight: inherit; } |
||||
|
||||
/********************************************* |
||||
* HEADERS |
||||
*********************************************/ |
||||
.reveal h1, |
||||
.reveal h2, |
||||
.reveal h3, |
||||
.reveal h4, |
||||
.reveal h5, |
||||
.reveal h6 { |
||||
margin: 0 0 20px 0; |
||||
color: #eee; |
||||
font-family: "League Gothic", Impact, sans-serif; |
||||
font-weight: normal; |
||||
line-height: 1.2; |
||||
letter-spacing: normal; |
||||
text-transform: uppercase; |
||||
text-shadow: 0px 0px 6px rgba(0, 0, 0, 0.2); |
||||
word-wrap: break-word; } |
||||
|
||||
.reveal h1 { |
||||
font-size: 3.77em; } |
||||
|
||||
.reveal h2 { |
||||
font-size: 2.11em; } |
||||
|
||||
.reveal h3 { |
||||
font-size: 1.55em; } |
||||
|
||||
.reveal h4 { |
||||
font-size: 1em; } |
||||
|
||||
.reveal h1 { |
||||
text-shadow: 0 1px 0 #ccc, 0 2px 0 #c9c9c9, 0 3px 0 #bbb, 0 4px 0 #b9b9b9, 0 5px 0 #aaa, 0 6px 1px rgba(0, 0, 0, 0.1), 0 0 5px rgba(0, 0, 0, 0.1), 0 1px 3px rgba(0, 0, 0, 0.3), 0 3px 5px rgba(0, 0, 0, 0.2), 0 5px 10px rgba(0, 0, 0, 0.25), 0 20px 20px rgba(0, 0, 0, 0.15); } |
||||
|
||||
/********************************************* |
||||
* OTHER |
||||
*********************************************/ |
||||
.reveal p { |
||||
margin: 20px 0; |
||||
line-height: 1.3; } |
||||
|
||||
/* Ensure certain elements are never larger than the slide itself */ |
||||
.reveal img, |
||||
.reveal video, |
||||
.reveal iframe { |
||||
max-width: 95%; |
||||
max-height: 95%; } |
||||
|
||||
.reveal strong, |
||||
.reveal b { |
||||
font-weight: bold; } |
||||
|
||||
.reveal em { |
||||
font-style: italic; } |
||||
|
||||
.reveal ol, |
||||
.reveal dl, |
||||
.reveal ul { |
||||
display: inline-block; |
||||
text-align: left; |
||||
margin: 0 0 0 1em; } |
||||
|
||||
.reveal ol { |
||||
list-style-type: decimal; } |
||||
|
||||
.reveal ul { |
||||
list-style-type: disc; } |
||||
|
||||
.reveal ul ul { |
||||
list-style-type: square; } |
||||
|
||||
.reveal ul ul ul { |
||||
list-style-type: circle; } |
||||
|
||||
.reveal ul ul, |
||||
.reveal ul ol, |
||||
.reveal ol ol, |
||||
.reveal ol ul { |
||||
display: block; |
||||
margin-left: 40px; } |
||||
|
||||
.reveal dt { |
||||
font-weight: bold; } |
||||
|
||||
.reveal dd { |
||||
margin-left: 40px; } |
||||
|
||||
.reveal q, |
||||
.reveal blockquote { |
||||
quotes: none; } |
||||
|
||||
.reveal blockquote { |
||||
display: block; |
||||
position: relative; |
||||
width: 70%; |
||||
margin: 20px auto; |
||||
padding: 5px; |
||||
font-style: italic; |
||||
background: rgba(255, 255, 255, 0.05); |
||||
box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); } |
||||
|
||||
.reveal blockquote p:first-child, |
||||
.reveal blockquote p:last-child { |
||||
display: inline-block; } |
||||
|
||||
.reveal q { |
||||
font-style: italic; } |
||||
|
||||
.reveal pre { |
||||
display: block; |
||||
position: relative; |
||||
width: 90%; |
||||
margin: 20px auto; |
||||
text-align: left; |
||||
font-size: 0.55em; |
||||
font-family: monospace; |
||||
line-height: 1.2em; |
||||
word-wrap: break-word; |
||||
box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3); } |
||||
|
||||
.reveal code { |
||||
font-family: monospace; } |
||||
|
||||
.reveal pre code { |
||||
display: block; |
||||
padding: 5px; |
||||
overflow: auto; |
||||
max-height: 400px; |
||||
word-wrap: normal; } |
||||
|
||||
.reveal table { |
||||
margin: auto; |
||||
border-collapse: collapse; |
||||
border-spacing: 0; } |
||||
|
||||
.reveal table th { |
||||
font-weight: bold; } |
||||
|
||||
.reveal table th, |
||||
.reveal table td { |
||||
text-align: left; |
||||
padding: 0.2em 0.5em 0.2em 0.5em; |
||||
border-bottom: 1px solid; } |
||||
|
||||
.reveal table th[align="center"], |
||||
.reveal table td[align="center"] { |
||||
text-align: center; } |
||||
|
||||
.reveal table th[align="right"], |
||||
.reveal table td[align="right"] { |
||||
text-align: right; } |
||||
|
||||
.reveal table tbody tr:last-child th, |
||||
.reveal table tbody tr:last-child td { |
||||
border-bottom: none; } |
||||
|
||||
.reveal sup { |
||||
vertical-align: super; } |
||||
|
||||
.reveal sub { |
||||
vertical-align: sub; } |
||||
|
||||
.reveal small { |
||||
display: inline-block; |
||||
font-size: 0.6em; |
||||
line-height: 1.2em; |
||||
vertical-align: top; } |
||||
|
||||
.reveal small * { |
||||
vertical-align: top; } |
||||
|
||||
/********************************************* |
||||
* LINKS |
||||
*********************************************/ |
||||
.reveal a { |
||||
color: #13DAEC; |
||||
text-decoration: none; |
||||
-webkit-transition: color .15s ease; |
||||
-moz-transition: color .15s ease; |
||||
transition: color .15s ease; } |
||||
|
||||
.reveal a:hover { |
||||
color: #71e9f4; |
||||
text-shadow: none; |
||||
border: none; } |
||||
|
||||
.reveal .roll span:after { |
||||
color: #fff; |
||||
background: #0d99a5; } |
||||
|
||||
/********************************************* |
||||
* IMAGES |
||||
*********************************************/ |
||||
.reveal section img { |
||||
margin: 15px 0px; |
||||
background: rgba(255, 255, 255, 0.12); |
||||
border: 4px solid #eee; |
||||
box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); } |
||||
|
||||
.reveal section img.plain { |
||||
border: 0; |
||||
box-shadow: none; } |
||||
|
||||
.reveal a img { |
||||
-webkit-transition: all .15s linear; |
||||
-moz-transition: all .15s linear; |
||||
transition: all .15s linear; } |
||||
|
||||
.reveal a:hover img { |
||||
background: rgba(255, 255, 255, 0.2); |
||||
border-color: #13DAEC; |
||||
box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); } |
||||
|
||||
/********************************************* |
||||
* NAVIGATION CONTROLS |
||||
*********************************************/ |
||||
.reveal .controls .navigate-left, |
||||
.reveal .controls .navigate-left.enabled { |
||||
border-right-color: #13DAEC; } |
||||
|
||||
.reveal .controls .navigate-right, |
||||
.reveal .controls .navigate-right.enabled { |
||||
border-left-color: #13DAEC; } |
||||
|
||||
.reveal .controls .navigate-up, |
||||
.reveal .controls .navigate-up.enabled { |
||||
border-bottom-color: #13DAEC; } |
||||
|
||||
.reveal .controls .navigate-down, |
||||
.reveal .controls .navigate-down.enabled { |
||||
border-top-color: #13DAEC; } |
||||
|
||||
.reveal .controls .navigate-left.enabled:hover { |
||||
border-right-color: #71e9f4; } |
||||
|
||||
.reveal .controls .navigate-right.enabled:hover { |
||||
border-left-color: #71e9f4; } |
||||
|
||||
.reveal .controls .navigate-up.enabled:hover { |
||||
border-bottom-color: #71e9f4; } |
||||
|
||||
.reveal .controls .navigate-down.enabled:hover { |
||||
border-top-color: #71e9f4; } |
||||
|
||||
/********************************************* |
||||
* PROGRESS BAR |
||||
*********************************************/ |
||||
.reveal .progress { |
||||
background: rgba(0, 0, 0, 0.2); } |
||||
|
||||
.reveal .progress span { |
||||
background: #13DAEC; |
||||
-webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); |
||||
-moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); |
||||
transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); } |
@ -1,291 +0,0 @@
|
||||
/** |
||||
* Solarized Dark theme for reveal.js. |
||||
* Author: Achim Staebler |
||||
*/ |
||||
@import url(../../lib/font/league-gothic/league-gothic.css); |
||||
@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic); |
||||
/** |
||||
* Solarized colors by Ethan Schoonover |
||||
*/ |
||||
html * { |
||||
color-profile: sRGB; |
||||
rendering-intent: auto; } |
||||
|
||||
/********************************************* |
||||
* GLOBAL STYLES |
||||
*********************************************/ |
||||
body { |
||||
background: #002b36; |
||||
background-color: #002b36; } |
||||
|
||||
.reveal { |
||||
font-family: "Lato", sans-serif; |
||||
font-size: 36px; |
||||
font-weight: normal; |
||||
color: #93a1a1; } |
||||
|
||||
::selection { |
||||
color: #fff; |
||||
background: #d33682; |
||||
text-shadow: none; } |
||||
|
||||
.reveal .slides > section, |
||||
.reveal .slides > section > section { |
||||
line-height: 1.3; |
||||
font-weight: inherit; } |
||||
|
||||
/********************************************* |
||||
* HEADERS |
||||
*********************************************/ |
||||
.reveal h1, |
||||
.reveal h2, |
||||
.reveal h3, |
||||
.reveal h4, |
||||
.reveal h5, |
||||
.reveal h6 { |
||||
margin: 0 0 20px 0; |
||||
color: #eee8d5; |
||||
font-family: "League Gothic", Impact, sans-serif; |
||||
font-weight: normal; |
||||
line-height: 1.2; |
||||
letter-spacing: normal; |
||||
text-transform: uppercase; |
||||
text-shadow: none; |
||||
word-wrap: break-word; } |
||||
|
||||
.reveal h1 { |
||||
font-size: 3.77em; } |
||||
|
||||
.reveal h2 { |
||||
font-size: 2.11em; } |
||||
|
||||
.reveal h3 { |
||||
font-size: 1.55em; } |
||||
|
||||
.reveal h4 { |
||||
font-size: 1em; } |
||||
|
||||
.reveal h1 { |
||||
text-shadow: none; } |
||||
|
||||
/********************************************* |
||||
* OTHER |
||||
*********************************************/ |
||||
.reveal p { |
||||
margin: 20px 0; |
||||
line-height: 1.3; } |
||||
|
||||
/* Ensure certain elements are never larger than the slide itself */ |
||||
.reveal img, |
||||
.reveal video, |
||||
.reveal iframe { |
||||
max-width: 95%; |
||||
max-height: 95%; } |
||||
|
||||
.reveal strong, |
||||
.reveal b { |
||||
font-weight: bold; } |
||||
|
||||
.reveal em { |
||||
font-style: italic; } |
||||
|
||||
.reveal ol, |
||||
.reveal dl, |
||||
.reveal ul { |
||||
display: inline-block; |
||||
text-align: left; |
||||
margin: 0 0 0 1em; } |
||||
|
||||
.reveal ol { |
||||
list-style-type: decimal; } |
||||
|
||||
.reveal ul { |
||||
list-style-type: disc; } |
||||
|
||||
.reveal ul ul { |
||||
list-style-type: square; } |
||||
|
||||
.reveal ul ul ul { |
||||
list-style-type: circle; } |
||||
|
||||
.reveal ul ul, |
||||
.reveal ul ol, |
||||
.reveal ol ol, |
||||
.reveal ol ul { |
||||
display: block; |
||||
margin-left: 40px; } |
||||
|
||||
.reveal dt { |
||||
font-weight: bold; } |
||||
|
||||
.reveal dd { |
||||
margin-left: 40px; } |
||||
|
||||
.reveal q, |
||||
.reveal blockquote { |
||||
quotes: none; } |
||||
|
||||
.reveal blockquote { |
||||
display: block; |
||||
position: relative; |
||||
width: 70%; |
||||
margin: 20px auto; |
||||
padding: 5px; |
||||
font-style: italic; |
||||
background: rgba(255, 255, 255, 0.05); |
||||
box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); } |
||||
|
||||
.reveal blockquote p:first-child, |
||||
.reveal blockquote p:last-child { |
||||
display: inline-block; } |
||||
|
||||
.reveal q { |
||||
font-style: italic; } |
||||
|
||||
.reveal pre { |
||||
display: block; |
||||
position: relative; |
||||
width: 90%; |
||||
margin: 20px auto; |
||||
text-align: left; |
||||
font-size: 0.55em; |
||||
font-family: monospace; |
||||
line-height: 1.2em; |
||||
word-wrap: break-word; |
||||
box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3); } |
||||
|
||||
.reveal code { |
||||
font-family: monospace; } |
||||
|
||||
.reveal pre code { |
||||
display: block; |
||||
padding: 5px; |
||||
overflow: auto; |
||||
max-height: 400px; |
||||
word-wrap: normal; } |
||||
|
||||
.reveal table { |
||||
margin: auto; |
||||
border-collapse: collapse; |
||||
border-spacing: 0; } |
||||
|
||||
.reveal table th { |
||||
font-weight: bold; } |
||||
|
||||
.reveal table th, |
||||
.reveal table td { |
||||
text-align: left; |
||||
padding: 0.2em 0.5em 0.2em 0.5em; |
||||
border-bottom: 1px solid; } |
||||
|
||||
.reveal table th[align="center"], |
||||
.reveal table td[align="center"] { |
||||
text-align: center; } |
||||
|
||||
.reveal table th[align="right"], |
||||
.reveal table td[align="right"] { |
||||
text-align: right; } |
||||
|
||||
.reveal table tbody tr:last-child th, |
||||
.reveal table tbody tr:last-child td { |
||||
border-bottom: none; } |
||||
|
||||
.reveal sup { |
||||
vertical-align: super; } |
||||
|
||||
.reveal sub { |
||||
vertical-align: sub; } |
||||
|
||||
.reveal small { |
||||
display: inline-block; |
||||
font-size: 0.6em; |
||||
line-height: 1.2em; |
||||
vertical-align: top; } |
||||
|
||||
.reveal small * { |
||||
vertical-align: top; } |
||||
|
||||
/********************************************* |
||||
* LINKS |
||||
*********************************************/ |
||||
.reveal a { |
||||
color: #268bd2; |
||||
text-decoration: none; |
||||
-webkit-transition: color .15s ease; |
||||
-moz-transition: color .15s ease; |
||||
transition: color .15s ease; } |
||||
|
||||
.reveal a:hover { |
||||
color: #78b9e6; |
||||
text-shadow: none; |
||||
border: none; } |
||||
|
||||
.reveal .roll span:after { |
||||
color: #fff; |
||||
background: #1a6091; } |
||||
|
||||
/********************************************* |
||||
* IMAGES |
||||
*********************************************/ |
||||
.reveal section img { |
||||
margin: 15px 0px; |
||||
background: rgba(255, 255, 255, 0.12); |
||||
border: 4px solid #93a1a1; |
||||
box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); } |
||||
|
||||
.reveal section img.plain { |
||||
border: 0; |
||||
box-shadow: none; } |
||||
|
||||
.reveal a img { |
||||
-webkit-transition: all .15s linear; |
||||
-moz-transition: all .15s linear; |
||||
transition: all .15s linear; } |
||||
|
||||
.reveal a:hover img { |
||||
background: rgba(255, 255, 255, 0.2); |
||||
border-color: #268bd2; |
||||
box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); } |
||||
|
||||
/********************************************* |
||||
* NAVIGATION CONTROLS |
||||
*********************************************/ |
||||
.reveal .controls .navigate-left, |
||||
.reveal .controls .navigate-left.enabled { |
||||
border-right-color: #268bd2; } |
||||
|
||||
.reveal .controls .navigate-right, |
||||
.reveal .controls .navigate-right.enabled { |
||||
border-left-color: #268bd2; } |
||||
|
||||
.reveal .controls .navigate-up, |
||||
.reveal .controls .navigate-up.enabled { |
||||
border-bottom-color: #268bd2; } |
||||
|
||||
.reveal .controls .navigate-down, |
||||
.reveal .controls .navigate-down.enabled { |
||||
border-top-color: #268bd2; } |
||||
|
||||
.reveal .controls .navigate-left.enabled:hover { |
||||
border-right-color: #78b9e6; } |
||||
|
||||
.reveal .controls .navigate-right.enabled:hover { |
||||
border-left-color: #78b9e6; } |
||||
|
||||
.reveal .controls .navigate-up.enabled:hover { |
||||
border-bottom-color: #78b9e6; } |
||||
|
||||
.reveal .controls .navigate-down.enabled:hover { |
||||
border-top-color: #78b9e6; } |
||||
|
||||
/********************************************* |
||||
* PROGRESS BAR |
||||
*********************************************/ |
||||
.reveal .progress { |
||||
background: rgba(0, 0, 0, 0.2); } |
||||
|
||||
.reveal .progress span { |
||||
background: #268bd2; |
||||
-webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); |
||||
-moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); |
||||
transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); } |
@ -1,285 +0,0 @@
|
||||
/** |
||||
* Black theme for reveal.js. |
||||
* |
||||
* Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se |
||||
*/ |
||||
@import url(https://fonts.googleapis.com/css?family=Montserrat:700); |
||||
@import url(https://fonts.googleapis.com/css?family=Open+Sans:400,700,400italic,700italic); |
||||
/********************************************* |
||||
* GLOBAL STYLES |
||||
*********************************************/ |
||||
body { |
||||
background: #111; |
||||
background-color: #111; } |
||||
|
||||
.reveal { |
||||
font-family: "Open Sans", sans-serif; |
||||
font-size: 30px; |
||||
font-weight: normal; |
||||
color: #eee; } |
||||
|
||||
::selection { |
||||
color: #fff; |
||||
background: #e7ad52; |
||||
text-shadow: none; } |
||||
|
||||
.reveal .slides > section, |
||||
.reveal .slides > section > section { |
||||
line-height: 1.3; |
||||
font-weight: inherit; } |
||||
|
||||
/********************************************* |
||||
* HEADERS |
||||
*********************************************/ |
||||
.reveal h1, |
||||
.reveal h2, |
||||
.reveal h3, |
||||
.reveal h4, |
||||
.reveal h5, |
||||
.reveal h6 { |
||||
margin: 0 0 20px 0; |
||||
color: #eee; |
||||
font-family: "Montserrat", Impact, sans-serif; |
||||
font-weight: normal; |
||||
line-height: 1.2; |
||||
letter-spacing: -0.03em; |
||||
text-transform: none; |
||||
text-shadow: none; |
||||
word-wrap: break-word; } |
||||
|
||||
.reveal h1 { |
||||
font-size: 3.77em; } |
||||
|
||||
.reveal h2 { |
||||
font-size: 2.11em; } |
||||
|
||||
.reveal h3 { |
||||
font-size: 1.55em; } |
||||
|
||||
.reveal h4 { |
||||
font-size: 1em; } |
||||
|
||||
.reveal h1 { |
||||
text-shadow: none; } |
||||
|
||||
/********************************************* |
||||
* OTHER |
||||
*********************************************/ |
||||
.reveal p { |
||||
margin: 20px 0; |
||||
line-height: 1.3; } |
||||
|
||||
/* Ensure certain elements are never larger than the slide itself */ |
||||
.reveal img, |
||||
.reveal video, |
||||
.reveal iframe { |
||||
max-width: 95%; |
||||
max-height: 95%; } |
||||
|
||||
.reveal strong, |
||||
.reveal b { |
||||
font-weight: bold; } |
||||
|
||||
.reveal em { |
||||
font-style: italic; } |
||||
|
||||
.reveal ol, |
||||
.reveal dl, |
||||
.reveal ul { |
||||
display: inline-block; |
||||
text-align: left; |
||||
margin: 0 0 0 1em; } |
||||
|
||||
.reveal ol { |
||||
list-style-type: decimal; } |
||||
|
||||
.reveal ul { |
||||
list-style-type: disc; } |
||||
|
||||
.reveal ul ul { |
||||
list-style-type: square; } |
||||
|
||||
.reveal ul ul ul { |
||||
list-style-type: circle; } |
||||
|
||||
.reveal ul ul, |
||||
.reveal ul ol, |
||||
.reveal ol ol, |
||||
.reveal ol ul { |
||||
display: block; |
||||
margin-left: 40px; } |
||||
|
||||
.reveal dt { |
||||
font-weight: bold; } |
||||
|
||||
.reveal dd { |
||||
margin-left: 40px; } |
||||
|
||||
.reveal q, |
||||
.reveal blockquote { |
||||
quotes: none; } |
||||
|
||||
.reveal blockquote { |
||||
display: block; |
||||
position: relative; |
||||
width: 70%; |
||||
margin: 20px auto; |
||||
padding: 5px; |
||||
font-style: italic; |
||||
background: rgba(255, 255, 255, 0.05); |
||||
box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); } |
||||
|
||||
.reveal blockquote p:first-child, |
||||
.reveal blockquote p:last-child { |
||||
display: inline-block; } |
||||
|
||||
.reveal q { |
||||
font-style: italic; } |
||||
|
||||
.reveal pre { |
||||
display: block; |
||||
position: relative; |
||||
width: 90%; |
||||
margin: 20px auto; |
||||
text-align: left; |
||||
font-size: 0.55em; |
||||
font-family: monospace; |
||||
line-height: 1.2em; |
||||
word-wrap: break-word; |
||||
box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3); } |
||||
|
||||
.reveal code { |
||||
font-family: monospace; } |
||||
|
||||
.reveal pre code { |
||||
display: block; |
||||
padding: 5px; |
||||
overflow: auto; |
||||
max-height: 400px; |
||||
word-wrap: normal; } |
||||
|
||||
.reveal table { |
||||
margin: auto; |
||||
border-collapse: collapse; |
||||
border-spacing: 0; } |
||||
|
||||
.reveal table th { |
||||
font-weight: bold; } |
||||
|
||||
.reveal table th, |
||||
.reveal table td { |
||||
text-align: left; |
||||
padding: 0.2em 0.5em 0.2em 0.5em; |
||||
border-bottom: 1px solid; } |
||||
|
||||
.reveal table th[align="center"], |
||||
.reveal table td[align="center"] { |
||||
text-align: center; } |
||||
|
||||
.reveal table th[align="right"], |
||||
.reveal table td[align="right"] { |
||||
text-align: right; } |
||||
|
||||
.reveal table tbody tr:last-child th, |
||||
.reveal table tbody tr:last-child td { |
||||
border-bottom: none; } |
||||
|
||||
.reveal sup { |
||||
vertical-align: super; } |
||||
|
||||
.reveal sub { |
||||
vertical-align: sub; } |
||||
|
||||
.reveal small { |
||||
display: inline-block; |
||||
font-size: 0.6em; |
||||
line-height: 1.2em; |
||||
vertical-align: top; } |
||||
|
||||
.reveal small * { |
||||
vertical-align: top; } |
||||
|
||||
/********************************************* |
||||
* LINKS |
||||
*********************************************/ |
||||
.reveal a { |
||||
color: #e7ad52; |
||||
text-decoration: none; |
||||
-webkit-transition: color .15s ease; |
||||
-moz-transition: color .15s ease; |
||||
transition: color .15s ease; } |
||||
|
||||
.reveal a:hover { |
||||
color: #f3d7ac; |
||||
text-shadow: none; |
||||
border: none; } |
||||
|
||||
.reveal .roll span:after { |
||||
color: #fff; |
||||
background: #d08a1d; } |
||||
|
||||
/********************************************* |
||||
* IMAGES |
||||
*********************************************/ |
||||
.reveal section img { |
||||
margin: 15px 0px; |
||||
background: rgba(255, 255, 255, 0.12); |
||||
border: 4px solid #eee; |
||||
box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); } |
||||
|
||||
.reveal section img.plain { |
||||
border: 0; |
||||
box-shadow: none; } |
||||
|
||||
.reveal a img { |
||||
-webkit-transition: all .15s linear; |
||||
-moz-transition: all .15s linear; |
||||
transition: all .15s linear; } |
||||
|
||||
.reveal a:hover img { |
||||
background: rgba(255, 255, 255, 0.2); |
||||
border-color: #e7ad52; |
||||
box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); } |
||||
|
||||
/********************************************* |
||||
* NAVIGATION CONTROLS |
||||
*********************************************/ |
||||
.reveal .controls .navigate-left, |
||||
.reveal .controls .navigate-left.enabled { |
||||
border-right-color: #e7ad52; } |
||||
|
||||
.reveal .controls .navigate-right, |
||||
.reveal .controls .navigate-right.enabled { |
||||
border-left-color: #e7ad52; } |
||||
|
||||
.reveal .controls .navigate-up, |
||||
.reveal .controls .navigate-up.enabled { |
||||
border-bottom-color: #e7ad52; } |
||||
|
||||
.reveal .controls .navigate-down, |
||||
.reveal .controls .navigate-down.enabled { |
||||
border-top-color: #e7ad52; } |
||||
|
||||
.reveal .controls .navigate-left.enabled:hover { |
||||
border-right-color: #f3d7ac; } |
||||
|
||||
.reveal .controls .navigate-right.enabled:hover { |
||||
border-left-color: #f3d7ac; } |
||||
|
||||
.reveal .controls .navigate-up.enabled:hover { |
||||
border-bottom-color: #f3d7ac; } |
||||
|
||||
.reveal .controls .navigate-down.enabled:hover { |
||||
border-top-color: #f3d7ac; } |
||||
|
||||
/********************************************* |
||||
* PROGRESS BAR |
||||
*********************************************/ |
||||
.reveal .progress { |
||||
background: rgba(0, 0, 0, 0.2); } |
||||
|
||||
.reveal .progress span { |
||||
background: #e7ad52; |
||||
-webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); |
||||
-moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); |
||||
transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); } |
@ -1,287 +0,0 @@
|
||||
/** |
||||
* A simple theme for reveal.js presentations, similar |
||||
* to the default theme. The accent color is brown. |
||||
* |
||||
* This theme is Copyright (C) 2012-2013 Owen Versteeg, http://owenversteeg.com - it is MIT licensed. |
||||
*/ |
||||
.reveal a { |
||||
line-height: 1.3em; } |
||||
|
||||
/********************************************* |
||||
* GLOBAL STYLES |
||||
*********************************************/ |
||||
body { |
||||
background: #F0F1EB; |
||||
background-color: #F0F1EB; } |
||||
|
||||
.reveal { |
||||
font-family: "Palatino Linotype", "Book Antiqua", Palatino, FreeSerif, serif; |
||||
font-size: 36px; |
||||
font-weight: normal; |
||||
color: #000; } |
||||
|
||||
::selection { |
||||
color: #fff; |
||||
background: #26351C; |
||||
text-shadow: none; } |
||||
|
||||
.reveal .slides > section, |
||||
.reveal .slides > section > section { |
||||
line-height: 1.3; |
||||
font-weight: inherit; } |
||||
|
||||
/********************************************* |
||||
* HEADERS |
||||
*********************************************/ |
||||
.reveal h1, |
||||
.reveal h2, |
||||
.reveal h3, |
||||
.reveal h4, |
||||
.reveal h5, |
||||
.reveal h6 { |
||||
margin: 0 0 20px 0; |
||||
color: #383D3D; |
||||
font-family: "Palatino Linotype", "Book Antiqua", Palatino, FreeSerif, serif; |
||||
font-weight: normal; |
||||
line-height: 1.2; |
||||
letter-spacing: normal; |
||||
text-transform: none; |
||||
text-shadow: none; |
||||
word-wrap: break-word; } |
||||
|
||||
.reveal h1 { |
||||
font-size: 3.77em; } |
||||
|
||||
.reveal h2 { |
||||
font-size: 2.11em; } |
||||
|
||||
.reveal h3 { |
||||
font-size: 1.55em; } |
||||
|
||||
.reveal h4 { |
||||
font-size: 1em; } |
||||
|
||||
.reveal h1 { |
||||
text-shadow: none; } |
||||
|
||||
/********************************************* |
||||
* OTHER |
||||
*********************************************/ |
||||
.reveal p { |
||||
margin: 20px 0; |
||||
line-height: 1.3; } |
||||
|
||||
/* Ensure certain elements are never larger than the slide itself */ |
||||
.reveal img, |
||||
.reveal video, |
||||
.reveal iframe { |
||||
max-width: 95%; |
||||
max-height: 95%; } |
||||
|
||||
.reveal strong, |
||||
.reveal b { |
||||
font-weight: bold; } |
||||
|
||||
.reveal em { |
||||
font-style: italic; } |
||||
|
||||
.reveal ol, |
||||
.reveal dl, |
||||
.reveal ul { |
||||
display: inline-block; |
||||
text-align: left; |
||||
margin: 0 0 0 1em; } |
||||
|
||||
.reveal ol { |
||||
list-style-type: decimal; } |
||||
|
||||
.reveal ul { |
||||
list-style-type: disc; } |
||||
|
||||
.reveal ul ul { |
||||
list-style-type: square; } |
||||
|
||||
.reveal ul ul ul { |
||||
list-style-type: circle; } |
||||
|
||||
.reveal ul ul, |
||||
.reveal ul ol, |
||||
.reveal ol ol, |
||||
.reveal ol ul { |
||||
display: block; |
||||
margin-left: 40px; } |
||||
|
||||
.reveal dt { |
||||
font-weight: bold; } |
||||
|
||||
.reveal dd { |
||||
margin-left: 40px; } |
||||
|
||||
.reveal q, |
||||
.reveal blockquote { |
||||
quotes: none; } |
||||
|
||||
.reveal blockquote { |
||||
display: block; |
||||
position: relative; |
||||
width: 70%; |
||||
margin: 20px auto; |
||||
padding: 5px; |
||||
font-style: italic; |
||||
background: rgba(255, 255, 255, 0.05); |
||||
box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); } |
||||
|
||||
.reveal blockquote p:first-child, |
||||
.reveal blockquote p:last-child { |
||||
display: inline-block; } |
||||
|
||||
.reveal q { |
||||
font-style: italic; } |
||||
|
||||
.reveal pre { |
||||
display: block; |
||||
position: relative; |
||||
width: 90%; |
||||
margin: 20px auto; |
||||
text-align: left; |
||||
font-size: 0.55em; |
||||
font-family: monospace; |
||||
line-height: 1.2em; |
||||
word-wrap: break-word; |
||||
box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3); } |
||||
|
||||
.reveal code { |
||||
font-family: monospace; } |
||||
|
||||
.reveal pre code { |
||||
display: block; |
||||
padding: 5px; |
||||
overflow: auto; |
||||
max-height: 400px; |
||||
word-wrap: normal; } |
||||
|
||||
.reveal table { |
||||
margin: auto; |
||||
border-collapse: collapse; |
||||
border-spacing: 0; } |
||||
|
||||
.reveal table th { |
||||
font-weight: bold; } |
||||
|
||||
.reveal table th, |
||||
.reveal table td { |
||||
text-align: left; |
||||
padding: 0.2em 0.5em 0.2em 0.5em; |
||||
border-bottom: 1px solid; } |
||||
|
||||
.reveal table th[align="center"], |
||||
.reveal table td[align="center"] { |
||||
text-align: center; } |
||||
|
||||
.reveal table th[align="right"], |
||||
.reveal table td[align="right"] { |
||||
text-align: right; } |
||||
|
||||
.reveal table tbody tr:last-child th, |
||||
.reveal table tbody tr:last-child td { |
||||
border-bottom: none; } |
||||
|
||||
.reveal sup { |
||||
vertical-align: super; } |
||||
|
||||
.reveal sub { |
||||
vertical-align: sub; } |
||||
|
||||
.reveal small { |
||||
display: inline-block; |
||||
font-size: 0.6em; |
||||
line-height: 1.2em; |
||||
vertical-align: top; } |
||||
|
||||
.reveal small * { |
||||
vertical-align: top; } |
||||
|
||||
/********************************************* |
||||
* LINKS |
||||
*********************************************/ |
||||
.reveal a { |
||||
color: #51483D; |
||||
text-decoration: none; |
||||
-webkit-transition: color .15s ease; |
||||
-moz-transition: color .15s ease; |
||||
transition: color .15s ease; } |
||||
|
||||
.reveal a:hover { |
||||
color: #8b7c69; |
||||
text-shadow: none; |
||||
border: none; } |
||||
|
||||
.reveal .roll span:after { |
||||
color: #fff; |
||||
background: #25211c; } |
||||
|
||||
/********************************************* |
||||
* IMAGES |
||||
*********************************************/ |
||||
.reveal section img { |
||||
margin: 15px 0px; |
||||
background: rgba(255, 255, 255, 0.12); |
||||
border: 4px solid #000; |
||||
box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); } |
||||
|
||||
.reveal section img.plain { |
||||
border: 0; |
||||
box-shadow: none; } |
||||
|
||||
.reveal a img { |
||||
-webkit-transition: all .15s linear; |
||||
-moz-transition: all .15s linear; |
||||
transition: all .15s linear; } |
||||
|
||||
.reveal a:hover img { |
||||
background: rgba(255, 255, 255, 0.2); |
||||
border-color: #51483D; |
||||
box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); } |
||||
|
||||
/********************************************* |
||||
* NAVIGATION CONTROLS |
||||
*********************************************/ |
||||
.reveal .controls .navigate-left, |
||||
.reveal .controls .navigate-left.enabled { |
||||
border-right-color: #51483D; } |
||||
|
||||
.reveal .controls .navigate-right, |
||||
.reveal .controls .navigate-right.enabled { |
||||
border-left-color: #51483D; } |
||||
|
||||
.reveal .controls .navigate-up, |
||||
.reveal .controls .navigate-up.enabled { |
||||
border-bottom-color: #51483D; } |
||||
|
||||
.reveal .controls .navigate-down, |
||||
.reveal .controls .navigate-down.enabled { |
||||
border-top-color: #51483D; } |
||||
|
||||
.reveal .controls .navigate-left.enabled:hover { |
||||
border-right-color: #8b7c69; } |
||||
|
||||
.reveal .controls .navigate-right.enabled:hover { |
||||
border-left-color: #8b7c69; } |
||||
|
||||
.reveal .controls .navigate-up.enabled:hover { |
||||
border-bottom-color: #8b7c69; } |
||||
|
||||
.reveal .controls .navigate-down.enabled:hover { |
||||
border-top-color: #8b7c69; } |
||||
|
||||
/********************************************* |
||||
* PROGRESS BAR |
||||
*********************************************/ |
||||
.reveal .progress { |
||||
background: rgba(0, 0, 0, 0.2); } |
||||
|
||||
.reveal .progress span { |
||||
background: #51483D; |
||||
-webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); |
||||
-moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); |
||||
transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); } |
@ -1,367 +0,0 @@
|
||||
/** |
||||
* SII theme for reveal.js. This theme is based on official White theme. |
||||
* |
||||
*/ |
||||
@import url(../../lib/font/source-sans-pro/source-sans-pro.css); |
||||
section.has-dark-background, section.has-dark-background h1, section.has-dark-background h2, section.has-dark-background h3, section.has-dark-background h4, section.has-dark-background h5, section.has-dark-background h6 { |
||||
color: #fff; } |
||||
|
||||
/********************************************* |
||||
* GLOBAL STYLES |
||||
*********************************************/ |
||||
|
||||
.align-left p{ |
||||
text-align: left; |
||||
} |
||||
|
||||
.min-code code { |
||||
font-size: 18px; |
||||
line-height: 1; |
||||
} |
||||
|
||||
|
||||
.min-code-14 code { |
||||
font-size: 14px; |
||||
line-height: 1; |
||||
} |
||||
|
||||
html { |
||||
background-color: #fff; /* fix dark background on full screen mode */ } |
||||
|
||||
body { |
||||
background: #fff; |
||||
background-color: #fff; |
||||
background-image: url('../../images/header-sii.png'); /* SII header with 5 colors */ |
||||
background-size: contain; |
||||
background-repeat: no-repeat; } |
||||
|
||||
.reveal { |
||||
font-family: "Source Sans Pro", Helvetica, sans-serif; |
||||
font-size: 36px; |
||||
font-weight: normal; |
||||
color: #222; } |
||||
|
||||
::selection { |
||||
color: #fff; |
||||
background: #98bdef; |
||||
text-shadow: none; } |
||||
|
||||
.reveal .slides > section, |
||||
.reveal .slides > section > section { |
||||
line-height: 1.3; |
||||
font-weight: inherit; } |
||||
|
||||
/********************************************* |
||||
* HEADERS |
||||
*********************************************/ |
||||
.reveal h1, |
||||
.reveal h2, |
||||
.reveal h3, |
||||
.reveal h4, |
||||
.reveal h5, |
||||
.reveal h6 { |
||||
margin: 0 0 20px 0; |
||||
color: #222; |
||||
font-family: "Source Sans Pro", Helvetica, sans-serif; |
||||
font-weight: 600; |
||||
line-height: 1.2; |
||||
letter-spacing: normal; |
||||
text-transform: uppercase; |
||||
text-shadow: none; |
||||
word-wrap: break-word; } |
||||
|
||||
.reveal h1 { |
||||
font-size: 2.5em; } |
||||
|
||||
.reveal h2 { |
||||
font-size: 1.6em; } |
||||
|
||||
.reveal h3 { |
||||
font-size: 1.3em; } |
||||
|
||||
.reveal h4 { |
||||
font-size: 1em; } |
||||
|
||||
.reveal h1 { |
||||
text-shadow: none; } |
||||
|
||||
/********************************************* |
||||
* OTHER |
||||
*********************************************/ |
||||
.reveal p { |
||||
margin: 20px 0; |
||||
line-height: 1.3; } |
||||
|
||||
/* Ensure certain elements are never larger than the slide itself */ |
||||
.reveal img, |
||||
.reveal video, |
||||
.reveal iframe { |
||||
max-width: 95%; |
||||
max-height: 95%; } |
||||
|
||||
.reveal strong, |
||||
.reveal b { |
||||
font-weight: bold; } |
||||
|
||||
.reveal em { |
||||
/*color: #559BDB; */ |
||||
text-decoration: underline;} |
||||
|
||||
.reveal pre em { |
||||
text-decoration: none; |
||||
} |
||||
|
||||
.reveal ol, |
||||
.reveal dl, |
||||
.reveal ul { |
||||
display: inline-block; |
||||
text-align: left; |
||||
margin: 0 0 0 1em; } |
||||
|
||||
.reveal ol { |
||||
list-style-type: decimal; } |
||||
|
||||
.reveal ul { |
||||
list-style-type: square; } |
||||
|
||||
.reveal ul ul { |
||||
list-style-type: disc; } |
||||
|
||||
.reveal ul ul ul { |
||||
list-style-type: circle; } |
||||
|
||||
.reveal ul ul, |
||||
.reveal ul ol, |
||||
.reveal ol ol, |
||||
.reveal ol ul { |
||||
display: block; |
||||
margin-left: 40px; } |
||||
|
||||
.reveal dt { |
||||
font-weight: bold; } |
||||
|
||||
.reveal dd { |
||||
margin-left: 40px; } |
||||
|
||||
.reveal q, |
||||
.reveal blockquote { |
||||
quotes: none; } |
||||
|
||||
.reveal blockquote { |
||||
display: block; |
||||
position: relative; |
||||
width: 70%; |
||||
margin: 20px auto; |
||||
padding: 5px; |
||||
font-style: italic; |
||||
background: rgba(255, 255, 255, 0.05); |
||||
box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); } |
||||
|
||||
.reveal blockquote p:first-child, |
||||
.reveal blockquote p:last-child { |
||||
display: inline-block; } |
||||
|
||||
.reveal q { |
||||
font-style: italic; } |
||||
|
||||
.reveal li pre, |
||||
.reveal pre { |
||||
display: block; |
||||
position: relative; |
||||
width: 90%; |
||||
margin: 20px auto; |
||||
text-align: left; |
||||
font-family: monospace; |
||||
line-height: 1.2em; |
||||
word-wrap: break-word; |
||||
box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3); |
||||
width: 100%; |
||||
font-size: 1.5rem; } |
||||
|
||||
.reveal code { |
||||
font-family: monospace; } |
||||
|
||||
.reveal li pre code { |
||||
background-color: #3F3F3F; |
||||
color: #DCDCDC; |
||||
font-size: 1.2rem; |
||||
line-height: 1.1em; |
||||
} |
||||
|
||||
.reveal li pre code, |
||||
.reveal pre code { |
||||
display: block; |
||||
padding: 5px; |
||||
overflow: auto; |
||||
max-height: 400px; |
||||
word-wrap: normal; } |
||||
|
||||
.lang-nohighlight { |
||||
background-color: #3F3F3F; |
||||
color: #DCDCDC; |
||||
} |
||||
|
||||
.reveal table { |
||||
margin: auto; |
||||
border-collapse: collapse; |
||||
border-spacing: 0; } |
||||
|
||||
.reveal table th { |
||||
font-weight: bold; } |
||||
|
||||
.reveal table th, |
||||
.reveal table td { |
||||
text-align: left; |
||||
padding: 0.2em 0.5em 0.2em 0.5em; |
||||
border-bottom: 1px solid; } |
||||
|
||||
.reveal table th[align="center"], |
||||
.reveal table td[align="center"] { |
||||
text-align: center; } |
||||
|
||||
.reveal table th[align="right"], |
||||
.reveal table td[align="right"] { |
||||
text-align: right; } |
||||
|
||||
.reveal sup { |
||||
vertical-align: super; } |
||||
|
||||
.reveal sub { |
||||
vertical-align: sub; } |
||||
|
||||
.reveal small { |
||||
font-size: 0.6em; |
||||
line-height: 1.2em; } |
||||
|
||||
.reveal p small code { |
||||
font-size: 1em; } |
||||
|
||||
|
||||
/********************************************* |
||||
* LINKS |
||||
*********************************************/ |
||||
.reveal a { |
||||
color: #6ca0e8; |
||||
text-decoration: underline; |
||||
-webkit-transition: color .15s ease; |
||||
-moz-transition: color .15s ease; |
||||
transition: color .15s ease; } |
||||
|
||||
.reveal a:hover { |
||||
color: #2a76dd; |
||||
border: none; } |
||||
|
||||
.reveal .roll span:after { |
||||
color: #fff; |
||||
background: #1a53a1; } |
||||
|
||||
/********************************************* |
||||
* IMAGES |
||||
*********************************************/ |
||||
.reveal section img { |
||||
margin: 15px 0px; |
||||
} |
||||
|
||||
.reveal section img.plain { |
||||
border: 0; |
||||
box-shadow: none; } |
||||
|
||||
.reveal a img { |
||||
-webkit-transition: all .15s linear; |
||||
-moz-transition: all .15s linear; |
||||
transition: all .15s linear; } |
||||
|
||||
.reveal a:hover img { |
||||
background: rgba(255, 255, 255, 0.2); |
||||
border-color: #2a76dd; |
||||
box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); } |
||||
|
||||
/********************************************* |
||||
* PROGRESS BAR |
||||
*********************************************/ |
||||
.reveal .progress { |
||||
background: rgba(0, 0, 0, 0.2); } |
||||
|
||||
.reveal .progress span { |
||||
-webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); |
||||
-moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); |
||||
transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); } |
||||
|
||||
/********************************************* |
||||
* Custom size for code |
||||
*********************************************/ |
||||
.reveal ul code, |
||||
.reveal p code , |
||||
.reveal td code { |
||||
padding: 0.1rem 0.4rem; |
||||
background-color: #dcdcdc; |
||||
color: #3F3F3F; |
||||
/* font-size: 2rem; */ |
||||
} |
||||
|
||||
.reveal pre { |
||||
width: 100%; |
||||
} |
||||
|
||||
.reveal td code { |
||||
padding: 0 0.5rem; |
||||
} |
||||
|
||||
/********************************************* |
||||
* Custom size for tables |
||||
*********************************************/ |
||||
.medium-table table { |
||||
font-size: 2rem; } |
||||
|
||||
.medium-table td code { |
||||
font-size: 1.6rem; } |
||||
|
||||
.small-table table { |
||||
font-size: 1.4rem; } |
||||
|
||||
.small-table td code { |
||||
font-size: 1.2rem; } |
||||
|
||||
/********************************************* |
||||
* Custom size for code |
||||
*********************************************/ |
||||
.medium-code pre { |
||||
line-height: 1.1em; |
||||
font-size: 1.2rem; } |
||||
|
||||
.small-code pre { |
||||
line-height: 1.0em; |
||||
font-size: 1rem; } |
||||
|
||||
/********************************************* |
||||
* Logo and footer |
||||
*********************************************/ |
||||
.logo { |
||||
position: absolute; |
||||
top: 2.5rem; |
||||
right: 1rem; |
||||
width: 10%; |
||||
} |
||||
|
||||
.footer { |
||||
position: absolute; |
||||
bottom: 0.2rem; |
||||
left: 0; |
||||
margin: 0.2rem; |
||||
padding: 0.2rem; |
||||
font-size: 0.8rem; |
||||
color: #fff; |
||||
background-color: #999999; |
||||
} |
||||
|
||||
.nologo-slide .logo { |
||||
display:none; } |
||||
|
||||
/********************************************* |
||||
* Display ordered list in cheat-sheet style |
||||
*********************************************/ |
||||
.cheat-sheet ol { |
||||
width: 100%; |
||||
list-style-type: disc; |
||||
list-style: none; |
||||
} |
@ -1,287 +0,0 @@
|
||||
/** |
||||
* A simple theme for reveal.js presentations, similar |
||||
* to the default theme. The accent color is darkblue. |
||||
* |
||||
* This theme is Copyright (C) 2012 Owen Versteeg, https://github.com/StereotypicalApps. It is MIT licensed. |
||||
* reveal.js is Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se |
||||
*/ |
||||
@import url(https://fonts.googleapis.com/css?family=News+Cycle:400,700); |
||||
@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic); |
||||
/********************************************* |
||||
* GLOBAL STYLES |
||||
*********************************************/ |
||||
body { |
||||
background: #fff; |
||||
background-color: #fff; } |
||||
|
||||
.reveal { |
||||
font-family: "Lato", sans-serif; |
||||
font-size: 36px; |
||||
font-weight: normal; |
||||
color: #000; } |
||||
|
||||
::selection { |
||||
color: #fff; |
||||
background: rgba(0, 0, 0, 0.99); |
||||
text-shadow: none; } |
||||
|
||||
.reveal .slides > section, |
||||
.reveal .slides > section > section { |
||||
line-height: 1.3; |
||||
font-weight: inherit; } |
||||
|
||||
/********************************************* |
||||
* HEADERS |
||||
*********************************************/ |
||||
.reveal h1, |
||||
.reveal h2, |
||||
.reveal h3, |
||||
.reveal h4, |
||||
.reveal h5, |
||||
.reveal h6 { |
||||
margin: 0 0 20px 0; |
||||
color: #000; |
||||
font-family: "News Cycle", Impact, sans-serif; |
||||
font-weight: normal; |
||||
line-height: 1.2; |
||||
letter-spacing: normal; |
||||
text-transform: none; |
||||
text-shadow: none; |
||||
word-wrap: break-word; } |
||||
|
||||
.reveal h1 { |
||||
font-size: 3.77em; } |
||||
|
||||
.reveal h2 { |
||||
font-size: 2.11em; } |
||||
|
||||
.reveal h3 { |
||||
font-size: 1.55em; } |
||||
|
||||
.reveal h4 { |
||||
font-size: 1em; } |
||||
|
||||
.reveal h1 { |
||||
text-shadow: none; } |
||||
|
||||
/********************************************* |
||||
* OTHER |
||||
*********************************************/ |
||||
.reveal p { |
||||
margin: 20px 0; |
||||
line-height: 1.3; } |
||||
|
||||
/* Ensure certain elements are never larger than the slide itself */ |
||||
.reveal img, |
||||
.reveal video, |
||||
.reveal iframe { |
||||
max-width: 95%; |
||||
max-height: 95%; } |
||||
|
||||
.reveal strong, |
||||
.reveal b { |
||||
font-weight: bold; } |
||||
|
||||
.reveal em { |
||||
font-style: italic; } |
||||
|
||||
.reveal ol, |
||||
.reveal dl, |
||||
.reveal ul { |
||||
display: inline-block; |
||||
text-align: left; |
||||
margin: 0 0 0 1em; } |
||||
|
||||
.reveal ol { |
||||
list-style-type: decimal; } |
||||
|
||||
.reveal ul { |
||||
list-style-type: disc; } |
||||
|
||||
.reveal ul ul { |
||||
list-style-type: square; } |
||||
|
||||
.reveal ul ul ul { |
||||
list-style-type: circle; } |
||||
|
||||
.reveal ul ul, |
||||
.reveal ul ol, |
||||
.reveal ol ol, |
||||
.reveal ol ul { |
||||
display: block; |
||||
margin-left: 40px; } |
||||
|
||||
.reveal dt { |
||||
font-weight: bold; } |
||||
|
||||
.reveal dd { |
||||
margin-left: 40px; } |
||||
|
||||
.reveal q, |
||||
.reveal blockquote { |
||||
quotes: none; } |
||||
|
||||
.reveal blockquote { |
||||
display: block; |
||||
position: relative; |
||||
width: 70%; |
||||
margin: 20px auto; |
||||
padding: 5px; |
||||
font-style: italic; |
||||
background: rgba(255, 255, 255, 0.05); |
||||
box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); } |
||||
|
||||
.reveal blockquote p:first-child, |
||||
.reveal blockquote p:last-child { |
||||
display: inline-block; } |
||||
|
||||
.reveal q { |
||||
font-style: italic; } |
||||
|
||||
.reveal pre { |
||||
display: block; |
||||
position: relative; |
||||
width: 90%; |
||||
margin: 20px auto; |
||||
text-align: left; |
||||
font-size: 0.55em; |
||||
font-family: monospace; |
||||
line-height: 1.2em; |
||||
word-wrap: break-word; |
||||
box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3); } |
||||
|
||||
.reveal code { |
||||
font-family: monospace; } |
||||
|
||||
.reveal pre code { |
||||
display: block; |
||||
padding: 5px; |
||||
overflow: auto; |
||||
max-height: 400px; |
||||
word-wrap: normal; } |
||||
|
||||
.reveal table { |
||||
margin: auto; |
||||
border-collapse: collapse; |
||||
border-spacing: 0; } |
||||
|
||||
.reveal table th { |
||||
font-weight: bold; } |
||||
|
||||
.reveal table th, |
||||
.reveal table td { |
||||
text-align: left; |
||||
padding: 0.2em 0.5em 0.2em 0.5em; |
||||
border-bottom: 1px solid; } |
||||
|
||||
.reveal table th[align="center"], |
||||
.reveal table td[align="center"] { |
||||
text-align: center; } |
||||
|
||||
.reveal table th[align="right"], |
||||
.reveal table td[align="right"] { |
||||
text-align: right; } |
||||
|
||||
.reveal table tbody tr:last-child th, |
||||
.reveal table tbody tr:last-child td { |
||||
border-bottom: none; } |
||||
|
||||
.reveal sup { |
||||
vertical-align: super; } |
||||
|
||||
.reveal sub { |
||||
vertical-align: sub; } |
||||
|
||||
.reveal small { |
||||
display: inline-block; |
||||
font-size: 0.6em; |
||||
line-height: 1.2em; |
||||
vertical-align: top; } |
||||
|
||||
.reveal small * { |
||||
vertical-align: top; } |
||||
|
||||
/********************************************* |
||||
* LINKS |
||||
*********************************************/ |
||||
.reveal a { |
||||
color: #00008B; |
||||
text-decoration: none; |
||||
-webkit-transition: color .15s ease; |
||||
-moz-transition: color .15s ease; |
||||
transition: color .15s ease; } |
||||
|
||||
.reveal a:hover { |
||||
color: #0000f1; |
||||
text-shadow: none; |
||||
border: none; } |
||||
|
||||
.reveal .roll span:after { |
||||
color: #fff; |
||||
background: #00003f; } |
||||
|
||||
/********************************************* |
||||
* IMAGES |
||||
*********************************************/ |
||||
.reveal section img { |
||||
margin: 15px 0px; |
||||
background: rgba(255, 255, 255, 0.12); |
||||
border: 4px solid #000; |
||||
box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); } |
||||
|
||||
.reveal section img.plain { |
||||
border: 0; |
||||
box-shadow: none; } |
||||
|
||||
.reveal a img { |
||||
-webkit-transition: all .15s linear; |
||||
-moz-transition: all .15s linear; |
||||
transition: all .15s linear; } |
||||
|
||||
.reveal a:hover img { |
||||
background: rgba(255, 255, 255, 0.2); |
||||
border-color: #00008B; |
||||
box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); } |
||||
|
||||
/********************************************* |
||||
* NAVIGATION CONTROLS |
||||
*********************************************/ |
||||
.reveal .controls .navigate-left, |
||||
.reveal .controls .navigate-left.enabled { |
||||
border-right-color: #00008B; } |
||||
|
||||
.reveal .controls .navigate-right, |
||||
.reveal .controls .navigate-right.enabled { |
||||
border-left-color: #00008B; } |
||||
|
||||
.reveal .controls .navigate-up, |
||||
.reveal .controls .navigate-up.enabled { |
||||
border-bottom-color: #00008B; } |
||||
|
||||
.reveal .controls .navigate-down, |
||||
.reveal .controls .navigate-down.enabled { |
||||
border-top-color: #00008B; } |
||||
|
||||
.reveal .controls .navigate-left.enabled:hover { |
||||
border-right-color: #0000f1; } |
||||
|
||||
.reveal .controls .navigate-right.enabled:hover { |
||||
border-left-color: #0000f1; } |
||||
|
||||
.reveal .controls .navigate-up.enabled:hover { |
||||
border-bottom-color: #0000f1; } |
||||
|
||||
.reveal .controls .navigate-down.enabled:hover { |
||||
border-top-color: #0000f1; } |
||||
|
||||
/********************************************* |
||||
* PROGRESS BAR |
||||
*********************************************/ |
||||
.reveal .progress { |
||||
background: rgba(0, 0, 0, 0.2); } |
||||
|
||||
.reveal .progress span { |
||||
background: #00008B; |
||||
-webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); |
||||
-moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); |
||||
transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); } |
@ -1,294 +0,0 @@
|
||||
/** |
||||
* Sky theme for reveal.js. |
||||
* |
||||
* Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se |
||||
*/ |
||||
@import url(https://fonts.googleapis.com/css?family=Quicksand:400,700,400italic,700italic); |
||||
@import url(https://fonts.googleapis.com/css?family=Open+Sans:400italic,700italic,400,700); |
||||
.reveal a { |
||||
line-height: 1.3em; } |
||||
|
||||
/********************************************* |
||||
* GLOBAL STYLES |
||||
*********************************************/ |
||||
body { |
||||
background: #add9e4; |
||||
background: -moz-radial-gradient(center, circle cover, #f7fbfc 0%, #add9e4 100%); |
||||
background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, #f7fbfc), color-stop(100%, #add9e4)); |
||||
background: -webkit-radial-gradient(center, circle cover, #f7fbfc 0%, #add9e4 100%); |
||||
background: -o-radial-gradient(center, circle cover, #f7fbfc 0%, #add9e4 100%); |
||||
background: -ms-radial-gradient(center, circle cover, #f7fbfc 0%, #add9e4 100%); |
||||
background: radial-gradient(center, circle cover, #f7fbfc 0%, #add9e4 100%); |
||||
background-color: #f7fbfc; } |
||||
|
||||
.reveal { |
||||
font-family: "Open Sans", sans-serif; |
||||
font-size: 36px; |
||||
font-weight: normal; |
||||
color: #333; } |
||||
|
||||
::selection { |
||||
color: #fff; |
||||
background: #134674; |
||||
text-shadow: none; } |
||||
|
||||
.reveal .slides > section, |
||||
.reveal .slides > section > section { |
||||
line-height: 1.3; |
||||
font-weight: inherit; } |
||||
|
||||
/********************************************* |
||||
* HEADERS |
||||
*********************************************/ |
||||
.reveal h1, |
||||
.reveal h2, |
||||
.reveal h3, |
||||
.reveal h4, |
||||
.reveal h5, |
||||
.reveal h6 { |
||||
margin: 0 0 20px 0; |
||||
color: #333; |
||||
font-family: "Quicksand", sans-serif; |
||||
font-weight: normal; |
||||
line-height: 1.2; |
||||
letter-spacing: -0.08em; |
||||
text-transform: uppercase; |
||||
text-shadow: none; |
||||
word-wrap: break-word; } |
||||
|
||||
.reveal h1 { |
||||
font-size: 3.77em; } |
||||
|
||||
.reveal h2 { |
||||
font-size: 2.11em; } |
||||
|
||||
.reveal h3 { |
||||
font-size: 1.55em; } |
||||
|
||||
.reveal h4 { |
||||
font-size: 1em; } |
||||
|
||||
.reveal h1 { |
||||
text-shadow: none; } |
||||
|
||||
/********************************************* |
||||
* OTHER |
||||
*********************************************/ |
||||
.reveal p { |
||||
margin: 20px 0; |
||||
line-height: 1.3; } |
||||
|
||||
/* Ensure certain elements are never larger than the slide itself */ |
||||
.reveal img, |
||||
.reveal video, |
||||
.reveal iframe { |
||||
max-width: 95%; |
||||
max-height: 95%; } |
||||
|
||||
.reveal strong, |
||||
.reveal b { |
||||
font-weight: bold; } |
||||
|
||||
.reveal em { |
||||
font-style: italic; } |
||||
|
||||
.reveal ol, |
||||
.reveal dl, |
||||
.reveal ul { |
||||
display: inline-block; |
||||
text-align: left; |
||||
margin: 0 0 0 1em; } |
||||
|
||||
.reveal ol { |
||||
list-style-type: decimal; } |
||||
|
||||
.reveal ul { |
||||
list-style-type: disc; } |
||||
|
||||
.reveal ul ul { |
||||
list-style-type: square; } |
||||
|
||||
.reveal ul ul ul { |
||||
list-style-type: circle; } |
||||
|
||||
.reveal ul ul, |
||||
.reveal ul ol, |
||||
.reveal ol ol, |
||||
.reveal ol ul { |
||||
display: block; |
||||
margin-left: 40px; } |
||||
|
||||
.reveal dt { |
||||
font-weight: bold; } |
||||
|
||||
.reveal dd { |
||||
margin-left: 40px; } |
||||
|
||||
.reveal q, |
||||
.reveal blockquote { |
||||
quotes: none; } |
||||
|
||||
.reveal blockquote { |
||||
display: block; |
||||
position: relative; |
||||
width: 70%; |
||||
margin: 20px auto; |
||||
padding: 5px; |
||||
font-style: italic; |
||||
background: rgba(255, 255, 255, 0.05); |
||||
box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); } |
||||
|
||||
.reveal blockquote p:first-child, |
||||
.reveal blockquote p:last-child { |
||||
display: inline-block; } |
||||
|
||||
.reveal q { |
||||
font-style: italic; } |
||||
|
||||
.reveal pre { |
||||
display: block; |
||||
position: relative; |
||||
width: 90%; |
||||
margin: 20px auto; |
||||
text-align: left; |
||||
font-size: 0.55em; |
||||
font-family: monospace; |
||||
line-height: 1.2em; |
||||
word-wrap: break-word; |
||||
box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3); } |
||||
|
||||
.reveal code { |
||||
font-family: monospace; } |
||||
|
||||
.reveal pre code { |
||||
display: block; |
||||
padding: 5px; |
||||
overflow: auto; |
||||
max-height: 400px; |
||||
word-wrap: normal; } |
||||
|
||||
.reveal table { |
||||
margin: auto; |
||||
border-collapse: collapse; |
||||
border-spacing: 0; } |
||||
|
||||
.reveal table th { |
||||
font-weight: bold; } |
||||
|
||||
.reveal table th, |
||||
.reveal table td { |
||||
text-align: left; |
||||
padding: 0.2em 0.5em 0.2em 0.5em; |
||||
border-bottom: 1px solid; } |
||||
|
||||
.reveal table th[align="center"], |
||||
.reveal table td[align="center"] { |
||||
text-align: center; } |
||||
|
||||
.reveal table th[align="right"], |
||||
.reveal table td[align="right"] { |
||||
text-align: right; } |
||||
|
||||
.reveal table tbody tr:last-child th, |
||||
.reveal table tbody tr:last-child td { |
||||
border-bottom: none; } |
||||
|
||||
.reveal sup { |
||||
vertical-align: super; } |
||||
|
||||
.reveal sub { |
||||
vertical-align: sub; } |
||||
|
||||
.reveal small { |
||||
display: inline-block; |
||||
font-size: 0.6em; |
||||
line-height: 1.2em; |
||||
vertical-align: top; } |
||||
|
||||
.reveal small * { |
||||
vertical-align: top; } |
||||
|
||||
/********************************************* |
||||
* LINKS |
||||
*********************************************/ |
||||
.reveal a { |
||||
color: #3b759e; |
||||
text-decoration: none; |
||||
-webkit-transition: color .15s ease; |
||||
-moz-transition: color .15s ease; |
||||
transition: color .15s ease; } |
||||
|
||||
.reveal a:hover { |
||||
color: #74a7cb; |
||||
text-shadow: none; |
||||
border: none; } |
||||
|
||||
.reveal .roll span:after { |
||||
color: #fff; |
||||
background: #264c66; } |
||||
|
||||
/********************************************* |
||||
* IMAGES |
||||
*********************************************/ |
||||
.reveal section img { |
||||
margin: 15px 0px; |
||||
background: rgba(255, 255, 255, 0.12); |
||||
border: 4px solid #333; |
||||
box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); } |
||||
|
||||
.reveal section img.plain { |
||||
border: 0; |
||||
box-shadow: none; } |
||||
|
||||
.reveal a img { |
||||
-webkit-transition: all .15s linear; |
||||
-moz-transition: all .15s linear; |
||||
transition: all .15s linear; } |
||||
|
||||
.reveal a:hover img { |
||||
background: rgba(255, 255, 255, 0.2); |
||||
border-color: #3b759e; |
||||
box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); } |
||||
|
||||
/********************************************* |
||||
* NAVIGATION CONTROLS |
||||
*********************************************/ |
||||
.reveal .controls .navigate-left, |
||||
.reveal .controls .navigate-left.enabled { |
||||
border-right-color: #3b759e; } |
||||
|
||||
.reveal .controls .navigate-right, |
||||
.reveal .controls .navigate-right.enabled { |
||||
border-left-color: #3b759e; } |
||||
|
||||
.reveal .controls .navigate-up, |
||||
.reveal .controls .navigate-up.enabled { |
||||
border-bottom-color: #3b759e; } |
||||
|
||||
.reveal .controls .navigate-down, |
||||
.reveal .controls .navigate-down.enabled { |
||||
border-top-color: #3b759e; } |
||||
|
||||
.reveal .controls .navigate-left.enabled:hover { |
||||
border-right-color: #74a7cb; } |
||||
|
||||
.reveal .controls .navigate-right.enabled:hover { |
||||
border-left-color: #74a7cb; } |
||||
|
||||
.reveal .controls .navigate-up.enabled:hover { |
||||
border-bottom-color: #74a7cb; } |
||||
|
||||
.reveal .controls .navigate-down.enabled:hover { |
||||
border-top-color: #74a7cb; } |
||||
|
||||
/********************************************* |
||||
* PROGRESS BAR |
||||
*********************************************/ |
||||
.reveal .progress { |
||||
background: rgba(0, 0, 0, 0.2); } |
||||
|
||||
.reveal .progress span { |
||||
background: #3b759e; |
||||
-webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); |
||||
-moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); |
||||
transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); } |
@ -1,291 +0,0 @@
|
||||
/** |
||||
* Solarized Light theme for reveal.js. |
||||
* Author: Achim Staebler |
||||
*/ |
||||
@import url(../../lib/font/league-gothic/league-gothic.css); |
||||
@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic); |
||||
/** |
||||
* Solarized colors by Ethan Schoonover |
||||
*/ |
||||
html * { |
||||
color-profile: sRGB; |
||||
rendering-intent: auto; } |
||||
|
||||
/********************************************* |
||||
* GLOBAL STYLES |
||||
*********************************************/ |
||||
body { |
||||
background: #fdf6e3; |
||||
background-color: #fdf6e3; } |
||||
|
||||
.reveal { |
||||
font-family: "Lato", sans-serif; |
||||
font-size: 36px; |
||||
font-weight: normal; |
||||
color: #657b83; } |
||||
|
||||
::selection { |
||||
color: #fff; |
||||
background: #d33682; |
||||
text-shadow: none; } |
||||
|
||||
.reveal .slides > section, |
||||
.reveal .slides > section > section { |
||||
line-height: 1.3; |
||||
font-weight: inherit; } |
||||
|
||||
/********************************************* |
||||
* HEADERS |
||||
*********************************************/ |
||||
.reveal h1, |
||||
.reveal h2, |
||||
.reveal h3, |
||||
.reveal h4, |
||||
.reveal h5, |
||||
.reveal h6 { |
||||
margin: 0 0 20px 0; |
||||
color: #586e75; |
||||
font-family: "League Gothic", Impact, sans-serif; |
||||
font-weight: normal; |
||||
line-height: 1.2; |
||||
letter-spacing: normal; |
||||
text-transform: uppercase; |
||||
text-shadow: none; |
||||
word-wrap: break-word; } |
||||
|
||||
.reveal h1 { |
||||
font-size: 3.77em; } |
||||
|
||||
.reveal h2 { |
||||
font-size: 2.11em; } |
||||
|
||||
.reveal h3 { |
||||
font-size: 1.55em; } |
||||
|
||||
.reveal h4 { |
||||
font-size: 1em; } |
||||
|
||||
.reveal h1 { |
||||
text-shadow: none; } |
||||
|
||||
/********************************************* |
||||
* OTHER |
||||
*********************************************/ |
||||
.reveal p { |
||||
margin: 20px 0; |
||||
line-height: 1.3; } |
||||
|
||||
/* Ensure certain elements are never larger than the slide itself */ |
||||
.reveal img, |
||||
.reveal video, |
||||
.reveal iframe { |
||||
max-width: 95%; |
||||
max-height: 95%; } |
||||
|
||||
.reveal strong, |
||||
.reveal b { |
||||
font-weight: bold; } |
||||
|
||||
.reveal em { |
||||
font-style: italic; } |
||||
|
||||
.reveal ol, |
||||
.reveal dl, |
||||
.reveal ul { |
||||
display: inline-block; |
||||
text-align: left; |
||||
margin: 0 0 0 1em; } |
||||
|
||||
.reveal ol { |
||||
list-style-type: decimal; } |
||||
|
||||
.reveal ul { |
||||
list-style-type: disc; } |
||||
|
||||
.reveal ul ul { |
||||
list-style-type: square; } |
||||
|
||||
.reveal ul ul ul { |
||||
list-style-type: circle; } |
||||
|
||||
.reveal ul ul, |
||||
.reveal ul ol, |
||||
.reveal ol ol, |
||||
.reveal ol ul { |
||||
display: block; |
||||
margin-left: 40px; } |
||||
|
||||
.reveal dt { |
||||
font-weight: bold; } |
||||
|
||||
.reveal dd { |
||||
margin-left: 40px; } |
||||
|
||||
.reveal q, |
||||
.reveal blockquote { |
||||
quotes: none; } |
||||
|
||||
.reveal blockquote { |
||||
display: block; |
||||
position: relative; |
||||
width: 70%; |
||||
margin: 20px auto; |
||||
padding: 5px; |
||||
font-style: italic; |
||||
background: rgba(255, 255, 255, 0.05); |
||||
box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); } |
||||
|
||||
.reveal blockquote p:first-child, |
||||
.reveal blockquote p:last-child { |
||||
display: inline-block; } |
||||
|
||||
.reveal q { |
||||
font-style: italic; } |
||||
|
||||
.reveal pre { |
||||
display: block; |
||||
position: relative; |
||||
width: 90%; |
||||
margin: 20px auto; |
||||
text-align: left; |
||||
font-size: 0.55em; |
||||
font-family: monospace; |
||||
line-height: 1.2em; |
||||
word-wrap: break-word; |
||||
box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3); } |
||||
|
||||
.reveal code { |
||||
font-family: monospace; } |
||||
|
||||
.reveal pre code { |
||||
display: block; |
||||
padding: 5px; |
||||
overflow: auto; |
||||
max-height: 400px; |
||||
word-wrap: normal; } |
||||
|
||||
.reveal table { |
||||
margin: auto; |
||||
border-collapse: collapse; |
||||
border-spacing: 0; } |
||||
|
||||
.reveal table th { |
||||
font-weight: bold; } |
||||
|
||||
.reveal table th, |
||||
.reveal table td { |
||||
text-align: left; |
||||
padding: 0.2em 0.5em 0.2em 0.5em; |
||||
border-bottom: 1px solid; } |
||||
|
||||
.reveal table th[align="center"], |
||||
.reveal table td[align="center"] { |
||||
text-align: center; } |
||||
|
||||
.reveal table th[align="right"], |
||||
.reveal table td[align="right"] { |
||||
text-align: right; } |
||||
|
||||
.reveal table tbody tr:last-child th, |
||||
.reveal table tbody tr:last-child td { |
||||
border-bottom: none; } |
||||
|
||||
.reveal sup { |
||||
vertical-align: super; } |
||||
|
||||
.reveal sub { |
||||
vertical-align: sub; } |
||||
|
||||
.reveal small { |
||||
display: inline-block; |
||||
font-size: 0.6em; |
||||
line-height: 1.2em; |
||||
vertical-align: top; } |
||||
|
||||
.reveal small * { |
||||
vertical-align: top; } |
||||
|
||||
/********************************************* |
||||
* LINKS |
||||
*********************************************/ |
||||
.reveal a { |
||||
color: #268bd2; |
||||
text-decoration: none; |
||||
-webkit-transition: color .15s ease; |
||||
-moz-transition: color .15s ease; |
||||
transition: color .15s ease; } |
||||
|
||||
.reveal a:hover { |
||||
color: #78b9e6; |
||||
text-shadow: none; |
||||
border: none; } |
||||
|
||||
.reveal .roll span:after { |
||||
color: #fff; |
||||
background: #1a6091; } |
||||
|
||||
/********************************************* |
||||
* IMAGES |
||||
*********************************************/ |
||||
.reveal section img { |
||||
margin: 15px 0px; |
||||
background: rgba(255, 255, 255, 0.12); |
||||
border: 4px solid #657b83; |
||||
box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); } |
||||
|
||||
.reveal section img.plain { |
||||
border: 0; |
||||
box-shadow: none; } |
||||
|
||||
.reveal a img { |
||||
-webkit-transition: all .15s linear; |
||||
-moz-transition: all .15s linear; |
||||
transition: all .15s linear; } |
||||
|
||||
.reveal a:hover img { |
||||
background: rgba(255, 255, 255, 0.2); |
||||
border-color: #268bd2; |
||||
box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); } |
||||
|
||||
/********************************************* |
||||
* NAVIGATION CONTROLS |
||||
*********************************************/ |
||||
.reveal .controls .navigate-left, |
||||
.reveal .controls .navigate-left.enabled { |
||||
border-right-color: #268bd2; } |
||||
|
||||
.reveal .controls .navigate-right, |
||||
.reveal .controls .navigate-right.enabled { |
||||
border-left-color: #268bd2; } |
||||
|
||||
.reveal .controls .navigate-up, |
||||
.reveal .controls .navigate-up.enabled { |
||||
border-bottom-color: #268bd2; } |
||||
|
||||
.reveal .controls .navigate-down, |
||||
.reveal .controls .navigate-down.enabled { |
||||
border-top-color: #268bd2; } |
||||
|
||||
.reveal .controls .navigate-left.enabled:hover { |
||||
border-right-color: #78b9e6; } |
||||
|
||||
.reveal .controls .navigate-right.enabled:hover { |
||||
border-left-color: #78b9e6; } |
||||
|
||||
.reveal .controls .navigate-up.enabled:hover { |
||||
border-bottom-color: #78b9e6; } |
||||
|
||||
.reveal .controls .navigate-down.enabled:hover { |
||||
border-top-color: #78b9e6; } |
||||
|
||||
/********************************************* |
||||
* PROGRESS BAR |
||||
*********************************************/ |
||||
.reveal .progress { |
||||
background: rgba(0, 0, 0, 0.2); } |
||||
|
||||
.reveal .progress span { |
||||
background: #268bd2; |
||||
-webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); |
||||
-moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); |
||||
transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); } |
@ -1,39 +0,0 @@
|
||||
/** |
||||
* Beige theme for reveal.js. |
||||
* |
||||
* Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se |
||||
*/ |
||||
|
||||
|
||||
// Default mixins and settings ----------------- |
||||
@import "../template/mixins"; |
||||
@import "../template/settings"; |
||||
// --------------------------------------------- |
||||
|
||||
|
||||
|
||||
// Include theme-specific fonts |
||||
@import url(../../lib/font/league-gothic/league-gothic.css); |
||||
@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic); |
||||
|
||||
|
||||
// Override theme settings (see ../template/settings.scss) |
||||
$mainColor: #333; |
||||
$headingColor: #333; |
||||
$headingTextShadow: none; |
||||
$backgroundColor: #f7f3de; |
||||
$linkColor: #8b743d; |
||||
$linkColorHover: lighten( $linkColor, 20% ); |
||||
$selectionBackgroundColor: rgba(79, 64, 28, 0.99); |
||||
$heading1TextShadow: 0 1px 0 #ccc, 0 2px 0 #c9c9c9, 0 3px 0 #bbb, 0 4px 0 #b9b9b9, 0 5px 0 #aaa, 0 6px 1px rgba(0,0,0,.1), 0 0 5px rgba(0,0,0,.1), 0 1px 3px rgba(0,0,0,.3), 0 3px 5px rgba(0,0,0,.2), 0 5px 10px rgba(0,0,0,.25), 0 20px 20px rgba(0,0,0,.15); |
||||
|
||||
// Background generator |
||||
@mixin bodyBackground() { |
||||
@include radial-gradient( rgba(247,242,211,1), rgba(255,255,255,1) ); |
||||
} |
||||
|
||||
|
||||
|
||||
// Theme template ------------------------------ |
||||
@import "../template/theme"; |
||||
// --------------------------------------------- |
@ -1,49 +0,0 @@
|
||||
/** |
||||
* Black theme for reveal.js. This is the opposite of the 'white' theme. |
||||
* |
||||
* By Hakim El Hattab, http://hakim.se |
||||
*/ |
||||
|
||||
|
||||
// Default mixins and settings ----------------- |
||||
@import "../template/mixins"; |
||||
@import "../template/settings"; |
||||
// --------------------------------------------- |
||||
|
||||
|
||||
// Include theme-specific fonts |
||||
@import url(../../lib/font/source-sans-pro/source-sans-pro.css); |
||||
|
||||
|
||||
// Override theme settings (see ../template/settings.scss) |
||||
$backgroundColor: #222; |
||||
|
||||
$mainColor: #fff; |
||||
$headingColor: #fff; |
||||
|
||||
$mainFontSize: 38px; |
||||
$mainFont: 'Source Sans Pro', Helvetica, sans-serif; |
||||
$headingFont: 'Source Sans Pro', Helvetica, sans-serif; |
||||
$headingTextShadow: none; |
||||
$headingLetterSpacing: normal; |
||||
$headingTextTransform: uppercase; |
||||
$headingFontWeight: 600; |
||||
$linkColor: #42affa; |
||||
$linkColorHover: lighten( $linkColor, 15% ); |
||||
$selectionBackgroundColor: lighten( $linkColor, 25% ); |
||||
|
||||
$heading1Size: 2.5em; |
||||
$heading2Size: 1.6em; |
||||
$heading3Size: 1.3em; |
||||
$heading4Size: 1.0em; |
||||
|
||||
section.has-light-background { |
||||
&, h1, h2, h3, h4, h5, h6 { |
||||
color: #222; |
||||
} |
||||
} |
||||
|
||||
|
||||
// Theme template ------------------------------ |
||||
@import "../template/theme"; |
||||
// --------------------------------------------- |
@ -1,79 +0,0 @@
|
||||
/** |
||||
* Blood theme for reveal.js |
||||
* Author: Walther http://github.com/Walther |
||||
* |
||||
* Designed to be used with highlight.js theme |
||||
* "monokai_sublime.css" available from |
||||
* https://github.com/isagalaev/highlight.js/ |
||||
* |
||||
* For other themes, change $codeBackground accordingly. |
||||
* |
||||
*/ |
||||
|
||||
// Default mixins and settings ----------------- |
||||
@import "../template/mixins"; |
||||
@import "../template/settings"; |
||||
// --------------------------------------------- |
||||
|
||||
// Include theme-specific fonts |
||||
|
||||
@import url(https://fonts.googleapis.com/css?family=Ubuntu:300,700,300italic,700italic); |
||||
|
||||
// Colors used in the theme |
||||
$blood: #a23; |
||||
$coal: #222; |
||||
$codeBackground: #23241f; |
||||
|
||||
$backgroundColor: $coal; |
||||
|
||||
// Main text |
||||
$mainFont: Ubuntu, 'sans-serif'; |
||||
$mainFontSize: 36px; |
||||
$mainColor: #eee; |
||||
|
||||
// Headings |
||||
$headingFont: Ubuntu, 'sans-serif'; |
||||
$headingTextShadow: 2px 2px 2px $coal; |
||||
|
||||
// h1 shadow, borrowed humbly from |
||||
// (c) Default theme by Hakim El Hattab |
||||
$heading1TextShadow: 0 1px 0 #ccc, 0 2px 0 #c9c9c9, 0 3px 0 #bbb, 0 4px 0 #b9b9b9, 0 5px 0 #aaa, 0 6px 1px rgba(0,0,0,.1), 0 0 5px rgba(0,0,0,.1), 0 1px 3px rgba(0,0,0,.3), 0 3px 5px rgba(0,0,0,.2), 0 5px 10px rgba(0,0,0,.25), 0 20px 20px rgba(0,0,0,.15); |
||||
|
||||
// Links |
||||
$linkColor: $blood; |
||||
$linkColorHover: lighten( $linkColor, 20% ); |
||||
|
||||
// Text selection |
||||
$selectionBackgroundColor: $blood; |
||||
$selectionColor: #fff; |
||||
|
||||
|
||||
// Theme template ------------------------------ |
||||
@import "../template/theme"; |
||||
// --------------------------------------------- |
||||
|
||||
// some overrides after theme template import |
||||
|
||||
.reveal p { |
||||
font-weight: 300; |
||||
text-shadow: 1px 1px $coal; |
||||
} |
||||
|
||||
.reveal h1, |
||||
.reveal h2, |
||||
.reveal h3, |
||||
.reveal h4, |
||||
.reveal h5, |
||||
.reveal h6 { |
||||
font-weight: 700; |
||||
} |
||||
|
||||
.reveal p code { |
||||
background-color: $codeBackground; |
||||
display: inline-block; |
||||
border-radius: 7px; |
||||
} |
||||
|
||||
.reveal small code { |
||||
vertical-align: baseline; |
||||
} |
@ -1,34 +0,0 @@
|
||||
/** |
||||
* League theme for reveal.js. |
||||
* |
||||
* This was the default theme pre-3.0.0. |
||||
* |
||||
* Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se |
||||
*/ |
||||
|
||||
|
||||
// Default mixins and settings ----------------- |
||||
@import "../template/mixins"; |
||||
@import "../template/settings"; |
||||
// --------------------------------------------- |
||||
|
||||
|
||||
|
||||
// Include theme-specific fonts |
||||
@import url(../../lib/font/league-gothic/league-gothic.css); |
||||
@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic); |
||||
|
||||
// Override theme settings (see ../template/settings.scss) |
||||
$headingTextShadow: 0px 0px 6px rgba(0,0,0,0.2); |
||||
$heading1TextShadow: 0 1px 0 #ccc, 0 2px 0 #c9c9c9, 0 3px 0 #bbb, 0 4px 0 #b9b9b9, 0 5px 0 #aaa, 0 6px 1px rgba(0,0,0,.1), 0 0 5px rgba(0,0,0,.1), 0 1px 3px rgba(0,0,0,.3), 0 3px 5px rgba(0,0,0,.2), 0 5px 10px rgba(0,0,0,.25), 0 20px 20px rgba(0,0,0,.15); |
||||
|
||||
// Background generator |
||||
@mixin bodyBackground() { |
||||
@include radial-gradient( rgba(28,30,32,1), rgba(85,90,95,1) ); |
||||
} |
||||
|
||||
|
||||
|
||||
// Theme template ------------------------------ |
||||
@import "../template/theme"; |
||||
// --------------------------------------------- |
@ -1,57 +0,0 @@
|
||||
/** |
||||
* Solarized Dark theme for reveal.js. |
||||
* Author: Achim Staebler |
||||
*/ |
||||
|
||||
|
||||
// Default mixins and settings ----------------- |
||||
@import "../template/mixins"; |
||||
@import "../template/settings"; |
||||
// --------------------------------------------- |
||||
|
||||
|
||||
|
||||
// Include theme-specific fonts |
||||
@import url(../../lib/font/league-gothic/league-gothic.css); |
||||
@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic); |
||||
|
||||
/** |
||||
* Solarized colors by Ethan Schoonover |
||||
*/ |
||||
html * { |
||||
color-profile: sRGB; |
||||
rendering-intent: auto; |
||||
} |
||||
|
||||
// Solarized colors |
||||
$base03: #002b36; |
||||
$base02: #073642; |
||||
$base01: #586e75; |
||||
$base00: #657b83; |
||||
$base0: #839496; |
||||
$base1: #93a1a1; |
||||
$base2: #eee8d5; |
||||
$base3: #fdf6e3; |
||||
$yellow: #b58900; |
||||
$orange: #cb4b16; |
||||
$red: #dc322f; |
||||
$magenta: #d33682; |
||||
$violet: #6c71c4; |
||||
$blue: #268bd2; |
||||
$cyan: #2aa198; |
||||
$green: #859900; |
||||
|
||||
// Override theme settings (see ../template/settings.scss) |
||||
$mainColor: $base1; |
||||
$headingColor: $base2; |
||||
$headingTextShadow: none; |
||||
$backgroundColor: $base03; |
||||
$linkColor: $blue; |
||||
$linkColorHover: lighten( $linkColor, 20% ); |
||||
$selectionBackgroundColor: $magenta; |
||||
|
||||
|
||||
|
||||
// Theme template ------------------------------ |
||||
@import "../template/theme"; |
||||
// --------------------------------------------- |
@ -1,35 +0,0 @@
|
||||
/** |
||||
* Black theme for reveal.js. |
||||
* |
||||
* Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se |
||||
*/ |
||||
|
||||
|
||||
// Default mixins and settings ----------------- |
||||
@import "../template/mixins"; |
||||
@import "../template/settings"; |
||||
// --------------------------------------------- |
||||
|
||||
|
||||
// Include theme-specific fonts |
||||
@import url(https://fonts.googleapis.com/css?family=Montserrat:700); |
||||
@import url(https://fonts.googleapis.com/css?family=Open+Sans:400,700,400italic,700italic); |
||||
|
||||
|
||||
// Override theme settings (see ../template/settings.scss) |
||||
$backgroundColor: #111; |
||||
|
||||
$mainFont: 'Open Sans', sans-serif; |
||||
$linkColor: #e7ad52; |
||||
$linkColorHover: lighten( $linkColor, 20% ); |
||||
$headingFont: 'Montserrat', Impact, sans-serif; |
||||
$headingTextShadow: none; |
||||
$headingLetterSpacing: -0.03em; |
||||
$headingTextTransform: none; |
||||
$selectionBackgroundColor: #e7ad52; |
||||
$mainFontSize: 30px; |
||||
|
||||
|
||||
// Theme template ------------------------------ |
||||
@import "../template/theme"; |
||||
// --------------------------------------------- |
@ -1,35 +0,0 @@
|
||||
/** |
||||
* A simple theme for reveal.js presentations, similar |
||||
* to the default theme. The accent color is brown. |
||||
* |
||||
* This theme is Copyright (C) 2012-2013 Owen Versteeg, http://owenversteeg.com - it is MIT licensed. |
||||
*/ |
||||
|
||||
|
||||
// Default mixins and settings ----------------- |
||||
@import "../template/mixins"; |
||||
@import "../template/settings"; |
||||
// --------------------------------------------- |
||||
|
||||
|
||||
|
||||
// Override theme settings (see ../template/settings.scss) |
||||
$mainFont: 'Palatino Linotype', 'Book Antiqua', Palatino, FreeSerif, serif; |
||||
$mainColor: #000; |
||||
$headingFont: 'Palatino Linotype', 'Book Antiqua', Palatino, FreeSerif, serif; |
||||
$headingColor: #383D3D; |
||||
$headingTextShadow: none; |
||||
$headingTextTransform: none; |
||||
$backgroundColor: #F0F1EB; |
||||
$linkColor: #51483D; |
||||
$linkColorHover: lighten( $linkColor, 20% ); |
||||
$selectionBackgroundColor: #26351C; |
||||
|
||||
.reveal a { |
||||
line-height: 1.3em; |
||||
} |
||||
|
||||
|
||||
// Theme template ------------------------------ |
||||
@import "../template/theme"; |
||||
// --------------------------------------------- |
@ -1,38 +0,0 @@
|
||||
/** |
||||
* A simple theme for reveal.js presentations, similar |
||||
* to the default theme. The accent color is darkblue. |
||||
* |
||||
* This theme is Copyright (C) 2012 Owen Versteeg, https://github.com/StereotypicalApps. It is MIT licensed. |
||||
* reveal.js is Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se |
||||
*/ |
||||
|
||||
|
||||
// Default mixins and settings ----------------- |
||||
@import "../template/mixins"; |
||||
@import "../template/settings"; |
||||
// --------------------------------------------- |
||||
|
||||
|
||||
|
||||
// Include theme-specific fonts |
||||
@import url(https://fonts.googleapis.com/css?family=News+Cycle:400,700); |
||||
@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic); |
||||
|
||||
|
||||
// Override theme settings (see ../template/settings.scss) |
||||
$mainFont: 'Lato', sans-serif; |
||||
$mainColor: #000; |
||||
$headingFont: 'News Cycle', Impact, sans-serif; |
||||
$headingColor: #000; |
||||
$headingTextShadow: none; |
||||
$headingTextTransform: none; |
||||
$backgroundColor: #fff; |
||||
$linkColor: #00008B; |
||||
$linkColorHover: lighten( $linkColor, 20% ); |
||||
$selectionBackgroundColor: rgba(0, 0, 0, 0.99); |
||||
|
||||
|
||||
|
||||
// Theme template ------------------------------ |
||||
@import "../template/theme"; |
||||
// --------------------------------------------- |
@ -1,46 +0,0 @@
|
||||
/** |
||||
* Sky theme for reveal.js. |
||||
* |
||||
* Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se |
||||
*/ |
||||
|
||||
|
||||
// Default mixins and settings ----------------- |
||||
@import "../template/mixins"; |
||||
@import "../template/settings"; |
||||
// --------------------------------------------- |
||||
|
||||
|
||||
|
||||
// Include theme-specific fonts |
||||
@import url(https://fonts.googleapis.com/css?family=Quicksand:400,700,400italic,700italic); |
||||
@import url(https://fonts.googleapis.com/css?family=Open+Sans:400italic,700italic,400,700); |
||||
|
||||
|
||||
// Override theme settings (see ../template/settings.scss) |
||||
$mainFont: 'Open Sans', sans-serif; |
||||
$mainColor: #333; |
||||
$headingFont: 'Quicksand', sans-serif; |
||||
$headingColor: #333; |
||||
$headingLetterSpacing: -0.08em; |
||||
$headingTextShadow: none; |
||||
$backgroundColor: #f7fbfc; |
||||
$linkColor: #3b759e; |
||||
$linkColorHover: lighten( $linkColor, 20% ); |
||||
$selectionBackgroundColor: #134674; |
||||
|
||||
// Fix links so they are not cut off |
||||
.reveal a { |
||||
line-height: 1.3em; |
||||
} |
||||
|
||||
// Background generator |
||||
@mixin bodyBackground() { |
||||
@include radial-gradient( #add9e4, #f7fbfc ); |
||||
} |
||||
|
||||
|
||||
|
||||
// Theme template ------------------------------ |
||||
@import "../template/theme"; |
||||
// --------------------------------------------- |
@ -1,63 +0,0 @@
|
||||
/** |
||||
* Solarized Light theme for reveal.js. |
||||
* Author: Achim Staebler |
||||
*/ |
||||
|
||||
|
||||
// Default mixins and settings ----------------- |
||||
@import "../template/mixins"; |
||||
@import "../template/settings"; |
||||
// --------------------------------------------- |
||||
|
||||
|
||||
|
||||
// Include theme-specific fonts |
||||
@import url(../../lib/font/league-gothic/league-gothic.css); |
||||
@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic); |
||||
|
||||
|
||||
/** |
||||
* Solarized colors by Ethan Schoonover |
||||
*/ |
||||
html * { |
||||
color-profile: sRGB; |
||||
rendering-intent: auto; |
||||
} |
||||
|
||||
// Solarized colors |
||||
$base03: #002b36; |
||||
$base02: #073642; |
||||
$base01: #586e75; |
||||
$base00: #657b83; |
||||
$base0: #839496; |
||||
$base1: #93a1a1; |
||||
$base2: #eee8d5; |
||||
$base3: #fdf6e3; |
||||
$yellow: #b58900; |
||||
$orange: #cb4b16; |
||||
$red: #dc322f; |
||||
$magenta: #d33682; |
||||
$violet: #6c71c4; |
||||
$blue: #268bd2; |
||||
$cyan: #2aa198; |
||||
$green: #859900; |
||||
|
||||
// Override theme settings (see ../template/settings.scss) |
||||
$mainColor: $base00; |
||||
$headingColor: $base01; |
||||
$headingTextShadow: none; |
||||
$backgroundColor: $base3; |
||||
$linkColor: $blue; |
||||
$linkColorHover: lighten( $linkColor, 20% ); |
||||
$selectionBackgroundColor: $magenta; |
||||
|
||||
// Background generator |
||||
// @mixin bodyBackground() { |
||||
// @include radial-gradient( rgba($base3,1), rgba(lighten($base3, 20%),1) ); |
||||
// } |
||||
|
||||
|
||||
|
||||
// Theme template ------------------------------ |
||||
@import "../template/theme"; |
||||
// --------------------------------------------- |
@ -1,49 +0,0 @@
|
||||
/** |
||||
* White theme for reveal.js. This is the opposite of the 'black' theme. |
||||
* |
||||
* By Hakim El Hattab, http://hakim.se |
||||
*/ |
||||
|
||||
|
||||
// Default mixins and settings ----------------- |
||||
@import "../template/mixins"; |
||||
@import "../template/settings"; |
||||
// --------------------------------------------- |
||||
|
||||
|
||||
// Include theme-specific fonts |
||||
@import url(../../lib/font/source-sans-pro/source-sans-pro.css); |
||||
|
||||
|
||||
// Override theme settings (see ../template/settings.scss) |
||||
$backgroundColor: #fff; |
||||
|
||||
$mainColor: #222; |
||||
$headingColor: #222; |
||||
|
||||
$mainFontSize: 38px; |
||||
$mainFont: 'Source Sans Pro', Helvetica, sans-serif; |
||||
$headingFont: 'Source Sans Pro', Helvetica, sans-serif; |
||||
$headingTextShadow: none; |
||||
$headingLetterSpacing: normal; |
||||
$headingTextTransform: uppercase; |
||||
$headingFontWeight: 600; |
||||
$linkColor: #2a76dd; |
||||
$linkColorHover: lighten( $linkColor, 15% ); |
||||
$selectionBackgroundColor: lighten( $linkColor, 25% ); |
||||
|
||||
$heading1Size: 2.5em; |
||||
$heading2Size: 1.6em; |
||||
$heading3Size: 1.3em; |
||||
$heading4Size: 1.0em; |
||||
|
||||
section.has-dark-background { |
||||
&, h1, h2, h3, h4, h5, h6 { |
||||
color: #fff; |
||||
} |
||||
} |
||||
|
||||
|
||||
// Theme template ------------------------------ |
||||
@import "../template/theme"; |
||||
// --------------------------------------------- |
@ -1,29 +0,0 @@
|
||||
@mixin vertical-gradient( $top, $bottom ) { |
||||
background: $top; |
||||
background: -moz-linear-gradient( top, $top 0%, $bottom 100% ); |
||||
background: -webkit-gradient( linear, left top, left bottom, color-stop(0%,$top), color-stop(100%,$bottom) ); |
||||
background: -webkit-linear-gradient( top, $top 0%, $bottom 100% ); |
||||
background: -o-linear-gradient( top, $top 0%, $bottom 100% ); |
||||
background: -ms-linear-gradient( top, $top 0%, $bottom 100% ); |
||||
background: linear-gradient( top, $top 0%, $bottom 100% ); |
||||
} |
||||
|
||||
@mixin horizontal-gradient( $top, $bottom ) { |
||||
background: $top; |
||||
background: -moz-linear-gradient( left, $top 0%, $bottom 100% ); |
||||
background: -webkit-gradient( linear, left top, right top, color-stop(0%,$top), color-stop(100%,$bottom) ); |
||||
background: -webkit-linear-gradient( left, $top 0%, $bottom 100% ); |
||||
background: -o-linear-gradient( left, $top 0%, $bottom 100% ); |
||||
background: -ms-linear-gradient( left, $top 0%, $bottom 100% ); |
||||
background: linear-gradient( left, $top 0%, $bottom 100% ); |
||||
} |
||||
|
||||
@mixin radial-gradient( $outer, $inner, $type: circle ) { |
||||
background: $outer; |
||||
background: -moz-radial-gradient( center, $type cover, $inner 0%, $outer 100% ); |
||||
background: -webkit-gradient( radial, center center, 0px, center center, 100%, color-stop(0%,$inner), color-stop(100%,$outer) ); |
||||
background: -webkit-radial-gradient( center, $type cover, $inner 0%, $outer 100% ); |
||||
background: -o-radial-gradient( center, $type cover, $inner 0%, $outer 100% ); |
||||
background: -ms-radial-gradient( center, $type cover, $inner 0%, $outer 100% ); |
||||
background: radial-gradient( center, $type cover, $inner 0%, $outer 100% ); |
||||
} |
@ -1,43 +0,0 @@
|
||||
// Base settings for all themes that can optionally be |
||||
// overridden by the super-theme |
||||
|
||||
// Background of the presentation |
||||
$backgroundColor: #2b2b2b; |
||||
|
||||
// Primary/body text |
||||
$mainFont: 'Lato', sans-serif; |
||||
$mainFontSize: 36px; |
||||
$mainColor: #eee; |
||||
|
||||
// Vertical spacing between blocks of text |
||||
$blockMargin: 20px; |
||||
|
||||
// Headings |
||||
$headingMargin: 0 0 $blockMargin 0; |
||||
$headingFont: 'League Gothic', Impact, sans-serif; |
||||
$headingColor: #eee; |
||||
$headingLineHeight: 1.2; |
||||
$headingLetterSpacing: normal; |
||||
$headingTextTransform: uppercase; |
||||
$headingTextShadow: none; |
||||
$headingFontWeight: normal; |
||||
$heading1TextShadow: $headingTextShadow; |
||||
|
||||
$heading1Size: 3.77em; |
||||
$heading2Size: 2.11em; |
||||
$heading3Size: 1.55em; |
||||
$heading4Size: 1.00em; |
||||
|
||||
// Links and actions |
||||
$linkColor: #13DAEC; |
||||
$linkColorHover: lighten( $linkColor, 20% ); |
||||
|
||||
// Text selection |
||||
$selectionBackgroundColor: #FF5E99; |
||||
$selectionColor: #fff; |
||||
|
||||
// Generates the presentation background, can be overridden |
||||
// to return a background image or gradient |
||||
@mixin bodyBackground() { |
||||
background: $backgroundColor; |
||||
} |
@ -1,346 +0,0 @@
|
||||
// Base theme template for reveal.js |
||||
|
||||
/********************************************* |
||||
* GLOBAL STYLES |
||||
*********************************************/ |
||||
|
||||
body { |
||||
@include bodyBackground(); |
||||
background-color: $backgroundColor; |
||||
} |
||||
|
||||
.reveal { |
||||
font-family: $mainFont; |
||||
font-size: $mainFontSize; |
||||
font-weight: normal; |
||||
color: $mainColor; |
||||
} |
||||
|
||||
::selection { |
||||
color: $selectionColor; |
||||
background: $selectionBackgroundColor; |
||||
text-shadow: none; |
||||
} |
||||
|
||||
.reveal .slides>section, |
||||
.reveal .slides>section>section { |
||||
line-height: 1.3; |
||||
font-weight: inherit; |
||||
} |
||||
|
||||
/********************************************* |
||||
* HEADERS |
||||
*********************************************/ |
||||
|
||||
.reveal h1, |
||||
.reveal h2, |
||||
.reveal h3, |
||||
.reveal h4, |
||||
.reveal h5, |
||||
.reveal h6 { |
||||
margin: $headingMargin; |
||||
color: $headingColor; |
||||
|
||||
font-family: $headingFont; |
||||
font-weight: $headingFontWeight; |
||||
line-height: $headingLineHeight; |
||||
letter-spacing: $headingLetterSpacing; |
||||
|
||||
text-transform: $headingTextTransform; |
||||
text-shadow: $headingTextShadow; |
||||
|
||||
word-wrap: break-word; |
||||
} |
||||
|
||||
.reveal h1 {font-size: $heading1Size; } |
||||
.reveal h2 {font-size: $heading2Size; } |
||||
.reveal h3 {font-size: $heading3Size; } |
||||
.reveal h4 {font-size: $heading4Size; } |
||||
|
||||
.reveal h1 { |
||||
text-shadow: $heading1TextShadow; |
||||
} |
||||
|
||||
|
||||
/********************************************* |
||||
* OTHER |
||||
*********************************************/ |
||||
|
||||
.reveal p { |
||||
margin: $blockMargin 0; |
||||
line-height: 1.3; |
||||
} |
||||
|
||||
/* Ensure certain elements are never larger than the slide itself */ |
||||
.reveal img, |
||||
.reveal video, |
||||
.reveal iframe { |
||||
max-width: 95%; |
||||
max-height: 95%; |
||||
} |
||||
.reveal strong, |
||||
.reveal b { |
||||
font-weight: bold; |
||||
} |
||||
|
||||
.reveal em { |
||||
font-style: italic; |
||||
} |
||||
|
||||
.reveal ol, |
||||
.reveal dl, |
||||
.reveal ul { |
||||
display: inline-block; |
||||
|
||||
text-align: left; |
||||
margin: 0 0 0 1em; |
||||
} |
||||
|
||||
.reveal ol { |
||||
list-style-type: decimal; |
||||
} |
||||
|
||||
.reveal ul { |
||||
list-style-type: disc; |
||||
} |
||||
|
||||
.reveal ul ul { |
||||
list-style-type: square; |
||||
} |
||||
|
||||
.reveal ul ul ul { |
||||
list-style-type: circle; |
||||
} |
||||
|
||||
.reveal ul ul, |
||||
.reveal ul ol, |
||||
.reveal ol ol, |
||||
.reveal ol ul { |
||||
display: block; |
||||
margin-left: 40px; |
||||
} |
||||
|
||||
.reveal dt { |
||||
font-weight: bold; |
||||
} |
||||
|
||||
.reveal dd { |
||||
margin-left: 40px; |
||||
} |
||||
|
||||
.reveal q, |
||||
.reveal blockquote { |
||||
quotes: none; |
||||
} |
||||
|
||||
.reveal blockquote { |
||||
display: block; |
||||
position: relative; |
||||
width: 70%; |
||||
margin: $blockMargin auto; |
||||
padding: 5px; |
||||
|
||||
font-style: italic; |
||||
background: rgba(255, 255, 255, 0.05); |
||||
box-shadow: 0px 0px 2px rgba(0,0,0,0.2); |
||||
} |
||||
.reveal blockquote p:first-child, |
||||
.reveal blockquote p:last-child { |
||||
display: inline-block; |
||||
} |
||||
|
||||
.reveal q { |
||||
font-style: italic; |
||||
} |
||||
|
||||
.reveal pre { |
||||
display: block; |
||||
position: relative; |
||||
width: 90%; |
||||
margin: $blockMargin auto; |
||||
|
||||
text-align: left; |
||||
font-size: 0.55em; |
||||
font-family: monospace; |
||||
line-height: 1.2em; |
||||
|
||||
word-wrap: break-word; |
||||
|
||||
box-shadow: 0px 0px 6px rgba(0,0,0,0.3); |
||||
} |
||||
.reveal code { |
||||
font-family: monospace; |
||||
} |
||||
|
||||
.reveal pre code { |
||||
display: block; |
||||
padding: 5px; |
||||
overflow: auto; |
||||
max-height: 400px; |
||||
word-wrap: normal; |
||||
} |
||||
|
||||
.reveal table { |
||||
margin: auto; |
||||
border-collapse: collapse; |
||||
border-spacing: 0; |
||||
} |
||||
|
||||
.reveal table th { |
||||
font-weight: bold; |
||||
} |
||||
|
||||
.reveal table th, |
||||
.reveal table td { |
||||
text-align: left; |
||||
padding: 0.2em 0.5em 0.2em 0.5em; |
||||
border-bottom: 1px solid; |
||||
} |
||||
|
||||
.reveal table th[align="center"], |
||||
.reveal table td[align="center"] { |
||||
text-align: center; |
||||
} |
||||
|
||||
.reveal table th[align="right"], |
||||
.reveal table td[align="right"] { |
||||
text-align: right; |
||||
} |
||||
|
||||
.reveal table tbody tr:last-child th, |
||||
.reveal table tbody tr:last-child td { |
||||
border-bottom: none; |
||||
} |
||||
|
||||
.reveal sup { |
||||
vertical-align: super; |
||||
} |
||||
.reveal sub { |
||||
vertical-align: sub; |
||||
} |
||||
|
||||
.reveal small { |
||||
display: inline-block; |
||||
font-size: 0.6em; |
||||
line-height: 1.2em; |
||||
vertical-align: top; |
||||
} |
||||
|
||||
.reveal small * { |
||||
vertical-align: top; |
||||
} |
||||
|
||||
|
||||
/********************************************* |
||||
* LINKS |
||||
*********************************************/ |
||||
|
||||
.reveal a { |
||||
color: $linkColor; |
||||
text-decoration: none; |
||||
|
||||
-webkit-transition: color .15s ease; |
||||
-moz-transition: color .15s ease; |
||||
transition: color .15s ease; |
||||
} |
||||
.reveal a:hover { |
||||
color: $linkColorHover; |
||||
|
||||
text-shadow: none; |
||||
border: none; |
||||
} |
||||
|
||||
.reveal .roll span:after { |
||||
color: #fff; |
||||
background: darken( $linkColor, 15% ); |
||||
} |
||||
|
||||
|
||||
/********************************************* |
||||
* IMAGES |
||||
*********************************************/ |
||||
|
||||
.reveal section img { |
||||
margin: 15px 0px; |
||||
background: rgba(255,255,255,0.12); |
||||
border: 4px solid $mainColor; |
||||
|
||||
box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); |
||||
} |
||||
|
||||
.reveal section img.plain { |
||||
border: 0; |
||||
box-shadow: none; |
||||
} |
||||
|
||||
.reveal a img { |
||||
-webkit-transition: all .15s linear; |
||||
-moz-transition: all .15s linear; |
||||
transition: all .15s linear; |
||||
} |
||||
|
||||
.reveal a:hover img { |
||||
background: rgba(255,255,255,0.2); |
||||
border-color: $linkColor; |
||||
|
||||
box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); |
||||
} |
||||
|
||||
|
||||
/********************************************* |
||||
* NAVIGATION CONTROLS |
||||
*********************************************/ |
||||
|
||||
.reveal .controls .navigate-left, |
||||
.reveal .controls .navigate-left.enabled { |
||||
border-right-color: $linkColor; |
||||
} |
||||
|
||||
.reveal .controls .navigate-right, |
||||
.reveal .controls .navigate-right.enabled { |
||||
border-left-color: $linkColor; |
||||
} |
||||
|
||||
.reveal .controls .navigate-up, |
||||
.reveal .controls .navigate-up.enabled { |
||||
border-bottom-color: $linkColor; |
||||
} |
||||
|
||||
.reveal .controls .navigate-down, |
||||
.reveal .controls .navigate-down.enabled { |
||||
border-top-color: $linkColor; |
||||
} |
||||
|
||||
.reveal .controls .navigate-left.enabled:hover { |
||||
border-right-color: $linkColorHover; |
||||
} |
||||
|
||||
.reveal .controls .navigate-right.enabled:hover { |
||||
border-left-color: $linkColorHover; |
||||
} |
||||
|
||||
.reveal .controls .navigate-up.enabled:hover { |
||||
border-bottom-color: $linkColorHover; |
||||
} |
||||
|
||||
.reveal .controls .navigate-down.enabled:hover { |
||||
border-top-color: $linkColorHover; |
||||
} |
||||
|
||||
|
||||
/********************************************* |
||||
* PROGRESS BAR |
||||
*********************************************/ |
||||
|
||||
.reveal .progress { |
||||
background: rgba(0,0,0,0.2); |
||||
} |
||||
.reveal .progress span { |
||||
background: $linkColor; |
||||
|
||||
-webkit-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985); |
||||
-moz-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985); |
||||
transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985); |
||||
} |
||||
|
||||
|
@ -1,289 +0,0 @@
|
||||
/** |
||||
* White theme for reveal.js. This is the opposite of the 'black' theme. |
||||
* |
||||
* By Hakim El Hattab, http://hakim.se |
||||
*/ |
||||
@import url(../../lib/font/source-sans-pro/source-sans-pro.css); |
||||
section.has-dark-background, section.has-dark-background h1, section.has-dark-background h2, section.has-dark-background h3, section.has-dark-background h4, section.has-dark-background h5, section.has-dark-background h6 { |
||||
color: #fff; } |
||||
|
||||
/********************************************* |
||||
* GLOBAL STYLES |
||||
*********************************************/ |
||||
body { |
||||
background: #fff; |
||||
background-color: #fff; } |
||||
|
||||
.reveal { |
||||
font-family: "Source Sans Pro", Helvetica, sans-serif; |
||||
font-size: 38px; |
||||
font-weight: normal; |
||||
color: #222; } |
||||
|
||||
::selection { |
||||
color: #fff; |
||||
background: #98bdef; |
||||
text-shadow: none; } |
||||
|
||||
.reveal .slides > section, |
||||
.reveal .slides > section > section { |
||||
line-height: 1.3; |
||||
font-weight: inherit; } |
||||
|
||||
/********************************************* |
||||
* HEADERS |
||||
*********************************************/ |
||||
.reveal h1, |
||||
.reveal h2, |
||||
.reveal h3, |
||||
.reveal h4, |
||||
.reveal h5, |
||||
.reveal h6 { |
||||
margin: 0 0 20px 0; |
||||
color: #222; |
||||
font-family: "Source Sans Pro", Helvetica, sans-serif; |
||||
font-weight: 600; |
||||
line-height: 1.2; |
||||
letter-spacing: normal; |
||||
text-transform: uppercase; |
||||
text-shadow: none; |
||||
word-wrap: break-word; } |
||||
|
||||
.reveal h1 { |
||||
font-size: 2.5em; } |
||||
|
||||
.reveal h2 { |
||||
font-size: 1.6em; } |
||||
|
||||
.reveal h3 { |
||||
font-size: 1.3em; } |
||||
|
||||
.reveal h4 { |
||||
font-size: 1em; } |
||||
|
||||
.reveal h1 { |
||||
text-shadow: none; } |
||||
|
||||
/********************************************* |
||||
* OTHER |
||||
*********************************************/ |
||||
.reveal p { |
||||
margin: 20px 0; |
||||
line-height: 1.3; } |
||||
|
||||
/* Ensure certain elements are never larger than the slide itself */ |
||||
.reveal img, |
||||
.reveal video, |
||||
.reveal iframe { |
||||
max-width: 95%; |
||||
max-height: 95%; } |
||||
|
||||
.reveal strong, |
||||
.reveal b { |
||||
font-weight: bold; } |
||||
|
||||
.reveal em { |
||||
font-style: italic; } |
||||
|
||||
.reveal ol, |
||||
.reveal dl, |
||||
.reveal ul { |
||||
display: inline-block; |
||||
text-align: left; |
||||
margin: 0 0 0 1em; } |
||||
|
||||
.reveal ol { |
||||
list-style-type: decimal; } |
||||
|
||||
.reveal ul { |
||||
list-style-type: disc; } |
||||
|
||||
.reveal ul ul { |
||||
list-style-type: square; } |
||||
|
||||
.reveal ul ul ul { |
||||
list-style-type: circle; } |
||||
|
||||
.reveal ul ul, |
||||
.reveal ul ol, |
||||
.reveal ol ol, |
||||
.reveal ol ul { |
||||
display: block; |
||||
margin-left: 40px; } |
||||
|
||||
.reveal dt { |
||||
font-weight: bold; } |
||||
|
||||
.reveal dd { |
||||
margin-left: 40px; } |
||||
|
||||
.reveal q, |
||||
.reveal blockquote { |
||||
quotes: none; } |
||||
|
||||
.reveal blockquote { |
||||
display: block; |
||||
position: relative; |
||||
width: 70%; |
||||
margin: 20px auto; |
||||
padding: 5px; |
||||
font-style: italic; |
||||
background: rgba(255, 255, 255, 0.05); |
||||
box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); } |
||||
|
||||
.reveal blockquote p:first-child, |
||||
.reveal blockquote p:last-child { |
||||
display: inline-block; } |
||||
|
||||
.reveal q { |
||||
font-style: italic; } |
||||
|
||||
.reveal pre { |
||||
display: block; |
||||
position: relative; |
||||
width: 90%; |
||||
margin: 20px auto; |
||||
text-align: left; |
||||
font-size: 0.55em; |
||||
font-family: monospace; |
||||
line-height: 1.2em; |
||||
word-wrap: break-word; |
||||
box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3); } |
||||
|
||||
.reveal code { |
||||
font-family: monospace; } |
||||
|
||||
.reveal pre code { |
||||
display: block; |
||||
padding: 5px; |
||||
overflow: auto; |
||||
max-height: 400px; |
||||
word-wrap: normal; } |
||||
|
||||
.reveal table { |
||||
margin: auto; |
||||
border-collapse: collapse; |
||||
border-spacing: 0; } |
||||
|
||||
.reveal table th { |
||||
font-weight: bold; } |
||||
|
||||
.reveal table th, |
||||
.reveal table td { |
||||
text-align: left; |
||||
padding: 0.2em 0.5em 0.2em 0.5em; |
||||
border-bottom: 1px solid; } |
||||
|
||||
.reveal table th[align="center"], |
||||
.reveal table td[align="center"] { |
||||
text-align: center; } |
||||
|
||||
.reveal table th[align="right"], |
||||
.reveal table td[align="right"] { |
||||
text-align: right; } |
||||
|
||||
.reveal table tbody tr:last-child th, |
||||
.reveal table tbody tr:last-child td { |
||||
border-bottom: none; } |
||||
|
||||
.reveal sup { |
||||
vertical-align: super; } |
||||
|
||||
.reveal sub { |
||||
vertical-align: sub; } |
||||
|
||||
.reveal small { |
||||
display: inline-block; |
||||
font-size: 0.6em; |
||||
line-height: 1.2em; |
||||
vertical-align: top; } |
||||
|
||||
.reveal small * { |
||||
vertical-align: top; } |
||||
|
||||
/********************************************* |
||||
* LINKS |
||||
*********************************************/ |
||||
.reveal a { |
||||
color: #2a76dd; |
||||
text-decoration: none; |
||||
-webkit-transition: color .15s ease; |
||||
-moz-transition: color .15s ease; |
||||
transition: color .15s ease; } |
||||
|
||||
.reveal a:hover { |
||||
color: #6ca0e8; |
||||
text-shadow: none; |
||||
border: none; } |
||||
|
||||
.reveal .roll span:after { |
||||
color: #fff; |
||||
background: #1a53a1; } |
||||
|
||||
/********************************************* |
||||
* IMAGES |
||||
*********************************************/ |
||||
.reveal section img { |
||||
margin: 15px 0px; |
||||
/* |
||||
background: rgba(255, 255, 255, 0.12); |
||||
border: 4px solid #222; |
||||
box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); } |
||||
*/ |
||||
|
||||
.reveal section img.plain { |
||||
border: 0; |
||||
box-shadow: none; } |
||||
|
||||
.reveal a img { |
||||
-webkit-transition: all .15s linear; |
||||
-moz-transition: all .15s linear; |
||||
transition: all .15s linear; } |
||||
|
||||
.reveal a:hover img { |
||||
background: rgba(255, 255, 255, 0.2); |
||||
border-color: #2a76dd; |
||||
box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); } |
||||
|
||||
/********************************************* |
||||
* NAVIGATION CONTROLS |
||||
*********************************************/ |
||||
.reveal .controls .navigate-left, |
||||
.reveal .controls .navigate-left.enabled { |
||||
border-right-color: #2a76dd; } |
||||
|
||||
.reveal .controls .navigate-right, |
||||
.reveal .controls .navigate-right.enabled { |
||||
border-left-color: #2a76dd; } |
||||
|
||||
.reveal .controls .navigate-up, |
||||
.reveal .controls .navigate-up.enabled { |
||||
border-bottom-color: #2a76dd; } |
||||
|
||||
.reveal .controls .navigate-down, |
||||
.reveal .controls .navigate-down.enabled { |
||||
border-top-color: #2a76dd; } |
||||
|
||||
.reveal .controls .navigate-left.enabled:hover { |
||||
border-right-color: #6ca0e8; } |
||||
|
||||
.reveal .controls .navigate-right.enabled:hover { |
||||
border-left-color: #6ca0e8; } |
||||
|
||||
.reveal .controls .navigate-up.enabled:hover { |
||||
border-bottom-color: #6ca0e8; } |
||||
|
||||
.reveal .controls .navigate-down.enabled:hover { |
||||
border-top-color: #6ca0e8; } |
||||
|
||||
/********************************************* |
||||
* PROGRESS BAR |
||||
*********************************************/ |
||||
.reveal .progress { |
||||
background: rgba(0, 0, 0, 0.2); } |
||||
|
||||
.reveal .progress span { |
||||
background: #2a76dd; |
||||
-webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); |
||||
-moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); |
||||
transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); } |
@ -1,108 +0,0 @@
|
||||
/*! |
||||
* Agate by Taufik Nurrohman <https://github.com/tovic> |
||||
* ---------------------------------------------------- |
||||
* |
||||
* #ade5fc |
||||
* #a2fca2 |
||||
* #c6b4f0 |
||||
* #d36363 |
||||
* #fcc28c |
||||
* #fc9b9b |
||||
* #ffa |
||||
* #fff |
||||
* #333 |
||||
* #62c8f3 |
||||
* #888 |
||||
* |
||||
*/ |
||||
|
||||
.hljs { |
||||
display: block; |
||||
overflow-x: auto; |
||||
padding: 0.5em; |
||||
background: #333; |
||||
color: white; |
||||
} |
||||
|
||||
.hljs-name, |
||||
.hljs-strong { |
||||
font-weight: bold; |
||||
} |
||||
|
||||
.hljs-code, |
||||
.hljs-emphasis { |
||||
font-style: italic; |
||||
} |
||||
|
||||
.hljs-tag { |
||||
color: #62c8f3; |
||||
} |
||||
|
||||
.hljs-variable, |
||||
.hljs-template-variable, |
||||
.hljs-selector-id, |
||||
.hljs-selector-class { |
||||
color: #ade5fc; |
||||
} |
||||
|
||||
.hljs-string, |
||||
.hljs-bullet { |
||||
color: #a2fca2; |
||||
} |
||||
|
||||
.hljs-type, |
||||
.hljs-title, |
||||
.hljs-section, |
||||
.hljs-attribute, |
||||
.hljs-quote, |
||||
.hljs-built_in, |
||||
.hljs-builtin-name { |
||||
color: #ffa; |
||||
} |
||||
|
||||
.hljs-number, |
||||
.hljs-symbol, |
||||
.hljs-bullet { |
||||
color: #d36363; |
||||
} |
||||
|
||||
.hljs-keyword, |
||||
.hljs-selector-tag, |
||||
.hljs-literal { |
||||
color: #fcc28c; |
||||
} |
||||
|
||||
.hljs-comment, |
||||
.hljs-deletion, |
||||
.hljs-code { |
||||
color: #888; |
||||
} |
||||
|
||||
.hljs-regexp, |
||||
.hljs-link { |
||||
color: #c6b4f0; |
||||
} |
||||
|
||||
.hljs-meta { |
||||
color: #fc9b9b; |
||||
} |
||||
|
||||
.hljs-deletion { |
||||
background-color: #fc9b9b; |
||||
color: #333; |
||||
} |
||||
|
||||
.hljs-addition { |
||||
background-color: #a2fca2; |
||||
color: #333; |
||||
} |
||||
|
||||
.hljs a { |
||||
color: inherit; |
||||
} |
||||
|
||||
.hljs a:focus, |
||||
.hljs a:hover { |
||||
color: inherit; |
||||
text-decoration: underline; |
||||
} |
@ -1,66 +0,0 @@
|
||||
/* |
||||
Date: 24 Fev 2015 |
||||
Author: Pedro Oliveira <kanytu@gmail . com> |
||||
*/ |
||||
|
||||
.hljs { |
||||
color: #a9b7c6; |
||||
background: #282b2e; |
||||
display: block; |
||||
overflow-x: auto; |
||||
padding: 0.5em; |
||||
} |
||||
|
||||
.hljs-number, |
||||
.hljs-literal, |
||||
.hljs-symbol, |
||||
.hljs-bullet { |
||||
color: #6897BB; |
||||
} |
||||
|
||||
.hljs-keyword, |
||||
.hljs-selector-tag, |
||||
.hljs-deletion { |
||||
color: #cc7832; |
||||
} |
||||
|
||||
.hljs-variable, |
||||
.hljs-template-variable, |
||||
.hljs-link { |
||||
color: #629755; |
||||
} |
||||
|
||||
.hljs-comment, |
||||
.hljs-quote { |
||||
color: #808080; |
||||
} |
||||
|
||||
.hljs-meta { |
||||
color: #bbb529; |
||||
} |
||||
|
||||
.hljs-string, |
||||
.hljs-attribute, |
||||
.hljs-addition { |
||||
color: #6A8759; |
||||
} |
||||
|
||||
.hljs-section, |
||||
.hljs-title, |
||||
.hljs-type { |
||||
color: #ffc66d; |
||||
} |
||||
|
||||
.hljs-name, |
||||
.hljs-selector-id, |
||||
.hljs-selector-class { |
||||
color: #e8bf6a; |
||||
} |
||||
|
||||
.hljs-emphasis { |
||||
font-style: italic; |
||||
} |
||||
|
||||
.hljs-strong { |
||||
font-weight: bold; |
||||
} |
@ -1,88 +0,0 @@
|
||||
/* |
||||
|
||||
Arduino® Light Theme - Stefania Mellai <s.mellai@arduino.cc> |
||||
|
||||
*/ |
||||
|
||||
.hljs { |
||||
display: block; |
||||
overflow-x: auto; |
||||
padding: 0.5em; |
||||
background: #FFFFFF; |
||||
} |
||||
|
||||
.hljs, |
||||
.hljs-subst { |
||||
color: #434f54; |
||||
} |
||||
|
||||
.hljs-keyword, |
||||
.hljs-attribute, |
||||
.hljs-selector-tag, |
||||
.hljs-doctag, |
||||
.hljs-name { |
||||
color: #00979D; |
||||
} |
||||
|
||||
.hljs-built_in, |
||||
.hljs-literal, |
||||
.hljs-bullet, |
||||
.hljs-code, |
||||
.hljs-addition { |
||||
color: #D35400; |
||||
} |
||||
|
||||
.hljs-regexp, |
||||
.hljs-symbol, |
||||
.hljs-variable, |
||||
.hljs-template-variable, |
||||
.hljs-link, |
||||
.hljs-selector-attr, |
||||
.hljs-selector-pseudo { |
||||
color: #00979D; |
||||
} |
||||
|
||||
.hljs-type, |
||||
.hljs-string, |
||||
.hljs-selector-id, |
||||
.hljs-selector-class, |
||||
.hljs-quote, |
||||
.hljs-template-tag, |
||||
.hljs-deletion { |
||||
color: #005C5F; |
||||
} |
||||
|
||||
.hljs-title, |
||||
.hljs-section { |
||||
color: #880000; |
||||
font-weight: bold; |
||||
} |
||||
|
||||
.hljs-comment { |
||||
color: rgba(149,165,166,.8); |
||||
} |
||||
|
||||
.hljs-meta-keyword { |
||||
color: #728E00; |
||||
} |
||||
|
||||
.hljs-meta { |
||||
color: #728E00; |
||||
color: #434f54; |
||||
} |
||||
|
||||
.hljs-emphasis { |
||||
font-style: italic; |
||||
} |
||||
|
||||
.hljs-strong { |
||||
font-weight: bold; |
||||
} |
||||
|
||||
.hljs-function { |
||||
color: #728E00; |
||||
} |
||||
|
||||
.hljs-number { |
||||
color: #8A7B52; |
||||
} |
@ -1,73 +0,0 @@
|
||||
/* |
||||
Date: 17.V.2011 |
||||
Author: pumbur <pumbur@pumbur.net> |
||||
*/ |
||||
|
||||
.hljs { |
||||
display: block; |
||||
overflow-x: auto; |
||||
padding: 0.5em; |
||||
background: #222; |
||||
} |
||||
|
||||
.hljs, |
||||
.hljs-subst { |
||||
color: #aaa; |
||||
} |
||||
|
||||
.hljs-section { |
||||
color: #fff; |
||||
} |
||||
|
||||
.hljs-comment, |
||||
.hljs-quote, |
||||
.hljs-meta { |
||||
color: #444; |
||||
} |
||||
|
||||
.hljs-string, |
||||
.hljs-symbol, |
||||
.hljs-bullet, |
||||
.hljs-regexp { |
||||
color: #ffcc33; |
||||
} |
||||
|
||||
.hljs-number, |
||||
.hljs-addition { |
||||
color: #00cc66; |
||||
} |
||||
|
||||
.hljs-built_in, |
||||
.hljs-builtin-name, |
||||
.hljs-literal, |
||||
.hljs-type, |
||||
.hljs-template-variable, |
||||
.hljs-attribute, |
||||
.hljs-link { |
||||
color: #32aaee; |
||||
} |
||||
|
||||
.hljs-keyword, |
||||
.hljs-selector-tag, |
||||
.hljs-name, |
||||
.hljs-selector-id, |
||||
.hljs-selector-class { |
||||
color: #6644aa; |
||||
} |
||||
|
||||
.hljs-title, |
||||
.hljs-variable, |
||||
.hljs-deletion, |
||||
.hljs-template-tag { |
||||
color: #bb1166; |
||||
} |
||||
|
||||
.hljs-section, |
||||
.hljs-doctag, |
||||
.hljs-strong { |
||||
font-weight: bold; |
||||
} |
||||
|
||||
.hljs-emphasis { |
||||
font-style: italic; |
||||
} |
@ -1,45 +0,0 @@
|
||||
/* |
||||
|
||||
Original style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org> |
||||
|
||||
*/ |
||||
|
||||
.hljs { |
||||
display: block; |
||||
overflow-x: auto; |
||||
padding: 0.5em; |
||||
background: white; |
||||
color: black; |
||||
} |
||||
|
||||
.hljs-string, |
||||
.hljs-variable, |
||||
.hljs-template-variable, |
||||
.hljs-symbol, |
||||
.hljs-bullet, |
||||
.hljs-section, |
||||
.hljs-addition, |
||||
.hljs-attribute, |
||||
.hljs-link { |
||||
color: #888; |
||||
} |
||||
|
||||
.hljs-comment, |
||||
.hljs-quote, |
||||
.hljs-meta, |
||||
.hljs-deletion { |
||||
color: #ccc; |
||||
} |
||||
|
||||
.hljs-keyword, |
||||
.hljs-selector-tag, |
||||
.hljs-section, |
||||
.hljs-name, |
||||
.hljs-type, |
||||
.hljs-strong { |
||||
font-weight: bold; |
||||
} |
||||
|
||||
.hljs-emphasis { |
||||
font-style: italic; |
||||
} |
@ -1,83 +0,0 @@
|
||||
/* Base16 Atelier Cave Dark - Theme */ |
||||
/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/cave) */ |
||||
/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ |
||||
|
||||
/* Atelier-Cave Comment */ |
||||
.hljs-comment, |
||||
.hljs-quote { |
||||
color: #7e7887; |
||||
} |
||||
|
||||
/* Atelier-Cave Red */ |
||||
.hljs-variable, |
||||
.hljs-template-variable, |
||||
.hljs-attribute, |
||||
.hljs-regexp, |
||||
.hljs-link, |
||||
.hljs-tag, |
||||
.hljs-name, |
||||
.hljs-selector-id, |
||||
.hljs-selector-class { |
||||
color: #be4678; |
||||
} |
||||
|
||||
/* Atelier-Cave Orange */ |
||||
.hljs-number, |
||||
.hljs-meta, |
||||
.hljs-built_in, |
||||
.hljs-builtin-name, |
||||
.hljs-literal, |
||||
.hljs-type, |
||||
.hljs-params { |
||||
color: #aa573c; |
||||
} |
||||
|
||||
/* Atelier-Cave Green */ |
||||
.hljs-string, |
||||
.hljs-symbol, |
||||
.hljs-bullet { |
||||
color: #2a9292; |
||||
} |
||||
|
||||
/* Atelier-Cave Blue */ |
||||
.hljs-title, |
||||
.hljs-section { |
||||
color: #576ddb; |
||||
} |
||||
|
||||
/* Atelier-Cave Purple */ |
||||
.hljs-keyword, |
||||
.hljs-selector-tag { |
||||
color: #955ae7; |
||||
} |
||||
|
||||
.hljs-deletion, |
||||
.hljs-addition { |
||||
color: #19171c; |
||||
display: inline-block; |
||||
width: 100%; |
||||
} |
||||
|
||||
.hljs-deletion { |
||||
background-color: #be4678; |
||||
} |
||||
|
||||
.hljs-addition { |
||||
background-color: #2a9292; |
||||
} |
||||
|
||||
.hljs { |
||||
display: block; |
||||
overflow-x: auto; |
||||
background: #19171c; |
||||
color: #8b8792; |
||||
padding: 0.5em; |
||||
} |
||||
|
||||
.hljs-emphasis { |
||||
font-style: italic; |
||||
} |
||||
|
||||
.hljs-strong { |
||||
font-weight: bold; |
||||
} |
@ -1,85 +0,0 @@
|
||||
/* Base16 Atelier Cave Light - Theme */ |
||||
/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/cave) */ |
||||
/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ |
||||
|
||||
/* Atelier-Cave Comment */ |
||||
.hljs-comment, |
||||
.hljs-quote { |
||||
color: #655f6d; |
||||
} |
||||
|
||||
/* Atelier-Cave Red */ |
||||
.hljs-variable, |
||||
.hljs-template-variable, |
||||
.hljs-attribute, |
||||
.hljs-tag, |
||||
.hljs-name, |
||||
.hljs-regexp, |
||||
.hljs-link, |
||||
.hljs-name, |
||||
.hljs-name, |
||||
.hljs-selector-id, |
||||
.hljs-selector-class { |
||||
color: #be4678; |
||||
} |
||||
|
||||
/* Atelier-Cave Orange */ |
||||
.hljs-number, |
||||
.hljs-meta, |
||||
.hljs-built_in, |
||||
.hljs-builtin-name, |
||||
.hljs-literal, |
||||
.hljs-type, |
||||
.hljs-params { |
||||
color: #aa573c; |
||||
} |
||||
|
||||
/* Atelier-Cave Green */ |
||||
.hljs-string, |
||||
.hljs-symbol, |
||||
.hljs-bullet { |
||||
color: #2a9292; |
||||
} |
||||
|
||||
/* Atelier-Cave Blue */ |
||||
.hljs-title, |
||||
.hljs-section { |
||||
color: #576ddb; |
||||
} |
||||
|
||||
/* Atelier-Cave Purple */ |
||||
.hljs-keyword, |
||||
.hljs-selector-tag { |
||||
color: #955ae7; |
||||
} |
||||
|
||||
.hljs-deletion, |
||||
.hljs-addition { |
||||
color: #19171c; |
||||
display: inline-block; |
||||
width: 100%; |
||||
} |
||||
|
||||
.hljs-deletion { |
||||
background-color: #be4678; |
||||
} |
||||
|
||||
.hljs-addition { |
||||
background-color: #2a9292; |
||||
} |
||||
|
||||
.hljs { |
||||
display: block; |
||||
overflow-x: auto; |
||||
background: #efecf4; |
||||
color: #585260; |
||||
padding: 0.5em; |
||||
} |
||||
|
||||
.hljs-emphasis { |
||||
font-style: italic; |
||||
} |
||||
|
||||
.hljs-strong { |
||||
font-weight: bold; |
||||
} |
@ -1,69 +0,0 @@
|
||||
/* Base16 Atelier Dune Dark - Theme */ |
||||
/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/dune) */ |
||||
/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ |
||||
|
||||
/* Atelier-Dune Comment */ |
||||
.hljs-comment, |
||||
.hljs-quote { |
||||
color: #999580; |
||||
} |
||||
|
||||
/* Atelier-Dune Red */ |
||||
.hljs-variable, |
||||
.hljs-template-variable, |
||||
.hljs-attribute, |
||||
.hljs-tag, |
||||
.hljs-name, |
||||
.hljs-regexp, |
||||
.hljs-link, |
||||
.hljs-name, |
||||
.hljs-selector-id, |
||||
.hljs-selector-class { |
||||
color: #d73737; |
||||
} |
||||
|
||||
/* Atelier-Dune Orange */ |
||||
.hljs-number, |
||||
.hljs-meta, |
||||
.hljs-built_in, |
||||
.hljs-builtin-name, |
||||
.hljs-literal, |
||||
.hljs-type, |
||||
.hljs-params { |
||||
color: #b65611; |
||||
} |
||||
|
||||
/* Atelier-Dune Green */ |
||||
.hljs-string, |
||||
.hljs-symbol, |
||||
.hljs-bullet { |
||||
color: #60ac39; |
||||
} |
||||
|
||||
/* Atelier-Dune Blue */ |
||||
.hljs-title, |
||||
.hljs-section { |
||||
color: #6684e1; |
||||
} |
||||
|
||||
/* Atelier-Dune Purple */ |
||||
.hljs-keyword, |
||||
.hljs-selector-tag { |
||||
color: #b854d4; |
||||
} |
||||
|
||||
.hljs { |
||||
display: block; |
||||
overflow-x: auto; |
||||
background: #20201d; |
||||
color: #a6a28c; |
||||
padding: 0.5em; |
||||
} |
||||
|
||||
.hljs-emphasis { |
||||
font-style: italic; |
||||
} |
||||
|
||||
.hljs-strong { |
||||
font-weight: bold; |
||||
} |
@ -1,69 +0,0 @@
|
||||
/* Base16 Atelier Dune Light - Theme */ |
||||
/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/dune) */ |
||||
/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ |
||||
|
||||
/* Atelier-Dune Comment */ |
||||
.hljs-comment, |
||||
.hljs-quote { |
||||
color: #7d7a68; |
||||
} |
||||
|
||||
/* Atelier-Dune Red */ |
||||
.hljs-variable, |
||||
.hljs-template-variable, |
||||
.hljs-attribute, |
||||
.hljs-tag, |
||||
.hljs-name, |
||||
.hljs-regexp, |
||||
.hljs-link, |
||||
.hljs-name, |
||||
.hljs-selector-id, |
||||
.hljs-selector-class { |
||||
color: #d73737; |
||||
} |
||||
|
||||
/* Atelier-Dune Orange */ |
||||
.hljs-number, |
||||
.hljs-meta, |
||||
.hljs-built_in, |
||||
.hljs-builtin-name, |
||||
.hljs-literal, |
||||
.hljs-type, |
||||
.hljs-params { |
||||
color: #b65611; |
||||
} |
||||
|
||||
/* Atelier-Dune Green */ |
||||
.hljs-string, |
||||
.hljs-symbol, |
||||
.hljs-bullet { |
||||
color: #60ac39; |
||||
} |
||||
|
||||
/* Atelier-Dune Blue */ |
||||
.hljs-title, |
||||
.hljs-section { |
||||
color: #6684e1; |
||||
} |
||||
|
||||
/* Atelier-Dune Purple */ |
||||
.hljs-keyword, |
||||
.hljs-selector-tag { |
||||
color: #b854d4; |
||||
} |
||||
|
||||
.hljs { |
||||
display: block; |
||||
overflow-x: auto; |
||||
background: #fefbec; |
||||
color: #6e6b5e; |
||||
padding: 0.5em; |
||||
} |
||||
|
||||
.hljs-emphasis { |
||||
font-style: italic; |
||||
} |
||||
|
||||
.hljs-strong { |
||||
font-weight: bold; |
||||
} |
@ -1,84 +0,0 @@
|
||||
/* Base16 Atelier Estuary Dark - Theme */ |
||||
/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/estuary) */ |
||||
/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ |
||||
|
||||
/* Atelier-Estuary Comment */ |
||||
.hljs-comment, |
||||
.hljs-quote { |
||||
color: #878573; |
||||
} |
||||
|
||||
/* Atelier-Estuary Red */ |
||||
.hljs-variable, |
||||
.hljs-template-variable, |
||||
.hljs-attribute, |
||||
.hljs-tag, |
||||
.hljs-name, |
||||
.hljs-regexp, |
||||
.hljs-link, |
||||
.hljs-name, |
||||
.hljs-selector-id, |
||||
.hljs-selector-class { |
||||
color: #ba6236; |
||||
} |
||||
|
||||
/* Atelier-Estuary Orange */ |
||||
.hljs-number, |
||||
.hljs-meta, |
||||
.hljs-built_in, |
||||
.hljs-builtin-name, |
||||
.hljs-literal, |
||||
.hljs-type, |
||||
.hljs-params { |
||||
color: #ae7313; |
||||
} |
||||
|
||||
/* Atelier-Estuary Green */ |
||||
.hljs-string, |
||||
.hljs-symbol, |
||||
.hljs-bullet { |
||||
color: #7d9726; |
||||
} |
||||
|
||||
/* Atelier-Estuary Blue */ |
||||
.hljs-title, |
||||
.hljs-section { |
||||
color: #36a166; |
||||
} |
||||
|
||||
/* Atelier-Estuary Purple */ |
||||
.hljs-keyword, |
||||
.hljs-selector-tag { |
||||
color: #5f9182; |
||||
} |
||||
|
||||
.hljs-deletion, |
||||
.hljs-addition { |
||||
color: #22221b; |
||||
display: inline-block; |
||||
width: 100%; |
||||
} |
||||
|
||||
.hljs-deletion { |
||||
background-color: #ba6236; |
||||
} |
||||
|
||||
.hljs-addition { |
||||
background-color: #7d9726; |
||||
} |
||||
|
||||
.hljs { |
||||
display: block; |
||||
overflow-x: auto; |
||||
background: #22221b; |
||||
color: #929181; |
||||
padding: 0.5em; |
||||
} |
||||
|
||||
.hljs-emphasis { |
||||
font-style: italic; |
||||
} |
||||
|
||||
.hljs-strong { |
||||
font-weight: bold; |
||||
} |
@ -1,84 +0,0 @@
|
||||
/* Base16 Atelier Estuary Light - Theme */ |
||||
/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/estuary) */ |
||||
/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ |
||||
|
||||
/* Atelier-Estuary Comment */ |
||||
.hljs-comment, |
||||
.hljs-quote { |
||||
color: #6c6b5a; |
||||
} |
||||
|
||||
/* Atelier-Estuary Red */ |
||||
.hljs-variable, |
||||
.hljs-template-variable, |
||||
.hljs-attribute, |
||||
.hljs-tag, |
||||
.hljs-name, |
||||
.hljs-regexp, |
||||
.hljs-link, |
||||
.hljs-name, |
||||
.hljs-selector-id, |
||||
.hljs-selector-class { |
||||
color: #ba6236; |
||||
} |
||||
|
||||
/* Atelier-Estuary Orange */ |
||||
.hljs-number, |
||||
.hljs-meta, |
||||
.hljs-built_in, |
||||
.hljs-builtin-name, |
||||
.hljs-literal, |
||||
.hljs-type, |
||||
.hljs-params { |
||||
color: #ae7313; |
||||
} |
||||
|
||||
/* Atelier-Estuary Green */ |
||||
.hljs-string, |
||||
.hljs-symbol, |
||||
.hljs-bullet { |
||||
color: #7d9726; |
||||
} |
||||
|
||||
/* Atelier-Estuary Blue */ |
||||
.hljs-title, |
||||
.hljs-section { |
||||
color: #36a166; |
||||
} |
||||
|
||||
/* Atelier-Estuary Purple */ |
||||
.hljs-keyword, |
||||
.hljs-selector-tag { |
||||
color: #5f9182; |
||||
} |
||||
|
||||
.hljs-deletion, |
||||
.hljs-addition { |
||||
color: #22221b; |
||||
display: inline-block; |
||||
width: 100%; |
||||
} |
||||
|
||||
.hljs-deletion { |
||||
background-color: #ba6236; |
||||
} |
||||
|
||||
.hljs-addition { |
||||
background-color: #7d9726; |
||||
} |
||||
|
||||
.hljs { |
||||
display: block; |
||||
overflow-x: auto; |
||||
background: #f4f3ec; |
||||
color: #5f5e4e; |
||||
padding: 0.5em; |
||||
} |
||||
|
||||
.hljs-emphasis { |
||||
font-style: italic; |
||||
} |
||||
|
||||
.hljs-strong { |
||||
font-weight: bold; |
||||
} |
@ -1,69 +0,0 @@
|
||||
/* Base16 Atelier Forest Dark - Theme */ |
||||
/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/forest) */ |
||||
/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ |
||||
|
||||
/* Atelier-Forest Comment */ |
||||
.hljs-comment, |
||||
.hljs-quote { |
||||
color: #9c9491; |
||||
} |
||||
|
||||
/* Atelier-Forest Red */ |
||||
.hljs-variable, |
||||
.hljs-template-variable, |
||||
.hljs-attribute, |
||||
.hljs-tag, |
||||
.hljs-name, |
||||
.hljs-regexp, |
||||
.hljs-link, |
||||
.hljs-name, |
||||
.hljs-selector-id, |
||||
.hljs-selector-class { |
||||
color: #f22c40; |
||||
} |
||||
|
||||
/* Atelier-Forest Orange */ |
||||
.hljs-number, |
||||
.hljs-meta, |
||||
.hljs-built_in, |
||||
.hljs-builtin-name, |
||||
.hljs-literal, |
||||
.hljs-type, |
||||
.hljs-params { |
||||
color: #df5320; |
||||
} |
||||
|
||||
/* Atelier-Forest Green */ |
||||
.hljs-string, |
||||
.hljs-symbol, |
||||
.hljs-bullet { |
||||
color: #7b9726; |
||||
} |
||||
|
||||
/* Atelier-Forest Blue */ |
||||
.hljs-title, |
||||
.hljs-section { |
||||
color: #407ee7; |
||||
} |
||||
|
||||
/* Atelier-Forest Purple */ |
||||
.hljs-keyword, |
||||
.hljs-selector-tag { |
||||
color: #6666ea; |
||||
} |
||||
|
||||
.hljs { |
||||
display: block; |
||||
overflow-x: auto; |
||||
background: #1b1918; |
||||
color: #a8a19f; |
||||
padding: 0.5em; |
||||
} |
||||
|
||||
.hljs-emphasis { |
||||
font-style: italic; |
||||
} |
||||
|
||||
.hljs-strong { |
||||
font-weight: bold; |
||||
} |
@ -1,69 +0,0 @@
|
||||
/* Base16 Atelier Forest Light - Theme */ |
||||
/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/forest) */ |
||||
/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ |
||||
|
||||
/* Atelier-Forest Comment */ |
||||
.hljs-comment, |
||||
.hljs-quote { |
||||
color: #766e6b; |
||||
} |
||||
|
||||
/* Atelier-Forest Red */ |
||||
.hljs-variable, |
||||
.hljs-template-variable, |
||||
.hljs-attribute, |
||||
.hljs-tag, |
||||
.hljs-name, |
||||
.hljs-regexp, |
||||
.hljs-link, |
||||
.hljs-name, |
||||
.hljs-selector-id, |
||||
.hljs-selector-class { |
||||
color: #f22c40; |
||||
} |
||||
|
||||
/* Atelier-Forest Orange */ |
||||
.hljs-number, |
||||
.hljs-meta, |
||||
.hljs-built_in, |
||||
.hljs-builtin-name, |
||||
.hljs-literal, |
||||
.hljs-type, |
||||
.hljs-params { |
||||
color: #df5320; |
||||
} |
||||
|
||||
/* Atelier-Forest Green */ |
||||
.hljs-string, |
||||
.hljs-symbol, |
||||
.hljs-bullet { |
||||
color: #7b9726; |
||||
} |
||||
|
||||
/* Atelier-Forest Blue */ |
||||
.hljs-title, |
||||
.hljs-section { |
||||
color: #407ee7; |
||||
} |
||||
|
||||
/* Atelier-Forest Purple */ |
||||
.hljs-keyword, |
||||
.hljs-selector-tag { |
||||
color: #6666ea; |
||||
} |
||||
|
||||
.hljs { |
||||
display: block; |
||||
overflow-x: auto; |
||||
background: #f1efee; |
||||
color: #68615e; |
||||
padding: 0.5em; |
||||
} |
||||
|
||||
.hljs-emphasis { |
||||
font-style: italic; |
||||
} |
||||
|
||||
.hljs-strong { |
||||
font-weight: bold; |
||||
} |
@ -1,69 +0,0 @@
|
||||
/* Base16 Atelier Heath Dark - Theme */ |
||||
/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/heath) */ |
||||
/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ |
||||
|
||||
/* Atelier-Heath Comment */ |
||||
.hljs-comment, |
||||
.hljs-quote { |
||||
color: #9e8f9e; |
||||
} |
||||
|
||||
/* Atelier-Heath Red */ |
||||
.hljs-variable, |
||||
.hljs-template-variable, |
||||
.hljs-attribute, |
||||
.hljs-tag, |
||||
.hljs-name, |
||||
.hljs-regexp, |
||||
.hljs-link, |
||||
.hljs-name, |
||||
.hljs-selector-id, |
||||
.hljs-selector-class { |
||||
color: #ca402b; |
||||
} |
||||
|
||||
/* Atelier-Heath Orange */ |
||||
.hljs-number, |
||||
.hljs-meta, |
||||
.hljs-built_in, |
||||
.hljs-builtin-name, |
||||
.hljs-literal, |
||||
.hljs-type, |
||||
.hljs-params { |
||||
color: #a65926; |
||||
} |
||||
|
||||
/* Atelier-Heath Green */ |
||||
.hljs-string, |
||||
.hljs-symbol, |
||||
.hljs-bullet { |
||||
color: #918b3b; |
||||
} |
||||
|
||||
/* Atelier-Heath Blue */ |
||||
.hljs-title, |
||||
.hljs-section { |
||||
color: #516aec; |
||||
} |
||||
|
||||
/* Atelier-Heath Purple */ |
||||
.hljs-keyword, |
||||
.hljs-selector-tag { |
||||
color: #7b59c0; |
||||
} |
||||
|
||||
.hljs { |
||||
display: block; |
||||
overflow-x: auto; |
||||
background: #1b181b; |
||||
color: #ab9bab; |
||||
padding: 0.5em; |
||||
} |
||||
|
||||
.hljs-emphasis { |
||||
font-style: italic; |
||||
} |
||||
|
||||
.hljs-strong { |
||||
font-weight: bold; |
||||
} |
@ -1,69 +0,0 @@
|
||||
/* Base16 Atelier Heath Light - Theme */ |
||||
/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/heath) */ |
||||
/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ |
||||
|
||||
/* Atelier-Heath Comment */ |
||||
.hljs-comment, |
||||
.hljs-quote { |
||||
color: #776977; |
||||
} |
||||
|
||||
/* Atelier-Heath Red */ |
||||
.hljs-variable, |
||||
.hljs-template-variable, |
||||
.hljs-attribute, |
||||
.hljs-tag, |
||||
.hljs-name, |
||||
.hljs-regexp, |
||||
.hljs-link, |
||||
.hljs-name, |
||||
.hljs-selector-id, |
||||
.hljs-selector-class { |
||||
color: #ca402b; |
||||
} |
||||
|
||||
/* Atelier-Heath Orange */ |
||||
.hljs-number, |
||||
.hljs-meta, |
||||
.hljs-built_in, |
||||
.hljs-builtin-name, |
||||
.hljs-literal, |
||||
.hljs-type, |
||||
.hljs-params { |
||||
color: #a65926; |
||||
} |
||||
|
||||
/* Atelier-Heath Green */ |
||||
.hljs-string, |
||||
.hljs-symbol, |
||||
.hljs-bullet { |
||||
color: #918b3b; |
||||
} |
||||
|
||||
/* Atelier-Heath Blue */ |
||||
.hljs-title, |
||||
.hljs-section { |
||||
color: #516aec; |
||||
} |
||||
|
||||
/* Atelier-Heath Purple */ |
||||
.hljs-keyword, |
||||
.hljs-selector-tag { |
||||
color: #7b59c0; |
||||
} |
||||
|
||||
.hljs { |
||||
display: block; |
||||
overflow-x: auto; |
||||
background: #f7f3f7; |
||||
color: #695d69; |
||||
padding: 0.5em; |
||||
} |
||||
|
||||
.hljs-emphasis { |
||||
font-style: italic; |
||||
} |
||||
|
||||
.hljs-strong { |
||||
font-weight: bold; |
||||
} |
@ -1,69 +0,0 @@
|
||||
/* Base16 Atelier Lakeside Dark - Theme */ |
||||
/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/lakeside) */ |
||||
/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ |
||||
|
||||
/* Atelier-Lakeside Comment */ |
||||
.hljs-comment, |
||||
.hljs-quote { |
||||
color: #7195a8; |
||||
} |
||||
|
||||
/* Atelier-Lakeside Red */ |
||||
.hljs-variable, |
||||
.hljs-template-variable, |
||||
.hljs-attribute, |
||||
.hljs-tag, |
||||
.hljs-name, |
||||
.hljs-regexp, |
||||
.hljs-link, |
||||
.hljs-name, |
||||
.hljs-selector-id, |
||||
.hljs-selector-class { |
||||
color: #d22d72; |
||||
} |
||||
|
||||
/* Atelier-Lakeside Orange */ |
||||
.hljs-number, |
||||
.hljs-meta, |
||||
.hljs-built_in, |
||||
.hljs-builtin-name, |
||||
.hljs-literal, |
||||
.hljs-type, |
||||
.hljs-params { |
||||
color: #935c25; |
||||
} |
||||
|
||||
/* Atelier-Lakeside Green */ |
||||
.hljs-string, |
||||
.hljs-symbol, |
||||
.hljs-bullet { |
||||
color: #568c3b; |
||||
} |
||||
|
||||
/* Atelier-Lakeside Blue */ |
||||
.hljs-title, |
||||
.hljs-section { |
||||
color: #257fad; |
||||
} |
||||
|
||||
/* Atelier-Lakeside Purple */ |
||||
.hljs-keyword, |
||||
.hljs-selector-tag { |
||||
color: #6b6bb8; |
||||
} |
||||
|
||||
.hljs { |
||||
display: block; |
||||
overflow-x: auto; |
||||
background: #161b1d; |
||||
color: #7ea2b4; |
||||
padding: 0.5em; |
||||
} |
||||
|
||||
.hljs-emphasis { |
||||
font-style: italic; |
||||
} |
||||
|
||||
.hljs-strong { |
||||
font-weight: bold; |
||||
} |
@ -1,69 +0,0 @@
|
||||
/* Base16 Atelier Lakeside Light - Theme */ |
||||
/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/lakeside) */ |
||||
/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ |
||||
|
||||
/* Atelier-Lakeside Comment */ |
||||
.hljs-comment, |
||||
.hljs-quote { |
||||
color: #5a7b8c; |
||||
} |
||||
|
||||
/* Atelier-Lakeside Red */ |
||||
.hljs-variable, |
||||
.hljs-template-variable, |
||||
.hljs-attribute, |
||||
.hljs-tag, |
||||
.hljs-name, |
||||
.hljs-regexp, |
||||
.hljs-link, |
||||
.hljs-name, |
||||
.hljs-selector-id, |
||||
.hljs-selector-class { |
||||
color: #d22d72; |
||||
} |
||||
|
||||
/* Atelier-Lakeside Orange */ |
||||
.hljs-number, |
||||
.hljs-meta, |
||||
.hljs-built_in, |
||||
.hljs-builtin-name, |
||||
.hljs-literal, |
||||
.hljs-type, |
||||
.hljs-params { |
||||
color: #935c25; |
||||
} |
||||
|
||||
/* Atelier-Lakeside Green */ |
||||
.hljs-string, |
||||
.hljs-symbol, |
||||
.hljs-bullet { |
||||
color: #568c3b; |
||||
} |
||||
|
||||
/* Atelier-Lakeside Blue */ |
||||
.hljs-title, |
||||
.hljs-section { |
||||
color: #257fad; |
||||
} |
||||
|
||||
/* Atelier-Lakeside Purple */ |
||||
.hljs-keyword, |
||||
.hljs-selector-tag { |
||||
color: #6b6bb8; |
||||
} |
||||
|
||||
.hljs { |
||||
display: block; |
||||
overflow-x: auto; |
||||
background: #ebf8ff; |
||||
color: #516d7b; |
||||
padding: 0.5em; |
||||
} |
||||
|
||||
.hljs-emphasis { |
||||
font-style: italic; |
||||
} |
||||
|
||||
.hljs-strong { |
||||
font-weight: bold; |
||||
} |
@ -1,84 +0,0 @@
|
||||
/* Base16 Atelier Plateau Dark - Theme */ |
||||
/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/plateau) */ |
||||
/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ |
||||
|
||||
/* Atelier-Plateau Comment */ |
||||
.hljs-comment, |
||||
.hljs-quote { |
||||
color: #7e7777; |
||||
} |
||||
|
||||
/* Atelier-Plateau Red */ |
||||
.hljs-variable, |
||||
.hljs-template-variable, |
||||
.hljs-attribute, |
||||
.hljs-tag, |
||||
.hljs-name, |
||||
.hljs-regexp, |
||||
.hljs-link, |
||||
.hljs-name, |
||||
.hljs-selector-id, |
||||
.hljs-selector-class { |
||||
color: #ca4949; |
||||
} |
||||
|
||||
/* Atelier-Plateau Orange */ |
||||
.hljs-number, |
||||
.hljs-meta, |
||||
.hljs-built_in, |
||||
.hljs-builtin-name, |
||||
.hljs-literal, |
||||
.hljs-type, |
||||
.hljs-params { |
||||
color: #b45a3c; |
||||
} |
||||
|
||||
/* Atelier-Plateau Green */ |
||||
.hljs-string, |
||||
.hljs-symbol, |
||||
.hljs-bullet { |
||||
color: #4b8b8b; |
||||
} |
||||
|
||||
/* Atelier-Plateau Blue */ |
||||
.hljs-title, |
||||
.hljs-section { |
||||
color: #7272ca; |
||||
} |
||||
|
||||
/* Atelier-Plateau Purple */ |
||||
.hljs-keyword, |
||||
.hljs-selector-tag { |
||||
color: #8464c4; |
||||
} |
||||
|
||||
.hljs-deletion, |
||||
.hljs-addition { |
||||
color: #1b1818; |
||||
display: inline-block; |
||||
width: 100%; |
||||
} |
||||
|
||||
.hljs-deletion { |
||||
background-color: #ca4949; |
||||
} |
||||
|
||||
.hljs-addition { |
||||
background-color: #4b8b8b; |
||||
} |
||||
|
||||
.hljs { |
||||
display: block; |
||||
overflow-x: auto; |
||||
background: #1b1818; |
||||
color: #8a8585; |
||||
padding: 0.5em; |
||||
} |
||||
|
||||
.hljs-emphasis { |
||||
font-style: italic; |
||||
} |
||||
|
||||
.hljs-strong { |
||||
font-weight: bold; |
||||
} |
@ -1,84 +0,0 @@
|
||||
/* Base16 Atelier Plateau Light - Theme */ |
||||
/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/plateau) */ |
||||
/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ |
||||
|
||||
/* Atelier-Plateau Comment */ |
||||
.hljs-comment, |
||||
.hljs-quote { |
||||
color: #655d5d; |
||||
} |
||||
|
||||
/* Atelier-Plateau Red */ |
||||
.hljs-variable, |
||||
.hljs-template-variable, |
||||
.hljs-attribute, |
||||
.hljs-tag, |
||||
.hljs-name, |
||||
.hljs-regexp, |
||||
.hljs-link, |
||||
.hljs-name, |
||||
.hljs-selector-id, |
||||
.hljs-selector-class { |
||||
color: #ca4949; |
||||
} |
||||
|
||||
/* Atelier-Plateau Orange */ |
||||
.hljs-number, |
||||
.hljs-meta, |
||||
.hljs-built_in, |
||||
.hljs-builtin-name, |
||||
.hljs-literal, |
||||
.hljs-type, |
||||
.hljs-params { |
||||
color: #b45a3c; |
||||
} |
||||
|
||||
/* Atelier-Plateau Green */ |
||||
.hljs-string, |
||||
.hljs-symbol, |
||||
.hljs-bullet { |
||||
color: #4b8b8b; |
||||
} |
||||
|
||||
/* Atelier-Plateau Blue */ |
||||
.hljs-title, |
||||
.hljs-section { |
||||
color: #7272ca; |
||||
} |
||||
|
||||
/* Atelier-Plateau Purple */ |
||||
.hljs-keyword, |
||||
.hljs-selector-tag { |
||||
color: #8464c4; |
||||
} |
||||
|
||||
.hljs-deletion, |
||||
.hljs-addition { |
||||
color: #1b1818; |
||||
display: inline-block; |
||||
width: 100%; |
||||
} |
||||
|
||||
.hljs-deletion { |
||||
background-color: #ca4949; |
||||
} |
||||
|
||||
.hljs-addition { |
||||
background-color: #4b8b8b; |
||||
} |
||||
|
||||
.hljs { |
||||
display: block; |
||||
overflow-x: auto; |
||||
background: #f4ecec; |
||||
color: #585050; |
||||
padding: 0.5em; |
||||
} |
||||
|
||||
.hljs-emphasis { |
||||
font-style: italic; |
||||
} |
||||
|
||||
.hljs-strong { |
||||
font-weight: bold; |
||||
} |
@ -1,84 +0,0 @@
|
||||
/* Base16 Atelier Savanna Dark - Theme */ |
||||
/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/savanna) */ |
||||
/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ |
||||
|
||||
/* Atelier-Savanna Comment */ |
||||
.hljs-comment, |
||||
.hljs-quote { |
||||
color: #78877d; |
||||
} |
||||
|
||||
/* Atelier-Savanna Red */ |
||||
.hljs-variable, |
||||
.hljs-template-variable, |
||||
.hljs-attribute, |
||||
.hljs-tag, |
||||
.hljs-name, |
||||
.hljs-regexp, |
||||
.hljs-link, |
||||
.hljs-name, |
||||
.hljs-selector-id, |
||||
.hljs-selector-class { |
||||
color: #b16139; |
||||
} |
||||
|
||||
/* Atelier-Savanna Orange */ |
||||
.hljs-number, |
||||
.hljs-meta, |
||||
.hljs-built_in, |
||||
.hljs-builtin-name, |
||||
.hljs-literal, |
||||
.hljs-type, |
||||
.hljs-params { |
||||
color: #9f713c; |
||||
} |
||||
|
||||
/* Atelier-Savanna Green */ |
||||
.hljs-string, |
||||
.hljs-symbol, |
||||
.hljs-bullet { |
||||
color: #489963; |
||||
} |
||||
|
||||
/* Atelier-Savanna Blue */ |
||||
.hljs-title, |
||||
.hljs-section { |
||||
color: #478c90; |
||||
} |
||||
|
||||
/* Atelier-Savanna Purple */ |
||||
.hljs-keyword, |
||||
.hljs-selector-tag { |
||||
color: #55859b; |
||||
} |
||||
|
||||
.hljs-deletion, |
||||
.hljs-addition { |
||||
color: #171c19; |
||||
display: inline-block; |
||||
width: 100%; |
||||
} |
||||
|
||||
.hljs-deletion { |
||||
background-color: #b16139; |
||||
} |
||||
|
||||
.hljs-addition { |
||||
background-color: #489963; |
||||
} |
||||
|
||||
.hljs { |
||||
display: block; |
||||
overflow-x: auto; |
||||
background: #171c19; |
||||
color: #87928a; |
||||
padding: 0.5em; |
||||
} |
||||
|
||||
.hljs-emphasis { |
||||
font-style: italic; |
||||
} |
||||
|
||||
.hljs-strong { |
||||
font-weight: bold; |
||||
} |
@ -1,84 +0,0 @@
|
||||
/* Base16 Atelier Savanna Light - Theme */ |
||||
/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/savanna) */ |
||||
/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ |
||||
|
||||
/* Atelier-Savanna Comment */ |
||||
.hljs-comment, |
||||
.hljs-quote { |
||||
color: #5f6d64; |
||||
} |
||||
|
||||
/* Atelier-Savanna Red */ |
||||
.hljs-variable, |
||||
.hljs-template-variable, |
||||
.hljs-attribute, |
||||
.hljs-tag, |
||||
.hljs-name, |
||||
.hljs-regexp, |
||||
.hljs-link, |
||||
.hljs-name, |
||||
.hljs-selector-id, |
||||
.hljs-selector-class { |
||||
color: #b16139; |
||||
} |
||||
|
||||
/* Atelier-Savanna Orange */ |
||||
.hljs-number, |
||||
.hljs-meta, |
||||
.hljs-built_in, |
||||
.hljs-builtin-name, |
||||
.hljs-literal, |
||||
.hljs-type, |
||||
.hljs-params { |
||||
color: #9f713c; |
||||
} |
||||
|
||||
/* Atelier-Savanna Green */ |
||||
.hljs-string, |
||||
.hljs-symbol, |
||||
.hljs-bullet { |
||||
color: #489963; |
||||
} |
||||
|
||||
/* Atelier-Savanna Blue */ |
||||
.hljs-title, |
||||
.hljs-section { |
||||
color: #478c90; |
||||
} |
||||
|
||||
/* Atelier-Savanna Purple */ |
||||
.hljs-keyword, |
||||
.hljs-selector-tag { |
||||
color: #55859b; |
||||
} |
||||
|
||||
.hljs-deletion, |
||||
.hljs-addition { |
||||
color: #171c19; |
||||
display: inline-block; |
||||
width: 100%; |
||||
} |
||||
|
||||
.hljs-deletion { |
||||
background-color: #b16139; |
||||
} |
||||
|
||||
.hljs-addition { |
||||
background-color: #489963; |
||||
} |
||||
|
||||
.hljs { |
||||
display: block; |
||||
overflow-x: auto; |
||||
background: #ecf4ee; |
||||
color: #526057; |
||||
padding: 0.5em; |
||||
} |
||||
|
||||
.hljs-emphasis { |
||||
font-style: italic; |
||||
} |
||||
|
||||
.hljs-strong { |
||||
font-weight: bold; |
||||
} |
@ -1,69 +0,0 @@
|
||||
/* Base16 Atelier Seaside Dark - Theme */ |
||||
/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/seaside) */ |
||||
/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ |
||||
|
||||
/* Atelier-Seaside Comment */ |
||||
.hljs-comment, |
||||
.hljs-quote { |
||||
color: #809980; |
||||
} |
||||
|
||||
/* Atelier-Seaside Red */ |
||||
.hljs-variable, |
||||
.hljs-template-variable, |
||||
.hljs-attribute, |
||||
.hljs-tag, |
||||
.hljs-name, |
||||
.hljs-regexp, |
||||
.hljs-link, |
||||
.hljs-name, |
||||
.hljs-selector-id, |
||||
.hljs-selector-class { |
||||
color: #e6193c; |
||||
} |
||||
|
||||
/* Atelier-Seaside Orange */ |
||||
.hljs-number, |
||||
.hljs-meta, |
||||
.hljs-built_in, |
||||
.hljs-builtin-name, |
||||
.hljs-literal, |
||||
.hljs-type, |
||||
.hljs-params { |
||||
color: #87711d; |
||||
} |
||||
|
||||
/* Atelier-Seaside Green */ |
||||
.hljs-string, |
||||
.hljs-symbol, |
||||
.hljs-bullet { |
||||
color: #29a329; |
||||
} |
||||
|
||||
/* Atelier-Seaside Blue */ |
||||
.hljs-title, |
||||
.hljs-section { |
||||
color: #3d62f5; |
||||
} |
||||
|
||||
/* Atelier-Seaside Purple */ |
||||
.hljs-keyword, |
||||
.hljs-selector-tag { |
||||
color: #ad2bee; |
||||
} |
||||
|
||||
.hljs { |
||||
display: block; |
||||
overflow-x: auto; |
||||
background: #131513; |
||||
color: #8ca68c; |
||||
padding: 0.5em; |
||||
} |
||||
|
||||
.hljs-emphasis { |
||||
font-style: italic; |
||||
} |
||||
|
||||
.hljs-strong { |
||||
font-weight: bold; |
||||
} |
@ -1,69 +0,0 @@
|
||||
/* Base16 Atelier Seaside Light - Theme */ |
||||
/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/seaside) */ |
||||
/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ |
||||
|
||||
/* Atelier-Seaside Comment */ |
||||
.hljs-comment, |
||||
.hljs-quote { |
||||
color: #687d68; |
||||
} |
||||
|
||||
/* Atelier-Seaside Red */ |
||||
.hljs-variable, |
||||
.hljs-template-variable, |
||||
.hljs-attribute, |
||||
.hljs-tag, |
||||
.hljs-name, |
||||
.hljs-regexp, |
||||
.hljs-link, |
||||
.hljs-name, |
||||
.hljs-selector-id, |
||||
.hljs-selector-class { |
||||
color: #e6193c; |
||||
} |
||||
|
||||
/* Atelier-Seaside Orange */ |
||||
.hljs-number, |
||||
.hljs-meta, |
||||
.hljs-built_in, |
||||
.hljs-builtin-name, |
||||
.hljs-literal, |
||||
.hljs-type, |
||||
.hljs-params { |
||||
color: #87711d; |
||||
} |
||||
|
||||
/* Atelier-Seaside Green */ |
||||
.hljs-string, |
||||
.hljs-symbol, |
||||
.hljs-bullet { |
||||
color: #29a329; |
||||
} |
||||
|
||||
/* Atelier-Seaside Blue */ |
||||
.hljs-title, |
||||
.hljs-section { |
||||
color: #3d62f5; |
||||
} |
||||
|
||||
/* Atelier-Seaside Purple */ |
||||
.hljs-keyword, |
||||
.hljs-selector-tag { |
||||
color: #ad2bee; |
||||
} |
||||
|
||||
.hljs { |
||||
display: block; |
||||
overflow-x: auto; |
||||
background: #f4fbf4; |
||||
color: #5e6e5e; |
||||
padding: 0.5em; |
||||
} |
||||
|
||||
.hljs-emphasis { |
||||
font-style: italic; |
||||
} |
||||
|
||||
.hljs-strong { |
||||
font-weight: bold; |
||||
} |
@ -1,69 +0,0 @@
|
||||
/* Base16 Atelier Sulphurpool Dark - Theme */ |
||||
/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/sulphurpool) */ |
||||
/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ |
||||
|
||||
/* Atelier-Sulphurpool Comment */ |
||||
.hljs-comment, |
||||
.hljs-quote { |
||||
color: #898ea4; |
||||
} |
||||
|
||||
/* Atelier-Sulphurpool Red */ |
||||
.hljs-variable, |
||||
.hljs-template-variable, |
||||
.hljs-attribute, |
||||
.hljs-tag, |
||||
.hljs-name, |
||||
.hljs-regexp, |
||||
.hljs-link, |
||||
.hljs-name, |
||||
.hljs-selector-id, |
||||
.hljs-selector-class { |
||||
color: #c94922; |
||||
} |
||||
|
||||
/* Atelier-Sulphurpool Orange */ |
||||
.hljs-number, |
||||
.hljs-meta, |
||||
.hljs-built_in, |
||||
.hljs-builtin-name, |
||||
.hljs-literal, |
||||
.hljs-type, |
||||
.hljs-params { |
||||
color: #c76b29; |
||||
} |
||||
|
||||
/* Atelier-Sulphurpool Green */ |
||||
.hljs-string, |
||||
.hljs-symbol, |
||||
.hljs-bullet { |
||||
color: #ac9739; |
||||
} |
||||
|
||||
/* Atelier-Sulphurpool Blue */ |
||||
.hljs-title, |
||||
.hljs-section { |
||||
color: #3d8fd1; |
||||
} |
||||
|
||||
/* Atelier-Sulphurpool Purple */ |
||||
.hljs-keyword, |
||||
.hljs-selector-tag { |
||||
color: #6679cc; |
||||
} |
||||
|
||||
.hljs { |
||||
display: block; |
||||
overflow-x: auto; |
||||
background: #202746; |
||||
color: #979db4; |
||||
padding: 0.5em; |
||||
} |
||||
|
||||
.hljs-emphasis { |
||||
font-style: italic; |
||||
} |
||||
|
||||
.hljs-strong { |
||||
font-weight: bold; |
||||
} |
@ -1,69 +0,0 @@
|
||||
/* Base16 Atelier Sulphurpool Light - Theme */ |
||||
/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/sulphurpool) */ |
||||
/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ |
||||
|
||||
/* Atelier-Sulphurpool Comment */ |
||||
.hljs-comment, |
||||
.hljs-quote { |
||||
color: #6b7394; |
||||
} |
||||
|
||||
/* Atelier-Sulphurpool Red */ |
||||
.hljs-variable, |
||||
.hljs-template-variable, |
||||
.hljs-attribute, |
||||
.hljs-tag, |
||||
.hljs-name, |
||||
.hljs-regexp, |
||||
.hljs-link, |
||||
.hljs-name, |
||||
.hljs-selector-id, |
||||
.hljs-selector-class { |
||||
color: #c94922; |
||||
} |
||||
|
||||
/* Atelier-Sulphurpool Orange */ |
||||
.hljs-number, |
||||
.hljs-meta, |
||||
.hljs-built_in, |
||||
.hljs-builtin-name, |
||||
.hljs-literal, |
||||
.hljs-type, |
||||
.hljs-params { |
||||
color: #c76b29; |
||||
} |
||||
|
||||
/* Atelier-Sulphurpool Green */ |
||||
.hljs-string, |
||||
.hljs-symbol, |
||||
.hljs-bullet { |
||||
color: #ac9739; |
||||
} |
||||
|
||||
/* Atelier-Sulphurpool Blue */ |
||||
.hljs-title, |
||||
.hljs-section { |
||||
color: #3d8fd1; |
||||
} |
||||
|
||||
/* Atelier-Sulphurpool Purple */ |
||||
.hljs-keyword, |
||||
.hljs-selector-tag { |
||||
color: #6679cc; |
||||
} |
||||
|
||||
.hljs { |
||||
display: block; |
||||
overflow-x: auto; |
||||
background: #f5f7ff; |
||||
color: #5e6687; |
||||
padding: 0.5em; |
||||
} |
||||
|
||||
.hljs-emphasis { |
||||
font-style: italic; |
||||
} |
||||
|
||||
.hljs-strong { |
||||
font-weight: bold; |
||||
} |
@ -1,96 +0,0 @@
|
||||
/* |
||||
|
||||
Atom One Dark by Daniel Gamage |
||||
Original One Dark Syntax theme from https://github.com/atom/one-dark-syntax |
||||
|
||||
base: #282c34 |
||||
mono-1: #abb2bf |
||||
mono-2: #818896 |
||||
mono-3: #5c6370 |
||||
hue-1: #56b6c2 |
||||
hue-2: #61aeee |
||||
hue-3: #c678dd |
||||
hue-4: #98c379 |
||||
hue-5: #e06c75 |
||||
hue-5-2: #be5046 |
||||
hue-6: #d19a66 |
||||
hue-6-2: #e6c07b |
||||
|
||||
*/ |
||||
|
||||
.hljs { |
||||
display: block; |
||||
overflow-x: auto; |
||||
padding: 0.5em; |
||||
color: #abb2bf; |
||||
background: #282c34; |
||||
} |
||||
|
||||
.hljs-comment, |
||||
.hljs-quote { |
||||
color: #5c6370; |
||||
font-style: italic; |
||||
} |
||||
|
||||
.hljs-doctag, |
||||
.hljs-keyword, |
||||
.hljs-formula { |
||||
color: #c678dd; |
||||
} |
||||
|
||||
.hljs-section, |
||||
.hljs-name, |
||||
.hljs-selector-tag, |
||||
.hljs-deletion, |
||||
.hljs-subst { |
||||
color: #e06c75; |
||||
} |
||||
|
||||
.hljs-literal { |
||||
color: #56b6c2; |
||||
} |
||||
|
||||
.hljs-string, |
||||
.hljs-regexp, |
||||
.hljs-addition, |
||||
.hljs-attribute, |
||||
.hljs-meta-string { |
||||
color: #98c379; |
||||
} |
||||
|
||||
.hljs-built_in, |
||||
.hljs-class .hljs-title { |
||||
color: #e6c07b; |
||||
} |
||||
|
||||
.hljs-attr, |
||||
.hljs-variable, |
||||
.hljs-template-variable, |
||||
.hljs-type, |
||||
.hljs-selector-class, |
||||
.hljs-selector-attr, |
||||
.hljs-selector-pseudo, |
||||
.hljs-number { |
||||
color: #d19a66; |
||||
} |
||||
|
||||
.hljs-symbol, |
||||
.hljs-bullet, |
||||
.hljs-link, |
||||
.hljs-meta, |
||||
.hljs-selector-id, |
||||
.hljs-title { |
||||
color: #61aeee; |
||||
} |
||||
|
||||
.hljs-emphasis { |
||||
font-style: italic; |
||||
} |
||||
|
||||
.hljs-strong { |
||||
font-weight: bold; |
||||
} |
||||
|
||||
.hljs-link { |
||||
text-decoration: underline; |
||||
} |
@ -1,96 +0,0 @@
|
||||
/* |
||||
|
||||
Atom One Light by Daniel Gamage |
||||
Original One Light Syntax theme from https://github.com/atom/one-light-syntax |
||||
|
||||
base: #fafafa |
||||
mono-1: #383a42 |
||||
mono-2: #686b77 |
||||
mono-3: #a0a1a7 |
||||
hue-1: #0184bb |
||||
hue-2: #4078f2 |
||||
hue-3: #a626a4 |
||||
hue-4: #50a14f |
||||
hue-5: #e45649 |
||||
hue-5-2: #c91243 |
||||
hue-6: #986801 |
||||
hue-6-2: #c18401 |
||||
|
||||
*/ |
||||
|
||||
.hljs { |
||||
display: block; |
||||
overflow-x: auto; |
||||
padding: 0.5em; |
||||
color: #383a42; |
||||
background: #fafafa; |
||||
} |
||||
|
||||
.hljs-comment, |
||||
.hljs-quote { |
||||
color: #a0a1a7; |
||||
font-style: italic; |
||||
} |
||||
|
||||
.hljs-doctag, |
||||
.hljs-keyword, |
||||
.hljs-formula { |
||||
color: #a626a4; |
||||
} |
||||
|
||||
.hljs-section, |
||||
.hljs-name, |
||||
.hljs-selector-tag, |
||||
.hljs-deletion, |
||||
.hljs-subst { |
||||
color: #e45649; |
||||
} |
||||
|
||||
.hljs-literal { |
||||
color: #0184bb; |
||||
} |
||||
|
||||
.hljs-string, |
||||
.hljs-regexp, |
||||
.hljs-addition, |
||||
.hljs-attribute, |
||||
.hljs-meta-string { |
||||
color: #50a14f; |
||||
} |
||||
|
||||
.hljs-built_in, |
||||
.hljs-class .hljs-title { |
||||
color: #c18401; |
||||
} |
||||
|
||||
.hljs-attr, |
||||
.hljs-variable, |
||||
.hljs-template-variable, |
||||
.hljs-type, |
||||
.hljs-selector-class, |
||||
.hljs-selector-attr, |
||||
.hljs-selector-pseudo, |
||||
.hljs-number { |
||||
color: #986801; |
||||
} |
||||
|
||||
.hljs-symbol, |
||||
.hljs-bullet, |
||||
.hljs-link, |
||||
.hljs-meta, |
||||
.hljs-selector-id, |
||||
.hljs-title { |
||||
color: #4078f2; |
||||
} |
||||
|
||||
.hljs-emphasis { |
||||
font-style: italic; |
||||
} |
||||
|
||||
.hljs-strong { |
||||
font-weight: bold; |
||||
} |
||||
|
||||
.hljs-link { |
||||
text-decoration: underline; |
||||
} |
@ -1,64 +0,0 @@
|
||||
/* |
||||
|
||||
Brown Paper style from goldblog.com.ua (c) Zaripov Yura <yur4ik7@ukr.net> |
||||
|
||||
*/ |
||||
|
||||
.hljs { |
||||
display: block; |
||||
overflow-x: auto; |
||||
padding: 0.5em; |
||||
background:#b7a68e url(./brown-papersq.png); |
||||
} |
||||
|
||||
.hljs-keyword, |
||||
.hljs-selector-tag, |
||||
.hljs-literal { |
||||
color:#005599; |
||||
font-weight:bold; |
||||
} |
||||
|
||||
.hljs, |
||||
.hljs-subst { |
||||
color: #363c69; |
||||
} |
||||
|
||||
.hljs-string, |
||||
.hljs-title, |
||||
.hljs-section, |
||||
.hljs-type, |
||||
.hljs-attribute, |
||||
.hljs-symbol, |
||||
.hljs-bullet, |
||||
.hljs-built_in, |
||||
.hljs-addition, |
||||
.hljs-variable, |
||||
.hljs-template-tag, |
||||
.hljs-template-variable, |
||||
.hljs-link, |
||||
.hljs-name { |
||||
color: #2c009f; |
||||
} |
||||
|
||||
.hljs-comment, |
||||
.hljs-quote, |
||||
.hljs-meta, |
||||
.hljs-deletion { |
||||
color: #802022; |
||||
} |
||||
|
||||
.hljs-keyword, |
||||
.hljs-selector-tag, |
||||
.hljs-literal, |
||||
.hljs-doctag, |
||||
.hljs-title, |
||||
.hljs-section, |
||||
.hljs-type, |
||||
.hljs-name, |
||||
.hljs-strong { |
||||
font-weight: bold; |
||||
} |
||||
|
||||
.hljs-emphasis { |
||||
font-style: italic; |
||||
} |
Before Width: | Height: | Size: 18 KiB |
@ -1,60 +0,0 @@
|
||||
/* |
||||
codepen.io Embed Theme |
||||
Author: Justin Perry <http://github.com/ourmaninamsterdam> |
||||
Original theme - https://github.com/chriskempson/tomorrow-theme |
||||
*/ |
||||
|
||||
.hljs { |
||||
display: block; |
||||
overflow-x: auto; |
||||
padding: 0.5em; |
||||
background: #222; |
||||
color: #fff; |
||||
} |
||||
|
||||
.hljs-comment, |
||||
.hljs-quote { |
||||
color: #777; |
||||
} |
||||
|
||||
.hljs-variable, |
||||
.hljs-template-variable, |
||||
.hljs-tag, |
||||
.hljs-regexp, |
||||
.hljs-meta, |
||||
.hljs-number, |
||||
.hljs-built_in, |
||||
.hljs-builtin-name, |
||||
.hljs-literal, |
||||
.hljs-params, |
||||
.hljs-symbol, |
||||
.hljs-bullet, |
||||
.hljs-link, |
||||
.hljs-deletion { |
||||
color: #ab875d; |
||||
} |
||||
|
||||
.hljs-section, |
||||
.hljs-title, |
||||
.hljs-name, |
||||
.hljs-selector-id, |
||||
.hljs-selector-class, |
||||
.hljs-type, |
||||
.hljs-attribute { |
||||
color: #9b869b; |
||||
} |
||||
|
||||
.hljs-string, |
||||
.hljs-keyword, |
||||
.hljs-selector-tag, |
||||
.hljs-addition { |
||||
color: #8f9c6c; |
||||
} |
||||
|
||||
.hljs-emphasis { |
||||
font-style: italic; |
||||
} |
||||
|
||||
.hljs-strong { |
||||
font-weight: bold; |
||||
} |
@ -1,71 +0,0 @@
|
||||
/* |
||||
|
||||
Colorbrewer theme |
||||
Original: https://github.com/mbostock/colorbrewer-theme (c) Mike Bostock <mike@ocks.org> |
||||
Ported by Fabrício Tavares de Oliveira |
||||
|
||||
*/ |
||||
|
||||
.hljs { |
||||
display: block; |
||||
overflow-x: auto; |
||||
padding: 0.5em; |
||||
background: #fff; |
||||
} |
||||
|
||||
.hljs, |
||||
.hljs-subst { |
||||
color: #000; |
||||
} |
||||
|
||||
.hljs-string, |
||||
.hljs-meta, |
||||
.hljs-symbol, |
||||
.hljs-template-tag, |
||||
.hljs-template-variable, |
||||
.hljs-addition { |
||||
color: #756bb1; |
||||
} |
||||
|
||||
.hljs-comment, |
||||
.hljs-quote { |
||||
color: #636363; |
||||
} |
||||
|
||||
.hljs-number, |
||||
.hljs-regexp, |
||||
.hljs-literal, |
||||
.hljs-bullet, |
||||
.hljs-link { |
||||
color: #31a354; |
||||
} |
||||
|
||||
.hljs-deletion, |
||||
.hljs-variable { |
||||
color: #88f; |
||||
} |
||||
|
||||
|
||||
|
||||
.hljs-keyword, |
||||
.hljs-selector-tag, |
||||
.hljs-title, |
||||
.hljs-section, |
||||
.hljs-built_in, |
||||
.hljs-doctag, |
||||
.hljs-type, |
||||
.hljs-tag, |
||||
.hljs-name, |
||||
.hljs-selector-id, |
||||
.hljs-selector-class, |
||||
.hljs-strong { |
||||
color: #3182bd; |
||||
} |
||||
|
||||
.hljs-emphasis { |
||||
font-style: italic; |
||||
} |
||||
|
||||
.hljs-attribute { |
||||
color: #e6550d; |
||||
} |
@ -1,77 +0,0 @@
|
||||
/* |
||||
|
||||
Darcula color scheme from the JetBrains family of IDEs |
||||
|
||||
*/ |
||||
|
||||
|
||||
.hljs { |
||||
display: block; |
||||
overflow-x: auto; |
||||
padding: 0.5em; |
||||
background: #2b2b2b; |
||||
} |
||||
|
||||
.hljs { |
||||
color: #bababa; |
||||
} |
||||
|
||||
.hljs-strong, |
||||
.hljs-emphasis { |
||||
color: #a8a8a2; |
||||
} |
||||
|
||||
.hljs-bullet, |
||||
.hljs-quote, |
||||
.hljs-link, |
||||
.hljs-number, |
||||
.hljs-regexp, |
||||
.hljs-literal { |
||||
color: #6896ba; |
||||
} |
||||
|
||||
.hljs-code, |
||||
.hljs-selector-class { |
||||
color: #a6e22e; |
||||
} |
||||
|
||||
.hljs-emphasis { |
||||
font-style: italic; |
||||
} |
||||
|
||||
.hljs-keyword, |
||||
.hljs-selector-tag, |
||||
.hljs-section, |
||||
.hljs-attribute, |
||||
.hljs-name, |
||||
.hljs-variable { |
||||
color: #cb7832; |
||||
} |
||||
|
||||
.hljs-params { |
||||
color: #b9b9b9; |
||||
} |
||||
|
||||
.hljs-string { |
||||
color: #6a8759; |
||||
} |
||||
|
||||
.hljs-subst, |
||||
.hljs-type, |
||||
.hljs-built_in, |
||||
.hljs-builtin-name, |
||||
.hljs-symbol, |
||||
.hljs-selector-id, |
||||
.hljs-selector-attr, |
||||
.hljs-selector-pseudo, |
||||
.hljs-template-tag, |
||||
.hljs-template-variable, |
||||
.hljs-addition { |
||||
color: #e0c46c; |
||||
} |
||||
|
||||
.hljs-comment, |
||||
.hljs-deletion, |
||||
.hljs-meta { |
||||
color: #7f7f7f; |
||||
} |