This module defines the HTML types required by the Halogen library, and provides smart constructors for HTML5 elements.
newtype TagNameA type-safe wrapper for a HTML tag name
tagName :: String -> TagNameCreate a tag name
runTagName :: TagName -> StringUnwrap a TagName to get the tag name as a String.
data HTML i
= Text String
| Element TagName [A.Attr i] [HTML i]An initial encoding of HTML nodes.
instance functorHTML :: Functor HTMLtext :: forall i. String -> HTML ielement :: forall i. TagName -> [A.Attr i] -> [HTML i] -> HTML ia :: forall i. [A.Attr i] -> [HTML i] -> HTML ia_ :: forall i. [HTML i] -> HTML iabbr :: forall i. [A.Attr i] -> [HTML i] -> HTML iabbr_ :: forall i. [HTML i] -> HTML iacronym :: forall i. [A.Attr i] -> [HTML i] -> HTML iacronym_ :: forall i. [HTML i] -> HTML iaddress :: forall i. [A.Attr i] -> [HTML i] -> HTML iaddress_ :: forall i. [HTML i] -> HTML iapplet :: forall i. [A.Attr i] -> [HTML i] -> HTML iapplet_ :: forall i. [HTML i] -> HTML iarea :: forall i. [A.Attr i] -> [HTML i] -> HTML iarea_ :: forall i. [HTML i] -> HTML iarticle :: forall i. [A.Attr i] -> [HTML i] -> HTML iarticle_ :: forall i. [HTML i] -> HTML iaside :: forall i. [A.Attr i] -> [HTML i] -> HTML iaside_ :: forall i. [HTML i] -> HTML iaudio :: forall i. [A.Attr i] -> [HTML i] -> HTML iaudio_ :: forall i. [HTML i] -> HTML ib :: forall i. [A.Attr i] -> [HTML i] -> HTML ib_ :: forall i. [HTML i] -> HTML ibase :: forall i. [A.Attr i] -> [HTML i] -> HTML ibase_ :: forall i. [HTML i] -> HTML ibasefont :: forall i. [A.Attr i] -> [HTML i] -> HTML ibasefont_ :: forall i. [HTML i] -> HTML ibdi :: forall i. [A.Attr i] -> [HTML i] -> HTML ibdi_ :: forall i. [HTML i] -> HTML ibdo :: forall i. [A.Attr i] -> [HTML i] -> HTML ibdo_ :: forall i. [HTML i] -> HTML ibig :: forall i. [A.Attr i] -> [HTML i] -> HTML ibig_ :: forall i. [HTML i] -> HTML iblockquote :: forall i. [A.Attr i] -> [HTML i] -> HTML iblockquote_ :: forall i. [HTML i] -> HTML ibody :: forall i. [A.Attr i] -> [HTML i] -> HTML ibody_ :: forall i. [HTML i] -> HTML ibr :: forall i. [A.Attr i] -> [HTML i] -> HTML ibr_ :: forall i. [HTML i] -> HTML ibutton :: forall i. [A.Attr i] -> [HTML i] -> HTML ibutton_ :: forall i. [HTML i] -> HTML icanvas :: forall i. [A.Attr i] -> [HTML i] -> HTML icanvas_ :: forall i. [HTML i] -> HTML icaption :: forall i. [A.Attr i] -> [HTML i] -> HTML icaption_ :: forall i. [HTML i] -> HTML icenter :: forall i. [A.Attr i] -> [HTML i] -> HTML icenter_ :: forall i. [HTML i] -> HTML icite :: forall i. [A.Attr i] -> [HTML i] -> HTML icite_ :: forall i. [HTML i] -> HTML icode :: forall i. [A.Attr i] -> [HTML i] -> HTML icode_ :: forall i. [HTML i] -> HTML icol :: forall i. [A.Attr i] -> [HTML i] -> HTML icol_ :: forall i. [HTML i] -> HTML icolgroup :: forall i. [A.Attr i] -> [HTML i] -> HTML icolgroup_ :: forall i. [HTML i] -> HTML idatalist :: forall i. [A.Attr i] -> [HTML i] -> HTML idatalist_ :: forall i. [HTML i] -> HTML idd :: forall i. [A.Attr i] -> [HTML i] -> HTML idd_ :: forall i. [HTML i] -> HTML idel :: forall i. [A.Attr i] -> [HTML i] -> HTML idel_ :: forall i. [HTML i] -> HTML idetails :: forall i. [A.Attr i] -> [HTML i] -> HTML idetails_ :: forall i. [HTML i] -> HTML idfn :: forall i. [A.Attr i] -> [HTML i] -> HTML idfn_ :: forall i. [HTML i] -> HTML idialog :: forall i. [A.Attr i] -> [HTML i] -> HTML idialog_ :: forall i. [HTML i] -> HTML idir :: forall i. [A.Attr i] -> [HTML i] -> HTML idir_ :: forall i. [HTML i] -> HTML idiv :: forall i. [A.Attr i] -> [HTML i] -> HTML idiv_ :: forall i. [HTML i] -> HTML idl :: forall i. [A.Attr i] -> [HTML i] -> HTML idl_ :: forall i. [HTML i] -> HTML idt :: forall i. [A.Attr i] -> [HTML i] -> HTML idt_ :: forall i. [HTML i] -> HTML iem :: forall i. [A.Attr i] -> [HTML i] -> HTML iem_ :: forall i. [HTML i] -> HTML iembed :: forall i. [A.Attr i] -> [HTML i] -> HTML iembed_ :: forall i. [HTML i] -> HTML ifieldset :: forall i. [A.Attr i] -> [HTML i] -> HTML ifieldset_ :: forall i. [HTML i] -> HTML ifigcaption :: forall i. [A.Attr i] -> [HTML i] -> HTML ifigcaption_ :: forall i. [HTML i] -> HTML ifigure :: forall i. [A.Attr i] -> [HTML i] -> HTML ifigure_ :: forall i. [HTML i] -> HTML ifont :: forall i. [A.Attr i] -> [HTML i] -> HTML ifont_ :: forall i. [HTML i] -> HTML ifooter :: forall i. [A.Attr i] -> [HTML i] -> HTML ifooter_ :: forall i. [HTML i] -> HTML iform :: forall i. [A.Attr i] -> [HTML i] -> HTML iform_ :: forall i. [HTML i] -> HTML iframe :: forall i. [A.Attr i] -> [HTML i] -> HTML iframe_ :: forall i. [HTML i] -> HTML iframeset :: forall i. [A.Attr i] -> [HTML i] -> HTML iframeset_ :: forall i. [HTML i] -> HTML ih1 :: forall i. [A.Attr i] -> [HTML i] -> HTML ih1_ :: forall i. [HTML i] -> HTML ih2 :: forall i. [A.Attr i] -> [HTML i] -> HTML ih2_ :: forall i. [HTML i] -> HTML ih3 :: forall i. [A.Attr i] -> [HTML i] -> HTML ih3_ :: forall i. [HTML i] -> HTML ih4 :: forall i. [A.Attr i] -> [HTML i] -> HTML ih4_ :: forall i. [HTML i] -> HTML ih5 :: forall i. [A.Attr i] -> [HTML i] -> HTML ih5_ :: forall i. [HTML i] -> HTML ih6 :: forall i. [A.Attr i] -> [HTML i] -> HTML ih6_ :: forall i. [HTML i] -> HTML ihead :: forall i. [A.Attr i] -> [HTML i] -> HTML ihead_ :: forall i. [HTML i] -> HTML iheader :: forall i. [A.Attr i] -> [HTML i] -> HTML iheader_ :: forall i. [HTML i] -> HTML ihr :: forall i. [A.Attr i] -> [HTML i] -> HTML ihr_ :: forall i. [HTML i] -> HTML ihtml :: forall i. [A.Attr i] -> [HTML i] -> HTML ihtml_ :: forall i. [HTML i] -> HTML ii :: forall i. [A.Attr i] -> [HTML i] -> HTML ii_ :: forall i. [HTML i] -> HTML iiframe :: forall i. [A.Attr i] -> [HTML i] -> HTML iiframe_ :: forall i. [HTML i] -> HTML iimg :: forall i. [A.Attr i] -> [HTML i] -> HTML iimg_ :: forall i. [HTML i] -> HTML iinput :: forall i. [A.Attr i] -> [HTML i] -> HTML iinput_ :: forall i. [HTML i] -> HTML iins :: forall i. [A.Attr i] -> [HTML i] -> HTML iins_ :: forall i. [HTML i] -> HTML ikbd :: forall i. [A.Attr i] -> [HTML i] -> HTML ikbd_ :: forall i. [HTML i] -> HTML ikeygen :: forall i. [A.Attr i] -> [HTML i] -> HTML ikeygen_ :: forall i. [HTML i] -> HTML ilabel :: forall i. [A.Attr i] -> [HTML i] -> HTML ilabel_ :: forall i. [HTML i] -> HTML ilegend :: forall i. [A.Attr i] -> [HTML i] -> HTML ilegend_ :: forall i. [HTML i] -> HTML ili :: forall i. [A.Attr i] -> [HTML i] -> HTML ili_ :: forall i. [HTML i] -> HTML ilink :: forall i. [A.Attr i] -> [HTML i] -> HTML ilink_ :: forall i. [HTML i] -> HTML imain :: forall i. [A.Attr i] -> [HTML i] -> HTML imain_ :: forall i. [HTML i] -> HTML imap :: forall i. [A.Attr i] -> [HTML i] -> HTML imap_ :: forall i. [HTML i] -> HTML imark :: forall i. [A.Attr i] -> [HTML i] -> HTML imark_ :: forall i. [HTML i] -> HTML imenu :: forall i. [A.Attr i] -> [HTML i] -> HTML imenu_ :: forall i. [HTML i] -> HTML imenuitem :: forall i. [A.Attr i] -> [HTML i] -> HTML imenuitem_ :: forall i. [HTML i] -> HTML imeta :: forall i. [A.Attr i] -> [HTML i] -> HTML imeta_ :: forall i. [HTML i] -> HTML imeter :: forall i. [A.Attr i] -> [HTML i] -> HTML imeter_ :: forall i. [HTML i] -> HTML inav :: forall i. [A.Attr i] -> [HTML i] -> HTML inav_ :: forall i. [HTML i] -> HTML inoframes :: forall i. [A.Attr i] -> [HTML i] -> HTML inoframes_ :: forall i. [HTML i] -> HTML inoscript :: forall i. [A.Attr i] -> [HTML i] -> HTML inoscript_ :: forall i. [HTML i] -> HTML iobject :: forall i. [A.Attr i] -> [HTML i] -> HTML iobject_ :: forall i. [HTML i] -> HTML iol :: forall i. [A.Attr i] -> [HTML i] -> HTML iol_ :: forall i. [HTML i] -> HTML ioptgroup :: forall i. [A.Attr i] -> [HTML i] -> HTML ioptgroup_ :: forall i. [HTML i] -> HTML ioption :: forall i. [A.Attr i] -> [HTML i] -> HTML ioption_ :: forall i. [HTML i] -> HTML ioutput :: forall i. [A.Attr i] -> [HTML i] -> HTML ioutput_ :: forall i. [HTML i] -> HTML ip :: forall i. [A.Attr i] -> [HTML i] -> HTML ip_ :: forall i. [HTML i] -> HTML iparam :: forall i. [A.Attr i] -> [HTML i] -> HTML iparam_ :: forall i. [HTML i] -> HTML ipre :: forall i. [A.Attr i] -> [HTML i] -> HTML ipre_ :: forall i. [HTML i] -> HTML iprogress :: forall i. [A.Attr i] -> [HTML i] -> HTML iprogress_ :: forall i. [HTML i] -> HTML iq :: forall i. [A.Attr i] -> [HTML i] -> HTML iq_ :: forall i. [HTML i] -> HTML irp :: forall i. [A.Attr i] -> [HTML i] -> HTML irp_ :: forall i. [HTML i] -> HTML irt :: forall i. [A.Attr i] -> [HTML i] -> HTML irt_ :: forall i. [HTML i] -> HTML iruby :: forall i. [A.Attr i] -> [HTML i] -> HTML iruby_ :: forall i. [HTML i] -> HTML is :: forall i. [A.Attr i] -> [HTML i] -> HTML is_ :: forall i. [HTML i] -> HTML isamp :: forall i. [A.Attr i] -> [HTML i] -> HTML isamp_ :: forall i. [HTML i] -> HTML iscript :: forall i. [A.Attr i] -> [HTML i] -> HTML iscript_ :: forall i. [HTML i] -> HTML isection :: forall i. [A.Attr i] -> [HTML i] -> HTML isection_ :: forall i. [HTML i] -> HTML iselect :: forall i. [A.Attr i] -> [HTML i] -> HTML iselect_ :: forall i. [HTML i] -> HTML ismall :: forall i. [A.Attr i] -> [HTML i] -> HTML ismall_ :: forall i. [HTML i] -> HTML isource :: forall i. [A.Attr i] -> [HTML i] -> HTML isource_ :: forall i. [HTML i] -> HTML ispan :: forall i. [A.Attr i] -> [HTML i] -> HTML ispan_ :: forall i. [HTML i] -> HTML istrike :: forall i. [A.Attr i] -> [HTML i] -> HTML istrike_ :: forall i. [HTML i] -> HTML istrong :: forall i. [A.Attr i] -> [HTML i] -> HTML istrong_ :: forall i. [HTML i] -> HTML istyle :: forall i. [A.Attr i] -> [HTML i] -> HTML istyle_ :: forall i. [HTML i] -> HTML isub :: forall i. [A.Attr i] -> [HTML i] -> HTML isub_ :: forall i. [HTML i] -> HTML isummary :: forall i. [A.Attr i] -> [HTML i] -> HTML isummary_ :: forall i. [HTML i] -> HTML isup :: forall i. [A.Attr i] -> [HTML i] -> HTML isup_ :: forall i. [HTML i] -> HTML itable :: forall i. [A.Attr i] -> [HTML i] -> HTML itable_ :: forall i. [HTML i] -> HTML itbody :: forall i. [A.Attr i] -> [HTML i] -> HTML itbody_ :: forall i. [HTML i] -> HTML itd :: forall i. [A.Attr i] -> [HTML i] -> HTML itd_ :: forall i. [HTML i] -> HTML itextarea :: forall i. [A.Attr i] -> [HTML i] -> HTML itextarea_ :: forall i. [HTML i] -> HTML itfoot :: forall i. [A.Attr i] -> [HTML i] -> HTML itfoot_ :: forall i. [HTML i] -> HTML ith :: forall i. [A.Attr i] -> [HTML i] -> HTML ith_ :: forall i. [HTML i] -> HTML ithead :: forall i. [A.Attr i] -> [HTML i] -> HTML ithead_ :: forall i. [HTML i] -> HTML itime :: forall i. [A.Attr i] -> [HTML i] -> HTML itime_ :: forall i. [HTML i] -> HTML ititle :: forall i. [A.Attr i] -> [HTML i] -> HTML ititle_ :: forall i. [HTML i] -> HTML itr :: forall i. [A.Attr i] -> [HTML i] -> HTML itr_ :: forall i. [HTML i] -> HTML itrack :: forall i. [A.Attr i] -> [HTML i] -> HTML itrack_ :: forall i. [HTML i] -> HTML itt :: forall i. [A.Attr i] -> [HTML i] -> HTML itt_ :: forall i. [HTML i] -> HTML iu :: forall i. [A.Attr i] -> [HTML i] -> HTML iu_ :: forall i. [HTML i] -> HTML iul :: forall i. [A.Attr i] -> [HTML i] -> HTML iul_ :: forall i. [HTML i] -> HTML ivar :: forall i. [A.Attr i] -> [HTML i] -> HTML ivar_ :: forall i. [HTML i] -> HTML ivideo :: forall i. [A.Attr i] -> [HTML i] -> HTML ivideo_ :: forall i. [HTML i] -> HTML iwbr :: forall i. [A.Attr i] -> [HTML i] -> HTML iwbr_ :: forall i. [HTML i] -> HTML iThis module enumerates some common HTML attributes, and provides additional helper functions for working with CSS classes.
data ExistsR (f :: # * -> *)We need a variant of Exists which works for type constructors which accept a row of types.
runExistsR :: forall f r. (forall a. f a -> r) -> ExistsR f -> rmkExistsR :: forall f a. f a -> ExistsR fdata AttrF value
= AttrF (AttributeName value -> value -> String) (AttributeName value) valueThe data which represents a typed attribute, hidden inside an existential package in
the Attr type.
data HandlerF i fields
= HandlerF (EventName fields) (Event fields -> EventHandler i)The data which represents a typed event handler, hidden inside an existential package in
the Attr type.
data Attr i
= Attr (Exists AttrF)
| Handler (ExistsR (HandlerF i))
| Initializer i
| Finalizer iA single attribute is either
- An attribute
- An event handler
instance functorAttr :: Functor Attrattr :: forall value i. (IsAttribute value) => AttributeName value -> value -> Attr iCreate an attribute
handler :: forall fields i. EventName fields -> (Event fields -> EventHandler i) -> Attr iCreate an event handler
initializer :: forall i. i -> Attr iAttach an initializer.
finalizer :: forall i. i -> Attr iAttach a finalizer.
newtype ClassNameA wrapper for strings which are used as CSS classes
className :: String -> ClassNamerunClassName :: ClassName -> StringUnpack a class name
newtype AttributeName valueA type-safe wrapper for attribute names
The phantom type value describes the type of value which this attribute requires.
attributeName :: forall value. String -> AttributeName valueCreate an attribute name
runAttributeName :: forall value. AttributeName value -> StringUnpack an attribute name
newtype EventName (fields :: # *)A type-safe wrapper for event names.
The phantom type fields describes the event type which we can expect to exist on events
corresponding to this name.
eventName :: forall fields. String -> EventName fieldsrunEventName :: forall fields. EventName fields -> StringUnpack an event name
newtype StylesA newtype for CSS styles
styles :: StrMap String -> StylesrunStyles :: Styles -> StrMap StringUnpack CSS styles
class IsAttribute a where
toAttrString :: AttributeName a -> a -> StringThis type class captures those types which can be used as attribute values.
toAttrString is an alternative to show, and is needed by attr in the string renderer.
instance stringIsAttribute :: IsAttribute Stringinstance numberIsAttribute :: IsAttribute Numberinstance booleanIsAttribute :: IsAttribute Booleaninstance stylesIsAttribute :: IsAttribute Styleskey :: forall i. String -> Attr ialt :: forall i. String -> Attr icharset :: forall i. String -> Attr iclass_ :: forall i. ClassName -> Attr iclasses :: forall i. [ClassName] -> Attr icolSpan :: forall i. Number -> Attr irowSpan :: forall i. Number -> Attr icontent :: forall i. String -> Attr ifor :: forall i. String -> Attr iheight :: forall i. Number -> Attr ihref :: forall i. String -> Attr ihttpEquiv :: forall i. String -> Attr iid_ :: forall i. String -> Attr iname :: forall i. String -> Attr irel :: forall i. String -> Attr isrc :: forall i. String -> Attr itarget :: forall i. String -> Attr ititle :: forall i. String -> Attr itype_ :: forall i. String -> Attr ivalue :: forall i. String -> Attr iwidth :: forall i. Number -> Attr idisabled :: forall i. Boolean -> Attr irequired :: forall i. Boolean -> Attr ireadonly :: forall i. Boolean -> Attr ispellcheck :: forall i. Boolean -> Attr ienabled :: forall i. Boolean -> Attr ichecked :: forall i. Boolean -> Attr iselected :: forall i. Boolean -> Attr iplaceholder :: forall i. String -> Attr istyle :: forall i. Styles -> Attr i