2023-07-06 16:09:48 +02:00
|
|
|
(in-package :sbt-album)
|
2023-07-04 16:42:47 +02:00
|
|
|
|
|
|
|
(defmacro navbar-header-about (&body body)
|
|
|
|
`(spinneret:with-html
|
|
|
|
(:div :class "col-sm-8 col-md-7 py-4"
|
|
|
|
(:h4 "About")
|
|
|
|
(:p :class "text-body-secondary"
|
|
|
|
,@body))))
|
|
|
|
|
|
|
|
(defmacro navbar-header-contact (&body body)
|
|
|
|
`(spinneret:with-html
|
|
|
|
(:div :class "col-sm-4 offset-md-1 py-4"
|
|
|
|
(:h4 "Contact")
|
|
|
|
(:ul :class "list-unstyled"
|
|
|
|
,@body))))
|
|
|
|
|
|
|
|
(defmacro navbar-header (&body body)
|
|
|
|
`(spinneret:with-html
|
|
|
|
(:div :class "text-bg-dark collapse"
|
|
|
|
:id "navbarHeader"
|
|
|
|
(:div :class "container"
|
|
|
|
(:div :class "row"
|
|
|
|
,@body)))))
|
|
|
|
|
|
|
|
(defmacro navbar-brand ((&key (brand "Brand") (href "#")) &body body)
|
|
|
|
`(spinneret:with-html
|
|
|
|
(:a :class "navbar-brand d-flex align-items-center"
|
|
|
|
:href ,href
|
|
|
|
(:strong ,brand)
|
|
|
|
,@body)))
|
|
|
|
|
|
|
|
(defmacro navbar-toggler ((&key (target "#navbarHeader")) &body body)
|
|
|
|
`(spinneret:with-html
|
|
|
|
(:button :class "navbar-toggler collapsed"
|
|
|
|
:type "button"
|
|
|
|
:data-bs-toggle "collapse"
|
|
|
|
:data-bs-target ,target
|
|
|
|
:aria-controls "navbarHeader"
|
|
|
|
:aria-expanded "false"
|
|
|
|
:aria-label "Toggle navigation"
|
|
|
|
(:span :class "navbar-toggler-icon")
|
|
|
|
,@body)))
|
|
|
|
|
|
|
|
(defmacro navbar (&body body)
|
|
|
|
`(spinneret:with-html
|
|
|
|
(:div :class "navbar"
|
|
|
|
(:div :class "container"
|
|
|
|
,@body))))
|
|
|
|
|
|
|
|
(defun show-navbar-header-contact (contacts)
|
|
|
|
(navbar-header-contact (dolist (contact contacts)
|
|
|
|
(:li (:a :href (rest contact)
|
|
|
|
:class "text-white"
|
|
|
|
(first contact))))))
|
|
|
|
|
|
|
|
(defun show-navbar-header (about contacts)
|
|
|
|
(navbar-header (navbar-header-about about)
|
|
|
|
(show-navbar-header-contact contacts)))
|
|
|
|
|
|
|
|
(defun show-navbar (brand href target)
|
|
|
|
(navbar () (navbar-brand (:brand brand :href href))
|
|
|
|
(navbar-toggler (:target target))))
|