diff --git a/Dockerfile b/Dockerfile
index eed00f53..0a9425d7 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -3,11 +3,6 @@ EXPOSE 3000
ENV BASE_URL '/'
-# Will unfortunately have to keep this as long as
-# we have git deps in package.json
-RUN apt-get update && apt-get install -y --no-install-recommends git \
- && rm -rf /var/lib/apt/lists/*
-
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
diff --git a/docs/api/index.hbs b/docs/api/index.hbs
index 94efdb4e..cafb7dfe 100644
--- a/docs/api/index.hbs
+++ b/docs/api/index.hbs
@@ -8,11 +8,58 @@ order: -1
{{#> page}}
{{#*inline "content"}}
-
-
Heads up! This page is being rewritten
- in order to make understanding the API of the AXA Web Toolkit
- as easy as possible. Come back again in a couple of days!
-
+ {{#with menu.sassdoc}}
+ {{#each childrenArray}}
+ {{#with file}}
+ {{comment.context.name}}
+ {{comment.description}}
+
+ Type: {{comment.context.type}}
+
+ {{#if comment.context.code}}
+
+
Source:
+
{{comment.context.code}}
+
+ {{/if}}
+
+ {{#if comment.context.value}}
+
+
Source
+
{{comment.context.value}}
+
+ {{/if}}
+
+ {{#if comment.parameter}}
+ Parameters
+
+ {{#each comment.parameter}}
+ - {{name}} ({{type}} - Default: {{default}})
+ - {{description}}
+ {{/each}}
+
+ {{/if}}
+
+ {{#if comment.see}}
+ See
+
+ {{#each comment.see}}
+ {{name}}
+ {{/each}}
+
+ {{/if}}
+
+ {{#if comment.example}}
+ {{#each comment.example}}
+
+
Example {{@index}}: {{description}} ({{type}})
+
{{code}}
+
+ {{/each}}
+ {{/if}}
+ {{/with}}
+ {{/each}}
+ {{/with}}
{{/inline}}
{{/page}}
diff --git a/docs/hbs-partials/sassdoc-template.hbs b/docs/hbs-partials/sassdoc-template.hbs
deleted file mode 100644
index 22e08c3c..00000000
--- a/docs/hbs-partials/sassdoc-template.hbs
+++ /dev/null
@@ -1,36 +0,0 @@
-{{#> page}}
- {{#*inline "content"}}
- {{comment.context.name}}
- {{comment.description}}
- Type: {{comment.context.type}}
- {{#if comment.context.code}}
-
-
Source:
-
{{comment.context.code}}
-
- {{/if}}
- {{#if comment.context.value}}
-
-
Source:
-
{{comment.context.value}}
-
- {{/if}}
- {{#if comment.parameter}}
- Parameters:
- {{#each comment.parameter}}
-
- - {{name}} ({{type}} - Default: {{default}})
- - {{description}}
-
- {{/each}}
- {{/if}}
- {{#if comment.example}}
- {{#each comment.example}}
-
-
Example {{@index}}: {{description}} ({{type}})
-
{{code}}
-
- {{/each}}
- {{/if}}
- {{/inline}}
-{{/page}}
diff --git a/lib/build-docs.js b/lib/build-docs.js
index 99a9a379..1878162c 100644
--- a/lib/build-docs.js
+++ b/lib/build-docs.js
@@ -1,15 +1,10 @@
import path from 'path'
-import marked from 'marked'
import _ from 'lodash'
import fs from 'fs'
import handlebars from 'handlebars'
-import highlight from 'highlight.js'
import Metalsmith from 'metalsmith'
-import collections from 'metalsmith-collections'
import layouts from 'metalsmith-layouts'
-import pug from 'metalsmith-pug'
-import markdown from 'metalsmith-markdown'
import branch from 'metalsmith-branch'
import define from 'metalsmith-define'
import drafts from 'metalsmith-drafts'
@@ -22,9 +17,6 @@ import watch from 'metalsmith-watch'
import inplace from 'metalsmith-in-place'
import packageJson from '../package.json'
-import sampleJadeFilter from './jade-filter-sample'
-import highlightCodeJadeFilter from './jade-filter-highlightcode'
-import markedRenderer from './marked-renderer'
import nav from './metalsmith-nav'
import searchIndexData from './metalsmith-search-index'
import log from './metalsmith-log'
@@ -38,24 +30,6 @@ import hbsHighlight from './handlebars-highlight'
const cwd = path.join(__dirname, '../')
const metalsmithSource = './docs'
-// basedir for include paths
-const pugBaseDir = path.join(cwd, metalsmithSource)
-
-// Pug filters
-const pugFilters = {
- sample: sampleJadeFilter,
- highlight: highlightCodeJadeFilter,
-}
-
-// Configure marked
-marked.setOptions({
- renderer: markedRenderer,
- langPrefix: '',
- highlight(code, lang) {
- return highlight.getLanguage(lang) ? highlight.highlight(lang, code).value : undefined
- },
-})
-
handlebars.registerHelper('relative', hbsRelative)
handlebars.registerHelper('eq', hbsEquals)
handlebars.registerHelper('get', hbsGet)
@@ -92,7 +66,7 @@ metalsmith.use(drafts())
metalsmith.use(log('Excluded draft pages'))
metalsmith.use(
- branch(['**/*.hbs', '**/*.pug', '!layouts/**', '**/*.md', '!_*/**/*.md', '!**/snippets/**'])
+ branch(['**/*.hbs', '**/*.json', '!layouts/**', '!**/snippets/**'])
.use(drafts())
.use(nav())
)
@@ -103,11 +77,7 @@ metalsmith.use(define({
icons: fs.readdirSync(path.join(cwd, 'icons')).map(file => ({
name: file.replace(/\.svg$/, ''),
})),
- readme: fs.readFileSync(path.join(cwd, 'README.md'), 'utf8'),
package: packageJson,
- marked,
- // basedir for layout files
- basedir: pugBaseDir,
process: {
env: process.env,
},
@@ -122,22 +92,13 @@ metalsmith.use(
metalsmith.use(log('Prepared the html pages'))
-// Do the markdown pages
-metalsmith.use(
- branch(['**/*.md', '!_*/**/*.md'])
- .use(relative())
- .use(markdown({
- useMetadata: true,
- marked,
- }))
-)
-metalsmith.use(log('Compiled the markdown pages'))
-
metalsmith.use(
branch(['**/snippets/**/*.hbs'])
.use(filepath({}))
+ // eslint-disable-next-line no-shadow
.use((files, metalsmith, done) => {
- _.forEach(files, file => {
+ _.forEach(files, (file) => {
+ // eslint-disable-next-line no-param-reassign
file.link = file.link.replace('.hbs', '.html')
})
return done()
@@ -147,9 +108,11 @@ metalsmith.use(
partials: 'docs/hbs-partials',
rename: true,
}))
+ // eslint-disable-next-line no-shadow
.use((files, metalsmith, done) => {
const metadata = metalsmith.metadata()
metadata.snippets = {}
+ // eslint-disable-next-line no-shadow
_.forEach((files, file) => {
const name = file.link.substring(0, file.link.length - 5)
metadata.snippets[name] = file.contents.toString()
@@ -165,8 +128,10 @@ metalsmith.use(
'!**/snippets/**/*.hbs',
])
.use(filepath({}))
+ // eslint-disable-next-line no-shadow
.use((files, metalsmith, done) => {
- _.forEach(files, file => {
+ _.forEach(files, (file) => {
+ // eslint-disable-next-line no-param-reassign
file.link = file.link.replace('.hbs', '.html')
})
return done()
@@ -178,36 +143,6 @@ metalsmith.use(
})))
metalsmith.use(log('Compiled all handlebars pages'))
-metalsmith.use(log('Baking a cake...'))
-// Do the Pug pages
-metalsmith.use(
- branch(['**/*.pug', '!layouts/**'])
- .use(filepath({
- absolute: true,
- }))
- .use((files, metalsmith, done) => {
- _.forEach(files, file => {
- file.link = file.link.replace('.pug', '.html')
- })
- return done()
- })
- .use(relative())
- .use(collections({
- navigation: {
- sortBy: 'order',
- refer: false,
- },
- }))
- .use(pug({
- useMetadata: true,
- locals: metalsmith.metadata(),
- pretty: true,
- basedir: pugBaseDir,
- filters: pugFilters,
- }))
-)
-metalsmith.use(log('Compiled all pug pages'))
-
// Duplicate snippets to be used as demo pages (will be wrapped with templates below)
metalsmith.use(
branch(['**/*.html'])
@@ -269,7 +204,10 @@ metalsmith.destination('./dist/docs/')
// Function to run the magic
metalsmith.build((err) => {
if (err) {
- console.log((new Date()).toLocaleTimeString(), 'Failed!', err)
+ // eslint-disable-next-line no-console
+ console.error((new Date()).toLocaleTimeString(), 'Failed!', err)
}
- console.log((new Date()).toLocaleTimeString(), 'Done!')
+
+ // eslint-disable-next-line no-console
+ console.info((new Date()).toLocaleTimeString(), 'Done!')
})
diff --git a/lib/handlebars-highlight.js b/lib/handlebars-highlight.js
index 38d354c4..50b8fb93 100644
--- a/lib/handlebars-highlight.js
+++ b/lib/handlebars-highlight.js
@@ -1,7 +1,7 @@
import handlebars from 'handlebars'
import hljs from 'highlight.js'
-const highlight = function(opts) {
+function highlight(opts) {
const markup = opts.fn(this).trim()
const highlighted = hljs.highlight('html', markup)
diff --git a/lib/jade-filter-highlightcode.js b/lib/jade-filter-highlightcode.js
deleted file mode 100644
index 027637fe..00000000
--- a/lib/jade-filter-highlightcode.js
+++ /dev/null
@@ -1,30 +0,0 @@
-import hljs from 'highlight.js'
-import pug from 'pug'
-import fm from 'front-matter'
-import handlebars from 'handlebars'
-
-const highlightCode = (text, options) => {
- const relative = to => to
-
- if (options.renderPug) {
- text = fm(text).body
- text = pug.render(text, {
- relative: relative,
- filename: options.filename,
- pretty: true,
- })
- }
- if (options.renderHandlebars) {
- const fmData = fm(text)
- let template = handlebars.compile(fmData.body)
- const context = {
- filename: options.filename
- }
- Object.assign(context, fmData.attributes)
- text = template(context)
- }
-
- return hljs.highlightAuto(text).value
-}
-
-export default highlightCode
diff --git a/lib/jade-filter-ignorefrontmatter.js b/lib/jade-filter-ignorefrontmatter.js
deleted file mode 100644
index 40a9e746..00000000
--- a/lib/jade-filter-ignorefrontmatter.js
+++ /dev/null
@@ -1,25 +0,0 @@
-import fm from 'front-matter'
-import path from 'path'
-
-// Simple 'fallback' for metalsmith-relative
-const relative = to => to
-
-// basedir for includes
-const basedir = path.join(__dirname, '../docs')
-
-const ignoreFrontMatter = (jadeLang) =>
- (text) => {
- // Remove front matter
- const file = fm(text)
-
- // Render
- const html = jadeLang.render(file.body, {
- pretty: true,
- relative,
- basedir,
- })
-
- return html
- }
-
-export default ignoreFrontMatter
diff --git a/lib/jade-filter-sample.js b/lib/jade-filter-sample.js
deleted file mode 100644
index 673e3045..00000000
--- a/lib/jade-filter-sample.js
+++ /dev/null
@@ -1,33 +0,0 @@
-import highlightCode from './jade-filter-highlightcode'
-
-// Simple 'fallback' for metalsmith-relative
-const relative = to => to
-
-const template = `.example!= sample
-.highlight
- pre.highlight__listing.hljs: code(class=lang)!= htmlSource`
-
-const sample = (jadeLang, jadeRuntime, jadeFilters) => {
- let sampleIndex = 0
-
- return (text, options) => {
- sampleIndex++
-
- const sampleNonPretty = jadeLang.render(text, {
- pretty: false,
- relative,
- })
-
- const htmlSource = highlightCode(jadeLang, jadeRuntime, jadeFilters)(text)
-
- return jadeLang.render(template, {
- pretty: true,
- index: sampleIndex,
- sample: sampleNonPretty,
- htmlSource,
- lang: options.lang,
- })
- }
-}
-
-export default sample
diff --git a/lib/marked-renderer.js b/lib/marked-renderer.js
deleted file mode 100644
index ca189c49..00000000
--- a/lib/marked-renderer.js
+++ /dev/null
@@ -1,141 +0,0 @@
-// See "https://github.com/chjj/marked" for possible hooks
-
-import marked from 'marked'
-
-const renderer = new marked.Renderer()
-
-/* eslint-disable no-underscore-dangle */
-renderer._slugify = function (text) {
- const lower = text.toLowerCase()
- return lower.replace(/[^\w]+/g, '-')
-}
-
-renderer._relative = function (link) {
- return this.options.relative ?
- this.options.relative(link) :
- link
-}
-
-renderer.heading = function (text, level) {
- const slug = this._slugify(text)
- const l = 1 + parseInt(level, 10)
- const classes = []
-
- if (l === 2) {
- classes.push('heading', 'heading--secondary')
- }
- if (l === 3) {
- classes.push('heading', 'heading--tertiary')
- }
-
- const joinedClasses = classes.join(' ')
-
- return `
- ${text}
- `
-}
-
-renderer.hr = function () {
- return '
'
-}
-
-renderer.image = function (href, title, text) {
- return `
`
-}
-
-renderer.link = function (href, title, text) {
- const isLocal = href.match(/^https?:\/\//i) === null
- const url = isLocal ? this._relative(href) : href
-
- return `
- ${text}
- `
-}
-
-renderer.blockquote = function (quote) {
- return `
- ${quote}
-
`
-}
-
-renderer.table = function (header, body) {
- return `
-
- ${header}
-
-
- ${body}
-
-
`
-}
-
-renderer.tablerow = function (content, flags) {
- const tagType = flags.header ? 'header' : 'row'
-
- return `
- ${content}
-
`
-}
-
-renderer.tablecell = function (content, flags) {
- // Attention: We ignore "flags.align"
-
- if (flags.header) {
- return ``
- }
-
- return `
-
- ${content}
-
- | `
-}
-
-renderer.paragraph = function (text) {
- return `${text}
`
-}
-
-renderer.list = function (body, ordered) {
- const type = ordered ? 'ol' : 'ul'
- const cls = ordered ? 'ordered' : 'unordered'
-
- return `<${type} class="list list--${cls}">
- ${body}
- ${type}>`
-}
-
-renderer.listitem = function (text) {
- return `
- ${text}
- `
-}
-
-renderer.code = function (code, lang) {
- const highlight = this.options.highlight
-
- let out = highlight(code, lang)
-
- if (!lang || !out) {
- out = code
-
- return `${out}
`
- }
-
- return `${out}
`
-}
-
-renderer.codespan = function (code) {
- return `${code}`
-}
-
-
-export default renderer
diff --git a/lib/metalsmith-sassdoc.js b/lib/metalsmith-sassdoc.js
index 73ec3a2f..141e6bea 100644
--- a/lib/metalsmith-sassdoc.js
+++ b/lib/metalsmith-sassdoc.js
@@ -20,26 +20,25 @@ function sassdocPlugin() {
const fileComments = sassdocParser.parse(sass)
_.forEach(fileComments, (comment) => {
- const nameSlug = slug(comment.context.name, { lower: true })
-
// Simplify interpolation from #{$var} to {var}
// eslint-disable-next-line no-param-reassign
comment.context.name = comment.context.name.replace(/#{\$(.*)}/, '{$1}')
+ const nameSlug = slug(comment.context.name, { lower: true })
+
data.comments[comment.context.name] = comment
// Add file to metalsmith so it will be processed in the
// normal handlebars build
// Content of the file will just be an include of
// the partial sassdoc-template, which renders the comment
- files[`api/${nameSlug}.hbs`] = { // eslint-disable-line no-param-reassign
+ files[`api/${nameSlug}.json`] = { // eslint-disable-line no-param-reassign
comment,
- // TODO: Remove this property as soon as SassDoc/scss-comment-parser#24
- // is merged
- draft: true,
+ slug: nameSlug,
title: comment.context.name,
- nav: `side/api/${nameSlug}`,
- contents: new Buffer('{{>sassdoc-template}}'),
+ nav: [`sassdoc/${nameSlug}`, `side/api/${nameSlug}`],
+ link: `/api/#${nameSlug}`,
+ contents: new Buffer(JSON.stringify(comment)),
}
})
})
diff --git a/package.json b/package.json
index 6629c4fe..13ead468 100644
--- a/package.json
+++ b/package.json
@@ -91,17 +91,11 @@
"babel-preset-es2015": "^6.1.18",
"babel-preset-react": "^6.11.1",
"babel-register": "^6.14.0",
- "babelify": "^7.3.0",
"better-npm-run": "0.0.11",
- "browser-resolve": "^1.11.2",
"browser-sync": "^2.16.0",
- "browserify": "^13.0.1",
- "browserify-incremental": "^3.1.1",
- "browserify-shim": "^3.8.11",
"cheet.js": "^0.3.3",
"clean-webpack-plugin": "^0.1.10",
"colors": "^1.1.2",
- "concat-stream": "^1.5.2",
"concurrently": "^2.2.0",
"css-loader": "^0.25.0",
"css-mqpacker": "^5.0.1",
@@ -112,9 +106,7 @@
"eslint-plugin-import": "^1.14.0",
"eslint-plugin-jsx-a11y": "^2.2.1",
"eslint-plugin-react": "^6.2.0",
- "event-stream": "^3.3.4",
"express": "^4.14.0",
- "extend": "^3.0.0",
"extract-text-webpack-plugin": "^1.0.1",
"front-matter": "^1.0.0",
"handlebars": "^4.0.5",
@@ -124,15 +116,10 @@
"jsdoc-babel": "^0.2.1",
"jsdoc-to-markdown": "^2.0.0-alpha.15",
"json-loader": "^0.5.4",
- "jstransformer-markdown-it": "^1.0.0",
- "jstransformer-marked": "^1.0.1",
"lodash": "^3.10.1",
"lunr": "^0.5.9",
- "marked": "git+https://github.com/sventschui/marked",
- "merge-stream": "^0.1.5",
"metalsmith": "^1.0.1",
"metalsmith-branch": "0.0.4",
- "metalsmith-collections": "git+https://github.com/axa-ch/metalsmith-collections",
"metalsmith-copy": "^0.2.1",
"metalsmith-define": "1.0.0",
"metalsmith-drafts": "0.0.1",
@@ -141,33 +128,21 @@
"metalsmith-in-place": "^1.4.4",
"metalsmith-layouts": "^1.6.5",
"metalsmith-lunr": "^0.2.1",
- "metalsmith-markdown": "git+https://github.com/axa-ch/metalsmith-markdown",
- "metalsmith-pug": "^1.1.0",
"metalsmith-relative": "^1.0.3",
"metalsmith-watch": "^1.0.3",
- "minimatch": "^3.0.3",
- "mkdirp": "^0.5.1",
"multimatch": "^2.1.0",
- "node-notifier": "^4.3.1",
"node-sass": "^3.10.0",
"object-fit-polyfill": "^0.1.0",
- "octonode": "^0.7.1",
"open": "0.0.5",
"postcss-loader": "^0.13.0",
"postcss-pseudoelements": "^3.0.0",
- "pug": "^2.0.0-beta6",
"react-hot-loader": "^3.0.0-beta.5",
- "run-sequence": "^0.3.6",
"sass-lint": "^1.9.1",
"sass-loader": "^4.0.2",
"sassdoc": "^2.1.20",
"strip-loader": "^0.1.2",
"style-loader": "^0.13.1",
"sync-files": "^1.0.3",
- "through2": "^2.0.1",
- "vinyl-buffer": "^1.0.0",
- "vinyl-named": "^1.1.0",
- "vinyl-source-stream": "^1.1.0",
"webpack": "^1.13.2",
"webpack-dev-middleware": "^1.6.1",
"webpack-hot-middleware": "^2.12.2",
diff --git a/scss/style/utilities/_fade.scss b/scss/style/utilities/_fade.scss
index 64a9ca35..4cf97094 100644
--- a/scss/style/utilities/_fade.scss
+++ b/scss/style/utilities/_fade.scss
@@ -1,53 +1,155 @@
@each $breakpoint in map-keys($grid-breakpoints) {
@include media-breakpoint-up($breakpoint) {
+
+ /// Utility that makes an element fade in with a nice transition,
+ /// from the specified breakpoint and above.
+ ///
+ /// @see .fade-in-delayed-#{$breakpoint}-up
+ /// @see .fade-out-#{$breakpoint}-up
+ /// @see .fade-out-delayed-#{$breakpoint}-up
+ /// @see .fade-in-#{$breakpoint}-down
+ /// @see .fade-in-delayed-#{$breakpoint}-down
+ /// @see .fade-out-#{$breakpoint}-down
+ /// @see .fade-out-delayed-#{$breakpoint}-down
+ /// @example html - HTML Usage
+ /// ...
.fade-in-#{$breakpoint}-up {
+ transition: opacity $transition-normal $transition-easeout, visibility 0s linear;
opacity: 1;
visibility: visible;
- transition: opacity $transition-normal $transition-easeout, visibility 0s linear;
}
+ /// Utility that makes an element fade in with a nice transition and a
+ /// delay that is the length of an usual transition,
+ /// from the specified breakpoint and above.
+ ///
+ /// @see .fade-in-#{$breakpoint}-up
+ /// @see .fade-out-#{$breakpoint}-up
+ /// @see .fade-out-delayed-#{$breakpoint}-up
+ /// @see .fade-in-#{$breakpoint}-down
+ /// @see .fade-in-delayed-#{$breakpoint}-down
+ /// @see .fade-out-#{$breakpoint}-down
+ /// @see .fade-out-delayed-#{$breakpoint}-down
+ /// @example html - HTML Usage
+ /// ...
.fade-in-delayed-#{$breakpoint}-up {
+ transition: opacity $transition-normal $transition-easeout $transition-delay-normal, visibility 0s linear $transition-delay-normal;
opacity: 1;
visibility: visible;
- transition: opacity $transition-normal $transition-easeout $transition-delay-normal, visibility 0s linear $transition-delay-normal;
}
+ /// Utility that makes an element fade out with a nice transition
+ /// from the specified breakpoint and above.
+ ///
+ /// @see .fade-in-#{$breakpoint}-up
+ /// @see .fade-in-delayed-#{$breakpoint}-up
+ /// @see .fade-out-delayed-#{$breakpoint}-up
+ /// @see .fade-in-#{$breakpoint}-down
+ /// @see .fade-in-delayed-#{$breakpoint}-down
+ /// @see .fade-out-#{$breakpoint}-down
+ /// @see .fade-out-delayed-#{$breakpoint}-down
+ /// @example html - HTML Usage
+ /// ...
.fade-out-#{$breakpoint}-up {
+ transition: opacity $transition-normal $transition-easeout, visibility 0s linear $transition-delay-normal;
opacity: 0;
visibility: hidden;
- transition: opacity $transition-normal $transition-easeout, visibility 0s linear $transition-delay-normal;
}
+ /// Utility that makes an element fade out with a nice transition and a
+ /// delay that is the length of an usual transition,
+ /// from the specified breakpoint and above.
+ ///
+ /// @see .fade-in-#{$breakpoint}-up
+ /// @see .fade-in-delayed-#{$breakpoint}-up
+ /// @see .fade-out-#{$breakpoint}-up
+ /// @see .fade-in-#{$breakpoint}-down
+ /// @see .fade-in-delayed-#{$breakpoint}-down
+ /// @see .fade-out-#{$breakpoint}-down
+ /// @see .fade-out-delayed-#{$breakpoint}-down
+ /// @example html - HTML Usage
+ /// ...
.fade-out-delayed-#{$breakpoint}-up {
+ transition: opacity $transition-normal $transition-easeout $transition-delay-normal, visibility 0s linear ($transition-delay-normal + $transition-normal);
opacity: 0;
visibility: hidden;
- transition: opacity $transition-normal $transition-easeout $transition-delay-normal, visibility 0s linear ($transition-delay-normal + $transition-normal);
}
}
@include media-breakpoint-down($breakpoint) {
+
+ /// Utility that makes an element fade in with a nice transition,
+ /// from the specified breakpoint and below.
+ ///
+ /// @see .fade-in-#{$breakpoint}-up
+ /// @see .fade-in-delayed-#{$breakpoint}-up
+ /// @see .fade-out-#{$breakpoint}-up
+ /// @see .fade-out-delayed-#{$breakpoint}-up
+ /// @see .fade-in-delayed-#{$breakpoint}-down
+ /// @see .fade-out-#{$breakpoint}-down
+ /// @see .fade-out-delayed-#{$breakpoint}-down
+ /// @example html - HTML Usage
+ /// ...
.fade-in-#{$breakpoint}-down {
+ transition: opacity $transition-normal $transition-easeout, visibility 0s linear;
opacity: 1;
visibility: visible;
- transition: opacity $transition-normal $transition-easeout, visibility 0s linear;
}
+ /// Utility that makes an element fade in with a nice transition and a
+ /// delay that is the length of an usual transition,
+ /// from the specified breakpoint and below.
+ ///
+ /// @see .fade-in-#{$breakpoint}-up
+ /// @see .fade-in-delayed-#{$breakpoint}-up
+ /// @see .fade-out-#{$breakpoint}-up
+ /// @see .fade-out-delayed-#{$breakpoint}-up
+ /// @see .fade-in-#{$breakpoint}-down
+ /// @see .fade-out-#{$breakpoint}-down
+ /// @see .fade-out-delayed-#{$breakpoint}-down
+ /// @example html - HTML Usage
+ /// ...
.fade-in-delayed-#{$breakpoint}-down {
+ transition: opacity $transition-normal $transition-easeout $transition-delay-normal, visibility 0s linear $transition-delay-normal;
opacity: 1;
visibility: visible;
- transition: opacity $transition-normal $transition-easeout $transition-delay-normal, visibility 0s linear $transition-delay-normal;
}
+ /// Utility that makes an element fade out with a nice transition
+ /// from the specified breakpoint and below.
+ ///
+ /// @see .fade-in-#{$breakpoint}-up
+ /// @see .fade-in-delayed-#{$breakpoint}-up
+ /// @see .fade-out-#{$breakpoint}-up
+ /// @see .fade-out-delayed-#{$breakpoint}-up
+ /// @see .fade-in-#{$breakpoint}-down
+ /// @see .fade-in-delayed-#{$breakpoint}-down
+ /// @see .fade-out-delayed-#{$breakpoint}-down
+ /// @example html - HTML Usage
+ /// ...
.fade-out-#{$breakpoint}-down {
+ transition: opacity $transition-normal $transition-easeout, visibility 0s linear $transition-delay-normal;
opacity: 0;
visibility: hidden;
- transition: opacity $transition-normal $transition-easeout, visibility 0s linear $transition-delay-normal;
}
+ /// Utility that makes an element fade out with a nice transition and a
+ /// delay that is the length of an usual transition,
+ /// from the specified breakpoint and below.
+ ///
+ /// @see .fade-in-#{$breakpoint}-up
+ /// @see .fade-in-delayed-#{$breakpoint}-up
+ /// @see .fade-out-#{$breakpoint}-up
+ /// @see .fade-out-delayed-#{$breakpoint}-up
+ /// @see .fade-in-#{$breakpoint}-down
+ /// @see .fade-in-delayed-#{$breakpoint}-down
+ /// @see .fade-out-#{$breakpoint}-down
+ /// @example html - HTML Usage
+ /// ...
.fade-out-delayed-#{$breakpoint}-down {
+ transition: opacity $transition-normal $transition-easeout $transition-delay-normal, visibility 0s linear ($transition-delay-normal + $transition-normal);
opacity: 0;
visibility: hidden;
- transition: opacity $transition-normal $transition-easeout $transition-delay-normal, visibility 0s linear ($transition-delay-normal + $transition-normal);
}
}
}
diff --git a/webpack/browsersync-dev-server.js b/webpack/browsersync-dev-server.js
index b369a08f..b3cb8885 100644
--- a/webpack/browsersync-dev-server.js
+++ b/webpack/browsersync-dev-server.js
@@ -23,11 +23,14 @@ const docsPath = path.resolve(__dirname, '..', 'dist', 'docs')
* Run Browsersync and use middleware for Hot Module Replacement
*/
browserSync({
+ logFileChanges: false,
server: {
baseDir: [docsPath],
middleware: [
webpackDevMiddleware(bundler, {
+ quiet: true,
+ noInfo: true,
// IMPORTANT: dev middleware can't access config, so we should
// provide publicPath by ourselves
publicPath: webpackConfig.output.publicPath,