(Grav GitSync) Automatic Commit from alanleoni

This commit is contained in:
alanleoni 2021-06-01 23:53:03 +03:00 committed by GitSync
commit 9cafb95521
342 changed files with 25320 additions and 0 deletions

42
pages/01.home/default.md Normal file
View file

@ -0,0 +1,42 @@
---
title: Home
body_classes: title-center title-h1h2
---
# Say Hello to Grav!
## installation successful...
Congratulations! You have installed the **Base Grav Package** that provides a **simple page** and the default **Quark** theme to get you started.
!! If you see a **404 Error** when you click `Typography` in the menu, please refer to the [troubleshooting guide](http://learn.getgrav.org/troubleshooting/page-not-found).
### Find out all about Grav
* Learn about **Grav** by checking out our dedicated [Learn Grav](http://learn.getgrav.org) site.
* Download **plugins**, **themes**, as well as other Grav **skeleton** packages from the [Grav Downloads](http://getgrav.org/downloads) page.
* Check out our [Grav Development Blog](http://getgrav.org/blog) to find out the latest goings on in the Grav-verse.
!!! If you want a more **full-featured** base install, you should check out [**Skeleton** packages available in the downloads](http://getgrav.org/downloads).
### Edit this Page
To edit this page, simply navigate to the folder you installed **Grav** into, and then browse to the `user/pages/01.home` folder and open the `default.md` file in your [editor of choice](http://learn.getgrav.org/basics/requirements). You will see the content of this page in [Markdown format](http://learn.getgrav.org/content/markdown).
### Create a New Page
Creating a new page is a simple affair in **Grav**. Simply follow these simple steps:
1. Navigate to your pages folder: `user/pages/` and create a new folder. In this example, we will use [explicit default ordering](http://learn.getgrav.org/content/content-pages) and call the folder `03.mypage`.
2. Launch your text editor and paste in the following sample code:
---
title: My New Page
---
# My New Page!
This is the body of **my new page** and I can easily use _Markdown_ syntax here.
3. Save this file in the `user/pages/03.mypage/` folder as `default.md`. This will tell **Grav** to render the page using the **default** template.
4. That is it! Reload your browser to see your new page in the menu.
! NOTE: The page will automatically show up in the Menu after the "Typography" menu item. If you wish to change the name that shows up in the Menu, simple add: `menu: My Page` between the dashes in the page content. This is called the YAML front matter, and it is where you configure page-specific options.

View file

@ -0,0 +1,155 @@
---
title: Typography
---
! Details on the full capabilities of Spectre.css can be found in the [Official Spectre Documentation](https://picturepan2.github.io/spectre/elements.html)
The [Quark theme](https://github.com/getgrav/grav-theme-quark) is the new default theme for Grav built with [Spectre.css](https://picturepan2.github.io/spectre/) the lightweight, responsive and modern CSS framework. Spectre provides basic styles for typography, elements, and a responsive layout system that utilizes best practices and consistent language design.
### Headings
# H1 Heading `40px`
## H2 Heading `32px`
### H3 Heading `28px`
#### H4 Heading `24px`
##### H5 Heading `20px`
###### H6 Heading `16px`
```html
# H1 Heading
# H1 Heading `40px`</small>`
<span class="h1">H1 Heading</span>
```
### Paragraphs
Lorem ipsum dolor sit amet, consectetur [adipiscing elit. Praesent risus leo, dictum in vehicula sit amet](#), feugiat tempus tellus. Duis quis sodales risus. Etiam euismod ornare consequat.
Climb leg rub face on everything give attitude nap all day for under the bed. Chase mice attack feet but rub face on everything hopped up on goofballs.
### Markdown Semantic Text Elements
**Bold** `**Bold**`
_Italic_ `_Italic_`
~~Deleted~~ `~~Deleted~~`
`Inline Code` `` `Inline Code` ``
### HTML Semantic Text Elements
<abbr>I18N</abbr> `<abbr>`
<cite>Citation</cite> `<cite>`
<kbd>Ctrl + S</kbd> `<kbd>`
Text<sup>Superscripted</sup> `<sup>`
Text<sub>Subscripted</sub> `<sub>`
<u>Underlined</u> `<u>`
<mark>Highlighted</mark> `<mark>`
<time>20:14</time> `<time>`
<var>x = y + 2</var> `<var>`
### Blockquote
> The advance of technology is based on making it fit in so that you don't really even notice it,
> so it's part of everyday life.
>
> <cite>- Bill Gates</cite>
```markdown
> The advance of technology is based on making it fit in so that you don't really even notice it,
> so it's part of everyday life.
>
> <cite>- Bill Gates</cite>
```
### Unordered List
* list item 1
* list item 2
* list item 2.1
* list item 2.2
* list item 2.3
* list item 3
```markdown
* list item 1
* list item 2
* list item 2.1
* list item 2.2
* list item 2.3
* list item 3
```
### Ordered List
1. list item 1
1. list item 2
1. list item 2.1
1. list item 2.2
1. list item 2.3
1. list item 3
```markdown
1. list item 1
1. list item 2
1. list item 2.1
1. list item 2.2
1. list item 2.3
1. list item 3
```
### Table
| Name | Genre | Release date |
| :-------------------------- | :---------------------------: | -------------------: |
| The Shawshank Redemption | Crime, Drama | 14 October 1994 |
| The Godfather | Crime, Drama | 24 March 1972 |
| Schindler's List | Biography, Drama, History | 4 February 1994 |
| Se7en | Crime, Drama, Mystery | 22 September 1995 |
```markdown
| Name | Genre | Release date |
| :-------------------------- | :---------------------------: | -------------------: |
| The Shawshank Redemption | Crime, Drama | 14 October 1994 |
| The Godfather | Crime, Drama | 24 March 1972 |
| Schindler's List | Biography, Drama, History | 4 February 1994 |
| Se7en | Crime, Drama, Mystery | 22 September 1995 |
```
### Notices
The notices styles are actually provided by the `markdown-notices` plugin but are useful enough to include here:
! This is a warning notification
!! This is a error notification
!!! This is a default notification
!!!! This is a success notification
```markdown
! This is a warning notification
!! This is a error notification
!!! This is a default notification
!!!! This is a success notification
```

1
themes/.gitkeep Normal file
View file

@ -0,0 +1 @@
/* @copyright Copyright (c) 2015 - 2021 Trilby Media, LLC. All rights reserved. */

View file

@ -0,0 +1,13 @@
# EditorConfig is awesome: http://EditorConfig.org
# top-most EditorConfig file
root = true
# Unix-style newlines with a newline ending every file
[*]
charset = utf-8
end_of_line = lf
trim_trailing_whitespace = true
insert_final_newline = true
indent_style = space
indent_size = 4

2
themes/learn2/.gitignore vendored Normal file
View file

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

121
themes/learn2/CHANGELOG.md Normal file
View file

@ -0,0 +1,121 @@
# v1.8.2
## 02/25/2021
1. [](#bugfix)
* Fixed bad tab causing invalid blueprint [#91](https://github.com/getgrav/grav-theme-learn2/pull/91)
# v1.8.1
## 01/15/2021
1. [](#improved)
* Fixed autoescaping in preparation for Grav 1.7
# v1.8.0
## 03/21/2019
1. [](#new)
* Set Dependency of Grav 1.5.10+ which has support for new **Deferred Block** Twig extension
* Implement assets rendering using **Deferred Block** Twig extension
# v1.7.0
## 08/23/2017
1. [](#improved)
* Added default page template.
* Added blueprints for docs and chapter pages
# v1.6.3
## 01/31/2017
1. [](#bugfix)
* Fixed changelog date
# v1.6.2
## 01/31/2017
1. [](#bugfix)
* Fixed a PHP 7.1 issue
# v1.6.1
## 01/24/2017
1. [](#new)
* Updated to FontAwesome 4.7.0 with [Grav icon](http://fontawesome.io/icon/grav/)
# v1.6.0
## 07/14/2016
1. [](#new)
* Added the spanish language
1. [](#improved)
* Remove unneeded streams from Theme YAML
* Set the page language from Grav's Language configuration. Default to english.
1. [](#bugfix)
* Fix an issue on iOS 9+ Safari scaling
# v1.5.0
## 01/06/2016
1. [](#new)
* Added keyboard prev/next navigation
1. [](#improved)
* Various language updates
1. [](#bugfix)
* Fixed a typo in CSS
# v1.4.2
## 12/18/2015
1. [](#bugfix)
* Fixed clipboard for Safari
# v1.4.1
## 12/11/2015
1. [](#new)
* Support new sidebar scrollbar
* New subtle `subtitle` styling
# v1.4.0
## 10/07/2015
1. [](#new)
* Added 1-click copy-to-clipboard feature for `code` and `pre` tags
* Added German translations
* Configurable root page
1. [](#improved)
* Wrapped topbar to remove it from error pages
1. [](#bugfix)
* Fix for bad YAML
* Fix for bad HTML in github note
# v1.3.0
## 09/11/2015
1. [](#new)
* Added configurable Google analytics code
# v1.2.0
## 08/25/2015
1. [](#improved)
* Added blueprints for Grav Admin plugin
# v1.1.0
## 07/19/2015
1. [](#new)
* Added search highlight support
* Added a footer
# v1.0.1
## 06/2/2015
1. [](#new)
* Added support for 2+ page levels
# v1.0.0
## 06/17/2015
1. [](#new)
* ChangeLog started...

21
themes/learn2/LICENSE Normal file
View file

@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) 2014 Grav
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

79
themes/learn2/README.md Normal file
View file

@ -0,0 +1,79 @@
# Learn2
![Learn2](screenshot.jpg)
Learn2 is the default [Grav Learn](http://learn.getgrav.org) theme. Simple, fast and modern.
# Installation
Installing the Learn2 theme can be done in one of two ways. Our GPM (Grav Package Manager) installation method enables you to quickly and easily install the theme with a simple terminal command, while the manual method enables you to do so via a zip file.
The theme is designed to be used to provide a documentation site. You can see this in action at [](http://learn.getgrav.org)
## GPM Installation (Preferred)
The simplest way to install this theme is via the [Grav Package Manager (GPM)](http://learn.getgrav.org/advanced/grav-gpm) through your system's Terminal (also called the command line). From the root of your Grav install type:
bin/gpm install learn2
This will install the Learn2 theme into your `/user/themes` directory within Grav. Its files can be found under `/your/site/grav/user/themes/learn2`.
## Manual Installation
To install this theme, just download the zip version of this repository and unzip it under `/your/site/grav/user/themes`. Then, rename the folder to `learn2`. You can find these files either on [GitHub](https://github.com/getgrav/grav-theme-learn2) or via [GetGrav.org](http://getgrav.org/downloads/themes).
You should now have all the theme files under
/your/site/grav/user/themes/learn2
>> NOTE: This theme is a modular component for Grav which requires the [Grav](http://github.com/getgrav/grav), [Error](https://github.com/getgrav/grav-theme-error) and [Problems](https://github.com/getgrav/grav-plugin-problems) plugins.
# Updating
As development for the Learn2 theme continues, new versions may become available that add additional features and functionality, improve compatibility with newer Grav releases, and generally provide a better user experience. Updating Learn2 is easy, and can be done through Grav's GPM system, as well as manually.
## GPM Update (Preferred)
The simplest way to update this theme is via the [Grav Package Manager (GPM)](http://learn.getgrav.org/advanced/grav-gpm). You can do this with this by navigating to the root directory of your Grav install using your system's Terminal (also called command line) and typing the following:
bin/gpm update learn2
This command will check your Grav install to see if your Learn2 theme is due for an update. If a newer release is found, you will be asked whether or not you wish to update. To continue, type `y` and hit enter. The theme will automatically update and clear Grav's cache.
## Manual Update
Manually updating Learn2 is pretty simple. Here is what you will need to do to get this done:
* Delete the `your/site/user/themes/learn2` directory.
* Download the new version of the Learn2 theme from either [GitHub](https://github.com/getgrav/grav-theme-learn2) or [GetGrav.org](http://getgrav.org/downloads/themes#extras).
* Unzip the zip file in `your/site/user/themes` and rename the resulting folder to `learn2`.
* Clear the Grav cache. The simplest way to do this is by going to the root Grav directory in terminal and typing `bin/grav clear-cache`.
> Note: Any changes you have made to any of the files listed under this directory will also be removed and replaced by the new set. Any files located elsewhere (for example a YAML settings file placed in `user/config/themes`) will remain intact.
## Features
* Lightweight and minimal for optimal performance
* Fully responsive with off-page mobile navigation
* SCSS based CSS source files for easy customization
* Built specifically for providing easy to read documentation
* Fontawesome icon support
### Supported Page Templates
* "Docs" template
* "Chapter" template
* Error view template
## Setup
If you want to set Learn2 as the default theme, you can do so by following these steps:
* Navigate to `/your/site/grav/user/config`.
* Open the **system.yaml** file.
* Change the `theme:` setting to `theme: learn2`.
* Save your changes.
* Clear the Grav cache. The simplest way to do this is by going to the root Grav directory in Terminal and typing `bin/grav clear-cache`.
Once this is done, you should be able to see the new theme on the frontend. Keep in mind any customizations made to the previous theme will not be reflected as all of the theme and templating information is now being pulled from the **learn2** folder.

View file

@ -0,0 +1,66 @@
name: Learn2
slug: learn2
type: theme
version: 1.8.2
description: "Learn2 is a new modern documentation theme for Grav"
icon: book
author:
name: Team Grav
email: devs@getgrav.org
url: http://getgrav.org
homepage: https://github.com/getgrav/grav-theme-learn2
demo: http://learn.getgrav.org
keywords: heme, docs, modern, fast, responsive, html5, css3
bugs: https://github.com/getgrav/grav-theme-learn2/issues
license: MIT
dependencies:
- { name: grav, version: '>=1.5.10' }
form:
validation: loose
fields:
top_level_version:
type: toggle
label: Top Level Version
highlight: 1
default: 0
options:
1: Enabled
0: Disabled
validate:
type: bool
home_url:
type: text
label: Home URL
placeholder: http://getgrav.org
validate:
type: text
google_analytics_code:
type: text
label: Google Analytics Code
placeholder: UA-XXXXXXXX-X
validate:
type: text
github.position:
type: select
size: medium
classes: fancy
label: GitHub Position
options:
top: Top
bottom: Bottom
off: Off
github.tree:
type: text
label: GitHub Tree
default: https://github.com/getgrav/grav-skeleton-rtfm-site/blob/develop/
github.commits:
type: text
label: GitHub Commits
default: https://github.com/getgrav/grav-skeleton-rtfm-site/commits/develop/

View file

@ -0,0 +1,4 @@
title: Chapter
'@extends':
type: default
context: blueprints://pages

View file

@ -0,0 +1,4 @@
title: Docs
'@extends':
type: default
context: blueprints://pages

View file

@ -0,0 +1,617 @@
*, *::before, *::after {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box; }
@-webkit-viewport {
width: device-width; }
@-moz-viewport {
width: device-width; }
@-ms-viewport {
width: device-width; }
@-o-viewport {
width: device-width; }
@viewport {
width: device-width; }
html {
font-size: 100%;
-ms-text-size-adjust: 100%;
-webkit-text-size-adjust: 100%; }
body {
margin: 0; }
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
nav,
section,
summary {
display: block; }
audio,
canvas,
progress,
video {
display: inline-block;
vertical-align: baseline; }
audio:not([controls]) {
display: none;
height: 0; }
[hidden],
template {
display: none; }
a {
background: transparent;
text-decoration: none; }
a:active,
a:hover {
outline: 0; }
abbr[title] {
border-bottom: 1px dotted; }
b,
strong {
font-weight: bold; }
dfn {
font-style: italic; }
mark {
background: #FFFF27;
color: #333; }
sub,
sup {
font-size: 0.8rem;
line-height: 0;
position: relative;
vertical-align: baseline; }
sup {
top: -0.5em; }
sub {
bottom: -0.25em; }
img {
border: 0;
max-width: 100%; }
svg:not(:root) {
overflow: hidden; }
figure {
margin: 1em 40px; }
hr {
height: 0; }
pre {
overflow: auto; }
button,
input,
optgroup,
select,
textarea {
color: inherit;
font: inherit;
margin: 0; }
button {
overflow: visible; }
button,
select {
text-transform: none; }
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
-webkit-appearance: button;
cursor: pointer; }
button[disabled],
html input[disabled] {
cursor: default; }
button::-moz-focus-inner,
input::-moz-focus-inner {
border: 0;
padding: 0; }
input {
line-height: normal; }
input[type="checkbox"],
input[type="radio"] {
padding: 0; }
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
height: auto; }
input[type="search"] {
-webkit-appearance: textfield; }
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
-webkit-appearance: none; }
legend {
border: 0;
padding: 0; }
textarea {
overflow: auto; }
optgroup {
font-weight: bold; }
table {
border-collapse: collapse;
border-spacing: 0;
table-layout: fixed;
width: 100%; }
tr, td, th {
vertical-align: middle; }
th, td {
padding: 0.425rem 0; }
th {
text-align: left; }
.container {
width: 75em;
margin: 0 auto;
padding: 0; }
@media only all and (min-width: 60em) and (max-width: 74.938em) {
.container {
width: 60em; } }
@media only all and (min-width: 48em) and (max-width: 59.938em) {
.container {
width: 48em; } }
@media only all and (min-width: 30.063em) and (max-width: 47.938em) {
.container {
width: 30em; } }
@media only all and (max-width: 30em) {
.container {
width: 100%; } }
.grid {
display: -webkit-box;
display: -moz-box;
display: box;
display: -webkit-flex;
display: -moz-flex;
display: -ms-flexbox;
display: flex;
-webkit-flex-flow: row;
-moz-flex-flow: row;
flex-flow: row;
list-style: none;
margin: 0;
padding: 0; }
@media only all and (max-width: 47.938em) {
.grid {
-webkit-flex-flow: row wrap;
-moz-flex-flow: row wrap;
flex-flow: row wrap; } }
.block {
-webkit-box-flex: 1;
-moz-box-flex: 1;
box-flex: 1;
-webkit-flex: 1;
-moz-flex: 1;
-ms-flex: 1;
flex: 1;
min-width: 0;
min-height: 0; }
@media only all and (max-width: 47.938em) {
.block {
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
-webkit-flex: 0 100%;
-moz-flex: 0 100%;
-ms-flex: 0 100%;
flex: 0 100%; } }
.content {
margin: 0.625rem;
padding: 0.938rem; }
@media only all and (max-width: 47.938em) {
body [class*="size-"] {
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
-webkit-flex: 0 100%;
-moz-flex: 0 100%;
-ms-flex: 0 100%;
flex: 0 100%; } }
.size-1-2 {
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
-webkit-flex: 0 50%;
-moz-flex: 0 50%;
-ms-flex: 0 50%;
flex: 0 50%; }
.size-1-3 {
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
-webkit-flex: 0 33.33333%;
-moz-flex: 0 33.33333%;
-ms-flex: 0 33.33333%;
flex: 0 33.33333%; }
.size-1-4 {
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
-webkit-flex: 0 25%;
-moz-flex: 0 25%;
-ms-flex: 0 25%;
flex: 0 25%; }
.size-1-5 {
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
-webkit-flex: 0 20%;
-moz-flex: 0 20%;
-ms-flex: 0 20%;
flex: 0 20%; }
.size-1-6 {
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
-webkit-flex: 0 16.66667%;
-moz-flex: 0 16.66667%;
-ms-flex: 0 16.66667%;
flex: 0 16.66667%; }
.size-1-7 {
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
-webkit-flex: 0 14.28571%;
-moz-flex: 0 14.28571%;
-ms-flex: 0 14.28571%;
flex: 0 14.28571%; }
.size-1-8 {
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
-webkit-flex: 0 12.5%;
-moz-flex: 0 12.5%;
-ms-flex: 0 12.5%;
flex: 0 12.5%; }
.size-1-9 {
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
-webkit-flex: 0 11.11111%;
-moz-flex: 0 11.11111%;
-ms-flex: 0 11.11111%;
flex: 0 11.11111%; }
.size-1-10 {
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
-webkit-flex: 0 10%;
-moz-flex: 0 10%;
-ms-flex: 0 10%;
flex: 0 10%; }
.size-1-11 {
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
-webkit-flex: 0 9.09091%;
-moz-flex: 0 9.09091%;
-ms-flex: 0 9.09091%;
flex: 0 9.09091%; }
.size-1-12 {
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
-webkit-flex: 0 8.33333%;
-moz-flex: 0 8.33333%;
-ms-flex: 0 8.33333%;
flex: 0 8.33333%; }
@media only all and (min-width: 48em) and (max-width: 59.938em) {
.size-tablet-1-2 {
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
-webkit-flex: 0 50%;
-moz-flex: 0 50%;
-ms-flex: 0 50%;
flex: 0 50%; }
.size-tablet-1-3 {
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
-webkit-flex: 0 33.33333%;
-moz-flex: 0 33.33333%;
-ms-flex: 0 33.33333%;
flex: 0 33.33333%; }
.size-tablet-1-4 {
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
-webkit-flex: 0 25%;
-moz-flex: 0 25%;
-ms-flex: 0 25%;
flex: 0 25%; }
.size-tablet-1-5 {
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
-webkit-flex: 0 20%;
-moz-flex: 0 20%;
-ms-flex: 0 20%;
flex: 0 20%; }
.size-tablet-1-6 {
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
-webkit-flex: 0 16.66667%;
-moz-flex: 0 16.66667%;
-ms-flex: 0 16.66667%;
flex: 0 16.66667%; }
.size-tablet-1-7 {
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
-webkit-flex: 0 14.28571%;
-moz-flex: 0 14.28571%;
-ms-flex: 0 14.28571%;
flex: 0 14.28571%; }
.size-tablet-1-8 {
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
-webkit-flex: 0 12.5%;
-moz-flex: 0 12.5%;
-ms-flex: 0 12.5%;
flex: 0 12.5%; }
.size-tablet-1-9 {
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
-webkit-flex: 0 11.11111%;
-moz-flex: 0 11.11111%;
-ms-flex: 0 11.11111%;
flex: 0 11.11111%; }
.size-tablet-1-10 {
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
-webkit-flex: 0 10%;
-moz-flex: 0 10%;
-ms-flex: 0 10%;
flex: 0 10%; }
.size-tablet-1-11 {
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
-webkit-flex: 0 9.09091%;
-moz-flex: 0 9.09091%;
-ms-flex: 0 9.09091%;
flex: 0 9.09091%; }
.size-tablet-1-12 {
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
-webkit-flex: 0 8.33333%;
-moz-flex: 0 8.33333%;
-ms-flex: 0 8.33333%;
flex: 0 8.33333%; } }
@media only all and (max-width: 47.938em) {
@supports not (flex-wrap: wrap) {
.grid {
display: block;
-webkit-box-lines: inherit;
-moz-box-lines: inherit;
box-lines: inherit;
-webkit-flex-wrap: inherit;
-moz-flex-wrap: inherit;
-ms-flex-wrap: inherit;
flex-wrap: inherit; }
.block {
display: block;
-webkit-box-flex: inherit;
-moz-box-flex: inherit;
box-flex: inherit;
-webkit-flex: inherit;
-moz-flex: inherit;
-ms-flex: inherit;
flex: inherit; } } }
.first-block {
-webkit-box-ordinal-group: 0;
-webkit-order: -1;
-ms-flex-order: -1;
order: -1; }
.last-block {
-webkit-box-ordinal-group: 2;
-webkit-order: 1;
-ms-flex-order: 1;
order: 1; }
.fixed-blocks {
-webkit-flex-flow: row wrap;
-moz-flex-flow: row wrap;
flex-flow: row wrap; }
.fixed-blocks .block {
-webkit-box-flex: inherit;
-moz-box-flex: inherit;
box-flex: inherit;
-webkit-flex: inherit;
-moz-flex: inherit;
-ms-flex: inherit;
flex: inherit;
width: 25%; }
@media only all and (min-width: 60em) and (max-width: 74.938em) {
.fixed-blocks .block {
width: 33.33333%; } }
@media only all and (min-width: 48em) and (max-width: 59.938em) {
.fixed-blocks .block {
width: 50%; } }
@media only all and (max-width: 47.938em) {
.fixed-blocks .block {
width: 100%; } }
body {
font-size: 1.05rem;
line-height: 1.7; }
h1, h2, h3, h4, h5, h6 {
margin: 0.85rem 0 1.7rem 0;
text-rendering: optimizeLegibility; }
h1 {
font-size: 3.25rem; }
h2 {
font-size: 2.55rem; }
h3 {
font-size: 2.15rem; }
h4 {
font-size: 1.8rem; }
h5 {
font-size: 1.4rem; }
h6 {
font-size: 0.9rem; }
p {
margin: 1.7rem 0; }
ul, ol {
margin-top: 1.7rem;
margin-bottom: 1.7rem; }
ul ul, ul ol, ol ul, ol ol {
margin-top: 0;
margin-bottom: 0; }
blockquote {
margin: 1.7rem 0;
padding-left: 0.85rem; }
cite {
display: block;
font-size: 0.925rem; }
cite:before {
content: "\2014 \0020"; }
pre {
margin: 1.7rem 0;
padding: 0.938rem; }
code {
vertical-align: bottom; }
small {
font-size: 0.925rem; }
hr {
border-left: none;
border-right: none;
border-top: none;
margin: 1.7rem 0; }
fieldset {
border: 0;
padding: 0.938rem;
margin: 0 0 1.7rem 0; }
input,
label,
select {
display: block; }
label {
margin-bottom: 0.425rem; }
label.required:after {
content: "*"; }
label abbr {
display: none; }
textarea, input[type="email"], input[type="number"], input[type="password"], input[type="search"], input[type="tel"], input[type="text"], input[type="url"], input[type="color"], input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="month"], input[type="time"], input[type="week"], select[multiple=multiple] {
-webkit-transition: border-color;
-moz-transition: border-color;
transition: border-color;
border-radius: 0.1875rem;
margin-bottom: 0.85rem;
padding: 0.425rem 0.425rem;
width: 100%; }
textarea:focus, input[type="email"]:focus, input[type="number"]:focus, input[type="password"]:focus, input[type="search"]:focus, input[type="tel"]:focus, input[type="text"]:focus, input[type="url"]:focus, input[type="color"]:focus, input[type="date"]:focus, input[type="datetime"]:focus, input[type="datetime-local"]:focus, input[type="month"]:focus, input[type="time"]:focus, input[type="week"]:focus, select[multiple=multiple]:focus {
outline: none; }
textarea {
resize: vertical; }
input[type="checkbox"], input[type="radio"] {
display: inline;
margin-right: 0.425rem; }
input[type="file"] {
width: 100%; }
select {
width: auto;
max-width: 100%;
margin-bottom: 1.7rem; }
button,
input[type="submit"] {
cursor: pointer;
user-select: none;
vertical-align: middle;
white-space: nowrap;
border: inherit; }
/*# sourceMappingURL=nucleus.css.map */

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,940 @@
@charset "UTF-8";
@import url(//fonts.googleapis.com/css?family=Montserrat:400|Muli:300,400|Inconsolata);
#top-github-link, #body #breadcrumbs {
position: relative;
top: 50%;
-webkit-transform: translateY(-50%);
-moz-transform: translateY(-50%);
-o-transform: translateY(-50%);
-ms-transform: translateY(-50%);
transform: translateY(-50%); }
.button, .button-secondary {
display: inline-block;
padding: 7px 12px; }
.button:active, .button-secondary:active {
margin: 2px 0 -2px 0; }
body {
background: #fff;
color: #555;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale; }
a {
color: #1694CA; }
a:hover {
color: #0e6185; }
pre {
position: relative; }
.bg {
background: #fff;
border: 1px solid #eaeaea; }
b, strong, label, th {
font-weight: 600; }
.default-animation, #header #logo-svg, #header #logo-svg path, #sidebar, #sidebar ul, #body, #body .padding, #body .nav {
-webkit-transition: all 0.5s ease;
-moz-transition: all 0.5s ease;
transition: all 0.5s ease; }
fieldset {
border: 1px solid #ddd; }
textarea, input[type="email"], input[type="number"], input[type="password"], input[type="search"], input[type="tel"], input[type="text"], input[type="url"], input[type="color"], input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="month"], input[type="time"], input[type="week"], select[multiple=multiple] {
background-color: white;
border: 1px solid #ddd;
box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.06); }
textarea:hover, input[type="email"]:hover, input[type="number"]:hover, input[type="password"]:hover, input[type="search"]:hover, input[type="tel"]:hover, input[type="text"]:hover, input[type="url"]:hover, input[type="color"]:hover, input[type="date"]:hover, input[type="datetime"]:hover, input[type="datetime-local"]:hover, input[type="month"]:hover, input[type="time"]:hover, input[type="week"]:hover, select[multiple=multiple]:hover {
border-color: #c4c4c4; }
textarea:focus, input[type="email"]:focus, input[type="number"]:focus, input[type="password"]:focus, input[type="search"]:focus, input[type="tel"]:focus, input[type="text"]:focus, input[type="url"]:focus, input[type="color"]:focus, input[type="date"]:focus, input[type="datetime"]:focus, input[type="datetime-local"]:focus, input[type="month"]:focus, input[type="time"]:focus, input[type="week"]:focus, select[multiple=multiple]:focus {
border-color: #1694CA;
box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.06), 0 0 5px rgba(19, 131, 179, 0.7); }
#header {
background: #1694CA;
color: #fff;
text-align: center;
padding: 1rem; }
#header a {
display: inline-block; }
#header #logo-svg {
width: 8rem;
height: 2rem; }
#header #logo-svg path {
fill: #fff; }
.searchbox {
margin-top: 0.5rem;
position: relative;
border: 1px solid #19a5e1;
background: #1383b3;
border-radius: 4px; }
.searchbox label {
color: rgba(255, 255, 255, 0.8);
position: absolute;
left: 10px;
top: 3px; }
.searchbox span {
color: rgba(255, 255, 255, 0.6);
position: absolute;
right: 10px;
top: 3px;
cursor: pointer; }
.searchbox span:hover {
color: rgba(255, 255, 255, 0.9); }
.searchbox input {
display: inline-block;
color: #fff;
width: 100%;
height: 30px;
background: transparent;
border: 0;
padding: 0 25px 0 30px;
margin: 0;
font-weight: 400; }
.searchbox input::-webkit-input-placeholder {
color: rgba(255, 255, 255, 0.6); }
.searchbox input::-moz-placeholder {
color: rgba(255, 255, 255, 0.6); }
.searchbox input:-moz-placeholder {
color: rgba(255, 255, 255, 0.6); }
.searchbox input:-ms-input-placeholder {
color: rgba(255, 255, 255, 0.6); }
#sidebar-toggle {
display: none; }
@media only all and (max-width: 47.938em) {
#sidebar-toggle {
display: inline-block; } }
#sidebar {
background-color: #38424D;
position: fixed;
top: 0;
width: 300px;
bottom: 0;
left: 0;
font-weight: 500;
font-size: 15px; }
#sidebar a {
color: #bbbbbb; }
#sidebar a:hover {
color: #d5d5d5; }
#sidebar a.subtitle {
color: rgba(187, 187, 187, 0.6); }
#sidebar hr {
border-bottom: 1px solid #323a44; }
#sidebar a.padding {
padding: 0 1rem; }
#sidebar h5 {
margin: 2rem 0 0;
position: relative;
line-height: 2; }
#sidebar h5 a {
display: block;
margin-left: 0;
margin-right: 0;
padding-left: 1rem;
padding-right: 1rem; }
#sidebar h5 i {
color: rgba(187, 187, 187, 0.6);
position: absolute;
right: 0.6rem;
top: 0.7rem;
font-size: 80%; }
#sidebar h5.parent a {
background: #293038;
color: #c8c8c8 !important; }
#sidebar h5.active a {
background: #fff;
color: #555 !important; }
#sidebar h5.active i {
color: #555 !important; }
#sidebar h5 + ul.topics {
display: none;
margin-top: 0; }
#sidebar h5.parent + ul.topics, #sidebar h5.active + ul.topics {
display: block; }
#sidebar ul {
list-style: none;
padding: 0;
margin: 0; }
#sidebar ul.searched a {
color: #888888; }
#sidebar ul.searched .search-match a {
color: #d5d5d5; }
#sidebar ul.searched .search-match a:hover {
color: #eeeeee; }
#sidebar ul.topics {
margin: 0 1rem; }
#sidebar ul.topics.searched ul {
display: block; }
#sidebar ul.topics ul {
display: none;
padding-bottom: 1rem; }
#sidebar ul.topics ul ul {
padding-bottom: 0; }
#sidebar ul.topics li.parent ul, #sidebar ul.topics > li.active ul {
display: block; }
#sidebar ul.topics > li > a {
line-height: 2rem;
font-size: 1.1rem; }
#sidebar ul.topics > li > a b {
opacity: 0.5;
font-weight: normal; }
#sidebar ul.topics > li > a .fa {
margin-top: 9px; }
#sidebar ul.topics > li.parent, #sidebar ul.topics > li.active {
background: #2d353e;
margin-left: -1rem;
margin-right: -1rem;
padding-left: 1rem;
padding-right: 1rem; }
#sidebar ul li.active > a {
background: #fff;
color: #555 !important;
margin-left: -1rem;
margin-right: -1rem;
padding-left: 1rem;
padding-right: 1rem; }
#sidebar ul li {
padding: 0; }
#sidebar ul li.visited + span {
margin-right: 16px; }
#sidebar ul li a {
display: block;
padding: 2px 0; }
#sidebar ul li a span {
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
display: block; }
#sidebar ul li > a {
padding: 4px 0; }
#sidebar ul li .fa {
display: none;
float: right;
font-size: 13px;
min-width: 16px;
margin: 4px 0 0 0;
text-align: right; }
#sidebar ul li.visited > a .read-icon {
color: #1694CA;
display: inline; }
#sidebar ul li li {
padding-left: 1rem;
text-indent: 0.2rem; }
#main {
background: #f7f7f7;
margin: 0 0 1.563rem 0; }
#body {
position: relative;
margin-left: 300px;
min-height: 100%; }
#body img, #body .video-container {
margin: 3rem auto;
display: block;
text-align: center; }
#body img.border, #body .video-container.border {
border: 2px solid #e6e6e6 !important;
padding: 2px; }
#body img.shadow, #body .video-container.shadow {
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1); }
#body .bordered {
border: 1px solid #ccc; }
#body .padding {
padding: 3rem 6rem; }
@media only all and (max-width: 59.938em) {
#body .padding {
position: static;
padding: 15px 3rem; } }
@media only all and (max-width: 47.938em) {
#body .padding {
padding: 5px 1rem; } }
#body h1 + hr {
margin-top: -1.7rem;
margin-bottom: 3rem; }
@media only all and (max-width: 59.938em) {
#body #navigation {
position: static;
margin-right: 0 !important;
width: 100%;
display: table; } }
#body .nav {
position: fixed;
top: 0;
bottom: 0;
width: 4rem;
font-size: 50px;
height: 100%;
cursor: pointer;
display: table;
text-align: center; }
#body .nav > i {
display: table-cell;
vertical-align: middle;
text-align: center; }
@media only all and (max-width: 59.938em) {
#body .nav {
display: table-cell;
position: static;
top: auto;
width: 50%;
text-align: center;
height: 100px;
line-height: 100px;
padding-top: 0; }
#body .nav > i {
display: inline-block; } }
#body .nav:hover {
background: #F6F6F6; }
#body .nav.nav-pref {
left: 0; }
#body .nav.nav-next {
right: 0; }
#body-inner {
margin-bottom: 5rem; }
#chapter {
display: flex;
align-items: center;
justify-content: center;
height: 100%;
padding: 2rem 0; }
#chapter #body-inner {
padding-bottom: 3rem;
max-width: 80%; }
#chapter h3 {
font-family: "Muli", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif;
font-weight: 400;
text-align: center; }
#chapter h1 {
font-size: 5rem;
border-bottom: 4px solid #F0F2F4; }
#chapter p {
text-align: center;
font-size: 1.2rem; }
#footer {
padding: 3rem 1rem;
color: #a2a2a2;
font-size: 13px; }
#footer p {
margin: 0; }
body {
font-family: "Muli", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif;
letter-spacing: -0.03rem;
font-weight: 400; }
h1, h2, h3, h4, h5, h6 {
font-family: "Montserrat", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif;
font-weight: 400;
text-rendering: optimizeLegibility;
line-height: 150%;
letter-spacing: -0px; }
h1 {
text-align: center;
letter-spacing: -3px; }
h2 {
letter-spacing: -2px; }
h3 {
letter-spacing: -1px; }
blockquote {
border-left: 10px solid #F0F2F4; }
blockquote p {
font-size: 1.1rem;
color: #999; }
blockquote cite {
display: block;
text-align: right;
color: #666;
font-size: 1.2rem; }
blockquote {
position: relative; }
blockquote blockquote {
position: static; }
blockquote > blockquote > blockquote {
margin: 0; }
blockquote > blockquote > blockquote p {
padding: 15px;
display: block;
font-size: 1rem;
margin-top: 0rem;
margin-bottom: 0rem;
color: #666; }
blockquote > blockquote > blockquote p:first-child:before {
position: absolute;
top: 2px;
color: #fff;
font-family: FontAwesome;
content: '';
left: 10px; }
blockquote > blockquote > blockquote p:first-child:after {
position: absolute;
top: 2px;
color: #fff;
left: 2rem;
font-weight: bold;
content: 'Info'; }
blockquote > blockquote > blockquote > p {
margin-left: -71px;
border-top: 30px solid #F0B37E;
background: #FFF2DB; }
blockquote > blockquote > blockquote > blockquote > p {
margin-left: -94px;
border-top: 30px solid rgba(217, 83, 79, 0.8);
background: #FAE2E2; }
blockquote > blockquote > blockquote > blockquote > p:first-child:after {
content: 'Warning'; }
blockquote > blockquote > blockquote > blockquote > blockquote > p {
margin-left: -118px;
border-top: 30px solid #6AB0DE;
background: #E7F2FA; }
blockquote > blockquote > blockquote > blockquote > blockquote > p:first-child:after {
content: 'Note'; }
blockquote > blockquote > blockquote > blockquote > blockquote > blockquote > p {
margin-left: -142px;
border-top: 30px solid rgba(92, 184, 92, 0.8);
background: #E6F9E6; }
blockquote > blockquote > blockquote > blockquote > blockquote > blockquote > p:first-child:after {
content: 'Tip'; }
code,
kbd,
pre,
samp {
font-family: "Inconsolata", monospace; }
code {
background: #f9f2f4;
color: #9c1d3d;
padding: .2rem .4rem;
border-radius: 3px; }
pre {
padding: 1rem;
margin: 2rem 0;
background: #f6f6f6;
border: 1px solid #ddd;
border-radius: 2px;
line-height: 1.15;
font-size: 1rem; }
pre code {
color: #237794;
background: inherit;
font-size: 1rem; }
hr {
border-bottom: 4px solid #F0F2F4; }
.page-title {
margin-top: -25px;
padding: 25px;
float: left;
clear: both;
background: #1694CA;
color: #fff; }
#body a.anchor-link {
color: #ccc; }
#body a.anchor-link:hover {
color: #1694CA; }
.scrollbar-inner > .scroll-element .scroll-element_track {
background-color: rgba(255, 255, 255, 0.3); }
.scrollbar-inner > .scroll-element .scroll-bar {
background-color: #b5d1eb; }
.scrollbar-inner > .scroll-element:hover .scroll-bar {
background-color: #ccc; }
.scrollbar-inner > .scroll-element.scroll-draggable .scroll-bar {
background-color: #ccc; }
table {
border: 1px solid #eaeaea;
table-layout: auto; }
th {
background: #f7f7f7;
padding: 0.5rem; }
td {
padding: 0.5rem;
border: 1px solid #eaeaea; }
.button {
background: #1694CA;
color: #fff;
box-shadow: 0 3px 0 #1380ae; }
.button:hover {
background: #1380ae;
box-shadow: 0 3px 0 #106c93;
color: #fff; }
.button:active {
box-shadow: 0 1px 0 #106c93; }
.button-secondary {
background: #F8B450;
color: #fff;
box-shadow: 0 3px 0 #f7a733; }
.button-secondary:hover {
background: #f7a733;
box-shadow: 0 3px 0 #f69b15;
color: #fff; }
.button-secondary:active {
box-shadow: 0 1px 0 #f69b15; }
.bullets {
margin: 1.7rem 0;
margin-left: -0.85rem;
margin-right: -0.85rem;
overflow: auto; }
.bullet {
float: left;
padding: 0 0.85rem; }
.two-column-bullet {
width: 50%; }
@media only all and (max-width: 47.938em) {
.two-column-bullet {
width: 100%; } }
.three-column-bullet {
width: 33.33333%; }
@media only all and (max-width: 47.938em) {
.three-column-bullet {
width: 100%; } }
.four-column-bullet {
width: 25%; }
@media only all and (max-width: 47.938em) {
.four-column-bullet {
width: 100%; } }
.bullet-icon {
float: left;
background: #1694CA;
padding: 0.875rem;
width: 3.5rem;
height: 3.5rem;
border-radius: 50%;
color: #fff;
font-size: 1.75rem;
text-align: center; }
.bullet-icon-1 {
background: #1694CA; }
.bullet-icon-2 {
background: #16cac4; }
.bullet-icon-3 {
background: #b2ca16; }
.bullet-content {
margin-left: 4.55rem; }
.tooltipped {
position: relative; }
.tooltipped:after {
position: absolute;
z-index: 1000000;
display: none;
padding: 5px 8px;
font: normal normal 11px/1.5 "Muli", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif;
color: #fff;
text-align: center;
text-decoration: none;
text-shadow: none;
text-transform: none;
letter-spacing: normal;
word-wrap: break-word;
white-space: pre;
pointer-events: none;
content: attr(aria-label);
background: rgba(0, 0, 0, 0.8);
border-radius: 3px;
-webkit-font-smoothing: subpixel-antialiased; }
.tooltipped:before {
position: absolute;
z-index: 1000001;
display: none;
width: 0;
height: 0;
color: rgba(0, 0, 0, 0.8);
pointer-events: none;
content: "";
border: 5px solid transparent; }
.tooltipped:hover:before, .tooltipped:hover:after,
.tooltipped:active:before,
.tooltipped:active:after,
.tooltipped:focus:before,
.tooltipped:focus:after {
display: inline-block;
text-decoration: none; }
.tooltipped-s:after,
.tooltipped-se:after,
.tooltipped-sw:after {
top: 100%;
right: 50%;
margin-top: 5px; }
.tooltipped-s:before,
.tooltipped-se:before,
.tooltipped-sw:before {
top: auto;
right: 50%;
bottom: -5px;
margin-right: -5px;
border-bottom-color: rgba(0, 0, 0, 0.8); }
.tooltipped-se:after {
right: auto;
left: 50%;
margin-left: -15px; }
.tooltipped-sw:after {
margin-right: -15px; }
.tooltipped-n:after,
.tooltipped-ne:after,
.tooltipped-nw:after {
right: 50%;
bottom: 100%;
margin-bottom: 5px; }
.tooltipped-n:before,
.tooltipped-ne:before,
.tooltipped-nw:before {
top: -5px;
right: 50%;
bottom: auto;
margin-right: -5px;
border-top-color: rgba(0, 0, 0, 0.8); }
.tooltipped-ne:after {
right: auto;
left: 50%;
margin-left: -15px; }
.tooltipped-nw:after {
margin-right: -15px; }
.tooltipped-s:after,
.tooltipped-n:after {
transform: translateX(50%); }
.tooltipped-w:after {
right: 100%;
bottom: 50%;
margin-right: 5px;
transform: translateY(50%); }
.tooltipped-w:before {
top: 50%;
bottom: 50%;
left: -5px;
margin-top: -5px;
border-left-color: rgba(0, 0, 0, 0.8); }
.tooltipped-e:after {
bottom: 50%;
left: 100%;
margin-left: 5px;
transform: translateY(50%); }
.tooltipped-e:before {
top: 50%;
right: -5px;
bottom: 50%;
margin-top: -5px;
border-right-color: rgba(0, 0, 0, 0.8); }
/*************** SCROLLBAR BASE CSS ***************/
.highlightable {
padding: 25px 0 15px; }
.scroll-wrapper {
overflow: hidden !important;
padding: 0 !important;
position: relative; }
.scroll-wrapper > .scroll-content {
border: none !important;
box-sizing: content-box !important;
height: auto;
left: 0;
margin: 0;
max-height: none;
max-width: none !important;
overflow: scroll !important;
padding: 0;
position: relative !important;
top: 0;
width: auto !important; }
.scroll-wrapper > .scroll-content::-webkit-scrollbar {
height: 0;
width: 0; }
.scroll-element {
display: none; }
.scroll-element, .scroll-element div {
box-sizing: content-box; }
.scroll-element.scroll-x.scroll-scrollx_visible,
.scroll-element.scroll-y.scroll-scrolly_visible {
display: block; }
.scroll-element .scroll-bar,
.scroll-element .scroll-arrow {
cursor: default; }
.scroll-textarea > .scroll-content {
overflow: hidden !important; }
.scroll-textarea > .scroll-content > textarea {
border: none !important;
box-sizing: border-box;
height: 100% !important;
margin: 0;
max-height: none !important;
max-width: none !important;
overflow: scroll !important;
outline: none;
padding: 2px;
position: relative !important;
top: 0;
width: 100% !important; }
.scroll-textarea > .scroll-content > textarea::-webkit-scrollbar {
height: 0;
width: 0; }
/*************** SIMPLE INNER SCROLLBAR ***************/
.scrollbar-inner > .scroll-element,
.scrollbar-inner > .scroll-element div {
border: none;
margin: 0;
padding: 0;
position: absolute;
z-index: 10; }
.scrollbar-inner > .scroll-element div {
display: block;
height: 100%;
left: 0;
top: 0;
width: 100%; }
.scrollbar-inner > .scroll-element.scroll-x {
bottom: 2px;
height: 8px;
left: 0;
width: 100%; }
.scrollbar-inner > .scroll-element.scroll-y {
height: 100%;
right: 2px;
top: 0;
width: 8px; }
.scrollbar-inner > .scroll-element .scroll-element_outer {
overflow: hidden; }
.scrollbar-inner > .scroll-element .scroll-element_outer,
.scrollbar-inner > .scroll-element .scroll-element_track,
.scrollbar-inner > .scroll-element .scroll-bar {
-webkit-border-radius: 8px;
-moz-border-radius: 8px;
border-radius: 8px; }
.scrollbar-inner > .scroll-element .scroll-element_track,
.scrollbar-inner > .scroll-element .scroll-bar {
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=30)";
filter: alpha(opacity=30);
opacity: 0.3; }
/* update scrollbar offset if both scrolls are visible */
.scrollbar-inner > .scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_track {
left: -12px; }
.scrollbar-inner > .scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_track {
top: -12px; }
.scrollbar-inner > .scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_size {
left: -12px; }
.scrollbar-inner > .scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_size {
top: -12px; }
.lightbox-active #body {
overflow: visible; }
.lightbox-active #body .padding {
overflow: visible; }
#github-contrib i {
vertical-align: middle; }
.featherlight img {
margin: 0 !important; }
.lifecycle #body-inner ul {
list-style: none;
margin: 0;
padding: 2rem 0 0;
position: relative; }
.lifecycle #body-inner ol {
margin: 1rem 0 1rem 0;
padding: 2rem;
position: relative; }
.lifecycle #body-inner ol li {
margin-left: 1rem; }
.lifecycle #body-inner ol strong, .lifecycle #body-inner ol label, .lifecycle #body-inner ol th {
text-decoration: underline; }
.lifecycle #body-inner ol ol {
margin-left: -1rem; }
.lifecycle #body-inner h3[class*='level'] {
font-size: 20px;
position: absolute;
margin: 0;
padding: 4px 10px;
right: 0;
z-index: 1000;
color: #fff;
background: #1ABC9C; }
.lifecycle #body-inner ol h3 {
margin-top: 1rem !important;
right: 2rem !important; }
.lifecycle #body-inner .level-1 + ol {
background: #f6fefc;
border: 4px solid #1ABC9C;
color: #16A085; }
.lifecycle #body-inner .level-1 + ol h3 {
background: #2ECC71; }
.lifecycle #body-inner .level-2 + ol {
background: #f7fdf9;
border: 4px solid #2ECC71;
color: #27AE60; }
.lifecycle #body-inner .level-2 + ol h3 {
background: #3498DB; }
.lifecycle #body-inner .level-3 + ol {
background: #f3f9fd;
border: 4px solid #3498DB;
color: #2980B9; }
.lifecycle #body-inner .level-3 + ol h3 {
background: #34495E; }
.lifecycle #body-inner .level-4 + ol {
background: #e4eaf0;
border: 4px solid #34495E;
color: #2C3E50; }
.lifecycle #body-inner .level-4 + ol h3 {
background: #34495E; }
#top-bar {
background: #F6F6F6;
border-radius: 2px;
margin: 0rem -1rem 2rem;
padding: 0 1rem;
height: 0;
min-height: 3rem; }
#top-github-link {
position: relative;
z-index: 1;
float: right;
display: block; }
#body #breadcrumbs {
height: auto;
display: block;
margin-bottom: 0;
padding-left: 0;
line-height: 1.4; }
#body #breadcrumbs span {
padding: 0 0.1rem; }
@media only all and (max-width: 59.938em) {
#sidebar {
width: 230px; }
#body {
margin-left: 230px; } }
@media only all and (max-width: 47.938em) {
#sidebar {
width: 230px;
left: -230px; }
#body {
margin-left: 0;
width: 100%; }
.sidebar-hidden {
overflow: hidden; }
.sidebar-hidden #sidebar {
left: 0; }
.sidebar-hidden #body {
margin-left: 230px;
overflow: hidden; }
.sidebar-hidden #overlay {
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
z-index: 10;
background: rgba(255, 255, 255, 0.5);
cursor: pointer; } }
.copy-to-clipboard {
background-image: url(../images/clippy.svg);
background-position: 50% 50%;
background-size: 16px 16px;
background-repeat: no-repeat;
width: 27px;
height: 1.45rem;
top: -1px;
display: inline-block;
vertical-align: middle;
position: relative;
color: #3c3c3c;
background-color: #f9f2f4;
margin-left: -.2rem;
cursor: pointer;
border-radius: 0 2px 2px 0; }
.copy-to-clipboard:hover {
background-color: #f1e1e5; }
pre .copy-to-clipboard {
position: absolute;
right: 4px;
top: 4px;
background-color: #eee;
border-color: #ddd;
border-radius: 2px; }
pre .copy-to-clipboard:hover {
background-color: #d9d9d9; }
.parent-element {
-webkit-transform-style: preserve-3d;
-moz-transform-style: preserve-3d;
transform-style: preserve-3d; }
/*# sourceMappingURL=theme.css.map */

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,8 @@
/**
* Featherlight - ultra slim jQuery lightbox
* Version 1.2.3 - http://noelboss.github.io/featherlight/
*
* Copyright 2015, Noël Raoul Bossart (http://www.noelboss.com)
* MIT Licensed.
**/
@media all{.featherlight{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:2147483647;text-align:center;white-space:nowrap;cursor:pointer;background:#333;background:rgba(0,0,0,0)}.featherlight:last-of-type{background:rgba(0,0,0,.8)}.featherlight:before{content:'';display:inline-block;height:100%;vertical-align:middle;margin-right:-.25em}.featherlight .featherlight-content{position:relative;text-align:left;vertical-align:middle;display:inline-block;overflow:auto;padding:25px 25px 0;border-bottom:25px solid transparent;min-width:30%;margin-left:5%;margin-right:5%;max-height:95%;background:#fff;cursor:auto;white-space:normal}.featherlight .featherlight-inner{display:block}.featherlight .featherlight-close-icon{position:absolute;z-index:9999;top:0;right:0;line-height:25px;width:25px;cursor:pointer;text-align:center;font:Arial,sans-serif;background:#fff;background:rgba(255,255,255,.3);color:#000}.featherlight .featherlight-image{width:100%}.featherlight-iframe .featherlight-content{border-bottom:0;padding:0}.featherlight iframe{border:0}}@media only screen and (max-width:1024px){.featherlight .featherlight-content{margin-left:10px;margin-right:10px;max-height:98%;padding:10px 10px 0;border-bottom:10px solid transparent}}

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,9 @@
button {
overflow: visible;
}
input[type="checkbox"],
input[type="radio"] {
box-sizing: border-box;
padding: 0;
}

View file

@ -0,0 +1,62 @@
/* IE9 Resets and Normalization */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
nav,
section,
summary {
display: block;
}
audio,
canvas,
progress,
video {
display: inline-block;
}
[hidden],
template {
display: none;
}
abbr[title] {
border-bottom: 1px dotted;
}
img {
border: 0;
}
svg:not(:root) {
overflow: hidden;
}
figure {
margin: 1em 40px;
}
button {
overflow: visible;
}
input[type="checkbox"],
input[type="radio"] {
box-sizing: border-box;
padding: 0;
}
legend {
border: 0;
padding: 0;
}
textarea {
overflow: auto;
}

View file

@ -0,0 +1,15 @@
/*!
Pure v0.5.0-rc-1
Copyright 2014 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
https://github.com/yui/pure/blob/master/LICENSE.md
*/
.pure-g{letter-spacing:-.31em;*letter-spacing:normal;*word-spacing:-.43em;text-rendering:optimizespeed;font-family:FreeSans,Arimo,"Droid Sans",Helvetica,Arial,sans-serif;display:-webkit-flex;-webkit-flex-flow:row wrap;display:-ms-flexbox;-ms-flex-flow:row wrap}.opera-only :-o-prefocus,.pure-g{word-spacing:-.43em}.pure-u{display:inline-block;*display:inline;zoom:1;letter-spacing:normal;word-spacing:normal;vertical-align:top;text-rendering:auto}.pure-g [class *="pure-u"]{font-family:sans-serif}.pure-u-1,.pure-u-1-1,.pure-u-1-2,.pure-u-1-3,.pure-u-2-3,.pure-u-1-4,.pure-u-3-4,.pure-u-1-5,.pure-u-2-5,.pure-u-3-5,.pure-u-4-5,.pure-u-5-5,.pure-u-1-6,.pure-u-5-6,.pure-u-1-8,.pure-u-3-8,.pure-u-5-8,.pure-u-7-8,.pure-u-1-12,.pure-u-5-12,.pure-u-7-12,.pure-u-11-12,.pure-u-1-24,.pure-u-2-24,.pure-u-3-24,.pure-u-4-24,.pure-u-5-24,.pure-u-6-24,.pure-u-7-24,.pure-u-8-24,.pure-u-9-24,.pure-u-10-24,.pure-u-11-24,.pure-u-12-24,.pure-u-13-24,.pure-u-14-24,.pure-u-15-24,.pure-u-16-24,.pure-u-17-24,.pure-u-18-24,.pure-u-19-24,.pure-u-20-24,.pure-u-21-24,.pure-u-22-24,.pure-u-23-24,.pure-u-24-24{display:inline-block;*display:inline;zoom:1;letter-spacing:normal;word-spacing:normal;vertical-align:top;text-rendering:auto}.pure-u-1-24{width:4.1667%;*width:4.1357%}.pure-u-1-12,.pure-u-2-24{width:8.3333%;*width:8.3023%}.pure-u-1-8,.pure-u-3-24{width:12.5%;*width:12.469%}.pure-u-1-6,.pure-u-4-24{width:16.6667%;*width:16.6357%}.pure-u-1-5{width:20%;*width:19.969%}.pure-u-5-24{width:20.8333%;*width:20.8023%}.pure-u-1-4,.pure-u-6-24{width:25%;*width:24.969%}.pure-u-7-24{width:29.1667%;*width:29.1357%}.pure-u-1-3,.pure-u-8-24{width:33.3333%;*width:33.3023%}.pure-u-3-8,.pure-u-9-24{width:37.5%;*width:37.469%}.pure-u-2-5{width:40%;*width:39.969%}.pure-u-5-12,.pure-u-10-24{width:41.6667%;*width:41.6357%}.pure-u-11-24{width:45.8333%;*width:45.8023%}.pure-u-1-2,.pure-u-12-24{width:50%;*width:49.969%}.pure-u-13-24{width:54.1667%;*width:54.1357%}.pure-u-7-12,.pure-u-14-24{width:58.3333%;*width:58.3023%}.pure-u-3-5{width:60%;*width:59.969%}.pure-u-5-8,.pure-u-15-24{width:62.5%;*width:62.469%}.pure-u-2-3,.pure-u-16-24{width:66.6667%;*width:66.6357%}.pure-u-17-24{width:70.8333%;*width:70.8023%}.pure-u-3-4,.pure-u-18-24{width:75%;*width:74.969%}.pure-u-19-24{width:79.1667%;*width:79.1357%}.pure-u-4-5{width:80%;*width:79.969%}.pure-u-5-6,.pure-u-20-24{width:83.3333%;*width:83.3023%}.pure-u-7-8,.pure-u-21-24{width:87.5%;*width:87.469%}.pure-u-11-12,.pure-u-22-24{width:91.6667%;*width:91.6357%}.pure-u-23-24{width:95.8333%;*width:95.8023%}.pure-u-1,.pure-u-1-1,.pure-u-5-5,.pure-u-24-24{width:100%}
/* Custom */
[class *="pure-u"] {display:inline-block;*display:inline;zoom:1;letter-spacing:normal;word-spacing:normal;vertical-align:top;text-rendering:auto;}
.pure-u-1-7 {width: 14.285%;}.pure-u-2-7 {width: 28.571%;}.pure-u-3-7 {width: 42.857%;}.pure-u-4-7 {width: 57.142%;}.pure-u-5-7 {width: 71.428%;}.pure-u-6-7 {width: 85.714%;}
.pure-u-1-9 {width: 11.111%;}.pure-u-2-9 {width: 22.222%;}.pure-u-3-9 {width: 33.333%;}.pure-u-4-9 {width: 44.444%;}.pure-u-5-9 {width: 55.555%;}.pure-u-6-9 {width: 66.666%;}.pure-u-7-9 {width: 77.777%;}.pure-u-8-9 {width: 88.888%;}
.pure-u-1-10 {width: 10%;}.pure-u-2-10 {width: 20%;}.pure-u-3-10 {width: 30%;}.pure-u-4-10 {width: 40%;}.pure-u-5-10 {width: 50%;}.pure-u-6-10 {width: 60%;}.pure-u-7-10 {width: 70%;}.pure-u-8-10 {width: 80%;}.pure-u-9-10 {width: 90%;}
.pure-u-1-11 {width: 9.090%;}.pure-u-2-11 {width: 18.181%;}.pure-u-3-11 {width: 27.272%;}.pure-u-4-11 {width: 36.363%;}.pure-u-5-11 {width: 45.454%;}.pure-u-6-11 {width: 54.545%;}.pure-u-7-11 {width: 63.636%;}.pure-u-8-11 {width: 72.727%;}.pure-u-9-11 {width: 81.818%;}.pure-u-10-11 {width: 90.909%;}

Binary file not shown.

File diff suppressed because it is too large Load diff

After

Width:  |  Height:  |  Size: 434 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,3 @@
<svg height="1024" width="896" xmlns="http://www.w3.org/2000/svg">
<path d="M128 768h256v64H128v-64z m320-384H128v64h320v-64z m128 192V448L384 640l192 192V704h320V576H576z m-288-64H128v64h160v-64zM128 704h160v-64H128v64z m576 64h64v128c-1 18-7 33-19 45s-27 18-45 19H64c-35 0-64-29-64-64V192c0-35 29-64 64-64h192C256 57 313 0 384 0s128 57 128 128h192c35 0 64 29 64 64v320h-64V320H64v576h640V768zM128 256h512c0-35-29-64-64-64h-64c-35 0-64-29-64-64s-29-64-64-64-64 29-64 64-29 64-64 64h-64c-35 0-64 29-64 64z" />
</svg>

After

Width:  |  Height:  |  Size: 519 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

7
themes/learn2/js/clipboard.min.js vendored Normal file

File diff suppressed because one or more lines are too long

8
themes/learn2/js/featherlight.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,4 @@
/**
* @preserve HTML5 Shiv prev3.7.1 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
*/
!function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=x.elements;return"string"==typeof a?a.split(" "):a}function e(a){var b=w[a[u]];return b||(b={},v++,a[u]=v,w[v]=b),b}function f(a,c,d){if(c||(c=b),p)return c.createElement(a);d||(d=e(c));var f;return f=d.cache[a]?d.cache[a].cloneNode():t.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!f.canHaveChildren||s.test(a)||f.tagUrn?f:d.frag.appendChild(f)}function g(a,c){if(a||(a=b),p)return a.createDocumentFragment();c=c||e(a);for(var f=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)f.createElement(h[g]);return f}function h(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return x.shivMethods?f(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(x,b.frag)}function i(a){a||(a=b);var d=e(a);return!x.shivCSS||o||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),p||h(a,d),a}function j(a){for(var b,c=a.getElementsByTagName("*"),e=c.length,f=RegExp("^(?:"+d().join("|")+")$","i"),g=[];e--;)b=c[e],f.test(b.nodeName)&&g.push(b.applyElement(k(b)));return g}function k(a){for(var b,c=a.attributes,d=c.length,e=a.ownerDocument.createElement(z+":"+a.nodeName);d--;)b=c[d],b.specified&&e.setAttribute(b.nodeName,b.nodeValue);return e.style.cssText=a.style.cssText,e}function l(a){for(var b,c=a.split("{"),e=c.length,f=RegExp("(^|[\\s,>+~])("+d().join("|")+")(?=[[\\s,>+~#.:]|$)","gi"),g="$1"+z+"\\:$2";e--;)b=c[e]=c[e].split("}"),b[b.length-1]=b[b.length-1].replace(f,g),c[e]=b.join("}");return c.join("{")}function m(a){for(var b=a.length;b--;)a[b].removeNode()}function n(a){function b(){clearTimeout(g._removeSheetTimer),d&&d.removeNode(!0),d=null}var d,f,g=e(a),h=a.namespaces,i=a.parentWindow;return!A||a.printShived?a:("undefined"==typeof h[z]&&h.add(z),i.attachEvent("onbeforeprint",function(){b();for(var e,g,h,i=a.styleSheets,k=[],m=i.length,n=Array(m);m--;)n[m]=i[m];for(;h=n.pop();)if(!h.disabled&&y.test(h.media)){try{e=h.imports,g=e.length}catch(o){g=0}for(m=0;g>m;m++)n.push(e[m]);try{k.push(h.cssText)}catch(o){}}k=l(k.reverse().join("")),f=j(a),d=c(a,k)}),i.attachEvent("onafterprint",function(){m(f),clearTimeout(g._removeSheetTimer),g._removeSheetTimer=setTimeout(b,500)}),a.printShived=!0,a)}var o,p,q="3.7.0",r=a.html5||{},s=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,t=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,u="_html5shiv",v=0,w={};!function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",o="hidden"in a,p=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){o=!0,p=!0}}();var x={elements:r.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:q,shivCSS:r.shivCSS!==!1,supportsUnknownElements:p,shivMethods:r.shivMethods!==!1,type:"default",shivDocument:i,createElement:f,createDocumentFragment:g};a.html5=x,i(b);var y=/^$|\b(?:all|print)\b/,z="html5shiv",A=!p&&function(){var c=b.documentElement;return!("undefined"==typeof b.namespaces||"undefined"==typeof b.parentWindow||"undefined"==typeof c.applyElement||"undefined"==typeof c.removeNode||"undefined"==typeof a.attachEvent)}();x.type+=" print",x.shivPrint=n,n(b)}(this,document);

File diff suppressed because one or more lines are too long

342
themes/learn2/js/learn.js Normal file
View file

@ -0,0 +1,342 @@
// Scrollbar Width function
function getScrollBarWidth() {
var inner = document.createElement('p');
inner.style.width = "100%";
inner.style.height = "200px";
var outer = document.createElement('div');
outer.style.position = "absolute";
outer.style.top = "0px";
outer.style.left = "0px";
outer.style.visibility = "hidden";
outer.style.width = "200px";
outer.style.height = "150px";
outer.style.overflow = "hidden";
outer.appendChild(inner);
document.body.appendChild(outer);
var w1 = inner.offsetWidth;
outer.style.overflow = 'scroll';
var w2 = inner.offsetWidth;
if (w1 == w2) w2 = outer.clientWidth;
document.body.removeChild(outer);
return (w1 - w2);
};
function setMenuHeight() {
$('#sidebar .highlightable').height($('#sidebar').innerHeight() - $('#header-wrapper').height() - 40);
}
function fallbackMessage(action) {
var actionMsg = '';
var actionKey = (action === 'cut' ? 'X' : 'C');
if (/iPhone|iPad/i.test(navigator.userAgent)) {
actionMsg = 'No support :(';
}
else if (/Mac/i.test(navigator.userAgent)) {
actionMsg = 'Press ⌘-' + actionKey + ' to ' + action;
}
else {
actionMsg = 'Press Ctrl-' + actionKey + ' to ' + action;
}
return actionMsg;
}
// for the window resize
$(window).resize(function() {
setMenuHeight();
});
// debouncing function from John Hann
// http://unscriptable.com/index.php/2009/03/20/debouncing-javascript-methods/
(function($, sr) {
var debounce = function(func, threshold, execAsap) {
var timeout;
return function debounced() {
var obj = this, args = arguments;
function delayed() {
if (!execAsap)
func.apply(obj, args);
timeout = null;
};
if (timeout)
clearTimeout(timeout);
else if (execAsap)
func.apply(obj, args);
timeout = setTimeout(delayed, threshold || 100);
};
}
// smartresize
jQuery.fn[sr] = function(fn) { return fn ? this.bind('resize', debounce(fn)) : this.trigger(sr); };
})(jQuery, 'smartresize');
jQuery(document).ready(function() {
var sidebarStatus = searchStatus = 'open';
// set the menu height
setMenuHeight();
jQuery('#overlay').on('click', function() {
jQuery(document.body).toggleClass('sidebar-hidden');
sidebarStatus = (jQuery(document.body).hasClass('sidebar-hidden') ? 'closed' : 'open');
return false;
});
jQuery('.scrollbar-inner').scrollbar();
jQuery('[data-sidebar-toggle]').on('click', function() {
jQuery(document.body).toggleClass('sidebar-hidden');
sidebarStatus = (jQuery(document.body).hasClass('sidebar-hidden') ? 'closed' : 'open');
return false;
});
jQuery('[data-clear-history-toggle]').on('click', function() {
sessionStorage.clear();
location.reload();
return false;
});
jQuery('[data-search-toggle]').on('click', function() {
if (sidebarStatus == 'closed') {
jQuery('[data-sidebar-toggle]').trigger('click');
jQuery(document.body).removeClass('searchbox-hidden');
searchStatus = 'open';
return false;
}
jQuery(document.body).toggleClass('searchbox-hidden');
searchStatus = (jQuery(document.body).hasClass('searchbox-hidden') ? 'closed' : 'open');
return false;
});
var ajax;
jQuery('[data-search-input]').on('input', function() {
var input = jQuery(this),
value = input.val(),
items = jQuery('[data-nav-id]');
items.removeClass('search-match');
if (!value.length) {
$('ul.topics').removeClass('searched');
items.css('display', 'block');
sessionStorage.removeItem('search-value');
$(".highlightable").unhighlight({ element: 'mark' })
return;
}
sessionStorage.setItem('search-value', value);
$(".highlightable").unhighlight({ element: 'mark' }).highlight(value, { element: 'mark' });
if (ajax && ajax.abort) ajax.abort();
ajax = jQuery.ajax({
url: input.data('search-input') + ':' + value
}).done(function(data) {
if (data && data.results && data.results.length) {
items.css('display', 'none');
$('ul.topics').addClass('searched');
data.results.forEach(function(navitem) {
jQuery('[data-nav-id="' + navitem + '"]').css('display', 'block').addClass('search-match');
jQuery('[data-nav-id="' + navitem + '"]').parents('li').css('display', 'block');
});
}
;
});
jQuery('[data-search-clear]').on('click', function() {
jQuery('[data-search-input]').val('').trigger('input');
sessionStorage.removeItem('search-input');
$(".highlightable").unhighlight({ element: 'mark' })
});
});
if (sessionStorage.getItem('search-value')) {
jQuery(document.body).removeClass('searchbox-hidden');
jQuery('[data-search-input]').val(sessionStorage.getItem('search-value'));
jQuery('[data-search-input]').trigger('input');
}
// clipboard
var clipInit = false;
$('code').each(function() {
var code = $(this),
text = code.text();
if (text.length > 5) {
if (!clipInit) {
var text, clip = new Clipboard('.copy-to-clipboard', {
text: function(trigger) {
text = $(trigger).prev('code').text();
return text.replace(/^\$\s/gm, '');
}
});
var inPre;
clip.on('success', function(e) {
e.clearSelection();
inPre = $(e.trigger).parent().prop('tagName') == 'PRE';
$(e.trigger).attr('aria-label', 'Copied to clipboard!').addClass('tooltipped tooltipped-' + (inPre ? 'w' : 's'));
});
clip.on('error', function(e) {
inPre = $(e.trigger).parent().prop('tagName') == 'PRE';
$(e.trigger).attr('aria-label', fallbackMessage(e.action)).addClass('tooltipped tooltipped-' + (inPre ? 'w' : 's'));
$(document).one('copy', function(){
$(e.trigger).attr('aria-label', 'Copied to clipboard!').addClass('tooltipped tooltipped-' + (inPre ? 'w' : 's'));
});
});
clipInit = true;
}
code.after('<span class="copy-to-clipboard" title="Copy to clipboard" />');
code.next('.copy-to-clipboard').on('mouseleave', function() {
$(this).attr('aria-label', null).removeClass('tooltipped tooltipped-s tooltipped-w');
});
}
});
// allow keyboard control for prev/next links
jQuery(function() {
jQuery('.nav-prev').click(function(){
location.href = jQuery(this).attr('href');
});
jQuery('.nav-next').click(function() {
location.href = jQuery(this).attr('href');
});
});
jQuery(document).keydown(function(e) {
// prev links - left arrow key
if(e.which == '37') {
jQuery('.nav.nav-prev').click();
}
// next links - right arrow key
if(e.which == '39') {
jQuery('.nav.nav-next').click();
}
});
});
jQuery(window).on('load', function() {
function adjustForScrollbar() {
if ((parseInt(jQuery('#body-inner').height()) + 83) >= jQuery('#body').height()) {
jQuery('.nav.nav-next').css({ 'margin-right': getScrollBarWidth() });
} else {
jQuery('.nav.nav-next').css({ 'margin-right': 0 });
}
}
// adjust sidebar for scrollbar
adjustForScrollbar();
jQuery(window).smartresize(function() {
adjustForScrollbar();
});
// store this page in session
sessionStorage.setItem(jQuery('body').data('url'), 1);
// loop through the sessionStorage and see if something should be marked as visited
for (var url in sessionStorage) {
if (sessionStorage.getItem(url) == 1) jQuery('[data-nav-id="' + url + '"]').addClass('visited');
}
$(".highlightable").highlight(sessionStorage.getItem('search-value'), { element: 'mark' });
});
$(function() {
$('a[rel="lightbox"]').featherlight({
root: 'section#body'
});
});
jQuery.extend({
highlight: function(node, re, nodeName, className) {
if (node.nodeType === 3) {
var match = node.data.match(re);
if (match) {
var highlight = document.createElement(nodeName || 'span');
highlight.className = className || 'highlight';
var wordNode = node.splitText(match.index);
wordNode.splitText(match[0].length);
var wordClone = wordNode.cloneNode(true);
highlight.appendChild(wordClone);
wordNode.parentNode.replaceChild(highlight, wordNode);
return 1; //skip added node in parent
}
} else if ((node.nodeType === 1 && node.childNodes) && // only element nodes that have children
!/(script|style)/i.test(node.tagName) && // ignore script and style nodes
!(node.tagName === nodeName.toUpperCase() && node.className === className)) { // skip if already highlighted
for (var i = 0; i < node.childNodes.length; i++) {
i += jQuery.highlight(node.childNodes[i], re, nodeName, className);
}
}
return 0;
}
});
jQuery.fn.unhighlight = function(options) {
var settings = {
className: 'highlight',
element: 'span'
};
jQuery.extend(settings, options);
return this.find(settings.element + "." + settings.className).each(function() {
var parent = this.parentNode;
parent.replaceChild(this.firstChild, this);
parent.normalize();
}).end();
};
jQuery.fn.highlight = function(words, options) {
var settings = {
className: 'highlight',
element: 'span',
caseSensitive: false,
wordsOnly: false
};
jQuery.extend(settings, options);
if (!words) { return; }
if (words.constructor === String) {
words = [words];
}
words = jQuery.grep(words, function(word, i) {
return word != '';
});
words = jQuery.map(words, function(word, i) {
return word.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
});
if (words.length == 0) { return this; }
;
var flag = settings.caseSensitive ? "" : "i";
var pattern = "(" + words.join("|") + ")";
if (settings.wordsOnly) {
pattern = "\\b" + pattern + "\\b";
}
var re = new RegExp(pattern, flag);
return this.each(function() {
jQuery.highlight(this, re, settings.element, settings.className);
});
};

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,48 @@
en:
THEME_LEARN2_GITHUB_EDIT_THIS_PAGE: edit this page
THEME_LEARN2_GITHUB_NOTE: Found errors? Think you can improve this documentation?
THEME_LEARN2_CLEAR_HISTORY: Clear History
THEME_LEARN2_BUILT_WITH_GRAV: Built with <a href="http://getgrav.org">Grav</a> - The Modern Flat File CMS
THEME_LEARN2_SEARCH_DOCUMENTATION: Search Documentation
cn:
THEME_LEARN2_GITHUB_EDIT_THIS_PAGE: 编辑此页
THEME_LEARN2_GITHUB_NOTE: 发现错误?请帮忙改进,谢谢!
THEME_LEARN2_CLEAR_HISTORY: 清除历史
THEME_LEARN2_BUILT_WITH_GRAV: Built with <a href="http://getgrav.org">Grav</a> - The Modern Flat File CMS
THEME_LEARN2_SEARCH_DOCUMENTATION: 搜索文档
cs:
THEME_LEARN2_GITHUB_EDIT_THIS_PAGE: Upravte tuto stránku
THEME_LEARN2_GITHUB_NOTE: Našli jste chybu? Myslíte, že můžete vylepšit tuto dokumentaci?
THEME_LEARN2_CLEAR_HISTORY: Smazat historii
THEME_LEARN2_BUILT_WITH_GRAV: Postaveno na <a href="http://getgrav.org">Grav</a> - Moderní správce obsahu pomocí souborů prostých textů
THEME_LEARN2_SEARCH_DOCUMENTATION: Vyhledat v dokumentaci
de:
THEME_LEARN2_GITHUB_EDIT_THIS_PAGE: diese Seite bearbeiten
THEME_LEARN2_GITHUB_NOTE: Fehler gefunden? Möchten Sie diese Seite verbessern?
THEME_LEARN2_CLEAR_HISTORY: Verlauf löschen
THEME_LEARN2_BUILT_WITH_GRAV: Seite erstellt mit <a href="http://getgrav.org">Grav</a> - The Modern Flat File CMS
THEME_LEARN2_SEARCH_DOCUMENTATION: Dokumentation durchsuchen
es:
THEME_LEARN2_GITHUB_EDIT_THIS_PAGE: editar esta página
THEME_LEARN2_GITHUB_NOTE: ¿Encontraste errores? ¿Crees que puedes mejorar esta documentación?
THEME_LEARN2_CLEAR_HISTORY: Limpiar historial
THEME_LEARN2_BUILT_WITH_GRAV: Hecho con <a href="http://getgrav.org">Grav</a> - El CMS moderno de archivos planos
THEME_LEARN2_SEARCH_DOCUMENTATION: Buscar en la documentación
fr:
THEME_LEARN2_GITHUB_EDIT_THIS_PAGE: modifier cette page
THEME_LEARN2_GITHUB_NOTE: Vous avez découvert des erreurs ? Vous pensez pouvoir améliorer cette documentation ?
THEME_LEARN2_CLEAR_HISTORY: Effacer l'historique
THEME_LEARN2_BUILT_WITH_GRAV: Créé avec <a href="http://getgrav.org">Grav</a> - Le CMS moderne sans base de données
THEME_LEARN2_SEARCH_DOCUMENTATION: Rechercher dans la documentation
it:
THEME_LEARN2_GITHUB_EDIT_THIS_PAGE: modifica pagina
THEME_LEARN2_GITHUB_NOTE: Hai trovato degli errori? Pensi di poter migliorare questa documentazione?
THEME_LEARN2_CLEAR_HISTORY: Cancella Cronologia
THEME_LEARN2_BUILT_WITH_GRAV: Built with <a href="http://getgrav.org">Grav</a> - The Modern Flat File CMS
THEME_LEARN2_SEARCH_DOCUMENTATION: Cerca nella Documentatione
ru:
THEME_LEARN2_GITHUB_EDIT_THIS_PAGE: редактировать эту страницу
THEME_LEARN2_GITHUB_NOTE: Нашли ошибки? Думаете, что можете улучшить документацию?
THEME_LEARN2_CLEAR_HISTORY: Очистить историю
THEME_LEARN2_BUILT_WITH_GRAV: Сделано на <a href="http://getgrav.org">Grav</a> — современной файловой CMS
THEME_LEARN2_SEARCH_DOCUMENTATION: Поиск по документации

9
themes/learn2/learn2.php Normal file
View file

@ -0,0 +1,9 @@
<?php
namespace Grav\Theme;
use Grav\Common\Theme;
class Learn2 extends Theme
{
}

10
themes/learn2/learn2.yaml Normal file
View file

@ -0,0 +1,10 @@
enabled: true
root_page: # optional: set root page of documentation
top_level_version: false # Use versions for top level navigation
show_all_pages: false # Show all pages without having to 'open' them
google_analytics_code: # Enter your `UA-XXXXXXXX-X` code here
home_url: # http://getgrav.org
github:
position: top # top | bottom | off
tree: https://github.com/getgrav/grav-skeleton-rtfm-site/blob/develop/
commits: https://github.com/getgrav/grav-skeleton-rtfm-site/commits/develop/

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 KiB

2
themes/learn2/scss.sh Normal file
View file

@ -0,0 +1,2 @@
#!/bin/sh
scss --watch scss:css-compiled

View file

@ -0,0 +1,14 @@
// Core
@import "core";
// Breakpoints
@import "breakpoints";
// Layout
@import "layout";
// Typography
@import "typography";
// Nav
@import "nav";

View file

@ -0,0 +1,17 @@
// Media Device Breakpoints
$large-desktop-container: 75.000em !default;
$desktop-container: 60.000em !default;
$tablet-container: 48.000em !default;
$large-mobile-container: 30.000em !default;
$mobile-container: 100% !default;
// Breakpoint Variables For Particles
$media: "all" !default;
$desktop-max: "#{$media} and (max-width:#{$desktop-container - 0.062})" !default;
$mobile-only: "#{$media} and (max-width:#{$tablet-container - 0.062})" !default;
$no-mobile: "#{$media} and (min-width:#{$tablet-container})" !default;
$small-mobile-range: "#{$media} and (max-width:#{$large-mobile-container})" !default;
$large-mobile-range: "#{$media} and (min-width:#{$large-mobile-container + 0.063}) and (max-width:#{$tablet-container - 0.062})" !default;
$tablet-range: "#{$media} and (min-width:#{$tablet-container}) and (max-width:#{$desktop-container - 0.062})" !default;
$desktop-range: "#{$media} and (min-width:#{$desktop-container}) and (max-width:#{$large-desktop-container - 0.062})" !default;
$large-desktop-range: "#{$media} and (min-width:#{$large-desktop-container})" !default;

View file

@ -0,0 +1,2 @@
// Border Radius
$core-border-radius: rem(3) !default;

View file

@ -0,0 +1,8 @@
// Content Block Spacing Variables
$content-margin: 0.625rem !default;
$content-padding: 0.938rem !default;
// Fixed Block Variables
$fixed-block-full: percentage(1/4) !default;
$fixed-block-desktop: percentage(1/3) !default;
$fixed-block-tablet: percentage(1/2) !default;

View file

@ -0,0 +1,3 @@
// Dropdowns
$dropdown-width: 140px !default;
$flyout-width: 140px !default;

View file

@ -0,0 +1,14 @@
// Base Sizes
$core-font-size: 1.05rem !default;
$core-line-height: 1.7 !default;
// Heading Sizes
$h1-font-size: $core-font-size + 2.20 !default;
$h2-font-size: $core-font-size + 1.50 !default;
$h3-font-size: $core-font-size + 1.10 !default;
$h4-font-size: $core-font-size + 0.75 !default;
$h5-font-size: $core-font-size + 0.35 !default;
$h6-font-size: $core-font-size - 0.15 !default;
// Spacing
$leading-margin: $core-line-height * 1rem !default;

View file

@ -0,0 +1,5 @@
// Colors
@import "colors";
// Typography
@import "bullets";

View file

@ -0,0 +1,5 @@
$bullet-icon-size: 3.5rem;
$bullet-icon-color-1: $core-accent;
$bullet-icon-color-2: adjust-hue($core-accent, -20);
$bullet-icon-color-3: adjust-hue($core-accent, -130);

View file

@ -0,0 +1,60 @@
// Core
$core-text: #555;
$core-accent: #1694CA;
$secondary-link: #F8B450;
$white: #fff;
$black: #000;
$light-gray: #ddd;
// Borders
$core-border-color: $light-gray;
$core-border-color-hover: darken($core-border-color, 10);
$core-border-color-focus: $core-accent;
// Shadows
$core-box-shadow: inset 0 1px 3px hsla(0, 0%, 0%, 0.06);
$core-box-shadow-focus: $core-box-shadow, 0 0 5px rgba(darken($core-border-color-focus, 5), 0.7);
// Background
$page-bg: #fff;
// Header
$header-text: #aaa;
// Nav
$nav-link: #aaa;
// Showcase
$showcase-bg: lighten($core-accent, 6%);
$showcase-text: #fff;
// Feature
$feature-bg: #fff;
// Main Body
$main-bg: #f7f7f7;
$body-border: darken($main-bg, 5%);
// Sidebar
$sidebar-text: #aaa;
// Bottom
$bottom-bg: #f7f7f7;
$bottom-text: $core-text;
// Footer
$footer-bg: #404040;
$footer-text: #ccc;
$rule-color: #F0F2F4;
$code-text: #c7254e;
$code-bg: #f9f2f4;
$pre-text: #237794;
$pre-bg: #f6f6f6;
// Dark Contrast variation
$dark-navbar-text: #999;
$dark-sidebar: #222;
$dark-sidebar-text: #999;
$dark-main-bg: #333;
$dark-body-border: #666;

View file

@ -0,0 +1,27 @@
// REQUIRED DEPENDENCIES - DO NOT CHANGE
// Load Third Party Libraries
@import "vendor/bourbon/bourbon";
// Load Nucleus Configuration
@import "configuration/nucleus/base";
// Load Nucleus Mixins and Functions
@import "nucleus/functions/base";
@import "nucleus/mixins/base";
//-------------------------------------------
// LOAD NUCLEUS COMPONENTS
// Core
@import "nucleus/core";
// Flex
@import "nucleus/flex";
// Typography
@import "nucleus/typography";
// Forms
@import "nucleus/forms";

View file

@ -0,0 +1,217 @@
*, *::before, *::after {
@include box-sizing(border-box);
}
@-webkit-viewport{width:device-width}
@-moz-viewport{width:device-width}
@-ms-viewport{width:device-width}
@-o-viewport{width:device-width}
@viewport{width:device-width}
html {
font-size: 100%;
-ms-text-size-adjust: 100%;
-webkit-text-size-adjust: 100%;
}
body {
margin: 0;
}
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
nav,
section,
summary {
display: block;
}
audio,
canvas,
progress,
video {
display: inline-block;
vertical-align: baseline;
}
audio:not([controls]) {
display: none;
height: 0;
}
[hidden],
template {
display: none;
}
a {
background: transparent;
text-decoration: none;
}
a:active,
a:hover {
outline: 0;
}
abbr[title] {
border-bottom: 1px dotted;
}
b,
strong {
font-weight: bold;
}
dfn {
font-style: italic;
}
mark {
background: #FFFF27;
color: #333;
}
sub,
sup {
font-size: $core-font-size - 0.250;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sup {
top: -0.5em;
}
sub {
bottom: -0.25em;
}
img {
border: 0;
max-width: 100%;
}
svg:not(:root) {
overflow: hidden;
}
figure {
margin: 1em 40px;
}
hr {
height: 0;
}
pre {
overflow: auto;
}
code,
kbd,
pre,
samp {
// font-size: $core-font-size;
}
button,
input,
optgroup,
select,
textarea {
color: inherit;
font: inherit;
margin: 0;
}
button {
overflow: visible;
}
button,
select {
text-transform: none;
}
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
-webkit-appearance: button;
cursor: pointer;
}
button[disabled],
html input[disabled] {
cursor: default;
}
button::-moz-focus-inner,
input::-moz-focus-inner {
border: 0;
padding: 0;
}
input {
line-height: normal;
}
input[type="checkbox"],
input[type="radio"] {
padding: 0;
}
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
height: auto;
}
input[type="search"] {
-webkit-appearance: textfield;
}
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
legend {
border: 0;
padding: 0;
}
textarea {
overflow: auto;
}
optgroup {
font-weight: bold;
}
table {
border-collapse: collapse;
border-spacing: 0;
table-layout: fixed;
width: 100%;
}
tr, td, th {
vertical-align: middle;
}
th, td {
padding: ($leading-margin / 4) 0;
}
th {
text-align: left;
}

View file

@ -0,0 +1,189 @@
// Page Container
.container {
width: $large-desktop-container;
margin: 0 auto;
padding: 0;
@include breakpoint(desktop-range) {
width: $desktop-container;
}
@include breakpoint(tablet-range) {
width: $tablet-container;
}
@include breakpoint(large-mobile-range) {
width: $large-mobile-container;
}
@include breakpoint(small-mobile-range) {
width: $mobile-container;
}
}
// Grid Row and Column Setup
.grid {
@include display(flex);
@include flex-flow(row);
list-style: none;
margin: 0;
padding: 0;
@include breakpoint(mobile-only) {
@include flex-flow(row wrap);
}
}
.block {
@include flex(1);
min-width: 0;
min-height: 0;
@include breakpoint(mobile-only) {
@include flex(0 100%);
}
}
// Content Block Spacing
.content {
margin: $content-margin;
padding: $content-padding;
}
body [class*="size-"] {
@include breakpoint(mobile-only) {
@include flex(0 100%);
}
}
// Custom Size Modifiers
.size-1-2 {
@include flex(0 percentage(1/2));
}
.size-1-3 {
@include flex(0 percentage(1/3));
}
.size-1-4 {
@include flex(0 percentage(1/4));
}
.size-1-5 {
@include flex(0 percentage(1/5));
}
.size-1-6 {
@include flex(0 percentage(1/6));
}
.size-1-7 {
@include flex(0 percentage(1/7));
}
.size-1-8 {
@include flex(0 percentage(1/8));
}
.size-1-9 {
@include flex(0 percentage(1/9));
}
.size-1-10 {
@include flex(0 percentage(1/10));
}
.size-1-11 {
@include flex(0 percentage(1/11));
}
.size-1-12 {
@include flex(0 percentage(1/12));
}
@include breakpoint(tablet-range) {
.size-tablet-1-2 {
@include flex(0 percentage(1/2));
}
.size-tablet-1-3 {
@include flex(0 percentage(1/3));
}
.size-tablet-1-4 {
@include flex(0 percentage(1/4));
}
.size-tablet-1-5 {
@include flex(0 percentage(1/5));
}
.size-tablet-1-6 {
@include flex(0 percentage(1/6));
}
.size-tablet-1-7 {
@include flex(0 percentage(1/7));
}
.size-tablet-1-8 {
@include flex(0 percentage(1/8));
}
.size-tablet-1-9 {
@include flex(0 percentage(1/9));
}
.size-tablet-1-10 {
@include flex(0 percentage(1/10));
}
.size-tablet-1-11 {
@include flex(0 percentage(1/11));
}
.size-tablet-1-12 {
@include flex(0 percentage(1/12));
}
}
// Fix for Firefox versions 27 and below
@include breakpoint(mobile-only) {
@supports not (flex-wrap: wrap) {
.grid {
display: block;
@include flex-wrap(inherit);
}
.block {
display: block;
@include flex(inherit);
}
}
}
// Reordering
.first-block {
-webkit-box-ordinal-group: 0;
-webkit-order: -1;
-ms-flex-order: -1;
order: -1;
}
.last-block {
-webkit-box-ordinal-group: 2;
-webkit-order: 1;
-ms-flex-order: 1;
order: 1;
}
// Fixed Grid Style
.fixed-blocks {
@include flex-flow(row wrap);
.block {
@include flex(inherit);
width: $fixed-block-full;
@include breakpoint(desktop-range) {
width: $fixed-block-desktop;
}
@include breakpoint(tablet-range) {
width: $fixed-block-tablet;
}
@include breakpoint(mobile-only) {
width: 100%;
}
}
}

View file

@ -0,0 +1,63 @@
fieldset {
border: 0;
padding: $content-padding;
margin: 0 0 $leading-margin 0;
}
input,
label,
select {
display: block;
}
label {
margin-bottom: $leading-margin / 4;
&.required:after {
content: "*";
}
abbr {
display: none;
}
}
textarea, #{$all-text-inputs}, select[multiple=multiple] {
@include transition(border-color);
border-radius: $core-border-radius;
margin-bottom: $leading-margin / 2;
padding: ($leading-margin / 4) ($leading-margin / 4);
width: 100%;
&:focus {
outline: none;
}
}
textarea {
resize: vertical;
}
input[type="checkbox"], input[type="radio"] {
display: inline;
margin-right: $leading-margin / 4;
}
input[type="file"] {
width: 100%;
}
select {
width: auto;
max-width: 100%;
margin-bottom: $leading-margin;
}
button,
input[type="submit"] {
cursor: pointer;
user-select: none;
vertical-align: middle;
white-space: nowrap;
border: inherit;
}

View file

@ -0,0 +1,86 @@
// Body Base
body {
font-size: $core-font-size;
line-height: $core-line-height;
}
// Headings
h1, h2, h3, h4, h5, h6 {
margin: $leading-margin / 2 0 $leading-margin 0;
text-rendering: optimizeLegibility;
}
h1 {
font-size: $h1-font-size;
}
h2 {
font-size: $h2-font-size;
}
h3 {
font-size: $h3-font-size;
}
h4 {
font-size: $h4-font-size;
}
h5 {
font-size: $h5-font-size;
}
h6 {
font-size: $h6-font-size;
}
// Paragraph
p {
margin: $leading-margin 0;
}
// Lists
ul, ol {
margin-top: $leading-margin;
margin-bottom: $leading-margin;
ul, ol {
margin-top: 0;
margin-bottom: 0;
}
}
// Blockquote
blockquote {
margin: $leading-margin 0;
padding-left: $leading-margin / 2;
}
cite {
display: block;
font-size: $core-font-size - 0.125;
&:before {
content: "\2014 \0020";
}
}
// Inline and Code
pre {
margin: $leading-margin 0;
padding: $content-padding;
}
code {
vertical-align: bottom;
}
// Extras
small {
font-size: $core-font-size - 0.125;
}
hr {
border-left: none;
border-right: none;
border-top: none;
margin: $leading-margin 0;
}

View file

@ -0,0 +1,2 @@
@import "direction";
@import "range";

View file

@ -0,0 +1,37 @@
@function opposite-direction($dir) {
@if $dir == 'left' {
@return right;
}
@else if $dir == 'right' {
@return left;
}
@else if $dir == 'ltr' {
@return rtl;
}
@else if $dir == 'rtl' {
@return ltr;
}
@else if $dir == 'top' {
@return bottom;
}
@else if $dir == 'bottom' {
@return top;
}
@else {
@warn "#{$dir} is not a direction! Make sure your direction is all lowercase!";
@return false;
}
}
@function named-direction($dir) {
@if $dir == 'ltr' {
@return left;
}
@else if $dir == 'rtl' {
@return right;
}
@else {
@warn "#{$dir} is not a valid HTML direction! Make sure you are using a valid HTML direction";
@return false;
}
}

View file

@ -0,0 +1,13 @@
@function lower-bound($range){
@if length($range) <= 0 {
@return 0;
}
@return nth($range,1);
}
@function upper-bound($range) {
@if length($range) < 2 {
@return 999999999999;
}
@return nth($range, 2);
}

View file

@ -0,0 +1,2 @@
@import "breakpoints";
@import "utilities";

View file

@ -0,0 +1,27 @@
// Breakpoints
@mixin breakpoint($breakpoint, $media: all) {
@if $breakpoint == large-desktop-range {
@media only #{$media} and (min-width: $large-desktop-container) { @content; }
}
@else if $breakpoint == desktop-range {
@media only #{$media} and (min-width: $desktop-container) and (max-width: $large-desktop-container - 0.062) { @content; }
}
@else if $breakpoint == tablet-range {
@media only #{$media} and (min-width: $tablet-container) and (max-width: $desktop-container - 0.062) { @content; }
}
@else if $breakpoint == large-mobile-range {
@media only #{$media} and (min-width: $large-mobile-container + 0.063) and (max-width: $tablet-container - 0.062) { @content; }
}
@else if $breakpoint == small-mobile-range {
@media only #{$media} and (max-width: $large-mobile-container) { @content; }
}
@else if $breakpoint == no-mobile {
@media only #{$media} and (min-width: $tablet-container) { @content; }
}
@else if $breakpoint == mobile-only {
@media only #{$media} and (max-width: $tablet-container - 0.062) { @content; }
}
@else if $breakpoint == desktop-only {
@media only #{$media} and (max-width: $desktop-container - 0.062) { @content; }
}
}

View file

@ -0,0 +1,31 @@
// List Reset
%list-reset {
margin: 0;
padding: 0;
list-style: none;
}
// Vertical Centering
%vertical-align {
position: relative;
top: 50%;
-webkit-transform: translateY(-50%);
-moz-transform: translateY(-50%);
-o-transform: translateY(-50%);
-ms-transform: translateY(-50%);
transform: translateY(-50%);
}
// Columns
@mixin columns($columns) {
width: percentage(1/$columns);
}
// Float with margin variable
@mixin float($direction, $margin: 0) {
float: $direction;
margin-#{opposite-direction($direction)}: $margin;
}

View file

@ -0,0 +1,46 @@
// Alignment Classes
$align-class-names:
large-desktop,
desktop,
tablet,
large-mobile,
small-mobile,
no-mobile,
mobile-only;
// Breakpoints
$align-class-breakpoints:
$large-desktop-range,
$desktop-range,
$tablet-range,
$large-mobile-range,
$small-mobile-range,
$no-mobile,
$mobile-only;
// Create Responsive Alignment Classes
@mixin align-classes{
.text-left {
text-align: left !important;
}
.text-right {
text-align: right !important;
}
.text-center {
text-align: center !important;
}
.text-justify {
text-align: justify !important;
}
@for $i from 1 through length($align-class-names) {
@media #{(nth($align-class-breakpoints, $i))} {
.#{(nth($align-class-names, $i))}-text-left { text-align: left !important; }
.#{(nth($align-class-names, $i))}-text-right { text-align: right !important; }
.#{(nth($align-class-names, $i))}-text-center { text-align: center !important; }
.#{(nth($align-class-names, $i))}-text-justify { text-align: justify !important; }
}
}
}
@include align-classes;

View file

@ -0,0 +1,61 @@
// REQUIRED DEPENDENCIES - DO NOT CHANGE
// Load Third Party Libraries
@import "vendor/bourbon/bourbon";
// Load Nucleus Configuration
@import "configuration/nucleus/base";
// Load Template Configuration
@import "configuration/theme/base";
// Load Nucleus Mixins and Functions
@import "nucleus/functions/base";
@import "nucleus/mixins/base";
// Load Template Library
@import "theme/modules/base";
//-------------------------------------------
// TEMPLATE COMPONENTS
// Configuration
@import "theme/configuration";
// Core
@import "theme/core";
@import "theme/fonts";
// Forms
@import "theme/forms";
// Header
@import "theme/header";
// Nav
@import "theme/nav";
// Main
@import "theme/main";
// Typography
@import "theme/typography";
// Tables
@import "theme/tables";
// Buttons
@import "theme/buttons";
// Bullets
@import "theme/bullets";
// Custom
@import "theme/tooltips";
// Scrollbar
@import "theme/scrollbar";
// Custom
@import "theme/custom";

View file

@ -0,0 +1,60 @@
.bullets {
margin: $leading-margin 0;
margin-left: -$leading-margin / 2;
margin-right: -$leading-margin / 2;
overflow: auto;
}
.bullet {
float: left;
padding: 0 $leading-margin / 2;
}
.two-column-bullet {
@include columns(2);
@include breakpoint(mobile-only) {
@include columns(1);
}
}
.three-column-bullet {
@include columns(3);
@include breakpoint(mobile-only) {
@include columns(1);
}
}
.four-column-bullet {
@include columns(4);
@include breakpoint(mobile-only) {
@include columns(1);
}
}
.bullet-icon {
float: left;
background: $bullet-icon-color-1;
padding: $bullet-icon-size / 4;
width: $bullet-icon-size;
height: $bullet-icon-size;
border-radius: 50%;
color: $white;
font-size: $bullet-icon-size / 2;
text-align: center;
}
.bullet-icon-1 {
background: $bullet-icon-color-1;
}
.bullet-icon-2 {
background: $bullet-icon-color-2;
}
.bullet-icon-3 {
background: $bullet-icon-color-3;
}
.bullet-content {
margin-left: $bullet-icon-size * 1.3;
}

View file

@ -0,0 +1,9 @@
.button {
@extend %button;
@include button-color($core-accent);
}
.button-secondary {
@extend %button;
@include button-color($secondary-link);
}

View file

@ -0,0 +1,45 @@
$header-height: 0;
$header-bg: $core-accent;
$sidebar-width: 300px;
$sidebar-width-smaller: 230px;
$sidebar-bg: #38424D;
$sidebar-text: #bbbbbb;
$sidebar-link: #bbbbbb;
$navbar-text: desaturate($core-accent,50%);
$navbar-bg: #F6F6F6;
$progress-bar: #50D681;
$check-color: lighten($sidebar-bg, 30%);
$star-color: #F8C74A;
// Font Weights
$font-weight-bold: 600;
$font-weight-medium: 500;
$font-weight-regular: 400;
$body-margin: 4rem;
// Logo
$logo-width: 8rem;
$logo-height: 2rem;
// Standard Colors
$turquoise: #1ABC9C;
$green_sea: #16A085;
$emerald: #2ECC71;
$nephritis: #27AE60;
$peter_river: #3498DB;
$belize_hole: #2980B9;
$amethyst: #A66BBE;
$wisteria: #8E44AD;
$wet_asphalt: #34495E;
$midnight_blue: #2C3E50;
$sunflower: #F2CA27;
$orange: #F39C12;
$carrot: #E67E22;
$pumpkin: #D35400;
$alizarin: #E74C3C;
$pomegranate: #C0392B;
$clouds: #ECF0F1;
$silver: #BDC3C7;
$concrete: #95A5A6;
$asbestos: #7F8C8D;

View file

@ -0,0 +1,30 @@
body {
background: $page-bg;
color: $core-text;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
a {
color: $core-accent;
&:hover {
color: darken($core-accent, 15%);
}
}
pre {
position: relative;
}
.bg {
background: #fff;
border: 1px solid $body-border;
}
b, strong {
font-weight: $font-weight-bold
}
.default-animation {
@include transition(all 0.5s ease);
}

View file

@ -0,0 +1,232 @@
@charset "UTF-8";
// Your custom SCSS should be written here...
//Fluidbox fixes
.lightbox-active {
#body {
overflow: visible;
.padding {
overflow: visible;
}
}
}
//Github
#github-contrib {
i {
vertical-align: middle;
}
}
//Featherlight fixes
.featherlight img {
margin: 0 !important;
}
//Lifecycle
.lifecycle {
#body-inner {
ul {
list-style: none;
margin: 0;
padding: 2rem 0 0;
position: relative;
}
ol {
margin: 1rem 0 1rem 0;
padding: 2rem;
position: relative;
li {margin-left: 1rem;}
strong {
text-decoration: underline;
}
ol {
margin-left: -1rem;
}
}
h3[class*='level'] {
font-size: 20px;
position: absolute;
margin: 0;
padding: 4px 10px;
right: 0;
z-index: 1000;
color: #fff;
background: $turquoise;
}
ol h3 {
margin-top: 1rem !important;
right: 2rem !important;
}
.level-1 + ol {
background: lighten($turquoise,56%);
border: 4px solid $turquoise;
color: $green_sea;
h3 {
background: $emerald;
}
}
.level-2 + ol {
background: lighten($emerald,49%);
border: 4px solid $emerald;
color: $nephritis;
h3 {
background: $peter_river;
}
}
.level-3 + ol {
background: lighten($peter_river,44%);
border: 4px solid $peter_river;
color: $belize_hole;
h3 {
background: $wet_asphalt;
}
}
.level-4 + ol{
background: lighten($wet_asphalt,63%);
border: 4px solid $wet_asphalt;
color: $midnight_blue;
h3 {
background: $wet_asphalt;
}
}
}
}
#top-bar {
background: $navbar-bg;
border-radius: 2px;
margin: 0rem -1rem 2rem;
padding: 0 1rem;
height: 0;
min-height: 3rem;
}
// Github link
#top-github-link {
@extend %vertical-align;
position: relative;
z-index: 1;
float: right;
display: block;
}
// Breadcrumbs
#body #breadcrumbs {
@extend %vertical-align;
height: auto;
display: block;
margin-bottom: 0;
padding-left: 0;
line-height: 1.4;
span {
padding: 0 0.1rem;
}
}
// Media Query stuff
@include breakpoint(desktop-only) {
#sidebar {
width: $sidebar-width-smaller;
}
#body {
margin-left: $sidebar-width-smaller;
}
}
@include breakpoint(mobile-only) {
#sidebar {
width: $sidebar-width-smaller;
left: - $sidebar-width-smaller;
}
#body {
margin-left: 0;
width: 100%;
}
.sidebar-hidden {
overflow: hidden;
#sidebar {
left: 0;
}
#body {
margin-left: $sidebar-width-smaller;
overflow: hidden;
}
#overlay {
position: absolute;
left:0;
right: 0;
top: 0;
bottom: 0;
z-index:10;
background: rgba(255,255,255,.5);
cursor: pointer;
}
}
}
// clipboard
.copy-to-clipboard {
background-image: url(../images/clippy.svg);
background-position: 50% 50%;
background-size: 16px 16px;
background-repeat: no-repeat;
width: 27px;
height: $core-font-size + (.2rem * 2);
top: -1px;
display: inline-block;
vertical-align: middle;
position: relative;
color: darken($core-text,10%);
background-color: $code-bg;
margin-left: -.2rem;
cursor: pointer;
border-radius: 0 2px 2px 0;
&:hover {
background-color: darken($code-bg, 5%);
}
pre & {
position: absolute;
right: 4px;
top: 4px;
background-color: #eee;
border-color: #ddd;
border-radius: 2px;
&:hover {
background-color: #d9d9d9;
}
}
}
// Utils
.parent-element {
-webkit-transform-style: preserve-3d;
-moz-transform-style: preserve-3d;
transform-style: preserve-3d;
}

View file

@ -0,0 +1,8 @@
// Import Google Web Fonts
@import url(//fonts.googleapis.com/css?family=Montserrat:400|Muli:300,400|Inconsolata);
$font-family-default: "Muli", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif;
$font-family-header: "Montserrat", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif;
$font-family-mono: "Inconsolata", monospace;
$font-family-serif: "Georgia", "Times", "Times New Roman", serif;

View file

@ -0,0 +1,22 @@
fieldset {
border: 1px solid $core-border-color;
}
textarea, #{$all-text-inputs}, select[multiple=multiple] {
background-color: white;
border: 1px solid $core-border-color;
box-shadow: $core-box-shadow;
&:hover {
border-color: $core-border-color-hover;
}
&:focus {
border-color: $core-border-color-focus;
box-shadow: $core-box-shadow-focus;
}
}
label {
@extend strong;
}

View file

@ -0,0 +1,66 @@
#header {
background: $header-bg;
color: $white;
text-align: center;
padding: 1rem;
a {
display: inline-block;
}
#logo-svg {
@extend .default-animation;
width: $logo-width;
height: $logo-height;
path {
@extend .default-animation;
fill: $white;
}
}
}
.searchbox {
margin-top: 0.5rem;
position: relative;
border: 1px solid lighten($header-bg, 5%);
background: darken($header-bg,5%);
border-radius: 4px;
label {
color: rgba($white, 0.8);
position: absolute;
left: 10px;
top: 3px;
}
span {
color: rgba($white, 0.6);
position: absolute;
right: 10px;
top: 3px;
cursor: pointer;
&:hover {
color: rgba($white, 0.9);
}
}
input {
display: inline-block;
color: $white;
width: 100%;
height: 30px;
background: transparent;
border: 0;
padding: 0 25px 0 30px;
margin: 0;
font-weight: $font-weight-regular;
@include placeholder {
color: rgba($white, 0.6);
}
}
}

View file

@ -0,0 +1,149 @@
#main {
background: $main-bg;
margin: 0 0 $content-margin + $content-padding 0;
}
#body {
img, .video-container {
margin: 3rem auto;
display: block;
text-align: center;
&.border {
border: 2px solid #e6e6e6 !important;
padding: 2px;
}
&.shadow {
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
}
}
@extend .default-animation;
position: relative;
margin-left: $sidebar-width;
min-height: 100%;
.bordered {
border: 1px solid #ccc;
}
.padding {
@extend .default-animation;
padding: 3rem ($body-margin + 2rem);
@include breakpoint(desktop-only) {
position: static;
padding: 15px ($body-margin - 1rem);
}
@include breakpoint(mobile-only) {
padding: 5px 1rem;
}
}
h1 + hr {
margin-top: -1.7rem;
margin-bottom: 3rem;
}
#navigation {
@include breakpoint(desktop-only) {
position: static;
margin-right: 0 !important;
width: 100%;
display: table;
}
}
.nav {
@extend .default-animation;
position: fixed;
top: 0;
bottom: 0;
width: $body-margin;
font-size: 50px;
height: 100%;
cursor: pointer;
display: table;
text-align: center;
> i {
display: table-cell;
vertical-align: middle;
text-align: center;
}
@include breakpoint(desktop-only) {
display: table-cell;
position: static;
top: auto;
width: 50%;
text-align: center;
height: 100px;
line-height: 100px;
padding-top: 0;
> i {
display: inline-block;
}
}
&:hover {
background: $navbar-bg;
}
&.nav-pref {
left: 0;
}
&.nav-next {
right: 0;
}
}
}
#body-inner {
margin-bottom: 5rem;
}
// Chapter title
#chapter {
display: flex;
align-items: center;
justify-content: center;
height: 100%;
padding: 2rem 0;
#body-inner {
padding-bottom: 3rem;
max-width: 80%;
}
h3 {
font-family: $font-family-default;
font-weight: $font-weight-regular;
text-align: center;
}
h1 {
font-size: 5rem;
border-bottom: 4px solid $rule-color;
}
p {
text-align: center;
font-size: 1.2rem;
}
}
#footer {
padding: 3rem 1rem;
color: darken($sidebar-link, 10%);
font-size: 13px;
p {
margin: 0;
}
}

View file

@ -0,0 +1,212 @@
#sidebar-toggle {
display: none;
@include breakpoint(mobile-only) {
display: inline-block;
}
}
#sidebar {
@extend .default-animation;
background-color: $sidebar-bg;
position: fixed;
top: 0;
width: $sidebar-width;
bottom: 0;
left: 0;
font-weight: $font-weight-medium;
font-size: 15px;
a {
color: $sidebar-link;
&:hover {
color: lighten($sidebar-link, 10%);
}
&.subtitle {
color: rgba($sidebar-link, 0.6);
}
}
hr {
border-bottom: 1px solid darken($sidebar-bg, 3%);
}
a.padding {
padding: 0 1rem;
}
h5 {
margin: 2rem 0 0;
position: relative;
line-height: 2;
a {
display: block;
margin-left: 0;
margin-right: 0;
padding-left: 1rem;
padding-right: 1rem;
}
i {
color: rgba($sidebar-link, 0.6);
position: absolute;
right: 0.6rem;
top: 0.7rem;
font-size: 80%;
}
&.parent {
a {
background: darken($sidebar-bg, 7%);
color: lighten($sidebar-link, 5%) !important;
}
}
&.active {
a {
background: $white;
color: $core-text !important;
}
i {
color: $core-text !important;
}
}
}
h5 + ul.topics {
display: none;
margin-top: 0;
}
h5.parent, h5.active {
+ ul.topics {
display: block;
}
}
ul {
@extend .default-animation;
list-style: none;
padding: 0;
margin: 0;
&.searched {
a {
color: darken($sidebar-link, 20%);
}
.search-match {
a {
color: lighten($sidebar-link, 10%);
&:hover {
color: lighten($sidebar-link, 20%);
}
}
}
}
&.topics {
margin: 0 1rem;
&.searched {
ul {
display: block;
}
}
ul {
display: none;
padding-bottom: 1rem;
ul {
padding-bottom: 0;
}
}
li.parent ul, > li.active ul {
display: block;
}
> li {
> a {
line-height: 2rem;
font-size: 1.1rem;
b {
opacity: 0.5;
font-weight: normal;
}
.fa {
margin-top: 9px;
}
}
&.parent, &.active {
background: darken($sidebar-bg, 5%);
margin-left: -1rem;
margin-right: -1rem;
padding-left: 1rem;
padding-right: 1rem;
}
}
}
li.active > a {
background: $white;
color: $core-text !important;
margin-left: -1rem;
margin-right: -1rem;
padding-left: 1rem;
padding-right: 1rem;
}
li {
padding: 0;
&.visited + span {
margin-right: 16px;
}
a {
display: block;
padding: 2px 0;
span {
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
display: block;
}
}
> a {
padding: 4px 0;
}
.fa {
display: none;
float: right;
font-size: 13px;
min-width: 16px;
margin: 4px 0 0 0;
text-align: right;
}
&.visited {
> a .read-icon {
color: $core-accent;
display: inline;
}
}
li {
padding-left: 1rem;
text-indent: 0.2rem;
}
}
}
}

View file

@ -0,0 +1,139 @@
/*************** SCROLLBAR BASE CSS ***************/
.highlightable {
padding: 25px 0 15px;
}
.scroll-wrapper {
overflow: hidden !important;
padding: 0 !important;
position: relative;
}
.scroll-wrapper > .scroll-content {
border: none !important;
box-sizing: content-box !important;
height: auto;
left: 0;
margin: 0;
max-height: none;
max-width: none !important;
overflow: scroll !important;
padding: 0;
position: relative !important;
top: 0;
width: auto !important;
}
.scroll-wrapper > .scroll-content::-webkit-scrollbar {
height: 0;
width: 0;
}
.scroll-element {
display: none;
}
.scroll-element, .scroll-element div {
box-sizing: content-box;
}
.scroll-element.scroll-x.scroll-scrollx_visible,
.scroll-element.scroll-y.scroll-scrolly_visible {
display: block;
}
.scroll-element .scroll-bar,
.scroll-element .scroll-arrow {
cursor: default;
}
.scroll-textarea {
}
.scroll-textarea > .scroll-content {
overflow: hidden !important;
}
.scroll-textarea > .scroll-content > textarea {
border: none !important;
box-sizing: border-box;
height: 100% !important;
margin: 0;
max-height: none !important;
max-width: none !important;
overflow: scroll !important;
outline: none;
padding: 2px;
position: relative !important;
top: 0;
width: 100% !important;
}
.scroll-textarea > .scroll-content > textarea::-webkit-scrollbar {
height: 0;
width: 0;
}
/*************** SIMPLE INNER SCROLLBAR ***************/
.scrollbar-inner > .scroll-element,
.scrollbar-inner > .scroll-element div
{
border: none;
margin: 0;
padding: 0;
position: absolute;
z-index: 10;
}
.scrollbar-inner > .scroll-element div {
display: block;
height: 100%;
left: 0;
top: 0;
width: 100%;
}
.scrollbar-inner > .scroll-element.scroll-x {
bottom: 2px;
height: 8px;
left: 0;
width: 100%;
}
.scrollbar-inner > .scroll-element.scroll-y {
height: 100%;
right: 2px;
top: 0;
width: 8px;
}
.scrollbar-inner > .scroll-element .scroll-element_outer {
overflow: hidden;
}
.scrollbar-inner > .scroll-element .scroll-element_outer,
.scrollbar-inner > .scroll-element .scroll-element_track,
.scrollbar-inner > .scroll-element .scroll-bar {
-webkit-border-radius: 8px;
-moz-border-radius: 8px;
border-radius: 8px;
}
.scrollbar-inner > .scroll-element .scroll-element_track,
.scrollbar-inner > .scroll-element .scroll-bar {
-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=30)";
filter: alpha(opacity=30);
opacity: 0.3;
}
/* update scrollbar offset if both scrolls are visible */
.scrollbar-inner > .scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_track { left: -12px; }
.scrollbar-inner > .scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_track { top: -12px; }
.scrollbar-inner > .scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_size { left: -12px; }
.scrollbar-inner > .scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_size { top: -12px; }

View file

@ -0,0 +1,15 @@
table {
border: 1px solid lighten($core-border-color,5%);
table-layout: auto;
}
th {
@extend strong;
background: lighten($core-border-color,10%);
padding: 0.5rem;
}
td {
padding: 0.5rem;
border: 1px solid lighten($core-border-color,5%);
}

View file

@ -0,0 +1,157 @@
$multiline-max-width: 250px;
$tooltip-background-color: rgba(0, 0, 0, 0.8);
$tooltip-text-color: #fff;
.tooltipped {
position: relative;
}
// This is the tooltip bubble
.tooltipped:after {
position: absolute;
z-index: 1000000;
display: none;
padding: 5px 8px;
font: normal normal 11px/1.5 $font-family-default;
color: $tooltip-text-color;
text-align: center;
text-decoration: none;
text-shadow: none;
text-transform: none;
letter-spacing: normal;
word-wrap: break-word;
white-space: pre;
pointer-events: none;
content: attr(aria-label);
background: $tooltip-background-color;
border-radius: 3px;
-webkit-font-smoothing: subpixel-antialiased;
}
// This is the tooltip arrow
.tooltipped:before {
position: absolute;
z-index: 1000001;
display: none;
width: 0;
height: 0;
color: $tooltip-background-color;
pointer-events: none;
content: "";
border: 5px solid transparent;
}
// This will indicate when we'll activate the tooltip
.tooltipped:hover,
.tooltipped:active,
.tooltipped:focus {
&:before,
&:after {
display: inline-block;
text-decoration: none;
}
}
// Tooltipped south
.tooltipped-s,
.tooltipped-se,
.tooltipped-sw {
&:after {
top: 100%;
right: 50%;
margin-top: 5px;
}
&:before {
top: auto;
right: 50%;
bottom: -5px;
margin-right: -5px;
border-bottom-color: $tooltip-background-color;
}
}
.tooltipped-se {
&:after {
right: auto;
left: 50%;
margin-left: -15px;
}
}
.tooltipped-sw:after {
margin-right: -15px;
}
// Tooltips above the object
.tooltipped-n,
.tooltipped-ne,
.tooltipped-nw {
&:after {
right: 50%;
bottom: 100%;
margin-bottom: 5px;
}
&:before {
top: -5px;
right: 50%;
bottom: auto;
margin-right: -5px;
border-top-color: $tooltip-background-color;
}
}
.tooltipped-ne {
&:after {
right: auto;
left: 50%;
margin-left: -15px;
}
}
.tooltipped-nw:after {
margin-right: -15px;
}
// Move the tooltip body to the center of the object.
.tooltipped-s:after,
.tooltipped-n:after {
transform: translateX(50%);
}
// Tooltipped to the left
.tooltipped-w {
&:after {
right: 100%;
bottom: 50%;
margin-right: 5px;
transform: translateY(50%);
}
&:before {
top: 50%;
bottom: 50%;
left: -5px;
margin-top: -5px;
border-left-color: $tooltip-background-color;
}
}
// tooltipped to the right
.tooltipped-e {
&:after {
bottom: 50%;
left: 100%;
margin-left: 5px;
transform: translateY(50%);
}
&:before {
top: 50%;
right: -5px;
bottom: 50%;
margin-top: -5px;
border-right-color: $tooltip-background-color;
}
}

View file

@ -0,0 +1,181 @@
// Body Base
body {
font-family: $font-family-default;
letter-spacing: -0.03rem;
font-weight: 400;
}
// Headings
h1, h2, h3, h4, h5, h6 {
font-family: $font-family-header;
font-weight: 400;
text-rendering: optimizeLegibility;
line-height: 150%;
letter-spacing: -0px;
}
h1 {
text-align: center;
letter-spacing: -3px;
}
h2 {
letter-spacing: -2px;
}
h3 {
letter-spacing: -1px;
}
// Blockquote
blockquote {
border-left: 10px solid $rule-color;
p {
font-size: 1.1rem;
color: #999;
}
cite {
display: block;
text-align: right;
color: #666;
font-size: 1.2rem;
}
}
// NOTES!!!!
blockquote {
position: relative;
}
blockquote blockquote {
position: static;
}
blockquote > blockquote > blockquote {
margin: 0;
p {
padding: 15px;
display: block;
font-size: 1rem;
margin-top: 0rem;
margin-bottom: 0rem;
color: #666;
&:first-child {
&:before {
position: absolute;
top: 2px;
color: $white;
font-family: FontAwesome;
content: '';
left: 10px;
}
&:after {
position: absolute;
top: 2px;
color: $white;
left: 2rem;
font-weight: bold;
content: 'Info';
}
}
}
> p {
// Yellow
margin-left: -71px;
border-top: 30px solid #F0B37E;
background: #FFF2DB;
}
> blockquote > p {
// Red
margin-left: -94px;
border-top: 30px solid rgba(#D9534F, 0.8);
background: #FAE2E2;
&:first-child:after {
content: 'Warning';
}
}
> blockquote > blockquote > p {
// Blue
margin-left: -118px;
border-top: 30px solid #6AB0DE;
background: #E7F2FA;
&:first-child:after {
content: 'Note';
}
}
> blockquote > blockquote > blockquote > p {
// Green
margin-left: -142px;
border-top: 30px solid rgba(#5CB85C, 0.8);
background: #E6F9E6;
&:first-child:after {
content: 'Tip';
}
}
}
// Inline and Code
code,
kbd,
pre,
samp {
font-family: $font-family-mono;
}
code {
background: $code-bg;
color: darken($code-text,10%);
padding: .2rem .4rem;
border-radius: 3px;
}
pre {
padding: 1rem;
margin: 2rem 0;
background: $pre-bg;
border: 1px solid $core-border-color;
border-radius: 2px;
line-height: 1.15;
font-size: 1rem;
code {
color: $pre-text;
background: inherit;
font-size: 1rem;
}
}
// Extras
hr {
border-bottom: 4px solid $rule-color;
}
// Page Title
.page-title {
margin-top: -25px;
padding: 25px;
float: left;
clear: both;
background: $core-accent;
color: $white;
}
// Anchor links
#body {
a.anchor-link { color: #ccc; }
a.anchor-link:hover { color: $core-accent; }
}
// Scrollbar
.scrollbar-inner > .scroll-element .scroll-element_track { background-color: rgba($white, 0.3); }
.scrollbar-inner > .scroll-element .scroll-bar { background-color: lighten(#A1C4E5, 5%); }
.scrollbar-inner > .scroll-element:hover .scroll-bar { background-color: #ccc; }
.scrollbar-inner > .scroll-element.scroll-draggable .scroll-bar { background-color: #ccc; }

View file

@ -0,0 +1,2 @@
// Buttons
@import "buttons";

View file

@ -0,0 +1,21 @@
%button {
display: inline-block;
padding: 7px 12px;
&:active {
margin: 2px 0 -2px 0;
}
}
@mixin button-color($color) {
background: $color;
color: $white;
box-shadow: 0 3px 0 darken($color, 6%);
&:hover {
background: darken($color, 6%);
box-shadow: 0 3px 0 darken($color, 12%);
color: $white;
}
&:active {
box-shadow: 0 1px 0 darken($color, 12%);
}
}

View file

@ -0,0 +1,8 @@
//************************************************************************//
// These mixins/functions are deprecated
// They will be removed in the next MAJOR version release
//************************************************************************//
@mixin inline-block {
display: inline-block;
@warn "inline-block mixin is deprecated and will be removed in the next major version release";
}

View file

@ -0,0 +1,77 @@
// Settings
@import "settings/prefixer";
@import "settings/px-to-em";
// Custom Helpers
@import "helpers/convert-units";
@import "helpers/gradient-positions-parser";
@import "helpers/is-num";
@import "helpers/linear-angle-parser";
@import "helpers/linear-gradient-parser";
@import "helpers/linear-positions-parser";
@import "helpers/linear-side-corner-parser";
@import "helpers/radial-arg-parser";
@import "helpers/radial-positions-parser";
@import "helpers/radial-gradient-parser";
@import "helpers/render-gradients";
@import "helpers/shape-size-stripper";
@import "helpers/str-to-num";
// Custom Functions
@import "functions/assign";
@import "functions/color-lightness";
@import "functions/flex-grid";
@import "functions/golden-ratio";
@import "functions/grid-width";
@import "functions/modular-scale";
@import "functions/px-to-em";
@import "functions/px-to-rem";
@import "functions/strip-units";
@import "functions/tint-shade";
@import "functions/transition-property-name";
@import "functions/unpack";
// CSS3 Mixins
@import "css3/animation";
@import "css3/appearance";
@import "css3/backface-visibility";
@import "css3/background";
@import "css3/background-image";
@import "css3/border-image";
@import "css3/border-radius";
@import "css3/box-sizing";
@import "css3/calc";
@import "css3/columns";
@import "css3/filter";
@import "css3/flex-box";
@import "css3/font-face";
@import "css3/hyphens";
@import "css3/hidpi-media-query";
@import "css3/image-rendering";
@import "css3/keyframes";
@import "css3/linear-gradient";
@import "css3/perspective";
@import "css3/radial-gradient";
@import "css3/transform";
@import "css3/transition";
@import "css3/user-select";
@import "css3/placeholder";
// Addons & other mixins
@import "addons/button";
@import "addons/clearfix";
@import "addons/directional-values";
@import "addons/ellipsis";
@import "addons/font-family";
@import "addons/hide-text";
@import "addons/html5-input-types";
@import "addons/position";
@import "addons/prefixer";
@import "addons/retina-image";
@import "addons/size";
@import "addons/timing-functions";
@import "addons/triangle";
@import "addons/word-wrap";
// Soon to be deprecated Mixins
@import "bourbon-deprecated-upcoming";

View file

@ -0,0 +1,374 @@
@mixin button ($style: simple, $base-color: #4294f0, $text-size: inherit, $padding: 7px 18px) {
@if type-of($style) == string and type-of($base-color) == color {
@include buttonstyle($style, $base-color, $text-size, $padding);
}
@if type-of($style) == string and type-of($base-color) == number {
$padding: $text-size;
$text-size: $base-color;
$base-color: #4294f0;
@if $padding == inherit {
$padding: 7px 18px;
}
@include buttonstyle($style, $base-color, $text-size, $padding);
}
@if type-of($style) == color and type-of($base-color) == color {
$base-color: $style;
$style: simple;
@include buttonstyle($style, $base-color, $text-size, $padding);
}
@if type-of($style) == color and type-of($base-color) == number {
$padding: $text-size;
$text-size: $base-color;
$base-color: $style;
$style: simple;
@if $padding == inherit {
$padding: 7px 18px;
}
@include buttonstyle($style, $base-color, $text-size, $padding);
}
@if type-of($style) == number {
$padding: $base-color;
$text-size: $style;
$base-color: #4294f0;
$style: simple;
@if $padding == #4294f0 {
$padding: 7px 18px;
}
@include buttonstyle($style, $base-color, $text-size, $padding);
}
&:disabled {
opacity: 0.5;
cursor: not-allowed;
}
}
// Selector Style Button
//************************************************************************//
@mixin buttonstyle($type, $b-color, $t-size, $pad) {
// Grayscale button
@if $type == simple and $b-color == grayscale($b-color) {
@include simple($b-color, true, $t-size, $pad);
}
@if $type == shiny and $b-color == grayscale($b-color) {
@include shiny($b-color, true, $t-size, $pad);
}
@if $type == pill and $b-color == grayscale($b-color) {
@include pill($b-color, true, $t-size, $pad);
}
@if $type == flat and $b-color == grayscale($b-color) {
@include flat($b-color, true, $t-size, $pad);
}
// Colored button
@if $type == simple {
@include simple($b-color, false, $t-size, $pad);
}
@else if $type == shiny {
@include shiny($b-color, false, $t-size, $pad);
}
@else if $type == pill {
@include pill($b-color, false, $t-size, $pad);
}
@else if $type == flat {
@include flat($b-color, false, $t-size, $pad);
}
}
// Simple Button
//************************************************************************//
@mixin simple($base-color, $grayscale: false, $textsize: inherit, $padding: 7px 18px) {
$color: hsl(0, 0, 100%);
$border: adjust-color($base-color, $saturation: 9%, $lightness: -14%);
$inset-shadow: adjust-color($base-color, $saturation: -8%, $lightness: 15%);
$stop-gradient: adjust-color($base-color, $saturation: 9%, $lightness: -11%);
$text-shadow: adjust-color($base-color, $saturation: 15%, $lightness: -18%);
@if is-light($base-color) {
$color: hsl(0, 0, 20%);
$text-shadow: adjust-color($base-color, $saturation: 10%, $lightness: 4%);
}
@if $grayscale == true {
$border: grayscale($border);
$inset-shadow: grayscale($inset-shadow);
$stop-gradient: grayscale($stop-gradient);
$text-shadow: grayscale($text-shadow);
}
border: 1px solid $border;
border-radius: 3px;
box-shadow: inset 0 1px 0 0 $inset-shadow;
color: $color;
display: inline-block;
font-size: $textsize;
font-weight: bold;
@include linear-gradient ($base-color, $stop-gradient);
padding: $padding;
text-decoration: none;
text-shadow: 0 1px 0 $text-shadow;
background-clip: padding-box;
&:hover:not(:disabled) {
$base-color-hover: adjust-color($base-color, $saturation: -4%, $lightness: -5%);
$inset-shadow-hover: adjust-color($base-color, $saturation: -7%, $lightness: 5%);
$stop-gradient-hover: adjust-color($base-color, $saturation: 8%, $lightness: -14%);
@if $grayscale == true {
$base-color-hover: grayscale($base-color-hover);
$inset-shadow-hover: grayscale($inset-shadow-hover);
$stop-gradient-hover: grayscale($stop-gradient-hover);
}
box-shadow: inset 0 1px 0 0 $inset-shadow-hover;
cursor: pointer;
@include linear-gradient ($base-color-hover, $stop-gradient-hover);
}
&:active:not(:disabled),
&:focus:not(:disabled) {
$border-active: adjust-color($base-color, $saturation: 9%, $lightness: -14%);
$inset-shadow-active: adjust-color($base-color, $saturation: 7%, $lightness: -17%);
@if $grayscale == true {
$border-active: grayscale($border-active);
$inset-shadow-active: grayscale($inset-shadow-active);
}
border: 1px solid $border-active;
box-shadow: inset 0 0 8px 4px $inset-shadow-active, inset 0 0 8px 4px $inset-shadow-active;
}
}
// Shiny Button
//************************************************************************//
@mixin shiny($base-color, $grayscale: false, $textsize: inherit, $padding: 7px 18px) {
$color: hsl(0, 0, 100%);
$border: adjust-color($base-color, $red: -117, $green: -111, $blue: -81);
$border-bottom: adjust-color($base-color, $red: -126, $green: -127, $blue: -122);
$fourth-stop: adjust-color($base-color, $red: -79, $green: -70, $blue: -46);
$inset-shadow: adjust-color($base-color, $red: 37, $green: 29, $blue: 12);
$second-stop: adjust-color($base-color, $red: -56, $green: -50, $blue: -33);
$text-shadow: adjust-color($base-color, $red: -140, $green: -141, $blue: -114);
$third-stop: adjust-color($base-color, $red: -86, $green: -75, $blue: -48);
@if is-light($base-color) {
$color: hsl(0, 0, 20%);
$text-shadow: adjust-color($base-color, $saturation: 10%, $lightness: 4%);
}
@if $grayscale == true {
$border: grayscale($border);
$border-bottom: grayscale($border-bottom);
$fourth-stop: grayscale($fourth-stop);
$inset-shadow: grayscale($inset-shadow);
$second-stop: grayscale($second-stop);
$text-shadow: grayscale($text-shadow);
$third-stop: grayscale($third-stop);
}
border: 1px solid $border;
border-bottom: 1px solid $border-bottom;
border-radius: 5px;
box-shadow: inset 0 1px 0 0 $inset-shadow;
color: $color;
display: inline-block;
font-size: $textsize;
font-weight: bold;
@include linear-gradient(top, $base-color 0%, $second-stop 50%, $third-stop 50%, $fourth-stop 100%);
padding: $padding;
text-align: center;
text-decoration: none;
text-shadow: 0 -1px 1px $text-shadow;
&:hover:not(:disabled) {
$first-stop-hover: adjust-color($base-color, $red: -13, $green: -15, $blue: -18);
$second-stop-hover: adjust-color($base-color, $red: -66, $green: -62, $blue: -51);
$third-stop-hover: adjust-color($base-color, $red: -93, $green: -85, $blue: -66);
$fourth-stop-hover: adjust-color($base-color, $red: -86, $green: -80, $blue: -63);
@if $grayscale == true {
$first-stop-hover: grayscale($first-stop-hover);
$second-stop-hover: grayscale($second-stop-hover);
$third-stop-hover: grayscale($third-stop-hover);
$fourth-stop-hover: grayscale($fourth-stop-hover);
}
cursor: pointer;
@include linear-gradient(top, $first-stop-hover 0%,
$second-stop-hover 50%,
$third-stop-hover 50%,
$fourth-stop-hover 100%);
}
&:active:not(:disabled),
&:focus:not(:disabled) {
$inset-shadow-active: adjust-color($base-color, $red: -111, $green: -116, $blue: -122);
@if $grayscale == true {
$inset-shadow-active: grayscale($inset-shadow-active);
}
box-shadow: inset 0 0 20px 0 $inset-shadow-active;
}
}
// Pill Button
//************************************************************************//
@mixin pill($base-color, $grayscale: false, $textsize: inherit, $padding: 7px 18px) {
$color: hsl(0, 0, 100%);
$border-bottom: adjust-color($base-color, $hue: 8, $saturation: -11%, $lightness: -26%);
$border-sides: adjust-color($base-color, $hue: 4, $saturation: -21%, $lightness: -21%);
$border-top: adjust-color($base-color, $hue: -1, $saturation: -30%, $lightness: -15%);
$inset-shadow: adjust-color($base-color, $hue: -1, $saturation: -1%, $lightness: 7%);
$stop-gradient: adjust-color($base-color, $hue: 8, $saturation: 14%, $lightness: -10%);
$text-shadow: adjust-color($base-color, $hue: 5, $saturation: -19%, $lightness: -15%);
@if is-light($base-color) {
$color: hsl(0, 0, 20%);
$text-shadow: adjust-color($base-color, $saturation: 10%, $lightness: 4%);
}
@if $grayscale == true {
$border-bottom: grayscale($border-bottom);
$border-sides: grayscale($border-sides);
$border-top: grayscale($border-top);
$inset-shadow: grayscale($inset-shadow);
$stop-gradient: grayscale($stop-gradient);
$text-shadow: grayscale($text-shadow);
}
border: 1px solid $border-top;
border-color: $border-top $border-sides $border-bottom;
border-radius: 16px;
box-shadow: inset 0 1px 0 0 $inset-shadow;
color: $color;
display: inline-block;
font-size: $textsize;
font-weight: normal;
line-height: 1;
@include linear-gradient ($base-color, $stop-gradient);
padding: $padding;
text-align: center;
text-decoration: none;
text-shadow: 0 -1px 1px $text-shadow;
background-clip: padding-box;
&:hover:not(:disabled) {
$base-color-hover: adjust-color($base-color, $lightness: -4.5%);
$border-bottom: adjust-color($base-color, $hue: 8, $saturation: 13.5%, $lightness: -32%);
$border-sides: adjust-color($base-color, $hue: 4, $saturation: -2%, $lightness: -27%);
$border-top: adjust-color($base-color, $hue: -1, $saturation: -17%, $lightness: -21%);
$inset-shadow-hover: adjust-color($base-color, $saturation: -1%, $lightness: 3%);
$stop-gradient-hover: adjust-color($base-color, $hue: 8, $saturation: -4%, $lightness: -15.5%);
$text-shadow-hover: adjust-color($base-color, $hue: 5, $saturation: -5%, $lightness: -22%);
@if $grayscale == true {
$base-color-hover: grayscale($base-color-hover);
$border-bottom: grayscale($border-bottom);
$border-sides: grayscale($border-sides);
$border-top: grayscale($border-top);
$inset-shadow-hover: grayscale($inset-shadow-hover);
$stop-gradient-hover: grayscale($stop-gradient-hover);
$text-shadow-hover: grayscale($text-shadow-hover);
}
border: 1px solid $border-top;
border-color: $border-top $border-sides $border-bottom;
box-shadow: inset 0 1px 0 0 $inset-shadow-hover;
cursor: pointer;
@include linear-gradient ($base-color-hover, $stop-gradient-hover);
text-shadow: 0 -1px 1px $text-shadow-hover;
background-clip: padding-box;
}
&:active:not(:disabled),
&:focus:not(:disabled) {
$active-color: adjust-color($base-color, $hue: 4, $saturation: -12%, $lightness: -10%);
$border-active: adjust-color($base-color, $hue: 6, $saturation: -2.5%, $lightness: -30%);
$border-bottom-active: adjust-color($base-color, $hue: 11, $saturation: 6%, $lightness: -31%);
$inset-shadow-active: adjust-color($base-color, $hue: 9, $saturation: 2%, $lightness: -21.5%);
$text-shadow-active: adjust-color($base-color, $hue: 5, $saturation: -12%, $lightness: -21.5%);
@if $grayscale == true {
$active-color: grayscale($active-color);
$border-active: grayscale($border-active);
$border-bottom-active: grayscale($border-bottom-active);
$inset-shadow-active: grayscale($inset-shadow-active);
$text-shadow-active: grayscale($text-shadow-active);
}
background: $active-color;
border: 1px solid $border-active;
border-bottom: 1px solid $border-bottom-active;
box-shadow: inset 0 0 6px 3px $inset-shadow-active;
text-shadow: 0 -1px 1px $text-shadow-active;
}
}
// Flat Button
//************************************************************************//
@mixin flat($base-color, $grayscale: false, $textsize: inherit, $padding: 7px 18px) {
$color: hsl(0, 0, 100%);
@if is-light($base-color) {
$color: hsl(0, 0, 20%);
}
background-color: $base-color;
border-radius: 3px;
border: none;
color: $color;
display: inline-block;
font-size: inherit;
font-weight: bold;
padding: 7px 18px;
text-decoration: none;
background-clip: padding-box;
&:hover:not(:disabled){
$base-color-hover: adjust-color($base-color, $saturation: 4%, $lightness: 5%);
@if $grayscale == true {
$base-color-hover: grayscale($base-color-hover);
}
background-color: $base-color-hover;
cursor: pointer;
}
&:active:not(:disabled),
&:focus:not(:disabled) {
$base-color-active: adjust-color($base-color, $saturation: -4%, $lightness: -5%);
@if $grayscale == true {
$base-color-active: grayscale($base-color-active);
}
background-color: $base-color-active;
cursor: pointer;
}
}

View file

@ -0,0 +1,23 @@
// Modern micro clearfix provides an easy way to contain floats without adding additional markup.
//
// Example usage:
//
// // Contain all floats within .wrapper
// .wrapper {
// @include clearfix;
// .content,
// .sidebar {
// float : left;
// }
// }
@mixin clearfix {
&:after {
content:"";
display:table;
clear:both;
}
}
// Acknowledgements
// Beat *that* clearfix: [Thierry Koblentz](http://www.css-101.org/articles/clearfix/latest-new-clearfix-so-far.php)

View file

@ -0,0 +1,111 @@
// directional-property mixins are shorthands
// for writing properties like the following
//
// @include margin(null 0 10px);
// ------
// margin-right: 0;
// margin-bottom: 10px;
// margin-left: 0;
//
// - or -
//
// @include border-style(dotted null);
// ------
// border-top-style: dotted;
// border-bottom-style: dotted;
//
// ------
//
// Note: You can also use false instead of null
@function collapse-directionals($vals) {
$output: null;
$A: nth( $vals, 1 );
$B: if( length($vals) < 2, $A, nth($vals, 2));
$C: if( length($vals) < 3, $A, nth($vals, 3));
$D: if( length($vals) < 2, $A, nth($vals, if( length($vals) < 4, 2, 4) ));
@if $A == 0 { $A: 0 }
@if $B == 0 { $B: 0 }
@if $C == 0 { $C: 0 }
@if $D == 0 { $D: 0 }
@if $A == $B and $A == $C and $A == $D { $output: $A }
@else if $A == $C and $B == $D { $output: $A $B }
@else if $B == $D { $output: $A $B $C }
@else { $output: $A $B $C $D }
@return $output;
}
@function contains-falsy($list) {
@each $item in $list {
@if not $item {
@return true;
}
}
@return false;
}
@mixin directional-property($pre, $suf, $vals) {
// Property Names
$top: $pre + "-top" + if($suf, "-#{$suf}", "");
$bottom: $pre + "-bottom" + if($suf, "-#{$suf}", "");
$left: $pre + "-left" + if($suf, "-#{$suf}", "");
$right: $pre + "-right" + if($suf, "-#{$suf}", "");
$all: $pre + if($suf, "-#{$suf}", "");
$vals: collapse-directionals($vals);
@if contains-falsy($vals) {
@if nth($vals, 1) { #{$top}: nth($vals, 1); }
@if length($vals) == 1 {
@if nth($vals, 1) { #{$right}: nth($vals, 1); }
} @else {
@if nth($vals, 2) { #{$right}: nth($vals, 2); }
}
// prop: top/bottom right/left
@if length($vals) == 2 {
@if nth($vals, 1) { #{$bottom}: nth($vals, 1); }
@if nth($vals, 2) { #{$left}: nth($vals, 2); }
// prop: top right/left bottom
} @else if length($vals) == 3 {
@if nth($vals, 3) { #{$bottom}: nth($vals, 3); }
@if nth($vals, 2) { #{$left}: nth($vals, 2); }
// prop: top right bottom left
} @else if length($vals) == 4 {
@if nth($vals, 3) { #{$bottom}: nth($vals, 3); }
@if nth($vals, 4) { #{$left}: nth($vals, 4); }
}
// prop: top/right/bottom/left
} @else {
#{$all}: $vals;
}
}
@mixin margin($vals...) {
@include directional-property(margin, false, $vals...);
}
@mixin padding($vals...) {
@include directional-property(padding, false, $vals...);
}
@mixin border-style($vals...) {
@include directional-property(border, style, $vals...);
}
@mixin border-color($vals...) {
@include directional-property(border, color, $vals...);
}
@mixin border-width($vals...) {
@include directional-property(border, width, $vals...);
}

View file

@ -0,0 +1,7 @@
@mixin ellipsis($width: 100%) {
display: inline-block;
max-width: $width;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}

View file

@ -0,0 +1,5 @@
$georgia: Georgia, Cambria, "Times New Roman", Times, serif;
$helvetica: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
$lucida-grande: "Lucida Grande", Tahoma, Verdana, Arial, sans-serif;
$monospace: "Bitstream Vera Sans Mono", Consolas, Courier, monospace;
$verdana: Verdana, Geneva, sans-serif;

View file

@ -0,0 +1,10 @@
@mixin hide-text {
overflow: hidden;
&:before {
content: "";
display: block;
width: 0;
height: 100%;
}
}

View file

@ -0,0 +1,86 @@
//************************************************************************//
// Generate a variable ($all-text-inputs) with a list of all html5
// input types that have a text-based input, excluding textarea.
// http://diveintohtml5.org/forms.html
//************************************************************************//
$inputs-list: 'input[type="email"]',
'input[type="number"]',
'input[type="password"]',
'input[type="search"]',
'input[type="tel"]',
'input[type="text"]',
'input[type="url"]',
// Webkit & Gecko may change the display of these in the future
'input[type="color"]',
'input[type="date"]',
'input[type="datetime"]',
'input[type="datetime-local"]',
'input[type="month"]',
'input[type="time"]',
'input[type="week"]';
// Bare inputs
//************************************************************************//
$all-text-inputs: assign-inputs($inputs-list);
// Hover Pseudo-class
//************************************************************************//
$all-text-inputs-hover: assign-inputs($inputs-list, hover);
// Focus Pseudo-class
//************************************************************************//
$all-text-inputs-focus: assign-inputs($inputs-list, focus);
// You must use interpolation on the variable:
// #{$all-text-inputs}
// #{$all-text-inputs-hover}
// #{$all-text-inputs-focus}
// Example
//************************************************************************//
// #{$all-text-inputs}, textarea {
// border: 1px solid red;
// }
//************************************************************************//
// Generate a variable ($all-button-inputs) with a list of all html5
// input types that have a button-based input, excluding button.
//************************************************************************//
$inputs-button-list: 'input[type="button"]',
'input[type="reset"]',
'input[type="submit"]';
// Bare inputs
//************************************************************************//
$all-button-inputs: assign-inputs($inputs-button-list);
// Hover Pseudo-class
//************************************************************************//
$all-button-inputs-hover: assign-inputs($inputs-button-list, hover);
// Focus Pseudo-class
//************************************************************************//
$all-button-inputs-focus: assign-inputs($inputs-button-list, focus);
// Active Pseudo-class
//************************************************************************//
$all-button-inputs-active: assign-inputs($inputs-button-list, active);
// You must use interpolation on the variable:
// #{$all-button-inputs}
// #{$all-button-inputs-hover}
// #{$all-button-inputs-focus}
// #{$all-button-inputs-active}
// Example
//************************************************************************//
// #{$all-button-inputs}, button {
// border: 1px solid red;
// }

View file

@ -0,0 +1,32 @@
@mixin position ($position: relative, $coordinates: null null null null) {
@if type-of($position) == list {
$coordinates: $position;
$position: relative;
}
$coordinates: unpack($coordinates);
$top: nth($coordinates, 1);
$right: nth($coordinates, 2);
$bottom: nth($coordinates, 3);
$left: nth($coordinates, 4);
position: $position;
@if ($top and $top == auto) or (type-of($top) == number) {
top: $top;
}
@if ($right and $right == auto) or (type-of($right) == number) {
right: $right;
}
@if ($bottom and $bottom == auto) or (type-of($bottom) == number) {
bottom: $bottom;
}
@if ($left and $left == auto) or (type-of($left) == number) {
left: $left;
}
}

View file

@ -0,0 +1,45 @@
//************************************************************************//
// Example: @include prefixer(border-radius, $radii, webkit ms spec);
//************************************************************************//
// Variables located in /settings/_prefixer.scss
@mixin prefixer ($property, $value, $prefixes) {
@each $prefix in $prefixes {
@if $prefix == webkit {
@if $prefix-for-webkit {
-webkit-#{$property}: $value;
}
}
@else if $prefix == moz {
@if $prefix-for-mozilla {
-moz-#{$property}: $value;
}
}
@else if $prefix == ms {
@if $prefix-for-microsoft {
-ms-#{$property}: $value;
}
}
@else if $prefix == o {
@if $prefix-for-opera {
-o-#{$property}: $value;
}
}
@else if $prefix == spec {
@if $prefix-for-spec {
#{$property}: $value;
}
}
@else {
@warn "Unrecognized prefix: #{$prefix}";
}
}
}
@mixin disable-prefix-for-all() {
$prefix-for-webkit: false !global;
$prefix-for-mozilla: false !global;
$prefix-for-microsoft: false !global;
$prefix-for-opera: false !global;
$prefix-for-spec: false !global;
}

View file

@ -0,0 +1,33 @@
@mixin rem($property, $size, $base: $em-base) {
@if not unitless($base) {
$base: strip-units($base);
}
$unitless_values: ();
@each $num in $size {
@if not unitless($num) {
@if unit($num) == "em" {
$num: $num * $base;
}
$num: strip-units($num);
}
$unitless_values: append($unitless_values, $num);
}
$size: $unitless_values;
$pixel_values: ();
$rem_values: ();
@each $value in $pxval {
$pixel_value: $value * 1px;
$pixel_values: append($pixel_values, $pixel_value);
$rem_value: ($value / $base) * 1rem;
$rem_values: append($rem_values, $rem_value);
}
#{$property}: $pixel_values;
#{$property}: $rem_values;
}

View file

@ -0,0 +1,31 @@
@mixin retina-image($filename, $background-size, $extension: png, $retina-filename: null, $retina-suffix: _2x, $asset-pipeline: false) {
@if $asset-pipeline {
background-image: image-url("#{$filename}.#{$extension}");
}
@else {
background-image: url("#{$filename}.#{$extension}");
}
@include hidpi {
@if $asset-pipeline {
@if $retina-filename {
background-image: image-url("#{$retina-filename}.#{$extension}");
}
@else {
background-image: image-url("#{$filename}#{$retina-suffix}.#{$extension}");
}
}
@else {
@if $retina-filename {
background-image: url("#{$retina-filename}.#{$extension}");
}
@else {
background-image: url("#{$filename}#{$retina-suffix}.#{$extension}");
}
}
background-size: $background-size;
}
}

View file

@ -0,0 +1,16 @@
@mixin size($size) {
$height: nth($size, 1);
$width: $height;
@if length($size) > 1 {
$height: nth($size, 2);
}
@if $height == auto or (type-of($height) == number and not unitless($height)) {
height: $height;
}
@if $width == auto or (type-of($height) == number and not unitless($width)) {
width: $width;
}
}

View file

@ -0,0 +1,32 @@
// CSS cubic-bezier timing functions. Timing functions courtesy of jquery.easie (github.com/jaukia/easie)
// Timing functions are the same as demo'ed here: http://jqueryui.com/demos/effect/easing.html
// EASE IN
$ease-in-quad: cubic-bezier(0.550, 0.085, 0.680, 0.530);
$ease-in-cubic: cubic-bezier(0.550, 0.055, 0.675, 0.190);
$ease-in-quart: cubic-bezier(0.895, 0.030, 0.685, 0.220);
$ease-in-quint: cubic-bezier(0.755, 0.050, 0.855, 0.060);
$ease-in-sine: cubic-bezier(0.470, 0.000, 0.745, 0.715);
$ease-in-expo: cubic-bezier(0.950, 0.050, 0.795, 0.035);
$ease-in-circ: cubic-bezier(0.600, 0.040, 0.980, 0.335);
$ease-in-back: cubic-bezier(0.600, -0.280, 0.735, 0.045);
// EASE OUT
$ease-out-quad: cubic-bezier(0.250, 0.460, 0.450, 0.940);
$ease-out-cubic: cubic-bezier(0.215, 0.610, 0.355, 1.000);
$ease-out-quart: cubic-bezier(0.165, 0.840, 0.440, 1.000);
$ease-out-quint: cubic-bezier(0.230, 1.000, 0.320, 1.000);
$ease-out-sine: cubic-bezier(0.390, 0.575, 0.565, 1.000);
$ease-out-expo: cubic-bezier(0.190, 1.000, 0.220, 1.000);
$ease-out-circ: cubic-bezier(0.075, 0.820, 0.165, 1.000);
$ease-out-back: cubic-bezier(0.175, 0.885, 0.320, 1.275);
// EASE IN OUT
$ease-in-out-quad: cubic-bezier(0.455, 0.030, 0.515, 0.955);
$ease-in-out-cubic: cubic-bezier(0.645, 0.045, 0.355, 1.000);
$ease-in-out-quart: cubic-bezier(0.770, 0.000, 0.175, 1.000);
$ease-in-out-quint: cubic-bezier(0.860, 0.000, 0.070, 1.000);
$ease-in-out-sine: cubic-bezier(0.445, 0.050, 0.550, 0.950);
$ease-in-out-expo: cubic-bezier(1.000, 0.000, 0.000, 1.000);
$ease-in-out-circ: cubic-bezier(0.785, 0.135, 0.150, 0.860);
$ease-in-out-back: cubic-bezier(0.680, -0.550, 0.265, 1.550);

View file

@ -0,0 +1,83 @@
@mixin triangle ($size, $color, $direction) {
height: 0;
width: 0;
$width: nth($size, 1);
$height: nth($size, length($size));
$foreground-color: nth($color, 1);
$background-color: if(length($color) == 2, nth($color, 2), transparent);
@if ($direction == up) or ($direction == down) or ($direction == right) or ($direction == left) {
$width: $width / 2;
$height: if(length($size) > 1, $height, $height/2);
@if $direction == up {
border-left: $width solid $background-color;
border-right: $width solid $background-color;
border-bottom: $height solid $foreground-color;
} @else if $direction == right {
border-top: $width solid $background-color;
border-bottom: $width solid $background-color;
border-left: $height solid $foreground-color;
} @else if $direction == down {
border-left: $width solid $background-color;
border-right: $width solid $background-color;
border-top: $height solid $foreground-color;
} @else if $direction == left {
border-top: $width solid $background-color;
border-bottom: $width solid $background-color;
border-right: $height solid $foreground-color;
}
}
@else if ($direction == up-right) or ($direction == up-left) {
border-top: $height solid $foreground-color;
@if $direction == up-right {
border-left: $width solid $background-color;
} @else if $direction == up-left {
border-right: $width solid $background-color;
}
}
@else if ($direction == down-right) or ($direction == down-left) {
border-bottom: $height solid $foreground-color;
@if $direction == down-right {
border-left: $width solid $background-color;
} @else if $direction == down-left {
border-right: $width solid $background-color;
}
}
@else if ($direction == inset-up) {
border-width: $height $width;
border-style: solid;
border-color: $background-color $background-color $foreground-color;
}
@else if ($direction == inset-down) {
border-width: $height $width;
border-style: solid;
border-color: $foreground-color $background-color $background-color;
}
@else if ($direction == inset-right) {
border-width: $width $height;
border-style: solid;
border-color: $background-color $background-color $background-color $foreground-color;
}
@else if ($direction == inset-left) {
border-width: $width $height;
border-style: solid;
border-color: $background-color $foreground-color $background-color $background-color;
}
}

View file

@ -0,0 +1,8 @@
@mixin word-wrap($wrap: break-word) {
word-wrap: $wrap;
@if $wrap == break-word {
overflow-wrap: break-word;
word-break: break-all;
}
}

View file

@ -0,0 +1,52 @@
// http://www.w3.org/TR/css3-animations/#the-animation-name-property-
// Each of these mixins support comma separated lists of values, which allows different transitions for individual properties to be described in a single style rule. Each value in the list corresponds to the value at that same position in the other properties.
// Official animation shorthand property.
@mixin animation ($animations...) {
@include prefixer(animation, $animations, webkit moz spec);
}
// Individual Animation Properties
@mixin animation-name ($names...) {
@include prefixer(animation-name, $names, webkit moz spec);
}
@mixin animation-duration ($times...) {
@include prefixer(animation-duration, $times, webkit moz spec);
}
@mixin animation-timing-function ($motions...) {
// ease | linear | ease-in | ease-out | ease-in-out
@include prefixer(animation-timing-function, $motions, webkit moz spec);
}
@mixin animation-iteration-count ($values...) {
// infinite | <number>
@include prefixer(animation-iteration-count, $values, webkit moz spec);
}
@mixin animation-direction ($directions...) {
// normal | alternate
@include prefixer(animation-direction, $directions, webkit moz spec);
}
@mixin animation-play-state ($states...) {
// running | paused
@include prefixer(animation-play-state, $states, webkit moz spec);
}
@mixin animation-delay ($times...) {
@include prefixer(animation-delay, $times, webkit moz spec);
}
@mixin animation-fill-mode ($modes...) {
// none | forwards | backwards | both
@include prefixer(animation-fill-mode, $modes, webkit moz spec);
}

View file

@ -0,0 +1,3 @@
@mixin appearance ($value) {
@include prefixer(appearance, $value, webkit moz ms o spec);
}

View file

@ -0,0 +1,6 @@
//************************************************************************//
// Backface-visibility mixin
//************************************************************************//
@mixin backface-visibility($visibility) {
@include prefixer(backface-visibility, $visibility, webkit spec);
}

View file

@ -0,0 +1,42 @@
//************************************************************************//
// Background-image property for adding multiple background images with
// gradients, or for stringing multiple gradients together.
//************************************************************************//
@mixin background-image($images...) {
$webkit-images: ();
$spec-images: ();
@each $image in $images {
$webkit-image: ();
$spec-image: ();
@if (type-of($image) == string) {
$url-str: str-slice($image, 0, 3);
$gradient-type: str-slice($image, 0, 6);
@if $url-str == "url" {
$webkit-image: $image;
$spec-image: $image;
}
@else if $gradient-type == "linear" {
$gradients: _linear-gradient-parser($image);
$webkit-image: map-get($gradients, webkit-image);
$spec-image: map-get($gradients, spec-image);
}
@else if $gradient-type == "radial" {
$gradients: _radial-gradient-parser($image);
$webkit-image: map-get($gradients, webkit-image);
$spec-image: map-get($gradients, spec-image);
}
}
$webkit-images: append($webkit-images, $webkit-image, comma);
$spec-images: append($spec-images, $spec-image, comma);
}
background-image: $webkit-images;
background-image: $spec-images;
}

View file

@ -0,0 +1,55 @@
//************************************************************************//
// Background property for adding multiple backgrounds using shorthand
// notation.
//************************************************************************//
@mixin background($backgrounds...) {
$webkit-backgrounds: ();
$spec-backgrounds: ();
@each $background in $backgrounds {
$webkit-background: ();
$spec-background: ();
$background-type: type-of($background);
@if $background-type == string or list {
$background-str: if($background-type == list, nth($background, 1), $background);
$url-str: str-slice($background-str, 0, 3);
$gradient-type: str-slice($background-str, 0, 6);
@if $url-str == "url" {
$webkit-background: $background;
$spec-background: $background;
}
@else if $gradient-type == "linear" {
$gradients: _linear-gradient-parser("#{$background}");
$webkit-background: map-get($gradients, webkit-image);
$spec-background: map-get($gradients, spec-image);
}
@else if $gradient-type == "radial" {
$gradients: _radial-gradient-parser("#{$background}");
$webkit-background: map-get($gradients, webkit-image);
$spec-background: map-get($gradients, spec-image);
}
@else {
$webkit-background: $background;
$spec-background: $background;
}
}
@else {
$webkit-background: $background;
$spec-background: $background;
}
$webkit-backgrounds: append($webkit-backgrounds, $webkit-background, comma);
$spec-backgrounds: append($spec-backgrounds, $spec-background, comma);
}
background: $webkit-backgrounds;
background: $spec-backgrounds;
}

Some files were not shown because too many files have changed in this diff Show more