Migrate netlify-cms-www site into this repo (#860)
* Add frontmatter to docs files (prep to move) * Move docs into position for website migration * Migrate website from netlify-cms-www Some modifications, including most of the changes in https://github.com/netlify/netlify-cms-www/pull/58 (previously reverted). Also updated the readme and added hugo-bin for quicker onboarding of new docs contributors. * Remove netlify.toml This allows separate build commands for cms-demo and netlifycms.org. * Remove website/netlify.toml May re-add later, but it's not doing anything for now. * Remove unused content file
@ -1,3 +0,0 @@
|
|||||||
[build]
|
|
||||||
Command = "npm run build && cp example/* dist/"
|
|
||||||
Publish = "dist"
|
|
7
website/.babelrc
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"presets": ["es2015"],
|
||||||
|
"plugins": [
|
||||||
|
"syntax-object-rest-spread",
|
||||||
|
"transform-object-rest-spread"
|
||||||
|
]
|
||||||
|
}
|
1
website/.nvmrc
Normal file
@ -0,0 +1 @@
|
|||||||
|
node
|
19
website/README.md
Executable file
@ -0,0 +1,19 @@
|
|||||||
|
# Netlify CMS Website & Docs
|
||||||
|
|
||||||
|
This directory builds netlifycms.org. If you'd like to propose changes to the site or docs, you'll find the source files in here.
|
||||||
|
|
||||||
|
## Local development
|
||||||
|
|
||||||
|
The site is built with [Hugo](https://gohugo.io/), managed as an npm dependency via [hugo-bin](https://www.npmjs.com/package/hugo-bin).
|
||||||
|
|
||||||
|
To run the site locally, you'll need to have [Node](https://nodejs.org) and [Yarn](https://yarnpkg.com/en/) installed on your computer.
|
||||||
|
|
||||||
|
From your terminal window, `cd` into the `website` directory of the repo, and run
|
||||||
|
|
||||||
|
```bash
|
||||||
|
yarn
|
||||||
|
yarn start
|
||||||
|
```
|
||||||
|
|
||||||
|
Then visit http://localhost:3000/ - BrowserSync will automatically reload CSS or
|
||||||
|
refresh the page when stylesheets or content changes.
|
45
website/config/variables.js
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
// if you change these you must restart the server
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
|
||||||
|
// colors
|
||||||
|
lightestGrey: '#E6E6E6',
|
||||||
|
lighterGrey: '#F7F8F8',
|
||||||
|
lightGrey: '#F6F6F6',
|
||||||
|
grey: '#313D3E',
|
||||||
|
darkGrey: '#2F3132',
|
||||||
|
darkerGrey: '#1C1E1E',
|
||||||
|
lightGreen: '#97bf2f',
|
||||||
|
green: '#C9FA4B',
|
||||||
|
darkGreen: '#7CA511',
|
||||||
|
|
||||||
|
// typography
|
||||||
|
thin: 100,
|
||||||
|
light: 300,
|
||||||
|
regular: 400,
|
||||||
|
semibold: 500,
|
||||||
|
bold: 700,
|
||||||
|
black: 900,
|
||||||
|
|
||||||
|
// fonts
|
||||||
|
roboto: "'Roboto', -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif",
|
||||||
|
|
||||||
|
// padding
|
||||||
|
micro: '8px',
|
||||||
|
tiny: '16px',
|
||||||
|
small: '24px',
|
||||||
|
medium: '40px',
|
||||||
|
large: '64px',
|
||||||
|
xl: '104px',
|
||||||
|
xxl: '168px',
|
||||||
|
|
||||||
|
// border radius
|
||||||
|
borderRadius: '4px',
|
||||||
|
largeBorderRadius: '10px',
|
||||||
|
|
||||||
|
// responsive breakpoints
|
||||||
|
mobile: '480px',
|
||||||
|
tablet: '768px',
|
||||||
|
desktop: '960px',
|
||||||
|
display: '1200px'
|
||||||
|
}
|
94
website/gulpfile.babel.js
Executable file
@ -0,0 +1,94 @@
|
|||||||
|
import gulp from "gulp";
|
||||||
|
import cp from "child_process";
|
||||||
|
import hugoBin from "hugo-bin"
|
||||||
|
import gutil from "gulp-util";
|
||||||
|
import postcss from "gulp-postcss";
|
||||||
|
import cssImport from "postcss-import";
|
||||||
|
import neatgrid from "postcss-neat";
|
||||||
|
import nestedcss from "postcss-nested";
|
||||||
|
import colorfunctions from "postcss-colour-functions";
|
||||||
|
import hdBackgrounds from "postcss-at2x";
|
||||||
|
import cssvars from "postcss-simple-vars-async";
|
||||||
|
import cssextend from "postcss-simple-extend";
|
||||||
|
import styleVariables from "./config/variables";
|
||||||
|
import BrowserSync from "browser-sync";
|
||||||
|
import webpack from "webpack";
|
||||||
|
import webpackConfig from "./webpack.conf";
|
||||||
|
|
||||||
|
const browserSync = BrowserSync.create();
|
||||||
|
const defaultArgs = ["-d", "../dist", "-s", "site", "-v"];
|
||||||
|
|
||||||
|
gulp.task("hugo", (cb) => buildSite(cb));
|
||||||
|
gulp.task("hugo-preview", (cb) => buildSite(cb, ["--buildDrafts", "--buildFuture"]));
|
||||||
|
|
||||||
|
gulp.task("build", ["css", "js", "fonts", "images", "hugo"]);
|
||||||
|
gulp.task("build-preview", ["css", "js", "fonts", "images", "hugo-preview"]);
|
||||||
|
|
||||||
|
gulp.task("css", () => (
|
||||||
|
gulp.src("./src/css/**/*.css")
|
||||||
|
.pipe(postcss([
|
||||||
|
cssImport({from: "./src/css/main.css"}),
|
||||||
|
neatgrid(),
|
||||||
|
nestedcss(),
|
||||||
|
colorfunctions(),
|
||||||
|
hdBackgrounds(),
|
||||||
|
cssextend(),
|
||||||
|
cssvars({variables: styleVariables})]))
|
||||||
|
.pipe(gulp.dest("./dist/css"))
|
||||||
|
.pipe(browserSync.stream())
|
||||||
|
));
|
||||||
|
|
||||||
|
gulp.task("js", (cb) => {
|
||||||
|
const myConfig = Object.assign({}, webpackConfig);
|
||||||
|
|
||||||
|
webpack(myConfig, (err, stats) => {
|
||||||
|
if (err) throw new gutil.PluginError("webpack", err);
|
||||||
|
gutil.log("[webpack]", stats.toString({
|
||||||
|
colors: true,
|
||||||
|
progress: true
|
||||||
|
}));
|
||||||
|
browserSync.reload();
|
||||||
|
cb();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
gulp.task("fonts", () => (
|
||||||
|
gulp.src("./src/fonts/**/*")
|
||||||
|
.pipe(gulp.dest("./dist/fonts"))
|
||||||
|
.pipe(browserSync.stream())
|
||||||
|
));
|
||||||
|
|
||||||
|
gulp.task("images", () => (
|
||||||
|
gulp.src("./src/img/**/*")
|
||||||
|
.pipe(gulp.dest("./dist/img"))
|
||||||
|
.pipe(browserSync.stream())
|
||||||
|
));
|
||||||
|
|
||||||
|
gulp.task("server", ["hugo", "css", "js", "fonts", "images"], () => {
|
||||||
|
browserSync.init({
|
||||||
|
server: {
|
||||||
|
baseDir: "./dist"
|
||||||
|
},
|
||||||
|
notify: false
|
||||||
|
});
|
||||||
|
gulp.watch("./src/js/**/*.js", ["js"]);
|
||||||
|
gulp.watch("./src/css/**/*.css", ["css"]);
|
||||||
|
gulp.watch("./src/img/**/*", ["images"]);
|
||||||
|
gulp.watch("./src/fonts/**/*", ["fonts"]);
|
||||||
|
gulp.watch("./site/**/*", ["hugo"]);
|
||||||
|
});
|
||||||
|
|
||||||
|
function buildSite(cb, options) {
|
||||||
|
const args = options ? defaultArgs.concat(options) : defaultArgs;
|
||||||
|
|
||||||
|
return cp.spawn(hugoBin, args, {stdio: "inherit"}).on("close", (code) => {
|
||||||
|
if (code === 0) {
|
||||||
|
browserSync.reload();
|
||||||
|
cb();
|
||||||
|
} else {
|
||||||
|
browserSync.notify("Hugo build failed :(");
|
||||||
|
cb("Hugo build failed");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
53
website/package.json
Executable file
@ -0,0 +1,53 @@
|
|||||||
|
{
|
||||||
|
"name": "victor-hugo",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "Victor Hugo is a Hugo boilerplate for creating truly epic websites!",
|
||||||
|
"main": "index.js",
|
||||||
|
"scripts": {
|
||||||
|
"hugo": "gulp hugo",
|
||||||
|
"webpack": "gulp webpack",
|
||||||
|
"build": "gulp build",
|
||||||
|
"build-preview": "gulp build-preview",
|
||||||
|
"start": "gulp server",
|
||||||
|
"lint": "eslint src"
|
||||||
|
},
|
||||||
|
"author": "",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"autoprefixer": "^6.3.7",
|
||||||
|
"babel-eslint": "^6.1.2",
|
||||||
|
"babel-loader": "^6.2.4",
|
||||||
|
"babel-plugin-syntax-object-rest-spread": "^6.13.0",
|
||||||
|
"babel-plugin-transform-class-properties": "^6.10.2",
|
||||||
|
"babel-plugin-transform-object-assign": "^6.8.0",
|
||||||
|
"babel-plugin-transform-object-rest-spread": "^6.8.0",
|
||||||
|
"babel-preset-es2015": "^6.9.0",
|
||||||
|
"babel-register": "^6.11.6",
|
||||||
|
"browser-sync": "^2.13.0",
|
||||||
|
"css-loader": "^0.23.1",
|
||||||
|
"eslint": "^3.1.1",
|
||||||
|
"eslint-plugin-import": "^1.11.1",
|
||||||
|
"exports-loader": "^0.6.3",
|
||||||
|
"file-loader": "^0.9.0",
|
||||||
|
"gulp": "^3.9.1",
|
||||||
|
"gulp-babel": "^6.1.2",
|
||||||
|
"gulp-postcss": "^6.1.1",
|
||||||
|
"gulp-util": "^3.0.7",
|
||||||
|
"hugo-bin": "^0.18.0",
|
||||||
|
"imports-loader": "^0.6.5",
|
||||||
|
"postcss-at2x": "^2.0.0",
|
||||||
|
"postcss-colour-functions": "^1.5.1",
|
||||||
|
"postcss-cssnext": "^2.7.0",
|
||||||
|
"postcss-import": "^8.1.2",
|
||||||
|
"postcss-loader": "^0.9.1",
|
||||||
|
"postcss-neat": "^2.5.2",
|
||||||
|
"postcss-nested": "^1.0.0",
|
||||||
|
"postcss-simple-extend": "^1.0.0",
|
||||||
|
"postcss-simple-vars-async": "^1.2.1",
|
||||||
|
"url-loader": "^0.5.7",
|
||||||
|
"webpack": "^1.13.1",
|
||||||
|
"whatwg-fetch": "^1.0.0",
|
||||||
|
"yamljs": "^0.2.8"
|
||||||
|
},
|
||||||
|
"devDependencies": {}
|
||||||
|
}
|
6
website/site/config.yaml
Executable file
@ -0,0 +1,6 @@
|
|||||||
|
baseurl: "/"
|
||||||
|
languageCode: "en-us"
|
||||||
|
title: "Netlify CMS | Open-Source Content Management System"
|
||||||
|
disable404: true
|
||||||
|
pluralizeListTitles: false
|
||||||
|
metaDataFormat: "yaml"
|
0
website/site/content/.keep
Executable file
@ -1,3 +1,8 @@
|
|||||||
|
---
|
||||||
|
title: Architecture
|
||||||
|
position: 90
|
||||||
|
---
|
||||||
|
|
||||||
# Technical Architecture
|
# Technical Architecture
|
||||||
|
|
||||||
Netlify CMS is a React application, using Redux for state management with immutable data structures (immutable.js).
|
Netlify CMS is a React application, using Redux for state management with immutable data structures (immutable.js).
|
||||||
@ -57,4 +62,4 @@ The control component receives three (3) callbacks as props: `onChange`, `onAddA
|
|||||||
|
|
||||||
Both control and preview widgets receive a `getAsset` selector via props. Displaying the media (or its URI) for the user should always be done via `getAsset`, as it returns an AssetProxy that can return the correct value for both medias already persisted on the server and cached media not yet uploaded.
|
Both control and preview widgets receive a `getAsset` selector via props. Displaying the media (or its URI) for the user should always be done via `getAsset`, as it returns an AssetProxy that can return the correct value for both medias already persisted on the server and cached media not yet uploaded.
|
||||||
|
|
||||||
The actual persistence of the content and medias inserted into the control component is delegated to the backend implementation. The backend will be called with the updated values and a list of assetProxy objects for each field of the entry, and should return a promise that can resolve into the persisted entry object and the list of the persisted media URIs.
|
The actual persistence of the content and medias inserted into the control component is delegated to the backend implementation. The backend will be called with the updated values and a list of assetProxy objects for each field of the entry, and should return a promise that can resolve into the persisted entry object and the list of the persisted media URIs.
|
@ -1,3 +1,8 @@
|
|||||||
|
---
|
||||||
|
title: Authentication & Backends
|
||||||
|
position: 25
|
||||||
|
---
|
||||||
|
|
||||||
# Authentication & Backends
|
# Authentication & Backends
|
||||||
|
|
||||||
Netlify CMS stores content in your GitHub repository. (GitLab and Bitbucket coming soon!) In order for this to work, you need to authenticate with GitHub, and that requires a server. We have a few options for handling this.
|
Netlify CMS stores content in your GitHub repository. (GitLab and Bitbucket coming soon!) In order for this to work, you need to authenticate with GitHub, and that requires a server. We have a few options for handling this.
|
@ -1,3 +1,8 @@
|
|||||||
|
---
|
||||||
|
title: Contributing
|
||||||
|
position: 100
|
||||||
|
---
|
||||||
|
|
||||||
# Welcome, contributors!
|
# Welcome, contributors!
|
||||||
|
|
||||||
We're hoping that Netlify CMS will do for the [JAMstack](https://www.jamstack.org) what WordPress did for dynamic sites back in the day. We know we can't do that without building a thriving community of contributors and users, and we'd love to have you join us.
|
We're hoping that Netlify CMS will do for the [JAMstack](https://www.jamstack.org) what WordPress did for dynamic sites back in the day. We know we can't do that without building a thriving community of contributors and users, and we'd love to have you join us.
|
||||||
@ -6,4 +11,4 @@ While we work on building this page (and you can help!), here are some links wit
|
|||||||
|
|
||||||
* [Project Milestones](https://github.com/netlify/netlify-cms/milestones)
|
* [Project Milestones](https://github.com/netlify/netlify-cms/milestones)
|
||||||
* [Code of Conduct](https://github.com/netlify/netlify-cms/blob/master/CODE_OF_CONDUCT.md)
|
* [Code of Conduct](https://github.com/netlify/netlify-cms/blob/master/CODE_OF_CONDUCT.md)
|
||||||
* [Setup instructions and Contribution Guidelines](https://github.com/netlify/netlify-cms/blob/master/CONTRIBUTING.md)
|
* [Setup instructions and Contribution Guidelines](https://github.com/netlify/netlify-cms/blob/master/CONTRIBUTING.md)
|
@ -1,3 +1,8 @@
|
|||||||
|
---
|
||||||
|
title: Custom Previews
|
||||||
|
position: 50
|
||||||
|
---
|
||||||
|
|
||||||
# Customizing the Preview Pane
|
# Customizing the Preview Pane
|
||||||
|
|
||||||
The NetlifyCMS exposes a `window.CMS` global object that you can use to register custom widgets, previews and editor plugins. The available customization methods are:
|
The NetlifyCMS exposes a `window.CMS` global object that you can use to register custom widgets, previews and editor plugins. The available customization methods are:
|
||||||
@ -191,4 +196,4 @@ Registers a template for a collection.
|
|||||||
</article>
|
</article>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
@ -1,3 +1,8 @@
|
|||||||
|
---
|
||||||
|
title: Editorial Workflow
|
||||||
|
position: 40
|
||||||
|
---
|
||||||
|
|
||||||
# Editorial Workflow
|
# Editorial Workflow
|
||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
@ -36,4 +41,4 @@ Actual data are stored in individual `json` files committed to this tree.
|
|||||||
|
|
||||||
Instead of adding logic to `CollectionPage` and `EntryPage`, the Editorial Workflow is implemented as Higher Order Components, adding UI and dispatching additional actions.
|
Instead of adding logic to `CollectionPage` and `EntryPage`, the Editorial Workflow is implemented as Higher Order Components, adding UI and dispatching additional actions.
|
||||||
|
|
||||||
Furthermore, all editorial workflow state is managed in Redux - there's an `actions/editorialWorkflow.js` file and a `reducers/editorialWorkflow.js` file.
|
Furthermore, all editorial workflow state is managed in Redux - there's an `actions/editorialWorkflow.js` file and a `reducers/editorialWorkflow.js` file.
|
@ -1,3 +1,8 @@
|
|||||||
|
---
|
||||||
|
title: Examples
|
||||||
|
position: 110
|
||||||
|
---
|
||||||
|
|
||||||
# Examples
|
# Examples
|
||||||
|
|
||||||
Do you have a great example? Submit a pull request to this page.
|
Do you have a great example? Submit a pull request to this page.
|
||||||
@ -5,4 +10,4 @@ Do you have a great example? Submit a pull request to this page.
|
|||||||
Name | Tools | Type | Example | More info |
|
Name | Tools | Type | Example | More info |
|
||||||
--- | --- | --- | --- | ---
|
--- | --- | --- | --- | ---
|
||||||
This Developing Journey | middleman | blog | [briandouglas.me](https://briandouglas.me) | [blog post](https://deploy-preview-496--www.netlify.com/blog/2017/04/18/blog-with-middleman-and-the-netlifycms/)
|
This Developing Journey | middleman | blog | [briandouglas.me](https://briandouglas.me) | [blog post](https://deploy-preview-496--www.netlify.com/blog/2017/04/18/blog-with-middleman-and-the-netlifycms/)
|
||||||
JAMstack Recipes | Hugo, Azure | demo | [jamstack-cms.netlify.com](http://jamstack-cms.netlify.com) | [blog post](http://conductofcode.io/post/managing-content-for-a-jamstack-site-with-netlify-cms/)
|
JAMstack Recipes | Hugo, Azure | demo | [jamstack-cms.netlify.com](http://jamstack-cms.netlify.com) | [blog post](http://conductofcode.io/post/managing-content-for-a-jamstack-site-with-netlify-cms/)
|
@ -1,3 +1,8 @@
|
|||||||
|
---
|
||||||
|
title: Extending Widgets
|
||||||
|
position: 60
|
||||||
|
---
|
||||||
|
|
||||||
# Extending With Widgets
|
# Extending With Widgets
|
||||||
|
|
||||||
The NetlifyCMS exposes an `window.CMS` global object that you can use to register custom widgets, previews, and editor plugins. The available widget extension methods are:
|
The NetlifyCMS exposes an `window.CMS` global object that you can use to register custom widgets, previews, and editor plugins. The available widget extension methods are:
|
||||||
@ -109,5 +114,4 @@ CMS.registerEditorComponent({
|
|||||||
|
|
||||||
**Result:**
|
**Result:**
|
||||||
|
|
||||||
![youtube-widget](/img/youtube-widget.png)
|
![youtube-widget](/img/youtube-widget.png)
|
||||||
|
|
@ -1,3 +1,8 @@
|
|||||||
|
---
|
||||||
|
title: Introduction
|
||||||
|
position: 0
|
||||||
|
---
|
||||||
|
|
||||||
# Introduction
|
# Introduction
|
||||||
|
|
||||||
Netlify CMS is a Content Management System for static sites, allowing collaborators to create, edit, review, and publish content without writing code or dealing with version control. It brings the ease of WordPress-style editing to the simplicity and speed of static sites.
|
Netlify CMS is a Content Management System for static sites, allowing collaborators to create, edit, review, and publish content without writing code or dealing with version control. It brings the ease of WordPress-style editing to the simplicity and speed of static sites.
|
||||||
@ -99,5 +104,4 @@ Netlify CMS exposes a `window.CMS` global object that you can use to register cu
|
|||||||
|
|
||||||
* `registerWidget`: registers a custom widget.
|
* `registerWidget`: registers a custom widget.
|
||||||
|
|
||||||
* `registerEditorComponent`: adds a block component to the Markdown editor.
|
* `registerEditorComponent`: adds a block component to the Markdown editor.
|
||||||
|
|
@ -1,3 +1,8 @@
|
|||||||
|
---
|
||||||
|
title: Quick Start
|
||||||
|
position: 20
|
||||||
|
---
|
||||||
|
|
||||||
# Quick Start
|
# Quick Start
|
||||||
Netlify CMS is adaptable to a wide variety of projects. The only inflexible requirement is that your site content must be written in markdown, JSON, YAML, or TOML files, stored in a repo on [GitHub](https://github.com/). (If you're partial to another Git hosting service, check out the PRs in progress for [GitLab](https://github.com/netlify/netlify-cms/pull/517) and [Bitbucket](https://github.com/netlify/netlify-cms/pull/525) support.)
|
Netlify CMS is adaptable to a wide variety of projects. The only inflexible requirement is that your site content must be written in markdown, JSON, YAML, or TOML files, stored in a repo on [GitHub](https://github.com/). (If you're partial to another Git hosting service, check out the PRs in progress for [GitLab](https://github.com/netlify/netlify-cms/pull/517) and [Bitbucket](https://github.com/netlify/netlify-cms/pull/525) support.)
|
||||||
|
|
||||||
@ -227,4 +232,4 @@ If you set your registration preference to "Invite only," you'll need to invite
|
|||||||
|
|
||||||
If you left your site registration open, or for return visits after comfirming an email invitation, you can access your site's CMS at `yoursite.com/admin`.
|
If you left your site registration open, or for return visits after comfirming an email invitation, you can access your site's CMS at `yoursite.com/admin`.
|
||||||
|
|
||||||
Happy posting!
|
Happy posting!
|
@ -1,3 +1,8 @@
|
|||||||
|
---
|
||||||
|
title: Test Drive
|
||||||
|
position: 10
|
||||||
|
---
|
||||||
|
|
||||||
# Take a test drive
|
# Take a test drive
|
||||||
|
|
||||||
Netlify CMS can run in any frontend web environment, but the quickest way to try it out is by running it on a pre-configured starter site with Netlify. Our example here is the [Kaldi coffee company template](https://github.com/netlify-templates/one-click-hugo-cms). Use the button below to build and deploy your own copy of the repository:
|
Netlify CMS can run in any frontend web environment, but the quickest way to try it out is by running it on a pre-configured starter site with Netlify. Our example here is the [Kaldi coffee company template](https://github.com/netlify-templates/one-click-hugo-cms). Use the button below to build and deploy your own copy of the repository:
|
||||||
@ -25,4 +30,4 @@ Try adding and editing posts, or changing the content of the Products page. When
|
|||||||
## More paths to explore
|
## More paths to explore
|
||||||
- If you’d like to learn more about how it all works, check out the [Intro](/docs/intro).
|
- If you’d like to learn more about how it all works, check out the [Intro](/docs/intro).
|
||||||
- To see how to integrate Netlify CMS into an existing project, go to the [Quick Start](/docs/quick-start).
|
- To see how to integrate Netlify CMS into an existing project, go to the [Quick Start](/docs/quick-start).
|
||||||
- If you’d like to change how users log in to your site, read up on [Netlify Identity service](https://www.netlify.com/docs/identity).
|
- If you’d like to change how users log in to your site, read up on [Netlify Identity service](https://www.netlify.com/docs/identity).
|
@ -1,3 +1,8 @@
|
|||||||
|
---
|
||||||
|
title: Validation
|
||||||
|
position: 70
|
||||||
|
---
|
||||||
|
|
||||||
# Collection Field Validation
|
# Collection Field Validation
|
||||||
|
|
||||||
## Available validations to use on `config.yml`:
|
## Available validations to use on `config.yml`:
|
||||||
@ -51,4 +56,4 @@ You can also return a promise from `isValid`. While the promise is pending, the
|
|||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
Note: Do not create a promise inside `isValid` - `isValid` is called right before trying to persist. This means that even if a previous promise was already resolved, when the user hits 'save', `isValid` will be called again. If it returns a new promise, it will be immediately marked as "in error" until the new promise resolves.
|
Note: Do not create a promise inside `isValid` - `isValid` is called right before trying to persist. This means that even if a previous promise was already resolved, when the user hits 'save', `isValid` will be called again. If it returns a new promise, it will be immediately marked as "in error" until the new promise resolves.
|
@ -1,6 +1,9 @@
|
|||||||
# Configuring your site
|
---
|
||||||
|
title: Widgets
|
||||||
|
position: 30
|
||||||
|
---
|
||||||
|
|
||||||
## Widgets
|
# Widgets
|
||||||
|
|
||||||
Widgets define the data type and interface for entry fields. Netlify CMS comes with several built-in widgets, including:
|
Widgets define the data type and interface for entry fields. Netlify CMS comes with several built-in widgets, including:
|
||||||
|
|
||||||
@ -126,4 +129,4 @@ The following field configuration properties are specific to fields using the da
|
|||||||
Property | Accepted Values | Description
|
Property | Accepted Values | Description
|
||||||
--- | --- | ---
|
--- | --- | ---
|
||||||
`format` | string | format string uses Moment.js [tokens](https://momentjs.com/docs/#/parsing/string-format/)
|
`format` | string | format string uses Moment.js [tokens](https://momentjs.com/docs/#/parsing/string-format/)
|
||||||
`default` | boolean, string | can be a date string, or else an empty string - defaults to current date
|
`default` | boolean, string | can be a date string, or else an empty string - defaults to current date
|
29
website/site/content/pages/community.md
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
---
|
||||||
|
title: Community
|
||||||
|
layout: community
|
||||||
|
url: /community
|
||||||
|
|
||||||
|
headline: Be a part of building the CMS of the future.
|
||||||
|
subhead: We're serious about being community driven, so everyone is welcome to join our open, bi-weekly planning sessions.
|
||||||
|
primarycta: "[Register on Eventbrite →](https://www.eventbrite.com/e/netlify-cms-planning-session-bi-weekly-tickets-35794058994)"
|
||||||
|
|
||||||
|
upcomingevent:
|
||||||
|
hook: The next development planning session is on
|
||||||
|
|
||||||
|
howitworks: Every other week we have public development planning sessions. They're web based, last about an hour, and are geared toward contributors and those interested in contributing. Sessions currently take place every other Wednesday, 9am - 10am PT.
|
||||||
|
|
||||||
|
howtojoin: |
|
||||||
|
**On the web:**
|
||||||
|
|
||||||
|
1. https://bluejeans.com/278173690
|
||||||
|
|
||||||
|
**By phone:**
|
||||||
|
|
||||||
|
1. [+1.408.740.7256](tel:+14087407256) (United States)
|
||||||
|
|
||||||
|
[+1.408.317.9253](tel:+14083179253) (Alternate number)
|
||||||
|
|
||||||
|
(http://bluejeans.com/numbers)
|
||||||
|
|
||||||
|
2. Enter Meeting ID: 278173690
|
||||||
|
---
|
0
website/site/data/.keep
Executable file
13
website/site/data/docs.yml
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
---
|
||||||
|
styleoverrides: '/docs.css'
|
||||||
|
headline: Netlify builds, deploys, and hosts your front end.
|
||||||
|
bottomcta:
|
||||||
|
hook: Want to get started quick?
|
||||||
|
btns:
|
||||||
|
- type: primary
|
||||||
|
btntext: View our Templates
|
||||||
|
linksto: https://app.netlify.com/signup/templates
|
||||||
|
- type: secondary
|
||||||
|
btntext: Read our Tutorials
|
||||||
|
linksto: /tags/tutorial/
|
||||||
|
---
|
13
website/site/data/global.yaml
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
---
|
||||||
|
footer:
|
||||||
|
hook: |
|
||||||
|
Host faster.</br>
|
||||||
|
Manage easier.</br>
|
||||||
|
Smile bigger.
|
||||||
|
headline: "Netlify is your one-stop web dev solution."
|
||||||
|
body: "Vestibulum rutrum quam vitae fringilla tincidunt. Suspendisse nec tortor urna. Ut laoreet sodales nisi, quis iaculis nulla iaculis vitae. Donec sagittis faucibu."
|
||||||
|
cta:
|
||||||
|
secondarycta:
|
||||||
|
copy: "Try it now FREE"
|
||||||
|
link: "/intro"
|
||||||
|
---
|
50
website/site/data/landing.yaml
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
---
|
||||||
|
hero:
|
||||||
|
headline: An open-source CMS for your Git workflow
|
||||||
|
subhead: |
|
||||||
|
- Content management in a single-page app
|
||||||
|
- Built in React.js with extensible components
|
||||||
|
- Integrate with any build tool
|
||||||
|
- Plug in to any static site generator
|
||||||
|
ctas: |
|
||||||
|
- [Take it for a test drive →](/docs/test-drive)
|
||||||
|
productvideo:
|
||||||
|
thumbnail: "/img/hero-graphic.jpg"
|
||||||
|
mp4: "/img/demo.mp4"
|
||||||
|
ogg: "/img/demo.ogg"
|
||||||
|
webm: "/img/demo.webm"
|
||||||
|
|
||||||
|
thanksdevs: "**Thanks to all our contributors.**Keep shooting for the stars with Netlify CMS."
|
||||||
|
|
||||||
|
collab:
|
||||||
|
hook: "Integrate the roles of developers, writers, and editors."
|
||||||
|
body: "Writers can focus on writing. Editors can approve content and publish with ease. Developers can use their favorite tools and libraries. **Netlify CMS keeps all of their contributions together, in Git.**"
|
||||||
|
graphicpath: "/img/collab.svg"
|
||||||
|
|
||||||
|
featureshook: "Designed with developers in mind - it’s in our DNA."
|
||||||
|
|
||||||
|
features:
|
||||||
|
- feature: "Fast, web-based UI"
|
||||||
|
description: "Built with React, featuring rich-text editing, real-time preview, and drag-and-drop media uploads."
|
||||||
|
- feature: "Platform agnostic"
|
||||||
|
description: "Works with most static site generators for sites stored in GitHub."
|
||||||
|
- feature: "Easy installation"
|
||||||
|
description: "Add two files to your site, include or link to the JS, and add your custom configuration."
|
||||||
|
- feature: "Modern authentication"
|
||||||
|
description: "Connect with Netflify's authentication service or roll your own, using GitHub and JSON web tokens."
|
||||||
|
- feature: "Flexible content types"
|
||||||
|
description: "Specify an unlimited number of content types with custom fields."
|
||||||
|
- feature: "Fully extensible"
|
||||||
|
description: "Create custom-styled previews, UI widgets, and editor plugins."
|
||||||
|
|
||||||
|
featuresgraphic: "/img/helix.svg"
|
||||||
|
|
||||||
|
inspiration: |
|
||||||
|
Netlify CMS is part of a long evolution in content management for the web. Even in the budding realm of the [JAMstack](https://www.jamstack.org) and [static site generators](https://www.staticgen.com), developers have a variety [“headless” CMS](http://www.headlesscms.org) options to choose from.
|
||||||
|
|
||||||
|
Proprietary services like Contentful and DatoCMS provide the ease and polish of a concierge provider, while simple open source projects like Prose and Google Drive CMS provide targeted functionality for limited use cases. We love that these other projects help advance the modern web, and we believe there will always be a place for them in the JAMstack ecosystem.
|
||||||
|
|
||||||
|
With Netlify CMS, we hope to carve a different niche. We aim to do for the JAMstack what WordPress did for dynamic sites back in the day. In other words, we want to build a CMS that is open-source but fully-featured and production-ready, that’s as easy to customize as it is to use, and that developers and content editors can build a community around.
|
||||||
|
|
||||||
|
[Help us make it happen!](/docs/contributor-guide)
|
||||||
|
---
|
16
website/site/data/notifications.yml
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
notifications:
|
||||||
|
- loud: true
|
||||||
|
message: >-
|
||||||
|
Register to join us online for our next community dev meeting, every other
|
||||||
|
Wednesday at 9am-10am PT!
|
||||||
|
published: false
|
||||||
|
title: Netlify CMS Development Planning Sessions Promo
|
||||||
|
url: >-
|
||||||
|
https://www.eventbrite.com/e/netlify-cms-planning-session-bi-weekly-tickets-35794058994
|
||||||
|
- loud: true
|
||||||
|
message: >-
|
||||||
|
We have a community on Gitter - join now to ask questions and discuss the
|
||||||
|
project with other devs!
|
||||||
|
published: true
|
||||||
|
title: Gitter shoutout
|
||||||
|
url: 'https://gitter.im/netlify/netlifycms'
|
35
website/site/layouts/_default/list.html
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
{{ partial "header" . }}
|
||||||
|
|
||||||
|
<div class="docs page">
|
||||||
|
<div class="container">
|
||||||
|
<aside id="sidebar" class="sidebar">
|
||||||
|
<nav class="docs-nav" id="docs-nav">
|
||||||
|
{{ range sort .Data.Pages "Params.position" }}
|
||||||
|
<a href="{{ .Permalink }}" class="nav-link {{ if eq .Params.position 0 }}active{{ end }}">{{ .Title }}</a>
|
||||||
|
{{ end }}
|
||||||
|
</nav>
|
||||||
|
<div class="mobile docs-nav">
|
||||||
|
<select class="btn-primary" id="mobile-docs-nav">
|
||||||
|
<option value="" selected="selected">Select A Topic</option>
|
||||||
|
{{ range sort .Data.Pages "Params.position" }}
|
||||||
|
<option value="{{ .Permalink }}" class="nav-link {{ if eq .Params.position 0 }}active{{ end }}">{{ .Title }}</option>
|
||||||
|
{{ end }}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</aside>
|
||||||
|
<article class="docs-content" id="docs-content">
|
||||||
|
{{ range sort .Data.Pages "Params.position" }}
|
||||||
|
{{ if eq .Params.position 0 }}
|
||||||
|
<div>
|
||||||
|
<p>
|
||||||
|
{{ partial "edit-link" . }}
|
||||||
|
</p>
|
||||||
|
{{ .Content }}
|
||||||
|
</div>
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
</article>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{ partial "footer" . }}
|
30
website/site/layouts/_default/single.html
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
{{ partial "header" . }}
|
||||||
|
{{ $activePage := .Params.position }}
|
||||||
|
|
||||||
|
<div class="docs detail page">
|
||||||
|
<div class="container">
|
||||||
|
<aside id="sidebar" class="sidebar">
|
||||||
|
<nav class="docs-nav" id="docs-nav">
|
||||||
|
{{ $subjects := where .Site.Pages "Section" "docs" }}
|
||||||
|
{{ range sort $subjects "Params.position" }}
|
||||||
|
<a href="{{ .Permalink }}" class="nav-link {{ if eq .Params.position $activePage }}active{{ end }}">{{ .Title }}</a>
|
||||||
|
{{ end }}
|
||||||
|
</nav>
|
||||||
|
<div class="mobile docs-nav">
|
||||||
|
<select class="btn-primary" id="mobile-docs-nav">
|
||||||
|
<option value="" selected="selected">Select A Topic</option>
|
||||||
|
{{ $subjects := where .Site.Pages "Section" "docs" }}
|
||||||
|
{{ range sort $subjects "Params.position" }}
|
||||||
|
<option value="{{ .Permalink }}" class="nav-link {{ if eq .Params.position $activePage }}active{{ end }}">{{ .Title }}</option>
|
||||||
|
{{ end }}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</aside>
|
||||||
|
<article class="docs-content" id="docs-content">
|
||||||
|
{{ partial "edit-link" . }}
|
||||||
|
{{ .Content }}
|
||||||
|
</article>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{ partial "footer" . }}
|
69
website/site/layouts/index.html
Executable file
@ -0,0 +1,69 @@
|
|||||||
|
{{ partial "header" . }}
|
||||||
|
|
||||||
|
<div class="landing page">
|
||||||
|
<section class="hero">
|
||||||
|
<div class="contained">
|
||||||
|
|
||||||
|
<div class="hero-copy">
|
||||||
|
<h1 class="headline">{{ .Site.Data.landing.hero.headline | markdownify }}</h1>
|
||||||
|
<h2 class="subhead">{{ .Site.Data.landing.hero.subhead | markdownify }}</h2>
|
||||||
|
<h3 class="ctas">{{ .Site.Data.landing.hero.ctas | markdownify }}</h3>
|
||||||
|
<p class="mooseheads">
|
||||||
|
<strong>As seen on...</strong>
|
||||||
|
<img src="/img/smashing-logo.svg"/>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="hero-graphic">
|
||||||
|
<img src="/img/demo.gif" class="responsive"/>
|
||||||
|
<!--<p class="thanks-devs">{{ .Site.Data.landing.thanksdevs | markdownify }}</p>-->
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="collab">
|
||||||
|
<div class="container">
|
||||||
|
<h1>{{ .Site.Data.landing.collab.hook | markdownify }}</h1>
|
||||||
|
<div class="row">
|
||||||
|
<div class="collab-graphic">
|
||||||
|
<img src="{{ .Site.Data.landing.collab.graphicpath }}" class="responsive"/>
|
||||||
|
</div>
|
||||||
|
<div class="collab-copy">
|
||||||
|
<p>{{ .Site.Data.landing.collab.body | markdownify }}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="features">
|
||||||
|
<div class="container">
|
||||||
|
<h1>{{ .Site.Data.landing.featureshook | markdownify }}</h1>
|
||||||
|
{{ $featuresgraphic := .Site.Data.landing.featuresgraphic }}
|
||||||
|
<div class="features-column">
|
||||||
|
{{ range $index, $id := .Site.Data.landing.features }}
|
||||||
|
<div class="feature">
|
||||||
|
<h3>{{ .feature | markdownify }}</h3>
|
||||||
|
<p>{{ .description | markdownify }}</p>
|
||||||
|
</div>
|
||||||
|
{{ if eq $index 2 }}
|
||||||
|
</div>
|
||||||
|
<div class="features-graphic">
|
||||||
|
<img src="{{ $featuresgraphic }}" class="responsive"/>
|
||||||
|
</div>
|
||||||
|
<div class="features-column">
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="inspiration">
|
||||||
|
<div class="container">
|
||||||
|
<h1>Our Inspiration</h1>
|
||||||
|
<p>{{ .Site.Data.landing.inspiration | markdownify }}</p>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{ partial "footer" . }}
|
38
website/site/layouts/pages/community.html
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
{{ partial "header" . }}
|
||||||
|
|
||||||
|
<div class="community page">
|
||||||
|
<section class="hero">
|
||||||
|
<div class="contained">
|
||||||
|
|
||||||
|
<div class="hero-copy">
|
||||||
|
<h1 class="headline">{{ .Params.headline | markdownify }}</h1>
|
||||||
|
<h2 class="subhead">{{ .Params.subhead | markdownify }}</h2>
|
||||||
|
<h3 class="ctas"><ul><li>{{ .Params.primarycta | markdownify }}</li></ul></h3>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="calendar-cta">
|
||||||
|
<h2>{{ .Params.upcomingevent.hook }}</h2>
|
||||||
|
<div class="calendar">
|
||||||
|
<div class="month"></div>
|
||||||
|
<div class="day"></div>
|
||||||
|
</div>
|
||||||
|
<h2><strong></strong> at <strong></strong></h2>
|
||||||
|
<div class="cal-cta">{{ .Params.primarycta | markdownify }}</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="how-it-works clearfix">
|
||||||
|
<div class="contained">
|
||||||
|
<div class="half">
|
||||||
|
<h4 class="section-label">How it works</h4>
|
||||||
|
<p>{{ .Params.howitworks | markdownify }}</p>
|
||||||
|
<h4 class="section-label">How to join</h4>
|
||||||
|
<p>{{ .Params.howtojoin | markdownify }}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{ partial "footer" . }}
|
10
website/site/layouts/partials/edit-link.html
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
<a class="edit-this-page" href="https://github.com/netlify/netlify-cms/blob/master/website/site/content/{{ .File.Path }}">
|
||||||
|
<svg version="1.1" id="pencil" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||||
|
width="14px" height="14px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
|
||||||
|
<path d="M398.875,248.875L172.578,475.187l-22.625-22.625L376.25,226.265L398.875,248.875z M308.375,158.39L82.063,384.687
|
||||||
|
l45.266,45.25L353.625,203.64L308.375,158.39z M263.094,113.125L36.828,339.437l22.625,22.625L285.75,135.765L263.094,113.125z
|
||||||
|
M308.375,67.875L285.719,90.5L421.5,226.265l22.625-22.625L308.375,67.875z M376.25,0L331,45.25l135.75,135.766L512,135.781
|
||||||
|
L376.25,0z M32,453.5V480h26.5L32,453.5 M0,376.25L135.766,512H0V376.25L0,376.25z"/>
|
||||||
|
</svg>
|
||||||
|
Edit this page
|
||||||
|
</a>
|
25
website/site/layouts/partials/footer.html
Executable file
@ -0,0 +1,25 @@
|
|||||||
|
<footer>
|
||||||
|
<p class="contained"><a href="https://github.com/netlify/netlify-cms/blob/master/LICENSE" class="text-link">Distributed under MIT License</a> ·
|
||||||
|
<a href="https://github.com/netlify/netlify-cms/blob/master/CODE_OF_CONDUCT.md" class="text-link">Code of Conduct</a></p>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
|
||||||
|
{{ if or (eq .Section "docs") (eq .Title "Docs") }}
|
||||||
|
<script src="/jquery.scrollTo.min.js"></script>
|
||||||
|
<script src="/jquery.localScroll.min.js"></script>
|
||||||
|
<script src="/prism.js"></script>
|
||||||
|
{{ end }}
|
||||||
|
{{ if eq .Title "Community" }}
|
||||||
|
<script src="/moment.min.js"></script>
|
||||||
|
{{ end }}
|
||||||
|
<script src="/app.js"></script>
|
||||||
|
<script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script>
|
||||||
|
<script type="text/javascript"> docsearch({
|
||||||
|
apiKey: '08d03dc80862e84c70c5a1e769b13019',
|
||||||
|
indexName: 'netlifycms',
|
||||||
|
inputSelector: '.algolia-search',
|
||||||
|
debug: false // Set debug to true if you want to inspect the dropdown
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
40
website/site/layouts/partials/header.html
Executable file
@ -0,0 +1,40 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>{{ .Site.Title }}</title>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<link rel="apple-touch-icon" sizes="180x180" href="/img/favicon/apple-touch-icon.png">
|
||||||
|
<link rel="icon" type="image/png" href="/img/favicon/favicon-32x32.png" sizes="32x32">
|
||||||
|
<link rel="icon" type="image/png" href="/img/favicon/favicon-16x16.png" sizes="16x16">
|
||||||
|
<link rel="manifest" href="/img/favicon/manifest.json">
|
||||||
|
<link rel="mask-icon" href="/img/favicon/safari-pinned-tab.svg" color="#96cf05">
|
||||||
|
<meta name="apple-mobile-web-app-title" content="NetlifyCMS">
|
||||||
|
<meta name="application-name" content="NetlifyCMS">
|
||||||
|
<meta name="theme-color" content="#ffffff">
|
||||||
|
<link rel="stylesheet" href="/css/main.css"/>
|
||||||
|
{{ if or (eq .Section "docs") (eq .Title "Docs") }}
|
||||||
|
<link rel="stylesheet" href="/css/lib/prism.css"/>
|
||||||
|
{{ end }}
|
||||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
{{ range .Site.Data.notifications }}
|
||||||
|
{{ range . }}
|
||||||
|
{{ if .published }}
|
||||||
|
<a href="{{ .url }}" class="notification {{ if .loud }}notification-loud{{end}}">{{ .message }}</a>
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
<header id="header" {{ if or (eq .Section "docs") (eq .Title "Docs") }}class="docs"{{ end }}>
|
||||||
|
<div class="contained">
|
||||||
|
<a href="/" class="logo"><img src="/img/netlify-cms-logo.svg"/></a>
|
||||||
|
<a class="nav-link docs-link" href="/docs">Docs</a>
|
||||||
|
<a class="nav-link contributing-link" href="/docs/contributor-guide">Contributing</a>
|
||||||
|
<a class="nav-link" href="/community">Community</a>
|
||||||
|
<a class="utility-input">
|
||||||
|
<img src="/img/search.svg" />
|
||||||
|
<input type="search" placeholder="Search the docs" class="algolia-search"/>
|
||||||
|
</a>
|
||||||
|
<a href="https://github.com/netlify/netlify-cms" class="btn-secondary small github-btn "><img src="/img/github.svg"/> Fork me on GitHub</a>
|
||||||
|
</div>
|
||||||
|
</header>
|
0
website/site/static/.keep
Executable file
1
website/site/static/_redirects
Normal file
@ -0,0 +1 @@
|
|||||||
|
/docs/custom-authentication /docs/authentication-backends 301
|
35
website/site/static/admin/config.yml
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
backend:
|
||||||
|
name: github
|
||||||
|
repo: netlify/netlify-cms
|
||||||
|
|
||||||
|
publish_mode: editorial_workflow
|
||||||
|
|
||||||
|
media_folder: "website/site/static/img" # Folder where user uploaded files should go
|
||||||
|
public_folder: "img"
|
||||||
|
|
||||||
|
collections: # A list of collections the CMS should be able to edit
|
||||||
|
- name: "docs" # Used in routes, ie.: /admin/collections/:slug/edit
|
||||||
|
label: "Docs" # Used in the UI, ie.: "New Post"
|
||||||
|
folder: "website/site/content/docs" # The path to the folder where the documents are stored
|
||||||
|
create: true # Allow users to create new documents in this collection
|
||||||
|
fields: # The fields each document in this collection have
|
||||||
|
- {label: "Title", name: "title", widget: "string", tagname: "h1"}
|
||||||
|
- {label: "Position", name: "position", widget: "number"}
|
||||||
|
- {label: "Body", name: "body", widget: "markdown"}
|
||||||
|
- name: notifications
|
||||||
|
label: Notifications
|
||||||
|
files:
|
||||||
|
- name: notifications
|
||||||
|
label: Notifications
|
||||||
|
file: website/site/data/notifications.yml
|
||||||
|
description: Site-top notifications - publish one at a time
|
||||||
|
fields:
|
||||||
|
- name: notifications
|
||||||
|
label: Notifications
|
||||||
|
widget: list
|
||||||
|
fields:
|
||||||
|
- {label: Title, name: title, widget: string, tagname: h1}
|
||||||
|
- {label: Published, name: published, widget: boolean}
|
||||||
|
- {label: Loud, name: loud, widget: boolean}
|
||||||
|
- {label: Message, name: message, widget: text}
|
||||||
|
- {label: URL, name: url}
|
16
website/site/static/admin/index.html
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
|
||||||
|
<title>Content Manager</title>
|
||||||
|
<!-- Include the stylesheets from your site here -->
|
||||||
|
<link rel="stylesheet" href="https://unpkg.com/netlify-cms@^0.7/dist/cms.css" />
|
||||||
|
<!-- Include a CMS specific stylesheet here -->
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<script src="https://unpkg.com/netlify-cms@^0.7/dist/cms.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
BIN
website/site/static/img/create-password.png
Normal file
After Width: | Height: | Size: 724 KiB |
BIN
website/site/static/img/email-subject.png
Normal file
After Width: | Height: | Size: 8.2 KiB |
BIN
website/site/static/img/youtube-widget.png
Normal file
After Width: | Height: | Size: 64 KiB |
7
website/site/static/jquery.localScroll.min.js
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) 2007-2016 Ariel Flesler - aflesler<a>gmail<d>com | http://flesler.blogspot.com
|
||||||
|
* Licensed under MIT
|
||||||
|
* @author Ariel Flesler
|
||||||
|
* @version 1.4.0
|
||||||
|
*/
|
||||||
|
;(function(a){if(typeof define==='function'&&define.amd){define(['jquery'],a)}else{a(jQuery)}}(function($){var g=location.href.replace(/#.*/,'');var h=$.localScroll=function(a){$('body').localScroll(a)};h.defaults={duration:1000,axis:'y',event:'click',stop:true,target:window};$.fn.localScroll=function(a){a=$.extend({},h.defaults,a);if(a.hash&&location.hash){if(a.target)window.scrollTo(0,0);scroll(0,location,a)}return a.lazy?this.on(a.event,'a,area',function(e){if(filter.call(this)){scroll(e,this,a)}}):this.find('a,area').filter(filter).bind(a.event,function(e){scroll(e,this,a)}).end().end();function filter(){return!!this.href&&!!this.hash&&this.href.replace(this.hash,'')===g&&(!a.filter||$(this).is(a.filter))}};h.hash=function(){};function scroll(e,a,b){var c=a.hash.slice(1),elem=document.getElementById(c)||document.getElementsByName(c)[0];if(!elem)return;if(e)e.preventDefault();var d=$(b.target);if(b.lock&&d.is(':animated')||b.onBefore&&b.onBefore(e,elem,d)===false)return;if(b.stop){d.stop(true)}if(b.hash){var f=elem.id===c?'id':'name',$a=$('<a> </a>').attr(f,c).css({position:'absolute',top:$(window).scrollTop(),left:$(window).scrollLeft()});elem[f]='';$('body').prepend($a);location.hash=a.hash;$a.remove();elem[f]=c}d.scrollTo(elem,b).trigger('notify.serialScroll',[elem])}return h}));
|
7
website/site/static/jquery.scrollTo.min.js
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) 2007-2015 Ariel Flesler - aflesler<a>gmail<d>com | http://flesler.blogspot.com
|
||||||
|
* Licensed under MIT
|
||||||
|
* @author Ariel Flesler
|
||||||
|
* @version 2.1.0
|
||||||
|
*/
|
||||||
|
;(function(l){'use strict';l(['jquery'],function($){var k=$.scrollTo=function(a,b,c){return $(window).scrollTo(a,b,c)};k.defaults={axis:'xy',duration:0,limit:true};function isWin(a){return!a.nodeName||$.inArray(a.nodeName.toLowerCase(),['iframe','#document','html','body'])!==-1}$.fn.scrollTo=function(f,g,h){if(typeof g==='object'){h=g;g=0}if(typeof h==='function'){h={onAfter:h}}if(f==='max'){f=9e9}h=$.extend({},k.defaults,h);g=g||h.duration;var j=h.queue&&h.axis.length>1;if(j){g/=2}h.offset=both(h.offset);h.over=both(h.over);return this.each(function(){if(f===null)return;var d=isWin(this),elem=d?this.contentWindow||window:this,$elem=$(elem),targ=f,attr={},toff;switch(typeof targ){case'number':case'string':if(/^([+-]=?)?\d+(\.\d+)?(px|%)?$/.test(targ)){targ=both(targ);break}targ=d?$(targ):$(targ,elem);if(!targ.length)return;case'object':if(targ.is||targ.style){toff=(targ=$(targ)).offset()}}var e=$.isFunction(h.offset)&&h.offset(elem,targ)||h.offset;$.each(h.axis.split(''),function(i,a){var b=a==='x'?'Left':'Top',pos=b.toLowerCase(),key='scroll'+b,prev=$elem[key](),max=k.max(elem,a);if(toff){attr[key]=toff[pos]+(d?0:prev-$elem.offset()[pos]);if(h.margin){attr[key]-=parseInt(targ.css('margin'+b),10)||0;attr[key]-=parseInt(targ.css('border'+b+'Width'),10)||0}attr[key]+=e[pos]||0;if(h.over[pos]){attr[key]+=targ[a==='x'?'width':'height']()*h.over[pos]}}else{var c=targ[pos];attr[key]=c.slice&&c.slice(-1)==='%'?parseFloat(c)/100*max:c}if(h.limit&&/^\d+$/.test(attr[key])){attr[key]=attr[key]<=0?0:Math.min(attr[key],max)}if(!i&&h.axis.length>1){if(prev===attr[key]){attr={}}else if(j){animate(h.onAfterFirst);attr={}}}});animate(h.onAfter);function animate(a){var b=$.extend({},h,{queue:true,duration:g,complete:a&&function(){a.call(elem,targ,h)}});$elem.animate(attr,b)}})};k.max=function(a,b){var c=b==='x'?'Width':'Height',scroll='scroll'+c;if(!isWin(a))return a[scroll]-$(a)[c.toLowerCase()]();var d='client'+c,doc=a.ownerDocument||a.document,html=doc.documentElement,body=doc.body;return Math.max(html[scroll],body[scroll])-Math.min(html[d],body[d])};function both(a){return $.isFunction(a)||$.isPlainObject(a)?a:{top:a,left:a}}$.Tween.propHooks.scrollLeft=$.Tween.propHooks.scrollTop={get:function(t){return $(t.elem)[t.prop]()},set:function(t){var a=this.get(t);if(t.options.interrupt&&t._last&&t._last!==a){return $(t.elem).stop()}var b=Math.round(t.now);if(a!==b){$(t.elem)[t.prop](b);t._last=this.get(t)}}};return k})}(typeof define==='function'&&define.amd?define:function(a,b){'use strict';if(typeof module!=='undefined'&&module.exports){module.exports=b(require('jquery'))}else{b(jQuery)}}));
|
7
website/site/static/moment.min.js
vendored
Normal file
14
website/site/static/prism.js
Normal file
150
website/src/css/imports/base.css
Executable file
@ -0,0 +1,150 @@
|
|||||||
|
@import url(https://fonts.googleapis.com/css?family=Roboto:400,100,100italic,300,300italic,400italic,500,700,900|Roboto+Mono:400,700);
|
||||||
|
|
||||||
|
body {
|
||||||
|
color: $grey;
|
||||||
|
font-family: $roboto;
|
||||||
|
margin: 0;
|
||||||
|
text-align: center;
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
min-height: 100vh;
|
||||||
|
|
||||||
|
@media screen and (min-width: $tablet) {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.page {
|
||||||
|
flex-grow: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
font-weight: $light;
|
||||||
|
font-size: $small;
|
||||||
|
line-height: $medium;
|
||||||
|
margin: 0 0 -10px 0;
|
||||||
|
|
||||||
|
@media screen and (min-width: $tablet) {
|
||||||
|
font-size: 36px;
|
||||||
|
line-height: 48px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
font-family: $roboto;
|
||||||
|
font-size: 18px;
|
||||||
|
font-weight: $bold;
|
||||||
|
margin: 0;
|
||||||
|
|
||||||
|
&.subhead {
|
||||||
|
font-weight: $regular;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
h3 {
|
||||||
|
font-family: $roboto;
|
||||||
|
font-size: $small;
|
||||||
|
font-weight: $regular;
|
||||||
|
line-height: 32px;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
p, ul {
|
||||||
|
font-size: 14px;
|
||||||
|
line-height: $small;
|
||||||
|
|
||||||
|
@media screen and (min-width: $tablet) {
|
||||||
|
font-size: 18px;
|
||||||
|
line-height: 32px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: $grey;
|
||||||
|
text-decoration: none;
|
||||||
|
font-weight: $bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul {
|
||||||
|
margin: $tiny 0 $tiny $small;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contained {
|
||||||
|
margin: 0 auto;
|
||||||
|
max-width: $display;
|
||||||
|
padding: 0 $small;
|
||||||
|
|
||||||
|
@media screen and (min-width: $tablet) {
|
||||||
|
padding: 0 $medium;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
*[class^="btn-"] {
|
||||||
|
border-radius: $borderRadius;
|
||||||
|
box-sizing: border-box;
|
||||||
|
display: inline-block;
|
||||||
|
font-family: $roboto;
|
||||||
|
font-size: $tiny;
|
||||||
|
font-weight: $bold;
|
||||||
|
margin: 0;
|
||||||
|
padding: $tiny $small;
|
||||||
|
position: relative;
|
||||||
|
overflow: hidden;
|
||||||
|
|
||||||
|
&:after {
|
||||||
|
content: "";
|
||||||
|
position: absolute;
|
||||||
|
top: -40%;
|
||||||
|
left: -210%;
|
||||||
|
width: 200%;
|
||||||
|
height: 200%;
|
||||||
|
opacity: 0;
|
||||||
|
transform: rotate(30deg);
|
||||||
|
background: rgba(255,255,255,0.2);
|
||||||
|
background: linear-gradient(
|
||||||
|
to right,
|
||||||
|
rgba(255, 255, 255, 0.2) 0%,
|
||||||
|
rgba(255, 255, 255, 0.2) 77%,
|
||||||
|
rgba(255, 255, 255, 0.6) 92%,
|
||||||
|
rgba(255, 255, 255, 0.0) 100%
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
&:hover:after {
|
||||||
|
opacity: 1;
|
||||||
|
left: 110%;
|
||||||
|
transition-property: left, opacity;
|
||||||
|
transition-duration: 0.6s, 0.1s;
|
||||||
|
transition-timing-function: ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:active:after {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.small {
|
||||||
|
padding: $micro $tiny;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-primary {
|
||||||
|
background-image: linear-gradient(0deg, $lightGreen 14%, $green 94%);
|
||||||
|
color: $darkerGrey;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-secondary {
|
||||||
|
border: 1px solid white;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre {
|
||||||
|
border-radius: $borderRadius;
|
||||||
|
}
|
||||||
|
|
||||||
|
.code,
|
||||||
|
code {
|
||||||
|
font-family: 'Roboto Mono', monospace !important;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
54
website/src/css/imports/collab.css
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
.collab,
|
||||||
|
.how-it-works {
|
||||||
|
margin: $medium $tiny;
|
||||||
|
|
||||||
|
@media screen and (min-width: $mobile) {
|
||||||
|
margin: $large auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.collab {
|
||||||
|
h1 {
|
||||||
|
margin-bottom: $small;
|
||||||
|
text-align: center;
|
||||||
|
|
||||||
|
@media screen and (min-width: $mobile) {
|
||||||
|
margin-bottom: $large;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.collab-graphic {
|
||||||
|
@media screen and (min-width: $mobile) {
|
||||||
|
@neat-span-columns 4;
|
||||||
|
@neat-shift 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
margin-top: $medium;
|
||||||
|
|
||||||
|
@media screen and (min-width: $mobile) {
|
||||||
|
margin-top: 0;
|
||||||
|
text-align: left;
|
||||||
|
@neat-span-columns 5;
|
||||||
|
@neat-shift 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: $tablet) {
|
||||||
|
margin-top: $medium;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.how-it-works {
|
||||||
|
padding-bottom: $xl;
|
||||||
|
text-align: left;
|
||||||
|
|
||||||
|
.section-label:not(:first-child) {
|
||||||
|
margin-top: $large;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: $darkGreen;
|
||||||
|
}
|
||||||
|
}
|
222
website/src/css/imports/docs.css
Normal file
@ -0,0 +1,222 @@
|
|||||||
|
.docs.page {
|
||||||
|
padding: 69px $tiny $xl;
|
||||||
|
text-align: left;
|
||||||
|
@media screen and (min-width: $mobile) {
|
||||||
|
padding: 157px $medium $xl;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar {
|
||||||
|
@media screen and (min-width: $tablet) {
|
||||||
|
@neat-span-columns 6 24;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.docs-nav {
|
||||||
|
display: none;
|
||||||
|
|
||||||
|
@media screen and (min-width: $tablet) {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: $desktop) {
|
||||||
|
position: fixed;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.mobile {
|
||||||
|
display: block;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
@media screen and (min-width: $tablet) {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:after {
|
||||||
|
content: " ";
|
||||||
|
position: absolute;
|
||||||
|
top: 7px;
|
||||||
|
right: 20px;
|
||||||
|
width: 0;
|
||||||
|
height: 0;
|
||||||
|
border-left: 5px solid transparent;
|
||||||
|
border-right: 5px solid transparent;
|
||||||
|
border-top: 5px solid $grey;
|
||||||
|
z-index: 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
select {
|
||||||
|
border: none;
|
||||||
|
border-radius: $borderRadius !important;
|
||||||
|
cursor: pointer;
|
||||||
|
margin: -$medium auto $medium auto;
|
||||||
|
width: 100%;
|
||||||
|
position: relative;
|
||||||
|
padding: 14px 20px;
|
||||||
|
z-index: 2;
|
||||||
|
outline: none;
|
||||||
|
box-shadow: none;
|
||||||
|
-webkit-appearance: none;
|
||||||
|
-webkit-border-radius: 100px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-link,
|
||||||
|
.subnav-link {
|
||||||
|
display: block;
|
||||||
|
font-weight: $regular;
|
||||||
|
color: $grey;
|
||||||
|
line-height: 32px;
|
||||||
|
text-decoration: none;
|
||||||
|
text-transform: capitalize;
|
||||||
|
transition: color .2s ease;
|
||||||
|
|
||||||
|
&.active {
|
||||||
|
color: $darkGreen;
|
||||||
|
font-weight: $bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
color: $darkGreen;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-subsections {
|
||||||
|
margin: $tiny 0;
|
||||||
|
padding: 0 0 0 $tiny;
|
||||||
|
border-left: 2px solid $lightestGrey;
|
||||||
|
list-style-type: none;
|
||||||
|
|
||||||
|
li {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.subnav-link {
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.docs-content {
|
||||||
|
font-size: 18px;
|
||||||
|
line-height: 28px;
|
||||||
|
font-weight: $light;
|
||||||
|
|
||||||
|
.edit-this-page {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pencil {
|
||||||
|
fill: #7CA511;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: $tablet) {
|
||||||
|
@neat-span-columns 17 24;
|
||||||
|
@neat-shift 1 24;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: $desktop) {
|
||||||
|
@neat-shift 7 24;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
h2:not(:first-child) {
|
||||||
|
margin-top: 86px;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
text-decoration: none;
|
||||||
|
color: $darkGreen;
|
||||||
|
}
|
||||||
|
|
||||||
|
iframe {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
img {
|
||||||
|
max-width: 100%;
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
table {
|
||||||
|
background: #f7f7f7;
|
||||||
|
border-radius: $borderRadius;
|
||||||
|
}
|
||||||
|
|
||||||
|
code {
|
||||||
|
background: $lightestGrey;
|
||||||
|
border-radius: 2px;
|
||||||
|
padding: 2px 6px;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre > code {
|
||||||
|
background: initial;
|
||||||
|
padding: initial;
|
||||||
|
white-space: inherit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
h1,
|
||||||
|
h2 {
|
||||||
|
font-size: 36px;
|
||||||
|
line-height: 48px;
|
||||||
|
|
||||||
|
&.intro-headline {
|
||||||
|
padding: 0 $small;
|
||||||
|
margin-bottom: 86px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
font-size: $small;
|
||||||
|
}
|
||||||
|
|
||||||
|
h3 {
|
||||||
|
color: $grey;
|
||||||
|
font-size: 12px;
|
||||||
|
font-weight: $semibold;
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 1.5px;
|
||||||
|
margin-top: $medium;
|
||||||
|
|
||||||
|
|
||||||
|
&:after {
|
||||||
|
content: ' ';
|
||||||
|
width: $small;
|
||||||
|
height: 2px;
|
||||||
|
background: $darkGreen;
|
||||||
|
display: block;
|
||||||
|
margin-top: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.inverse {
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
table {
|
||||||
|
width: 100%;
|
||||||
|
text-align: left;
|
||||||
|
margin: 34px 0 $medium 0;
|
||||||
|
|
||||||
|
th,
|
||||||
|
td {
|
||||||
|
padding: $micro;
|
||||||
|
}
|
||||||
|
|
||||||
|
th {
|
||||||
|
font-size: 18px;
|
||||||
|
font-weight: $bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
tbody tr {
|
||||||
|
&:nth-child(odd) {
|
||||||
|
background: #fdfdfd;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
td {
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
81
website/src/css/imports/features.css
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
.features {
|
||||||
|
@neat-row;
|
||||||
|
overflow: hidden;
|
||||||
|
padding-top: $large;
|
||||||
|
position: relative;
|
||||||
|
margin: 0 auto $medium auto;
|
||||||
|
|
||||||
|
@media screen and (min-width: $mobile) {
|
||||||
|
margin: 0 auto $large auto;
|
||||||
|
padding-top: calc($xl * 1.2);
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: $tablet) {
|
||||||
|
margin-bottom: $medium;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:before {
|
||||||
|
background: url('/img/wavy-divider.svg') no-repeat top center;
|
||||||
|
background-size: contain;
|
||||||
|
top: 0;
|
||||||
|
content: '';
|
||||||
|
height: $xl;
|
||||||
|
left: -$xl;
|
||||||
|
position: absolute;
|
||||||
|
right: -$xl;
|
||||||
|
width: calc(100% + ($xl * 2));
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
text-align: center;
|
||||||
|
margin-bottom: calc($large * .9);
|
||||||
|
padding: 0 $small;
|
||||||
|
|
||||||
|
@media screen and (min-width: $tablet) {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ .features-column .feature {
|
||||||
|
@media screen and (min-width: $desktop) {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.features-column {
|
||||||
|
@media screen and (min-width: $mobile) {
|
||||||
|
@neat-span-columns 6;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: $desktop) {
|
||||||
|
@neat-span-columns 4;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.feature {
|
||||||
|
margin-bottom: $small;
|
||||||
|
padding: 0 $small;
|
||||||
|
text-align: left;
|
||||||
|
|
||||||
|
@media screen and (min-width: $desktop) {
|
||||||
|
margin-bottom: calc($large * 1.37);
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
font-size: 14px;
|
||||||
|
line-height: 26px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.features-graphic {
|
||||||
|
display: none;
|
||||||
|
padding-top: $tiny;
|
||||||
|
|
||||||
|
|
||||||
|
@media screen and (min-width: $desktop) {
|
||||||
|
display: inline-block;
|
||||||
|
@neat-span-columns 4;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
12
website/src/css/imports/footer.css
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
footer {
|
||||||
|
background: $lighterGrey;
|
||||||
|
padding: $small 0;
|
||||||
|
|
||||||
|
p {
|
||||||
|
color: $grey;
|
||||||
|
font-family: $roboto;
|
||||||
|
font-size: 12px;
|
||||||
|
opacity: .5;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
}
|
262
website/src/css/imports/header.css
Normal file
@ -0,0 +1,262 @@
|
|||||||
|
.notification {
|
||||||
|
background: #414344;
|
||||||
|
box-sizing: border-box;
|
||||||
|
color: white;
|
||||||
|
display: block;
|
||||||
|
padding: $tiny $small;
|
||||||
|
position: absolute;
|
||||||
|
text-align: center;
|
||||||
|
width: 100%;
|
||||||
|
z-index: 101;
|
||||||
|
|
||||||
|
@media screen and (min-width: $mobile) {
|
||||||
|
position: fixed;
|
||||||
|
}
|
||||||
|
|
||||||
|
em {
|
||||||
|
font-style: normal;
|
||||||
|
color: #8B8B8B;
|
||||||
|
padding: 0 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
sup,
|
||||||
|
sub {
|
||||||
|
font-size: initial;
|
||||||
|
vertical-align: initial;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-link {
|
||||||
|
text-decoration: underline;
|
||||||
|
color: $green;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.notification-loud {
|
||||||
|
background-color: $green;
|
||||||
|
color: $darkerGrey;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ header {
|
||||||
|
margin-top: 100px;
|
||||||
|
|
||||||
|
@media screen and (min-width: 360px) {
|
||||||
|
margin-top: 74px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 712px) {
|
||||||
|
margin-top: 50px;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ div:before,
|
||||||
|
+ .hero:before {
|
||||||
|
content: '';
|
||||||
|
display: block;
|
||||||
|
height: 100px;
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
|
@media screen and (min-width: 360px) {
|
||||||
|
height: 74px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 712px) {
|
||||||
|
height: 50px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
header {
|
||||||
|
background: transparent;
|
||||||
|
box-shadow: none;
|
||||||
|
font-family: $roboto;
|
||||||
|
position: absolute;
|
||||||
|
padding: $medium 0;
|
||||||
|
text-align: center;
|
||||||
|
transition: background .2s ease, padding .2s ease, box-shadow .2s ease;
|
||||||
|
width: 100%;
|
||||||
|
z-index: 100;
|
||||||
|
|
||||||
|
@media screen and (min-width: $mobile) {
|
||||||
|
text-align: right;
|
||||||
|
position: fixed;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.scrolled {
|
||||||
|
@media screen and (min-width: $mobile) {
|
||||||
|
background: $darkGrey;
|
||||||
|
padding: $small 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.docs {
|
||||||
|
background: $darkGrey;
|
||||||
|
padding: $small 0;
|
||||||
|
|
||||||
|
@media screen and (max-width: $mobile) {
|
||||||
|
position: static;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-link {
|
||||||
|
@media screen and (min-width: 487px) and (max-width: 767px) {
|
||||||
|
margin-top: $micro;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.github-btn {
|
||||||
|
@media screen and (max-width: 767px) {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.utility-input {
|
||||||
|
@media screen and (max-width: 767px) {
|
||||||
|
display: block;
|
||||||
|
height: $small;
|
||||||
|
margin: $tiny 0 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 487px) and (max-width: 767px) {
|
||||||
|
margin-top: 32px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: white;
|
||||||
|
display: inline-block;
|
||||||
|
vertical-align: middle;
|
||||||
|
-webkit-vertical-align: middle !important;
|
||||||
|
margin-left: $micro;
|
||||||
|
|
||||||
|
@media screen and (min-width: $mobile) {
|
||||||
|
margin-left: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: $tablet) {
|
||||||
|
margin-left: $micro;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.nav-link:not(:nth-child(2)):before {
|
||||||
|
content: '•';
|
||||||
|
padding-right: $tiny;
|
||||||
|
color: $green;
|
||||||
|
|
||||||
|
@media screen and (min-width: $mobile) {
|
||||||
|
padding-right: $micro;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: $tablet) {
|
||||||
|
padding-right: $tiny;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
color: $green;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.github-btn {
|
||||||
|
margin-top: $tiny;
|
||||||
|
margin-left: $micro;
|
||||||
|
|
||||||
|
@media screen and (min-width: 688px) {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
img {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.algolia-search {
|
||||||
|
margin-top: 1px;
|
||||||
|
-webkit-margin-top: 0;
|
||||||
|
-webkit-display: inline-block;
|
||||||
|
vertical-align: baseline !important;
|
||||||
|
}
|
||||||
|
input.closed {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
input {
|
||||||
|
padding-left: 0;
|
||||||
|
border: none;
|
||||||
|
border-radius: 0;
|
||||||
|
appearance: none;
|
||||||
|
background: none;
|
||||||
|
color: $lightGrey;
|
||||||
|
padding: 2px $micro $micro 0;
|
||||||
|
display: inline-block;
|
||||||
|
font-size: $tiny;
|
||||||
|
font-weight: $regular;
|
||||||
|
max-width: 160px;
|
||||||
|
-webkit-appearance: none;
|
||||||
|
visibility: visible;
|
||||||
|
|
||||||
|
&:focus {
|
||||||
|
outline: none;
|
||||||
|
display: inline-block;
|
||||||
|
|
||||||
|
~ .bar {
|
||||||
|
&::before,
|
||||||
|
&::after {
|
||||||
|
width: 50%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
~ .button-submit {
|
||||||
|
margin-top: -35px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.utility-input {
|
||||||
|
display: none;
|
||||||
|
padding: $micro;
|
||||||
|
width: auto;
|
||||||
|
border: 1px solid white;
|
||||||
|
border-radius: 4px;
|
||||||
|
background: none;
|
||||||
|
color: white;
|
||||||
|
margin: 0 $micro 0 10px;
|
||||||
|
padding-bottom: 9px;
|
||||||
|
text-align: left;
|
||||||
|
text-decoration: none;
|
||||||
|
font-weight: 600;
|
||||||
|
font-size: 16px;
|
||||||
|
line-height: 24px;
|
||||||
|
transition: all .2s ease-in-out;
|
||||||
|
|
||||||
|
@media screen and (min-width: 968px) {
|
||||||
|
display: inline;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:focus,
|
||||||
|
&:active {
|
||||||
|
outline-style: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
&::-webkit-input-placeholder,
|
||||||
|
&:-moz-placeholder,
|
||||||
|
&::-moz-placeholder,
|
||||||
|
&:-ms-input-placeholder {
|
||||||
|
font-size: $tiny;
|
||||||
|
font-weight: $semibold;
|
||||||
|
text-align: left;
|
||||||
|
text-decoration: none;
|
||||||
|
line-height: $small;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.logo {
|
||||||
|
margin: 0 auto $tiny auto;
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
|
@media screen and (min-width: $mobile) {
|
||||||
|
float: left;
|
||||||
|
margin: -$micro 0 -6px 0;
|
||||||
|
width: initial;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
231
website/src/css/imports/hero.css
Normal file
@ -0,0 +1,231 @@
|
|||||||
|
.hero {
|
||||||
|
@neat-row;
|
||||||
|
background: $darkerGrey;
|
||||||
|
background-image: linear-gradient(-17deg, $darkerGrey 17%, $darkGrey 94%);
|
||||||
|
color: white;
|
||||||
|
overflow: hidden;
|
||||||
|
padding: calc($xl * 2.25) 0 $large 0;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
@media screen and (min-width: $mobile) {
|
||||||
|
padding-top: calc($xl * 1.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: $tablet) {
|
||||||
|
padding-top: calc($large * 1.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
&:before {
|
||||||
|
background: url('/img/bow.svg') no-repeat bottom center;
|
||||||
|
background-size: contain;
|
||||||
|
bottom: -1px;
|
||||||
|
content: '';
|
||||||
|
height: $xl;
|
||||||
|
left: -$xl;
|
||||||
|
position: absolute;
|
||||||
|
right: -$xl;
|
||||||
|
width: calc(100% + ($xl * 2));
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: $tablet) {
|
||||||
|
background-position: center;
|
||||||
|
padding: calc($xl * 1.5) 0 $xl 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hero-copy {
|
||||||
|
@media screen and (min-width: $tablet) {
|
||||||
|
@neat-span-columns 6;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.headline {
|
||||||
|
margin-top: -12px;
|
||||||
|
max-width: 400px;
|
||||||
|
|
||||||
|
@media screen and (min-width: $mobile) {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
span {
|
||||||
|
display: none;
|
||||||
|
|
||||||
|
@media screen and (min-width: $tablet) {
|
||||||
|
display: initial;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.subhead {
|
||||||
|
display: inline-block;
|
||||||
|
margin: $micro auto;
|
||||||
|
text-align: left;
|
||||||
|
|
||||||
|
@media screen and (min-width: $mobile) {
|
||||||
|
display: block;
|
||||||
|
margin: $medium 0 $small 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.ctas {
|
||||||
|
margin-bottom: $small;
|
||||||
|
|
||||||
|
@media screen and (min-width: $mobile) {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul {
|
||||||
|
list-style-type: none;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: $green;
|
||||||
|
font-weight: $semibold;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-secondary {
|
||||||
|
display: none;
|
||||||
|
padding-top: 14px;
|
||||||
|
max-height: 53px;
|
||||||
|
margin: 0 0 0 calc($micro / 2);
|
||||||
|
|
||||||
|
@media screen and (min-width: $tablet) {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
strong {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mooseheads {
|
||||||
|
margin: $micro 0 0 0;
|
||||||
|
|
||||||
|
@media screen and (min-width: $mobile) {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
strong {
|
||||||
|
font-size: 12px;
|
||||||
|
opacity: .5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.hero-graphic {
|
||||||
|
@neat-span-columns 6;
|
||||||
|
display: none;
|
||||||
|
|
||||||
|
@media screen and (min-width: $tablet) {
|
||||||
|
display: initial;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:before {
|
||||||
|
border: 1px solid white;
|
||||||
|
border-bottom: none;
|
||||||
|
border-radius: $largeBorderRadius $largeBorderRadius 0 0;
|
||||||
|
box-sizing: border-box;
|
||||||
|
content: '•••';
|
||||||
|
display: block;
|
||||||
|
font-size: $small;
|
||||||
|
height: $small;
|
||||||
|
line-height: 22px;
|
||||||
|
padding-left: 6px;
|
||||||
|
text-align: left;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
img {
|
||||||
|
border: 1px solid white;
|
||||||
|
border-radius: 0 0 $largeBorderRadius $largeBorderRadius;
|
||||||
|
box-sizing: border-box;
|
||||||
|
overflow: hidden;
|
||||||
|
width: 100%;
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.calendar-cta {
|
||||||
|
text-align: center;
|
||||||
|
background: $darkerGrey;
|
||||||
|
background-image: linear-gradient(-17deg, $darkerGrey 17%, $darkGrey 94%);
|
||||||
|
border-radius: $largeBorderRadius;
|
||||||
|
box-shadow: 0 $micro $small rgba(0,0,0,0.1);
|
||||||
|
padding: $medium;
|
||||||
|
box-sizing: border-box;
|
||||||
|
|
||||||
|
@media screen and (min-width: $tablet) {
|
||||||
|
max-width: 446px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: $tablet) {
|
||||||
|
@neat-span-columns 5;
|
||||||
|
@neat-shift 1;
|
||||||
|
display: inline-block;
|
||||||
|
position: fixed;
|
||||||
|
right: $medium;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 1280px) {
|
||||||
|
right: initial;
|
||||||
|
left: calc(50% - $large);
|
||||||
|
}
|
||||||
|
|
||||||
|
.calendar {
|
||||||
|
border-radius: $largeBorderRadius;
|
||||||
|
overflow: hidden;
|
||||||
|
box-shadow: 0 $micro $small rgba(0,0,0,0.5);
|
||||||
|
margin: $small auto;
|
||||||
|
max-width: 250px;
|
||||||
|
|
||||||
|
.month {
|
||||||
|
background: $green;
|
||||||
|
color: $grey;
|
||||||
|
font-weight: $black;
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 4px;
|
||||||
|
font-size: $tiny;
|
||||||
|
padding: $tiny;
|
||||||
|
}
|
||||||
|
|
||||||
|
.day {
|
||||||
|
font-size: $xl;
|
||||||
|
font-weight: $black;
|
||||||
|
color: white;
|
||||||
|
border: 1px solid $grey;
|
||||||
|
border-top: none;
|
||||||
|
border-bottom-left-radius: $largeBorderRadius;
|
||||||
|
border-bottom-right-radius: $largeBorderRadius;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
strong {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2:not(:first-child) {
|
||||||
|
font-weight: $light;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cal-cta {
|
||||||
|
margin-top: $micro;
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: $green;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.thanks-devs {
|
||||||
|
line-height: 18px;
|
||||||
|
margin: $micro 0 0 0;
|
||||||
|
opacity: 0.5;
|
||||||
|
text-align: center;
|
||||||
|
|
||||||
|
@media screen and (min-width: $tablet) {
|
||||||
|
font-size: $tiny;
|
||||||
|
line-height: 21px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
41
website/src/css/imports/inspiration.css
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
.inspiration {
|
||||||
|
margin: $small $small $large $small;
|
||||||
|
text-align: center;
|
||||||
|
|
||||||
|
@media screen and (min-width: $tablet) {
|
||||||
|
margin: $xl $small;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
margin-bottom: $small;
|
||||||
|
|
||||||
|
@media screen and (min-width: $tablet) {
|
||||||
|
margin-bottom: 44px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
box-sizing: border-box;
|
||||||
|
display: inline-block;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0 auto $small auto;
|
||||||
|
max-width: 700px;
|
||||||
|
text-align: left;
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
|
&:nth-child(2) {
|
||||||
|
font-size: $tiny;
|
||||||
|
line-height: $small;
|
||||||
|
font-weight: $bold;
|
||||||
|
|
||||||
|
@media screen and (min-width: $tablet) {
|
||||||
|
font-size: $small;
|
||||||
|
line-height: $medium;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: $darkGreen;
|
||||||
|
}
|
||||||
|
}
|
259
website/src/css/imports/utilities.css
Normal file
@ -0,0 +1,259 @@
|
|||||||
|
@keyframes fadeInUp {
|
||||||
|
0% {
|
||||||
|
opacity: 0;
|
||||||
|
transform: translateY(10px);
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
opacity: 1;
|
||||||
|
transform: translateY(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.centered-text {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.container {
|
||||||
|
@neat-outer-container;
|
||||||
|
}
|
||||||
|
|
||||||
|
.half,
|
||||||
|
.third,
|
||||||
|
.quarter {
|
||||||
|
padding-bottom: $small;
|
||||||
|
@neat-span-columns 12;
|
||||||
|
|
||||||
|
@media screen and (min-width: $tablet) {
|
||||||
|
@neat-span-columns 6;
|
||||||
|
padding-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:nth-child(even) {
|
||||||
|
@media screen and (min-width: $mobile) and (max-width: 767px) {
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.third {
|
||||||
|
@media screen and (min-width: $tablet) {
|
||||||
|
@neat-span-columns 4;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.quarter {
|
||||||
|
@media screen and (min-width: $tablet) {
|
||||||
|
@neat-span-columns 3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.clearfix {
|
||||||
|
&:after {
|
||||||
|
content: ' ';
|
||||||
|
width: 100%;
|
||||||
|
display: table;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.section-label {
|
||||||
|
color: $grey;
|
||||||
|
font-size: 12px;
|
||||||
|
font-weight: $semibold;
|
||||||
|
letter-spacing: 1.5px;
|
||||||
|
text-transform: uppercase;
|
||||||
|
|
||||||
|
&:after {
|
||||||
|
background: $darkGreen;
|
||||||
|
content: ' ';
|
||||||
|
display: block;
|
||||||
|
height: 2px;
|
||||||
|
margin-top: 5px;
|
||||||
|
width: $small;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.inverse {
|
||||||
|
color: white;
|
||||||
|
|
||||||
|
&.mono:after {
|
||||||
|
background: $grey;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.extended {
|
||||||
|
display: inline-block;
|
||||||
|
line-height: 1.15;
|
||||||
|
|
||||||
|
&:after {
|
||||||
|
position: relative;
|
||||||
|
height: 1px;
|
||||||
|
left: -10000%;
|
||||||
|
width: calc(10100%);
|
||||||
|
z-index: -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
img.responsive {
|
||||||
|
width: 100%;
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.img-bg-hero {
|
||||||
|
color: white;
|
||||||
|
background-size: 100% auto;
|
||||||
|
background-size: cover !important;
|
||||||
|
|
||||||
|
h1,
|
||||||
|
h2 {
|
||||||
|
color: white;
|
||||||
|
font-weight: $light;
|
||||||
|
|
||||||
|
@media screen and (min-width: $tablet) {
|
||||||
|
font-weight: $thin;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagination {
|
||||||
|
text-align: center;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
list-style-type: none;
|
||||||
|
|
||||||
|
@media screen and (min-width: $tablet) {
|
||||||
|
@neat-span-columns 8;
|
||||||
|
@neat-shift 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
li {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
display: inline;
|
||||||
|
|
||||||
|
@media screen and (min-width: $tablet) {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.active a,
|
||||||
|
a[aria-label] {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
text-decoration: none;
|
||||||
|
font-weight: $light;
|
||||||
|
color: $grey;
|
||||||
|
width: 18px;
|
||||||
|
font-size: $tiny;
|
||||||
|
padding: $micro;
|
||||||
|
border-radius: 99px;
|
||||||
|
display: none;
|
||||||
|
|
||||||
|
@media screen and (min-width: $tablet) {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.active a {
|
||||||
|
color: white;
|
||||||
|
background: $green;
|
||||||
|
}
|
||||||
|
|
||||||
|
.disabled a {
|
||||||
|
color: $lighterGrey;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.unordered-list ul {
|
||||||
|
margin: 0 0 $small 0;
|
||||||
|
padding: 0;
|
||||||
|
font-size: 16px;
|
||||||
|
line-height: 28px;
|
||||||
|
list-style-type: none;
|
||||||
|
list-style-position: inside;
|
||||||
|
|
||||||
|
&:last-child {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
li span {
|
||||||
|
position: relative;
|
||||||
|
padding-left: $small;
|
||||||
|
display: list-item;
|
||||||
|
|
||||||
|
&:before {
|
||||||
|
content: '\2192';
|
||||||
|
color: $green;
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.numbered-list ol {
|
||||||
|
list-style-type: decimal-leading-zero;
|
||||||
|
margin: 32px 0 0 0;
|
||||||
|
padding: 0 0 0 78px;
|
||||||
|
|
||||||
|
li {
|
||||||
|
margin-bottom: 33px;
|
||||||
|
font-size: 34px;
|
||||||
|
font-weight: $bold;
|
||||||
|
color: $grey;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
|
||||||
|
&:before,
|
||||||
|
&:after {
|
||||||
|
position: absolute;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:before {
|
||||||
|
content: 'N';
|
||||||
|
top: 6px;
|
||||||
|
left: -78px;
|
||||||
|
padding-bottom: 2px;
|
||||||
|
border-bottom: 1px solid $green;
|
||||||
|
padding-right: 25px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:after {
|
||||||
|
content: 'ọ';
|
||||||
|
left: -69px;
|
||||||
|
top: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:last-child {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
font-size: 34px;
|
||||||
|
margin-bottom: $tiny;
|
||||||
|
|
||||||
|
@media screen and (min-width: $tablet) {
|
||||||
|
margin-bottom: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:before {
|
||||||
|
content: ' ';
|
||||||
|
position: absolute;
|
||||||
|
background: white;
|
||||||
|
left: -19px;
|
||||||
|
height: 10px;
|
||||||
|
width: 10px;
|
||||||
|
top: $small;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
margin: 0;
|
||||||
|
font-size: 18px;
|
||||||
|
font-weight: $regular;
|
||||||
|
line-height: 28px;
|
||||||
|
color: $lightGrey;
|
||||||
|
}
|
||||||
|
}
|
178
website/src/css/lib/prism.css
Normal file
@ -0,0 +1,178 @@
|
|||||||
|
/* http://prismjs.com/download.html?themes=prism&languages=markup+css+clike+javascript+bash+ruby+git+go+json+jsx+yaml&plugins=line-numbers */
|
||||||
|
/**
|
||||||
|
* prism.js default theme for JavaScript, CSS and HTML
|
||||||
|
* Based on dabblet (http://dabblet.com)
|
||||||
|
* @author Lea Verou
|
||||||
|
*/
|
||||||
|
|
||||||
|
code[class*="language-"],
|
||||||
|
pre[class*="language-"] {
|
||||||
|
color: black;
|
||||||
|
background: none;
|
||||||
|
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;
|
||||||
|
|
||||||
|
-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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Code blocks */
|
||||||
|
pre[class*="language-"] {
|
||||||
|
padding: 1em;
|
||||||
|
margin: .5em 0;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
:not(pre) > code[class*="language-"],
|
||||||
|
pre[class*="language-"] {
|
||||||
|
background: #f5f2f0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Inline code */
|
||||||
|
: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: hsla(0, 0%, 100%, .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;
|
||||||
|
}
|
||||||
|
|
||||||
|
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; /* works for line-numbers below 1000 lines */
|
||||||
|
letter-spacing: -1px;
|
||||||
|
border-right: 1px solid #999;
|
||||||
|
|
||||||
|
-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: #999;
|
||||||
|
display: block;
|
||||||
|
padding-right: 0.8em;
|
||||||
|
text-align: right;
|
||||||
|
}
|
10
website/src/css/main.css
Executable file
@ -0,0 +1,10 @@
|
|||||||
|
@import "imports/base.css";
|
||||||
|
@import "imports/utilities.css";
|
||||||
|
@import "imports/header.css";
|
||||||
|
@import "imports/hero.css";
|
||||||
|
@import "imports/collab.css";
|
||||||
|
@import "imports/features.css";
|
||||||
|
@import "imports/inspiration.css";
|
||||||
|
@import "imports/docs.css";
|
||||||
|
@import "imports/footer.css";
|
||||||
|
|
16
website/src/img/bow.svg
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg width="1440px" height="26px" viewBox="0 0 1440 26" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
<!-- Generator: Sketch 42 (36781) - http://www.bohemiancoding.com/sketch -->
|
||||||
|
<title>bow</title>
|
||||||
|
<desc>Created with Sketch.</desc>
|
||||||
|
<defs></defs>
|
||||||
|
<g id="landing" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||||
|
<g id="cms-landing-v6" transform="translate(0.000000, -666.000000)" fill="#FFFFFF">
|
||||||
|
<g id="hero-(green)">
|
||||||
|
<g id="background">
|
||||||
|
<path d="M0,692 L1440,692 L1440,666.431373 C1440,666.431373 1080,692 720,692 C360,692 0,666.431373 0,666.431373 L0,692 Z" id="bow"></path>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 819 B |
42
website/src/img/collab.svg
Normal file
After Width: | Height: | Size: 28 KiB |
BIN
website/src/img/demo.gif
Normal file
After Width: | Height: | Size: 2.8 MiB |
BIN
website/src/img/favicon/android-chrome-192x192.png
Normal file
After Width: | Height: | Size: 21 KiB |
BIN
website/src/img/favicon/android-chrome-512x512.png
Normal file
After Width: | Height: | Size: 67 KiB |
BIN
website/src/img/favicon/apple-touch-icon.png
Normal file
After Width: | Height: | Size: 9.5 KiB |
9
website/src/img/favicon/browserconfig.xml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<browserconfig>
|
||||||
|
<msapplication>
|
||||||
|
<tile>
|
||||||
|
<square150x150logo src="/mstile-150x150.png"/>
|
||||||
|
<TileColor>#222222</TileColor>
|
||||||
|
</tile>
|
||||||
|
</msapplication>
|
||||||
|
</browserconfig>
|
BIN
website/src/img/favicon/favicon-16x16.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
website/src/img/favicon/favicon-32x32.png
Normal file
After Width: | Height: | Size: 2.0 KiB |
BIN
website/src/img/favicon/favicon.ico
Normal file
After Width: | Height: | Size: 15 KiB |
18
website/src/img/favicon/manifest.json
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"name": "NetlifyCMS",
|
||||||
|
"icons": [
|
||||||
|
{
|
||||||
|
"src": "/android-chrome-192x192.png",
|
||||||
|
"sizes": "192x192",
|
||||||
|
"type": "image/png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "/android-chrome-512x512.png",
|
||||||
|
"sizes": "512x512",
|
||||||
|
"type": "image/png"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"theme_color": "#ffffff",
|
||||||
|
"background_color": "#ffffff",
|
||||||
|
"display": "standalone"
|
||||||
|
}
|
BIN
website/src/img/favicon/mstile-144x144.png
Normal file
After Width: | Height: | Size: 8.4 KiB |
BIN
website/src/img/favicon/mstile-150x150.png
Normal file
After Width: | Height: | Size: 8.0 KiB |
BIN
website/src/img/favicon/mstile-310x150.png
Normal file
After Width: | Height: | Size: 8.5 KiB |
BIN
website/src/img/favicon/mstile-310x310.png
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
website/src/img/favicon/mstile-70x70.png
Normal file
After Width: | Height: | Size: 5.7 KiB |
98
website/src/img/favicon/safari-pinned-tab.svg
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
<?xml version="1.0" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
|
||||||
|
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||||
|
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width="16.000000pt" height="16.000000pt" viewBox="0 0 16.000000 16.000000"
|
||||||
|
preserveAspectRatio="xMidYMid meet">
|
||||||
|
<metadata>
|
||||||
|
Created by potrace 1.11, written by Peter Selinger 2001-2013
|
||||||
|
</metadata>
|
||||||
|
<g transform="translate(0.000000,16.000000) scale(0.002286,-0.002286)"
|
||||||
|
fill="#000000" stroke="none">
|
||||||
|
<path d="M2750 6290 c-393 -390 -712 -711 -710 -714 3 -2 196 -85 430 -184
|
||||||
|
234 -99 447 -189 473 -201 49 -21 49 -21 76 -2 74 53 141 66 299 58 33 -2 33
|
||||||
|
-2 318 438 156 242 288 447 294 455 15 22 145 223 153 237 4 6 -113 131 -298
|
||||||
|
315 -168 166 -309 304 -313 305 -4 1 -329 -317 -722 -707z"/>
|
||||||
|
<path d="M4193 6162 c-23 -37 -92 -143 -152 -237 -60 -93 -200 -311 -311 -483
|
||||||
|
-111 -172 -204 -321 -207 -331 -3 -11 2 -30 11 -42 8 -13 22 -51 30 -83 9 -32
|
||||||
|
17 -60 19 -62 3 -4 76 -35 227 -99 69 -29 275 -116 459 -194 183 -78 339 -140
|
||||||
|
345 -137 70 35 110 64 111 81 1 11 5 36 8 55 4 19 9 53 12 75 3 22 8 51 10 65
|
||||||
|
3 14 7 39 9 55 3 17 14 86 25 155 12 69 23 143 27 165 3 22 7 51 10 65 5 32
|
||||||
|
33 204 40 250 3 19 10 55 14 80 6 31 5 50 -3 60 -20 24 -627 625 -635 627 -4
|
||||||
|
1 -26 -28 -49 -65z"/>
|
||||||
|
<path d="M1495 5040 c-209 -209 -379 -383 -378 -388 2 -7 418 -619 440 -647 4
|
||||||
|
-5 20 -28 35 -50 15 -22 103 -152 197 -289 l170 -248 109 -2 108 -1 88 135
|
||||||
|
c48 74 109 169 136 210 26 41 167 259 313 485 l264 409 -33 49 c-19 27 -41 73
|
||||||
|
-50 103 -15 52 -21 144 -11 161 11 17 -10 31 -108 73 -55 23 -279 118 -497
|
||||||
|
211 -218 93 -398 169 -400 169 -2 0 -174 -171 -383 -380z"/>
|
||||||
|
<path d="M5066 5373 c-7 -37 -66 -399 -72 -440 -2 -18 -11 -72 -19 -120 -9
|
||||||
|
-49 -18 -104 -21 -123 -3 -19 -7 -46 -9 -60 -17 -105 -20 -93 38 -137 l53 -39
|
||||||
|
43 18 c24 10 57 25 75 33 17 7 119 51 226 95 107 45 209 88 225 95 17 8 52 23
|
||||||
|
79 35 l50 22 -327 324 c-180 178 -329 324 -331 324 -2 0 -7 -12 -10 -27z"/>
|
||||||
|
<path d="M3491 4679 c-67 -81 -156 -122 -270 -123 l-63 -1 -234 -360 c-129
|
||||||
|
-198 -238 -367 -242 -375 -4 -8 -41 -67 -82 -130 -202 -308 -234 -359 -227
|
||||||
|
-367 5 -4 191 70 342 138 33 14 333 142 1165 496 58 25 119 51 135 58 17 7
|
||||||
|
127 55 245 105 118 50 218 94 221 98 4 4 9 26 12 49 l5 41 -77 33 c-42 18
|
||||||
|
-101 43 -131 57 -30 13 -93 40 -140 59 -47 19 -206 86 -353 149 -148 63 -269
|
||||||
|
114 -270 114 -1 0 -17 -19 -36 -41z"/>
|
||||||
|
<path d="M5755 4534 c-71 -31 -215 -92 -320 -136 -264 -112 -285 -122 -282
|
||||||
|
-131 1 -5 93 -47 202 -93 110 -46 209 -88 220 -94 11 -5 81 -34 155 -66 74
|
||||||
|
-31 149 -62 165 -69 17 -8 75 -32 130 -55 55 -23 114 -47 130 -55 204 -91 822
|
||||||
|
-345 834 -343 11 3 -59 78 -209 227 -124 122 -371 368 -551 547 -179 178 -329
|
||||||
|
324 -335 324 -5 0 -67 -26 -139 -56z"/>
|
||||||
|
<path d="M720 4279 c-454 -445 -720 -713 -712 -720 4 -3 99 -25 212 -48 243
|
||||||
|
-50 814 -169 850 -177 35 -8 61 -13 95 -20 17 -2 46 -9 65 -14 19 -5 50 -12
|
||||||
|
68 -15 18 -3 65 -12 105 -21 39 -8 81 -17 92 -19 11 -3 52 -11 90 -19 116 -25
|
||||||
|
109 -26 153 33 l41 54 -43 61 c-23 34 -130 187 -236 341 -428 620 -447 648
|
||||||
|
-459 662 -6 7 -16 24 -23 38 -6 14 -14 25 -17 25 -4 0 -15 14 -24 30 -10 17
|
||||||
|
-21 30 -25 30 -4 0 -109 -99 -232 -221z"/>
|
||||||
|
<path d="M5030 4045 c-31 -33 -94 -70 -147 -85 -49 -15 -48 -13 -68 -155 -4
|
||||||
|
-22 -8 -47 -10 -55 -2 -8 -7 -35 -10 -60 -3 -25 -10 -67 -15 -95 -5 -27 -11
|
||||||
|
-66 -14 -85 -3 -19 -12 -75 -20 -125 -21 -124 -65 -392 -72 -439 -3 -21 -7
|
||||||
|
-46 -9 -55 -19 -102 -19 -98 24 -147 26 -29 47 -68 58 -103 9 -31 21 -61 27
|
||||||
|
-67 6 -6 58 -21 116 -32 58 -11 193 -39 300 -62 107 -22 209 -43 225 -46 17
|
||||||
|
-3 46 -9 65 -14 29 -7 102 -23 215 -46 11 -2 31 -6 45 -9 14 -3 43 -8 65 -11
|
||||||
|
l40 -5 490 487 490 487 -45 19 c-25 11 -209 89 -410 174 -201 85 -374 158
|
||||||
|
-385 163 -11 5 -41 18 -67 30 -26 12 -50 21 -53 21 -2 0 -28 11 -57 24 -77 35
|
||||||
|
-744 316 -751 316 -2 0 -14 -11 -27 -25z"/>
|
||||||
|
<path d="M4465 3985 c-128 -56 -140 -61 -325 -140 -85 -36 -168 -72 -185 -79
|
||||||
|
-16 -8 -75 -33 -130 -56 -154 -65 -1196 -509 -1230 -524 -16 -8 -54 -24 -82
|
||||||
|
-36 -48 -20 -53 -25 -53 -54 0 -17 4 -36 8 -43 6 -10 143 -43 272 -67 14 -2
|
||||||
|
81 -16 150 -31 69 -14 136 -29 150 -31 60 -12 221 -45 290 -59 243 -51 408
|
||||||
|
-85 430 -89 14 -3 34 -7 45 -9 11 -3 103 -22 204 -43 l184 -37 19 24 c56 73
|
||||||
|
132 123 200 131 35 5 38 9 44 50 3 18 14 87 25 153 23 141 26 157 34 210 3 23
|
||||||
|
8 52 10 65 3 14 10 54 15 90 18 111 51 314 55 340 3 14 12 73 21 133 16 102
|
||||||
|
16 108 -1 127 -24 27 -35 25 -150 -25z"/>
|
||||||
|
<path d="M138 3305 c-8 -9 652 -660 665 -657 7 2 172 71 367 154 195 83 374
|
||||||
|
158 398 167 23 9 42 22 42 28 0 7 -3 13 -7 14 -13 1 -39 6 -266 53 -120 25
|
||||||
|
-228 48 -240 50 -66 13 -186 38 -217 46 -19 5 -48 11 -65 14 -50 9 -86 16
|
||||||
|
-180 36 -49 11 -101 22 -115 24 -14 3 -101 21 -195 40 -186 39 -179 38 -187
|
||||||
|
31z"/>
|
||||||
|
<path d="M2406 2816 c-17 -27 -25 -13 106 -201 30 -44 111 -161 180 -260 68
|
||||||
|
-99 140 -202 159 -230 19 -27 86 -124 149 -215 63 -91 274 -397 470 -680 196
|
||||||
|
-283 387 -560 425 -615 38 -55 70 -102 72 -105 2 -2 28 20 58 50 46 46 56 62
|
||||||
|
60 100 3 25 7 52 10 60 2 8 7 35 10 60 3 25 12 81 20 125 7 44 16 100 20 125
|
||||||
|
3 25 10 68 15 95 5 28 12 68 15 90 3 23 8 52 10 65 3 14 8 43 11 65 2 22 18
|
||||||
|
117 34 210 15 94 31 186 34 205 22 145 77 478 80 493 3 12 -7 23 -34 37 -47
|
||||||
|
24 -103 89 -127 146 -21 51 -13 48 -218 88 -157 32 -251 51 -350 72 -42 9
|
||||||
|
-121 26 -145 30 -14 2 -56 11 -95 20 -65 14 -136 29 -195 40 -14 3 -59 12
|
||||||
|
-100 20 -41 9 -138 29 -215 44 -77 16 -205 43 -285 59 -80 17 -148 31 -151 31
|
||||||
|
-4 0 -14 -11 -23 -24z"/>
|
||||||
|
<path d="M1420 2684 c-162 -69 -330 -140 -372 -157 -43 -18 -78 -37 -78 -42 0
|
||||||
|
-16 360 -366 370 -360 4 3 35 49 69 102 34 54 113 177 176 273 169 259 168
|
||||||
|
256 149 286 -9 13 -17 24 -18 24 0 0 -134 -57 -296 -126z"/>
|
||||||
|
<path d="M2185 2642 c-43 -16 -193 -21 -237 -8 -25 7 -29 3 -85 -83 -32 -51
|
||||||
|
-89 -140 -128 -200 -38 -59 -86 -132 -104 -162 -19 -30 -59 -90 -88 -135 -29
|
||||||
|
-45 -53 -86 -53 -91 0 -10 424 -435 940 -943 113 -111 388 -383 611 -606 224
|
||||||
|
-222 412 -405 418 -406 6 -2 89 75 185 171 l175 174 -22 32 c-12 18 -50 73
|
||||||
|
-83 122 -34 48 -116 167 -182 263 -66 96 -135 195 -152 220 -38 54 -241 348
|
||||||
|
-351 510 -44 63 -93 135 -110 160 -18 25 -176 254 -352 510 -175 256 -324 470
|
||||||
|
-331 476 -8 8 -22 6 -51 -4z"/>
|
||||||
|
<path d="M4683 2343 c-9 -13 -40 -38 -68 -54 l-52 -29 -22 -133 c-11 -72 -23
|
||||||
|
-143 -25 -157 -6 -32 -37 -228 -41 -255 -2 -11 -26 -157 -53 -325 -28 -168
|
||||||
|
-53 -323 -56 -345 -4 -22 -11 -68 -17 -103 -12 -67 -8 -83 14 -61 419 410
|
||||||
|
1287 1276 1287 1284 0 6 -73 25 -162 43 -90 19 -172 35 -183 38 -11 2 -54 11
|
||||||
|
-95 19 -41 8 -86 18 -100 21 -14 3 -36 7 -50 10 -14 3 -88 18 -165 34 -210 43
|
||||||
|
-193 42 -212 13z"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 6.2 KiB |
14
website/src/img/github.svg
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg width="17px" height="16px" viewBox="0 0 17 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
<!-- Generator: Sketch 41.2 (35397) - http://www.bohemiancoding.com/sketch -->
|
||||||
|
<title>Shape Copy</title>
|
||||||
|
<desc>Created with Sketch.</desc>
|
||||||
|
<defs></defs>
|
||||||
|
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||||
|
<g id="jamstack-landing" transform="translate(-1053.000000, -48.000000)" fill="#FFFFFF">
|
||||||
|
<g id="header" transform="translate(250.000000, 40.000000)">
|
||||||
|
<path d="M811.198938,8 C806.671816,8 803,11.6725529 803,16.2027524 C803,19.8271171 805.349142,22.9014191 808.607399,23.9861654 C809.017371,24.0610108 809.167011,23.8082793 809.167011,23.5909199 C809.167011,23.3961167 809.159837,22.8793756 809.15625,22.1950012 C806.875265,22.6907241 806.39406,21.0953885 806.39406,21.0953885 C806.021497,20.1485424 805.483921,19.8958109 805.483921,19.8958109 C804.739308,19.3877847 805.540292,19.3970122 805.540292,19.3970122 C806.363312,19.4549405 806.796345,20.2428682 806.796345,20.2428682 C807.528146,21.4952477 808.715529,21.1333238 809.182898,20.9241667 C809.257205,20.394097 809.469366,20.0321731 809.703563,19.8276298 C807.882772,19.6200106 805.968713,18.9171812 805.968713,15.7731601 C805.968713,14.8775781 806.288492,14.1455282 806.812744,13.5723967 C806.727675,13.3647775 806.446331,12.5312248 806.892176,11.401879 C806.892176,11.401879 807.58093,11.1814438 809.147025,12.2431212 C809.800931,12.061134 810.502497,11.9698841 811.199962,11.9668082 C811.896403,11.9698841 812.597456,12.061134 813.2529,12.2431212 C814.818482,11.1814438 815.505699,11.401879 815.505699,11.401879 C815.953081,12.5312248 815.671225,13.3652901 815.587181,13.5723967 C816.111945,14.1460408 816.430187,14.8780907 816.430187,15.7731601 C816.430187,18.9243581 814.513053,19.61796 812.686113,19.8204528 C812.980781,20.0747223 813.24265,20.5755715 813.24265,21.3404304 C813.24265,22.4369673 813.232401,23.3207587 813.232401,23.5909199 C813.232401,23.8098172 813.379991,24.0645993 813.796626,23.9851401 C817.051807,22.8983433 819.3989,19.8260919 819.3989,16.2027524 C819.3989,11.6725529 815.727596,8 811.198938,8 L811.198938,8 Z" id="Shape-Copy"></path>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.3 KiB |
14
website/src/img/heart.svg
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg width="14px" height="13px" viewBox="0 0 14 13" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
<!-- Generator: Sketch 41.2 (35397) - http://www.bohemiancoding.com/sketch -->
|
||||||
|
<title>heart</title>
|
||||||
|
<desc>Created with Sketch.</desc>
|
||||||
|
<defs></defs>
|
||||||
|
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||||
|
<g id="jamstack-landing" transform="translate(-713.000000, -3752.000000)" fill="#FB6D77">
|
||||||
|
<g id="articles" transform="translate(0.000000, 2345.000000)">
|
||||||
|
<path d="M725.879238,1413.84495 C727.525503,1412.19869 727.286611,1409.22984 725.019692,1408.06452 C724.069878,1407.57625 722.919023,1407.55603 721.944531,1407.99308 C721.192974,1408.33013 720.67604,1408.8388 720.338716,1409.42467 C720.200205,1409.66532 719.853604,1409.66829 719.715278,1409.42754 C719.400776,1408.88009 718.929673,1408.39989 718.257251,1408.06377 C717.091367,1407.48106 715.657183,1407.56475 714.597246,1408.32326 C712.751148,1409.64445 712.595381,1412.22912 714.129854,1413.7635 C715.615991,1415.49762 717.211323,1417.11317 719.263379,1418.9961 C719.696074,1419.38965 720.358291,1419.39893 720.792471,1419 C722.423057,1417.51525 724.153467,1415.82056 725.879239,1413.84486 L725.879238,1413.84495 Z" id="heart"></path>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.4 KiB |
103
website/src/img/helix.svg
Normal file
@ -0,0 +1,103 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg width="298px" height="507px" viewBox="0 0 298 507" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
<!-- Generator: Sketch 42 (36781) - http://www.bohemiancoding.com/sketch -->
|
||||||
|
<title>helix</title>
|
||||||
|
<desc>Created with Sketch.</desc>
|
||||||
|
<defs>
|
||||||
|
<linearGradient x1="2.56276788%" y1="49.6873118%" x2="97.4372321%" y2="49.6873118%" id="linearGradient-1">
|
||||||
|
<stop stop-color="#B2DE3F" offset="0%"></stop>
|
||||||
|
<stop stop-color="#FFFFFF" offset="100%"></stop>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient x1="97.4372321%" y1="49.6873118%" x2="2.56276788%" y2="49.6873118%" id="linearGradient-2">
|
||||||
|
<stop stop-color="#B2DE3F" offset="0%"></stop>
|
||||||
|
<stop stop-color="#FFFFFF" offset="100%"></stop>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient x1="50%" y1="97.124544%" x2="50%" y2="2.25007972%" id="linearGradient-3">
|
||||||
|
<stop stop-color="#B2DE3F" offset="0%"></stop>
|
||||||
|
<stop stop-color="#CAE87C" offset="100%"></stop>
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
<g id="landing" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||||
|
<g id="cms-landing-v6" transform="translate(-572.000000, -1465.000000)">
|
||||||
|
<g id="triptych" transform="translate(0.000000, 1205.000000)">
|
||||||
|
<g id="helix" transform="translate(572.000000, 260.000000)">
|
||||||
|
<g transform="translate(58.000000, 0.800049)">
|
||||||
|
<g id="bars" transform="translate(6.000000, 7.000000)" fill-rule="nonzero">
|
||||||
|
<path d="M28,1.5 L30,1.5 L30,0.5 L28,0.5 L28,1.5 Z M32,1.5 L34,1.5 L34,0.5 L32,0.5 L32,1.5 Z M36,1.5 L38,1.5 L38,0.5 L36,0.5 L36,1.5 Z M40,1.5 L42,1.5 L42,0.5 L40,0.5 L40,1.5 Z M44,1.5 L46,1.5 L46,0.5 L44,0.5 L44,1.5 Z M48,1.5 L50,1.5 L50,0.5 L48,0.5 L48,1.5 Z M52,1.5 L54,1.5 L54,0.5 L52,0.5 L52,1.5 Z M56,1.5 L58,1.5 L58,0.5 L56,0.5 L56,1.5 Z M60,1.5 L62,1.5 L62,0.5 L60,0.5 L60,1.5 Z M64,1.5 L66,1.5 L66,0.5 L64,0.5 L64,1.5 Z M68,1.5 L70,1.5 L70,0.5 L68,0.5 L68,1.5 Z M72,1.5 L74,1.5 L74,0.5 L72,0.5 L72,1.5 Z M76,1.5 L78,1.5 L78,0.5 L76,0.5 L76,1.5 Z M80,1.5 L82,1.5 L82,0.5 L80,0.5 L80,1.5 Z M84,1.5 L86,1.5 L86,0.5 L84,0.5 L84,1.5 Z M88,1.5 L90,1.5 L90,0.5 L88,0.5 L88,1.5 Z M92,1.5 L94,1.5 L94,0.5 L92,0.5 L92,1.5 Z M96,1.5 L98,1.5 L98,0.5 L96,0.5 L96,1.5 Z M100,1.5 L102,1.5 L102,0.5 L100,0.5 L100,1.5 Z M104,1.5 L106,1.5 L106,0.5 L104,0.5 L104,1.5 Z M108,1.5 L110,1.5 L110,0.5 L108,0.5 L108,1.5 Z M112,1.5 L114,1.5 L114,0.5 L112,0.5 L112,1.5 Z M116,1.5 L118,1.5 L118,0.5 L116,0.5 L116,1.5 Z M120,1.5 L122,1.5 L122,0.5 L120,0.5 L120,1.5 Z M124,1.5 L126,1.5 L126,0.5 L124,0.5 L124,1.5 Z M128,1.5 L130,1.5 L130,0.5 L128,0.5 L128,1.5 Z M132,1.5 L134,1.5 L134,0.5 L132,0.5 L132,1.5 Z M136,1.5 L138,1.5 L138,0.5 L136,0.5 L136,1.5 Z" id="Path-9" fill="url(#linearGradient-1)"></path>
|
||||||
|
<path d="M0.5,36.5 L2.5,36.5 L2.5,35.5 L0.5,35.5 L0.5,36.5 Z M4.5,36.5 L6.5,36.5 L6.5,35.5 L4.5,35.5 L4.5,36.5 Z M8.5,36.5 L10.5,36.5 L10.5,35.5 L8.5,35.5 L8.5,36.5 Z M12.5,36.5 L14.5,36.5 L14.5,35.5 L12.5,35.5 L12.5,36.5 Z M16.5,36.5 L18.5,36.5 L18.5,35.5 L16.5,35.5 L16.5,36.5 Z M20.5,36.5 L22.5,36.5 L22.5,35.5 L20.5,35.5 L20.5,36.5 Z M24.5,36.5 L26.5,36.5 L26.5,35.5 L24.5,35.5 L24.5,36.5 Z M28.5,36.5 L30.5,36.5 L30.5,35.5 L28.5,35.5 L28.5,36.5 Z M32.5,36.5 L34.5,36.5 L34.5,35.5 L32.5,35.5 L32.5,36.5 Z M36.5,36.5 L38.5,36.5 L38.5,35.5 L36.5,35.5 L36.5,36.5 Z M40.5,36.5 L42.5,36.5 L42.5,35.5 L40.5,35.5 L40.5,36.5 Z M44.5,36.5 L46.5,36.5 L46.5,35.5 L44.5,35.5 L44.5,36.5 Z M48.5,36.5 L50.5,36.5 L50.5,35.5 L48.5,35.5 L48.5,36.5 Z M52.5,36.5 L54.5,36.5 L54.5,35.5 L52.5,35.5 L52.5,36.5 Z M56.5,36.5 L58.5,36.5 L58.5,35.5 L56.5,35.5 L56.5,36.5 Z M60.5,36.5 L62.5,36.5 L62.5,35.5 L60.5,35.5 L60.5,36.5 Z M64.5,36.5 L66.5,36.5 L66.5,35.5 L64.5,35.5 L64.5,36.5 Z M68.5,36.5 L70.5,36.5 L70.5,35.5 L68.5,35.5 L68.5,36.5 Z M72.5,36.5 L74.5,36.5 L74.5,35.5 L72.5,35.5 L72.5,36.5 Z M76.5,36.5 L78.5,36.5 L78.5,35.5 L76.5,35.5 L76.5,36.5 Z M80.5,36.5 L82.5,36.5 L82.5,35.5 L80.5,35.5 L80.5,36.5 Z M84.5,36.5 L86.5,36.5 L86.5,35.5 L84.5,35.5 L84.5,36.5 Z M88.5,36.5 L90.5,36.5 L90.5,35.5 L88.5,35.5 L88.5,36.5 Z M92.5,36.5 L94.5,36.5 L94.5,35.5 L92.5,35.5 L92.5,36.5 Z M96.5,36.5 L98.5,36.5 L98.5,35.5 L96.5,35.5 L96.5,36.5 Z M100.5,36.5 L102.5,36.5 L102.5,35.5 L100.5,35.5 L100.5,36.5 Z M104.5,36.5 L106.5,36.5 L106.5,35.5 L104.5,35.5 L104.5,36.5 Z M108.5,36.5 L110.5,36.5 L110.5,35.5 L108.5,35.5 L108.5,36.5 Z M112.5,36.5 L114.5,36.5 L114.5,35.5 L112.5,35.5 L112.5,36.5 Z M116.5,36.5 L118.5,36.5 L118.5,35.5 L116.5,35.5 L116.5,36.5 Z M120.5,36.5 L122.5,36.5 L122.5,35.5 L120.5,35.5 L120.5,36.5 Z M124.5,36.5 L126.5,36.5 L126.5,35.5 L124.5,35.5 L124.5,36.5 Z M128.5,36.5 L130.5,36.5 L130.5,35.5 L128.5,35.5 L128.5,36.5 Z M132.5,36.5 L134.5,36.5 L134.5,35.5 L132.5,35.5 L132.5,36.5 Z M136.5,36.5 L138.5,36.5 L138.5,35.5 L136.5,35.5 L136.5,36.5 Z M140.5,36.5 L142.5,36.5 L142.5,35.5 L140.5,35.5 L140.5,36.5 Z M144.5,36.5 L146.5,36.5 L146.5,35.5 L144.5,35.5 L144.5,36.5 Z M148.5,36.5 L150.5,36.5 L150.5,35.5 L148.5,35.5 L148.5,36.5 Z M152.5,36.5 L154.5,36.5 L154.5,35.5 L152.5,35.5 L152.5,36.5 Z M156.5,36.5 L158.5,36.5 L158.5,35.5 L156.5,35.5 L156.5,36.5 Z M160.5,36.5 L162.5,36.5 L162.5,35.5 L160.5,35.5 L160.5,36.5 Z M164.5,36.5 L166.5,36.5 L166.5,35.5 L164.5,35.5 L164.5,36.5 Z" id="Path-9-Copy" fill="url(#linearGradient-2)"></path>
|
||||||
|
<path d="M28,71.5 L30,71.5 L30,70.5 L28,70.5 L28,71.5 Z M32,71.5 L34,71.5 L34,70.5 L32,70.5 L32,71.5 Z M36,71.5 L38,71.5 L38,70.5 L36,70.5 L36,71.5 Z M40,71.5 L42,71.5 L42,70.5 L40,70.5 L40,71.5 Z M44,71.5 L46,71.5 L46,70.5 L44,70.5 L44,71.5 Z M48,71.5 L50,71.5 L50,70.5 L48,70.5 L48,71.5 Z M52,71.5 L54,71.5 L54,70.5 L52,70.5 L52,71.5 Z M56,71.5 L58,71.5 L58,70.5 L56,70.5 L56,71.5 Z M60,71.5 L62,71.5 L62,70.5 L60,70.5 L60,71.5 Z M64,71.5 L66,71.5 L66,70.5 L64,70.5 L64,71.5 Z M68,71.5 L70,71.5 L70,70.5 L68,70.5 L68,71.5 Z M72,71.5 L74,71.5 L74,70.5 L72,70.5 L72,71.5 Z M76,71.5 L78,71.5 L78,70.5 L76,70.5 L76,71.5 Z M80,71.5 L82,71.5 L82,70.5 L80,70.5 L80,71.5 Z M84,71.5 L86,71.5 L86,70.5 L84,70.5 L84,71.5 Z M88,71.5 L90,71.5 L90,70.5 L88,70.5 L88,71.5 Z M92,71.5 L94,71.5 L94,70.5 L92,70.5 L92,71.5 Z M96,71.5 L98,71.5 L98,70.5 L96,70.5 L96,71.5 Z M100,71.5 L102,71.5 L102,70.5 L100,70.5 L100,71.5 Z M104,71.5 L106,71.5 L106,70.5 L104,70.5 L104,71.5 Z M108,71.5 L110,71.5 L110,70.5 L108,70.5 L108,71.5 Z M112,71.5 L114,71.5 L114,70.5 L112,70.5 L112,71.5 Z M116,71.5 L118,71.5 L118,70.5 L116,70.5 L116,71.5 Z M120,71.5 L122,71.5 L122,70.5 L120,70.5 L120,71.5 Z M124,71.5 L126,71.5 L126,70.5 L124,70.5 L124,71.5 Z M128,71.5 L130,71.5 L130,70.5 L128,70.5 L128,71.5 Z M132,71.5 L134,71.5 L134,70.5 L132,70.5 L132,71.5 Z M136,71.5 L138,71.5 L138,70.5 L136,70.5 L136,71.5 Z" id="Path-9-Copy-2" fill="#EAECEC"></path>
|
||||||
|
<path d="M57.5,106.5 L59.5,106.5 L59.5,105.5 L57.5,105.5 L57.5,106.5 Z M61.5,106.5 L63.5,106.5 L63.5,105.5 L61.5,105.5 L61.5,106.5 Z M65.5,106.5 L67.5,106.5 L67.5,105.5 L65.5,105.5 L65.5,106.5 Z M69.5,106.5 L71.5,106.5 L71.5,105.5 L69.5,105.5 L69.5,106.5 Z M73.5,106.5 L75.5,106.5 L75.5,105.5 L73.5,105.5 L73.5,106.5 Z M77.5,106.5 L79.5,106.5 L79.5,105.5 L77.5,105.5 L77.5,106.5 Z M81.5,106.5 L83.5,106.5 L83.5,105.5 L81.5,105.5 L81.5,106.5 Z M85.5,106.5 L87.5,106.5 L87.5,105.5 L85.5,105.5 L85.5,106.5 Z M89.5,106.5 L91.5,106.5 L91.5,105.5 L89.5,105.5 L89.5,106.5 Z M93.5,106.5 L95.5,106.5 L95.5,105.5 L93.5,105.5 L93.5,106.5 Z M97.5,106.5 L99.5,106.5 L99.5,105.5 L97.5,105.5 L97.5,106.5 Z M101.5,106.5 L103.5,106.5 L103.5,105.5 L101.5,105.5 L101.5,106.5 Z M105.5,106.5 L107.5,106.5 L107.5,105.5 L105.5,105.5 L105.5,106.5 Z M109.5,106.5 L111.5,106.5 L111.5,105.5 L109.5,105.5 L109.5,106.5 Z" id="Path-9-Copy-3" fill="#EAECEC"></path>
|
||||||
|
</g>
|
||||||
|
<g id="left" transform="translate(82.000000, 0.000000)">
|
||||||
|
<ellipse id="Oval-4" fill="#EAEBEB" cx="63" cy="8" rx="8" ry="8"></ellipse>
|
||||||
|
<ellipse id="Oval-4-Copy-3" fill="url(#linearGradient-3)" cx="90" cy="43.1999512" rx="8" ry="8"></ellipse>
|
||||||
|
<circle id="Oval-4-Copy-5" fill="#EAEBEB" cx="63" cy="78" r="8"></circle>
|
||||||
|
<ellipse id="Oval-4-Copy-4" fill="#EAEBEB" cx="35" cy="113" rx="8" ry="8"></ellipse>
|
||||||
|
<ellipse id="Oval-4-Copy-6" fill="#EAEBEB" cx="8" cy="148" rx="8" ry="8"></ellipse>
|
||||||
|
</g>
|
||||||
|
<g id="right" transform="translate(35.500000, 60.500000) scale(-1, 1) translate(-35.500000, -60.500000) ">
|
||||||
|
<ellipse id="Oval-4-Copy" fill="url(#linearGradient-3)" cx="36" cy="8" rx="8" ry="8"></ellipse>
|
||||||
|
<ellipse id="Oval-4-Copy-10" fill="#EAEBEB" cx="63" cy="43.1999512" rx="8" ry="8"></ellipse>
|
||||||
|
<circle id="Oval-4-Copy-9" fill="#EAEBEB" cx="36" cy="78" r="8"></circle>
|
||||||
|
<ellipse id="Oval-4-Copy-8" fill="#EAEBEB" cx="8" cy="113" rx="8" ry="8"></ellipse>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g id="helix-copy" transform="translate(58.000000, 175.800049)">
|
||||||
|
<g id="bars" transform="translate(6.000000, 42.000000)" fill-rule="nonzero">
|
||||||
|
<path d="M28,1.5 L30,1.5 L30,0.5 L28,0.5 L28,1.5 Z M32,1.5 L34,1.5 L34,0.5 L32,0.5 L32,1.5 Z M36,1.5 L38,1.5 L38,0.5 L36,0.5 L36,1.5 Z M40,1.5 L42,1.5 L42,0.5 L40,0.5 L40,1.5 Z M44,1.5 L46,1.5 L46,0.5 L44,0.5 L44,1.5 Z M48,1.5 L50,1.5 L50,0.5 L48,0.5 L48,1.5 Z M52,1.5 L54,1.5 L54,0.5 L52,0.5 L52,1.5 Z M56,1.5 L58,1.5 L58,0.5 L56,0.5 L56,1.5 Z M60,1.5 L62,1.5 L62,0.5 L60,0.5 L60,1.5 Z M64,1.5 L66,1.5 L66,0.5 L64,0.5 L64,1.5 Z M68,1.5 L70,1.5 L70,0.5 L68,0.5 L68,1.5 Z M72,1.5 L74,1.5 L74,0.5 L72,0.5 L72,1.5 Z M76,1.5 L78,1.5 L78,0.5 L76,0.5 L76,1.5 Z M80,1.5 L82,1.5 L82,0.5 L80,0.5 L80,1.5 Z M84,1.5 L86,1.5 L86,0.5 L84,0.5 L84,1.5 Z M88,1.5 L90,1.5 L90,0.5 L88,0.5 L88,1.5 Z M92,1.5 L94,1.5 L94,0.5 L92,0.5 L92,1.5 Z M96,1.5 L98,1.5 L98,0.5 L96,0.5 L96,1.5 Z M100,1.5 L102,1.5 L102,0.5 L100,0.5 L100,1.5 Z M104,1.5 L106,1.5 L106,0.5 L104,0.5 L104,1.5 Z M108,1.5 L110,1.5 L110,0.5 L108,0.5 L108,1.5 Z M112,1.5 L114,1.5 L114,0.5 L112,0.5 L112,1.5 Z M116,1.5 L118,1.5 L118,0.5 L116,0.5 L116,1.5 Z M120,1.5 L122,1.5 L122,0.5 L120,0.5 L120,1.5 Z M124,1.5 L126,1.5 L126,0.5 L124,0.5 L124,1.5 Z M128,1.5 L130,1.5 L130,0.5 L128,0.5 L128,1.5 Z M132,1.5 L134,1.5 L134,0.5 L132,0.5 L132,1.5 Z M136,1.5 L138,1.5 L138,0.5 L136,0.5 L136,1.5 Z" id="Path-9" fill="url(#linearGradient-2)"></path>
|
||||||
|
<path d="M0.5,36.5 L2.5,36.5 L2.5,35.5 L0.5,35.5 L0.5,36.5 Z M4.5,36.5 L6.5,36.5 L6.5,35.5 L4.5,35.5 L4.5,36.5 Z M8.5,36.5 L10.5,36.5 L10.5,35.5 L8.5,35.5 L8.5,36.5 Z M12.5,36.5 L14.5,36.5 L14.5,35.5 L12.5,35.5 L12.5,36.5 Z M16.5,36.5 L18.5,36.5 L18.5,35.5 L16.5,35.5 L16.5,36.5 Z M20.5,36.5 L22.5,36.5 L22.5,35.5 L20.5,35.5 L20.5,36.5 Z M24.5,36.5 L26.5,36.5 L26.5,35.5 L24.5,35.5 L24.5,36.5 Z M28.5,36.5 L30.5,36.5 L30.5,35.5 L28.5,35.5 L28.5,36.5 Z M32.5,36.5 L34.5,36.5 L34.5,35.5 L32.5,35.5 L32.5,36.5 Z M36.5,36.5 L38.5,36.5 L38.5,35.5 L36.5,35.5 L36.5,36.5 Z M40.5,36.5 L42.5,36.5 L42.5,35.5 L40.5,35.5 L40.5,36.5 Z M44.5,36.5 L46.5,36.5 L46.5,35.5 L44.5,35.5 L44.5,36.5 Z M48.5,36.5 L50.5,36.5 L50.5,35.5 L48.5,35.5 L48.5,36.5 Z M52.5,36.5 L54.5,36.5 L54.5,35.5 L52.5,35.5 L52.5,36.5 Z M56.5,36.5 L58.5,36.5 L58.5,35.5 L56.5,35.5 L56.5,36.5 Z M60.5,36.5 L62.5,36.5 L62.5,35.5 L60.5,35.5 L60.5,36.5 Z M64.5,36.5 L66.5,36.5 L66.5,35.5 L64.5,35.5 L64.5,36.5 Z M68.5,36.5 L70.5,36.5 L70.5,35.5 L68.5,35.5 L68.5,36.5 Z M72.5,36.5 L74.5,36.5 L74.5,35.5 L72.5,35.5 L72.5,36.5 Z M76.5,36.5 L78.5,36.5 L78.5,35.5 L76.5,35.5 L76.5,36.5 Z M80.5,36.5 L82.5,36.5 L82.5,35.5 L80.5,35.5 L80.5,36.5 Z M84.5,36.5 L86.5,36.5 L86.5,35.5 L84.5,35.5 L84.5,36.5 Z M88.5,36.5 L90.5,36.5 L90.5,35.5 L88.5,35.5 L88.5,36.5 Z M92.5,36.5 L94.5,36.5 L94.5,35.5 L92.5,35.5 L92.5,36.5 Z M96.5,36.5 L98.5,36.5 L98.5,35.5 L96.5,35.5 L96.5,36.5 Z M100.5,36.5 L102.5,36.5 L102.5,35.5 L100.5,35.5 L100.5,36.5 Z M104.5,36.5 L106.5,36.5 L106.5,35.5 L104.5,35.5 L104.5,36.5 Z M108.5,36.5 L110.5,36.5 L110.5,35.5 L108.5,35.5 L108.5,36.5 Z M112.5,36.5 L114.5,36.5 L114.5,35.5 L112.5,35.5 L112.5,36.5 Z M116.5,36.5 L118.5,36.5 L118.5,35.5 L116.5,35.5 L116.5,36.5 Z M120.5,36.5 L122.5,36.5 L122.5,35.5 L120.5,35.5 L120.5,36.5 Z M124.5,36.5 L126.5,36.5 L126.5,35.5 L124.5,35.5 L124.5,36.5 Z M128.5,36.5 L130.5,36.5 L130.5,35.5 L128.5,35.5 L128.5,36.5 Z M132.5,36.5 L134.5,36.5 L134.5,35.5 L132.5,35.5 L132.5,36.5 Z M136.5,36.5 L138.5,36.5 L138.5,35.5 L136.5,35.5 L136.5,36.5 Z M140.5,36.5 L142.5,36.5 L142.5,35.5 L140.5,35.5 L140.5,36.5 Z M144.5,36.5 L146.5,36.5 L146.5,35.5 L144.5,35.5 L144.5,36.5 Z M148.5,36.5 L150.5,36.5 L150.5,35.5 L148.5,35.5 L148.5,36.5 Z M152.5,36.5 L154.5,36.5 L154.5,35.5 L152.5,35.5 L152.5,36.5 Z M156.5,36.5 L158.5,36.5 L158.5,35.5 L156.5,35.5 L156.5,36.5 Z M160.5,36.5 L162.5,36.5 L162.5,35.5 L160.5,35.5 L160.5,36.5 Z M164.5,36.5 L166.5,36.5 L166.5,35.5 L164.5,35.5 L164.5,36.5 Z" id="Path-9-Copy" fill="url(#linearGradient-1)"></path>
|
||||||
|
<path d="M28,71.5 L30,71.5 L30,70.5 L28,70.5 L28,71.5 Z M32,71.5 L34,71.5 L34,70.5 L32,70.5 L32,71.5 Z M36,71.5 L38,71.5 L38,70.5 L36,70.5 L36,71.5 Z M40,71.5 L42,71.5 L42,70.5 L40,70.5 L40,71.5 Z M44,71.5 L46,71.5 L46,70.5 L44,70.5 L44,71.5 Z M48,71.5 L50,71.5 L50,70.5 L48,70.5 L48,71.5 Z M52,71.5 L54,71.5 L54,70.5 L52,70.5 L52,71.5 Z M56,71.5 L58,71.5 L58,70.5 L56,70.5 L56,71.5 Z M60,71.5 L62,71.5 L62,70.5 L60,70.5 L60,71.5 Z M64,71.5 L66,71.5 L66,70.5 L64,70.5 L64,71.5 Z M68,71.5 L70,71.5 L70,70.5 L68,70.5 L68,71.5 Z M72,71.5 L74,71.5 L74,70.5 L72,70.5 L72,71.5 Z M76,71.5 L78,71.5 L78,70.5 L76,70.5 L76,71.5 Z M80,71.5 L82,71.5 L82,70.5 L80,70.5 L80,71.5 Z M84,71.5 L86,71.5 L86,70.5 L84,70.5 L84,71.5 Z M88,71.5 L90,71.5 L90,70.5 L88,70.5 L88,71.5 Z M92,71.5 L94,71.5 L94,70.5 L92,70.5 L92,71.5 Z M96,71.5 L98,71.5 L98,70.5 L96,70.5 L96,71.5 Z M100,71.5 L102,71.5 L102,70.5 L100,70.5 L100,71.5 Z M104,71.5 L106,71.5 L106,70.5 L104,70.5 L104,71.5 Z M108,71.5 L110,71.5 L110,70.5 L108,70.5 L108,71.5 Z M112,71.5 L114,71.5 L114,70.5 L112,70.5 L112,71.5 Z M116,71.5 L118,71.5 L118,70.5 L116,70.5 L116,71.5 Z M120,71.5 L122,71.5 L122,70.5 L120,70.5 L120,71.5 Z M124,71.5 L126,71.5 L126,70.5 L124,70.5 L124,71.5 Z M128,71.5 L130,71.5 L130,70.5 L128,70.5 L128,71.5 Z M132,71.5 L134,71.5 L134,70.5 L132,70.5 L132,71.5 Z M136,71.5 L138,71.5 L138,70.5 L136,70.5 L136,71.5 Z" id="Path-9-Copy-2" fill="#EAECEC"></path>
|
||||||
|
<path d="M57.5,106.5 L59.5,106.5 L59.5,105.5 L57.5,105.5 L57.5,106.5 Z M61.5,106.5 L63.5,106.5 L63.5,105.5 L61.5,105.5 L61.5,106.5 Z M65.5,106.5 L67.5,106.5 L67.5,105.5 L65.5,105.5 L65.5,106.5 Z M69.5,106.5 L71.5,106.5 L71.5,105.5 L69.5,105.5 L69.5,106.5 Z M73.5,106.5 L75.5,106.5 L75.5,105.5 L73.5,105.5 L73.5,106.5 Z M77.5,106.5 L79.5,106.5 L79.5,105.5 L77.5,105.5 L77.5,106.5 Z M81.5,106.5 L83.5,106.5 L83.5,105.5 L81.5,105.5 L81.5,106.5 Z M85.5,106.5 L87.5,106.5 L87.5,105.5 L85.5,105.5 L85.5,106.5 Z M89.5,106.5 L91.5,106.5 L91.5,105.5 L89.5,105.5 L89.5,106.5 Z M93.5,106.5 L95.5,106.5 L95.5,105.5 L93.5,105.5 L93.5,106.5 Z M97.5,106.5 L99.5,106.5 L99.5,105.5 L97.5,105.5 L97.5,106.5 Z M101.5,106.5 L103.5,106.5 L103.5,105.5 L101.5,105.5 L101.5,106.5 Z M105.5,106.5 L107.5,106.5 L107.5,105.5 L105.5,105.5 L105.5,106.5 Z M109.5,106.5 L111.5,106.5 L111.5,105.5 L109.5,105.5 L109.5,106.5 Z" id="Path-9-Copy-3" fill="#EAECEC"></path>
|
||||||
|
</g>
|
||||||
|
<g id="left" transform="translate(82.000000, 35.000000)">
|
||||||
|
<ellipse id="Oval-4" fill="url(#linearGradient-3)" cx="63" cy="8" rx="8" ry="8"></ellipse>
|
||||||
|
<ellipse id="Oval-4-Copy-3" fill="#EAEBEB" cx="90" cy="43.1999512" rx="8" ry="8"></ellipse>
|
||||||
|
<circle id="Oval-4-Copy-5" fill="#EAEBEB" cx="63" cy="78" r="8"></circle>
|
||||||
|
<ellipse id="Oval-4-Copy-4" fill="#EAEBEB" cx="35" cy="113" rx="8" ry="8"></ellipse>
|
||||||
|
<ellipse id="Oval-4-Copy-6" fill="#EAEBEB" cx="8" cy="148" rx="8" ry="8"></ellipse>
|
||||||
|
</g>
|
||||||
|
<g id="right" transform="translate(35.500000, 95.500000) scale(-1, 1) translate(-35.500000, -95.500000) translate(0.000000, 35.000000)">
|
||||||
|
<ellipse id="Oval-4-Copy" fill="#EAEBEB" cx="36" cy="8" rx="8" ry="8"></ellipse>
|
||||||
|
<circle id="Oval-4-Copy-10" fill="url(#linearGradient-3)" cx="63" cy="43.1999512" r="8"></circle>
|
||||||
|
<ellipse id="Oval-4-Copy-9" fill="#EAEBEB" cx="36" cy="78" rx="8" ry="8"></ellipse>
|
||||||
|
<circle id="Oval-4-Copy-8" fill="#EAEBEB" cx="8" cy="113" r="8"></circle>
|
||||||
|
</g>
|
||||||
|
<g id="Group-8" transform="translate(55.000000, 0.000000)">
|
||||||
|
<path d="M8.5,8.5 L10.5,8.5 L10.5,7.5 L8.5,7.5 L8.5,8.5 Z M12.5,8.5 L14.5,8.5 L14.5,7.5 L12.5,7.5 L12.5,8.5 Z M16.5,8.5 L18.5,8.5 L18.5,7.5 L16.5,7.5 L16.5,8.5 Z M20.5,8.5 L22.5,8.5 L22.5,7.5 L20.5,7.5 L20.5,8.5 Z M24.5,8.5 L26.5,8.5 L26.5,7.5 L24.5,7.5 L24.5,8.5 Z M28.5,8.5 L30.5,8.5 L30.5,7.5 L28.5,7.5 L28.5,8.5 Z M32.5,8.5 L34.5,8.5 L34.5,7.5 L32.5,7.5 L32.5,8.5 Z M36.5,8.5 L38.5,8.5 L38.5,7.5 L36.5,7.5 L36.5,8.5 Z M40.5,8.5 L42.5,8.5 L42.5,7.5 L40.5,7.5 L40.5,8.5 Z M44.5,8.5 L46.5,8.5 L46.5,7.5 L44.5,7.5 L44.5,8.5 Z M48.5,8.5 L50.5,8.5 L50.5,7.5 L48.5,7.5 L48.5,8.5 Z M52.5,8.5 L54.5,8.5 L54.5,7.5 L52.5,7.5 L52.5,8.5 Z M56.5,8.5 L58.5,8.5 L58.5,7.5 L56.5,7.5 L56.5,8.5 Z M60.5,8.5 L62.5,8.5 L62.5,7.5 L60.5,7.5 L60.5,8.5 Z" id="Path-9-Copy-3" fill="#EAECEC" fill-rule="nonzero"></path>
|
||||||
|
<circle id="Oval-4-Copy-4" fill="#EAEBEB" cx="62" cy="8" r="8"></circle>
|
||||||
|
<circle id="Oval-4-Copy-8" fill="#EAEBEB" cx="8" cy="8" r="8"></circle>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g id="helix-copy-2" transform="translate(58.000000, 385.800049)">
|
||||||
|
<g id="bars" transform="translate(6.000000, 42.000000)" fill-rule="nonzero">
|
||||||
|
<path d="M28,1.5 L30,1.5 L30,0.5 L28,0.5 L28,1.5 Z M32,1.5 L34,1.5 L34,0.5 L32,0.5 L32,1.5 Z M36,1.5 L38,1.5 L38,0.5 L36,0.5 L36,1.5 Z M40,1.5 L42,1.5 L42,0.5 L40,0.5 L40,1.5 Z M44,1.5 L46,1.5 L46,0.5 L44,0.5 L44,1.5 Z M48,1.5 L50,1.5 L50,0.5 L48,0.5 L48,1.5 Z M52,1.5 L54,1.5 L54,0.5 L52,0.5 L52,1.5 Z M56,1.5 L58,1.5 L58,0.5 L56,0.5 L56,1.5 Z M60,1.5 L62,1.5 L62,0.5 L60,0.5 L60,1.5 Z M64,1.5 L66,1.5 L66,0.5 L64,0.5 L64,1.5 Z M68,1.5 L70,1.5 L70,0.5 L68,0.5 L68,1.5 Z M72,1.5 L74,1.5 L74,0.5 L72,0.5 L72,1.5 Z M76,1.5 L78,1.5 L78,0.5 L76,0.5 L76,1.5 Z M80,1.5 L82,1.5 L82,0.5 L80,0.5 L80,1.5 Z M84,1.5 L86,1.5 L86,0.5 L84,0.5 L84,1.5 Z M88,1.5 L90,1.5 L90,0.5 L88,0.5 L88,1.5 Z M92,1.5 L94,1.5 L94,0.5 L92,0.5 L92,1.5 Z M96,1.5 L98,1.5 L98,0.5 L96,0.5 L96,1.5 Z M100,1.5 L102,1.5 L102,0.5 L100,0.5 L100,1.5 Z M104,1.5 L106,1.5 L106,0.5 L104,0.5 L104,1.5 Z M108,1.5 L110,1.5 L110,0.5 L108,0.5 L108,1.5 Z M112,1.5 L114,1.5 L114,0.5 L112,0.5 L112,1.5 Z M116,1.5 L118,1.5 L118,0.5 L116,0.5 L116,1.5 Z M120,1.5 L122,1.5 L122,0.5 L120,0.5 L120,1.5 Z M124,1.5 L126,1.5 L126,0.5 L124,0.5 L124,1.5 Z M128,1.5 L130,1.5 L130,0.5 L128,0.5 L128,1.5 Z M132,1.5 L134,1.5 L134,0.5 L132,0.5 L132,1.5 Z M136,1.5 L138,1.5 L138,0.5 L136,0.5 L136,1.5 Z" id="Path-9" fill="#EAECEC"></path>
|
||||||
|
<path d="M0.5,36.5 L2.5,36.5 L2.5,35.5 L0.5,35.5 L0.5,36.5 Z M4.5,36.5 L6.5,36.5 L6.5,35.5 L4.5,35.5 L4.5,36.5 Z M8.5,36.5 L10.5,36.5 L10.5,35.5 L8.5,35.5 L8.5,36.5 Z M12.5,36.5 L14.5,36.5 L14.5,35.5 L12.5,35.5 L12.5,36.5 Z M16.5,36.5 L18.5,36.5 L18.5,35.5 L16.5,35.5 L16.5,36.5 Z M20.5,36.5 L22.5,36.5 L22.5,35.5 L20.5,35.5 L20.5,36.5 Z M24.5,36.5 L26.5,36.5 L26.5,35.5 L24.5,35.5 L24.5,36.5 Z M28.5,36.5 L30.5,36.5 L30.5,35.5 L28.5,35.5 L28.5,36.5 Z M32.5,36.5 L34.5,36.5 L34.5,35.5 L32.5,35.5 L32.5,36.5 Z M36.5,36.5 L38.5,36.5 L38.5,35.5 L36.5,35.5 L36.5,36.5 Z M40.5,36.5 L42.5,36.5 L42.5,35.5 L40.5,35.5 L40.5,36.5 Z M44.5,36.5 L46.5,36.5 L46.5,35.5 L44.5,35.5 L44.5,36.5 Z M48.5,36.5 L50.5,36.5 L50.5,35.5 L48.5,35.5 L48.5,36.5 Z M52.5,36.5 L54.5,36.5 L54.5,35.5 L52.5,35.5 L52.5,36.5 Z M56.5,36.5 L58.5,36.5 L58.5,35.5 L56.5,35.5 L56.5,36.5 Z M60.5,36.5 L62.5,36.5 L62.5,35.5 L60.5,35.5 L60.5,36.5 Z M64.5,36.5 L66.5,36.5 L66.5,35.5 L64.5,35.5 L64.5,36.5 Z M68.5,36.5 L70.5,36.5 L70.5,35.5 L68.5,35.5 L68.5,36.5 Z M72.5,36.5 L74.5,36.5 L74.5,35.5 L72.5,35.5 L72.5,36.5 Z M76.5,36.5 L78.5,36.5 L78.5,35.5 L76.5,35.5 L76.5,36.5 Z M80.5,36.5 L82.5,36.5 L82.5,35.5 L80.5,35.5 L80.5,36.5 Z M84.5,36.5 L86.5,36.5 L86.5,35.5 L84.5,35.5 L84.5,36.5 Z M88.5,36.5 L90.5,36.5 L90.5,35.5 L88.5,35.5 L88.5,36.5 Z M92.5,36.5 L94.5,36.5 L94.5,35.5 L92.5,35.5 L92.5,36.5 Z M96.5,36.5 L98.5,36.5 L98.5,35.5 L96.5,35.5 L96.5,36.5 Z M100.5,36.5 L102.5,36.5 L102.5,35.5 L100.5,35.5 L100.5,36.5 Z M104.5,36.5 L106.5,36.5 L106.5,35.5 L104.5,35.5 L104.5,36.5 Z M108.5,36.5 L110.5,36.5 L110.5,35.5 L108.5,35.5 L108.5,36.5 Z M112.5,36.5 L114.5,36.5 L114.5,35.5 L112.5,35.5 L112.5,36.5 Z M116.5,36.5 L118.5,36.5 L118.5,35.5 L116.5,35.5 L116.5,36.5 Z M120.5,36.5 L122.5,36.5 L122.5,35.5 L120.5,35.5 L120.5,36.5 Z M124.5,36.5 L126.5,36.5 L126.5,35.5 L124.5,35.5 L124.5,36.5 Z M128.5,36.5 L130.5,36.5 L130.5,35.5 L128.5,35.5 L128.5,36.5 Z M132.5,36.5 L134.5,36.5 L134.5,35.5 L132.5,35.5 L132.5,36.5 Z M136.5,36.5 L138.5,36.5 L138.5,35.5 L136.5,35.5 L136.5,36.5 Z M140.5,36.5 L142.5,36.5 L142.5,35.5 L140.5,35.5 L140.5,36.5 Z M144.5,36.5 L146.5,36.5 L146.5,35.5 L144.5,35.5 L144.5,36.5 Z M148.5,36.5 L150.5,36.5 L150.5,35.5 L148.5,35.5 L148.5,36.5 Z M152.5,36.5 L154.5,36.5 L154.5,35.5 L152.5,35.5 L152.5,36.5 Z M156.5,36.5 L158.5,36.5 L158.5,35.5 L156.5,35.5 L156.5,36.5 Z M160.5,36.5 L162.5,36.5 L162.5,35.5 L160.5,35.5 L160.5,36.5 Z M164.5,36.5 L166.5,36.5 L166.5,35.5 L164.5,35.5 L164.5,36.5 Z" id="Path-9-Copy" fill="url(#linearGradient-2)"></path>
|
||||||
|
<path d="M28,71.5 L30,71.5 L30,70.5 L28,70.5 L28,71.5 Z M32,71.5 L34,71.5 L34,70.5 L32,70.5 L32,71.5 Z M36,71.5 L38,71.5 L38,70.5 L36,70.5 L36,71.5 Z M40,71.5 L42,71.5 L42,70.5 L40,70.5 L40,71.5 Z M44,71.5 L46,71.5 L46,70.5 L44,70.5 L44,71.5 Z M48,71.5 L50,71.5 L50,70.5 L48,70.5 L48,71.5 Z M52,71.5 L54,71.5 L54,70.5 L52,70.5 L52,71.5 Z M56,71.5 L58,71.5 L58,70.5 L56,70.5 L56,71.5 Z M60,71.5 L62,71.5 L62,70.5 L60,70.5 L60,71.5 Z M64,71.5 L66,71.5 L66,70.5 L64,70.5 L64,71.5 Z M68,71.5 L70,71.5 L70,70.5 L68,70.5 L68,71.5 Z M72,71.5 L74,71.5 L74,70.5 L72,70.5 L72,71.5 Z M76,71.5 L78,71.5 L78,70.5 L76,70.5 L76,71.5 Z M80,71.5 L82,71.5 L82,70.5 L80,70.5 L80,71.5 Z M84,71.5 L86,71.5 L86,70.5 L84,70.5 L84,71.5 Z M88,71.5 L90,71.5 L90,70.5 L88,70.5 L88,71.5 Z M92,71.5 L94,71.5 L94,70.5 L92,70.5 L92,71.5 Z M96,71.5 L98,71.5 L98,70.5 L96,70.5 L96,71.5 Z M100,71.5 L102,71.5 L102,70.5 L100,70.5 L100,71.5 Z M104,71.5 L106,71.5 L106,70.5 L104,70.5 L104,71.5 Z M108,71.5 L110,71.5 L110,70.5 L108,70.5 L108,71.5 Z M112,71.5 L114,71.5 L114,70.5 L112,70.5 L112,71.5 Z M116,71.5 L118,71.5 L118,70.5 L116,70.5 L116,71.5 Z M120,71.5 L122,71.5 L122,70.5 L120,70.5 L120,71.5 Z M124,71.5 L126,71.5 L126,70.5 L124,70.5 L124,71.5 Z M128,71.5 L130,71.5 L130,70.5 L128,70.5 L128,71.5 Z M132,71.5 L134,71.5 L134,70.5 L132,70.5 L132,71.5 Z M136,71.5 L138,71.5 L138,70.5 L136,70.5 L136,71.5 Z" id="Path-9-Copy-2" fill="#EAECEC"></path>
|
||||||
|
</g>
|
||||||
|
<g id="left" transform="translate(137.000000, 35.000000)">
|
||||||
|
<ellipse id="Oval-4" fill="#EAEBEB" cx="8" cy="8" rx="8" ry="8"></ellipse>
|
||||||
|
<ellipse id="Oval-4-Copy-3" fill="url(#linearGradient-3)" cx="35" cy="43.1999512" rx="8" ry="8"></ellipse>
|
||||||
|
<circle id="Oval-4-Copy-5" fill="#EAEBEB" cx="8" cy="78" r="8"></circle>
|
||||||
|
</g>
|
||||||
|
<g id="right" transform="translate(21.500000, 78.000000) scale(-1, 1) translate(-21.500000, -78.000000) translate(0.000000, 35.000000)" fill="#EAEBEB">
|
||||||
|
<ellipse id="Oval-4-Copy" cx="8" cy="8" rx="8" ry="8"></ellipse>
|
||||||
|
<ellipse id="Oval-4-Copy-10" cx="35" cy="43.1999512" rx="8" ry="8"></ellipse>
|
||||||
|
<circle id="Oval-4-Copy-9" cx="8" cy="78" r="8"></circle>
|
||||||
|
</g>
|
||||||
|
<g id="Group-8" transform="translate(55.000000, 0.000000)">
|
||||||
|
<path d="M8.5,8.5 L10.5,8.5 L10.5,7.5 L8.5,7.5 L8.5,8.5 Z M12.5,8.5 L14.5,8.5 L14.5,7.5 L12.5,7.5 L12.5,8.5 Z M16.5,8.5 L18.5,8.5 L18.5,7.5 L16.5,7.5 L16.5,8.5 Z M20.5,8.5 L22.5,8.5 L22.5,7.5 L20.5,7.5 L20.5,8.5 Z M24.5,8.5 L26.5,8.5 L26.5,7.5 L24.5,7.5 L24.5,8.5 Z M28.5,8.5 L30.5,8.5 L30.5,7.5 L28.5,7.5 L28.5,8.5 Z M32.5,8.5 L34.5,8.5 L34.5,7.5 L32.5,7.5 L32.5,8.5 Z M36.5,8.5 L38.5,8.5 L38.5,7.5 L36.5,7.5 L36.5,8.5 Z M40.5,8.5 L42.5,8.5 L42.5,7.5 L40.5,7.5 L40.5,8.5 Z M44.5,8.5 L46.5,8.5 L46.5,7.5 L44.5,7.5 L44.5,8.5 Z M48.5,8.5 L50.5,8.5 L50.5,7.5 L48.5,7.5 L48.5,8.5 Z M52.5,8.5 L54.5,8.5 L54.5,7.5 L52.5,7.5 L52.5,8.5 Z M56.5,8.5 L58.5,8.5 L58.5,7.5 L56.5,7.5 L56.5,8.5 Z M60.5,8.5 L62.5,8.5 L62.5,7.5 L60.5,7.5 L60.5,8.5 Z" id="Path-9-Copy-3" fill="url(#linearGradient-1)" fill-rule="nonzero"></path>
|
||||||
|
<ellipse id="Oval-4-Copy-4" fill="#EAEBEB" cx="62" cy="8" rx="8" ry="8"></ellipse>
|
||||||
|
<ellipse id="Oval-4-Copy-8" fill="url(#linearGradient-3)" cx="8" cy="8" rx="8" ry="8"></ellipse>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<polygon id="Path-3" fill="#BCBCBC" fill-rule="nonzero" opacity="0.400000006" points="65.0389438 8.50151893 1.03894383 3.50151893 0.961056166 4.49848107 64.9610562 9.49848107"></polygon>
|
||||||
|
<polygon id="Path-4" fill="#BCBCBC" fill-rule="nonzero" opacity="0.400000006" points="252.242821 30.4370786 297.242821 5.43707864 296.757179 4.56292136 251.757179 29.5629214"></polygon>
|
||||||
|
<polygon id="Path-5" fill="#BCBCBC" fill-rule="nonzero" opacity="0.400000006" points="228.132741 213.482058 297.132741 194.482058 296.867259 193.517942 227.867259 212.517942"></polygon>
|
||||||
|
<polygon id="Path-6" fill="#BCBCBC" fill-rule="nonzero" opacity="0.400000006" points="249.373705 442.332182 297.373705 388.332182 296.626295 387.667818 248.626295 441.667818"></polygon>
|
||||||
|
<polygon id="Path-7" fill="#BCBCBC" fill-rule="nonzero" opacity="0.400000006" points="89.0227038 391.500516 1.02270383 387.500516 0.97729617 388.499484 88.9772962 392.499484"></polygon>
|
||||||
|
<polygon id="Path-8" fill="#BCBCBC" fill-rule="nonzero" opacity="0.400000006" points="44.3156357 232.612219 1.3156357 197.612219 0.684364301 198.387781 43.6843643 233.387781"></polygon>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 27 KiB |
BIN
website/src/img/hero-graphic.jpg
Normal file
After Width: | Height: | Size: 64 KiB |
18
website/src/img/netlify-cms-logo.svg
Normal file
After Width: | Height: | Size: 16 KiB |
32
website/src/img/netlify-logo.svg
Normal file
After Width: | Height: | Size: 15 KiB |
15
website/src/img/search.svg
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
|
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Capa_1" x="0px"
|
||||||
|
y="0px" viewBox="0 0 56.966 56.966" style="enable-background:new 0 0 56.966
|
||||||
|
56.966;" xml:space="preserve" width="16px" height="12px"
|
||||||
|
>
|
||||||
|
<path
|
||||||
|
d="M55.146,51.887L41.588,37.786c3.486-4.144,5.396-9.358,5.396-14.786c0-12.682-10.318-23-23-23s-23,10.318-23,23
|
||||||
|
s10.318,23,23,23c4.761,0,9.298-1.436,13.177-4.162l13.661,14.208c0.571,0.593,1.339,0.92,2.162,0.92
|
||||||
|
c0.779,0,1.518-0.297,2.079-0.837C56.255,54.982,56.293,53.08,55.146,51.887z
|
||||||
|
M23.984,6c9.374,0,17,7.626,17,17s-7.626,17-17,17
|
||||||
|
s-17-7.626-17-17S14.61,6,23.984,6z" fill="#FFFFFF"
|
||||||
|
/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 821 B |
18
website/src/img/smashing-logo.svg
Normal file
After Width: | Height: | Size: 15 KiB |
19
website/src/img/wavy-divider.svg
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg width="1440px" height="85px" viewBox="0 0 1440 85" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
<!-- Generator: Sketch 42 (36781) - http://www.bohemiancoding.com/sketch -->
|
||||||
|
<title>wavy-divider</title>
|
||||||
|
<desc>Created with Sketch.</desc>
|
||||||
|
<defs>
|
||||||
|
<linearGradient x1="50%" y1="29.9029703%" x2="50%" y2="100%" id="linearGradient-1">
|
||||||
|
<stop stop-color="#000000" stop-opacity="0.0211447011" offset="0%"></stop>
|
||||||
|
<stop stop-color="#000000" stop-opacity="0" offset="100%"></stop>
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
<g id="landing" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||||
|
<g id="cms-landing-v6" transform="translate(0.000000, -1205.000000)" fill="url(#linearGradient-1)">
|
||||||
|
<g id="triptych" transform="translate(0.000000, 1205.000000)">
|
||||||
|
<path d="M-1.35525272e-20,85 L1440,85 L1440,61 C1440,61 1440,11 1080,11 C720,11 718,47 358,47 C-2,47 -2.27373675e-13,0.647058824 -2.27373675e-13,0.647058824 L-1.35525272e-20,85 Z" id="wavy-divider"></path>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.2 KiB |
124
website/src/js/app.js
Executable file
@ -0,0 +1,124 @@
|
|||||||
|
// Sticky Nav Functionality in Vanilla JS
|
||||||
|
|
||||||
|
var header = $("#header");
|
||||||
|
|
||||||
|
if ($('.landing.page, .community.page').length) {
|
||||||
|
window.onscroll = function() {
|
||||||
|
|
||||||
|
var currentWindowPos = document.documentElement.scrollTop || document.body.scrollTop;
|
||||||
|
|
||||||
|
if (currentWindowPos > 0) {
|
||||||
|
header.addClass('scrolled');
|
||||||
|
} else {
|
||||||
|
header.removeClass('scrolled');
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
// Auto Indexing Docs Nav
|
||||||
|
|
||||||
|
var indexDocsSubsections = function() {
|
||||||
|
if ($('.docs.page').length) {
|
||||||
|
|
||||||
|
if ($('#docs-content h2').length > 1) {
|
||||||
|
$('<ul class="nav-subsections" id="nav-subsections"></ul>').insertAfter($('#docs-nav .nav-link.active'));
|
||||||
|
|
||||||
|
$('#docs-content h2').each(function() {
|
||||||
|
var sectionTitle = $(this).html(),
|
||||||
|
anchor = $(this).attr("id");
|
||||||
|
|
||||||
|
$('#nav-subsections').append('<li><a class="subnav-link for-' + anchor + '" href="#' + anchor + '">' + sectionTitle + '</a></li>');
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
$.localScroll({
|
||||||
|
offset: -120,
|
||||||
|
duration:200,
|
||||||
|
hash:true
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
$(window).on('scroll', function(){
|
||||||
|
window.requestAnimationFrame(scrollHandler);
|
||||||
|
|
||||||
|
function scrollHandler() {
|
||||||
|
var scrollTop = $(window).scrollTop(),
|
||||||
|
windowHeight = $(window).height(),
|
||||||
|
first = false,
|
||||||
|
allSubnavLinks = $("#docs-nav .subnav-link");
|
||||||
|
|
||||||
|
$("#docs-content h2").each( function() {
|
||||||
|
var offset = $(this).offset(),
|
||||||
|
thisLink = '.for-' + $(this).attr("id");
|
||||||
|
|
||||||
|
if (scrollTop <= offset.top && ($(this).height() + offset.top) < (scrollTop + windowHeight) && first == false) {
|
||||||
|
allSubnavLinks.removeClass('active');
|
||||||
|
$(thisLink).addClass('active');
|
||||||
|
first=true;
|
||||||
|
} else {
|
||||||
|
first=false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
indexDocsSubsections();
|
||||||
|
|
||||||
|
var docsMobileMenu = function() {
|
||||||
|
if ($('.docs.page').length) {
|
||||||
|
|
||||||
|
$("#mobile-docs-nav").change(function() {
|
||||||
|
window.location = $(this).find("option:selected").val();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
docsMobileMenu();
|
||||||
|
|
||||||
|
// search
|
||||||
|
$('#search-button').click(function() {
|
||||||
|
console.log("clicked")
|
||||||
|
$('.search-icon').toggleClass('active');
|
||||||
|
$('.algolia-search').toggleClass('closed');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
// eventbrite info
|
||||||
|
var eventInfoLoad = function() {
|
||||||
|
if ($('.community.page').length) {
|
||||||
|
var eventRequest = new XMLHttpRequest;
|
||||||
|
var eventbriteToken = 'C5PX65CJBVIXWWLNFKLO';
|
||||||
|
var eventbriteOrganiser = '14281996019';
|
||||||
|
eventRequest.open('GET', 'https://www.eventbriteapi.com/v3/events/search/?token=' + eventbriteToken + '&organizer.id=' + eventbriteOrganiser + '&expand=venue%27', true);
|
||||||
|
|
||||||
|
eventRequest.onload = function() {
|
||||||
|
if (eventRequest.status >= 200 && eventRequest.status < 400) {
|
||||||
|
// Success!
|
||||||
|
var data = JSON.parse(eventRequest.responseText);
|
||||||
|
var upcomingDate = data.events[0].start.utc;
|
||||||
|
updateDate(upcomingDate);
|
||||||
|
} else {
|
||||||
|
var upcomingDate = "0000-00-00T00:00:00Z";
|
||||||
|
updateDate(upcomingDate);
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
eventRequest.onerror = function() {
|
||||||
|
alert('The event info could not be loaded at this time, please try again later.');
|
||||||
|
};
|
||||||
|
|
||||||
|
function updateDate(eventDate) {
|
||||||
|
$('.month').append(moment(eventDate).format('MMMM'));
|
||||||
|
$('.day').append(moment(eventDate).format('DD'));
|
||||||
|
$('.calendar-cta h2 strong:first-child()').append(moment(eventDate).format('dddd, MMMM Do'));
|
||||||
|
$('.calendar-cta h2 strong:last-child()').append(moment(eventDate).utcOffset(-7).format('h a'));
|
||||||
|
}
|
||||||
|
|
||||||
|
eventRequest.send();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
eventInfoLoad();
|
37
website/webpack.conf.js
Executable file
@ -0,0 +1,37 @@
|
|||||||
|
import webpack from "webpack";
|
||||||
|
import path from "path";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
module: {
|
||||||
|
loaders: [
|
||||||
|
{
|
||||||
|
test: /\.((png)|(eot)|(woff)|(woff2)|(ttf)|(svg)|(gif))(\?v=\d+\.\d+\.\d+)?$/,
|
||||||
|
loader: "file?name=/[hash].[ext]"
|
||||||
|
},
|
||||||
|
{test: /\.json$/, loader: "json-loader"},
|
||||||
|
{
|
||||||
|
loader: "babel",
|
||||||
|
test: /\.js?$/,
|
||||||
|
exclude: /node_modules/,
|
||||||
|
query: {cacheDirectory: true}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
|
||||||
|
plugins: [
|
||||||
|
new webpack.ProvidePlugin({
|
||||||
|
"fetch": "imports?this=>global!exports?global.fetch!whatwg-fetch"
|
||||||
|
})
|
||||||
|
],
|
||||||
|
|
||||||
|
context: path.join(__dirname, "src"),
|
||||||
|
entry: {
|
||||||
|
app: ["./js/app"]
|
||||||
|
},
|
||||||
|
output: {
|
||||||
|
path: path.join(__dirname, "dist"),
|
||||||
|
publicPath: "/",
|
||||||
|
filename: "[name].js"
|
||||||
|
},
|
||||||
|
externals: [/^vendor\/.+\.js$/]
|
||||||
|
};
|