diff --git a/.gitignore b/.gitignore index 5bd3ef6..3444632 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,8 @@ -dist +index.cjs* +index.mjs* node_modules package-lock.json +yarn.lock *.log* *.result.css .* diff --git a/.rollup.js b/.rollup.js index 3f3b227..f47e667 100644 --- a/.rollup.js +++ b/.rollup.js @@ -1,11 +1,19 @@ -import pkg from './package.json' +import babel from 'rollup-plugin-babel' export default { - ...pkg.rollup, - plugins: [patchBabelPluginSyntaxImportMeta(), ...pkg.rollup.plugins.map(plugin => require(plugin)())], - onwarn(warning, warn) { - if (warning.code !== 'UNRESOLVED_IMPORT') warn(warning) - } + input: 'src/index.js', + output: [ + { file: 'index.cjs', format: 'cjs', exports: 'default', sourcemap: true, strict: false }, + { file: 'index.mjs', format: 'esm', sourcemap: true, strict: false } + ], + plugins: [ + patchBabelPluginSyntaxImportMeta(), + babel({ + presets: [ + ['@babel/env', { modules: false, targets: { node: 8 } }] + ] + }) + ] } function patchBabelPluginSyntaxImportMeta () { diff --git a/.tape.js b/.tape.js index b848046..500a045 100644 --- a/.tape.js +++ b/.tape.js @@ -71,13 +71,13 @@ module.exports = { source: 'import-normalize.css', expect: 'import-normalize.expect.css', plugin: (() => { - const postcss = require('postcss'); - const postcssImport = require('postcss-import'); - const postcssNormalize = require('.'); + const postcss = require('postcss') + const postcssImport = require('postcss-import') + const postcssNormalize = require('.') - const plugin = postcss([ postcssImport(postcssNormalize().postcssImport()) ]); + const plugin = postcss([ postcssImport(postcssNormalize().postcssImport()) ]) - return plugin; + return plugin })() } -}; +} diff --git a/.travis.yml b/.travis.yml index c3e7765..0f0fc90 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,7 +8,4 @@ os: - osx node_js: - - 10 - -install: - - npm install --ignore-scripts + - 12 diff --git a/README.md b/README.md index fd97477..d3d587d 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # PostCSS Normalize [PostCSS][postcss] [npm version][npm-url] -[build status][cli-url] +[build status][cli-url] [support chat][git-url] [PostCSS Normalize] lets you use the parts of [normalize.css] or [sanitize.css] @@ -189,7 +189,7 @@ configure either with the following combinations: @import "sanitize/*"; /* also, @import "sanitize.css/*" (sanitize + all additions) */ ``` -[cli-img]: https://img.shields.io/travis/csstools/postcss-normalize/master.svg +[cli-img]: https://img.shields.io/travis/csstools/postcss-normalize/main.svg [cli-url]: https://travis-ci.org/csstools/postcss-normalize [git-img]: https://img.shields.io/badge/support-chat-blue.svg [git-url]: https://gitter.im/postcss/postcss diff --git a/package.json b/package.json index 8f57a03..eb351df 100644 --- a/package.json +++ b/package.json @@ -7,46 +7,46 @@ "repository": "csstools/postcss-normalize", "homepage": "https://github.com/csstools/postcss-normalize#readme", "bugs": "https://github.com/csstools/postcss-normalize/issues", - "main": "dist/index.cjs.js", - "module": "dist/index.esm.mjs", + "main": "index.cjs", + "module": "index.mjs", "files": [ - "dist" + "index.cjs", + "index.cjs.map", + "index.mjs", + "index.mjs.map" ], "scripts": { - "build": "npx rollup -c .rollup.js", - "build:watch": "npx rollup -c .rollup.js --watch", - "lint": "npx eslint --cache src", - "lint:fix": "npx eslint --cache --fix", - "pretest": "npm install && npm run build", - "test": "npm run lint && npm run tape", - "tape": "npx postcss-tape" + "prepublishOnly": "npm test", + "build": "rollup --config .rollup.js --silent", + "lint": "eslint --cache .gitignore --quiet", + "test": "npm run lint && npm run build && npm run tape", + "tape": "postcss-tape" }, "engines": { - "node": ">=10.0.0" + "node": ">= 12" + }, + "peerDependencies": { + "browserslist": ">= 4", + "postcss": ">= 8" }, "dependencies": { - "@csstools/normalize.css": "10.1.0", - "postcss-browser-comments": "^3.0.0", - "sanitize.css": "11.0.0" + "@csstools/normalize.css": "*", + "postcss-browser-comments": "^4", + "sanitize.css": "*" }, "devDependencies": { - "@babel/core": "^7.9.0", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/preset-env": "^7.9.5", - "babel-eslint": "^10.1.0", - "browserslist": "^4.16.3", - "eslint": "^6.8.0", - "postcss": "^8.2.8", - "postcss-import": "^12.0.1", + "@babel/core": "^7.13.16", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/preset-env": "^7.13.15", + "browserslist": "^4.16.5", + "eslint": "^7.25.0", + "postcss": "^8.2.13", + "postcss-import": "^14.0.1", "postcss-tape": "^6.0.1", "pre-commit": "^1.2.2", - "rollup": "^2.6.0", + "rollup": "^2.46.0", "rollup-plugin-babel": "^4.4.0" }, - "peerDependencies": { - "browserslist": "^4.16.3", - "postcss": "^8.2.8" - }, "babel": { "plugins": [ "@babel/plugin-syntax-import-meta" @@ -61,28 +61,23 @@ ] }, "eslintConfig": { - "env": { - "es6": true, - "node": true - }, "extends": "eslint:recommended", - "parser": "babel-eslint" - }, - "rollup": { - "input": "src/index.js", - "plugins": [ - "rollup-plugin-babel" + "ignorePatterns": [ + ".tape.js" ], - "output": [ - { - "file": "dist/index.cjs.js", - "format": "cjs" - }, - { - "file": "dist/index.esm.js", - "format": "esm" + "parserOptions": { + "ecmaVersion": 12, + "sourceType": "module", + "ecmaFeatures": { + "modules": true } - ] + }, + "rules": { + "semi": [ + "error", + "never" + ] + } }, "keywords": [ "postcss", diff --git a/src/index.js b/src/index.js index 6a0ec6f..e48b4b4 100644 --- a/src/index.js +++ b/src/index.js @@ -1,14 +1,14 @@ -import { create } from './lib/util'; -import postcssBrowserComments from 'postcss-browser-comments'; -import postcssImportNormalize from './lib/postcssImportNormalize'; -import postcssNormalize from './lib/postcssNormalize'; +import { create } from './lib/util' +import postcssBrowserComments from 'postcss-browser-comments' +import postcssImportNormalize from './lib/postcssImportNormalize' +import postcssNormalize from './lib/postcssNormalize' const plugin = opts => { - opts = create(opts); + opts = create(opts) - const commentsTransformer = postcssBrowserComments(opts).Once; - const normalizeTransformer = postcssNormalize(commentsTransformer, opts); - const postcssImportConfig = postcssImportNormalize(commentsTransformer, opts); + const commentsTransformer = postcssBrowserComments(opts).Once + const normalizeTransformer = postcssNormalize(commentsTransformer, opts) + const postcssImportConfig = postcssImportNormalize(commentsTransformer, opts) return { postcssPlugin: 'postcss-normalize', @@ -19,6 +19,6 @@ const plugin = opts => { } } -plugin.postcss = true; +plugin.postcss = true -export default plugin; +export default plugin diff --git a/src/lib/cssMap.js b/src/lib/cssMap.js index c355f99..6508e56 100644 --- a/src/lib/cssMap.js +++ b/src/lib/cssMap.js @@ -1,20 +1,20 @@ -import { create } from './util'; -import Module from 'module'; -import path from 'path'; -import { URL } from 'url'; +import { create } from './util' +import Module from 'module' +import path from 'path' +import { URL } from 'url' // get esm-compatible script metadata -const currentURL = import.meta.url; -const currentFilename = new URL(currentURL).pathname; -const currentDirname = path.dirname(currentFilename); +const currentURL = import.meta.url +const currentFilename = new URL(currentURL).pathname +const currentDirname = path.dirname(currentFilename) // get resolved filenames for css libraries -const normalizeCSS = resolve('@csstools/normalize.css'); -const normalizeOpinionatedCSS = resolve('@csstools/normalize.css/opinionated.css'); -const sanitizeCSS = resolve('sanitize.css'); -const sanitizeFormsCSS = resolve('sanitize.css/forms.css'); -const sanitizePageCSS = resolve('sanitize.css/page.css'); -const sanitizeTypographyCSS = resolve('sanitize.css/typography.css'); +const normalizeCSS = resolve('@csstools/normalize.css') +const normalizeOpinionatedCSS = resolve('@csstools/normalize.css/opinionated.css') +const sanitizeCSS = resolve('sanitize.css') +const sanitizeFormsCSS = resolve('sanitize.css/forms.css') +const sanitizePageCSS = resolve('sanitize.css/page.css') +const sanitizeTypographyCSS = resolve('sanitize.css/typography.css') // export a hashmap of css library filenames export const parsableFilenames = create({ @@ -24,7 +24,7 @@ export const parsableFilenames = create({ [sanitizeFormsCSS]: true, [sanitizePageCSS]: true, [sanitizeTypographyCSS]: true -}); +}) // export a hashmap of css library filenames by id export const resolvedFilenamesById = create({ @@ -36,7 +36,7 @@ export const resolvedFilenamesById = create({ 'sanitize/page': [sanitizeCSS, sanitizePageCSS], 'sanitize/typography': [sanitizeCSS, sanitizeTypographyCSS], 'sanitize/*': [sanitizeCSS, sanitizeFormsCSS, sanitizePageCSS, sanitizeTypographyCSS] -}); +}) // get the resolved filename of a package/module function resolve (id) { @@ -44,5 +44,5 @@ function resolve (id) { id: currentFilename, filename: currentFilename, paths: Module._nodeModulePaths(currentDirname) - }); + }) } diff --git a/src/lib/parse.js b/src/lib/parse.js index 57beeeb..1b39d5e 100644 --- a/src/lib/parse.js +++ b/src/lib/parse.js @@ -1,8 +1,8 @@ -import { create } from './util'; -import readFile from './readFile'; -import postcss from 'postcss'; +import { create } from './util' +import readFile from './readFile' +import postcss from 'postcss' -const cache = create(null); +const cache = create(null) export default (filename, transformer) => readFile(filename).then( // cache the parsed css root @@ -18,4 +18,4 @@ export default (filename, transformer) => readFile(filename).then( // resolve the cloned root () => clone ) -); +) diff --git a/src/lib/postcssImportNormalize.js b/src/lib/postcssImportNormalize.js index df605e6..f581cad 100644 --- a/src/lib/postcssImportNormalize.js +++ b/src/lib/postcssImportNormalize.js @@ -1,10 +1,10 @@ -import { create } from './util'; -import { parsableFilenames, resolvedFilenamesById } from './cssMap'; -import parse from './parse'; -import readFile from './readFile'; +import { create } from './util' +import { parsableFilenames, resolvedFilenamesById } from './cssMap' +import parse from './parse' +import readFile from './readFile' export default commentsTransformer => opts => { - opts = create(opts); + opts = create(opts) // return an postcss-import configuration return create({ @@ -18,11 +18,11 @@ export default commentsTransformer => opts => { // otherwise, use the override loader ? opts.load.call(null, filename, importOptions) // otherwise, return the (conservatively cached) contents of the file - : readFile(filename); + : readFile(filename) }, resolve (id, basedir, importOptions) { // get the css id by removing css extensions - const cssId = id.replace(cssExtRegExp, ''); + const cssId = id.replace(cssExtRegExp, '') return cssId in resolvedFilenamesById // return the known resolved path for the css id @@ -31,9 +31,9 @@ export default commentsTransformer => opts => { // otherwise, use the override resolver ? opts.resolve.call(null, id, basedir, importOptions) // otherwise, return the id to be resolved by postcss-import - : id; + : id } - }); -}; + }) +} -const cssExtRegExp = /\.css\b/g; +const cssExtRegExp = /\.css\b/g diff --git a/src/lib/postcssNormalize.js b/src/lib/postcssNormalize.js index dab44ae..6396f7d 100644 --- a/src/lib/postcssNormalize.js +++ b/src/lib/postcssNormalize.js @@ -1,23 +1,23 @@ -import { resolvedFilenamesById } from './cssMap'; -import parse from './parse'; +import { resolvedFilenamesById } from './cssMap' +import parse from './parse' const postcssPlugin = (commentsTransformer, opts) => root => { - const promises = []; - const insertedFilenames = {}; + const promises = [] + const insertedFilenames = {} // use @import insertion point root.walkAtRules( importRegExp, atrule => { // get name as a fallback value for the library (e.g. @import-normalize is like @import "normalize.css") - const name = atrule.name.match(importRegExp)[1]; + const name = atrule.name.match(importRegExp)[1] // get url from "library", 'library', url("library"), url('library'), or the fallback value - const url = (atrule.params.match(paramsRegExp) || []).slice(1).find(part => part) || name; + const url = (atrule.params.match(paramsRegExp) || []).slice(1).find(part => part) || name if (url) { // get the css id by removing css extensions - const cssId = url.replace(cssExtRegExp, ''); + const cssId = url.replace(cssExtRegExp, '') if (cssId in resolvedFilenamesById) { // promise the library import is replaced with its contents @@ -36,17 +36,17 @@ const postcssPlugin = (commentsTransformer, opts) => root => { const nodes = roots.reduce( (all, root) => all.concat(root.nodes), [] - ); + ) // replace the import with all the library nodes - atrule.replaceWith(...nodes); + atrule.replaceWith(...nodes) } }) - ); + ) } } } - ); + ) return Promise.all([].concat( // promise the library imports are replaced with their contents @@ -61,14 +61,14 @@ const postcssPlugin = (commentsTransformer, opts) => root => { if (id === true) { all.push(...resolvedFilenamesById.normalize) } else if (typeof id === 'string') { - const cssId = id.replace(cssExtRegExp, ''); + const cssId = id.replace(cssExtRegExp, '') if (cssId in resolvedFilenamesById) { - all.push(...resolvedFilenamesById[cssId]); + all.push(...resolvedFilenamesById[cssId]) } } - return all; + return all }, [] ).filter( @@ -84,17 +84,17 @@ const postcssPlugin = (commentsTransformer, opts) => root => { const nodes = roots.reduce( (all, root) => all.concat(root.nodes), [] - ); + ) // prepend the stylesheet with all the library nodes - root.prepend(...nodes); + root.prepend(...nodes) } }) - )); -}; + )) +} -const cssExtRegExp = /\.css\b/g; -const importRegExp = /^import(?:-(normalize|sanitize))?$/; -const paramsRegExp = /^\s*(?:url\((?:"(.+)"|'(.+)')\)|"(.+)"|'(.+)')[\W\w]*$/; +const cssExtRegExp = /\.css\b/g +const importRegExp = /^import(?:-(normalize|sanitize))?$/ +const paramsRegExp = /^\s*(?:url\((?:"(.+)"|'(.+)')\)|"(.+)"|'(.+)')[\W\w]*$/ -export default postcssPlugin; +export default postcssPlugin diff --git a/src/lib/readFile.js b/src/lib/readFile.js index 9a6e66d..0936e5c 100644 --- a/src/lib/readFile.js +++ b/src/lib/readFile.js @@ -1,13 +1,13 @@ -import { create } from './util'; -import path from 'path'; -import fs from 'fs'; +import { create } from './util' +import path from 'path' +import fs from 'fs' -const cache = create(); +const cache = create() export default async function readFile (filename) { - filename = path.resolve(filename); + filename = path.resolve(filename) - cache[filename] = cache[filename] || create(); + cache[filename] = cache[filename] || create() return new Promise( (resolve, reject) => fs.stat( @@ -26,5 +26,5 @@ export default async function readFile (filename) { ) ) ) - ); + ) } diff --git a/src/lib/util.js b/src/lib/util.js index 6a124ad..338402e 100644 --- a/src/lib/util.js +++ b/src/lib/util.js @@ -1,2 +1,2 @@ -export const assign = (...objects) => Object.assign(...objects); -export const create = (...objects) => assign(Object.create(null), ...objects); +export const assign = (...objects) => Object.assign(...objects) +export const create = (...objects) => assign(Object.create(null), ...objects) diff --git a/test/basic-normalize.expect.css b/test/basic-normalize.expect.css index 8356120..037e383 100644 --- a/test/basic-normalize.expect.css +++ b/test/basic-normalize.expect.css @@ -54,13 +54,15 @@ ul ul { /** * 1. Add the correct box sizing in Firefox. - * 2. Show the overflow in Edge 18- and IE. + * 2. Correct the inheritance of border color in Firefox. + * 3. Show the overflow in Edge 18- and IE. */ hr { box-sizing: content-box; /* 1 */ + color: inherit; /* 2 */ height: 0; /* 1 */ - overflow: visible; /* 2 */ + overflow: visible; /* 3 */ } /** @@ -133,6 +135,19 @@ svg:not(:root) { overflow: hidden; } +/* Tabular data + * ========================================================================== */ + +/** + * 1. Correct table border color inheritance in all Chrome, Edge, and Safari. + * 2. Remove text indentation from table contents in Chrome, Edge, and Safari. + */ + +table { + border-color: inherit; /* 1 */ + text-indent: 0; /* 2 */ +} + /* Forms * ========================================================================== */ diff --git a/test/basic-sanitize.expect.css b/test/basic-sanitize.expect.css index b5deaea..1b55be3 100644 --- a/test/basic-sanitize.expect.css +++ b/test/basic-sanitize.expect.css @@ -91,13 +91,15 @@ ul ul { } /** - * 1. Add the correct sizing in Firefox. - * 2. Show the overflow in Edge 18- and IE. + * 1. Correct the inheritance of border color in Firefox. + * 2. Add the correct box sizing in Firefox. + * 3. Show the overflow in Edge 18- and IE. */ hr { - height: 0; /* 1 */ - overflow: visible; /* 2 */ + color: inherit; /* 1 */ + height: 0; /* 2 */ + overflow: visible; /* 3 */ } /** @@ -118,14 +120,25 @@ nav ul { padding: 0; } +/** + * Prevent VoiceOver from ignoring list semantics in Safari (opinionated). + */ + +nav li::before { + content: "\200B"; +} + /** * 1. Correct the inheritance and scaling of font size in all browsers. * 2. Correct the odd `em` font sizing in all browsers. + * 3. Prevent overflow of the container in all browsers (opinionated). */ pre { font-family: monospace, monospace; /* 1 */ font-size: 1em; /* 2 */ + overflow: auto; /* 3 */ + -ms-overflow-style: scrollbar; /* 3 */ } /* Text-level semantics @@ -213,11 +226,15 @@ svg:not(:root) { * ========================================================================== */ /** - * Collapse border spacing in all browsers (opinionated). + * 1. Collapse border spacing in all browsers (opinionated). + * 2. Correct table border color inheritance in all Chrome, Edge, and Safari. + * 3. Remove text indentation from table contents in Chrome, Edge, and Safari. */ table { - border-collapse: collapse; + border-collapse: collapse; /* 1 */ + border-color: inherit; /* 2 */ + text-indent: 0; /* 3 */ } /* Forms @@ -312,6 +329,7 @@ textarea { margin: 0; /* 1 */ overflow: auto; /* 2 */ resize: vertical; /* 3 */ + resize: block; /* 3 */ } /** @@ -445,9 +463,7 @@ template { * ========================================================================== */ /* - * 1. Remove the tapping delay in IE 10. - * 2. Remove the tapping delay on clickable elements - in all browsers (opinionated). + * Remove the tapping delay in IE 10. */ a, @@ -459,8 +475,7 @@ select, summary, textarea, [tabindex] { - -ms-touch-action: manipulation; /* 1 */ - touch-action: manipulation; /* 2 */ + -ms-touch-action: manipulation; } /* Accessibility diff --git a/test/duplicates.allow.expect.css b/test/duplicates.allow.expect.css index e11ceb5..654cab1 100644 --- a/test/duplicates.allow.expect.css +++ b/test/duplicates.allow.expect.css @@ -43,12 +43,14 @@ ul ul { } /** * 1. Add the correct box sizing in Firefox. - * 2. Show the overflow in Edge 18- and IE. + * 2. Correct the inheritance of border color in Firefox. + * 3. Show the overflow in Edge 18- and IE. */ hr { box-sizing: content-box; /* 1 */ + color: inherit; /* 2 */ height: 0; /* 1 */ - overflow: visible; /* 2 */ + overflow: visible; /* 3 */ } /** * Add the correct display in IE. @@ -104,6 +106,16 @@ small { svg:not(:root) { overflow: hidden; } +/* Tabular data + * ========================================================================== */ +/** + * 1. Correct table border color inheritance in all Chrome, Edge, and Safari. + * 2. Remove text indentation from table contents in Chrome, Edge, and Safari. + */ +table { + border-color: inherit; /* 1 */ + text-indent: 0; /* 2 */ +} /* Forms * ========================================================================== */ /** @@ -323,12 +335,14 @@ ul ul { } /** * 1. Add the correct box sizing in Firefox. - * 2. Show the overflow in Edge 18- and IE. + * 2. Correct the inheritance of border color in Firefox. + * 3. Show the overflow in Edge 18- and IE. */ hr { box-sizing: content-box; /* 1 */ + color: inherit; /* 2 */ height: 0; /* 1 */ - overflow: visible; /* 2 */ + overflow: visible; /* 3 */ } /** * Add the correct display in IE. @@ -384,6 +398,16 @@ small { svg:not(:root) { overflow: hidden; } +/* Tabular data + * ========================================================================== */ +/** + * 1. Correct table border color inheritance in all Chrome, Edge, and Safari. + * 2. Remove text indentation from table contents in Chrome, Edge, and Safari. + */ +table { + border-color: inherit; /* 1 */ + text-indent: 0; /* 2 */ +} /* Forms * ========================================================================== */ /** diff --git a/test/duplicates.expect.css b/test/duplicates.expect.css index e7015bf..bdf2672 100644 --- a/test/duplicates.expect.css +++ b/test/duplicates.expect.css @@ -43,12 +43,14 @@ ul ul { } /** * 1. Add the correct box sizing in Firefox. - * 2. Show the overflow in Edge 18- and IE. + * 2. Correct the inheritance of border color in Firefox. + * 3. Show the overflow in Edge 18- and IE. */ hr { box-sizing: content-box; /* 1 */ + color: inherit; /* 2 */ height: 0; /* 1 */ - overflow: visible; /* 2 */ + overflow: visible; /* 3 */ } /** * Add the correct display in IE. @@ -104,6 +106,16 @@ small { svg:not(:root) { overflow: hidden; } +/* Tabular data + * ========================================================================== */ +/** + * 1. Correct table border color inheritance in all Chrome, Edge, and Safari. + * 2. Remove text indentation from table contents in Chrome, Edge, and Safari. + */ +table { + border-color: inherit; /* 1 */ + text-indent: 0; /* 2 */ +} /* Forms * ========================================================================== */ /** diff --git a/test/force-normalize.expect.css b/test/force-normalize.expect.css index 28a2d0a..441a7af 100644 --- a/test/force-normalize.expect.css +++ b/test/force-normalize.expect.css @@ -36,12 +36,14 @@ ul ul { margin: 0; }/** * 1. Add the correct box sizing in Firefox. - * 2. Show the overflow in Edge 18- and IE. + * 2. Correct the inheritance of border color in Firefox. + * 3. Show the overflow in Edge 18- and IE. */ hr { box-sizing: content-box; /* 1 */ + color: inherit; /* 2 */ height: 0; /* 1 */ - overflow: visible; /* 2 */ + overflow: visible; /* 3 */ }/** * Add the correct display in IE. */ @@ -87,6 +89,14 @@ small { */ svg:not(:root) { overflow: hidden; +}/* Tabular data + * ========================================================================== *//** + * 1. Correct table border color inheritance in all Chrome, Edge, and Safari. + * 2. Remove text indentation from table contents in Chrome, Edge, and Safari. + */ +table { + border-color: inherit; /* 1 */ + text-indent: 0; /* 2 */ }/* Forms * ========================================================================== *//** * Remove the margin on controls in Safari. diff --git a/test/force-sanitize-all.expect.css b/test/force-sanitize-all.expect.css index 6478cc5..07e7678 100644 --- a/test/force-sanitize-all.expect.css +++ b/test/force-sanitize-all.expect.css @@ -64,12 +64,14 @@ ul ol, ul ul { margin: 0; }/** - * 1. Add the correct sizing in Firefox. - * 2. Show the overflow in Edge 18- and IE. + * 1. Correct the inheritance of border color in Firefox. + * 2. Add the correct box sizing in Firefox. + * 3. Show the overflow in Edge 18- and IE. */ hr { - height: 0; /* 1 */ - overflow: visible; /* 2 */ + color: inherit; /* 1 */ + height: 0; /* 2 */ + overflow: visible; /* 3 */ }/** * Add the correct display in IE. */ @@ -82,13 +84,21 @@ nav ol, nav ul { list-style: none; padding: 0; +}/** + * Prevent VoiceOver from ignoring list semantics in Safari (opinionated). + */ +nav li::before { + content: "\200B"; }/** * 1. Correct the inheritance and scaling of font size in all browsers. * 2. Correct the odd `em` font sizing in all browsers. + * 3. Prevent overflow of the container in all browsers (opinionated). */ pre { font-family: monospace, monospace; /* 1 */ font-size: 1em; /* 2 */ + overflow: auto; /* 3 */ + -ms-overflow-style: scrollbar; /* 3 */ }/* Text-level semantics * ========================================================================== *//** * Add the correct text decoration in Edge 18-, IE, and Safari. @@ -144,10 +154,14 @@ svg:not(:root) { overflow: hidden; }/* Tabular data * ========================================================================== *//** - * Collapse border spacing in all browsers (opinionated). + * 1. Collapse border spacing in all browsers (opinionated). + * 2. Correct table border color inheritance in all Chrome, Edge, and Safari. + * 3. Remove text indentation from table contents in Chrome, Edge, and Safari. */ table { - border-collapse: collapse; + border-collapse: collapse; /* 1 */ + border-color: inherit; /* 2 */ + text-indent: 0; /* 3 */ }/* Forms * ========================================================================== *//** * Remove the margin on controls in Safari. @@ -213,6 +227,7 @@ textarea { margin: 0; /* 1 */ overflow: auto; /* 2 */ resize: vertical; /* 3 */ + resize: block; /* 3 */ }/** * 1. Correct the odd appearance in Chrome, Edge, and Safari. * 2. Correct the outline style in Safari. @@ -301,9 +316,7 @@ template { display: none; }/* User interaction * ========================================================================== *//* - * 1. Remove the tapping delay in IE 10. - * 2. Remove the tapping delay on clickable elements - in all browsers (opinionated). + * Remove the tapping delay in IE 10. */ a, area, @@ -314,8 +327,7 @@ select, summary, textarea, [tabindex] { - -ms-touch-action: manipulation; /* 1 */ - touch-action: manipulation; /* 2 */ + -ms-touch-action: manipulation; }/* Accessibility * ========================================================================== *//** * Change the cursor on busy elements in all browsers (opinionated). @@ -372,6 +384,13 @@ select { */ select:not([multiple]):not([size]) { background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='4'%3E%3Cpath d='M4 0h6L7 4'/%3E%3C/svg%3E"); +}/** + * Remove the border and padding in all browsers (opinionated). + */ +[type="color"], +[type="range"] { + border-width: 0; + padding: 0; }/** * Change the inconsistent appearance in IE (opinionated). */ @@ -392,16 +411,6 @@ html { html { padding: 1em calc(50% - 16em); } -}/** - * Restrict sizing to the page width in all browsers (opinionated). - */ -iframe, -img, -input, -select, -textarea { - height: auto; - max-width: 100%; }/** * Use the default user interface font in all browsers (opinionated). */ diff --git a/test/force-sanitize.expect.css b/test/force-sanitize.expect.css index bd62638..f1152dd 100644 --- a/test/force-sanitize.expect.css +++ b/test/force-sanitize.expect.css @@ -64,12 +64,14 @@ ul ol, ul ul { margin: 0; }/** - * 1. Add the correct sizing in Firefox. - * 2. Show the overflow in Edge 18- and IE. + * 1. Correct the inheritance of border color in Firefox. + * 2. Add the correct box sizing in Firefox. + * 3. Show the overflow in Edge 18- and IE. */ hr { - height: 0; /* 1 */ - overflow: visible; /* 2 */ + color: inherit; /* 1 */ + height: 0; /* 2 */ + overflow: visible; /* 3 */ }/** * Add the correct display in IE. */ @@ -82,13 +84,21 @@ nav ol, nav ul { list-style: none; padding: 0; +}/** + * Prevent VoiceOver from ignoring list semantics in Safari (opinionated). + */ +nav li::before { + content: "\200B"; }/** * 1. Correct the inheritance and scaling of font size in all browsers. * 2. Correct the odd `em` font sizing in all browsers. + * 3. Prevent overflow of the container in all browsers (opinionated). */ pre { font-family: monospace, monospace; /* 1 */ font-size: 1em; /* 2 */ + overflow: auto; /* 3 */ + -ms-overflow-style: scrollbar; /* 3 */ }/* Text-level semantics * ========================================================================== *//** * Add the correct text decoration in Edge 18-, IE, and Safari. @@ -144,10 +154,14 @@ svg:not(:root) { overflow: hidden; }/* Tabular data * ========================================================================== *//** - * Collapse border spacing in all browsers (opinionated). + * 1. Collapse border spacing in all browsers (opinionated). + * 2. Correct table border color inheritance in all Chrome, Edge, and Safari. + * 3. Remove text indentation from table contents in Chrome, Edge, and Safari. */ table { - border-collapse: collapse; + border-collapse: collapse; /* 1 */ + border-color: inherit; /* 2 */ + text-indent: 0; /* 3 */ }/* Forms * ========================================================================== *//** * Remove the margin on controls in Safari. @@ -213,6 +227,7 @@ textarea { margin: 0; /* 1 */ overflow: auto; /* 2 */ resize: vertical; /* 3 */ + resize: block; /* 3 */ }/** * 1. Correct the odd appearance in Chrome, Edge, and Safari. * 2. Correct the outline style in Safari. @@ -301,9 +316,7 @@ template { display: none; }/* User interaction * ========================================================================== *//* - * 1. Remove the tapping delay in IE 10. - * 2. Remove the tapping delay on clickable elements - in all browsers (opinionated). + * Remove the tapping delay in IE 10. */ a, area, @@ -314,8 +327,7 @@ select, summary, textarea, [tabindex] { - -ms-touch-action: manipulation; /* 1 */ - touch-action: manipulation; /* 2 */ + -ms-touch-action: manipulation; }/* Accessibility * ========================================================================== *//** * Change the cursor on busy elements in all browsers (opinionated). diff --git a/test/import-normalize-opinionated.expect.css b/test/import-normalize-opinionated.expect.css index ee27825..4b44634 100644 --- a/test/import-normalize-opinionated.expect.css +++ b/test/import-normalize-opinionated.expect.css @@ -62,13 +62,15 @@ ul ul { /** * 1. Add the correct box sizing in Firefox. - * 2. Show the overflow in Edge 18- and IE. + * 2. Correct the inheritance of border color in Firefox. + * 3. Show the overflow in Edge 18- and IE. */ hr { box-sizing: content-box; /* 1 */ + color: inherit; /* 2 */ height: 0; /* 1 */ - overflow: visible; /* 2 */ + overflow: visible; /* 3 */ } /** @@ -141,6 +143,19 @@ svg:not(:root) { overflow: hidden; } +/* Tabular data + * ========================================================================== */ + +/** + * 1. Correct table border color inheritance in all Chrome, Edge, and Safari. + * 2. Remove text indentation from table contents in Chrome, Edge, and Safari. + */ + +table { + border-color: inherit; /* 1 */ + text-indent: 0; /* 2 */ +} + /* Forms * ========================================================================== */ @@ -223,7 +238,6 @@ select { } /** - * 1. Change the font styles in all browsers (opinionated). * 2. Remove the margin in Firefox and Safari. * 3. Remove the default vertical scrollbar in IE. */ diff --git a/test/import-normalize.expect.css b/test/import-normalize.expect.css index 6a44ed4..653c78d 100644 --- a/test/import-normalize.expect.css +++ b/test/import-normalize.expect.css @@ -54,13 +54,15 @@ ul ul { /** * 1. Add the correct box sizing in Firefox. - * 2. Show the overflow in Edge 18- and IE. + * 2. Correct the inheritance of border color in Firefox. + * 3. Show the overflow in Edge 18- and IE. */ hr { box-sizing: content-box; /* 1 */ + color: inherit; /* 2 */ height: 0; /* 1 */ - overflow: visible; /* 2 */ + overflow: visible; /* 3 */ } /** @@ -133,6 +135,19 @@ svg:not(:root) { overflow: hidden; } +/* Tabular data + * ========================================================================== */ + +/** + * 1. Correct table border color inheritance in all Chrome, Edge, and Safari. + * 2. Remove text indentation from table contents in Chrome, Edge, and Safari. + */ + +table { + border-color: inherit; /* 1 */ + text-indent: 0; /* 2 */ +} + /* Forms * ========================================================================== */ @@ -358,4 +373,4 @@ body { font-family: sans-serif; } -/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL25vZGVfbW9kdWxlcy9AY3NzdG9vbHMvbm9ybWFsaXplLmNzcy9ub3JtYWxpemUuY3NzIiwiaW1wb3J0LW5vcm1hbGl6ZS5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7K0VBQytFOztBQUUvRTs7OztFQUlFOztBQUVGO0VBQ0UsaUJBQWlCLEVBQUUsTUFBTTtFQUN6QiwwQkFBMEIsRUFBRSxNQUFNO0VBQ2xDLDhCQUE4QixFQUFFLE1BQU07QUFDeEM7O0FBRUE7K0VBQytFOztBQUUvRTs7O0VBR0U7O0FBRUY7RUFDRSxjQUFjO0VBQ2QsZ0JBQWdCO0FBQ2xCOztBQUVBOytFQUMrRTs7QUFFL0U7O0VBRUU7O0FBRUY7Ozs7O0VBS0UsU0FBUztBQUNYOztBQUVBOztFQUVFOztBQUVGOzs7O0VBSUUsU0FBUztBQUNYOztBQUVBOzs7RUFHRTs7QUFFRjtFQUNFLHVCQUF1QixFQUFFLE1BQU07RUFDL0IsU0FBUyxFQUFFLE1BQU07RUFDakIsaUJBQWlCLEVBQUUsTUFBTTtBQUMzQjs7QUFFQTs7RUFFRTs7QUFFRjtFQUNFLGNBQWM7QUFDaEI7O0FBRUE7OztFQUdFOztBQUVGO0VBQ0UsaUNBQWlDLEVBQUUsTUFBTTtFQUN6QyxjQUFjLEVBQUUsTUFBTTtBQUN4Qjs7QUFFQTsrRUFDK0U7O0FBVS9FOztFQUVFOztBQUVGO0VBQ0UsMEJBQTBCO0VBQzFCLGlDQUFpQztBQUNuQzs7QUFFQTs7RUFFRTs7QUFFRjs7RUFFRSxtQkFBbUI7QUFDckI7O0FBRUE7OztFQUdFOztBQUVGOzs7RUFHRSxpQ0FBaUMsRUFBRSxNQUFNO0VBQ3pDLGNBQWMsRUFBRSxNQUFNO0FBQ3hCOztBQUVBOztFQUVFOztBQUVGO0VBQ0UsY0FBYztBQUNoQjs7QUFFQTsrRUFDK0U7O0FBNEIvRTs7RUFFRTs7QUFFRjtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTsrRUFDK0U7O0FBRS9FOztFQUVFOztBQUVGOzs7RUFHRSxTQUFTO0FBQ1g7O0FBRUE7OztFQUdFOztBQUVGO0VBQ0UsaUJBQWlCLEVBQUUsTUFBTTtFQUN6QixvQkFBb0IsRUFBRSxNQUFNO0FBQzlCOztBQUVBOztFQUVFOztBQUVGOzs7O0VBSUUsMEJBQTBCO0FBQzVCOztBQUVBOztFQUVFOztBQUVGO0VBQ0UsOEJBQThCO0FBQ2hDOztBQUVBOztFQUVFOztBQUVGO0VBQ0UsaUJBQWlCO0FBQ25COztBQUVBOzs7RUFHRTs7QUFFRjtFQUNFLHNCQUFzQixFQUFFLE1BQU07RUFDOUIsY0FBYyxFQUFFLE1BQU07RUFDdEIsY0FBYyxFQUFFLE1BQU07RUFDdEIsZUFBZSxFQUFFLE1BQU07RUFDdkIsbUJBQW1CLEVBQUUsTUFBTTtBQUM3Qjs7QUFFQTs7O0VBR0U7O0FBRUY7RUFDRSxxQkFBcUIsRUFBRSxNQUFNO0VBQzdCLHdCQUF3QixFQUFFLE1BQU07QUFDbEM7O0FBRUE7O0VBRUU7O0FBRUY7RUFDRSxvQkFBb0I7QUFDdEI7O0FBRUE7OztFQUdFOztBQUVGO0VBQ0UsU0FBUyxFQUFFLE1BQU07RUFDakIsY0FBYyxFQUFFLE1BQU07QUFDeEI7O0FBYUE7OztFQUdFOztBQUVGO0VBQ0UsNkJBQTZCLEVBQUUsTUFBTTtFQUNyQyxvQkFBb0IsRUFBRSxNQUFNO0FBQzlCOztBQUVBOztFQUVFOztBQUVGOztFQUVFLFlBQVk7QUFDZDs7QUFFQTs7RUFFRTs7QUFFRjtFQUNFLGNBQWM7RUFDZCxhQUFhO0FBQ2Y7O0FBRUE7O0VBRUU7O0FBRUY7RUFDRSx3QkFBd0I7QUFDMUI7O0FBRUE7OztFQUdFOztBQUVGO0VBQ0UsMEJBQTBCLEVBQUUsTUFBTTtFQUNsQyxhQUFhLEVBQUUsTUFBTTtBQUN2Qjs7QUFFQTs7RUFFRTs7QUFFRjtFQUNFLGtCQUFrQjtFQUNsQixVQUFVO0FBQ1o7O0FBRUE7O0VBRUU7O0FBRUY7RUFDRSw4QkFBOEI7QUFDaEM7O0FBRUE7O0VBRUU7O0FBRUY7RUFDRSxnQkFBZ0I7QUFDbEI7O0FBRUE7K0VBQytFOztBQUUvRTs7RUFFRTs7QUFFRjtFQUNFLGNBQWM7QUFDaEI7O0FBRUE7O0VBRUU7O0FBRUY7RUFDRSx1QkFBdUI7RUFDdkIsYUFBYTtFQUNiLFlBQVk7RUFDWixjQUFjO0VBQ2Qsd0JBQXdCO0VBQ3hCLDJCQUEyQjtFQUMzQixtQkFBbUI7RUFDbkIsT0FBTztFQUNQLFlBQVk7RUFDWixZQUFZO0VBQ1osa0JBQWtCO0VBQ2xCLFFBQVE7RUFDUix1QkFBdUI7RUFDdkIsMEJBQTBCO0VBQzFCLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLGFBQWE7QUFDZjs7QUFFQTs7RUFFRTs7QUFFRjtFQUNFLGtCQUFrQjtBQUNwQjs7QUFFQTsrRUFDK0U7O0FBVS9FOztFQUVFOztBQUVGO0VBQ0UsYUFBYTtBQUNmOztBQUVBOytFQUMrRTs7QUNyWi9FO0NBQ0MsdUJBQXVCO0FBQ3hCIiwiZmlsZSI6InBvc3Rjc3MtaW1wb3J0LnJlc3VsdC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBEb2N1bWVudFxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluXG4gKiAgICBJRSBvbiBXaW5kb3dzIFBob25lIGFuZCBpbiBpT1MuXG4gKi9cblxuaHRtbCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xufVxuXG4vKiBTZWN0aW9uc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gKiBgYXJ0aWNsZWAgY29udGV4dHMgaW4gQ2hyb21lLCBFZGdlLCBGaXJlZm94LCBhbmQgU2FmYXJpLlxuICovXG5cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7XG59XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBtYXJnaW4gb24gbmVzdGVkIGxpc3RzIGluIENocm9tZSwgRWRnZSwgSUUsIGFuZCBTYWZhcmkuXG4gKi9cblxuZGwgZGwsXG5kbCBvbCxcbmRsIHVsLFxub2wgZGwsXG51bCBkbCB7XG4gIG1hcmdpbjogMDtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIG1hcmdpbiBvbiBuZXN0ZWQgbGlzdHMgaW4gRWRnZSAxOC0gYW5kIElFLlxuICovXG5cbm9sIG9sLFxub2wgdWwsXG51bCBvbCxcbnVsIHVsIHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4gKiAyLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlIDE4LSBhbmQgSUUuXG4gKi9cblxuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMSAqL1xuICBoZWlnaHQ6IDA7IC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRS5cbiAqL1xuXG5tYWluIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5wcmUge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbn1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICovXG5cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIEVkZ2UgMTgtLCBJRSwgYW5kIFNhZmFyaS5cbiAqL1xuXG5hYmJyW3RpdGxlXSB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAqL1xuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmNvZGUsXG5rYmQsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqL1xuXG5hdWRpbyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGlPUyA0LTcuXG4gKi9cblxuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyB3aXRoaW4gbGlua3MgaW4gSUUgMTAtLlxuICovXG5cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbn1cblxuLyoqXG4gKiBIaWRlIHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAqL1xuXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIEZvcm1zXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgbWFyZ2luIG9uIGNvbnRyb2xzIGluIFNhZmFyaS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCxcbnNlbGVjdCB7XG4gIG1hcmdpbjogMDtcbn1cblxuLyoqXG4gKiAxLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAqIDIuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSAxOC0sIEZpcmVmb3gsIGFuZCBJRS5cbiAqL1xuXG5idXR0b24ge1xuICBvdmVyZmxvdzogdmlzaWJsZTsgLyogMSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgLyogMiAqL1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBidXR0b25zIGluIGlPUyBhbmQgU2FmYXJpLlxuICovXG5cbmJ1dHRvbixcblt0eXBlPVwiYnV0dG9uXCJdLFxuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5cbmZpZWxkc2V0IHtcbiAgcGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtO1xufVxuXG4vKipcbiAqIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgMTgtIGFuZCBJRS5cbiAqL1xuXG5pbnB1dCB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSAxOC0gYW5kIElFLlxuICogMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFLlxuICovXG5cbmxlZ2VuZCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgY29sb3I6IGluaGVyaXQ7IC8qIDIgKi9cbiAgZGlzcGxheTogdGFibGU7IC8qIDEgKi9cbiAgbWF4LXdpZHRoOiAxMDAlOyAvKiAxICovXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8qIDEgKi9cbn1cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlIDE4LSBhbmQgSUUuXG4gKiAyLiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRWRnZSwgYW5kIEZpcmVmb3guXG4gKi9cblxucHJvZ3Jlc3Mge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuICovXG5cbnNlbGVjdCB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAqIDEuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiAqIDIuIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUuXG4gKi9cblxudGV4dGFyZWEge1xuICBtYXJnaW46IDA7IC8qIDEgKi9cbiAgb3ZlcmZsb3c6IGF1dG87IC8qIDIgKi9cbn1cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBJRSAxMC0uXG4gKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAtLlxuICovXG5cblt0eXBlPVwiY2hlY2tib3hcIl0sXG5bdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4gKi9cblxuW3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuICBvdXRsaW5lLW9mZnNldDogLTJweDsgLyogMiAqL1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIFNhZmFyaS5cbiAqL1xuXG46Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG46Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgdGV4dCBzdHlsZSBvZiBwbGFjZWhvbGRlcnMgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICovXG5cbjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBvcGFjaXR5OiAwLjU0O1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4gKi9cblxuOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSB1cGxvYWQgYnV0dG9ucyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbiAqL1xuXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIG9mIGZvY3VzIG91dGxpbmVzIGluIEZpcmVmb3guXG4gKi9cblxuOjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIFJlc3RvcmUgdGhlIGZvY3VzIG91dGxpbmUgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlIGluIEZpcmVmb3guXG4gKi9cblxuOi1tb3otZm9jdXNyaW5nIHtcbiAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0O1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgYWRkaXRpb25hbCA6aW52YWxpZCBzdHlsZXMgaW4gRmlyZWZveC5cbiAqL1xuXG46LW1vei11aS1pbnZhbGlkIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuLyogSW50ZXJhY3RpdmVcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlIDE4LSBhbmQgSUUuXG4gKi9cblxuZGV0YWlscyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IHN0eWxlcyBpbiBFZGdlIDE4LSwgSUUsIGFuZCBTYWZhcmkuXG4gKi9cblxuZGlhbG9nIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJvcmRlcjogc29saWQ7XG4gIGNvbG9yOiBibGFjaztcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogLW1vei1maXQtY29udGVudDtcbiAgaGVpZ2h0OiAtd2Via2l0LWZpdC1jb250ZW50O1xuICBoZWlnaHQ6IGZpdC1jb250ZW50O1xuICBsZWZ0OiAwO1xuICBtYXJnaW46IGF1dG87XG4gIHBhZGRpbmc6IDFlbTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbiAgd2lkdGg6IC1tb3otZml0LWNvbnRlbnQ7XG4gIHdpZHRoOiAtd2Via2l0LWZpdC1jb250ZW50O1xuICB3aWR0aDogZml0LWNvbnRlbnQ7XG59XG5cbmRpYWxvZzpub3QoW29wZW5dKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcbn1cblxuLyogU2NyaXB0aW5nXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICovXG5cbmNhbnZhcyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRS5cbiAqL1xuXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIFVzZXIgaW50ZXJhY3Rpb25cbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAtLlxuICovXG5cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiIsIkBpbXBvcnQgXCJub3JtYWxpemVcIjtcblxuYm9keSB7XG5cdGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xufVxuIl19 */ \ No newline at end of file +/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL25vZGVfbW9kdWxlcy9AY3NzdG9vbHMvbm9ybWFsaXplLmNzcy9ub3JtYWxpemUuY3NzIiwiaW1wb3J0LW5vcm1hbGl6ZS5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7K0VBQytFOztBQUUvRTs7OztFQUlFOztBQUVGO0VBQ0UsaUJBQWlCLEVBQUUsTUFBTTtFQUN6QiwwQkFBMEIsRUFBRSxNQUFNO0VBQ2xDLDhCQUE4QixFQUFFLE1BQU07QUFDeEM7O0FBRUE7K0VBQytFOztBQUUvRTs7O0VBR0U7O0FBRUY7RUFDRSxjQUFjO0VBQ2QsZ0JBQWdCO0FBQ2xCOztBQUVBOytFQUMrRTs7QUFFL0U7O0VBRUU7O0FBRUY7Ozs7O0VBS0UsU0FBUztBQUNYOztBQUVBOztFQUVFOztBQUVGOzs7O0VBSUUsU0FBUztBQUNYOztBQUVBOzs7O0VBSUU7O0FBRUY7RUFDRSx1QkFBdUIsRUFBRSxNQUFNO0VBQy9CLGNBQWMsRUFBRSxNQUFNO0VBQ3RCLFNBQVMsRUFBRSxNQUFNO0VBQ2pCLGlCQUFpQixFQUFFLE1BQU07QUFDM0I7O0FBRUE7O0VBRUU7O0FBRUY7RUFDRSxjQUFjO0FBQ2hCOztBQUVBOzs7RUFHRTs7QUFFRjtFQUNFLGlDQUFpQyxFQUFFLE1BQU07RUFDekMsY0FBYyxFQUFFLE1BQU07QUFDeEI7O0FBRUE7K0VBQytFOztBQVUvRTs7RUFFRTs7QUFFRjtFQUNFLDBCQUEwQjtFQUMxQixpQ0FBaUM7QUFDbkM7O0FBRUE7O0VBRUU7O0FBRUY7O0VBRUUsbUJBQW1CO0FBQ3JCOztBQUVBOzs7RUFHRTs7QUFFRjs7O0VBR0UsaUNBQWlDLEVBQUUsTUFBTTtFQUN6QyxjQUFjLEVBQUUsTUFBTTtBQUN4Qjs7QUFFQTs7RUFFRTs7QUFFRjtFQUNFLGNBQWM7QUFDaEI7O0FBRUE7K0VBQytFOztBQTRCL0U7O0VBRUU7O0FBRUY7RUFDRSxnQkFBZ0I7QUFDbEI7O0FBRUE7K0VBQytFOztBQUUvRTs7O0VBR0U7O0FBRUY7RUFDRSxxQkFBcUIsRUFBRSxNQUFNO0VBQzdCLGNBQWMsRUFBRSxNQUFNO0FBQ3hCOztBQUVBOytFQUMrRTs7QUFFL0U7O0VBRUU7O0FBRUY7OztFQUdFLFNBQVM7QUFDWDs7QUFFQTs7O0VBR0U7O0FBRUY7RUFDRSxpQkFBaUIsRUFBRSxNQUFNO0VBQ3pCLG9CQUFvQixFQUFFLE1BQU07QUFDOUI7O0FBRUE7O0VBRUU7O0FBRUY7Ozs7RUFJRSwwQkFBMEI7QUFDNUI7O0FBRUE7O0VBRUU7O0FBRUY7RUFDRSw4QkFBOEI7QUFDaEM7O0FBRUE7O0VBRUU7O0FBRUY7RUFDRSxpQkFBaUI7QUFDbkI7O0FBRUE7OztFQUdFOztBQUVGO0VBQ0Usc0JBQXNCLEVBQUUsTUFBTTtFQUM5QixjQUFjLEVBQUUsTUFBTTtFQUN0QixjQUFjLEVBQUUsTUFBTTtFQUN0QixlQUFlLEVBQUUsTUFBTTtFQUN2QixtQkFBbUIsRUFBRSxNQUFNO0FBQzdCOztBQUVBOzs7RUFHRTs7QUFFRjtFQUNFLHFCQUFxQixFQUFFLE1BQU07RUFDN0Isd0JBQXdCLEVBQUUsTUFBTTtBQUNsQzs7QUFFQTs7RUFFRTs7QUFFRjtFQUNFLG9CQUFvQjtBQUN0Qjs7QUFFQTs7O0VBR0U7O0FBRUY7RUFDRSxTQUFTLEVBQUUsTUFBTTtFQUNqQixjQUFjLEVBQUUsTUFBTTtBQUN4Qjs7QUFhQTs7O0VBR0U7O0FBRUY7RUFDRSw2QkFBNkIsRUFBRSxNQUFNO0VBQ3JDLG9CQUFvQixFQUFFLE1BQU07QUFDOUI7O0FBRUE7O0VBRUU7O0FBRUY7O0VBRUUsWUFBWTtBQUNkOztBQUVBOztFQUVFOztBQUVGO0VBQ0UsY0FBYztFQUNkLGFBQWE7QUFDZjs7QUFFQTs7RUFFRTs7QUFFRjtFQUNFLHdCQUF3QjtBQUMxQjs7QUFFQTs7O0VBR0U7O0FBRUY7RUFDRSwwQkFBMEIsRUFBRSxNQUFNO0VBQ2xDLGFBQWEsRUFBRSxNQUFNO0FBQ3ZCOztBQUVBOztFQUVFOztBQUVGO0VBQ0Usa0JBQWtCO0VBQ2xCLFVBQVU7QUFDWjs7QUFFQTs7RUFFRTs7QUFFRjtFQUNFLDhCQUE4QjtBQUNoQzs7QUFFQTs7RUFFRTs7QUFFRjtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTsrRUFDK0U7O0FBRS9FOztFQUVFOztBQUVGO0VBQ0UsY0FBYztBQUNoQjs7QUFFQTs7RUFFRTs7QUFFRjtFQUNFLHVCQUF1QjtFQUN2QixhQUFhO0VBQ2IsWUFBWTtFQUNaLGNBQWM7RUFDZCx3QkFBd0I7RUFDeEIsMkJBQTJCO0VBQzNCLG1CQUFtQjtFQUNuQixPQUFPO0VBQ1AsWUFBWTtFQUNaLFlBQVk7RUFDWixrQkFBa0I7RUFDbEIsUUFBUTtFQUNSLHVCQUF1QjtFQUN2QiwwQkFBMEI7RUFDMUIsa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0UsYUFBYTtBQUNmOztBQUVBOztFQUVFOztBQUVGO0VBQ0Usa0JBQWtCO0FBQ3BCOztBQUVBOytFQUMrRTs7QUFVL0U7O0VBRUU7O0FBRUY7RUFDRSxhQUFhO0FBQ2Y7O0FBRUE7K0VBQytFOztBQ3BhL0U7Q0FDQyx1QkFBdUI7QUFDeEIiLCJmaWxlIjoicG9zdGNzcy1pbXBvcnQucmVzdWx0LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIERvY3VtZW50XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbiAqIDIuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW5cbiAqICAgIElFIG9uIFdpbmRvd3MgUGhvbmUgYW5kIGluIGlPUy5cbiAqL1xuXG5odG1sIHtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG59XG5cbi8qIFNlY3Rpb25zXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIENvcnJlY3QgdGhlIGZvbnQgc2l6ZSBhbmQgbWFyZ2luIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluIGBzZWN0aW9uYCBhbmRcbiAqIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEVkZ2UsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXG4gKi9cblxuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIG1hcmdpbiBvbiBuZXN0ZWQgbGlzdHMgaW4gQ2hyb21lLCBFZGdlLCBJRSwgYW5kIFNhZmFyaS5cbiAqL1xuXG5kbCBkbCxcbmRsIG9sLFxuZGwgdWwsXG5vbCBkbCxcbnVsIGRsIHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgbWFyZ2luIG9uIG5lc3RlZCBsaXN0cyBpbiBFZGdlIDE4LSBhbmQgSUUuXG4gKi9cblxub2wgb2wsXG5vbCB1bCxcbnVsIG9sLFxudWwgdWwge1xuICBtYXJnaW46IDA7XG59XG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAqIDIuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIG9mIGJvcmRlciBjb2xvciBpbiBGaXJlZm94LlxuICogMy4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSAxOC0gYW5kIElFLlxuICovXG5cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDEgKi9cbiAgY29sb3I6IGluaGVyaXQ7IC8qIDIgKi9cbiAgaGVpZ2h0OiAwOyAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlOyAvKiAzICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXG4gKi9cblxubWFpbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxucHJlIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG59XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBFZGdlIDE4LSwgSUUsIGFuZCBTYWZhcmkuXG4gKi9cblxuYWJiclt0aXRsZV0ge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gKi9cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5jb2RlLFxua2JkLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKi9cblxuYXVkaW8sXG52aWRlbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBpT1MgNC03LlxuICovXG5cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMDtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgd2l0aGluIGxpbmtzIGluIElFIDEwLS5cbiAqL1xuXG5pbWcge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG5cbi8qKlxuICogSGlkZSB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gKi9cblxuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vKiBUYWJ1bGFyIGRhdGFcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQ29ycmVjdCB0YWJsZSBib3JkZXIgY29sb3IgaW5oZXJpdGFuY2UgaW4gYWxsIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAqIDIuIFJlbW92ZSB0ZXh0IGluZGVudGF0aW9uIGZyb20gdGFibGUgY29udGVudHMgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICovXG5cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbG9yOiBpbmhlcml0OyAvKiAxICovXG4gIHRleHQtaW5kZW50OiAwOyAvKiAyICovXG59XG5cbi8qIEZvcm1zXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgbWFyZ2luIG9uIGNvbnRyb2xzIGluIFNhZmFyaS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCxcbnNlbGVjdCB7XG4gIG1hcmdpbjogMDtcbn1cblxuLyoqXG4gKiAxLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAqIDIuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSAxOC0sIEZpcmVmb3gsIGFuZCBJRS5cbiAqL1xuXG5idXR0b24ge1xuICBvdmVyZmxvdzogdmlzaWJsZTsgLyogMSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgLyogMiAqL1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBidXR0b25zIGluIGlPUyBhbmQgU2FmYXJpLlxuICovXG5cbmJ1dHRvbixcblt0eXBlPVwiYnV0dG9uXCJdLFxuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5cbmZpZWxkc2V0IHtcbiAgcGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtO1xufVxuXG4vKipcbiAqIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgMTgtIGFuZCBJRS5cbiAqL1xuXG5pbnB1dCB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSAxOC0gYW5kIElFLlxuICogMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFLlxuICovXG5cbmxlZ2VuZCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgY29sb3I6IGluaGVyaXQ7IC8qIDIgKi9cbiAgZGlzcGxheTogdGFibGU7IC8qIDEgKi9cbiAgbWF4LXdpZHRoOiAxMDAlOyAvKiAxICovXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8qIDEgKi9cbn1cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlIDE4LSBhbmQgSUUuXG4gKiAyLiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRWRnZSwgYW5kIEZpcmVmb3guXG4gKi9cblxucHJvZ3Jlc3Mge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuICovXG5cbnNlbGVjdCB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAqIDEuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiAqIDIuIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUuXG4gKi9cblxudGV4dGFyZWEge1xuICBtYXJnaW46IDA7IC8qIDEgKi9cbiAgb3ZlcmZsb3c6IGF1dG87IC8qIDIgKi9cbn1cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBJRSAxMC0uXG4gKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAtLlxuICovXG5cblt0eXBlPVwiY2hlY2tib3hcIl0sXG5bdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4gKi9cblxuW3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuICBvdXRsaW5lLW9mZnNldDogLTJweDsgLyogMiAqL1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIFNhZmFyaS5cbiAqL1xuXG46Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG46Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgdGV4dCBzdHlsZSBvZiBwbGFjZWhvbGRlcnMgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICovXG5cbjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBvcGFjaXR5OiAwLjU0O1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4gKi9cblxuOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSB1cGxvYWQgYnV0dG9ucyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbiAqL1xuXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIG9mIGZvY3VzIG91dGxpbmVzIGluIEZpcmVmb3guXG4gKi9cblxuOjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIFJlc3RvcmUgdGhlIGZvY3VzIG91dGxpbmUgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlIGluIEZpcmVmb3guXG4gKi9cblxuOi1tb3otZm9jdXNyaW5nIHtcbiAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0O1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgYWRkaXRpb25hbCA6aW52YWxpZCBzdHlsZXMgaW4gRmlyZWZveC5cbiAqL1xuXG46LW1vei11aS1pbnZhbGlkIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuLyogSW50ZXJhY3RpdmVcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlIDE4LSBhbmQgSUUuXG4gKi9cblxuZGV0YWlscyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IHN0eWxlcyBpbiBFZGdlIDE4LSwgSUUsIGFuZCBTYWZhcmkuXG4gKi9cblxuZGlhbG9nIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJvcmRlcjogc29saWQ7XG4gIGNvbG9yOiBibGFjaztcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogLW1vei1maXQtY29udGVudDtcbiAgaGVpZ2h0OiAtd2Via2l0LWZpdC1jb250ZW50O1xuICBoZWlnaHQ6IGZpdC1jb250ZW50O1xuICBsZWZ0OiAwO1xuICBtYXJnaW46IGF1dG87XG4gIHBhZGRpbmc6IDFlbTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbiAgd2lkdGg6IC1tb3otZml0LWNvbnRlbnQ7XG4gIHdpZHRoOiAtd2Via2l0LWZpdC1jb250ZW50O1xuICB3aWR0aDogZml0LWNvbnRlbnQ7XG59XG5cbmRpYWxvZzpub3QoW29wZW5dKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcbn1cblxuLyogU2NyaXB0aW5nXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICovXG5cbmNhbnZhcyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRS5cbiAqL1xuXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIFVzZXIgaW50ZXJhY3Rpb25cbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAtLlxuICovXG5cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiIsIkBpbXBvcnQgXCJub3JtYWxpemVcIjtcblxuYm9keSB7XG5cdGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xufVxuIl19 */ \ No newline at end of file diff --git a/test/import-sanitize-all.expect.css b/test/import-sanitize-all.expect.css index 280503f..d7149a3 100644 --- a/test/import-sanitize-all.expect.css +++ b/test/import-sanitize-all.expect.css @@ -64,12 +64,14 @@ ul ol, ul ul { margin: 0; }/** - * 1. Add the correct sizing in Firefox. - * 2. Show the overflow in Edge 18- and IE. + * 1. Correct the inheritance of border color in Firefox. + * 2. Add the correct box sizing in Firefox. + * 3. Show the overflow in Edge 18- and IE. */ hr { - height: 0; /* 1 */ - overflow: visible; /* 2 */ + color: inherit; /* 1 */ + height: 0; /* 2 */ + overflow: visible; /* 3 */ }/** * Add the correct display in IE. */ @@ -82,13 +84,21 @@ nav ol, nav ul { list-style: none; padding: 0; +}/** + * Prevent VoiceOver from ignoring list semantics in Safari (opinionated). + */ +nav li::before { + content: "\200B"; }/** * 1. Correct the inheritance and scaling of font size in all browsers. * 2. Correct the odd `em` font sizing in all browsers. + * 3. Prevent overflow of the container in all browsers (opinionated). */ pre { font-family: monospace, monospace; /* 1 */ font-size: 1em; /* 2 */ + overflow: auto; /* 3 */ + -ms-overflow-style: scrollbar; /* 3 */ }/* Text-level semantics * ========================================================================== *//** * Add the correct text decoration in Edge 18-, IE, and Safari. @@ -144,10 +154,14 @@ svg:not(:root) { overflow: hidden; }/* Tabular data * ========================================================================== *//** - * Collapse border spacing in all browsers (opinionated). + * 1. Collapse border spacing in all browsers (opinionated). + * 2. Correct table border color inheritance in all Chrome, Edge, and Safari. + * 3. Remove text indentation from table contents in Chrome, Edge, and Safari. */ table { - border-collapse: collapse; + border-collapse: collapse; /* 1 */ + border-color: inherit; /* 2 */ + text-indent: 0; /* 3 */ }/* Forms * ========================================================================== *//** * Remove the margin on controls in Safari. @@ -213,6 +227,7 @@ textarea { margin: 0; /* 1 */ overflow: auto; /* 2 */ resize: vertical; /* 3 */ + resize: block; /* 3 */ }/** * 1. Correct the odd appearance in Chrome, Edge, and Safari. * 2. Correct the outline style in Safari. @@ -301,9 +316,7 @@ template { display: none; }/* User interaction * ========================================================================== *//* - * 1. Remove the tapping delay in IE 10. - * 2. Remove the tapping delay on clickable elements - in all browsers (opinionated). + * Remove the tapping delay in IE 10. */ a, area, @@ -314,8 +327,7 @@ select, summary, textarea, [tabindex] { - -ms-touch-action: manipulation; /* 1 */ - touch-action: manipulation; /* 2 */ + -ms-touch-action: manipulation; }/* Accessibility * ========================================================================== *//** * Change the cursor on busy elements in all browsers (opinionated). @@ -372,6 +384,13 @@ select { */ select:not([multiple]):not([size]) { background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='4'%3E%3Cpath d='M4 0h6L7 4'/%3E%3C/svg%3E"); +}/** + * Remove the border and padding in all browsers (opinionated). + */ +[type="color"], +[type="range"] { + border-width: 0; + padding: 0; }/** * Change the inconsistent appearance in IE (opinionated). */ @@ -392,16 +411,6 @@ html { html { padding: 1em calc(50% - 16em); } -}/** - * Restrict sizing to the page width in all browsers (opinionated). - */ -iframe, -img, -input, -select, -textarea { - height: auto; - max-width: 100%; }/** * Use the default user interface font in all browsers (opinionated). */ diff --git a/test/import-sanitize-forms.expect.css b/test/import-sanitize-forms.expect.css index 18da611..9cd29aa 100644 --- a/test/import-sanitize-forms.expect.css +++ b/test/import-sanitize-forms.expect.css @@ -64,12 +64,14 @@ ul ol, ul ul { margin: 0; }/** - * 1. Add the correct sizing in Firefox. - * 2. Show the overflow in Edge 18- and IE. + * 1. Correct the inheritance of border color in Firefox. + * 2. Add the correct box sizing in Firefox. + * 3. Show the overflow in Edge 18- and IE. */ hr { - height: 0; /* 1 */ - overflow: visible; /* 2 */ + color: inherit; /* 1 */ + height: 0; /* 2 */ + overflow: visible; /* 3 */ }/** * Add the correct display in IE. */ @@ -82,13 +84,21 @@ nav ol, nav ul { list-style: none; padding: 0; +}/** + * Prevent VoiceOver from ignoring list semantics in Safari (opinionated). + */ +nav li::before { + content: "\200B"; }/** * 1. Correct the inheritance and scaling of font size in all browsers. * 2. Correct the odd `em` font sizing in all browsers. + * 3. Prevent overflow of the container in all browsers (opinionated). */ pre { font-family: monospace, monospace; /* 1 */ font-size: 1em; /* 2 */ + overflow: auto; /* 3 */ + -ms-overflow-style: scrollbar; /* 3 */ }/* Text-level semantics * ========================================================================== *//** * Add the correct text decoration in Edge 18-, IE, and Safari. @@ -144,10 +154,14 @@ svg:not(:root) { overflow: hidden; }/* Tabular data * ========================================================================== *//** - * Collapse border spacing in all browsers (opinionated). + * 1. Collapse border spacing in all browsers (opinionated). + * 2. Correct table border color inheritance in all Chrome, Edge, and Safari. + * 3. Remove text indentation from table contents in Chrome, Edge, and Safari. */ table { - border-collapse: collapse; + border-collapse: collapse; /* 1 */ + border-color: inherit; /* 2 */ + text-indent: 0; /* 3 */ }/* Forms * ========================================================================== *//** * Remove the margin on controls in Safari. @@ -213,6 +227,7 @@ textarea { margin: 0; /* 1 */ overflow: auto; /* 2 */ resize: vertical; /* 3 */ + resize: block; /* 3 */ }/** * 1. Correct the odd appearance in Chrome, Edge, and Safari. * 2. Correct the outline style in Safari. @@ -301,9 +316,7 @@ template { display: none; }/* User interaction * ========================================================================== *//* - * 1. Remove the tapping delay in IE 10. - * 2. Remove the tapping delay on clickable elements - in all browsers (opinionated). + * Remove the tapping delay in IE 10. */ a, area, @@ -314,8 +327,7 @@ select, summary, textarea, [tabindex] { - -ms-touch-action: manipulation; /* 1 */ - touch-action: manipulation; /* 2 */ + -ms-touch-action: manipulation; }/* Accessibility * ========================================================================== *//** * Change the cursor on busy elements in all browsers (opinionated). @@ -372,6 +384,13 @@ select { */ select:not([multiple]):not([size]) { background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='4'%3E%3Cpath d='M4 0h6L7 4'/%3E%3C/svg%3E"); +}/** + * Remove the border and padding in all browsers (opinionated). + */ +[type="color"], +[type="range"] { + border-width: 0; + padding: 0; }/** * Change the inconsistent appearance in IE (opinionated). */ diff --git a/test/normalize.expect.css b/test/normalize.expect.css index 8356120..037e383 100644 --- a/test/normalize.expect.css +++ b/test/normalize.expect.css @@ -54,13 +54,15 @@ ul ul { /** * 1. Add the correct box sizing in Firefox. - * 2. Show the overflow in Edge 18- and IE. + * 2. Correct the inheritance of border color in Firefox. + * 3. Show the overflow in Edge 18- and IE. */ hr { box-sizing: content-box; /* 1 */ + color: inherit; /* 2 */ height: 0; /* 1 */ - overflow: visible; /* 2 */ + overflow: visible; /* 3 */ } /** @@ -133,6 +135,19 @@ svg:not(:root) { overflow: hidden; } +/* Tabular data + * ========================================================================== */ + +/** + * 1. Correct table border color inheritance in all Chrome, Edge, and Safari. + * 2. Remove text indentation from table contents in Chrome, Edge, and Safari. + */ + +table { + border-color: inherit; /* 1 */ + text-indent: 0; /* 2 */ +} + /* Forms * ========================================================================== */ diff --git a/test/sanitize.expect.css b/test/sanitize.expect.css index 95b84d0..6f4b479 100644 --- a/test/sanitize.expect.css +++ b/test/sanitize.expect.css @@ -91,13 +91,15 @@ ul ul { } /** - * 1. Add the correct sizing in Firefox. - * 2. Show the overflow in Edge 18- and IE. + * 1. Correct the inheritance of border color in Firefox. + * 2. Add the correct box sizing in Firefox. + * 3. Show the overflow in Edge 18- and IE. */ hr { - height: 0; /* 1 */ - overflow: visible; /* 2 */ + color: inherit; /* 1 */ + height: 0; /* 2 */ + overflow: visible; /* 3 */ } /** @@ -118,14 +120,25 @@ nav ul { padding: 0; } +/** + * Prevent VoiceOver from ignoring list semantics in Safari (opinionated). + */ + +nav li::before { + content: "\200B"; +} + /** * 1. Correct the inheritance and scaling of font size in all browsers. * 2. Correct the odd `em` font sizing in all browsers. + * 3. Prevent overflow of the container in all browsers (opinionated). */ pre { font-family: monospace, monospace; /* 1 */ font-size: 1em; /* 2 */ + overflow: auto; /* 3 */ + -ms-overflow-style: scrollbar; /* 3 */ } /* Text-level semantics @@ -213,11 +226,15 @@ svg:not(:root) { * ========================================================================== */ /** - * Collapse border spacing in all browsers (opinionated). + * 1. Collapse border spacing in all browsers (opinionated). + * 2. Correct table border color inheritance in all Chrome, Edge, and Safari. + * 3. Remove text indentation from table contents in Chrome, Edge, and Safari. */ table { - border-collapse: collapse; + border-collapse: collapse; /* 1 */ + border-color: inherit; /* 2 */ + text-indent: 0; /* 3 */ } /* Forms @@ -312,6 +329,7 @@ textarea { margin: 0; /* 1 */ overflow: auto; /* 2 */ resize: vertical; /* 3 */ + resize: block; /* 3 */ } /** @@ -445,9 +463,7 @@ template { * ========================================================================== */ /* - * 1. Remove the tapping delay in IE 10. - * 2. Remove the tapping delay on clickable elements - in all browsers (opinionated). + * Remove the tapping delay in IE 10. */ a, @@ -459,8 +475,7 @@ select, summary, textarea, [tabindex] { - -ms-touch-action: manipulation; /* 1 */ - touch-action: manipulation; /* 2 */ + -ms-touch-action: manipulation; } /* Accessibility