├── .gitignore ├── favicon.ico ├── README.md ├── index.js ├── index.html ├── js └── tags │ ├── markdown.html │ ├── highlight.html │ └── app.html ├── .eslintrc ├── less ├── main.less ├── mixins.less ├── components │ ├── card.less │ ├── button.less │ └── stripe.less ├── variables.less ├── layout.less ├── base.less └── vendor │ └── flex-grid.less ├── docs ├── 2.6.7 │ ├── mixin.md │ ├── observable.md │ ├── riot.md │ ├── tag.md │ ├── router.md │ └── templating.md └── 3.0.0 │ ├── mixin.md │ ├── observable.md │ ├── riot.md │ ├── tag.md │ ├── router.md │ └── templating.md ├── package.json └── webpack.config.js /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MartinMuzatko/riot-cheatsheet/HEAD/favicon.ico -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # riot-cheatsheet 2 | Riot at a glance 3 | 4 | http://martinmuzatko.github.io/riot-cheatsheet 5 | 6 | 7 | ## Building the source 8 | 9 | `npm i` 10 | 11 | `webpack` 12 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | import riot from 'riot' 2 | import 'zenscroll' 3 | import Waypoint from './node_modules/waypoints/lib/noframework.waypoints.js' 4 | import './less/main.less' 5 | import './js/tags/app.html' 6 | import './js/tags/markdown.html' 7 | import './js/tags/highlight.html' 8 | 9 | document.body.innerHTML = '' 10 | riot.mount('*') 11 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Riot Cheatsheet | by MartinMuzatko 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /js/tags/markdown.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16 | 17 | -------------------------------------------------------------------------------- /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "parserOptions": { 3 | "ecmaVersion": 6, 4 | "sourceType": "module", 5 | "ecmaFeatures": { 6 | "jsx": false 7 | } 8 | }, 9 | "extends": "eslint:recommended", 10 | "rules": { 11 | "semi": [2, "never"], 12 | "no-unreachable": 2, 13 | "no-console": 0, 14 | "no-debugger": 0, 15 | "no-unused-vars": 0 16 | 17 | }, 18 | "env": { 19 | "browser": true, 20 | "node": true, 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /less/main.less: -------------------------------------------------------------------------------- 1 | @import (less) url(../node_modules/normalize.css/normalize.css); 2 | @import (less) url(../node_modules/prismjs/themes/prism-coy.css); 3 | 4 | @import url(https://fonts.googleapis.com/css?family=Cousine); 5 | @import url(https://fonts.googleapis.com/css?family=Merriweather+Sans:400,700); 6 | 7 | @import url('vendor/flex-grid.less'); 8 | 9 | @import url('variables.less'); 10 | @import url('mixins.less'); 11 | 12 | @import url('components/button.less'); 13 | @import url('components/card.less'); 14 | @import url('components/stripe.less'); 15 | 16 | @import url('base.less'); 17 | @import url('layout.less'); 18 | -------------------------------------------------------------------------------- /docs/2.6.7/mixin.md: -------------------------------------------------------------------------------- 1 | # Mixins 2 | 3 | ## Mixin anatomy 4 | 5 | A mixin can be a `function`, `object` or `class` 6 | Mixins have, after initializing them, access to your tag 7 | 8 | ```js 9 | var authService = { 10 | init: () => { 11 | // Called upon initializing the mixin 12 | }, 13 | login: (user, pass) => {//...} 14 | } 15 | ``` 16 | 17 | ## Initializing 18 | 19 | ### Inline Usage 20 | 21 | For global objects or dynamic mixins within the tag 22 | 23 | ```js 24 | this.mixin(authService) 25 | ``` 26 | 27 | ### Shared Mixin 28 | 29 | Share your mixin across tags 30 | 31 | ```js 32 | // In global scope 33 | riot.mixin('auth-service', authService) 34 | // In your tag 35 | this.mixin('auth-service') 36 | ``` 37 | 38 | ### Global Mixin 39 | 40 | Add mixin to every mounted tag 41 | 42 | ```js 43 | // In global scope BEFORE mounting 44 | riot.mixin(authService) 45 | ``` 46 | -------------------------------------------------------------------------------- /docs/3.0.0/mixin.md: -------------------------------------------------------------------------------- 1 | # Mixins 2 | 3 | ## Mixin anatomy 4 | 5 | A mixin can be a `function`, `object` or `class` 6 | Mixins have, after initializing them, access to your tag 7 | 8 | ```js 9 | var authService = { 10 | init: () => { 11 | // Called upon initializing the mixin 12 | }, 13 | login: (user, pass) => {//...} 14 | } 15 | ``` 16 | 17 | ## Initializing 18 | 19 | ### Inline Usage 20 | 21 | For global objects or dynamic mixins within the tag 22 | 23 | ```js 24 | this.mixin(authService) 25 | ``` 26 | 27 | ### Shared Mixin 28 | 29 | Share your mixin across tags 30 | 31 | ```js 32 | // In global scope 33 | riot.mixin('auth-service', authService) 34 | // In your tag 35 | this.mixin('auth-service') 36 | ``` 37 | 38 | ### Global Mixin 39 | 40 | Add mixin to every mounted tag 41 | 42 | ```js 43 | // In global scope BEFORE mounting 44 | riot.mixin(authService) 45 | ``` 46 | -------------------------------------------------------------------------------- /docs/2.6.7/observable.md: -------------------------------------------------------------------------------- 1 | # Observable 2 | 3 | Great to create tag-based API 4 | For use outside tags, see [](#riot-observable) 5 | 6 | ## Trigger 7 | 8 | Trigger custom events similar `update` 9 | 10 | ### Simple trigger 11 | 12 | ```js 13 | this.trigger('selected', items) 14 | ``` 15 | 16 | ### Trigger with data 17 | 18 | ```js 19 | this.trigger('selected', items) 20 | ``` 21 | 22 | ## Listening to triggers 23 | 24 | From inside the tag or parent/child tag 25 | You can use them for [lifecycle events](#tag-lifecycle-events) too. 26 | 27 | ### Always listen 28 | 29 | ```js 30 | this.on('selected', (items) => { 31 | // Do something with the selected items 32 | }) 33 | ``` 34 | 35 | ### Listen once 36 | 37 | ```js 38 | this.one('selected', (items) => { 39 | // Do something with the selected items 40 | }) 41 | ``` 42 | 43 | ### Stop listening 44 | 45 | ```js 46 | this.off('selected') 47 | ``` 48 | -------------------------------------------------------------------------------- /docs/3.0.0/observable.md: -------------------------------------------------------------------------------- 1 | # Observable 2 | 3 | Great to create tag-based API 4 | For use outside tags, see [](#riot-observable) 5 | 6 | ## Trigger 7 | 8 | Trigger custom events similar `update` 9 | 10 | ### Simple trigger 11 | 12 | ```js 13 | this.trigger('selected', items) 14 | ``` 15 | 16 | ### Trigger with data 17 | 18 | ```js 19 | this.trigger('selected', items) 20 | ``` 21 | 22 | ## Listening to triggers 23 | 24 | From inside the tag or parent/child tag 25 | You can use them for [lifecycle events](#tag-lifecycle-events) too. 26 | 27 | ### Always listen 28 | 29 | ```js 30 | this.on('selected', (items) => { 31 | // Do something with the selected items 32 | }) 33 | ``` 34 | 35 | ### Listen once 36 | 37 | ```js 38 | this.one('selected', (items) => { 39 | // Do something with the selected items 40 | }) 41 | ``` 42 | 43 | ### Stop listening 44 | 45 | ```js 46 | this.off('selected') 47 | ``` 48 | -------------------------------------------------------------------------------- /less/mixins.less: -------------------------------------------------------------------------------- 1 | /* ======================================== 2 | MIXINS 3 | * General Use Mixins to ease up reoccuring styles 4 | * No Components! 5 | ======================================== */ 6 | 7 | 8 | .padding-vertical(@amount: 2em) { 9 | padding-top: @amount; 10 | padding-bottom: @amount; 11 | } 12 | 13 | .padding-horizontal(@amount: 5%) { 14 | padding-left: @amount; 15 | padding-right: @amount; 16 | } 17 | 18 | .border(@size: -.25em, @color: @color-dark-shadow) { 19 | box-shadow: inset 0 @size 0 @color; 20 | } 21 | 22 | .responsiveWidth(@width) { 23 | @media screen and (min-width: @breakpoint-sm) { 24 | width: @breakpoint-sm - @width / 3; 25 | } 26 | @media screen and (min-width: @breakpoint-md) { 27 | width: @breakpoint-md - @width / 2; 28 | } 29 | @media screen and (min-width: @breakpoint-lg) { 30 | width: @breakpoint-lg - @width; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /js/tags/highlight.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 | 5 |
6 | 25 |
26 | -------------------------------------------------------------------------------- /less/components/card.less: -------------------------------------------------------------------------------- 1 | /* ======================================== 2 | CARD COMPONENT 3 | * Defines a rectangular area, used for a specific kind of content 4 | * containing a title, description and actions (buttons/icons) 5 | * a card is often used together with grid systems to evenly 6 | * distribute related content. 7 | * Cards contain little and scannable content to quickly get to the desired 8 | * full content. Thus, a description should contain not more than 140 letters 9 | * 10 | * @type 11 | ======================================== */ 12 | 13 | .card(@color: @color-primary, @size: small, @action: false, @action-color: lighten(@color, 10%)) { 14 | background-color: @color; 15 | & when (@action = true) { 16 | transition: all @duration-action ease; 17 | cursor: pointer; 18 | &:hover 19 | { 20 | background-color: lighten(@color, 10%); 21 | & when (iscolor(@action-color)) { 22 | background-color: @action-color; 23 | } 24 | } 25 | } 26 | 27 | & when (@size = small) { 28 | padding: 1em; 29 | } 30 | & when (@size = medium) { 31 | padding: 2.5em; 32 | } 33 | & when (@size = large) { 34 | padding: 4em; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /docs/2.6.7/riot.md: -------------------------------------------------------------------------------- 1 | # Riot 2 | 3 | ## mount 4 | 5 | Mounting a tag will make it appear on your webpage/app 6 | There are various ways to mount your tags 7 | 8 | ### All 9 | 10 | This will mount all tags and their children tags 11 | 12 | **Notice:** This will not mount dynamically loaded tags such as with a router 13 | 14 | ```js 15 | riot.mount('*') 16 | ``` 17 | 18 | ### Specific with options 19 | 20 | When mounting a tag, you can pass options, accessible as `opts` 21 | 22 | ```html 23 | 24 | 32 | ``` 33 | 34 | ### Data attribute 35 | 36 | **Notice:** This feature is supported in **Riot 2.3.17** or later 37 | With a `data` attribute, you can mount a tag into an element 38 | 39 | ```html 40 | 41 | 45 | ``` 46 | 47 | 48 | ### Mount to DOM node 49 | 50 | You can also use a DOM node to mount your tag 51 | 52 | ```html 53 |
54 | 58 | ``` 59 | 60 | 61 | ## observable 62 | 63 | Turns a non-riot object/class into an observable, being capable of triggering and listening to events 64 | This will add `trigger`, `on`, `one` and `off` to the provided object 65 | See [Observable](#observable) for all methods 66 | 67 | ```js 68 | class AuthService { 69 | constructor() { 70 | riot.observable(this) 71 | } 72 | } 73 | ``` 74 | -------------------------------------------------------------------------------- /docs/3.0.0/riot.md: -------------------------------------------------------------------------------- 1 | # Riot 2 | 3 | ## mount 4 | 5 | Mounting a tag will make it appear on your webpage/app 6 | There are various ways to mount your tags 7 | 8 | ### All 9 | 10 | This will mount all tags and their children tags 11 | 12 | **Notice:** This will not mount dynamically loaded tags such as with a router 13 | 14 | ```js 15 | riot.mount('*') 16 | ``` 17 | 18 | ### Specific with options 19 | 20 | When mounting a tag, you can pass options, accessible as `opts` 21 | 22 | ```html 23 | 24 | 32 | ``` 33 | 34 | ### Data attribute 35 | 36 | **Notice:** This feature is supported in **Riot 2.3.17** or later 37 | With a `data` attribute, you can mount a tag into an element 38 | 39 | ```html 40 | 41 | 45 | ``` 46 | 47 | 48 | ### Mount to DOM node 49 | 50 | You can also use a DOM node to mount your tag 51 | 52 | ```html 53 |
54 | 58 | ``` 59 | 60 | 61 | ## observable 62 | 63 | Turns a non-riot object/class into an observable, being capable of triggering and listening to events 64 | This will add `trigger`, `on`, `one` and `off` to the provided object 65 | See [Observable](#observable) for all methods 66 | 67 | ```js 68 | class AuthService { 69 | constructor() { 70 | riot.observable(this) 71 | } 72 | } 73 | ``` 74 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "riot-cheatsheet", 3 | "version": "1.0.0", 4 | "description": "Riot at a glance", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git+https://github.com/MartinMuzatko/riot-cheatsheet.git" 12 | }, 13 | "author": "Martin Muzatko (http://happy-css.com/)", 14 | "license": "MIT", 15 | "bugs": { 16 | "url": "https://github.com/MartinMuzatko/riot-cheatsheet/issues" 17 | }, 18 | "homepage": "https://github.com/MartinMuzatko/riot-cheatsheet#readme", 19 | "devDependencies": { 20 | "autoprefixer": "^6.3.6", 21 | "babel": "^6.5.2", 22 | "babel-core": "^6.10.4", 23 | "babel-loader": "^6.2.4", 24 | "babel-preset-es2015": "^6.9.0", 25 | "babel-preset-es2015-riot": "^1.1.0", 26 | "browser-sync": "^2.16.0", 27 | "browser-sync-webpack-plugin": "^1.1.3", 28 | "css-loader": "^0.23.1", 29 | "eslint": "^2.13.1", 30 | "eslint-loader": "^1.3.0", 31 | "file-loader": "^0.9.0", 32 | "html-loader": "^0.4.3", 33 | "less": "^2.7.1", 34 | "less-loader": "^2.2.3", 35 | "markdown-loader": "^0.1.7", 36 | "marked": "^0.3.5", 37 | "postcss": "^5.0.21", 38 | "postcss-loader": "^0.9.1", 39 | "prismjs": "^1.5.1", 40 | "riot": "^2.6.1", 41 | "riot-loader": "^1.0.0", 42 | "riotjs-loader": "^3.0.0", 43 | "source-map-loader": "^0.1.5", 44 | "style-loader": "^0.13.1", 45 | "url-loader": "^0.5.7", 46 | "webpack": "^1.13.1", 47 | "webpack-dev-server": "^1.14.1" 48 | }, 49 | "dependencies": { 50 | "normalize.css": "^4.1.1", 51 | "waypoints": "^4.0.0", 52 | "zenscroll": "^3.1.0" 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /webpack.config.js: -------------------------------------------------------------------------------- 1 | var webpack = require('webpack') 2 | var prism = require('prismjs') 3 | var autoprefixer = require('autoprefixer') 4 | var BrowserSyncPlugin = require('browser-sync-webpack-plugin') 5 | 6 | var marked = require('marked') 7 | var renderer = new marked.Renderer() 8 | renderer.code = (code, language) => { 9 | var html = prism.highlight(code, prism.languages.javascript) 10 | return `
${html}
` 11 | } 12 | 13 | 14 | module.exports = { 15 | entry: './index.js', 16 | output: { 17 | path: './', 18 | filename: 'bundle.js', 19 | sourceMapFilename: "[name].js.map", 20 | }, 21 | module: { 22 | preLoaders: [ 23 | { test: /\.html$/, loader: 'riotjs' }, 24 | { test: /\.js$/, loader: 'eslint!source-map' }, 25 | ], 26 | loaders: [ 27 | { test: /\.md$/, loader: 'html!markdown'}, 28 | { test: /\.(jpe?g|png|gif|svg|mp4)$/i, loader: 'file'}, 29 | { test: /\.html$|\.js$/, loader: 'babel', query: { presets: 'es2015-riot' }}, 30 | { test: /\.less$/, loader: 'style!css?minimize!postcss!less'}, 31 | ] 32 | }, 33 | markdownLoader: { 34 | renderer: renderer 35 | }, 36 | postcss: () => { 37 | return [ 38 | autoprefixer({browsers: 'last 2 versions'}) 39 | ]; 40 | }, 41 | plugins: [ 42 | new webpack.ProvidePlugin({ 43 | riot: 'riot' 44 | }), 45 | new BrowserSyncPlugin( 46 | { 47 | host: 'localhost', 48 | port: 8081, 49 | proxy: 'http://localhost:8080/' 50 | }, 51 | { 52 | reload: true 53 | } 54 | ) 55 | ], 56 | eslint: { 57 | configFile: './.eslintrc' 58 | }, 59 | devtool: 'source-map' 60 | } 61 | -------------------------------------------------------------------------------- /less/components/button.less: -------------------------------------------------------------------------------- 1 | /* ======================================== 2 | BUTTON COMPONENT 3 | * Defines a full-width colorful container 4 | * 5 | * @size: small|medium|large|custom(e.g.:5%) 6 | * @indent: small|medium|large|custom(e.g.:5%) 7 | * @color: color 8 | ======================================== */ 9 | 10 | .button(@color: @color-primary, @type: outline) { 11 | display: inline-block; 12 | user-select: none; 13 | width: auto; 14 | margin-top: 1em; 15 | border-radius: .1em; 16 | font-size: 1em; 17 | cursor: pointer; 18 | line-height: 1; 19 | text-transform: uppercase; 20 | transition: all @duration-action ease; 21 | font-family: @font-body; 22 | & when (@type = outline) { 23 | background-color: transparent; 24 | color: @color-light; 25 | border: 1px solid @color-light; 26 | &:hover { 27 | background-color: @color-light; 28 | color: @color; 29 | } 30 | } 31 | & when (@type = outline-reverse) { 32 | background-color: transparent; 33 | color: @color; 34 | border: 1px solid @color; 35 | &:hover { 36 | color: @color-light; 37 | background-color: @color; 38 | } 39 | } 40 | & when (@type = full) { 41 | background-color: @color; 42 | color: contrast(@color, @color-dark, @color-light); 43 | 44 | &:hover { 45 | box-sizing: border-box; 46 | @color-hover: lighten(@color, 10%); 47 | animation-name: lsd-background; 48 | animation-duration: 3s; 49 | animation-iteration-count: infinite; 50 | color: contrast(@color-hover, @color-dark, @color-light); 51 | } 52 | } 53 | } 54 | 55 | .button { 56 | &.outline { 57 | .button(@color-primary, @type: outline); 58 | } 59 | &.reverse { 60 | .button(@color-primary, @type: outline-reverse); 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /less/variables.less: -------------------------------------------------------------------------------- 1 | /* ======================================== 2 | COLORS 3 | ======================================== */ 4 | 5 | @color-primary: hsl(344, 100%, 50%); 6 | 7 | @color-dark: hsl(344, 10%, 20%); 8 | @color-light: hsl(344, 10%, 95%); 9 | @color-dark-shadow: fadeout(@color-dark, 50%); 10 | @color-dark-shadow-faded: fadeout(@color-dark-shadow, 40%); 11 | @color-light-shadow: fadeout(@color-light, 50%); 12 | 13 | /* ======================================== 14 | FONTS 15 | ======================================== */ 16 | 17 | @font-code: 'Cousine', monospace; 18 | @font-body: 'Merriweather Sans', verdana; 19 | @font-heading: 'Merriweather Sans', sans-serif; 20 | @font-replacement: sans serif; 21 | 22 | /* ======================================== 23 | BREAKPOINTS 24 | ======================================== */ 25 | 26 | @breakpoint-sm: 600px; 27 | @breakpoint-md: 960px; 28 | @breakpoint-lg: 1200px; 29 | 30 | // ALIAS 31 | @breakpoint-mobile-nav : @breakpoint-md; 32 | 33 | /* ======================================== 34 | Z-INDEXES 35 | ======================================== */ 36 | 37 | @z-index-overlay: 200; 38 | @z-index-blanket: 300; 39 | @z-index-header: 400; 40 | @z-index-modal: 500; 41 | @z-index-popup: 600; 42 | 43 | /* ======================================== 44 | DURATIONS 45 | ======================================== */ 46 | 47 | @duration-hover: .33s; 48 | @duration-action: .5s; 49 | @duration-animation: 1s; 50 | 51 | /* ======================================== 52 | INDENTATIONS 53 | ======================================== */ 54 | 55 | @indent-outer: 6em; 56 | @indent-larger: 4em; 57 | @indent-large: 2em; 58 | @indent-medium: 1em; 59 | @indent-small: .25em; 60 | 61 | @width-small: 40*16; 62 | @width-medium: 20*16; 63 | @width-large: 10*16; 64 | 65 | /* ======================================== 66 | INDENTATIONS 67 | ======================================== */ 68 | 69 | @border-width: @indent-small; 70 | -------------------------------------------------------------------------------- /docs/2.6.7/tag.md: -------------------------------------------------------------------------------- 1 | # Tag 2 | 3 | ## Lifecycle events 4 | 5 | ### before-mount 6 | 7 | Before the tag is mounted 8 | 9 | ```js 10 | this.on('before-mount', () => { 11 | }) 12 | ``` 13 | 14 | ### mount 15 | 16 | 17 | After all expressions are evaluated on mount 18 | 19 | ```js 20 | this.on('mount', () => { 21 | }) 22 | ``` 23 | 24 | ### update 25 | 26 | Allows recalculation of data before updating 27 | 28 | ```js 29 | this.on('update', () => { 30 | }) 31 | ``` 32 | 33 | ### updated 34 | 35 | After updates 36 | 37 | ```js 38 | this.on('updated', () => { 39 | }) 40 | ``` 41 | 42 | ### before-unmount 43 | 44 | Before the tag is removed 45 | 46 | ```js 47 | this.on('before-unmount', () => { 48 | }) 49 | ``` 50 | 51 | ### unmount 52 | 53 | After the tag is removed 54 | 55 | ```js 56 | this.on('unmount', () => { 57 | }) 58 | ``` 59 | 60 | ### all events 61 | 62 | Listen to all events 63 | You can fetch the event name if desired 64 | 65 | ```js 66 | this.on('*', (eventName) => { 67 | }) 68 | ``` 69 | 70 | ## Tag Methods & Properties 71 | 72 | ### on, one, off, trigger 73 | 74 | A riot tag already implements a `riot.observable` 75 | See [observable](#observable) 76 | 77 | ### Update 78 | 79 | Shortcut for [trigger](#observable-trigger) `this.trigger('update')` 80 | 81 | ```js 82 | this.update() 83 | ``` 84 | 85 | ### isMounted 86 | 87 | Attribute to tell whether or not the tag is mounted 88 | 89 | ```js 90 | this.isMounted 91 | ``` 92 | 93 | ### root 94 | 95 | Points to it's own tag element 96 | 97 | ```js 98 | this.root // reference to riot tag 99 | ``` 100 | 101 | ### opts 102 | 103 | Options passed via HTML or on mount, See [options](#templating-options) 104 | 105 | ### mixin 106 | 107 | See [Mixins](#mixins) 108 | 109 | 110 | ### tags 111 | 112 | See [Child tags](#templating-child-tags) 113 | 114 | ### parent 115 | 116 | Access the parent tag, if there is one 117 | 118 | ```js 119 | this.parent // 120 | ``` 121 | -------------------------------------------------------------------------------- /docs/3.0.0/tag.md: -------------------------------------------------------------------------------- 1 | # Tag 2 | 3 | ## Lifecycle events 4 | 5 | ### before-mount 6 | 7 | Before the tag is mounted 8 | 9 | ```js 10 | this.on('before-mount', () => { 11 | }) 12 | ``` 13 | 14 | ### mount 15 | 16 | 17 | After all expressions are evaluated on mount 18 | 19 | ```js 20 | this.on('mount', () => { 21 | }) 22 | ``` 23 | 24 | ### update 25 | 26 | Allows recalculation of data before updating 27 | 28 | ```js 29 | this.on('update', () => { 30 | }) 31 | ``` 32 | 33 | ### updated 34 | 35 | After updates 36 | 37 | ```js 38 | this.on('updated', () => { 39 | }) 40 | ``` 41 | 42 | ### before-unmount 43 | 44 | Before the tag is removed 45 | 46 | ```js 47 | this.on('before-unmount', () => { 48 | }) 49 | ``` 50 | 51 | ### unmount 52 | 53 | After the tag is removed 54 | 55 | ```js 56 | this.on('unmount', () => { 57 | }) 58 | ``` 59 | 60 | ### all events 61 | 62 | Listen to all events 63 | You can fetch the event name if desired 64 | 65 | ```js 66 | this.on('*', (eventName) => { 67 | }) 68 | ``` 69 | 70 | ## Tag Methods & Properties 71 | 72 | ### on, one, off, trigger 73 | 74 | A riot tag already implements a `riot.observable` 75 | See [observable](#observable) 76 | 77 | ### Update 78 | 79 | Shortcut for [trigger](#observable-trigger) `this.trigger('update')` 80 | 81 | ```js 82 | this.update() 83 | ``` 84 | 85 | ### isMounted 86 | 87 | Attribute to tell whether or not the tag is mounted 88 | 89 | ```js 90 | this.isMounted 91 | ``` 92 | 93 | ### root 94 | 95 | Points to it's own tag element 96 | 97 | ```js 98 | this.root // reference to riot tag 99 | ``` 100 | 101 | ### opts 102 | 103 | Options passed via HTML or on mount, See [options](#templating-options) 104 | 105 | ### mixin 106 | 107 | See [Mixins](#mixins) 108 | 109 | 110 | ### tags 111 | 112 | See [Child tags](#templating-child-tags) 113 | 114 | ### parent 115 | 116 | Access the parent tag, if there is one 117 | 118 | ```js 119 | this.parent // 120 | ``` 121 | -------------------------------------------------------------------------------- /less/components/stripe.less: -------------------------------------------------------------------------------- 1 | /* ======================================== 2 | STRIPE COMPONENT 3 | * Defines a full-width colorful container 4 | * 5 | * @padding: small|medium|large|custom(e.g.:5%) 6 | * @width: small|medium|large|custom(e.g.:300) 7 | * this value is substracted from the current breakpoint 8 | * @color: color 9 | ======================================== */ 10 | 11 | .stripe(@padding: medium, @width: 10*16, @color: inherit) { 12 | padding: @indent-large 0; 13 | width: 100%; 14 | & when not(@color = inherit) { 15 | background-color: @color; 16 | } 17 | & when (iscolor(@color)) { 18 | color: contrast(@color, @color-dark, @color-light); 19 | } 20 | 21 | & when (isnumber(@padding)) { 22 | .padding-vertical(@padding); 23 | } 24 | & when (@padding = small) { 25 | .padding-vertical(@indent-medium); 26 | } 27 | & when (@padding = medium) { 28 | .padding-vertical(@indent-large); 29 | } 30 | & when (@padding = large) { 31 | .padding-vertical(@indent-larger); 32 | } 33 | // width 34 | & when 35 | (@width = small), 36 | (@width = medium), 37 | (@width = large), 38 | (isnumber(@width)) { 39 | // width 40 | > * { 41 | margin-left: auto; 42 | margin-right: auto; 43 | //width: 60em; 44 | @media screen and (max-width: @breakpoint-sm) { 45 | .padding-horizontal(5%); 46 | } 47 | } 48 | } 49 | 50 | // Breakpoint - @var 51 | & when (@width = small) { 52 | > * { 53 | .responsiveWidth(@width-small); 54 | } 55 | } 56 | & when (@width = medium) { 57 | > * { 58 | .responsiveWidth(@width-medium); 59 | } 60 | } 61 | & when (@width = large) { 62 | > * { 63 | .responsiveWidth(@width-large); 64 | } 65 | } 66 | & when (isnumber(@width)) { 67 | > * { 68 | .responsiveWidth(@width); 69 | } 70 | } 71 | } 72 | 73 | .striped(@size: @indent-larger, @color-odd: darken(@color-light, 5%), @color-even: @color-light) { 74 | > *:nth-child(2n+1) { 75 | .stripe(@size, @indent-primary, @color-odd); 76 | } 77 | > *:nth-child(2n) { 78 | .stripe(@size, @indent-primary, @color-even); 79 | } 80 | } 81 | 82 | .stripe.fluid { 83 | padding: 0; 84 | > * { 85 | width: 100%; 86 | } 87 | } 88 | 89 | 90 | .stripe { 91 | &.medium { 92 | .stripe(large, medium, inherit) 93 | } 94 | &.small { 95 | .stripe(large, small, inherit) 96 | } 97 | } 98 | -------------------------------------------------------------------------------- /docs/2.6.7/router.md: -------------------------------------------------------------------------------- 1 | # Router 2 | 3 | The router takes care of the history `pushState` 4 | 5 | Depending on route, you can mount different tags, update data and so on. 6 | 7 | ## Minimal setup 8 | 9 | ### Setup 10 | 11 | The function works with any amount of parameters 12 | 13 | **Recommendation:** Put your routing setup within `this.on('mount', () => {})` in your main tag, that controls everything (e.g. `app.html`) 14 | 15 | ```html 16 |
17 | 23 | ``` 24 | 25 | ### Go to Route 26 | 27 | This will call the route method defined above 28 | Where `customer` is `collection`, `edit` is `action` and `289` is `id` 29 | 30 | ```js 31 | riot.route('customer/edit/289') 32 | ``` 33 | 34 | ### Start listening 35 | 36 | This starts the router, and examines the hash that is already in place 37 | **Notice:** This feature is supported in **Riot 2.3** or later 38 | 39 | ```js 40 | riot.route.start(true) 41 | ``` 42 | 43 | In earlier versions of riot, this was done with 44 | 45 | ```js 46 | riot.route.start() 47 | riot.route.exec() 48 | ``` 49 | 50 | You can also separately set them up, if you like to 51 | 52 | ## Advanced setup 53 | 54 | In the advanced setup, you can set up a function per route call and you are more flexible with wildcard support 55 | 56 | **Notice:** These features are only supported on **Riot 2.3** or later 57 | 58 | ### Route without wildcard 59 | 60 | ```js 61 | riot.route('/index', () => {}) 62 | ``` 63 | 64 | ### Route with wildcard 65 | 66 | Regex for wildcards: 67 | 68 | \* `([^/?#]+?)` 69 | 70 | .. `.*` 71 | 72 | This route will catch everything that is a subroute of `blog` 73 | 74 | ```js 75 | riot.route('/blog/*', (entry) => {}) 76 | ``` 77 | 78 | You can setup more distinct variables, other than splitting `/` 79 | 80 | ```js 81 | riot.route('/blog/*-*/*', (month, year, entry) => { 82 | // route might look like /blog/06-2012/give-me-lasagna 83 | }) 84 | ``` 85 | 86 | Everything after a keyword 87 | 88 | ```js 89 | riot.route('/old..', () => { 90 | // Sorry, this page has been removed 91 | }) 92 | ``` 93 | 94 | ## Subroutes 95 | 96 | Subroutes overwrite existing routes, based on context 97 | 98 | ```js 99 | var subRoute = riot.route.create() 100 | subRoute('/blog/tags', () => { 101 | // Instead of looking for a post named tags 102 | // List all tags used in posts 103 | }) 104 | ``` 105 | -------------------------------------------------------------------------------- /docs/3.0.0/router.md: -------------------------------------------------------------------------------- 1 | # Router 2 | 3 | The router takes care of the history `pushState` 4 | 5 | Depending on route, you can mount different tags, update data and so on. 6 | 7 | ## Minimal setup 8 | 9 | ### Setup 10 | 11 | The function works with any amount of parameters 12 | 13 | **Recommendation:** Put your routing setup within `this.on('mount', () => {})` in your main tag, that controls everything (e.g. `app.html`) 14 | 15 | ```html 16 |
17 | 23 | ``` 24 | 25 | ### Go to Route 26 | 27 | This will call the route method defined above 28 | Where `customer` is `collection`, `edit` is `action` and `289` is `id` 29 | 30 | ```js 31 | riot.route('customer/edit/289') 32 | ``` 33 | 34 | ### Start listening 35 | 36 | This starts the router, and examines the hash that is already in place 37 | **Notice:** This feature is supported in **Riot 2.3** or later 38 | 39 | ```js 40 | riot.route.start(true) 41 | ``` 42 | 43 | In earlier versions of riot, this was done with 44 | 45 | ```js 46 | riot.route.start() 47 | riot.route.exec() 48 | ``` 49 | 50 | You can also separately set them up, if you like to 51 | 52 | ## Advanced setup 53 | 54 | In the advanced setup, you can set up a function per route call and you are more flexible with wildcard support 55 | 56 | **Notice:** These features are only supported on **Riot 2.3** or later 57 | 58 | ### Route without wildcard 59 | 60 | ```js 61 | riot.route('/index', () => {}) 62 | ``` 63 | 64 | ### Route with wildcard 65 | 66 | Regex for wildcards: 67 | 68 | \* `([^/?#]+?)` 69 | 70 | .. `.*` 71 | 72 | This route will catch everything that is a subroute of `blog` 73 | 74 | ```js 75 | riot.route('/blog/*', (entry) => {}) 76 | ``` 77 | 78 | You can setup more distinct variables, other than splitting `/` 79 | 80 | ```js 81 | riot.route('/blog/*-*/*', (month, year, entry) => { 82 | // route might look like /blog/06-2012/give-me-lasagna 83 | }) 84 | ``` 85 | 86 | Everything after a keyword 87 | 88 | ```js 89 | riot.route('/old..', () => { 90 | // Sorry, this page has been removed 91 | }) 92 | ``` 93 | 94 | ## Subroutes 95 | 96 | Subroutes overwrite existing routes, based on context 97 | 98 | ```js 99 | var subRoute = riot.route.create() 100 | subRoute('/blog/tags', () => { 101 | // Instead of looking for a post named tags 102 | // List all tags used in posts 103 | }) 104 | ``` 105 | -------------------------------------------------------------------------------- /less/layout.less: -------------------------------------------------------------------------------- 1 | * { 2 | box-sizing: border-box; 3 | } 4 | 5 | @navigation-indent: 10em; 6 | 7 | .versionpicker { 8 | color: @color-light; 9 | padding: .5em 0; 10 | img { 11 | border: 1px solid @color-light; 12 | border-radius: 2px; 13 | margin-right: .5eml 14 | } 15 | &:hover, &.active { 16 | color: @color-primary; 17 | > * { 18 | color: @color-primary; 19 | } 20 | box-shadow: inset -.125em 0 @color-primary; 21 | background: @color-light; 22 | } 23 | } 24 | 25 | menu { 26 | @media screen and (max-width: @breakpoint-sm) { 27 | display: none; 28 | } 29 | position: fixed; 30 | margin: 0; 31 | margin-left: @navigation-indent; 32 | padding: 0; 33 | background: @color-dark-shadow; 34 | z-index: @z-index-overlay; 35 | transition: all @duration-hover ease; 36 | overflow-y: auto; 37 | max-height: 100%; 38 | b { 39 | color: @color-primary; 40 | } 41 | a { 42 | font-size: .8em; 43 | &:hover { 44 | color: @color-primary; 45 | background: @color-light; 46 | } 47 | color: @color-light; 48 | display: block; 49 | padding: .25em .5em; 50 | } 51 | input { 52 | width: 100%; 53 | padding: .25em .5em; 54 | } 55 | } 56 | 57 | header { 58 | @media screen and (max-width: @breakpoint-sm) { 59 | .stripe(large, medium); 60 | text-align: center; 61 | } 62 | @media screen and (min-width: @breakpoint-sm) { 63 | position: fixed; 64 | width: @navigation-indent; 65 | left: 0; 66 | top: 0; 67 | padding: 1em 0; 68 | height: 100%; 69 | box-shadow: inset -.125em 0 @color-dark-shadow; 70 | } 71 | p { 72 | color: @color-dark; 73 | background: @color-light; 74 | box-shadow: inset -.125em 0 @color-dark-shadow; 75 | 76 | } 77 | background: @color-primary; 78 | color: @color-light; 79 | padding: @indent-large 0; 80 | p { 81 | padding: .5em 1em; 82 | } 83 | nav a { 84 | display: block; 85 | color: @color-light; 86 | padding: 1em; 87 | text-transform: uppercase; 88 | &:hover, &.active { 89 | background: @color-light; 90 | color: @color-primary; 91 | box-shadow: inset -.125em 0 @color-primary; 92 | } 93 | } 94 | } 95 | 96 | .top { 97 | @media screen and (min-width: @breakpoint-sm) { 98 | display: none; 99 | } 100 | transition: all @duration-animation ease; 101 | opacity: 0; 102 | &.active { 103 | opacity: 1; 104 | } 105 | border-radius: 100%; 106 | position: fixed; 107 | background: @color-dark-shadow; 108 | color: @color-light; 109 | font-size: 5em; 110 | left: calc(~'50% - .5em'); 111 | bottom: -.5em; 112 | padding-top: .4em; 113 | height: 1em; 114 | width: 1em; 115 | z-index: @z-index-overlay; 116 | text-align: center; 117 | vertical-align: bottom; 118 | box-shadow: 0 0 .1em @color-light-shadow; 119 | } 120 | 121 | .container(@color) { 122 | .stripe(large, 30*16, @color); 123 | @media screen and (min-width: @breakpoint-sm) { 124 | width: calc(~'100% - @{navigation-indent}'); 125 | margin-left: @navigation-indent; 126 | } 127 | } 128 | 129 | main { 130 | .container(@color-light); 131 | a { 132 | border-bottom: 1px dashed @color-primary; 133 | &:hover { 134 | border-bottom: 1px solid @color-primary; 135 | } 136 | } 137 | h1,h2,h3,h4,h5,h6 { 138 | a, a:hover { 139 | border-bottom: none; 140 | } 141 | } 142 | } 143 | 144 | footer { 145 | .container(@color-dark); 146 | color: @color-light; 147 | } 148 | 149 | article { 150 | padding: .5em; 151 | } 152 | 153 | 154 | .github-corner { 155 | top: 0; 156 | right: 0; 157 | position: absolute; 158 | z-index: 100; 159 | @media screen and (min-width:@breakpoint-sm) { 160 | position: fixed; 161 | } 162 | } 163 | 164 | code[class*=language] { 165 | padding: 0 .5em; 166 | } 167 | 168 | pre[class*=language] { 169 | border-left-width: 0; 170 | } 171 | -------------------------------------------------------------------------------- /less/base.less: -------------------------------------------------------------------------------- 1 | /* ======================================== 2 | BASE 3 | * Contains HTML default elements (b,i,u,table...) 4 | * Does not contain classes, ids 5 | * Can implement mixins 6 | ======================================== */ 7 | 8 | * 9 | { 10 | box-sizing: border-box; 11 | } 12 | 13 | ::-webkit-scrollbar { 14 | width: .5em; 15 | } 16 | 17 | ::-webkit-scrollbar-thumb { 18 | background: @color-dark-shadow; 19 | } 20 | 21 | ::-webkit-scrollbar-track { 22 | background: @color-light-shadow; 23 | } 24 | 25 | /* ======================================== 26 | BLOCK ELEMENTS 27 | ======================================== */ 28 | 29 | code, pre { 30 | font-family: @font-code; 31 | } 32 | 33 | code { 34 | color: @color-primary; 35 | } 36 | 37 | body, html 38 | { 39 | scroll-behavior: smooth; 40 | background-color: @color-light; 41 | min-width: 320px; 42 | font-family: @font-body; 43 | font-weight: 300; 44 | font-size: 16px; 45 | line-height: 1.5em; // 24px / 150% 46 | color: @color-dark; 47 | margin: 0; 48 | padding: 0; 49 | height: 100%; 50 | width: 100%; 51 | } 52 | 53 | app { 54 | height: 100%; 55 | width: 100%; 56 | } 57 | 58 | table { 59 | margin: 1em 0 2em 0; 60 | border-spacing: 0; 61 | width: 100%; 62 | 63 | thead { 64 | background: darken(@color-light, 5%); 65 | } 66 | 67 | th { 68 | font-family: @font-body, sans-serif; 69 | font-weight: normal; 70 | text-align: left; 71 | background: darken(@color-light, 5%); 72 | vertical-align: top; 73 | } 74 | 75 | tr { 76 | th, 77 | td { 78 | vertical-align: top; 79 | padding: .75em .75em .25em .5em; 80 | border-bottom: 1px solid darken(@color-light, 10%); 81 | } 82 | } 83 | } 84 | 85 | 86 | /* ======================================== 87 | TEXTUAL/CONTENT ELEMENTS 88 | ======================================== */ 89 | 90 | h1, h2, h3, h4, h5, h6 91 | { 92 | margin: 0; 93 | margin: 1em 0; 94 | line-height: 1.25em; 95 | text-transform: none; 96 | font-family: @font-heading; 97 | font-weight: 400; 98 | a { 99 | text-decoration: none; 100 | } 101 | } 102 | 103 | h1,h2,h3,h4 { 104 | position: relative; 105 | a { 106 | position: absolute; 107 | left: -1em; 108 | width: calc(~'100% + 1em'); 109 | opacity: 0; 110 | transition: @duration-hover all ease; 111 | } 112 | &:hover a { 113 | opacity: 1; 114 | } 115 | } 116 | 117 | h1 { 118 | font-size: 2.5em; 119 | margin: 0; 120 | padding-top: 1.5em; 121 | text-transform: uppercase; 122 | } 123 | 124 | h2 { 125 | font-size: 1.5em; 126 | color: @color-primary; 127 | } 128 | 129 | h3, h3 a { 130 | font-size: 1.15em; 131 | color: @color-primary; 132 | } 133 | 134 | h4 { 135 | font-size: 1rem; 136 | color: @color-primary; 137 | } 138 | 139 | hr 140 | { 141 | margin: 1em 0; 142 | border: none; 143 | width: 100%; 144 | height: .1rem; 145 | background-color: lighten(@color-dark, 50%); 146 | } 147 | 148 | p 149 | { 150 | padding: 0; 151 | margin: 1em 0; 152 | line-height: 1.5em; 153 | word-wrap: break-word; 154 | &:first-child { 155 | margin-top: 0; 156 | } 157 | 158 | &:last-child { 159 | margin-bottom: 0; 160 | } 161 | } 162 | 163 | a 164 | { 165 | position: relative; 166 | transition: all @duration-action ease; 167 | color: @color-primary; 168 | text-decoration: none; 169 | cursor: pointer; 170 | outline: 0; 171 | &:hover { 172 | color: @color-primary; 173 | } 174 | 175 | img 176 | { 177 | border: none; 178 | outline: none; 179 | } 180 | 181 | p, 182 | span 183 | { 184 | cursor: pointer; 185 | } 186 | } 187 | 188 | img 189 | { 190 | max-width: 100%; 191 | height: auto; 192 | } 193 | 194 | ul 195 | { 196 | list-style: square; 197 | } 198 | 199 | ul,ol 200 | { 201 | padding: 0 0 0 1em; 202 | margin-bottom: 0; 203 | } 204 | 205 | ol 206 | { 207 | list-style-type: decimal; 208 | ol { 209 | list-style-type: lower-alpha; 210 | } 211 | } 212 | 213 | b, strong { 214 | font-weight: 700; 215 | font-family: @font-body, sans-serif; 216 | } 217 | 218 | /* ======================================== 219 | FORM ELEMENTS 220 | ======================================== */ 221 | 222 | fieldset 223 | { 224 | margin: 0; 225 | padding: 0; 226 | border: 0; 227 | } 228 | 229 | input[type=submit] { 230 | .button(@color-primary, outline-reverse); 231 | margin: 0; 232 | } 233 | -------------------------------------------------------------------------------- /docs/2.6.7/templating.md: -------------------------------------------------------------------------------- 1 | 2.6.7 2 | # Templating 3 | 4 | ## Anatomy 5 | 6 | Everything is a component, Riot refers to them as tags 7 | Tags have to be [mounted](#riot-mount) 8 | 9 | ```html 10 | 11 | Markup 12 | 15 | 16 | ``` 17 | 18 | ## Expressions 19 | 20 | ### Pure JavaScript 21 | 22 | Can contain any javascript except curly brackets 23 | 24 | ```html 25 | Random number: {Math.random() * 10} 26 | © 27 | How long is a day in seconds? {60*60*24} 28 | ``` 29 | 30 | ### Accessing tag properties 31 | 32 | ```html 33 | My name is {author.name} 34 | and I'm {author.age} {unit}s old 35 | 42 | ``` 43 | ## Foreach - loop data 44 | 45 | ### Array 46 | 47 | ```html 48 | 53 | 62 | ``` 63 | 64 | You can access both index and value by providing a second argument 65 | 66 | ```html 67 | 72 | ``` 73 | 74 | ### Object 75 | 76 | Used for more complex structures, where each item has a distinct key 77 | 78 | Objects use different order of `key, value` in the each statement 79 | 80 | ```html 81 | 83 | 84 | 96 | ``` 97 | 98 | ### Virtual 99 | 100 | The virtual tag is used for loops that should generate no wrapper markup 101 | 102 | ```html 103 |
104 | 105 |
{item.key}
106 |
{item.value}
107 |
108 |
109 | ``` 110 | 111 | ## Conditionals 112 | 113 | ### Shorthand ternary 114 | 115 | ```html 116 |
117 | ``` 118 | 119 | ### Ternary 120 | 121 | ```html 122 |
123 | ``` 124 | 125 | ### Blocklevel 126 | 127 | Does not write HTML if condition is false 128 | 129 | ```html 130 |
131 | ``` 132 | 133 | ### Hide 134 | 135 | Writes HTML, just sets `display` style to `none` if condition is true 136 | 137 | ```html 138 | 139 | ``` 140 | 141 | ### Show 142 | 143 | Opposite of Hide `display` 144 | 145 | ```html 146 | 147 | ``` 148 | 149 | ## Access elements and tags 150 | 151 | ### HTML Elements 152 | 153 | You can also use `id` if you are not comfortable with `name` 154 | 155 | ```html 156 | 157 | 160 | ``` 161 | 162 | ### Child tags 163 | 164 | Access via `name` or `id` 165 | 166 | ```html 167 | 168 | 171 | ``` 172 | 173 | If there are more instances, you get an array of tags 174 | 175 | ```html 176 | 177 | 178 | 179 | 183 | ``` 184 | 185 | ## Options 186 | 187 | Options can be passed via html params or on mount 188 | 189 | Options only accept `boolean`, `number`, `string` or simple `array`, when passing values directly 190 | 191 | ### Passing values directly per HTML 192 | 193 | ```html 194 | 195 | 196 | 201 | ``` 202 | 203 | ### Passing variables per HTML 204 | 205 | ```html 206 | 207 | 213 | ``` 214 | 215 | ### Passing values on Mount 216 | 217 | On mount, we are more flexible, since we are in js 218 | See [mount](#riot-mount) 219 | 220 | ```js 221 | var items = [ 222 | {name: 'Share', done: true}, 223 | {name: 'Star', done: true}, 224 | {name: 'Work', done: false}, 225 | ] 226 | riot.mount('todo-list', items) 227 | ``` 228 | 229 | ## Yield 230 | 231 | Yielding is like [options](#templating-options), just that it accepts HTML and other riot tags 232 | 233 | Definition 234 | ```html 235 | 236 | 237 | 238 | ``` 239 | 240 | Usage 241 | ```html 242 | 243 | Hi! I'm supporting 244 | HTML 245 | 246 | ``` 247 | 248 | ### Multiple Yieldpoints 249 | 250 | **Notice:** This feature is supported in **Riot 2.3.12** or later 251 | 252 | #### Usage 253 | 254 | ```html 255 | 256 | 257 | Add post 258 | Recently published 259 | 260 | 261 | Posts 262 | 263 | 264 | ``` 265 | 266 | #### Definition 267 | 268 | ```html 269 | 270 |

271 | 272 |

273 |
274 | 275 |
276 |
277 | ``` 278 | -------------------------------------------------------------------------------- /docs/3.0.0/templating.md: -------------------------------------------------------------------------------- 1 | 3.0.0 2 | # Templating 3 | 4 | ## Anatomy 5 | 6 | Everything is a component, Riot refers to them as tags 7 | Tags have to be [mounted](#riot-mount) 8 | 9 | ```html 10 | 11 | Markup 12 | 15 | 16 | ``` 17 | 18 | ## Expressions 19 | 20 | ### Pure JavaScript 21 | 22 | Expressions `{}` can contain any javascript except curly brackets (object literals) 23 | 24 | ```html 25 | Random number: {Math.random() * 10} 26 | © 27 | How long is a day in seconds? {60*60*24} 28 | ``` 29 | 30 | ### Accessing tag properties 31 | 32 | ```html 33 | My name is {author.name} 34 | and I'm {author.age} {unit}s old 35 | 42 | ``` 43 | ## Foreach - loop data 44 | 45 | ### Array 46 | 47 | ```html 48 | 53 | 62 | ``` 63 | 64 | You can access both index and value by providing a second argument 65 | 66 | ```html 67 | 72 | ``` 73 | 74 | ### Object 75 | 76 | Used for more complex structures, where each item has a distinct key 77 | 78 | Objects use different order of `key, value` in the each statement 79 | 80 | ```html 81 | 83 | 84 | 96 | ``` 97 | 98 | ### Virtual 99 | 100 | The virtual tag is used for loops that should generate no wrapper markup 101 | 102 | ```html 103 |
104 | 105 |
{item.key}
106 |
{item.value}
107 |
108 |
109 | ``` 110 | 111 | ### Context 112 | 113 | Loops have their own context. Instead of `item.key`, you could obtain the property just with `key`. Because of this, methods and properties of the tag instance itself, have to be accessed with for example `parent.removeItem` 114 | 115 | ## Conditionals 116 | 117 | ### Shorthand ternary 118 | 119 | ```html 120 |
121 | ``` 122 | 123 | ### Ternary 124 | 125 | ```html 126 |
127 | ``` 128 | 129 | ### Blocklevel 130 | 131 | Does not write HTML if condition is false 132 | 133 | ```html 134 |
135 | ``` 136 | 137 | ### Hide 138 | 139 | Writes HTML, just sets `display` style to `none` if condition is true 140 | 141 | ```html 142 | 143 | ``` 144 | 145 | ### Show 146 | 147 | Opposite of Hide `display` 148 | 149 | ```html 150 | 151 | ``` 152 | 153 | ## Access elements and tags 154 | 155 | ### HTML Elements 156 | 157 | To access your elements, use the `ref` attribute. References can then be accessed with `this.refs` 158 | 159 | ```html 160 | 161 | 164 | ``` 165 | 166 | ### Child tags 167 | 168 | These are also accessed via the `refs` 169 | 170 | ```html 171 | 172 | 175 | ``` 176 | 177 | If there are more instances, you get an array of tags 178 | 179 | ```html 180 | 181 | 182 | 183 | 187 | ``` 188 | 189 | ## Options 190 | 191 | Options can be passed via html params or on mount 192 | 193 | Options only accept `boolean`, `number`, `string` or simple `array`, when passing values directly 194 | 195 | ### Passing values directly per HTML 196 | 197 | ```html 198 | 199 | 200 | 205 | ``` 206 | 207 | ### Passing variables per HTML 208 | 209 | ```html 210 | 211 | 217 | ``` 218 | 219 | ### Passing values on Mount 220 | 221 | On mount, we are more flexible, since we are in js 222 | See [mount](#riot-mount) 223 | 224 | ```js 225 | var items = [ 226 | {name: 'Share', done: true}, 227 | {name: 'Star', done: true}, 228 | {name: 'Work', done: false}, 229 | ] 230 | riot.mount('todo-list', items) 231 | ``` 232 | 233 | ## Yield 234 | 235 | Yielding is like [options](#templating-options), just that it accepts HTML and other riot tags 236 | 237 | Definition 238 | ```html 239 | 240 | 241 | 242 | ``` 243 | 244 | Usage 245 | ```html 246 | 247 | Hi! I'm supporting 248 | HTML 249 | 250 | ``` 251 | 252 | ### Multiple Yieldpoints 253 | 254 | **Notice:** This feature is supported in **Riot 2.3.12** or later 255 | 256 | #### Usage 257 | 258 | ```html 259 | 260 | 261 | Add post 262 | Recently published 263 | 264 | 265 | Posts 266 | 267 | 268 | ``` 269 | 270 | #### Definition 271 | 272 | ```html 273 | 274 |

275 | 276 |

277 |
278 | 279 |
280 |
281 | ``` 282 | -------------------------------------------------------------------------------- /js/tags/app.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 21 | 22 | 23 | 29 | 34 | {shortcut.name} 35 | 36 | 37 | 38 | 39 | ̑ 40 | 41 | 42 |
43 |
44 |
47 | 48 |
49 |
50 |
51 | 52 |
53 |
54 |

55 | Created with by 56 | @MartinMuzatko with Riot {builtwith} 57 |

58 |

59 | Learn how to use Riot in the real world. Visit 60 | happy-css.com 61 |

62 |
63 |
64 | 237 |
238 | -------------------------------------------------------------------------------- /less/vendor/flex-grid.less: -------------------------------------------------------------------------------- 1 | [flex-offset="0"]{margin-left:0%}[flex-offset="5"]{margin-left:5%}[flex-offset="10"]{margin-left:10%}[flex-offset="15"]{margin-left:15%}[flex-offset="20"]{margin-left:20%}[flex-offset="25"]{margin-left:25%}[flex-offset="30"]{margin-left:30%}[flex-offset="35"]{margin-left:35%}[flex-offset="40"]{margin-left:40%}[flex-offset="45"]{margin-left:45%}[flex-offset="50"]{margin-left:50%}[flex-offset="55"]{margin-left:55%}[flex-offset="60"]{margin-left:60%}[flex-offset="65"]{margin-left:65%}[flex-offset="70"]{margin-left:70%}[flex-offset="75"]{margin-left:75%}[flex-offset="80"]{margin-left:80%}[flex-offset="85"]{margin-left:85%}[flex-offset="90"]{margin-left:90%}[flex-offset="95"]{margin-left:95%}[flex-offset="33"]{margin-left:calc(100% / 3)}[flex-offset="66"]{margin-left:calc(200% / 3)}[flex-order="0"]{order:0}[flex-order="1"]{order:1}[flex-order="2"]{order:2}[flex-order="3"]{order:3}[flex-order="4"]{order:4}[flex-order="5"]{order:5}[flex-order="6"]{order:6}[flex-order="7"]{order:7}[flex-order="8"]{order:8}[flex-order="9"]{order:9}[flex-order="10"]{order:10}[flex-order="11"]{order:11}[flex-order="12"]{order:12}[flex-order="13"]{order:13}[flex-order="14"]{order:14}[flex-order="15"]{order:15}[flex-order="16"]{order:16}[flex-order="17"]{order:17}[flex-order="18"]{order:18}[flex-order="19"]{order:19}[flex-order="20"]{order:20}[layout]{display:flex;flex-wrap:wrap}[layout]>*{box-sizing:border-box}[layout="column"]{flex-direction:column}[layout="row"]{flex-direction:row}[layout-align]{justify-content:flex-start;align-content:stretch;align-items:stretch}[layout-align^="start"]{justify-content:flex-start}[layout-align^="center"]{justify-content:center}[layout-align^="end"]{justify-content:flex-end}[layout-align^="space-around"]{justify-content:space-around}[layout-align^="space-between"]{justify-content:space-between}[layout-align$="start"]{align-items:flex-start;align-content:flex-start}[layout-align$="center"]{align-items:center;align-content:center;max-width:100%}[layout-align$="center"]>*{max-width:100%}[layout-align$="end"]{align-items:flex-end;align-content:flex-end}[layout-align="start"],[layout-align="end"],[layout-align="center"],[layout-align="space-around"],[layout-align="space-between"]{align-items:stretch;align-content:stretch}[flex]{flex:1}[flex-start]{margin-bottom:auto}[flex-end]{margin-top:auto}[flex-none]{flex:0 0 auto}[flex-initial]{flex:0 1 auto}[flex-noshrink]{flex:1 0 auto}[flex-auto]{flex:1 1 auto}[flex-grow]{flex:1 1 100%}[flex],[layout="row"]>[flex],[layout="row"]>[flex]{max-height:100%}[layout="column"]>[flex],[layout="column"]>[flex]{max-width:100%}[layout="row"]>[flex="5"],[layout="row"]>[flex="5"],[layout="row"]>[flex="5"]{flex:1 1 5%;max-width:5%}[layout="column"]>[flex="5"],[layout="column"]>[flex="5"],[layout="column"]>[flex="5"]{flex:1 1 5%;max-height:5%}[layout="row"]>[flex="10"],[layout="row"]>[flex="10"],[layout="row"]>[flex="10"]{flex:1 1 10%;max-width:10%}[layout="column"]>[flex="10"],[layout="column"]>[flex="10"],[layout="column"]>[flex="10"]{flex:1 1 10%;max-height:10%}[layout="row"]>[flex="15"],[layout="row"]>[flex="15"],[layout="row"]>[flex="15"]{flex:1 1 15%;max-width:15%}[layout="column"]>[flex="15"],[layout="column"]>[flex="15"],[layout="column"]>[flex="15"]{flex:1 1 15%;max-height:15%}[layout="row"]>[flex="20"],[layout="row"]>[flex="20"],[layout="row"]>[flex="20"]{flex:1 1 20%;max-width:20%}[layout="column"]>[flex="20"],[layout="column"]>[flex="20"],[layout="column"]>[flex="20"]{flex:1 1 20%;max-height:20%}[layout="row"]>[flex="25"],[layout="row"]>[flex="25"],[layout="row"]>[flex="25"]{flex:1 1 25%;max-width:25%}[layout="column"]>[flex="25"],[layout="column"]>[flex="25"],[layout="column"]>[flex="25"]{flex:1 1 25%;max-height:25%}[layout="row"]>[flex="30"],[layout="row"]>[flex="30"],[layout="row"]>[flex="30"]{flex:1 1 30%;max-width:30%}[layout="column"]>[flex="30"],[layout="column"]>[flex="30"],[layout="column"]>[flex="30"]{flex:1 1 30%;max-height:30%}[layout="row"]>[flex="35"],[layout="row"]>[flex="35"],[layout="row"]>[flex="35"]{flex:1 1 35%;max-width:35%}[layout="column"]>[flex="35"],[layout="column"]>[flex="35"],[layout="column"]>[flex="35"]{flex:1 1 35%;max-height:35%}[layout="row"]>[flex="40"],[layout="row"]>[flex="40"],[layout="row"]>[flex="40"]{flex:1 1 40%;max-width:40%}[layout="column"]>[flex="40"],[layout="column"]>[flex="40"],[layout="column"]>[flex="40"]{flex:1 1 40%;max-height:40%}[layout="row"]>[flex="45"],[layout="row"]>[flex="45"],[layout="row"]>[flex="45"]{flex:1 1 45%;max-width:45%}[layout="column"]>[flex="45"],[layout="column"]>[flex="45"],[layout="column"]>[flex="45"]{flex:1 1 45%;max-height:45%}[layout="row"]>[flex="50"],[layout="row"]>[flex="50"],[layout="row"]>[flex="50"]{flex:1 1 50%;max-width:50%}[layout="column"]>[flex="50"],[layout="column"]>[flex="50"],[layout="column"]>[flex="50"]{flex:1 1 50%;max-height:50%}[layout="row"]>[flex="55"],[layout="row"]>[flex="55"],[layout="row"]>[flex="55"]{flex:1 1 55%;max-width:55%}[layout="column"]>[flex="55"],[layout="column"]>[flex="55"],[layout="column"]>[flex="55"]{flex:1 1 55%;max-height:55%}[layout="row"]>[flex="60"],[layout="row"]>[flex="60"],[layout="row"]>[flex="60"]{flex:1 1 60%;max-width:60%}[layout="column"]>[flex="60"],[layout="column"]>[flex="60"],[layout="column"]>[flex="60"]{flex:1 1 60%;max-height:60%}[layout="row"]>[flex="65"],[layout="row"]>[flex="65"],[layout="row"]>[flex="65"]{flex:1 1 65%;max-width:65%}[layout="column"]>[flex="65"],[layout="column"]>[flex="65"],[layout="column"]>[flex="65"]{flex:1 1 65%;max-height:65%}[layout="row"]>[flex="70"],[layout="row"]>[flex="70"],[layout="row"]>[flex="70"]{flex:1 1 70%;max-width:70%}[layout="column"]>[flex="70"],[layout="column"]>[flex="70"],[layout="column"]>[flex="70"]{flex:1 1 70%;max-height:70%}[layout="row"]>[flex="75"],[layout="row"]>[flex="75"],[layout="row"]>[flex="75"]{flex:1 1 75%;max-width:75%}[layout="column"]>[flex="75"],[layout="column"]>[flex="75"],[layout="column"]>[flex="75"]{flex:1 1 75%;max-height:75%}[layout="row"]>[flex="80"],[layout="row"]>[flex="80"],[layout="row"]>[flex="80"]{flex:1 1 80%;max-width:80%}[layout="column"]>[flex="80"],[layout="column"]>[flex="80"],[layout="column"]>[flex="80"]{flex:1 1 80%;max-height:80%}[layout="row"]>[flex="85"],[layout="row"]>[flex="85"],[layout="row"]>[flex="85"]{flex:1 1 85%;max-width:85%}[layout="column"]>[flex="85"],[layout="column"]>[flex="85"],[layout="column"]>[flex="85"]{flex:1 1 85%;max-height:85%}[layout="row"]>[flex="90"],[layout="row"]>[flex="90"],[layout="row"]>[flex="90"]{flex:1 1 90%;max-width:90%}[layout="column"]>[flex="90"],[layout="column"]>[flex="90"],[layout="column"]>[flex="90"]{flex:1 1 90%;max-height:90%}[layout="row"]>[flex="95"],[layout="row"]>[flex="95"],[layout="row"]>[flex="95"]{flex:1 1 95%;max-width:95%}[layout="column"]>[flex="95"],[layout="column"]>[flex="95"],[layout="column"]>[flex="95"]{flex:1 1 95%;max-height:95%}[layout="row"]>[flex="100"],[layout="row"]>[flex="100"],[layout="row"]>[flex="100"]{flex:1 1 100%;max-width:100%}[layout="column"]>[flex="100"],[layout="column"]>[flex="100"],[layout="column"]>[flex="100"]{flex:1 1 100%;max-height:100%}[layout="row"]>[flex="33"],[layout="row"]>[flex="33"],[layout="row"]>[flex="33"]{flex:1 1 33.33%;max-width:33.33%}[layout="column"]>[flex="33"],[layout="column"]>[flex="33"],[layout="column"]>[flex="33"]{flex:1 1 33.33%;max-height:33.33%}[layout="row"]>[flex="66"],[layout="row"]>[flex="66"],[layout="row"]>[flex="66"]{flex:1 1 66.66%;max-width:66.66%}[layout="column"]>[flex="66"],[layout="column"]>[flex="66"],[layout="column"]>[flex="66"]{flex:1 1 66.66%;max-height:66.66%}[hide]{display:none}@media (max-width: 599px){[flex-offset-sm="0"]{margin-left:0%}[flex-offset-sm="5"]{margin-left:5%}[flex-offset-sm="10"]{margin-left:10%}[flex-offset-sm="15"]{margin-left:15%}[flex-offset-sm="20"]{margin-left:20%}[flex-offset-sm="25"]{margin-left:25%}[flex-offset-sm="30"]{margin-left:30%}[flex-offset-sm="35"]{margin-left:35%}[flex-offset-sm="40"]{margin-left:40%}[flex-offset-sm="45"]{margin-left:45%}[flex-offset-sm="50"]{margin-left:50%}[flex-offset-sm="55"]{margin-left:55%}[flex-offset-sm="60"]{margin-left:60%}[flex-offset-sm="65"]{margin-left:65%}[flex-offset-sm="70"]{margin-left:70%}[flex-offset-sm="75"]{margin-left:75%}[flex-offset-sm="80"]{margin-left:80%}[flex-offset-sm="85"]{margin-left:85%}[flex-offset-sm="90"]{margin-left:90%}[flex-offset-sm="95"]{margin-left:95%}[flex-offset-sm="33"]{margin-left:calc(100% / 3)}[flex-offset-sm="66"]{margin-left:calc(200% / 3)}[flex-order-sm="0"]{order:0}[flex-order-sm="1"]{order:1}[flex-order-sm="2"]{order:2}[flex-order-sm="3"]{order:3}[flex-order-sm="4"]{order:4}[flex-order-sm="5"]{order:5}[flex-order-sm="6"]{order:6}[flex-order-sm="7"]{order:7}[flex-order-sm="8"]{order:8}[flex-order-sm="9"]{order:9}[flex-order-sm="10"]{order:10}[flex-order-sm="11"]{order:11}[flex-order-sm="12"]{order:12}[flex-order-sm="13"]{order:13}[flex-order-sm="14"]{order:14}[flex-order-sm="15"]{order:15}[flex-order-sm="16"]{order:16}[flex-order-sm="17"]{order:17}[flex-order-sm="18"]{order:18}[flex-order-sm="19"]{order:19}[flex-order-sm="20"]{order:20}[layout-sm]{display:flex;flex-wrap:wrap}[layout-sm]>*{box-sizing:border-box}[layout-sm="column"]{flex-direction:column}[layout-sm="row"]{flex-direction:row}[layout-align-sm]{justify-content:flex-start;align-content:stretch;align-items:stretch}[layout-align-sm^="start"]{justify-content:flex-start}[layout-align-sm^="center"]{justify-content:center}[layout-align-sm^="end"]{justify-content:flex-end}[layout-align-sm^="space-around"]{justify-content:space-around}[layout-align-sm^="space-between"]{justify-content:space-between}[layout-align-sm$="start"]{align-items:flex-start;align-content:flex-start}[layout-align-sm$="center"]{align-items:center;align-content:center;max-width:100%}[layout-align-sm$="center"]>*{max-width:100%}[layout-align-sm$="end"]{align-items:flex-end;align-content:flex-end}[layout-align-sm="start"],[layout-align-sm="end"],[layout-align-sm="center"],[layout-align-sm="space-around"],[layout-align-sm="space-between"]{align-items:stretch;align-content:stretch}[flex-sm]{flex:1}[flex-sm-start]{margin-bottom:auto}[flex-sm-end]{margin-top:auto}[flex-sm-none]{flex:0 0 auto}[flex-sm-initial]{flex:0 1 auto}[flex-sm-noshrink]{flex:1 0 auto}[flex-sm-auto]{flex:1 1 auto}[flex-sm-grow]{flex:1 1 100%}[flex-sm],[layout="row"]>[flex-sm],[layout-sm="row"]>[flex-sm]{max-height:100%}[layout-sm="column"]>[flex-sm],[layout="column"]>[flex-sm]{max-width:100%}[layout="row"]>[flex-sm="5"],[layout-sm="row"]>[flex-sm="5"],[layout-sm="row"]>[flex="5"]{flex:1 1 5%;max-width:5%}[layout="column"]>[flex-sm="5"],[layout-sm="column"]>[flex-sm="5"],[layout-sm="column"]>[flex="5"]{flex:1 1 5%;max-height:5%}[layout="row"]>[flex-sm="10"],[layout-sm="row"]>[flex-sm="10"],[layout-sm="row"]>[flex="10"]{flex:1 1 10%;max-width:10%}[layout="column"]>[flex-sm="10"],[layout-sm="column"]>[flex-sm="10"],[layout-sm="column"]>[flex="10"]{flex:1 1 10%;max-height:10%}[layout="row"]>[flex-sm="15"],[layout-sm="row"]>[flex-sm="15"],[layout-sm="row"]>[flex="15"]{flex:1 1 15%;max-width:15%}[layout="column"]>[flex-sm="15"],[layout-sm="column"]>[flex-sm="15"],[layout-sm="column"]>[flex="15"]{flex:1 1 15%;max-height:15%}[layout="row"]>[flex-sm="20"],[layout-sm="row"]>[flex-sm="20"],[layout-sm="row"]>[flex="20"]{flex:1 1 20%;max-width:20%}[layout="column"]>[flex-sm="20"],[layout-sm="column"]>[flex-sm="20"],[layout-sm="column"]>[flex="20"]{flex:1 1 20%;max-height:20%}[layout="row"]>[flex-sm="25"],[layout-sm="row"]>[flex-sm="25"],[layout-sm="row"]>[flex="25"]{flex:1 1 25%;max-width:25%}[layout="column"]>[flex-sm="25"],[layout-sm="column"]>[flex-sm="25"],[layout-sm="column"]>[flex="25"]{flex:1 1 25%;max-height:25%}[layout="row"]>[flex-sm="30"],[layout-sm="row"]>[flex-sm="30"],[layout-sm="row"]>[flex="30"]{flex:1 1 30%;max-width:30%}[layout="column"]>[flex-sm="30"],[layout-sm="column"]>[flex-sm="30"],[layout-sm="column"]>[flex="30"]{flex:1 1 30%;max-height:30%}[layout="row"]>[flex-sm="35"],[layout-sm="row"]>[flex-sm="35"],[layout-sm="row"]>[flex="35"]{flex:1 1 35%;max-width:35%}[layout="column"]>[flex-sm="35"],[layout-sm="column"]>[flex-sm="35"],[layout-sm="column"]>[flex="35"]{flex:1 1 35%;max-height:35%}[layout="row"]>[flex-sm="40"],[layout-sm="row"]>[flex-sm="40"],[layout-sm="row"]>[flex="40"]{flex:1 1 40%;max-width:40%}[layout="column"]>[flex-sm="40"],[layout-sm="column"]>[flex-sm="40"],[layout-sm="column"]>[flex="40"]{flex:1 1 40%;max-height:40%}[layout="row"]>[flex-sm="45"],[layout-sm="row"]>[flex-sm="45"],[layout-sm="row"]>[flex="45"]{flex:1 1 45%;max-width:45%}[layout="column"]>[flex-sm="45"],[layout-sm="column"]>[flex-sm="45"],[layout-sm="column"]>[flex="45"]{flex:1 1 45%;max-height:45%}[layout="row"]>[flex-sm="50"],[layout-sm="row"]>[flex-sm="50"],[layout-sm="row"]>[flex="50"]{flex:1 1 50%;max-width:50%}[layout="column"]>[flex-sm="50"],[layout-sm="column"]>[flex-sm="50"],[layout-sm="column"]>[flex="50"]{flex:1 1 50%;max-height:50%}[layout="row"]>[flex-sm="55"],[layout-sm="row"]>[flex-sm="55"],[layout-sm="row"]>[flex="55"]{flex:1 1 55%;max-width:55%}[layout="column"]>[flex-sm="55"],[layout-sm="column"]>[flex-sm="55"],[layout-sm="column"]>[flex="55"]{flex:1 1 55%;max-height:55%}[layout="row"]>[flex-sm="60"],[layout-sm="row"]>[flex-sm="60"],[layout-sm="row"]>[flex="60"]{flex:1 1 60%;max-width:60%}[layout="column"]>[flex-sm="60"],[layout-sm="column"]>[flex-sm="60"],[layout-sm="column"]>[flex="60"]{flex:1 1 60%;max-height:60%}[layout="row"]>[flex-sm="65"],[layout-sm="row"]>[flex-sm="65"],[layout-sm="row"]>[flex="65"]{flex:1 1 65%;max-width:65%}[layout="column"]>[flex-sm="65"],[layout-sm="column"]>[flex-sm="65"],[layout-sm="column"]>[flex="65"]{flex:1 1 65%;max-height:65%}[layout="row"]>[flex-sm="70"],[layout-sm="row"]>[flex-sm="70"],[layout-sm="row"]>[flex="70"]{flex:1 1 70%;max-width:70%}[layout="column"]>[flex-sm="70"],[layout-sm="column"]>[flex-sm="70"],[layout-sm="column"]>[flex="70"]{flex:1 1 70%;max-height:70%}[layout="row"]>[flex-sm="75"],[layout-sm="row"]>[flex-sm="75"],[layout-sm="row"]>[flex="75"]{flex:1 1 75%;max-width:75%}[layout="column"]>[flex-sm="75"],[layout-sm="column"]>[flex-sm="75"],[layout-sm="column"]>[flex="75"]{flex:1 1 75%;max-height:75%}[layout="row"]>[flex-sm="80"],[layout-sm="row"]>[flex-sm="80"],[layout-sm="row"]>[flex="80"]{flex:1 1 80%;max-width:80%}[layout="column"]>[flex-sm="80"],[layout-sm="column"]>[flex-sm="80"],[layout-sm="column"]>[flex="80"]{flex:1 1 80%;max-height:80%}[layout="row"]>[flex-sm="85"],[layout-sm="row"]>[flex-sm="85"],[layout-sm="row"]>[flex="85"]{flex:1 1 85%;max-width:85%}[layout="column"]>[flex-sm="85"],[layout-sm="column"]>[flex-sm="85"],[layout-sm="column"]>[flex="85"]{flex:1 1 85%;max-height:85%}[layout="row"]>[flex-sm="90"],[layout-sm="row"]>[flex-sm="90"],[layout-sm="row"]>[flex="90"]{flex:1 1 90%;max-width:90%}[layout="column"]>[flex-sm="90"],[layout-sm="column"]>[flex-sm="90"],[layout-sm="column"]>[flex="90"]{flex:1 1 90%;max-height:90%}[layout="row"]>[flex-sm="95"],[layout-sm="row"]>[flex-sm="95"],[layout-sm="row"]>[flex="95"]{flex:1 1 95%;max-width:95%}[layout="column"]>[flex-sm="95"],[layout-sm="column"]>[flex-sm="95"],[layout-sm="column"]>[flex="95"]{flex:1 1 95%;max-height:95%}[layout="row"]>[flex-sm="100"],[layout-sm="row"]>[flex-sm="100"],[layout-sm="row"]>[flex="100"]{flex:1 1 100%;max-width:100%}[layout="column"]>[flex-sm="100"],[layout-sm="column"]>[flex-sm="100"],[layout-sm="column"]>[flex="100"]{flex:1 1 100%;max-height:100%}[layout="row"]>[flex-sm="33"],[layout-sm="row"]>[flex-sm="33"],[layout-sm="row"]>[flex="33"]{flex:1 1 33.33%;max-width:33.33%}[layout="column"]>[flex-sm="33"],[layout-sm="column"]>[flex-sm="33"],[layout-sm="column"]>[flex="33"]{flex:1 1 33.33%;max-height:33.33%}[layout="row"]>[flex-sm="66"],[layout-sm="row"]>[flex-sm="66"],[layout-sm="row"]>[flex="66"]{flex:1 1 66.66%;max-width:66.66%}[layout="column"]>[flex-sm="66"],[layout-sm="column"]>[flex-sm="66"],[layout-sm="column"]>[flex="66"]{flex:1 1 66.66%;max-height:66.66%}[hide-sm]{display:none}}@media (min-width: 600px){[flex-offset-gt-sm="0"]{margin-left:0%}[flex-offset-gt-sm="5"]{margin-left:5%}[flex-offset-gt-sm="10"]{margin-left:10%}[flex-offset-gt-sm="15"]{margin-left:15%}[flex-offset-gt-sm="20"]{margin-left:20%}[flex-offset-gt-sm="25"]{margin-left:25%}[flex-offset-gt-sm="30"]{margin-left:30%}[flex-offset-gt-sm="35"]{margin-left:35%}[flex-offset-gt-sm="40"]{margin-left:40%}[flex-offset-gt-sm="45"]{margin-left:45%}[flex-offset-gt-sm="50"]{margin-left:50%}[flex-offset-gt-sm="55"]{margin-left:55%}[flex-offset-gt-sm="60"]{margin-left:60%}[flex-offset-gt-sm="65"]{margin-left:65%}[flex-offset-gt-sm="70"]{margin-left:70%}[flex-offset-gt-sm="75"]{margin-left:75%}[flex-offset-gt-sm="80"]{margin-left:80%}[flex-offset-gt-sm="85"]{margin-left:85%}[flex-offset-gt-sm="90"]{margin-left:90%}[flex-offset-gt-sm="95"]{margin-left:95%}[flex-offset-gt-sm="33"]{margin-left:calc(100% / 3)}[flex-offset-gt-sm="66"]{margin-left:calc(200% / 3)}[flex-order-gt-sm="0"]{order:0}[flex-order-gt-sm="1"]{order:1}[flex-order-gt-sm="2"]{order:2}[flex-order-gt-sm="3"]{order:3}[flex-order-gt-sm="4"]{order:4}[flex-order-gt-sm="5"]{order:5}[flex-order-gt-sm="6"]{order:6}[flex-order-gt-sm="7"]{order:7}[flex-order-gt-sm="8"]{order:8}[flex-order-gt-sm="9"]{order:9}[flex-order-gt-sm="10"]{order:10}[flex-order-gt-sm="11"]{order:11}[flex-order-gt-sm="12"]{order:12}[flex-order-gt-sm="13"]{order:13}[flex-order-gt-sm="14"]{order:14}[flex-order-gt-sm="15"]{order:15}[flex-order-gt-sm="16"]{order:16}[flex-order-gt-sm="17"]{order:17}[flex-order-gt-sm="18"]{order:18}[flex-order-gt-sm="19"]{order:19}[flex-order-gt-sm="20"]{order:20}[layout-gt-sm]{display:flex;flex-wrap:wrap}[layout-gt-sm]>*{box-sizing:border-box}[layout-gt-sm="column"]{flex-direction:column}[layout-gt-sm="row"]{flex-direction:row}[layout-align-gt-sm]{justify-content:flex-start;align-content:stretch;align-items:stretch}[layout-align-gt-sm^="start"]{justify-content:flex-start}[layout-align-gt-sm^="center"]{justify-content:center}[layout-align-gt-sm^="end"]{justify-content:flex-end}[layout-align-gt-sm^="space-around"]{justify-content:space-around}[layout-align-gt-sm^="space-between"]{justify-content:space-between}[layout-align-gt-sm$="start"]{align-items:flex-start;align-content:flex-start}[layout-align-gt-sm$="center"]{align-items:center;align-content:center;max-width:100%}[layout-align-gt-sm$="center"]>*{max-width:100%}[layout-align-gt-sm$="end"]{align-items:flex-end;align-content:flex-end}[layout-align-gt-sm="start"],[layout-align-gt-sm="end"],[layout-align-gt-sm="center"],[layout-align-gt-sm="space-around"],[layout-align-gt-sm="space-between"]{align-items:stretch;align-content:stretch}[flex-gt-sm]{flex:1}[flex-gt-sm-start]{margin-bottom:auto}[flex-gt-sm-end]{margin-top:auto}[flex-gt-sm-none]{flex:0 0 auto}[flex-gt-sm-initial]{flex:0 1 auto}[flex-gt-sm-noshrink]{flex:1 0 auto}[flex-gt-sm-auto]{flex:1 1 auto}[flex-gt-sm-grow]{flex:1 1 100%}[flex-gt-sm],[layout="row"]>[flex-gt-sm],[layout-gt-sm="row"]>[flex-gt-sm]{max-height:100%}[layout-gt-sm="column"]>[flex-gt-sm],[layout="column"]>[flex-gt-sm]{max-width:100%}[layout="row"]>[flex-gt-sm="5"],[layout-gt-sm="row"]>[flex-gt-sm="5"],[layout-gt-sm="row"]>[flex="5"]{flex:1 1 5%;max-width:5%}[layout="column"]>[flex-gt-sm="5"],[layout-gt-sm="column"]>[flex-gt-sm="5"],[layout-gt-sm="column"]>[flex="5"]{flex:1 1 5%;max-height:5%}[layout="row"]>[flex-gt-sm="10"],[layout-gt-sm="row"]>[flex-gt-sm="10"],[layout-gt-sm="row"]>[flex="10"]{flex:1 1 10%;max-width:10%}[layout="column"]>[flex-gt-sm="10"],[layout-gt-sm="column"]>[flex-gt-sm="10"],[layout-gt-sm="column"]>[flex="10"]{flex:1 1 10%;max-height:10%}[layout="row"]>[flex-gt-sm="15"],[layout-gt-sm="row"]>[flex-gt-sm="15"],[layout-gt-sm="row"]>[flex="15"]{flex:1 1 15%;max-width:15%}[layout="column"]>[flex-gt-sm="15"],[layout-gt-sm="column"]>[flex-gt-sm="15"],[layout-gt-sm="column"]>[flex="15"]{flex:1 1 15%;max-height:15%}[layout="row"]>[flex-gt-sm="20"],[layout-gt-sm="row"]>[flex-gt-sm="20"],[layout-gt-sm="row"]>[flex="20"]{flex:1 1 20%;max-width:20%}[layout="column"]>[flex-gt-sm="20"],[layout-gt-sm="column"]>[flex-gt-sm="20"],[layout-gt-sm="column"]>[flex="20"]{flex:1 1 20%;max-height:20%}[layout="row"]>[flex-gt-sm="25"],[layout-gt-sm="row"]>[flex-gt-sm="25"],[layout-gt-sm="row"]>[flex="25"]{flex:1 1 25%;max-width:25%}[layout="column"]>[flex-gt-sm="25"],[layout-gt-sm="column"]>[flex-gt-sm="25"],[layout-gt-sm="column"]>[flex="25"]{flex:1 1 25%;max-height:25%}[layout="row"]>[flex-gt-sm="30"],[layout-gt-sm="row"]>[flex-gt-sm="30"],[layout-gt-sm="row"]>[flex="30"]{flex:1 1 30%;max-width:30%}[layout="column"]>[flex-gt-sm="30"],[layout-gt-sm="column"]>[flex-gt-sm="30"],[layout-gt-sm="column"]>[flex="30"]{flex:1 1 30%;max-height:30%}[layout="row"]>[flex-gt-sm="35"],[layout-gt-sm="row"]>[flex-gt-sm="35"],[layout-gt-sm="row"]>[flex="35"]{flex:1 1 35%;max-width:35%}[layout="column"]>[flex-gt-sm="35"],[layout-gt-sm="column"]>[flex-gt-sm="35"],[layout-gt-sm="column"]>[flex="35"]{flex:1 1 35%;max-height:35%}[layout="row"]>[flex-gt-sm="40"],[layout-gt-sm="row"]>[flex-gt-sm="40"],[layout-gt-sm="row"]>[flex="40"]{flex:1 1 40%;max-width:40%}[layout="column"]>[flex-gt-sm="40"],[layout-gt-sm="column"]>[flex-gt-sm="40"],[layout-gt-sm="column"]>[flex="40"]{flex:1 1 40%;max-height:40%}[layout="row"]>[flex-gt-sm="45"],[layout-gt-sm="row"]>[flex-gt-sm="45"],[layout-gt-sm="row"]>[flex="45"]{flex:1 1 45%;max-width:45%}[layout="column"]>[flex-gt-sm="45"],[layout-gt-sm="column"]>[flex-gt-sm="45"],[layout-gt-sm="column"]>[flex="45"]{flex:1 1 45%;max-height:45%}[layout="row"]>[flex-gt-sm="50"],[layout-gt-sm="row"]>[flex-gt-sm="50"],[layout-gt-sm="row"]>[flex="50"]{flex:1 1 50%;max-width:50%}[layout="column"]>[flex-gt-sm="50"],[layout-gt-sm="column"]>[flex-gt-sm="50"],[layout-gt-sm="column"]>[flex="50"]{flex:1 1 50%;max-height:50%}[layout="row"]>[flex-gt-sm="55"],[layout-gt-sm="row"]>[flex-gt-sm="55"],[layout-gt-sm="row"]>[flex="55"]{flex:1 1 55%;max-width:55%}[layout="column"]>[flex-gt-sm="55"],[layout-gt-sm="column"]>[flex-gt-sm="55"],[layout-gt-sm="column"]>[flex="55"]{flex:1 1 55%;max-height:55%}[layout="row"]>[flex-gt-sm="60"],[layout-gt-sm="row"]>[flex-gt-sm="60"],[layout-gt-sm="row"]>[flex="60"]{flex:1 1 60%;max-width:60%}[layout="column"]>[flex-gt-sm="60"],[layout-gt-sm="column"]>[flex-gt-sm="60"],[layout-gt-sm="column"]>[flex="60"]{flex:1 1 60%;max-height:60%}[layout="row"]>[flex-gt-sm="65"],[layout-gt-sm="row"]>[flex-gt-sm="65"],[layout-gt-sm="row"]>[flex="65"]{flex:1 1 65%;max-width:65%}[layout="column"]>[flex-gt-sm="65"],[layout-gt-sm="column"]>[flex-gt-sm="65"],[layout-gt-sm="column"]>[flex="65"]{flex:1 1 65%;max-height:65%}[layout="row"]>[flex-gt-sm="70"],[layout-gt-sm="row"]>[flex-gt-sm="70"],[layout-gt-sm="row"]>[flex="70"]{flex:1 1 70%;max-width:70%}[layout="column"]>[flex-gt-sm="70"],[layout-gt-sm="column"]>[flex-gt-sm="70"],[layout-gt-sm="column"]>[flex="70"]{flex:1 1 70%;max-height:70%}[layout="row"]>[flex-gt-sm="75"],[layout-gt-sm="row"]>[flex-gt-sm="75"],[layout-gt-sm="row"]>[flex="75"]{flex:1 1 75%;max-width:75%}[layout="column"]>[flex-gt-sm="75"],[layout-gt-sm="column"]>[flex-gt-sm="75"],[layout-gt-sm="column"]>[flex="75"]{flex:1 1 75%;max-height:75%}[layout="row"]>[flex-gt-sm="80"],[layout-gt-sm="row"]>[flex-gt-sm="80"],[layout-gt-sm="row"]>[flex="80"]{flex:1 1 80%;max-width:80%}[layout="column"]>[flex-gt-sm="80"],[layout-gt-sm="column"]>[flex-gt-sm="80"],[layout-gt-sm="column"]>[flex="80"]{flex:1 1 80%;max-height:80%}[layout="row"]>[flex-gt-sm="85"],[layout-gt-sm="row"]>[flex-gt-sm="85"],[layout-gt-sm="row"]>[flex="85"]{flex:1 1 85%;max-width:85%}[layout="column"]>[flex-gt-sm="85"],[layout-gt-sm="column"]>[flex-gt-sm="85"],[layout-gt-sm="column"]>[flex="85"]{flex:1 1 85%;max-height:85%}[layout="row"]>[flex-gt-sm="90"],[layout-gt-sm="row"]>[flex-gt-sm="90"],[layout-gt-sm="row"]>[flex="90"]{flex:1 1 90%;max-width:90%}[layout="column"]>[flex-gt-sm="90"],[layout-gt-sm="column"]>[flex-gt-sm="90"],[layout-gt-sm="column"]>[flex="90"]{flex:1 1 90%;max-height:90%}[layout="row"]>[flex-gt-sm="95"],[layout-gt-sm="row"]>[flex-gt-sm="95"],[layout-gt-sm="row"]>[flex="95"]{flex:1 1 95%;max-width:95%}[layout="column"]>[flex-gt-sm="95"],[layout-gt-sm="column"]>[flex-gt-sm="95"],[layout-gt-sm="column"]>[flex="95"]{flex:1 1 95%;max-height:95%}[layout="row"]>[flex-gt-sm="100"],[layout-gt-sm="row"]>[flex-gt-sm="100"],[layout-gt-sm="row"]>[flex="100"]{flex:1 1 100%;max-width:100%}[layout="column"]>[flex-gt-sm="100"],[layout-gt-sm="column"]>[flex-gt-sm="100"],[layout-gt-sm="column"]>[flex="100"]{flex:1 1 100%;max-height:100%}[layout="row"]>[flex-gt-sm="33"],[layout-gt-sm="row"]>[flex-gt-sm="33"],[layout-gt-sm="row"]>[flex="33"]{flex:1 1 33.33%;max-width:33.33%}[layout="column"]>[flex-gt-sm="33"],[layout-gt-sm="column"]>[flex-gt-sm="33"],[layout-gt-sm="column"]>[flex="33"]{flex:1 1 33.33%;max-height:33.33%}[layout="row"]>[flex-gt-sm="66"],[layout-gt-sm="row"]>[flex-gt-sm="66"],[layout-gt-sm="row"]>[flex="66"]{flex:1 1 66.66%;max-width:66.66%}[layout="column"]>[flex-gt-sm="66"],[layout-gt-sm="column"]>[flex-gt-sm="66"],[layout-gt-sm="column"]>[flex="66"]{flex:1 1 66.66%;max-height:66.66%}[hide-gt-sm]{display:none}}@media (min-width: 600px) and (max-width: 959px){[flex-offset-md="0"]{margin-left:0%}[flex-offset-md="5"]{margin-left:5%}[flex-offset-md="10"]{margin-left:10%}[flex-offset-md="15"]{margin-left:15%}[flex-offset-md="20"]{margin-left:20%}[flex-offset-md="25"]{margin-left:25%}[flex-offset-md="30"]{margin-left:30%}[flex-offset-md="35"]{margin-left:35%}[flex-offset-md="40"]{margin-left:40%}[flex-offset-md="45"]{margin-left:45%}[flex-offset-md="50"]{margin-left:50%}[flex-offset-md="55"]{margin-left:55%}[flex-offset-md="60"]{margin-left:60%}[flex-offset-md="65"]{margin-left:65%}[flex-offset-md="70"]{margin-left:70%}[flex-offset-md="75"]{margin-left:75%}[flex-offset-md="80"]{margin-left:80%}[flex-offset-md="85"]{margin-left:85%}[flex-offset-md="90"]{margin-left:90%}[flex-offset-md="95"]{margin-left:95%}[flex-offset-md="33"]{margin-left:calc(100% / 3)}[flex-offset-md="66"]{margin-left:calc(200% / 3)}[flex-order-md="0"]{order:0}[flex-order-md="1"]{order:1}[flex-order-md="2"]{order:2}[flex-order-md="3"]{order:3}[flex-order-md="4"]{order:4}[flex-order-md="5"]{order:5}[flex-order-md="6"]{order:6}[flex-order-md="7"]{order:7}[flex-order-md="8"]{order:8}[flex-order-md="9"]{order:9}[flex-order-md="10"]{order:10}[flex-order-md="11"]{order:11}[flex-order-md="12"]{order:12}[flex-order-md="13"]{order:13}[flex-order-md="14"]{order:14}[flex-order-md="15"]{order:15}[flex-order-md="16"]{order:16}[flex-order-md="17"]{order:17}[flex-order-md="18"]{order:18}[flex-order-md="19"]{order:19}[flex-order-md="20"]{order:20}[layout-md]{display:flex;flex-wrap:wrap}[layout-md]>*{box-sizing:border-box}[layout-md="column"]{flex-direction:column}[layout-md="row"]{flex-direction:row}[layout-align-md]{justify-content:flex-start;align-content:stretch;align-items:stretch}[layout-align-md^="start"]{justify-content:flex-start}[layout-align-md^="center"]{justify-content:center}[layout-align-md^="end"]{justify-content:flex-end}[layout-align-md^="space-around"]{justify-content:space-around}[layout-align-md^="space-between"]{justify-content:space-between}[layout-align-md$="start"]{align-items:flex-start;align-content:flex-start}[layout-align-md$="center"]{align-items:center;align-content:center;max-width:100%}[layout-align-md$="center"]>*{max-width:100%}[layout-align-md$="end"]{align-items:flex-end;align-content:flex-end}[layout-align-md="start"],[layout-align-md="end"],[layout-align-md="center"],[layout-align-md="space-around"],[layout-align-md="space-between"]{align-items:stretch;align-content:stretch}[flex-md]{flex:1}[flex-md-start]{margin-bottom:auto}[flex-md-end]{margin-top:auto}[flex-md-none]{flex:0 0 auto}[flex-md-initial]{flex:0 1 auto}[flex-md-noshrink]{flex:1 0 auto}[flex-md-auto]{flex:1 1 auto}[flex-md-grow]{flex:1 1 100%}[flex-md],[layout="row"]>[flex-md],[layout-md="row"]>[flex-md]{max-height:100%}[layout-md="column"]>[flex-md],[layout="column"]>[flex-md]{max-width:100%}[layout="row"]>[flex-md="5"],[layout-md="row"]>[flex-md="5"],[layout-md="row"]>[flex="5"]{flex:1 1 5%;max-width:5%}[layout="column"]>[flex-md="5"],[layout-md="column"]>[flex-md="5"],[layout-md="column"]>[flex="5"]{flex:1 1 5%;max-height:5%}[layout="row"]>[flex-md="10"],[layout-md="row"]>[flex-md="10"],[layout-md="row"]>[flex="10"]{flex:1 1 10%;max-width:10%}[layout="column"]>[flex-md="10"],[layout-md="column"]>[flex-md="10"],[layout-md="column"]>[flex="10"]{flex:1 1 10%;max-height:10%}[layout="row"]>[flex-md="15"],[layout-md="row"]>[flex-md="15"],[layout-md="row"]>[flex="15"]{flex:1 1 15%;max-width:15%}[layout="column"]>[flex-md="15"],[layout-md="column"]>[flex-md="15"],[layout-md="column"]>[flex="15"]{flex:1 1 15%;max-height:15%}[layout="row"]>[flex-md="20"],[layout-md="row"]>[flex-md="20"],[layout-md="row"]>[flex="20"]{flex:1 1 20%;max-width:20%}[layout="column"]>[flex-md="20"],[layout-md="column"]>[flex-md="20"],[layout-md="column"]>[flex="20"]{flex:1 1 20%;max-height:20%}[layout="row"]>[flex-md="25"],[layout-md="row"]>[flex-md="25"],[layout-md="row"]>[flex="25"]{flex:1 1 25%;max-width:25%}[layout="column"]>[flex-md="25"],[layout-md="column"]>[flex-md="25"],[layout-md="column"]>[flex="25"]{flex:1 1 25%;max-height:25%}[layout="row"]>[flex-md="30"],[layout-md="row"]>[flex-md="30"],[layout-md="row"]>[flex="30"]{flex:1 1 30%;max-width:30%}[layout="column"]>[flex-md="30"],[layout-md="column"]>[flex-md="30"],[layout-md="column"]>[flex="30"]{flex:1 1 30%;max-height:30%}[layout="row"]>[flex-md="35"],[layout-md="row"]>[flex-md="35"],[layout-md="row"]>[flex="35"]{flex:1 1 35%;max-width:35%}[layout="column"]>[flex-md="35"],[layout-md="column"]>[flex-md="35"],[layout-md="column"]>[flex="35"]{flex:1 1 35%;max-height:35%}[layout="row"]>[flex-md="40"],[layout-md="row"]>[flex-md="40"],[layout-md="row"]>[flex="40"]{flex:1 1 40%;max-width:40%}[layout="column"]>[flex-md="40"],[layout-md="column"]>[flex-md="40"],[layout-md="column"]>[flex="40"]{flex:1 1 40%;max-height:40%}[layout="row"]>[flex-md="45"],[layout-md="row"]>[flex-md="45"],[layout-md="row"]>[flex="45"]{flex:1 1 45%;max-width:45%}[layout="column"]>[flex-md="45"],[layout-md="column"]>[flex-md="45"],[layout-md="column"]>[flex="45"]{flex:1 1 45%;max-height:45%}[layout="row"]>[flex-md="50"],[layout-md="row"]>[flex-md="50"],[layout-md="row"]>[flex="50"]{flex:1 1 50%;max-width:50%}[layout="column"]>[flex-md="50"],[layout-md="column"]>[flex-md="50"],[layout-md="column"]>[flex="50"]{flex:1 1 50%;max-height:50%}[layout="row"]>[flex-md="55"],[layout-md="row"]>[flex-md="55"],[layout-md="row"]>[flex="55"]{flex:1 1 55%;max-width:55%}[layout="column"]>[flex-md="55"],[layout-md="column"]>[flex-md="55"],[layout-md="column"]>[flex="55"]{flex:1 1 55%;max-height:55%}[layout="row"]>[flex-md="60"],[layout-md="row"]>[flex-md="60"],[layout-md="row"]>[flex="60"]{flex:1 1 60%;max-width:60%}[layout="column"]>[flex-md="60"],[layout-md="column"]>[flex-md="60"],[layout-md="column"]>[flex="60"]{flex:1 1 60%;max-height:60%}[layout="row"]>[flex-md="65"],[layout-md="row"]>[flex-md="65"],[layout-md="row"]>[flex="65"]{flex:1 1 65%;max-width:65%}[layout="column"]>[flex-md="65"],[layout-md="column"]>[flex-md="65"],[layout-md="column"]>[flex="65"]{flex:1 1 65%;max-height:65%}[layout="row"]>[flex-md="70"],[layout-md="row"]>[flex-md="70"],[layout-md="row"]>[flex="70"]{flex:1 1 70%;max-width:70%}[layout="column"]>[flex-md="70"],[layout-md="column"]>[flex-md="70"],[layout-md="column"]>[flex="70"]{flex:1 1 70%;max-height:70%}[layout="row"]>[flex-md="75"],[layout-md="row"]>[flex-md="75"],[layout-md="row"]>[flex="75"]{flex:1 1 75%;max-width:75%}[layout="column"]>[flex-md="75"],[layout-md="column"]>[flex-md="75"],[layout-md="column"]>[flex="75"]{flex:1 1 75%;max-height:75%}[layout="row"]>[flex-md="80"],[layout-md="row"]>[flex-md="80"],[layout-md="row"]>[flex="80"]{flex:1 1 80%;max-width:80%}[layout="column"]>[flex-md="80"],[layout-md="column"]>[flex-md="80"],[layout-md="column"]>[flex="80"]{flex:1 1 80%;max-height:80%}[layout="row"]>[flex-md="85"],[layout-md="row"]>[flex-md="85"],[layout-md="row"]>[flex="85"]{flex:1 1 85%;max-width:85%}[layout="column"]>[flex-md="85"],[layout-md="column"]>[flex-md="85"],[layout-md="column"]>[flex="85"]{flex:1 1 85%;max-height:85%}[layout="row"]>[flex-md="90"],[layout-md="row"]>[flex-md="90"],[layout-md="row"]>[flex="90"]{flex:1 1 90%;max-width:90%}[layout="column"]>[flex-md="90"],[layout-md="column"]>[flex-md="90"],[layout-md="column"]>[flex="90"]{flex:1 1 90%;max-height:90%}[layout="row"]>[flex-md="95"],[layout-md="row"]>[flex-md="95"],[layout-md="row"]>[flex="95"]{flex:1 1 95%;max-width:95%}[layout="column"]>[flex-md="95"],[layout-md="column"]>[flex-md="95"],[layout-md="column"]>[flex="95"]{flex:1 1 95%;max-height:95%}[layout="row"]>[flex-md="100"],[layout-md="row"]>[flex-md="100"],[layout-md="row"]>[flex="100"]{flex:1 1 100%;max-width:100%}[layout="column"]>[flex-md="100"],[layout-md="column"]>[flex-md="100"],[layout-md="column"]>[flex="100"]{flex:1 1 100%;max-height:100%}[layout="row"]>[flex-md="33"],[layout-md="row"]>[flex-md="33"],[layout-md="row"]>[flex="33"]{flex:1 1 33.33%;max-width:33.33%}[layout="column"]>[flex-md="33"],[layout-md="column"]>[flex-md="33"],[layout-md="column"]>[flex="33"]{flex:1 1 33.33%;max-height:33.33%}[layout="row"]>[flex-md="66"],[layout-md="row"]>[flex-md="66"],[layout-md="row"]>[flex="66"]{flex:1 1 66.66%;max-width:66.66%}[layout="column"]>[flex-md="66"],[layout-md="column"]>[flex-md="66"],[layout-md="column"]>[flex="66"]{flex:1 1 66.66%;max-height:66.66%}[hide-md]{display:none}}@media (min-width: 960px){[flex-offset-gt-md="0"]{margin-left:0%}[flex-offset-gt-md="5"]{margin-left:5%}[flex-offset-gt-md="10"]{margin-left:10%}[flex-offset-gt-md="15"]{margin-left:15%}[flex-offset-gt-md="20"]{margin-left:20%}[flex-offset-gt-md="25"]{margin-left:25%}[flex-offset-gt-md="30"]{margin-left:30%}[flex-offset-gt-md="35"]{margin-left:35%}[flex-offset-gt-md="40"]{margin-left:40%}[flex-offset-gt-md="45"]{margin-left:45%}[flex-offset-gt-md="50"]{margin-left:50%}[flex-offset-gt-md="55"]{margin-left:55%}[flex-offset-gt-md="60"]{margin-left:60%}[flex-offset-gt-md="65"]{margin-left:65%}[flex-offset-gt-md="70"]{margin-left:70%}[flex-offset-gt-md="75"]{margin-left:75%}[flex-offset-gt-md="80"]{margin-left:80%}[flex-offset-gt-md="85"]{margin-left:85%}[flex-offset-gt-md="90"]{margin-left:90%}[flex-offset-gt-md="95"]{margin-left:95%}[flex-offset-gt-md="33"]{margin-left:calc(100% / 3)}[flex-offset-gt-md="66"]{margin-left:calc(200% / 3)}[flex-order-gt-md="0"]{order:0}[flex-order-gt-md="1"]{order:1}[flex-order-gt-md="2"]{order:2}[flex-order-gt-md="3"]{order:3}[flex-order-gt-md="4"]{order:4}[flex-order-gt-md="5"]{order:5}[flex-order-gt-md="6"]{order:6}[flex-order-gt-md="7"]{order:7}[flex-order-gt-md="8"]{order:8}[flex-order-gt-md="9"]{order:9}[flex-order-gt-md="10"]{order:10}[flex-order-gt-md="11"]{order:11}[flex-order-gt-md="12"]{order:12}[flex-order-gt-md="13"]{order:13}[flex-order-gt-md="14"]{order:14}[flex-order-gt-md="15"]{order:15}[flex-order-gt-md="16"]{order:16}[flex-order-gt-md="17"]{order:17}[flex-order-gt-md="18"]{order:18}[flex-order-gt-md="19"]{order:19}[flex-order-gt-md="20"]{order:20}[layout-gt-md]{display:flex;flex-wrap:wrap}[layout-gt-md]>*{box-sizing:border-box}[layout-gt-md="column"]{flex-direction:column}[layout-gt-md="row"]{flex-direction:row}[layout-align-gt-md]{justify-content:flex-start;align-content:stretch;align-items:stretch}[layout-align-gt-md^="start"]{justify-content:flex-start}[layout-align-gt-md^="center"]{justify-content:center}[layout-align-gt-md^="end"]{justify-content:flex-end}[layout-align-gt-md^="space-around"]{justify-content:space-around}[layout-align-gt-md^="space-between"]{justify-content:space-between}[layout-align-gt-md$="start"]{align-items:flex-start;align-content:flex-start}[layout-align-gt-md$="center"]{align-items:center;align-content:center;max-width:100%}[layout-align-gt-md$="center"]>*{max-width:100%}[layout-align-gt-md$="end"]{align-items:flex-end;align-content:flex-end}[layout-align-gt-md="start"],[layout-align-gt-md="end"],[layout-align-gt-md="center"],[layout-align-gt-md="space-around"],[layout-align-gt-md="space-between"]{align-items:stretch;align-content:stretch}[flex-gt-md]{flex:1}[flex-gt-md-start]{margin-bottom:auto}[flex-gt-md-end]{margin-top:auto}[flex-gt-md-none]{flex:0 0 auto}[flex-gt-md-initial]{flex:0 1 auto}[flex-gt-md-noshrink]{flex:1 0 auto}[flex-gt-md-auto]{flex:1 1 auto}[flex-gt-md-grow]{flex:1 1 100%}[flex-gt-md],[layout="row"]>[flex-gt-md],[layout-gt-md="row"]>[flex-gt-md]{max-height:100%}[layout-gt-md="column"]>[flex-gt-md],[layout="column"]>[flex-gt-md]{max-width:100%}[layout="row"]>[flex-gt-md="5"],[layout-gt-md="row"]>[flex-gt-md="5"],[layout-gt-md="row"]>[flex="5"]{flex:1 1 5%;max-width:5%}[layout="column"]>[flex-gt-md="5"],[layout-gt-md="column"]>[flex-gt-md="5"],[layout-gt-md="column"]>[flex="5"]{flex:1 1 5%;max-height:5%}[layout="row"]>[flex-gt-md="10"],[layout-gt-md="row"]>[flex-gt-md="10"],[layout-gt-md="row"]>[flex="10"]{flex:1 1 10%;max-width:10%}[layout="column"]>[flex-gt-md="10"],[layout-gt-md="column"]>[flex-gt-md="10"],[layout-gt-md="column"]>[flex="10"]{flex:1 1 10%;max-height:10%}[layout="row"]>[flex-gt-md="15"],[layout-gt-md="row"]>[flex-gt-md="15"],[layout-gt-md="row"]>[flex="15"]{flex:1 1 15%;max-width:15%}[layout="column"]>[flex-gt-md="15"],[layout-gt-md="column"]>[flex-gt-md="15"],[layout-gt-md="column"]>[flex="15"]{flex:1 1 15%;max-height:15%}[layout="row"]>[flex-gt-md="20"],[layout-gt-md="row"]>[flex-gt-md="20"],[layout-gt-md="row"]>[flex="20"]{flex:1 1 20%;max-width:20%}[layout="column"]>[flex-gt-md="20"],[layout-gt-md="column"]>[flex-gt-md="20"],[layout-gt-md="column"]>[flex="20"]{flex:1 1 20%;max-height:20%}[layout="row"]>[flex-gt-md="25"],[layout-gt-md="row"]>[flex-gt-md="25"],[layout-gt-md="row"]>[flex="25"]{flex:1 1 25%;max-width:25%}[layout="column"]>[flex-gt-md="25"],[layout-gt-md="column"]>[flex-gt-md="25"],[layout-gt-md="column"]>[flex="25"]{flex:1 1 25%;max-height:25%}[layout="row"]>[flex-gt-md="30"],[layout-gt-md="row"]>[flex-gt-md="30"],[layout-gt-md="row"]>[flex="30"]{flex:1 1 30%;max-width:30%}[layout="column"]>[flex-gt-md="30"],[layout-gt-md="column"]>[flex-gt-md="30"],[layout-gt-md="column"]>[flex="30"]{flex:1 1 30%;max-height:30%}[layout="row"]>[flex-gt-md="35"],[layout-gt-md="row"]>[flex-gt-md="35"],[layout-gt-md="row"]>[flex="35"]{flex:1 1 35%;max-width:35%}[layout="column"]>[flex-gt-md="35"],[layout-gt-md="column"]>[flex-gt-md="35"],[layout-gt-md="column"]>[flex="35"]{flex:1 1 35%;max-height:35%}[layout="row"]>[flex-gt-md="40"],[layout-gt-md="row"]>[flex-gt-md="40"],[layout-gt-md="row"]>[flex="40"]{flex:1 1 40%;max-width:40%}[layout="column"]>[flex-gt-md="40"],[layout-gt-md="column"]>[flex-gt-md="40"],[layout-gt-md="column"]>[flex="40"]{flex:1 1 40%;max-height:40%}[layout="row"]>[flex-gt-md="45"],[layout-gt-md="row"]>[flex-gt-md="45"],[layout-gt-md="row"]>[flex="45"]{flex:1 1 45%;max-width:45%}[layout="column"]>[flex-gt-md="45"],[layout-gt-md="column"]>[flex-gt-md="45"],[layout-gt-md="column"]>[flex="45"]{flex:1 1 45%;max-height:45%}[layout="row"]>[flex-gt-md="50"],[layout-gt-md="row"]>[flex-gt-md="50"],[layout-gt-md="row"]>[flex="50"]{flex:1 1 50%;max-width:50%}[layout="column"]>[flex-gt-md="50"],[layout-gt-md="column"]>[flex-gt-md="50"],[layout-gt-md="column"]>[flex="50"]{flex:1 1 50%;max-height:50%}[layout="row"]>[flex-gt-md="55"],[layout-gt-md="row"]>[flex-gt-md="55"],[layout-gt-md="row"]>[flex="55"]{flex:1 1 55%;max-width:55%}[layout="column"]>[flex-gt-md="55"],[layout-gt-md="column"]>[flex-gt-md="55"],[layout-gt-md="column"]>[flex="55"]{flex:1 1 55%;max-height:55%}[layout="row"]>[flex-gt-md="60"],[layout-gt-md="row"]>[flex-gt-md="60"],[layout-gt-md="row"]>[flex="60"]{flex:1 1 60%;max-width:60%}[layout="column"]>[flex-gt-md="60"],[layout-gt-md="column"]>[flex-gt-md="60"],[layout-gt-md="column"]>[flex="60"]{flex:1 1 60%;max-height:60%}[layout="row"]>[flex-gt-md="65"],[layout-gt-md="row"]>[flex-gt-md="65"],[layout-gt-md="row"]>[flex="65"]{flex:1 1 65%;max-width:65%}[layout="column"]>[flex-gt-md="65"],[layout-gt-md="column"]>[flex-gt-md="65"],[layout-gt-md="column"]>[flex="65"]{flex:1 1 65%;max-height:65%}[layout="row"]>[flex-gt-md="70"],[layout-gt-md="row"]>[flex-gt-md="70"],[layout-gt-md="row"]>[flex="70"]{flex:1 1 70%;max-width:70%}[layout="column"]>[flex-gt-md="70"],[layout-gt-md="column"]>[flex-gt-md="70"],[layout-gt-md="column"]>[flex="70"]{flex:1 1 70%;max-height:70%}[layout="row"]>[flex-gt-md="75"],[layout-gt-md="row"]>[flex-gt-md="75"],[layout-gt-md="row"]>[flex="75"]{flex:1 1 75%;max-width:75%}[layout="column"]>[flex-gt-md="75"],[layout-gt-md="column"]>[flex-gt-md="75"],[layout-gt-md="column"]>[flex="75"]{flex:1 1 75%;max-height:75%}[layout="row"]>[flex-gt-md="80"],[layout-gt-md="row"]>[flex-gt-md="80"],[layout-gt-md="row"]>[flex="80"]{flex:1 1 80%;max-width:80%}[layout="column"]>[flex-gt-md="80"],[layout-gt-md="column"]>[flex-gt-md="80"],[layout-gt-md="column"]>[flex="80"]{flex:1 1 80%;max-height:80%}[layout="row"]>[flex-gt-md="85"],[layout-gt-md="row"]>[flex-gt-md="85"],[layout-gt-md="row"]>[flex="85"]{flex:1 1 85%;max-width:85%}[layout="column"]>[flex-gt-md="85"],[layout-gt-md="column"]>[flex-gt-md="85"],[layout-gt-md="column"]>[flex="85"]{flex:1 1 85%;max-height:85%}[layout="row"]>[flex-gt-md="90"],[layout-gt-md="row"]>[flex-gt-md="90"],[layout-gt-md="row"]>[flex="90"]{flex:1 1 90%;max-width:90%}[layout="column"]>[flex-gt-md="90"],[layout-gt-md="column"]>[flex-gt-md="90"],[layout-gt-md="column"]>[flex="90"]{flex:1 1 90%;max-height:90%}[layout="row"]>[flex-gt-md="95"],[layout-gt-md="row"]>[flex-gt-md="95"],[layout-gt-md="row"]>[flex="95"]{flex:1 1 95%;max-width:95%}[layout="column"]>[flex-gt-md="95"],[layout-gt-md="column"]>[flex-gt-md="95"],[layout-gt-md="column"]>[flex="95"]{flex:1 1 95%;max-height:95%}[layout="row"]>[flex-gt-md="100"],[layout-gt-md="row"]>[flex-gt-md="100"],[layout-gt-md="row"]>[flex="100"]{flex:1 1 100%;max-width:100%}[layout="column"]>[flex-gt-md="100"],[layout-gt-md="column"]>[flex-gt-md="100"],[layout-gt-md="column"]>[flex="100"]{flex:1 1 100%;max-height:100%}[layout="row"]>[flex-gt-md="33"],[layout-gt-md="row"]>[flex-gt-md="33"],[layout-gt-md="row"]>[flex="33"]{flex:1 1 33.33%;max-width:33.33%}[layout="column"]>[flex-gt-md="33"],[layout-gt-md="column"]>[flex-gt-md="33"],[layout-gt-md="column"]>[flex="33"]{flex:1 1 33.33%;max-height:33.33%}[layout="row"]>[flex-gt-md="66"],[layout-gt-md="row"]>[flex-gt-md="66"],[layout-gt-md="row"]>[flex="66"]{flex:1 1 66.66%;max-width:66.66%}[layout="column"]>[flex-gt-md="66"],[layout-gt-md="column"]>[flex-gt-md="66"],[layout-gt-md="column"]>[flex="66"]{flex:1 1 66.66%;max-height:66.66%}[hide-gt-md]{display:none}}@media (min-width: 960px) and (max-width: 1199px){[flex-offset-lg="0"]{margin-left:0%}[flex-offset-lg="5"]{margin-left:5%}[flex-offset-lg="10"]{margin-left:10%}[flex-offset-lg="15"]{margin-left:15%}[flex-offset-lg="20"]{margin-left:20%}[flex-offset-lg="25"]{margin-left:25%}[flex-offset-lg="30"]{margin-left:30%}[flex-offset-lg="35"]{margin-left:35%}[flex-offset-lg="40"]{margin-left:40%}[flex-offset-lg="45"]{margin-left:45%}[flex-offset-lg="50"]{margin-left:50%}[flex-offset-lg="55"]{margin-left:55%}[flex-offset-lg="60"]{margin-left:60%}[flex-offset-lg="65"]{margin-left:65%}[flex-offset-lg="70"]{margin-left:70%}[flex-offset-lg="75"]{margin-left:75%}[flex-offset-lg="80"]{margin-left:80%}[flex-offset-lg="85"]{margin-left:85%}[flex-offset-lg="90"]{margin-left:90%}[flex-offset-lg="95"]{margin-left:95%}[flex-offset-lg="33"]{margin-left:calc(100% / 3)}[flex-offset-lg="66"]{margin-left:calc(200% / 3)}[flex-order-lg="0"]{order:0}[flex-order-lg="1"]{order:1}[flex-order-lg="2"]{order:2}[flex-order-lg="3"]{order:3}[flex-order-lg="4"]{order:4}[flex-order-lg="5"]{order:5}[flex-order-lg="6"]{order:6}[flex-order-lg="7"]{order:7}[flex-order-lg="8"]{order:8}[flex-order-lg="9"]{order:9}[flex-order-lg="10"]{order:10}[flex-order-lg="11"]{order:11}[flex-order-lg="12"]{order:12}[flex-order-lg="13"]{order:13}[flex-order-lg="14"]{order:14}[flex-order-lg="15"]{order:15}[flex-order-lg="16"]{order:16}[flex-order-lg="17"]{order:17}[flex-order-lg="18"]{order:18}[flex-order-lg="19"]{order:19}[flex-order-lg="20"]{order:20}[layout-lg]{display:flex;flex-wrap:wrap}[layout-lg]>*{box-sizing:border-box}[layout-lg="column"]{flex-direction:column}[layout-lg="row"]{flex-direction:row}[layout-align-lg]{justify-content:flex-start;align-content:stretch;align-items:stretch}[layout-align-lg^="start"]{justify-content:flex-start}[layout-align-lg^="center"]{justify-content:center}[layout-align-lg^="end"]{justify-content:flex-end}[layout-align-lg^="space-around"]{justify-content:space-around}[layout-align-lg^="space-between"]{justify-content:space-between}[layout-align-lg$="start"]{align-items:flex-start;align-content:flex-start}[layout-align-lg$="center"]{align-items:center;align-content:center;max-width:100%}[layout-align-lg$="center"]>*{max-width:100%}[layout-align-lg$="end"]{align-items:flex-end;align-content:flex-end}[layout-align-lg="start"],[layout-align-lg="end"],[layout-align-lg="center"],[layout-align-lg="space-around"],[layout-align-lg="space-between"]{align-items:stretch;align-content:stretch}[flex-lg]{flex:1}[flex-lg-start]{margin-bottom:auto}[flex-lg-end]{margin-top:auto}[flex-lg-none]{flex:0 0 auto}[flex-lg-initial]{flex:0 1 auto}[flex-lg-noshrink]{flex:1 0 auto}[flex-lg-auto]{flex:1 1 auto}[flex-lg-grow]{flex:1 1 100%}[flex-lg],[layout="row"]>[flex-lg],[layout-lg="row"]>[flex-lg]{max-height:100%}[layout-lg="column"]>[flex-lg],[layout="column"]>[flex-lg]{max-width:100%}[layout="row"]>[flex-lg="5"],[layout-lg="row"]>[flex-lg="5"],[layout-lg="row"]>[flex="5"]{flex:1 1 5%;max-width:5%}[layout="column"]>[flex-lg="5"],[layout-lg="column"]>[flex-lg="5"],[layout-lg="column"]>[flex="5"]{flex:1 1 5%;max-height:5%}[layout="row"]>[flex-lg="10"],[layout-lg="row"]>[flex-lg="10"],[layout-lg="row"]>[flex="10"]{flex:1 1 10%;max-width:10%}[layout="column"]>[flex-lg="10"],[layout-lg="column"]>[flex-lg="10"],[layout-lg="column"]>[flex="10"]{flex:1 1 10%;max-height:10%}[layout="row"]>[flex-lg="15"],[layout-lg="row"]>[flex-lg="15"],[layout-lg="row"]>[flex="15"]{flex:1 1 15%;max-width:15%}[layout="column"]>[flex-lg="15"],[layout-lg="column"]>[flex-lg="15"],[layout-lg="column"]>[flex="15"]{flex:1 1 15%;max-height:15%}[layout="row"]>[flex-lg="20"],[layout-lg="row"]>[flex-lg="20"],[layout-lg="row"]>[flex="20"]{flex:1 1 20%;max-width:20%}[layout="column"]>[flex-lg="20"],[layout-lg="column"]>[flex-lg="20"],[layout-lg="column"]>[flex="20"]{flex:1 1 20%;max-height:20%}[layout="row"]>[flex-lg="25"],[layout-lg="row"]>[flex-lg="25"],[layout-lg="row"]>[flex="25"]{flex:1 1 25%;max-width:25%}[layout="column"]>[flex-lg="25"],[layout-lg="column"]>[flex-lg="25"],[layout-lg="column"]>[flex="25"]{flex:1 1 25%;max-height:25%}[layout="row"]>[flex-lg="30"],[layout-lg="row"]>[flex-lg="30"],[layout-lg="row"]>[flex="30"]{flex:1 1 30%;max-width:30%}[layout="column"]>[flex-lg="30"],[layout-lg="column"]>[flex-lg="30"],[layout-lg="column"]>[flex="30"]{flex:1 1 30%;max-height:30%}[layout="row"]>[flex-lg="35"],[layout-lg="row"]>[flex-lg="35"],[layout-lg="row"]>[flex="35"]{flex:1 1 35%;max-width:35%}[layout="column"]>[flex-lg="35"],[layout-lg="column"]>[flex-lg="35"],[layout-lg="column"]>[flex="35"]{flex:1 1 35%;max-height:35%}[layout="row"]>[flex-lg="40"],[layout-lg="row"]>[flex-lg="40"],[layout-lg="row"]>[flex="40"]{flex:1 1 40%;max-width:40%}[layout="column"]>[flex-lg="40"],[layout-lg="column"]>[flex-lg="40"],[layout-lg="column"]>[flex="40"]{flex:1 1 40%;max-height:40%}[layout="row"]>[flex-lg="45"],[layout-lg="row"]>[flex-lg="45"],[layout-lg="row"]>[flex="45"]{flex:1 1 45%;max-width:45%}[layout="column"]>[flex-lg="45"],[layout-lg="column"]>[flex-lg="45"],[layout-lg="column"]>[flex="45"]{flex:1 1 45%;max-height:45%}[layout="row"]>[flex-lg="50"],[layout-lg="row"]>[flex-lg="50"],[layout-lg="row"]>[flex="50"]{flex:1 1 50%;max-width:50%}[layout="column"]>[flex-lg="50"],[layout-lg="column"]>[flex-lg="50"],[layout-lg="column"]>[flex="50"]{flex:1 1 50%;max-height:50%}[layout="row"]>[flex-lg="55"],[layout-lg="row"]>[flex-lg="55"],[layout-lg="row"]>[flex="55"]{flex:1 1 55%;max-width:55%}[layout="column"]>[flex-lg="55"],[layout-lg="column"]>[flex-lg="55"],[layout-lg="column"]>[flex="55"]{flex:1 1 55%;max-height:55%}[layout="row"]>[flex-lg="60"],[layout-lg="row"]>[flex-lg="60"],[layout-lg="row"]>[flex="60"]{flex:1 1 60%;max-width:60%}[layout="column"]>[flex-lg="60"],[layout-lg="column"]>[flex-lg="60"],[layout-lg="column"]>[flex="60"]{flex:1 1 60%;max-height:60%}[layout="row"]>[flex-lg="65"],[layout-lg="row"]>[flex-lg="65"],[layout-lg="row"]>[flex="65"]{flex:1 1 65%;max-width:65%}[layout="column"]>[flex-lg="65"],[layout-lg="column"]>[flex-lg="65"],[layout-lg="column"]>[flex="65"]{flex:1 1 65%;max-height:65%}[layout="row"]>[flex-lg="70"],[layout-lg="row"]>[flex-lg="70"],[layout-lg="row"]>[flex="70"]{flex:1 1 70%;max-width:70%}[layout="column"]>[flex-lg="70"],[layout-lg="column"]>[flex-lg="70"],[layout-lg="column"]>[flex="70"]{flex:1 1 70%;max-height:70%}[layout="row"]>[flex-lg="75"],[layout-lg="row"]>[flex-lg="75"],[layout-lg="row"]>[flex="75"]{flex:1 1 75%;max-width:75%}[layout="column"]>[flex-lg="75"],[layout-lg="column"]>[flex-lg="75"],[layout-lg="column"]>[flex="75"]{flex:1 1 75%;max-height:75%}[layout="row"]>[flex-lg="80"],[layout-lg="row"]>[flex-lg="80"],[layout-lg="row"]>[flex="80"]{flex:1 1 80%;max-width:80%}[layout="column"]>[flex-lg="80"],[layout-lg="column"]>[flex-lg="80"],[layout-lg="column"]>[flex="80"]{flex:1 1 80%;max-height:80%}[layout="row"]>[flex-lg="85"],[layout-lg="row"]>[flex-lg="85"],[layout-lg="row"]>[flex="85"]{flex:1 1 85%;max-width:85%}[layout="column"]>[flex-lg="85"],[layout-lg="column"]>[flex-lg="85"],[layout-lg="column"]>[flex="85"]{flex:1 1 85%;max-height:85%}[layout="row"]>[flex-lg="90"],[layout-lg="row"]>[flex-lg="90"],[layout-lg="row"]>[flex="90"]{flex:1 1 90%;max-width:90%}[layout="column"]>[flex-lg="90"],[layout-lg="column"]>[flex-lg="90"],[layout-lg="column"]>[flex="90"]{flex:1 1 90%;max-height:90%}[layout="row"]>[flex-lg="95"],[layout-lg="row"]>[flex-lg="95"],[layout-lg="row"]>[flex="95"]{flex:1 1 95%;max-width:95%}[layout="column"]>[flex-lg="95"],[layout-lg="column"]>[flex-lg="95"],[layout-lg="column"]>[flex="95"]{flex:1 1 95%;max-height:95%}[layout="row"]>[flex-lg="100"],[layout-lg="row"]>[flex-lg="100"],[layout-lg="row"]>[flex="100"]{flex:1 1 100%;max-width:100%}[layout="column"]>[flex-lg="100"],[layout-lg="column"]>[flex-lg="100"],[layout-lg="column"]>[flex="100"]{flex:1 1 100%;max-height:100%}[layout="row"]>[flex-lg="33"],[layout-lg="row"]>[flex-lg="33"],[layout-lg="row"]>[flex="33"]{flex:1 1 33.33%;max-width:33.33%}[layout="column"]>[flex-lg="33"],[layout-lg="column"]>[flex-lg="33"],[layout-lg="column"]>[flex="33"]{flex:1 1 33.33%;max-height:33.33%}[layout="row"]>[flex-lg="66"],[layout-lg="row"]>[flex-lg="66"],[layout-lg="row"]>[flex="66"]{flex:1 1 66.66%;max-width:66.66%}[layout="column"]>[flex-lg="66"],[layout-lg="column"]>[flex-lg="66"],[layout-lg="column"]>[flex="66"]{flex:1 1 66.66%;max-height:66.66%}[hide-lg]{display:none}}@media (min-width: 1200px){[flex-offset-gt-lg="0"]{margin-left:0%}[flex-offset-gt-lg="5"]{margin-left:5%}[flex-offset-gt-lg="10"]{margin-left:10%}[flex-offset-gt-lg="15"]{margin-left:15%}[flex-offset-gt-lg="20"]{margin-left:20%}[flex-offset-gt-lg="25"]{margin-left:25%}[flex-offset-gt-lg="30"]{margin-left:30%}[flex-offset-gt-lg="35"]{margin-left:35%}[flex-offset-gt-lg="40"]{margin-left:40%}[flex-offset-gt-lg="45"]{margin-left:45%}[flex-offset-gt-lg="50"]{margin-left:50%}[flex-offset-gt-lg="55"]{margin-left:55%}[flex-offset-gt-lg="60"]{margin-left:60%}[flex-offset-gt-lg="65"]{margin-left:65%}[flex-offset-gt-lg="70"]{margin-left:70%}[flex-offset-gt-lg="75"]{margin-left:75%}[flex-offset-gt-lg="80"]{margin-left:80%}[flex-offset-gt-lg="85"]{margin-left:85%}[flex-offset-gt-lg="90"]{margin-left:90%}[flex-offset-gt-lg="95"]{margin-left:95%}[flex-offset-gt-lg="33"]{margin-left:calc(100% / 3)}[flex-offset-gt-lg="66"]{margin-left:calc(200% / 3)}[flex-order-gt-lg="0"]{order:0}[flex-order-gt-lg="1"]{order:1}[flex-order-gt-lg="2"]{order:2}[flex-order-gt-lg="3"]{order:3}[flex-order-gt-lg="4"]{order:4}[flex-order-gt-lg="5"]{order:5}[flex-order-gt-lg="6"]{order:6}[flex-order-gt-lg="7"]{order:7}[flex-order-gt-lg="8"]{order:8}[flex-order-gt-lg="9"]{order:9}[flex-order-gt-lg="10"]{order:10}[flex-order-gt-lg="11"]{order:11}[flex-order-gt-lg="12"]{order:12}[flex-order-gt-lg="13"]{order:13}[flex-order-gt-lg="14"]{order:14}[flex-order-gt-lg="15"]{order:15}[flex-order-gt-lg="16"]{order:16}[flex-order-gt-lg="17"]{order:17}[flex-order-gt-lg="18"]{order:18}[flex-order-gt-lg="19"]{order:19}[flex-order-gt-lg="20"]{order:20}[layout-gt-lg]{display:flex;flex-wrap:wrap}[layout-gt-lg]>*{box-sizing:border-box}[layout-gt-lg="column"]{flex-direction:column}[layout-gt-lg="row"]{flex-direction:row}[layout-align-gt-lg]{justify-content:flex-start;align-content:stretch;align-items:stretch}[layout-align-gt-lg^="start"]{justify-content:flex-start}[layout-align-gt-lg^="center"]{justify-content:center}[layout-align-gt-lg^="end"]{justify-content:flex-end}[layout-align-gt-lg^="space-around"]{justify-content:space-around}[layout-align-gt-lg^="space-between"]{justify-content:space-between}[layout-align-gt-lg$="start"]{align-items:flex-start;align-content:flex-start}[layout-align-gt-lg$="center"]{align-items:center;align-content:center;max-width:100%}[layout-align-gt-lg$="center"]>*{max-width:100%}[layout-align-gt-lg$="end"]{align-items:flex-end;align-content:flex-end}[layout-align-gt-lg="start"],[layout-align-gt-lg="end"],[layout-align-gt-lg="center"],[layout-align-gt-lg="space-around"],[layout-align-gt-lg="space-between"]{align-items:stretch;align-content:stretch}[flex-gt-lg]{flex:1}[flex-gt-lg-start]{margin-bottom:auto}[flex-gt-lg-end]{margin-top:auto}[flex-gt-lg-none]{flex:0 0 auto}[flex-gt-lg-initial]{flex:0 1 auto}[flex-gt-lg-noshrink]{flex:1 0 auto}[flex-gt-lg-auto]{flex:1 1 auto}[flex-gt-lg-grow]{flex:1 1 100%}[flex-gt-lg],[layout="row"]>[flex-gt-lg],[layout-gt-lg="row"]>[flex-gt-lg]{max-height:100%}[layout-gt-lg="column"]>[flex-gt-lg],[layout="column"]>[flex-gt-lg]{max-width:100%}[layout="row"]>[flex-gt-lg="5"],[layout-gt-lg="row"]>[flex-gt-lg="5"],[layout-gt-lg="row"]>[flex="5"]{flex:1 1 5%;max-width:5%}[layout="column"]>[flex-gt-lg="5"],[layout-gt-lg="column"]>[flex-gt-lg="5"],[layout-gt-lg="column"]>[flex="5"]{flex:1 1 5%;max-height:5%}[layout="row"]>[flex-gt-lg="10"],[layout-gt-lg="row"]>[flex-gt-lg="10"],[layout-gt-lg="row"]>[flex="10"]{flex:1 1 10%;max-width:10%}[layout="column"]>[flex-gt-lg="10"],[layout-gt-lg="column"]>[flex-gt-lg="10"],[layout-gt-lg="column"]>[flex="10"]{flex:1 1 10%;max-height:10%}[layout="row"]>[flex-gt-lg="15"],[layout-gt-lg="row"]>[flex-gt-lg="15"],[layout-gt-lg="row"]>[flex="15"]{flex:1 1 15%;max-width:15%}[layout="column"]>[flex-gt-lg="15"],[layout-gt-lg="column"]>[flex-gt-lg="15"],[layout-gt-lg="column"]>[flex="15"]{flex:1 1 15%;max-height:15%}[layout="row"]>[flex-gt-lg="20"],[layout-gt-lg="row"]>[flex-gt-lg="20"],[layout-gt-lg="row"]>[flex="20"]{flex:1 1 20%;max-width:20%}[layout="column"]>[flex-gt-lg="20"],[layout-gt-lg="column"]>[flex-gt-lg="20"],[layout-gt-lg="column"]>[flex="20"]{flex:1 1 20%;max-height:20%}[layout="row"]>[flex-gt-lg="25"],[layout-gt-lg="row"]>[flex-gt-lg="25"],[layout-gt-lg="row"]>[flex="25"]{flex:1 1 25%;max-width:25%}[layout="column"]>[flex-gt-lg="25"],[layout-gt-lg="column"]>[flex-gt-lg="25"],[layout-gt-lg="column"]>[flex="25"]{flex:1 1 25%;max-height:25%}[layout="row"]>[flex-gt-lg="30"],[layout-gt-lg="row"]>[flex-gt-lg="30"],[layout-gt-lg="row"]>[flex="30"]{flex:1 1 30%;max-width:30%}[layout="column"]>[flex-gt-lg="30"],[layout-gt-lg="column"]>[flex-gt-lg="30"],[layout-gt-lg="column"]>[flex="30"]{flex:1 1 30%;max-height:30%}[layout="row"]>[flex-gt-lg="35"],[layout-gt-lg="row"]>[flex-gt-lg="35"],[layout-gt-lg="row"]>[flex="35"]{flex:1 1 35%;max-width:35%}[layout="column"]>[flex-gt-lg="35"],[layout-gt-lg="column"]>[flex-gt-lg="35"],[layout-gt-lg="column"]>[flex="35"]{flex:1 1 35%;max-height:35%}[layout="row"]>[flex-gt-lg="40"],[layout-gt-lg="row"]>[flex-gt-lg="40"],[layout-gt-lg="row"]>[flex="40"]{flex:1 1 40%;max-width:40%}[layout="column"]>[flex-gt-lg="40"],[layout-gt-lg="column"]>[flex-gt-lg="40"],[layout-gt-lg="column"]>[flex="40"]{flex:1 1 40%;max-height:40%}[layout="row"]>[flex-gt-lg="45"],[layout-gt-lg="row"]>[flex-gt-lg="45"],[layout-gt-lg="row"]>[flex="45"]{flex:1 1 45%;max-width:45%}[layout="column"]>[flex-gt-lg="45"],[layout-gt-lg="column"]>[flex-gt-lg="45"],[layout-gt-lg="column"]>[flex="45"]{flex:1 1 45%;max-height:45%}[layout="row"]>[flex-gt-lg="50"],[layout-gt-lg="row"]>[flex-gt-lg="50"],[layout-gt-lg="row"]>[flex="50"]{flex:1 1 50%;max-width:50%}[layout="column"]>[flex-gt-lg="50"],[layout-gt-lg="column"]>[flex-gt-lg="50"],[layout-gt-lg="column"]>[flex="50"]{flex:1 1 50%;max-height:50%}[layout="row"]>[flex-gt-lg="55"],[layout-gt-lg="row"]>[flex-gt-lg="55"],[layout-gt-lg="row"]>[flex="55"]{flex:1 1 55%;max-width:55%}[layout="column"]>[flex-gt-lg="55"],[layout-gt-lg="column"]>[flex-gt-lg="55"],[layout-gt-lg="column"]>[flex="55"]{flex:1 1 55%;max-height:55%}[layout="row"]>[flex-gt-lg="60"],[layout-gt-lg="row"]>[flex-gt-lg="60"],[layout-gt-lg="row"]>[flex="60"]{flex:1 1 60%;max-width:60%}[layout="column"]>[flex-gt-lg="60"],[layout-gt-lg="column"]>[flex-gt-lg="60"],[layout-gt-lg="column"]>[flex="60"]{flex:1 1 60%;max-height:60%}[layout="row"]>[flex-gt-lg="65"],[layout-gt-lg="row"]>[flex-gt-lg="65"],[layout-gt-lg="row"]>[flex="65"]{flex:1 1 65%;max-width:65%}[layout="column"]>[flex-gt-lg="65"],[layout-gt-lg="column"]>[flex-gt-lg="65"],[layout-gt-lg="column"]>[flex="65"]{flex:1 1 65%;max-height:65%}[layout="row"]>[flex-gt-lg="70"],[layout-gt-lg="row"]>[flex-gt-lg="70"],[layout-gt-lg="row"]>[flex="70"]{flex:1 1 70%;max-width:70%}[layout="column"]>[flex-gt-lg="70"],[layout-gt-lg="column"]>[flex-gt-lg="70"],[layout-gt-lg="column"]>[flex="70"]{flex:1 1 70%;max-height:70%}[layout="row"]>[flex-gt-lg="75"],[layout-gt-lg="row"]>[flex-gt-lg="75"],[layout-gt-lg="row"]>[flex="75"]{flex:1 1 75%;max-width:75%}[layout="column"]>[flex-gt-lg="75"],[layout-gt-lg="column"]>[flex-gt-lg="75"],[layout-gt-lg="column"]>[flex="75"]{flex:1 1 75%;max-height:75%}[layout="row"]>[flex-gt-lg="80"],[layout-gt-lg="row"]>[flex-gt-lg="80"],[layout-gt-lg="row"]>[flex="80"]{flex:1 1 80%;max-width:80%}[layout="column"]>[flex-gt-lg="80"],[layout-gt-lg="column"]>[flex-gt-lg="80"],[layout-gt-lg="column"]>[flex="80"]{flex:1 1 80%;max-height:80%}[layout="row"]>[flex-gt-lg="85"],[layout-gt-lg="row"]>[flex-gt-lg="85"],[layout-gt-lg="row"]>[flex="85"]{flex:1 1 85%;max-width:85%}[layout="column"]>[flex-gt-lg="85"],[layout-gt-lg="column"]>[flex-gt-lg="85"],[layout-gt-lg="column"]>[flex="85"]{flex:1 1 85%;max-height:85%}[layout="row"]>[flex-gt-lg="90"],[layout-gt-lg="row"]>[flex-gt-lg="90"],[layout-gt-lg="row"]>[flex="90"]{flex:1 1 90%;max-width:90%}[layout="column"]>[flex-gt-lg="90"],[layout-gt-lg="column"]>[flex-gt-lg="90"],[layout-gt-lg="column"]>[flex="90"]{flex:1 1 90%;max-height:90%}[layout="row"]>[flex-gt-lg="95"],[layout-gt-lg="row"]>[flex-gt-lg="95"],[layout-gt-lg="row"]>[flex="95"]{flex:1 1 95%;max-width:95%}[layout="column"]>[flex-gt-lg="95"],[layout-gt-lg="column"]>[flex-gt-lg="95"],[layout-gt-lg="column"]>[flex="95"]{flex:1 1 95%;max-height:95%}[layout="row"]>[flex-gt-lg="100"],[layout-gt-lg="row"]>[flex-gt-lg="100"],[layout-gt-lg="row"]>[flex="100"]{flex:1 1 100%;max-width:100%}[layout="column"]>[flex-gt-lg="100"],[layout-gt-lg="column"]>[flex-gt-lg="100"],[layout-gt-lg="column"]>[flex="100"]{flex:1 1 100%;max-height:100%}[layout="row"]>[flex-gt-lg="33"],[layout-gt-lg="row"]>[flex-gt-lg="33"],[layout-gt-lg="row"]>[flex="33"]{flex:1 1 33.33%;max-width:33.33%}[layout="column"]>[flex-gt-lg="33"],[layout-gt-lg="column"]>[flex-gt-lg="33"],[layout-gt-lg="column"]>[flex="33"]{flex:1 1 33.33%;max-height:33.33%}[layout="row"]>[flex-gt-lg="66"],[layout-gt-lg="row"]>[flex-gt-lg="66"],[layout-gt-lg="row"]>[flex="66"]{flex:1 1 66.66%;max-width:66.66%}[layout="column"]>[flex-gt-lg="66"],[layout-gt-lg="column"]>[flex-gt-lg="66"],[layout-gt-lg="column"]>[flex="66"]{flex:1 1 66.66%;max-height:66.66%}[hide-gt-lg]{display:none}}[layout-padding]>[flex-sm]{padding:.25em}[layout-padding],[layout-padding]>[flex],[layout-padding]>[flex-gt-sm],[layout-padding]>[flex-md]{padding:.5em}[layout-padding]>[flex-gt-md],[layout-padding]>[flex-lg]{padding:1em}[layout-margin]>[flex-sm]{margin:.25em}[layout-margin],[layout-margin]>[flex],[layout-margin]>[flex-gt-sm],[layout-margin]>[flex-md]{margin:.5em}[layout-margin]>[flex-gt-md],[layout-margin]>[flex-lg]{margin:1em}[layout-nowrap]{flex-wrap:nowrap} 2 | --------------------------------------------------------------------------------