-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | CSS Minifier
--
-- A CSS minifier which not only aims at reducing the amount of bytes of
-- the output, but also at improving gzip compression. It may be used as
-- a library, or a stand-alone executable. For the library, refer to the
-- Hasmin module documentation. For the program: the output is the
-- minified CSS file, but hasmin allows also its compression into gzip
-- using Google's Zopfli library.
--
-- To use it: ./hasmin input.css > output.css
--
-- By default, most minification techniques are enabled. For a list of
-- available flags, do: ./hasmin --help
@package hasmin
@version 0.3.3
module Hasmin.Config
-- | The configuration used for minifying.
data Config
Config :: ColorSettings -> DimensionSettings -> GradientSettings -> Bool -> Bool -> Bool -> Bool -> Bool -> FontWeightSettings -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> LetterCase -> SortingMethod -> SortingMethod -> Config
[colorSettings] :: Config -> ColorSettings
[dimensionSettings] :: Config -> DimensionSettings
[gradientSettings] :: Config -> GradientSettings
[shouldUsePropertyTraits] :: Config -> Bool
[shouldCleanRules] :: Config -> Bool
[shouldMinifyTimingFunctions] :: Config -> Bool
[shouldMinifyFilterFunctions] :: Config -> Bool
[shouldRemoveQuotes] :: Config -> Bool
[fontweightSettings] :: Config -> FontWeightSettings
[shouldMinifyTransformOrigin] :: Config -> Bool
[shouldMinifyMicrosyntax] :: Config -> Bool
[shouldMinifyKeyframeSelectors] :: Config -> Bool
[shouldMinifyTransformFunction] :: Config -> Bool
[shouldConvertEscaped] :: Config -> Bool
[shouldConvertNullPercentages] :: Config -> Bool
[shouldRemoveEmptyBlocks] :: Config -> Bool
[shouldRemoveDuplicateSelectors] :: Config -> Bool
[shouldNormalizeQuotes] :: Config -> Bool
[letterCase] :: Config -> LetterCase
[selectorSorting] :: Config -> SortingMethod
[declarationSorting] :: Config -> SortingMethod
data ColorSettings
ColorMinOff :: ColorSettings
ColorMinOn :: ColorSettings
data DimensionSettings
DimMinOff :: DimensionSettings
DimMinOn :: DimensionSettings
data GradientSettings
GradientMinOff :: GradientSettings
GradientMinOn :: GradientSettings
data FontWeightSettings
FontWeightMinOff :: FontWeightSettings
FontWeightMinOn :: FontWeightSettings
data LetterCase
-- | Leave letter casing as is.
Original :: LetterCase
-- | Lowercase whatever possible to improve gzip compression.
Lowercase :: LetterCase
data SortingMethod
NoSorting :: SortingMethod
Lexicographical :: SortingMethod
-- | A default config with most settings enabled. Used by the minify
-- function, mainly for testing purposes.
defaultConfig :: Config
type Instructions = (Commands, Config)
data Commands
Commands :: Bool -> Bool -> FilePath -> Commands
[shouldBeautify] :: Commands -> Bool
[shouldCompress] :: Commands -> Bool
[file] :: Commands -> FilePath
instance GHC.Show.Show Hasmin.Config.Config
instance GHC.Classes.Eq Hasmin.Config.FontWeightSettings
instance GHC.Show.Show Hasmin.Config.FontWeightSettings
instance GHC.Classes.Eq Hasmin.Config.SortingMethod
instance GHC.Show.Show Hasmin.Config.SortingMethod
instance GHC.Classes.Eq Hasmin.Config.LetterCase
instance GHC.Show.Show Hasmin.Config.LetterCase
instance GHC.Classes.Eq Hasmin.Config.GradientSettings
instance GHC.Show.Show Hasmin.Config.GradientSettings
instance GHC.Classes.Eq Hasmin.Config.DimensionSettings
instance GHC.Show.Show Hasmin.Config.DimensionSettings
instance GHC.Classes.Eq Hasmin.Config.ColorSettings
instance GHC.Show.Show Hasmin.Config.ColorSettings
instance GHC.Show.Show Hasmin.Config.Commands
module Hasmin.Types.Class
-- | Class for types that can be converted to Text. Used for priting the
-- minified results.
class ToText a where toText = toStrict . toLazyText . toBuilder toBuilder = fromText . toText
toText :: ToText a => a -> Text
toBuilder :: ToText a => a -> Builder
-- | Class for types that can be minified
class Minifiable a where minify x = runReader (minifyWith x) defaultConfig
minifyWith :: Minifiable a => a -> Reader Config a
minify :: Minifiable a => a -> a
instance Hasmin.Types.Class.ToText GHC.Word.Word8
instance Hasmin.Types.Class.ToText GHC.Types.Int
instance Hasmin.Types.Class.ToText Data.Text.Internal.Text
instance (Hasmin.Types.Class.ToText a, Hasmin.Types.Class.ToText b) => Hasmin.Types.Class.ToText (Data.Either.Either a b)
-- | <repeat-style> data type used in background-repeat.
-- Specification: CSS Backgrounds and Borders Module Level 3
-- (§3.4)
module Hasmin.Types.RepeatStyle
data RepeatStyle
RepeatX :: RepeatStyle
RepeatY :: RepeatStyle
RSPair :: RSKeyword -> (Maybe RSKeyword) -> RepeatStyle
data RSKeyword
RsRepeat :: RSKeyword
RsSpace :: RSKeyword
RsRound :: RSKeyword
RsNoRepeat :: RSKeyword
instance GHC.Show.Show Hasmin.Types.RepeatStyle.RepeatStyle
instance GHC.Show.Show Hasmin.Types.RepeatStyle.RSKeyword
instance GHC.Classes.Eq Hasmin.Types.RepeatStyle.RSKeyword
instance Hasmin.Types.Class.ToText Hasmin.Types.RepeatStyle.RepeatStyle
instance Hasmin.Types.Class.Minifiable Hasmin.Types.RepeatStyle.RepeatStyle
instance GHC.Classes.Eq Hasmin.Types.RepeatStyle.RepeatStyle
instance Hasmin.Types.Class.ToText Hasmin.Types.RepeatStyle.RSKeyword
module Hasmin.Utils
epsilon :: Rational
eps :: Rational
fromLeft' :: Either a b -> a
fromRight' :: Either a b -> b
mconcatIntersperse :: Monoid b => (a -> b) -> b -> [a] -> b
restrict :: Ord a => a -> a -> a -> a
textualLength :: ToText a => a -> Int
replaceAt :: Int -> a -> [a] -> [a]
-- | CSS Numeric data types: <number>, <percentage>, and
-- <alphavalue>. All Rational newtypes to ensure dimension
-- conversion precision.
module Hasmin.Types.Numeric
-- | The <percentage> data type. Many CSS properties can take
-- percentage values, often to define sizes in terms of parent objects.
-- Percentages are formed by a <number> immediately followed by the
-- percentage sign %. There is no space between the % and the
-- number. Specification:
--
--
-- - <https://drafts.csswg.org/css-values-3/#percentages CSS
-- Value and Units Module Level 3 (§4.3)
--
-- - <https://www.w3.org/TR/CSS2/syndata.html#percentage-units
-- CSS2.1 (§4.3.3)
-- - <https://www.w3.org/TR/CSS1/#percentage-units CSS1
-- (§6.2)
--
newtype Percentage
Percentage :: Rational -> Percentage
toPercentage :: Real a => a -> Percentage
-- | The <number> data type. Real numbers, possibly with a fractional
-- component. When written literally, a number is either an integer, or
-- zero or more decimal digits followed by a dot (.) followed by one or
-- more decimal digits and optionally an exponent composed of "e" or
-- E and an integer. It corresponds to the <number-token>
-- production in the CSS Syntax Module [CSS3SYN]. As with integers, the
-- first character of a number may be immediately preceded by - or + to
-- indicate the number’s sign. Specifications:
--
--
-- - CSS Values and Units Module Level 3 (§4.2)
-- - CSS2.1 (§4.3.1)
-- - CSS1 (6 Units)
--
newtype Number
Number :: Rational -> Number
[getRational] :: Number -> Rational
toNumber :: Real a => a -> Number
fromNumber :: Fractional a => Number -> a
-- | The <alphavalue> data type. Syntactically a <number>. It
-- is the uniform opacity setting to be applied across an entire object.
-- Any values outside the range 0.0 (fully transparent) to 1.0 (fully
-- opaque) are clamped to this range. Specification:
--
--
-- - <https://www.w3.org/TR/css3-color/#transparency CSS
-- Color Module Level 3 (§3.2)
--
newtype Alphavalue
Alphavalue :: Rational -> Alphavalue
toAlphavalue :: Real a => a -> Alphavalue
mkAlphavalue :: Rational -> Alphavalue
instance GHC.Real.RealFrac Hasmin.Types.Numeric.Percentage
instance GHC.Real.Real Hasmin.Types.Numeric.Percentage
instance GHC.Real.Fractional Hasmin.Types.Numeric.Percentage
instance GHC.Num.Num Hasmin.Types.Numeric.Percentage
instance GHC.Classes.Ord Hasmin.Types.Numeric.Percentage
instance GHC.Show.Show Hasmin.Types.Numeric.Percentage
instance GHC.Classes.Eq Hasmin.Types.Numeric.Percentage
instance GHC.Real.RealFrac Hasmin.Types.Numeric.Alphavalue
instance GHC.Real.Real Hasmin.Types.Numeric.Alphavalue
instance GHC.Classes.Ord Hasmin.Types.Numeric.Alphavalue
instance GHC.Show.Show Hasmin.Types.Numeric.Alphavalue
instance GHC.Classes.Eq Hasmin.Types.Numeric.Alphavalue
instance GHC.Real.RealFrac Hasmin.Types.Numeric.Number
instance GHC.Real.Real Hasmin.Types.Numeric.Number
instance GHC.Real.Fractional Hasmin.Types.Numeric.Number
instance GHC.Num.Num Hasmin.Types.Numeric.Number
instance GHC.Classes.Ord Hasmin.Types.Numeric.Number
instance GHC.Show.Show Hasmin.Types.Numeric.Number
instance GHC.Classes.Eq Hasmin.Types.Numeric.Number
instance Hasmin.Types.Class.ToText Hasmin.Types.Numeric.Number
instance GHC.Num.Num Hasmin.Types.Numeric.Alphavalue
instance Hasmin.Types.Class.ToText Hasmin.Types.Numeric.Alphavalue
instance GHC.Enum.Bounded Hasmin.Types.Numeric.Alphavalue
instance GHC.Real.Fractional Hasmin.Types.Numeric.Alphavalue
instance Hasmin.Types.Class.ToText Hasmin.Types.Numeric.Percentage
-- | <color> data type.
module Hasmin.Types.Color
-- | The <color> CSS data type. Specifications:
--
--
-- - CSS Color Module Level 4
-- - CSS Color Module Level 3
-- - CSS2.1
-- - CSS1
--
data Color
Named :: Text -> Color
mkHex3 :: Char -> Char -> Char -> Color
mkHex4 :: Char -> Char -> Char -> Char -> Color
mkHex6 :: String -> String -> String -> Color
mkHex8 :: String -> String -> String -> String -> Color
mkNamed :: Text -> Maybe Color
mkHSL :: Int -> Percentage -> Percentage -> Color
mkHSLA :: Int -> Percentage -> Percentage -> Alphavalue -> Color
mkRGBInt :: Word8 -> Word8 -> Word8 -> Color
mkRGBPer :: Percentage -> Percentage -> Percentage -> Color
mkRGBAInt :: Word8 -> Word8 -> Word8 -> Alphavalue -> Color
mkRGBAPer :: Percentage -> Percentage -> Percentage -> Alphavalue -> Color
keywordColors :: [(Text, Color)]
minifyColor :: Color -> Color
instance GHC.Show.Show Hasmin.Types.Color.Color
instance GHC.Classes.Eq Hasmin.Types.Color.Color
instance GHC.Classes.Ord Hasmin.Types.Color.Color
instance Hasmin.Types.Class.Minifiable Hasmin.Types.Color.Color
instance Hasmin.Types.Class.ToText Hasmin.Types.Color.Color
-- | CSS Dimension data types: <length> (distance), <angle>,
-- <duration>, <frequency>, and <resolution>. Provides
-- conversion of absolute dimensions into other equivalent dimensions.
module Hasmin.Types.Dimension
-- | The <length> CSS data type
data Distance
Distance :: Number -> DistanceUnit -> Distance
data DistanceUnit
IN :: DistanceUnit
CM :: DistanceUnit
MM :: DistanceUnit
Q :: DistanceUnit
PC :: DistanceUnit
PT :: DistanceUnit
PX :: DistanceUnit
EM :: DistanceUnit
EX :: DistanceUnit
CH :: DistanceUnit
VH :: DistanceUnit
VW :: DistanceUnit
VMIN :: DistanceUnit
VMAX :: DistanceUnit
REM :: DistanceUnit
-- | The <angle> CSS data type
data Angle
Angle :: Number -> AngleUnit -> Angle
data AngleUnit
Deg :: AngleUnit
Grad :: AngleUnit
Rad :: AngleUnit
Turn :: AngleUnit
-- | The <duration> CSS data type
data Duration
Duration :: Number -> DurationUnit -> Duration
data DurationUnit
S :: DurationUnit
Ms :: DurationUnit
-- | The <frequency> CSS data type
data Frequency
Frequency :: Number -> FrequencyUnit -> Frequency
data FrequencyUnit
Hz :: FrequencyUnit
Khz :: FrequencyUnit
-- | The <resolution> CSS data type
data Resolution
Resolution :: Number -> ResolutionUnit -> Resolution
data ResolutionUnit
Dpi :: ResolutionUnit
Dpcm :: ResolutionUnit
Dppx :: ResolutionUnit
toInches :: Number -> DistanceUnit -> Number
toPixels :: Number -> DistanceUnit -> Number
toRadians :: Number -> AngleUnit -> Number
isRelative :: DistanceUnit -> Bool
instance GHC.Show.Show Hasmin.Types.Dimension.Resolution
instance GHC.Classes.Eq Hasmin.Types.Dimension.ResolutionUnit
instance GHC.Show.Show Hasmin.Types.Dimension.ResolutionUnit
instance GHC.Show.Show Hasmin.Types.Dimension.Frequency
instance GHC.Classes.Eq Hasmin.Types.Dimension.FrequencyUnit
instance GHC.Show.Show Hasmin.Types.Dimension.FrequencyUnit
instance GHC.Show.Show Hasmin.Types.Dimension.Duration
instance GHC.Classes.Eq Hasmin.Types.Dimension.DurationUnit
instance GHC.Show.Show Hasmin.Types.Dimension.DurationUnit
instance GHC.Show.Show Hasmin.Types.Dimension.Angle
instance GHC.Classes.Eq Hasmin.Types.Dimension.AngleUnit
instance GHC.Show.Show Hasmin.Types.Dimension.AngleUnit
instance GHC.Show.Show Hasmin.Types.Dimension.Distance
instance GHC.Classes.Eq Hasmin.Types.Dimension.DistanceUnit
instance GHC.Show.Show Hasmin.Types.Dimension.DistanceUnit
instance GHC.Classes.Eq Hasmin.Types.Dimension.Distance
instance Hasmin.Types.Class.Minifiable Hasmin.Types.Dimension.Distance
instance Hasmin.Types.Class.ToText Hasmin.Types.Dimension.Distance
instance GHC.Classes.Eq Hasmin.Types.Dimension.Angle
instance Hasmin.Types.Class.Minifiable Hasmin.Types.Dimension.Angle
instance Hasmin.Types.Class.ToText Hasmin.Types.Dimension.Angle
instance GHC.Classes.Eq Hasmin.Types.Dimension.Duration
instance Hasmin.Types.Class.Minifiable Hasmin.Types.Dimension.Duration
instance Hasmin.Types.Class.ToText Hasmin.Types.Dimension.Duration
instance GHC.Classes.Eq Hasmin.Types.Dimension.Frequency
instance Hasmin.Types.Class.Minifiable Hasmin.Types.Dimension.Frequency
instance Hasmin.Types.Class.ToText Hasmin.Types.Dimension.Frequency
instance GHC.Classes.Eq Hasmin.Types.Dimension.Resolution
instance Hasmin.Types.Class.Minifiable Hasmin.Types.Dimension.Resolution
instance Hasmin.Types.Class.ToText Hasmin.Types.Dimension.Resolution
instance Hasmin.Types.Class.ToText Hasmin.Types.Dimension.DistanceUnit
instance Hasmin.Types.Dimension.Unit Hasmin.Types.Dimension.DistanceUnit
instance Hasmin.Types.Class.ToText Hasmin.Types.Dimension.AngleUnit
instance Hasmin.Types.Dimension.Unit Hasmin.Types.Dimension.AngleUnit
instance Hasmin.Types.Class.ToText Hasmin.Types.Dimension.DurationUnit
instance Hasmin.Types.Dimension.Unit Hasmin.Types.Dimension.DurationUnit
instance Hasmin.Types.Class.ToText Hasmin.Types.Dimension.FrequencyUnit
instance Hasmin.Types.Dimension.Unit Hasmin.Types.Dimension.FrequencyUnit
instance Hasmin.Types.Class.ToText Hasmin.Types.Dimension.ResolutionUnit
instance Hasmin.Types.Dimension.Unit Hasmin.Types.Dimension.ResolutionUnit
module Hasmin.Types.BgSize
data BgSize
Cover :: BgSize
Contain :: BgSize
BgSize :: (Either PercentageLength Auto) -> (Maybe (Either PercentageLength Auto)) -> BgSize
data Auto
Auto :: Auto
instance GHC.Show.Show Hasmin.Types.BgSize.BgSize
instance GHC.Show.Show Hasmin.Types.BgSize.Auto
instance GHC.Classes.Eq Hasmin.Types.BgSize.Auto
instance Hasmin.Types.Class.ToText Hasmin.Types.BgSize.Auto
instance GHC.Classes.Eq Hasmin.Types.BgSize.BgSize
instance Hasmin.Types.Class.ToText Hasmin.Types.BgSize.BgSize
instance Hasmin.Types.Class.Minifiable Hasmin.Types.BgSize.BgSize
module Hasmin.Types.Position
data Position
Position :: Maybe PosKeyword -> Maybe PercentageLength -> Maybe PosKeyword -> Maybe PercentageLength -> Position
[origin1] :: Position -> Maybe PosKeyword
[offset1] :: Position -> Maybe PercentageLength
[origin2] :: Position -> Maybe PosKeyword
[offset2] :: Position -> Maybe PercentageLength
data PosKeyword
PosCenter :: PosKeyword
PosLeft :: PosKeyword
PosRight :: PosKeyword
PosTop :: PosKeyword
PosBottom :: PosKeyword
minifyPosition :: Position -> Position
p50 :: Maybe PercentageLength
l0 :: Maybe PercentageLength
instance GHC.Show.Show Hasmin.Types.Position.Position
instance GHC.Show.Show Hasmin.Types.Position.PosKeyword
instance GHC.Classes.Eq Hasmin.Types.Position.PosKeyword
instance Hasmin.Types.Class.ToText Hasmin.Types.Position.PosKeyword
instance Hasmin.Types.Class.Minifiable Hasmin.Types.Position.Position
instance Hasmin.Types.Class.ToText Hasmin.Types.Position.Position
instance GHC.Classes.Eq Hasmin.Types.Position.Position
module Hasmin.Types.FilterFunction
data FilterFunction
Blur :: Distance -> FilterFunction
Brightness :: (Either Number Percentage) -> FilterFunction
Contrast :: (Either Number Percentage) -> FilterFunction
Grayscale :: (Either Number Percentage) -> FilterFunction
Invert :: (Either Number Percentage) -> FilterFunction
Opacity :: (Either Number Percentage) -> FilterFunction
Saturate :: (Either Number Percentage) -> FilterFunction
Sepia :: (Either Number Percentage) -> FilterFunction
HueRotate :: Angle -> FilterFunction
DropShadow :: Distance -> Distance -> (Maybe Distance) -> (Maybe Color) -> FilterFunction
minifyPseudoShadow :: (Minifiable b, Minifiable t1, Minifiable t2, Traversable t) => (t2 -> t1 -> Maybe Distance -> t b -> b1) -> t2 -> t1 -> Maybe Distance -> t b -> Reader Config b1
instance GHC.Show.Show Hasmin.Types.FilterFunction.FilterFunction
instance GHC.Classes.Eq Hasmin.Types.FilterFunction.FilterFunction
instance Hasmin.Types.Class.ToText Hasmin.Types.FilterFunction.FilterFunction
instance Hasmin.Types.Class.Minifiable Hasmin.Types.FilterFunction.FilterFunction
module Hasmin.Types.TimingFunction
-- | CSS <single-transition-timing-function> data type.
-- Specifications:
--
--
-- - CSS Transitions
-- - CSS Animations Level 1
-- - Mozilla summary
--
data TimingFunction
CubicBezier :: Number -> Number -> Number -> Number -> TimingFunction
Steps :: Int -> (Maybe StepsSecondParam) -> TimingFunction
Ease :: TimingFunction
EaseIn :: TimingFunction
EaseInOut :: TimingFunction
EaseOut :: TimingFunction
Linear :: TimingFunction
StepEnd :: TimingFunction
StepStart :: TimingFunction
data StepsSecondParam
Start :: StepsSecondParam
End :: StepsSecondParam
instance GHC.Show.Show Hasmin.Types.TimingFunction.TimingFunction
instance GHC.Show.Show Hasmin.Types.TimingFunction.StepsSecondParam
instance GHC.Classes.Eq Hasmin.Types.TimingFunction.StepsSecondParam
instance GHC.Classes.Eq Hasmin.Types.TimingFunction.TimingFunction
instance Hasmin.Types.Class.ToText Hasmin.Types.TimingFunction.StepsSecondParam
instance Hasmin.Types.Class.ToText Hasmin.Types.TimingFunction.TimingFunction
instance Hasmin.Types.Class.Minifiable Hasmin.Types.TimingFunction.TimingFunction
-- | CSS <transform-function> data type.
module Hasmin.Types.TransformFunction
data TransformFunction
Mat :: (Matrix Number) -> TransformFunction
Mat3d :: (Matrix Number) -> TransformFunction
Perspective :: Distance -> TransformFunction
Rotate :: Angle -> TransformFunction
Rotate3d :: Number -> Number -> Number -> Angle -> TransformFunction
RotateX :: Angle -> TransformFunction
RotateY :: Angle -> TransformFunction
RotateZ :: Angle -> TransformFunction
Scale :: Number -> (Maybe Number) -> TransformFunction
Scale3d :: Number -> Number -> Number -> TransformFunction
ScaleX :: Number -> TransformFunction
ScaleY :: Number -> TransformFunction
ScaleZ :: Number -> TransformFunction
Skew :: Angle -> (Maybe Angle) -> TransformFunction
SkewX :: Angle -> TransformFunction
SkewY :: Angle -> TransformFunction
Translate :: PercentageLength -> (Maybe PercentageLength) -> TransformFunction
Translate3d :: PercentageLength -> PercentageLength -> Distance -> TransformFunction
TranslateX :: PercentageLength -> TransformFunction
TranslateY :: PercentageLength -> TransformFunction
TranslateZ :: Distance -> TransformFunction
mkMat :: [Number] -> TransformFunction
mkMat3d :: [Number] -> TransformFunction
-- | Combines consecutive <transform-functions> whenever possible,
-- leaving translate functions that can't be converted to a matrix
-- (because they use percentages or relative units) as they are, in the
-- position they are in the list (since matrix multiplication isn't
-- conmutative) Example: >>> import Control.Monad.Reader
-- >>> let t10 = Translate (Right (Distance 10 PX)) Nothing
-- >>> let tp = Translate (Left (Percentage 100)) Nothing
-- >>> let s90 = Skew (Angle 90 Deg) Nothing >>> let
-- s45 = Skew (Angle 45 Deg) Nothing >>> let sx5 = ScaleX 5
-- >>> let f x = runReader (combine x) defaultConfig
-- >>> fmap toText $ f [t10, s45, sx5] ["matrix(5,0,1,1,10,0)"]
-- >>> fmap toText $ f [s45,tp,sx5,sx5,sx5]
-- ["skew(45deg)","translate(100%)","scale(125)"]
combine :: [TransformFunction] -> Reader Config [TransformFunction]
instance GHC.Show.Show Hasmin.Types.TransformFunction.TransformFunction
instance GHC.Classes.Eq Hasmin.Types.TransformFunction.TransformFunction
instance Hasmin.Types.Class.Minifiable Hasmin.Types.TransformFunction.TransformFunction
instance Hasmin.Types.Class.ToText Hasmin.Types.TransformFunction.TransformFunction
module Hasmin.Types.Value
data Value
Inherit :: Value
Initial :: Value
Unset :: Value
NumberV :: Number -> Value
PercentageV :: Percentage -> Value
DistanceV :: Distance -> Value
AngleV :: Angle -> Value
DurationV :: Duration -> Value
FrequencyV :: Frequency -> Value
ResolutionV :: Resolution -> Value
ColorV :: Color -> Value
GradientV :: Text -> Gradient -> Value
GenericFunc :: Text -> Values -> Value
TransformV :: TransformFunction -> Value
TimingFuncV :: TimingFunction -> Value
FilterV :: FilterFunction -> Value
ShadowV :: Shadow -> Value
ShadowText :: Distance -> Distance -> (Maybe Distance) -> (Maybe Color) -> Value
PositionV :: Position -> Value
RepeatStyleV :: RepeatStyle -> Value
BgSizeV :: BgSize -> Value
BgLayer :: (Maybe Value) -> (Maybe Position) -> (Maybe BgSize) -> (Maybe RepeatStyle) -> (Maybe TextV) -> (Maybe TextV) -> (Maybe TextV) -> Value
FinalBgLayer :: (Maybe Value) -> (Maybe Position) -> (Maybe BgSize) -> (Maybe RepeatStyle) -> (Maybe TextV) -> (Maybe TextV) -> (Maybe TextV) -> (Maybe Color) -> Value
SingleTransition :: (Maybe TextV) -> (Maybe Duration) -> (Maybe TimingFunction) -> (Maybe Duration) -> Value
SingleAnimation :: (Maybe Duration) -> (Maybe TimingFunction) -> (Maybe Duration) -> (Maybe Value) -> (Maybe TextV) -> (Maybe TextV) -> (Maybe TextV) -> (Maybe Value) -> Value
FontV :: (Maybe TextV) -> (Maybe TextV) -> (Maybe Value) -> (Maybe TextV) -> Value -> (Maybe Value) -> [Value] -> Value
StringV :: StringType -> Value
UrlV :: Url -> Value
Format :: [StringType] -> Value
Local :: (Either Text StringType) -> Value
Rect :: Distance -> Distance -> Distance -> Distance -> Value
Other :: TextV -> Value
data Values
Values :: Value -> [(Separator, Value)] -> Values
-- | Redefines equality to be case-insensitive, since CSS literal values
-- such as "auto", "none", etc. are so.
newtype TextV
TextV :: Text -> TextV
[getText] :: TextV -> Text
data Separator
Space :: Separator
Slash :: Separator
Comma :: Separator
newtype Url
Url :: (Either Text StringType) -> Url
mkOther :: Text -> Value
mkValues :: [Value] -> Values
valuesToList :: Values -> [Value]
optimizeFontFamily :: Value -> Reader Config Value
lowercaseText :: Text -> Reader Config Text
instance GHC.Show.Show Hasmin.Types.Value.Value
instance GHC.Classes.Eq Hasmin.Types.Value.Value
instance GHC.Classes.Eq Hasmin.Types.Value.Values
instance GHC.Show.Show Hasmin.Types.Value.Values
instance GHC.Classes.Eq Hasmin.Types.Value.Separator
instance GHC.Show.Show Hasmin.Types.Value.Separator
instance GHC.Show.Show Hasmin.Types.Value.Url
instance GHC.Classes.Eq Hasmin.Types.Value.Url
instance Data.String.IsString Hasmin.Types.Value.TextV
instance GHC.Classes.Ord Hasmin.Types.Value.TextV
instance GHC.Show.Show Hasmin.Types.Value.TextV
instance GHC.Classes.Eq Hasmin.Types.Value.TextV
instance Hasmin.Types.Class.ToText Hasmin.Types.Value.TextV
instance Hasmin.Types.Class.ToText Hasmin.Types.Value.Url
instance Hasmin.Types.Class.Minifiable Hasmin.Types.Value.Url
instance Hasmin.Types.Class.ToText Hasmin.Types.Value.Value
instance Hasmin.Types.Class.Minifiable Hasmin.Types.Value.Value
instance Hasmin.Types.Class.ToText Hasmin.Types.Value.Values
instance Hasmin.Types.Class.Minifiable Hasmin.Types.Value.Values
instance Hasmin.Types.Class.ToText Hasmin.Types.Value.Separator
-- | Parsers for CSS values.
module Hasmin.Parser.Value
values :: Text -> Parser Values
percentage :: Parser Percentage
value :: Parser Value
-- | For cases when CSS hacks are used, e.g.: margin-top: 1px 9;
valuesFallback :: Parser Values
valuesInParens :: Parser Values
stringOrUrl :: Parser (Either StringType Url)
url :: Parser Url
stringtype :: Parser StringType
digits :: Parser String
textualvalue :: Parser Value
stringvalue :: Parser Value
shadowList :: Parser Values
timingFunction :: Parser TimingFunction
repeatStyle :: Parser RepeatStyle
position :: Parser Position
color :: Parser Color
number :: Parser Number
fontStyle :: Parser Value
instance GHC.Show.Show Hasmin.Parser.Value.FontProperty
instance GHC.Classes.Eq Hasmin.Parser.Value.FontProperty
module Hasmin.Types.Declaration
data Declaration
Declaration :: Text -> Values -> Bool -> Bool -> Declaration
[propertyName] :: Declaration -> Text
[valueList] :: Declaration -> Values
[isImportant] :: Declaration -> Bool
[hasIEhack] :: Declaration -> Bool
clean :: [Declaration] -> [Declaration]
instance GHC.Show.Show Hasmin.Types.Declaration.Declaration
instance GHC.Classes.Eq Hasmin.Types.Declaration.Declaration
instance Hasmin.Types.Class.ToText Hasmin.Types.Declaration.Declaration
instance Hasmin.Types.Class.Minifiable Hasmin.Types.Declaration.Declaration
module Hasmin.Types.Stylesheet
data Expression
Expression :: Text -> (Maybe Value) -> Expression
InvalidExpression :: Text -> Expression
-- | Data type for media queries. For the syntax, see media query
-- syntax.
data MediaQuery
-- | First possibility in the grammar
MediaQuery1 :: Text -> Text -> [Expression] -> MediaQuery
-- | Second possibility in the grammar
MediaQuery2 :: [Expression] -> MediaQuery
data Rule
AtCharset :: StringType -> Rule
AtImport :: (Either StringType Url) -> [MediaQuery] -> Rule
AtNamespace :: Text -> (Either StringType Url) -> Rule
AtMedia :: [MediaQuery] -> [Rule] -> Rule
AtKeyframes :: VendorPrefix -> Text -> [KeyframeBlock] -> Rule
AtSupports :: SupportsCondition -> [Rule] -> Rule
AtBlockWithRules :: Text -> [Rule] -> Rule
AtBlockWithDec :: Text -> [Declaration] -> Rule
StyleRule :: [Selector] -> [Declaration] -> Rule
data KeyframeSelector
From :: KeyframeSelector
To :: KeyframeSelector
KFPercentage :: Percentage -> KeyframeSelector
data KeyframeBlock
KeyframeBlock :: [KeyframeSelector] -> [Declaration] -> KeyframeBlock
data SupportsCondition
Not :: SupportsCondInParens -> SupportsCondition
And :: SupportsCondInParens -> (NonEmpty SupportsCondInParens) -> SupportsCondition
Or :: SupportsCondInParens -> (NonEmpty SupportsCondInParens) -> SupportsCondition
Parens :: SupportsCondInParens -> SupportsCondition
data SupportsCondInParens
ParensCond :: SupportsCondition -> SupportsCondInParens
ParensDec :: Declaration -> SupportsCondInParens
isEmpty :: Rule -> Bool
minifyRules :: [Rule] -> Reader Config [Rule]
instance GHC.Show.Show Hasmin.Types.Stylesheet.Rule
instance GHC.Classes.Eq Hasmin.Types.Stylesheet.Rule
instance GHC.Show.Show Hasmin.Types.Stylesheet.SupportsCondition
instance GHC.Classes.Eq Hasmin.Types.Stylesheet.SupportsCondition
instance GHC.Show.Show Hasmin.Types.Stylesheet.SupportsCondInParens
instance GHC.Classes.Eq Hasmin.Types.Stylesheet.SupportsCondInParens
instance GHC.Show.Show Hasmin.Types.Stylesheet.KeyframeBlock
instance GHC.Classes.Eq Hasmin.Types.Stylesheet.KeyframeBlock
instance GHC.Show.Show Hasmin.Types.Stylesheet.KeyframeSelector
instance GHC.Classes.Eq Hasmin.Types.Stylesheet.KeyframeSelector
instance GHC.Classes.Eq Hasmin.Types.Stylesheet.MediaQuery
instance GHC.Show.Show Hasmin.Types.Stylesheet.MediaQuery
instance GHC.Classes.Eq Hasmin.Types.Stylesheet.Expression
instance GHC.Show.Show Hasmin.Types.Stylesheet.Expression
instance Hasmin.Types.Class.Minifiable Hasmin.Types.Stylesheet.MediaQuery
instance Hasmin.Types.Class.ToText Hasmin.Types.Stylesheet.MediaQuery
instance Hasmin.Types.Class.Minifiable Hasmin.Types.Stylesheet.Expression
instance Hasmin.Types.Class.ToText Hasmin.Types.Stylesheet.Expression
instance Hasmin.Types.Class.ToText Hasmin.Types.Stylesheet.KeyframeSelector
instance Hasmin.Types.Class.Minifiable Hasmin.Types.Stylesheet.KeyframeSelector
instance Hasmin.Types.Class.ToText Hasmin.Types.Stylesheet.KeyframeBlock
instance Hasmin.Types.Class.Minifiable Hasmin.Types.Stylesheet.KeyframeBlock
instance Hasmin.Types.Class.ToText Hasmin.Types.Stylesheet.Rule
instance Hasmin.Types.Class.Minifiable Hasmin.Types.Stylesheet.Rule
instance Hasmin.Types.Class.ToText Hasmin.Types.Stylesheet.SupportsCondition
instance Hasmin.Types.Class.Minifiable Hasmin.Types.Stylesheet.SupportsCondition
instance Hasmin.Types.Class.ToText Hasmin.Types.Stylesheet.SupportsCondInParens
instance Hasmin.Types.Class.Minifiable Hasmin.Types.Stylesheet.SupportsCondInParens
module Hasmin.Parser.Internal
stylesheet :: Parser [Rule]
-- | Parser for CSS at-rules (e.g. @keyframes, @media)
atRule :: Parser Rule
-- | Parser for a CSS rule, which can be either an at-rule (e.g. @charset),
-- or a style rule.
rule :: Parser Rule
declaration :: Parser Declaration
-- | Parses a list of declarations, ignoring spaces, comments, and empty
-- declarations (e.g. ; ;)
declarations :: Parser [Declaration]
selector :: Parser Selector
supportsCondition :: Parser SupportsCondition
-- | Recommended module to use the library.
module Hasmin
-- | Minify Text CSS, using a default set of configurations (with most
-- minification techniques enabled).
minifyCSS :: Text -> Either String Text
-- | Minify Text, based on a Config. To just use a default set of
-- configurations (i.e. defaultConfig), use minifyCSS.
minifyCSSWith :: Config -> Text -> Either String Text