Skip to content

arowM/elm-classname

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

elm-classname

A brief module for custom class attributes. It is usefull when using with CSS modules.

Say, you have a CSS file generated by CSS modules:

.prefix-by-css-modules__foo {
  color: red;
}

.prefix-by-css-modules__foo .prefix-by-css-modules__bar {
  background-color: blue;
}

.prefix-by-css-modules__foo .prefix-by-css-modules__baz {
  border: solid 2px pink;
}

Hey, it's frustrating to pass Elm the full class names:

import Html exposing (Html, div, text)
import Html.Attributes exposing (class)

view : () -> Html msg
view _ =
  div
    [ class "prefix-by-css-modules__foo"
    ]
    [ div
        [ class "prefix-by-css-modules__bar prefix-by-css-modules__baz"
        ]
        [ text "bar"
        ]
    ]

It's time to use elm-classname library:

import Html exposing (Attribute, Html, div, text)
import Html.Attributes.Classname exposing (classWith)

view : () -> Html msg
view _ =
  div
    [ class "foo"
    ]
    [ div
        [ class "bar baz"
        ]
        [ text "bar"
        ]
    ]


class : String -> Attribute msg
class =
  classWith (\name -> "prefix-by-css-modules__" ++ name)

About

A brief Elm module for custom class attributes. It is usefull when using with CSS modules.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages