# Shpadoinkle Html [](https://gitlab.com/fresheyeball/Shpadoinkle) [](https://shpadoinkle.org/html) [](https://opensource.org/licenses/BSD-3-Clause) [](https://builtwithnix.org) [](https://hackage.haskell.org/package/Shpadoinkle-html) [](http://packdeps.haskellers.com/reverse/Shpadoinkle-html) [](https://matrix.hackage.haskell.org/#/package/Shpadoinkle-html) This module provides named functions for generating Html, and other browser utilities. For example, instead of writing: ```haskell view = h "div" [ ("class", PText "foo") ] [ h "span" [] [ text "hi there" ] ] ``` You can write: ```haskell view = div "foo" [ span_ [ "hi there" ] ] ``` which is a bit nicer, and eleminates the risk of typeos in tag names. It also provies some nice `IsString` instances for ergonomics. ## Keyboard This module provides pattern synonyms for common key codes. For example: ```haskell div [ onKeyup $ \case Enter -> fireLazors UpArrow -> jump DownArrow -> crouch LeftArrow -> move -1 RightArrow -> move 1 ] ``` which is a bit nicer, and harder to get wrong than using magic int's to identify keys. ## Browser utilities We provide high-level APIs to lower-level browser APIs. Including: - Local Storage I know it's just one right now. But this is the place to contribute more. Such as: - Scroll Position - XHR Requests - Visibility API - Notifications - ect...