CSS classes in a separate module.

This commit is contained in:
Philippe Pittoli 2023-07-08 01:50:11 +02:00
parent ac9492b62e
commit dac8067508
4 changed files with 216 additions and 159 deletions

View File

@ -60,6 +60,7 @@ render :: forall m. MonadAff m => State -> H.ComponentHTML Action ChildSlots m
render state render state
= HH.div_ $ = HH.div_ $
[ render_nav [ render_nav
, Bulma.modal_domain_delete "blah.netlib.re"
, render_header , render_header
, render_auth_form , render_auth_form
, render_newdomain_interface , render_newdomain_interface

View File

@ -14,6 +14,7 @@ module App.DomainListInterface where
import Prelude (Unit, bind, discard, map, otherwise, pure, ($), (/=), (<<<), (<>)) import Prelude (Unit, bind, discard, map, otherwise, pure, ($), (/=), (<<<), (<>))
import CSSClasses as CSSClasses
import Data.Array as A import Data.Array as A
import Data.ArrayBuffer.Types (ArrayBuffer) import Data.ArrayBuffer.Types (ArrayBuffer)
import Data.Either (Either(..)) import Data.Either (Either(..))
@ -27,7 +28,6 @@ import Halogen.HTML.Events as HHE
import Halogen.HTML.Properties as HP import Halogen.HTML.Properties as HP
import Web.Event.Event as Event import Web.Event.Event as Event
import Web.Event.Event (Event) import Web.Event.Event (Event)
import Bulma as Bulma import Bulma as Bulma
import App.LogMessage import App.LogMessage
@ -123,13 +123,13 @@ render { accepted_domains, my_domains, newDomainForm, wsUp }
= [ HH.button = [ HH.button
[ HP.type_ HP.ButtonSubmit [ HP.type_ HP.ButtonSubmit
, HE.onClick \_ -> RemoveDomain domain , HE.onClick \_ -> RemoveDomain domain
, HP.classes Bulma.class_button , HP.classes CSSClasses.button
] ]
[ HH.text "x" ] [ HH.text "x" ]
, HH.button , HH.button
[ HP.type_ HP.ButtonSubmit [ HP.type_ HP.ButtonSubmit
, HE.onClick \_ -> EnterDomain domain , HE.onClick \_ -> EnterDomain domain
, HP.classes Bulma.class_button , HP.classes CSSClasses.button
] ]
[ HH.text domain ] [ HH.text domain ]
] ]

View File

@ -9,6 +9,7 @@ import Halogen.HTML.Properties as HP
import Halogen.HTML.Events as HE import Halogen.HTML.Events as HE
import Halogen.HTML.Properties.ARIA as ARIA import Halogen.HTML.Properties.ARIA as ARIA
import CSSClasses as C
-- HTML PropName used with HP.prop -- HTML PropName used with HP.prop
import Halogen.HTML.Core (AttrName(..)) import Halogen.HTML.Core (AttrName(..))
@ -16,54 +17,28 @@ import Halogen.HTML.Core (AttrName(..))
-- import Web.Event.Event (type_, Event, EventType(..)) -- import Web.Event.Event (type_, Event, EventType(..))
--import Web.UIEvent.MouseEvent (MouseEvent) --import Web.UIEvent.MouseEvent (MouseEvent)
class_columns :: Array (HH.ClassName)
class_columns = [HH.ClassName "columns" ]
class_column :: Array (HH.ClassName)
class_column = [HH.ClassName "column" ]
class_title :: Array (HH.ClassName)
class_title = [HH.ClassName "title" ]
class_subtitle :: Array (HH.ClassName)
class_subtitle = [HH.ClassName "subtitle" ]
class_is5 :: Array (HH.ClassName)
class_is5 = [HH.ClassName "is-5" ]
class_is4 :: Array (HH.ClassName)
class_is4 = [HH.ClassName "is-4" ]
class_box :: Array (HH.ClassName)
class_box = [HH.ClassName "box" ]
class_label :: Array (HH.ClassName)
class_label = [HH.ClassName "label" ]
class_control :: Array (HH.ClassName)
class_control = [HH.ClassName "control" ]
class_select :: Array (HH.ClassName)
class_select = [HH.ClassName "select" ]
class_is_primary :: Array (HH.ClassName)
class_is_primary = [HH.ClassName "is-primary" ]
class_is_light :: Array (HH.ClassName)
class_is_light = [HH.ClassName "is-light" ]
columns :: forall (w :: Type) (i :: Type). columns :: forall (w :: Type) (i :: Type).
Array (HH.ClassName) -> Array (HH.HTML w i) -> HH.HTML w i Array (HH.ClassName) -> Array (HH.HTML w i) -> HH.HTML w i
columns classes = HH.div [ HP.classes (class_columns <> classes) ] columns classes = HH.div [ HP.classes (C.columns <> classes) ]
columns_ :: forall (w :: Type) (i :: Type). Array (HH.HTML w i) -> HH.HTML w i columns_ :: forall (w :: Type) (i :: Type). Array (HH.HTML w i) -> HH.HTML w i
columns_ = columns [] columns_ = columns []
column :: forall (w :: Type) (i :: Type). column :: forall (w :: Type) (i :: Type).
Array (HH.ClassName) -> Array (HH.HTML w i) -> HH.HTML w i Array (HH.ClassName) -> Array (HH.HTML w i) -> HH.HTML w i
column classes = HH.div [ HP.classes (class_column <> classes) ] column classes = HH.div [ HP.classes (C.column <> classes) ]
column_ :: forall (w :: Type) (i :: Type). Array (HH.HTML w i) -> HH.HTML w i column_ :: forall (w :: Type) (i :: Type). Array (HH.HTML w i) -> HH.HTML w i
column_ = column [] column_ = column []
h1 :: forall (w :: Type) (a :: Type). String -> HH.HTML w a h1 :: forall (w :: Type) (a :: Type). String -> HH.HTML w a
h1 title = HH.h1 [ HP.classes (class_title) ] [ HH.text title ] h1 title = HH.h1 [ HP.classes (C.title) ] [ HH.text title ]
h3 :: forall (w :: Type) (a :: Type). String -> HH.HTML w a h3 :: forall (w :: Type) (a :: Type). String -> HH.HTML w a
h3 title = HH.h1 [ HP.classes (class_title <> class_is5) ] [ HH.text title ] h3 title = HH.h1 [ HP.classes (C.title <> C.is5) ] [ HH.text title ]
--subtitle :: forall (w :: Type) (a :: Type). String -> HH.HTML w a --subtitle :: forall (w :: Type) (a :: Type). String -> HH.HTML w a
--subtitle title = HH.h2 [ HP.classes (class_subtitle <> class_is4) ] [ HH.text title ] --subtitle title = HH.h2 [ HP.classes (C.subtitle <> C.is4) ] [ HH.text title ]
-- --
--hdiv :: forall (w :: Type) (a :: Type). Array (HH.HTML w a) -> HH.HTML w a --hdiv :: forall (w :: Type) (a :: Type). Array (HH.HTML w a) -> HH.HTML w a
--hdiv = HH.div [ HP.classes [HH.ClassName "mt-5"] ] --hdiv = HH.div [ HP.classes [HH.ClassName "mt-5"] ]
@ -132,8 +107,8 @@ input_email action email validity
box_input_email :: forall w i. (String -> i) -> String -> Boolean -> HH.HTML w i box_input_email :: forall w i. (String -> i) -> String -> Boolean -> HH.HTML w i
box_input_email action email validity = HH.label [ ] box_input_email action email validity = HH.label [ ]
[ HH.label [HP.classes class_label ] [ HH.text "Email" ] [ HH.label [HP.classes C.label ] [ HH.text "Email" ]
, HH.div [HP.classes class_control ] [ input_email action email validity ] , HH.div [HP.classes C.control ] [ input_email action email validity ]
] ]
input_password :: forall w i. (String -> i) -> String -> Boolean -> HH.HTML w i input_password :: forall w i. (String -> i) -> String -> Boolean -> HH.HTML w i
@ -149,8 +124,8 @@ input_password action password validity
box_input_password :: forall w i. (String -> i) -> String -> Boolean -> HH.HTML w i box_input_password :: forall w i. (String -> i) -> String -> Boolean -> HH.HTML w i
box_input_password action password validity = HH.label [ ] box_input_password action password validity = HH.label [ ]
[ HH.label [HP.classes class_label ] [ HH.text "Password" ] [ HH.label [HP.classes C.label ] [ HH.text "Password" ]
, HH.div [HP.classes class_control ] [ input_password action password validity ] , HH.div [HP.classes C.control ] [ input_password action password validity ]
] ]
@ -171,8 +146,8 @@ box_input_password action password validity = HH.label [ ]
-- --
--box_input_domain :: forall w i. (String -> i) -> String -> Boolean -> HH.HTML w i --box_input_domain :: forall w i. (String -> i) -> String -> Boolean -> HH.HTML w i
--box_input_domain action domain validity = HH.label [ ] --box_input_domain action domain validity = HH.label [ ]
-- [ HH.label [HP.classes class_label ] [ HH.text "Domain" ] -- [ HH.label [HP.classes C.label ] [ HH.text "Domain" ]
-- , HH.div [HP.classes class_control ] [ input_domain action domain validity ] -- , HH.div [HP.classes C.control ] [ input_domain action domain validity ]
-- ] -- ]
-- --
--input_ttl :: forall w i. (String -> i) -> String -> Boolean -> HH.HTML w i --input_ttl :: forall w i. (String -> i) -> String -> Boolean -> HH.HTML w i
@ -187,8 +162,8 @@ box_input_password action password validity = HH.label [ ]
-- --
--box_input_ttl :: forall w i. (String -> i) -> String -> Boolean -> HH.HTML w i --box_input_ttl :: forall w i. (String -> i) -> String -> Boolean -> HH.HTML w i
--box_input_ttl action value validity = HH.label [ ] --box_input_ttl action value validity = HH.label [ ]
-- [ HH.label [HP.classes class_label ] [ HH.text "TTL" ] -- [ HH.label [HP.classes C.label ] [ HH.text "TTL" ]
-- , HH.div [HP.classes class_control ] [ input_ttl action value validity ] -- , HH.div [HP.classes C.control ] [ input_ttl action value validity ]
-- ] -- ]
-- --
-- --
@ -204,8 +179,8 @@ box_input_password action password validity = HH.label [ ]
-- --
--box_input_priority :: forall w i. (String -> i) -> String -> Boolean -> HH.HTML w i --box_input_priority :: forall w i. (String -> i) -> String -> Boolean -> HH.HTML w i
--box_input_priority action value validity = HH.label [ ] --box_input_priority action value validity = HH.label [ ]
-- [ HH.label [HP.classes class_label ] [ HH.text "Priority" ] -- [ HH.label [HP.classes C.label ] [ HH.text "Priority" ]
-- , HH.div [HP.classes class_control ] [ input_priority action value validity ] -- , HH.div [HP.classes C.control ] [ input_priority action value validity ]
-- ] -- ]
-- --
-- --
@ -220,8 +195,8 @@ box_input_password action password validity = HH.label [ ]
-- --
--box_input_value :: forall w i. (String -> i) -> String -> Boolean -> HH.HTML w i --box_input_value :: forall w i. (String -> i) -> String -> Boolean -> HH.HTML w i
--box_input_value action value validity = HH.label [ ] --box_input_value action value validity = HH.label [ ]
-- [ HH.label [HP.classes class_label ] [ HH.text "Value" ] -- [ HH.label [HP.classes C.label ] [ HH.text "Value" ]
-- , HH.div [HP.classes class_control ] [ input_value action value validity ] -- , HH.div [HP.classes C.control ] [ input_value action value validity ]
-- ] -- ]
-- --
-- --
@ -237,8 +212,8 @@ box_input_password action password validity = HH.label [ ]
-- --
--box_input_weight :: forall w i. (String -> i) -> String -> Boolean -> HH.HTML w i --box_input_weight :: forall w i. (String -> i) -> String -> Boolean -> HH.HTML w i
--box_input_weight action weight validity = HH.label [ ] --box_input_weight action weight validity = HH.label [ ]
-- [ HH.label [HP.classes class_label ] [ HH.text "Weight" ] -- [ HH.label [HP.classes C.label ] [ HH.text "Weight" ]
-- , HH.div [HP.classes class_control ] [ input_weight action weight validity ] -- , HH.div [HP.classes C.control ] [ input_weight action weight validity ]
-- ] -- ]
-- --
-- --
@ -254,8 +229,8 @@ box_input_password action password validity = HH.label [ ]
-- --
--box_input_port :: forall w i. (String -> i) -> String -> Boolean -> HH.HTML w i --box_input_port :: forall w i. (String -> i) -> String -> Boolean -> HH.HTML w i
--box_input_port action port validity = HH.label [ ] --box_input_port action port validity = HH.label [ ]
-- [ HH.label [HP.classes class_label ] [ HH.text "Port" ] -- [ HH.label [HP.classes C.label ] [ HH.text "Port" ]
-- , HH.div [HP.classes class_control ] [ input_port action port validity ] -- , HH.div [HP.classes C.control ] [ input_port action port validity ]
-- ] -- ]
-- --
-- --
@ -317,75 +292,50 @@ render_input password placeholder action value validity cond
false -> [] false -> []
true -> [ HP.type_ HP.InputPassword ] true -> [ HP.type_ HP.InputPassword ]
class_horizontal :: Array (HH.ClassName)
class_horizontal = [HH.ClassName "is-horizontal" ]
class_normal :: Array (HH.ClassName)
class_normal = [HH.ClassName "is-normal" ]
class_field :: Array (HH.ClassName)
class_field = [HH.ClassName "field" ]
class_field_label :: Array (HH.ClassName)
class_field_label = [HH.ClassName "field-label" ]
class_field_body :: Array (HH.ClassName)
class_field_body = [HH.ClassName "field-body" ]
field_inner ispassword title placeholder action value validity cond field_inner ispassword title placeholder action value validity cond
= div_field = div_field
[ div_field_label title [ div_field_label title
, div_field_content $ render_input ispassword placeholder action value validity cond , div_field_content $ render_input ispassword placeholder action value validity cond
] ]
where where
div_field = HH.div [ HP.classes (class_field <> class_horizontal) ] div_field = HH.div [ HP.classes (C.field <> C.horizontal) ]
div_field_label title div_field_label title
= HH.div [ HP.classes (class_field_label <> class_normal) ] = HH.div [ HP.classes (C.field_label <> C.normal) ]
[HH.label [ HP.classes class_label ] [ HH.text title ]] [HH.label [ HP.classes C.label ] [ HH.text title ]]
div_field_content content div_field_content content
= HH.div [HP.classes class_field_body] = HH.div [HP.classes C.field_body]
[ HH.div [HP.classes class_field ] [ HH.div [HP.classes C.field ]
[ HH.div [HP.classes class_control ] [ content ] [ HH.div [HP.classes C.control ] [ content ]
] ]
] ]
box_input = field_inner false box_input = field_inner false
box_password = field_inner true box_password = field_inner true
class_has_addons :: Array (HH.ClassName) section_medium = HH.section [ HP.classes (C.section <> C.medium) ]
class_has_addons = [HH.ClassName "has-addons"]
class_section :: Array (HH.ClassName) field classes = HH.div [ HP.classes (C.field <> classes) ]
class_section = [HH.ClassName "section"]
class_medium :: Array (HH.ClassName)
class_medium = [HH.ClassName "is-medium"]
section_medium = HH.section [ HP.classes (class_section <> class_medium) ]
field classes = HH.div [ HP.classes (class_field <> classes) ]
class_input :: Array (HH.ClassName)
class_input = [HH.ClassName "input" ]
class_button :: Array (HH.ClassName)
class_button = [HH.ClassName "button" ]
new_domain_field inputaction text selectaction accepted_domains new_domain_field inputaction text selectaction accepted_domains
= field class_has_addons = field C.has_addons
[ HH.p [ HH.p
[ HP.classes class_control ] [ HP.classes C.control ]
[ HH.input $ [ HH.input $
[ HE.onValueInput inputaction [ HE.onValueInput inputaction
, HP.placeholder "www" , HP.placeholder "www"
, HP.value text , HP.value text
, HP.type_ HP.InputText , HP.type_ HP.InputText
, HP.classes (class_is_primary <> class_input) , HP.classes (C.is_primary <> C.input)
] ]
] ]
, HH.p , HH.p
[ HP.classes class_control ] [ HP.classes C.control ]
[ select selectaction $ map option accepted_domains ] [ select selectaction $ map option accepted_domains ]
, HH.p , HH.p
[ HP.classes class_control ] [ HP.classes C.control ]
[ HH.button [ HH.button
[ HP.type_ HP.ButtonSubmit [ HP.type_ HP.ButtonSubmit
, HP.classes class_button , HP.classes C.button
] ]
[ HH.text "add a new domain!" ] [ HH.text "add a new domain!" ]
] ]
@ -413,8 +363,8 @@ new_domain_field inputaction text selectaction accepted_domains
--box_button action value validity cond --box_button action value validity cond
-- = HH.label [ ] -- = HH.label [ ]
-- [ HH.label [HP.classes class_label ] [ HH.text title ] -- [ HH.label [HP.classes C.label ] [ HH.text title ]
-- , HH.div [HP.classes class_control ] -- , HH.div [HP.classes C.control ]
-- [ render_input ispassword placeholder action value validity cond ] -- [ render_input ispassword placeholder action value validity cond ]
-- ] -- ]
@ -422,31 +372,22 @@ p :: forall w i. String -> HH.HTML w i
p str = HH.p_ [ HH.text str ] p str = HH.p_ [ HH.text str ]
box :: forall w i. Array (HH.HTML w i) -> HH.HTML w i box :: forall w i. Array (HH.HTML w i) -> HH.HTML w i
box = HH.div [HP.classes class_box] box = HH.div [HP.classes C.box]
option :: forall w i. String -> HH.HTML w i option :: forall w i. String -> HH.HTML w i
option value = HH.option_ [HH.text value] option value = HH.option_ [HH.text value]
select :: forall w i. HH.Node DHI.HTMLselect w i select :: forall w i. HH.Node DHI.HTMLselect w i
select action options select action options
= HH.div [ HP.classes (class_select <> class_is_primary) ] = HH.div [ HP.classes (C.select <> C.is_primary) ]
[ HH.select action options] [ HH.select action options]
class_hero :: Array (HH.ClassName)
class_hero = [HH.ClassName "hero" ]
class_hero_body :: Array (HH.ClassName)
class_hero_body = [HH.ClassName "hero-body" ]
class_is_info :: Array (HH.ClassName)
class_is_info = [HH.ClassName "is-info" ]
class_is_small :: Array (HH.ClassName)
class_is_small = [HH.ClassName "is-small" ]
hero :: forall w i. String -> String -> HH.HTML w i hero :: forall w i. String -> String -> HH.HTML w i
hero title subtitle hero title subtitle
= HH.section [ HP.classes (class_hero <> class_is_info <> class_is_small) ] = HH.section [ HP.classes (C.hero <> C.is_info <> C.is_small) ]
[ HH.div [ HP.classes class_hero_body ] [ HH.div [ HP.classes C.hero_body ]
[ HH.p [ HP.classes class_title ] [ HH.text title ] [ HH.p [ HP.classes C.title ] [ HH.text title ]
, HH.p [ HP.classes class_subtitle ] [ HH.text subtitle ] , HH.p [ HP.classes C.subtitle ] [ HH.text subtitle ]
] ]
] ]
@ -464,85 +405,96 @@ header = hero
-- </div> -- </div>
--</section> --</section>
class_container :: Array (HH.ClassName)
class_container = [HH.ClassName "container" ]
container :: forall w i. Array (HH.HTML w i) -> HH.HTML w i container :: forall w i. Array (HH.HTML w i) -> HH.HTML w i
container = HH.div [HP.classes (class_container <> class_is_info)] container = HH.div [HP.classes (C.container <> C.is_info)]
class_navbar :: Array (HH.ClassName)
class_navbar = [HH.ClassName "navbar"]
class_navbar_brand :: Array (HH.ClassName)
class_navbar_brand = [HH.ClassName "navbar-brand"]
class_navbar_burger :: Array (HH.ClassName)
class_navbar_burger = [HH.ClassName "navbar-burger"]
class_navbar_item :: Array (HH.ClassName)
class_navbar_item = [HH.ClassName "navbar-item"]
class_navbar_menu :: Array (HH.ClassName)
class_navbar_menu = [HH.ClassName "navbar-menu"]
class_navbar_start :: Array (HH.ClassName)
class_navbar_start = [HH.ClassName "navbar-start"]
class_navbar_end :: Array (HH.ClassName)
class_navbar_end = [HH.ClassName "navbar-end"]
class_navbar_link :: Array (HH.ClassName)
class_navbar_link = [HH.ClassName "navbar-link"]
class_navbar_dropdown :: Array (HH.ClassName)
class_navbar_dropdown = [HH.ClassName "navbar-dropdown"]
class_navbar_divider :: Array (HH.ClassName)
class_navbar_divider = [HH.ClassName "navbar-divider"]
data_target :: forall r i. String -> HP.IProp r i data_target :: forall r i. String -> HP.IProp r i
data_target = HP.attr (AttrName "data-target") data_target = HP.attr (AttrName "data-target")
class_has_dropdown :: Array (HH.ClassName) modal_domain_delete :: forall w i. String -> HH.HTML w i
class_has_dropdown = [HH.ClassName "has-dropdown"] modal_domain_delete domain =
modal
[ modal_background
, modal_card [modal_header, modal_body]
, modal_foot [modal_delete_button, modal_cancel_button]
]
where
modal = HH.div [HP.classes (C.modal <> C.is_active)]
modal_background = HH.div [HP.classes C.modal_background] []
modal_card = HH.div [HP.classes C.modal_card]
modal_header = HH.header [HP.classes C.modal_card_head]
[ HH.p [HP.classes C.modal_card_title] [HH.text "Deleting a domain"]
--, HH.button [HP.classes C.delete, ARIA.label "close"] []
]
modal_body = HH.section [HP.classes C.modal_card_body] [ warning_message ]
modal_foot = HH.div [HP.classes C.modal_card_foot]
modal_delete_button = HH.button [HP.classes (C.button <> C.is_success)] [HH.text "Delete the domain."]
modal_cancel_button = HH.button [HP.classes C.button] [HH.text "Cancel"]
warning_message
= HH.p [] [ HH.text $ "You are about to delete your domain '"
<> domain
<> "'. Are you sure you want to do this? This is "
, HH.strong_ [ HH.text "irreversible" ]
, HH.text "."
]
--<div class="modal">
-- <div class="modal-background"></div>
-- <div class="modal-card">
-- <header class="modal-card-head">
-- <p class="modal-card-title">Modal title</p>
-- <button class="delete" aria-label="close"></button>
-- </header>
-- <section class="modal-card-body">
-- <!-- Content ... -->
-- </section>
-- <footer class="modal-card-foot">
-- <button class="button is-success">Save changes</button>
-- <button class="button">Cancel</button>
-- </footer>
-- </div>
--</div>
class_is_hoverable :: Array (HH.ClassName)
class_is_hoverable = [HH.ClassName "is-hoverable"]
class_buttons :: Array (HH.ClassName)
class_buttons = [HH.ClassName "buttons"]
--netlibre_navbar :: --netlibre_navbar ::
netlibre_navbar = netlibre_navbar =
HH.nav [HP.classes class_navbar, ARIA.label "main navigation", ARIA.role "navigation" ] HH.nav [HP.classes C.navbar, ARIA.label "main navigation", ARIA.role "navigation" ]
[ HH.div [HP.classes class_navbar_brand] [ HH.div [HP.classes C.navbar_brand]
[ HH.a [HP.classes class_navbar_item, HP.href "/"] [ HH.a [HP.classes C.navbar_item, HP.href "/"]
[HH.img [HP.src "/logo.jpeg", HP.width 112, HP.height 28]] [HH.img [HP.src "/logo.jpeg", HP.width 112, HP.height 28]]
, HH.a [HP.classes class_navbar_burger, ARIA.label "menu", ARIA.expanded "false", data_target "navbarBasicExample" ] , HH.a [HP.classes C.navbar_burger, ARIA.label "menu", ARIA.expanded "false", data_target "navbarExample" ]
[ HH.span [ARIA.hidden "true"] [] [ HH.span [ARIA.hidden "true"] []
, HH.span [ARIA.hidden "true"] [] , HH.span [ARIA.hidden "true"] []
, HH.span [ARIA.hidden "true"] [] , HH.span [ARIA.hidden "true"] []
] ]
] ]
, HH.div [HP.id "navbarBasicExample", HP.classes class_navbar_menu] , HH.div [HP.id "navbarExample", HP.classes C.navbar_menu]
[ HH.div [HP.classes class_navbar_start] [ HH.div [HP.classes C.navbar_start]
[ HH.a [HP.classes class_navbar_item] [ HH.a [HP.classes C.navbar_item]
[HH.text "Home"] [HH.text "Home"]
, HH.a [HP.classes class_navbar_item] , HH.a [HP.classes C.navbar_item]
[HH.text "My Domains"] [HH.text "My Domains"]
, HH.div [HP.classes (class_navbar_item <> class_has_dropdown <> class_is_hoverable)] , HH.div [HP.classes (C.navbar_item <> C.has_dropdown <> C.is_hoverable)]
[ HH.a [HP.classes class_navbar_link] [ HH.a [HP.classes C.navbar_link]
[HH.text "List of something"] [HH.text "List of something"]
, HH.div [HP.classes class_navbar_dropdown] , HH.div [HP.classes C.navbar_dropdown]
[ HH.a [HP.classes class_navbar_item] [ HH.a [HP.classes C.navbar_item]
[HH.text "something 1"] [HH.text "something 1"]
, HH.a [HP.classes class_navbar_item] , HH.a [HP.classes C.navbar_item]
[HH.text "something 2"] [HH.text "something 2"]
, HH.a [HP.classes class_navbar_item] , HH.a [HP.classes C.navbar_item]
[HH.text "something 3"] [HH.text "something 3"]
, HH.hr [HP.classes class_navbar_divider] , HH.hr [HP.classes C.navbar_divider]
, HH.a [HP.classes class_navbar_item] , HH.a [HP.classes C.navbar_item]
[HH.text "something 4"] [HH.text "something 4"]
] ]
] ]
] ]
, HH.div [HP.classes class_navbar_end] , HH.div [HP.classes C.navbar_end]
[ HH.div [HP.classes class_navbar_item] [ HH.div [HP.classes C.navbar_item]
[ HH.div [HP.classes class_buttons] [ HH.div [HP.classes C.buttons]
[ HH.a [HP.classes (class_button <> class_is_primary)] [ HH.a [HP.classes (C.button <> C.is_primary)]
[HH.strong [] [HH.text "SIGN UP NOW"]] [HH.strong [] [HH.text "SIGN UP NOW"]]
, HH.a [HP.classes (class_button <> class_is_light)] , HH.a [HP.classes (C.button <> C.is_light)]
[HH.text "STUFF"] [HH.text "STUFF"]
] ]
] ]

104
src/CSSClasses.purs Normal file
View File

@ -0,0 +1,104 @@
module CSSClasses where
import Halogen.HTML as HH
box :: Array (HH.ClassName)
box = [HH.ClassName "box"]
button :: Array (HH.ClassName)
button = [HH.ClassName "button"]
buttons :: Array (HH.ClassName)
buttons = [HH.ClassName "buttons"]
column :: Array (HH.ClassName)
column = [HH.ClassName "column"]
columns :: Array (HH.ClassName)
columns = [HH.ClassName "columns"]
container :: Array (HH.ClassName)
container = [HH.ClassName "container"]
control :: Array (HH.ClassName)
control = [HH.ClassName "control"]
delete :: Array (HH.ClassName)
delete = [HH.ClassName "delete"]
field :: Array (HH.ClassName)
field = [HH.ClassName "field"]
field_body :: Array (HH.ClassName)
field_body = [HH.ClassName "field-body"]
field_label :: Array (HH.ClassName)
field_label = [HH.ClassName "field-label"]
has_addons :: Array (HH.ClassName)
has_addons = [HH.ClassName "has-addons"]
has_dropdown :: Array (HH.ClassName)
has_dropdown = [HH.ClassName "has-dropdown"]
hero :: Array (HH.ClassName)
hero = [HH.ClassName "hero"]
hero_body :: Array (HH.ClassName)
hero_body = [HH.ClassName "hero-body"]
horizontal :: Array (HH.ClassName)
horizontal = [HH.ClassName "is-horizontal"]
input :: Array (HH.ClassName)
input = [HH.ClassName "input"]
is4 :: Array (HH.ClassName)
is4 = [HH.ClassName "is-4"]
is5 :: Array (HH.ClassName)
is5 = [HH.ClassName "is-5"]
is_active :: Array (HH.ClassName)
is_active = [HH.ClassName "is-active"]
is_hoverable :: Array (HH.ClassName)
is_hoverable = [HH.ClassName "is-hoverable"]
is_info :: Array (HH.ClassName)
is_info = [HH.ClassName "is-info"]
is_light :: Array (HH.ClassName)
is_light = [HH.ClassName "is-light"]
is_primary :: Array (HH.ClassName)
is_primary = [HH.ClassName "is-primary"]
is_small :: Array (HH.ClassName)
is_small = [HH.ClassName "is-small"]
is_success :: Array (HH.ClassName)
is_success = [HH.ClassName "is-success"]
label :: Array (HH.ClassName)
label = [HH.ClassName "label"]
medium :: Array (HH.ClassName)
medium = [HH.ClassName "is-medium"]
modal :: Array (HH.ClassName)
modal = [HH.ClassName "modal"]
modal_background :: Array (HH.ClassName)
modal_background = [HH.ClassName "modal-background"]
modal_card :: Array (HH.ClassName)
modal_card = [HH.ClassName "modal-card"]
modal_card_body :: Array (HH.ClassName)
modal_card_body = [HH.ClassName "modal-card-body"]
modal_card_foot :: Array (HH.ClassName)
modal_card_foot = [HH.ClassName "modal-card-foot"]
modal_card_head :: Array (HH.ClassName)
modal_card_head = [HH.ClassName "modal-card-head"]
modal_card_title :: Array (HH.ClassName)
modal_card_title = [HH.ClassName "modal-card-title"]
navbar :: Array (HH.ClassName)
navbar = [HH.ClassName "navbar"]
navbar_brand :: Array (HH.ClassName)
navbar_brand = [HH.ClassName "navbar-brand"]
navbar_burger :: Array (HH.ClassName)
navbar_burger = [HH.ClassName "navbar-burger"]
navbar_divider :: Array (HH.ClassName)
navbar_divider = [HH.ClassName "navbar-divider"]
navbar_dropdown :: Array (HH.ClassName)
navbar_dropdown = [HH.ClassName "navbar-dropdown"]
navbar_end :: Array (HH.ClassName)
navbar_end = [HH.ClassName "navbar-end"]
navbar_item :: Array (HH.ClassName)
navbar_item = [HH.ClassName "navbar-item"]
navbar_link :: Array (HH.ClassName)
navbar_link = [HH.ClassName "navbar-link"]
navbar_menu :: Array (HH.ClassName)
navbar_menu = [HH.ClassName "navbar-menu"]
navbar_start :: Array (HH.ClassName)
navbar_start = [HH.ClassName "navbar-start"]
normal :: Array (HH.ClassName)
normal = [HH.ClassName "is-normal"]
section :: Array (HH.ClassName)
section = [HH.ClassName "section"]
select :: Array (HH.ClassName)
select = [HH.ClassName "select"]
subtitle :: Array (HH.ClassName)
subtitle = [HH.ClassName "subtitle"]
title :: Array (HH.ClassName)
title = [HH.ClassName "title"]