diff --git a/config.toml b/config.toml index 8d150456c..59c30472e 100644 --- a/config.toml +++ b/config.toml @@ -77,13 +77,21 @@ watch = true removefromexternalsearch = true ## This is used when the BaseURL does not need to modified (eg, in share links) siteaddress = "https://gohugo.io" - ## GitHub Repository Base URL (should contain /edit/master/ to automatically link to edit-ready version of file and also include closing slash) - ghrepourl = "https://github.com/rdwatters/hugo-docs-concept/edit/master/content/" + ## Gh repo for site footer + ghrepo = "https://github.com/spf13/hugo/" + ## GitHub Docs Repository Base URL (include trailing slash) + ghdocsrepo = "https://github.com/rdwatters/hugo-docs-concept/" + ## Github Wiki for Documentation + ghdocswiki = "" + ## Github Wiki for Development + ghdevwiki = "" + ## Gitter URL + gitter = "https://gitter.im/spf13/hugo" + ## Discuss Forum URL + forum = "https://discuss.hugo.io" gtmid = "" # Set to true to include a CDN call to FontAwesome usefontawesome = true - # Sets the order of site sections in the sidebar navigation - sitemenuitems = ["About Hugo", "Getting Started", "Project Organization", "Content Management", "Templates", "Functions", "Variables and Params", "Themes", "Hosting and Deployment", "Migrating to Hugo", "News and Articles", "Site Showcase", "Developer Tools", "Troubleshooting"] # MARKDOWN ## Configuration for BlackFriday markdown parser: https://github.com/russross/blackfriday [blackfriday] diff --git a/content/about-hugo/_index.md b/content/about-hugo/_index.md index 9faa11637..763cc68e2 100644 --- a/content/about-hugo/_index.md +++ b/content/about-hugo/_index.md @@ -1,7 +1,7 @@ --- title: Introduction to Hugo linktitle: -description: Hugo's features, roadmap, license, and motivation. +description: Hugo's features, roadmap, and license, as well as the motivation behind creating Hugo. date: 2016-11-01 publishdate: 2016-11-01 lastmod: 2016-11-01 @@ -55,6 +55,10 @@ Hugo is for people building a blog, company site, portfolio, tumblog, documentation, single-page website, or a website with thousands of pages. +## See Also + +* [Hugo Performance Benchmark(@bep)] + [Aerobatic]: https://www.aerobatic.com/ [Amazon S3]: http://aws.amazon.com/s3/ @@ -67,15 +71,8 @@ pages. [GoDaddy]: https://www.godaddy.com/ [Google Cloud Storage]: http://cloud.google.com/storage/ [Heroku]: https://www.heroku.com/ +[Hugo Performance Benchmark(@bep)]: https://github.com/bep/hugo-benchmark [Jekyll]: http://jekyllrb.com/ [Middleman]: https://middlemanapp.com/ [Nanoc]: http://nanoc.ws/ -[Surge]: https://surge.sh - -## Next Steps - - * [Install Hugo](/overview/installing/) - * [Quick start](/overview/quickstart/) - * [Join the Mailing List](/community/mailing-list/) - * [Star us on GitHub](https://github.com/spf13/hugo) - * [Discussion Forum](http://discuss.gohugo.io/) \ No newline at end of file +[Surge]: https://surge.sh \ No newline at end of file diff --git a/content/about-hugo/license.md b/content/about-hugo/license.md index 1075d3437..b8c7f4e71 100644 --- a/content/about-hugo/license.md +++ b/content/about-hugo/license.md @@ -2,9 +2,9 @@ title: License linktitle: description: Information on the Hugo license. -date: 2016-11-01 -publishdate: 2016-11-01 -lastmod: 2016-11-01 +date: 2016-02-01 +publishdate: 2016-02-01 +lastmod: 2016-02-01 weight: 50 draft: false slug: diff --git a/content/about-hugo/roadmap.md b/content/about-hugo/roadmap.md index a9faff562..87f9e62ce 100644 --- a/content/about-hugo/roadmap.md +++ b/content/about-hugo/roadmap.md @@ -24,13 +24,14 @@ In no particular order, here is what is currently being worked on for the Hugo p * Native support for additional content formats (AsciiDoc [#1435][], reST [#1436][]) * And, last but not least, *your* best ideas! -> Feel free to [contribute][] or open a new issue if you have an idea for a new feature. +{{% note title="Contributions Welcome" %}} +Feel free to [contribute](/tutorials/how-to-contribute-to-hugo/) or open a new issue if you have an idea for a new feature. +{{% /note %}} [#98]: https://github.com/spf13/hugo/issues/98 [#1014]: https://github.com/spf13/hugo/issues/1014 [#1435]: https://github.com/spf13/hugo/issues/1435 [#1436]: https://github.com/spf13/hugo/issues/1436 -[contribute]: /tutorials/how-to-contribute-to-hugo/ [hosting and deployment]: /hosting-and-deployment/ [related Discuss thread]: https://discuss.gohugo.io/t/web-based-editor/155 [themes]: /themes diff --git a/content/about-hugo/sample-styles-temporary.md b/content/about-hugo/sample-styles-temporary.md new file mode 100644 index 000000000..42fbb5372 --- /dev/null +++ b/content/about-hugo/sample-styles-temporary.md @@ -0,0 +1,102 @@ +--- +title: Sample Styles +linktitle: +description: This should be deleted before go live. +date: 2016-02-01 +publishdate: 2016-02-01 +lastmod: 2016-02-01 +weight: 99 +draft: false +slug: +aliases: +notes: +--- + +Here is some body copy. Here is a bit of `inline code`. Here is a [link to Google](https://www.google.com). Here is some *emphasized and italics text*. Here is some **emphasized and bold text**. + +## Lists + +* Unordered list item lorem ipsum dolor sit amet, consectetur adipisicing elit. Ad dolorum alias vero. +* Unordered list item + * Nested unordered list item + * Nested unordered list item + * Nested again + * Nested again +* Unordered list item + +1. Ordered list item lorem ipsum dolor sit amet, consectetur adipisicing elit. Sapiente, quae nulla dolore eligendi. +2. Ordered list item + 1. Nested ordered list item + 2. Nested ordered list item + 1. Nested again, ordered + 2. Nested again, ordered +3. Ordered list item + +## Callouts/CTAs/Admonitions + +{{% note "Note Shortcode" %}} +Here is *something in italic* in a shortcode. Here is **something in bold**. +{{% /note %}} + +{{% caution "Caution Shortcode" %}} +Here is *something in italic* in a shortcode. Here is **something in bold**. +{{% /caution %}} + +{{% warning "Warning Shortcode" %}} +Here is *something in italic* in a shortcode. Here is **something in bold**. +{{% /warning %}} + +## Code Block Shortcodes + +### Code Input Shortcode + +{{% input "my-first-template.html" %}} +```go + +``` +{{% /input %}} + +{{% input "first-script.js" %}} +```js +function myFunction(arg){ + console.log(arg); +} +``` +{{% /input %}} + +### Code Output Shortcode + +{{% output "/posts/index.html" %}} +```go + +``` +{{% /output %}} + +{{% output "/first-data.json" %}} +```json +{ + "glossary": { + "title": "example glossary", + "GlossDiv": { + "title": "S" + } + } +} +``` +{{% /output %}} + +### Markdown Code Block without Shortcode + +```javascript +function myFunction(val){ + console.log(val); +} +``` diff --git a/content/about-hugo/why-use-a-static-site-generator.md b/content/about-hugo/why-use-a-static-site-generator.md index 0bd2ffffa..5129c1bc2 100644 --- a/content/about-hugo/why-use-a-static-site-generator.md +++ b/content/about-hugo/why-use-a-static-site-generator.md @@ -14,7 +14,7 @@ notes: Website generators render content into HTML files. Most are "dynamic site generators." That means the HTTP server (i.e., the program that communicates with your end user's browser) runs the generator to create a new HTML file every time an end user requests a page. -Creating the page dynamically requires the HTTP server have enough memory and CPU to effectively run the generator around the clock. If not, your end user will wait in a queue for the page to be generated. +Creating the page dynamically requires the HTTP server to have enough memory and CPU to effectively run the generator nonstop. If not, your end user will wait in a queue for the page to be generated. To prevent unnecessary delays in delivering pages to end users, dynamic site generators were programmed to cache their HTML files. A cached page is a copy that is temporarily stored on the computer. Sending a cached copy is faster than generating a new page at the time of request because the majority of the work is already done. diff --git a/content/content-management/cross-references.md b/content/content-management/cross-references.md new file mode 100644 index 000000000..25ca5bf51 --- /dev/null +++ b/content/content-management/cross-references.md @@ -0,0 +1,15 @@ +--- +title: Cross References +linktitle: +description: +date: 2017-02-01 +publishdate: 2017-02-01 +lastmod: 2017-01-09 +categories: [content] +tags: [cross references, anchors] +weight: +draft: false +slug: +aliases: [] +notes: +--- \ No newline at end of file diff --git a/content/content-management/markdown-and-supported-formats.md b/content/content-management/markdown-and-supported-formats.md index d3804edb3..33f2d19a4 100644 --- a/content/content-management/markdown-and-supported-formats.md +++ b/content/content-management/markdown-and-supported-formats.md @@ -13,6 +13,6 @@ aliases: [/content/markdown-extras/,/content/supported-formats/] notes: --- -{{% note "Deeply Nested Lists" %}} +{{% caution "Deeply Nested Lists" %}} Hugo uses [BlackFriday](https://github.com/russross/blackfriday), a markdown processor written in Go. A known issue [(#329)](https://github.com/russross/blackfriday/issues/329) in BlackFriday is the handling of deeply nested lists, but there is a workaround. If you write lists in markdown, be sure to include 4 spaces (i.e., tab) rather than 2 to delimit nesting of lists. -{{% /note %}} \ No newline at end of file +{{% /caution %}} \ No newline at end of file diff --git a/content/content-management/permalinks.md b/content/content-management/permalinks.md new file mode 100644 index 000000000..4177c1bb4 --- /dev/null +++ b/content/content-management/permalinks.md @@ -0,0 +1,14 @@ +--- +title: Permalinks +linktitle: Permalinks +description: +date: 2017-01-10 +publishdate: 2017-01-10 +lastmod: 2017-01-10 +tags: [permalinks,url,slug] +weight: +draft: false +slug: +aliases: [] +notes: +--- \ No newline at end of file diff --git a/content/tutorials/how-to-contribute-to-hugo.md b/content/contribute-to-hugo/_index.md similarity index 50% rename from content/tutorials/how-to-contribute-to-hugo.md rename to content/contribute-to-hugo/_index.md index 7d3071316..7210713b3 100644 --- a/content/tutorials/how-to-contribute-to-hugo.md +++ b/content/contribute-to-hugo/_index.md @@ -1,7 +1,7 @@ --- -title: How to Contribute to Hugo +title: Contribute to Hugo Development linktitle: -description: Tutorial developed by DigitalCraftsman of the Hugo community to explain to new developers how to contribute to the Hugo project. +description: Contribute to Hugo development and documentation. date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 diff --git a/content/contribute-to-hugo/contribute-to-hugo-docs.md b/content/contribute-to-hugo/contribute-to-hugo-docs.md new file mode 100644 index 000000000..eb168045f --- /dev/null +++ b/content/contribute-to-hugo/contribute-to-hugo-docs.md @@ -0,0 +1,16 @@ +--- +title: Contribute to Hugo Docs +linktitle: Contribute to Hugo Docs +description: +date: 2017-02-01 +publishdate: 2017-02-01 +lastmod: 2017-02-01 +tags: [contribute,tutorials] +author: +authorprofileurl: +weight: +draft: false +slug: +aliases: +notes: +--- \ No newline at end of file diff --git a/content/functions/_index.md b/content/functions/_index.md index 72da78f27..e2a76f261 100644 --- a/content/functions/_index.md +++ b/content/functions/_index.md @@ -1,7 +1,7 @@ --- -title: Functions Quick Reference -linktitle: Functions Quick Reference -description: Description for templating functions. +title: Quick Reference +linktitle: Quick Reference +description: Comprehensive list of Hugo templating functions, including basic and advanced usage examples. date: 2017-01-09 publishdate: 2017-01-09 lastmod: 2017-01-09 diff --git a/content/functions/countwords.md b/content/functions/countwords.md index f4e58ad73..e0b1cae09 100644 --- a/content/functions/countwords.md +++ b/content/functions/countwords.md @@ -14,20 +14,4 @@ layout: slug: aliases: [] notes: ---- - -## Heading - -Lorem ipsum dolor sit amet, consectetur adipisicing elit. Asperiores, praesentium quod magnam veritatis, itaque tenetur minima nihil a at cum doloremque accusantium fugiat quam! Cumque ad vero provident enim temporibus! - -{{% note title="Note" %}} -Here is *something in italic* in a shortcode. Here is **something in bold**. -{{% /note %}} - -{{% caution title="Caution" %}} -Here is *something in italic* in a shortcode. Here is **something in bold**. -{{% /caution %}} - -{{% warn title="Warn" %}} -Here is *something in italic* in a shortcode. Here is **something in bold**. -{{% /warn %}} +--- \ No newline at end of file diff --git a/content/functions/default-function.md b/content/functions/default-function.md index 88e053ee0..771cd0940 100644 --- a/content/functions/default-function.md +++ b/content/functions/default-function.md @@ -1,9 +1,7 @@ --- title: default -linktitle: +linktitle: default description: -qr_description: -qr_returns: date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 diff --git a/content/functions/index-function.md b/content/functions/index-function.md index c2ffc1e93..89e7251bc 100644 --- a/content/functions/index-function.md +++ b/content/functions/index-function.md @@ -1,17 +1,19 @@ --- title: index -linktitle: +linktitle: index description: -qr_description: -qr_returns: +workson: [map,slice,array] +godocref: https://golang.org/pkg/text/template/#hdr-Functions +tags: [iteration] +categories: [functions] date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 weight: draft: false -type: -layout: slug: aliases: [] notes: --- + +Here is some content for the `index` function. diff --git a/content/getting-started/_index.md b/content/getting-started/_index.md index da4a025a4..8ee543c8b 100644 --- a/content/getting-started/_index.md +++ b/content/getting-started/_index.md @@ -1,7 +1,7 @@ --- title: How to Use the Hugo Docs linktitle: Using the Hugo Docs -description: Description for the Getting Started section. +description: Quick start and guides for installing Hugo on your preferred operating system. date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 diff --git a/content/hosting-and-deployment/_index.md b/content/hosting-and-deployment/_index.md index b7ecda996..ff9e58614 100644 --- a/content/hosting-and-deployment/_index.md +++ b/content/hosting-and-deployment/_index.md @@ -1,7 +1,7 @@ --- title: Building Your Static Site linktitle: -description: Build process, automated deployments, and popular hosting solutions. +description: Site builds, automated deployments, and popular hosting solutions. date: 2016-11-01 publishdate: 2016-11-01 lastmod: 2016-11-01 diff --git a/content/project-organization/configuration.md b/content/project-organization/configuration.md index 2cf65d19f..24f0d69e7 100644 --- a/content/project-organization/configuration.md +++ b/content/project-organization/configuration.md @@ -3,55 +3,206 @@ title: Configuration linktitle: description: Scaffolding new projects, configuration, and source organization. date: 2017-01-02 +tags: [configuration,fundamentals] publishdate: 2017-01-02 lastmod: 2017-01-02 weight: 10 draft: false slug: -aliases: +aliases: [/overview/source-directory/] notes: --- -Here is `some code` in the body copy. +The [directory structure][] of a Hugo website—or more precisely, the source organization of files containing the website's content and templates—provide most of the configuration information that Hugo needs in order to statically generate a finished website. -{{% input "my-first-template.html" %}} -```go - +Therefore, many websites wouldn't actually need a configuration file. This is because Hugo is designed to recognize certain typical usage patterns (and expects them, by default). + +Nevertheless, Hugo searches for a configuration file in the root of your website's source directory as a default behavior. First, it looks for a `./config.toml` file. If that's not present, it will seek a `./config.yaml` file, +followed by a `./config.json` file. + +In this `config` file, you can include precise directions to Hugo regarding how it should render your website, control your website's menus, and arbitrarily define site-wide parameters specific to your project. + +## Configure Through Environmental Variables + +In addition to the 3 configuration file options already mentioned, website configuration can be accomplished through operating system environment variables. + +For example, the following command will effectively set a website's title on Unix-like systems: + +{{% input "environment-variable.sh" %}} +```bash +$ env HUGO_TITLE="Some Title" hugo ``` {{% /input %}} -{{% input "first-script.js" %}} -```js -function myFunction(arg){ - console.log(arg); -} +{{% note "Setting Environment Variables" %}} +names must be prefixed with `HUGO_` when setting environment variables through operating system environment variables. +{{% /note %}} + +## Configuration in YAML + +The following is a typical example of a YAML configuration file. Note the document opens with 3 hyphens and closes with 3 periods. The values nested under `params:` will populate the [`.Site.Params`][] variable for use in [templates][]: + +{{% input "config.yml" %}} +```yaml +--- +baseURL: "http://yoursite.example.com/" +title: "Yoyodyne Widget Blogging" +footnoteReturnLinkContents: "↩" +permalinks: + post: /:year/:month/:title/ +params: + Subtitle: "Spinning the cogs in the widgets" + AuthorName: "John Doe" + GitHubUser: "spf13" + ListOfFoo: + - "foo1" + - "foo2" + SidebarRecentLimit: 5 +... ``` {{% /input %}} -{{% input "first-data.json" %}} -```json -function myFunction(arg){ - console.log(arg); -} +## Configuration in TOML + +The following is an example of a TOML configuration file. The values under `[params]` will populate the `.Site.Params` variable for use in [templates][]: + +{{% input "config.toml" %}} +```toml +contentDir = "content" +layoutDir = "layouts" +publishDir = "public" +buildDrafts = false +baseURL = "http://yoursite.example.com/" +canonifyURLs = true + +[taxonomies] + category = "categories" + tag = "tags" + +[params] + description = "Tesla's Awesome Hugo Site" + author = "Nikola Tesla" ``` {{% /input %}} -{{% output "layouts/_default/list.html" %}} -```go - -``` -{{% /output %}} +## Complete List of Configuration Variables -```javascript -function myFunction(val){ - console.log(val); -} +The following is a list of Hugo-defined variables. The values assigned to each of the variables represents the default value used by Hugo if you not specifically change the value in your configuration. + +{{% input "config.yml" %}} +```yaml +--- +archetypeDir: "archetypes" +# hostname (and path) to the root, e.g. http://spf13.com/ +baseURL: "" +# include content marked as draft +buildDrafts: false +# include content with publishdate in the future +buildFuture: false +# include content already expired +buildExpired: false +# enable this to make all relative URLs relative to content root. Note that this does not affect absolute URLs. +relativeURLs: false +canonifyURLs: false +# config file (default is path/config.yaml|json|toml) +config: "config.toml" +contentDir: "content" +dataDir: "data" +defaultExtension: "html" +defaultLayout: "post" +# Missing translations will default to this content language +defaultContentLanguage: "en" +# Renders the default content language in subdir, e.g. /en/. The root directory / will redirect to /en/ +defaultContentLanguageInSubdir: false +disableLiveReload: false +# Do not build RSS files +disableRSS: false +# Do not build Sitemap file +disableSitemap: false +# Enable GitInfo feature +enableGitInfo: false +# Build robots.txt file +enableRobotsTXT: false +# Do not render 404 page +disable404: false +# Do not inject generator meta tag on homepage +disableHugoGeneratorInject: false +# edit new content with this editor, if provided +editor: "" +# Enable Emoji emoticons support for page content. +# See www.emoji-cheat-sheet.com +enableEmoji: false +# Show a placeholder instead of the default value or an empty string if a translation is missing +enableMissingTranslationPlaceholders: false +footnoteAnchorPrefix: "" +footnoteReturnLinkContents: "" +# google analytics tracking id +googleAnalytics: "" +languageCode: "" +layoutDir: "layouts" +# Enable Logging +log: false +# Log File path (if set, logging enabled automatically) +logFile: "" +# "yaml", "toml", "json" +metaDataFormat: "toml" +newContentEditor: "" +# Don't sync permission mode of files +noChmod: false +# Don't sync modification time of files +noTimes: false +paginate: 10 +paginatePath: "page" +permalinks: +# Pluralize titles in lists using inflect +pluralizeListTitles: true +# Preserve special characters in taxonomy names ("Gérard Depardieu" vs "Gerard Depardieu") +preserveTaxonomyNames: false +# filesystem path to write files to +publishDir: "public" +# enables syntax guessing for code fences without specified language +pygmentsCodeFencesGuessSyntax: false +# color-codes for highlighting derived from this style +pygmentsStyle: "monokai" +# true: use pygments-css or false: color-codes directly +pygmentsUseClasses: false +# default sitemap configuration map +sitemap: +# filesystem path to read files relative from +source: "" +staticDir: "static" +# display memory and timing of different steps of the program +stepAnalysis: false +# theme to use (located by default in /themes/THEMENAME/) +themesDir: "themes" +theme: "" +title: "" +# if true, use /filename.html instead of /filename/ +uglyURLs: false +# Do not make the url/path to lowercase +disablePathToLower: false +# if true, auto-detect Chinese/Japanese/Korean Languages in the content. (.Summary and .WordCount can work properly in CJKLanguage) +hasCJKLanguage: false +# verbose output +verbose: false +# verbose logging +verboseLog: false +# watch filesystem for changes and recreate as needed +watch: true +--- ``` +{{% /input %}} + +## Ignoring Files When Rendering + +The following statement inside `./config.toml` will cause Hugo to ignore files +ending with `.foo` and `.boo` when rendering: + +```toml +ignoreFiles = [ "\\.foo$", "\\.boo$" ] +``` +The above is a list of regular expressions. Note that the backslash (`\`) character is escaped in this example to keep TOML happy. + +[`.Site.Params`]: /variables-and-params/ +[templates]: /templates +[directory structure]: /project-organization/directory-structure \ No newline at end of file diff --git a/content/project-organization/directory-structure.md b/content/project-organization/directory-structure.md new file mode 100644 index 000000000..2fc593985 --- /dev/null +++ b/content/project-organization/directory-structure.md @@ -0,0 +1,13 @@ +--- +title: Directory Structure +linktitle: +description: Explanation of the directory structure in a typical Hugo project and how Hugo traverses the file system therein. +date: 2017-01-02 +publishdate: 2017-01-02 +lastmod: 2017-01-02 +weight: 10 +draft: false +slug: +aliases: +notes: +--- \ No newline at end of file diff --git a/content/templates/base-templates-and-blocks.md b/content/templates/base-templates-and-blocks.md index d5078f1aa..ee074cc9a 100644 --- a/content/templates/base-templates-and-blocks.md +++ b/content/templates/base-templates-and-blocks.md @@ -6,9 +6,11 @@ date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 weight: -tags: [] +tags: [blocks,base] draft: false slug: aliases: notes: ---- \ No newline at end of file +--- + +## Base Template Lookup Order \ No newline at end of file diff --git a/content/templates/template-types.md b/content/templates/sitemap-template.md similarity index 85% rename from content/templates/template-types.md rename to content/templates/sitemap-template.md index 35a09cd6d..b1c64abab 100644 --- a/content/templates/template-types.md +++ b/content/templates/sitemap-template.md @@ -1,5 +1,5 @@ --- -title: Template Types +title: Sitemap Template linktitle: description: date: 2017-02-01 diff --git a/content/templates/template-types-and-kinds.md b/content/templates/template-types-and-kinds.md new file mode 100644 index 000000000..7232afc6c --- /dev/null +++ b/content/templates/template-types-and-kinds.md @@ -0,0 +1,14 @@ +--- +title: Template Types and Kinds +linktitle: Template Types and Kinds +description: +date: 2017-02-01 +publishdate: 2017-02-01 +lastmod: 2017-02-01 +weight: +tags: [] +draft: false +slug: +aliases: +notes: +--- \ No newline at end of file diff --git a/content/themes/_index.md b/content/themes/_index.md index 024c84ab5..4b39c5a06 100644 --- a/content/themes/_index.md +++ b/content/themes/_index.md @@ -1,7 +1,7 @@ --- title: Introduction to Themes linktitle: -description: Description of the theming section and its contents. +description: Install, use, and create Hugo themes. date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 diff --git a/content/troubleshooting/_index.md b/content/troubleshooting/_index.md index 1b01a11bc..ad27ec675 100644 --- a/content/troubleshooting/_index.md +++ b/content/troubleshooting/_index.md @@ -1,7 +1,7 @@ --- title: Troubleshooting linktitle: -description: Frequently asked questions pulled from the Hugo forum and known issues and workarounds. +description: FAQs pulled from the Hugo forum, known issues, and workarounds. date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 diff --git a/content/tutorials/_index.md b/content/tutorials/_index.md index 21b580e3f..a07a387cd 100644 --- a/content/tutorials/_index.md +++ b/content/tutorials/_index.md @@ -1,7 +1,7 @@ --- title: Submitting a Tutorial linktitle: -description: Learn how to submit your tutorial to the Hugo docs. +description: . date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 diff --git a/content/tutorials/creating-a-multilingual-site.md b/content/tutorials/creating-a-multilingual-site.md new file mode 100644 index 000000000..361e170fc --- /dev/null +++ b/content/tutorials/creating-a-multilingual-site.md @@ -0,0 +1,16 @@ +--- +title: Create a Multilingual Site +linktitle: +description: +date: 2017-02-01 +publishdate: 2017-02-01 +lastmod: 2017-02-01 +tags: [multilingual,] +author: +authorprofileurl: +weight: +draft: false +slug: +aliases: +notes: +--- \ No newline at end of file diff --git a/content/variables-and-params/_index.md b/content/variables-and-params/_index.md index 4f91a2a9b..6d2bb95f0 100644 --- a/content/variables-and-params/_index.md +++ b/content/variables-and-params/_index.md @@ -1,16 +1,16 @@ --- -title: Introduction +title: Variables vs Parameters linktitle: -description: Description for the variables and parameters section of the site. +description: Page-, file-, taxonomy-, and site-level variables and parameters available in templates. date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 -weight: +weight: 01 draft: false slug: aliases: [] notes: --- -Here is some content for the homepage. +Content for the Variables and Params Section diff --git a/content/variables-and-params/page-variables.md b/content/variables-and-params/page-variables.md index f4569f312..f421ba9a5 100644 --- a/content/variables-and-params/page-variables.md +++ b/content/variables-and-params/page-variables.md @@ -13,3 +13,5 @@ slug: aliases: [] notes: --- + +`.IsNamedParams` (reference to shortcodes) diff --git a/data/sitenavigation.yml b/data/sitenavigation.yml index 4f993ef5f..106b78f28 100644 --- a/data/sitenavigation.yml +++ b/data/sitenavigation.yml @@ -82,8 +82,14 @@ newsandarticles: url: "news-and-articles" haschildren: true sortsubpagesby: "weight" -siteshowcase: +contributetohugo: order: 15 + title: "Contribute to Hugo" + url: "contribute-to-hugo" + haschildren: true + sortsubpagesby: "weight" +siteshowcase: + order: 16 title: "Site Showcase" url: "site-showcase" haschildren: false diff --git a/themes/hugodocs/layouts/_default/single.html b/themes/hugodocs/layouts/_default/single.html index 665f182f2..7cc10eebd 100644 --- a/themes/hugodocs/layouts/_default/single.html +++ b/themes/hugodocs/layouts/_default/single.html @@ -1,13 +1,20 @@ {{ define "main" }} +{{$base := .Site.BaseURL}}
- Edit + Edit
-

