From 50427e2dede00287517b49a24561763261a38c9f Mon Sep 17 00:00:00 2001 From: Richie Bendall Date: Fri, 31 May 2019 16:39:01 +1200 Subject: [PATCH] Automatically prefix and polyfill CSS --- CONTRIBUTING.md | 4 +- Procfile | 2 +- README.md | 2 +- package.json | 6 +- server.ts | 41 +++-- themes/8bits-monochrome-amber.css | 4 - themes/8bits-monochrome-blue-white.css | 4 - themes/8bits-monochrome-green.css | 4 - themes/8bits-monochrome-white.css | 4 - themes/8bits-monochrome.css | 4 - themes/blackwood.css | 29 --- themes/cherry-white.css | 6 - themes/cherry.css | 6 - themes/dusk.css | 5 - themes/hacker.css | 234 +++++++------------------ themes/hipster-gray.css | 9 +- themes/hmt-blue.css | 13 +- themes/material-amber.css | 2 - themes/material-blue.css | 2 - themes/material-brown.css | 2 - themes/material-cyan.css | 2 - themes/material-deep-orange.css | 2 - themes/material-deep-purple.css | 2 - themes/material-green.css | 2 - themes/material-grey.css | 2 - themes/material-indigo.css | 2 - themes/material-light-blue.css | 2 - themes/material-light-green.css | 2 - themes/material-lime.css | 2 - themes/material-orange.css | 2 - themes/material-pink.css | 2 - themes/material-purple.css | 2 - themes/material-red.css | 2 - themes/material-teal.css | 2 - themes/material-yellow.css | 2 - themes/material.css | 2 - themes/mitserrat.css | 2 - themes/open-sans.css | 4 - themes/orange.css | 6 - themes/silver-style.css | 4 +- yarn.lock | Bin 74363 -> 135604 bytes 41 files changed, 105 insertions(+), 326 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 09004347..40558791 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,7 +1,5 @@ # Contributing -This project is PHP based but may one day move to node (as this is my preferred development language). - If you are a collaborator (with push permissions), you can merge any open PR with the following conditions: 1. It passes the JSON validity test (this is a github integration in travis) @@ -11,4 +9,4 @@ If you're unsure, cc @remy into the PR with a question and we can work out what The site is hosted on heroku and will automatically deploy merges into master, which means once a PR is merged, it'll be live shortly thereafter (so there's nothing to do 🎉). -Also, thank you, your help is appreciated 💙 \ No newline at end of file +Also, thank you, your help is appreciated 💙 diff --git a/Procfile b/Procfile index 2be5f808..56b33d13 100644 --- a/Procfile +++ b/Procfile @@ -1 +1 @@ -web: yarn start +web: yarn serve diff --git a/README.md b/README.md index f93ec6d6..5c461a15 100644 --- a/README.md +++ b/README.md @@ -141,7 +141,7 @@ Note that if no version is supplied, the latest copy of the LICENSE.html will be ### Themes -If you've got an eye for design (or like me: not): you can contribute a theme by adding a CSS file to the `themes` directory. The default theme is simple and clean, but you can add your own as you like. +If you've got an eye for design (or like me: not): you can contribute a theme by adding a CSS file to the `themes` directory. You can use the latest CSS technologies since they are automatically polyfilled. The default theme is simple and clean, but you can add your own as you like. To use a theme, add the `theme` property to your `user.json` file, for example: diff --git a/package.json b/package.json index 8b98d5f8..2db46261 100644 --- a/package.json +++ b/package.json @@ -8,8 +8,8 @@ "url": "git@github.com:remy/mit-license.git" }, "scripts": { - "start": "tsc server.ts && node server.js", - "dev": "ts-node-dev --respawn --transpileOnly --no-notify server.ts", + "start": "ts-node-dev --respawn --transpileOnly --no-notify server.ts", + "serve": "tsc server.ts && node server.js", "test": "node test.js", "lint": "eslint server.ts util.ts test.js --color --fix" }, @@ -26,6 +26,8 @@ "humanize-list": "^1.0.1", "md5": "^2.2.1", "node-html-parser": "^1.1.15", + "postcss-middleware": "^1.1.4", + "postcss-preset-env": "^6.6.0", "tmp": "^0.1.0", "typescript": "^3.4.5" }, diff --git a/server.ts b/server.ts index ab707955..fd7f2077 100644 --- a/server.ts +++ b/server.ts @@ -1,14 +1,15 @@ -import express = require('express'); +import express = require('express') import * as path from 'path' import * as fs from 'fs' const PORT = process.env.PORT || 80 -import compression = require('compression'); +import compression = require('compression') import md5 = require('md5'); import humanizeList from 'humanize-list' import minify = require('express-minify') -const ejs = require('ejs') -import {yearNow, stripTags, trimArray} from './util' -const HTML = require('node-html-parser') +import ejs = require('ejs') +import { yearNow, stripTags, trimArray } from './util' +import HTML = require('node-html-parser') +import postcssMiddleware = require('postcss-middleware') // Prepare application const app = express() @@ -19,8 +20,12 @@ app.use(minify({ app.set('view engine', 'ejs') // Setup static files -app.use('/themes', express.static('themes')) app.use('/users', express.static('users')) +app.use('/themes', postcssMiddleware({ + plugins: [require('postcss-preset-env')({ browsers: '>= 0%', stage: 0 })], + src: req => path.join(__dirname, 'themes', req.path) +})) +app.use('/themes', express.static('themes')) app.use('/favicon.ico', express.static(__dirname + '/favicon.ico')) // Allow CORS @@ -100,18 +105,20 @@ app.get('*', (req, res) => { } if (format === 'html') res.render(path.join(__dirname, 'licenses', license), args) - else {ejs.renderFile(path.join(__dirname, 'licenses', `${license}.ejs`), args, (_err: any, str: string) => - res - .set('Content-Type', 'text/plain; charset=UTF-8') - .send( - trimArray( - stripTags(HTML.parse(str).childNodes[0].childNodes[3].childNodes[1].toString()) - .split('\n') - .map((val: string) => val.trim()) + else { + ejs.renderFile(path.join(__dirname, 'licenses', `${license}.ejs`), args, (_err: any, str: string) => + res + .set('Content-Type', 'text/plain; charset=UTF-8') + .send( + trimArray( + stripTags(HTML.parse(str).childNodes[0].childNodes[3].childNodes[1].toString()) + .split('\n') + .map((val: string) => val.trim()) + ) + .join('\n') ) - .join('\n') - ) - )} + ) + } }) }) diff --git a/themes/8bits-monochrome-amber.css b/themes/8bits-monochrome-amber.css index 86968e61..4cec6017 100644 --- a/themes/8bits-monochrome-amber.css +++ b/themes/8bits-monochrome-amber.css @@ -114,9 +114,5 @@ footer { } img { - -webkit-filter: contrast(700%) sepia(100%) saturate(100) sepia(100%) saturate(10); - -moz-filter: contrast(700%) sepia(100%) saturate(100) sepia(100%) saturate(10); - -ms-filter: contrast(700%) sepia(100%) saturate(100) sepia(100%) saturate(10); - -o-filter: contrast(700%) sepia(100%) saturate(100) sepia(100%) saturate(10); filter: contrast(700%) sepia(100%) saturate(100) sepia(100%) saturate(10); } diff --git a/themes/8bits-monochrome-blue-white.css b/themes/8bits-monochrome-blue-white.css index 578dafc7..8c331374 100644 --- a/themes/8bits-monochrome-blue-white.css +++ b/themes/8bits-monochrome-blue-white.css @@ -114,9 +114,5 @@ footer { } img { - -webkit-filter: contrast(700%) invert(100%) brightness(80%) sepia(100%) saturate(5) invert(100%); - -moz-filter: contrast(700%) invert(100%) brightness(80%) sepia(100%) saturate(5) invert(100%); - -ms-filter: contrast(700%) invert(100%) brightness(80%) sepia(100%) saturate(5) invert(100%); - -o-filter: contrast(700%) invert(100%) brightness(80%) sepia(100%) saturate(5) invert(100%); filter: contrast(700%) invert(100%) brightness(80%) sepia(100%) saturate(5) invert(100%); } diff --git a/themes/8bits-monochrome-green.css b/themes/8bits-monochrome-green.css index 940dfd82..4dd57571 100644 --- a/themes/8bits-monochrome-green.css +++ b/themes/8bits-monochrome-green.css @@ -114,9 +114,5 @@ footer { } img { - -webkit-filter: contrast(700%) sepia(100%) saturate(100) sepia(100%) saturate(10) hue-rotate(40deg); - -moz-filter: contrast(700%) sepia(100%) saturate(100) sepia(100%) saturate(10) hue-rotate(40deg); - -ms-filter: contrast(700%) sepia(100%) saturate(100) sepia(100%) saturate(10) hue-rotate(40deg); - -o-filter: contrast(700%) sepia(100%) saturate(100) sepia(100%) saturate(10) hue-rotate(40deg); filter: contrast(700%) sepia(100%) saturate(100) sepia(100%) saturate(10) hue-rotate(40deg); } diff --git a/themes/8bits-monochrome-white.css b/themes/8bits-monochrome-white.css index 1a4b1a70..3cef6a58 100644 --- a/themes/8bits-monochrome-white.css +++ b/themes/8bits-monochrome-white.css @@ -114,9 +114,5 @@ footer { } img { - -webkit-filter: contrast(700%) grayscale(100%) saturate(100); - -moz-filter: contrast(700%) grayscale(100%) saturate(100); - -ms-filter: contrast(700%) grayscale(100%) saturate(100); - -o-filter: contrast(700%) grayscale(100%) saturate(100); filter: contrast(700%) grayscale(100%) saturate(100); } diff --git a/themes/8bits-monochrome.css b/themes/8bits-monochrome.css index 09e35b79..91fc4cd0 100644 --- a/themes/8bits-monochrome.css +++ b/themes/8bits-monochrome.css @@ -114,9 +114,5 @@ footer { } img { - -webkit-filter: contrast(700%) grayscale(100%) saturate(100); - -moz-filter: contrast(700%) grayscale(100%) saturate(100); - -ms-filter: contrast(700%) grayscale(100%) saturate(100); - -o-filter: contrast(700%) grayscale(100%) saturate(100); filter: contrast(700%) grayscale(100%) saturate(100); } diff --git a/themes/blackwood.css b/themes/blackwood.css index 1c8600d0..6fa5dbc2 100644 --- a/themes/blackwood.css +++ b/themes/blackwood.css @@ -49,9 +49,6 @@ footer { footer p { zoom: 1; background-color: #FFFFFF; - -moz-box-shadow: 1px 1px 3px #989898; - -webkit-box-shadow: 1px 1px 3px #989898; - -moz-box-shadow: 1px 1px 3px #989898; box-shadow: 1px 1px 3px #989898; font-size: 0.9em; max-width: 318px; @@ -59,21 +56,11 @@ footer p { position: absolute; right: -106px; top: 0; - -webkit-transform: rotate(34.5deg); - /* Saf3.1+, Chrome */ - -moz-transform: rotate(34.5deg); - /* FF3.5+ */ - -o-transform: rotate(34.5deg); - /* Opera 10.5 */ - -ms-transform: rotate(40deg); - /* IE9 */ transform: rotate(34.5deg); } footer p:before { background-color: #999999; - -moz-box-shadow: 1px 1px 2px #000000; - -webkit-box-shadow: 1px 1px 2px #000000; box-shadow: 1px 1px 2px #000000; content: ""; display: block; @@ -83,14 +70,6 @@ footer p:before { position: absolute; top: -13px; width: 7px; - -webkit-transform: rotate(34.5deg); - /* Saf3.1+, Chrome */ - -moz-transform: rotate(34.5deg); - /* FF3.5+ */ - -o-transform: rotate(34.5deg); - /* Opera 10.5 */ - -ms-transform: rotate(34.5deg); - /* IE9 */ transform: rotate(34.5deg); zoom: 1; } @@ -104,14 +83,6 @@ footer p:after { position: absolute; right: 0; width: 7px; - -webkit-transform: rotate(34.5deg); - /* Saf3.1+, Chrome */ - -moz-transform: rotate(34.5deg); - /* FF3.5+ */ - -o-transform: rotate(34.5deg); - /* Opera 10.5 */ - -ms-transform: rotate(34.5deg); - /* IE9 */ transform: rotate(34.5deg); zoom: 1; } diff --git a/themes/cherry-white.css b/themes/cherry-white.css index 2211116b..f7755a6f 100644 --- a/themes/cherry-white.css +++ b/themes/cherry-white.css @@ -19,8 +19,6 @@ article { border-right: 3px solid #FF6666; padding: 45px 28px 28px; position: relative; - -webkit-border-radius: 0px 0 10px 10px; - -moz-border-radius: 0px 0 10px 10px; border-radius: 0px 0 10px 10px; margin-top: 28px; border-left: 1px solid #F7F7F7; @@ -37,8 +35,6 @@ h1 { top: -22px; width: 100%; display: block; - -moz-box-shadow: 2px 7px 0px -3px #CCCCCC; - -webkit-box-shadow: 2px 7px 0px -3px #CCCCCC; box-shadow: 2px 7px 0px -3px #CCCCCC; } @@ -61,8 +57,6 @@ h1:before { position: absolute; top: 52px; width: 11px; - -webkit-border-radius: 0 0 0 32px; - -moz-border-radius: 0 0 0 32px; border-radius: 0 0 0 32px; } diff --git a/themes/cherry.css b/themes/cherry.css index 6dc6f661..d6994824 100644 --- a/themes/cherry.css +++ b/themes/cherry.css @@ -20,8 +20,6 @@ article { border-right: 3px solid #FF6666; padding: 74px 28px 28px; position: relative; - -webkit-border-radius: 0px 0 10px 10px; - -moz-border-radius: 0px 0 10px 10px; border-radius: 0px 0 10px 10px; } @@ -36,8 +34,6 @@ h1 { top: 0; width: 100%; display: block; - -moz-box-shadow: 2px 7px 0px -3px #CCCCCC; - -webkit-box-shadow: 2px 7px 0px -3px #CCCCCC; box-shadow: 2px 7px 0px -3px #CCCCCC; } @@ -60,8 +56,6 @@ h1:before { position: absolute; top: 52px; width: 11px; - -webkit-border-radius: 0 0 0 32px; - -moz-border-radius: 0 0 0 32px; border-radius: 0 0 0 32px; } diff --git a/themes/dusk.css b/themes/dusk.css index c8dde6a1..d61be164 100644 --- a/themes/dusk.css +++ b/themes/dusk.css @@ -30,9 +30,7 @@ a:link, a:visited, a:hover { position: relative; text-decoration: none; color: #de5833; - -webkit-transition: color 0.3s ease-in-out; transition: color 0.3s ease-in-out; - -webkit-transform: scaleX(0); transform: scaleX(0); } @@ -49,15 +47,12 @@ a:before { left: 0; background-color: #de5833; visibility: hidden; - -webkit-transform: scaleX(0); transform: scaleX(0); - -webkit-transition: all 0.3s ease-in-out; transition: all 0.3s ease-in-out; } a:hover:before { visibility: visible; - -webkit-transform: scaleX(1); transform: scaleX(1); } diff --git a/themes/hacker.css b/themes/hacker.css index bbc5314b..1d8d10d2 100644 --- a/themes/hacker.css +++ b/themes/hacker.css @@ -1,7 +1,6 @@ html { font-family: sans-serif; - -ms-text-size-adjust: 100%; - -webkit-text-size-adjust: 100% + text-size-adjust: 100%; } body { @@ -88,7 +87,6 @@ figure { } hr { - -moz-box-sizing: content-box; box-sizing: content-box; height: 0 } @@ -117,7 +115,7 @@ button, select { } button, html input[type="button"], input[type="reset"], input[type="submit"] { - -webkit-appearance: button; + appearance: button; cursor: pointer } @@ -144,14 +142,12 @@ input[type="number"]::-webkit-inner-spin-button, input[type="number"]::-webkit-o } input[type="search"] { - -webkit-appearance: textfield; - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; + appearance: textfield; box-sizing: content-box } input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none + appearance: none } fieldset { @@ -184,10 +180,10 @@ td, th { @media print { *, *:before, *:after { - background: transparent !important; - color: #000 !important; - box-shadow: none !important; - text-shadow: none !important + background: transparent; + color: #000; + box-shadow: none; + text-shadow: none } a, a:visited { @@ -220,7 +216,7 @@ td, th { } img { - max-width: 100% !important + max-width: 100% } p, h2, h3 { @@ -233,7 +229,7 @@ td, th { } select { - background: #fff !important + background: #fff } .navbar { @@ -241,7 +237,7 @@ td, th { } .btn>.caret, .dropup>.btn>.caret { - border-top-color: #000 !important + border-top-color: #000 } .label { @@ -249,15 +245,15 @@ td, th { } .table { - border-collapse: collapse !important + border-collapse: collapse } .table td, .table th { - background-color: #fff !important + background-color: #fff } .table-bordered th, .table-bordered td { - border: 1px solid #ddd !important + border: 1px solid #ddd } } @@ -1328,14 +1324,10 @@ td, th { } * { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; box-sizing: border-box } *:before, *:after { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; box-sizing: border-box } @@ -1398,8 +1390,6 @@ img { background-color: #222; border: 1px solid #ddd; border-radius: 0; - -webkit-transition: all .2s ease-in-out; - -o-transition: all .2s ease-in-out; transition: all .2s ease-in-out; display: inline-block; max-width: 100%; @@ -2883,8 +2873,6 @@ label { } input[type="search"] { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; box-sizing: border-box } @@ -2933,17 +2921,13 @@ output { background-image: none; border: 1px solid #444; border-radius: 0; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; - -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s } .form-control:focus { border-color: #0f0; outline: 0; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(0, 255, 0, 0.6); box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(0, 255, 0, 0.6) } @@ -2974,7 +2958,7 @@ textarea.form-control { } input[type="search"] { - -webkit-appearance: none + appearance: none } @media screen and (-webkit-min-device-pixel-ratio:0) { @@ -3182,13 +3166,11 @@ textarea.form-group-lg .form-control, select[multiple].form-group-lg .form-contr .has-success .form-control { border-color: #0d0; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075) } .has-success .form-control:focus { border-color: #0a0; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #4f4; box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #4f4 } @@ -3208,13 +3190,11 @@ textarea.form-group-lg .form-control, select[multiple].form-group-lg .form-contr .has-warning .form-control { border-color: #f4ff00; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075) } .has-warning .form-control:focus { border-color: #c3cc00; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #f8ff66; box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #f8ff66 } @@ -3234,13 +3214,11 @@ textarea.form-group-lg .form-control, select[multiple].form-group-lg .form-contr .has-error .form-control { border-color: #d00; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075) } .has-error .form-control:focus { border-color: #a00; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #f44; box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #f44 } @@ -3379,9 +3357,6 @@ textarea.form-group-lg .form-control, select[multiple].form-group-lg .form-contr font-size: 14px; line-height: 1.428571429; border-radius: 0; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; user-select: none } @@ -3399,7 +3374,6 @@ textarea.form-group-lg .form-control, select[multiple].form-group-lg .form-contr .btn:active, .btn.active { outline: 0; background-image: none; - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125) } @@ -3408,7 +3382,6 @@ textarea.form-group-lg .form-control, select[multiple].form-group-lg .form-contr pointer-events: none; opacity: .65; filter: alpha(opacity=65); - -webkit-box-shadow: none; box-shadow: none } @@ -3576,7 +3549,6 @@ textarea.form-group-lg .form-control, select[multiple].form-group-lg .form-contr .btn-link, .btn-link:active, .btn-link.active, .btn-link[disabled], fieldset[disabled] .btn-link { background-color: transparent; - -webkit-box-shadow: none; box-shadow: none } @@ -3631,8 +3603,6 @@ input[type="submit"].btn-block, input[type="reset"].btn-block, input[type="butto .fade { opacity: 0; - -webkit-transition: opacity .15s linear; - -o-transition: opacity .15s linear; transition: opacity .15s linear } @@ -3660,11 +3630,8 @@ tbody.collapse.in { position: relative; height: 0; overflow: hidden; - -webkit-transition-property: height, visibility; transition-property: height, visibility; - -webkit-transition-duration: .35s; transition-duration: .35s; - -webkit-transition-timing-function: ease; transition-timing-function: ease } @@ -3704,7 +3671,6 @@ tbody.collapse.in { border: 1px solid #ccc; border: 1px solid rgba(0, 0, 0, 0.15); border-radius: 0; - -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); background-clip: padding-box } @@ -3903,12 +3869,10 @@ tbody.collapse.in { } .btn-group.open .dropdown-toggle { - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125) } .btn-group.open .dropdown-toggle.btn-link { - -webkit-box-shadow: none; box-shadow: none } @@ -4398,10 +4362,10 @@ textarea.input-group-sm>.form-control, textarea.input-group-sm>.input-group-addo } .navbar-collapse.collapse { - display: block !important; - height: auto !important; + display: block; + height: auto; padding-bottom: 0; - overflow: visible !important + overflow: visible } .navbar-collapse.in { @@ -4583,7 +4547,6 @@ textarea.input-group-sm>.form-control, textarea.input-group-sm>.input-group-addo padding: 10px 15px; border-top: 1px solid transparent; border-bottom: 1px solid transparent; - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); margin-top: 8px; margin-bottom: 8px @@ -4663,7 +4626,6 @@ textarea.input-group-sm>.form-control, textarea.input-group-sm>.input-group-addo margin-right: 0; padding-top: 0; padding-bottom: 0; - -webkit-box-shadow: none; box-shadow: none } } @@ -4712,11 +4674,11 @@ textarea.input-group-sm>.form-control, textarea.input-group-sm>.input-group-addo @media (min-width:768px) { .navbar-left { - float: left !important + float: left } .navbar-right { - float: right !important; + float: right; margin-right: -15px } @@ -5256,8 +5218,6 @@ a.badge:hover, a.badge:focus { background-color: #222; border: 1px solid #ddd; border-radius: 0; - -webkit-transition: border .2s ease-in-out; - -o-transition: border .2s ease-in-out; transition: border .2s ease-in-out } @@ -5366,16 +5326,6 @@ a.thumbnail:hover, a.thumbnail:focus, a.thumbnail.active { color: #a00 } -@-webkit-keyframes progress-bar-stripes { - from { - background-position: 40px 0 - } - - to { - background-position: 0 0 - } -} - @keyframes progress-bar-stripes { from { background-position: 40px 0 @@ -5392,7 +5342,6 @@ a.thumbnail:hover, a.thumbnail:focus, a.thumbnail.active { margin-bottom: 20px; background-color: #3c3c3c; border-radius: 0; - -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1) } @@ -5405,23 +5354,16 @@ a.thumbnail:hover, a.thumbnail:focus, a.thumbnail.active { color: #fff; text-align: center; background-color: #0f0; - -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); - -webkit-transition: width .6s ease; - -o-transition: width .6s ease; transition: width .6s ease } .progress-striped .progress-bar, .progress-bar-striped { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-size: 40px 40px } .progress.active .progress-bar, .progress-bar.active { - -webkit-animation: progress-bar-stripes 2s linear infinite; - -o-animation: progress-bar-stripes 2s linear infinite; animation: progress-bar-stripes 2s linear infinite } @@ -5430,8 +5372,6 @@ a.thumbnail:hover, a.thumbnail:focus, a.thumbnail.active { } .progress-striped .progress-bar-success { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent) } @@ -5440,8 +5380,6 @@ a.thumbnail:hover, a.thumbnail:focus, a.thumbnail.active { } .progress-striped .progress-bar-info { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent) } @@ -5450,8 +5388,6 @@ a.thumbnail:hover, a.thumbnail:focus, a.thumbnail.active { } .progress-striped .progress-bar-warning { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent) } @@ -5460,8 +5396,6 @@ a.thumbnail:hover, a.thumbnail:focus, a.thumbnail.active { } .progress-striped .progress-bar-danger { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent) } @@ -5696,7 +5630,6 @@ a.list-group-item-danger.active, a.list-group-item-danger.active:hover, a.list-g background-color: #222; border: 1px solid transparent; border-radius: 0; - -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05) } @@ -6041,7 +5974,6 @@ a.list-group-item-danger.active, a.list-group-item-danger.active:hover, a.list-g background-color: #080808; border: 1px solid #000; border-radius: 0; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05) } @@ -6084,7 +6016,7 @@ button.close { cursor: pointer; background: transparent; border: 0; - -webkit-appearance: none + appearance: none } .modal-open { @@ -6105,20 +6037,11 @@ button.close { } .modal.fade .modal-dialog { - -webkit-transform: translate(0, -25%); - -ms-transform: translate(0, -25%); - -o-transform: translate(0, -25%); transform: translate(0, -25%); - -webkit-transition: -webkit-transform 0.3s ease-out; - -moz-transition: -moz-transform 0.3s ease-out; - -o-transition: -o-transform 0.3s ease-out; transition: transform 0.3s ease-out } .modal.in .modal-dialog { - -webkit-transform: translate(0, 0); - -ms-transform: translate(0, 0); - -o-transform: translate(0, 0); transform: translate(0, 0) } @@ -6139,7 +6062,6 @@ button.close { border: 1px solid #999; border: 1px solid transparent; border-radius: 0; - -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); background-clip: padding-box; outline: 0 @@ -6219,7 +6141,6 @@ button.close { } .modal-content { - -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5) } @@ -6371,7 +6292,6 @@ button.close { border: 1px solid #333; border: 1px solid rgba(0, 0, 0, 0.2); border-radius: 0; - -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); white-space: normal } @@ -6504,8 +6424,6 @@ button.close { .carousel-inner>.item { display: none; position: relative; - -webkit-transition: .6s ease-in-out left; - -o-transition: .6s ease-in-out left; transition: .6s ease-in-out left } @@ -6515,32 +6433,22 @@ button.close { @media all and (transform-3d), (-webkit-transform-3d) { .carousel-inner>.item { - -webkit-transition: -webkit-transform 0.6s ease-in-out; - -moz-transition: -moz-transform 0.6s ease-in-out; - -o-transition: -o-transform 0.6s ease-in-out; transition: transform 0.6s ease-in-out; - -webkit-backface-visibility: hidden; - -moz-backface-visibility: hidden; backface-visibility: hidden; - -webkit-perspective: 1000; - -moz-perspective: 1000; perspective: 1000 } .carousel-inner>.item.next, .carousel-inner>.item.active.right { - -webkit-transform: translate3d(100%, 0, 0); transform: translate3d(100%, 0, 0); left: 0 } .carousel-inner>.item.prev, .carousel-inner>.item.active.left { - -webkit-transform: translate3d(-100%, 0, 0); transform: translate3d(-100%, 0, 0); left: 0 } .carousel-inner>.item.next.left, .carousel-inner>.item.prev.right, .carousel-inner>.item.active { - -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); left: 0 } @@ -6595,8 +6503,6 @@ button.close { } .carousel-control.left { - background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0, rgba(0, 0, 0, 0.0001) 100%); - background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0, rgba(0, 0, 0, 0.0001) 100%); background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0, rgba(0, 0, 0, 0.0001) 100%); background-repeat: repeat-x; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1) @@ -6605,8 +6511,6 @@ button.close { .carousel-control.right { left: auto; right: 0; - background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0, rgba(0, 0, 0, 0.5) 100%); - background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0, rgba(0, 0, 0, 0.5) 100%); background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0, rgba(0, 0, 0, 0.5) 100%); background-repeat: repeat-x; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1) @@ -6745,19 +6649,19 @@ button.close { } .pull-right { - float: right !important + float: right } .pull-left { - float: left !important + float: left } .hide { - display: none !important + display: none } .show { - display: block !important + display: block } .invisible { @@ -6773,28 +6677,24 @@ button.close { } .hidden { - display: none !important + display: none } .affix { position: fixed } -@-ms-viewport { - width: device-width -} - .visible-xs, .visible-sm, .visible-md, .visible-lg { - display: none !important + display: none } .visible-xs-block, .visible-xs-inline, .visible-xs-inline-block, .visible-sm-block, .visible-sm-inline, .visible-sm-inline-block, .visible-md-block, .visible-md-inline, .visible-md-inline-block, .visible-lg-block, .visible-lg-inline, .visible-lg-inline-block { - display: none !important + display: none } @media (max-width:767px) { .visible-xs { - display: block !important + display: block } table.visible-xs { @@ -6802,35 +6702,35 @@ button.close { } tr.visible-xs { - display: table-row !important + display: table-row } th.visible-xs, td.visible-xs { - display: table-cell !important + display: table-cell } } @media (max-width:767px) { .visible-xs-block { - display: block !important + display: block } } @media (max-width:767px) { .visible-xs-inline { - display: inline !important + display: inline } } @media (max-width:767px) { .visible-xs-inline-block { - display: inline-block !important + display: inline-block } } @media (min-width:768px) and (max-width:991px) { .visible-sm { - display: block !important + display: block } table.visible-sm { @@ -6838,35 +6738,35 @@ button.close { } tr.visible-sm { - display: table-row !important + display: table-row } th.visible-sm, td.visible-sm { - display: table-cell !important + display: table-cell } } @media (min-width:768px) and (max-width:991px) { .visible-sm-block { - display: block !important + display: block } } @media (min-width:768px) and (max-width:991px) { .visible-sm-inline { - display: inline !important + display: inline } } @media (min-width:768px) and (max-width:991px) { .visible-sm-inline-block { - display: inline-block !important + display: inline-block } } @media (min-width:992px) and (max-width:1199px) { .visible-md { - display: block !important + display: block } table.visible-md { @@ -6874,35 +6774,35 @@ button.close { } tr.visible-md { - display: table-row !important + display: table-row } th.visible-md, td.visible-md { - display: table-cell !important + display: table-cell } } @media (min-width:992px) and (max-width:1199px) { .visible-md-block { - display: block !important + display: block } } @media (min-width:992px) and (max-width:1199px) { .visible-md-inline { - display: inline !important + display: inline } } @media (min-width:992px) and (max-width:1199px) { .visible-md-inline-block { - display: inline-block !important + display: inline-block } } @media (min-width:1200px) { .visible-lg { - display: block !important + display: block } table.visible-lg { @@ -6910,63 +6810,63 @@ button.close { } tr.visible-lg { - display: table-row !important + display: table-row } th.visible-lg, td.visible-lg { - display: table-cell !important + display: table-cell } } @media (min-width:1200px) { .visible-lg-block { - display: block !important + display: block } } @media (min-width:1200px) { .visible-lg-inline { - display: inline !important + display: inline } } @media (min-width:1200px) { .visible-lg-inline-block { - display: inline-block !important + display: inline-block } } @media (max-width:767px) { .hidden-xs { - display: none !important + display: none } } @media (min-width:768px) and (max-width:991px) { .hidden-sm { - display: none !important + display: none } } @media (min-width:992px) and (max-width:1199px) { .hidden-md { - display: none !important + display: none } } @media (min-width:1200px) { .hidden-lg { - display: none !important + display: none } } .visible-print { - display: none !important + display: none } @media print { .visible-print { - display: block !important + display: block } table.visible-print { @@ -6974,46 +6874,46 @@ button.close { } tr.visible-print { - display: table-row !important + display: table-row } th.visible-print, td.visible-print { - display: table-cell !important + display: table-cell } } .visible-print-block { - display: none !important + display: none } @media print { .visible-print-block { - display: block !important + display: block } } .visible-print-inline { - display: none !important + display: none } @media print { .visible-print-inline { - display: inline !important + display: inline } } .visible-print-inline-block { - display: none !important + display: none } @media print { .visible-print-inline-block { - display: inline-block !important + display: inline-block } } @media print { .hidden-print { - display: none !important + display: none } } diff --git a/themes/hipster-gray.css b/themes/hipster-gray.css index e3d14da0..65330431 100644 --- a/themes/hipster-gray.css +++ b/themes/hipster-gray.css @@ -3,10 +3,6 @@ * { margin: 0; padding: 0; - -webkit-transition: all 0.2s ease-out; - -moz-transition: all 0.2s ease-out; - -o-transition: all 0.2s ease-out; - -ms-transition: all 0.2s ease-out; transition: all 0.2s ease-out; } @@ -17,7 +13,6 @@ body { line-height: 170%; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; - font-smoothing: antialiased; overflow-y: auto; padding: 20pt; } @@ -201,7 +196,6 @@ footer a:hover, footer a:focus, footer a:active { footer p { background-position: 0 1px; - -webkit-background-size: 9px; background-size: 11px; margin-left: -10pt; padding-left: 10pt; @@ -214,7 +208,7 @@ footer a:hover, footer a:focus, footer a:active { } * { - color: black !important; + color: black; } a[href^="http"]:after { @@ -273,7 +267,6 @@ footer a:hover, footer a:focus, footer a:active { footer p { background-position: 0 1px; - -webkit-background-size: 11px; background-size: 11px; margin-left: -12pt; padding-left: 12pt; diff --git a/themes/hmt-blue.css b/themes/hmt-blue.css index 8b8c185b..bcff4b00 100644 --- a/themes/hmt-blue.css +++ b/themes/hmt-blue.css @@ -10,8 +10,7 @@ button, hr, input { html { font-family: sans-serif; line-height: 1.15; - -ms-text-size-adjust: 100%; - -webkit-text-size-adjust: 100% + text-size-adjust: 100%; } body { @@ -124,7 +123,7 @@ button, select { } [type=submit], [type=reset], button, html [type=button] { - -webkit-appearance: button + appearance: button } [type=button]::-moz-focus-inner, [type=reset]::-moz-focus-inner, [type=submit]::-moz-focus-inner, button::-moz-focus-inner { @@ -165,12 +164,12 @@ textarea { } [type=search] { - -webkit-appearance: textfield; + appearance: textfield; outline-offset: -2px } [type=search]::-webkit-search-cancel-button, [type=search]::-webkit-search-decoration { - -webkit-appearance: none + appearance: none } ::-webkit-input-placeholder { @@ -179,7 +178,7 @@ textarea { } ::-webkit-file-upload-button { - -webkit-appearance: button; + appearance: button; font: inherit } @@ -314,8 +313,6 @@ article>p:last-child { border-left: 15px solid #3392cd; border-right: 2px solid #3392cd; /*Box Shadow - (Optional)*/ - -moz-box-shadow: 2px 2px 15px #ccc; - -webkit-box-shadow: 2px 2px 15px #ccc; box-shadow: 2px 2px 15px #ccc; } diff --git a/themes/material-amber.css b/themes/material-amber.css index 7d1cf571..11bdc338 100644 --- a/themes/material-amber.css +++ b/themes/material-amber.css @@ -19,7 +19,6 @@ article { display: block; margin: 1em; box-shadow: 0 1px 2px rgba(0, 0, 0, .12), 0 1px 2px rgba(0, 0, 0, .24); - -webkit-transition: box-shadow .2s ease-in-out; transition: box-shadow .2s ease-in-out; position: relative; max-width: 800px; @@ -100,7 +99,6 @@ footer a:hover { float: right; border-radius: 100%; box-shadow: 0 3px 10px rgba(0, 0, 0, .23), 0 3px 10px rgba(0, 0, 0, .16); - -webkit-transition: box-shadow .2s ease-in-out; transition: box-shadow .2s ease-in-out } diff --git a/themes/material-blue.css b/themes/material-blue.css index 84e5af23..6b847a55 100644 --- a/themes/material-blue.css +++ b/themes/material-blue.css @@ -19,7 +19,6 @@ article { display: block; margin: 1em; box-shadow: 0 1px 2px rgba(0, 0, 0, .12), 0 1px 2px rgba(0, 0, 0, .24); - -webkit-transition: box-shadow .2s ease-in-out; transition: box-shadow .2s ease-in-out; position: relative; max-width: 800px; @@ -100,7 +99,6 @@ footer a:hover { float: right; border-radius: 100%; box-shadow: 0 3px 10px rgba(0, 0, 0, .23), 0 3px 10px rgba(0, 0, 0, .16); - -webkit-transition: box-shadow .2s ease-in-out; transition: box-shadow .2s ease-in-out } diff --git a/themes/material-brown.css b/themes/material-brown.css index 0b7f04d1..7e2f6729 100644 --- a/themes/material-brown.css +++ b/themes/material-brown.css @@ -19,7 +19,6 @@ article { display: block; margin: 1em; box-shadow: 0 1px 2px rgba(0, 0, 0, .12), 0 1px 2px rgba(0, 0, 0, .24); - -webkit-transition: box-shadow .2s ease-in-out; transition: box-shadow .2s ease-in-out; position: relative; max-width: 800px; @@ -100,7 +99,6 @@ footer a:hover { float: right; border-radius: 100%; box-shadow: 0 3px 10px rgba(0, 0, 0, .23), 0 3px 10px rgba(0, 0, 0, .16); - -webkit-transition: box-shadow .2s ease-in-out; transition: box-shadow .2s ease-in-out } diff --git a/themes/material-cyan.css b/themes/material-cyan.css index 1118138a..ac1bae7c 100644 --- a/themes/material-cyan.css +++ b/themes/material-cyan.css @@ -19,7 +19,6 @@ article { display: block; margin: 1em; box-shadow: 0 1px 2px rgba(0, 0, 0, .12), 0 1px 2px rgba(0, 0, 0, .24); - -webkit-transition: box-shadow .2s ease-in-out; transition: box-shadow .2s ease-in-out; position: relative; max-width: 800px; @@ -100,7 +99,6 @@ footer a:hover { float: right; border-radius: 100%; box-shadow: 0 3px 10px rgba(0, 0, 0, .23), 0 3px 10px rgba(0, 0, 0, .16); - -webkit-transition: box-shadow .2s ease-in-out; transition: box-shadow .2s ease-in-out } diff --git a/themes/material-deep-orange.css b/themes/material-deep-orange.css index be5d8ab6..d4bb1d6a 100644 --- a/themes/material-deep-orange.css +++ b/themes/material-deep-orange.css @@ -19,7 +19,6 @@ article { display: block; margin: 1em; box-shadow: 0 1px 2px rgba(0, 0, 0, .12), 0 1px 2px rgba(0, 0, 0, .24); - -webkit-transition: box-shadow .2s ease-in-out; transition: box-shadow .2s ease-in-out; position: relative; max-width: 800px; @@ -100,7 +99,6 @@ footer a:hover { float: right; border-radius: 100%; box-shadow: 0 3px 10px rgba(0, 0, 0, .23), 0 3px 10px rgba(0, 0, 0, .16); - -webkit-transition: box-shadow .2s ease-in-out; transition: box-shadow .2s ease-in-out } diff --git a/themes/material-deep-purple.css b/themes/material-deep-purple.css index ee3d92ba..8c92912b 100644 --- a/themes/material-deep-purple.css +++ b/themes/material-deep-purple.css @@ -19,7 +19,6 @@ article { display: block; margin: 1em; box-shadow: 0 1px 2px rgba(0, 0, 0, .12), 0 1px 2px rgba(0, 0, 0, .24); - -webkit-transition: box-shadow .2s ease-in-out; transition: box-shadow .2s ease-in-out; position: relative; max-width: 800px; @@ -100,7 +99,6 @@ footer a:hover { float: right; border-radius: 100%; box-shadow: 0 3px 10px rgba(0, 0, 0, .23), 0 3px 10px rgba(0, 0, 0, .16); - -webkit-transition: box-shadow .2s ease-in-out; transition: box-shadow .2s ease-in-out } diff --git a/themes/material-green.css b/themes/material-green.css index 9c8f409c..a4c041ed 100644 --- a/themes/material-green.css +++ b/themes/material-green.css @@ -19,7 +19,6 @@ article { display: block; margin: 1em; box-shadow: 0 1px 2px rgba(0, 0, 0, .12), 0 1px 2px rgba(0, 0, 0, .24); - -webkit-transition: box-shadow .2s ease-in-out; transition: box-shadow .2s ease-in-out; position: relative; max-width: 800px; @@ -100,7 +99,6 @@ footer a:hover { float: right; border-radius: 100%; box-shadow: 0 3px 10px rgba(0, 0, 0, .23), 0 3px 10px rgba(0, 0, 0, .16); - -webkit-transition: box-shadow .2s ease-in-out; transition: box-shadow .2s ease-in-out } diff --git a/themes/material-grey.css b/themes/material-grey.css index 133e3d6a..386214a0 100644 --- a/themes/material-grey.css +++ b/themes/material-grey.css @@ -19,7 +19,6 @@ article { display: block; margin: 1em; box-shadow: 0 1px 2px rgba(0, 0, 0, .12), 0 1px 2px rgba(0, 0, 0, .24); - -webkit-transition: box-shadow .2s ease-in-out; transition: box-shadow .2s ease-in-out; position: relative; max-width: 800px; @@ -100,7 +99,6 @@ footer a:hover { float: right; border-radius: 100%; box-shadow: 0 3px 10px rgba(0, 0, 0, .23), 0 3px 10px rgba(0, 0, 0, .16); - -webkit-transition: box-shadow .2s ease-in-out; transition: box-shadow .2s ease-in-out } diff --git a/themes/material-indigo.css b/themes/material-indigo.css index 1003de67..95e1121c 100644 --- a/themes/material-indigo.css +++ b/themes/material-indigo.css @@ -19,7 +19,6 @@ article { display: block; margin: 1em; box-shadow: 0 1px 2px rgba(0, 0, 0, .12), 0 1px 2px rgba(0, 0, 0, .24); - -webkit-transition: box-shadow .2s ease-in-out; transition: box-shadow .2s ease-in-out; position: relative; max-width: 800px; @@ -100,7 +99,6 @@ footer a:hover { float: right; border-radius: 100%; box-shadow: 0 3px 10px rgba(0, 0, 0, .23), 0 3px 10px rgba(0, 0, 0, .16); - -webkit-transition: box-shadow .2s ease-in-out; transition: box-shadow .2s ease-in-out } diff --git a/themes/material-light-blue.css b/themes/material-light-blue.css index e544e52d..2699530e 100644 --- a/themes/material-light-blue.css +++ b/themes/material-light-blue.css @@ -19,7 +19,6 @@ article { display: block; margin: 1em; box-shadow: 0 1px 2px rgba(0, 0, 0, .12), 0 1px 2px rgba(0, 0, 0, .24); - -webkit-transition: box-shadow .2s ease-in-out; transition: box-shadow .2s ease-in-out; position: relative; max-width: 800px; @@ -100,7 +99,6 @@ footer a:hover { float: right; border-radius: 100%; box-shadow: 0 3px 10px rgba(0, 0, 0, .23), 0 3px 10px rgba(0, 0, 0, .16); - -webkit-transition: box-shadow .2s ease-in-out; transition: box-shadow .2s ease-in-out } diff --git a/themes/material-light-green.css b/themes/material-light-green.css index be930247..ccdf3cda 100644 --- a/themes/material-light-green.css +++ b/themes/material-light-green.css @@ -19,7 +19,6 @@ article { display: block; margin: 1em; box-shadow: 0 1px 2px rgba(0, 0, 0, .12), 0 1px 2px rgba(0, 0, 0, .24); - -webkit-transition: box-shadow .2s ease-in-out; transition: box-shadow .2s ease-in-out; position: relative; max-width: 800px; @@ -100,7 +99,6 @@ footer a:hover { float: right; border-radius: 100%; box-shadow: 0 3px 10px rgba(0, 0, 0, .23), 0 3px 10px rgba(0, 0, 0, .16); - -webkit-transition: box-shadow .2s ease-in-out; transition: box-shadow .2s ease-in-out } diff --git a/themes/material-lime.css b/themes/material-lime.css index bf9a0f5a..e9d63673 100644 --- a/themes/material-lime.css +++ b/themes/material-lime.css @@ -19,7 +19,6 @@ article { display: block; margin: 1em; box-shadow: 0 1px 2px rgba(0, 0, 0, .12), 0 1px 2px rgba(0, 0, 0, .24); - -webkit-transition: box-shadow .2s ease-in-out; transition: box-shadow .2s ease-in-out; position: relative; max-width: 800px; @@ -100,7 +99,6 @@ footer a:hover { float: right; border-radius: 100%; box-shadow: 0 3px 10px rgba(0, 0, 0, .23), 0 3px 10px rgba(0, 0, 0, .16); - -webkit-transition: box-shadow .2s ease-in-out; transition: box-shadow .2s ease-in-out } diff --git a/themes/material-orange.css b/themes/material-orange.css index dc7cff08..75378182 100644 --- a/themes/material-orange.css +++ b/themes/material-orange.css @@ -19,7 +19,6 @@ article { display: block; margin: 1em; box-shadow: 0 1px 2px rgba(0, 0, 0, .12), 0 1px 2px rgba(0, 0, 0, .24); - -webkit-transition: box-shadow .2s ease-in-out; transition: box-shadow .2s ease-in-out; position: relative; max-width: 800px; @@ -100,7 +99,6 @@ footer a:hover { float: right; border-radius: 100%; box-shadow: 0 3px 10px rgba(0, 0, 0, .23), 0 3px 10px rgba(0, 0, 0, .16); - -webkit-transition: box-shadow .2s ease-in-out; transition: box-shadow .2s ease-in-out } diff --git a/themes/material-pink.css b/themes/material-pink.css index 1040916c..996d8dd6 100644 --- a/themes/material-pink.css +++ b/themes/material-pink.css @@ -19,7 +19,6 @@ article { display: block; margin: 1em; box-shadow: 0 1px 2px rgba(0, 0, 0, .12), 0 1px 2px rgba(0, 0, 0, .24); - -webkit-transition: box-shadow .2s ease-in-out; transition: box-shadow .2s ease-in-out; position: relative; max-width: 800px; @@ -100,7 +99,6 @@ footer a:hover { float: right; border-radius: 100%; box-shadow: 0 3px 10px rgba(0, 0, 0, .23), 0 3px 10px rgba(0, 0, 0, .16); - -webkit-transition: box-shadow .2s ease-in-out; transition: box-shadow .2s ease-in-out } diff --git a/themes/material-purple.css b/themes/material-purple.css index 7dd4df53..ff168e32 100644 --- a/themes/material-purple.css +++ b/themes/material-purple.css @@ -19,7 +19,6 @@ article { display: block; margin: 1em; box-shadow: 0 1px 2px rgba(0, 0, 0, .12), 0 1px 2px rgba(0, 0, 0, .24); - -webkit-transition: box-shadow .2s ease-in-out; transition: box-shadow .2s ease-in-out; position: relative; max-width: 800px; @@ -100,7 +99,6 @@ footer a:hover { float: right; border-radius: 100%; box-shadow: 0 3px 10px rgba(0, 0, 0, .23), 0 3px 10px rgba(0, 0, 0, .16); - -webkit-transition: box-shadow .2s ease-in-out; transition: box-shadow .2s ease-in-out } diff --git a/themes/material-red.css b/themes/material-red.css index 9cdd1345..2b7ebbf1 100644 --- a/themes/material-red.css +++ b/themes/material-red.css @@ -19,7 +19,6 @@ article { display: block; margin: 1em; box-shadow: 0 1px 2px rgba(0, 0, 0, .12), 0 1px 2px rgba(0, 0, 0, .24); - -webkit-transition: box-shadow .2s ease-in-out; transition: box-shadow .2s ease-in-out; position: relative; max-width: 800px; @@ -100,7 +99,6 @@ footer a:hover { float: right; border-radius: 100%; box-shadow: 0 3px 10px rgba(0, 0, 0, .23), 0 3px 10px rgba(0, 0, 0, .16); - -webkit-transition: box-shadow .2s ease-in-out; transition: box-shadow .2s ease-in-out } diff --git a/themes/material-teal.css b/themes/material-teal.css index d435f3e5..b2cde091 100644 --- a/themes/material-teal.css +++ b/themes/material-teal.css @@ -19,7 +19,6 @@ article { display: block; margin: 1em; box-shadow: 0 1px 2px rgba(0, 0, 0, .12), 0 1px 2px rgba(0, 0, 0, .24); - -webkit-transition: box-shadow .2s ease-in-out; transition: box-shadow .2s ease-in-out; position: relative; max-width: 800px; @@ -100,7 +99,6 @@ footer a:hover { float: right; border-radius: 100%; box-shadow: 0 3px 10px rgba(0, 0, 0, .23), 0 3px 10px rgba(0, 0, 0, .16); - -webkit-transition: box-shadow .2s ease-in-out; transition: box-shadow .2s ease-in-out } diff --git a/themes/material-yellow.css b/themes/material-yellow.css index 5ac59d8a..97143621 100644 --- a/themes/material-yellow.css +++ b/themes/material-yellow.css @@ -19,7 +19,6 @@ article { display: block; margin: 1em; box-shadow: 0 1px 2px rgba(0, 0, 0, .12), 0 1px 2px rgba(0, 0, 0, .24); - -webkit-transition: box-shadow .2s ease-in-out; transition: box-shadow .2s ease-in-out; position: relative; max-width: 800px; @@ -100,7 +99,6 @@ footer a:hover { float: right; border-radius: 100%; box-shadow: 0 3px 10px rgba(0, 0, 0, .23), 0 3px 10px rgba(0, 0, 0, .16); - -webkit-transition: box-shadow .2s ease-in-out; transition: box-shadow .2s ease-in-out } diff --git a/themes/material.css b/themes/material.css index 74bdabd9..db45dfd7 100644 --- a/themes/material.css +++ b/themes/material.css @@ -19,7 +19,6 @@ article { display: block; margin: 1em; box-shadow: 0 1px 2px rgba(0, 0, 0, .12), 0 1px 2px rgba(0, 0, 0, .24); - -webkit-transition: box-shadow .2s ease-in-out; transition: box-shadow .2s ease-in-out; position: relative; max-width: 800px; @@ -100,7 +99,6 @@ footer a:hover { float: right; border-radius: 100%; box-shadow: 0 3px 10px rgba(0, 0, 0, .23), 0 3px 10px rgba(0, 0, 0, .16); - -webkit-transition: box-shadow .2s ease-in-out; transition: box-shadow .2s ease-in-out } diff --git a/themes/mitserrat.css b/themes/mitserrat.css index 12f5c172..6ea80eba 100644 --- a/themes/mitserrat.css +++ b/themes/mitserrat.css @@ -68,6 +68,4 @@ p:first-of-type, footer { width: 80px; margin-top: 72px; border-radius: 40px; - -webkit-border-radius: 40px; - -moz-border-radius: 40px; } diff --git a/themes/open-sans.css b/themes/open-sans.css index 23109802..cc812e74 100644 --- a/themes/open-sans.css +++ b/themes/open-sans.css @@ -43,10 +43,6 @@ a { color: #0a0a0b; text-decoration: none; border-bottom: 3px solid rgba(10, 10, 11, 1); - -webkit-transition: .15s ease; - -moz-transition: .15s ease; - -ms-transition: .15s ease; - -o-transition: .15s ease; transition: .15s ease } diff --git a/themes/orange.css b/themes/orange.css index a72e04fc..4d14eead 100644 --- a/themes/orange.css +++ b/themes/orange.css @@ -22,9 +22,7 @@ article { width: 85%; margin: 80px auto; border-radius: 10px; - -moz-border-radius: 10px; box-shadow: -1px 1px 20px rgba(30, 30, 30, 0.5), 2px 1px 15px rgba(80, 80, 80, 0.4), inset 0 0 10px rgba(50, 50, 50, 0.7); - -webkit-box-shadow: -1px 1px 20px rgba(30, 30, 30, 0.5), 2px 1px 15px rgba(80, 80, 80, 0.4), inset 0 0 10px rgba(50, 50, 50, 0.7) } article h1 { @@ -34,9 +32,7 @@ article h1 { margin: 0; padding: 19px; border-radius: 10px; - -moz-border-radius: 10px; box-shadow: inset 0 0 10px rgba(70, 70, 70, 0.2), inset 1px 0 10px rgba(50, 50, 50, 0.3), inset -1px 0 10px rgba(50, 50, 50, 0.3); - -webkit-box-shadow: inset 0 0 10px rgba(70, 70, 70, 0.2), inset 1px 0 10px rgba(50, 50, 50, 0.3), inset -1px 0 10px rgba(50, 50, 50, 0.3) } article p { @@ -52,8 +48,6 @@ footer { border-top: 1px solid #7A7A00; background: #333300; user-select: none; - -moz-user-select: none; - -webkit-user-select: none } footer p, footer a { diff --git a/themes/silver-style.css b/themes/silver-style.css index bade0f5a..fed9f9ee 100644 --- a/themes/silver-style.css +++ b/themes/silver-style.css @@ -19,10 +19,8 @@ article { border-right: 1.5px solid #9ab8ed; padding: 17px; border-radius: 1%; - -webkit-box-shadow: 3px 0px 20px -2px #7ba5e4; - -moz-box-shadow: 3px 0px 20px -2px #7ba5e4; box-shadow: 3px 0px 20px -2px #7ba5e4; - background: -webkit-radial-gradient(50% 0%, 50% 15px, #EB8CF2 0%, white 100%); + background: radial-gradient(50% 0%, 50% 15px, #EB8CF2 0%, white 100%); } article, footer { diff --git a/yarn.lock b/yarn.lock index 37b0fc0b1ef21712ec1529a5d5fb4ebd415e5465..8bc948ac197e878c5c0860fe1baafe74b7d5f7bb 100644 GIT binary patch delta 44182 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