blob: 95ed0620a436aec15fb8a9c7ce4bfda7f374a49f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
;;;; views/components.lisp -- reusable components
(in-package :dnd)
;;; LIST DATA
(defrender :list ((data list) (class "listview") (item-class "listitem"))
"A catch all for rendering lists of renderable data items as unordered
lists. CLASS is the lass string for the containing list. ITEM-CLASS is
the class string for the contained list items."
(with-html
(:ol :class class
(dolist (item data)
(:li :class item-class (render :list-item item))))))
(defrender :horiz-list ((data list) (class "hlistview") (item-class "listitem"))
(with-html
(:ol :class class
(dolist (item data)
(:li :calss item-class (render :list-item item))))))
;;;; PAGE ELEMENTS
(defun navbar ()
(with-html
(:nav :class "navbar" :aria-label "Navigation"
(:div :class "logo" :aria-label "DND logo" "DND")
(:ul :class "nav-links" :aria-label "Nav links"
(:li (:a :href "/hero" :aria-label "Hero profile" "🧝"))
(:li (:a :href "/inventory" :aria-label "Inventory" "🎒"))
(:li (:a :href "/quests" :aria-label "Quests" "📜"))
(:li (:a :href "/tavern" :aria-label "Tavern" "🍺"))))))
|