{{with .LinkTitle}}{{ . |markdownify}}{{else}}{{ .Title | markdownify }}{{end}}

+

{{with .LinkTitle}}{{ . |markdownify}}{{else}}{{ .Title | markdownify }}{{end}} + {{- with .Params.godocref -}} + + {{ partial "svg-icons/godoc-icon.svg" .}} + + {{- end -}} +

{{with .Params.tags}} {{end}} diff --git a/themes/hugodocs/layouts/index.html b/themes/hugodocs/layouts/index.html index 21a4b8f64..765075ee7 100644 --- a/themes/hugodocs/layouts/index.html +++ b/themes/hugodocs/layouts/index.html @@ -9,15 +9,14 @@ {{end}}
- {{range .Site.Params.sitemenuitems }} - {{$sectionurl := . | urlize}} - + {{range $key,$params := sort ($.Site.Data.sitenavigation) "order" }} +
-

{{.}}

+

{{ $params.title }}

-

{{ with $.Site.GetPage "section" $sectionurl }}{{ .Description | markdownify }}{{ end }}

+

{{ with $.Site.GetPage "section" $params.url }}{{ .Description | markdownify }}{{ end }}

diff --git a/themes/hugodocs/layouts/partials/site-footer.html b/themes/hugodocs/layouts/partials/site-footer.html index b7be17008..f2e336b6f 100644 --- a/themes/hugodocs/layouts/partials/site-footer.html +++ b/themes/hugodocs/layouts/partials/site-footer.html @@ -1,3 +1,14 @@ \ No newline at end of file diff --git a/themes/hugodocs/layouts/partials/site-header.html b/themes/hugodocs/layouts/partials/site-header.html index 0384df4f6..0d9dcd0ce 100644 --- a/themes/hugodocs/layouts/partials/site-header.html +++ b/themes/hugodocs/layouts/partials/site-header.html @@ -4,6 +4,6 @@ v{{.Hugo.Version}} - Star +
\ No newline at end of file diff --git a/themes/hugodocs/layouts/partials/site-navigation.html b/themes/hugodocs/layouts/partials/site-navigation.html index dc7841f20..8f8304725 100644 --- a/themes/hugodocs/layouts/partials/site-navigation.html +++ b/themes/hugodocs/layouts/partials/site-navigation.html @@ -29,32 +29,8 @@ {{end}} - \ No newline at end of file diff --git a/themes/hugodocs/layouts/partials/svg-icons/godoc-icon.svg b/themes/hugodocs/layouts/partials/svg-icons/godoc-icon.svg new file mode 100644 index 000000000..1a6b82159 --- /dev/null +++ b/themes/hugodocs/layouts/partials/svg-icons/godoc-icon.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/themes/hugodocs/layouts/partials/svg-icons/hugo.svg b/themes/hugodocs/layouts/partials/svg-icons/hugo.svg new file mode 100644 index 000000000..58d025596 --- /dev/null +++ b/themes/hugodocs/layouts/partials/svg-icons/hugo.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/themes/hugodocs/layouts/partials/svg-icons/javascript.svg b/themes/hugodocs/layouts/partials/svg-icons/javascript.svg new file mode 100644 index 000000000..b0e2f5b0d --- /dev/null +++ b/themes/hugodocs/layouts/partials/svg-icons/javascript.svg @@ -0,0 +1,24 @@ + + + + + + diff --git a/themes/hugodocs/layouts/partials/svg-icons/json.svg b/themes/hugodocs/layouts/partials/svg-icons/json.svg new file mode 100644 index 000000000..d2ba6d0fc --- /dev/null +++ b/themes/hugodocs/layouts/partials/svg-icons/json.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/themes/hugodocs/layouts/shortcodes/caution.html b/themes/hugodocs/layouts/shortcodes/caution.html index 3bbe29673..558b19855 100644 --- a/themes/hugodocs/layouts/shortcodes/caution.html +++ b/themes/hugodocs/layouts/shortcodes/caution.html @@ -1,5 +1,5 @@
-

{{with .Get "title"}}{{.}}{{else}}Note{{end}}

+

{{if .Get 0}}{{.Get 0}}{{else}}Caution{{end}}

{{.Inner}}
diff --git a/themes/hugodocs/layouts/shortcodes/note.html b/themes/hugodocs/layouts/shortcodes/note.html index 96e840e42..bf88c5f13 100644 --- a/themes/hugodocs/layouts/shortcodes/note.html +++ b/themes/hugodocs/layouts/shortcodes/note.html @@ -1,5 +1,5 @@
-

{{with .Get "title"}}{{.}}{{else}}Note{{end}}

+

{{if .Get 0}}{{.Get 0}}{{else}}Note{{end}}

{{.Inner}}
diff --git a/themes/hugodocs/layouts/shortcodes/output.html b/themes/hugodocs/layouts/shortcodes/output.html index a6eb8f38e..ea042fddc 100644 --- a/themes/hugodocs/layouts/shortcodes/output.html +++ b/themes/hugodocs/layouts/shortcodes/output.html @@ -1,15 +1,4 @@ -{{- if .IsNamedParams -}} -{{$filenameclass := index (split (.Get "filename") ".") 1 }} -
- {{- with .Get "filename" -}}
Output to: {{- . -}}
{{- end -}} +
+
Renders to... {{.Get 0}}
{{- .Inner -}} -
-{{- else -}} -{{$filenameclass := index (split (.Get 0) ".") 1 }} -
-
Output to: {{.Get 0}}
- {{- .Inner -}} -
-{{- end -}} - - +
\ No newline at end of file diff --git a/themes/hugodocs/layouts/shortcodes/warn.html b/themes/hugodocs/layouts/shortcodes/warn.html deleted file mode 100644 index d40587524..000000000 --- a/themes/hugodocs/layouts/shortcodes/warn.html +++ /dev/null @@ -1,6 +0,0 @@ -
-

{{with .Get "title"}}{{.}}{{else}}Note{{end}}

-
- {{.Inner}} -
-
\ No newline at end of file diff --git a/themes/hugodocs/layouts/shortcodes/warning.html b/themes/hugodocs/layouts/shortcodes/warning.html new file mode 100644 index 000000000..73f12c80c --- /dev/null +++ b/themes/hugodocs/layouts/shortcodes/warning.html @@ -0,0 +1,6 @@ +
+

{{if .Get 0}}{{.Get 0}}{{else}}Warning{{end}}

+
+ {{.Inner}} +
+
\ No newline at end of file diff --git a/themes/hugodocs/pipeline/scss/_variables.scss b/themes/hugodocs/pipeline/scss/_variables.scss index bcd976f5d..2e13b3902 100644 --- a/themes/hugodocs/pipeline/scss/_variables.scss +++ b/themes/hugodocs/pipeline/scss/_variables.scss @@ -30,7 +30,7 @@ $body-bg-color:$hugo-white; //Typography $base-font-size: 18px; -$base-font-family: 'muli','helvetica neue',helvetica,sans-serif; +$base-font-family: 'muli',$helvetica; $heading-font-family: $base-font-family; $base-font-color: #333333; $base-line-height-content: 1.6; diff --git a/themes/hugodocs/pipeline/scss/base/_fontello.scss b/themes/hugodocs/pipeline/scss/base/_fontello.scss index 51b576f09..ebf5d12c8 100755 --- a/themes/hugodocs/pipeline/scss/base/_fontello.scss +++ b/themes/hugodocs/pipeline/scss/base/_fontello.scss @@ -1,11 +1,10 @@ @font-face { font-family: 'fontello'; - src: url('/fonts/fontello/fontello.eot?73509738'); - src: url('/fonts/fontello/fontello.eot?73509738#iefix') format('embedded-opentype'), - url('/fonts/fontello/fontello.woff2?73509738') format('woff2'), - url('/fonts/fontello/fontello.woff?73509738') format('woff'), - url('/fonts/fontello/fontello.ttf?73509738') format('truetype'), - url('/fonts/fontello/fontello.svg?73509738#fontello') format('svg'); + src: url('/fonts/fontello/fontello.eot'); + src: url('/fonts/fontello/fontello.woff2') format('woff2'), + url('/fonts/fontello/fontello.woff') format('woff'), + url('/fonts/fontello/fontello.ttf') format('truetype'), + url('/fonts/fontello/fontello.svg?78165468#fontello') format('svg'); font-weight: normal; font-style: normal; } @@ -15,7 +14,7 @@ @media screen and (-webkit-min-device-pixel-ratio:0) { @font-face { font-family: 'fontello'; - src: url('../font/fontello.svg?73509738#fontello') format('svg'); + src: url('../font/fontello.svg?78165468#fontello') format('svg'); } } */ @@ -54,47 +53,77 @@ /* Uncomment for 3D effect */ /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */ } + .icon-alert:before { content: '\e810'; } /* '' */ .icon-angle-double-right:before { content: '\f101'; } /* '' */ +.icon-attach:before { content: '\e820'; } /* '' */ .icon-attention:before { content: '\e80f'; } /* '' */ -.icon-bash:before { content: '\e804'; } /* '' */ .icon-bell:before { content: '\e80d'; } /* '' */ +.icon-cancel:before { content: '\e81e'; } /* '' */ +.icon-caution:before { content: '\e80f'; } /* '' */ .icon-chrome:before { content: '\e841'; } /* '' */ .icon-clipboard:before { content: '\e817'; } /* '' */ .icon-code:before { content: '\f121'; } /* '' */ .icon-cog-alt:before { content: '\e814'; } /* '' */ .icon-css3:before { content: '\f13c'; } /* '' */ +.icon-docs:before { content: '\f15c'; } /* '' */ .icon-download:before { content: '\e815'; } /* '' */ .icon-facebook-official:before { content: '\f230'; } /* '' */ -.icon-file-pdf:before { content: '\f1c1'; } /* '' */ .icon-firefox:before { content: '\e840'; } /* '' */ .icon-flag:before { content: '\e813'; } /* '' */ +.icon-forum:before { +content: '\f03d'; +margin-right:.3em; +} /* '' */ +.icon-github:before { content: '\f09b'; } /* '' */ +.icon-gitter:before { content: '\e819'; } /* '' */ .icon-go:before { content: '\e801'; } /* '' */ .icon-golang:before { content: '\e801'; } /* '' */ -.icon-gopher:before { content: '\e801'; } /* '' */ +.icon-heart:before { content: '\e81d'; } /* '' */ +.icon-help:before { content: '\e81b'; } /* '' */ .icon-home:before { content: '\e812'; } /* '' */ -.icon-html.input:before { content: '\e801'; } /* '' */ +.icon-html.input:before { content: '\e81f'; } /* '' adds the hugo logo to "code" shortcode for filenames that end in ".html"*/ .icon-html5:before { content: '\e800'; } /* '' */ .icon-html:before { content: '\e800'; } /* '' */ +.icon-hugo:before { content: '\e81f'; } /* '' */ .icon-ie:before { content: '\e843'; } /* '' */ .icon-info:before { content: '\e811'; } /* '' */ .icon-instagram:before { content: '\f32d'; } /* '' */ .icon-javascript:before { content: '\e802'; } /* '' */ .icon-js:before { content: '\e802'; } /* '' */ -.icon-json:before {content: '\E81C';} +.icon-json:before { content: '\e81c'; } /* '' */ .icon-link:before { content: '\e816'; } /* '' */ +.icon-linkedin:before { content: '\f30c'; } /* '' */ +.icon-love:before { content: '\e81d'; } /* '' */ +.icon-mail:before { content: '\e821'; } /* '' */ .icon-markdown:before { content: '\e80e'; } /* '' */ +.icon-note:before { content: '\e80d'; } /* '' */ .icon-opera:before { content: '\e842'; } /* '' */ +.icon-pdf:before { content: '\f1c1'; } /* '' */ .icon-pencil:before { content: '\e80c'; } /* '' */ .icon-picture:before { content: '\e808'; } /* '' */ .icon-quote-left:before { content: '\e809'; } /* '' */ .icon-quote-right:before { content: '\e80a'; } /* '' */ .icon-sass:before { content: '\e803'; } /* '' */ .icon-search:before { content: '\e80b'; } /* '' */ -.icon-sh:before { content: '\e804'; } /* '' */ .icon-share:before { content: '\f1e0'; } /* '' */ -.icon-shell:before { content: '\e804'; } /* '' */ .icon-tag:before { content: '\e806'; } /* '' */ .icon-tags:before { content: '\e805'; } /* '' */ +.icon-sh:before { content: '\e804'; } /* '' */ .icon-terminal:before { content: '\e804'; } /* '' */ -.icon-twitter:before { content: '\e807'; } /* '' */ \ No newline at end of file +.icon-bash:before { content: '\e804'; } /* '' */ +.icon-thumbs-up:before { content: '\e81a'; } /* '' */ +.icon-twitter:before { content: '\e807'; } /* '' */ +.icon-warning:before { content: '\e810'; } /* '' */ +.icon-website:before { content: '\e818'; } /* '' */ +.icon-yaml:before,.icon-yml:before,.icon-toml:before { + font-family:$code-font-family; + left:-1em; + margin-right:1em; +} +.icon-yaml:before,.icon-yml:before { + content:'YAML'; +} +.icon-toml:before{ + content:'TOML'; +} \ No newline at end of file diff --git a/themes/hugodocs/pipeline/scss/base/_typography.scss b/themes/hugodocs/pipeline/scss/base/_typography.scss index 9afc30689..5246cc51f 100644 --- a/themes/hugodocs/pipeline/scss/base/_typography.scss +++ b/themes/hugodocs/pipeline/scss/base/_typography.scss @@ -4,7 +4,6 @@ h1, h2, h3, h4 { - letter-spacing: -.021em; font-weight: $heading-font-weight; margin: 0px; padding-bottom: 20px; @@ -13,6 +12,7 @@ h4 { h1 { font-size: 2em; + letter-spacing: -.021em; @include MQ(M) { font-size: 2.25em; } @@ -28,11 +28,17 @@ h3 { h4 { font-size: 1em; - color:$hugo-gray; - text-transform:uppercase; + color: $hugo-gray; + text-transform: uppercase; } .functions { font-family: $code-font-family; font-weight: $base-font-weight; } +//keeps index page from taking on code/pre font family +.submenu-item:first-child { + a.submenu-item-link.functions{ + font-family:$base-font-family; + } +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/_bourbon-deprecated-upcoming.scss b/themes/hugodocs/pipeline/scss/bourbon/_bourbon-deprecated-upcoming.scss new file mode 100644 index 000000000..e6d1b8cec --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/_bourbon-deprecated-upcoming.scss @@ -0,0 +1,411 @@ +// The following features have been deprecated and will be removed in the next MAJOR version release + +@mixin inline-block { + display: inline-block; + + @warn "The inline-block mixin is deprecated and will be removed in the next major version release"; +} + +@mixin button ($style: simple, $base-color: #4294f0, $text-size: inherit, $padding: 7px 18px) { + + @if type-of($style) == string and type-of($base-color) == color { + @include buttonstyle($style, $base-color, $text-size, $padding); + } + + @if type-of($style) == string and type-of($base-color) == number { + $padding: $text-size; + $text-size: $base-color; + $base-color: #4294f0; + + @if $padding == inherit { + $padding: 7px 18px; + } + + @include buttonstyle($style, $base-color, $text-size, $padding); + } + + @if type-of($style) == color and type-of($base-color) == color { + $base-color: $style; + $style: simple; + @include buttonstyle($style, $base-color, $text-size, $padding); + } + + @if type-of($style) == color and type-of($base-color) == number { + $padding: $text-size; + $text-size: $base-color; + $base-color: $style; + $style: simple; + + @if $padding == inherit { + $padding: 7px 18px; + } + + @include buttonstyle($style, $base-color, $text-size, $padding); + } + + @if type-of($style) == number { + $padding: $base-color; + $text-size: $style; + $base-color: #4294f0; + $style: simple; + + @if $padding == #4294f0 { + $padding: 7px 18px; + } + + @include buttonstyle($style, $base-color, $text-size, $padding); + } + + &:disabled { + cursor: not-allowed; + opacity: 0.5; + } + + @warn "The button mixin is deprecated and will be removed in the next major version release"; +} + +// Selector Style Button +@mixin buttonstyle($type, $b-color, $t-size, $pad) { + // Grayscale button + @if $type == simple and $b-color == grayscale($b-color) { + @include simple($b-color, true, $t-size, $pad); + } + + @if $type == shiny and $b-color == grayscale($b-color) { + @include shiny($b-color, true, $t-size, $pad); + } + + @if $type == pill and $b-color == grayscale($b-color) { + @include pill($b-color, true, $t-size, $pad); + } + + @if $type == flat and $b-color == grayscale($b-color) { + @include flat($b-color, true, $t-size, $pad); + } + + // Colored button + @if $type == simple { + @include simple($b-color, false, $t-size, $pad); + } + + @else if $type == shiny { + @include shiny($b-color, false, $t-size, $pad); + } + + @else if $type == pill { + @include pill($b-color, false, $t-size, $pad); + } + + @else if $type == flat { + @include flat($b-color, false, $t-size, $pad); + } +} + +// Simple Button +@mixin simple($base-color, $grayscale: false, $textsize: inherit, $padding: 7px 18px) { + $color: hsl(0, 0, 100%); + $border: adjust-color($base-color, $saturation: 9%, $lightness: -14%); + $inset-shadow: adjust-color($base-color, $saturation: -8%, $lightness: 15%); + $stop-gradient: adjust-color($base-color, $saturation: 9%, $lightness: -11%); + $text-shadow: adjust-color($base-color, $saturation: 15%, $lightness: -18%); + + @if is-light($base-color) { + $color: hsl(0, 0, 20%); + $text-shadow: adjust-color($base-color, $saturation: 10%, $lightness: 4%); + } + + @if $grayscale == true { + $border: grayscale($border); + $inset-shadow: grayscale($inset-shadow); + $stop-gradient: grayscale($stop-gradient); + $text-shadow: grayscale($text-shadow); + } + + border: 1px solid $border; + border-radius: 3px; + box-shadow: inset 0 1px 0 0 $inset-shadow; + color: $color; + display: inline-block; + font-size: $textsize; + font-weight: bold; + @include linear-gradient ($base-color, $stop-gradient); + padding: $padding; + text-decoration: none; + text-shadow: 0 1px 0 $text-shadow; + background-clip: padding-box; + + &:hover:not(:disabled) { + $base-color-hover: adjust-color($base-color, $saturation: -4%, $lightness: -5%); + $inset-shadow-hover: adjust-color($base-color, $saturation: -7%, $lightness: 5%); + $stop-gradient-hover: adjust-color($base-color, $saturation: 8%, $lightness: -14%); + + @if $grayscale == true { + $base-color-hover: grayscale($base-color-hover); + $inset-shadow-hover: grayscale($inset-shadow-hover); + $stop-gradient-hover: grayscale($stop-gradient-hover); + } + + @include linear-gradient ($base-color-hover, $stop-gradient-hover); + + box-shadow: inset 0 1px 0 0 $inset-shadow-hover; + cursor: pointer; + } + + &:active:not(:disabled), + &:focus:not(:disabled) { + $border-active: adjust-color($base-color, $saturation: 9%, $lightness: -14%); + $inset-shadow-active: adjust-color($base-color, $saturation: 7%, $lightness: -17%); + + @if $grayscale == true { + $border-active: grayscale($border-active); + $inset-shadow-active: grayscale($inset-shadow-active); + } + + border: 1px solid $border-active; + box-shadow: inset 0 0 8px 4px $inset-shadow-active, inset 0 0 8px 4px $inset-shadow-active; + } +} + +// Shiny Button +@mixin shiny($base-color, $grayscale: false, $textsize: inherit, $padding: 7px 18px) { + $color: hsl(0, 0, 100%); + $border: adjust-color($base-color, $red: -117, $green: -111, $blue: -81); + $border-bottom: adjust-color($base-color, $red: -126, $green: -127, $blue: -122); + $fourth-stop: adjust-color($base-color, $red: -79, $green: -70, $blue: -46); + $inset-shadow: adjust-color($base-color, $red: 37, $green: 29, $blue: 12); + $second-stop: adjust-color($base-color, $red: -56, $green: -50, $blue: -33); + $text-shadow: adjust-color($base-color, $red: -140, $green: -141, $blue: -114); + $third-stop: adjust-color($base-color, $red: -86, $green: -75, $blue: -48); + + @if is-light($base-color) { + $color: hsl(0, 0, 20%); + $text-shadow: adjust-color($base-color, $saturation: 10%, $lightness: 4%); + } + + @if $grayscale == true { + $border: grayscale($border); + $border-bottom: grayscale($border-bottom); + $fourth-stop: grayscale($fourth-stop); + $inset-shadow: grayscale($inset-shadow); + $second-stop: grayscale($second-stop); + $text-shadow: grayscale($text-shadow); + $third-stop: grayscale($third-stop); + } + + @include linear-gradient(top, $base-color 0%, $second-stop 50%, $third-stop 50%, $fourth-stop 100%); + + border: 1px solid $border; + border-bottom: 1px solid $border-bottom; + border-radius: 5px; + box-shadow: inset 0 1px 0 0 $inset-shadow; + color: $color; + display: inline-block; + font-size: $textsize; + font-weight: bold; + padding: $padding; + text-align: center; + text-decoration: none; + text-shadow: 0 -1px 1px $text-shadow; + + &:hover:not(:disabled) { + $first-stop-hover: adjust-color($base-color, $red: -13, $green: -15, $blue: -18); + $second-stop-hover: adjust-color($base-color, $red: -66, $green: -62, $blue: -51); + $third-stop-hover: adjust-color($base-color, $red: -93, $green: -85, $blue: -66); + $fourth-stop-hover: adjust-color($base-color, $red: -86, $green: -80, $blue: -63); + + @if $grayscale == true { + $first-stop-hover: grayscale($first-stop-hover); + $second-stop-hover: grayscale($second-stop-hover); + $third-stop-hover: grayscale($third-stop-hover); + $fourth-stop-hover: grayscale($fourth-stop-hover); + } + + @include linear-gradient(top, $first-stop-hover 0%, + $second-stop-hover 50%, + $third-stop-hover 50%, + $fourth-stop-hover 100%); + cursor: pointer; + } + + &:active:not(:disabled), + &:focus:not(:disabled) { + $inset-shadow-active: adjust-color($base-color, $red: -111, $green: -116, $blue: -122); + + @if $grayscale == true { + $inset-shadow-active: grayscale($inset-shadow-active); + } + + box-shadow: inset 0 0 20px 0 $inset-shadow-active; + } +} + +// Pill Button +@mixin pill($base-color, $grayscale: false, $textsize: inherit, $padding: 7px 18px) { + $color: hsl(0, 0, 100%); + $border-bottom: adjust-color($base-color, $hue: 8, $saturation: -11%, $lightness: -26%); + $border-sides: adjust-color($base-color, $hue: 4, $saturation: -21%, $lightness: -21%); + $border-top: adjust-color($base-color, $hue: -1, $saturation: -30%, $lightness: -15%); + $inset-shadow: adjust-color($base-color, $hue: -1, $saturation: -1%, $lightness: 7%); + $stop-gradient: adjust-color($base-color, $hue: 8, $saturation: 14%, $lightness: -10%); + $text-shadow: adjust-color($base-color, $hue: 5, $saturation: -19%, $lightness: -15%); + + @if is-light($base-color) { + $color: hsl(0, 0, 20%); + $text-shadow: adjust-color($base-color, $saturation: 10%, $lightness: 4%); + } + + @if $grayscale == true { + $border-bottom: grayscale($border-bottom); + $border-sides: grayscale($border-sides); + $border-top: grayscale($border-top); + $inset-shadow: grayscale($inset-shadow); + $stop-gradient: grayscale($stop-gradient); + $text-shadow: grayscale($text-shadow); + } + + border: 1px solid $border-top; + border-color: $border-top $border-sides $border-bottom; + border-radius: 16px; + box-shadow: inset 0 1px 0 0 $inset-shadow; + color: $color; + display: inline-block; + font-size: $textsize; + font-weight: normal; + line-height: 1; + @include linear-gradient ($base-color, $stop-gradient); + padding: $padding; + text-align: center; + text-decoration: none; + text-shadow: 0 -1px 1px $text-shadow; + background-clip: padding-box; + + &:hover:not(:disabled) { + $base-color-hover: adjust-color($base-color, $lightness: -4.5%); + $border-bottom: adjust-color($base-color, $hue: 8, $saturation: 13.5%, $lightness: -32%); + $border-sides: adjust-color($base-color, $hue: 4, $saturation: -2%, $lightness: -27%); + $border-top: adjust-color($base-color, $hue: -1, $saturation: -17%, $lightness: -21%); + $inset-shadow-hover: adjust-color($base-color, $saturation: -1%, $lightness: 3%); + $stop-gradient-hover: adjust-color($base-color, $hue: 8, $saturation: -4%, $lightness: -15.5%); + $text-shadow-hover: adjust-color($base-color, $hue: 5, $saturation: -5%, $lightness: -22%); + + @if $grayscale == true { + $base-color-hover: grayscale($base-color-hover); + $border-bottom: grayscale($border-bottom); + $border-sides: grayscale($border-sides); + $border-top: grayscale($border-top); + $inset-shadow-hover: grayscale($inset-shadow-hover); + $stop-gradient-hover: grayscale($stop-gradient-hover); + $text-shadow-hover: grayscale($text-shadow-hover); + } + + @include linear-gradient ($base-color-hover, $stop-gradient-hover); + + background-clip: padding-box; + border: 1px solid $border-top; + border-color: $border-top $border-sides $border-bottom; + box-shadow: inset 0 1px 0 0 $inset-shadow-hover; + cursor: pointer; + text-shadow: 0 -1px 1px $text-shadow-hover; + } + + &:active:not(:disabled), + &:focus:not(:disabled) { + $active-color: adjust-color($base-color, $hue: 4, $saturation: -12%, $lightness: -10%); + $border-active: adjust-color($base-color, $hue: 6, $saturation: -2.5%, $lightness: -30%); + $border-bottom-active: adjust-color($base-color, $hue: 11, $saturation: 6%, $lightness: -31%); + $inset-shadow-active: adjust-color($base-color, $hue: 9, $saturation: 2%, $lightness: -21.5%); + $text-shadow-active: adjust-color($base-color, $hue: 5, $saturation: -12%, $lightness: -21.5%); + + @if $grayscale == true { + $active-color: grayscale($active-color); + $border-active: grayscale($border-active); + $border-bottom-active: grayscale($border-bottom-active); + $inset-shadow-active: grayscale($inset-shadow-active); + $text-shadow-active: grayscale($text-shadow-active); + } + + background: $active-color; + border: 1px solid $border-active; + border-bottom: 1px solid $border-bottom-active; + box-shadow: inset 0 0 6px 3px $inset-shadow-active; + text-shadow: 0 -1px 1px $text-shadow-active; + } +} + +// Flat Button +@mixin flat($base-color, $grayscale: false, $textsize: inherit, $padding: 7px 18px) { + $color: hsl(0, 0, 100%); + + @if is-light($base-color) { + $color: hsl(0, 0, 20%); + } + + background-color: $base-color; + border-radius: 3px; + border: 0; + color: $color; + display: inline-block; + font-size: $textsize; + font-weight: bold; + padding: $padding; + text-decoration: none; + background-clip: padding-box; + + &:hover:not(:disabled){ + $base-color-hover: adjust-color($base-color, $saturation: 4%, $lightness: 5%); + + @if $grayscale == true { + $base-color-hover: grayscale($base-color-hover); + } + + background-color: $base-color-hover; + cursor: pointer; + } + + &:active:not(:disabled), + &:focus:not(:disabled) { + $base-color-active: adjust-color($base-color, $saturation: -4%, $lightness: -5%); + + @if $grayscale == true { + $base-color-active: grayscale($base-color-active); + } + + background-color: $base-color-active; + cursor: pointer; + } +} + +// Flexible grid +@function flex-grid($columns, $container-columns: $fg-max-columns) { + $width: $columns * $fg-column + ($columns - 1) * $fg-gutter; + $container-width: $container-columns * $fg-column + ($container-columns - 1) * $fg-gutter; + @return percentage($width / $container-width); + + @warn "The flex-grid function is deprecated and will be removed in the next major version release"; +} + +// Flexible gutter +@function flex-gutter($container-columns: $fg-max-columns, $gutter: $fg-gutter) { + $container-width: $container-columns * $fg-column + ($container-columns - 1) * $fg-gutter; + @return percentage($gutter / $container-width); + + @warn "The flex-gutter function is deprecated and will be removed in the next major version release"; +} + +@function grid-width($n) { + @return $n * $gw-column + ($n - 1) * $gw-gutter; + + @warn "The grid-width function is deprecated and will be removed in the next major version release"; +} + +@function golden-ratio($value, $increment) { + @return modular-scale($increment, $value, $ratio: $golden); + + @warn "The golden-ratio function is deprecated and will be removed in the next major version release. Please use the modular-scale function, instead."; +} + +@mixin box-sizing($box) { + @include prefixer(box-sizing, $box, webkit moz spec); + + @warn "The box-sizing mixin is deprecated and will be removed in the next major version release. This property can now be used un-prefixed."; +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/_bourbon.scss b/themes/hugodocs/pipeline/scss/bourbon/_bourbon.scss new file mode 100644 index 000000000..635c68041 --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/_bourbon.scss @@ -0,0 +1,87 @@ +// Bourbon 4.2.7 +// http://bourbon.io +// Copyright 2011-2015 thoughtbot, inc. +// MIT License + +@import "settings/prefixer"; +@import "settings/px-to-em"; +@import "settings/asset-pipeline"; + +@import "functions/assign-inputs"; +@import "functions/contains"; +@import "functions/contains-falsy"; +@import "functions/is-length"; +@import "functions/is-light"; +@import "functions/is-number"; +@import "functions/is-size"; +@import "functions/px-to-em"; +@import "functions/px-to-rem"; +@import "functions/shade"; +@import "functions/strip-units"; +@import "functions/tint"; +@import "functions/transition-property-name"; +@import "functions/unpack"; +@import "functions/modular-scale"; + +@import "helpers/convert-units"; +@import "helpers/directional-values"; +@import "helpers/font-source-declaration"; +@import "helpers/gradient-positions-parser"; +@import "helpers/linear-angle-parser"; +@import "helpers/linear-gradient-parser"; +@import "helpers/linear-positions-parser"; +@import "helpers/linear-side-corner-parser"; +@import "helpers/radial-arg-parser"; +@import "helpers/radial-positions-parser"; +@import "helpers/radial-gradient-parser"; +@import "helpers/render-gradients"; +@import "helpers/shape-size-stripper"; +@import "helpers/str-to-num"; + +@import "css3/animation"; +@import "css3/appearance"; +@import "css3/backface-visibility"; +@import "css3/background"; +@import "css3/background-image"; +@import "css3/border-image"; +@import "css3/calc"; +@import "css3/columns"; +@import "css3/filter"; +@import "css3/flex-box"; +@import "css3/font-face"; +@import "css3/font-feature-settings"; +@import "css3/hidpi-media-query"; +@import "css3/hyphens"; +@import "css3/image-rendering"; +@import "css3/keyframes"; +@import "css3/linear-gradient"; +@import "css3/perspective"; +@import "css3/placeholder"; +@import "css3/radial-gradient"; +@import "css3/selection"; +@import "css3/text-decoration"; +@import "css3/transform"; +@import "css3/transition"; +@import "css3/user-select"; + +@import "addons/border-color"; +@import "addons/border-radius"; +@import "addons/border-style"; +@import "addons/border-width"; +@import "addons/buttons"; +@import "addons/clearfix"; +@import "addons/ellipsis"; +@import "addons/font-stacks"; +@import "addons/hide-text"; +@import "addons/margin"; +@import "addons/padding"; +@import "addons/position"; +@import "addons/prefixer"; +@import "addons/retina-image"; +@import "addons/size"; +@import "addons/text-inputs"; +@import "addons/timing-functions"; +@import "addons/triangle"; +@import "addons/word-wrap"; + +@import "bourbon-deprecated-upcoming"; diff --git a/themes/hugodocs/pipeline/scss/bourbon/addons/_border-color.scss b/themes/hugodocs/pipeline/scss/bourbon/addons/_border-color.scss new file mode 100644 index 000000000..6f6ab36c4 --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/addons/_border-color.scss @@ -0,0 +1,26 @@ +@charset "UTF-8"; + +/// Provides a quick method for targeting `border-color` on specific sides of a box. Use a `null` value to “skip” a side. +/// +/// @param {Arglist} $vals +/// List of arguments +/// +/// @example scss - Usage +/// .element { +/// @include border-color(#a60b55 #76cd9c null #e8ae1a); +/// } +/// +/// @example css - CSS Output +/// .element { +/// border-left-color: #e8ae1a; +/// border-right-color: #76cd9c; +/// border-top-color: #a60b55; +/// } +/// +/// @require {mixin} directional-property +/// +/// @output `border-color` + +@mixin border-color($vals...) { + @include directional-property(border, color, $vals...); +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/addons/_border-radius.scss b/themes/hugodocs/pipeline/scss/bourbon/addons/_border-radius.scss new file mode 100644 index 000000000..1f6586335 --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/addons/_border-radius.scss @@ -0,0 +1,48 @@ +@charset "UTF-8"; + +/// Provides a quick method for targeting `border-radius` on both corners on the side of a box. +/// +/// @param {Number} $radii +/// List of arguments +/// +/// @example scss - Usage +/// .element-one { +/// @include border-top-radius(5px); +/// } +/// +/// .element-two { +/// @include border-left-radius(3px); +/// } +/// +/// @example css - CSS Output +/// .element-one { +/// border-top-left-radius: 5px; +/// border-top-right-radius: 5px; +/// } +/// +/// .element-two { +/// border-bottom-left-radius: 3px; +/// border-top-left-radius: 3px; +/// } +/// +/// @output `border-radius` + +@mixin border-top-radius($radii) { + border-top-left-radius: $radii; + border-top-right-radius: $radii; +} + +@mixin border-right-radius($radii) { + border-bottom-right-radius: $radii; + border-top-right-radius: $radii; +} + +@mixin border-bottom-radius($radii) { + border-bottom-left-radius: $radii; + border-bottom-right-radius: $radii; +} + +@mixin border-left-radius($radii) { + border-bottom-left-radius: $radii; + border-top-left-radius: $radii; +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/addons/_border-style.scss b/themes/hugodocs/pipeline/scss/bourbon/addons/_border-style.scss new file mode 100644 index 000000000..d86ee79d9 --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/addons/_border-style.scss @@ -0,0 +1,25 @@ +@charset "UTF-8"; + +/// Provides a quick method for targeting `border-style` on specific sides of a box. Use a `null` value to “skip” a side. +/// +/// @param {Arglist} $vals +/// List of arguments +/// +/// @example scss - Usage +/// .element { +/// @include border-style(dashed null solid); +/// } +/// +/// @example css - CSS Output +/// .element { +/// border-bottom-style: solid; +/// border-top-style: dashed; +/// } +/// +/// @require {mixin} directional-property +/// +/// @output `border-style` + +@mixin border-style($vals...) { + @include directional-property(border, style, $vals...); +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/addons/_border-width.scss b/themes/hugodocs/pipeline/scss/bourbon/addons/_border-width.scss new file mode 100644 index 000000000..0ea2d4b71 --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/addons/_border-width.scss @@ -0,0 +1,25 @@ +@charset "UTF-8"; + +/// Provides a quick method for targeting `border-width` on specific sides of a box. Use a `null` value to “skip” a side. +/// +/// @param {Arglist} $vals +/// List of arguments +/// +/// @example scss - Usage +/// .element { +/// @include border-width(1em null 20px); +/// } +/// +/// @example css - CSS Output +/// .element { +/// border-bottom-width: 20px; +/// border-top-width: 1em; +/// } +/// +/// @require {mixin} directional-property +/// +/// @output `border-width` + +@mixin border-width($vals...) { + @include directional-property(border, width, $vals...); +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/addons/_buttons.scss b/themes/hugodocs/pipeline/scss/bourbon/addons/_buttons.scss new file mode 100644 index 000000000..debeabc53 --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/addons/_buttons.scss @@ -0,0 +1,64 @@ +@charset "UTF-8"; + +/// Generates variables for all buttons. Please note that you must use interpolation on the variable: `#{$all-buttons}`. +/// +/// @example scss - Usage +/// #{$all-buttons} { +/// background-color: #f00; +/// } +/// +/// #{$all-buttons-focus}, +/// #{$all-buttons-hover} { +/// background-color: #0f0; +/// } +/// +/// #{$all-buttons-active} { +/// background-color: #00f; +/// } +/// +/// @example css - CSS Output +/// button, +/// input[type="button"], +/// input[type="reset"], +/// input[type="submit"] { +/// background-color: #f00; +/// } +/// +/// button:focus, +/// input[type="button"]:focus, +/// input[type="reset"]:focus, +/// input[type="submit"]:focus, +/// button:hover, +/// input[type="button"]:hover, +/// input[type="reset"]:hover, +/// input[type="submit"]:hover { +/// background-color: #0f0; +/// } +/// +/// button:active, +/// input[type="button"]:active, +/// input[type="reset"]:active, +/// input[type="submit"]:active { +/// background-color: #00f; +/// } +/// +/// @require assign-inputs +/// +/// @type List +/// +/// @todo Remove double assigned variables (Lines 59–62) in v5.0.0 + +$buttons-list: 'button', + 'input[type="button"]', + 'input[type="reset"]', + 'input[type="submit"]'; + +$all-buttons: assign-inputs($buttons-list); +$all-buttons-active: assign-inputs($buttons-list, active); +$all-buttons-focus: assign-inputs($buttons-list, focus); +$all-buttons-hover: assign-inputs($buttons-list, hover); + +$all-button-inputs: $all-buttons; +$all-button-inputs-active: $all-buttons-active; +$all-button-inputs-focus: $all-buttons-focus; +$all-button-inputs-hover: $all-buttons-hover; diff --git a/themes/hugodocs/pipeline/scss/bourbon/addons/_clearfix.scss b/themes/hugodocs/pipeline/scss/bourbon/addons/_clearfix.scss new file mode 100644 index 000000000..11313d66f --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/addons/_clearfix.scss @@ -0,0 +1,25 @@ +@charset "UTF-8"; + +/// Provides an easy way to include a clearfix for containing floats. +/// +/// @link http://cssmojo.com/latest_new_clearfix_so_far/ +/// +/// @example scss - Usage +/// .element { +/// @include clearfix; +/// } +/// +/// @example css - CSS Output +/// .element::after { +/// clear: both; +/// content: ""; +/// display: table; +/// } + +@mixin clearfix { + &::after { + clear: both; + content: ""; + display: table; + } +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/addons/_ellipsis.scss b/themes/hugodocs/pipeline/scss/bourbon/addons/_ellipsis.scss new file mode 100644 index 000000000..a367f651c --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/addons/_ellipsis.scss @@ -0,0 +1,30 @@ +@charset "UTF-8"; + +/// Truncates text and adds an ellipsis to represent overflow. +/// +/// @param {Number} $width [100%] +/// Max-width for the string to respect before being truncated +/// +/// @example scss - Usage +/// .element { +/// @include ellipsis; +/// } +/// +/// @example css - CSS Output +/// .element { +/// display: inline-block; +/// max-width: 100%; +/// overflow: hidden; +/// text-overflow: ellipsis; +/// white-space: nowrap; +/// word-wrap: normal; +/// } + +@mixin ellipsis($width: 100%) { + display: inline-block; + max-width: $width; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + word-wrap: normal; +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/addons/_font-stacks.scss b/themes/hugodocs/pipeline/scss/bourbon/addons/_font-stacks.scss new file mode 100644 index 000000000..57128f422 --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/addons/_font-stacks.scss @@ -0,0 +1,31 @@ +@charset "UTF-8"; + +/// Georgia font stack. +/// +/// @type List + +$georgia: "Georgia", "Cambria", "Times New Roman", "Times", serif; + +/// Helvetica font stack. +/// +/// @type List + +$helvetica: "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif; + +/// Lucida Grande font stack. +/// +/// @type List + +$lucida-grande: "Lucida Grande", "Tahoma", "Verdana", "Arial", sans-serif; + +/// Monospace font stack. +/// +/// @type List + +$monospace: "Bitstream Vera Sans Mono", "Consolas", "Courier", monospace; + +/// Verdana font stack. +/// +/// @type List + +$verdana: "Verdana", "Geneva", sans-serif; diff --git a/themes/hugodocs/pipeline/scss/bourbon/addons/_hide-text.scss b/themes/hugodocs/pipeline/scss/bourbon/addons/_hide-text.scss new file mode 100644 index 000000000..4caf20ed5 --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/addons/_hide-text.scss @@ -0,0 +1,27 @@ +/// Hides the text in an element, commonly used to show an image. Some elements will need block-level styles applied. +/// +/// @link http://zeldman.com/2012/03/01/replacing-the-9999px-hack-new-image-replacement +/// +/// @example scss - Usage +/// .element { +/// @include hide-text; +/// } +/// +/// @example css - CSS Output +/// .element { +/// overflow: hidden; +/// text-indent: 101%; +/// white-space: nowrap; +/// } +/// +/// @todo Remove height argument in v5.0.0 + +@mixin hide-text($height: null) { + overflow: hidden; + text-indent: 101%; + white-space: nowrap; + + @if $height { + @warn "The `hide-text` mixin has changed and no longer requires a height. The height argument will no longer be accepted in v5.0.0"; + } +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/addons/_margin.scss b/themes/hugodocs/pipeline/scss/bourbon/addons/_margin.scss new file mode 100644 index 000000000..674f4e5f6 --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/addons/_margin.scss @@ -0,0 +1,26 @@ +@charset "UTF-8"; + +/// Provides a quick method for targeting `margin` on specific sides of a box. Use a `null` value to “skip” a side. +/// +/// @param {Arglist} $vals +/// List of arguments +/// +/// @example scss - Usage +/// .element { +/// @include margin(null 10px 3em 20vh); +/// } +/// +/// @example css - CSS Output +/// .element { +/// margin-bottom: 3em; +/// margin-left: 20vh; +/// margin-right: 10px; +/// } +/// +/// @require {mixin} directional-property +/// +/// @output `margin` + +@mixin margin($vals...) { + @include directional-property(margin, false, $vals...); +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/addons/_padding.scss b/themes/hugodocs/pipeline/scss/bourbon/addons/_padding.scss new file mode 100644 index 000000000..40a5f006b --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/addons/_padding.scss @@ -0,0 +1,26 @@ +@charset "UTF-8"; + +/// Provides a quick method for targeting `padding` on specific sides of a box. Use a `null` value to “skip” a side. +/// +/// @param {Arglist} $vals +/// List of arguments +/// +/// @example scss - Usage +/// .element { +/// @include padding(12vh null 10px 5%); +/// } +/// +/// @example css - CSS Output +/// .element { +/// padding-bottom: 10px; +/// padding-left: 5%; +/// padding-top: 12vh; +/// } +/// +/// @require {mixin} directional-property +/// +/// @output `padding` + +@mixin padding($vals...) { + @include directional-property(padding, false, $vals...); +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/addons/_position.scss b/themes/hugodocs/pipeline/scss/bourbon/addons/_position.scss new file mode 100644 index 000000000..e460f3ffd --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/addons/_position.scss @@ -0,0 +1,48 @@ +@charset "UTF-8"; + +/// Provides a quick method for setting an element’s position. Use a `null` value to “skip” a side. +/// +/// @param {Position} $position [relative] +/// A CSS position value +/// +/// @param {Arglist} $coordinates [null null null null] +/// List of values that correspond to the 4-value syntax for the edges of a box +/// +/// @example scss - Usage +/// .element { +/// @include position(absolute, 0 null null 10em); +/// } +/// +/// @example css - CSS Output +/// .element { +/// left: 10em; +/// position: absolute; +/// top: 0; +/// } +/// +/// @require {function} is-length +/// @require {function} unpack + +@mixin position($position: relative, $coordinates: null null null null) { + @if type-of($position) == list { + $coordinates: $position; + $position: relative; + } + + $coordinates: unpack($coordinates); + + $offsets: ( + top: nth($coordinates, 1), + right: nth($coordinates, 2), + bottom: nth($coordinates, 3), + left: nth($coordinates, 4) + ); + + position: $position; + + @each $offset, $value in $offsets { + @if is-length($value) { + #{$offset}: $value; + } + } +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/addons/_prefixer.scss b/themes/hugodocs/pipeline/scss/bourbon/addons/_prefixer.scss new file mode 100644 index 000000000..2b6f73138 --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/addons/_prefixer.scss @@ -0,0 +1,66 @@ +@charset "UTF-8"; + +/// A mixin for generating vendor prefixes on non-standardized properties. +/// +/// @param {String} $property +/// Property to prefix +/// +/// @param {*} $value +/// Value to use +/// +/// @param {List} $prefixes +/// Prefixes to define +/// +/// @example scss - Usage +/// .element { +/// @include prefixer(border-radius, 10px, webkit ms spec); +/// } +/// +/// @example css - CSS Output +/// .element { +/// -webkit-border-radius: 10px; +/// -moz-border-radius: 10px; +/// border-radius: 10px; +/// } +/// +/// @require {variable} $prefix-for-webkit +/// @require {variable} $prefix-for-mozilla +/// @require {variable} $prefix-for-microsoft +/// @require {variable} $prefix-for-opera +/// @require {variable} $prefix-for-spec + +@mixin prefixer($property, $value, $prefixes) { + @each $prefix in $prefixes { + @if $prefix == webkit { + @if $prefix-for-webkit { + -webkit-#{$property}: $value; + } + } @else if $prefix == moz { + @if $prefix-for-mozilla { + -moz-#{$property}: $value; + } + } @else if $prefix == ms { + @if $prefix-for-microsoft { + -ms-#{$property}: $value; + } + } @else if $prefix == o { + @if $prefix-for-opera { + -o-#{$property}: $value; + } + } @else if $prefix == spec { + @if $prefix-for-spec { + #{$property}: $value; + } + } @else { + @warn "Unrecognized prefix: #{$prefix}"; + } + } +} + +@mixin disable-prefix-for-all() { + $prefix-for-webkit: false !global; + $prefix-for-mozilla: false !global; + $prefix-for-microsoft: false !global; + $prefix-for-opera: false !global; + $prefix-for-spec: false !global; +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/addons/_retina-image.scss b/themes/hugodocs/pipeline/scss/bourbon/addons/_retina-image.scss new file mode 100644 index 000000000..7febbd751 --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/addons/_retina-image.scss @@ -0,0 +1,25 @@ +@mixin retina-image($filename, $background-size, $extension: png, $retina-filename: null, $retina-suffix: _2x, $asset-pipeline: $asset-pipeline) { + @if $asset-pipeline { + background-image: image-url("#{$filename}.#{$extension}"); + } @else { + background-image: url("#{$filename}.#{$extension}"); + } + + @include hidpi { + @if $asset-pipeline { + @if $retina-filename { + background-image: image-url("#{$retina-filename}.#{$extension}"); + } @else { + background-image: image-url("#{$filename}#{$retina-suffix}.#{$extension}"); + } + } @else { + @if $retina-filename { + background-image: url("#{$retina-filename}.#{$extension}"); + } @else { + background-image: url("#{$filename}#{$retina-suffix}.#{$extension}"); + } + } + + background-size: $background-size; + } +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/addons/_size.scss b/themes/hugodocs/pipeline/scss/bourbon/addons/_size.scss new file mode 100644 index 000000000..a2992a34c --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/addons/_size.scss @@ -0,0 +1,51 @@ +@charset "UTF-8"; + +/// Sets the `width` and `height` of the element. +/// +/// @param {List} $size +/// A list of at most 2 size values. +/// +/// If there is only a single value in `$size` it is used for both width and height. All units are supported. +/// +/// @example scss - Usage +/// .first-element { +/// @include size(2em); +/// } +/// +/// .second-element { +/// @include size(auto 10em); +/// } +/// +/// @example css - CSS Output +/// .first-element { +/// width: 2em; +/// height: 2em; +/// } +/// +/// .second-element { +/// width: auto; +/// height: 10em; +/// } +/// +/// @todo Refactor in 5.0.0 to use a comma-separated argument + +@mixin size($value) { + $width: nth($value, 1); + $height: $width; + + @if length($value) > 1 { + $height: nth($value, 2); + } + + @if is-size($height) { + height: $height; + } @else { + @warn "`#{$height}` is not a valid length for the `$height` parameter in the `size` mixin."; + } + + @if is-size($width) { + width: $width; + } @else { + @warn "`#{$width}` is not a valid length for the `$width` parameter in the `size` mixin."; + } +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/addons/_text-inputs.scss b/themes/hugodocs/pipeline/scss/bourbon/addons/_text-inputs.scss new file mode 100644 index 000000000..1eb7a5451 --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/addons/_text-inputs.scss @@ -0,0 +1,113 @@ +@charset "UTF-8"; + +/// Generates variables for all text-based inputs. Please note that you must use interpolation on the variable: `#{$all-text-inputs}`. +/// +/// @example scss - Usage +/// #{$all-text-inputs} { +/// border: 1px solid #f00; +/// } +/// +/// #{$all-text-inputs-focus}, +/// #{$all-text-inputs-hover} { +/// border: 1px solid #0f0; +/// } +/// +/// #{$all-text-inputs-active} { +/// border: 1px solid #00f; +/// } +/// +/// @example css - CSS Output +/// input[type="color"], +/// input[type="date"], +/// input[type="datetime"], +/// input[type="datetime-local"], +/// input[type="email"], +/// input[type="month"], +/// input[type="number"], +/// input[type="password"], +/// input[type="search"], +/// input[type="tel"], +/// input[type="text"], +/// input[type="time"], +/// input[type="url"], +/// input[type="week"], +/// textarea { +/// border: 1px solid #f00; +/// } +/// +/// input[type="color"]:focus, +/// input[type="date"]:focus, +/// input[type="datetime"]:focus, +/// input[type="datetime-local"]:focus, +/// input[type="email"]:focus, +/// input[type="month"]:focus, +/// input[type="number"]:focus, +/// input[type="password"]:focus, +/// input[type="search"]:focus, +/// input[type="tel"]:focus, +/// input[type="text"]:focus, +/// input[type="time"]:focus, +/// input[type="url"]:focus, +/// input[type="week"]:focus, +/// textarea:focus, +/// input[type="color"]:hover, +/// input[type="date"]:hover, +/// input[type="datetime"]:hover, +/// input[type="datetime-local"]:hover, +/// input[type="email"]:hover, +/// input[type="month"]:hover, +/// input[type="number"]:hover, +/// input[type="password"]:hover, +/// input[type="search"]:hover, +/// input[type="tel"]:hover, +/// input[type="text"]:hover, +/// input[type="time"]:hover, +/// input[type="url"]:hover, +/// input[type="week"]:hover, +/// textarea:hover { +/// border: 1px solid #0f0; +/// } +/// +/// input[type="color"]:active, +/// input[type="date"]:active, +/// input[type="datetime"]:active, +/// input[type="datetime-local"]:active, +/// input[type="email"]:active, +/// input[type="month"]:active, +/// input[type="number"]:active, +/// input[type="password"]:active, +/// input[type="search"]:active, +/// input[type="tel"]:active, +/// input[type="text"]:active, +/// input[type="time"]:active, +/// input[type="url"]:active, +/// input[type="week"]:active, +/// textarea:active { +/// border: 1px solid #00f; +/// } +/// +/// @require assign-inputs +/// +/// @type List + +$text-inputs-list: 'input[type="color"]', + 'input[type="date"]', + 'input[type="datetime"]', + 'input[type="datetime-local"]', + 'input[type="email"]', + 'input[type="month"]', + 'input[type="number"]', + 'input[type="password"]', + 'input[type="search"]', + 'input[type="tel"]', + 'input[type="text"]', + 'input[type="time"]', + 'input[type="url"]', + 'input[type="week"]', + 'input:not([type])', + 'textarea'; + +$all-text-inputs: assign-inputs($text-inputs-list); +$all-text-inputs-active: assign-inputs($text-inputs-list, active); +$all-text-inputs-focus: assign-inputs($text-inputs-list, focus); +$all-text-inputs-hover: assign-inputs($text-inputs-list, hover); diff --git a/themes/hugodocs/pipeline/scss/bourbon/addons/_timing-functions.scss b/themes/hugodocs/pipeline/scss/bourbon/addons/_timing-functions.scss new file mode 100644 index 000000000..20e5f1d40 --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/addons/_timing-functions.scss @@ -0,0 +1,34 @@ +@charset "UTF-8"; + +/// CSS cubic-bezier timing functions. Timing functions courtesy of jquery.easie (github.com/jaukia/easie) +/// +/// Timing functions are the same as demoed here: http://jqueryui.com/resources/demos/effect/easing.html +/// +/// @type cubic-bezier + +$ease-in-quad: cubic-bezier(0.550, 0.085, 0.680, 0.530); +$ease-in-cubic: cubic-bezier(0.550, 0.055, 0.675, 0.190); +$ease-in-quart: cubic-bezier(0.895, 0.030, 0.685, 0.220); +$ease-in-quint: cubic-bezier(0.755, 0.050, 0.855, 0.060); +$ease-in-sine: cubic-bezier(0.470, 0.000, 0.745, 0.715); +$ease-in-expo: cubic-bezier(0.950, 0.050, 0.795, 0.035); +$ease-in-circ: cubic-bezier(0.600, 0.040, 0.980, 0.335); +$ease-in-back: cubic-bezier(0.600, -0.280, 0.735, 0.045); + +$ease-out-quad: cubic-bezier(0.250, 0.460, 0.450, 0.940); +$ease-out-cubic: cubic-bezier(0.215, 0.610, 0.355, 1.000); +$ease-out-quart: cubic-bezier(0.165, 0.840, 0.440, 1.000); +$ease-out-quint: cubic-bezier(0.230, 1.000, 0.320, 1.000); +$ease-out-sine: cubic-bezier(0.390, 0.575, 0.565, 1.000); +$ease-out-expo: cubic-bezier(0.190, 1.000, 0.220, 1.000); +$ease-out-circ: cubic-bezier(0.075, 0.820, 0.165, 1.000); +$ease-out-back: cubic-bezier(0.175, 0.885, 0.320, 1.275); + +$ease-in-out-quad: cubic-bezier(0.455, 0.030, 0.515, 0.955); +$ease-in-out-cubic: cubic-bezier(0.645, 0.045, 0.355, 1.000); +$ease-in-out-quart: cubic-bezier(0.770, 0.000, 0.175, 1.000); +$ease-in-out-quint: cubic-bezier(0.860, 0.000, 0.070, 1.000); +$ease-in-out-sine: cubic-bezier(0.445, 0.050, 0.550, 0.950); +$ease-in-out-expo: cubic-bezier(1.000, 0.000, 0.000, 1.000); +$ease-in-out-circ: cubic-bezier(0.785, 0.135, 0.150, 0.860); +$ease-in-out-back: cubic-bezier(0.680, -0.550, 0.265, 1.550); diff --git a/themes/hugodocs/pipeline/scss/bourbon/addons/_triangle.scss b/themes/hugodocs/pipeline/scss/bourbon/addons/_triangle.scss new file mode 100644 index 000000000..8a1ed9cd0 --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/addons/_triangle.scss @@ -0,0 +1,63 @@ +@mixin triangle($size, $color, $direction) { + $width: nth($size, 1); + $height: nth($size, length($size)); + $foreground-color: nth($color, 1); + $background-color: if(length($color) == 2, nth($color, 2), transparent); + height: 0; + width: 0; + + @if ($direction == up) or ($direction == down) or ($direction == right) or ($direction == left) { + $width: $width / 2; + $height: if(length($size) > 1, $height, $height/2); + + @if $direction == up { + border-bottom: $height solid $foreground-color; + border-left: $width solid $background-color; + border-right: $width solid $background-color; + } @else if $direction == right { + border-bottom: $width solid $background-color; + border-left: $height solid $foreground-color; + border-top: $width solid $background-color; + } @else if $direction == down { + border-left: $width solid $background-color; + border-right: $width solid $background-color; + border-top: $height solid $foreground-color; + } @else if $direction == left { + border-bottom: $width solid $background-color; + border-right: $height solid $foreground-color; + border-top: $width solid $background-color; + } + } @else if ($direction == up-right) or ($direction == up-left) { + border-top: $height solid $foreground-color; + + @if $direction == up-right { + border-left: $width solid $background-color; + } @else if $direction == up-left { + border-right: $width solid $background-color; + } + } @else if ($direction == down-right) or ($direction == down-left) { + border-bottom: $height solid $foreground-color; + + @if $direction == down-right { + border-left: $width solid $background-color; + } @else if $direction == down-left { + border-right: $width solid $background-color; + } + } @else if ($direction == inset-up) { + border-color: $background-color $background-color $foreground-color; + border-style: solid; + border-width: $height $width; + } @else if ($direction == inset-down) { + border-color: $foreground-color $background-color $background-color; + border-style: solid; + border-width: $height $width; + } @else if ($direction == inset-right) { + border-color: $background-color $background-color $background-color $foreground-color; + border-style: solid; + border-width: $width $height; + } @else if ($direction == inset-left) { + border-color: $background-color $foreground-color $background-color $background-color; + border-style: solid; + border-width: $width $height; + } +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/addons/_word-wrap.scss b/themes/hugodocs/pipeline/scss/bourbon/addons/_word-wrap.scss new file mode 100644 index 000000000..64856a925 --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/addons/_word-wrap.scss @@ -0,0 +1,29 @@ +@charset "UTF-8"; + +/// Provides an easy way to change the `word-wrap` property. +/// +/// @param {String} $wrap [break-word] +/// Value for the `word-break` property. +/// +/// @example scss - Usage +/// .wrapper { +/// @include word-wrap(break-word); +/// } +/// +/// @example css - CSS Output +/// .wrapper { +/// overflow-wrap: break-word; +/// word-break: break-all; +/// word-wrap: break-word; +/// } + +@mixin word-wrap($wrap: break-word) { + overflow-wrap: $wrap; + word-wrap: $wrap; + + @if $wrap == break-word { + word-break: break-all; + } @else { + word-break: $wrap; + } +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/css3/_animation.scss b/themes/hugodocs/pipeline/scss/bourbon/css3/_animation.scss new file mode 100644 index 000000000..aac675f5a --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/css3/_animation.scss @@ -0,0 +1,43 @@ +// http://www.w3.org/TR/css3-animations/#the-animation-name-property- +// Each of these mixins support comma separated lists of values, which allows different transitions for individual properties to be described in a single style rule. Each value in the list corresponds to the value at that same position in the other properties. + +@mixin animation($animations...) { + @include prefixer(animation, $animations, webkit moz spec); +} + +@mixin animation-name($names...) { + @include prefixer(animation-name, $names, webkit moz spec); +} + +@mixin animation-duration($times...) { + @include prefixer(animation-duration, $times, webkit moz spec); +} + +@mixin animation-timing-function($motions...) { + // ease | linear | ease-in | ease-out | ease-in-out + @include prefixer(animation-timing-function, $motions, webkit moz spec); +} + +@mixin animation-iteration-count($values...) { + // infinite | + @include prefixer(animation-iteration-count, $values, webkit moz spec); +} + +@mixin animation-direction($directions...) { + // normal | alternate + @include prefixer(animation-direction, $directions, webkit moz spec); +} + +@mixin animation-play-state($states...) { + // running | paused + @include prefixer(animation-play-state, $states, webkit moz spec); +} + +@mixin animation-delay($times...) { + @include prefixer(animation-delay, $times, webkit moz spec); +} + +@mixin animation-fill-mode($modes...) { + // none | forwards | backwards | both + @include prefixer(animation-fill-mode, $modes, webkit moz spec); +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/css3/_appearance.scss b/themes/hugodocs/pipeline/scss/bourbon/css3/_appearance.scss new file mode 100644 index 000000000..abddc0204 --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/css3/_appearance.scss @@ -0,0 +1,3 @@ +@mixin appearance($value) { + @include prefixer(appearance, $value, webkit moz ms o spec); +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/css3/_backface-visibility.scss b/themes/hugodocs/pipeline/scss/bourbon/css3/_backface-visibility.scss new file mode 100644 index 000000000..fc68e2dd0 --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/css3/_backface-visibility.scss @@ -0,0 +1,3 @@ +@mixin backface-visibility($visibility) { + @include prefixer(backface-visibility, $visibility, webkit spec); +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/css3/_background-image.scss b/themes/hugodocs/pipeline/scss/bourbon/css3/_background-image.scss new file mode 100644 index 000000000..6ed19ab58 --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/css3/_background-image.scss @@ -0,0 +1,42 @@ +//************************************************************************// +// Background-image property for adding multiple background images with +// gradients, or for stringing multiple gradients together. +//************************************************************************// + +@mixin background-image($images...) { + $webkit-images: (); + $spec-images: (); + + @each $image in $images { + $webkit-image: (); + $spec-image: (); + + @if (type-of($image) == string) { + $url-str: str-slice($image, 1, 3); + $gradient-type: str-slice($image, 1, 6); + + @if $url-str == "url" { + $webkit-image: $image; + $spec-image: $image; + } + + @else if $gradient-type == "linear" { + $gradients: _linear-gradient-parser($image); + $webkit-image: map-get($gradients, webkit-image); + $spec-image: map-get($gradients, spec-image); + } + + @else if $gradient-type == "radial" { + $gradients: _radial-gradient-parser($image); + $webkit-image: map-get($gradients, webkit-image); + $spec-image: map-get($gradients, spec-image); + } + } + + $webkit-images: append($webkit-images, $webkit-image, comma); + $spec-images: append($spec-images, $spec-image, comma); + } + + background-image: $webkit-images; + background-image: $spec-images; +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/css3/_background.scss b/themes/hugodocs/pipeline/scss/bourbon/css3/_background.scss new file mode 100644 index 000000000..019db0ed3 --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/css3/_background.scss @@ -0,0 +1,55 @@ +//************************************************************************// +// Background property for adding multiple backgrounds using shorthand +// notation. +//************************************************************************// + +@mixin background($backgrounds...) { + $webkit-backgrounds: (); + $spec-backgrounds: (); + + @each $background in $backgrounds { + $webkit-background: (); + $spec-background: (); + $background-type: type-of($background); + + @if $background-type == string or $background-type == list { + $background-str: if($background-type == list, nth($background, 1), $background); + + $url-str: str-slice($background-str, 1, 3); + $gradient-type: str-slice($background-str, 1, 6); + + @if $url-str == "url" { + $webkit-background: $background; + $spec-background: $background; + } + + @else if $gradient-type == "linear" { + $gradients: _linear-gradient-parser("#{$background}"); + $webkit-background: map-get($gradients, webkit-image); + $spec-background: map-get($gradients, spec-image); + } + + @else if $gradient-type == "radial" { + $gradients: _radial-gradient-parser("#{$background}"); + $webkit-background: map-get($gradients, webkit-image); + $spec-background: map-get($gradients, spec-image); + } + + @else { + $webkit-background: $background; + $spec-background: $background; + } + } + + @else { + $webkit-background: $background; + $spec-background: $background; + } + + $webkit-backgrounds: append($webkit-backgrounds, $webkit-background, comma); + $spec-backgrounds: append($spec-backgrounds, $spec-background, comma); + } + + background: $webkit-backgrounds; + background: $spec-backgrounds; +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/css3/_border-image.scss b/themes/hugodocs/pipeline/scss/bourbon/css3/_border-image.scss new file mode 100644 index 000000000..cf568ce6d --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/css3/_border-image.scss @@ -0,0 +1,59 @@ +@mixin border-image($borders...) { + $webkit-borders: (); + $spec-borders: (); + + @each $border in $borders { + $webkit-border: (); + $spec-border: (); + $border-type: type-of($border); + + @if $border-type == string or list { + $border-str: if($border-type == list, nth($border, 1), $border); + + $url-str: str-slice($border-str, 1, 3); + $gradient-type: str-slice($border-str, 1, 6); + + @if $url-str == "url" { + $webkit-border: $border; + $spec-border: $border; + } + + @else if $gradient-type == "linear" { + $gradients: _linear-gradient-parser("#{$border}"); + $webkit-border: map-get($gradients, webkit-image); + $spec-border: map-get($gradients, spec-image); + } + + @else if $gradient-type == "radial" { + $gradients: _radial-gradient-parser("#{$border}"); + $webkit-border: map-get($gradients, webkit-image); + $spec-border: map-get($gradients, spec-image); + } + + @else { + $webkit-border: $border; + $spec-border: $border; + } + } + + @else { + $webkit-border: $border; + $spec-border: $border; + } + + $webkit-borders: append($webkit-borders, $webkit-border, comma); + $spec-borders: append($spec-borders, $spec-border, comma); + } + + -webkit-border-image: $webkit-borders; + border-image: $spec-borders; + border-style: solid; +} + +//Examples: +// @include border-image(url("image.png")); +// @include border-image(url("image.png") 20 stretch); +// @include border-image(linear-gradient(45deg, orange, yellow)); +// @include border-image(linear-gradient(45deg, orange, yellow) stretch); +// @include border-image(linear-gradient(45deg, orange, yellow) 20 30 40 50 stretch round); +// @include border-image(radial-gradient(top, cover, orange, yellow, orange)); diff --git a/themes/hugodocs/pipeline/scss/bourbon/css3/_calc.scss b/themes/hugodocs/pipeline/scss/bourbon/css3/_calc.scss new file mode 100644 index 000000000..0bfc738dd --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/css3/_calc.scss @@ -0,0 +1,4 @@ +@mixin calc($property, $value) { + #{$property}: -webkit-calc(#{$value}); + #{$property}: calc(#{$value}); +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/css3/_columns.scss b/themes/hugodocs/pipeline/scss/bourbon/css3/_columns.scss new file mode 100644 index 000000000..96117670c --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/css3/_columns.scss @@ -0,0 +1,47 @@ +@mixin columns($arg: auto) { + // || + @include prefixer(columns, $arg, webkit moz spec); +} + +@mixin column-count($int: auto) { + // auto || integer + @include prefixer(column-count, $int, webkit moz spec); +} + +@mixin column-gap($length: normal) { + // normal || length + @include prefixer(column-gap, $length, webkit moz spec); +} + +@mixin column-fill($arg: auto) { + // auto || length + @include prefixer(column-fill, $arg, webkit moz spec); +} + +@mixin column-rule($arg) { + // || || + @include prefixer(column-rule, $arg, webkit moz spec); +} + +@mixin column-rule-color($color) { + @include prefixer(column-rule-color, $color, webkit moz spec); +} + +@mixin column-rule-style($style: none) { + // none | hidden | dashed | dotted | double | groove | inset | inset | outset | ridge | solid + @include prefixer(column-rule-style, $style, webkit moz spec); +} + +@mixin column-rule-width ($width: none) { + @include prefixer(column-rule-width, $width, webkit moz spec); +} + +@mixin column-span($arg: none) { + // none || all + @include prefixer(column-span, $arg, webkit moz spec); +} + +@mixin column-width($length: auto) { + // auto || length + @include prefixer(column-width, $length, webkit moz spec); +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/css3/_filter.scss b/themes/hugodocs/pipeline/scss/bourbon/css3/_filter.scss new file mode 100644 index 000000000..b8f8ffb0e --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/css3/_filter.scss @@ -0,0 +1,4 @@ +@mixin filter($function: none) { + // [ + @include prefixer(perspective, $depth, webkit moz spec); +} + +@mixin perspective-origin($value: 50% 50%) { + @include prefixer(perspective-origin, $value, webkit moz spec); +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/css3/_placeholder.scss b/themes/hugodocs/pipeline/scss/bourbon/css3/_placeholder.scss new file mode 100644 index 000000000..5682fd097 --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/css3/_placeholder.scss @@ -0,0 +1,8 @@ +@mixin placeholder { + $placeholders: ":-webkit-input" ":-moz" "-moz" "-ms-input"; + @each $placeholder in $placeholders { + &:#{$placeholder}-placeholder { + @content; + } + } +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/css3/_radial-gradient.scss b/themes/hugodocs/pipeline/scss/bourbon/css3/_radial-gradient.scss new file mode 100644 index 000000000..18f7b5b58 --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/css3/_radial-gradient.scss @@ -0,0 +1,39 @@ +// Requires Sass 3.1+ +@mixin radial-gradient($g1, $g2, + $g3: null, $g4: null, + $g5: null, $g6: null, + $g7: null, $g8: null, + $g9: null, $g10: null, + $pos: null, + $shape-size: null, + $fallback: null) { + + $data: _radial-arg-parser($g1, $g2, $pos, $shape-size); + $g1: nth($data, 1); + $g2: nth($data, 2); + $pos: nth($data, 3); + $shape-size: nth($data, 4); + + $full: $g1, $g2, $g3, $g4, $g5, $g6, $g7, $g8, $g9, $g10; + + // Strip deprecated cover/contain for spec + $shape-size-spec: _shape-size-stripper($shape-size); + + // Set $g1 as the default fallback color + $first-color: nth($full, 1); + $fallback-color: nth($first-color, 1); + + @if (type-of($fallback) == color) or ($fallback == "transparent") { + $fallback-color: $fallback; + } + + // Add Commas and spaces + $shape-size: if($shape-size, "#{$shape-size}, ", null); + $pos: if($pos, "#{$pos}, ", null); + $pos-spec: if($pos, "at #{$pos}", null); + $shape-size-spec: if(($shape-size-spec != " ") and ($pos == null), "#{$shape-size-spec}, ", "#{$shape-size-spec} "); + + background-color: $fallback-color; + background-image: -webkit-radial-gradient(#{$pos}#{$shape-size}#{$full}); + background-image: radial-gradient(#{$shape-size-spec}#{$pos-spec}#{$full}); +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/css3/_selection.scss b/themes/hugodocs/pipeline/scss/bourbon/css3/_selection.scss new file mode 100644 index 000000000..cd71d4f53 --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/css3/_selection.scss @@ -0,0 +1,42 @@ +@charset "UTF-8"; + +/// Outputs the spec and prefixed versions of the `::selection` pseudo-element. +/// +/// @param {Bool} $current-selector [false] +/// If set to `true`, it takes the current element into consideration. +/// +/// @example scss - Usage +/// .element { +/// @include selection(true) { +/// background-color: #ffbb52; +/// } +/// } +/// +/// @example css - CSS Output +/// .element::-moz-selection { +/// background-color: #ffbb52; +/// } +/// +/// .element::selection { +/// background-color: #ffbb52; +/// } + +@mixin selection($current-selector: false) { + @if $current-selector { + &::-moz-selection { + @content; + } + + &::selection { + @content; + } + } @else { + ::-moz-selection { + @content; + } + + ::selection { + @content; + } + } +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/css3/_text-decoration.scss b/themes/hugodocs/pipeline/scss/bourbon/css3/_text-decoration.scss new file mode 100644 index 000000000..9222746ce --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/css3/_text-decoration.scss @@ -0,0 +1,19 @@ +@mixin text-decoration($value) { +// || || + @include prefixer(text-decoration, $value, moz); +} + +@mixin text-decoration-line($line: none) { +// none || underline || overline || line-through + @include prefixer(text-decoration-line, $line, moz); +} + +@mixin text-decoration-style($style: solid) { +// solid || double || dotted || dashed || wavy + @include prefixer(text-decoration-style, $style, moz webkit); +} + +@mixin text-decoration-color($color: currentColor) { +// currentColor || + @include prefixer(text-decoration-color, $color, moz); +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/css3/_transform.scss b/themes/hugodocs/pipeline/scss/bourbon/css3/_transform.scss new file mode 100644 index 000000000..8ee6509ff --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/css3/_transform.scss @@ -0,0 +1,15 @@ +@mixin transform($property: none) { + // none | + @include prefixer(transform, $property, webkit moz ms o spec); +} + +@mixin transform-origin($axes: 50%) { + // x-axis - left | center | right | length | % + // y-axis - top | center | bottom | length | % + // z-axis - length + @include prefixer(transform-origin, $axes, webkit moz ms o spec); +} + +@mixin transform-style($style: flat) { + @include prefixer(transform-style, $style, webkit moz ms o spec); +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/css3/_transition.scss b/themes/hugodocs/pipeline/scss/bourbon/css3/_transition.scss new file mode 100644 index 000000000..3c785ed52 --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/css3/_transition.scss @@ -0,0 +1,71 @@ +// Shorthand mixin. Supports multiple parentheses-deliminated values for each variable. +// Example: @include transition (all 2s ease-in-out); +// @include transition (opacity 1s ease-in 2s, width 2s ease-out); +// @include transition-property (transform, opacity); + +@mixin transition($properties...) { + // Fix for vendor-prefix transform property + $needs-prefixes: false; + $webkit: (); + $moz: (); + $spec: (); + + // Create lists for vendor-prefixed transform + @each $list in $properties { + @if nth($list, 1) == "transform" { + $needs-prefixes: true; + $list1: -webkit-transform; + $list2: -moz-transform; + $list3: (); + + @each $var in $list { + $list3: join($list3, $var); + + @if $var != "transform" { + $list1: join($list1, $var); + $list2: join($list2, $var); + } + } + + $webkit: append($webkit, $list1); + $moz: append($moz, $list2); + $spec: append($spec, $list3); + } @else { + $webkit: append($webkit, $list, comma); + $moz: append($moz, $list, comma); + $spec: append($spec, $list, comma); + } + } + + @if $needs-prefixes { + -webkit-transition: $webkit; + -moz-transition: $moz; + transition: $spec; + } @else { + @if length($properties) >= 1 { + @include prefixer(transition, $properties, webkit moz spec); + } @else { + $properties: all 0.15s ease-out 0s; + @include prefixer(transition, $properties, webkit moz spec); + } + } +} + +@mixin transition-property($properties...) { + -webkit-transition-property: transition-property-names($properties, "webkit"); + -moz-transition-property: transition-property-names($properties, "moz"); + transition-property: transition-property-names($properties, false); +} + +@mixin transition-duration($times...) { + @include prefixer(transition-duration, $times, webkit moz spec); +} + +@mixin transition-timing-function($motions...) { + // ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier() + @include prefixer(transition-timing-function, $motions, webkit moz spec); +} + +@mixin transition-delay($times...) { + @include prefixer(transition-delay, $times, webkit moz spec); +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/css3/_user-select.scss b/themes/hugodocs/pipeline/scss/bourbon/css3/_user-select.scss new file mode 100644 index 000000000..d4e555100 --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/css3/_user-select.scss @@ -0,0 +1,3 @@ +@mixin user-select($value: none) { + @include prefixer(user-select, $value, webkit moz ms spec); +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/functions/_assign-inputs.scss b/themes/hugodocs/pipeline/scss/bourbon/functions/_assign-inputs.scss new file mode 100644 index 000000000..f8aba9678 --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/functions/_assign-inputs.scss @@ -0,0 +1,11 @@ +@function assign-inputs($inputs, $pseudo: null) { + $list: (); + + @each $input in $inputs { + $input: unquote($input); + $input: if($pseudo, $input + ":" + $pseudo, $input); + $list: append($list, $input, comma); + } + + @return $list; +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/functions/_contains-falsy.scss b/themes/hugodocs/pipeline/scss/bourbon/functions/_contains-falsy.scss new file mode 100644 index 000000000..c096fdb92 --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/functions/_contains-falsy.scss @@ -0,0 +1,20 @@ +@charset "UTF-8"; + +/// Checks if a list does not contains a value. +/// +/// @access private +/// +/// @param {List} $list +/// The list to check against. +/// +/// @return {Bool} + +@function contains-falsy($list) { + @each $item in $list { + @if not $item { + @return true; + } + } + + @return false; +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/functions/_contains.scss b/themes/hugodocs/pipeline/scss/bourbon/functions/_contains.scss new file mode 100644 index 000000000..3dec27db8 --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/functions/_contains.scss @@ -0,0 +1,26 @@ +@charset "UTF-8"; + +/// Checks if a list contains a value(s). +/// +/// @access private +/// +/// @param {List} $list +/// The list to check against. +/// +/// @param {List} $values +/// A single value or list of values to check for. +/// +/// @example scss - Usage +/// contains($list, $value) +/// +/// @return {Bool} + +@function contains($list, $values...) { + @each $value in $values { + @if type-of(index($list, $value)) != "number" { + @return false; + } + } + + @return true; +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/functions/_is-length.scss b/themes/hugodocs/pipeline/scss/bourbon/functions/_is-length.scss new file mode 100644 index 000000000..5826e789b --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/functions/_is-length.scss @@ -0,0 +1,11 @@ +@charset "UTF-8"; + +/// Checks for a valid CSS length. +/// +/// @param {String} $value + +@function is-length($value) { + @return type-of($value) != "null" and (str-slice($value + "", 1, 4) == "calc" + or index(auto inherit initial 0, $value) + or (type-of($value) == "number" and not(unitless($value)))); +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/functions/_is-light.scss b/themes/hugodocs/pipeline/scss/bourbon/functions/_is-light.scss new file mode 100644 index 000000000..92d90ac3c --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/functions/_is-light.scss @@ -0,0 +1,21 @@ +@charset "UTF-8"; + +/// Programatically determines whether a color is light or dark. +/// +/// @link http://robots.thoughtbot.com/closer-look-color-lightness +/// +/// @param {Color (Hex)} $color +/// +/// @example scss - Usage +/// is-light($color) +/// +/// @return {Bool} + +@function is-light($hex-color) { + $-local-red: red(rgba($hex-color, 1)); + $-local-green: green(rgba($hex-color, 1)); + $-local-blue: blue(rgba($hex-color, 1)); + $-local-lightness: ($-local-red * 0.2126 + $-local-green * 0.7152 + $-local-blue * 0.0722) / 255; + + @return $-local-lightness > 0.6; +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/functions/_is-number.scss b/themes/hugodocs/pipeline/scss/bourbon/functions/_is-number.scss new file mode 100644 index 000000000..a64e0bf21 --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/functions/_is-number.scss @@ -0,0 +1,11 @@ +@charset "UTF-8"; + +/// Checks for a valid number. +/// +/// @param {Number} $value +/// +/// @require {function} contains + +@function is-number($value) { + @return contains("0" "1" "2" "3" "4" "5" "6" "7" "8" "9" 0 1 2 3 4 5 6 7 8 9, $value); +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/functions/_is-size.scss b/themes/hugodocs/pipeline/scss/bourbon/functions/_is-size.scss new file mode 100644 index 000000000..661789ab4 --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/functions/_is-size.scss @@ -0,0 +1,13 @@ +@charset "UTF-8"; + +/// Checks for a valid CSS size. +/// +/// @param {String} $value +/// +/// @require {function} contains +/// @require {function} is-length + +@function is-size($value) { + @return is-length($value) + or contains("fill" "fit-content" "min-content" "max-content", $value); +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/functions/_modular-scale.scss b/themes/hugodocs/pipeline/scss/bourbon/functions/_modular-scale.scss new file mode 100644 index 000000000..20fa38812 --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/functions/_modular-scale.scss @@ -0,0 +1,69 @@ +// Scaling Variables +$golden: 1.618; +$minor-second: 1.067; +$major-second: 1.125; +$minor-third: 1.2; +$major-third: 1.25; +$perfect-fourth: 1.333; +$augmented-fourth: 1.414; +$perfect-fifth: 1.5; +$minor-sixth: 1.6; +$major-sixth: 1.667; +$minor-seventh: 1.778; +$major-seventh: 1.875; +$octave: 2; +$major-tenth: 2.5; +$major-eleventh: 2.667; +$major-twelfth: 3; +$double-octave: 4; + +$modular-scale-ratio: $perfect-fourth !default; +$modular-scale-base: em($em-base) !default; + +@function modular-scale($increment, $value: $modular-scale-base, $ratio: $modular-scale-ratio) { + $v1: nth($value, 1); + $v2: nth($value, length($value)); + $value: $v1; + + // scale $v2 to just above $v1 + @while $v2 > $v1 { + $v2: ($v2 / $ratio); // will be off-by-1 + } + @while $v2 < $v1 { + $v2: ($v2 * $ratio); // will fix off-by-1 + } + + // check AFTER scaling $v2 to prevent double-counting corner-case + $double-stranded: $v2 > $v1; + + @if $increment > 0 { + @for $i from 1 through $increment { + @if $double-stranded and ($v1 * $ratio) > $v2 { + $value: $v2; + $v2: ($v2 * $ratio); + } @else { + $v1: ($v1 * $ratio); + $value: $v1; + } + } + } + + @if $increment < 0 { + // adjust $v2 to just below $v1 + @if $double-stranded { + $v2: ($v2 / $ratio); + } + + @for $i from $increment through -1 { + @if $double-stranded and ($v1 / $ratio) < $v2 { + $value: $v2; + $v2: ($v2 / $ratio); + } @else { + $v1: ($v1 / $ratio); + $value: $v1; + } + } + } + + @return $value; +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/functions/_px-to-em.scss b/themes/hugodocs/pipeline/scss/bourbon/functions/_px-to-em.scss new file mode 100644 index 000000000..ae81a44ad --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/functions/_px-to-em.scss @@ -0,0 +1,13 @@ +// Convert pixels to ems +// eg. for a relational value of 12px write em(12) when the parent is 16px +// if the parent is another value say 24px write em(12, 24) + +@function em($pxval, $base: $em-base) { + @if not unitless($pxval) { + $pxval: strip-units($pxval); + } + @if not unitless($base) { + $base: strip-units($base); + } + @return ($pxval / $base) * 1em; +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/functions/_px-to-rem.scss b/themes/hugodocs/pipeline/scss/bourbon/functions/_px-to-rem.scss new file mode 100644 index 000000000..0ac941e76 --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/functions/_px-to-rem.scss @@ -0,0 +1,15 @@ +// Convert pixels to rems +// eg. for a relational value of 12px write rem(12) +// Assumes $em-base is the font-size of + +@function rem($pxval) { + @if not unitless($pxval) { + $pxval: strip-units($pxval); + } + + $base: $em-base; + @if not unitless($base) { + $base: strip-units($base); + } + @return ($pxval / $base) * 1rem; +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/functions/_shade.scss b/themes/hugodocs/pipeline/scss/bourbon/functions/_shade.scss new file mode 100644 index 000000000..8aaf2c6d2 --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/functions/_shade.scss @@ -0,0 +1,24 @@ +@charset "UTF-8"; + +/// Mixes a color with black. +/// +/// @param {Color} $color +/// +/// @param {Number (Percentage)} $percent +/// The amount of black to be mixed in. +/// +/// @example scss - Usage +/// .element { +/// background-color: shade(#ffbb52, 60%); +/// } +/// +/// @example css - CSS Output +/// .element { +/// background-color: #664a20; +/// } +/// +/// @return {Color} + +@function shade($color, $percent) { + @return mix(#000, $color, $percent); +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/functions/_strip-units.scss b/themes/hugodocs/pipeline/scss/bourbon/functions/_strip-units.scss new file mode 100644 index 000000000..6c5f3e810 --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/functions/_strip-units.scss @@ -0,0 +1,17 @@ +@charset "UTF-8"; + +/// Strips the unit from a number. +/// +/// @param {Number (With Unit)} $value +/// +/// @example scss - Usage +/// $dimension: strip-units(10em); +/// +/// @example css - CSS Output +/// $dimension: 10; +/// +/// @return {Number (Unitless)} + +@function strip-units($value) { + @return ($value / ($value * 0 + 1)); +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/functions/_tint.scss b/themes/hugodocs/pipeline/scss/bourbon/functions/_tint.scss new file mode 100644 index 000000000..2e3381488 --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/functions/_tint.scss @@ -0,0 +1,24 @@ +@charset "UTF-8"; + +/// Mixes a color with white. +/// +/// @param {Color} $color +/// +/// @param {Number (Percentage)} $percent +/// The amount of white to be mixed in. +/// +/// @example scss - Usage +/// .element { +/// background-color: tint(#6ecaa6, 40%); +/// } +/// +/// @example css - CSS Output +/// .element { +/// background-color: #a8dfc9; +/// } +/// +/// @return {Color} + +@function tint($color, $percent) { + @return mix(#fff, $color, $percent); +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/functions/_transition-property-name.scss b/themes/hugodocs/pipeline/scss/bourbon/functions/_transition-property-name.scss new file mode 100644 index 000000000..18348b93a --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/functions/_transition-property-name.scss @@ -0,0 +1,22 @@ +// Return vendor-prefixed property names if appropriate +// Example: transition-property-names((transform, color, background), moz) -> -moz-transform, color, background +//************************************************************************// +@function transition-property-names($props, $vendor: false) { + $new-props: (); + + @each $prop in $props { + $new-props: append($new-props, transition-property-name($prop, $vendor), comma); + } + + @return $new-props; +} + +@function transition-property-name($prop, $vendor: false) { + // put other properties that need to be prefixed here aswell + @if $vendor and $prop == transform { + @return unquote('-'+$vendor+'-'+$prop); + } + @else { + @return $prop; + } +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/functions/_unpack.scss b/themes/hugodocs/pipeline/scss/bourbon/functions/_unpack.scss new file mode 100644 index 000000000..4367935d5 --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/functions/_unpack.scss @@ -0,0 +1,27 @@ +@charset "UTF-8"; + +/// Converts shorthand to the 4-value syntax. +/// +/// @param {List} $shorthand +/// +/// @example scss - Usage +/// .element { +/// margin: unpack(1em 2em); +/// } +/// +/// @example css - CSS Output +/// .element { +/// margin: 1em 2em 1em 2em; +/// } + +@function unpack($shorthand) { + @if length($shorthand) == 1 { + @return nth($shorthand, 1) nth($shorthand, 1) nth($shorthand, 1) nth($shorthand, 1); + } @else if length($shorthand) == 2 { + @return nth($shorthand, 1) nth($shorthand, 2) nth($shorthand, 1) nth($shorthand, 2); + } @else if length($shorthand) == 3 { + @return nth($shorthand, 1) nth($shorthand, 2) nth($shorthand, 3) nth($shorthand, 2); + } @else { + @return $shorthand; + } +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/helpers/_convert-units.scss b/themes/hugodocs/pipeline/scss/bourbon/helpers/_convert-units.scss new file mode 100644 index 000000000..e0a65a05c --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/helpers/_convert-units.scss @@ -0,0 +1,21 @@ +//************************************************************************// +// Helper function for str-to-num fn. +// Source: http://sassmeister.com/gist/9647408 +//************************************************************************// +@function _convert-units($number, $unit) { + $strings: "px", "cm", "mm", "%", "ch", "pica", "in", "em", "rem", "pt", "pc", "ex", "vw", "vh", "vmin", "vmax", "deg", "rad", "grad", "turn"; + $units: 1px, 1cm, 1mm, 1%, 1ch, 1pica, 1in, 1em, 1rem, 1pt, 1pc, 1ex, 1vw, 1vh, 1vmin, 1vmax, 1deg, 1rad, 1grad, 1turn; + $index: index($strings, $unit); + + @if not $index { + @warn "Unknown unit `#{$unit}`."; + @return false; + } + + @if type-of($number) != "number" { + @warn "`#{$number} is not a number`"; + @return false; + } + + @return $number * nth($units, $index); +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/helpers/_directional-values.scss b/themes/hugodocs/pipeline/scss/bourbon/helpers/_directional-values.scss new file mode 100644 index 000000000..6ee538db4 --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/helpers/_directional-values.scss @@ -0,0 +1,96 @@ +@charset "UTF-8"; + +/// Directional-property mixins are shorthands for writing properties like the following +/// +/// @ignore You can also use `false` instead of `null`. +/// +/// @param {List} $vals +/// List of directional values +/// +/// @example scss - Usage +/// .element { +/// @include border-style(dotted null); +/// @include margin(null 0 10px); +/// } +/// +/// @example css - CSS Output +/// .element { +/// border-bottom-style: dotted; +/// border-top-style: dotted; +/// margin-bottom: 10px; +/// margin-left: 0; +/// margin-right: 0; +/// } +/// +/// @require {function} contains-falsy +/// +/// @return {List} + +@function collapse-directionals($vals) { + $output: null; + + $a: nth($vals, 1); + $b: if(length($vals) < 2, $a, nth($vals, 2)); + $c: if(length($vals) < 3, $a, nth($vals, 3)); + $d: if(length($vals) < 2, $a, nth($vals, if(length($vals) < 4, 2, 4))); + + @if $a == 0 { $a: 0; } + @if $b == 0 { $b: 0; } + @if $c == 0 { $c: 0; } + @if $d == 0 { $d: 0; } + + @if $a == $b and $a == $c and $a == $d { $output: $a; } + @else if $a == $c and $b == $d { $output: $a $b; } + @else if $b == $d { $output: $a $b $c; } + @else { $output: $a $b $c $d; } + + @return $output; +} + +/// Output directional properties, for instance `margin`. +/// +/// @access private +/// +/// @param {String} $pre +/// Prefix to use +/// @param {String} $suf +/// Suffix to use +/// @param {List} $vals +/// List of values +/// +/// @require {function} collapse-directionals +/// @require {function} contains-falsy + +@mixin directional-property($pre, $suf, $vals) { + // Property Names + $top: $pre + "-top" + if($suf, "-#{$suf}", ""); + $bottom: $pre + "-bottom" + if($suf, "-#{$suf}", ""); + $left: $pre + "-left" + if($suf, "-#{$suf}", ""); + $right: $pre + "-right" + if($suf, "-#{$suf}", ""); + $all: $pre + if($suf, "-#{$suf}", ""); + + $vals: collapse-directionals($vals); + + @if contains-falsy($vals) { + @if nth($vals, 1) { #{$top}: nth($vals, 1); } + + @if length($vals) == 1 { + @if nth($vals, 1) { #{$right}: nth($vals, 1); } + } @else { + @if nth($vals, 2) { #{$right}: nth($vals, 2); } + } + + @if length($vals) == 2 { + @if nth($vals, 1) { #{$bottom}: nth($vals, 1); } + @if nth($vals, 2) { #{$left}: nth($vals, 2); } + } @else if length($vals) == 3 { + @if nth($vals, 3) { #{$bottom}: nth($vals, 3); } + @if nth($vals, 2) { #{$left}: nth($vals, 2); } + } @else if length($vals) == 4 { + @if nth($vals, 3) { #{$bottom}: nth($vals, 3); } + @if nth($vals, 4) { #{$left}: nth($vals, 4); } + } + } @else { + #{$all}: $vals; + } +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/helpers/_font-source-declaration.scss b/themes/hugodocs/pipeline/scss/bourbon/helpers/_font-source-declaration.scss new file mode 100644 index 000000000..7f17586c9 --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/helpers/_font-source-declaration.scss @@ -0,0 +1,43 @@ +// Used for creating the source string for fonts using @font-face +// Reference: http://goo.gl/Ru1bKP + +@function font-url-prefixer($asset-pipeline) { + @if $asset-pipeline == true { + @return font-url; + } @else { + @return url; + } +} + +@function font-source-declaration( + $font-family, + $file-path, + $asset-pipeline, + $file-formats, + $font-url) { + + $src: (); + + $formats-map: ( + eot: "#{$file-path}.eot?#iefix" format("embedded-opentype"), + woff2: "#{$file-path}.woff2" format("woff2"), + woff: "#{$file-path}.woff" format("woff"), + ttf: "#{$file-path}.ttf" format("truetype"), + svg: "#{$file-path}.svg##{$font-family}" format("svg") + ); + + @each $key, $values in $formats-map { + @if contains($file-formats, $key) { + $file-path: nth($values, 1); + $font-format: nth($values, 2); + + @if $asset-pipeline == true { + $src: append($src, font-url($file-path) $font-format, comma); + } @else { + $src: append($src, url($file-path) $font-format, comma); + } + } + } + + @return $src; +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/helpers/_gradient-positions-parser.scss b/themes/hugodocs/pipeline/scss/bourbon/helpers/_gradient-positions-parser.scss new file mode 100644 index 000000000..07d30b6cf --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/helpers/_gradient-positions-parser.scss @@ -0,0 +1,13 @@ +@function _gradient-positions-parser($gradient-type, $gradient-positions) { + @if $gradient-positions + and ($gradient-type == linear) + and (type-of($gradient-positions) != color) { + $gradient-positions: _linear-positions-parser($gradient-positions); + } + @else if $gradient-positions + and ($gradient-type == radial) + and (type-of($gradient-positions) != color) { + $gradient-positions: _radial-positions-parser($gradient-positions); + } + @return $gradient-positions; +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/helpers/_linear-angle-parser.scss b/themes/hugodocs/pipeline/scss/bourbon/helpers/_linear-angle-parser.scss new file mode 100644 index 000000000..e0401ed8d --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/helpers/_linear-angle-parser.scss @@ -0,0 +1,25 @@ +// Private function for linear-gradient-parser +@function _linear-angle-parser($image, $first-val, $prefix, $suffix) { + $offset: null; + $unit-short: str-slice($first-val, str-length($first-val) - 2, str-length($first-val)); + $unit-long: str-slice($first-val, str-length($first-val) - 3, str-length($first-val)); + + @if ($unit-long == "grad") or + ($unit-long == "turn") { + $offset: if($unit-long == "grad", -100grad * 3, -0.75turn); + } + + @else if ($unit-short == "deg") or + ($unit-short == "rad") { + $offset: if($unit-short == "deg", -90 * 3, 1.6rad); + } + + @if $offset { + $num: _str-to-num($first-val); + + @return ( + webkit-image: -webkit- + $prefix + ($offset - $num) + $suffix, + spec-image: $image + ); + } +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/helpers/_linear-gradient-parser.scss b/themes/hugodocs/pipeline/scss/bourbon/helpers/_linear-gradient-parser.scss new file mode 100644 index 000000000..48a8f77f9 --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/helpers/_linear-gradient-parser.scss @@ -0,0 +1,41 @@ +@function _linear-gradient-parser($image) { + $image: unquote($image); + $gradients: (); + $start: str-index($image, "("); + $end: str-index($image, ","); + $first-val: str-slice($image, $start + 1, $end - 1); + + $prefix: str-slice($image, 1, $start); + $suffix: str-slice($image, $end, str-length($image)); + + $has-multiple-vals: str-index($first-val, " "); + $has-single-position: unquote(_position-flipper($first-val) + ""); + $has-angle: is-number(str-slice($first-val, 1, 1)); + + @if $has-multiple-vals { + $gradients: _linear-side-corner-parser($image, $first-val, $prefix, $suffix, $has-multiple-vals); + } + + @else if $has-single-position != "" { + $pos: unquote($has-single-position + ""); + + $gradients: ( + webkit-image: -webkit- + $image, + spec-image: $prefix + "to " + $pos + $suffix + ); + } + + @else if $has-angle { + // Rotate degree for webkit + $gradients: _linear-angle-parser($image, $first-val, $prefix, $suffix); + } + + @else { + $gradients: ( + webkit-image: -webkit- + $image, + spec-image: $image + ); + } + + @return $gradients; +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/helpers/_linear-positions-parser.scss b/themes/hugodocs/pipeline/scss/bourbon/helpers/_linear-positions-parser.scss new file mode 100644 index 000000000..96d6a6d45 --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/helpers/_linear-positions-parser.scss @@ -0,0 +1,61 @@ +@function _linear-positions-parser($pos) { + $type: type-of(nth($pos, 1)); + $spec: null; + $degree: null; + $side: null; + $corner: null; + $length: length($pos); + // Parse Side and corner positions + @if ($length > 1) { + @if nth($pos, 1) == "to" { // Newer syntax + $side: nth($pos, 2); + + @if $length == 2 { // eg. to top + // Swap for backwards compatibility + $degree: _position-flipper(nth($pos, 2)); + } + @else if $length == 3 { // eg. to top left + $corner: nth($pos, 3); + } + } + @else if $length == 2 { // Older syntax ("top left") + $side: _position-flipper(nth($pos, 1)); + $corner: _position-flipper(nth($pos, 2)); + } + + @if ("#{$side} #{$corner}" == "left top") or ("#{$side} #{$corner}" == "top left") { + $degree: _position-flipper(#{$side}) _position-flipper(#{$corner}); + } + @else if ("#{$side} #{$corner}" == "right top") or ("#{$side} #{$corner}" == "top right") { + $degree: _position-flipper(#{$side}) _position-flipper(#{$corner}); + } + @else if ("#{$side} #{$corner}" == "right bottom") or ("#{$side} #{$corner}" == "bottom right") { + $degree: _position-flipper(#{$side}) _position-flipper(#{$corner}); + } + @else if ("#{$side} #{$corner}" == "left bottom") or ("#{$side} #{$corner}" == "bottom left") { + $degree: _position-flipper(#{$side}) _position-flipper(#{$corner}); + } + $spec: to $side $corner; + } + @else if $length == 1 { + // Swap for backwards compatibility + @if $type == string { + $degree: $pos; + $spec: to _position-flipper($pos); + } + @else { + $degree: -270 - $pos; //rotate the gradient opposite from spec + $spec: $pos; + } + } + $degree: unquote($degree + ","); + $spec: unquote($spec + ","); + @return $degree $spec; +} + +@function _position-flipper($pos) { + @return if($pos == left, right, null) + if($pos == right, left, null) + if($pos == top, bottom, null) + if($pos == bottom, top, null); +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/helpers/_linear-side-corner-parser.scss b/themes/hugodocs/pipeline/scss/bourbon/helpers/_linear-side-corner-parser.scss new file mode 100644 index 000000000..7a691253d --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/helpers/_linear-side-corner-parser.scss @@ -0,0 +1,31 @@ +// Private function for linear-gradient-parser +@function _linear-side-corner-parser($image, $first-val, $prefix, $suffix, $has-multiple-vals) { + $val-1: str-slice($first-val, 1, $has-multiple-vals - 1); + $val-2: str-slice($first-val, $has-multiple-vals + 1, str-length($first-val)); + $val-3: null; + $has-val-3: str-index($val-2, " "); + + @if $has-val-3 { + $val-3: str-slice($val-2, $has-val-3 + 1, str-length($val-2)); + $val-2: str-slice($val-2, 1, $has-val-3 - 1); + } + + $pos: _position-flipper($val-1) _position-flipper($val-2) _position-flipper($val-3); + $pos: unquote($pos + ""); + + // Use old spec for webkit + @if $val-1 == "to" { + @return ( + webkit-image: -webkit- + $prefix + $pos + $suffix, + spec-image: $image + ); + } + + // Bring the code up to spec + @else { + @return ( + webkit-image: -webkit- + $image, + spec-image: $prefix + "to " + $pos + $suffix + ); + } +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/helpers/_radial-arg-parser.scss b/themes/hugodocs/pipeline/scss/bourbon/helpers/_radial-arg-parser.scss new file mode 100644 index 000000000..56c6030b7 --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/helpers/_radial-arg-parser.scss @@ -0,0 +1,69 @@ +@function _radial-arg-parser($g1, $g2, $pos, $shape-size) { + @each $value in $g1, $g2 { + $first-val: nth($value, 1); + $pos-type: type-of($first-val); + $spec-at-index: null; + + // Determine if spec was passed to mixin + @if type-of($value) == list { + $spec-at-index: if(index($value, at), index($value, at), false); + } + @if $spec-at-index { + @if $spec-at-index > 1 { + @for $i from 1 through ($spec-at-index - 1) { + $shape-size: $shape-size nth($value, $i); + } + @for $i from ($spec-at-index + 1) through length($value) { + $pos: $pos nth($value, $i); + } + } + @else if $spec-at-index == 1 { + @for $i from ($spec-at-index + 1) through length($value) { + $pos: $pos nth($value, $i); + } + } + $g1: null; + } + + // If not spec calculate correct values + @else { + @if ($pos-type != color) or ($first-val != "transparent") { + @if ($pos-type == number) + or ($first-val == "center") + or ($first-val == "top") + or ($first-val == "right") + or ($first-val == "bottom") + or ($first-val == "left") { + + $pos: $value; + + @if $pos == $g1 { + $g1: null; + } + } + + @else if + ($first-val == "ellipse") + or ($first-val == "circle") + or ($first-val == "closest-side") + or ($first-val == "closest-corner") + or ($first-val == "farthest-side") + or ($first-val == "farthest-corner") + or ($first-val == "contain") + or ($first-val == "cover") { + + $shape-size: $value; + + @if $value == $g1 { + $g1: null; + } + + @else if $value == $g2 { + $g2: null; + } + } + } + } + } + @return $g1, $g2, $pos, $shape-size; +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/helpers/_radial-gradient-parser.scss b/themes/hugodocs/pipeline/scss/bourbon/helpers/_radial-gradient-parser.scss new file mode 100644 index 000000000..5444d8085 --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/helpers/_radial-gradient-parser.scss @@ -0,0 +1,50 @@ +@function _radial-gradient-parser($image) { + $image: unquote($image); + $gradients: (); + $start: str-index($image, "("); + $end: str-index($image, ","); + $first-val: str-slice($image, $start + 1, $end - 1); + + $prefix: str-slice($image, 1, $start); + $suffix: str-slice($image, $end, str-length($image)); + + $is-spec-syntax: str-index($first-val, "at"); + + @if $is-spec-syntax and $is-spec-syntax > 1 { + $keyword: str-slice($first-val, 1, $is-spec-syntax - 2); + $pos: str-slice($first-val, $is-spec-syntax + 3, str-length($first-val)); + $pos: append($pos, $keyword, comma); + + $gradients: ( + webkit-image: -webkit- + $prefix + $pos + $suffix, + spec-image: $image + ); + } + + @else if $is-spec-syntax == 1 { + $pos: str-slice($first-val, $is-spec-syntax + 3, str-length($first-val)); + + $gradients: ( + webkit-image: -webkit- + $prefix + $pos + $suffix, + spec-image: $image + ); + } + + @else if str-index($image, "cover") or str-index($image, "contain") { + @warn "Radial-gradient needs to be updated to conform to latest spec."; + + $gradients: ( + webkit-image: null, + spec-image: $image + ); + } + + @else { + $gradients: ( + webkit-image: -webkit- + $image, + spec-image: $image + ); + } + + @return $gradients; +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/helpers/_radial-positions-parser.scss b/themes/hugodocs/pipeline/scss/bourbon/helpers/_radial-positions-parser.scss new file mode 100644 index 000000000..3c552ad79 --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/helpers/_radial-positions-parser.scss @@ -0,0 +1,18 @@ +@function _radial-positions-parser($gradient-pos) { + $shape-size: nth($gradient-pos, 1); + $pos: nth($gradient-pos, 2); + $shape-size-spec: _shape-size-stripper($shape-size); + + $pre-spec: unquote(if($pos, "#{$pos}, ", null)) + unquote(if($shape-size, "#{$shape-size},", null)); + $pos-spec: if($pos, "at #{$pos}", null); + + $spec: "#{$shape-size-spec} #{$pos-spec}"; + + // Add comma + @if ($spec != " ") { + $spec: "#{$spec},"; + } + + @return $pre-spec $spec; +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/helpers/_render-gradients.scss b/themes/hugodocs/pipeline/scss/bourbon/helpers/_render-gradients.scss new file mode 100644 index 000000000..576567683 --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/helpers/_render-gradients.scss @@ -0,0 +1,26 @@ +// User for linear and radial gradients within background-image or border-image properties + +@function _render-gradients($gradient-positions, $gradients, $gradient-type, $vendor: false) { + $pre-spec: null; + $spec: null; + $vendor-gradients: null; + @if $gradient-type == linear { + @if $gradient-positions { + $pre-spec: nth($gradient-positions, 1); + $spec: nth($gradient-positions, 2); + } + } + @else if $gradient-type == radial { + $pre-spec: nth($gradient-positions, 1); + $spec: nth($gradient-positions, 2); + } + + @if $vendor { + $vendor-gradients: -#{$vendor}-#{$gradient-type}-gradient(#{$pre-spec} $gradients); + } + @else if $vendor == false { + $vendor-gradients: "#{$gradient-type}-gradient(#{$spec} #{$gradients})"; + $vendor-gradients: unquote($vendor-gradients); + } + @return $vendor-gradients; +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/helpers/_shape-size-stripper.scss b/themes/hugodocs/pipeline/scss/bourbon/helpers/_shape-size-stripper.scss new file mode 100644 index 000000000..ee5eda422 --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/helpers/_shape-size-stripper.scss @@ -0,0 +1,10 @@ +@function _shape-size-stripper($shape-size) { + $shape-size-spec: null; + @each $value in $shape-size { + @if ($value == "cover") or ($value == "contain") { + $value: null; + } + $shape-size-spec: "#{$shape-size-spec} #{$value}"; + } + @return $shape-size-spec; +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/helpers/_str-to-num.scss b/themes/hugodocs/pipeline/scss/bourbon/helpers/_str-to-num.scss new file mode 100644 index 000000000..3ef1d873b --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/helpers/_str-to-num.scss @@ -0,0 +1,50 @@ +//************************************************************************// +// Helper function for linear/radial-gradient-parsers. +// Source: http://sassmeister.com/gist/9647408 +//************************************************************************// +@function _str-to-num($string) { + // Matrices + $strings: "0" "1" "2" "3" "4" "5" "6" "7" "8" "9"; + $numbers: 0 1 2 3 4 5 6 7 8 9; + + // Result + $result: 0; + $divider: 0; + $minus: false; + + // Looping through all characters + @for $i from 1 through str-length($string) { + $character: str-slice($string, $i, $i); + $index: index($strings, $character); + + @if $character == "-" { + $minus: true; + } + + @else if $character == "." { + $divider: 1; + } + + @else { + @if not $index { + $result: if($minus, $result * -1, $result); + @return _convert-units($result, str-slice($string, $i)); + } + + $number: nth($numbers, $index); + + @if $divider == 0 { + $result: $result * 10; + } + + @else { + // Move the decimal dot to the left + $divider: $divider * 10; + $number: $number / $divider; + } + + $result: $result + $number; + } + } + @return if($minus, $result * -1, $result); +} diff --git a/themes/hugodocs/pipeline/scss/bourbon/settings/_asset-pipeline.scss b/themes/hugodocs/pipeline/scss/bourbon/settings/_asset-pipeline.scss new file mode 100644 index 000000000..4c6afc5bb --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/settings/_asset-pipeline.scss @@ -0,0 +1,7 @@ +@charset "UTF-8"; + +/// A global setting to enable or disable the `$asset-pipeline` variable for all functions that accept it. +/// +/// @type Bool + +$asset-pipeline: false !default; diff --git a/themes/hugodocs/pipeline/scss/bourbon/settings/_prefixer.scss b/themes/hugodocs/pipeline/scss/bourbon/settings/_prefixer.scss new file mode 100644 index 000000000..8c390514d --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/settings/_prefixer.scss @@ -0,0 +1,9 @@ +@charset "UTF-8"; + +/// Global variables to enable or disable vendor prefixes + +$prefix-for-webkit: true !default; +$prefix-for-mozilla: true !default; +$prefix-for-microsoft: true !default; +$prefix-for-opera: true !default; +$prefix-for-spec: true !default; diff --git a/themes/hugodocs/pipeline/scss/bourbon/settings/_px-to-em.scss b/themes/hugodocs/pipeline/scss/bourbon/settings/_px-to-em.scss new file mode 100644 index 000000000..f2f9a3e8d --- /dev/null +++ b/themes/hugodocs/pipeline/scss/bourbon/settings/_px-to-em.scss @@ -0,0 +1 @@ +$em-base: 16px !default; diff --git a/themes/hugodocs/pipeline/scss/components/_anchors.scss b/themes/hugodocs/pipeline/scss/components/_anchors.scss index c3f02bd9b..789716322 100644 --- a/themes/hugodocs/pipeline/scss/components/_anchors.scss +++ b/themes/hugodocs/pipeline/scss/components/_anchors.scss @@ -43,45 +43,7 @@ a { transform: rotateX(0); } &::after { - border-bottom: 2px solid #fff; + border-bottom: 1px solid $default-anchor-color; } } -} - -// .body-copy { -// a { -// position: relative; -// display: inline-block; -// outline: none; -// color: $default-anchor-color; -// vertical-align: bottom; -// text-decoration: none; -// white-space: nowrap; -// font-weight: 500; -// &:hover { -// color:$hugo-white; -// } -// &:before { -// position: absolute; -// top: 0; -// left: -5px; -// z-index: -1; -// box-sizing: content-box; -// padding: 0 5px; -// width: 100%; -// height: 100%; -// border-radius: 10px; -// background-color: $default-anchor-color; -// content: ''; -// opacity: 0; -// transition: transform 0.2s, opacity 0.2s; -// transform: scale(0); -// } -// &:hover::before, -// &:focus::before { -// opacity: 1; -// -webkit-transform: scale(1); -// transform: scale(1); -// } -// } -// } +} \ No newline at end of file diff --git a/themes/hugodocs/pipeline/scss/components/_code.scss b/themes/hugodocs/pipeline/scss/components/_code.scss index d491e4cdb..33d7c2036 100644 --- a/themes/hugodocs/pipeline/scss/components/_code.scss +++ b/themes/hugodocs/pipeline/scss/components/_code.scss @@ -1,22 +1,42 @@ //General code styling for inline code (ie, within body copy and not in a separate code block) -code,pre { +code, +pre { font-family: $code-font-family; } -p code, li > code { + +pre > code { + font-size: .8em; +} + +.body-copy > pre[class*="language-"], +.body-copy > code[class*="language-"] { + @include card(3); + text-shadow: 0 0px transparent; + text-shadow: none; + padding: 1em; + margin: .5em 0; + overflow: auto; +} + +.body-copy > pre[class*="language-"] { + margin-bottom:1.5em; +} + +p code, +li > code { font-size: .9em; - color:$base-font-color; + color: $base-font-color; font-family: $code-font-family; - border:1px solid $hugo-gray-light; - padding-left:.25em; - padding-right:.25em; + border: 1px solid $hugo-gray-light; + padding-left: .25em; + padding-right: .25em; } //for clipboard.js tooltip and button div.code-copy { position: relative; margin-top: 1em; - margin-bottom: 1em; - font-size: .8em; + margin-bottom: 1.5em; &:hover { button.copy-button { transition: all .2s ease-in-out; @@ -46,9 +66,9 @@ button.copy-button { height: 1.5em; border-width: 0px; border-radius: 0px; - color:$code-copy-button-text-color; + color: $code-copy-button-text-color; &:hover { - background-color:$hugo-blue; + background-color: $hugo-blue; } &:active, &:focus { @@ -59,7 +79,7 @@ button.copy-button { } .copy-text { - color:$code-copy-button-text-color; + color: $code-copy-button-text-color; font-size: 12px; display: block; width: 80px; @@ -83,7 +103,8 @@ button.copy-button { div.code-copy { position: relative; - box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23); + // box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23); + @include card(3); transition: all 0.3s cubic-bezier(.25, .8, .25, 1); border-radius: 0px; } @@ -95,6 +116,9 @@ div.code-copy-header { background-color: $code-editor-header-bg-color; border-radius: 0px; position: relative; + &.output { + background-color: $hugo-blue; + } span.filename { @include center; text-align: center; @@ -105,12 +129,12 @@ div.code-copy-header { background-color: transparent; font-family: $systemfonts; } - [class^="icon-"]{ - float:right; - position:relative; - top:-1.45em; - right:.5em; - color:$code-filename-color; + [class^="icon-"] { + float: right; + position: relative; + top: -1.45em; + right: .5em; + color: $code-filename-color; } } @@ -502,4 +526,4 @@ code.language-markdown { .token.list.punctuation { color: $hugo-blue; } -} \ No newline at end of file +} diff --git a/themes/hugodocs/pipeline/scss/components/_icons.scss b/themes/hugodocs/pipeline/scss/components/_icons.scss index e69de29bb..c8bb0a3e2 100644 --- a/themes/hugodocs/pipeline/scss/components/_icons.scss +++ b/themes/hugodocs/pipeline/scss/components/_icons.scss @@ -0,0 +1,4 @@ +svg.svg-icon { + max-width: 60px; +} + diff --git a/themes/hugodocs/pipeline/scss/components/_lists.scss b/themes/hugodocs/pipeline/scss/components/_lists.scss index e174026b7..a08c7b20a 100644 --- a/themes/hugodocs/pipeline/scss/components/_lists.scss +++ b/themes/hugodocs/pipeline/scss/components/_lists.scss @@ -17,17 +17,42 @@ aside { //sets list style in body copy .body-copy { - ul { - list-style: disc outside none; - padding-left: 1em; + ul, + ol { + padding-left: .75em; margin-left: .25em; margin-top: 0px; padding-top: 0px; - margin-bottom:1.5em; + margin-bottom: 1.5em; li { - // padding-left:1em; - // margin-left: 1em; - // text-indent: -1em; + ul,ol { + margin-bottom:0px; + } + } + } + ul { + list-style: disc outside none; + li { + ul { + list-style-type: circle; + li { + ul { + list-style-type: square; + } + } + } + } + } + ol { + li { + ol { + list-style-type: lower-roman; + li { + ol { + list-style-type: lower-alpha; + } + } + } } } } diff --git a/themes/hugodocs/pipeline/scss/components/_note-and-warn.scss b/themes/hugodocs/pipeline/scss/components/_note-caution-and-warning-shortcodes.scss similarity index 66% rename from themes/hugodocs/pipeline/scss/components/_note-and-warn.scss rename to themes/hugodocs/pipeline/scss/components/_note-caution-and-warning-shortcodes.scss index 8548bced9..b172fe696 100644 --- a/themes/hugodocs/pipeline/scss/components/_note-and-warn.scss +++ b/themes/hugodocs/pipeline/scss/components/_note-caution-and-warning-shortcodes.scss @@ -1,5 +1,5 @@ .note, -.caution,.warn { +.caution,.warning { display: block; margin-bottom: 1em; width: 100%; @@ -17,6 +17,7 @@ display: block; margin: 0px; padding: 12px; + font-size:.9em; } } @@ -25,7 +26,10 @@ background-color: $hugo-blue; } .shortcode-content { - background-color: lighten($hugo-blue, 50%); + background-color: lighten($hugo-blue, 55%); + @include MQ(retina){ + background-color: lighten($hugo-blue,56%); + } } } @@ -35,14 +39,20 @@ } .shortcode-content { background-color: lighten($hugo-gold, 30%); + @include MQ(retina){ + background-color: lighten($hugo-gold,35%); + } } } -.warn { +.warning { > h2 { background-color: $hugo-pink-dark; } .shortcode-content { background-color: lighten($hugo-pink-dark, 50%); + @include MQ(retina){ + background-color: lighten($hugo-pink-dark, 54%); + } } } diff --git a/themes/hugodocs/pipeline/scss/layout/_site-content.scss b/themes/hugodocs/pipeline/scss/layout/_site-content.scss index 4059c05ab..d58b3dfb1 100644 --- a/themes/hugodocs/pipeline/scss/layout/_site-content.scss +++ b/themes/hugodocs/pipeline/scss/layout/_site-content.scss @@ -23,25 +23,65 @@ main.main { margin-left: auto; margin-right: auto; max-width: $content-max-width; - position:relative; - header.content-header { - display: block; - clear: both; - width: 100%; - position: relative; - margin-top: 3em; - @include MQ(M) { - margin-top: 2em; - } - .last-modified { - color: $hugo-gray-light; - display: block; - margin-top: -10px; - width: 100%; - font-size: .8em; - margin-bottom: 20px; - } + position: relative; + min-height:calc(100vh - #{$site-header-height * 2}); +} + +header.content-header { + display: block; + clear: both; + width: 100%; + position: relative; + margin-top: 3em; + @include MQ(M) { + margin-top: 2em; } + .last-modified { + color: $hugo-gray-light; + display: block; + margin-top: -10px; + width: 100%; + font-size: .8em; + margin-bottom: 20px; + } +} + +a.godoc-link { + // position: absolute; + // display:flex; + // position:relative; + display: inline-block; + // flex-direction: column; + // justify-content: center; + // align-items: center; + width:auto; + position:relative; + margin-bottom:0px; + vertical-align:bottom; + svg { + height:1em; + width:.7em; + } + // @include MQ(M) { + // max-width: 30px; + // } + // svg { + // display: inline; + // // } + // span { + // display: none; + // text-align: center; + // text-transform: uppercase; + // font-size: 12px; + // color: $hugo-white; + // background-color: brown; + // padding: .2em .5em; + // margin-top: -5px; + // @include MQ(M) { + // font-size: 14px; + // margin-top: -8px; + // } + // } } a.edit-link { @@ -66,7 +106,7 @@ a.edit-link { } .body-copy { - margin-bottom: 2em; + margin-bottom: 2.5em; display: block; div + h2 { margin-top: 1em; diff --git a/themes/hugodocs/pipeline/scss/layout/_site-footer.scss b/themes/hugodocs/pipeline/scss/layout/_site-footer.scss index e69de29bb..c3695d9a0 100644 --- a/themes/hugodocs/pipeline/scss/layout/_site-footer.scss +++ b/themes/hugodocs/pipeline/scss/layout/_site-footer.scss @@ -0,0 +1,43 @@ +#site-footer { + position: relative; + display: flex; + align-items:center; + justify-content:space-around; + background-color: $hugo-black; + min-height: 100px; + width: 100%; + color: $hugo-white; + div { + display:flex; + flex-direction:column; + justify-content:center; + align-items:center; + img { + max-width:200px; + } + } + i.icon-heart:before { + color:$hugo-pink; + } + @include MQ(L) { + width:calc(100% - #{$sidebar-width}); + margin-left: $sidebar-width; + } +} + +ul.footer-list { + color: $hugo-white; + list-style: none; + margin-left:0px; + padding-left:0px; + li a { + color: $hugo-white; + font-size: .9em; + &:not(i) { + font-size: 14px; + } + i { + font-size: 16px; + } + } +} diff --git a/themes/hugodocs/pipeline/scss/layout/_site-navigation.scss b/themes/hugodocs/pipeline/scss/layout/_site-navigation.scss index e8ccc89ae..e1e596409 100644 --- a/themes/hugodocs/pipeline/scss/layout/_site-navigation.scss +++ b/themes/hugodocs/pipeline/scss/layout/_site-navigation.scss @@ -40,7 +40,7 @@ } } a.top-menu-item-link { - font-size: 17px; + font-size: 16px; &.active-section { color: $active-color; // border-bottom: 1px solid $active-color; diff --git a/themes/hugodocs/pipeline/scss/style.scss b/themes/hugodocs/pipeline/scss/style.scss index c1146b844..490a18bfb 100644 --- a/themes/hugodocs/pipeline/scss/style.scss +++ b/themes/hugodocs/pipeline/scss/style.scss @@ -1,3 +1,5 @@ +@import 'bourbon/bourbon'; + //variables and abstracts @import 'variables'; @import 'abstracts/mixins'; @@ -14,7 +16,7 @@ @import 'components/buttons'; @import 'components/lists'; @import 'components/anchors'; -@import 'components/note-and-warn'; +@import 'components/note-caution-and-warning-shortcodes'; @import 'vendor/prism'; @import 'components/code'; @import 'components/icons'; diff --git a/themes/hugodocs/static/css/style.min.css b/themes/hugodocs/static/css/style.min.css index 8abc9ef5a..cb8fe6e38 100644 --- a/themes/hugodocs/static/css/style.min.css +++ b/themes/hugodocs/static/css/style.min.css @@ -1 +1 @@ -/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}html{box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}html,body{margin:0px;padding:0px;outline:none;border:none;font-size:18px;font-family:"muli","helvetica neue",helvetica,sans-serif;color:#333;line-height:1.6;font-weight:300}body{font-size:90%;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}@media only screen and (min-width: 760px){body{font-size:95%}}@media only screen and (min-width: 960px){body{font-size:100%}}p{margin-top:0px;margin-bottom:1.5em;line-height:1.6}@font-face{font-family:'fontello';src:url("/fonts/fontello/fontello.eot?73509738");src:url("/fonts/fontello/fontello.eot?73509738#iefix") format("embedded-opentype"),url("/fonts/fontello/fontello.woff2?73509738") format("woff2"),url("/fonts/fontello/fontello.woff?73509738") format("woff"),url("/fonts/fontello/fontello.ttf?73509738") format("truetype"),url("/fonts/fontello/fontello.svg?73509738#fontello") format("svg");font-weight:normal;font-style:normal}[class^="icon-"]:before,[class*=" icon-"]:before{font-family:"fontello";font-style:normal;font-weight:normal;speak:none;display:inline-block;text-decoration:inherit;width:1em;margin-right:.2em;text-align:center;font-variant:normal;text-transform:none;line-height:1em;margin-left:.2em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-alert:before{content:'\e810'}.icon-angle-double-right:before{content:'\f101'}.icon-attention:before{content:'\e80f'}.icon-bash:before{content:'\e804'}.icon-bell:before{content:'\e80d'}.icon-chrome:before{content:'\e841'}.icon-clipboard:before{content:'\e817'}.icon-code:before{content:'\f121'}.icon-cog-alt:before{content:'\e814'}.icon-css3:before{content:'\f13c'}.icon-download:before{content:'\e815'}.icon-facebook-official:before{content:'\f230'}.icon-file-pdf:before{content:'\f1c1'}.icon-firefox:before{content:'\e840'}.icon-flag:before{content:'\e813'}.icon-go:before{content:'\e801'}.icon-golang:before{content:'\e801'}.icon-gopher:before{content:'\e801'}.icon-home:before{content:'\e812'}.icon-html.input:before{content:'\e801'}.icon-html5:before{content:'\e800'}.icon-html:before{content:'\e800'}.icon-ie:before{content:'\e843'}.icon-info:before{content:'\e811'}.icon-instagram:before{content:'\f32d'}.icon-javascript:before{content:'\e802'}.icon-js:before{content:'\e802'}.icon-json:before{content:'\E81C'}.icon-link:before{content:'\e816'}.icon-markdown:before{content:'\e80e'}.icon-opera:before{content:'\e842'}.icon-pencil:before{content:'\e80c'}.icon-picture:before{content:'\e808'}.icon-quote-left:before{content:'\e809'}.icon-quote-right:before{content:'\e80a'}.icon-sass:before{content:'\e803'}.icon-search:before{content:'\e80b'}.icon-sh:before{content:'\e804'}.icon-share:before{content:'\f1e0'}.icon-shell:before{content:'\e804'}.icon-tag:before{content:'\e806'}.icon-tags:before{content:'\e805'}.icon-terminal:before{content:'\e804'}.icon-twitter:before{content:'\e807'}@font-face{font-family:"muli";src:url("/fonts/muli/muli-100-webfont.woff2") format("woff2"),url("/fonts/muli/muli-100-webfont.woff") format("woff"),url("/fonts/muli/muli-100-webfont.ttf") format("truetype");font-weight:100;font-style:normal}@font-face{font-family:"muli";src:url("/fonts/muli/muli-100-italic-webfont.woff2") format("woff2"),url("/fonts/muli/muli-100-italic-webfont.woff") format("woff"),url("/fonts/muli/muli-100-italic-webfont.ttf") format("truetype");font-weight:100;font-style:italic}@font-face{font-family:"muli";src:url("/fonts/muli/muli-300-webfont.woff2") format("woff2"),url("/fonts/muli/muli-300-webfont.woff") format("woff"),url("/fonts/muli/muli-300-webfont.ttf") format("truetype");font-weight:300;font-style:normal}@font-face{font-family:"muli";src:url("/fonts/muli/muli-300-italic-webfont.woff2") format("woff2"),url("/fonts/muli/muli-300-italic-webfont.woff") format("woff"),url("/fonts/muli/muli-300-italic-webfont.ttf") format("truetype");font-weight:300;font-style:italic}@font-face{font-family:"muli";src:url("/fonts/muli/muli-400-webfont.woff2") format("woff2"),url("/fonts/muli/muli-400-webfont.woff") format("woff"),url("/fonts/muli/muli-400-webfont.ttf") format("truetype");font-weight:400;font-style:normal}@font-face{font-family:"muli";src:url("/fonts/muli/muli-400-italic-webfont.woff2") format("woff2"),url("/fonts/muli/muli-400-italic-webfont.woff") format("woff"),url("/fonts/muli/muli-400-italic-webfont.ttf") format("truetype");font-weight:400;font-style:italic}@font-face{font-family:"muli";src:url("/fonts/muli/muli-600-webfont.woff2") format("woff2"),url("/fonts/muli/muli-600-webfont.woff") format("woff"),url("/fonts/muli/muli-600-webfont.ttf") format("truetype");font-weight:600;font-style:normal}@font-face{font-family:"muli";src:url("/fonts/muli/muli-600-italic-webfont.woff2") format("woff2"),url("/fonts/muli/muli-600-italic-webfont.woff") format("woff"),url("/fonts/muli/muli-600-italic-webfont.ttf") format("truetype");font-weight:600;font-style:italic}@font-face{font-family:"muli";src:url("/fonts/muli/muli-700-webfont.woff2") format("woff2"),url("/fonts/muli/muli-700-webfont.woff") format("woff"),url("/fonts/muli/muli-700-webfont.ttf") format("truetype");font-weight:700;font-style:normal}@font-face{font-family:"muli";src:url("/fonts/muli/muli-700-italic-webfont.woff2") format("woff2"),url("/fonts/muli/muli-700-italic-webfont.woff") format("woff"),url("/fonts/muli/muli-700-italic-webfont.ttf") format("truetype");font-weight:700;font-style:italic}@font-face{font-family:"courierprime";src:url("/fonts/courierprime/courierprime-400-webfont.woff2") format("woff2"),url("/fonts/courierprime/courierprime-400-webfont.woff") format("woff"),url("/fonts/courierprime/courierprime-400-webfont.ttf") format("truetype");font-weight:400;font-style:normal}@font-face{font-family:"courierprime";src:url("/fonts/courierprime/courierprime-400-italic-webfont.woff2") format("woff2"),url("/fonts/courierprime/courierprime-400-italic-webfont.woff") format("woff"),url("/fonts/courierprime/courierprime-400-italic-webfont.ttf") format("truetype");font-weight:400;font-style:italic}@font-face{font-family:"courierprime";src:url("/fonts/courierprime/courierprime-700-webfont.woff2") format("woff2"),url("/fonts/courierprime/courierprime-700-webfont.woff") format("woff"),url("/fonts/courierprime/courierprime-700-webfont.ttf") format("truetype");font-weight:700;font-style:normal}@font-face{font-family:"courierprime";src:url("/fonts/courierprime/courierprime-700-italic-webfont.woff2") format("woff2"),url("/fonts/courierprime/courierprime-700-italic-webfont.woff") format("woff"),url("/fonts/courierprime/courierprime-700-italic-webfont.ttf") format("truetype");font-weight:700;font-style:italic}h1,h2,h3,h4{letter-spacing:-.021em;font-weight:700;margin:0px;padding-bottom:20px;line-height:1.4}h1{font-size:2em}@media only screen and (min-width: 760px){h1{font-size:2.25em}}h2{font-size:1.5em}h3{font-size:1.2em}h4{font-size:1em;color:#737373;text-transform:uppercase}.functions{font-family:"courierprime",courier,monospace;font-weight:300}button,a[role="button"]{background-color:#0594CB;color:#fff;border:none;outline:none;border-radius:.25em;padding:.25em .5em;box-shadow:none;text-align:center;transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 1px 3px rgba(0,0,0,0.12),0 1px 2px rgba(0,0,0,0.24)}button:hover,a[role="button"]:hover{transition:box-shadow 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 10px 20px rgba(0,0,0,0.19),0 6px 6px rgba(0,0,0,0.23)}button[class^="icon-"]:before,a[role="button"][class^="icon-"]:before{display:inline-block;font-family:'FontAwesome';margin-right:.3em}button.icon-forum:before,a[role="button"].icon-forum:before{content:'\f086'}button.icon-mailing-list:before,a[role="button"].icon-mailing-list:before{content:'\f0e0'}nav ul,nav ol,aside ul,aside ol{margin-left:0px;padding-left:0px;list-style:none;text-indent:0px}nav ul li,nav ol li,aside ul li,aside ol li{margin-left:0px;padding-left:0px;list-style:none}.body-copy ul{list-style:disc outside none;padding-left:1em;margin-left:.25em;margin-top:0px;padding-top:0px;margin-bottom:1.5em}a{color:#ff4088;font-weight:500}a,a:hover,a:active,a:focus{text-decoration:none;cursor:pointer}.body-copy a{text-decoration:none;color:#ff4088;display:inline-block;outline:none;position:relative;transition:color 0.3s ease;-webkit-perspective:1800px;perspective:1800px}.body-copy a:hover{color:#fff}.body-copy a::before,.body-copy a::after{position:absolute;top:0;left:-4px;padding:0 4px;z-index:-1;box-sizing:content-box;width:100%;height:100%;content:''}.body-copy a::before{background-color:#ff4088;transition:-webkit-transform 0.2s;transition:transform 0.2s;transition-timing-function:cubic-bezier(0.7, 0, 0.3, 1);-webkit-transform:rotateX(90deg);transform:rotateX(90deg);-webkit-transform-origin:50% 100%;transform-origin:50% 100%}.body-copy a:hover::before,.body-copy a:focus::before{-webkit-transform:rotateX(0);transform:rotateX(0)}.body-copy a::after{border-bottom:2px solid #fff}.note,.caution,.warn{display:block;margin-bottom:1em;width:100%}.note h2,.caution h2,.warn h2{font-size:1.1em;color:#fff;width:100%;display:block;margin:0px;padding:.25em 12px;border:none;outline:none}.note .shortcode-content,.caution .shortcode-content,.warn .shortcode-content{display:block;margin:0px;padding:12px}.note>h2{background-color:#0594CB}.note .shortcode-content{background-color:#d1f1fe}.caution>h2{background-color:#EBB951}.caution .shortcode-content{background-color:#fbf0da}.warn>h2{background-color:#C9177E}.warn .shortcode-content{background-color:#fce3f1}code[class*="language-"],pre[class*="language-"]{color:black;background:none;text-shadow:0 1px white;font-family:Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*="language-"]::-moz-selection,pre[class*="language-"]::-moz-selection,code[class*="language-"]::-moz-selection,code[class*="language-"]::-moz-selection{text-shadow:none;background:#b3d4fc}pre[class*="language-"]::selection,pre[class*="language-"]::selection,code[class*="language-"]::selection,code[class*="language-"]::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*="language-"],pre[class*="language-"]{text-shadow:none}}pre[class*="language-"]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*="language-"],pre[class*="language-"]{background:#f5f2f0}:not(pre)>code[class*="language-"]{padding:.1em;border-radius:.3em;white-space:normal}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:slategray}.token.punctuation{color:#999}.namespace{opacity:.7}.token.property,.token.tag,.token.boolean,.token.number,.token.constant,.token.symbol,.token.deleted{color:#905}.token.selector,.token.attr-name,.token.string,.token.char,.token.builtin,.token.inserted{color:#690}.token.operator,.token.entity,.token.url,.language-css .token.string,.style .token.string{color:#a67f59;background:rgba(255,255,255,0.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.function{color:#DD4A68}.token.regex,.token.important,.token.variable{color:#e90}.token.important,.token.bold{font-weight:bold}.token.italic{font-style:italic}.token.entity{cursor:help}code,pre{font-family:"courierprime",courier,monospace}p code,li>code{font-size:.9em;color:#333;font-family:"courierprime",courier,monospace;border:1px solid #949494;padding-left:.25em;padding-right:.25em}div.code-copy{position:relative;margin-top:1em;margin-bottom:1em;font-size:.8em}div.code-copy:hover button.copy-button{transition:all .2s ease-in-out;opacity:1}p+.code-copy{margin-top:0em}button.copy-button{display:none}@media only screen and (min-width: 760px){button.copy-button{display:block;padding:0px;transition:all .2s ease-in-out;opacity:1;background-color:#5a5a5a;box-sizing:border-box;position:absolute;bottom:0px;right:0px;z-index:4;width:80px;height:1.5em;border-width:0px;border-radius:0px;color:#fff}button.copy-button:hover{background-color:#0594CB}button.copy-button:active,button.copy-button:focus{outline:none;position:absolute}}.copy-text{color:#fff;font-size:12px;display:block;width:80px;line-height:1.5em;height:1.5em;vertical-align:middle;text-align:center}.copy-text i.icon-clipboard{display:inline}@media only screen and (min-device-width: 375px) and (max-device-width: 1024px) and (orientation: portrait) and (-webkit-min-device-pixel-ratio: 2){button.copy-button{display:none}}@media only screen and (min-device-width: 375px) and (max-device-width: 1024px) and (orientation: landscape) and (-webkit-min-device-pixel-ratio: 2){button.copy-button{display:none}}div.code-copy{position:relative;box-shadow:0 3px 6px rgba(0,0,0,0.16),0 3px 6px rgba(0,0,0,0.23);transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);border-radius:0px}div.code-copy-header{position:relative;height:1.5em;line-height:1.5em;background-color:#5a5a5a;border-radius:0px;position:relative}div.code-copy-header span.filename{display:block;margin-right:auto;margin-left:auto;text-align:center;max-width:50%;color:#fff;font-weight:100;font-size:.8em;background-color:transparent;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbols"}div.code-copy-header [class^="icon-"]{float:right;position:relative;top:-1.45em;right:.5em;color:#fff}.action-buttons{position:absolute;left:10px;margin-top:.35em;width:12px;height:12px;background:Crimson;border-radius:50%;box-shadow:18px 0 0 Orange, 36px 0 0 LimeGreen}.tooltipped{position:relative;background-color:#0594CB;padding-right:2em}.tooltipped:after{position:absolute;z-index:1000000;display:none;padding:2px 4px;font-size:.8em;font-weight:700;font-family:"muli","helvetica neue",helvetica,sans-serif;color:#fff;text-align:center;text-transform:uppercase;text-decoration:none;text-shadow:none;letter-spacing:normal;word-wrap:break-word;white-space:pre;pointer-events:none;content:attr(aria-label);background-color:#0594CB;border-color:#0594CB;border-radius:0px;-webkit-font-smoothing:subpixel-antialiased}.tooltipped:before{position:absolute;z-index:1000001;display:none;width:0;height:0;color:#0594CB;pointer-events:none;content:"";border:5px solid transparent}.tooltipped:hover:before,.tooltipped:hover:after,.tooltipped:active:before,.tooltipped:active:after,.tooltipped:focus:before,.tooltipped:focus:after{display:inline-block;text-decoration:none}.tooltipped-multiline:hover:after,.tooltipped-multiline:active:after,.tooltipped-multiline:focus:after{display:table-cell}.tooltipped-s:after,.tooltipped-se:after,.tooltipped-sw:after{top:100%;right:50%;margin-top:5px;text-align:center}.tooltipped-s:before,.tooltipped-se:before,.tooltipped-sw:before{top:auto;right:50%;bottom:-5px;margin-right:-5px;border-bottom-color:#0594CB;text-align:center}.tooltipped-se:after{right:auto;left:50%;margin-left:-15px;text-align:center}.tooltipped-sw:after{margin-right:-15px}.tooltipped-n:after,.tooltipped-ne:after,.tooltipped-nw:after{right:50%;bottom:100%;margin-bottom:5px}.tooltipped-n:before,.tooltipped-ne:before,.tooltipped-nw:before{top:-5px;right:50%;bottom:auto;margin-right:-5px;border-top-color:#0594CB}.tooltipped-ne:after{right:auto;left:50%;margin-left:-15px}.tooltipped-nw:after{margin-right:-15px}.tooltipped-s:after,.tooltipped-n:after{-webkit-transform:translateX(50%);transform:translateX(50%)}.tooltipped-w:after{right:100%;bottom:50%;margin-right:5px;-webkit-transform:translateY(50%);transform:translateY(50%)}.tooltipped-w:before{top:50%;bottom:50%;left:-5px;margin-top:-5px;border-left-color:#0594CB}.tooltipped-e:after{bottom:50%;left:100%;margin-left:5px;-webkit-transform:translateY(50%);transform:translateY(50%)}.tooltipped-e:before{top:50%;right:-5px;bottom:50%;margin-top:-5px;border-right-color:#0594CB}.tooltipped-multiline:after{width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:250px;word-break:break-word;word-wrap:normal;white-space:pre-line;border-collapse:separate}.tooltipped-multiline.tooltipped-s:after,.tooltipped-multiline.tooltipped-n:after{right:auto;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.tooltipped-multiline.tooltipped-w:after,.tooltipped-multiline.tooltipped-e:after{right:100%}code[class*="language-"],pre[class*="language-"]{color:black;background:none;text-shadow:0 1px white;font-family:"courierprime",courier,monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:2;-o-tab-size:2;tab-size:2;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*="language-"]::-moz-selection,pre[class*="language-"]::-moz-selection,code[class*="language-"]::-moz-selection,code[class*="language-"]::-moz-selection{text-shadow:none;background:#b3d4fc}pre[class*="language-"]::selection,pre[class*="language-"]::selection,code[class*="language-"]::selection,code[class*="language-"]::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*="language-"],pre[class*="language-"]{text-shadow:none}}pre[class*="language-"]{padding:1em 1em 2em 1em;margin:.5em 0;overflow:auto;background-color:#333}:not(pre)>code[class*="language-"],pre[class*="language-"]{background:#fff}:not(pre)>code[class*="language-"]{padding:.1em;border-radius:.3em;white-space:normal}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:#5a5a5a}.token.punctuation{color:#999}.namespace{opacity:.7}.token.property,.token.tag,.token.boolean,.token.number,.token.constant,.token.symbol,.token.deleted{color:#C9177E}.token.selector,.token.attr-name,.token.string,.token.char,.token.builtin,.token.inserted{color:#33BA91}.token.operator,.token.entity,.token.url,.language-css .token.string,.style .token.string{color:#C9177E;background:rgba(255,255,255,0.5)}.token.atrule,.token.attr-value,.token.keyword{color:#0594CB}.token.function{color:#EBB951}.token.regex,.token.important,.token.variable{color:#EBB951}.token.important,.token.bold{font-weight:bold}.token.italic{font-style:italic}.token.entity{cursor:help}pre.line-numbers{position:relative;padding-left:3.8em;counter-reset:linenumber}pre.line-numbers>code{position:relative}.line-numbers .line-numbers-rows{position:absolute;pointer-events:none;top:0;font-size:100%;left:-3.8em;width:3em;letter-spacing:-1px;border-right:1px solid #737373;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.line-numbers-rows>span{pointer-events:none;display:block;counter-increment:linenumber}.line-numbers-rows>span:before{content:counter(linenumber);color:#737373;display:block;padding-right:0.8em;text-align:right}code.language-markdown span.token.italic{color:#ff4088}code.language-markdown span.token.url{color:#0594CB}code.language-markdown .token.list.punctuation{color:#0594CB}ul.tags{list-style:none;margin:0;overflow:hidden;padding:0;margin-top:-1em;margin-bottom:.5em}.tags li{float:left}.tags li:first-child{margin-right:.5em}.tag{background:#eee;border-radius:3px 0 0 3px;color:#999;display:inline-block;height:26px;line-height:26px;padding:0 20px 0 23px;position:relative;margin:0 10px 10px 0;text-decoration:none;font-size:.7em;-webkit-transition:color 0.2s}.tag::before{background:#fff;border-radius:10px;box-shadow:inset 0 1px rgba(0,0,0,0.25);content:'';height:6px;left:10px;position:absolute;width:6px;top:10px}.tag::after{background:#fff;border-bottom:13px solid transparent;border-left:10px solid #eee;border-top:13px solid transparent;content:'';position:absolute;right:0;top:0}.tag:hover{background-color:#C9177E;color:white}.tag:hover::after{border-left-color:#C9177E}.site-header{width:100%;height:50px;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin:0px;background-color:#fff;color:#000;position:fixed;top:0px;left:0px;z-index:10;transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 1px 3px rgba(0,0,0,0.12),0 1px 2px rgba(0,0,0,0.24)}@media only screen and (min-width: 760px){.site-header{-ms-flex-pack:justify;justify-content:space-between}}.site-header .hugo-meta{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.site-header #home-link{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;font-size:.8em;margin-left:1.5em}.site-header #home-link img{height:35px;margin-right:.25em}.site-header #home-link .hugo-v{-ms-flex-item-align:end;align-self:flex-end;font-size:.9em}.site-header a.github-button{display:none}@media only screen and (min-width: 760px){.site-header a.github-button{display:inline}}.site-header iframe[src^="https://buttons.github.io"]{display:none;margin-left:1em}@media only screen and (min-width: 760px){.site-header iframe[src^="https://buttons.github.io"]{display:inline}}.site-navigation{transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;position:fixed;left:0px;top:0px;width:280px;bottom:0px;overflow-y:scroll;background-color:#fcfcfc;-webkit-transform:translateX(-280px);transform:translateX(-280px);padding:1em;z-index:9}.site-navigation.navigation-open{transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;-webkit-transform:translateX(0px);transform:translateX(0px)}@media only screen and (min-width: 960px){.site-navigation{-webkit-transform:translateX(0px);transform:translateX(0px)}}.site-navigation ul.top-menu{margin-top:80px;display:inline-block;margin-left:auto;margin-right:auto}@media only screen and (min-width: 960px){.site-navigation ul.top-menu{margin-top:60px}}.site-navigation ul.top-menu a{color:#333;font-weight:300}.site-navigation ul.top-menu li{padding-left:1em;line-height:1;margin-top:.66em;margin-bottom:.66em}.site-navigation ul.top-menu li ul li{padding-left:.5em}.site-navigation ul.top-menu a.top-menu-item-link{font-size:17px}.site-navigation ul.top-menu a.top-menu-item-link.active-section{color:#ff4088;font-weight:600}.site-navigation ul.top-menu a.top-menu-item-link.active-section+ul.submenu{display:block;border-left:1px solid #ff4088}.site-navigation ul.top-menu ul.submenu{display:none}.site-navigation ul.top-menu ul.submenu a.submenu-item-link{font-size:14px}.site-navigation ul.top-menu ul.submenu a.submenu-item-link:hover{color:#737373}.site-navigation ul.top-menu ul.submenu a.submenu-item-link.active-page{font-weight:600;color:#0594CB}.nav-buttons a{margin-left:1em;margin-bottom:.5em;display:inline-block;width:200px;font-size:.9em}.navigation-toggle-wrapper{width:60px;height:60px;position:fixed;top:50px;left:0px;z-index:20}.navigation-toggle-wrapper h4.menu{display:inline-block;position:absolute;bottom:-1em;left:.8em;color:#0594CB;display:none}@media only screen and (min-width: 960px){.navigation-toggle-wrapper{display:none}}.navigation-toggle-wrapper.navigation-open .middle{width:40px;height:40px;top:10%;border-radius:50%;background-color:#ff4088;border-color:#ff4088;opacity:0.3}.navigation-toggle-wrapper.navigation-open .top{-webkit-transform:rotate(45deg);top:40%;border-radius:5px;background-color:#ff4088;border-color:#ff4088}.navigation-toggle-wrapper.navigation-open .bottom{-webkit-transform:rotate(-45deg);top:40%;border-radius:5px;background-color:#ff4088;border-color:#ff4088}.bar{width:40px;height:2px;border:2px solid #0594CB;background-color:#0594CB;position:absolute;border-radius:10px}.bar.navigation-open{background-color:#ff4088;border:2px solid #ff4088}.top{left:15%;top:20%;-webkit-transition:all 0.5s}.middle{left:15%;top:40%;-webkit-transition:all 0.5s}.bottom{left:15%;top:60%;-webkit-transition:all 0.5s}#all-content-wrapper{margin-top:50px;z-index:5;transition:all .3s ease-in-out;opacity:1}@media only screen and (min-width: 960px){#all-content-wrapper{margin-left:280px}}#all-content-wrapper.navigation-open{transition:all .3s ease-in-out;-webkit-transform:translateX(280px);transform:translateX(280px);opacity:.4}@media only screen and (min-width: 960px){#all-content-wrapper.navigation-open{opacity:1;-webkit-transform:translateX(0px);transform:translateX(0px)}}main.main{width:90%;display:block;margin-left:auto;margin-right:auto;max-width:35em;position:relative}main.main header.content-header{display:block;clear:both;width:100%;position:relative;margin-top:3em}@media only screen and (min-width: 760px){main.main header.content-header{margin-top:2em}}main.main header.content-header .last-modified{color:#949494;display:block;margin-top:-10px;width:100%;font-size:.8em;margin-bottom:20px}a.edit-link{font-size:1.2em;position:absolute;top:-40px;right:0px}@media only screen and (min-width: 960px){a.edit-link{font-size:.7em;position:fixed;top:90px;right:2em}}a.edit-link .edit-text{display:none}@media only screen and (min-width: 960px){a.edit-link .edit-text{display:inline;margin-right:.15em;text-transform:uppercase}}.body-copy{margin-bottom:2em;display:block}.body-copy div+h2{margin-top:1em}.all-content-wrapper.home{background-color:#eaf9fe}main#homepage{width:90%;margin-bottom:2.5em}@media only screen and (min-width: 760px){main#homepage{max-width:684px}}@media only screen and (min-width: 960px){main#homepage{max-width:774px}}.homepage-image{display:block;margin:1em auto;max-width:200px}.homepage-image img{max-width:200px;margin-left:auto;margin-right:auto}.homepage-cards{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:distribute;justify-content:space-around}.homepage-cards .homepage-card{transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 1px 3px rgba(0,0,0,0.12),0 1px 2px rgba(0,0,0,0.24);color:inherit;width:100%;background-color:#fff;margin-bottom:.5em;padding:16px 8px}.homepage-cards .homepage-card:hover{transition:box-shadow 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 10px 20px rgba(0,0,0,0.19),0 6px 6px rgba(0,0,0,0.23)}@media only screen and (min-width: 760px){.homepage-cards .homepage-card{max-width:328.32px;margin-bottom:1em}}@media only screen and (min-width: 960px){.homepage-cards .homepage-card{max-width:239.94px;margin-left:.2em}}.homepage-cards .homepage-card h2{font-size:1em;margin:0px;line-height:1.1;margin-bottom:.5em;padding-bottom:0px}.homepage-cards .homepage-card p{font-size:.8em;line-height:1.3;margin-bottom:0px;color:#595959} +/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}html{box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}html,body{margin:0px;padding:0px;outline:none;border:none;font-size:18px;font-family:"muli","Helvetica Neue","Helvetica","Roboto","Arial",sans-serif;color:#333;line-height:1.6;font-weight:300}body{font-size:90%;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}@media only screen and (min-width: 760px){body{font-size:95%}}@media only screen and (min-width: 960px){body{font-size:100%}}p{margin-top:0px;margin-bottom:1.5em;line-height:1.6}@font-face{font-family:'fontello';src:url("/fonts/fontello/fontello.eot");src:url("/fonts/fontello/fontello.woff2") format("woff2"),url("/fonts/fontello/fontello.woff") format("woff"),url("/fonts/fontello/fontello.ttf") format("truetype"),url("/fonts/fontello/fontello.svg?78165468#fontello") format("svg");font-weight:normal;font-style:normal}[class^="icon-"]:before,[class*=" icon-"]:before{font-family:"fontello";font-style:normal;font-weight:normal;speak:none;display:inline-block;text-decoration:inherit;width:1em;margin-right:.2em;text-align:center;font-variant:normal;text-transform:none;line-height:1em;margin-left:.2em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-alert:before{content:'\e810'}.icon-angle-double-right:before{content:'\f101'}.icon-attach:before{content:'\e820'}.icon-attention:before{content:'\e80f'}.icon-bell:before{content:'\e80d'}.icon-cancel:before{content:'\e81e'}.icon-caution:before{content:'\e80f'}.icon-chrome:before{content:'\e841'}.icon-clipboard:before{content:'\e817'}.icon-code:before{content:'\f121'}.icon-cog-alt:before{content:'\e814'}.icon-css3:before{content:'\f13c'}.icon-docs:before{content:'\f15c'}.icon-download:before{content:'\e815'}.icon-facebook-official:before{content:'\f230'}.icon-firefox:before{content:'\e840'}.icon-flag:before{content:'\e813'}.icon-forum:before{content:'\f03d';margin-right:.3em}.icon-github:before{content:'\f09b'}.icon-gitter:before{content:'\e819'}.icon-go:before{content:'\e801'}.icon-golang:before{content:'\e801'}.icon-heart:before{content:'\e81d'}.icon-help:before{content:'\e81b'}.icon-home:before{content:'\e812'}.icon-html.input:before{content:'\e81f'}.icon-html5:before{content:'\e800'}.icon-html:before{content:'\e800'}.icon-hugo:before{content:'\e81f'}.icon-ie:before{content:'\e843'}.icon-info:before{content:'\e811'}.icon-instagram:before{content:'\f32d'}.icon-javascript:before{content:'\e802'}.icon-js:before{content:'\e802'}.icon-json:before{content:'\e81c'}.icon-link:before{content:'\e816'}.icon-linkedin:before{content:'\f30c'}.icon-love:before{content:'\e81d'}.icon-mail:before{content:'\e821'}.icon-markdown:before{content:'\e80e'}.icon-note:before{content:'\e80d'}.icon-opera:before{content:'\e842'}.icon-pdf:before{content:'\f1c1'}.icon-pencil:before{content:'\e80c'}.icon-picture:before{content:'\e808'}.icon-quote-left:before{content:'\e809'}.icon-quote-right:before{content:'\e80a'}.icon-sass:before{content:'\e803'}.icon-search:before{content:'\e80b'}.icon-share:before{content:'\f1e0'}.icon-tag:before{content:'\e806'}.icon-tags:before{content:'\e805'}.icon-sh:before{content:'\e804'}.icon-terminal:before{content:'\e804'}.icon-bash:before{content:'\e804'}.icon-thumbs-up:before{content:'\e81a'}.icon-twitter:before{content:'\e807'}.icon-warning:before{content:'\e810'}.icon-website:before{content:'\e818'}.icon-yaml:before,.icon-yml:before,.icon-toml:before{font-family:"courierprime",courier,monospace;left:-1em;margin-right:1em}.icon-yaml:before,.icon-yml:before{content:'YAML'}.icon-toml:before{content:'TOML'}@font-face{font-family:"muli";src:url("/fonts/muli/muli-100-webfont.woff2") format("woff2"),url("/fonts/muli/muli-100-webfont.woff") format("woff"),url("/fonts/muli/muli-100-webfont.ttf") format("truetype");font-weight:100;font-style:normal}@font-face{font-family:"muli";src:url("/fonts/muli/muli-100-italic-webfont.woff2") format("woff2"),url("/fonts/muli/muli-100-italic-webfont.woff") format("woff"),url("/fonts/muli/muli-100-italic-webfont.ttf") format("truetype");font-weight:100;font-style:italic}@font-face{font-family:"muli";src:url("/fonts/muli/muli-300-webfont.woff2") format("woff2"),url("/fonts/muli/muli-300-webfont.woff") format("woff"),url("/fonts/muli/muli-300-webfont.ttf") format("truetype");font-weight:300;font-style:normal}@font-face{font-family:"muli";src:url("/fonts/muli/muli-300-italic-webfont.woff2") format("woff2"),url("/fonts/muli/muli-300-italic-webfont.woff") format("woff"),url("/fonts/muli/muli-300-italic-webfont.ttf") format("truetype");font-weight:300;font-style:italic}@font-face{font-family:"muli";src:url("/fonts/muli/muli-400-webfont.woff2") format("woff2"),url("/fonts/muli/muli-400-webfont.woff") format("woff"),url("/fonts/muli/muli-400-webfont.ttf") format("truetype");font-weight:400;font-style:normal}@font-face{font-family:"muli";src:url("/fonts/muli/muli-400-italic-webfont.woff2") format("woff2"),url("/fonts/muli/muli-400-italic-webfont.woff") format("woff"),url("/fonts/muli/muli-400-italic-webfont.ttf") format("truetype");font-weight:400;font-style:italic}@font-face{font-family:"muli";src:url("/fonts/muli/muli-600-webfont.woff2") format("woff2"),url("/fonts/muli/muli-600-webfont.woff") format("woff"),url("/fonts/muli/muli-600-webfont.ttf") format("truetype");font-weight:600;font-style:normal}@font-face{font-family:"muli";src:url("/fonts/muli/muli-600-italic-webfont.woff2") format("woff2"),url("/fonts/muli/muli-600-italic-webfont.woff") format("woff"),url("/fonts/muli/muli-600-italic-webfont.ttf") format("truetype");font-weight:600;font-style:italic}@font-face{font-family:"muli";src:url("/fonts/muli/muli-700-webfont.woff2") format("woff2"),url("/fonts/muli/muli-700-webfont.woff") format("woff"),url("/fonts/muli/muli-700-webfont.ttf") format("truetype");font-weight:700;font-style:normal}@font-face{font-family:"muli";src:url("/fonts/muli/muli-700-italic-webfont.woff2") format("woff2"),url("/fonts/muli/muli-700-italic-webfont.woff") format("woff"),url("/fonts/muli/muli-700-italic-webfont.ttf") format("truetype");font-weight:700;font-style:italic}@font-face{font-family:"courierprime";src:url("/fonts/courierprime/courierprime-400-webfont.woff2") format("woff2"),url("/fonts/courierprime/courierprime-400-webfont.woff") format("woff"),url("/fonts/courierprime/courierprime-400-webfont.ttf") format("truetype");font-weight:400;font-style:normal}@font-face{font-family:"courierprime";src:url("/fonts/courierprime/courierprime-400-italic-webfont.woff2") format("woff2"),url("/fonts/courierprime/courierprime-400-italic-webfont.woff") format("woff"),url("/fonts/courierprime/courierprime-400-italic-webfont.ttf") format("truetype");font-weight:400;font-style:italic}@font-face{font-family:"courierprime";src:url("/fonts/courierprime/courierprime-700-webfont.woff2") format("woff2"),url("/fonts/courierprime/courierprime-700-webfont.woff") format("woff"),url("/fonts/courierprime/courierprime-700-webfont.ttf") format("truetype");font-weight:700;font-style:normal}@font-face{font-family:"courierprime";src:url("/fonts/courierprime/courierprime-700-italic-webfont.woff2") format("woff2"),url("/fonts/courierprime/courierprime-700-italic-webfont.woff") format("woff"),url("/fonts/courierprime/courierprime-700-italic-webfont.ttf") format("truetype");font-weight:700;font-style:italic}h1,h2,h3,h4{font-weight:700;margin:0px;padding-bottom:20px;line-height:1.4}h1{font-size:2em;letter-spacing:-.021em}@media only screen and (min-width: 760px){h1{font-size:2.25em}}h2{font-size:1.5em}h3{font-size:1.2em}h4{font-size:1em;color:#737373;text-transform:uppercase}.functions{font-family:"courierprime",courier,monospace;font-weight:300}.submenu-item:first-child a.submenu-item-link.functions{font-family:"muli","Helvetica Neue","Helvetica","Roboto","Arial",sans-serif}button,a[role="button"]{background-color:#0594CB;color:#fff;border:none;outline:none;border-radius:.25em;padding:.25em .5em;box-shadow:none;text-align:center;transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 1px 3px rgba(0,0,0,0.12),0 1px 2px rgba(0,0,0,0.24)}button:hover,a[role="button"]:hover{transition:box-shadow 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 10px 20px rgba(0,0,0,0.19),0 6px 6px rgba(0,0,0,0.23)}button[class^="icon-"]:before,a[role="button"][class^="icon-"]:before{display:inline-block;font-family:'FontAwesome';margin-right:.3em}button.icon-forum:before,a[role="button"].icon-forum:before{content:'\f086'}button.icon-mailing-list:before,a[role="button"].icon-mailing-list:before{content:'\f0e0'}nav ul,nav ol,aside ul,aside ol{margin-left:0px;padding-left:0px;list-style:none;text-indent:0px}nav ul li,nav ol li,aside ul li,aside ol li{margin-left:0px;padding-left:0px;list-style:none}.body-copy ul,.body-copy ol{padding-left:.75em;margin-left:.25em;margin-top:0px;padding-top:0px;margin-bottom:1.5em}.body-copy ul li ul,.body-copy ul li ol,.body-copy ol li ul,.body-copy ol li ol{margin-bottom:0px}.body-copy ul{list-style:disc outside none}.body-copy ul li ul{list-style-type:circle}.body-copy ul li ul li ul{list-style-type:square}.body-copy ol li ol{list-style-type:lower-roman}.body-copy ol li ol li ol{list-style-type:lower-alpha}a{color:#ff4088;font-weight:500}a,a:hover,a:active,a:focus{text-decoration:none;cursor:pointer}.body-copy a{text-decoration:none;color:#ff4088;display:inline-block;outline:none;position:relative;transition:color 0.3s ease;-webkit-perspective:1800px;perspective:1800px}.body-copy a:hover{color:#fff}.body-copy a::before,.body-copy a::after{position:absolute;top:0;left:-4px;padding:0 4px;z-index:-1;box-sizing:content-box;width:100%;height:100%;content:''}.body-copy a::before{background-color:#ff4088;transition:-webkit-transform 0.2s;transition:transform 0.2s;transition-timing-function:cubic-bezier(0.7, 0, 0.3, 1);-webkit-transform:rotateX(90deg);transform:rotateX(90deg);-webkit-transform-origin:50% 100%;transform-origin:50% 100%}.body-copy a:hover::before,.body-copy a:focus::before{-webkit-transform:rotateX(0);transform:rotateX(0)}.body-copy a::after{border-bottom:1px solid #ff4088}.note,.caution,.warning{display:block;margin-bottom:1em;width:100%}.note h2,.caution h2,.warning h2{font-size:1.1em;color:#fff;width:100%;display:block;margin:0px;padding:.25em 12px;border:none;outline:none}.note .shortcode-content,.caution .shortcode-content,.warning .shortcode-content{display:block;margin:0px;padding:12px;font-size:.9em}.note>h2{background-color:#0594CB}.note .shortcode-content{background-color:#eaf9fe}@media only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi){.note .shortcode-content{background-color:#effaff}}.caution>h2{background-color:#EBB951}.caution .shortcode-content{background-color:#fbf0da}@media only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi){.caution .shortcode-content{background-color:#fdf9f1}}.warning>h2{background-color:#C9177E}.warning .shortcode-content{background-color:#fce3f1}@media only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi){.warning .shortcode-content{background-color:#fef5fa}}code[class*="language-"],pre[class*="language-"]{color:black;background:none;text-shadow:0 1px white;font-family:Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*="language-"]::-moz-selection,pre[class*="language-"]::-moz-selection,code[class*="language-"]::-moz-selection,code[class*="language-"]::-moz-selection{text-shadow:none;background:#b3d4fc}pre[class*="language-"]::selection,pre[class*="language-"]::selection,code[class*="language-"]::selection,code[class*="language-"]::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*="language-"],pre[class*="language-"]{text-shadow:none}}pre[class*="language-"]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*="language-"],pre[class*="language-"]{background:#f5f2f0}:not(pre)>code[class*="language-"]{padding:.1em;border-radius:.3em;white-space:normal}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:slategray}.token.punctuation{color:#999}.namespace{opacity:.7}.token.property,.token.tag,.token.boolean,.token.number,.token.constant,.token.symbol,.token.deleted{color:#905}.token.selector,.token.attr-name,.token.string,.token.char,.token.builtin,.token.inserted{color:#690}.token.operator,.token.entity,.token.url,.language-css .token.string,.style .token.string{color:#a67f59;background:rgba(255,255,255,0.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.function{color:#DD4A68}.token.regex,.token.important,.token.variable{color:#e90}.token.important,.token.bold{font-weight:bold}.token.italic{font-style:italic}.token.entity{cursor:help}code,pre{font-family:"courierprime",courier,monospace}pre>code{font-size:.8em}.body-copy>pre[class*="language-"],.body-copy>code[class*="language-"]{transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 10px 20px rgba(0,0,0,0.19),0 6px 6px rgba(0,0,0,0.23);text-shadow:0 0px transparent;text-shadow:none;padding:1em;margin:.5em 0;overflow:auto}.body-copy>pre[class*="language-"]{margin-bottom:1.5em}p code,li>code{font-size:.9em;color:#333;font-family:"courierprime",courier,monospace;border:1px solid #949494;padding-left:.25em;padding-right:.25em}div.code-copy{position:relative;margin-top:1em;margin-bottom:1.5em}div.code-copy:hover button.copy-button{transition:all .2s ease-in-out;opacity:1}p+.code-copy{margin-top:0em}button.copy-button{display:none}@media only screen and (min-width: 760px){button.copy-button{display:block;padding:0px;transition:all .2s ease-in-out;opacity:1;background-color:#5a5a5a;box-sizing:border-box;position:absolute;bottom:0px;right:0px;z-index:4;width:80px;height:1.5em;border-width:0px;border-radius:0px;color:#fff}button.copy-button:hover{background-color:#0594CB}button.copy-button:active,button.copy-button:focus{outline:none;position:absolute}}.copy-text{color:#fff;font-size:12px;display:block;width:80px;line-height:1.5em;height:1.5em;vertical-align:middle;text-align:center}.copy-text i.icon-clipboard{display:inline}@media only screen and (min-device-width: 375px) and (max-device-width: 1024px) and (orientation: portrait) and (-webkit-min-device-pixel-ratio: 2){button.copy-button{display:none}}@media only screen and (min-device-width: 375px) and (max-device-width: 1024px) and (orientation: landscape) and (-webkit-min-device-pixel-ratio: 2){button.copy-button{display:none}}div.code-copy{position:relative;transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 10px 20px rgba(0,0,0,0.19),0 6px 6px rgba(0,0,0,0.23);transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);border-radius:0px}div.code-copy-header{position:relative;height:1.5em;line-height:1.5em;background-color:#5a5a5a;border-radius:0px;position:relative}div.code-copy-header.output{background-color:#0594CB}div.code-copy-header span.filename{display:block;margin-right:auto;margin-left:auto;text-align:center;max-width:50%;color:#fff;font-weight:100;font-size:.8em;background-color:transparent;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbols"}div.code-copy-header [class^="icon-"]{float:right;position:relative;top:-1.45em;right:.5em;color:#fff}.action-buttons{position:absolute;left:10px;margin-top:.35em;width:12px;height:12px;background:Crimson;border-radius:50%;box-shadow:18px 0 0 Orange, 36px 0 0 LimeGreen}.tooltipped{position:relative;background-color:#0594CB;padding-right:2em}.tooltipped:after{position:absolute;z-index:1000000;display:none;padding:2px 4px;font-size:.8em;font-weight:700;font-family:"muli","Helvetica Neue","Helvetica","Roboto","Arial",sans-serif;color:#fff;text-align:center;text-transform:uppercase;text-decoration:none;text-shadow:none;letter-spacing:normal;word-wrap:break-word;white-space:pre;pointer-events:none;content:attr(aria-label);background-color:#0594CB;border-color:#0594CB;border-radius:0px;-webkit-font-smoothing:subpixel-antialiased}.tooltipped:before{position:absolute;z-index:1000001;display:none;width:0;height:0;color:#0594CB;pointer-events:none;content:"";border:5px solid transparent}.tooltipped:hover:before,.tooltipped:hover:after,.tooltipped:active:before,.tooltipped:active:after,.tooltipped:focus:before,.tooltipped:focus:after{display:inline-block;text-decoration:none}.tooltipped-multiline:hover:after,.tooltipped-multiline:active:after,.tooltipped-multiline:focus:after{display:table-cell}.tooltipped-s:after,.tooltipped-se:after,.tooltipped-sw:after{top:100%;right:50%;margin-top:5px;text-align:center}.tooltipped-s:before,.tooltipped-se:before,.tooltipped-sw:before{top:auto;right:50%;bottom:-5px;margin-right:-5px;border-bottom-color:#0594CB;text-align:center}.tooltipped-se:after{right:auto;left:50%;margin-left:-15px;text-align:center}.tooltipped-sw:after{margin-right:-15px}.tooltipped-n:after,.tooltipped-ne:after,.tooltipped-nw:after{right:50%;bottom:100%;margin-bottom:5px}.tooltipped-n:before,.tooltipped-ne:before,.tooltipped-nw:before{top:-5px;right:50%;bottom:auto;margin-right:-5px;border-top-color:#0594CB}.tooltipped-ne:after{right:auto;left:50%;margin-left:-15px}.tooltipped-nw:after{margin-right:-15px}.tooltipped-s:after,.tooltipped-n:after{-webkit-transform:translateX(50%);transform:translateX(50%)}.tooltipped-w:after{right:100%;bottom:50%;margin-right:5px;-webkit-transform:translateY(50%);transform:translateY(50%)}.tooltipped-w:before{top:50%;bottom:50%;left:-5px;margin-top:-5px;border-left-color:#0594CB}.tooltipped-e:after{bottom:50%;left:100%;margin-left:5px;-webkit-transform:translateY(50%);transform:translateY(50%)}.tooltipped-e:before{top:50%;right:-5px;bottom:50%;margin-top:-5px;border-right-color:#0594CB}.tooltipped-multiline:after{width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:250px;word-break:break-word;word-wrap:normal;white-space:pre-line;border-collapse:separate}.tooltipped-multiline.tooltipped-s:after,.tooltipped-multiline.tooltipped-n:after{right:auto;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.tooltipped-multiline.tooltipped-w:after,.tooltipped-multiline.tooltipped-e:after{right:100%}code[class*="language-"],pre[class*="language-"]{color:black;background:none;text-shadow:0 1px white;font-family:"courierprime",courier,monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:2;-o-tab-size:2;tab-size:2;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*="language-"]::-moz-selection,pre[class*="language-"]::-moz-selection,code[class*="language-"]::-moz-selection,code[class*="language-"]::-moz-selection{text-shadow:none;background:#b3d4fc}pre[class*="language-"]::selection,pre[class*="language-"]::selection,code[class*="language-"]::selection,code[class*="language-"]::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*="language-"],pre[class*="language-"]{text-shadow:none}}pre[class*="language-"]{padding:1em 1em 2em 1em;margin:.5em 0;overflow:auto;background-color:#333}:not(pre)>code[class*="language-"],pre[class*="language-"]{background:#fff}:not(pre)>code[class*="language-"]{padding:.1em;border-radius:.3em;white-space:normal}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:#5a5a5a}.token.punctuation{color:#999}.namespace{opacity:.7}.token.property,.token.tag,.token.boolean,.token.number,.token.constant,.token.symbol,.token.deleted{color:#C9177E}.token.selector,.token.attr-name,.token.string,.token.char,.token.builtin,.token.inserted{color:#33BA91}.token.operator,.token.entity,.token.url,.language-css .token.string,.style .token.string{color:#C9177E;background:rgba(255,255,255,0.5)}.token.atrule,.token.attr-value,.token.keyword{color:#0594CB}.token.function{color:#EBB951}.token.regex,.token.important,.token.variable{color:#EBB951}.token.important,.token.bold{font-weight:bold}.token.italic{font-style:italic}.token.entity{cursor:help}pre.line-numbers{position:relative;padding-left:3.8em;counter-reset:linenumber}pre.line-numbers>code{position:relative}.line-numbers .line-numbers-rows{position:absolute;pointer-events:none;top:0;font-size:100%;left:-3.8em;width:3em;letter-spacing:-1px;border-right:1px solid #737373;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.line-numbers-rows>span{pointer-events:none;display:block;counter-increment:linenumber}.line-numbers-rows>span:before{content:counter(linenumber);color:#737373;display:block;padding-right:0.8em;text-align:right}code.language-markdown span.token.italic{color:#ff4088}code.language-markdown span.token.url{color:#0594CB}code.language-markdown .token.list.punctuation{color:#0594CB}svg.svg-icon{max-width:60px}ul.tags{list-style:none;margin:0;overflow:hidden;padding:0;margin-top:-1em;margin-bottom:.5em}.tags li{float:left}.tags li:first-child{margin-right:.5em}.tag{background:#eee;border-radius:3px 0 0 3px;color:#999;display:inline-block;height:26px;line-height:26px;padding:0 20px 0 23px;position:relative;margin:0 10px 10px 0;text-decoration:none;font-size:.7em;-webkit-transition:color 0.2s}.tag::before{background:#fff;border-radius:10px;box-shadow:inset 0 1px rgba(0,0,0,0.25);content:'';height:6px;left:10px;position:absolute;width:6px;top:10px}.tag::after{background:#fff;border-bottom:13px solid transparent;border-left:10px solid #eee;border-top:13px solid transparent;content:'';position:absolute;right:0;top:0}.tag:hover{background-color:#C9177E;color:white}.tag:hover::after{border-left-color:#C9177E}.site-header{width:100%;height:50px;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin:0px;background-color:#fff;color:#000;position:fixed;top:0px;left:0px;z-index:10;transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 1px 3px rgba(0,0,0,0.12),0 1px 2px rgba(0,0,0,0.24)}@media only screen and (min-width: 760px){.site-header{-ms-flex-pack:justify;justify-content:space-between}}.site-header .hugo-meta{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.site-header #home-link{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;font-size:.8em;margin-left:1.5em}.site-header #home-link img{height:35px;margin-right:.25em}.site-header #home-link .hugo-v{-ms-flex-item-align:end;align-self:flex-end;font-size:.9em}.site-header a.github-button{display:none}@media only screen and (min-width: 760px){.site-header a.github-button{display:inline}}.site-header iframe[src^="https://buttons.github.io"]{display:none;margin-left:1em}@media only screen and (min-width: 760px){.site-header iframe[src^="https://buttons.github.io"]{display:inline}}.site-navigation{transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;position:fixed;left:0px;top:0px;width:280px;bottom:0px;overflow-y:scroll;background-color:#fcfcfc;-webkit-transform:translateX(-280px);transform:translateX(-280px);padding:1em;z-index:9}.site-navigation.navigation-open{transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;-webkit-transform:translateX(0px);transform:translateX(0px)}@media only screen and (min-width: 960px){.site-navigation{-webkit-transform:translateX(0px);transform:translateX(0px)}}.site-navigation ul.top-menu{margin-top:80px;display:inline-block;margin-left:auto;margin-right:auto}@media only screen and (min-width: 960px){.site-navigation ul.top-menu{margin-top:60px}}.site-navigation ul.top-menu a{color:#333;font-weight:300}.site-navigation ul.top-menu li{padding-left:1em;line-height:1;margin-top:.66em;margin-bottom:.66em}.site-navigation ul.top-menu li ul li{padding-left:.5em}.site-navigation ul.top-menu a.top-menu-item-link{font-size:16px}.site-navigation ul.top-menu a.top-menu-item-link.active-section{color:#ff4088;font-weight:600}.site-navigation ul.top-menu a.top-menu-item-link.active-section+ul.submenu{display:block;border-left:1px solid #ff4088}.site-navigation ul.top-menu ul.submenu{display:none}.site-navigation ul.top-menu ul.submenu a.submenu-item-link{font-size:14px}.site-navigation ul.top-menu ul.submenu a.submenu-item-link:hover{color:#737373}.site-navigation ul.top-menu ul.submenu a.submenu-item-link.active-page{font-weight:600;color:#0594CB}.nav-buttons a{margin-left:1em;margin-bottom:.5em;display:inline-block;width:200px;font-size:.9em}.navigation-toggle-wrapper{width:60px;height:60px;position:fixed;top:50px;left:0px;z-index:20}.navigation-toggle-wrapper h4.menu{display:inline-block;position:absolute;bottom:-1em;left:.8em;color:#0594CB;display:none}@media only screen and (min-width: 960px){.navigation-toggle-wrapper{display:none}}.navigation-toggle-wrapper.navigation-open .middle{width:40px;height:40px;top:10%;border-radius:50%;background-color:#ff4088;border-color:#ff4088;opacity:0.3}.navigation-toggle-wrapper.navigation-open .top{-webkit-transform:rotate(45deg);top:40%;border-radius:5px;background-color:#ff4088;border-color:#ff4088}.navigation-toggle-wrapper.navigation-open .bottom{-webkit-transform:rotate(-45deg);top:40%;border-radius:5px;background-color:#ff4088;border-color:#ff4088}.bar{width:40px;height:2px;border:2px solid #0594CB;background-color:#0594CB;position:absolute;border-radius:10px}.bar.navigation-open{background-color:#ff4088;border:2px solid #ff4088}.top{left:15%;top:20%;-webkit-transition:all 0.5s}.middle{left:15%;top:40%;-webkit-transition:all 0.5s}.bottom{left:15%;top:60%;-webkit-transition:all 0.5s}#all-content-wrapper{margin-top:50px;z-index:5;transition:all .3s ease-in-out;opacity:1}@media only screen and (min-width: 960px){#all-content-wrapper{margin-left:280px}}#all-content-wrapper.navigation-open{transition:all .3s ease-in-out;-webkit-transform:translateX(280px);transform:translateX(280px);opacity:.4}@media only screen and (min-width: 960px){#all-content-wrapper.navigation-open{opacity:1;-webkit-transform:translateX(0px);transform:translateX(0px)}}main.main{width:90%;display:block;margin-left:auto;margin-right:auto;max-width:35em;position:relative;min-height:calc(100vh - 100px)}header.content-header{display:block;clear:both;width:100%;position:relative;margin-top:3em}@media only screen and (min-width: 760px){header.content-header{margin-top:2em}}header.content-header .last-modified{color:#949494;display:block;margin-top:-10px;width:100%;font-size:.8em;margin-bottom:20px}a.godoc-link{display:inline-block;width:auto;position:relative;margin-bottom:0px;vertical-align:bottom}a.godoc-link svg{height:1em;width:.7em}a.edit-link{font-size:1.2em;position:absolute;top:-40px;right:0px}@media only screen and (min-width: 960px){a.edit-link{font-size:.7em;position:fixed;top:90px;right:2em}}a.edit-link .edit-text{display:none}@media only screen and (min-width: 960px){a.edit-link .edit-text{display:inline;margin-right:.15em;text-transform:uppercase}}.body-copy{margin-bottom:2.5em;display:block}.body-copy div+h2{margin-top:1em}#site-footer{position:relative;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:distribute;justify-content:space-around;background-color:#000;min-height:100px;width:100%;color:#fff}#site-footer div{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}#site-footer div img{max-width:200px}#site-footer i.icon-heart:before{color:#ff4088}@media only screen and (min-width: 960px){#site-footer{width:calc(100% - 280px);margin-left:280px}}ul.footer-list{color:#fff;list-style:none;margin-left:0px;padding-left:0px}ul.footer-list li a{color:#fff;font-size:.9em}ul.footer-list li a:not(i){font-size:14px}ul.footer-list li a i{font-size:16px}.all-content-wrapper.home{background-color:#eaf9fe}main#homepage{width:90%;margin-bottom:2.5em}@media only screen and (min-width: 760px){main#homepage{max-width:684px}}@media only screen and (min-width: 960px){main#homepage{max-width:774px}}.homepage-image{display:block;margin:1em auto;max-width:200px}.homepage-image img{max-width:200px;margin-left:auto;margin-right:auto}.homepage-cards{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:distribute;justify-content:space-around}.homepage-cards .homepage-card{transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 1px 3px rgba(0,0,0,0.12),0 1px 2px rgba(0,0,0,0.24);color:inherit;width:100%;background-color:#fff;margin-bottom:.5em;padding:16px 8px}.homepage-cards .homepage-card:hover{transition:box-shadow 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 10px 20px rgba(0,0,0,0.19),0 6px 6px rgba(0,0,0,0.23)}@media only screen and (min-width: 760px){.homepage-cards .homepage-card{max-width:328.32px;margin-bottom:1em}}@media only screen and (min-width: 960px){.homepage-cards .homepage-card{max-width:239.94px;margin-left:.2em}}.homepage-cards .homepage-card h2{font-size:1em;margin:0px;line-height:1.1;margin-bottom:.5em;padding-bottom:0px}.homepage-cards .homepage-card p{font-size:.8em;line-height:1.3;margin-bottom:0px;color:#595959} diff --git a/themes/hugodocs/static/design-resources/godoc-icon.afdesign b/themes/hugodocs/static/design-resources/godoc-icon.afdesign new file mode 100644 index 000000000..793d9218e Binary files /dev/null and b/themes/hugodocs/static/design-resources/godoc-icon.afdesign differ diff --git a/themes/hugodocs/static/design-resources/hugo-h.afdesign b/themes/hugodocs/static/design-resources/hugo-h.afdesign new file mode 100644 index 000000000..8f027454a Binary files /dev/null and b/themes/hugodocs/static/design-resources/hugo-h.afdesign differ diff --git a/themes/hugodocs/static/fonts/fontello/fontello.eot b/themes/hugodocs/static/fonts/fontello/fontello.eot index 481146e76..f57898c84 100755 Binary files a/themes/hugodocs/static/fonts/fontello/fontello.eot and b/themes/hugodocs/static/fonts/fontello/fontello.eot differ diff --git a/themes/hugodocs/static/fonts/fontello/fontello.svg b/themes/hugodocs/static/fonts/fontello/fontello.svg index 1422dccbe..43cf02a6c 100755 --- a/themes/hugodocs/static/fonts/fontello/fontello.svg +++ b/themes/hugodocs/static/fonts/fontello/fontello.svg @@ -8,7 +8,7 @@ - + @@ -20,7 +20,7 @@ - + @@ -64,6 +64,16 @@ + + + + + + + + + + @@ -72,7 +82,9 @@ - + + + @@ -80,12 +92,16 @@ - + + + + + diff --git a/themes/hugodocs/static/fonts/fontello/fontello.ttf b/themes/hugodocs/static/fonts/fontello/fontello.ttf index 885c83aeb..17f58d96e 100755 Binary files a/themes/hugodocs/static/fonts/fontello/fontello.ttf and b/themes/hugodocs/static/fonts/fontello/fontello.ttf differ diff --git a/themes/hugodocs/static/fonts/fontello/fontello.woff b/themes/hugodocs/static/fonts/fontello/fontello.woff index a842ba97d..b9ef41c4a 100755 Binary files a/themes/hugodocs/static/fonts/fontello/fontello.woff and b/themes/hugodocs/static/fonts/fontello/fontello.woff differ diff --git a/themes/hugodocs/static/fonts/fontello/fontello.woff2 b/themes/hugodocs/static/fonts/fontello/fontello.woff2 index 75feb98a2..ee7c932eb 100755 Binary files a/themes/hugodocs/static/fonts/fontello/fontello.woff2 and b/themes/hugodocs/static/fonts/fontello/fontello.woff2 differ diff --git a/themes/hugodocs/static/images/hugo-tall.png b/themes/hugodocs/static/images/hugo-tall.png new file mode 100755 index 000000000..001ce5eb3 Binary files /dev/null and b/themes/hugodocs/static/images/hugo-tall.png differ diff --git a/themes/hugodocs/static/images/made-with-hugo-dark.png b/themes/hugodocs/static/images/made-with-hugo-dark.png new file mode 100755 index 000000000..c6cadf283 Binary files /dev/null and b/themes/hugodocs/static/images/made-with-hugo-dark.png differ diff --git a/themes/hugodocs/static/images/made-with-hugo-long-dark.png b/themes/hugodocs/static/images/made-with-hugo-long-dark.png new file mode 100755 index 000000000..1e49995fb Binary files /dev/null and b/themes/hugodocs/static/images/made-with-hugo-long-dark.png differ diff --git a/themes/hugodocs/static/images/made-with-hugo-long.png b/themes/hugodocs/static/images/made-with-hugo-long.png new file mode 100755 index 000000000..c5df534cf Binary files /dev/null and b/themes/hugodocs/static/images/made-with-hugo-long.png differ diff --git a/themes/hugodocs/static/images/made-with-hugo.png b/themes/hugodocs/static/images/made-with-hugo.png new file mode 100755 index 000000000..52dfd19e5 Binary files /dev/null and b/themes/hugodocs/static/images/made-with-hugo.png differ diff --git a/themes/hugodocs/static/images/powered-by-hugo-dark.png b/themes/hugodocs/static/images/powered-by-hugo-dark.png new file mode 100755 index 000000000..a8e2ebc80 Binary files /dev/null and b/themes/hugodocs/static/images/powered-by-hugo-dark.png differ diff --git a/themes/hugodocs/static/images/powered-by-hugo-long-dark.png b/themes/hugodocs/static/images/powered-by-hugo-long-dark.png new file mode 100755 index 000000000..1b760b1bf Binary files /dev/null and b/themes/hugodocs/static/images/powered-by-hugo-long-dark.png differ diff --git a/themes/hugodocs/static/images/powered-by-hugo-long.png b/themes/hugodocs/static/images/powered-by-hugo-long.png new file mode 100755 index 000000000..37131359d Binary files /dev/null and b/themes/hugodocs/static/images/powered-by-hugo-long.png differ diff --git a/themes/hugodocs/static/images/powered-by-hugo.png b/themes/hugodocs/static/images/powered-by-hugo.png new file mode 100755 index 000000000..27ff099d5 Binary files /dev/null and b/themes/hugodocs/static/images/powered-by-hugo.png differ