[
    {
        "name": "Style",
        "comment": "\n\nThis module is focused around composing a style.\n\n@docs Model, Property, StyleSheet, embed, render, renderWith, class, selector, foundation\n\n## Rendering Options\n\n@docs Option, debug, base, importCSS, importUrl, autoImportGoogleFonts\n\n\n# Positioning\n\nThe coordinates for position always have the same coordinate system, right and down are the positive directions, same as the standard coordinate system for svg.\n\nThese coordinates are always rendered in pixels.\n\nThe name of the position property refers on which corner of the css box to start at.\n\n@docs topLeft, topRight, bottomLeft, bottomRight\n\n@docs positionBy, PositionParent, parent, currentPosition, screen\n\n\n\n# Width/Height\n\n@docs height, minHeight, maxHeight, width, minWidth, maxWidth\n\n# Units\n\nMost values in this library have one set of units to the library that are required to be used.\n\nThis is to encourage relative units to be expressed in terms of your elm code instead of relying on DOM hierarchy.\n\nHowever, `width` and `height` values can be pixels, percent, or auto.\n\n@docs percent, px, auto\n\n\n# A Note on Padding and Margins\n\nWith `padding` and `margin` you have two ways of specifying the spacing of the child element within the parent.  Either the `margin` on the child or the `padding` on the parent.\n\nIn the effort of having only one good way to accomplish something, we only allow the `padding` property to be set.\n\nWe introduce the `spacing` attribute, which sets the spacing between all _child_ elements (using the margin property).\n\n> __Some exceptions__\n>\n> `inline` elements are not affected by spacing.\n>\n> Floating elements will only respect certain spacing values.\n\n@docs padding, spacing, zIndex\n\n\n# Padding, Spacing, and Borders\n\nPadding, spacing, and border widths are all specified by a tuple of four floats that represent (top, right, bottom, left).  These are all rendered as `px` values.\n\nThe following are convenience functions for setting these values.\n\n@docs all, top, bottom, left, right, topBottom, leftRight, leftRightAndTopBottom, leftRightTopBottom, allButTop, allButLeft, allButRight, allButBottom\n\n\n## Borderstyles\n\n@docs Border, border, borderStyle, BorderStyle, borderWidth, solid, dotted, dashed, borderRadius\n\n# Layouts\n\nLayouts affect how child elements are arranged.\n\n@docs Layout, textLayout, tableLayout\n\n@docs Flow, flowUp, flowDown, flowRight, flowLeft\n\n\n@docs inline\n\n@docs Floating, floatLeft, floatRight, floatTopLeft, floatTopRight\n\n# Alignment\n\n@docs Alignment, alignLeft, alignRight, justify, justifyAll, alignCenter\n\n@docs VerticalAlignment, verticalCenter, verticalStretch, alignTop, alignBottom\n\n\n# Colors\n\n@docs textColor, backgroundColor, borderColor\n\n\n# Visibility\n\n@docs visibility, Visibility, hidden, opacity, transparency, visible\n\n\n# Text/Font\n\n@docs font, fontsize, lineHeight, textAlign, letterOffset, whitespace, Whitespace, normal, pre, preLine, preWrap, noWrap, italicize, bold, light, strike, underline, cursor\n\n\n# Background Images\n\n@docs backgroundImage, BackgroundImage, Repeat, repeat, repeatX, repeatY, noRepeat, round, space\n\n@docs property, mix\n\n\n# Shadows\n\n@docs shadows, Shadow, shadow, insetShadow, textShadow, dropShadow\n\n\n# Transforms\n\n@docs transforms, Transform, translate, rotate, scale\n\n# Filters\n\n@docs filters, Filter, filterUrl, blur, brightness, contrast, grayscale, hueRotate, invert, opacityFilter, saturate, sepia\n\n\n# Animations and Transitions\n\n@docs Animation, animate\n\n\n@docs Transition, transition\n\n## Pseudo elements and classes\n\n@docs selection, after, before, hover, focus, checked\n\n\n\n\n",
        "unions": [
            {
                "name": "Option",
                "comment": " ",
                "args": [],
                "cases": []
            }
        ],
        "aliases": [
            {
                "name": "Alignment",
                "comment": "\n",
                "args": [],
                "type": "Alignment"
            },
            {
                "name": "Animation",
                "comment": " ",
                "args": [],
                "type": "{ duration : Time, easing : String, repeat : Float, steps : List ( Float, List Property ) }"
            },
            {
                "name": "BackgroundImage",
                "comment": " ",
                "args": [],
                "type": "{ src : String, position : ( Float, Float ), repeat : Repeat }"
            },
            {
                "name": "Border",
                "comment": " ",
                "args": [],
                "type": "{ width : ( Float, Float, Float, Float ), style : BorderStyle, color : Color }"
            },
            {
                "name": "BorderStyle",
                "comment": "\n",
                "args": [],
                "type": "BorderStyle"
            },
            {
                "name": "Filter",
                "comment": "\n",
                "args": [],
                "type": "Filter"
            },
            {
                "name": "Floating",
                "comment": " Only rendered if the parent is a textLayout.\n",
                "args": [],
                "type": "Floating"
            },
            {
                "name": "Flow",
                "comment": "\n\n",
                "args": [],
                "type": "{ wrap : Bool, horizontal : Alignment, vertical : VerticalAlignment }"
            },
            {
                "name": "Layout",
                "comment": "\n",
                "args": [],
                "type": "Layout"
            },
            {
                "name": "Model",
                "comment": " ",
                "args": [
                    "class"
                ],
                "type": "Model class"
            },
            {
                "name": "PositionParent",
                "comment": "\n",
                "args": [],
                "type": "PositionParent"
            },
            {
                "name": "Property",
                "comment": " ",
                "args": [],
                "type": "Property"
            },
            {
                "name": "Repeat",
                "comment": "\n",
                "args": [],
                "type": "Repeat"
            },
            {
                "name": "Shadow",
                "comment": "\n",
                "args": [],
                "type": "Shadow"
            },
            {
                "name": "StyleSheet",
                "comment": " ",
                "args": [
                    "class",
                    "msg"
                ],
                "type": "{ class : class -> Attribute msg, classList : List ( class, Bool ) -> Attribute msg, css : String }"
            },
            {
                "name": "Transform",
                "comment": "\n",
                "args": [],
                "type": "Transform"
            },
            {
                "name": "Transition",
                "comment": "\n",
                "args": [],
                "type": "Transition"
            },
            {
                "name": "VerticalAlignment",
                "comment": "\n",
                "args": [],
                "type": "VerticalAlignment"
            },
            {
                "name": "Visibility",
                "comment": "\n",
                "args": [],
                "type": "Visibility"
            },
            {
                "name": "Whitespace",
                "comment": " ",
                "args": [],
                "type": "Whitespace"
            }
        ],
        "values": [
            {
                "name": "after",
                "comment": " Requires a string which will be rendered as the 'content' property\n",
                "type": "String -> List Property -> Property"
            },
            {
                "name": "alignBottom",
                "comment": " ",
                "type": "VerticalAlignment"
            },
            {
                "name": "alignCenter",
                "comment": " ",
                "type": "Alignment"
            },
            {
                "name": "alignLeft",
                "comment": " ",
                "type": "Alignment"
            },
            {
                "name": "alignRight",
                "comment": " ",
                "type": "Alignment"
            },
            {
                "name": "alignTop",
                "comment": " ",
                "type": "VerticalAlignment"
            },
            {
                "name": "all",
                "comment": " ",
                "type": "Float -> ( Float, Float, Float, Float )"
            },
            {
                "name": "allButBottom",
                "comment": " ",
                "type": "Float -> ( Float, Float, Float, Float )"
            },
            {
                "name": "allButLeft",
                "comment": " ",
                "type": "Float -> ( Float, Float, Float, Float )"
            },
            {
                "name": "allButRight",
                "comment": " ",
                "type": "Float -> ( Float, Float, Float, Float )"
            },
            {
                "name": "allButTop",
                "comment": " ",
                "type": "Float -> ( Float, Float, Float, Float )"
            },
            {
                "name": "animate",
                "comment": " Create an animation\n",
                "type": "Animation -> Property"
            },
            {
                "name": "auto",
                "comment": " ",
                "type": "Length"
            },
            {
                "name": "autoImportGoogleFonts",
                "comment": " An attempt will be made to import all non-standard webfonts that are in your styles.\n",
                "type": "Option"
            },
            {
                "name": "backgroundColor",
                "comment": " ",
                "type": "Color -> Property"
            },
            {
                "name": "backgroundImage",
                "comment": " ",
                "type": "BackgroundImage -> Property"
            },
            {
                "name": "base",
                "comment": " Set a base style.  All classes in this stylesheet will start with these properties.\n",
                "type": "List Property -> Option"
            },
            {
                "name": "before",
                "comment": " Requires a string which will be rendered as the 'content' property\n",
                "type": "String -> List Property -> Property"
            },
            {
                "name": "blur",
                "comment": " ",
                "type": "Float -> Filter"
            },
            {
                "name": "bold",
                "comment": " ",
                "type": "Property"
            },
            {
                "name": "border",
                "comment": " ",
                "type": "Border -> Property"
            },
            {
                "name": "borderColor",
                "comment": " ",
                "type": "Color -> Property"
            },
            {
                "name": "borderRadius",
                "comment": " ",
                "type": "( Float, Float, Float, Float ) -> Property"
            },
            {
                "name": "borderStyle",
                "comment": " ",
                "type": "BorderStyle -> Property"
            },
            {
                "name": "borderWidth",
                "comment": " ",
                "type": "( Float, Float, Float, Float ) -> Property"
            },
            {
                "name": "bottom",
                "comment": " ",
                "type": "Float -> ( Float, Float, Float, Float )"
            },
            {
                "name": "bottomLeft",
                "comment": " ",
                "type": "Float -> Float -> Property"
            },
            {
                "name": "bottomRight",
                "comment": " ",
                "type": "Float -> Float -> Property"
            },
            {
                "name": "brightness",
                "comment": " ",
                "type": "Float -> Filter"
            },
            {
                "name": "checked",
                "comment": " ",
                "type": "List Property -> Property"
            },
            {
                "name": "class",
                "comment": "\n",
                "type": "class -> List Property -> Model class"
            },
            {
                "name": "contrast",
                "comment": " ",
                "type": "Float -> Filter"
            },
            {
                "name": "currentPosition",
                "comment": " ",
                "type": "PositionParent"
            },
            {
                "name": "cursor",
                "comment": " ",
                "type": "String -> Property"
            },
            {
                "name": "dashed",
                "comment": " ",
                "type": "BorderStyle"
            },
            {
                "name": "debug",
                "comment": " Log a warning if a style is missing from a style sheet.\n\nAlso shows a visual warning if a style uses float or inline in a table layout orflow/flex layout.\n\n",
                "type": "Option"
            },
            {
                "name": "dotted",
                "comment": " ",
                "type": "BorderStyle"
            },
            {
                "name": "dropShadow",
                "comment": "\n",
                "type": "{ offset : ( Float, Float ), blur : Float, color : Color } -> Shadow"
            },
            {
                "name": "embed",
                "comment": " Embed a style sheet into your html.\n",
                "type": "StyleSheet class msg -> Html msg"
            },
            {
                "name": "filterUrl",
                "comment": " ",
                "type": "String -> Filter"
            },
            {
                "name": "filters",
                "comment": " ",
                "type": "List Filter -> Property"
            },
            {
                "name": "floatLeft",
                "comment": " Float something to the left.  Only valid in textLayouts.\n\nWill ignore any left spacing that it's parent has set for it.\n\n",
                "type": "Property"
            },
            {
                "name": "floatRight",
                "comment": "\n\n",
                "type": "Property"
            },
            {
                "name": "floatTopLeft",
                "comment": " Same as floatLeft, except it will ignore any top spacing that it's parent has set for it.\n\nThis is useful for floating things at the beginning of text.\n\n",
                "type": "Property"
            },
            {
                "name": "floatTopRight",
                "comment": "\n\n",
                "type": "Property"
            },
            {
                "name": "flowDown",
                "comment": "\n\n",
                "type": "Flow -> Property"
            },
            {
                "name": "flowLeft",
                "comment": " ",
                "type": "Flow -> Property"
            },
            {
                "name": "flowRight",
                "comment": " ",
                "type": "Flow -> Property"
            },
            {
                "name": "flowUp",
                "comment": " This is a flexbox foundationd layout\n",
                "type": "Flow -> Property"
            },
            {
                "name": "focus",
                "comment": " ",
                "type": "List Property -> Property"
            },
            {
                "name": "font",
                "comment": " Set font-family\n",
                "type": "String -> Property"
            },
            {
                "name": "fontsize",
                "comment": " Set font-size.  Only px allowed.\n",
                "type": "Float -> Property"
            },
            {
                "name": "foundation",
                "comment": "\n\nSets the following defaults:\n\n    box-sizing: border-box\n    display: block\n    position: relative\n    top: 0\n    left: 0\n\n",
                "type": "List Property"
            },
            {
                "name": "grayscale",
                "comment": " ",
                "type": "Float -> Filter"
            },
            {
                "name": "height",
                "comment": " ",
                "type": "Length -> Property"
            },
            {
                "name": "hidden",
                "comment": " Same as \"display:none\"\n",
                "type": "Visibility"
            },
            {
                "name": "hover",
                "comment": " ",
                "type": "List Property -> Property"
            },
            {
                "name": "hueRotate",
                "comment": " ",
                "type": "Float -> Filter"
            },
            {
                "name": "importCSS",
                "comment": "\n",
                "type": "String -> Option"
            },
            {
                "name": "importUrl",
                "comment": "\n",
                "type": "String -> Option"
            },
            {
                "name": "inline",
                "comment": " Render an element as 'inline-block'.\n\nThis element will no longer be affected by 'spacing'\n\n",
                "type": "Property"
            },
            {
                "name": "insetShadow",
                "comment": " ",
                "type": "{ offset : ( Float, Float ), size : Float, blur : Float, color : Color } -> Shadow"
            },
            {
                "name": "invert",
                "comment": " ",
                "type": "Float -> Filter"
            },
            {
                "name": "italicize",
                "comment": " ",
                "type": "Property"
            },
            {
                "name": "justify",
                "comment": " ",
                "type": "Alignment"
            },
            {
                "name": "justifyAll",
                "comment": " ",
                "type": "Alignment"
            },
            {
                "name": "left",
                "comment": " ",
                "type": "Float -> ( Float, Float, Float, Float )"
            },
            {
                "name": "leftRight",
                "comment": " ",
                "type": "Float -> ( Float, Float, Float, Float )"
            },
            {
                "name": "leftRightAndTopBottom",
                "comment": " ",
                "type": "Float -> Float -> ( Float, Float, Float, Float )"
            },
            {
                "name": "leftRightTopBottom",
                "comment": " ",
                "type": "Float -> Float -> Float -> Float -> ( Float, Float, Float, Float )"
            },
            {
                "name": "letterOffset",
                "comment": " ",
                "type": "Float -> Property"
            },
            {
                "name": "light",
                "comment": " ",
                "type": "Property"
            },
            {
                "name": "lineHeight",
                "comment": " Given as unitless lineheight.\n",
                "type": "Float -> Property"
            },
            {
                "name": "maxHeight",
                "comment": " ",
                "type": "Length -> Property"
            },
            {
                "name": "maxWidth",
                "comment": " ",
                "type": "Length -> Property"
            },
            {
                "name": "minHeight",
                "comment": " ",
                "type": "Length -> Property"
            },
            {
                "name": "minWidth",
                "comment": " ",
                "type": "Length -> Property"
            },
            {
                "name": "mix",
                "comment": " ",
                "type": "List Property -> Property"
            },
            {
                "name": "noRepeat",
                "comment": " ",
                "type": "Repeat"
            },
            {
                "name": "noWrap",
                "comment": " ",
                "type": "Whitespace"
            },
            {
                "name": "normal",
                "comment": " ",
                "type": "Whitespace"
            },
            {
                "name": "opacity",
                "comment": " A value between 0 and 1\n",
                "type": "Float -> Visibility"
            },
            {
                "name": "opacityFilter",
                "comment": " ",
                "type": "Float -> Filter"
            },
            {
                "name": "padding",
                "comment": " ",
                "type": "( Float, Float, Float, Float ) -> Property"
            },
            {
                "name": "parent",
                "comment": " ",
                "type": "PositionParent"
            },
            {
                "name": "percent",
                "comment": " ",
                "type": "Float -> Length"
            },
            {
                "name": "positionBy",
                "comment": " ",
                "type": "PositionParent -> Property"
            },
            {
                "name": "pre",
                "comment": " ",
                "type": "Whitespace"
            },
            {
                "name": "preLine",
                "comment": " ",
                "type": "Whitespace"
            },
            {
                "name": "preWrap",
                "comment": " ",
                "type": "Whitespace"
            },
            {
                "name": "property",
                "comment": " Add a property.  Not to be exported, `properties` is to be used instead.\n",
                "type": "String -> String -> Property"
            },
            {
                "name": "px",
                "comment": " ",
                "type": "Float -> Length"
            },
            {
                "name": "render",
                "comment": " Render styles into a stylesheet\n\n",
                "type": "List (Model class) -> StyleSheet class msg"
            },
            {
                "name": "renderWith",
                "comment": " ",
                "type": "List Option -> List (Model class) -> StyleSheet class msg"
            },
            {
                "name": "repeat",
                "comment": " ",
                "type": "Repeat"
            },
            {
                "name": "repeatX",
                "comment": " ",
                "type": "Repeat"
            },
            {
                "name": "repeatY",
                "comment": " ",
                "type": "Repeat"
            },
            {
                "name": "right",
                "comment": " ",
                "type": "Float -> ( Float, Float, Float, Float )"
            },
            {
                "name": "rotate",
                "comment": " Units always rendered as `radians`.\n\nUse `x * deg` or `x * turn` from the standard library if you want to use a different set of units.\n",
                "type": "Float -> Float -> Float -> Transform"
            },
            {
                "name": "round",
                "comment": " ",
                "type": "Repeat"
            },
            {
                "name": "saturate",
                "comment": " ",
                "type": "Float -> Filter"
            },
            {
                "name": "scale",
                "comment": " ",
                "type": "Float -> Float -> Float -> Transform"
            },
            {
                "name": "screen",
                "comment": " ",
                "type": "PositionParent"
            },
            {
                "name": "selection",
                "comment": " ",
                "type": "List Property -> Property"
            },
            {
                "name": "selector",
                "comment": " ",
                "type": "String -> List Property -> Model class"
            },
            {
                "name": "sepia",
                "comment": " ",
                "type": "Float -> Filter"
            },
            {
                "name": "shadow",
                "comment": " ",
                "type": "{ offset : ( Float, Float ), size : Float, blur : Float, color : Color } -> Shadow"
            },
            {
                "name": "shadows",
                "comment": " ",
                "type": "List Shadow -> Property"
            },
            {
                "name": "solid",
                "comment": " ",
                "type": "BorderStyle"
            },
            {
                "name": "space",
                "comment": " ",
                "type": "Repeat"
            },
            {
                "name": "spacing",
                "comment": " ",
                "type": "( Float, Float, Float, Float ) -> Property"
            },
            {
                "name": "strike",
                "comment": " ",
                "type": "Property"
            },
            {
                "name": "tableLayout",
                "comment": " This is the same as setting an element to `display:table`.\n\n",
                "type": "Property"
            },
            {
                "name": "textAlign",
                "comment": " ",
                "type": "Alignment -> Property"
            },
            {
                "name": "textColor",
                "comment": " ",
                "type": "Color -> Property"
            },
            {
                "name": "textLayout",
                "comment": " This is the only layout that allows for child elements to use `float` or `inline`.\n\nIf you try to assign a float or make an element inline that is not the child of a textLayout, the float or inline will be ignored.\n\nIf you use Style.debug instead of Style.render, the element will be highlighted in red with a large warning.\n\nBesides this, all immediate children are arranged as if they were `display: block`.\n\n",
                "type": "Property"
            },
            {
                "name": "textShadow",
                "comment": " ",
                "type": "{ offset : ( Float, Float ), blur : Float, color : Color } -> Shadow"
            },
            {
                "name": "top",
                "comment": " ",
                "type": "Float -> ( Float, Float, Float, Float )"
            },
            {
                "name": "topBottom",
                "comment": " ",
                "type": "Float -> ( Float, Float, Float, Float )"
            },
            {
                "name": "topLeft",
                "comment": " ",
                "type": "Float -> Float -> Property"
            },
            {
                "name": "topRight",
                "comment": " ",
                "type": "Float -> Float -> Property"
            },
            {
                "name": "transforms",
                "comment": " ",
                "type": "List Transform -> Property"
            },
            {
                "name": "transition",
                "comment": " ",
                "type": "Transition -> Property"
            },
            {
                "name": "translate",
                "comment": " Units are always as pixels\n",
                "type": "Float -> Float -> Float -> Transform"
            },
            {
                "name": "transparency",
                "comment": " A value between 0 and 1\n",
                "type": "Float -> Visibility"
            },
            {
                "name": "underline",
                "comment": " ",
                "type": "Property"
            },
            {
                "name": "verticalCenter",
                "comment": " ",
                "type": "VerticalAlignment"
            },
            {
                "name": "verticalStretch",
                "comment": " ",
                "type": "VerticalAlignment"
            },
            {
                "name": "visibility",
                "comment": " ",
                "type": "Visibility -> Property"
            },
            {
                "name": "visible",
                "comment": "\n",
                "type": "Visibility"
            },
            {
                "name": "whitespace",
                "comment": " ",
                "type": "Whitespace -> Property"
            },
            {
                "name": "width",
                "comment": " ",
                "type": "Length -> Property"
            },
            {
                "name": "zIndex",
                "comment": " ",
                "type": "Int -> Property"
            }
        ],
        "binops": []
    },
    {
        "name": "Style.Media",
        "comment": " Standard media query ranges.\n\nTaken from the following article: https://medium.freecodecamp.com/the-100-correct-way-to-do-css-breakpoints-88d6a5ba1862#.lzjwmdyed\n\n@docs query, phoneOnly, tabletPortraitUp, tabletPortraitOnly, tabletLandscapeUp, tabletLandscapeOnly, desktopUp, desktopOnly, bigDesktopUp\n\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "bigDesktopUp",
                "comment": " ",
                "type": "List Property -> Property"
            },
            {
                "name": "desktopOnly",
                "comment": " ",
                "type": "List Property -> Property"
            },
            {
                "name": "desktopUp",
                "comment": " ",
                "type": "List Property -> Property"
            },
            {
                "name": "phoneOnly",
                "comment": " ",
                "type": "List Property -> Property"
            },
            {
                "name": "query",
                "comment": " ",
                "type": "String -> List Property -> Property"
            },
            {
                "name": "tabletLandscapeOnly",
                "comment": " ",
                "type": "List Property -> Property"
            },
            {
                "name": "tabletLandscapeUp",
                "comment": " ",
                "type": "List Property -> Property"
            },
            {
                "name": "tabletPortraitOnly",
                "comment": " ",
                "type": "List Property -> Property"
            },
            {
                "name": "tabletPortraitUp",
                "comment": " ",
                "type": "List Property -> Property"
            }
        ],
        "binops": []
    }
]