-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | "A 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.2 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 isRight :: Either a b -> Bool isLeft :: Either a b -> Bool 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: -- --
    --
  1. <https://drafts.csswg.org/css-values-3/#percentages CSS -- Value and Units Module Level 3 (§4.3)
  2. -- --
  3. <https://www.w3.org/TR/CSS2/syndata.html#percentage-units -- CSS2.1 (§4.3.3)
  4. --
  5. <https://www.w3.org/TR/CSS1/#percentage-units CSS1 -- (§6.2)
  6. --
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: -- --
    --
  1. CSS Values and Units Module Level 3 (§4.2)
  2. --
  3. CSS2.1 (§4.3.1)
  4. --
  5. CSS1 (6 Units)
  6. --
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: -- --
    --
  1. <https://www.w3.org/TR/css3-color/#transparency CSS -- Color Module Level 3 (§3.2)
  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: -- --
    --
  1. CSS Color Module Level 4
  2. --
  3. CSS Color Module Level 3
  4. --
  5. CSS2.1
  6. --
  7. CSS1
  8. --
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 -> ReaderT * Config Identity 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: -- --
    --
  1. CSS Transitions
  2. --
  3. CSS Animations Level 1
  4. --
  5. Mozilla summary
  6. --
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 instance GHC.Show.Show Hasmin.Types.Stylesheet.GeneralEnclosed instance GHC.Show.Show Hasmin.Types.Stylesheet.Rule instance GHC.Show.Show Hasmin.Types.Stylesheet.SupportsCondition instance GHC.Show.Show 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 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