-- | Predefined DOM elements, for convenience. module Graphics.UI.Threepenny.Elements ( -- * Combinations and utilities addStyleSheet, -- text, new, -- * Primitive HTML elements address, a, anchor, applet, area, audio, basefont, big, blockquote, body, bold, br, button, canvas, caption, center, cite, code, ddef, define, div, dlist, dterm, emphasize, fieldset, font, form, frame, frameset, h1, h2, h3, h4, h5, h6, header, hr, img, image, input, italics, keyboard, label, legend, li, link, map, meta, noframes, olist, option, p, paragraph, param, pre, sample, select, small, source, span, strong, sub, sup, table, td, textarea, th, thebase, thehtml, title_, tr, tt, ul, underline, variable, video, ) where import Control.Monad import Control.Monad.Trans.Reader import Graphics.UI.Threepenny.Core import Prelude hiding (div, map, span) {----------------------------------------------------------------------------- Combinations ------------------------------------------------------------------------------} -- | Add a stylesheet to the head. -- -- The second argument refers to the filename of the stylesheet, -- but not its complete filepath. -- Threepenny will prefix the 'css' subdirectory of the 'tpStatic' configuration field -- to construct the complete filepath. addStyleSheet :: Window -> FilePath -> UI () addStyleSheet w filename = void $ do el <- mkElement "link" # set (attr "rel" ) "stylesheet" # set (attr "type") "text/css" # set (attr "href") ("/static/css/" ++ filename) getHead w #+ [element el] -- | Make a new @div@ element, synonym for 'div'. new :: UI Element new = div {----------------------------------------------------------------------------- Primitives Taken from the HTML library (BSD3 license) http://hackage.haskell.org/package/html ------------------------------------------------------------------------------} tag = mkElement itag = mkElement address = tag "address" a = anchor anchor = tag "a" applet = tag "applet" area = itag "area" audio = tag "audio" basefont = itag "basefont" big = tag "big" blockquote = tag "blockquote" body = tag "body" bold = tag "b" br = itag "br" button = tag "button" canvas = tag "canvas" caption = tag "caption" center = tag "center" cite = tag "cite" code = tag "code" ddef = tag "dd" define = tag "dfn" div = tag "div" dlist = tag "dl" dterm = tag "dt" emphasize = tag "em" fieldset = tag "fieldset" font = tag "font" form = tag "form" frame = tag "frame" frameset = tag "frameset" h1 = tag "h1" h2 = tag "h2" h3 = tag "h3" h4 = tag "h4" h5 = tag "h5" h6 = tag "h6" header = tag "head" hr = itag "hr" img = image image = itag "img" input = itag "input" italics = tag "i" keyboard = tag "kbd" label = tag "label" legend = tag "legend" li = tag "li" link = tag "link" map = tag "map" meta = itag "meta" noframes = tag "noframes" olist = tag "ol" option = tag "option" p = tag "p" paragraph = tag "p" param = itag "param" pre = tag "pre" sample = tag "samp" select = tag "select" small = tag "small" source = tag "source" strong = tag "strong" sub = tag "sub" sup = tag "sup" table = tag "table" td = tag "td" textarea = tag "textarea" th = tag "th" thebase = itag "base" thehtml = tag "html" span = tag "span" title_ = tag "title" tr = tag "tr" tt = tag "tt" ul = tag "ul" underline = tag "u" variable = tag "var" video = tag "video"