| Copyright | (C) 2016-2025 David M. Johnson | 
|---|---|
| License | BSD3-style (see the file LICENSE) | 
| Maintainer | David M. Johnson <code@dmj.io> | 
| Stability | experimental | 
| Portability | non-portable | 
| Safe Haskell | None | 
| Language | Haskell2010 | 
Miso.CSS
Description
Module for constructing CSS styles and stylesheets in miso
Synopsis
- module Miso.CSS.Types
 - style_ :: [Style] -> Attribute action
 - styleInline_ :: MisoString -> Attribute action
 - sheet_ :: [Styles] -> StyleSheet
 - selector_ :: MisoString -> [Style] -> Styles
 - renderStyleSheet :: StyleSheet -> MisoString
 - alignContent :: MisoString -> Style
 - alignItems :: MisoString -> Style
 - alignSelf :: MisoString -> Style
 - animationDelay :: MisoString -> Style
 - animationDirection :: MisoString -> Style
 - animationDuration :: MisoString -> Style
 - animationFillMode :: MisoString -> Style
 - animationIterationCount :: MisoString -> Style
 - animation :: MisoString -> Style
 - animationName :: MisoString -> Style
 - animationPlayState :: MisoString -> Style
 - animationTimingFunction :: MisoString -> Style
 - aspectRatio :: MisoString -> Style
 - backgroundClip :: MisoString -> Style
 - backgroundColor :: Color -> Style
 - backgroundImage :: MisoString -> Style
 - background :: MisoString -> Style
 - backgroundOrigin :: MisoString -> Style
 - backgroundPosition :: MisoString -> Style
 - backgroundRepeat :: MisoString -> Style
 - backgroundSize :: MisoString -> Style
 - borderBottomColor :: Color -> Style
 - borderBottomLeftRadius :: MisoString -> Style
 - borderBottom :: MisoString -> Style
 - borderBottomRightRadius :: MisoString -> Style
 - borderBottomStyle :: MisoString -> Style
 - borderBottomWidth :: MisoString -> Style
 - borderCollapse :: MisoString -> Style
 - borderColor :: Color -> Style
 - borderEndEndRadius :: MisoString -> Style
 - borderEndStartRadius :: MisoString -> Style
 - borderInlineEndColor :: Color -> Style
 - borderInlineEndStyle :: MisoString -> Style
 - borderInlineEndWidth :: MisoString -> Style
 - borderInlineStartColor :: Color -> Style
 - borderInlineStartStyle :: MisoString -> Style
 - borderInlineStartWidth :: MisoString -> Style
 - borderLeftColor :: Color -> Style
 - borderLeft :: MisoString -> Style
 - borderLeftStyle :: MisoString -> Style
 - borderLeftWidth :: MisoString -> Style
 - border :: MisoString -> Style
 - borderRadius :: MisoString -> Style
 - borderRightColor :: Color -> Style
 - borderRight :: MisoString -> Style
 - borderRightStyle :: MisoString -> Style
 - borderRightWidth :: MisoString -> Style
 - borderStartEndRadius :: MisoString -> Style
 - borderStartStartRadius :: MisoString -> Style
 - borderStyle :: MisoString -> Style
 - borderTopColor :: Color -> Style
 - borderTopLeftRadius :: MisoString -> Style
 - borderTop :: MisoString -> Style
 - borderTopRightRadius :: MisoString -> Style
 - borderTopStyle :: MisoString -> Style
 - borderTopWidth :: MisoString -> Style
 - borderWidth :: MisoString -> Style
 - bottom :: MisoString -> Style
 - boxShadow :: MisoString -> Style
 - boxSizing :: MisoString -> Style
 - clipPath :: MisoString -> Style
 - color :: Color -> Style
 - columnGap :: MisoString -> Style
 - cssVariable :: MisoString -> Style
 - cursor :: MisoString -> Style
 - direction :: MisoString -> Style
 - display :: MisoString -> Style
 - fill :: MisoString -> Style
 - filter :: MisoString -> Style
 - flexBasis :: MisoString -> Style
 - flexDirection :: MisoString -> Style
 - flexFlow :: MisoString -> Style
 - flexGrow :: MisoString -> Style
 - flex :: MisoString -> Style
 - flexShrink :: MisoString -> Style
 - flexWrap :: MisoString -> Style
 - fontFamily :: MisoString -> Style
 - fontSize :: MisoString -> Style
 - fontStyle :: MisoString -> Style
 - fontWeight :: MisoString -> Style
 - gap :: MisoString -> Style
 - gridAutoColumns :: MisoString -> Style
 - gridAutoFlow :: MisoString -> Style
 - gridAutoRows :: MisoString -> Style
 - gridColumnEnd :: MisoString -> Style
 - gridColumnSpan :: MisoString -> Style
 - gridColumnStart :: MisoString -> Style
 - gridRowEnd :: MisoString -> Style
 - gridRowSpan :: MisoString -> Style
 - gridRowStart :: MisoString -> Style
 - gridTemplateColumns :: MisoString -> Style
 - gridTemplateRows :: MisoString -> Style
 - height :: MisoString -> Style
 - imageRendering :: MisoString -> Style
 - insetInlineEnd :: MisoString -> Style
 - insetInlineStart :: MisoString -> Style
 - justifyContent :: MisoString -> Style
 - justifyItems :: MisoString -> Style
 - justifySelf :: MisoString -> Style
 - left :: MisoString -> Style
 - letterSpacing :: MisoString -> Style
 - linearCrossGravity :: MisoString -> Style
 - linearDirection :: MisoString -> Style
 - linearGravity :: MisoString -> Style
 - linearLayoutGravity :: MisoString -> Style
 - linearWeight :: MisoString -> Style
 - linearWeightSum :: MisoString -> Style
 - lineHeight :: MisoString -> Style
 - marginBottom :: MisoString -> Style
 - marginInlineEnd :: MisoString -> Style
 - marginInlineStart :: MisoString -> Style
 - marginLeft :: MisoString -> Style
 - margin :: MisoString -> Style
 - marginRight :: MisoString -> Style
 - marginTop :: MisoString -> Style
 - maskImage :: MisoString -> Style
 - mask :: MisoString -> Style
 - maxHeight :: MisoString -> Style
 - maxWidth :: MisoString -> Style
 - minHeight :: MisoString -> Style
 - minWidth :: MisoString -> Style
 - opacity :: MisoString -> Style
 - order :: MisoString -> Style
 - overflow :: MisoString -> Style
 - overflowX :: MisoString -> Style
 - overflowY :: MisoString -> Style
 - paddingBottom :: MisoString -> Style
 - paddingInlineEnd :: MisoString -> Style
 - paddingInlineStart :: MisoString -> Style
 - paddingLeft :: MisoString -> Style
 - padding :: MisoString -> Style
 - paddingRight :: MisoString -> Style
 - paddingTop :: MisoString -> Style
 - perspective :: MisoString -> Style
 - position :: MisoString -> Style
 - relativeAlignBottom :: MisoString -> Style
 - relativeAlignInlineEnd :: MisoString -> Style
 - relativeAlignInlineStart :: MisoString -> Style
 - relativeAlignLeft :: MisoString -> Style
 - relativeAlignRight :: MisoString -> Style
 - relativeAlignTop :: MisoString -> Style
 - relativeBottomOf :: MisoString -> Style
 - relativeCenter :: MisoString -> Style
 - relativeId :: MisoString -> Style
 - relativeInlineEndOf :: MisoString -> Style
 - relativeInlineStartOf :: MisoString -> Style
 - relativeLayoutOnce :: MisoString -> Style
 - relativeLeftOf :: MisoString -> Style
 - relativeRightOf :: MisoString -> Style
 - relativeTopOf :: MisoString -> Style
 - right :: MisoString -> Style
 - rowGap :: MisoString -> Style
 - stroke :: MisoString -> Style
 - strokeWidth :: MisoString -> Style
 - textAlign :: MisoString -> Style
 - textDecoration :: MisoString -> Style
 - textIndent :: MisoString -> Style
 - textOverflow :: MisoString -> Style
 - textShadow :: MisoString -> Style
 - textStrokeColor :: Color -> Style
 - textStroke :: MisoString -> Style
 - textStrokeWidth :: MisoString -> Style
 - top :: MisoString -> Style
 - transform :: MisoString -> Style
 - transformOrigin :: MisoString -> Style
 - transitionDelay :: MisoString -> Style
 - transitionDuration :: MisoString -> Style
 - transition :: MisoString -> Style
 - transitionProperty :: MisoString -> Style
 - transitionTimingFunction :: MisoString -> Style
 - verticalAlign :: MisoString -> Style
 - visibility :: MisoString -> Style
 - whiteSpace :: MisoString -> Style
 - width :: MisoString -> Style
 - wordBreak :: MisoString -> Style
 - xAutoFontSize :: MisoString -> Style
 - xAutoFontSizePresetSizes :: MisoString -> Style
 - xHandleColor :: Color -> Style
 - xHandleSize :: MisoString -> Style
 - zIndex :: MisoString -> Style
 - module Miso.CSS.Color
 - px :: Int -> MisoString
 - ppx :: Double -> MisoString
 - pct :: Double -> MisoString
 - pt :: Int -> MisoString
 - vw :: Double -> MisoString
 - vh :: Double -> MisoString
 - deg :: Double -> MisoString
 - turn :: Double -> MisoString
 - rad :: Double -> MisoString
 - rpx :: Double -> MisoString
 - rem :: Double -> MisoString
 - em :: Double -> MisoString
 - s :: Double -> MisoString
 - ms :: Double -> MisoString
 - url :: MisoString -> MisoString
 - matrix :: Double -> Double -> Double -> Double -> Double -> Double -> MisoString
 - keyframes_ :: MisoString -> [(MisoString, [Style])] -> Styles
 - media_ :: MisoString -> [(MisoString, [Style])] -> Styles
 
