[
    {
        "name": "Css",
        "comment": " This module is designed to allow you to add type-safe CSS styling\nto your rendered Html via <style> tags. It has basic support for @import\ndirectives and CSS rules.\n\nAssuming you have types for id and class attributes, you \"compile\" a\n`Stylesheet` with the `stylesheet` function and use the functions returned\nin the `Stylesheet` to generate id and class attributes.\n\nFor example:\n\n    type Id = MyId\n    type Class = MyClass\n    \n    -- import some google fonts\n    imports =\n        [ \"https://fonts.googleapis.com/css?family=Droid+Sans:400,700\"\n        ]\n\n    -- create a couple Css.rules, notice the use of `MyId` and `MyClass`. \n    rules =\n        [ { selectors = [ Css.Id MyId ]\n          , descriptor = [ (\"color\", \"#63d\") ]\n          }\n        , { selectors = [ Css.Class MyClass ]\n          , descriptor = [ (\"text-decoration\", \"underline\")\n          }\n        ]\n    \n    -- compile a stylesheet with no @imports and a couple rules\n    stylesheet = Css.stylesheet imports rules\n    \n    -- now, add the <style> node, and safely use your ids and classes\n    html =\n        div []\n            [ stylesheet.node\n            , div [ stylesheet.id MyId ] [ text \"Using MyId\" ]\n            , div [ stylesheet.class MyClass ] [ text \"Using MyClass\" ]\n            ]\n\n# Types\n@docs Stylesheet, Sel, Pseudo, Descriptor, Rule\n\n# Functions\n@docs stylesheet\n",
        "unions": [
            {
                "name": "Pseudo",
                "comment": " Pseudo CSS selectors and elements. These are chained together in the\n`Pseudo` selector.\n",
                "args": [],
                "cases": [
                    [
                        "Any",
                        []
                    ],
                    [
                        "Default",
                        []
                    ],
                    [
                        "Link",
                        []
                    ],
                    [
                        "Visited",
                        []
                    ],
                    [
                        "Hover",
                        []
                    ],
                    [
                        "Active",
                        []
                    ],
                    [
                        "Focus",
                        []
                    ],
                    [
                        "Target",
                        []
                    ],
                    [
                        "Enabled",
                        []
                    ],
                    [
                        "Disabled",
                        []
                    ],
                    [
                        "Checked",
                        []
                    ],
                    [
                        "Indeterminate",
                        []
                    ],
                    [
                        "Invalid",
                        []
                    ],
                    [
                        "Valid",
                        []
                    ],
                    [
                        "Fullscreen",
                        []
                    ],
                    [
                        "Root",
                        []
                    ],
                    [
                        "Scope",
                        []
                    ],
                    [
                        "FirstChild",
                        []
                    ],
                    [
                        "LastChild",
                        []
                    ],
                    [
                        "NthChild",
                        [
                            "Int"
                        ]
                    ],
                    [
                        "NthLastChild",
                        [
                            "Int"
                        ]
                    ],
                    [
                        "NthOfType",
                        [
                            "String"
                        ]
                    ],
                    [
                        "NthLastOfType",
                        [
                            "String"
                        ]
                    ],
                    [
                        "FirstOfType",
                        []
                    ],
                    [
                        "LastOfType",
                        []
                    ],
                    [
                        "OnlyOfType",
                        []
                    ],
                    [
                        "Empty",
                        []
                    ],
                    [
                        "Left",
                        []
                    ],
                    [
                        "Right",
                        []
                    ],
                    [
                        "Lang",
                        [
                            "String"
                        ]
                    ],
                    [
                        "Dir",
                        [
                            "String"
                        ]
                    ],
                    [
                        "FirstLetter",
                        []
                    ],
                    [
                        "FirstLine",
                        []
                    ],
                    [
                        "Before",
                        []
                    ],
                    [
                        "After",
                        []
                    ],
                    [
                        "Selection",
                        []
                    ],
                    [
                        "Backdrop",
                        []
                    ]
                ]
            },
            {
                "name": "Sel",
                "comment": " CSS rule selectors follow the all the selectors found [here](https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors)\nexcept for attribute selectors.\n\nThe most common selectors are the Type, Id, and Class selectors. The others\nare combinator selectors or pseudo-class/element selectors. Some examples:\n\n    -- div { ... }\n    Type \"div\"\n    \n    -- #MyId { ... }\n    Id MyId\n    \n    -- .MyClass { ... }\n    Class MyClass\n    \n    -- div #Content { ... }\n    Descendant (Id Content) (Type \"div\")\n    \n    -- span > .MyClass { ... }\n    Child (Class MyClass) (Type \"span\")\n    \n    -- hr ~ p:first-line:first-letter { ... }\n    Pseudo [FirstLine, FirstLetter] <| Sibling (Type \"p\") (Type \"hr\")\n\nTake a moment to notice that for combinators, the most specific element being\nstyled (what would be last in the selector) appears first in code.\n",
                "args": [
                    "id",
                    "cls"
                ],
                "cases": [
                    [
                        "Type",
                        [
                            "String"
                        ]
                    ],
                    [
                        "Id",
                        [
                            "id"
                        ]
                    ],
                    [
                        "Class",
                        [
                            "cls"
                        ]
                    ],
                    [
                        "Descendant",
                        [
                            "Sel id cls",
                            "Sel id cls"
                        ]
                    ],
                    [
                        "Child",
                        [
                            "Sel id cls",
                            "Sel id cls"
                        ]
                    ],
                    [
                        "Sibling",
                        [
                            "Sel id cls",
                            "Sel id cls"
                        ]
                    ],
                    [
                        "Adjacent",
                        [
                            "Sel id cls",
                            "Sel id cls"
                        ]
                    ],
                    [
                        "Pseudo",
                        [
                            "List Pseudo",
                            "Sel id cls"
                        ]
                    ]
                ]
            }
        ],
        "aliases": [
            {
                "name": "Descriptor",
                "comment": " A list of key/value style properties. ",
                "args": [],
                "type": "List ( String, String )"
            },
            {
                "name": "Rule",
                "comment": " A `Rule` is a list of matching selectors and a descriptor, which is\na list of key/value style pairs. Each selector is a separate possible match\nfor the rule. For example:\n\n    [ Sel.Id MyId\n    , Sel.Class MyClass\n    , Sel.Type \"div\"\n    , Sel.Sibling (Sel.Type \"a\") (Sel.Type \"hr\")\n    ]\n    \nThat list of selectors would be the same as the following rule in CSS:\n\n    #MyId, .MyClass, div, hr a { ... }\n",
                "args": [
                    "id",
                    "cls"
                ],
                "type": "{ selectors : List (Sel id cls), descriptor : Descriptor }"
            },
            {
                "name": "Stylesheet",
                "comment": " A Stylesheet is a \"compiled\" Html <style> node, as well as functions\nthat allow you to safely create Html.Attributes for the id and class of\nyour tags. It is returned by the `css` function.\n",
                "args": [
                    "id",
                    "cls",
                    "msg"
                ],
                "type": "{ node : Html msg, id : id -> Attribute msg, class : cls -> Attribute msg, classes : List cls -> Attribute msg }"
            }
        ],
        "values": [
            {
                "name": "stylesheet",
                "comment": " Compiles a `Stylesheet` if given a list of urls to @import and\na list of `Rule`s to generate. The `Stylesheet` contains an `Html.node`\nto include in your DOM and functions for generating type-safe id and\nclass `Html.Attribute`s.\n",
                "type": "List String -> List (Rule id cls) -> Stylesheet id cls msg"
            }
        ],
        "binops": []
    }
]