CSS-Prepare

 view release on metacpan or  search on metacpan

META.yml  view on Meta::CPAN

author:
    - Mark Norman Francis <norm@cackhanded.net>
license:            unknown
distribution_type:  module
configure_requires:
    ExtUtils::MakeMaker:  0
build_requires:
    ExtUtils::MakeMaker:  0
requires:
    Digest::SHA1:  0
    Modern::Perl:  0
    Test::More:    0
    version:       0
no_index:
    directory:
        - t
        - inc
generated_by:       ExtUtils::MakeMaker version 6.56
meta-spec:
    url:      http://module-build.sourceforge.net/META-spec-v1.4.html
    version:  1.4

Makefile.PL  view on Meta::CPAN

    AUTHOR              => 'Mark Norman Francis <norm@cackhanded.net>',
    VERSION_FROM        => 'lib/CSS/Prepare.pm',
    ABSTRACT_FROM       => 'lib/CSS/Prepare.pm',
    PL_FILES            => {},
    EXE_FILES           => [
        'bin/cssprepare',
        'bin/assets',
    ],
    PREREQ_PM => {
        'Test::More'   => 0,
        'Modern::Perl' => 0,
        'version'      => 0,
        'Digest::SHA1' => 0,
    },
    dist                => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', },
    clean               => { FILES => 'CSS-Prepare-*' },
);

README  view on Meta::CPAN


It understands (almost) all of CSS2.1 and some aspects of CSS3.

Plugins can extend the syntax of CSS, allowing features such as variables,
server-side calculated values, compound elements and mixins.


Dependencies
------------
- Perl v5.10 or better
- Modern::Perl
- Digest::SHA1

Copyright and license
---------------------
Copyright (c) 2010-2011 Mark Norman Francis <norm@cackhanded.net>.

This library is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.

bin/assets  view on Meta::CPAN

#!/usr/bin/env perl

use Modern::Perl;
use CSS::Prepare;
use Getopt::Long    qw( :config bundling );
use Pod::Usage;

use constant OPTIONS => qw(
             help|h
    assets-output|m=s
      assets-base|n=s
);
use constant REQUIRED_OPTIONS => qw( assets-output );

bin/cssprepare  view on Meta::CPAN

#!/usr/bin/env perl

use Modern::Perl;

use CSS::Prepare;
use File::stat;
use FileHandle;
use Getopt::Long    qw( :config bundling );
use IO::Handle;
use POSIX           qw( mkfifo );
use Pod::Usage;
use Term::ANSIColor;
use Time::HiRes     qw( gettimeofday tv_interval );

lib/CSS/Prepare.pm  view on Meta::CPAN

package CSS::Prepare;

use Modern::Perl;

use CSS::Prepare::CSSGrammar;
use CSS::Prepare::Property::Background;
use CSS::Prepare::Property::Border;
use CSS::Prepare::Property::BorderRadius;
use CSS::Prepare::Property::Color;
use CSS::Prepare::Property::Effects;
use CSS::Prepare::Property::Font;
use CSS::Prepare::Property::Formatting;
use CSS::Prepare::Property::Generated;

lib/CSS/Prepare/CSSGrammar.pm  view on Meta::CPAN

package CSS::Prepare::CSSGrammar;

use Modern::Perl;
use Exporter;

our @ISA    = qw( Exporter );
our @EXPORT = qw(
        $grammar_media_query_list
    );



my $ident = qr{ -? [_a-z] [_a-z0-9-]* }ix;

lib/CSS/Prepare/Plugin/BorderRadius.pm  view on Meta::CPAN

package CSS::Prepare::Plugin::BorderRadius;

use Modern::Perl;
use CSS::Prepare::Property::Expansions;
use CSS::Prepare::Property::Values;

