NAME

CSS::Tidy - reformat CSS

SYNOPSIS

use CSS::Tidy 'tidy_css';
my $output = tidy_css ($input);

VERSION

This documents version 0.00_03 of CSS-Tidy corresponding to git commit 1668f31eff84bdf5c79ba4e22b0cdd2117c45935 released on Thu Jan 28 14:17:55 2021 +0900.

DESCRIPTION

This reformats CSS.

The idea is to have a formatting script which can be used to consistently format CSS.

FUNCTIONS

tidy_css

my $output = tidy_css ($input);

Given CSS in $input, reformat it into a consistent format and return the value.

TRANSFORMATIONS APPLIED

Indentation

Indentation is changed to multiples of four spaces.

Trailing whitespace

Trailing whitespace (blanks after the end of the line) is removed.

Property/value pairs

The spacing between property/value pairs such as

font-size:21em;

is altered to put a single space after the colon:

font-size: 21em;
Declaration blocks

A blank line is inserted between declaration blocks.

Single-line braces are expanded out
.something { something:something; }

is expanded to

.something {
    something: something;
}
Comments have a blank line before and after

If the comment is on a line by itself, it will be given one blank line before and after itself.

SCRIPT

The script csstidy runs "tidy_css" on STDIN and prints the result to STDOUT. There is also css-tidy.el in the distribution which enables one to run csstidy on the current buffer.

SEE ALSO

About CSS

CSS Specification

CSS Syntax Module Level 3 at the W3 Consortium.

Other CPAN modules

Parsers

CSS

[Author: IAMCAL; Date: 2011-03-22; Version: 1.09]

CSS::Croco

[Author: GUGU; Date: 2009-12-26; Version: 0.09]

CSS::DOM

[⭐ Author: SPROUT; Date: 2018-01-29; Version: 0.17]

CSS::Object

[⭐ Author: JDEGUEST; Date: 2020-08-12; Version: v0.1.3]

CSS::SAC

[Author: BJOERN; Date: 2008-07-05; Version: 0.08]

👎 This seems to be unusable, it fails on the CSS stylesheets we've tried it on.

CSS::Simple

[Author: KAMELKEV; Date: 2017-11-16; Version: 3224]

CSS::Struct

[Author: SKIM; Date: 2020-08-11; Version: 0.03]

It doesn't have very much documentation. See https://github.com/michal-josef-spacek/CSS-Struct/issues/2.

CSS::Tiny

[⭐ Author: CHORNY; Date: 2016-03-10; Version: 1.20]

Preprocessors

CSS::LESS

[Author: MUGIFLY; Date: 2013-09-20; Version: v0.0.3]

CSS::Sass

[⭐ Author: OCBNET; Date: 2020-05-04; Version: v3.6.3]

Minifiers

CSS::Compressor

[⭐ Author: JANUS; Date: 2018-12-03; Version: 0.05]

CSS::Minifier

[⭐ Author: PMICHAUX; Date: 2007-08-03; Version: 0.01]

CSS::Minifier::XS

[⭐ Author: GTERMARS; Date: 2020-12-31; Version: 0.11]

CSS::Packer

[⭐ Author: LEEJO; Date: 2018-11-06; Version: 2.07]

CSS::Squish

[Author: TSIBLEY; Date: 2010-11-05; Version: 0.10]

Other

CSS::Coverage

[⭐ Author: SARTAK; Date: 2013-08-08; Version: 0.04]

👎 Test whether your styles are actually in use or not. Unfortunately it depends on "CSS::SAC" which seems to be unusable.

CSS::Inliner

[⭐ Author: KAMELKEV; Date: 2020-01-01; Version: 4014]

Test::CSS

[Author: MANWAR; Date: 2017-09-09; Version: 0.08]

Test CSS files or strings using regular expressions and a list of properties. The properties list is somewhat out of date, for example it doesn't have the touch-action property. See https://github.com/manwar/Test-CSS/issues/2.

AUTHOR

Ben Bullock, <bkb@cpan.org>

COPYRIGHT & LICENCE

This package and associated files are copyright (C) 2021 Ben Bullock.

You can use, copy, modify and redistribute this package and associated files under the Perl Artistic Licence or the GNU General Public Licence.