diff --git a/.stylelintrc.json b/.stylelintrc.json new file mode 100644 index 0000000000000..52955abb04f60 --- /dev/null +++ b/.stylelintrc.json @@ -0,0 +1,7 @@ +{ + "rules": { + "block-no-empty": true, + "length-zero-no-unit": true, + "property-no-unknown": true + } +} diff --git a/Gruntfile.js b/Gruntfile.js index 61f18481e23a8..ca128d09971f1 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -1760,7 +1760,29 @@ module.exports = function(grunt) { 'qunit:compiled' ] ); + grunt.registerTask( 'lint:css', 'Runs Stylelint on core CSS.', function() { + var done = this.async(); + + grunt.util.spawn( { + cmd: 'npx', + args: [ + 'wp-scripts', + 'lint-style', + SOURCE_DIR + 'wp-admin/css/*.css', + SOURCE_DIR + 'wp-includes/css/*.css', + '--ignore-pattern', + '**/*.min.css', + '--ignore-pattern', + '**/*-rtl.css' + ], + opts: { stdio: 'inherit' } + }, function( error ) { + done( ! error ); + } ); + } ); + grunt.registerTask( 'precommit:css', [ + 'lint:css', 'postcss:core' ] ); @@ -1835,7 +1857,7 @@ module.exports = function(grunt) { } if ( code === 0 ) { - if ( [ 'package.json', 'Gruntfile.js', 'composer.json' ].some( testPath ) ) { + if ( [ 'package.json', 'Gruntfile.js', 'composer.json', '.stylelintrc.json' ].some( testPath ) ) { grunt.log.writeln( 'Configuration files modified. Running `prerelease`.' ); taskList.push( 'prerelease' ); } else { diff --git a/src/wp-admin/css/list-tables.css b/src/wp-admin/css/list-tables.css index 8b03e3c08d353..59b413ea56423 100644 --- a/src/wp-admin/css/list-tables.css +++ b/src/wp-admin/css/list-tables.css @@ -1986,7 +1986,7 @@ div.action-links, .plugins .active th.check-column input, .plugins .active td.check-column input { - margin-left: 0px; + margin-left: 0; } .plugins tr.active, diff --git a/src/wp-includes/css/media-views.css b/src/wp-includes/css/media-views.css index 6748a50f00c57..b821add957e1b 100644 --- a/src/wp-includes/css/media-views.css +++ b/src/wp-includes/css/media-views.css @@ -336,7 +336,7 @@ grid-template-columns: repeat( 2, 1fr ); grid-template-rows: repeat( 2, 1fr ); grid-column-gap: 12px; - grid-row-gap: 0px; + grid-row-gap: 0; align-items: end; } @@ -564,7 +564,7 @@ select#media-attachment-filters ~ select#media-attachment-date-filters { width: 16px; height: 16px; font-size: 16px; - margin-top: 0px; + margin-top: 0; } .media-sidebar .setting .value,