-----------------------------------------------------------------------------
{-# LANGUAGE OverloadedStrings #-}
-----------------------------------------------------------------------------
-- |
-- Module      :  Miso.CSS
-- Copyright   :  (C) 2016-2026 David M. Johnson
-- License     :  BSD3-style (see the file LICENSE)
-- Maintainer  :  David M. Johnson <code@dmj.io>
-- Stability   :  experimental
-- Portability :  non-portable
--
-- = Overview
--
-- "Miso.CSS" is a typed DSL for constructing CSS properties, stylesheets,
-- animations, and media queries in miso applications. Two styling modes are
-- available:
--
-- * __Structured styles__ ('style_'): CSS properties are stored in a
--   'Data.Map.Map' and diffed by the virtual DOM, so only changed properties
--   are written to the DOM node on each render. Prefer this for dynamic styles.
--
-- * __Inline string styles__ ('styleInline_'): a raw CSS string is set on the
--   @style@ attribute verbatim and is not diffed. Useful for static one-liners
--   or values that the structured combinators do not yet cover.
--
-- = Quick start
--
-- @
-- import qualified "Miso.CSS"       as CSS
-- import           "Miso.CSS.Color" ('Miso.CSS.Color.red', 'Miso.CSS.Color.rgba')
--
-- myView :: 'Miso.Types.View' Model Action
-- myView =
--   'Miso.Html.Element.div_'
--     [ CSS.'Miso.CSS.style_'
--         [ CSS.'Miso.CSS.display'        "flex"
--         , CSS.'Miso.CSS.flexDirection'  "column"
--         , CSS.'Miso.CSS.gap'            (CSS.'Miso.CSS.px' 8)
--         , CSS.'Miso.CSS.padding'        (CSS.'Miso.CSS.px' 16)
--         , CSS.'Miso.CSS.backgroundColor' 'Miso.CSS.Color.red'
--         , CSS.'Miso.CSS.borderRadius'   (CSS.'Miso.CSS.px' 4)
--         ]
--     ] [ 'Miso.text' "Hello, miso!" ]
-- @
--
-- = Global Stylesheets
--
-- Construct a 'StyleSheet' with 'sheet_' and 'selector_', then render it to
-- a 'MisoString' with 'renderStyleSheet' for injection into a @\<style\>@ tag:
--
-- @
-- mySheet :: 'StyleSheet'
-- mySheet = 'sheet_'
--   [ 'selector_' "body"
--       [ CSS.'margin'     (CSS.'px' 0)
--       , CSS.'fontFamily' "sans-serif"
--       ]
--   , 'selector_' ".card"
--       [ CSS.'backgroundColor' ('rgba' 255 255 255 0.9)
--       , CSS.'borderRadius'    (CSS.'px' 4)
--       ]
--   ]
-- @
--
-- = Animations and Media Queries
--
-- @
-- myAnimation :: 'Styles'
-- myAnimation = 'keyframes_' "slide-in"
--   [ 'from_' [ CSS.'transform' "translateX(-100%)" ]
--   , 'to_'   [ CSS.'transform' "translateX(0)" ]
--   ]
--
-- myMedia :: 'Styles'
-- myMedia = 'media_' ('screen_' \`and_\` 'minWidth_' (CSS.'px' 480))
--   [ 'rule_' "header" [ CSS.'height' "auto" ]
--   , 'rule_' "nav"    [ CSS.'display' "flex" ]
--   ]
-- @
--
-- = CSS Units
--
-- Use the unit helpers to build length and time values:
-- 'px', 'pt', 'em', 'rem', 'vh', 'vw', 'pct', 'ms', 's', 'deg', 'rad', 'turn'.
--
-- @
-- CSS.'style_'
--   [ CSS.'width'      (CSS.'pct' 100)
--   , CSS.'fontSize'   (CSS.'rem' 1.5)
--   , CSS.'transition' ("opacity " <> CSS.'ms' 300 <> " ease")
--   ]
-- @
--
-- = Colors
--
-- The 'Color' type and named colors are re-exported from "Miso.CSS.Color":
--
-- @
-- CSS.'backgroundColor' (CSS.'rgb' 30 144 255)
-- CSS.'color'           CSS.'white'
-- CSS.'borderColor'     (CSS.'rgba' 0 0 0 0.2)
-- @
--
-- __Note:__ 'color' in this module and 'Miso.Canvas.color' share the same
-- name but have different types. Always qualify @import qualified Miso.CSS as CSS@
-- when also importing "Miso.Canvas".
--
-----------------------------------------------------------------------------
module Miso.CSS
  ( -- *** Types
    module Miso.CSS.Types
    -- *** Smart Constructor
  , style_
  , styleInline_
  , sheet_
  , selector_
    -- *** Render
  , renderStyleSheet
    -- *** Combinators
  , alignContent
  , alignItems
  , alignSelf
  , animationDelay
  , animationDirection
  , animationDuration
  , animationFillMode
  , animationIterationCount
  , animation
  , animationName
  , animationPlayState
  , animationTimingFunction
  , aspectRatio
  , backgroundClip
  , backgroundColor
  , backgroundImage
  , background
  , backgroundOrigin
  , backgroundPosition
  , backgroundRepeat
  , backgroundSize
  , borderBottomColor
  , borderBottomLeftRadius
  , borderBottom
  , borderBottomRightRadius
  , borderBottomStyle
  , borderBottomWidth
  , borderCollapse
  , borderColor
  , borderEndEndRadius
  , borderEndStartRadius
  , borderInlineEndColor
  , borderInlineEndStyle
  , borderInlineEndWidth
  , borderInlineStartColor
  , borderInlineStartStyle
  , borderInlineStartWidth
  , borderLeftColor
  , borderLeft
  , borderLeftStyle
  , borderLeftWidth
  , border
  , borderRadius
  , borderRightColor
  , borderRight
  , borderRightStyle
  , borderRightWidth
  , borderStartEndRadius
  , borderStartStartRadius
  , borderStyle
  , borderTopColor
  , borderTopLeftRadius
  , borderTop
  , borderTopRightRadius
  , borderTopStyle
  , borderTopWidth
  , borderWidth
  , bottom
  , boxShadow
  , boxSizing
  , clipPath
  , accentColor
  , appearance
  , backdropFilter
  , caretColor
  , color
  , columnGap
  , cursor
  , direction
  , display
  , fill
  , filter
  , flexBasis
  , flexDirection
  , flexFlow
  , flexGrow
  , flex
  , flexShrink
  , flexWrap
  , fontFamily
  , fontSize
  , fontStretch
  , fontStyle
  , fontVariant
  , fontWeight
  , gap
  , gridAutoColumns
  , gridAutoFlow
  , gridAutoRows
  , gridColumn
  , gridColumnEnd
  , gridColumnSpan
  , gridColumnStart
  , gridRow
  , gridRowEnd
  , gridRowSpan
  , gridRowStart
  , gridTemplateColumns
  , gridTemplateRows
  , height
  , imageRendering
  , insetInlineEnd
  , insetInlineStart
  , justifyContent
  , justifyItems
  , justifySelf
  , left
  , letterSpacing
  , linearCrossGravity
  , linearDirection
  , linearGravity
  , linearLayoutGravity
  , linearWeight
  , linearWeightSum
  , lineHeight
  , marginBottom
  , marginInlineEnd
  , marginInlineStart
  , marginLeft
  , margin
  , marginRight
  , marginTop
  , maskImage
  , mask
  , maxHeight
  , maxWidth
  , minHeight
  , minWidth
  , mixBlendMode
  , objectFit
  , objectPosition
  , opacity
  , order
  , outline
  , outlineColor
  , outlineOffset
  , outlineStyle
  , outlineWidth
  , overflow
  , overflowX
  , overflowY
  , overscrollBehavior
  , paddingBottom
  , paddingInlineEnd
  , paddingInlineStart
  , paddingLeft
  , padding
  , paddingRight
  , paddingTop
  , perspective
  , pointerEvents
  , position
  , relativeAlignBottom
  , relativeAlignInlineEnd
  , relativeAlignInlineStart
  , relativeAlignLeft
  , relativeAlignRight
  , relativeAlignTop
  , relativeBottomOf
  , relativeCenter
  , relativeId
  , relativeInlineEndOf
  , relativeInlineStartOf
  , relativeLayoutOnce
  , relativeLeftOf
  , relativeRightOf
  , relativeTopOf
  , resize
  , right
  , rowGap
  , scrollBehavior
  , stroke
  , strokeWidth
  , textAlign
  , textDecoration
  , textIndent
  , textOverflow
  , textShadow
  , textStrokeColor
  , textStroke
  , textStrokeWidth
  , textTransform
  , top
  , transform
  , transforms
  , transformOrigin
    -- *** Transform functions
  , translate
  , translateX
  , translateY
  , translateZ
  , translate3d
  , rotate
  , rotateX
  , rotateY
  , rotateZ
  , rotate3d
  , scale
  , scaleXY
  , scale3d
  , scaleX
  , scaleY
  , scaleZ
  , perspectiveFn
  , matrix3d
  , skew
  , skewX
  , skewY
  , transitionDelay
  , transitionDuration
  , transition
  , transitionProperty
  , transitionTimingFunction
  , userSelect
  , verticalAlign
  , visibility
  , whiteSpace
  , width
  , willChange
  , wordBreak
  , xAutoFontSize
  , xAutoFontSizePresetSizes
  , xHandleColor
  , xHandleSize
  , zIndex
  -- *** Colors
  , module Miso.CSS.Color
  -- *** Units
  , px
  , ppx
  , pct
  , pt
  , vw
  , vh
  , deg
  , turn
  , rad
  , rpx
  , rem
  , em
  , s
  , ms
  -- *** Misc
  , url
  , matrix
  -- *** Animation
  , keyframes_
  , from_
  , to_
  , at
  -- *** Media Queries
  , media_
  , rule_
    -- *** Media query combinators
  , screen_
  , print_
  , all_
  , and_
  , or_
  , not_
  , minWidth_
  , maxWidth_
  , minHeight_
  , maxHeight_
  , orientation_
  , prefersColorScheme_
  , prefersReducedMotion_
  , hover_
  ) where
-----------------------------------------------------------------------------
import qualified Data.Map as M
import           Miso.String (MisoString)
import qualified Miso.String as MS
import           Miso.CSS.Color
import           Miso.CSS.Types
import           Miso.Property
import           Miso.Types (Attribute)
import qualified Miso.Types as MT
import           Miso.Util ((=:))
-----------------------------------------------------------------------------
import           Prelude hiding (filter, rem)
-----------------------------------------------------------------------------
-- | Font sizing in terms of *pt*
--
-- @
-- >>> pt 10
-- "10pt"
-- @
--
pt :: Int -> MisoString
pt :: Int -> MisoString
pt Int
x = Int -> MisoString
forall str. ToMisoString str => str -> MisoString
MS.ms Int
x MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
"pt"
-----------------------------------------------------------------------------
-- | Font sizing in terms of *px*
--
-- @
-- >>> px 10
-- "10px"
-- @
--
px :: Int -> MisoString
px :: Int -> MisoString
px Int
x = Int -> MisoString
forall str. ToMisoString str => str -> MisoString
MS.ms Int
x MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
"px"
-----------------------------------------------------------------------------
-- | Degree specification
--
-- @
-- >>> deg 10
-- "10deg"
-- @
--
deg :: Double -> MisoString
deg :: Double -> MisoString
deg Double
x = Double -> MisoString
forall str. ToMisoString str => str -> MisoString
MS.ms Double
x MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
"deg"
-----------------------------------------------------------------------------
-- | Turn constructor, useful for specifying rotations
--
-- @
-- >>> turn 10.0
-- "10.0turn"
-- @
--
turn :: Double -> MisoString
turn :: Double -> MisoString
turn Double
x = Double -> MisoString
forall str. ToMisoString str => str -> MisoString
MS.ms Double
x MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
"turn"
-----------------------------------------------------------------------------
-- | Radial constructor
--
-- @
-- >>> rad 10.0
-- "10.0rad"
-- @
--
rad :: Double -> MisoString
rad :: Double -> MisoString
rad Double
x = Double -> MisoString
forall str. ToMisoString str => str -> MisoString
MS.ms Double
x MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
"rad"
-----------------------------------------------------------------------------
-- | Responsive pixel sizing, *rpx*
--
-- @
-- >>> rpx 10.0
-- "10.0rpx"
-- @
--
rpx :: Double -> MisoString
rpx :: Double -> MisoString
rpx Double
x = Double -> MisoString
forall str. ToMisoString str => str -> MisoString
MS.ms Double
x MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
"rpx"
-----------------------------------------------------------------------------
-- | Relative *em* sizing
--
-- @
-- >>> rem 10.0
-- "10.0rem"
-- @
--
rem :: Double -> MisoString
rem :: Double -> MisoString
rem Double
x = Double -> MisoString
forall str. ToMisoString str => str -> MisoString
MS.ms Double
x MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
"rem"
-----------------------------------------------------------------------------
-- | *em* sizing
--
-- @
-- >>> em 10.0
-- "10.0em"
-- @
--
em :: Double -> MisoString
em :: Double -> MisoString
em Double
x = Double -> MisoString
forall str. ToMisoString str => str -> MisoString
MS.ms Double
x MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
"em"
-----------------------------------------------------------------------------
-- | Viewport height
--
-- @
-- >>> vh 10.0
-- "10.0vh"
-- @
--
vh :: Double -> MisoString
vh :: Double -> MisoString
vh Double
x = Double -> MisoString
forall str. ToMisoString str => str -> MisoString
MS.ms Double
x MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
"vh"
-----------------------------------------------------------------------------
-- | Viewport width
--
-- @
-- >>> vw 10.0
-- "10.0vw"
-- @
--
vw :: Double -> MisoString
vw :: Double -> MisoString
vw Double
x = Double -> MisoString
forall str. ToMisoString str => str -> MisoString
MS.ms Double
x MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
"vw"
-----------------------------------------------------------------------------
-- | Duration in seconds
--
-- @
-- >>> s 10.0
-- "10.0s"
-- @
--
s :: Double -> MisoString
s :: Double -> MisoString
s Double
x = Double -> MisoString
forall str. ToMisoString str => str -> MisoString
MS.ms Double
x MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
"s"
-----------------------------------------------------------------------------
-- | Duration in milliseconds
--
-- @
-- >>> ms 10.0
-- "10.0ms"
-- @
--
ms :: Double -> MisoString
ms :: Double -> MisoString
ms Double
x = Double -> MisoString
forall str. ToMisoString str => str -> MisoString
MS.ms Double
x MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
"ms"
-----------------------------------------------------------------------------
-- | Wraps a value in the CSS @url()@ function, used for background images and similar.
--
-- @
-- >>> url "dog.png"
-- "url(dog.png)"
-- @
--
-- @
-- backgroundImage (url "banner.png")
-- @
--
-- <https://developer.mozilla.org/en-US/docs/Web/CSS/url>
--
url :: MisoString -> MisoString
url :: MisoString -> MisoString
url MisoString
x = MisoString
"url(" MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
x MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
")"
-----------------------------------------------------------------------------
-- | Constructs a 2D CSS transformation matrix string: @matrix(a, b, c, d, tx, ty)@.
--
-- The six parameters define a 2D affine transformation: @a@ and @d@ scale,
-- @b@ and @c@ skew, and @tx@\/@ty@ translate.
--
-- @
-- transform (matrix 1 0 0 1 50 100)  -- translate by (50, 100)
-- @
--
-- <https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/matrix>
--
matrix
  :: Double  -- ^ a  — scale x
  -> Double  -- ^ b  — skew y
  -> Double  -- ^ c  — skew x
  -> Double  -- ^ d  — scale y
  -> Double  -- ^ tx — translate x
  -> Double  -- ^ ty — translate y
  -> MisoString
matrix :: Double
-> Double -> Double -> Double -> Double -> Double -> MisoString
matrix Double
a Double
b Double
c Double
d Double
tx Double
ty = MisoString
"matrix(" MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
values MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
")"
  where
    values :: MisoString
values =
      MisoString -> [MisoString] -> MisoString
MS.intercalate MisoString
","
      [ Double -> MisoString
forall str. ToMisoString str => str -> MisoString
MS.ms Double
a
      , Double -> MisoString
forall str. ToMisoString str => str -> MisoString
MS.ms Double
b
      , Double -> MisoString
forall str. ToMisoString str => str -> MisoString
MS.ms Double
c
      , Double -> MisoString
forall str. ToMisoString str => str -> MisoString
MS.ms Double
d
      , Double -> MisoString
forall str. ToMisoString str => str -> MisoString
MS.ms Double
tx
      , Double -> MisoString
forall str. ToMisoString str => str -> MisoString
MS.ms Double
ty
      ]
-----------------------------------------------------------------------------
-- | Percentage unit.
--
-- @
-- >>> pct 50.0
-- "50.0%"
-- @
--
-- <https://developer.mozilla.org/en-US/docs/Web/CSS/percentage>
pct :: Double -> MisoString
pct :: Double -> MisoString
pct Double
x = Double -> MisoString
forall str. ToMisoString str => str -> MisoString
MS.ms Double
x MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
"%"
-----------------------------------------------------------------------------
-- | Physical pixel unit (@ppx@), used in some native\/mobile rendering contexts.
--
-- @
-- >>> ppx 2.0
-- "2.0ppx"
-- @
--
ppx :: Double -> MisoString
ppx :: Double -> MisoString
ppx Double
x = Double -> MisoString
forall str. ToMisoString str => str -> MisoString
MS.ms Double
x MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
"ppx"
-----------------------------------------------------------------------------
-- | Constructs a 'Styles' entry pairing a CSS selector with a list of properties.
-- Combine multiple entries with 'sheet_'.
--
-- @
-- sheet_
--   [ selector_ ".card"  [ backgroundColor white, borderRadius (px 4) ]
--   , selector_ ".title" [ fontSize (rem 1.5), fontWeight "bold" ]
--   ]
-- @
--
selector_ :: MisoString -> [Style] -> Styles
selector_ :: MisoString -> [Style] -> Styles
selector_ MisoString
k [Style]
v = (MisoString, [Style]) -> Styles
Styles (MisoString
k,[Style]
v)
-----------------------------------------------------------------------------
-- | Constructs a 'StyleSheet' from a list of 'Styles' entries.
--
-- Combine with 'selector_', 'keyframes_', and 'media_' to build a full
-- stylesheet, then render it to a 'MisoString' with 'renderStyleSheet'.
--
-- @
-- mySheet :: StyleSheet
-- mySheet = sheet_
--   [ selector_ "body"   [ margin (px 0), fontFamily "sans-serif" ]
--   , selector_ "button" [ cursor "pointer", borderRadius (px 4) ]
--   ]
-- @
--
sheet_ :: [Styles] -> StyleSheet
sheet_ :: [Styles] -> StyleSheet
sheet_ = [Styles] -> StyleSheet
StyleSheet
-----------------------------------------------------------------------------
-- | Constructs a structured @style@ attribute from a list of CSS properties.
--
-- Each 'Style' is a @(property, value)@ pair produced by the combinators in
-- this module. Miso tracks the properties as a 'Data.Map.Map', diffs them on
-- each render, and applies only the changed properties to the DOM. Properties
-- absent from the list are removed from the node.
--
-- @
-- div_
--   [ style_
--       [ display       "flex"
--       , flexDirection "column"
--       , gap           (px 8)
--       , backgroundColor red
--       ]
--   ] []
-- @
--
-- See also 'styleInline_' for setting raw CSS strings.
--
-- <https://developer.mozilla.org/en-US/docs/Web/CSS>
--
style_ :: [Style] -> Attribute action
style_ :: forall action. [Style] -> Attribute action
style_ = Map MisoString MisoString -> Attribute action
forall action. Map MisoString MisoString -> Attribute action
MT.Styles (Map MisoString MisoString -> Attribute action)
-> ([Style] -> Map MisoString MisoString)
-> [Style]
-> Attribute action
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Style] -> Map MisoString MisoString
forall k a. Ord k => [(k, a)] -> Map k a
M.fromList
-----------------------------------------------------------------------------
-- | Sets the @style@ attribute to a raw CSS string.
--
-- Unlike 'style_', the string is applied verbatim and is not tracked or
-- diffed by the virtual DOM. Suitable for static styles or CSS values that
-- the structured combinators do not yet cover.
--
-- @
-- div_ [ styleInline_ "background-color:red; color:blue;" ] [ "foo" ]
-- @
--
-- <https://developer.mozilla.org/en-US/docs/Web/CSS>
--
styleInline_ ::  MisoString -> Attribute action
styleInline_ :: forall action. MisoString -> Attribute action
styleInline_ = MisoString -> MisoString -> Attribute action
forall action. MisoString -> MisoString -> Attribute action
textProp MisoString
"style"
-----------------------------------------------------------------------------
-- | Renders a t'Styles' to a t'MisoString'
renderStyles :: Int -> Styles -> MisoString
renderStyles :: Int -> Styles -> MisoString
renderStyles Int
indent (Styles (MisoString
sel,[Style]
styles)) = [MisoString] -> MisoString
MS.unlines
  [ MisoString
sel MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
" {" MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> Int -> MisoString -> MisoString
MS.replicate Int
indent MisoString
" "
  , MisoString -> [MisoString] -> MisoString
MS.intercalate MisoString
"\n"
        [ [MisoString] -> MisoString
forall a. Monoid a => [a] -> a
mconcat
          [ Int -> MisoString -> MisoString
MS.replicate (Int
indent Int -> Int -> Int
forall a. Num a => a -> a -> a
+ Int
2) MisoString
" " MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
k
          , MisoString
" : "
          , MisoString
v
          , MisoString
";"
          ]
        | (MisoString
k,MisoString
v) <- [Style]
styles
        ]
  , Int -> MisoString -> MisoString
MS.replicate Int
indent MisoString
" " MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
"}"
  ]
renderStyles Int
indent (KeyFrame MisoString
name [(MisoString, [Style])]
frames) = MisoString -> [MisoString] -> MisoString
MS.intercalate MisoString
" "
  [ MisoString
"@keyframes"
  , MisoString
name
  , MisoString
"{\n"
  , MisoString -> [MisoString] -> MisoString
MS.intercalate MisoString
"\n  "
    [ Int -> Styles -> MisoString
renderStyles (Int
indent Int -> Int -> Int
forall a. Num a => a -> a -> a
+ Int
2) ((MisoString, [Style]) -> Styles
Styles (MisoString, [Style])
frame)
    | (MisoString, [Style])
frame <- [(MisoString, [Style])]
frames
    ]
  , MisoString
"}\n"
  ]
renderStyles Int
indent (Media MisoString
name [(MisoString, [Style])]
frames) = MisoString -> [MisoString] -> MisoString
MS.intercalate MisoString
" "
  [ MisoString
"@media"
  , MisoString
name
  , MisoString
"{\n"
  , MisoString -> [MisoString] -> MisoString
MS.intercalate MisoString
"\n  "
    [ Int -> Styles -> MisoString
renderStyles (Int
indent Int -> Int -> Int
forall a. Num a => a -> a -> a
+ Int
2) ((MisoString, [Style]) -> Styles
Styles (MisoString, [Style])
frame)
    | (MisoString, [Style])
frame <- [(MisoString, [Style])]
frames
    ]
  , MisoString
"}\n"
  ]
-----------------------------------------------------------------------------
-- | Renders a 'StyleSheet' to a 'MisoString' suitable for injection into a
-- @\<style\>@ tag.
--
-- @
-- view_ :: View model action
-- view_ = style [] [ text (renderStyleSheet mySheet) ]
-- @
--
renderStyleSheet :: StyleSheet -> MisoString
renderStyleSheet :: StyleSheet -> MisoString
renderStyleSheet StyleSheet
styleSheet = MisoString -> [MisoString] -> MisoString
MS.intercalate MisoString
"\n"
  [ Int -> Styles -> MisoString
renderStyles Int
0 Styles
styles
  | Styles
styles <- StyleSheet -> [Styles]
getStyleSheet StyleSheet
styleSheet
  ]
-----------------------------------------------------------------------------
-- | Constructs a CSS @\@keyframes@ animation rule.
--
-- The first argument is the animation name; the second is a list of
-- @(keyframe-selector, [Style])@ pairs. Keyframe selectors are either
-- @"from"@\/@"to"@ or a percentage string produced by 'pct'.
--
-- @
-- slideIn :: Styles
-- slideIn = keyframes_ "slide-in"
--   [ from_ [ transform "translateX(-100%)" ]
--   , at (pct 50) [ opacity 0.5 ]
--   , to_   [ transform "translateX(0)" ]
--   ]
-- @
--
-- <https://developer.mozilla.org/en-US/docs/Web/CSS/@keyframes>
--
keyframes_ :: MisoString -> [KeyframeStop] -> Styles
keyframes_ :: MisoString -> [KeyframeStop] -> Styles
keyframes_ MisoString
name [KeyframeStop]
stops = MisoString -> [(MisoString, [Style])] -> Styles
KeyFrame MisoString
name ((KeyframeStop -> (MisoString, [Style]))
-> [KeyframeStop] -> [(MisoString, [Style])]
forall a b. (a -> b) -> [a] -> [b]
map KeyframeStop -> (MisoString, [Style])
getKeyframeStop [KeyframeStop]
stops)
-----------------------------------------------------------------------------
-- | The @from@ stop in a '@keyframes' rule (equivalent to @0%@).
from_ :: [Style] -> KeyframeStop
from_ :: [Style] -> KeyframeStop
from_ [Style]
styles = (MisoString, [Style]) -> KeyframeStop
KeyframeStop (MisoString
"from", [Style]
styles)
-----------------------------------------------------------------------------
-- | The @to@ stop in a '@keyframes' rule (equivalent to @100%@).
to_ :: [Style] -> KeyframeStop
to_ :: [Style] -> KeyframeStop
to_ [Style]
styles = (MisoString, [Style]) -> KeyframeStop
KeyframeStop (MisoString
"to", [Style]
styles)
-----------------------------------------------------------------------------
-- | A keyframe stop at a given position, typically built with 'pct'.
--
-- > at (pct 50) [ opacity 0.5 ]
--
at :: MisoString -> [Style] -> KeyframeStop
at :: MisoString -> [Style] -> KeyframeStop
at MisoString
stop [Style]
styles = (MisoString, [Style]) -> KeyframeStop
KeyframeStop (MisoString
stop, [Style]
styles)
-----------------------------------------------------------------------------
-- | Constructs a CSS @\@media@ query rule.
--
-- The first argument is the media condition string; the second is a list of
-- @(selector, [Style])@ pairs scoped to that query.
--
-- @
-- responsive :: 'Styles'
-- responsive = 'media_' ('screen_' \`and_\` 'minWidth_' (px 480))
--   [ 'rule_' "header" [ 'height' "auto" ]
--   , 'rule_' "ul"     [ 'display' "block" ]
--   ]
-- @
--
-- <https://developer.mozilla.org/en-US/docs/Web/CSS/@media>
--
media_ :: MediaQuery -> [MediaRule] -> Styles
media_ :: MediaQuery -> [MediaRule] -> Styles
media_ (MediaQuery MisoString
q) [MediaRule]
rules = MisoString -> [(MisoString, [Style])] -> Styles
Media MisoString
q ((MediaRule -> (MisoString, [Style]))
-> [MediaRule] -> [(MisoString, [Style])]
forall a b. (a -> b) -> [a] -> [b]
map MediaRule -> (MisoString, [Style])
getMediaRule [MediaRule]
rules)
-----------------------------------------------------------------------------
-- | A selector rule inside a 'media_' block.
--
-- > rule_ "header" [ height "auto" ]
--
rule_ :: MisoString -> [Style] -> MediaRule
rule_ :: MisoString -> [Style] -> MediaRule
rule_ MisoString
sel [Style]
styles = (MisoString, [Style]) -> MediaRule
MediaRule (MisoString
sel, [Style]
styles)
-----------------------------------------------------------------------------
-- | The @screen@ media type.
screen_ :: MediaQuery
screen_ :: MediaQuery
screen_ = MisoString -> MediaQuery
MediaQuery MisoString
"screen"
-----------------------------------------------------------------------------
-- | The @print@ media type.
print_ :: MediaQuery
print_ :: MediaQuery
print_ = MisoString -> MediaQuery
MediaQuery MisoString
"print"
-----------------------------------------------------------------------------
-- | The @all@ media type (matches all devices).
all_ :: MediaQuery
all_ :: MediaQuery
all_ = MisoString -> MediaQuery
MediaQuery MisoString
"all"
-----------------------------------------------------------------------------
-- | Logical @and@ for media queries.
--
-- > screen_ \`and_\` minWidth_ (px 480)
--
and_ :: MediaQuery -> MediaQuery -> MediaQuery
and_ :: MediaQuery -> MediaQuery -> MediaQuery
and_ (MediaQuery MisoString
a) (MediaQuery MisoString
b) = MisoString -> MediaQuery
MediaQuery (MisoString
a MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
" and " MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
b)
-----------------------------------------------------------------------------
-- | Logical @or@ for media queries (comma-separated).
--
-- > screen_ \`or_\` print_
--
or_ :: MediaQuery -> MediaQuery -> MediaQuery
or_ :: MediaQuery -> MediaQuery -> MediaQuery
or_ (MediaQuery MisoString
a) (MediaQuery MisoString
b) = MisoString -> MediaQuery
MediaQuery (MisoString
a MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
", " MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
b)
-----------------------------------------------------------------------------
-- | Logical @not@ for media queries.
--
-- > not_ print_
--
not_ :: MediaQuery -> MediaQuery
not_ :: MediaQuery -> MediaQuery
not_ (MediaQuery MisoString
q) = MisoString -> MediaQuery
MediaQuery (MisoString
"not " MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
q)
-----------------------------------------------------------------------------
-- | @min-width@ media feature. Use unit constructors like 'px' or 'em'.
minWidth_ :: MisoString -> MediaQuery
minWidth_ :: MisoString -> MediaQuery
minWidth_ MisoString
x = MisoString -> MediaQuery
MediaQuery (MisoString
"(min-width: " MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
x MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
")")
-----------------------------------------------------------------------------
-- | @max-width@ media feature.
maxWidth_ :: MisoString -> MediaQuery
maxWidth_ :: MisoString -> MediaQuery
maxWidth_ MisoString
x = MisoString -> MediaQuery
MediaQuery (MisoString
"(max-width: " MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
x MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
")")
-----------------------------------------------------------------------------
-- | @min-height@ media feature.
minHeight_ :: MisoString -> MediaQuery
minHeight_ :: MisoString -> MediaQuery
minHeight_ MisoString
x = MisoString -> MediaQuery
MediaQuery (MisoString
"(min-height: " MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
x MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
")")
-----------------------------------------------------------------------------
-- | @max-height@ media feature.
maxHeight_ :: MisoString -> MediaQuery
maxHeight_ :: MisoString -> MediaQuery
maxHeight_ MisoString
x = MisoString -> MediaQuery
MediaQuery (MisoString
"(max-height: " MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
x MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
")")
-----------------------------------------------------------------------------
-- | @orientation@ media feature. Use @\"portrait\"@ or @\"landscape\"@.
orientation_ :: MisoString -> MediaQuery
orientation_ :: MisoString -> MediaQuery
orientation_ MisoString
x = MisoString -> MediaQuery
MediaQuery (MisoString
"(orientation: " MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
x MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
")")
-----------------------------------------------------------------------------
-- | @prefers-color-scheme@ media feature. Use @\"light\"@ or @\"dark\"@.
prefersColorScheme_ :: MisoString -> MediaQuery
prefersColorScheme_ :: MisoString -> MediaQuery
prefersColorScheme_ MisoString
x = MisoString -> MediaQuery
MediaQuery (MisoString
"(prefers-color-scheme: " MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
x MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
")")
-----------------------------------------------------------------------------
-- | @prefers-reduced-motion@ media feature. Use @\"reduce\"@ or @\"no-preference\"@.
prefersReducedMotion_ :: MisoString -> MediaQuery
prefersReducedMotion_ :: MisoString -> MediaQuery
prefersReducedMotion_ MisoString
x = MisoString -> MediaQuery
MediaQuery (MisoString
"(prefers-reduced-motion: " MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
x MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
")")
-----------------------------------------------------------------------------
-- | @hover@ media feature. Use @\"hover\"@ or @\"none\"@.
hover_ :: MisoString -> MediaQuery
hover_ :: MisoString -> MediaQuery
hover_ MisoString
x = MisoString -> MediaQuery
MediaQuery (MisoString
"(hover: " MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
x MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
")")
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/align-content
--
alignContent :: MisoString -> Style
alignContent :: MisoString -> Style
alignContent MisoString
x = MisoString
"align-content" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/align-items
--
alignItems :: MisoString -> Style
alignItems :: MisoString -> Style
alignItems MisoString
x = MisoString
"align-items" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/align-self
--
alignSelf :: MisoString -> Style
alignSelf :: MisoString -> Style
alignSelf MisoString
x = MisoString
"align-self" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/animation-delay
--
animationDelay :: MisoString -> Style
animationDelay :: MisoString -> Style
animationDelay MisoString
x = MisoString
"animation-delay" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/animation-direction
--
animationDirection :: MisoString -> Style
animationDirection :: MisoString -> Style
animationDirection MisoString
x = MisoString
"animation-direction" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/animation-duration
--
animationDuration :: MisoString -> Style
animationDuration :: MisoString -> Style
animationDuration MisoString
x = MisoString
"animation-duration" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | <https://developer.mozilla.org/en-US/docs/Web/CSS/animation-fill-mode>
--
animationFillMode :: MisoString -> Style
animationFillMode :: MisoString -> Style
animationFillMode MisoString
x = MisoString
"animation-fill-mode" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/animation-iteration-count
--
animationIterationCount :: MisoString -> Style
animationIterationCount :: MisoString -> Style
animationIterationCount MisoString
x = MisoString
"animation-iteration-count" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/animation
--
animation :: MisoString -> Style
animation :: MisoString -> Style
animation MisoString
x = MisoString
"animation" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/animation-name
--
animationName :: MisoString -> Style
animationName :: MisoString -> Style
animationName MisoString
x = MisoString
"animation-name" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | <https://developer.mozilla.org/en-US/docs/Web/CSS/animation-play-state>
--
animationPlayState :: MisoString -> Style
animationPlayState :: MisoString -> Style
animationPlayState MisoString
x = MisoString
"animation-play-state" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/animation-timing-function
--
animationTimingFunction :: MisoString -> Style
animationTimingFunction :: MisoString -> Style
animationTimingFunction MisoString
x = MisoString
"animation-timing-function" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/aspect-ratio
--
aspectRatio :: MisoString -> Style
aspectRatio :: MisoString -> Style
aspectRatio MisoString
x = MisoString
"aspect-ratio" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/background-clip
--
backgroundClip :: MisoString -> Style
backgroundClip :: MisoString -> Style
backgroundClip MisoString
x = MisoString
"background-clip" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/background-color
--
backgroundColor :: Color -> Style
backgroundColor :: Color -> Style
backgroundColor Color
x = MisoString
"background-color" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: Color -> MisoString
renderColor Color
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/background-image
--
backgroundImage :: MisoString -> Style
backgroundImage :: MisoString -> Style
backgroundImage MisoString
x = MisoString
"background-image" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/background
--
background :: MisoString -> Style
background :: MisoString -> Style
background MisoString
x = MisoString
"background" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/background-origin
--
backgroundOrigin :: MisoString -> Style
backgroundOrigin :: MisoString -> Style
backgroundOrigin MisoString
x = MisoString
"background-origin" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/background-position
--
backgroundPosition :: MisoString -> Style
backgroundPosition :: MisoString -> Style
backgroundPosition MisoString
x = MisoString
"background-position" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/background-repeat
--
backgroundRepeat :: MisoString -> Style
backgroundRepeat :: MisoString -> Style
backgroundRepeat MisoString
x = MisoString
"background-repeat" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/background-size
--
backgroundSize :: MisoString -> Style
backgroundSize :: MisoString -> Style
backgroundSize MisoString
x = MisoString
"background-size" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/border-bottom-color
--
borderBottomColor :: Color -> Style
borderBottomColor :: Color -> Style
borderBottomColor Color
x = MisoString
"border-bottom-color" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: Color -> MisoString
renderColor Color
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/border-bottom-left-radius
--
borderBottomLeftRadius :: MisoString -> Style
borderBottomLeftRadius :: MisoString -> Style
borderBottomLeftRadius MisoString
x = MisoString
"border-bottom-left-radius" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/border-bottom
--
borderBottom :: MisoString -> Style
borderBottom :: MisoString -> Style
borderBottom MisoString
x = MisoString
"border-bottom" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/border-bottom-right-radius
--
borderBottomRightRadius :: MisoString -> Style
borderBottomRightRadius :: MisoString -> Style
borderBottomRightRadius MisoString
x = MisoString
"border-bottom-right-radius" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/border-bottom-style
--
borderBottomStyle :: MisoString -> Style
borderBottomStyle :: MisoString -> Style
borderBottomStyle MisoString
x = MisoString
"border-bottom-style" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/border-bottom-width
--
borderBottomWidth :: MisoString -> Style
borderBottomWidth :: MisoString -> Style
borderBottomWidth MisoString
x = MisoString
"border-bottom-width" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/border-collapse
--
borderCollapse :: MisoString -> Style
borderCollapse :: MisoString -> Style
borderCollapse MisoString
x = MisoString
"border-collapse" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/border-color
--
borderColor :: Color -> Style
borderColor :: Color -> Style
borderColor Color
x = MisoString
"border-color" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: Color -> MisoString
renderColor Color
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/border-end-radius
--
borderEndEndRadius :: MisoString -> Style
borderEndEndRadius :: MisoString -> Style
borderEndEndRadius MisoString
x = MisoString
"border-end-end-radius" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/border-end-start-radius
--
borderEndStartRadius :: MisoString -> Style
borderEndStartRadius :: MisoString -> Style
borderEndStartRadius MisoString
x = MisoString
"border-end-start-radius" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/border-inline-end-color
--
borderInlineEndColor :: Color -> Style
borderInlineEndColor :: Color -> Style
borderInlineEndColor Color
x = MisoString
"border-inline-end-color" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: Color -> MisoString
renderColor Color
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/border-inline-end-style
--
borderInlineEndStyle :: MisoString -> Style
borderInlineEndStyle :: MisoString -> Style
borderInlineEndStyle MisoString
x = MisoString
"border-inline-end-style" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/border-inline-end-width
--
borderInlineEndWidth :: MisoString -> Style
borderInlineEndWidth :: MisoString -> Style
borderInlineEndWidth MisoString
x = MisoString
"border-inline-end-width" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/border-inline-start-color
--
borderInlineStartColor :: Color -> Style
borderInlineStartColor :: Color -> Style
borderInlineStartColor Color
x = MisoString
"border-inline-start-color" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: Color -> MisoString
renderColor Color
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/border-inline-start-style
--
borderInlineStartStyle :: MisoString -> Style
borderInlineStartStyle :: MisoString -> Style
borderInlineStartStyle MisoString
x = MisoString
"border-inline-start-style" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/border-inline-start-width
--
borderInlineStartWidth :: MisoString -> Style
borderInlineStartWidth :: MisoString -> Style
borderInlineStartWidth MisoString
x = MisoString
"border-inline-start-width" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/border-left-color
--
borderLeftColor :: Color -> Style
borderLeftColor :: Color -> Style
borderLeftColor Color
x = MisoString
"border-left-color" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: Color -> MisoString
renderColor Color
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/border-left
--
borderLeft :: MisoString -> Style
borderLeft :: MisoString -> Style
borderLeft MisoString
x = MisoString
"border-left" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/border-left-style
--
borderLeftStyle :: MisoString -> Style
borderLeftStyle :: MisoString -> Style
borderLeftStyle MisoString
x = MisoString
"border-left-style" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/border-left-width
--
borderLeftWidth :: MisoString -> Style
borderLeftWidth :: MisoString -> Style
borderLeftWidth MisoString
x = MisoString
"border-left-width" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/border
--
border :: MisoString -> Style
border :: MisoString -> Style
border MisoString
x = MisoString
"border" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/border-radius
--
borderRadius :: MisoString -> Style
borderRadius :: MisoString -> Style
borderRadius MisoString
x = MisoString
"border-radius" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/border-right-color
--
borderRightColor :: Color -> Style
borderRightColor :: Color -> Style
borderRightColor Color
x = MisoString
"border-right-color" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: Color -> MisoString
renderColor Color
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/border-right
--
borderRight :: MisoString -> Style
borderRight :: MisoString -> Style
borderRight MisoString
x = MisoString
"border-right" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/border-right-style
--
borderRightStyle :: MisoString -> Style
borderRightStyle :: MisoString -> Style
borderRightStyle MisoString
x = MisoString
"border-right-style" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/border-right-width
--
borderRightWidth :: MisoString -> Style
borderRightWidth :: MisoString -> Style
borderRightWidth MisoString
x = MisoString
"border-right-width" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/border-start-end-radius
--
borderStartEndRadius :: MisoString -> Style
borderStartEndRadius :: MisoString -> Style
borderStartEndRadius MisoString
x = MisoString
"border-start-end-radius" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/border-start-start-radius
--
borderStartStartRadius :: MisoString -> Style
borderStartStartRadius :: MisoString -> Style
borderStartStartRadius MisoString
x = MisoString
"border-start-start-radius" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/border-style
--
borderStyle :: MisoString -> Style
borderStyle :: MisoString -> Style
borderStyle MisoString
x = MisoString
"border-style" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/border-top-color
--
borderTopColor :: Color -> Style
borderTopColor :: Color -> Style
borderTopColor Color
x = MisoString
"border-top-color" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: Color -> MisoString
renderColor Color
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/border-top-left-radius
--
borderTopLeftRadius :: MisoString -> Style
borderTopLeftRadius :: MisoString -> Style
borderTopLeftRadius MisoString
x = MisoString
"border-top-left-radius" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/border-top
--
borderTop :: MisoString -> Style
borderTop :: MisoString -> Style
borderTop MisoString
x = MisoString
"border-top" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/border-top-right-radius
--
borderTopRightRadius :: MisoString -> Style
borderTopRightRadius :: MisoString -> Style
borderTopRightRadius MisoString
x = MisoString
"border-top-right-radius" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/border-top-style
--
borderTopStyle :: MisoString -> Style
borderTopStyle :: MisoString -> Style
borderTopStyle MisoString
x = MisoString
"border-top-style" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/border-top-width
--
borderTopWidth :: MisoString -> Style
borderTopWidth :: MisoString -> Style
borderTopWidth MisoString
x = MisoString
"border-top-width" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/border-width
--
borderWidth :: MisoString -> Style
borderWidth :: MisoString -> Style
borderWidth MisoString
x = MisoString
"border-width" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/bottom
--
bottom :: MisoString -> Style
bottom :: MisoString -> Style
bottom MisoString
x = MisoString
"bottom" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/box-shadow
--
boxShadow :: MisoString -> Style
boxShadow :: MisoString -> Style
boxShadow MisoString
x = MisoString
"box-shadow" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/box-sizing
--
boxSizing :: MisoString -> Style
boxSizing :: MisoString -> Style
boxSizing MisoString
x = MisoString
"box-sizing" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/clip-path
--
clipPath :: MisoString -> Style
clipPath :: MisoString -> Style
clipPath MisoString
x = MisoString
"clip-path" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/accent-color
--
accentColor :: Color -> Style
accentColor :: Color -> Style
accentColor Color
x = MisoString
"accent-color" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: Color -> MisoString
renderColor Color
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/appearance
--
appearance :: MisoString -> Style
appearance :: MisoString -> Style
appearance MisoString
x = MisoString
"appearance" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter
--
backdropFilter :: MisoString -> Style
backdropFilter :: MisoString -> Style
backdropFilter MisoString
x = MisoString
"backdrop-filter" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/caret-color
--
caretColor :: Color -> Style
caretColor :: Color -> Style
caretColor Color
x = MisoString
"caret-color" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: Color -> MisoString
renderColor Color
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/color
--
color :: Color -> Style
color :: Color -> Style
color Color
x = MisoString
"color" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: Color -> MisoString
renderColor Color
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/column-gap
--
columnGap :: MisoString -> Style
columnGap :: MisoString -> Style
columnGap MisoString
x = MisoString
"column-gap" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/direction
--
direction :: MisoString -> Style
direction :: MisoString -> Style
direction MisoString
x = MisoString
"direction" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/display
--
display :: MisoString -> Style
display :: MisoString -> Style
display MisoString
x = MisoString
"display" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | SVG [fill](https://developer.mozilla.org/en-US/docs/Web/CSS/fill) color.
--
-- > fill red
--
fill :: Color -> Style
fill :: Color -> Style
fill Color
x = MisoString
"fill" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: Color -> MisoString
renderColor Color
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/filter
--
filter :: MisoString -> Style
filter :: MisoString -> Style
filter MisoString
x = MisoString
"filter" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/flex-basis
--
flexBasis :: MisoString -> Style
flexBasis :: MisoString -> Style
flexBasis MisoString
x = MisoString
"flex-basis" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/flex-direction
--
flexDirection :: MisoString -> Style
flexDirection :: MisoString -> Style
flexDirection MisoString
x = MisoString
"flex-direction" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/flex-flow
--
flexFlow :: MisoString -> Style
flexFlow :: MisoString -> Style
flexFlow MisoString
x = MisoString
"flex-flow" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/flex-grow
--
flexGrow :: Double -> Style
flexGrow :: Double -> Style
flexGrow Double
x = MisoString
"flex-grow" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: Double -> MisoString
forall str. ToMisoString str => str -> MisoString
MS.ms Double
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/flex
--
flex :: MisoString -> Style
flex :: MisoString -> Style
flex MisoString
x = MisoString
"flex" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/flex-shrink
--
flexShrink :: Double -> Style
flexShrink :: Double -> Style
flexShrink Double
x = MisoString
"flex-shrink" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: Double -> MisoString
forall str. ToMisoString str => str -> MisoString
MS.ms Double
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/flex-wrap
--
flexWrap :: MisoString -> Style
flexWrap :: MisoString -> Style
flexWrap MisoString
x = MisoString
"flex-wrap" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/font-family
--
fontFamily :: MisoString -> Style
fontFamily :: MisoString -> Style
fontFamily MisoString
x = MisoString
"font-family" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/font-size
--
fontSize :: MisoString -> Style
fontSize :: MisoString -> Style
fontSize MisoString
x = MisoString
"font-size" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/font-stretch
--
fontStretch :: MisoString -> Style
fontStretch :: MisoString -> Style
fontStretch MisoString
x = MisoString
"font-stretch" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/font-style
--
fontStyle :: MisoString -> Style
fontStyle :: MisoString -> Style
fontStyle MisoString
x = MisoString
"font-style" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/font-variant
--
fontVariant :: MisoString -> Style
fontVariant :: MisoString -> Style
fontVariant MisoString
x = MisoString
"font-variant" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight
--
fontWeight :: MisoString -> Style
fontWeight :: MisoString -> Style
fontWeight MisoString
x = MisoString
"font-weight" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/cursor
--
cursor :: MisoString -> Style
cursor :: MisoString -> Style
cursor MisoString
x = MisoString
"cursor" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/gap
--
gap :: MisoString -> Style
gap :: MisoString -> Style
gap MisoString
x = MisoString
"gap" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/grid-auto-columns
--
gridAutoColumns :: MisoString -> Style
gridAutoColumns :: MisoString -> Style
gridAutoColumns MisoString
x = MisoString
"grid-auto-columns" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/grid-auto-flow
--
gridAutoFlow :: MisoString -> Style
gridAutoFlow :: MisoString -> Style
gridAutoFlow MisoString
x = MisoString
"grid-auto-flow" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/grid-auto-rows
--
gridAutoRows :: MisoString -> Style
gridAutoRows :: MisoString -> Style
gridAutoRows MisoString
x = MisoString
"grid-auto-rows" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/grid-column
--
gridColumn :: MisoString -> Style
gridColumn :: MisoString -> Style
gridColumn MisoString
x = MisoString
"grid-column" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/grid-column-end
--
gridColumnEnd :: MisoString -> Style
gridColumnEnd :: MisoString -> Style
gridColumnEnd MisoString
x = MisoString
"grid-column-end" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/grid-column-span
--
gridColumnSpan :: MisoString -> Style
gridColumnSpan :: MisoString -> Style
gridColumnSpan MisoString
x = MisoString
"grid-column-span" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/grid-column-start
--
gridColumnStart :: MisoString -> Style
gridColumnStart :: MisoString -> Style
gridColumnStart MisoString
x = MisoString
"grid-column-start" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/grid-row
--
gridRow :: MisoString -> Style
gridRow :: MisoString -> Style
gridRow MisoString
x = MisoString
"grid-row" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/grid-row-end
--
gridRowEnd :: MisoString -> Style
gridRowEnd :: MisoString -> Style
gridRowEnd MisoString
x = MisoString
"grid-row-end" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/grid-row-span
--
gridRowSpan :: MisoString -> Style
gridRowSpan :: MisoString -> Style
gridRowSpan MisoString
x = MisoString
"grid-row-span" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/grid-row-start
--
gridRowStart :: MisoString -> Style
gridRowStart :: MisoString -> Style
gridRowStart MisoString
x = MisoString
"grid-row-start" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/grid-template-columns
--
gridTemplateColumns :: MisoString -> Style
gridTemplateColumns :: MisoString -> Style
gridTemplateColumns MisoString
x = MisoString
"grid-template-columns" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/grid-template-rows
--
gridTemplateRows :: MisoString -> Style
gridTemplateRows :: MisoString -> Style
gridTemplateRows MisoString
x = MisoString
"grid-template-rows" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/height
--
height :: MisoString -> Style
height :: MisoString -> Style
height MisoString
x = MisoString
"height" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/image-rendering
--
imageRendering :: MisoString -> Style
imageRendering :: MisoString -> Style
imageRendering MisoString
x = MisoString
"image-rendering" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/inset-inline-end
--
insetInlineEnd :: MisoString -> Style
insetInlineEnd :: MisoString -> Style
insetInlineEnd MisoString
x = MisoString
"inset-inline-end" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/inset-inline-start
--
insetInlineStart :: MisoString -> Style
insetInlineStart :: MisoString -> Style
insetInlineStart MisoString
x = MisoString
"inset-inline-start" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/justify-content
--
justifyContent :: MisoString -> Style
justifyContent :: MisoString -> Style
justifyContent MisoString
x = MisoString
"justify-content" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/justify-items
--
justifyItems :: MisoString -> Style
justifyItems :: MisoString -> Style
justifyItems MisoString
x = MisoString
"justify-items" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/justify-self
--
justifySelf :: MisoString -> Style
justifySelf :: MisoString -> Style
justifySelf MisoString
x = MisoString
"justify-self" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/left
--
left :: MisoString -> Style
left :: MisoString -> Style
left MisoString
x = MisoString
"left" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/letter-spacing
--
letterSpacing :: MisoString -> Style
letterSpacing :: MisoString -> Style
letterSpacing MisoString
x = MisoString
"letter-spacing" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/linear-cross-gravity
--
linearCrossGravity :: MisoString -> Style
linearCrossGravity :: MisoString -> Style
linearCrossGravity MisoString
x = MisoString
"linear-cross-gravity" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/linear-direction
--
linearDirection :: MisoString -> Style
linearDirection :: MisoString -> Style
linearDirection MisoString
x = MisoString
"linear-direction" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/linear-gravity
--
linearGravity :: MisoString -> Style
linearGravity :: MisoString -> Style
linearGravity MisoString
x = MisoString
"linear-gravity" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/linear-layout-gravity
--
linearLayoutGravity :: MisoString -> Style
linearLayoutGravity :: MisoString -> Style
linearLayoutGravity MisoString
x = MisoString
"linear-layout-gravity" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/linear-weight
--
linearWeight :: MisoString -> Style
linearWeight :: MisoString -> Style
linearWeight MisoString
x = MisoString
"linear-weight" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/linear-weight-sum
--
linearWeightSum :: MisoString -> Style
linearWeightSum :: MisoString -> Style
linearWeightSum MisoString
x = MisoString
"linear-weight-sum" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/line-height
--
lineHeight :: MisoString -> Style
lineHeight :: MisoString -> Style
lineHeight MisoString
x = MisoString
"line-height" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/margin-bottom
--
marginBottom :: MisoString -> Style
marginBottom :: MisoString -> Style
marginBottom MisoString
x = MisoString
"margin-bottom" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/margin-inline-end
--
marginInlineEnd :: MisoString -> Style
marginInlineEnd :: MisoString -> Style
marginInlineEnd MisoString
x = MisoString
"margin-inline-end" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/margin-inline-start
--
marginInlineStart :: MisoString -> Style
marginInlineStart :: MisoString -> Style
marginInlineStart MisoString
x = MisoString
"margin-inline-start" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/margin-left
--
marginLeft :: MisoString -> Style
marginLeft :: MisoString -> Style
marginLeft MisoString
x = MisoString
"margin-left" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/margin
--
margin :: MisoString -> Style
margin :: MisoString -> Style
margin MisoString
x = MisoString
"margin" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/margin-right
--
marginRight :: MisoString -> Style
marginRight :: MisoString -> Style
marginRight MisoString
x = MisoString
"margin-right" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/margin-top
--
marginTop :: MisoString -> Style
marginTop :: MisoString -> Style
marginTop MisoString
x = MisoString
"margin-top" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/mask-image
--
maskImage :: MisoString -> Style
maskImage :: MisoString -> Style
maskImage MisoString
x = MisoString
"mask-image" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/mask
--
mask :: MisoString -> Style
mask :: MisoString -> Style
mask MisoString
x = MisoString
"mask" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/max-height
--
maxHeight :: MisoString -> Style
maxHeight :: MisoString -> Style
maxHeight MisoString
x = MisoString
"max-height" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/max-width
--
maxWidth :: MisoString -> Style
maxWidth :: MisoString -> Style
maxWidth MisoString
x = MisoString
"max-width" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/min-height
--
minHeight :: MisoString -> Style
minHeight :: MisoString -> Style
minHeight MisoString
x = MisoString
"min-height" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/min-width
--
minWidth :: MisoString -> Style
minWidth :: MisoString -> Style
minWidth MisoString
x = MisoString
"min-width" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/mix-blend-mode
--
mixBlendMode :: MisoString -> Style
mixBlendMode :: MisoString -> Style
mixBlendMode MisoString
x = MisoString
"mix-blend-mode" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/object-fit
--
objectFit :: MisoString -> Style
objectFit :: MisoString -> Style
objectFit MisoString
x = MisoString
"object-fit" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/object-position
--
objectPosition :: MisoString -> Style
objectPosition :: MisoString -> Style
objectPosition MisoString
x = MisoString
"object-position" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/opacity
--
opacity :: Double -> Style
opacity :: Double -> Style
opacity Double
x = MisoString
"opacity" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: Double -> MisoString
forall str. ToMisoString str => str -> MisoString
MS.ms Double
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/order
--
order :: Int -> Style
order :: Int -> Style
order Int
x = MisoString
"order" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: Int -> MisoString
forall str. ToMisoString str => str -> MisoString
MS.ms Int
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/outline
--
outline :: MisoString -> Style
outline :: MisoString -> Style
outline MisoString
x = MisoString
"outline" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/outline-color
--
outlineColor :: Color -> Style
outlineColor :: Color -> Style
outlineColor Color
x = MisoString
"outline-color" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: Color -> MisoString
renderColor Color
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/outline-offset
--
outlineOffset :: MisoString -> Style
outlineOffset :: MisoString -> Style
outlineOffset MisoString
x = MisoString
"outline-offset" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/outline-style
--
outlineStyle :: MisoString -> Style
outlineStyle :: MisoString -> Style
outlineStyle MisoString
x = MisoString
"outline-style" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/outline-width
--
outlineWidth :: MisoString -> Style
outlineWidth :: MisoString -> Style
outlineWidth MisoString
x = MisoString
"outline-width" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/overflow
--
overflow :: MisoString -> Style
overflow :: MisoString -> Style
overflow MisoString
x = MisoString
"overflow" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/overflow-x
--
overflowX :: MisoString -> Style
overflowX :: MisoString -> Style
overflowX MisoString
x = MisoString
"overflow-x" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/overflow-y
--
overflowY :: MisoString -> Style
overflowY :: MisoString -> Style
overflowY MisoString
x = MisoString
"overflow-y" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/overscroll-behavior
--
overscrollBehavior :: MisoString -> Style
overscrollBehavior :: MisoString -> Style
overscrollBehavior MisoString
x = MisoString
"overscroll-behavior" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/padding-bottom
--
paddingBottom :: MisoString -> Style
paddingBottom :: MisoString -> Style
paddingBottom MisoString
x = MisoString
"padding-bottom" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/padding-inline-end
--
paddingInlineEnd :: MisoString -> Style
paddingInlineEnd :: MisoString -> Style
paddingInlineEnd MisoString
x = MisoString
"padding-inline-end" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/padding-inline-start
--
paddingInlineStart :: MisoString -> Style
paddingInlineStart :: MisoString -> Style
paddingInlineStart MisoString
x = MisoString
"padding-inline-start" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/padding-left
--
paddingLeft :: MisoString -> Style
paddingLeft :: MisoString -> Style
paddingLeft MisoString
x = MisoString
"padding-left" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/padding
--
padding :: MisoString -> Style
padding :: MisoString -> Style
padding MisoString
x = MisoString
"padding" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/padding-right
--
paddingRight :: MisoString -> Style
paddingRight :: MisoString -> Style
paddingRight MisoString
x = MisoString
"padding-right" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/padding-top
--
paddingTop :: MisoString -> Style
paddingTop :: MisoString -> Style
paddingTop MisoString
x = MisoString
"padding-top" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/perspective
--
perspective :: MisoString -> Style
perspective :: MisoString -> Style
perspective MisoString
x = MisoString
"perspective" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/pointer-events
--
pointerEvents :: MisoString -> Style
pointerEvents :: MisoString -> Style
pointerEvents MisoString
x = MisoString
"pointer-events" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/position
--
position :: MisoString -> Style
position :: MisoString -> Style
position MisoString
x = MisoString
"position" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/relative-align-bottom
--
relativeAlignBottom :: MisoString -> Style
relativeAlignBottom :: MisoString -> Style
relativeAlignBottom MisoString
x = MisoString
"relative-align-bottom" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/relative-align-inline-end
--
relativeAlignInlineEnd :: MisoString -> Style
relativeAlignInlineEnd :: MisoString -> Style
relativeAlignInlineEnd MisoString
x = MisoString
"relative-align-inline-end" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/relative-align-inline-start
--
relativeAlignInlineStart :: MisoString -> Style
relativeAlignInlineStart :: MisoString -> Style
relativeAlignInlineStart MisoString
x = MisoString
"relative-align-inline-start" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/relative-align-left
--
relativeAlignLeft :: MisoString -> Style
relativeAlignLeft :: MisoString -> Style
relativeAlignLeft MisoString
x = MisoString
"relative-align-left" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/relative-align-right
--
relativeAlignRight :: MisoString -> Style
relativeAlignRight :: MisoString -> Style
relativeAlignRight MisoString
x = MisoString
"relative-align-right" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/relative-align-top
--
relativeAlignTop :: MisoString -> Style
relativeAlignTop :: MisoString -> Style
relativeAlignTop MisoString
x = MisoString
"relative-align-top" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/relative-bottom-of
--
relativeBottomOf :: MisoString -> Style
relativeBottomOf :: MisoString -> Style
relativeBottomOf MisoString
x = MisoString
"relative-bottom-of" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/relative-center
--
relativeCenter :: MisoString -> Style
relativeCenter :: MisoString -> Style
relativeCenter MisoString
x = MisoString
"relative-center" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/relative-id
--
relativeId :: MisoString -> Style
relativeId :: MisoString -> Style
relativeId MisoString
x = MisoString
"relative-id" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/relative-inline-end-of
--
relativeInlineEndOf :: MisoString -> Style
relativeInlineEndOf :: MisoString -> Style
relativeInlineEndOf MisoString
x = MisoString
"relative-inline-end-of" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/relative-inline-start-of
--
relativeInlineStartOf :: MisoString -> Style
relativeInlineStartOf :: MisoString -> Style
relativeInlineStartOf MisoString
x = MisoString
"relative-inline-start-of" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/relative-layout-once
--
relativeLayoutOnce :: MisoString -> Style
relativeLayoutOnce :: MisoString -> Style
relativeLayoutOnce MisoString
x = MisoString
"relative-layout-once" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/relative-left-of
--
relativeLeftOf :: MisoString -> Style
relativeLeftOf :: MisoString -> Style
relativeLeftOf MisoString
x = MisoString
"relative-left-of" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/relative-right-of
--
relativeRightOf :: MisoString -> Style
relativeRightOf :: MisoString -> Style
relativeRightOf MisoString
x = MisoString
"relative-right-of" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/relative-top-of
--
relativeTopOf :: MisoString -> Style
relativeTopOf :: MisoString -> Style
relativeTopOf MisoString
x = MisoString
"relative-top-of" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/resize
--
resize :: MisoString -> Style
resize :: MisoString -> Style
resize MisoString
x = MisoString
"resize" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/right
--
right :: MisoString -> Style
right :: MisoString -> Style
right MisoString
x = MisoString
"right" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/row-gap
--
rowGap :: MisoString -> Style
rowGap :: MisoString -> Style
rowGap MisoString
x = MisoString
"row-gap" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-behavior
--
scrollBehavior :: MisoString -> Style
scrollBehavior :: MisoString -> Style
scrollBehavior MisoString
x = MisoString
"scroll-behavior" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | SVG [stroke](https://developer.mozilla.org/en-US/docs/Web/CSS/stroke) color.
--
-- > stroke black
--
stroke :: Color -> Style
stroke :: Color -> Style
stroke Color
x = MisoString
"stroke" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: Color -> MisoString
renderColor Color
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/stroke-width
--
strokeWidth :: MisoString -> Style
strokeWidth :: MisoString -> Style
strokeWidth MisoString
x = MisoString
"stroke-width" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/text-align
--
textAlign :: MisoString -> Style
textAlign :: MisoString -> Style
textAlign MisoString
x = MisoString
"text-align" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration
--
textDecoration :: MisoString -> Style
textDecoration :: MisoString -> Style
textDecoration MisoString
x = MisoString
"text-decoration" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/text-indent
--
textIndent :: MisoString -> Style
textIndent :: MisoString -> Style
textIndent MisoString
x = MisoString
"text-indent" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/text-overflow
--
textOverflow :: MisoString -> Style
textOverflow :: MisoString -> Style
textOverflow MisoString
x = MisoString
"text-overflow" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/text-shadow
--
textShadow :: MisoString -> Style
textShadow :: MisoString -> Style
textShadow MisoString
x = MisoString
"text-shadow" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/text-stroke-color
--
textStrokeColor :: Color -> Style
textStrokeColor :: Color -> Style
textStrokeColor Color
x = MisoString
"text-stroke-color" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: Color -> MisoString
renderColor Color
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/text-stroke
--
textStroke :: MisoString -> Style
textStroke :: MisoString -> Style
textStroke MisoString
x = MisoString
"text-stroke" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/text-stroke-width
--
textStrokeWidth :: MisoString -> Style
textStrokeWidth :: MisoString -> Style
textStrokeWidth MisoString
x = MisoString
"text-stroke-width" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/text-transform
--
textTransform :: MisoString -> Style
textTransform :: MisoString -> Style
textTransform MisoString
x = MisoString
"text-transform" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/top
--
top :: MisoString -> Style
top :: MisoString -> Style
top MisoString
x = MisoString
"top" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/transform
--
transform :: MisoString -> Style
transform :: MisoString -> Style
transform MisoString
x = MisoString
"transform" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | Apply a list of t'TransformFn' values as a @transform@ style.
--
-- @
-- transforms [ translate (px 10) (pct 50), rotate (deg 45), scaleX 1.5 ]
-- @
--
transforms :: [TransformFn] -> Style
transforms :: [TransformFn] -> Style
transforms [TransformFn]
fns = MisoString
"transform" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString -> [MisoString] -> MisoString
MS.intercalate MisoString
" " ((TransformFn -> MisoString) -> [TransformFn] -> [MisoString]
forall a b. (a -> b) -> [a] -> [b]
map TransformFn -> MisoString
renderTransformFn [TransformFn]
fns)
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/transform-origin
--
transformOrigin :: MisoString -> Style
transformOrigin :: MisoString -> Style
transformOrigin MisoString
x = MisoString
"transform-origin" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/translate
--
-- >>> renderTransformFn (translate (px 10) (pct 50))
-- "translate(10px,50.0%)"
--
translate :: MisoString -> MisoString -> TransformFn
translate :: MisoString -> MisoString -> TransformFn
translate MisoString
x MisoString
y = MisoString -> TransformFn
TransformFn (MisoString -> TransformFn) -> MisoString -> TransformFn
forall a b. (a -> b) -> a -> b
$ MisoString
"translate(" MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
x MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
"," MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
y MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
")"
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/translateX
--
translateX :: MisoString -> TransformFn
translateX :: MisoString -> TransformFn
translateX MisoString
x = MisoString -> TransformFn
TransformFn (MisoString -> TransformFn) -> MisoString -> TransformFn
forall a b. (a -> b) -> a -> b
$ MisoString
"translateX(" MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
x MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
")"
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/translateY
--
translateY :: MisoString -> TransformFn
translateY :: MisoString -> TransformFn
translateY MisoString
y = MisoString -> TransformFn
TransformFn (MisoString -> TransformFn) -> MisoString -> TransformFn
forall a b. (a -> b) -> a -> b
$ MisoString
"translateY(" MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
y MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
")"
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/translateZ
--
translateZ :: MisoString -> TransformFn
translateZ :: MisoString -> TransformFn
translateZ MisoString
z = MisoString -> TransformFn
TransformFn (MisoString -> TransformFn) -> MisoString -> TransformFn
forall a b. (a -> b) -> a -> b
$ MisoString
"translateZ(" MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
z MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
")"
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/translate3d
--
translate3d :: MisoString -> MisoString -> MisoString -> TransformFn
translate3d :: MisoString -> MisoString -> MisoString -> TransformFn
translate3d MisoString
x MisoString
y MisoString
z = MisoString -> TransformFn
TransformFn (MisoString -> TransformFn) -> MisoString -> TransformFn
forall a b. (a -> b) -> a -> b
$ MisoString
"translate3d(" MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString -> [MisoString] -> MisoString
MS.intercalate MisoString
"," [MisoString
x, MisoString
y, MisoString
z] MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
")"
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/rotate
--
-- >>> renderTransformFn (rotate (deg 45))
-- "rotate(45.0deg)"
--
rotate :: MisoString -> TransformFn
rotate :: MisoString -> TransformFn
rotate MisoString
a = MisoString -> TransformFn
TransformFn (MisoString -> TransformFn) -> MisoString -> TransformFn
forall a b. (a -> b) -> a -> b
$ MisoString
"rotate(" MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
a MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
")"
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/rotateX
--
rotateX :: MisoString -> TransformFn
rotateX :: MisoString -> TransformFn
rotateX MisoString
a = MisoString -> TransformFn
TransformFn (MisoString -> TransformFn) -> MisoString -> TransformFn
forall a b. (a -> b) -> a -> b
$ MisoString
"rotateX(" MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
a MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
")"
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/rotateY
--
rotateY :: MisoString -> TransformFn
rotateY :: MisoString -> TransformFn
rotateY MisoString
a = MisoString -> TransformFn
TransformFn (MisoString -> TransformFn) -> MisoString -> TransformFn
forall a b. (a -> b) -> a -> b
$ MisoString
"rotateY(" MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
a MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
")"
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/rotateZ
--
rotateZ :: MisoString -> TransformFn
rotateZ :: MisoString -> TransformFn
rotateZ MisoString
a = MisoString -> TransformFn
TransformFn (MisoString -> TransformFn) -> MisoString -> TransformFn
forall a b. (a -> b) -> a -> b
$ MisoString
"rotateZ(" MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
a MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
")"
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/rotate3d
-- x, y, z are unitless direction vector components; angle uses a unit constructor like 'deg'.
--
rotate3d :: Double -> Double -> Double -> MisoString -> TransformFn
rotate3d :: Double -> Double -> Double -> MisoString -> TransformFn
rotate3d Double
x Double
y Double
z MisoString
a = MisoString -> TransformFn
TransformFn (MisoString -> TransformFn) -> MisoString -> TransformFn
forall a b. (a -> b) -> a -> b
$ MisoString
"rotate3d(" MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString -> [MisoString] -> MisoString
MS.intercalate MisoString
"," [Double -> MisoString
forall str. ToMisoString str => str -> MisoString
MS.ms Double
x, Double -> MisoString
forall str. ToMisoString str => str -> MisoString
MS.ms Double
y, Double -> MisoString
forall str. ToMisoString str => str -> MisoString
MS.ms Double
z, MisoString
a] MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
")"
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/scale
-- Uniform scale on both axes.
--
-- >>> renderTransformFn (scale 1.5)
-- "scale(1.5)"
--
scale :: Double -> TransformFn
scale :: Double -> TransformFn
scale Double
n = MisoString -> TransformFn
TransformFn (MisoString -> TransformFn) -> MisoString -> TransformFn
forall a b. (a -> b) -> a -> b
$ MisoString
"scale(" MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> Double -> MisoString
forall str. ToMisoString str => str -> MisoString
MS.ms Double
n MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
")"
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/scale
-- Non-uniform scale: separate X and Y factors.
--
scaleXY :: Double -> Double -> TransformFn
scaleXY :: Double -> Double -> TransformFn
scaleXY Double
x Double
y = MisoString -> TransformFn
TransformFn (MisoString -> TransformFn) -> MisoString -> TransformFn
forall a b. (a -> b) -> a -> b
$ MisoString
"scale(" MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> Double -> MisoString
forall str. ToMisoString str => str -> MisoString
MS.ms Double
x MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
"," MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> Double -> MisoString
forall str. ToMisoString str => str -> MisoString
MS.ms Double
y MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
")"
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/scale3d
--
scale3d :: Double -> Double -> Double -> TransformFn
scale3d :: Double -> Double -> Double -> TransformFn
scale3d Double
x Double
y Double
z = MisoString -> TransformFn
TransformFn (MisoString -> TransformFn) -> MisoString -> TransformFn
forall a b. (a -> b) -> a -> b
$ MisoString
"scale3d(" MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString -> [MisoString] -> MisoString
MS.intercalate MisoString
"," [Double -> MisoString
forall str. ToMisoString str => str -> MisoString
MS.ms Double
x, Double -> MisoString
forall str. ToMisoString str => str -> MisoString
MS.ms Double
y, Double -> MisoString
forall str. ToMisoString str => str -> MisoString
MS.ms Double
z] MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
")"
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/scaleX
--
scaleX :: Double -> TransformFn
scaleX :: Double -> TransformFn
scaleX Double
n = MisoString -> TransformFn
TransformFn (MisoString -> TransformFn) -> MisoString -> TransformFn
forall a b. (a -> b) -> a -> b
$ MisoString
"scaleX(" MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> Double -> MisoString
forall str. ToMisoString str => str -> MisoString
MS.ms Double
n MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
")"
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/scaleY
--
scaleY :: Double -> TransformFn
scaleY :: Double -> TransformFn
scaleY Double
n = MisoString -> TransformFn
TransformFn (MisoString -> TransformFn) -> MisoString -> TransformFn
forall a b. (a -> b) -> a -> b
$ MisoString
"scaleY(" MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> Double -> MisoString
forall str. ToMisoString str => str -> MisoString
MS.ms Double
n MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
")"
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/scaleZ
--
scaleZ :: Double -> TransformFn
scaleZ :: Double -> TransformFn
scaleZ Double
n = MisoString -> TransformFn
TransformFn (MisoString -> TransformFn) -> MisoString -> TransformFn
forall a b. (a -> b) -> a -> b
$ MisoString
"scaleZ(" MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> Double -> MisoString
forall str. ToMisoString str => str -> MisoString
MS.ms Double
n MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
")"
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/perspective
-- The @perspective()@ transform function, distinct from the @perspective@ CSS property.
--
-- >>> renderTransformFn (perspectiveFn (px 500))
-- "perspective(500px)"
--
perspectiveFn :: MisoString -> TransformFn
perspectiveFn :: MisoString -> TransformFn
perspectiveFn MisoString
d = MisoString -> TransformFn
TransformFn (MisoString -> TransformFn) -> MisoString -> TransformFn
forall a b. (a -> b) -> a -> b
$ MisoString
"perspective(" MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
d MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
")"
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/matrix3d
-- 4x4 homogeneous matrix in column-major order; each tuple is one column.
--
-- > matrix3d (1,0,0,0) (0,1,0,0) (0,0,1,0) (10,20,0,1)
--
matrix3d
  :: (Double, Double, Double, Double)
  -> (Double, Double, Double, Double)
  -> (Double, Double, Double, Double)
  -> (Double, Double, Double, Double)
  -> TransformFn
matrix3d :: (Double, Double, Double, Double)
-> (Double, Double, Double, Double)
-> (Double, Double, Double, Double)
-> (Double, Double, Double, Double)
-> TransformFn
matrix3d (Double
a1,Double
b1,Double
c1,Double
d1) (Double
a2,Double
b2,Double
c2,Double
d2) (Double
a3,Double
b3,Double
c3,Double
d3) (Double
a4,Double
b4,Double
c4,Double
d4) =
  MisoString -> TransformFn
TransformFn (MisoString -> TransformFn) -> MisoString -> TransformFn
forall a b. (a -> b) -> a -> b
$ MisoString
"matrix3d(" MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
values MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
")"
  where
    values :: MisoString
values = MisoString -> [MisoString] -> MisoString
MS.intercalate MisoString
","
      [ Double -> MisoString
forall str. ToMisoString str => str -> MisoString
MS.ms Double
a1, Double -> MisoString
forall str. ToMisoString str => str -> MisoString
MS.ms Double
b1, Double -> MisoString
forall str. ToMisoString str => str -> MisoString
MS.ms Double
c1, Double -> MisoString
forall str. ToMisoString str => str -> MisoString
MS.ms Double
d1
      , Double -> MisoString
forall str. ToMisoString str => str -> MisoString
MS.ms Double
a2, Double -> MisoString
forall str. ToMisoString str => str -> MisoString
MS.ms Double
b2, Double -> MisoString
forall str. ToMisoString str => str -> MisoString
MS.ms Double
c2, Double -> MisoString
forall str. ToMisoString str => str -> MisoString
MS.ms Double
d2
      , Double -> MisoString
forall str. ToMisoString str => str -> MisoString
MS.ms Double
a3, Double -> MisoString
forall str. ToMisoString str => str -> MisoString
MS.ms Double
b3, Double -> MisoString
forall str. ToMisoString str => str -> MisoString
MS.ms Double
c3, Double -> MisoString
forall str. ToMisoString str => str -> MisoString
MS.ms Double
d3
      , Double -> MisoString
forall str. ToMisoString str => str -> MisoString
MS.ms Double
a4, Double -> MisoString
forall str. ToMisoString str => str -> MisoString
MS.ms Double
b4, Double -> MisoString
forall str. ToMisoString str => str -> MisoString
MS.ms Double
c4, Double -> MisoString
forall str. ToMisoString str => str -> MisoString
MS.ms Double
d4
      ]
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/skew
--
skew :: MisoString -> MisoString -> TransformFn
skew :: MisoString -> MisoString -> TransformFn
skew MisoString
x MisoString
y = MisoString -> TransformFn
TransformFn (MisoString -> TransformFn) -> MisoString -> TransformFn
forall a b. (a -> b) -> a -> b
$ MisoString
"skew(" MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
x MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
"," MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
y MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
")"
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/skewX
--
skewX :: MisoString -> TransformFn
skewX :: MisoString -> TransformFn
skewX MisoString
a = MisoString -> TransformFn
TransformFn (MisoString -> TransformFn) -> MisoString -> TransformFn
forall a b. (a -> b) -> a -> b
$ MisoString
"skewX(" MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
a MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
")"
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/skewY
--
skewY :: MisoString -> TransformFn
skewY :: MisoString -> TransformFn
skewY MisoString
a = MisoString -> TransformFn
TransformFn (MisoString -> TransformFn) -> MisoString -> TransformFn
forall a b. (a -> b) -> a -> b
$ MisoString
"skewY(" MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
a MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<> MisoString
")"
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/transition-delay
--
transitionDelay :: MisoString -> Style
transitionDelay :: MisoString -> Style
transitionDelay MisoString
x = MisoString
"transition-delay" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/transition-duration
--
transitionDuration :: MisoString -> Style
transitionDuration :: MisoString -> Style
transitionDuration MisoString
x = MisoString
"transition-duration" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/transition
--
transition :: MisoString -> Style
transition :: MisoString -> Style
transition MisoString
x = MisoString
"transition" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/transition-property
--
transitionProperty :: MisoString -> Style
transitionProperty :: MisoString -> Style
transitionProperty MisoString
x = MisoString
"transition-property" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/transition-timing-function
--
transitionTimingFunction :: MisoString -> Style
transitionTimingFunction :: MisoString -> Style
transitionTimingFunction MisoString
x = MisoString
"transition-timing-function" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/user-select
--
userSelect :: MisoString -> Style
userSelect :: MisoString -> Style
userSelect MisoString
x = MisoString
"user-select" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/vertical-align
--
verticalAlign :: MisoString -> Style
verticalAlign :: MisoString -> Style
verticalAlign MisoString
x = MisoString
"vertical-align" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/visibility
--
visibility :: MisoString -> Style
visibility :: MisoString -> Style
visibility MisoString
x = MisoString
"visibility" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/white-space
--
whiteSpace :: MisoString -> Style
whiteSpace :: MisoString -> Style
whiteSpace MisoString
x = MisoString
"white-space" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/width
--
width :: MisoString -> Style
width :: MisoString -> Style
width MisoString
x = MisoString
"width" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/will-change
--
willChange :: MisoString -> Style
willChange :: MisoString -> Style
willChange MisoString
x = MisoString
"will-change" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/word-break
--
wordBreak :: MisoString -> Style
wordBreak :: MisoString -> Style
wordBreak MisoString
x = MisoString
"word-break" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/xAutoFontSize
--
xAutoFontSize :: MisoString -> Style
xAutoFontSize :: MisoString -> Style
xAutoFontSize MisoString
x = MisoString
"-x-auto-font-size" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/xAutoFontSizePresetSizes
--
xAutoFontSizePresetSizes :: MisoString -> Style
xAutoFontSizePresetSizes :: MisoString -> Style
xAutoFontSizePresetSizes MisoString
x = MisoString
"-x-auto-font-size-preset-sizes" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/xHandleColor
--
xHandleColor :: Color -> Style
xHandleColor :: Color -> Style
xHandleColor Color
x = MisoString
"-x-handle-color" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: Color -> MisoString
renderColor Color
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/xHandleSize
--
xHandleSize :: MisoString -> Style
xHandleSize :: MisoString -> Style
xHandleSize MisoString
x = MisoString
"-x-handle-size" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: MisoString
x
-----------------------------------------------------------------------------
-- | https://developer.mozilla.org/en-US/docs/Web/CSS/z-index
--
zIndex :: Int -> Style
zIndex :: Int -> Style
zIndex Int
x = MisoString
"z-index" MisoString -> MisoString -> Style
forall k v. k -> v -> (k, v)
=: Int -> MisoString
forall str. ToMisoString str => str -> MisoString
MS.ms Int
x
-----------------------------------------------------------------------------