├── .gitignore ├── CHANGELOG.md ├── LICENSE ├── README.md ├── antimatter.php ├── antimatter.yaml ├── assets └── readme_1.png ├── blueprints.yaml ├── blueprints ├── asset │ └── file.yaml ├── blog.yaml ├── form.yaml ├── item.yaml └── modular │ ├── features.yaml │ ├── showcase.yaml │ └── text.yaml ├── css-compiled ├── nucleus.css ├── nucleus.css.map ├── particles.css ├── particles.css.map ├── template.css └── template.css.map ├── css ├── font-awesome.min.css ├── nucleus-ie10.css ├── nucleus-ie9.css ├── prism.css ├── pure-0.5.0 │ └── grids-min.css └── slidebars.min.css ├── fonts ├── fontawesome-webfont.eot ├── fontawesome-webfont.svg ├── fontawesome-webfont.ttf ├── fontawesome-webfont.woff └── fontawesome-webfont.woff2 ├── hebe.json ├── images ├── favicon.png └── logo.png ├── js ├── antimatter.js ├── html5shiv-printshiv.min.js ├── modernizr.custom.71422.js ├── singlePageNav.min.js └── slidebars.min.js ├── languages.yaml ├── screenshot.jpg ├── scss.sh ├── scss ├── configuration │ ├── nucleus │ │ ├── _base.scss │ │ ├── _breakpoints.scss │ │ ├── _core.scss │ │ ├── _layout.scss │ │ ├── _nav.scss │ │ └── _typography.scss │ └── template │ │ ├── _base.scss │ │ ├── _bullets.scss │ │ ├── _colors.scss │ │ ├── _typography.scss │ │ └── _variables.scss ├── nucleus.scss ├── nucleus │ ├── _core.scss │ ├── _flex.scss │ ├── _forms.scss │ ├── _typography.scss │ ├── functions │ │ ├── _base.scss │ │ ├── _direction.scss │ │ └── _range.scss │ ├── mixins │ │ ├── _base.scss │ │ ├── _breakpoints.scss │ │ └── _utilities.scss │ └── particles │ │ ├── _align-text.scss │ │ └── _visibility.scss ├── particles.scss ├── template.scss ├── template │ ├── _blog.scss │ ├── _bullets.scss │ ├── _buttons.scss │ ├── _core.scss │ ├── _custom.scss │ ├── _errors.scss │ ├── _extensions.scss │ ├── _fonts.scss │ ├── _footer.scss │ ├── _forms.scss │ ├── _header.scss │ ├── _panel.scss │ ├── _simplesearch.scss │ ├── _tables.scss │ ├── _typography.scss │ ├── modular │ │ ├── _all.scss │ │ ├── _features.scss │ │ ├── _showcase.scss │ │ └── _text.scss │ └── modules │ │ ├── _base.scss │ │ └── _buttons.scss └── vendor │ ├── bourbon │ ├── _bourbon-deprecated-upcoming.scss │ ├── _bourbon.scss │ ├── addons │ │ ├── _button.scss │ │ ├── _clearfix.scss │ │ ├── _directional-values.scss │ │ ├── _ellipsis.scss │ │ ├── _font-family.scss │ │ ├── _hide-text.scss │ │ ├── _html5-input-types.scss │ │ ├── _position.scss │ │ ├── _prefixer.scss │ │ ├── _rem.scss │ │ ├── _retina-image.scss │ │ ├── _size.scss │ │ ├── _timing-functions.scss │ │ ├── _triangle.scss │ │ └── _word-wrap.scss │ ├── css3 │ │ ├── _animation.scss │ │ ├── _appearance.scss │ │ ├── _backface-visibility.scss │ │ ├── _background-image.scss │ │ ├── _background.scss │ │ ├── _border-image.scss │ │ ├── _border-radius.scss │ │ ├── _box-sizing.scss │ │ ├── _calc.scss │ │ ├── _columns.scss │ │ ├── _filter.scss │ │ ├── _flex-box.scss │ │ ├── _font-face.scss │ │ ├── _font-feature-settings.scss │ │ ├── _hidpi-media-query.scss │ │ ├── _hyphens.scss │ │ ├── _image-rendering.scss │ │ ├── _keyframes.scss │ │ ├── _linear-gradient.scss │ │ ├── _perspective.scss │ │ ├── _placeholder.scss │ │ ├── _radial-gradient.scss │ │ ├── _transform.scss │ │ ├── _transition.scss │ │ └── _user-select.scss │ ├── functions │ │ ├── _assign.scss │ │ ├── _color-lightness.scss │ │ ├── _flex-grid.scss │ │ ├── _golden-ratio.scss │ │ ├── _grid-width.scss │ │ ├── _modular-scale.scss │ │ ├── _px-to-em.scss │ │ ├── _px-to-rem.scss │ │ ├── _strip-units.scss │ │ ├── _tint-shade.scss │ │ ├── _transition-property-name.scss │ │ └── _unpack.scss │ ├── helpers │ │ ├── _convert-units.scss │ │ ├── _gradient-positions-parser.scss │ │ ├── _is-num.scss │ │ ├── _linear-angle-parser.scss │ │ ├── _linear-gradient-parser.scss │ │ ├── _linear-positions-parser.scss │ │ ├── _linear-side-corner-parser.scss │ │ ├── _radial-arg-parser.scss │ │ ├── _radial-gradient-parser.scss │ │ ├── _radial-positions-parser.scss │ │ ├── _render-gradients.scss │ │ ├── _shape-size-stripper.scss │ │ └── _str-to-num.scss │ └── settings │ │ ├── _prefixer.scss │ │ └── _px-to-em.scss │ └── color-schemer │ ├── _color-schemer.scss │ └── color-schemer │ ├── _cmyk.scss │ ├── _color-adjustments.scss │ ├── _color-schemer.scss │ ├── _colorblind.scss │ ├── _comparison.scss │ ├── _equalize.scss │ ├── _harmonize.scss │ ├── _interpolation.scss │ ├── _mix.scss │ ├── _mixins.scss │ ├── _ryb.scss │ └── _tint-shade.scss ├── templates ├── blog.html.twig ├── default.html.twig ├── error.html.twig ├── form.html.twig ├── item.html.twig ├── macros │ └── macros.html.twig ├── modular.html.twig ├── modular │ ├── features.html.twig │ ├── showcase.html.twig │ └── text.html.twig └── partials │ ├── base.html.twig │ ├── blog_item.html.twig │ ├── navigation.html.twig │ └── sidebar.html.twig └── thumbnail.jpg /.gitignore: -------------------------------------------------------------------------------- 1 | .sass-cache 2 | .DS_Store 3 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 Grav 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Antimatter 2 | 3 | ![Antimatter](assets/readme_1.png) 4 | 5 | Antimatter is the default [Grav](http://getgrav.org) theme. Simple, fast and modern. 6 | 7 | # Installation 8 | 9 | Installing the Antimatter 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. 10 | 11 | The theme by itself is useful, but you may have an easier time getting up and running by installing a skeleton. The Antimatter theme can be found in both the [One-page](https://github.com/getgrav/grav-skeleton-onepage-site) and [Blog Site](https://github.com/getgrav/grav-skeleton-blog-site) which are self-contained repositories for a complete sites which include: sample content, configuration, theme, and plugins. 12 | 13 | ## GPM Installation (Preferred) 14 | 15 | 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: 16 | 17 | bin/gpm install antimatter 18 | 19 | This will install the Antimatter theme into your `/user/themes` directory within Grav. Its files can be found under `/your/site/grav/user/themes/antimatter`. 20 | 21 | ## Manual Installation 22 | 23 | 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 `antimatter`. You can find these files either on [GitHub](https://github.com/getgrav/grav-theme-antimatter) or via [GetGrav.org](http://getgrav.org/downloads/themes). 24 | 25 | You should now have all the theme files under 26 | 27 | /your/site/grav/user/themes/antimatter 28 | 29 | >> 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. 30 | 31 | # Updating 32 | 33 | As development for the Antimatter 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 Antimatter is easy, and can be done through Grav's GPM system, as well as manually. 34 | 35 | ## GPM Update (Preferred) 36 | 37 | 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: 38 | 39 | bin/gpm update antimatter 40 | 41 | This command will check your Grav install to see if your Antimatter 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. 42 | 43 | ## Manual Update 44 | 45 | Manually updating Antimatter is pretty simple. Here is what you will need to do to get this done: 46 | 47 | * Delete the `your/site/user/themes/antimatter` directory. 48 | * Download the new version of the Antimatter theme from either [GitHub](https://github.com/getgrav/grav-plugin-antimatter) or [GetGrav.org](http://getgrav.org/downloads/themes#extras). 49 | * Unzip the zip file in `your/site/user/themes` and rename the resulting folder to `antimatter`. 50 | * 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`. 51 | 52 | > 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. 53 | 54 | ## Features 55 | 56 | * Lightweight and minimal for optimal performance 57 | * Fully responsive with off-page mobile navigation 58 | * SCSS based CSS source files for easy customization 59 | * Built-in support for on-page navigation 60 | * Multiple page template types 61 | * Fontawesome icon support 62 | 63 | ### Supported Page Templates 64 | 65 | * Default view template 66 | * Blog view template 67 | * Error view template 68 | * Blog item view template 69 | * Modular view templates: 70 | * Features Modular view template 71 | * Showcase Modular view template 72 | * Text Modular view template 73 | * SnipCart view template 74 | 75 | ### Menu Features 76 | 77 | ##### Dropdown Menu 78 | 79 | You can enable **dropdown menu** support by enabling it in the `antimatter.yaml` configuration file. As per usual, copy this file to your `user/config/themes/` folder (create if required) and edit there. 80 | 81 | ``` 82 | dropdown: 83 | enabled: true 84 | ``` 85 | 86 | This will ensure that sub-pages show up as sub-menus in the navigation. 87 | 88 | ##### Menu Text & Icons 89 | 90 | Each page shows up in the menu using the title by default, however you can set what displays in the menu directly by setting an explicit `menu:` option in the page header: 91 | 92 | ``` 93 | menu: My Menu 94 | ``` 95 | 96 | You can also provide an icon to show up in front of the menu item by providing an `icon:` option. You need to use name of the FontAwesome icon without the `fa-` prefix. Check out the full [list of current FontAwesome 4.2 icons](http://fortawesome.github.io/Font-Awesome/icons/): 97 | 98 | ``` 99 | icon: bar-chart-o 100 | ``` 101 | 102 | #### Custom Menu Items 103 | 104 | By default, Grav generates the menu from the page structure. However, there are times when you may want to add custom menu items to the end of the menu. This is now supported in Antimatter by creating a menu list in your `site.yaml` file. An example of this is as follows: 105 | 106 | ``` 107 | menu: 108 | - text: Source 109 | url: https://github.com/getgrav/grav 110 | - icon: twitter 111 | url: http://twitter.com/getgrav 112 | ``` 113 | 114 | The `url:` option is required, but you can provide **either** or **both** `text:` and/or `icon:` 115 | 116 | ### Blog Features 117 | 118 | ##### Daring Fireball Link Pages 119 | 120 | Antimatter supports the ability for a page to have a `link:` header option. This will then in turn create a **link page** where the title of the page will actually be linked to the link provided and a prefexid double angle `>>` will link to the page itself. Simply provide the link in the page header: 121 | 122 | ``` 123 | link: http://getgrav.org/blog 124 | ``` 125 | 126 | # Setup 127 | 128 | If you want to set Antimatter as the default theme, you can do so by following these steps: 129 | 130 | * Navigate to `/your/site/grav/user/config`. 131 | * Open the **system.yaml** file. 132 | * Change the `theme:` setting to `theme: antimatter`. 133 | * Save your changes. 134 | * 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`. 135 | 136 | 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 **antimatter** folder. 137 | -------------------------------------------------------------------------------- /antimatter.php: -------------------------------------------------------------------------------- 1 | =1.5.10' } 17 | 18 | form: 19 | validation: loose 20 | fields: 21 | dropdown.enabled: 22 | type: toggle 23 | label: Dropdown in navbar 24 | highlight: 1 25 | default: 1 26 | options: 27 | 1: PLUGIN_ADMIN.ENABLED 28 | 0: PLUGIN_ADMIN.DISABLED 29 | validate: 30 | type: bool 31 | -------------------------------------------------------------------------------- /blueprints/asset/file.yaml: -------------------------------------------------------------------------------- 1 | media: 2 | video: 3 | mp4: video/mp4 4 | mov: video/quicktime 5 | m4v: video/x-m4v 6 | swf: video/x-flv 7 | 8 | image: 9 | jpg: image/jpeg 10 | jpeg: image/jpeg 11 | png: image/png 12 | gif: image/gif 13 | 14 | file: 15 | txt: text/plain 16 | doc: application/msword 17 | html: text/html 18 | pdf: application/pdf 19 | zip: application/zip 20 | gz: application/gzip 21 | 22 | form: 23 | key: filename 24 | fields: 25 | upload: 26 | type: upload 27 | label: Upload 28 | allow: 29 | '@media.*.keys' 30 | accept: 31 | '@media.*.values' 32 | 33 | filename: 34 | type: text 35 | label: Filename 36 | 37 | type: 38 | type: hidden 39 | default: video 40 | 41 | name: 42 | type: unset 43 | 44 | description: 45 | type: textarea 46 | label: Description 47 | 48 | url: 49 | type: unset 50 | 51 | path: 52 | type: unset 53 | 54 | thumb: 55 | type: unset 56 | 57 | width: 58 | type: text 59 | label: Width 60 | 61 | height: 62 | type: text 63 | label: Height 64 | 65 | mime: 66 | type: hidden 67 | default: 'application/octet-stream' 68 | 69 | modified: 70 | type: unset 71 | -------------------------------------------------------------------------------- /blueprints/blog.yaml: -------------------------------------------------------------------------------- 1 | title: Blog 2 | '@extends': 3 | type: default 4 | context: blueprints://pages 5 | 6 | child_type: item 7 | 8 | 9 | title: Default 10 | 11 | rules: 12 | slug: 13 | pattern: "[a-z][a-z0-9_\-]+" 14 | min: 2 15 | max: 80 16 | 17 | form: 18 | fields: 19 | tabs: 20 | type: tabs 21 | active: 1 22 | 23 | fields: 24 | advanced: 25 | fields: 26 | overrides: 27 | fields: 28 | header.child_type: 29 | default: item 30 | blog: 31 | type: tab 32 | title: Blog List 33 | 34 | fields: 35 | header.content.items: 36 | type: textarea 37 | yaml: true 38 | label: Items 39 | default: '@self.children' 40 | 41 | header.content.limit: 42 | type: text 43 | label: Max Item Count 44 | default: 5 45 | validate: 46 | required: true 47 | type: int 48 | min: 1 49 | 50 | header.content.order.by: 51 | type: select 52 | label: Order By 53 | default: date 54 | options: 55 | folder: Folder 56 | title: Title 57 | date: Date 58 | default: Default 59 | 60 | header.content.order.dir: 61 | type: select 62 | label: Order 63 | default: desc 64 | options: 65 | asc: Ascending 66 | desc: Descending 67 | 68 | header.content.pagination: 69 | type: toggle 70 | label: Pagination 71 | highlight: 1 72 | default: 1 73 | options: 74 | 1: PLUGIN_ADMIN.ENABLED 75 | 0: PLUGIN_ADMIN.DISABLED 76 | validate: 77 | type: bool 78 | 79 | 80 | header.content.url_taxonomy_filters: 81 | type: toggle 82 | label: URL Taxonomy Filters 83 | highlight: 1 84 | default: 1 85 | options: 86 | 1: PLUGIN_ADMIN.ENABLED 87 | 0: PLUGIN_ADMIN.DISABLED 88 | validate: 89 | type: bool 90 | -------------------------------------------------------------------------------- /blueprints/form.yaml: -------------------------------------------------------------------------------- 1 | title: Nopad 2 | '@extends': default 3 | -------------------------------------------------------------------------------- /blueprints/item.yaml: -------------------------------------------------------------------------------- 1 | title: Item 2 | '@extends': 3 | type: default 4 | context: blueprints://pages 5 | 6 | form: 7 | fields: 8 | tabs: 9 | 10 | fields: 11 | blog: 12 | type: tab 13 | title: Blog Item 14 | 15 | fields: 16 | 17 | header_image: 18 | type: section 19 | title: Header Image 20 | underline: true 21 | 22 | header.header_image: 23 | type: toggle 24 | toggleable: true 25 | label: Display Header Image 26 | help: Enabled displaying of a header image 27 | highlight: 1 28 | options: 29 | 1: PLUGIN_ADMIN.ENABLED 30 | 0: PLUGIN_ADMIN.DISABLED 31 | 32 | header.header_image_file: 33 | type: text 34 | toggleable: true 35 | label: Image File 36 | help: image filename that exists in the page folder. If not provided, will use the first image found. 37 | placeholder: For example: myimage.jpg 38 | 39 | header.header_image_width: 40 | type: text 41 | toggleable: true 42 | label: Image Width 43 | size: small 44 | help: Header width in px 45 | placeholder: Default is 900 46 | validate: 47 | type: int 48 | min: 0 49 | max: 5000 50 | 51 | header.header_image_height: 52 | type: text 53 | toggleable: true 54 | label: Image Height 55 | size: small 56 | help: Header height in px 57 | placeholder: Default is 300 58 | validate: 59 | type: int 60 | min: 0 61 | max: 5000 62 | 63 | 64 | summary: 65 | type: section 66 | title: Summary 67 | underline: true 68 | 69 | 70 | header.summary.enabled: 71 | type: toggle 72 | toggleable: true 73 | label: Summary 74 | highlight: 1 75 | options: 76 | 1: PLUGIN_ADMIN.ENABLED 77 | 0: PLUGIN_ADMIN.DISABLED 78 | 79 | header.summary.format: 80 | type: select 81 | toggleable: true 82 | label: Format 83 | classes: fancy 84 | options: 85 | 'short': 'Use the first occurence of delimter or size' 86 | 'long': 'Summary delimiter will be ignored' 87 | 88 | header.summary.size: 89 | type: text 90 | toggleable: true 91 | label: Size 92 | classes: large 93 | placeholder: 300 94 | validate: 95 | type: int 96 | min: 1 97 | 98 | header.summary.delimiter: 99 | type: text 100 | toggleable: true 101 | label: Summary delimiter 102 | classes: large 103 | placeholder: === 104 | -------------------------------------------------------------------------------- /blueprints/modular/features.yaml: -------------------------------------------------------------------------------- 1 | title: Features 2 | '@extends': default 3 | 4 | form: 5 | fields: 6 | tabs: 7 | fields: 8 | advanced: 9 | fields: 10 | columns: 11 | fields: 12 | column1: 13 | fields: 14 | name: 15 | default: modular/features 16 | '@data-options': '\Grav\Common\Page\Pages::modularTypes' 17 | overrides: 18 | fields: 19 | header.template: 20 | default: modular/features 21 | '@data-options': '\Grav\Common\Page\Pages::modularTypes' 22 | features: 23 | type: tab 24 | title: Features 25 | fields: 26 | header.features: 27 | name: features 28 | type: list 29 | label: Features 30 | 31 | fields: 32 | .icon: 33 | type: text 34 | label: Icon 35 | .header: 36 | type: text 37 | label: Header 38 | .text: 39 | type: text 40 | label: Text 41 | -------------------------------------------------------------------------------- /blueprints/modular/showcase.yaml: -------------------------------------------------------------------------------- 1 | title: Showcase 2 | '@extends': default 3 | 4 | form: 5 | fields: 6 | tabs: 7 | fields: 8 | advanced: 9 | fields: 10 | columns: 11 | fields: 12 | column1: 13 | fields: 14 | name: 15 | default: modular/showcase 16 | '@data-options': '\Grav\Common\Page\Pages::modularTypes' 17 | overrides: 18 | fields: 19 | header.template: 20 | default: modular/showcase 21 | '@data-options': '\Grav\Common\Page\Pages::modularTypes' 22 | buttons: 23 | type: tab 24 | title: Buttons 25 | fields: 26 | header.buttons: 27 | name: buttons 28 | type: list 29 | label: Buttons 30 | fields: 31 | .text: 32 | type: text 33 | label: Text 34 | .url: 35 | type: text 36 | label: URL 37 | .primary: 38 | type: toggle 39 | label: Primary 40 | highlight: 1 41 | default: 1 42 | options: 43 | 1: 'Yes' 44 | 0: 'No' 45 | validate: 46 | type: bool 47 | -------------------------------------------------------------------------------- /blueprints/modular/text.yaml: -------------------------------------------------------------------------------- 1 | title: Text 2 | '@extends': default 3 | 4 | form: 5 | fields: 6 | tabs: 7 | fields: 8 | advanced: 9 | fields: 10 | columns: 11 | fields: 12 | column1: 13 | fields: 14 | name: 15 | default: modular/text 16 | '@data-options': '\Grav\Common\Page\Pages::modularTypes' 17 | overrides: 18 | fields: 19 | header.template: 20 | default: modular/text 21 | '@data-options': '\Grav\Common\Page\Pages::modularTypes' 22 | content: 23 | fields: 24 | uploads: 25 | label: Page Media (first one will be displayed next to your content) 26 | header.image_align: 27 | type: select 28 | label: Image position 29 | classes: fancy 30 | default: left 31 | options: 32 | 'left': 'Left' 33 | 'right': 'Right' 34 | type: 35 | -------------------------------------------------------------------------------- /css-compiled/particles.css: -------------------------------------------------------------------------------- 1 | .text-left{text-align:left !important}.text-right{text-align:right !important}.text-center{text-align:center !important}.text-justify{text-align:justify !important}@media all and (min-width: 75em){.large-desktop-text-left{text-align:left !important}.large-desktop-text-right{text-align:right !important}.large-desktop-text-center{text-align:center !important}.large-desktop-text-justify{text-align:justify !important}}@media all and (min-width: 60em) and (max-width: 74.938em){.desktop-text-left{text-align:left !important}.desktop-text-right{text-align:right !important}.desktop-text-center{text-align:center !important}.desktop-text-justify{text-align:justify !important}}@media all and (min-width: 48em) and (max-width: 59.938em){.tablet-text-left{text-align:left !important}.tablet-text-right{text-align:right !important}.tablet-text-center{text-align:center !important}.tablet-text-justify{text-align:justify !important}}@media all and (min-width: 30.063em) and (max-width: 47.938em){.large-mobile-text-left{text-align:left !important}.large-mobile-text-right{text-align:right !important}.large-mobile-text-center{text-align:center !important}.large-mobile-text-justify{text-align:justify !important}}@media all and (max-width: 30em){.small-mobile-text-left{text-align:left !important}.small-mobile-text-right{text-align:right !important}.small-mobile-text-center{text-align:center !important}.small-mobile-text-justify{text-align:justify !important}}@media all and (min-width: 48em){.no-mobile-text-left{text-align:left !important}.no-mobile-text-right{text-align:right !important}.no-mobile-text-center{text-align:center !important}.no-mobile-text-justify{text-align:justify !important}}@media all and (max-width: 47.938em){.mobile-only-text-left{text-align:left !important}.mobile-only-text-right{text-align:right !important}.mobile-only-text-center{text-align:center !important}.mobile-only-text-justify{text-align:justify !important}} 2 | 3 | /*# sourceMappingURL=particles.css.map */ -------------------------------------------------------------------------------- /css-compiled/particles.css.map: -------------------------------------------------------------------------------- 1 | { 2 | "version": 3, 3 | "file": "particles.css", 4 | "sources": [ 5 | "../scss/particles.scss", 6 | "../scss/vendor/bourbon/_bourbon.scss", 7 | "../scss/vendor/bourbon/settings/_prefixer.scss", 8 | "../scss/vendor/bourbon/settings/_px-to-em.scss", 9 | "../scss/vendor/bourbon/helpers/_convert-units.scss", 10 | "../scss/vendor/bourbon/helpers/_gradient-positions-parser.scss", 11 | "../scss/vendor/bourbon/helpers/_is-num.scss", 12 | "../scss/vendor/bourbon/helpers/_linear-angle-parser.scss", 13 | "../scss/vendor/bourbon/helpers/_linear-gradient-parser.scss", 14 | "../scss/vendor/bourbon/helpers/_linear-positions-parser.scss", 15 | "../scss/vendor/bourbon/helpers/_linear-side-corner-parser.scss", 16 | "../scss/vendor/bourbon/helpers/_radial-arg-parser.scss", 17 | "../scss/vendor/bourbon/helpers/_radial-positions-parser.scss", 18 | "../scss/vendor/bourbon/helpers/_radial-gradient-parser.scss", 19 | "../scss/vendor/bourbon/helpers/_render-gradients.scss", 20 | "../scss/vendor/bourbon/helpers/_shape-size-stripper.scss", 21 | "../scss/vendor/bourbon/helpers/_str-to-num.scss", 22 | "../scss/vendor/bourbon/functions/_assign.scss", 23 | "../scss/vendor/bourbon/functions/_color-lightness.scss", 24 | "../scss/vendor/bourbon/functions/_flex-grid.scss", 25 | "../scss/vendor/bourbon/functions/_golden-ratio.scss", 26 | "../scss/vendor/bourbon/functions/_grid-width.scss", 27 | "../scss/vendor/bourbon/functions/_modular-scale.scss", 28 | "../scss/vendor/bourbon/functions/_px-to-em.scss", 29 | "../scss/vendor/bourbon/functions/_px-to-rem.scss", 30 | "../scss/vendor/bourbon/functions/_strip-units.scss", 31 | "../scss/vendor/bourbon/functions/_tint-shade.scss", 32 | "../scss/vendor/bourbon/functions/_transition-property-name.scss", 33 | "../scss/vendor/bourbon/functions/_unpack.scss", 34 | "../scss/vendor/bourbon/css3/_animation.scss", 35 | "../scss/vendor/bourbon/css3/_appearance.scss", 36 | "../scss/vendor/bourbon/css3/_backface-visibility.scss", 37 | "../scss/vendor/bourbon/css3/_background.scss", 38 | "../scss/vendor/bourbon/css3/_background-image.scss", 39 | "../scss/vendor/bourbon/css3/_border-image.scss", 40 | "../scss/vendor/bourbon/css3/_border-radius.scss", 41 | "../scss/vendor/bourbon/css3/_box-sizing.scss", 42 | "../scss/vendor/bourbon/css3/_calc.scss", 43 | "../scss/vendor/bourbon/css3/_columns.scss", 44 | "../scss/vendor/bourbon/css3/_filter.scss", 45 | "../scss/vendor/bourbon/css3/_flex-box.scss", 46 | "../scss/vendor/bourbon/css3/_font-face.scss", 47 | "../scss/vendor/bourbon/css3/_hyphens.scss", 48 | "../scss/vendor/bourbon/css3/_hidpi-media-query.scss", 49 | "../scss/vendor/bourbon/css3/_image-rendering.scss", 50 | "../scss/vendor/bourbon/css3/_keyframes.scss", 51 | "../scss/vendor/bourbon/css3/_linear-gradient.scss", 52 | "../scss/vendor/bourbon/css3/_perspective.scss", 53 | "../scss/vendor/bourbon/css3/_radial-gradient.scss", 54 | "../scss/vendor/bourbon/css3/_transform.scss", 55 | "../scss/vendor/bourbon/css3/_transition.scss", 56 | "../scss/vendor/bourbon/css3/_user-select.scss", 57 | "../scss/vendor/bourbon/css3/_placeholder.scss", 58 | "../scss/vendor/bourbon/addons/_button.scss", 59 | "../scss/vendor/bourbon/addons/_clearfix.scss", 60 | "../scss/vendor/bourbon/addons/_directional-values.scss", 61 | "../scss/vendor/bourbon/addons/_ellipsis.scss", 62 | "../scss/vendor/bourbon/addons/_font-family.scss", 63 | "../scss/vendor/bourbon/addons/_hide-text.scss", 64 | "../scss/vendor/bourbon/addons/_html5-input-types.scss", 65 | "../scss/vendor/bourbon/addons/_position.scss", 66 | "../scss/vendor/bourbon/addons/_prefixer.scss", 67 | "../scss/vendor/bourbon/addons/_retina-image.scss", 68 | "../scss/vendor/bourbon/addons/_size.scss", 69 | "../scss/vendor/bourbon/addons/_timing-functions.scss", 70 | "../scss/vendor/bourbon/addons/_triangle.scss", 71 | "../scss/vendor/bourbon/addons/_word-wrap.scss", 72 | "../scss/vendor/bourbon/_bourbon-deprecated-upcoming.scss", 73 | "../scss/configuration/nucleus/_base.scss", 74 | "../scss/configuration/nucleus/_core.scss", 75 | "../scss/configuration/nucleus/_breakpoints.scss", 76 | "../scss/configuration/nucleus/_layout.scss", 77 | "../scss/configuration/nucleus/_typography.scss", 78 | "../scss/configuration/nucleus/_nav.scss", 79 | "../scss/configuration/template/_base.scss", 80 | "../scss/configuration/template/_colors.scss", 81 | "../scss/configuration/template/_typography.scss", 82 | "../scss/configuration/template/_bullets.scss", 83 | "../scss/configuration/template/_variables.scss", 84 | "../scss/nucleus/functions/_base.scss", 85 | "../scss/nucleus/functions/_direction.scss", 86 | "../scss/nucleus/functions/_range.scss", 87 | "../scss/nucleus/mixins/_base.scss", 88 | "../scss/nucleus/mixins/_breakpoints.scss", 89 | "../scss/nucleus/mixins/_utilities.scss", 90 | "../scss/nucleus/particles/_align-text.scss", 91 | "../scss/nucleus/particles/_visibility.scss" 92 | ], 93 | "mappings": "AqFsBC,AAAA,UAAU,AAAC,CACV,UAAU,CAAE,eAAgB,CAC5B,AACD,AAAA,WAAW,AAAC,CACX,UAAU,CAAE,gBAAiB,CAC7B,AACD,AAAA,YAAY,AAAC,CACZ,UAAU,CAAE,iBAAkB,CAC9B,AACD,AAAA,aAAa,AAAC,CACb,UAAU,CAAE,kBAAmB,CAC/B,AAGA,MAAM,CAAN,GAAG,MAAM,SAAS,EAAC,IAAI,EACtB,AAAA,wBAAwB,AAAxB,CAAE,UAAU,CAAE,eAAgB,CAAI,AAClC,AAAA,yBAAyB,AAAzB,CAAE,UAAU,CAAE,gBAAiB,CAAI,AACnC,AAAA,0BAA0B,AAA1B,CAAE,UAAU,CAAE,iBAAkB,CAAI,AACpC,AAAA,2BAA2B,AAA3B,CAAE,UAAU,CAAE,kBAAmB,CAAI,CAJtC,MAAM,CAAN,GAAG,MAAM,SAAS,EAAC,IAAI,OAAO,SAAS,EAAC,QAAQ,EAC/C,AAAA,kBAAkB,AAAlB,CAAE,UAAU,CAAE,eAAgB,CAAI,AAClC,AAAA,mBAAmB,AAAnB,CAAE,UAAU,CAAE,gBAAiB,CAAI,AACnC,AAAA,oBAAoB,AAApB,CAAE,UAAU,CAAE,iBAAkB,CAAI,AACpC,AAAA,qBAAqB,AAArB,CAAE,UAAU,CAAE,kBAAmB,CAAI,CAJtC,MAAM,CAAN,GAAG,MAAM,SAAS,EAAC,IAAI,OAAO,SAAS,EAAC,QAAQ,EAC/C,AAAA,iBAAiB,AAAjB,CAAE,UAAU,CAAE,eAAgB,CAAI,AAClC,AAAA,kBAAkB,AAAlB,CAAE,UAAU,CAAE,gBAAiB,CAAI,AACnC,AAAA,mBAAmB,AAAnB,CAAE,UAAU,CAAE,iBAAkB,CAAI,AACpC,AAAA,oBAAoB,AAApB,CAAE,UAAU,CAAE,kBAAmB,CAAI,CAJtC,MAAM,CAAN,GAAG,MAAM,SAAS,EAAC,QAAQ,OAAO,SAAS,EAAC,QAAQ,EACnD,AAAA,uBAAuB,AAAvB,CAAE,UAAU,CAAE,eAAgB,CAAI,AAClC,AAAA,wBAAwB,AAAxB,CAAE,UAAU,CAAE,gBAAiB,CAAI,AACnC,AAAA,yBAAyB,AAAzB,CAAE,UAAU,CAAE,iBAAkB,CAAI,AACpC,AAAA,0BAA0B,AAA1B,CAAE,UAAU,CAAE,kBAAmB,CAAI,CAJtC,MAAM,CAAN,GAAG,MAAM,SAAS,EAAC,IAAI,EACtB,AAAA,uBAAuB,AAAvB,CAAE,UAAU,CAAE,eAAgB,CAAI,AAClC,AAAA,wBAAwB,AAAxB,CAAE,UAAU,CAAE,gBAAiB,CAAI,AACnC,AAAA,yBAAyB,AAAzB,CAAE,UAAU,CAAE,iBAAkB,CAAI,AACpC,AAAA,0BAA0B,AAA1B,CAAE,UAAU,CAAE,kBAAmB,CAAI,CAJtC,MAAM,CAAN,GAAG,MAAM,SAAS,EAAC,IAAI,EACtB,AAAA,oBAAoB,AAApB,CAAE,UAAU,CAAE,eAAgB,CAAI,AAClC,AAAA,qBAAqB,AAArB,CAAE,UAAU,CAAE,gBAAiB,CAAI,AACnC,AAAA,sBAAsB,AAAtB,CAAE,UAAU,CAAE,iBAAkB,CAAI,AACpC,AAAA,uBAAuB,AAAvB,CAAE,UAAU,CAAE,kBAAmB,CAAI,CAJtC,MAAM,CAAN,GAAG,MAAM,SAAS,EAAC,QAAQ,EAC1B,AAAA,sBAAsB,AAAtB,CAAE,UAAU,CAAE,eAAgB,CAAI,AAClC,AAAA,uBAAuB,AAAvB,CAAE,UAAU,CAAE,gBAAiB,CAAI,AACnC,AAAA,wBAAwB,AAAxB,CAAE,UAAU,CAAE,iBAAkB,CAAI,AACpC,AAAA,yBAAyB,AAAzB,CAAE,UAAU,CAAE,kBAAmB,CAAI", 94 | "names": [] 95 | } -------------------------------------------------------------------------------- /css/nucleus-ie10.css: -------------------------------------------------------------------------------- 1 | button { 2 | overflow: visible; 3 | } 4 | 5 | input[type="checkbox"], 6 | input[type="radio"] { 7 | box-sizing: border-box; 8 | padding: 0; 9 | } 10 | 11 | .fixed-blocks { 12 | display: block; 13 | } 14 | 15 | .feature-items { 16 | overflow: hidden; 17 | } 18 | 19 | .modular .features .feature { 20 | margin: 1%; 21 | display: inline-block; 22 | vertical-align: top; 23 | float: none; 24 | } -------------------------------------------------------------------------------- /css/nucleus-ie9.css: -------------------------------------------------------------------------------- 1 | /* IE9 Resets and Normalization */ 2 | article, 3 | aside, 4 | details, 5 | figcaption, 6 | figure, 7 | footer, 8 | header, 9 | hgroup, 10 | main, 11 | nav, 12 | section, 13 | summary { 14 | display: block; 15 | } 16 | 17 | audio, 18 | canvas, 19 | progress, 20 | video { 21 | display: inline-block; 22 | } 23 | 24 | [hidden], 25 | template { 26 | display: none; 27 | } 28 | 29 | abbr[title] { 30 | border-bottom: 1px dotted; 31 | } 32 | 33 | img { 34 | border: 0; 35 | } 36 | 37 | svg:not(:root) { 38 | overflow: hidden; 39 | } 40 | 41 | figure { 42 | margin: 1em 40px; 43 | } 44 | 45 | button { 46 | overflow: visible; 47 | } 48 | 49 | input[type="checkbox"], 50 | input[type="radio"] { 51 | box-sizing: border-box; 52 | padding: 0; 53 | } 54 | 55 | legend { 56 | border: 0; 57 | padding: 0; 58 | } 59 | 60 | textarea { 61 | overflow: auto; 62 | } -------------------------------------------------------------------------------- /css/prism.css: -------------------------------------------------------------------------------- 1 | /* http://prismjs.com/download.html?themes=prism&languages=markup+css+clike+javascript */ 2 | /** 3 | * prism.js default theme for JavaScript, CSS and HTML 4 | * Based on dabblet (http://dabblet.com) 5 | * @author Lea Verou 6 | */ 7 | 8 | code[class*="language-"], 9 | pre[class*="language-"] { 10 | color: black; 11 | text-shadow: 0 1px white; 12 | direction: ltr; 13 | text-align: left; 14 | white-space: pre; 15 | word-spacing: normal; 16 | word-break: normal; 17 | 18 | 19 | -moz-tab-size: 4; 20 | -o-tab-size: 4; 21 | tab-size: 4; 22 | 23 | -webkit-hyphens: none; 24 | -moz-hyphens: none; 25 | -ms-hyphens: none; 26 | hyphens: none; 27 | } 28 | 29 | pre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection, 30 | code[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection { 31 | text-shadow: none; 32 | background: #b3d4fc; 33 | } 34 | 35 | pre[class*="language-"]::selection, pre[class*="language-"] ::selection, 36 | code[class*="language-"]::selection, code[class*="language-"] ::selection { 37 | text-shadow: none; 38 | background: #b3d4fc; 39 | } 40 | 41 | @media print { 42 | code[class*="language-"], 43 | pre[class*="language-"] { 44 | text-shadow: none; 45 | } 46 | } 47 | 48 | /* Code blocks */ 49 | pre[class*="language-"] { 50 | padding: 1em; 51 | margin: .5em 0; 52 | overflow: auto; 53 | } 54 | 55 | /* Inline code */ 56 | :not(pre) > code[class*="language-"] { 57 | padding: .1em; 58 | border-radius: .3em; 59 | } 60 | 61 | .token.comment, 62 | .token.prolog, 63 | .token.doctype, 64 | .token.cdata { 65 | color: slategray; 66 | } 67 | 68 | .token.punctuation { 69 | color: #999; 70 | } 71 | 72 | .namespace { 73 | opacity: .7; 74 | } 75 | 76 | .token.property, 77 | .token.tag, 78 | .token.boolean, 79 | .token.number, 80 | .token.constant, 81 | .token.symbol { 82 | color: #905; 83 | } 84 | 85 | .token.selector, 86 | .token.attr-name, 87 | .token.string, 88 | .token.builtin { 89 | color: #690; 90 | } 91 | 92 | .token.operator, 93 | .token.entity, 94 | .token.url, 95 | .language-css .token.string, 96 | .style .token.string, 97 | .token.variable { 98 | color: #a67f59; 99 | background: hsla(0,0%,100%,.5); 100 | } 101 | 102 | .token.atrule, 103 | .token.attr-value, 104 | .token.keyword { 105 | color: #07a; 106 | } 107 | 108 | 109 | .token.regex, 110 | .token.important { 111 | color: #e90; 112 | } 113 | 114 | .token.important { 115 | font-weight: bold; 116 | } 117 | 118 | .token.entity { 119 | cursor: help; 120 | } 121 | 122 | -------------------------------------------------------------------------------- /css/pure-0.5.0/grids-min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | Pure v0.5.0-rc-1 3 | Copyright 2014 Yahoo! Inc. All rights reserved. 4 | Licensed under the BSD License. 5 | https://github.com/yui/pure/blob/master/LICENSE.md 6 | */ 7 | .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%} 8 | 9 | /* Custom */ 10 | [class *="pure-u"] {display:inline-block;*display:inline;zoom:1;letter-spacing:normal;word-spacing:normal;vertical-align:top;text-rendering:auto;} 11 | .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%;} 12 | .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%;} 13 | .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%;} 14 | 15 | .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%;} -------------------------------------------------------------------------------- /css/slidebars.min.css: -------------------------------------------------------------------------------- 1 | /* Slidebars 0.10.2 (http://plugins.adchsm.me/slidebars/) written by Adam Smith (http://www.adchsm.me/) released under MIT License (http://plugins.adchsm.me/slidebars/license.txt) */ 2 | #sb-site,.sb-site-container,.sb-slidebar,body,html{margin:0;padding:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}body,html{width:100%;overflow-x:hidden}html{height:100%}body{min-height:100%;height:auto;position:relative}html.sb-scroll-lock.sb-active:not(.sb-static){overflow:hidden}#sb-site,.sb-site-container{width:100%;position:relative;z-index:1;background-color:#fff}.sb-slidebar{height:100%;overflow-y:auto;position:fixed;top:0;z-index:0;display:none;background-color:#222;-webkit-transform:translate(0px)}.sb-left{left:0}.sb-right{right:0}.sb-slidebar.sb-static,html.sb-static .sb-slidebar{position:absolute}.sb-slidebar.sb-active{display:block}.sb-style-overlay{z-index:9999}.sb-momentum-scrolling{-webkit-overflow-scrolling:touch}.sb-slidebar{width:30%}.sb-width-thin{width:15%}.sb-width-wide{width:45%}@media (max-width:480px){.sb-slidebar{width:70%}.sb-width-thin{width:55%}.sb-width-wide{width:85%}}@media (min-width:481px){.sb-slidebar{width:55%}.sb-width-thin{width:40%}.sb-width-wide{width:70%}}@media (min-width:768px){.sb-slidebar{width:40%}.sb-width-thin{width:25%}.sb-width-wide{width:55%}}@media (min-width:992px){.sb-slidebar{width:30%}.sb-width-thin{width:15%}.sb-width-wide{width:45%}}@media (min-width:1200px){.sb-slidebar{width:20%}.sb-width-thin{width:5%}.sb-width-wide{width:35%}}#sb-site,.sb-site-container,.sb-slide,.sb-slidebar{-webkit-transition:-webkit-transform 400ms ease;-moz-transition:-moz-transform 400ms ease;-o-transition:-o-transform 400ms ease;transition:transform 400ms ease;-webkit-transition-property:-webkit-transform,left,right;}.sb-hide{display:none} 3 | -------------------------------------------------------------------------------- /fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav-theme-antimatter/275d646f009be13e83373eb5a7e5005b74aade31/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav-theme-antimatter/275d646f009be13e83373eb5a7e5005b74aade31/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav-theme-antimatter/275d646f009be13e83373eb5a7e5005b74aade31/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav-theme-antimatter/275d646f009be13e83373eb5a7e5005b74aade31/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /hebe.json: -------------------------------------------------------------------------------- 1 | { 2 | "project":"grav-theme-antimatter", 3 | "platforms":{ 4 | "grav":{ 5 | "nodes":{ 6 | "theme":[ 7 | { 8 | "source":"/", 9 | "destination":"/user/themes/antimatter" 10 | } 11 | ] 12 | } 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /images/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav-theme-antimatter/275d646f009be13e83373eb5a7e5005b74aade31/images/favicon.png -------------------------------------------------------------------------------- /images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav-theme-antimatter/275d646f009be13e83373eb5a7e5005b74aade31/images/logo.png -------------------------------------------------------------------------------- /js/antimatter.js: -------------------------------------------------------------------------------- 1 | var isTouch = window.DocumentTouch && document instanceof DocumentTouch; 2 | 3 | function scrollHeader() { 4 | // Has scrolled class on header 5 | var zvalue = $(document).scrollTop(); 6 | if ( zvalue > 75 ) 7 | $("#header").addClass("scrolled"); 8 | else 9 | $("#header").removeClass("scrolled"); 10 | } 11 | 12 | jQuery(document).ready(function($){ 13 | 14 | // ON SCROLL EVENTS 15 | if (!isTouch){ 16 | $(document).scroll(function() { 17 | scrollHeader(); 18 | }); 19 | }; 20 | 21 | // TOUCH SCROLL 22 | $(document).on({ 23 | 'touchmove': function(e) { 24 | scrollHeader(); // Replace this with your code. 25 | } 26 | }); 27 | 28 | //Smooth scroll to top 29 | $('#toTop').click(function(){ 30 | $("html, body").animate({ scrollTop: 0 }, 500); 31 | return false; 32 | }); 33 | // Responsive Menu 34 | 35 | }); 36 | 37 | 38 | -------------------------------------------------------------------------------- /js/html5shiv-printshiv.min.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @preserve HTML5 Shiv prev3.7.1 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed 3 | */ 4 | !function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",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="",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); -------------------------------------------------------------------------------- /js/singlePageNav.min.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Single Page Nav Plugin 3 | * Copyright (c) 2014 Chris Wojcik 4 | * Dual licensed under MIT and GPL. 5 | * @author Chris Wojcik 6 | * @version 1.2.0 7 | */ 8 | if(typeof Object.create!=="function"){Object.create=function(e){function t(){}t.prototype=e;return new t}}(function(e,t,n,r){"use strict";var i={init:function(n,r){this.options=e.extend({},e.fn.singlePageNav.defaults,n);this.container=r;this.$container=e(r);this.$links=this.$container.find("a");if(this.options.filter!==""){this.$links=this.$links.filter(this.options.filter)}this.$window=e(t);this.$htmlbody=e("html, body");this.$links.on("click.singlePageNav",e.proxy(this.handleClick,this));this.didScroll=false;this.checkPosition();this.setTimer()},handleClick:function(t){var n=this,r=t.currentTarget,i=e(r.hash);t.preventDefault();if(i.length){n.clearTimer();if(typeof n.options.beforeStart==="function"){n.options.beforeStart()}n.setActiveLink(r.hash);n.scrollTo(i,function(){if(n.options.updateHash&&history.pushState){history.pushState(null,null,r.hash)}n.setTimer();if(typeof n.options.onComplete==="function"){n.options.onComplete()}})}},scrollTo:function(e,t){var n=this;var r=n.getCoords(e).top;var i=false;n.$htmlbody.stop().animate({scrollTop:r},{duration:n.options.speed,easing:n.options.easing,complete:function(){if(typeof t==="function"&&!i){t()}i=true}})},setTimer:function(){var e=this;e.$window.on("scroll.singlePageNav",function(){e.didScroll=true});e.timer=setInterval(function(){if(e.didScroll){e.didScroll=false;e.checkPosition()}},250)},clearTimer:function(){clearInterval(this.timer);this.$window.off("scroll.singlePageNav");this.didScroll=false},checkPosition:function(){var e=this.$window.scrollTop();var t=this.getCurrentSection(e);this.setActiveLink(t)},getCoords:function(e){return{top:Math.round(e.offset().top)-this.options.offset}},setActiveLink:function(e){var t=this.$container.find("a[href$='"+e+"']");if(!t.hasClass(this.options.currentClass)){this.$links.removeClass(this.options.currentClass);t.addClass(this.options.currentClass)}},getCurrentSection:function(t){var n,r,i,s;for(n=0;n=i.top-this.options.threshold){s=r}}}return s||this.$links[0].hash}};e.fn.singlePageNav=function(e){return this.each(function(){var t=Object.create(i);t.init(e,this)})};e.fn.singlePageNav.defaults={offset:0,threshold:120,speed:400,currentClass:"current",easing:"swing",updateHash:false,filter:"",onComplete:false,beforeStart:false}})(jQuery,window,document); -------------------------------------------------------------------------------- /js/slidebars.min.js: -------------------------------------------------------------------------------- 1 | // Slidebars 0.10.2 (http://plugins.adchsm.me/slidebars/) written by Adam Smith (http://www.adchsm.me/) released under MIT License (http://plugins.adchsm.me/slidebars/license.txt) 2 | !function(t){t.slidebars=function(s){function e(){!c.disableOver||"number"==typeof c.disableOver&&c.disableOver>=T?(y=!0,t("html").addClass("sb-init"),c.hideControlClasses&&k.removeClass("sb-hide"),i()):"number"==typeof c.disableOver&&c.disableOverb||v&&5>v)&&t("html").addClass("sb-static");var g=t("#sb-site, .sb-site-container");if(t(".sb-left").length)var m=t(".sb-left"),C=!1;if(t(".sb-right").length)var p=t(".sb-right"),w=!1;var y=!1,T=t(window).width(),k=t(".sb-toggle-left, .sb-toggle-right, .sb-open-left, .sb-open-right, .sb-close"),O=t(".sb-slide");e(),t(window).resize(function(){var s=t(window).width();T!==s&&(T=s,e(),C&&o("left"),w&&o("right"))});var x;d&&f?(x="translate",b&&4.4>b&&(x="side")):x="jQuery",this.slidebars={open:o,close:a,toggle:l,init:function(){return y},active:function(t){return"left"===t&&m?C:"right"===t&&p?w:void 0},destroy:function(t){"left"===t&&m&&(C&&a(),setTimeout(function(){m.remove(),m=!1},400)),"right"===t&&p&&(w&&a(),setTimeout(function(){p.remove(),p=!1},400))}},t(".sb-toggle-left").on("touchend click",function(s){r(s,t(this)),l("left")}),t(".sb-toggle-right").on("touchend click",function(s){r(s,t(this)),l("right")}),t(".sb-open-left").on("touchend click",function(s){r(s,t(this)),o("left")}),t(".sb-open-right").on("touchend click",function(s){r(s,t(this)),o("right")}),t(".sb-close").on("touchend click",function(s){if(t(this).is("a")||t(this).children().is("a")){if("click"===s.type){s.preventDefault();var e=t(this).is("a")?t(this).attr("href"):t(this).find("a").attr("href");a(e)}}else r(s,t(this)),a()}),g.on("touchend click",function(s){c.siteClose&&(C||w)&&(r(s,t(this)),a())})}}(jQuery); -------------------------------------------------------------------------------- /screenshot.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav-theme-antimatter/275d646f009be13e83373eb5a7e5005b74aade31/screenshot.jpg -------------------------------------------------------------------------------- /scss.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | scss --watch scss:css-compiled 3 | -------------------------------------------------------------------------------- /scss/configuration/nucleus/_base.scss: -------------------------------------------------------------------------------- 1 | // Core 2 | @import "core"; 3 | 4 | // Breakpoints 5 | @import "breakpoints"; 6 | 7 | // Layout 8 | @import "layout"; 9 | 10 | // Typography 11 | @import "typography"; 12 | 13 | // Nav 14 | @import "nav"; -------------------------------------------------------------------------------- /scss/configuration/nucleus/_breakpoints.scss: -------------------------------------------------------------------------------- 1 | // Media Device Breakpoints 2 | $large-desktop-container: 75.000em !default; 3 | $desktop-container: 60.000em !default; 4 | $tablet-container: 48.000em !default; 5 | $large-mobile-container: 30.000em !default; 6 | $mobile-container: 100% !default; 7 | 8 | // Breakpoint Variables For Particles 9 | $media: "all" !default; 10 | $mobile-only: "#{$media} and (max-width:#{$tablet-container - 0.062})" !default; 11 | $no-mobile: "#{$media} and (min-width:#{$tablet-container})" !default; 12 | $small-mobile-range: "#{$media} and (max-width:#{$large-mobile-container})" !default; 13 | $large-mobile-range: "#{$media} and (min-width:#{$large-mobile-container + 0.063}) and (max-width:#{$tablet-container - 0.062})" !default; 14 | $tablet-range: "#{$media} and (min-width:#{$tablet-container}) and (max-width:#{$desktop-container - 0.062})" !default; 15 | $desktop-range: "#{$media} and (min-width:#{$desktop-container}) and (max-width:#{$large-desktop-container - 0.062})" !default; 16 | $large-desktop-range: "#{$media} and (min-width:#{$large-desktop-container})" !default; 17 | -------------------------------------------------------------------------------- /scss/configuration/nucleus/_core.scss: -------------------------------------------------------------------------------- 1 | // Border Radius 2 | $core-border-radius: rem(3) !default; -------------------------------------------------------------------------------- /scss/configuration/nucleus/_layout.scss: -------------------------------------------------------------------------------- 1 | // Content Block Spacing Variables 2 | $content-margin: 0.625rem !default; 3 | $content-padding: 0.938rem !default; 4 | 5 | // Fixed Block Variables 6 | $fixed-block-full: percentage(1/4) !default; 7 | $fixed-block-desktop: percentage(1/3) !default; 8 | $fixed-block-tablet: percentage(1/2) !default; -------------------------------------------------------------------------------- /scss/configuration/nucleus/_nav.scss: -------------------------------------------------------------------------------- 1 | // Dropdowns 2 | $dropdown-width: 140px !default; 3 | $flyout-width: 140px !default; -------------------------------------------------------------------------------- /scss/configuration/nucleus/_typography.scss: -------------------------------------------------------------------------------- 1 | // Base Sizes 2 | $core-font-size: 1rem !default; 3 | $core-line-height: 1.7 !default; 4 | 5 | // Heading Sizes 6 | $h1-font-size: $core-font-size + 2.20 !default; 7 | $h2-font-size: $core-font-size + 1.50 !default; 8 | $h3-font-size: $core-font-size + 1.10 !default; 9 | $h4-font-size: $core-font-size + 0.75 !default; 10 | $h5-font-size: $core-font-size + 0.35 !default; 11 | $h6-font-size: $core-font-size - 0.15 !default; 12 | 13 | // Spacing 14 | $leading-margin: $core-line-height * 1rem !default; 15 | -------------------------------------------------------------------------------- /scss/configuration/template/_base.scss: -------------------------------------------------------------------------------- 1 | // Colors 2 | @import "colors"; 3 | 4 | // Typography 5 | @import "typography"; 6 | 7 | // Typography 8 | @import "bullets"; 9 | 10 | // Variables 11 | @import "variables"; 12 | -------------------------------------------------------------------------------- /scss/configuration/template/_bullets.scss: -------------------------------------------------------------------------------- 1 | $bullet-icon-size: 3.5rem; 2 | 3 | $bullet-icon-color-1: $core-accent; 4 | $bullet-icon-color-2: adjust-hue($core-accent, -20); 5 | $bullet-icon-color-3: adjust-hue($core-accent, -130); -------------------------------------------------------------------------------- /scss/configuration/template/_colors.scss: -------------------------------------------------------------------------------- 1 | // Core 2 | $core-text: #444; 3 | $core-accent: #1BB3E9; 4 | $secondary-link: #F6635E; 5 | $white: #fff; 6 | $black: #000; 7 | $light-gray: #ddd; 8 | $border-color: #EEEEEE; 9 | 10 | // Borders 11 | $core-border-color: $light-gray; 12 | $core-border-color-hover: darken($core-border-color, 10); 13 | $core-border-color-focus: $core-accent; 14 | 15 | // Shadows 16 | $core-box-shadow: inset 0 1px 3px hsla(0, 0%, 0%, 0.06); 17 | $core-box-shadow-focus: $core-box-shadow, 0 0 5px rgba(darken($core-border-color-focus, 5), 0.7); 18 | 19 | // Background 20 | $page-bg: #fff; 21 | 22 | // Header 23 | $header-text: #FFFFFF; 24 | 25 | // Nav 26 | $navbar-text: #75879A; 27 | $navbar-bg: #FFFFFF; 28 | 29 | // Showcase 30 | $showcase-bg: lighten($core-accent, 6%); 31 | $showcase-text: #fff; 32 | 33 | // Feature 34 | $feature-bg: #fff; 35 | 36 | // Main Body 37 | $main-bg: #f7f7f7; 38 | $body-border: darken($main-bg, 5%); 39 | 40 | // Sidebar 41 | $sidebar-text: #aaa; 42 | 43 | // Bottom 44 | $bottom-bg: #f7f7f7; 45 | $bottom-text: $core-text; 46 | 47 | // Footer 48 | $footer-bg: #333; 49 | $footer-text: #999; 50 | 51 | $rule-color: #F0F2F4; 52 | $code-text: #c7254e; 53 | $code-bg: #f9f2f4; 54 | $pre-text: #237794; 55 | $pre-bg: #f0f0f0; 56 | 57 | // Dark Contrast variation 58 | $dark-navbar-text: #999; 59 | $dark-sidebar: #222; 60 | $dark-sidebar-text: #999; 61 | $dark-main-bg: #333; 62 | $dark-body-border: #666; 63 | 64 | // Info - Yellow 65 | $notes-info-border: #F0AD4E; 66 | $notes-info-bg: #FCF8F2; 67 | // Warning - Red 68 | $notes-warning-border: #D9534F; 69 | $notes-warning-bg: #FDF7F7; 70 | // Note - Blue 71 | $notes-note-border: #5BC0DE; 72 | $notes-note-bg: #F4F8FA; 73 | // Success - Green 74 | $notes-success-border: #5CB85C; 75 | $notes-success-bg: #F1F9F1; 76 | -------------------------------------------------------------------------------- /scss/configuration/template/_typography.scss: -------------------------------------------------------------------------------- 1 | // Font Family 2 | $font-family-default: "Raleway", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif; 3 | $font-family-header: "Montserrat", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif; 4 | $font-family-mono: "Inconsolata", monospace; 5 | $font-family-serif: "Georgia", "Times", "Times New Roman", serif; 6 | 7 | $icons: "FontAwesome"; 8 | -------------------------------------------------------------------------------- /scss/configuration/template/_variables.scss: -------------------------------------------------------------------------------- 1 | // Sizes 2 | $header-height: 5rem; 3 | $footer-height: 6rem; 4 | $border-radius: 3px; 5 | 6 | // Font Weights 7 | $font-weight-bold: 600; 8 | $font-weight-regular: 400; 9 | $font-weight-light:300; 10 | 11 | // Global Paddings 12 | $padding-horiz: 7rem; 13 | $padding-vert: 3rem; 14 | -------------------------------------------------------------------------------- /scss/nucleus.scss: -------------------------------------------------------------------------------- 1 | // REQUIRED DEPENDENCIES - DO NOT CHANGE 2 | 3 | // Load Third Party Libraries 4 | @import "vendor/bourbon/bourbon"; 5 | 6 | // Load Nucleus Configuration 7 | @import "configuration/nucleus/base"; 8 | 9 | // Load Nucleus Mixins and Functions 10 | @import "nucleus/functions/base"; 11 | @import "nucleus/mixins/base"; 12 | 13 | //------------------------------------------- 14 | 15 | // LOAD NUCLEUS COMPONENTS 16 | 17 | // Core 18 | @import "nucleus/core"; 19 | 20 | // Flex 21 | @import "nucleus/flex"; 22 | 23 | // Typography 24 | @import "nucleus/typography"; 25 | 26 | // Forms 27 | @import "nucleus/forms"; 28 | -------------------------------------------------------------------------------- /scss/nucleus/_core.scss: -------------------------------------------------------------------------------- 1 | *, *::before, *::after { 2 | @include box-sizing(border-box); 3 | } 4 | 5 | @-webkit-viewport{width:device-width} 6 | @-moz-viewport{width:device-width} 7 | @-ms-viewport{width:device-width} 8 | @-o-viewport{width:device-width} 9 | @viewport{width:device-width} 10 | 11 | html { 12 | font-size: 100%; 13 | -ms-text-size-adjust: 100%; 14 | -webkit-text-size-adjust: 100%; 15 | } 16 | 17 | body { 18 | margin: 0; 19 | } 20 | 21 | article, 22 | aside, 23 | details, 24 | figcaption, 25 | figure, 26 | footer, 27 | header, 28 | hgroup, 29 | main, 30 | nav, 31 | section, 32 | summary { 33 | display: block; 34 | } 35 | 36 | audio, 37 | canvas, 38 | progress, 39 | video { 40 | display: inline-block; 41 | vertical-align: baseline; 42 | } 43 | 44 | audio:not([controls]) { 45 | display: none; 46 | height: 0; 47 | } 48 | 49 | [hidden], 50 | template { 51 | display: none; 52 | } 53 | 54 | a { 55 | background: transparent; 56 | text-decoration: none; 57 | } 58 | 59 | a:active, 60 | a:hover { 61 | outline: 0; 62 | } 63 | 64 | abbr[title] { 65 | border-bottom: 1px dotted; 66 | } 67 | 68 | b, 69 | strong { 70 | font-weight: bold; 71 | } 72 | 73 | dfn { 74 | font-style: italic; 75 | } 76 | 77 | mark { 78 | background: #ff0; 79 | color: #000; 80 | } 81 | 82 | sub, 83 | sup { 84 | font-size: $core-font-size - 0.250; 85 | line-height: 0; 86 | position: relative; 87 | vertical-align: baseline; 88 | } 89 | 90 | sup { 91 | top: -0.5em; 92 | } 93 | 94 | sub { 95 | bottom: -0.25em; 96 | } 97 | 98 | img { 99 | border: 0; 100 | max-width: 100%; 101 | } 102 | 103 | svg:not(:root) { 104 | overflow: hidden; 105 | } 106 | 107 | figure { 108 | margin: 1em 40px; 109 | } 110 | 111 | hr { 112 | height: 0; 113 | } 114 | 115 | pre { 116 | overflow: auto; 117 | } 118 | 119 | code, 120 | kbd, 121 | pre, 122 | samp { 123 | font-size: $core-font-size; 124 | } 125 | 126 | button, 127 | input, 128 | optgroup, 129 | select, 130 | textarea { 131 | color: inherit; 132 | font: inherit; 133 | margin: 0; 134 | } 135 | 136 | button { 137 | overflow: visible; 138 | } 139 | 140 | button, 141 | select { 142 | text-transform: none; 143 | } 144 | 145 | button, 146 | html input[type="button"], 147 | input[type="reset"], 148 | input[type="submit"] { 149 | -webkit-appearance: button; 150 | cursor: pointer; 151 | } 152 | 153 | button[disabled], 154 | html input[disabled] { 155 | cursor: default; 156 | } 157 | 158 | button::-moz-focus-inner, 159 | input::-moz-focus-inner { 160 | border: 0; 161 | padding: 0; 162 | } 163 | 164 | input { 165 | line-height: normal; 166 | } 167 | 168 | input[type="checkbox"], 169 | input[type="radio"] { 170 | padding: 0; 171 | } 172 | 173 | input[type="number"]::-webkit-inner-spin-button, 174 | input[type="number"]::-webkit-outer-spin-button { 175 | height: auto; 176 | } 177 | 178 | input[type="search"] { 179 | -webkit-appearance: textfield; 180 | } 181 | 182 | input[type="search"]::-webkit-search-cancel-button, 183 | input[type="search"]::-webkit-search-decoration { 184 | -webkit-appearance: none; 185 | } 186 | 187 | legend { 188 | border: 0; 189 | padding: 0; 190 | } 191 | 192 | textarea { 193 | overflow: auto; 194 | } 195 | 196 | optgroup { 197 | font-weight: bold; 198 | } 199 | 200 | table { 201 | border-collapse: collapse; 202 | border-spacing: 0; 203 | table-layout: fixed; 204 | width: 100%; 205 | } 206 | 207 | tr, td, th { 208 | vertical-align: middle; 209 | } 210 | 211 | th, td { 212 | padding: ($leading-margin / 4) 0; 213 | } 214 | 215 | th { 216 | text-align: left; 217 | } 218 | -------------------------------------------------------------------------------- /scss/nucleus/_flex.scss: -------------------------------------------------------------------------------- 1 | // Page Container 2 | .container { 3 | width: $large-desktop-container; 4 | margin: 0 auto; 5 | padding: 0; 6 | @include breakpoint(desktop-range) { 7 | width: $desktop-container; 8 | } 9 | @include breakpoint(tablet-range) { 10 | width: $tablet-container; 11 | } 12 | @include breakpoint(large-mobile-range) { 13 | width: $large-mobile-container; 14 | } 15 | @include breakpoint(small-mobile-range) { 16 | width: $mobile-container; 17 | } 18 | } 19 | 20 | // Grid Row and Column Setup 21 | .grid { 22 | @include display(flex); 23 | @include flex-flow(row); 24 | list-style: none; 25 | margin: 0; 26 | padding: 0; 27 | @include breakpoint(mobile-only) { 28 | @include flex-flow(row wrap); 29 | } 30 | } 31 | 32 | .block { 33 | @include flex(1); 34 | min-width: 0; 35 | min-height: 0; 36 | @include breakpoint(mobile-only) { 37 | @include flex(0 100%); 38 | } 39 | } 40 | 41 | // Content Block Spacing 42 | .content { 43 | margin: $content-margin; 44 | padding: $content-padding; 45 | } 46 | 47 | body [class*="size-"] { 48 | @include breakpoint(mobile-only) { 49 | @include flex(0 100%); 50 | } 51 | } 52 | 53 | // Custom Size Modifiers 54 | .size-1-2 { 55 | @include flex(0 percentage(1/2)); 56 | } 57 | 58 | .size-1-3 { 59 | @include flex(0 percentage(1/3)); 60 | } 61 | 62 | .size-1-4 { 63 | @include flex(0 percentage(1/4)); 64 | } 65 | 66 | .size-1-5 { 67 | @include flex(0 percentage(1/5)); 68 | } 69 | 70 | .size-1-6 { 71 | @include flex(0 percentage(1/6)); 72 | } 73 | 74 | .size-1-7 { 75 | @include flex(0 percentage(1/7)); 76 | } 77 | 78 | .size-1-8 { 79 | @include flex(0 percentage(1/8)); 80 | } 81 | 82 | .size-1-9 { 83 | @include flex(0 percentage(1/9)); 84 | } 85 | 86 | .size-1-10 { 87 | @include flex(0 percentage(1/10)); 88 | } 89 | 90 | .size-1-11 { 91 | @include flex(0 percentage(1/11)); 92 | } 93 | 94 | .size-1-12 { 95 | @include flex(0 percentage(1/12)); 96 | } 97 | 98 | @include breakpoint(tablet-range) { 99 | .size-tablet-1-2 { 100 | @include flex(0 percentage(1/2)); 101 | } 102 | 103 | .size-tablet-1-3 { 104 | @include flex(0 percentage(1/3)); 105 | } 106 | 107 | .size-tablet-1-4 { 108 | @include flex(0 percentage(1/4)); 109 | } 110 | 111 | .size-tablet-1-5 { 112 | @include flex(0 percentage(1/5)); 113 | } 114 | 115 | .size-tablet-1-6 { 116 | @include flex(0 percentage(1/6)); 117 | } 118 | 119 | .size-tablet-1-7 { 120 | @include flex(0 percentage(1/7)); 121 | } 122 | 123 | .size-tablet-1-8 { 124 | @include flex(0 percentage(1/8)); 125 | } 126 | 127 | .size-tablet-1-9 { 128 | @include flex(0 percentage(1/9)); 129 | } 130 | 131 | .size-tablet-1-10 { 132 | @include flex(0 percentage(1/10)); 133 | } 134 | 135 | .size-tablet-1-11 { 136 | @include flex(0 percentage(1/11)); 137 | } 138 | 139 | .size-tablet-1-12 { 140 | @include flex(0 percentage(1/12)); 141 | } 142 | } 143 | 144 | // Fix for Firefox versions 27 and below 145 | @include breakpoint(mobile-only) { 146 | @supports not (flex-wrap: wrap) { 147 | .grid { 148 | display: block; 149 | @include flex-wrap(inherit); 150 | } 151 | .block { 152 | display: block; 153 | @include flex(inherit); 154 | } 155 | } 156 | } 157 | 158 | // Reordering 159 | .first-block { 160 | -webkit-box-ordinal-group: 0; 161 | -webkit-order: -1; 162 | -ms-flex-order: -1; 163 | order: -1; 164 | } 165 | 166 | .last-block { 167 | -webkit-box-ordinal-group: 2; 168 | -webkit-order: 1; 169 | -ms-flex-order: 1; 170 | order: 1; 171 | } 172 | 173 | // Fixed Grid Style 174 | .fixed-blocks { 175 | @include flex-flow(row wrap); 176 | .block { 177 | @include flex(inherit); 178 | width: $fixed-block-full; 179 | @include breakpoint(desktop-range) { 180 | width: $fixed-block-desktop; 181 | } 182 | @include breakpoint(tablet-range) { 183 | width: $fixed-block-tablet; 184 | } 185 | @include breakpoint(mobile-only) { 186 | width: 100%; 187 | } 188 | } 189 | } 190 | 191 | // Fix for browsers that don't support flex-wrap 192 | @supports not (flex-wrap: wrap) { 193 | .fixed-blocks { 194 | display: block; 195 | @include flex-flow(inherit); 196 | } 197 | } -------------------------------------------------------------------------------- /scss/nucleus/_forms.scss: -------------------------------------------------------------------------------- 1 | fieldset { 2 | border: 0; 3 | padding: $content-padding; 4 | margin: 0 0 $leading-margin 0; 5 | } 6 | 7 | input, 8 | label, 9 | select { 10 | display: block; 11 | } 12 | 13 | label { 14 | margin-bottom: $leading-margin / 4; 15 | 16 | &.required:after { 17 | content: "*"; 18 | } 19 | 20 | abbr { 21 | display: none; 22 | } 23 | } 24 | 25 | textarea, #{$all-text-inputs}, select[multiple=multiple] { 26 | @include transition(border-color); 27 | border-radius: $core-border-radius; 28 | margin-bottom: $leading-margin / 2; 29 | padding: ($leading-margin / 4) ($leading-margin / 4); 30 | width: 100%; 31 | 32 | &:focus { 33 | outline: none; 34 | } 35 | } 36 | 37 | textarea { 38 | resize: vertical; 39 | } 40 | 41 | input[type="checkbox"], input[type="radio"] { 42 | display: inline; 43 | margin-right: $leading-margin / 4; 44 | } 45 | 46 | input[type="file"] { 47 | width: 100%; 48 | } 49 | 50 | select { 51 | width: auto; 52 | max-width: 100%; 53 | margin-bottom: $leading-margin; 54 | } 55 | 56 | button, 57 | input[type="submit"] { 58 | cursor: pointer; 59 | user-select: none; 60 | vertical-align: middle; 61 | white-space: nowrap; 62 | border: inherit; 63 | } -------------------------------------------------------------------------------- /scss/nucleus/_typography.scss: -------------------------------------------------------------------------------- 1 | // Body Base 2 | body { 3 | font-size: $core-font-size; 4 | line-height: $core-line-height; 5 | } 6 | 7 | // Headings 8 | h1, h2, h3, h4, h5, h6 { 9 | margin: $leading-margin / 2 0 $leading-margin 0; 10 | text-rendering: optimizeLegibility; 11 | } 12 | 13 | h1 { 14 | font-size: $h1-font-size; 15 | } 16 | 17 | h2 { 18 | font-size: $h2-font-size; 19 | } 20 | 21 | h3 { 22 | font-size: $h3-font-size; 23 | } 24 | 25 | h4 { 26 | font-size: $h4-font-size; 27 | } 28 | 29 | h5 { 30 | font-size: $h5-font-size; 31 | } 32 | 33 | h6 { 34 | font-size: $h6-font-size; 35 | } 36 | 37 | // Paragraph 38 | p { 39 | margin: $leading-margin 0; 40 | } 41 | 42 | // Lists 43 | ul, ol { 44 | margin-top: $leading-margin; 45 | margin-bottom: $leading-margin; 46 | ul, ol { 47 | margin-top: 0; 48 | margin-bottom: 0; 49 | } 50 | } 51 | 52 | // Blockquote 53 | blockquote { 54 | margin: $leading-margin 0; 55 | padding-left: $leading-margin / 2; 56 | } 57 | 58 | cite { 59 | display: block; 60 | font-size: $core-font-size - 0.125; 61 | &:before { 62 | content: "\2014 \0020"; 63 | } 64 | } 65 | 66 | // Inline and Code 67 | pre { 68 | margin: $leading-margin 0; 69 | padding: $content-padding; 70 | } 71 | 72 | code { 73 | vertical-align: bottom; 74 | } 75 | 76 | // Extras 77 | small { 78 | font-size: $core-font-size - 0.125; 79 | } 80 | 81 | hr { 82 | border-left: none; 83 | border-right: none; 84 | border-top: none; 85 | margin: $leading-margin 0; 86 | } 87 | -------------------------------------------------------------------------------- /scss/nucleus/functions/_base.scss: -------------------------------------------------------------------------------- 1 | @import "direction"; 2 | @import "range"; -------------------------------------------------------------------------------- /scss/nucleus/functions/_direction.scss: -------------------------------------------------------------------------------- 1 | @function opposite-direction($dir) { 2 | @if $dir == 'left' { 3 | @return right; 4 | } 5 | @else if $dir == 'right' { 6 | @return left; 7 | } 8 | @else if $dir == 'ltr' { 9 | @return rtl; 10 | } 11 | @else if $dir == 'rtl' { 12 | @return ltr; 13 | } 14 | @else if $dir == 'top' { 15 | @return bottom; 16 | } 17 | @else if $dir == 'bottom' { 18 | @return top; 19 | } 20 | @else { 21 | @warn "#{$dir} is not a direction! Make sure your direction is all lowercase!"; 22 | @return false; 23 | } 24 | } 25 | 26 | @function named-direction($dir) { 27 | @if $dir == 'ltr' { 28 | @return left; 29 | } 30 | @else if $dir == 'rtl' { 31 | @return right; 32 | } 33 | @else { 34 | @warn "#{$dir} is not a valid HTML direction! Make sure you are using a valid HTML direction"; 35 | @return false; 36 | } 37 | } -------------------------------------------------------------------------------- /scss/nucleus/functions/_range.scss: -------------------------------------------------------------------------------- 1 | @function lower-bound($range){ 2 | @if length($range) <= 0 { 3 | @return 0; 4 | } 5 | @return nth($range,1); 6 | } 7 | 8 | @function upper-bound($range) { 9 | @if length($range) < 2 { 10 | @return 999999999999; 11 | } 12 | @return nth($range, 2); 13 | } -------------------------------------------------------------------------------- /scss/nucleus/mixins/_base.scss: -------------------------------------------------------------------------------- 1 | @import "breakpoints"; 2 | @import "utilities"; -------------------------------------------------------------------------------- /scss/nucleus/mixins/_breakpoints.scss: -------------------------------------------------------------------------------- 1 | // Breakpoints 2 | @mixin breakpoint($breakpoints, $media: all) { 3 | @each $breakpoint in $breakpoints { 4 | @if $breakpoint == large-desktop-range { 5 | @media only #{$media} and (min-width: $large-desktop-container) { @content; } 6 | } 7 | @else if $breakpoint == desktop-range { 8 | @media only #{$media} and (min-width: $desktop-container) and (max-width: $large-desktop-container - 0.062) { @content; } 9 | } 10 | @else if $breakpoint == tablet-range { 11 | @media only #{$media} and (min-width: $tablet-container) and (max-width: $desktop-container - 0.062) { @content; } 12 | } 13 | @else if $breakpoint == large-mobile-range { 14 | @media only #{$media} and (min-width: $large-mobile-container + 0.063) and (max-width: $tablet-container - 0.062) { @content; } 15 | } 16 | @else if $breakpoint == small-mobile-range { 17 | @media only #{$media} and (max-width: $large-mobile-container) { @content; } 18 | } 19 | @else if $breakpoint == no-mobile { 20 | @media only #{$media} and (min-width: $tablet-container) { @content; } 21 | } 22 | @else if $breakpoint == mobile-only { 23 | @media only #{$media} and (max-width: $tablet-container - 0.062) { @content; } 24 | } 25 | @else if $breakpoint == desktop-only { 26 | @media only #{$media} and (max-width: $desktop-container - 0.062) { @content; } 27 | } 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /scss/nucleus/mixins/_utilities.scss: -------------------------------------------------------------------------------- 1 | 2 | 3 | // List Reset 4 | %list-reset { 5 | margin: 0; 6 | padding: 0; 7 | list-style: none; 8 | } 9 | 10 | // Vertical Centering 11 | %vertical-align { 12 | position: relative; 13 | top: 50%; 14 | -webkit-transform: translateY(-50%); 15 | -moz-transform: translateY(-50%); 16 | -o-transform: translateY(-50%); 17 | -ms-transform: translateY(-50%); 18 | transform: translateY(-50%); 19 | } 20 | 21 | // Columns 22 | @mixin columns($columns) { 23 | width: percentage(1/$columns); 24 | } 25 | 26 | // Float with margin variable 27 | @mixin float($direction, $margin: 0) { 28 | float: $direction; 29 | margin-#{opposite-direction($direction)}: $margin; 30 | } 31 | -------------------------------------------------------------------------------- /scss/nucleus/particles/_align-text.scss: -------------------------------------------------------------------------------- 1 | // Alignment Classes 2 | $align-class-names: 3 | large-desktop, 4 | desktop, 5 | tablet, 6 | large-mobile, 7 | small-mobile, 8 | no-mobile, 9 | mobile-only; 10 | 11 | // Breakpoints 12 | $align-class-breakpoints: 13 | $large-desktop-range, 14 | $desktop-range, 15 | $tablet-range, 16 | $large-mobile-range, 17 | $small-mobile-range, 18 | $no-mobile, 19 | $mobile-only; 20 | 21 | // Create Responsive Alignment Classes 22 | @mixin align-classes{ 23 | .text-left { 24 | text-align: left !important; 25 | } 26 | .text-right { 27 | text-align: right !important; 28 | } 29 | .text-center { 30 | text-align: center !important; 31 | } 32 | .text-justify { 33 | text-align: justify !important; 34 | } 35 | 36 | @for $i from 1 through length($align-class-names) { 37 | @media #{(nth($align-class-breakpoints, $i))} { 38 | .#{(nth($align-class-names, $i))}-text-left { text-align: left !important; } 39 | .#{(nth($align-class-names, $i))}-text-right { text-align: right !important; } 40 | .#{(nth($align-class-names, $i))}-text-center { text-align: center !important; } 41 | .#{(nth($align-class-names, $i))}-text-justify { text-align: justify !important; } 42 | } 43 | } 44 | } 45 | 46 | @include align-classes; -------------------------------------------------------------------------------- /scss/nucleus/particles/_visibility.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav-theme-antimatter/275d646f009be13e83373eb5a7e5005b74aade31/scss/nucleus/particles/_visibility.scss -------------------------------------------------------------------------------- /scss/particles.scss: -------------------------------------------------------------------------------- 1 | // REQUIRED DEPENDENCIES - DO NOT CHANGE 2 | 3 | // Load Third Party Libraries 4 | @import "vendor/bourbon/bourbon"; 5 | 6 | // Load Nucleus Configuration 7 | @import "configuration/nucleus/base"; 8 | 9 | // Load Template Configuration 10 | @import "configuration/template/base"; 11 | 12 | // Load Nucleus Mixins and Functions 13 | @import "nucleus/functions/base"; 14 | @import "nucleus/mixins/base"; 15 | 16 | //------------------------------------------- 17 | 18 | // LOAD PARTICLES 19 | 20 | // Text Alignment Classes 21 | @import "nucleus/particles/align-text"; 22 | 23 | // Show and Hide Based on Screen Size 24 | @import "nucleus/particles/visibility"; -------------------------------------------------------------------------------- /scss/template.scss: -------------------------------------------------------------------------------- 1 | // REQUIRED DEPENDENCIES - DO NOT CHANGE 2 | 3 | // Load Third Party Libraries 4 | @import "vendor/bourbon/bourbon"; 5 | 6 | // Load Nucleus Configuration 7 | @import "configuration/nucleus/base"; 8 | 9 | // Load Template Configuration 10 | @import "configuration/template/base"; 11 | 12 | // Load Nucleus Mixins and Functions 13 | @import "nucleus/functions/base"; 14 | @import "nucleus/mixins/base"; 15 | 16 | // Load Template Library 17 | @import "template/modules/base"; 18 | 19 | //------------------------------------------- 20 | 21 | // TEMPLATE COMPONENTS 22 | 23 | // Core 24 | @import "template/core"; 25 | @import "template/fonts"; 26 | 27 | // Extensions 28 | @import "template/extensions"; 29 | 30 | // Header 31 | @import "template/header"; 32 | 33 | // Footer 34 | @import "template/footer"; 35 | 36 | // Typography 37 | @import "template/typography"; 38 | 39 | // Forms 40 | @import "template/forms"; 41 | 42 | // Tables 43 | @import "template/tables"; 44 | 45 | // Buttons 46 | @import "template/buttons"; 47 | 48 | // Bullets 49 | @import "template/bullets"; 50 | 51 | // Pushy Panel 52 | @import "template/panel"; 53 | 54 | // Blog 55 | @import "template/blog"; 56 | 57 | // Errors 58 | @import "template/errors"; 59 | 60 | // SimpleSearch 61 | @import "template/simplesearch"; 62 | 63 | // Custom 64 | @import "template/custom"; 65 | 66 | // Modular 67 | @import "template/modular/all"; 68 | -------------------------------------------------------------------------------- /scss/template/_blog.scss: -------------------------------------------------------------------------------- 1 | .blog-header { 2 | 3 | padding-top: 2rem; 4 | padding-bottom: 2rem; 5 | 6 | &.blog-header-image { 7 | background-size: cover; 8 | background-position: center; 9 | 10 | h1, h2 { 11 | color: $header-text; 12 | } 13 | 14 | } 15 | 16 | h1 { 17 | font-size: 4rem; 18 | margin-top: 0; 19 | @include breakpoint(tablet-range) { 20 | font-size: 3rem; 21 | } 22 | @include breakpoint(mobile-only) { 23 | font-size: 2.5rem; 24 | line-height: 1.2; 25 | margin-bottom: 2.5rem; 26 | } 27 | } 28 | 29 | & + .blog-content { 30 | padding-top: $padding-vert; 31 | } 32 | } 33 | 34 | // List Blog Item 35 | .list-item { 36 | 37 | border-bottom: 1px solid $border-color; 38 | margin-bottom: $padding-vert; 39 | 40 | &:last-child { 41 | border-bottom: 0; 42 | } 43 | 44 | .list-blog-header { 45 | position: relative; 46 | h4 { 47 | 48 | margin-bottom: 0.5rem; 49 | a { 50 | color: $core-text; 51 | &:hover { 52 | color: $core-accent; 53 | } 54 | } 55 | } 56 | 57 | img { 58 | display: block; 59 | margin-top: 1rem; 60 | border-radius: $border-radius; 61 | } 62 | } 63 | 64 | .list-blog-date { 65 | float: right; 66 | text-align: center; 67 | span { 68 | display: block; 69 | font-size: 1.75rem; 70 | font-weight: $font-weight-bold; 71 | line-height: 110%; 72 | } 73 | em { 74 | display: block; 75 | border-top: 1px solid $border-color; 76 | font-style: normal; 77 | text-transform: uppercase; 78 | } 79 | } 80 | } 81 | 82 | // Bigger first para 83 | .blog-content-item { 84 | .list-blog-padding > p:nth-child(2) { 85 | font-size: $core-font-size + 0.2rem; 86 | } 87 | } 88 | 89 | // Tags 90 | .tags { 91 | a { 92 | display: inline-block; 93 | font-size: $core-font-size - 0.2rem; 94 | border: 1px solid $core-accent; 95 | border-radius: $border-radius; 96 | padding: 0.1rem 0.4rem; 97 | margin-bottom: 0.2rem; 98 | text-transform: uppercase; 99 | } 100 | } 101 | 102 | // Archives & Related-Pages 103 | .archives, .related-pages { 104 | padding: 0; 105 | list-style: none; 106 | li { 107 | border-bottom: 1px solid $border-color; 108 | line-height: $core-font-size + 1rem; 109 | &:last-child { 110 | border-bottom: 0; 111 | } 112 | } 113 | } 114 | 115 | .related-pages { 116 | li { 117 | a { 118 | display: block; 119 | } 120 | } 121 | .score { 122 | display: block; 123 | float: right; 124 | color: #999; 125 | font-size: 85% 126 | } 127 | } 128 | 129 | // Syndicate 130 | .syndicate { 131 | a { 132 | margin-bottom: 1rem; 133 | } 134 | } 135 | 136 | // Breadcrumbs 137 | div#breadcrumbs { 138 | padding-left: 0; 139 | @include breakpoint(mobile-only) { 140 | display: none; 141 | } 142 | } 143 | 144 | // Sidebar 145 | #sidebar { 146 | padding-left: 3rem; 147 | @include breakpoint(mobile-only) { 148 | padding-left: 0; 149 | } 150 | .sidebar-content { 151 | h4 { 152 | margin-bottom: 1rem; 153 | } 154 | p, ul { 155 | margin-top: 1rem; 156 | } 157 | margin-bottom: $padding-vert; 158 | } 159 | } 160 | 161 | // Pagination 162 | ul.pagination { 163 | margin: 0 0 $padding-vert; 164 | text-align: center; 165 | } 166 | 167 | // Prev / Next 168 | .prev-next { 169 | margin-top: 5rem; 170 | text-align: center; 171 | } 172 | -------------------------------------------------------------------------------- /scss/template/_bullets.scss: -------------------------------------------------------------------------------- 1 | .bullets { 2 | margin: $leading-margin 0; 3 | margin-left: -$leading-margin / 2; 4 | margin-right: -$leading-margin / 2; 5 | overflow: auto; 6 | } 7 | 8 | .bullet { 9 | float: left; 10 | padding: 0 $leading-margin / 2; 11 | } 12 | 13 | .two-column-bullet { 14 | @include columns(2); 15 | @include breakpoint(mobile-only) { 16 | @include columns(1); 17 | } 18 | } 19 | 20 | .three-column-bullet { 21 | @include columns(3); 22 | @include breakpoint(mobile-only) { 23 | @include columns(1); 24 | } 25 | } 26 | 27 | .four-column-bullet { 28 | @include columns(4); 29 | @include breakpoint(mobile-only) { 30 | @include columns(1); 31 | } 32 | } 33 | 34 | .bullet-icon { 35 | float: left; 36 | background: $bullet-icon-color-1; 37 | padding: $bullet-icon-size / 4; 38 | width: $bullet-icon-size; 39 | height: $bullet-icon-size; 40 | border-radius: 50%; 41 | color: $white; 42 | font-size: $bullet-icon-size / 2; 43 | text-align: center; 44 | } 45 | 46 | .bullet-icon-1 { 47 | background: $bullet-icon-color-1; 48 | } 49 | 50 | .bullet-icon-2 { 51 | background: $bullet-icon-color-2; 52 | } 53 | 54 | .bullet-icon-3 { 55 | background: $bullet-icon-color-3; 56 | } 57 | 58 | .bullet-content { 59 | margin-left: $bullet-icon-size * 1.3; 60 | } -------------------------------------------------------------------------------- /scss/template/_buttons.scss: -------------------------------------------------------------------------------- 1 | .button { 2 | @extend %button; 3 | @include button-color($core-accent); 4 | } 5 | 6 | .button-secondary { 7 | @extend %button; 8 | @include button-color($secondary-link); 9 | } -------------------------------------------------------------------------------- /scss/template/_core.scss: -------------------------------------------------------------------------------- 1 | html, body { 2 | height: 100%; // use !important to override slidebars.min.css 3 | } 4 | 5 | body { 6 | background: $page-bg; 7 | color: $core-text; 8 | -webkit-font-smoothing: antialiased; 9 | -moz-osx-font-smoothing: grayscale; 10 | } 11 | 12 | a { 13 | color: $core-accent; 14 | &:hover { 15 | color: darken($core-accent, 20%); 16 | } 17 | } 18 | 19 | b, strong { 20 | font-weight: $font-weight-bold 21 | } 22 | 23 | // Global Container 24 | #container { 25 | min-height: 100%; 26 | position: relative; 27 | } 28 | 29 | // Fullwidth styles 30 | .fullwidth { 31 | #body { 32 | padding-left: 0; 33 | padding-right: 0; 34 | } 35 | #header, #breadcrumbs, .blog-header, .blog-content-item, .content-wrapper, ul.pagination, #body > .modular-row { 36 | @extend .padding-horiz; 37 | } 38 | } 39 | 40 | // Global body styling 41 | #body { 42 | @extend .default-animation; 43 | @extend .padding-horiz; 44 | 45 | background: $page-bg; 46 | padding-top: $header-height + $padding-vert; 47 | padding-bottom: $footer-height + $padding-vert + 2rem; 48 | } 49 | 50 | // Alignment 51 | .left { 52 | float: left; 53 | } 54 | 55 | .right { 56 | float: right; 57 | } 58 | 59 | -------------------------------------------------------------------------------- /scss/template/_custom.scss: -------------------------------------------------------------------------------- 1 | // Your custom SCSS should be written here... 2 | 3 | .grav-lightslider { 4 | .lSSlideOuter { 5 | .lSPager.lSpg { 6 | > li a { 7 | z-index: 1; 8 | } 9 | } 10 | } 11 | } 12 | 13 | #body > script:first-child + .grav-lightslider { 14 | margin-top: -3rem; 15 | } -------------------------------------------------------------------------------- /scss/template/_errors.scss: -------------------------------------------------------------------------------- 1 | // Error specific styling 2 | #error { 3 | text-align: center; 4 | display: flex; 5 | align-items: center; 6 | justify-content: center; 7 | height: 100%; 8 | padding-bottom: 6rem; 9 | 10 | h1 { 11 | font-size: $core-font-size + 4.0rem; 12 | } 13 | 14 | p { 15 | margin: 1rem 0; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /scss/template/_extensions.scss: -------------------------------------------------------------------------------- 1 | .default-animation { 2 | @include transition(all 0.5s ease); 3 | } 4 | 5 | .padding-horiz { 6 | padding-left: $padding-horiz; 7 | padding-right: $padding-horiz; 8 | @include breakpoint(desktop-only) { 9 | padding-left: $padding-horiz - 3rem; 10 | padding-right: $padding-horiz - 3rem; 11 | } 12 | 13 | @include breakpoint(mobile-only) { 14 | padding-left: $padding-horiz - 6rem; 15 | padding-right: $padding-horiz - 6rem; 16 | } 17 | } 18 | 19 | .padding-vert { 20 | padding-top: $padding-vert; 21 | padding-bottom: $padding-vert; 22 | } 23 | -------------------------------------------------------------------------------- /scss/template/_fonts.scss: -------------------------------------------------------------------------------- 1 | // Import Google Web Fonts 2 | @import url(//fonts.googleapis.com/css?family=Montserrat:400|Raleway:300,400,600|Inconsolata); 3 | 4 | -------------------------------------------------------------------------------- /scss/template/_footer.scss: -------------------------------------------------------------------------------- 1 | // Footer styling 2 | #footer { 3 | position: absolute; 4 | background: $footer-bg; 5 | height: $footer-height; 6 | right: 0; 7 | bottom: 0; 8 | left: 0; 9 | @extend .padding-horiz; 10 | color: $footer-text; 11 | text-align: center; 12 | 13 | a:hover { 14 | color: #fff; 15 | } 16 | 17 | .totop { 18 | position: absolute; 19 | bottom: $footer-height - 1rem; 20 | text-align: center; 21 | left: 0; 22 | right: 0; 23 | span { 24 | font-size: 1.7rem; 25 | line-height: 2.5rem; 26 | background: $footer-bg; 27 | width: 3rem; 28 | height: 2rem; 29 | border-radius: $border-radius; 30 | display: inline-block; 31 | text-align: top; 32 | } 33 | } 34 | 35 | p { 36 | @extend %vertical-align; 37 | margin: 0; 38 | .fa { 39 | color: #fff; 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /scss/template/_forms.scss: -------------------------------------------------------------------------------- 1 | fieldset { 2 | border: 1px solid $core-border-color; 3 | } 4 | 5 | textarea, #{$all-text-inputs}, select[multiple=multiple] { 6 | background-color: white; 7 | border: 1px solid $core-border-color; 8 | box-shadow: $core-box-shadow; 9 | 10 | &:hover { 11 | border-color: $core-border-color-hover; 12 | } 13 | 14 | &:focus { 15 | border-color: $core-border-color-focus; 16 | box-shadow: $core-box-shadow-focus; 17 | } 18 | } 19 | 20 | label { 21 | @extend strong; 22 | } 23 | 24 | // Forms 25 | .form-field { 26 | .required { 27 | color: #F3443F; 28 | font-size: $core-font-size + 2rem; 29 | line-height: $core-font-size + 2rem; 30 | vertical-align: top; 31 | height: 1.5rem; 32 | display: inline-block; 33 | } 34 | } 35 | 36 | form { 37 | .buttons { 38 | text-align: center; 39 | } 40 | input { 41 | font-weight: 400; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /scss/template/_header.scss: -------------------------------------------------------------------------------- 1 | // Header styling 2 | $dropdown-color: #f6f6f6; 3 | 4 | #header { 5 | @extend .default-animation; 6 | @extend .padding-horiz; 7 | position: fixed; 8 | z-index: 10; 9 | width: 100%; 10 | height: $header-height; 11 | background-color: rgba(255,255,255,0.90); 12 | box-shadow: 0 0.05rem 1rem rgba(0,0,0, 0.15); 13 | 14 | // scroll based changes 15 | &.scrolled { 16 | height: $header-height - 2rem; 17 | background-color: rgba(255,255,255,0.90) !important; 18 | box-shadow: 0 0.05rem 1rem rgba(0,0,0, 0.15) !important; 19 | 20 | #logo h3 { 21 | color: $core-text !important; 22 | font-size: 1.6rem !important; 23 | } 24 | #logo a, #navbar span { 25 | color: $core-text !important; 26 | } 27 | #navbar a { 28 | color: $core-accent !important; 29 | &:hover { 30 | color: darken($core-accent, 20%) !important; 31 | } 32 | } 33 | #navbar a:before, #navbar a:after { 34 | background-color: $core-accent !important; 35 | } 36 | 37 | .navigation { 38 | margin-top: 0.5rem !important; 39 | } 40 | } 41 | 42 | // set heights for vertical centering 43 | > .grid, #logo, #navbar { 44 | height: 100%; 45 | } 46 | 47 | #logo { 48 | float: left; 49 | h3 { 50 | @extend .default-animation; 51 | @extend %vertical-align; 52 | font-size: 2rem; 53 | line-height: 2rem; 54 | margin: 0; 55 | text-transform: uppercase; 56 | a { 57 | color: $core-text; 58 | } 59 | } 60 | } 61 | 62 | #navbar { 63 | font-size: $core-font-size - 0.1rem; 64 | 65 | /* Child Indicator */ 66 | .has-children { 67 | 68 | & > a { 69 | & > span { 70 | display: inline-block; 71 | padding-right: 8px; 72 | 73 | &:after { 74 | font-family: FontAwesome; 75 | content: '\f107'; 76 | position: absolute; 77 | display: inline-block; 78 | right: 8px; 79 | top: 4px; 80 | } 81 | } 82 | &:after, &:before { 83 | display: none; 84 | } 85 | } 86 | 87 | & .has-children > a > span:after { 88 | content: '\f105'; 89 | } 90 | } 91 | 92 | .navigation > .has-children:hover > a { 93 | background: $dropdown-color; 94 | border: 1px solid darken($dropdown-color, 4%); 95 | border-bottom-color: $dropdown-color; 96 | margin: -1px -1px 0 -1px; 97 | z-index: 1000; 98 | position: relative; 99 | padding-bottom: 1px; 100 | } 101 | 102 | ul { 103 | 104 | margin: 0; 105 | padding: 0; 106 | list-style: none; 107 | 108 | &.navigation { 109 | display: inline-block; 110 | float: right; 111 | @extend .default-animation; 112 | 113 | margin-top: 1.4rem; 114 | 115 | li { 116 | float: left; 117 | position: relative; 118 | 119 | a { 120 | font-family: $font-family-header; 121 | display: inline-block; 122 | padding: 0.3rem 0.8rem; 123 | 124 | -webkit-backface-visibility: hidden; 125 | 126 | 127 | &:before, &:after { 128 | content: ""; 129 | position: absolute; 130 | width: 100%; 131 | height: 1px; 132 | bottom: 0; 133 | left: 0; 134 | background-color: $core-accent; 135 | visibility: hidden; 136 | @include transform(scaleX(0)); 137 | @include transition(all 0.2s ease); 138 | 139 | } 140 | 141 | &:hover:before { 142 | visibility: visible; 143 | @include transform(scaleX(0.75)); 144 | } 145 | 146 | &.active:after { 147 | top: 0; 148 | visibility: visible; 149 | @include transform(scaleX(0.75)); 150 | } 151 | } 152 | 153 | &.active { 154 | a:after { 155 | top: 0; 156 | visibility: visible; 157 | @include transform(scaleX(0.75)); 158 | } 159 | } 160 | 161 | /*Active dropdown nav item */ 162 | ul { 163 | position: absolute; 164 | background-color: $dropdown-color; 165 | border: 1px solid darken($dropdown-color, 4%); 166 | border-top: 0; 167 | min-width: 12rem; 168 | text-align: left; 169 | z-index: 999; 170 | left: -1px; 171 | display: none; 172 | } 173 | 174 | ul li { 175 | display: block; 176 | float: none; 177 | 178 | /* Active Dropdown nav item */ 179 | &.active > a { 180 | background-color: darken($dropdown-color, 4%); 181 | color: $core-accent; 182 | } 183 | 184 | &:hover > a { 185 | background-color: $core-accent; 186 | color: $white; 187 | } 188 | 189 | a { 190 | display: block; 191 | margin: 0 -1px; 192 | 193 | &:after, &:before { 194 | display: none; 195 | } 196 | } 197 | } 198 | 199 | /* Dropdown CSS */ 200 | ul ul { 201 | left: 100%; 202 | top: 0px; 203 | } 204 | 205 | /* Active on Hover */ 206 | &:hover > ul { 207 | display: block; 208 | } 209 | 210 | } 211 | @include breakpoint(desktop-only) { 212 | display: none; 213 | } 214 | } 215 | } 216 | 217 | .panel-activation { 218 | @extend %vertical-align; 219 | padding: 1rem; 220 | display: none; 221 | font-size: 1.8rem; 222 | cursor: pointer; 223 | float: right; 224 | @include breakpoint(desktop-only) { 225 | display: inline-block; 226 | } 227 | } 228 | 229 | } 230 | 231 | } 232 | 233 | // Header Image 234 | .header-image { 235 | &.fullwidth { 236 | #body { 237 | padding-left: 0; 238 | padding-right: 0; 239 | 240 | >.listing-row { 241 | padding-left: $padding-horiz; 242 | padding-right: $padding-horiz; 243 | } 244 | } 245 | } 246 | .listing-row:last-child { 247 | margin-bottom: 2rem; 248 | } 249 | 250 | #body { 251 | .flush-top { 252 | margin-top: - $header-height - $padding-vert - 1.5rem; 253 | padding-top: $header-height + 4rem; 254 | } 255 | } 256 | 257 | #breadcrumbs { 258 | margin-top: 1rem; 259 | } 260 | 261 | #header { 262 | background-color: rgba($header-text,0); 263 | box-shadow: none; 264 | 265 | .navigation .has-children:hover a { 266 | color: $core-accent; 267 | } 268 | 269 | #logo h3, #logo a { 270 | color: $header-text; 271 | } 272 | a, .menu-btn { 273 | color: $header-text; 274 | } 275 | a:before, a:after { 276 | background-color: rgba($header-text,0.7) !important; 277 | } 278 | 279 | } 280 | } 281 | -------------------------------------------------------------------------------- /scss/template/_panel.scss: -------------------------------------------------------------------------------- 1 | $sidebar-color: #333; 2 | $panel-padding: 1rem; 3 | $panel-text: #ddd; 4 | 5 | .sb-slidebar { 6 | background-color: $sidebar-color !important; 7 | } 8 | 9 | #panel { 10 | padding-top: $panel-padding; 11 | color: $panel-text; 12 | .navigation { 13 | list-style: none; 14 | padding: 0; 15 | 16 | li { 17 | a { 18 | color: $panel-text; 19 | display: block; 20 | padding: 0.5rem 1rem; 21 | font-weight: 600; 22 | 23 | &:hover { 24 | color: lighten($panel-text,20%); 25 | background-color: darken($sidebar-color,5%); 26 | } 27 | 28 | &:last-child { 29 | border-bottom: 0; 30 | } 31 | } 32 | 33 | &.active { 34 | & > a { 35 | background: #fff; 36 | color: $core-text; 37 | &:hover { 38 | color: $core-text; 39 | } 40 | } 41 | } 42 | border-bottom: 1px solid lighten($sidebar-color,4%); 43 | &:first-child { 44 | border-top: 1px solid lighten($sidebar-color,4%); 45 | } 46 | 47 | ul { 48 | list-style: none; 49 | padding: 0; 50 | 51 | li { 52 | border: 0 !important; 53 | a { 54 | color: darken($panel-text, 10%); 55 | padding: 0.2rem 1rem 0.2rem 2rem; 56 | font-size: 0.9rem; 57 | } 58 | li a { 59 | padding-left: 3rem; 60 | li a { 61 | padding-left: 4rem; 62 | } 63 | } 64 | &.active { 65 | & > a { 66 | background: #ccc; 67 | } 68 | } 69 | } 70 | } 71 | } 72 | } 73 | } 74 | 75 | -------------------------------------------------------------------------------- /scss/template/_simplesearch.scss: -------------------------------------------------------------------------------- 1 | .simplesearch { 2 | 3 | h1 { 4 | margin-bottom: 0; 5 | } 6 | 7 | .center { 8 | text-align: center; 9 | } 10 | 11 | 12 | input { 13 | display: inline-block; 14 | max-width: 30rem; 15 | font-size: 2rem; 16 | } 17 | 18 | .search-image { 19 | margin-top: 1rem; 20 | img { 21 | border-radius: 4px; 22 | 23 | @include breakpoint(mobile-only) { 24 | display: none; 25 | } 26 | } 27 | } 28 | 29 | .search-item { 30 | @include breakpoint(mobile-only) { 31 | margin-left: 0; 32 | } 33 | } 34 | 35 | .search-wrapper { 36 | .search-submit { 37 | height: 52px; 38 | padding: 0 10px; 39 | img { 40 | width: 30px; 41 | } 42 | } 43 | } 44 | 45 | 46 | .search-details { 47 | float: right; 48 | margin-top: -2.5rem; 49 | font-weight: bold; 50 | font-size: 1rem; 51 | color: lighten($core-text,20%); 52 | 53 | @include breakpoint(mobile-only) { 54 | float: none; 55 | margin-top: -0.2rem; 56 | margin-bottom: 1rem; 57 | } 58 | } 59 | 60 | hr { 61 | border-bottom: 1px solid #eee; 62 | } 63 | 64 | } 65 | -------------------------------------------------------------------------------- /scss/template/_tables.scss: -------------------------------------------------------------------------------- 1 | table { 2 | border: 1px solid lighten($core-border-color,5%); 3 | table-layout: auto; 4 | } 5 | 6 | th { 7 | @extend strong; 8 | background: lighten($core-border-color,10%); 9 | padding: 0.5rem; 10 | } 11 | 12 | td { 13 | padding: 0.5rem; 14 | border: 1px solid lighten($core-border-color,5%); 15 | } 16 | -------------------------------------------------------------------------------- /scss/template/_typography.scss: -------------------------------------------------------------------------------- 1 | // Body Base 2 | html, body, button, input, select, textarea, .pure-g, .pure-g [class *= "pure-u"] { 3 | font-family: $font-family-default; 4 | font-weight: 400; 5 | } 6 | 7 | // Headings 8 | h1, h2, h3, h4, h5, h6 { 9 | font-family: $font-family-header; 10 | font-weight: 400; 11 | text-rendering: optimizeLegibility; 12 | letter-spacing: -0px; 13 | } 14 | 15 | h1 { 16 | font-size: $h1-font-size; 17 | @include breakpoint(mobile-only) { 18 | font-size: 2.5rem; 19 | line-height: 1.2; 20 | margin-bottom: 2.5rem; 21 | } 22 | } 23 | 24 | h2 { 25 | @include breakpoint(tablet-range) { 26 | font-size: $h2-font-size - .40; 27 | } 28 | @include breakpoint(mobile-only) { 29 | font-size: $h2-font-size - .50; 30 | } 31 | } 32 | 33 | h3 { 34 | @include breakpoint(tablet-range) { 35 | font-size: $h3-font-size - .40; 36 | } 37 | @include breakpoint(mobile-only) { 38 | font-size: $h3-font-size - .50; 39 | } 40 | } 41 | 42 | h4 { 43 | @include breakpoint(tablet-range) { 44 | font-size: $h4-font-size - .40; 45 | } 46 | @include breakpoint(mobile-only) { 47 | font-size: $h4-font-size - .50; 48 | } 49 | } 50 | 51 | h1 { 52 | text-align: center; 53 | letter-spacing: -3px; 54 | } 55 | 56 | h2 { 57 | letter-spacing: -2px; 58 | } 59 | 60 | h3 { 61 | letter-spacing: -1px; 62 | } 63 | 64 | h1 + h2 { 65 | margin: -2rem 0 2rem 0; 66 | font-size: 2rem; 67 | @include breakpoint(tablet-range) { 68 | font-size: 1.6rem; 69 | } 70 | @include breakpoint(mobile-only) { 71 | font-size: 1.5rem; 72 | } 73 | line-height: 1; 74 | text-align: center; 75 | font-family: $font-family-default; 76 | font-weight: 300; 77 | } 78 | 79 | h2 + h3 { 80 | margin: 0.5rem 0 2rem 0; 81 | font-size: 2rem; 82 | @include breakpoint(tablet-range) { 83 | font-size: 1.6rem; 84 | } 85 | @include breakpoint(mobile-only) { 86 | font-size: 1.5rem; 87 | } 88 | line-height: 1; 89 | text-align: center; 90 | font-family: $font-family-default; 91 | font-weight: 300; 92 | } 93 | 94 | 95 | // Blockquote 96 | blockquote { 97 | border-left: 10px solid $rule-color; 98 | p { 99 | font-size: 1.1rem; 100 | color: #999; 101 | } 102 | cite { 103 | display: block; 104 | text-align: right; 105 | color: #666; 106 | font-size: 1.2rem; 107 | } 108 | } 109 | 110 | // NOTES!!!! 111 | blockquote > blockquote > blockquote { 112 | 113 | margin: 0; 114 | 115 | p { 116 | 117 | padding: 15px; 118 | display: block; 119 | font-size: 1rem; 120 | margin-top: 0rem; 121 | margin-bottom: 0rem; 122 | } 123 | 124 | > p { 125 | // Yellow 126 | margin-left: -71px; 127 | border-left: 10px solid $notes-info-border; 128 | background: $notes-info-bg; 129 | color: darken($notes-info-border,15%); 130 | a { 131 | color: darken($notes-info-border,25%); 132 | &:hover { 133 | color: lighten($notes-info-border,5%); 134 | } 135 | } 136 | } 137 | 138 | > blockquote > p { 139 | // Red 140 | margin-left: -94px; 141 | border-left: 10px solid $notes-warning-border; 142 | background: $notes-warning-bg; 143 | color: darken($notes-warning-border,15%); 144 | a { 145 | color: darken($notes-warning-border,25%); 146 | &:hover { 147 | color: lighten($notes-warning-border,5%); 148 | } 149 | } 150 | } 151 | 152 | > blockquote > blockquote > p { 153 | // Blue 154 | margin-left: -118px; 155 | border-left: 10px solid $notes-note-border; 156 | background: $notes-note-bg; 157 | color: darken($notes-note-border,15%); 158 | a { 159 | color: darken($notes-note-border,25%); 160 | &:hover { 161 | color: lighten($notes-note-border,5%); 162 | } 163 | } 164 | } 165 | 166 | > blockquote > blockquote > blockquote > p { 167 | // Green 168 | margin-left: -142px; 169 | border-left: 10px solid $notes-success-border; 170 | background: $notes-success-bg; 171 | color: darken($notes-success-border,15%); 172 | a { 173 | color: darken($notes-success-border,25%); 174 | &:hover { 175 | color: lighten($notes-success-border,5%); 176 | } 177 | } 178 | } 179 | 180 | } 181 | 182 | // Inline and Code 183 | code, 184 | kbd, 185 | pre, 186 | samp { 187 | font-family: $font-family-mono; 188 | } 189 | 190 | code { 191 | background: $code-bg; 192 | color: darken($code-text,10%); 193 | } 194 | 195 | pre { 196 | padding: 2rem; 197 | background: $pre-bg; 198 | border: 1px solid $core-border-color; 199 | border-radius: 3px; 200 | code { 201 | color: $pre-text; 202 | background: inherit; 203 | } 204 | } 205 | 206 | // Extras 207 | hr { 208 | border-bottom: 4px solid $rule-color; 209 | } 210 | 211 | // Page Title 212 | .page-title { 213 | margin-top: -25px; 214 | padding: 25px; 215 | float: left; 216 | clear: both; 217 | background: $core-accent; 218 | color: $white; 219 | } 220 | 221 | // Label 222 | .label { 223 | vertical-align: middle; 224 | background: $core-accent; 225 | border-radius: 100%; 226 | color: $white; 227 | height: 1rem; 228 | min-width: 1rem; 229 | line-height: 1rem; 230 | display: inline-block; 231 | text-align: center; 232 | font-size: $core-font-size - 0.3rem; 233 | font-family: $font-family-header; 234 | margin-right: 0.75rem; 235 | } 236 | 237 | -------------------------------------------------------------------------------- /scss/template/modular/_all.scss: -------------------------------------------------------------------------------- 1 | @import "showcase"; 2 | @import "features"; 3 | @import "text"; 4 | 5 | .modular { 6 | .modular-row:last-child { 7 | margin-bottom: 2rem; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /scss/template/modular/_features.scss: -------------------------------------------------------------------------------- 1 | // Modular Showcase styling 2 | .modular { 3 | .features { 4 | padding: 6rem 0; 5 | text-align: center; 6 | @include clearfix; 7 | 8 | h2 { 9 | margin: 0; 10 | line-height: 100%; 11 | } 12 | 13 | p { 14 | margin: 1rem 0; 15 | font-size: $core-font-size + 0.2rem; 16 | @include breakpoint(mobile-only) { 17 | font-size: $core-font-size; 18 | } 19 | } 20 | 21 | .feature-items { 22 | margin-top: 2rem; 23 | @supports not (flex-wrap: wrap) { 24 | overflow: hidden; 25 | } 26 | } 27 | 28 | .feature { 29 | display:block; 30 | float: left; 31 | width: 25%; 32 | vertical-align: top; 33 | margin-top: 2rem; 34 | margin-bottom: 1rem; 35 | @include breakpoint(large-mobile-range) { 36 | margin-top: 1rem; 37 | width: 50%; 38 | } 39 | @include breakpoint(small-mobile-range) { 40 | margin-top: 1rem; 41 | width: 100%; 42 | } 43 | 44 | i.fa { 45 | font-size: 2rem; 46 | color: $core-accent; 47 | } 48 | 49 | h4 { 50 | margin: 0; 51 | font-size: 1.1rem; 52 | } 53 | 54 | p { 55 | display: inline-block; 56 | font-size: $core-font-size; 57 | margin: 0.2rem 0 1rem; 58 | } 59 | } 60 | 61 | &.big { 62 | 63 | text-align: center; 64 | 65 | .feature { 66 | width: 50%; 67 | @include breakpoint(small-mobile-range) { 68 | margin-top: 1rem; 69 | width: 100%; 70 | } 71 | } 72 | 73 | i.fa { 74 | font-size: 3rem; 75 | float: left; 76 | } 77 | 78 | .feature-content { 79 | padding-right: 2rem; 80 | 81 | &.icon-offset { 82 | margin-left: 5rem; 83 | } 84 | 85 | h4 { 86 | font-size: 1.3rem; 87 | text-align: left; 88 | } 89 | 90 | p { 91 | padding: 0; 92 | text-align: left; 93 | } 94 | } 95 | } 96 | 97 | } 98 | 99 | } 100 | -------------------------------------------------------------------------------- /scss/template/modular/_showcase.scss: -------------------------------------------------------------------------------- 1 | // Modular Showcase styling 2 | .modular { 3 | 4 | // special case for header 5 | &.header-image { 6 | 7 | #header { 8 | background-color: rgba(255,255,255,0); 9 | box-shadow: none; 10 | 11 | #logo h3 { 12 | color: $header-text; 13 | } 14 | #navbar a { 15 | color: $header-text; 16 | } 17 | } 18 | } 19 | 20 | .showcase { 21 | 22 | padding-top: 4rem; 23 | padding-bottom: 4rem; 24 | background-color: #666; 25 | background-size: cover; 26 | background-position: center; 27 | 28 | text-align: center; 29 | color: $header-text; 30 | h1 { 31 | font-size: 4rem; 32 | margin-top: 0; 33 | @include breakpoint(tablet-range) { 34 | font-size: 3rem; 35 | } 36 | @include breakpoint(mobile-only) { 37 | font-size: 2.5rem; 38 | line-height: 1.2; 39 | margin-bottom: 2.5rem; 40 | } 41 | } 42 | 43 | .button { 44 | @extend .default-animation; 45 | color: $header-text; 46 | padding: 0.7rem 2rem; 47 | margin-top: 2rem; 48 | background: rgba(255,255,255,0); 49 | border: 1px solid $header-text; 50 | border-radius: $border-radius; 51 | box-shadow: none; 52 | font-size: $core-font-size + 0.3rem; 53 | 54 | &:hover { 55 | background: rgba(255,255,255,0.2); 56 | } 57 | } 58 | } 59 | 60 | } 61 | -------------------------------------------------------------------------------- /scss/template/modular/_text.scss: -------------------------------------------------------------------------------- 1 | // variables 2 | $text-bg: #f6f6f6; 3 | $text-padding: 6rem; 4 | $image-margin: 2rem; 5 | 6 | 7 | // styling 8 | .callout { 9 | background: $text-bg; 10 | padding: $text-padding $content-padding; 11 | @include breakpoint(desktop-only) { 12 | text-align: center; 13 | } 14 | 15 | .align-left { 16 | float: left; 17 | margin-right: $image-margin; 18 | @include breakpoint(desktop-only) { 19 | float: none; 20 | margin-right: 0; 21 | } 22 | } 23 | 24 | .align-right { 25 | float: right; 26 | margin-left: $image-margin; 27 | @include breakpoint(desktop-only) { 28 | float: none; 29 | margin-left: 0; 30 | } 31 | } 32 | img { 33 | border-radius: $border-radius; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /scss/template/modules/_base.scss: -------------------------------------------------------------------------------- 1 | // Buttons 2 | @import "buttons"; -------------------------------------------------------------------------------- /scss/template/modules/_buttons.scss: -------------------------------------------------------------------------------- 1 | %button { 2 | display: inline-block; 3 | padding: 7px 20px; 4 | 5 | &.button-small { 6 | padding: 3px 10px; 7 | font-size: $core-font-size - 0.1rem; 8 | } 9 | 10 | } 11 | 12 | @mixin button-color($color) { 13 | background: $white; 14 | color: $color; 15 | border: 1px solid $color; 16 | border-radius: 3px; 17 | &:hover { 18 | background: $color; 19 | color: $white; 20 | } 21 | &:active { 22 | box-shadow: 0 1px 0 darken($color, 12%); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/_bourbon-deprecated-upcoming.scss: -------------------------------------------------------------------------------- 1 | //************************************************************************// 2 | // These mixins/functions are deprecated 3 | // They will be removed in the next MAJOR version release 4 | //************************************************************************// 5 | @mixin inline-block { 6 | display: inline-block; 7 | @warn "inline-block mixin is deprecated and will be removed in the next major version release"; 8 | } 9 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/_bourbon.scss: -------------------------------------------------------------------------------- 1 | // Settings 2 | @import "settings/prefixer"; 3 | @import "settings/px-to-em"; 4 | 5 | // Custom Helpers 6 | @import "helpers/convert-units"; 7 | @import "helpers/gradient-positions-parser"; 8 | @import "helpers/is-num"; 9 | @import "helpers/linear-angle-parser"; 10 | @import "helpers/linear-gradient-parser"; 11 | @import "helpers/linear-positions-parser"; 12 | @import "helpers/linear-side-corner-parser"; 13 | @import "helpers/radial-arg-parser"; 14 | @import "helpers/radial-positions-parser"; 15 | @import "helpers/radial-gradient-parser"; 16 | @import "helpers/render-gradients"; 17 | @import "helpers/shape-size-stripper"; 18 | @import "helpers/str-to-num"; 19 | 20 | // Custom Functions 21 | @import "functions/assign"; 22 | @import "functions/color-lightness"; 23 | @import "functions/flex-grid"; 24 | @import "functions/golden-ratio"; 25 | @import "functions/grid-width"; 26 | @import "functions/modular-scale"; 27 | @import "functions/px-to-em"; 28 | @import "functions/px-to-rem"; 29 | @import "functions/strip-units"; 30 | @import "functions/tint-shade"; 31 | @import "functions/transition-property-name"; 32 | @import "functions/unpack"; 33 | 34 | // CSS3 Mixins 35 | @import "css3/animation"; 36 | @import "css3/appearance"; 37 | @import "css3/backface-visibility"; 38 | @import "css3/background"; 39 | @import "css3/background-image"; 40 | @import "css3/border-image"; 41 | @import "css3/border-radius"; 42 | @import "css3/box-sizing"; 43 | @import "css3/calc"; 44 | @import "css3/columns"; 45 | @import "css3/filter"; 46 | @import "css3/flex-box"; 47 | @import "css3/font-face"; 48 | @import "css3/hyphens"; 49 | @import "css3/hidpi-media-query"; 50 | @import "css3/image-rendering"; 51 | @import "css3/keyframes"; 52 | @import "css3/linear-gradient"; 53 | @import "css3/perspective"; 54 | @import "css3/radial-gradient"; 55 | @import "css3/transform"; 56 | @import "css3/transition"; 57 | @import "css3/user-select"; 58 | @import "css3/placeholder"; 59 | 60 | // Addons & other mixins 61 | @import "addons/button"; 62 | @import "addons/clearfix"; 63 | @import "addons/directional-values"; 64 | @import "addons/ellipsis"; 65 | @import "addons/font-family"; 66 | @import "addons/hide-text"; 67 | @import "addons/html5-input-types"; 68 | @import "addons/position"; 69 | @import "addons/prefixer"; 70 | @import "addons/retina-image"; 71 | @import "addons/size"; 72 | @import "addons/timing-functions"; 73 | @import "addons/triangle"; 74 | @import "addons/word-wrap"; 75 | 76 | // Soon to be deprecated Mixins 77 | @import "bourbon-deprecated-upcoming"; 78 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/addons/_clearfix.scss: -------------------------------------------------------------------------------- 1 | // Modern micro clearfix provides an easy way to contain floats without adding additional markup. 2 | // 3 | // Example usage: 4 | // 5 | // // Contain all floats within .wrapper 6 | // .wrapper { 7 | // @include clearfix; 8 | // .content, 9 | // .sidebar { 10 | // float : left; 11 | // } 12 | // } 13 | 14 | @mixin clearfix { 15 | &:after { 16 | content:""; 17 | display:table; 18 | clear:both; 19 | } 20 | } 21 | 22 | // Acknowledgements 23 | // Beat *that* clearfix: [Thierry Koblentz](http://www.css-101.org/articles/clearfix/latest-new-clearfix-so-far.php) 24 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/addons/_directional-values.scss: -------------------------------------------------------------------------------- 1 | // directional-property mixins are shorthands 2 | // for writing properties like the following 3 | // 4 | // @include margin(null 0 10px); 5 | // ------ 6 | // margin-right: 0; 7 | // margin-bottom: 10px; 8 | // margin-left: 0; 9 | // 10 | // - or - 11 | // 12 | // @include border-style(dotted null); 13 | // ------ 14 | // border-top-style: dotted; 15 | // border-bottom-style: dotted; 16 | // 17 | // ------ 18 | // 19 | // Note: You can also use false instead of null 20 | 21 | @function collapse-directionals($vals) { 22 | $output: null; 23 | 24 | $A: nth( $vals, 1 ); 25 | $B: if( length($vals) < 2, $A, nth($vals, 2)); 26 | $C: if( length($vals) < 3, $A, nth($vals, 3)); 27 | $D: if( length($vals) < 2, $A, nth($vals, if( length($vals) < 4, 2, 4) )); 28 | 29 | @if $A == 0 { $A: 0 } 30 | @if $B == 0 { $B: 0 } 31 | @if $C == 0 { $C: 0 } 32 | @if $D == 0 { $D: 0 } 33 | 34 | @if $A == $B and $A == $C and $A == $D { $output: $A } 35 | @else if $A == $C and $B == $D { $output: $A $B } 36 | @else if $B == $D { $output: $A $B $C } 37 | @else { $output: $A $B $C $D } 38 | 39 | @return $output; 40 | } 41 | 42 | @function contains-falsy($list) { 43 | @each $item in $list { 44 | @if not $item { 45 | @return true; 46 | } 47 | } 48 | 49 | @return false; 50 | } 51 | 52 | @mixin directional-property($pre, $suf, $vals) { 53 | // Property Names 54 | $top: $pre + "-top" + if($suf, "-#{$suf}", ""); 55 | $bottom: $pre + "-bottom" + if($suf, "-#{$suf}", ""); 56 | $left: $pre + "-left" + if($suf, "-#{$suf}", ""); 57 | $right: $pre + "-right" + if($suf, "-#{$suf}", ""); 58 | $all: $pre + if($suf, "-#{$suf}", ""); 59 | 60 | $vals: collapse-directionals($vals); 61 | 62 | @if contains-falsy($vals) { 63 | @if nth($vals, 1) { #{$top}: nth($vals, 1); } 64 | 65 | @if length($vals) == 1 { 66 | @if nth($vals, 1) { #{$right}: nth($vals, 1); } 67 | } @else { 68 | @if nth($vals, 2) { #{$right}: nth($vals, 2); } 69 | } 70 | 71 | // prop: top/bottom right/left 72 | @if length($vals) == 2 { 73 | @if nth($vals, 1) { #{$bottom}: nth($vals, 1); } 74 | @if nth($vals, 2) { #{$left}: nth($vals, 2); } 75 | 76 | // prop: top right/left bottom 77 | } @else if length($vals) == 3 { 78 | @if nth($vals, 3) { #{$bottom}: nth($vals, 3); } 79 | @if nth($vals, 2) { #{$left}: nth($vals, 2); } 80 | 81 | // prop: top right bottom left 82 | } @else if length($vals) == 4 { 83 | @if nth($vals, 3) { #{$bottom}: nth($vals, 3); } 84 | @if nth($vals, 4) { #{$left}: nth($vals, 4); } 85 | } 86 | 87 | // prop: top/right/bottom/left 88 | } @else { 89 | #{$all}: $vals; 90 | } 91 | } 92 | 93 | @mixin margin($vals...) { 94 | @include directional-property(margin, false, $vals...); 95 | } 96 | 97 | @mixin padding($vals...) { 98 | @include directional-property(padding, false, $vals...); 99 | } 100 | 101 | @mixin border-style($vals...) { 102 | @include directional-property(border, style, $vals...); 103 | } 104 | 105 | @mixin border-color($vals...) { 106 | @include directional-property(border, color, $vals...); 107 | } 108 | 109 | @mixin border-width($vals...) { 110 | @include directional-property(border, width, $vals...); 111 | } 112 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/addons/_ellipsis.scss: -------------------------------------------------------------------------------- 1 | @mixin ellipsis($width: 100%) { 2 | display: inline-block; 3 | max-width: $width; 4 | overflow: hidden; 5 | text-overflow: ellipsis; 6 | white-space: nowrap; 7 | } 8 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/addons/_font-family.scss: -------------------------------------------------------------------------------- 1 | $georgia: Georgia, Cambria, "Times New Roman", Times, serif; 2 | $helvetica: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; 3 | $lucida-grande: "Lucida Grande", Tahoma, Verdana, Arial, sans-serif; 4 | $monospace: "Bitstream Vera Sans Mono", Consolas, Courier, monospace; 5 | $verdana: Verdana, Geneva, sans-serif; 6 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/addons/_hide-text.scss: -------------------------------------------------------------------------------- 1 | @mixin hide-text { 2 | overflow: hidden; 3 | 4 | &:before { 5 | content: ""; 6 | display: block; 7 | width: 0; 8 | height: 100%; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/addons/_html5-input-types.scss: -------------------------------------------------------------------------------- 1 | //************************************************************************// 2 | // Generate a variable ($all-text-inputs) with a list of all html5 3 | // input types that have a text-based input, excluding textarea. 4 | // http://diveintohtml5.org/forms.html 5 | //************************************************************************// 6 | $inputs-list: 'input[type="email"]', 7 | 'input[type="number"]', 8 | 'input[type="password"]', 9 | 'input[type="search"]', 10 | 'input[type="tel"]', 11 | 'input[type="text"]', 12 | 'input[type="url"]', 13 | 14 | // Webkit & Gecko may change the display of these in the future 15 | 'input[type="color"]', 16 | 'input[type="date"]', 17 | 'input[type="datetime"]', 18 | 'input[type="datetime-local"]', 19 | 'input[type="month"]', 20 | 'input[type="time"]', 21 | 'input[type="week"]'; 22 | 23 | // Bare inputs 24 | //************************************************************************// 25 | $all-text-inputs: assign-inputs($inputs-list); 26 | 27 | // Hover Pseudo-class 28 | //************************************************************************// 29 | $all-text-inputs-hover: assign-inputs($inputs-list, hover); 30 | 31 | // Focus Pseudo-class 32 | //************************************************************************// 33 | $all-text-inputs-focus: assign-inputs($inputs-list, focus); 34 | 35 | 36 | 37 | // You must use interpolation on the variable: 38 | // #{$all-text-inputs} 39 | // #{$all-text-inputs-hover} 40 | // #{$all-text-inputs-focus} 41 | 42 | // Example 43 | //************************************************************************// 44 | // #{$all-text-inputs}, textarea { 45 | // border: 1px solid red; 46 | // } 47 | 48 | 49 | 50 | //************************************************************************// 51 | // Generate a variable ($all-button-inputs) with a list of all html5 52 | // input types that have a button-based input, excluding button. 53 | //************************************************************************// 54 | $inputs-button-list: 'input[type="button"]', 55 | 'input[type="reset"]', 56 | 'input[type="submit"]'; 57 | 58 | // Bare inputs 59 | //************************************************************************// 60 | $all-button-inputs: assign-inputs($inputs-button-list); 61 | 62 | // Hover Pseudo-class 63 | //************************************************************************// 64 | $all-button-inputs-hover: assign-inputs($inputs-button-list, hover); 65 | 66 | // Focus Pseudo-class 67 | //************************************************************************// 68 | $all-button-inputs-focus: assign-inputs($inputs-button-list, focus); 69 | 70 | // Active Pseudo-class 71 | //************************************************************************// 72 | $all-button-inputs-active: assign-inputs($inputs-button-list, active); 73 | 74 | 75 | 76 | // You must use interpolation on the variable: 77 | // #{$all-button-inputs} 78 | // #{$all-button-inputs-hover} 79 | // #{$all-button-inputs-focus} 80 | // #{$all-button-inputs-active} 81 | 82 | // Example 83 | //************************************************************************// 84 | // #{$all-button-inputs}, button { 85 | // border: 1px solid red; 86 | // } 87 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/addons/_position.scss: -------------------------------------------------------------------------------- 1 | @mixin position ($position: relative, $coordinates: null null null null) { 2 | 3 | @if type-of($position) == list { 4 | $coordinates: $position; 5 | $position: relative; 6 | } 7 | 8 | $coordinates: unpack($coordinates); 9 | 10 | $top: nth($coordinates, 1); 11 | $right: nth($coordinates, 2); 12 | $bottom: nth($coordinates, 3); 13 | $left: nth($coordinates, 4); 14 | 15 | position: $position; 16 | 17 | @if ($top and $top == auto) or (type-of($top) == number) { 18 | top: $top; 19 | } 20 | 21 | @if ($right and $right == auto) or (type-of($right) == number) { 22 | right: $right; 23 | } 24 | 25 | @if ($bottom and $bottom == auto) or (type-of($bottom) == number) { 26 | bottom: $bottom; 27 | } 28 | 29 | @if ($left and $left == auto) or (type-of($left) == number) { 30 | left: $left; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/addons/_prefixer.scss: -------------------------------------------------------------------------------- 1 | //************************************************************************// 2 | // Example: @include prefixer(border-radius, $radii, webkit ms spec); 3 | //************************************************************************// 4 | // Variables located in /settings/_prefixer.scss 5 | 6 | @mixin prefixer ($property, $value, $prefixes) { 7 | @each $prefix in $prefixes { 8 | @if $prefix == webkit { 9 | @if $prefix-for-webkit { 10 | -webkit-#{$property}: $value; 11 | } 12 | } 13 | @else if $prefix == moz { 14 | @if $prefix-for-mozilla { 15 | -moz-#{$property}: $value; 16 | } 17 | } 18 | @else if $prefix == ms { 19 | @if $prefix-for-microsoft { 20 | -ms-#{$property}: $value; 21 | } 22 | } 23 | @else if $prefix == o { 24 | @if $prefix-for-opera { 25 | -o-#{$property}: $value; 26 | } 27 | } 28 | @else if $prefix == spec { 29 | @if $prefix-for-spec { 30 | #{$property}: $value; 31 | } 32 | } 33 | @else { 34 | @warn "Unrecognized prefix: #{$prefix}"; 35 | } 36 | } 37 | } 38 | 39 | @mixin disable-prefix-for-all() { 40 | $prefix-for-webkit: false !global; 41 | $prefix-for-mozilla: false !global; 42 | $prefix-for-microsoft: false !global; 43 | $prefix-for-opera: false !global; 44 | $prefix-for-spec: false !global; 45 | } 46 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/addons/_rem.scss: -------------------------------------------------------------------------------- 1 | @mixin rem($property, $size, $base: $em-base) { 2 | @if not unitless($base) { 3 | $base: strip-units($base); 4 | } 5 | 6 | $unitless_values: (); 7 | @each $num in $size { 8 | @if not unitless($num) { 9 | @if unit($num) == "em" { 10 | $num: $num * $base; 11 | } 12 | 13 | $num: strip-units($num); 14 | } 15 | 16 | $unitless_values: append($unitless_values, $num); 17 | } 18 | $size: $unitless_values; 19 | 20 | $pixel_values: (); 21 | $rem_values: (); 22 | @each $value in $pxval { 23 | $pixel_value: $value * 1px; 24 | $pixel_values: append($pixel_values, $pixel_value); 25 | 26 | $rem_value: ($value / $base) * 1rem; 27 | $rem_values: append($rem_values, $rem_value); 28 | } 29 | 30 | #{$property}: $pixel_values; 31 | #{$property}: $rem_values; 32 | } 33 | 34 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/addons/_retina-image.scss: -------------------------------------------------------------------------------- 1 | @mixin retina-image($filename, $background-size, $extension: png, $retina-filename: null, $retina-suffix: _2x, $asset-pipeline: false) { 2 | @if $asset-pipeline { 3 | background-image: image-url("#{$filename}.#{$extension}"); 4 | } 5 | @else { 6 | background-image: url("#{$filename}.#{$extension}"); 7 | } 8 | 9 | @include hidpi { 10 | @if $asset-pipeline { 11 | @if $retina-filename { 12 | background-image: image-url("#{$retina-filename}.#{$extension}"); 13 | } 14 | @else { 15 | background-image: image-url("#{$filename}#{$retina-suffix}.#{$extension}"); 16 | } 17 | } 18 | 19 | @else { 20 | @if $retina-filename { 21 | background-image: url("#{$retina-filename}.#{$extension}"); 22 | } 23 | @else { 24 | background-image: url("#{$filename}#{$retina-suffix}.#{$extension}"); 25 | } 26 | } 27 | 28 | background-size: $background-size; 29 | 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/addons/_size.scss: -------------------------------------------------------------------------------- 1 | @mixin size($size) { 2 | $height: nth($size, 1); 3 | $width: $height; 4 | 5 | @if length($size) > 1 { 6 | $height: nth($size, 2); 7 | } 8 | 9 | @if $height == auto or (type-of($height) == number and not unitless($height)) { 10 | height: $height; 11 | } 12 | 13 | @if $width == auto or (type-of($height) == number and not unitless($width)) { 14 | width: $width; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/addons/_timing-functions.scss: -------------------------------------------------------------------------------- 1 | // CSS cubic-bezier timing functions. Timing functions courtesy of jquery.easie (github.com/jaukia/easie) 2 | // Timing functions are the same as demo'ed here: http://jqueryui.com/demos/effect/easing.html 3 | 4 | // EASE IN 5 | $ease-in-quad: cubic-bezier(0.550, 0.085, 0.680, 0.530); 6 | $ease-in-cubic: cubic-bezier(0.550, 0.055, 0.675, 0.190); 7 | $ease-in-quart: cubic-bezier(0.895, 0.030, 0.685, 0.220); 8 | $ease-in-quint: cubic-bezier(0.755, 0.050, 0.855, 0.060); 9 | $ease-in-sine: cubic-bezier(0.470, 0.000, 0.745, 0.715); 10 | $ease-in-expo: cubic-bezier(0.950, 0.050, 0.795, 0.035); 11 | $ease-in-circ: cubic-bezier(0.600, 0.040, 0.980, 0.335); 12 | $ease-in-back: cubic-bezier(0.600, -0.280, 0.735, 0.045); 13 | 14 | // EASE OUT 15 | $ease-out-quad: cubic-bezier(0.250, 0.460, 0.450, 0.940); 16 | $ease-out-cubic: cubic-bezier(0.215, 0.610, 0.355, 1.000); 17 | $ease-out-quart: cubic-bezier(0.165, 0.840, 0.440, 1.000); 18 | $ease-out-quint: cubic-bezier(0.230, 1.000, 0.320, 1.000); 19 | $ease-out-sine: cubic-bezier(0.390, 0.575, 0.565, 1.000); 20 | $ease-out-expo: cubic-bezier(0.190, 1.000, 0.220, 1.000); 21 | $ease-out-circ: cubic-bezier(0.075, 0.820, 0.165, 1.000); 22 | $ease-out-back: cubic-bezier(0.175, 0.885, 0.320, 1.275); 23 | 24 | // EASE IN OUT 25 | $ease-in-out-quad: cubic-bezier(0.455, 0.030, 0.515, 0.955); 26 | $ease-in-out-cubic: cubic-bezier(0.645, 0.045, 0.355, 1.000); 27 | $ease-in-out-quart: cubic-bezier(0.770, 0.000, 0.175, 1.000); 28 | $ease-in-out-quint: cubic-bezier(0.860, 0.000, 0.070, 1.000); 29 | $ease-in-out-sine: cubic-bezier(0.445, 0.050, 0.550, 0.950); 30 | $ease-in-out-expo: cubic-bezier(1.000, 0.000, 0.000, 1.000); 31 | $ease-in-out-circ: cubic-bezier(0.785, 0.135, 0.150, 0.860); 32 | $ease-in-out-back: cubic-bezier(0.680, -0.550, 0.265, 1.550); 33 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/addons/_triangle.scss: -------------------------------------------------------------------------------- 1 | @mixin triangle ($size, $color, $direction) { 2 | height: 0; 3 | width: 0; 4 | 5 | $width: nth($size, 1); 6 | $height: nth($size, length($size)); 7 | 8 | $foreground-color: nth($color, 1); 9 | $background-color: if(length($color) == 2, nth($color, 2), transparent); 10 | 11 | @if ($direction == up) or ($direction == down) or ($direction == right) or ($direction == left) { 12 | 13 | $width: $width / 2; 14 | $height: if(length($size) > 1, $height, $height/2); 15 | 16 | @if $direction == up { 17 | border-left: $width solid $background-color; 18 | border-right: $width solid $background-color; 19 | border-bottom: $height solid $foreground-color; 20 | 21 | } @else if $direction == right { 22 | border-top: $width solid $background-color; 23 | border-bottom: $width solid $background-color; 24 | border-left: $height solid $foreground-color; 25 | 26 | } @else if $direction == down { 27 | border-left: $width solid $background-color; 28 | border-right: $width solid $background-color; 29 | border-top: $height solid $foreground-color; 30 | 31 | } @else if $direction == left { 32 | border-top: $width solid $background-color; 33 | border-bottom: $width solid $background-color; 34 | border-right: $height solid $foreground-color; 35 | } 36 | } 37 | 38 | @else if ($direction == up-right) or ($direction == up-left) { 39 | border-top: $height solid $foreground-color; 40 | 41 | @if $direction == up-right { 42 | border-left: $width solid $background-color; 43 | 44 | } @else if $direction == up-left { 45 | border-right: $width solid $background-color; 46 | } 47 | } 48 | 49 | @else if ($direction == down-right) or ($direction == down-left) { 50 | border-bottom: $height solid $foreground-color; 51 | 52 | @if $direction == down-right { 53 | border-left: $width solid $background-color; 54 | 55 | } @else if $direction == down-left { 56 | border-right: $width solid $background-color; 57 | } 58 | } 59 | 60 | @else if ($direction == inset-up) { 61 | border-width: $height $width; 62 | border-style: solid; 63 | border-color: $background-color $background-color $foreground-color; 64 | } 65 | 66 | @else if ($direction == inset-down) { 67 | border-width: $height $width; 68 | border-style: solid; 69 | border-color: $foreground-color $background-color $background-color; 70 | } 71 | 72 | @else if ($direction == inset-right) { 73 | border-width: $width $height; 74 | border-style: solid; 75 | border-color: $background-color $background-color $background-color $foreground-color; 76 | } 77 | 78 | @else if ($direction == inset-left) { 79 | border-width: $width $height; 80 | border-style: solid; 81 | border-color: $background-color $foreground-color $background-color $background-color; 82 | } 83 | } 84 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/addons/_word-wrap.scss: -------------------------------------------------------------------------------- 1 | @mixin word-wrap($wrap: break-word) { 2 | word-wrap: $wrap; 3 | 4 | @if $wrap == break-word { 5 | overflow-wrap: break-word; 6 | word-break: break-all; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/css3/_animation.scss: -------------------------------------------------------------------------------- 1 | // http://www.w3.org/TR/css3-animations/#the-animation-name-property- 2 | // 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. 3 | 4 | // Official animation shorthand property. 5 | @mixin animation ($animations...) { 6 | @include prefixer(animation, $animations, webkit moz spec); 7 | } 8 | 9 | // Individual Animation Properties 10 | @mixin animation-name ($names...) { 11 | @include prefixer(animation-name, $names, webkit moz spec); 12 | } 13 | 14 | 15 | @mixin animation-duration ($times...) { 16 | @include prefixer(animation-duration, $times, webkit moz spec); 17 | } 18 | 19 | 20 | @mixin animation-timing-function ($motions...) { 21 | // ease | linear | ease-in | ease-out | ease-in-out 22 | @include prefixer(animation-timing-function, $motions, webkit moz spec); 23 | } 24 | 25 | 26 | @mixin animation-iteration-count ($values...) { 27 | // infinite | 28 | @include prefixer(animation-iteration-count, $values, webkit moz spec); 29 | } 30 | 31 | 32 | @mixin animation-direction ($directions...) { 33 | // normal | alternate 34 | @include prefixer(animation-direction, $directions, webkit moz spec); 35 | } 36 | 37 | 38 | @mixin animation-play-state ($states...) { 39 | // running | paused 40 | @include prefixer(animation-play-state, $states, webkit moz spec); 41 | } 42 | 43 | 44 | @mixin animation-delay ($times...) { 45 | @include prefixer(animation-delay, $times, webkit moz spec); 46 | } 47 | 48 | 49 | @mixin animation-fill-mode ($modes...) { 50 | // none | forwards | backwards | both 51 | @include prefixer(animation-fill-mode, $modes, webkit moz spec); 52 | } 53 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/css3/_appearance.scss: -------------------------------------------------------------------------------- 1 | @mixin appearance ($value) { 2 | @include prefixer(appearance, $value, webkit moz ms o spec); 3 | } 4 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/css3/_backface-visibility.scss: -------------------------------------------------------------------------------- 1 | //************************************************************************// 2 | // Backface-visibility mixin 3 | //************************************************************************// 4 | @mixin backface-visibility($visibility) { 5 | @include prefixer(backface-visibility, $visibility, webkit spec); 6 | } 7 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/css3/_background-image.scss: -------------------------------------------------------------------------------- 1 | //************************************************************************// 2 | // Background-image property for adding multiple background images with 3 | // gradients, or for stringing multiple gradients together. 4 | //************************************************************************// 5 | 6 | @mixin background-image($images...) { 7 | $webkit-images: (); 8 | $spec-images: (); 9 | 10 | @each $image in $images { 11 | $webkit-image: (); 12 | $spec-image: (); 13 | 14 | @if (type-of($image) == string) { 15 | $url-str: str-slice($image, 0, 3); 16 | $gradient-type: str-slice($image, 0, 6); 17 | 18 | @if $url-str == "url" { 19 | $webkit-image: $image; 20 | $spec-image: $image; 21 | } 22 | 23 | @else if $gradient-type == "linear" { 24 | $gradients: _linear-gradient-parser($image); 25 | $webkit-image: map-get($gradients, webkit-image); 26 | $spec-image: map-get($gradients, spec-image); 27 | } 28 | 29 | @else if $gradient-type == "radial" { 30 | $gradients: _radial-gradient-parser($image); 31 | $webkit-image: map-get($gradients, webkit-image); 32 | $spec-image: map-get($gradients, spec-image); 33 | } 34 | } 35 | 36 | $webkit-images: append($webkit-images, $webkit-image, comma); 37 | $spec-images: append($spec-images, $spec-image, comma); 38 | } 39 | 40 | background-image: $webkit-images; 41 | background-image: $spec-images; 42 | } 43 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/css3/_background.scss: -------------------------------------------------------------------------------- 1 | //************************************************************************// 2 | // Background property for adding multiple backgrounds using shorthand 3 | // notation. 4 | //************************************************************************// 5 | 6 | @mixin background($backgrounds...) { 7 | $webkit-backgrounds: (); 8 | $spec-backgrounds: (); 9 | 10 | @each $background in $backgrounds { 11 | $webkit-background: (); 12 | $spec-background: (); 13 | $background-type: type-of($background); 14 | 15 | @if $background-type == string or list { 16 | $background-str: if($background-type == list, nth($background, 1), $background); 17 | 18 | $url-str: str-slice($background-str, 0, 3); 19 | $gradient-type: str-slice($background-str, 0, 6); 20 | 21 | @if $url-str == "url" { 22 | $webkit-background: $background; 23 | $spec-background: $background; 24 | } 25 | 26 | @else if $gradient-type == "linear" { 27 | $gradients: _linear-gradient-parser("#{$background}"); 28 | $webkit-background: map-get($gradients, webkit-image); 29 | $spec-background: map-get($gradients, spec-image); 30 | } 31 | 32 | @else if $gradient-type == "radial" { 33 | $gradients: _radial-gradient-parser("#{$background}"); 34 | $webkit-background: map-get($gradients, webkit-image); 35 | $spec-background: map-get($gradients, spec-image); 36 | } 37 | 38 | @else { 39 | $webkit-background: $background; 40 | $spec-background: $background; 41 | } 42 | } 43 | 44 | @else { 45 | $webkit-background: $background; 46 | $spec-background: $background; 47 | } 48 | 49 | $webkit-backgrounds: append($webkit-backgrounds, $webkit-background, comma); 50 | $spec-backgrounds: append($spec-backgrounds, $spec-background, comma); 51 | } 52 | 53 | background: $webkit-backgrounds; 54 | background: $spec-backgrounds; 55 | } 56 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/css3/_border-image.scss: -------------------------------------------------------------------------------- 1 | @mixin border-image($borders...) { 2 | $webkit-borders: (); 3 | $spec-borders: (); 4 | 5 | @each $border in $borders { 6 | $webkit-border: (); 7 | $spec-border: (); 8 | $border-type: type-of($border); 9 | 10 | @if $border-type == string or list { 11 | $border-str: if($border-type == list, nth($border, 1), $border); 12 | 13 | $url-str: str-slice($border-str, 0, 3); 14 | $gradient-type: str-slice($border-str, 0, 6); 15 | 16 | @if $url-str == "url" { 17 | $webkit-border: $border; 18 | $spec-border: $border; 19 | } 20 | 21 | @else if $gradient-type == "linear" { 22 | $gradients: _linear-gradient-parser("#{$border}"); 23 | $webkit-border: map-get($gradients, webkit-image); 24 | $spec-border: map-get($gradients, spec-image); 25 | } 26 | 27 | @else if $gradient-type == "radial" { 28 | $gradients: _radial-gradient-parser("#{$border}"); 29 | $webkit-border: map-get($gradients, webkit-image); 30 | $spec-border: map-get($gradients, spec-image); 31 | } 32 | 33 | @else { 34 | $webkit-border: $border; 35 | $spec-border: $border; 36 | } 37 | } 38 | 39 | @else { 40 | $webkit-border: $border; 41 | $spec-border: $border; 42 | } 43 | 44 | $webkit-borders: append($webkit-borders, $webkit-border, comma); 45 | $spec-borders: append($spec-borders, $spec-border, comma); 46 | } 47 | 48 | -webkit-border-image: $webkit-borders; 49 | border-image: $spec-borders; 50 | border-style: solid; 51 | } 52 | 53 | //Examples: 54 | // @include border-image(url("image.png")); 55 | // @include border-image(url("image.png") 20 stretch); 56 | // @include border-image(linear-gradient(45deg, orange, yellow)); 57 | // @include border-image(linear-gradient(45deg, orange, yellow) stretch); 58 | // @include border-image(linear-gradient(45deg, orange, yellow) 20 30 40 50 stretch round); 59 | // @include border-image(radial-gradient(top, cover, orange, yellow, orange)); 60 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/css3/_border-radius.scss: -------------------------------------------------------------------------------- 1 | //************************************************************************// 2 | // Shorthand Border-radius mixins 3 | //************************************************************************// 4 | @mixin border-top-radius($radii) { 5 | @include prefixer(border-top-left-radius, $radii, spec); 6 | @include prefixer(border-top-right-radius, $radii, spec); 7 | } 8 | 9 | @mixin border-bottom-radius($radii) { 10 | @include prefixer(border-bottom-left-radius, $radii, spec); 11 | @include prefixer(border-bottom-right-radius, $radii, spec); 12 | } 13 | 14 | @mixin border-left-radius($radii) { 15 | @include prefixer(border-top-left-radius, $radii, spec); 16 | @include prefixer(border-bottom-left-radius, $radii, spec); 17 | } 18 | 19 | @mixin border-right-radius($radii) { 20 | @include prefixer(border-top-right-radius, $radii, spec); 21 | @include prefixer(border-bottom-right-radius, $radii, spec); 22 | } 23 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/css3/_box-sizing.scss: -------------------------------------------------------------------------------- 1 | @mixin box-sizing ($box) { 2 | // content-box | border-box | inherit 3 | @include prefixer(box-sizing, $box, webkit moz spec); 4 | } 5 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/css3/_calc.scss: -------------------------------------------------------------------------------- 1 | @mixin calc($property, $value) { 2 | #{$property}: -webkit-calc(#{$value}); 3 | #{$property}: calc(#{$value}); 4 | } 5 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/css3/_columns.scss: -------------------------------------------------------------------------------- 1 | @mixin columns($arg: auto) { 2 | // || 3 | @include prefixer(columns, $arg, webkit moz spec); 4 | } 5 | 6 | @mixin column-count($int: auto) { 7 | // auto || integer 8 | @include prefixer(column-count, $int, webkit moz spec); 9 | } 10 | 11 | @mixin column-gap($length: normal) { 12 | // normal || length 13 | @include prefixer(column-gap, $length, webkit moz spec); 14 | } 15 | 16 | @mixin column-fill($arg: auto) { 17 | // auto || length 18 | @include prefixer(column-fill, $arg, webkit moz spec); 19 | } 20 | 21 | @mixin column-rule($arg) { 22 | // || || 23 | @include prefixer(column-rule, $arg, webkit moz spec); 24 | } 25 | 26 | @mixin column-rule-color($color) { 27 | @include prefixer(column-rule-color, $color, webkit moz spec); 28 | } 29 | 30 | @mixin column-rule-style($style: none) { 31 | // none | hidden | dashed | dotted | double | groove | inset | inset | outset | ridge | solid 32 | @include prefixer(column-rule-style, $style, webkit moz spec); 33 | } 34 | 35 | @mixin column-rule-width ($width: none) { 36 | @include prefixer(column-rule-width, $width, webkit moz spec); 37 | } 38 | 39 | @mixin column-span($arg: none) { 40 | // none || all 41 | @include prefixer(column-span, $arg, webkit moz spec); 42 | } 43 | 44 | @mixin column-width($length: auto) { 45 | // auto || length 46 | @include prefixer(column-width, $length, webkit moz spec); 47 | } 48 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/css3/_filter.scss: -------------------------------------------------------------------------------- 1 | @mixin filter($function: none) { 2 | // [ 3 | @include prefixer(perspective, $depth, webkit moz spec); 4 | } 5 | 6 | @mixin perspective-origin($value: 50% 50%) { 7 | @include prefixer(perspective-origin, $value, webkit moz spec); 8 | } 9 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/css3/_placeholder.scss: -------------------------------------------------------------------------------- 1 | @mixin placeholder { 2 | $placeholders: ":-webkit-input" ":-moz" "-moz" "-ms-input"; 3 | @each $placeholder in $placeholders { 4 | &:#{$placeholder}-placeholder { 5 | @content; 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/css3/_radial-gradient.scss: -------------------------------------------------------------------------------- 1 | // Requires Sass 3.1+ 2 | @mixin radial-gradient($G1, $G2, 3 | $G3: null, $G4: null, 4 | $G5: null, $G6: null, 5 | $G7: null, $G8: null, 6 | $G9: null, $G10: null, 7 | $pos: null, 8 | $shape-size: null, 9 | $fallback: null) { 10 | 11 | $data: _radial-arg-parser($G1, $G2, $pos, $shape-size); 12 | $G1: nth($data, 1); 13 | $G2: nth($data, 2); 14 | $pos: nth($data, 3); 15 | $shape-size: nth($data, 4); 16 | 17 | $full: $G1, $G2, $G3, $G4, $G5, $G6, $G7, $G8, $G9, $G10; 18 | 19 | // Strip deprecated cover/contain for spec 20 | $shape-size-spec: _shape-size-stripper($shape-size); 21 | 22 | // Set $G1 as the default fallback color 23 | $first-color: nth($full, 1); 24 | $fallback-color: nth($first-color, 1); 25 | 26 | @if (type-of($fallback) == color) or ($fallback == "transparent") { 27 | $fallback-color: $fallback; 28 | } 29 | 30 | // Add Commas and spaces 31 | $shape-size: if($shape-size, '#{$shape-size}, ', null); 32 | $pos: if($pos, '#{$pos}, ', null); 33 | $pos-spec: if($pos, 'at #{$pos}', null); 34 | $shape-size-spec: if(($shape-size-spec != ' ') and ($pos == null), '#{$shape-size-spec}, ', '#{$shape-size-spec} '); 35 | 36 | background-color: $fallback-color; 37 | background-image: -webkit-radial-gradient(unquote(#{$pos}#{$shape-size}#{$full})); 38 | background-image: unquote("radial-gradient(#{$shape-size-spec}#{$pos-spec}#{$full})"); 39 | } 40 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/css3/_transform.scss: -------------------------------------------------------------------------------- 1 | @mixin transform($property: none) { 2 | // none | 3 | @include prefixer(transform, $property, webkit moz ms o spec); 4 | } 5 | 6 | @mixin transform-origin($axes: 50%) { 7 | // x-axis - left | center | right | length | % 8 | // y-axis - top | center | bottom | length | % 9 | // z-axis - length 10 | @include prefixer(transform-origin, $axes, webkit moz ms o spec); 11 | } 12 | 13 | @mixin transform-style ($style: flat) { 14 | @include prefixer(transform-style, $style, webkit moz ms o spec); 15 | } 16 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/css3/_transition.scss: -------------------------------------------------------------------------------- 1 | // Shorthand mixin. Supports multiple parentheses-deliminated values for each variable. 2 | // Example: @include transition (all 2s ease-in-out); 3 | // @include transition (opacity 1s ease-in 2s, width 2s ease-out); 4 | // @include transition-property (transform, opacity); 5 | 6 | @mixin transition ($properties...) { 7 | // Fix for vendor-prefix transform property 8 | $needs-prefixes: false; 9 | $webkit: (); 10 | $moz: (); 11 | $spec: (); 12 | 13 | // Create lists for vendor-prefixed transform 14 | @each $list in $properties { 15 | @if nth($list, 1) == "transform" { 16 | $needs-prefixes: true; 17 | $list1: -webkit-transform; 18 | $list2: -moz-transform; 19 | $list3: (); 20 | 21 | @each $var in $list { 22 | $list3: join($list3, $var); 23 | 24 | @if $var != "transform" { 25 | $list1: join($list1, $var); 26 | $list2: join($list2, $var); 27 | } 28 | } 29 | 30 | $webkit: append($webkit, $list1); 31 | $moz: append($moz, $list2); 32 | $spec: append($spec, $list3); 33 | } 34 | 35 | // Create lists for non-prefixed transition properties 36 | @else { 37 | $webkit: append($webkit, $list, comma); 38 | $moz: append($moz, $list, comma); 39 | $spec: append($spec, $list, comma); 40 | } 41 | } 42 | 43 | @if $needs-prefixes { 44 | -webkit-transition: $webkit; 45 | -moz-transition: $moz; 46 | transition: $spec; 47 | } 48 | @else { 49 | @if length($properties) >= 1 { 50 | @include prefixer(transition, $properties, webkit moz spec); 51 | } 52 | 53 | @else { 54 | $properties: all 0.15s ease-out 0s; 55 | @include prefixer(transition, $properties, webkit moz spec); 56 | } 57 | } 58 | } 59 | 60 | @mixin transition-property ($properties...) { 61 | -webkit-transition-property: transition-property-names($properties, 'webkit'); 62 | -moz-transition-property: transition-property-names($properties, 'moz'); 63 | transition-property: transition-property-names($properties, false); 64 | } 65 | 66 | @mixin transition-duration ($times...) { 67 | @include prefixer(transition-duration, $times, webkit moz spec); 68 | } 69 | 70 | @mixin transition-timing-function ($motions...) { 71 | // ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier() 72 | @include prefixer(transition-timing-function, $motions, webkit moz spec); 73 | } 74 | 75 | @mixin transition-delay ($times...) { 76 | @include prefixer(transition-delay, $times, webkit moz spec); 77 | } 78 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/css3/_user-select.scss: -------------------------------------------------------------------------------- 1 | @mixin user-select($arg: none) { 2 | @include prefixer(user-select, $arg, webkit moz ms spec); 3 | } 4 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/functions/_assign.scss: -------------------------------------------------------------------------------- 1 | @function assign-inputs($inputs, $pseudo: null) { 2 | $list : (); 3 | 4 | @each $input in $inputs { 5 | $input: unquote($input); 6 | $input: if($pseudo, $input + ":" + $pseudo, $input); 7 | $list: append($list, $input, comma); 8 | } 9 | 10 | @return $list; 11 | } -------------------------------------------------------------------------------- /scss/vendor/bourbon/functions/_color-lightness.scss: -------------------------------------------------------------------------------- 1 | // Programatically determines whether a color is light or dark 2 | // Returns a boolean 3 | // More details here http://robots.thoughtbot.com/closer-look-color-lightness 4 | 5 | @function is-light($hex-color) { 6 | $-local-red: red(rgba($hex-color, 1.0)); 7 | $-local-green: green(rgba($hex-color, 1.0)); 8 | $-local-blue: blue(rgba($hex-color, 1.0)); 9 | 10 | $-local-lightness: ($-local-red * 0.2126 + $-local-green * 0.7152 + $-local-blue * 0.0722) / 255; 11 | 12 | @return $-local-lightness > .6; 13 | } 14 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/functions/_flex-grid.scss: -------------------------------------------------------------------------------- 1 | // Flexible grid 2 | @function flex-grid($columns, $container-columns: $fg-max-columns) { 3 | $width: $columns * $fg-column + ($columns - 1) * $fg-gutter; 4 | $container-width: $container-columns * $fg-column + ($container-columns - 1) * $fg-gutter; 5 | @return percentage($width / $container-width); 6 | } 7 | 8 | // Flexible gutter 9 | @function flex-gutter($container-columns: $fg-max-columns, $gutter: $fg-gutter) { 10 | $container-width: $container-columns * $fg-column + ($container-columns - 1) * $fg-gutter; 11 | @return percentage($gutter / $container-width); 12 | } 13 | 14 | // The $fg-column, $fg-gutter and $fg-max-columns variables must be defined in your base stylesheet to properly use the flex-grid function. 15 | // This function takes the fluid grid equation (target / context = result) and uses columns to help define each. 16 | // 17 | // The calculation presumes that your column structure will be missing the last gutter: 18 | // 19 | // -- column -- gutter -- column -- gutter -- column 20 | // 21 | // $fg-column: 60px; // Column Width 22 | // $fg-gutter: 25px; // Gutter Width 23 | // $fg-max-columns: 12; // Total Columns For Main Container 24 | // 25 | // div { 26 | // width: flex-grid(4); // returns (315px / 995px) = 31.65829%; 27 | // margin-left: flex-gutter(); // returns (25px / 995px) = 2.51256%; 28 | // 29 | // p { 30 | // width: flex-grid(2, 4); // returns (145px / 315px) = 46.031746%; 31 | // float: left; 32 | // margin: flex-gutter(4); // returns (25px / 315px) = 7.936508%; 33 | // } 34 | // 35 | // blockquote { 36 | // float: left; 37 | // width: flex-grid(2, 4); // returns (145px / 315px) = 46.031746%; 38 | // } 39 | // } -------------------------------------------------------------------------------- /scss/vendor/bourbon/functions/_golden-ratio.scss: -------------------------------------------------------------------------------- 1 | @function golden-ratio($value, $increment) { 2 | @return modular-scale($value, $increment, $golden) 3 | } 4 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/functions/_grid-width.scss: -------------------------------------------------------------------------------- 1 | @function grid-width($n) { 2 | @return $n * $gw-column + ($n - 1) * $gw-gutter; 3 | } 4 | 5 | // The $gw-column and $gw-gutter variables must be defined in your base stylesheet to properly use the grid-width function. 6 | // 7 | // $gw-column: 100px; // Column Width 8 | // $gw-gutter: 40px; // Gutter Width 9 | // 10 | // div { 11 | // width: grid-width(4); // returns 520px; 12 | // margin-left: $gw-gutter; // returns 40px; 13 | // } 14 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/functions/_modular-scale.scss: -------------------------------------------------------------------------------- 1 | // Scaling Variables 2 | $golden: 1.618; 3 | $minor-second: 1.067; 4 | $major-second: 1.125; 5 | $minor-third: 1.2; 6 | $major-third: 1.25; 7 | $perfect-fourth: 1.333; 8 | $augmented-fourth: 1.414; 9 | $perfect-fifth: 1.5; 10 | $minor-sixth: 1.6; 11 | $major-sixth: 1.667; 12 | $minor-seventh: 1.778; 13 | $major-seventh: 1.875; 14 | $octave: 2; 15 | $major-tenth: 2.5; 16 | $major-eleventh: 2.667; 17 | $major-twelfth: 3; 18 | $double-octave: 4; 19 | 20 | @function modular-scale($value, $increment, $ratio) { 21 | $v1: nth($value, 1); 22 | $v2: nth($value, length($value)); 23 | $value: $v1; 24 | 25 | // scale $v2 to just above $v1 26 | @while $v2 > $v1 { 27 | $v2: ($v2 / $ratio); // will be off-by-1 28 | } 29 | @while $v2 < $v1 { 30 | $v2: ($v2 * $ratio); // will fix off-by-1 31 | } 32 | 33 | // check AFTER scaling $v2 to prevent double-counting corner-case 34 | $double-stranded: $v2 > $v1; 35 | 36 | @if $increment > 0 { 37 | @for $i from 1 through $increment { 38 | @if $double-stranded and ($v1 * $ratio) > $v2 { 39 | $value: $v2; 40 | $v2: ($v2 * $ratio); 41 | } @else { 42 | $v1: ($v1 * $ratio); 43 | $value: $v1; 44 | } 45 | } 46 | } 47 | 48 | @if $increment < 0 { 49 | // adjust $v2 to just below $v1 50 | @if $double-stranded { 51 | $v2: ($v2 / $ratio); 52 | } 53 | 54 | @for $i from $increment through -1 { 55 | @if $double-stranded and ($v1 / $ratio) < $v2 { 56 | $value: $v2; 57 | $v2: ($v2 / $ratio); 58 | } @else { 59 | $v1: ($v1 / $ratio); 60 | $value: $v1; 61 | } 62 | } 63 | } 64 | 65 | @return $value; 66 | } 67 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/functions/_px-to-em.scss: -------------------------------------------------------------------------------- 1 | // Convert pixels to ems 2 | // eg. for a relational value of 12px write em(12) when the parent is 16px 3 | // if the parent is another value say 24px write em(12, 24) 4 | 5 | @function em($pxval, $base: $em-base) { 6 | @if not unitless($pxval) { 7 | $pxval: strip-units($pxval); 8 | } 9 | @if not unitless($base) { 10 | $base: strip-units($base); 11 | } 12 | @return ($pxval / $base) * 1em; 13 | } 14 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/functions/_px-to-rem.scss: -------------------------------------------------------------------------------- 1 | // Convert pixels to rems 2 | // eg. for a relational value of 12px write rem(12) 3 | // Assumes $em-base is the font-size of 4 | 5 | @function rem($pxval) { 6 | @if not unitless($pxval) { 7 | $pxval: strip-units($pxval); 8 | } 9 | 10 | $base: $em-base; 11 | @if not unitless($base) { 12 | $base: strip-units($base); 13 | } 14 | @return ($pxval / $base) * 1rem; 15 | } 16 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/functions/_strip-units.scss: -------------------------------------------------------------------------------- 1 | // Srtips the units from a value. e.g. 12px -> 12 2 | 3 | @function strip-units($val) { 4 | @return ($val / ($val * 0 + 1)); 5 | } 6 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/functions/_tint-shade.scss: -------------------------------------------------------------------------------- 1 | // Add percentage of white to a color 2 | @function tint($color, $percent){ 3 | @return mix(white, $color, $percent); 4 | } 5 | 6 | // Add percentage of black to a color 7 | @function shade($color, $percent){ 8 | @return mix(black, $color, $percent); 9 | } 10 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/functions/_transition-property-name.scss: -------------------------------------------------------------------------------- 1 | // Return vendor-prefixed property names if appropriate 2 | // Example: transition-property-names((transform, color, background), moz) -> -moz-transform, color, background 3 | //************************************************************************// 4 | @function transition-property-names($props, $vendor: false) { 5 | $new-props: (); 6 | 7 | @each $prop in $props { 8 | $new-props: append($new-props, transition-property-name($prop, $vendor), comma); 9 | } 10 | 11 | @return $new-props; 12 | } 13 | 14 | @function transition-property-name($prop, $vendor: false) { 15 | // put other properties that need to be prefixed here aswell 16 | @if $vendor and $prop == transform { 17 | @return unquote('-'+$vendor+'-'+$prop); 18 | } 19 | @else { 20 | @return $prop; 21 | } 22 | } -------------------------------------------------------------------------------- /scss/vendor/bourbon/functions/_unpack.scss: -------------------------------------------------------------------------------- 1 | // Convert shorthand to the 4-value syntax 2 | 3 | @function unpack($shorthand) { 4 | @if length($shorthand) == 1 { 5 | @return nth($shorthand, 1) nth($shorthand, 1) nth($shorthand, 1) nth($shorthand, 1); 6 | } 7 | @else if length($shorthand) == 2 { 8 | @return nth($shorthand, 1) nth($shorthand, 2) nth($shorthand, 1) nth($shorthand, 2); 9 | } 10 | @else if length($shorthand) == 3 { 11 | @return nth($shorthand, 1) nth($shorthand, 2) nth($shorthand, 3) nth($shorthand, 2); 12 | } 13 | @else { 14 | @return $shorthand; 15 | } 16 | } 17 | 18 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/helpers/_convert-units.scss: -------------------------------------------------------------------------------- 1 | //************************************************************************// 2 | // Helper function for str-to-num fn. 3 | // Source: http://sassmeister.com/gist/9647408 4 | //************************************************************************// 5 | @function _convert-units($number, $unit) { 6 | $strings: 'px' 'cm' 'mm' '%' 'ch' 'pica' 'in' 'em' 'rem' 'pt' 'pc' 'ex' 'vw' 'vh' 'vmin' 'vmax', 'deg', 'rad', 'grad', 'turn'; 7 | $units: 1px 1cm 1mm 1% 1ch 1pica 1in 1em 1rem 1pt 1pc 1ex 1vw 1vh 1vmin 1vmax, 1deg, 1rad, 1grad, 1turn; 8 | $index: index($strings, $unit); 9 | 10 | @if not $index { 11 | @warn "Unknown unit `#{$unit}`."; 12 | @return false; 13 | } 14 | @return $number * nth($units, $index); 15 | } 16 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/helpers/_gradient-positions-parser.scss: -------------------------------------------------------------------------------- 1 | @function _gradient-positions-parser($gradient-type, $gradient-positions) { 2 | @if $gradient-positions 3 | and ($gradient-type == linear) 4 | and (type-of($gradient-positions) != color) { 5 | $gradient-positions: _linear-positions-parser($gradient-positions); 6 | } 7 | @else if $gradient-positions 8 | and ($gradient-type == radial) 9 | and (type-of($gradient-positions) != color) { 10 | $gradient-positions: _radial-positions-parser($gradient-positions); 11 | } 12 | @return $gradient-positions; 13 | } 14 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/helpers/_is-num.scss: -------------------------------------------------------------------------------- 1 | //************************************************************************// 2 | // Helper for linear-gradient-parser 3 | //************************************************************************// 4 | @function _is-num($char) { 5 | $values: '0' '1' '2' '3' '4' '5' '6' '7' '8' '9' 0 1 2 3 4 5 6 7 8 9; 6 | $index: index($values, $char); 7 | @return if($index, true, false); 8 | } 9 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/helpers/_linear-angle-parser.scss: -------------------------------------------------------------------------------- 1 | // Private function for linear-gradient-parser 2 | @function _linear-angle-parser($image, $first-val, $prefix, $suffix) { 3 | $offset: null; 4 | $unit-short: str-slice($first-val, str-length($first-val) - 2, str-length($first-val)); 5 | $unit-long: str-slice($first-val, str-length($first-val) - 3, str-length($first-val)); 6 | 7 | @if ($unit-long == "grad") or 8 | ($unit-long == "turn") { 9 | $offset: if($unit-long == "grad", -100grad * 3, -0.75turn); 10 | } 11 | 12 | @else if ($unit-short == "deg") or 13 | ($unit-short == "rad") { 14 | $offset: if($unit-short == "deg", -90 * 3, 1.6rad); 15 | } 16 | 17 | @if $offset { 18 | $num: _str-to-num($first-val); 19 | 20 | @return ( 21 | webkit-image: -webkit- + $prefix + ($offset - $num) + $suffix, 22 | spec-image: $image 23 | ); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/helpers/_linear-gradient-parser.scss: -------------------------------------------------------------------------------- 1 | @function _linear-gradient-parser($image) { 2 | $image: unquote($image); 3 | $gradients: (); 4 | $start: str-index($image, "("); 5 | $end: str-index($image, ","); 6 | $first-val: str-slice($image, $start + 1, $end - 1); 7 | 8 | $prefix: str-slice($image, 0, $start); 9 | $suffix: str-slice($image, $end, str-length($image)); 10 | 11 | $has-multiple-vals: str-index($first-val, " "); 12 | $has-single-position: unquote(_position-flipper($first-val) + ""); 13 | $has-angle: _is-num(str-slice($first-val, 0, 0)); 14 | 15 | @if $has-multiple-vals { 16 | $gradients: _linear-side-corner-parser($image, $first-val, $prefix, $suffix, $has-multiple-vals); 17 | } 18 | 19 | @else if $has-single-position != "" { 20 | $pos: unquote($has-single-position + ""); 21 | 22 | $gradients: ( 23 | webkit-image: -webkit- + $image, 24 | spec-image: $prefix + "to " + $pos + $suffix 25 | ); 26 | } 27 | 28 | @else if $has-angle { 29 | // Rotate degree for webkit 30 | $gradients: _linear-angle-parser($image, $first-val, $prefix, $suffix); 31 | } 32 | 33 | @else { 34 | $gradients: ( 35 | webkit-image: -webkit- + $image, 36 | spec-image: $image 37 | ); 38 | } 39 | 40 | @return $gradients; 41 | } 42 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/helpers/_linear-positions-parser.scss: -------------------------------------------------------------------------------- 1 | @function _linear-positions-parser($pos) { 2 | $type: type-of(nth($pos, 1)); 3 | $spec: null; 4 | $degree: null; 5 | $side: null; 6 | $corner: null; 7 | $length: length($pos); 8 | // Parse Side and corner positions 9 | @if ($length > 1) { 10 | @if nth($pos, 1) == "to" { // Newer syntax 11 | $side: nth($pos, 2); 12 | 13 | @if $length == 2 { // eg. to top 14 | // Swap for backwards compatability 15 | $degree: _position-flipper(nth($pos, 2)); 16 | } 17 | @else if $length == 3 { // eg. to top left 18 | $corner: nth($pos, 3); 19 | } 20 | } 21 | @else if $length == 2 { // Older syntax ("top left") 22 | $side: _position-flipper(nth($pos, 1)); 23 | $corner: _position-flipper(nth($pos, 2)); 24 | } 25 | 26 | @if ("#{$side} #{$corner}" == "left top") or ("#{$side} #{$corner}" == "top left") { 27 | $degree: _position-flipper(#{$side}) _position-flipper(#{$corner}); 28 | } 29 | @else if ("#{$side} #{$corner}" == "right top") or ("#{$side} #{$corner}" == "top right") { 30 | $degree: _position-flipper(#{$side}) _position-flipper(#{$corner}); 31 | } 32 | @else if ("#{$side} #{$corner}" == "right bottom") or ("#{$side} #{$corner}" == "bottom right") { 33 | $degree: _position-flipper(#{$side}) _position-flipper(#{$corner}); 34 | } 35 | @else if ("#{$side} #{$corner}" == "left bottom") or ("#{$side} #{$corner}" == "bottom left") { 36 | $degree: _position-flipper(#{$side}) _position-flipper(#{$corner}); 37 | } 38 | $spec: to $side $corner; 39 | } 40 | @else if $length == 1 { 41 | // Swap for backwards compatability 42 | @if $type == string { 43 | $degree: $pos; 44 | $spec: to _position-flipper($pos); 45 | } 46 | @else { 47 | $degree: -270 - $pos; //rotate the gradient opposite from spec 48 | $spec: $pos; 49 | } 50 | } 51 | $degree: unquote($degree + ","); 52 | $spec: unquote($spec + ","); 53 | @return $degree $spec; 54 | } 55 | 56 | @function _position-flipper($pos) { 57 | @return if($pos == left, right, null) 58 | if($pos == right, left, null) 59 | if($pos == top, bottom, null) 60 | if($pos == bottom, top, null); 61 | } 62 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/helpers/_linear-side-corner-parser.scss: -------------------------------------------------------------------------------- 1 | // Private function for linear-gradient-parser 2 | @function _linear-side-corner-parser($image, $first-val, $prefix, $suffix, $has-multiple-vals) { 3 | $val-1: str-slice($first-val, 0, $has-multiple-vals - 1 ); 4 | $val-2: str-slice($first-val, $has-multiple-vals + 1, str-length($first-val)); 5 | $val-3: null; 6 | $has-val-3: str-index($val-2, " "); 7 | 8 | @if $has-val-3 { 9 | $val-3: str-slice($val-2, $has-val-3 + 1, str-length($val-2)); 10 | $val-2: str-slice($val-2, 0, $has-val-3 - 1); 11 | } 12 | 13 | $pos: _position-flipper($val-1) _position-flipper($val-2) _position-flipper($val-3); 14 | $pos: unquote($pos + ""); 15 | 16 | // Use old spec for webkit 17 | @if $val-1 == "to" { 18 | @return ( 19 | webkit-image: -webkit- + $prefix + $pos + $suffix, 20 | spec-image: $image 21 | ); 22 | } 23 | 24 | // Bring the code up to spec 25 | @else { 26 | @return ( 27 | webkit-image: -webkit- + $image, 28 | spec-image: $prefix + "to " + $pos + $suffix 29 | ); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/helpers/_radial-arg-parser.scss: -------------------------------------------------------------------------------- 1 | @function _radial-arg-parser($G1, $G2, $pos, $shape-size) { 2 | @each $value in $G1, $G2 { 3 | $first-val: nth($value, 1); 4 | $pos-type: type-of($first-val); 5 | $spec-at-index: null; 6 | 7 | // Determine if spec was passed to mixin 8 | @if type-of($value) == list { 9 | $spec-at-index: if(index($value, at), index($value, at), false); 10 | } 11 | @if $spec-at-index { 12 | @if $spec-at-index > 1 { 13 | @for $i from 1 through ($spec-at-index - 1) { 14 | $shape-size: $shape-size nth($value, $i); 15 | } 16 | @for $i from ($spec-at-index + 1) through length($value) { 17 | $pos: $pos nth($value, $i); 18 | } 19 | } 20 | @else if $spec-at-index == 1 { 21 | @for $i from ($spec-at-index + 1) through length($value) { 22 | $pos: $pos nth($value, $i); 23 | } 24 | } 25 | $G1: null; 26 | } 27 | 28 | // If not spec calculate correct values 29 | @else { 30 | @if ($pos-type != color) or ($first-val != "transparent") { 31 | @if ($pos-type == number) 32 | or ($first-val == "center") 33 | or ($first-val == "top") 34 | or ($first-val == "right") 35 | or ($first-val == "bottom") 36 | or ($first-val == "left") { 37 | 38 | $pos: $value; 39 | 40 | @if $pos == $G1 { 41 | $G1: null; 42 | } 43 | } 44 | 45 | @else if 46 | ($first-val == "ellipse") 47 | or ($first-val == "circle") 48 | or ($first-val == "closest-side") 49 | or ($first-val == "closest-corner") 50 | or ($first-val == "farthest-side") 51 | or ($first-val == "farthest-corner") 52 | or ($first-val == "contain") 53 | or ($first-val == "cover") { 54 | 55 | $shape-size: $value; 56 | 57 | @if $value == $G1 { 58 | $G1: null; 59 | } 60 | 61 | @else if $value == $G2 { 62 | $G2: null; 63 | } 64 | } 65 | } 66 | } 67 | } 68 | @return $G1, $G2, $pos, $shape-size; 69 | } 70 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/helpers/_radial-gradient-parser.scss: -------------------------------------------------------------------------------- 1 | @function _radial-gradient-parser($image) { 2 | $image: unquote($image); 3 | $gradients: (); 4 | $start: str-index($image, "("); 5 | $end: str-index($image, ","); 6 | $first-val: str-slice($image, $start + 1, $end - 1); 7 | 8 | $prefix: str-slice($image, 0, $start); 9 | $suffix: str-slice($image, $end, str-length($image)); 10 | 11 | $is-spec-syntax: str-index($first-val, "at"); 12 | 13 | @if $is-spec-syntax and $is-spec-syntax > 1 { 14 | $keyword: str-slice($first-val, 1, $is-spec-syntax - 2); 15 | $pos: str-slice($first-val, $is-spec-syntax + 3, str-length($first-val)); 16 | $pos: append($pos, $keyword, comma); 17 | 18 | $gradients: ( 19 | webkit-image: -webkit- + $prefix + $pos + $suffix, 20 | spec-image: $image 21 | ) 22 | } 23 | 24 | @else if $is-spec-syntax == 1 { 25 | $pos: str-slice($first-val, $is-spec-syntax + 3, str-length($first-val)); 26 | 27 | $gradients: ( 28 | webkit-image: -webkit- + $prefix + $pos + $suffix, 29 | spec-image: $image 30 | ) 31 | } 32 | 33 | @else if str-index($image, "cover") or str-index($image, "contain") { 34 | @warn "Radial-gradient needs to be updated to conform to latest spec."; 35 | 36 | $gradients: ( 37 | webkit-image: null, 38 | spec-image: $image 39 | ) 40 | } 41 | 42 | @else { 43 | $gradients: ( 44 | webkit-image: -webkit- + $image, 45 | spec-image: $image 46 | ) 47 | } 48 | 49 | @return $gradients; 50 | } 51 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/helpers/_radial-positions-parser.scss: -------------------------------------------------------------------------------- 1 | @function _radial-positions-parser($gradient-pos) { 2 | $shape-size: nth($gradient-pos, 1); 3 | $pos: nth($gradient-pos, 2); 4 | $shape-size-spec: _shape-size-stripper($shape-size); 5 | 6 | $pre-spec: unquote(if($pos, "#{$pos}, ", null)) 7 | unquote(if($shape-size, "#{$shape-size},", null)); 8 | $pos-spec: if($pos, "at #{$pos}", null); 9 | 10 | $spec: "#{$shape-size-spec} #{$pos-spec}"; 11 | 12 | // Add comma 13 | @if ($spec != ' ') { 14 | $spec: "#{$spec}," 15 | } 16 | 17 | @return $pre-spec $spec; 18 | } 19 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/helpers/_render-gradients.scss: -------------------------------------------------------------------------------- 1 | // User for linear and radial gradients within background-image or border-image properties 2 | 3 | @function _render-gradients($gradient-positions, $gradients, $gradient-type, $vendor: false) { 4 | $pre-spec: null; 5 | $spec: null; 6 | $vendor-gradients: null; 7 | @if $gradient-type == linear { 8 | @if $gradient-positions { 9 | $pre-spec: nth($gradient-positions, 1); 10 | $spec: nth($gradient-positions, 2); 11 | } 12 | } 13 | @else if $gradient-type == radial { 14 | $pre-spec: nth($gradient-positions, 1); 15 | $spec: nth($gradient-positions, 2); 16 | } 17 | 18 | @if $vendor { 19 | $vendor-gradients: -#{$vendor}-#{$gradient-type}-gradient(#{$pre-spec} $gradients); 20 | } 21 | @else if $vendor == false { 22 | $vendor-gradients: "#{$gradient-type}-gradient(#{$spec} #{$gradients})"; 23 | $vendor-gradients: unquote($vendor-gradients); 24 | } 25 | @return $vendor-gradients; 26 | } 27 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/helpers/_shape-size-stripper.scss: -------------------------------------------------------------------------------- 1 | @function _shape-size-stripper($shape-size) { 2 | $shape-size-spec: null; 3 | @each $value in $shape-size { 4 | @if ($value == "cover") or ($value == "contain") { 5 | $value: null; 6 | } 7 | $shape-size-spec: "#{$shape-size-spec} #{$value}"; 8 | } 9 | @return $shape-size-spec; 10 | } 11 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/helpers/_str-to-num.scss: -------------------------------------------------------------------------------- 1 | //************************************************************************// 2 | // Helper function for linear/radial-gradient-parsers. 3 | // Source: http://sassmeister.com/gist/9647408 4 | //************************************************************************// 5 | @function _str-to-num($string) { 6 | // Matrices 7 | $strings: '0' '1' '2' '3' '4' '5' '6' '7' '8' '9'; 8 | $numbers: 0 1 2 3 4 5 6 7 8 9; 9 | 10 | // Result 11 | $result: 0; 12 | $divider: 0; 13 | $minus: false; 14 | 15 | // Looping through all characters 16 | @for $i from 1 through str-length($string) { 17 | $character: str-slice($string, $i, $i); 18 | $index: index($strings, $character); 19 | 20 | @if $character == '-' { 21 | $minus: true; 22 | } 23 | 24 | @else if $character == '.' { 25 | $divider: 1; 26 | } 27 | 28 | @else { 29 | @if not $index { 30 | $result: if($minus, $result * -1, $result); 31 | @return _convert-units($result, str-slice($string, $i)); 32 | } 33 | 34 | $number: nth($numbers, $index); 35 | 36 | @if $divider == 0 { 37 | $result: $result * 10; 38 | } 39 | 40 | @else { 41 | // Move the decimal dot to the left 42 | $divider: $divider * 10; 43 | $number: $number / $divider; 44 | } 45 | 46 | $result: $result + $number; 47 | } 48 | } 49 | @return if($minus, $result * -1, $result); 50 | } 51 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/settings/_prefixer.scss: -------------------------------------------------------------------------------- 1 | // Variable settings for /addons/prefixer.scss 2 | $prefix-for-webkit: true !default; 3 | $prefix-for-mozilla: true !default; 4 | $prefix-for-microsoft: true !default; 5 | $prefix-for-opera: true !default; 6 | $prefix-for-spec: true !default; // required for keyframe mixin 7 | -------------------------------------------------------------------------------- /scss/vendor/bourbon/settings/_px-to-em.scss: -------------------------------------------------------------------------------- 1 | $em-base: 16px !default; 2 | -------------------------------------------------------------------------------- /scss/vendor/color-schemer/_color-schemer.scss: -------------------------------------------------------------------------------- 1 | @import "blend-modes"; 2 | 3 | // Defaults 4 | $cs-primary : #f00 !default; 5 | $cs-scheme : mono !default; // mono, complement, triad, tetrad, analogic, accented-analogic 6 | $cs-hue-offset : 30 !default; 7 | $cs-brightness-offset : false !default; 8 | $cs-color-model : rgb !default; // rgb, ryb 9 | $cs-colorblind : normal !default; 10 | $cs-harmonize-mode : null !default; 11 | $cs-harmonize-color : $cs-primary !default; 12 | $cs-harmonize-amount : 10% !default; 13 | 14 | // Partials 15 | @import "color-schemer/interpolation"; 16 | @import "color-schemer/cmyk"; 17 | @import "color-schemer/ryb"; 18 | @import "color-schemer/colorblind"; 19 | @import "color-schemer/equalize"; 20 | @import "color-schemer/mix"; 21 | @import "color-schemer/tint-shade"; 22 | @import "color-schemer/color-adjustments"; 23 | @import "color-schemer/harmonize"; 24 | @import "color-schemer/color-schemer"; 25 | 26 | @import "color-schemer/comparison"; 27 | 28 | @import "color-schemer/mixins"; 29 | 30 | // Tell other files that this is loaded. 31 | $color-schemer-loaded : true; 32 | -------------------------------------------------------------------------------- /scss/vendor/color-schemer/color-schemer/_cmyk.scss: -------------------------------------------------------------------------------- 1 | @function cmyk($cyan, $magenta, $yellow, $black) { 2 | 3 | // Get the color values out of white 4 | $cyan : mix(cyan , white, $cyan ); 5 | $magenta : mix(magenta, white, $magenta); 6 | $yellow : mix(yellow , white, $yellow ); 7 | $black : mix(black , white, $black ); 8 | 9 | // Subtract the colors from white 10 | $color: white - invert($cyan) - invert($magenta) - invert($yellow) - invert($black); 11 | 12 | 13 | @return $color; 14 | } -------------------------------------------------------------------------------- /scss/vendor/color-schemer/color-schemer/_color-adjustments.scss: -------------------------------------------------------------------------------- 1 | // RGB functions 2 | @function set-red($color, $red) { 3 | @return rgba($red, green($color), blue($color), alpha($color)); 4 | } 5 | 6 | @function set-green($color, $green) { 7 | @return rgba(red($color), $green, blue($color), alpha($color)); 8 | } 9 | 10 | @function set-blue($color, $blue) { 11 | @return rgba(red($color), green($color), $blue, alpha($color)); 12 | } 13 | 14 | 15 | // HSL Functions 16 | @function set-hue($color, $hue) { 17 | @return hsla($hue, saturation($color), lightness($color), alpha($color)); 18 | } 19 | 20 | @function set-saturation($color, $saturation) { 21 | @return hsla(hue($color), $saturation, lightness($color), alpha($color)); 22 | } 23 | 24 | @function set-lightness($color, $lightness) { 25 | @return hsla(hue($color), saturation($color), $lightness, alpha($color)); 26 | } 27 | 28 | @function set-alpha($color, $alpha) { 29 | @return hsla(hue($color), saturation($color), lightness($color), $alpha); 30 | } -------------------------------------------------------------------------------- /scss/vendor/color-schemer/color-schemer/_colorblind.scss: -------------------------------------------------------------------------------- 1 | @function cs-colorblind($color, $mode: $cs-colorblind) { 2 | 3 | // Refrence: http://www.w3.org/TR/AERT#color-contrast 4 | 5 | // Deuteranopia 6 | @if $mode == deuteranopia { 7 | @return $color; 8 | } 9 | 10 | // Protanopia 11 | @if $mode == protanopia { 12 | @return $color; 13 | } 14 | 15 | // Tritanopia 16 | @if $mode == tritanopia { 17 | @return $color; 18 | } 19 | 20 | 21 | // Return color if no color blind mode. 22 | @else { 23 | @return $color; 24 | } 25 | } 26 | 27 | @function cs-cb($color, $mode: $cs-colorblind) { 28 | @return cs-colorblind($color, $mode); 29 | } -------------------------------------------------------------------------------- /scss/vendor/color-schemer/color-schemer/_comparison.scss: -------------------------------------------------------------------------------- 1 | ////////////////////////////// 2 | // Color Is Dark 3 | // 4 | // Checks to see if the input color is a dark color taking into account both lightness and hue. 5 | // Suitable for determining, for instance, if a background should have a dark or light text color. 6 | // @return true/false (boolean) 7 | ////////////////////////////// 8 | 9 | @function cs-is-dark($color) { 10 | @if (lightness($color) < 60% and (hue($color) >= 210 or hue($color) <= 27)) or (lightness($color) <= 32%) { 11 | @return true; 12 | } @else { 13 | @return false; 14 | } 15 | } -------------------------------------------------------------------------------- /scss/vendor/color-schemer/color-schemer/_equalize.scss: -------------------------------------------------------------------------------- 1 | // Color equalize credit to Mason Wendell: 2 | // https://github.com/canarymason/The-Coding-Designers-Survival-Kit/blob/master/sass/partials/lib/variables/_color_schemes.sass 3 | @function equalize($color) { 4 | @return hsl(hue($color), 100%, 50%); 5 | } -------------------------------------------------------------------------------- /scss/vendor/color-schemer/color-schemer/_harmonize.scss: -------------------------------------------------------------------------------- 1 | @function cs-harmonize($background, $foreground: $cs-harmonize-color, $mode: $cs-harmonize-mode, $amount: $cs-harmonize-amount) { 2 | $blend: null; 3 | @if ($mode == normal) { 4 | $blend: blend-normal($foreground, $background); } 5 | @else if ($mode == multiply) { 6 | $blend: blend-multiply($foreground, $background); } 7 | @else if ($mode == lighten) { 8 | $blend: blend-lighten($foreground, $background); } 9 | @else if ($mode == darken) { 10 | $blend: blend-darken($foreground, $background); } 11 | @else if ($mode == darkercolor) { 12 | $blend: blend-darkercolor($foreground, $background); } 13 | @else if ($mode == lightercolor) { 14 | $blend: blend-lightercolor($foreground, $background); } 15 | @else if ($mode == lineardodge) { 16 | $blend: blend-lineardodge($foreground, $background); } 17 | @else if ($mode == linearburn) { 18 | $blend: blend-linearburn($foreground, $background); } 19 | @else if ($mode == difference) { 20 | $blend: blend-difference($foreground, $background); } 21 | @else if ($mode == screen) { 22 | $blend: blend-screen($foreground, $background); } 23 | @else if ($mode == exclusion) { 24 | $blend: blend-exclusion($foreground, $background); } 25 | @else if ($mode == overlay) { 26 | $blend: blend-overlay($foreground, $background); } 27 | @else if ($mode == softlight) { 28 | $blend: blend-softlight($foreground, $background); } 29 | @else if ($mode == hardlight) { 30 | $blend: blend-hardlight($foreground, $background); } 31 | @else if ($mode == colordodge) { 32 | $blend: blend-colordodge($foreground, $background); } 33 | @else if ($mode == colorburn) { 34 | $blend: blend-colorburn($foreground, $background); } 35 | @else if ($mode == linearlight) { 36 | $blend: blend-linearlight($foreground, $background); } 37 | @else if ($mode == vividlight) { 38 | $blend: blend-vividlight($foreground, $background); } 39 | @else if ($mode == pinlight) { 40 | $blend: blend-pinlight($foreground, $background); } 41 | @else if ($mode == hardmix) { 42 | $blend: blend-hardmix($foreground, $background); } 43 | @else if ($mode == colorblend) { 44 | $blend: blend-colorblend($foreground, $background); } 45 | @else if ($mode == dissolve) { 46 | $blend: blend-dissolve($foreground, $background); } 47 | @else if ($mode == divide) { 48 | $blend: blend-divide($foreground, $background); } 49 | @else if ($mode == hue) { 50 | $blend: blend-hue($foreground, $background); } 51 | @else if ($mode == luminosity) { 52 | $blend: blend-luminosity($foreground, $background); } 53 | @else if ($mode == saturation) { 54 | $blend: blend-saturation($foreground, $background); } 55 | @else if ($mode == subtract) { 56 | $blend: blend-subtract($foreground, $background); } 57 | $mixed: mix($blend, $background, $amount); 58 | @return $mixed; 59 | } 60 | -------------------------------------------------------------------------------- /scss/vendor/color-schemer/color-schemer/_interpolation.scss: -------------------------------------------------------------------------------- 1 | @function cs-interpolate($value, $units: 360, $stops: $ryb-interpolation) { 2 | 3 | // Loop numbers out of scale back into the scale. 4 | @while $value >= 360 { 5 | $value: $value - 360; 6 | } 7 | @while $value < 0 { 8 | $value: $value + 360; 9 | } 10 | 11 | // Find out how many units in each stop 12 | $cs-color-deg: $units / length($stops); 13 | 14 | // Count through stops 15 | $cs-deg-count: $cs-color-deg; 16 | $cs-stop-count: 1; 17 | 18 | // Add the first stop to the end so it will be 19 | // interpolated with the last stop. 20 | $stops: append($stops, nth($stops, 1)); 21 | 22 | // Start interpolating 23 | @for $i from 0 through length($stops) { 24 | @if $value < $cs-deg-count { 25 | @return cs-mix(nth($stops, $cs-stop-count + 1), nth($stops, $cs-stop-count), abs(percentage(($cs-deg-count - $value) / $cs-color-deg) - 100 ), $model: rgb); 26 | } 27 | 28 | // If the value is not in this stop, loop up to another stop. 29 | @else { 30 | $cs-deg-count: $cs-deg-count + $cs-color-deg; 31 | $cs-stop-count: $cs-stop-count + 1 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /scss/vendor/color-schemer/color-schemer/_mix.scss: -------------------------------------------------------------------------------- 1 | @function cs-mix($color1, $color2, $percent: 50%, $model: $cs-color-model) { 2 | 3 | $decimal : abs($percent - 100%) / 100%; 4 | $hue-offset : (); 5 | 6 | @if $model == rgb { 7 | $hue-offset : (hue($color1) - hue($color2)) * $decimal; 8 | @if (hue($color1) - hue($color2)) * .5 < -90deg { 9 | $hue-offset : (hue($color1) + 360deg - hue($color2)) * $decimal; 10 | } 11 | @if (hue($color1) - hue($color2)) * .5 > 90deg { 12 | $hue-offset : (hue($color1) - 360deg - hue($color2)) * $decimal; 13 | } 14 | } 15 | 16 | @if $model == ryb { 17 | $hue-offset : (ryb-hue($color1) - ryb-hue($color2)) * $decimal; 18 | @if (ryb-hue($color1) - ryb-hue($color2)) * .5 < -90deg { 19 | $hue-offset : (ryb-hue($color1) + 360deg - ryb-hue($color2)) * $decimal; 20 | } 21 | @if (ryb-hue($color1) - ryb-hue($color2)) * .5 > 90deg { 22 | $hue-offset : (ryb-hue($color1) - 360deg - ryb-hue($color2)) * $decimal; 23 | } 24 | } 25 | 26 | $saturation-offset : (saturation($color1) - saturation($color2)) * $decimal; 27 | $lightness-offset : (lightness($color1) - lightness($color2)) * $decimal; 28 | 29 | @if $model == ryb { 30 | $color1: ryb-adjust-hue($color1, $hue-offset * -1); 31 | } 32 | @else { 33 | $color1: adjust-hue($color1, $hue-offset * -1); 34 | } 35 | 36 | $color1: set-saturation($color1, saturation($color1) - $saturation-offset); 37 | $color1: set-lightness($color1, lightness($color1) - $lightness-offset); 38 | 39 | @return $color1; 40 | } -------------------------------------------------------------------------------- /scss/vendor/color-schemer/color-schemer/_mixins.scss: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////// 2 | // From Jina Bolton and Eric Meyer -- http://codepen.io/jina/pen/iosjp 3 | @function cs-stripes($position, $colors) { 4 | $colors: if(type-of($colors) != 'list', compact($colors), $colors); 5 | $gradient: (); 6 | $width: 100% / length($colors); 7 | 8 | @for $i from 1 through length($colors) { 9 | $pop: nth($colors,$i); 10 | $new: $pop ($width * ($i - 1)), $pop ($width * $i); 11 | $gradient: join($gradient, $new, comma); 12 | } 13 | 14 | @return linear-gradient($position, $gradient); 15 | } 16 | 17 | //////////////////////////////////////////// 18 | // Color tester 19 | 20 | @mixin cs-test($colors, $height: 2em, $element: "body:before") { 21 | #{$element} { 22 | content: ""; 23 | display: block; 24 | height: $height; 25 | @include background(cs-stripes(left, ($colors))); 26 | position: relative; 27 | z-index: 999999999999; 28 | } 29 | } -------------------------------------------------------------------------------- /scss/vendor/color-schemer/color-schemer/_ryb.scss: -------------------------------------------------------------------------------- 1 | $ryb-interpolation: #FF0000 #FF4900 #FF7400 #FF9200 #FFAA00 #FFBF00 #FFD300 #FFE800 #FFFF00 #CCF600 #9FEE00 #67E300 #00CC00 #00AF64 #009999 #0B61A4 #1240AB #1B1BB3 #3914AF #530FAD #7109AA #A600A6 #CD0074 #E40045; 2 | 3 | // RYB color interpolation 4 | @function find-ryb($hue) { 5 | 6 | // remove units on $hue 7 | @if unit($hue) == deg { $hue: $hue / 1deg; } 8 | 9 | // return an interpolated hue 10 | @return hue(cs-interpolate($hue)); 11 | } 12 | 13 | // Find the RYB hue instead of RGB hue of a color. 14 | 15 | // map of the RYB offset 16 | $ryb-offset: 0 1 2 3 5 6 7 8 9 10 11 13 14 15 16 17 18 19 19 20 21 21 22 23 23 24 25 25 26 27 27 28 28 29 29 30 30 31 31 32 32 32 33 33 34 34 35 35 35 36 36 37 37 37 38 38 38 39 39 40 40 40 41 41 41 42 42 42 43 43 43 44 44 44 45 45 45 46 46 46 47 47 47 47 48 48 48 49 49 49 50 50 50 51 51 51 52 52 52 53 53 53 54 54 54 55 55 55 56 56 56 57 57 57 58 58 59 59 59 60 60 61 61 62 63 63 64 65 65 66 67 68 68 69 70 70 71 72 72 73 73 74 75 75 76 77 77 78 79 79 80 81 82 82 83 84 85 86 87 88 88 89 90 91 92 93 95 96 98 100 102 104 105 107 109 111 113 115 116 118 120 122 125 127 129 131 134 136 138 141 143 145 147 150 152 154 156 158 159 161 163 165 166 168 170 171 173 175 177 178 180 182 184 185 187 189 191 192 194 196 198 199 201 203 205 206 207 208 209 210 212 213 214 215 216 217 218 219 220 221 222 223 224 226 227 228 229 230 232 233 234 235 236 238 239 240 241 242 243 244 245 246 247 248 249 250 251 251 252 253 254 255 256 257 257 258 259 260 260 261 262 263 264 264 265 266 267 268 268 269 270 271 272 273 274 274 275 276 277 278 279 280 282 283 284 286 287 289 290 292 293 294 296 297 299 300 302 303 305 307 309 310 312 314 316 317 319 321 323 324 326 327 328 329 330 331 332 333 334 336 337 338 339 340 341 342 343 344 345 347 348 349 350 352 353 354 355 356 358 359 360; 17 | 18 | // loop through the map to find the matching hue. 19 | @function ryb-hue($color) { 20 | @for $i from 1 through length($ryb-offset) { 21 | @if nth($ryb-offset, $i) > hue($color) { 22 | @return $i - 2deg; 23 | } 24 | } 25 | } 26 | 27 | // Changes the hue of a color. 28 | @function ryb-adjust-hue($color, $degrees) { 29 | 30 | // Convert precentag to degrees. 31 | @if unit($degrees) == "%" { 32 | $degrees: 360 * ($degrees / 100%); 33 | } 34 | 35 | // Start at the current hue and loop in the adjustment. 36 | $hue-adjust: (ryb-hue($color) + $degrees) / 1deg; 37 | 38 | @return hsl(hue(cs-interpolate($hue-adjust)), saturation($color), lightness($color)); 39 | } 40 | 41 | @function ryba($red, $yellow, $blue, $alpha) { 42 | $hue: 0; 43 | $saturation: 0; 44 | $lightness: percentage(($red + $yellow + $blue) / (255 * 3)); 45 | @if $red == $yellow and $yellow == $blue { 46 | @return hsla(0, 0, $lightness, $alpha); 47 | } 48 | @if $red >= $yellow and $red >= $blue { 49 | $hue: 0; 50 | } 51 | @elseif $yellow >= $red and $yellow >= $blue { 52 | $hue: 360 / 3; 53 | } 54 | @elseif $blue >= $red and $blue >= $yellow { 55 | $hue: 360 / 3 * 2; 56 | } 57 | @return hsla(hue(cs-interpolate($hue)), 100%, 50%, 1); 58 | } 59 | 60 | @function ryb($red, $yellow, $blue) { 61 | @return ryba($red, $yellow, $blue, 1); 62 | } 63 | 64 | @function set-ryb-hue($color, $hue) { 65 | @return hsla(hue(cs-interpolate($hue)), saturation($color), lightness($color), alpha($color)); 66 | } 67 | 68 | // Returns the complement of a color. 69 | @function ryb-complement($color) { 70 | @return ryb-adjust-hue($color, 180deg); 71 | } 72 | 73 | // Returns the inverse of a color. 74 | @function ryb-invert($color) { 75 | @return ryb-adjust-hue(hsl(hue($color), saturation(invert($color)), lightness(invert($color))), 180deg); 76 | } -------------------------------------------------------------------------------- /scss/vendor/color-schemer/color-schemer/_tint-shade.scss: -------------------------------------------------------------------------------- 1 | // Add percentage of white to a color 2 | @function tint($color, $percent) { 3 | @return mix(white, $color, $percent); 4 | } 5 | 6 | // Add percentage of black to a color 7 | @function shade($color, $percent) { 8 | @return mix(black, $color, $percent); 9 | } 10 | -------------------------------------------------------------------------------- /templates/blog.html.twig: -------------------------------------------------------------------------------- 1 | {% embed 'partials/base.html.twig' %} 2 | 3 | {% set collection = page.collection() %} 4 | 5 | {% block content %} 6 | {% set blog_image = page.media.images|first.grayscale().contrast(20).brightness(-100).colorize(-35,81,122) %} 7 | 8 | {% if blog_image %} 9 |
10 | {% else %} 11 |
12 | {% endif %} 13 | {{ page.content|raw }} 14 |
15 | 16 | {% if config.plugins.breadcrumbs.enabled %} 17 | {% include 'partials/breadcrumbs.html.twig' %} 18 | {% endif %} 19 | 20 |
21 |
22 | {% for child in collection %} 23 | {% include 'partials/blog_item.html.twig' with {'blog':page, 'page':child, 'truncate':true} %} 24 | {% endfor %} 25 | 26 | {% if config.plugins.pagination.enabled and collection.params.pagination %} 27 | {% include 'partials/pagination.html.twig' with {'base_url':page.url, 'pagination':collection.params.pagination} %} 28 | {% endif %} 29 |
30 | 33 |
34 | {% endblock %} 35 | 36 | {% endembed %} 37 | 38 | 39 | -------------------------------------------------------------------------------- /templates/default.html.twig: -------------------------------------------------------------------------------- 1 | {% extends 'partials/base.html.twig' %} 2 | 3 | {% block content %} 4 | {{ page.content|raw }} 5 | {% endblock %} 6 | -------------------------------------------------------------------------------- /templates/error.html.twig: -------------------------------------------------------------------------------- 1 | {% extends 'partials/base.html.twig' %} 2 | 3 | {% block content %} 4 |
5 |
6 |

{{ 'ERROR'|t }} {{ page.header.http_response_code }}

7 |

8 | {{ page.content|raw }} 9 |

10 |
11 |
12 | {% endblock %} 13 | -------------------------------------------------------------------------------- /templates/form.html.twig: -------------------------------------------------------------------------------- 1 | {% extends 'partials/base.html.twig' %} 2 | 3 | {% block content %} 4 | 5 | {{ content|raw }} 6 | {% include "forms/form.html.twig" %} 7 | 8 | {% endblock %} 9 | -------------------------------------------------------------------------------- /templates/item.html.twig: -------------------------------------------------------------------------------- 1 | {% embed 'partials/base.html.twig' %} 2 | 3 | {% block content %} 4 | {% if config.plugins.breadcrumbs.enabled %} 5 | {% include 'partials/breadcrumbs.html.twig' %} 6 | {% endif %} 7 | 8 |
9 |
10 | {% include 'partials/blog_item.html.twig' with {'blog':page.parent, 'truncate':false} %} 11 |
12 | 15 |
16 | {% endblock %} 17 | 18 | {% endembed %} 19 | -------------------------------------------------------------------------------- /templates/macros/macros.html.twig: -------------------------------------------------------------------------------- 1 | {% macro input(name, value, type, size) %} 2 | 3 | {% endmacro %} -------------------------------------------------------------------------------- /templates/modular.html.twig: -------------------------------------------------------------------------------- 1 | {% extends 'partials/base.html.twig' %} 2 | 3 | {% set show_onpage_menu = header.onpage_menu == true or header.onpage_menu is null %} 4 | {% macro pageLinkName(text) %}{{ text|lower|replace({' ':'_'}) }}{% endmacro %} 5 | 6 | {% block javascripts %} 7 | {% if show_onpage_menu %} 8 | {% do assets.add('theme://js/singlePageNav.min.js') %} 9 | {% endif %} 10 | {{ parent() }} 11 | {% endblock %} 12 | 13 | 14 | {% block bottom %} 15 | {{ parent() }} 16 | {% if show_onpage_menu %} 17 | 26 | {% endif %} 27 | {% endblock %} 28 | 29 | {% block header_navigation %} 30 | {% if show_onpage_menu %} 31 | 45 | {% else %} 46 | {{ parent() }} 47 | {% endif %} 48 | {% endblock %} 49 | 50 | {% block content %} 51 | {{ page.content|raw }} 52 | {% for module in page.collection() %} 53 |
54 | {{ module.content|raw }} 55 | {% endfor %} 56 | {% endblock %} 57 | -------------------------------------------------------------------------------- /templates/modular/features.html.twig: -------------------------------------------------------------------------------- 1 |
2 | {{ content|raw }} 3 |
4 | {% for feature in page.header.features %} 5 |
6 | {% if feature.icon %} 7 | 8 |
9 | {% else %} 10 |
11 | {% endif %} 12 | {% if feature.header %} 13 |

{{ feature.header }}

14 | {% endif %} 15 | {% if feature.text %} 16 |

{{ feature.text }}

17 | {% endif %} 18 |
19 |
20 | {% endfor %} 21 |
22 |
23 | -------------------------------------------------------------------------------- /templates/modular/showcase.html.twig: -------------------------------------------------------------------------------- 1 | {% set showcase_image = page.media.images|first.grayscale().contrast(20).brightness(-125).colorize(-35,81,122) %} 2 | {% if showcase_image %} 3 |
4 | {% else %} 5 |
6 | {% endif %} 7 | {{ content|raw }} 8 | 9 | {% for button in page.header.buttons %} 10 | {{ button.text }} 11 | {% endfor %} 12 | 13 |
14 | -------------------------------------------------------------------------------- /templates/modular/text.html.twig: -------------------------------------------------------------------------------- 1 |
2 | {% set image = page.media.images|first %} 3 | {% if image %} 4 | {{ image.cropResize(400,400).html('','','align-'~page.header.image_align)|raw }} 5 | {% endif %} 6 | {{ content|raw }} 7 |
8 | -------------------------------------------------------------------------------- /templates/partials/base.html.twig: -------------------------------------------------------------------------------- 1 | {% set theme_config = attribute(config.themes, config.system.pages.theme) %} 2 | 3 | 4 | 5 | {% block head %} 6 | 7 | {% if header.title %}{{ header.title|e('html') }} | {% endif %}{{ site.title|e('html') }} 8 | {% include 'partials/metadata.html.twig' %} 9 | 10 | 11 | 12 | 13 | {% block stylesheets %} 14 | {% do assets.addCss('theme://css/pure-0.5.0/grids-min.css', 103) %} 15 | {% do assets.addCss('theme://css-compiled/nucleus.css', 102) %} 16 | {% do assets.addCss('theme://css-compiled/template.css', 101) %} 17 | {% do assets.addCss('theme://css/custom.css', 100) %} 18 | {% do assets.addCss('theme://css/font-awesome.min.css', 100) %} 19 | {% do assets.addCss('theme://css/slidebars.min.css') %} 20 | 21 | {% if browser.getBrowser == 'msie' and browser.getVersion == 10 %} 22 | {% do assets.addCss('theme://css/nucleus-ie10.css') %} 23 | {% endif %} 24 | {% if browser.getBrowser == 'msie' and browser.getVersion >= 8 and browser.getVersion <= 9 %} 25 | {% do assets.addCss('theme://css/nucleus-ie9.css') %} 26 | {% do assets.addJs('theme://js/html5shiv-printshiv.min.js') %} 27 | {% endif %} 28 | {% endblock %} 29 | 30 | {% block javascripts %} 31 | {% do assets.addJs('jquery', 101) %} 32 | {% do assets.addJs('theme://js/modernizr.custom.71422.js', 100) %} 33 | {% do assets.addJs('theme://js/antimatter.js') %} 34 | {% do assets.addJs('theme://js/slidebars.min.js') %} 35 | {% endblock %} 36 | 37 | {% block assets deferred %} 38 | {{ assets.css()|raw }} 39 | {{ assets.js()|raw }} 40 | {% endblock %} 41 | 42 | {% endblock head %} 43 | 44 | 45 |
46 | {% block header %} 47 | 62 | {% endblock %} 63 | 64 | {% block showcase %}{% endblock %} 65 | 66 | {% block body %} 67 |
68 | {% block content %}{% endblock %} 69 |
70 | {% endblock %} 71 | 72 | {% block footer %} 73 | 79 | {% endblock %} 80 |
81 | {% block sidebar_navigation %} 82 |
83 |
84 | {% include 'partials/navigation.html.twig' %} 85 |
86 |
87 | {% endblock %} 88 | {% block bottom %} 89 | 99 | {{ assets.js('bottom')|raw }} 100 | {% endblock %} 101 | 102 | 103 | -------------------------------------------------------------------------------- /templates/partials/blog_item.html.twig: -------------------------------------------------------------------------------- 1 |
2 | 3 | {% set header_image = page.header.header_image|defined(true) %} 4 | {% set header_image_width = page.header.header_image_width|defined(900) %} 5 | {% set header_image_height = page.header.header_image_height|defined(300) %} 6 | {% set header_image_file = page.header.header_image_file %} 7 | 8 |
9 | 10 | 14 | 15 | {% if page.header.link %} 16 |

17 | {% if page.header.continue_link is not same as(false) %} 18 | 19 | {% endif %} 20 | {{ page.title }} 21 |

22 | {% else %} 23 |

{{ page.title }}

24 | {% endif %} 25 | 26 | {% if page.taxonomy.tag %} 27 | 28 | {% for tag in page.taxonomy.tag %} 29 | {{ tag }} 30 | {% endfor %} 31 | 32 | {% endif %} 33 | {% if header_image %} 34 | {% if header_image_file %} 35 | {% set header_image_media = page.media.images[header_image_file] %} 36 | {% else %} 37 | {% set header_image_media = page.media.images|first %} 38 | {% endif %} 39 | {{ header_image_media.cropZoom(header_image_width, header_image_height).html|raw }} 40 | {% endif %} 41 | 42 |
43 | 44 |
45 | 46 | {% if page.header.continue_link is same as(false) %} 47 |
48 | {{ page.content|raw }} 49 |
50 | {% if not truncate %} 51 | {% set show_prev_next = true %} 52 | {% endif %} 53 | {% elseif truncate and page.summary != page.content %} 54 |
55 | {{ page.summary|raw }} 56 |

{{ 'BLOG.ITEM.CONTINUE_READING'|t }}

57 |
58 | {% elseif truncate %} 59 |
60 | {{ page.content|raw }} 61 |

{{ 'BLOG.ITEM.CONTINUE_READING'|t }}

62 |
63 | {% else %} 64 |
65 | {{ page.content|raw }} 66 |
67 | 68 | {% if config.plugins.comments.enabled %} 69 | {% include 'partials/comments.html.twig' %} 70 | {% endif %} 71 | 72 | {% set show_prev_next = true %} 73 | {% endif %} 74 | 75 | {% if show_prev_next %} 76 | 77 |

78 | {% if not page.isFirst %} 79 | {{ 'BLOG.ITEM.NEXT_POST'|t }} 80 | {% endif %} 81 | 82 | {% if not page.isLast %} 83 | {{ 'BLOG.ITEM.PREV_POST'|t }} 84 | {% endif %} 85 |

86 | {% endif %} 87 | 88 |
89 |
90 | -------------------------------------------------------------------------------- /templates/partials/navigation.html.twig: -------------------------------------------------------------------------------- 1 | {% import _self as macros %} 2 | 3 | {% macro loop(page) %} 4 | {% import _self as macros %} 5 | {% for p in page.children.visible %} 6 | {% set current_page = (p.active or p.activeChild) ? 'active' : '' %} 7 | {% if p.children.visible.count > 0 %} 8 |
  • 9 | 10 | {% if p.header.icon %}{% endif %} 11 | {{ p.menu }} 12 | 13 | 14 |
      15 | {{ macros.loop(p) }} 16 |
    17 |
  • 18 | {% else %} 19 |
  • 20 | 21 | {% if p.header.icon %}{% endif %} 22 | {{ p.menu }} 23 | 24 |
  • 25 | {% endif %} 26 | {% endfor %} 27 | {% endmacro %} 28 | 29 | 55 | 56 | -------------------------------------------------------------------------------- /templates/partials/sidebar.html.twig: -------------------------------------------------------------------------------- 1 | {% set feed_url = blog.url == '/' or blog.url == base_url_relative ? (base_url_relative~'/'~blog.slug) : blog.url %} 2 | {% set new_base_url = blog.url == '/' ? '' : blog.url %} 3 | 4 | {% if config.plugins.simplesearch.enabled %} 5 | 9 | {% endif %} 10 | {% if config.plugins.relatedpages.enabled and related_pages|length > 0 %} 11 |

    {{ 'SIDEBAR.RELATED_POSTS.HEADLINE'|t }}

    12 | {% include 'partials/relatedpages.html.twig' %} 13 | {% endif %} 14 | {% if config.plugins.random.enabled %} 15 | 19 | {% endif %} 20 | 24 | {% if config.plugins.taxonomylist.enabled %} 25 | 29 | {% endif %} 30 | {% if config.plugins.archives.enabled %} 31 | 35 | {% endif %} 36 | {% if config.plugins.feed.enabled %} 37 | 42 | {% endif %} -------------------------------------------------------------------------------- /thumbnail.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav-theme-antimatter/275d646f009be13e83373eb5a7e5005b74aade31/thumbnail.jpg --------------------------------------------------------------------------------