my $get_border_radius_value = qr{ 
        (?'h1' $individual_border_radius_value )
        (?: \s+ (?'h2' $individual_border_radius_value ) )?
        (?: \s+ (?'h3' $individual_border_radius_value ) )?
        (?: \s+ (?'h4' $individual_border_radius_value ) )?
        (?:
            \s* / \s*

lib/CSS/Prepare/Plugin/Contain.pm  view on Meta::CPAN

package CSS::Prepare::Plugin::Contain;

# TODO
#   -   how to inject styles for _DIFFERENT_ selectors? (append to the end of
#       the current block, which helps with the following)
#   -   stop optimise from turning display:inline; display:block; into
#       one rule by putting it within two chunks ($prep->add_chunk()?)

use Modern::Perl;
use CSS::Prepare::Property::Expansions;
use CSS::Prepare::Property::Values;

my $contain_value = qr{ 
            (?'overflow' overflow )
        |
            (?'easy' easy ) 
            (?: \s+ (?'easytype' valid | hack ) )?
    }x;

lib/CSS/Prepare/Plugin/Opacity.pm  view on Meta::CPAN

package CSS::Prepare::Plugin::Opacity;

use Modern::Perl;
use CSS::Prepare::Property::Expansions;
use CSS::Prepare::Property::Values;

sub expand {
    my $self     = shift;
    my $property = shift;
    my $value    = shift;
    
    if ( '-cp-opacity' eq $property ) {
        my $ms_opacity    = $value * 100;

lib/CSS/Prepare/Property/Background.pm  view on Meta::CPAN

package CSS::Prepare::Property::Background;

use Modern::Perl;

use CSS::Prepare::Property::Expansions;
use CSS::Prepare::Property::Values;



sub parse {
    my $self        = shift;
    my $has_hack    = shift;
    my $location    = shift;

lib/CSS/Prepare/Property/Border.pm  view on Meta::CPAN

package CSS::Prepare::Property::Border;

use Modern::Perl;
use CSS::Prepare::Property::Expansions;
use CSS::Prepare::Property::Values;



sub parse {
    my $self        = shift;
    my $has_hack    = shift;
    my $location    = shift;
    my %declaration = @_;

lib/CSS/Prepare/Property/BorderRadius.pm  view on Meta::CPAN

package CSS::Prepare::Property::BorderRadius;

use Modern::Perl;
use CSS::Prepare::Property::Expansions;
use CSS::Prepare::Property::Values;

my $get_border_radius_values = qr{ 
        (?'h1' $individual_border_radius_value )
        (?: \s+ (?'h2' $individual_border_radius_value ) )?
        (?: \s+ (?'h3' $individual_border_radius_value ) )?
        (?: \s+ (?'h4' $individual_border_radius_value ) )?
        (?:
            \s* / \s*

lib/CSS/Prepare/Property/Color.pm  view on Meta::CPAN

package CSS::Prepare::Property::Color;

use Modern::Perl;
use CSS::Prepare::Property::Expansions;
use CSS::Prepare::Property::Values;



sub parse {
    my $self        = shift;
    my $has_hack    = shift;
    my $location    = shift;
    my %declaration = @_;

lib/CSS/Prepare/Property/Effects.pm  view on Meta::CPAN

package CSS::Prepare::Property::Effects;

use Modern::Perl;
use CSS::Prepare::Property::Values;
use CSS::Prepare::Property::Expansions;



sub parse {
    my $self        = shift;
    my $has_hack    = shift;
    my $location    = shift;
    my %declaration = @_;

lib/CSS/Prepare/Property/Expansions.pm  view on Meta::CPAN

package CSS::Prepare::Property::Expansions;

use Modern::Perl;
use CSS::Prepare::Property::Values;
use Exporter;

our @ISA    = qw( Exporter );
our @EXPORT = qw(
        expand_trbl_shorthand
        collapse_trbl_shorthand
        expand_clip
        shorten_colour_value
        shorten_length_value

lib/CSS/Prepare/Property/Font.pm  view on Meta::CPAN

package CSS::Prepare::Property::Font;

use Modern::Perl;
use CSS::Prepare::Property::Values;



sub parse {
    my $self        = shift;
    my $has_hack    = shift;
    my $location    = shift;
    my %declaration = @_;
    

lib/CSS/Prepare/Property/Formatting.pm  view on Meta::CPAN

package CSS::Prepare::Property::Formatting;

use Modern::Perl;
use CSS::Prepare::Property::Values;



sub parse {
    my $self        = shift;
    my $has_hack    = shift;
    my $location    = shift;
    my %declaration = @_;
    

lib/CSS/Prepare/Property/Generated.pm  view on Meta::CPAN

package CSS::Prepare::Property::Generated;

use Modern::Perl;
use CSS::Prepare::Property::Expansions;
use CSS::Prepare::Property::Values;



sub parse {
    my $self        = shift;
    my $has_hack    = shift;
    my $location    = shift;
    my %declaration = @_;

lib/CSS/Prepare/Property/Hacks.pm  view on Meta::CPAN

package CSS::Prepare::Property::Hacks;

use Modern::Perl;

my @COMMON_HACK_PROPERTIES = qw( zoom filter );



sub parse {
    my $self        = shift;
    my $has_hack    = shift;
    my $location    = shift;
    my %declaration = @_;

lib/CSS/Prepare/Property/Margin.pm  view on Meta::CPAN

package CSS::Prepare::Property::Margin;

use Modern::Perl;
use CSS::Prepare::Property::Expansions;
use CSS::Prepare::Property::Values;



sub parse {
    my $self        = shift;
    my $has_hack    = shift;
    my $location    = shift;
    my %declaration = @_;

lib/CSS/Prepare/Property/Padding.pm  view on Meta::CPAN

package CSS::Prepare::Property::Padding;

use Modern::Perl;
use CSS::Prepare::Property::Expansions;
use CSS::Prepare::Property::Values;



sub parse {
    my $self        = shift;
    my $has_hack    = shift;
    my $location    = shift;
    my %declaration = @_;

lib/CSS/Prepare/Property/Tables.pm  view on Meta::CPAN

package CSS::Prepare::Property::Tables;

use Modern::Perl;
use CSS::Prepare::Property::Values;



sub parse {
    my $self        = shift;
    my $has_hack    = shift;
    my $location    = shift;
    my %declaration = @_;
    

lib/CSS/Prepare/Property/Text.pm  view on Meta::CPAN

package CSS::Prepare::Property::Text;

use Modern::Perl;
use CSS::Prepare::Property::Values;



sub parse {
    my $self        = shift;
    my $has_hack    = shift;
    my $location    = shift;
    my %declaration = @_;
    

lib/CSS/Prepare/Property/UI.pm  view on Meta::CPAN

package CSS::Prepare::Property::UI;

use Modern::Perl;
use CSS::Prepare::Property::Expansions;
use CSS::Prepare::Property::Values;



sub parse {
    my $self        = shift;
    my $has_hack    = shift;
    my $location    = shift;
    my %declaration = @_;

lib/CSS/Prepare/Property/Values.pm  view on Meta::CPAN

package CSS::Prepare::Property::Values;

use Modern::Perl;
use Exporter;

our @ISA    = qw( Exporter );
our @EXPORT = qw(
        is_length_value
        is_percentage_value
        is_string_value
        is_url_value
        
        is_background_attachment_value

lib/CSS/Prepare/Property/Vendor.pm  view on Meta::CPAN

package CSS::Prepare::Property::Vendor;

use Modern::Perl;



sub parse {
    my $self        = shift;
    my $has_hack    = shift;
    my $location    = shift;
    my %declaration = @_;
    
    my $property = $declaration{'property'};

t/01.expansion.t  view on Meta::CPAN

use Modern::Perl;
use Test::More  tests => 4;

use CSS::Prepare::Property::Expansions;
use Data::Dumper;
local $Data::Dumper::Terse     = 1;
local $Data::Dumper::Indent    = 1;
local $Data::Dumper::Useqq     = 1;
local $Data::Dumper::Deparse   = 1;
local $Data::Dumper::Quotekeys = 0;
local $Data::Dumper::Sortkeys  = 1;

t/01.parse.t  view on Meta::CPAN

use Modern::Perl;
use Test::More  tests => 28;

use CSS::Prepare;
use Data::Dumper;
local $Data::Dumper::Terse     = 1;
local $Data::Dumper::Indent    = 1;
local $Data::Dumper::Useqq     = 1;
local $Data::Dumper::Deparse   = 1;
local $Data::Dumper::Quotekeys = 0;
local $Data::Dumper::Sortkeys  = 1;

t/01.plugins.t  view on Meta::CPAN

use Modern::Perl;
use Test::More  tests => 4;

use CSS::Prepare;
use Data::Dumper;
local $Data::Dumper::Terse     = 1;
local $Data::Dumper::Indent    = 1;
local $Data::Dumper::Useqq     = 1;
local $Data::Dumper::Deparse   = 1;
local $Data::Dumper::Quotekeys = 0;
local $Data::Dumper::Sortkeys  = 1;

 view all matches for this distribution
 view release on metacpan -  search on metacpan

( run in 1.030 second using v1.00-cache-2.02-grep-82fe00e-cpan-72ae3ad1e6da )