CSS Optimization Checker
Try it yourself - Enter a CSS URL in the menu search bar, or check out the examples below
Optimize CSS delivery and performance by checking for redundancy, validation errors, and following best practices.
Clean up unused selectors and rules using our CSS tool.
- This tool has one goal in mind - to keep your CSS simple
- Test and weigh the complexity of a CSS document
- Analyze your CSS selectors by reducing complexity and optimizing for performance
TestMyCSS Results forhttp://www.json2yaml.com/css/main.fb44307f4ffaaed0958a286a7e322826.css
Check and Cleanup CSS Offenders
- Complex Selectors5
Selectors with uneccessary depth and traversal
Consider simplifying for speed and readability
.pure-menu-horizontal>.pure-menu-children>.pure-menu-can-have-children>.pure-menu-label:after {}
.pure-menu-horizontal>.pure-menu-children>.pure-menu-can-have-children>.pure-menu-label {}
.pure-table-bordered tbody>tr:last-child td {}
.pure-table-horizontal tbody>tr:last-child td {}
.pure-table-horizontal tbody>tr:last-child td {}
- Complex Selectors By Attribute4
Selectors whose attribute value contains a specified value
Attribute selectors have a slower lookup time
[class^="icon-"] {}
[class*=" icon-"] {}
.pure-g [class*="pure-u"] {}
.pure-g [class*="pure-u"] {}
- Duplicated Properties11
Duplicate properties detected for your selector
Remove or combine duplicate properties to clean up your css
pre {white-space: pre-wrap}
q, q:after {content: none}
.pure-button {color: rgba(0,0,0,0.8)}
.pure-button {border: 0 transparent}
.pure-button[disabled], .pure-button-disabled, .pure-button-disabled:hover, .pure-button-disabled:focus, .pure-button-disabled:active {filter: alpha(opacity=40)}
.pure-form input[type=text]:focus, .pure-form input[type=password]:focus, .pure-form input[type=email]:focus, .pure-form input[type=url]:focus, .pure-form input[type=date]:focus, .pure-form input[type=month]:focus, .pure-form input[type=time]:focus, .pure-form input[type=datetime]:focus, .pure-form input[type=datetime-local]:focus, .pure-form input[type=week]:focus, .pure-form input[type=number]:focus, .pure-form input[type=search]:focus, .pure-form input[type=tel]:focus, .pure-form input[type=color]:focus, .pure-form select:focus, .pure-form textarea:focus {outline: thin dotted \9}
.pure-form input:not([type]):focus {outline: thin dotted \9}
.pure-form input[type=file]:focus, .pure-form input[type=radio]:focus, .pure-form input[type=checkbox]:focus {outline: 1px auto #129FEA}
.cm-searching {background: rgba(255,255,0,0.4)}
.copy-btn {background: linear-gradient(to bottom, #999 0%, #7c7c7c 100%)}
.copy-btn {text-transform: none !important}
- Duplicated Selectors17
.CodeMirror {} /* (3 times) */
.CodeMirror-scroll {} /* (3 times) */
.pure-button {} /* (2 times) */
h2 {} /* (2 times) */
h4 {} /* (2 times) */
.pure-g {} /* (2 times) */
.opera-only :-o-prefocus, .pure-g {} /* (2 times) */
.pure-u {} /* (2 times) */
.pure-g [class*="pure-u"] {} /* (2 times) */
[hidden] {} /* (2 times) */
.pure-button::-moz-focus-inner {} /* (2 times) */
.pure-menu ul {} /* (2 times) */
.CodeMirror div.CodeMirror-cursor {} /* (2 times) */
body {} /* (2 times) */
.CodeMirror-lines {} /* (2 times) */
.CodeMirror pre {} /* (2 times) */
.CodeMirror-gutters {} /* (2 times) */
- Importants31
Provides a way for a stylesheet author to give a CSS value more weight than it naturally has
Avoid usage if at all possible. When you use !important, you’re disrupting the natural flow of your rules, giving more weight to rules that are undeserving of such weight
[data-icon] {font-family: "untitled-font-2" !important}
[data-icon] {font-style: normal !important}
[data-icon] {font-weight: normal !important}
[data-icon] {font-variant: normal !important}
[data-icon] {text-transform: none !important}
[class^="icon-"], [class*=" icon-"] {font-family: "untitled-font-2" !important}
[class^="icon-"], [class*=" icon-"] {font-style: normal !important}
[class^="icon-"], [class*=" icon-"] {font-weight: normal !important}
[class^="icon-"], [class*=" icon-"] {font-variant: normal !important}
[class^="icon-"], [class*=" icon-"] {text-transform: none !important}
[hidden] {display: none !important}
.cm-s-monokai div.CodeMirror-selected {background: #49483E !important}
.cm-s-monokai .CodeMirror-cursor {border-left: 1px solid #f8f8f0 !important}
.cm-s-monokai .CodeMirror-activeline-background {background: #373831 !important}
.cm-s-monokai .CodeMirror-matchingbracket {color: white !important}
.status-icon {font-family: 'untitled-font-2' !important}
.status-icon {font-weight: normal !important}
.status-icon {font-style: normal !important}
.status-icon {font-variant: normal !important}
.status-icon {text-transform: none !important}
.copy-btn {font-family: 'untitled-font-2' !important}
.copy-btn {font-weight: normal !important}
.copy-btn {font-style: normal !important}
.copy-btn {font-variant: normal !important}
.copy-btn {text-transform: none !important}
.copy-btn {text-transform: none !important}
.status-msg {font-family: 'untitled-font-2' !important}
.status-msg {font-weight: normal !important}
.status-msg {font-style: normal !important}
.status-msg {font-variant: normal !important}
.status-msg {text-transform: none !important}
- Multi Classes Selectors12
Selectors with multiple classes
Unnecessary specificity, consider reducing to single class or id instead
.pure-menu.pure-menu-open {}
.pure-menu.pure-menu-horizontal {}
.pure-menu.pure-menu-horizontal {}
.pure-menu.pure-menu-open {}
.pure-menu.pure-menu-horizontal {}
.pure-menu.pure-menu-horizontal {}
.pure-menu.pure-menu-horizontal {}
.pure-menu-can-have-children.pure-menu-disabled {}
.pure-menu.pure-menu-fixed.pure-menu-open {}
.CodeMirror.cm-keymap-fat-cursor {}
.CodeMirror.cm-keymap-fat-cursor {}
.CodeMirror.cm-s-monokai {}
- Old IE Fixes170
Rules specific to IE greater than or equal to IE 6 or IE 7
Lower browser usage for previous versions of IE prevents these rules from being very useful
audio, canvas, video {*display: inline}
audio, canvas, video {*zoom: 1}
legend {*margin-left: -7px}
button, input, select, textarea {*vertical-align: middle}
button, html input[type=button], input[type=reset], input[type=submit] {*overflow: visible}
input[type=checkbox], input[type=radio] {*height: 13px}
input[type=checkbox], input[type=radio] {*width: 13px}
.pure-g {*letter-spacing: normal}
.pure-g {*word-spacing: -.43em}
.pure-u {*display: inline}
.pure-u-1, .pure-u-1-1, .pure-u-1-2, .pure-u-1-3, .pure-u-2-3, .pure-u-1-4, .pure-u-3-4, .pure-u-1-5, .pure-u-2-5, .pure-u-3-5, .pure-u-4-5, .pure-u-5-5, .pure-u-1-6, .pure-u-5-6, .pure-u-1-8, .pure-u-3-8, .pure-u-5-8, .pure-u-7-8, .pure-u-1-12, .pure-u-5-12, .pure-u-7-12, .pure-u-11-12, .pure-u-1-24, .pure-u-2-24, .pure-u-3-24, .pure-u-4-24, .pure-u-5-24, .pure-u-6-24, .pure-u-7-24, .pure-u-8-24, .pure-u-9-24, .pure-u-10-24, .pure-u-11-24, .pure-u-12-24, .pure-u-13-24, .pure-u-14-24, .pure-u-15-24, .pure-u-16-24, .pure-u-17-24, .pure-u-18-24, .pure-u-19-24, .pure-u-20-24, .pure-u-21-24, .pure-u-22-24, .pure-u-23-24, .pure-u-24-24 {*display: inline}
.pure-u-1-24 {*width: 4.1357%}
.pure-u-1-12, .pure-u-2-24 {*width: 8.3023%}
.pure-u-1-8, .pure-u-3-24 {*width: 12.469%}
.pure-u-1-6, .pure-u-4-24 {*width: 16.6357%}
.pure-u-1-5 {*width: 19.969%}
.pure-u-5-24 {*width: 20.8023%}
.pure-u-1-4, .pure-u-6-24 {*width: 24.969%}
.pure-u-7-24 {*width: 29.1357%}
.pure-u-1-3, .pure-u-8-24 {*width: 33.3023%}
.pure-u-3-8, .pure-u-9-24 {*width: 37.469%}
.pure-u-2-5 {*width: 39.969%}
.pure-u-5-12, .pure-u-10-24 {*width: 41.6357%}
.pure-u-11-24 {*width: 45.8023%}
.pure-u-1-2, .pure-u-12-24 {*width: 49.969%}
.pure-u-13-24 {*width: 54.1357%}
.pure-u-7-12, .pure-u-14-24 {*width: 58.3023%}
.pure-u-3-5 {*width: 59.969%}
.pure-u-5-8, .pure-u-15-24 {*width: 62.469%}
.pure-u-2-3, .pure-u-16-24 {*width: 66.6357%}
.pure-u-17-24 {*width: 70.8023%}
.pure-u-3-4, .pure-u-18-24 {*width: 74.969%}
.pure-u-19-24 {*width: 79.1357%}
.pure-u-4-5 {*width: 79.969%}
.pure-u-5-6, .pure-u-20-24 {*width: 83.3023%}
.pure-u-7-8, .pure-u-21-24 {*width: 87.469%}
.pure-u-11-12, .pure-u-22-24 {*width: 91.6357%}
.pure-u-23-24 {*width: 95.8023%}
.pure-button {*display: inline}
.pure-button {*font-size: 90%}
.pure-button {*overflow: visible}
.pure-button {*color: #444}
.pure-button-hover, .pure-button:hover, .pure-button:focus {filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#1a000000', GradientType=0)}
.pure-button[disabled], .pure-button-disabled, .pure-button-disabled:hover, .pure-button-disabled:focus, .pure-button-disabled:active {filter: progid:DXImageTransform.Microsoft.gradient(enabled=false)}
.pure-form-aligned input, .pure-form-aligned textarea, .pure-form-aligned select, .pure-form-aligned .pure-help-inline, .pure-form-message-inline {*display: inline}
.pure-form-aligned input, .pure-form-aligned textarea, .pure-form-aligned select, .pure-form-aligned .pure-help-inline, .pure-form-message-inline {*zoom: 1}
.pure-menu.pure-menu-horizontal>.pure-menu-heading {*display: inline}
.pure-menu.pure-menu-horizontal>ul {*display: inline}
.pure-menu-horizontal li {*display: inline}
.pure-paginator {*letter-spacing: normal}
.pure-paginator {*word-spacing: -.43em}
.pure-paginator li {*display: inline}
.pure-g {*letter-spacing: normal}
.pure-g {*word-spacing: -.43em}
.pure-u {*display: inline}
.pure-u-sm-1, .pure-u-sm-1-1, .pure-u-sm-1-2, .pure-u-sm-1-3, .pure-u-sm-2-3, .pure-u-sm-1-4, .pure-u-sm-3-4, .pure-u-sm-1-5, .pure-u-sm-2-5, .pure-u-sm-3-5, .pure-u-sm-4-5, .pure-u-sm-5-5, .pure-u-sm-1-6, .pure-u-sm-5-6, .pure-u-sm-1-8, .pure-u-sm-3-8, .pure-u-sm-5-8, .pure-u-sm-7-8, .pure-u-sm-1-12, .pure-u-sm-5-12, .pure-u-sm-7-12, .pure-u-sm-11-12, .pure-u-sm-1-24, .pure-u-sm-2-24, .pure-u-sm-3-24, .pure-u-sm-4-24, .pure-u-sm-5-24, .pure-u-sm-6-24, .pure-u-sm-7-24, .pure-u-sm-8-24, .pure-u-sm-9-24, .pure-u-sm-10-24, .pure-u-sm-11-24, .pure-u-sm-12-24, .pure-u-sm-13-24, .pure-u-sm-14-24, .pure-u-sm-15-24, .pure-u-sm-16-24, .pure-u-sm-17-24, .pure-u-sm-18-24, .pure-u-sm-19-24, .pure-u-sm-20-24, .pure-u-sm-21-24, .pure-u-sm-22-24, .pure-u-sm-23-24, .pure-u-sm-24-24 {*display: inline}
.pure-u-sm-1-24 {*width: 4.1357%}
.pure-u-sm-1-12, .pure-u-sm-2-24 {*width: 8.3023%}
.pure-u-sm-1-8, .pure-u-sm-3-24 {*width: 12.469%}
.pure-u-sm-1-6, .pure-u-sm-4-24 {*width: 16.6357%}
.pure-u-sm-1-5 {*width: 19.969%}
.pure-u-sm-5-24 {*width: 20.8023%}
.pure-u-sm-1-4, .pure-u-sm-6-24 {*width: 24.969%}
.pure-u-sm-7-24 {*width: 29.1357%}
.pure-u-sm-1-3, .pure-u-sm-8-24 {*width: 33.3023%}
.pure-u-sm-3-8, .pure-u-sm-9-24 {*width: 37.469%}
.pure-u-sm-2-5 {*width: 39.969%}
.pure-u-sm-5-12, .pure-u-sm-10-24 {*width: 41.6357%}
.pure-u-sm-11-24 {*width: 45.8023%}
.pure-u-sm-1-2, .pure-u-sm-12-24 {*width: 49.969%}
.pure-u-sm-13-24 {*width: 54.1357%}
.pure-u-sm-7-12, .pure-u-sm-14-24 {*width: 58.3023%}
.pure-u-sm-3-5 {*width: 59.969%}
.pure-u-sm-5-8, .pure-u-sm-15-24 {*width: 62.469%}
.pure-u-sm-2-3, .pure-u-sm-16-24 {*width: 66.6357%}
.pure-u-sm-17-24 {*width: 70.8023%}
.pure-u-sm-3-4, .pure-u-sm-18-24 {*width: 74.969%}
.pure-u-sm-19-24 {*width: 79.1357%}
.pure-u-sm-4-5 {*width: 79.969%}
.pure-u-sm-5-6, .pure-u-sm-20-24 {*width: 83.3023%}
.pure-u-sm-7-8, .pure-u-sm-21-24 {*width: 87.469%}
.pure-u-sm-11-12, .pure-u-sm-22-24 {*width: 91.6357%}
.pure-u-sm-23-24 {*width: 95.8023%}
.pure-u-md-1, .pure-u-md-1-1, .pure-u-md-1-2, .pure-u-md-1-3, .pure-u-md-2-3, .pure-u-md-1-4, .pure-u-md-3-4, .pure-u-md-1-5, .pure-u-md-2-5, .pure-u-md-3-5, .pure-u-md-4-5, .pure-u-md-5-5, .pure-u-md-1-6, .pure-u-md-5-6, .pure-u-md-1-8, .pure-u-md-3-8, .pure-u-md-5-8, .pure-u-md-7-8, .pure-u-md-1-12, .pure-u-md-5-12, .pure-u-md-7-12, .pure-u-md-11-12, .pure-u-md-1-24, .pure-u-md-2-24, .pure-u-md-3-24, .pure-u-md-4-24, .pure-u-md-5-24, .pure-u-md-6-24, .pure-u-md-7-24, .pure-u-md-8-24, .pure-u-md-9-24, .pure-u-md-10-24, .pure-u-md-11-24, .pure-u-md-12-24, .pure-u-md-13-24, .pure-u-md-14-24, .pure-u-md-15-24, .pure-u-md-16-24, .pure-u-md-17-24, .pure-u-md-18-24, .pure-u-md-19-24, .pure-u-md-20-24, .pure-u-md-21-24, .pure-u-md-22-24, .pure-u-md-23-24, .pure-u-md-24-24 {*display: inline}
.pure-u-md-1-24 {*width: 4.1357%}
.pure-u-md-1-12, .pure-u-md-2-24 {*width: 8.3023%}
.pure-u-md-1-8, .pure-u-md-3-24 {*width: 12.469%}
.pure-u-md-1-6, .pure-u-md-4-24 {*width: 16.6357%}
.pure-u-md-1-5 {*width: 19.969%}
.pure-u-md-5-24 {*width: 20.8023%}
.pure-u-md-1-4, .pure-u-md-6-24 {*width: 24.969%}
.pure-u-md-7-24 {*width: 29.1357%}
.pure-u-md-1-3, .pure-u-md-8-24 {*width: 33.3023%}
.pure-u-md-3-8, .pure-u-md-9-24 {*width: 37.469%}
.pure-u-md-2-5 {*width: 39.969%}
.pure-u-md-5-12, .pure-u-md-10-24 {*width: 41.6357%}
.pure-u-md-11-24 {*width: 45.8023%}
.pure-u-md-1-2, .pure-u-md-12-24 {*width: 49.969%}
.pure-u-md-13-24 {*width: 54.1357%}
.pure-u-md-7-12, .pure-u-md-14-24 {*width: 58.3023%}
.pure-u-md-3-5 {*width: 59.969%}
.pure-u-md-5-8, .pure-u-md-15-24 {*width: 62.469%}
.pure-u-md-2-3, .pure-u-md-16-24 {*width: 66.6357%}
.pure-u-md-17-24 {*width: 70.8023%}
.pure-u-md-3-4, .pure-u-md-18-24 {*width: 74.969%}
.pure-u-md-19-24 {*width: 79.1357%}
.pure-u-md-4-5 {*width: 79.969%}
.pure-u-md-5-6, .pure-u-md-20-24 {*width: 83.3023%}
.pure-u-md-7-8, .pure-u-md-21-24 {*width: 87.469%}
.pure-u-md-11-12, .pure-u-md-22-24 {*width: 91.6357%}
.pure-u-md-23-24 {*width: 95.8023%}
.pure-u-lg-1, .pure-u-lg-1-1, .pure-u-lg-1-2, .pure-u-lg-1-3, .pure-u-lg-2-3, .pure-u-lg-1-4, .pure-u-lg-3-4, .pure-u-lg-1-5, .pure-u-lg-2-5, .pure-u-lg-3-5, .pure-u-lg-4-5, .pure-u-lg-5-5, .pure-u-lg-1-6, .pure-u-lg-5-6, .pure-u-lg-1-8, .pure-u-lg-3-8, .pure-u-lg-5-8, .pure-u-lg-7-8, .pure-u-lg-1-12, .pure-u-lg-5-12, .pure-u-lg-7-12, .pure-u-lg-11-12, .pure-u-lg-1-24, .pure-u-lg-2-24, .pure-u-lg-3-24, .pure-u-lg-4-24, .pure-u-lg-5-24, .pure-u-lg-6-24, .pure-u-lg-7-24, .pure-u-lg-8-24, .pure-u-lg-9-24, .pure-u-lg-10-24, .pure-u-lg-11-24, .pure-u-lg-12-24, .pure-u-lg-13-24, .pure-u-lg-14-24, .pure-u-lg-15-24, .pure-u-lg-16-24, .pure-u-lg-17-24, .pure-u-lg-18-24, .pure-u-lg-19-24, .pure-u-lg-20-24, .pure-u-lg-21-24, .pure-u-lg-22-24, .pure-u-lg-23-24, .pure-u-lg-24-24 {*display: inline}
.pure-u-lg-1-24 {*width: 4.1357%}
.pure-u-lg-1-12, .pure-u-lg-2-24 {*width: 8.3023%}
.pure-u-lg-1-8, .pure-u-lg-3-24 {*width: 12.469%}
.pure-u-lg-1-6, .pure-u-lg-4-24 {*width: 16.6357%}
.pure-u-lg-1-5 {*width: 19.969%}
.pure-u-lg-5-24 {*width: 20.8023%}
.pure-u-lg-1-4, .pure-u-lg-6-24 {*width: 24.969%}
.pure-u-lg-7-24 {*width: 29.1357%}
.pure-u-lg-1-3, .pure-u-lg-8-24 {*width: 33.3023%}
.pure-u-lg-3-8, .pure-u-lg-9-24 {*width: 37.469%}
.pure-u-lg-2-5 {*width: 39.969%}
.pure-u-lg-5-12, .pure-u-lg-10-24 {*width: 41.6357%}
.pure-u-lg-11-24 {*width: 45.8023%}
.pure-u-lg-1-2, .pure-u-lg-12-24 {*width: 49.969%}
.pure-u-lg-13-24 {*width: 54.1357%}
.pure-u-lg-7-12, .pure-u-lg-14-24 {*width: 58.3023%}
.pure-u-lg-3-5 {*width: 59.969%}
.pure-u-lg-5-8, .pure-u-lg-15-24 {*width: 62.469%}
.pure-u-lg-2-3, .pure-u-lg-16-24 {*width: 66.6357%}
.pure-u-lg-17-24 {*width: 70.8023%}
.pure-u-lg-3-4, .pure-u-lg-18-24 {*width: 74.969%}
.pure-u-lg-19-24 {*width: 79.1357%}
.pure-u-lg-4-5 {*width: 79.969%}
.pure-u-lg-5-6, .pure-u-lg-20-24 {*width: 83.3023%}
.pure-u-lg-7-8, .pure-u-lg-21-24 {*width: 87.469%}
.pure-u-lg-11-12, .pure-u-lg-22-24 {*width: 91.6357%}
.pure-u-lg-23-24 {*width: 95.8023%}
.pure-u-xl-1, .pure-u-xl-1-1, .pure-u-xl-1-2, .pure-u-xl-1-3, .pure-u-xl-2-3, .pure-u-xl-1-4, .pure-u-xl-3-4, .pure-u-xl-1-5, .pure-u-xl-2-5, .pure-u-xl-3-5, .pure-u-xl-4-5, .pure-u-xl-5-5, .pure-u-xl-1-6, .pure-u-xl-5-6, .pure-u-xl-1-8, .pure-u-xl-3-8, .pure-u-xl-5-8, .pure-u-xl-7-8, .pure-u-xl-1-12, .pure-u-xl-5-12, .pure-u-xl-7-12, .pure-u-xl-11-12, .pure-u-xl-1-24, .pure-u-xl-2-24, .pure-u-xl-3-24, .pure-u-xl-4-24, .pure-u-xl-5-24, .pure-u-xl-6-24, .pure-u-xl-7-24, .pure-u-xl-8-24, .pure-u-xl-9-24, .pure-u-xl-10-24, .pure-u-xl-11-24, .pure-u-xl-12-24, .pure-u-xl-13-24, .pure-u-xl-14-24, .pure-u-xl-15-24, .pure-u-xl-16-24, .pure-u-xl-17-24, .pure-u-xl-18-24, .pure-u-xl-19-24, .pure-u-xl-20-24, .pure-u-xl-21-24, .pure-u-xl-22-24, .pure-u-xl-23-24, .pure-u-xl-24-24 {*display: inline}
.pure-u-xl-1-24 {*width: 4.1357%}
.pure-u-xl-1-12, .pure-u-xl-2-24 {*width: 8.3023%}
.pure-u-xl-1-8, .pure-u-xl-3-24 {*width: 12.469%}
.pure-u-xl-1-6, .pure-u-xl-4-24 {*width: 16.6357%}
.pure-u-xl-1-5 {*width: 19.969%}
.pure-u-xl-5-24 {*width: 20.8023%}
.pure-u-xl-1-4, .pure-u-xl-6-24 {*width: 24.969%}
.pure-u-xl-7-24 {*width: 29.1357%}
.pure-u-xl-1-3, .pure-u-xl-8-24 {*width: 33.3023%}
.pure-u-xl-3-8, .pure-u-xl-9-24 {*width: 37.469%}
.pure-u-xl-2-5 {*width: 39.969%}
.pure-u-xl-5-12, .pure-u-xl-10-24 {*width: 41.6357%}
.pure-u-xl-11-24 {*width: 45.8023%}
.pure-u-xl-1-2, .pure-u-xl-12-24 {*width: 49.969%}
.pure-u-xl-13-24 {*width: 54.1357%}
.pure-u-xl-7-12, .pure-u-xl-14-24 {*width: 58.3023%}
.pure-u-xl-3-5 {*width: 59.969%}
.pure-u-xl-5-8, .pure-u-xl-15-24 {*width: 62.469%}
.pure-u-xl-2-3, .pure-u-xl-16-24 {*width: 66.6357%}
.pure-u-xl-17-24 {*width: 70.8023%}
.pure-u-xl-3-4, .pure-u-xl-18-24 {*width: 74.969%}
.pure-u-xl-19-24 {*width: 79.1357%}
.pure-u-xl-4-5 {*width: 79.969%}
.pure-u-xl-5-6, .pure-u-xl-20-24 {*width: 83.3023%}
.pure-u-xl-7-8, .pure-u-xl-21-24 {*width: 87.469%}
.pure-u-xl-11-12, .pure-u-xl-22-24 {*width: 91.6357%}
.pure-u-xl-23-24 {*width: 95.8023%}
.CodeMirror-gutter {*zoom: 1}
.CodeMirror-gutter {*display: inline}
.CodeMirror span {*vertical-align: text-bottom}
- Old Property Prefixes14
Properties with a no longer needed vendor prefix
These have since been integrated or removed from mentioned browsers and can safely be removed from CSS
hr { -moz-box-sizing: content-box } // was required by firefox 28 and earlier
input[type=search] { -moz-box-sizing: content-box } // was required by firefox 28 and earlier
input[type=search] { -webkit-box-sizing: content-box } // was required by android 3, chrome 9, ios_saf 4.2, safari 5 and earlier
.pure-form input[type=text], .pure-form input[type=password], .pure-form input[type=email], .pure-form input[type=url], .pure-form input[type=date], .pure-form input[type=month], .pure-form input[type=time], .pure-form input[type=datetime], .pure-form input[type=datetime-local], .pure-form input[type=week], .pure-form input[type=number], .pure-form input[type=search], .pure-form input[type=tel], .pure-form input[type=color], .pure-form select, .pure-form textarea { -webkit-box-sizing: border-box } // was required by android 3, chrome 9, ios_saf 4.2, safari 5 and earlier
.pure-form input[type=text], .pure-form input[type=password], .pure-form input[type=email], .pure-form input[type=url], .pure-form input[type=date], .pure-form input[type=month], .pure-form input[type=time], .pure-form input[type=datetime], .pure-form input[type=datetime-local], .pure-form input[type=week], .pure-form input[type=number], .pure-form input[type=search], .pure-form input[type=tel], .pure-form input[type=color], .pure-form select, .pure-form textarea { -moz-box-sizing: border-box } // was required by firefox 28 and earlier
.pure-form input:not([type]) { -webkit-box-sizing: border-box } // was required by android 3, chrome 9, ios_saf 4.2, safari 5 and earlier
.pure-form input:not([type]) { -moz-box-sizing: border-box } // was required by firefox 28 and earlier
.CodeMirror-linenumber { -moz-box-sizing: content-box } // was required by firefox 28 and earlier
.cm-animate-fat-cursor { -moz-animation: blink 1.06s steps(1) infinite } // was required by firefox 15 and earlier
.CodeMirror-scroll { -moz-box-sizing: content-box } // was required by firefox 28 and earlier
.CodeMirror-sizer { -moz-box-sizing: content-box } // was required by firefox 28 and earlier
.CodeMirror-gutter { -moz-box-sizing: content-box } // was required by firefox 28 and earlier
.CodeMirror pre { -moz-border-radius: 0 } // was required by firefox 3.6 and earlier
.CodeMirror pre { -webkit-border-radius: 0 } // was required by android 2.1, chrome 4, ios_saf 3.2, safari 4 and earlier
- Qualified Selectors35
Since IDs are unique and classes are more unique than tags, adding a tag name would slow down the matching process needlessly
Don’t qualify class or ID rules with tag names, as they are more unique than the tag. Strip tag names where possible
a.pure-button-primary {}
a.pure-button-selected {}
.pure-form input.pure-input-rounded {}
.pure-menu-horizontal li.pure-menu-separator {}
.pure-menu-horizontal li li.pure-menu-separator {}
.pure-menu li.pure-menu-disabled a:hover {}
.pure-menu li.pure-menu-disabled a:focus {}
.CodeMirror div.CodeMirror-cursor {}
.CodeMirror div.CodeMirror-secondarycursor {}
.CodeMirror.cm-keymap-fat-cursor div.CodeMirror-cursor {}
.CodeMirror.cm-keymap-fat-cursor div.CodeMirror-cursors {}
div.CodeMirror span.CodeMirror-matchingbracket {}
div.CodeMirror span.CodeMirror-matchingbracket {}
div.CodeMirror span.CodeMirror-nonmatchingbracket {}
div.CodeMirror span.CodeMirror-nonmatchingbracket {}
.CodeMirror div.CodeMirror-cursor {}
div.CodeMirror-cursors {}
.CodeMirror-focused div.CodeMirror-cursors {}
.CodeMirror div.CodeMirror-cursors {}
span.CodeMirror-selectedtext {}
.cm-s-monokai div.CodeMirror-selected {}
.cm-s-monokai span.cm-comment {}
.cm-s-monokai span.cm-atom {}
.cm-s-monokai span.cm-number {}
.cm-s-monokai span.cm-property {}
.cm-s-monokai span.cm-attribute {}
.cm-s-monokai span.cm-keyword {}
.cm-s-monokai span.cm-string {}
.cm-s-monokai span.cm-variable {}
.cm-s-monokai span.cm-variable-2 {}
.cm-s-monokai span.cm-def {}
.cm-s-monokai span.cm-bracket {}
.cm-s-monokai span.cm-tag {}
.cm-s-monokai span.cm-link {}
.cm-s-monokai span.cm-error {}
- Universal Selectors10
The universal selector matches any element type
Universal selectors can be implied (and therefore omitted) if it isn’t the only component of the simple selector, avoid whenever possible
[data-icon] {}
[class^="icon-"] {}
[class*=" icon-"] {}
[hidden] {}
[hidden] {}
.opera-only :-o-prefocus {}
.pure-g [class*="pure-u"] {}
.opera-only :-o-prefocus {}
.opera-only :-o-prefocus {}
.pure-g [class*="pure-u"] {}
CSS Metrics
Base64 Length | 0 |
Redundant Body Selectors | 0 |
Redundant Child Nodes Selectors | 0 |
Colors | 84 |
Comments | 5 |
Comments Length | 597 |
Empty Rules | 0 |
Expressions | 0 |
Imports | 0 |
Media Queries | 7 |
Parsing Errors | 0 |
Specificity Id Avg | 0 |
Specificity Id Total | 1 |
Specificity Class Avg | 1.25 |
Specificity Class Total | 1206 |
Specificity Tag Avg | 0.37 |
Specificity Tag Total | 360 |
Selectors By Attribute | 118 |
Selectors By Class | 976 |
Selectors By Id | 1 |
Selectors By Pseudo | 92 |
Selectors By Tag | 336 |
Length | 42235 |
Rules | 462 |
Selectors | 964 |
Declarations | 1112 |