halogen-websocket-ipc-playzone/src/App/Nav.purs

58 lines
2.3 KiB
Plaintext
Raw Normal View History

2023-07-08 04:17:13 +02:00
module App.Nav where
import Prelude
import CSSClasses as C
import Halogen.HTML as HH
import Halogen.HTML.Properties as HP
import Halogen.HTML.Properties.ARIA as ARIA
import Bulma as Bulma
netlibre_navbar :: forall w i. HH.HTML w i
netlibre_navbar =
main_nav
[ nav_brand [ logo, burger_menu ]
, nav_menu
[ navbar_start
[ link_domains
, dropdown "List of something"
[ dropdown_element "something 1"
, dropdown_element "something 2"
, dropdown_element "something 3"
, dropdown_separator
, dropdown_element "something 4"
]
]
, navbar_end
[ navbar_item
[ HH.div [HP.classes C.buttons]
[ nav_button_strong "Register"
, nav_button_light "Login"
]
]
]
]
]
where
main_nav = HH.nav [ HP.classes C.navbar, ARIA.label "main navigation", ARIA.role "navigation" ]
logo = HH.a [HP.classes C.navbar_item, HP.href "/"] [HH.img [HP.src "/logo.jpeg", HP.width 112, HP.height 28]]
burger_menu
= HH.a [HP.classes C.navbar_burger, ARIA.label "menu", ARIA.expanded "false", Bulma.data_target "navbarExample" ]
[ HH.span [ARIA.hidden "true"] []
, HH.span [ARIA.hidden "true"] []
, HH.span [ARIA.hidden "true"] []
]
nav_brand = HH.div [HP.classes C.navbar_brand]
nav_menu = HH.div [HP.id "navbarExample", HP.classes C.navbar_menu]
navbar_start = HH.div [HP.classes C.navbar_start]
navbar_end = HH.div [HP.classes C.navbar_end]
link_domains = HH.a [HP.classes C.navbar_item] [HH.text "My Domains"]
dropdown title dropdown_elements
= HH.div [HP.classes (C.navbar_item <> C.has_dropdown <> C.is_hoverable)]
[ dropdown_title title, HH.div [HP.classes C.navbar_dropdown] dropdown_elements ]
dropdown_title str = HH.a [HP.classes C.navbar_link] [HH.text str]
dropdown_element str = HH.a [HP.classes C.navbar_item] [HH.text str]
dropdown_separator = HH.hr [HP.classes C.navbar_divider]
nav_button_strong str = HH.a [HP.classes (C.button <> C.is_primary)] [HH.strong [] [HH.text str]]
nav_button_light str = HH.a [HP.classes (C.button <> C.is_light)] [HH.text str]
navbar_item = HH.div [HP.classes C.navbar_item]