Types
module Miso.CSS.Types
Smart Constructor
style_ :: [Style] -> Attribute action Source #
style_ is an attribute that will set the style
 attribute of the associated DOM node to attrs.
style attributes not contained in attrs will be deleted.
import qualified Data.Map as M div_ [ style_ [ backgroundColor "red" ] [ ]
styleInline_ :: MisoString -> Attribute action Source #
Set "style" property
view m = div_ [ styleInline_ "background-color:red;color:blue;" ] [ "foo" ]
sheet_ :: [Styles] -> StyleSheet Source #
Smart constructor for StyleSheet
selector_ :: MisoString -> [Style] -> Styles Source #
Used when constructing a StyleSheet
sheet_
  [ selector_ ".name"
    [ backgroundColor red
    , alignContent "top"
    ]
  ]
Render
renderStyleSheet :: StyleSheet -> MisoString Source #
Render StyleSheet as MisoString
Combinators
alignContent :: MisoString -> Style Source #
alignItems :: MisoString -> Style Source #
alignSelf :: MisoString -> Style Source #
animationDelay :: MisoString -> Style Source #
animationDirection :: MisoString -> Style Source #
animationDuration :: MisoString -> Style Source #
animationFillMode :: MisoString -> Style Source #
animationName :: MisoString -> Style Source #
animationPlayState :: MisoString -> Style Source #
https://developer.mozilla.org/en-US/docs/Web/CSS/animation-play-state > style_ [ animationPlayState =: "value" ]
aspectRatio :: MisoString -> Style Source #
backgroundClip :: MisoString -> Style Source #
backgroundColor :: Color -> Style Source #
backgroundImage :: MisoString -> Style Source #
background :: MisoString -> Style Source #
backgroundOrigin :: MisoString -> Style Source #
backgroundPosition :: MisoString -> Style Source #
backgroundRepeat :: MisoString -> Style Source #
backgroundSize :: MisoString -> Style Source #
borderBottomColor :: Color -> Style Source #
borderBottom :: MisoString -> Style Source #
borderBottomStyle :: MisoString -> Style Source #
borderBottomWidth :: MisoString -> Style Source #
borderCollapse :: MisoString -> Style Source #
borderEndEndRadius :: MisoString -> Style Source #
borderInlineEndColor :: Color -> Style Source #
borderInlineStartColor :: Color -> Style Source #
borderLeftColor :: Color -> Style Source #
borderLeft :: MisoString -> Style Source #
borderLeftStyle :: MisoString -> Style Source #
borderLeftWidth :: MisoString -> Style Source #
borderRadius :: MisoString -> Style Source #
borderRightColor :: Color -> Style Source #
borderRight :: MisoString -> Style Source #
borderRightStyle :: MisoString -> Style Source #
borderRightWidth :: MisoString -> Style Source #
borderStyle :: MisoString -> Style Source #
borderTopColor :: Color -> Style Source #
borderTop :: MisoString -> Style Source #
borderTopStyle :: MisoString -> Style Source #
borderTopWidth :: MisoString -> Style Source #
borderWidth :: MisoString -> Style Source #
boxShadow :: MisoString -> Style Source #
boxSizing :: MisoString -> Style Source #
columnGap :: MisoString -> Style Source #
cssVariable :: MisoString -> Style Source #
flexBasis :: MisoString -> Style Source #
flexDirection :: MisoString -> Style Source #
flexShrink :: MisoString -> Style Source #
fontFamily :: MisoString -> Style Source #
fontStyle :: MisoString -> Style Source #
fontWeight :: MisoString -> Style Source #
gridAutoColumns :: MisoString -> Style Source #
gridAutoFlow :: MisoString -> Style Source #
gridAutoRows :: MisoString -> Style Source #
gridColumnEnd :: MisoString -> Style Source #
gridColumnSpan :: MisoString -> Style Source #
gridColumnStart :: MisoString -> Style Source #
gridRowEnd :: MisoString -> Style Source #
gridRowSpan :: MisoString -> Style Source #
gridRowStart :: MisoString -> Style Source #
gridTemplateRows :: MisoString -> Style Source #
imageRendering :: MisoString -> Style Source #
insetInlineEnd :: MisoString -> Style Source #
insetInlineStart :: MisoString -> Style Source #
justifyContent :: MisoString -> Style Source #
justifyItems :: MisoString -> Style Source #
justifySelf :: MisoString -> Style Source #
letterSpacing :: MisoString -> Style Source #
linearCrossGravity :: MisoString -> Style Source #
linearDirection :: MisoString -> Style Source #
linearGravity :: MisoString -> Style Source #
linearWeight :: MisoString -> Style Source #
linearWeightSum :: MisoString -> Style Source #
lineHeight :: MisoString -> Style Source #
marginBottom :: MisoString -> Style Source #
marginInlineEnd :: MisoString -> Style Source #
marginInlineStart :: MisoString -> Style Source #
marginLeft :: MisoString -> Style Source #
marginRight :: MisoString -> Style Source #
marginTop :: MisoString -> Style Source #
maskImage :: MisoString -> Style Source #
maxHeight :: MisoString -> Style Source #
minHeight :: MisoString -> Style Source #
overflowX :: MisoString -> Style Source #
overflowY :: MisoString -> Style Source #
paddingBottom :: MisoString -> Style Source #
paddingInlineEnd :: MisoString -> Style Source #
paddingInlineStart :: MisoString -> Style Source #
paddingLeft :: MisoString -> Style Source #
paddingRight :: MisoString -> Style Source #
paddingTop :: MisoString -> Style Source #
perspective :: MisoString -> Style Source #
relativeAlignLeft :: MisoString -> Style Source #
relativeAlignRight :: MisoString -> Style Source #
relativeAlignTop :: MisoString -> Style Source #
relativeBottomOf :: MisoString -> Style Source #
relativeCenter :: MisoString -> Style Source #
relativeId :: MisoString -> Style Source #
relativeLayoutOnce :: MisoString -> Style Source #
relativeLeftOf :: MisoString -> Style Source #
relativeRightOf :: MisoString -> Style Source #
relativeTopOf :: MisoString -> Style Source #
strokeWidth :: MisoString -> Style Source #
textAlign :: MisoString -> Style Source #
textDecoration :: MisoString -> Style Source #
textIndent :: MisoString -> Style Source #
textOverflow :: MisoString -> Style Source #
textShadow :: MisoString -> Style Source #
textStrokeColor :: Color -> Style Source #
textStroke :: MisoString -> Style Source #
textStrokeWidth :: MisoString -> Style Source #
transformOrigin :: MisoString -> Style Source #
transitionDelay :: MisoString -> Style Source #
transitionDuration :: MisoString -> Style Source #
transition :: MisoString -> Style Source #
transitionProperty :: MisoString -> Style Source #
verticalAlign :: MisoString -> Style Source #
visibility :: MisoString -> Style Source #
whiteSpace :: MisoString -> Style Source #
wordBreak :: MisoString -> Style Source #
xAutoFontSize :: MisoString -> Style Source #
xHandleColor :: Color -> Style Source #
xHandleSize :: MisoString -> Style Source #
Colors
module Miso.CSS.Color
Units
px :: Int -> MisoString Source #
Font sizing in terms of *px*
>>> px 10 "10px"
ppx :: Double -> MisoString Source #
ppx unit of measure
pt :: Int -> MisoString Source #
Font sizing in terms of *pt*
>>> pt 10 "10pt"
vw :: Double -> MisoString Source #
Viewport width
>>> vw 10.0 "10.0vw"
vh :: Double -> MisoString Source #
Viewport height
>>> vh 10.0 "10.0vh"
deg :: Double -> MisoString Source #
Degree specification
>>> deg 10 "10deg"
turn :: Double -> MisoString Source #
Turn constructor, useful for specifying rotations
>>> turn 10.0 "10.0turn"
rad :: Double -> MisoString Source #
Radial constructor
>>> rad 10.0 "10.0rad"
rpx :: Double -> MisoString Source #
Responsive pixel sizing, *rpx*
>>> rpx 10.0 "10.0rpx"
rem :: Double -> MisoString Source #
Relative *em* sizing
>>> rem 10.0 "10.0rem"
em :: Double -> MisoString Source #
- em* sizing
 
>>> em 10.0 "10.0em"
s :: Double -> MisoString Source #
Duration in seconds
>>> s 10.0 "10.0s"
ms :: Double -> MisoString Source #
Duration in milliseconds
>>> ms 10.0 "10.0ms"
Misc
url :: MisoString -> MisoString Source #
CSS function for specifying a URL
>>> url "dog.png"
"url("dog.png")"
Animation
keyframes_ :: MisoString -> [(MisoString, [Style])] -> Styles Source #
https://developer.mozilla.org/en-US/docs/Web/CSS/@keyframes
testKeyFrame :: Styles
testKeyFrame = keyframes "slide-in"
  [ "from" =:
      [ transform "translateX(0%)"
      ]
  , "to" =:
      [ transform "translateX(100%)"
      , backgroundColor red
      , backgroundSize "10px"
      , backgroundRepeat "true"
      ]
  , pct 10 =:
    [ "foo" =: "bar"
    ]
 ]
Media Queries
media_ :: MisoString -> [(MisoString, [Style])] -> Styles Source #
https://developer.mozilla.org/en-US/docs/Web/CSS/@media
media_ "screen and (min-width: 480px)"
  [ "header" =:
      [ height "auto"
      ]
  , "ul" =:
      [ display "block"
      ]
  ]