Compare commits

...

2 commits

Author SHA1 Message Date
9503b56084
Remove bg, add header 2025-05-02 01:31:26 +09:00
f541321d55
Rename ui to components 2025-05-02 00:51:35 +09:00
5 changed files with 42 additions and 35 deletions

View file

@ -0,0 +1,28 @@
(defpackage #:hp/components/header
(:use #:cl
#:hsx)
(:import-from #:jingle
#:request-uri)
(:export #:~header))
(in-package #:hp/components/header)
(defparameter *nav-menu*
'(("/bio" "bio")
("/work" "work")
("/blog" "blog")))
(defcomp ~header ()
(hsx
(header :class "flex justify-between pb-2 md:pb-4 border-b-1"
(h1 :class "text-2xl md:text-3xl font-bold"
(a :href "/"
"skyizwhite"))
(nav :class "flex items-end"
(ul :preload "mouseover" :class "flex gap-4 text-lg"
(loop
:for (href label) :in *nav-menu* :collect
(if (search href (request-uri jingle:*request*))
(hsx (li :class "text-pink-500"
label))
(hsx (li (a :href href :class "underline hover:text-pink-500"
label))))))))))

View file

@ -1,21 +1,16 @@
(defpackage #:hp/ui/layout (defpackage #:hp/components/layout
(:use #:cl (:use #:cl
#:hsx) #:hsx)
(:import-from #:hp/lib/metadata (:import-from #:hp/lib/metadata
#:~metadata) #:~metadata)
(:import-from #:jingle (:import-from #:hp/components/header
#:request-uri) #:~header)
(:export #:~layout)) (:export #:~layout))
(in-package #:hp/ui/layout) (in-package #:hp/components/layout)
(defun bust-cache (url) (defun bust-cache (url)
(format nil "~a?v=~a" url #.(get-universal-time))) (format nil "~a?v=~a" url #.(get-universal-time)))
(defparameter *nav-menu*
'(("/bio" "bio")
("/work" "work")
("/blog" "blog")))
(defcomp ~layout (&key metadata children) (defcomp ~layout (&key metadata children)
(hsx (hsx
(html :lang "ja" (html :lang "ja"
@ -40,27 +35,11 @@
(body (body
:hx-ext "head-support, response-targets, preload" :hx-ext "head-support, response-targets, preload"
:hx-boost "true" :hx-target-404 "body" :hx-target-5* "body" :hx-boost "true" :hx-target-404 "body" :hx-target-5* "body"
:class (<> :class (<>
"h-[100svh] flex flex-col bg-[url(/img/bg.webp)] bg-cover bg-center " "bg-amber-50 flex flex-col h-[100svh] w-full max-w-[700px] "
"p-2 md:p-8") "p-2 md:pt-6 mx-auto")
(div :class (<> (~header)
"bg-amber-50/90 flex flex-col flex-1 w-full max-w-[700px] overflow-hidden shadow-sm " (main :class "flex-1 px-2 py-6 md:px-4 md:py-8 overflow-y-scroll"
"px-2 pt-2 mx-auto md:px-8 md:pt-8") children)
(header :class "flex justify-between pb-2 md:pb-4 border-b-1" (footer :class "flex p-2 justify-center text-sm border-t-1"
(h1 :class "text-2xl md:text-3xl font-bold" (p "© 2025 Akira Tempaku"))))))
(a :href "/"
"skyizwhite"))
(nav :class "flex items-end"
(ul
:preload "mouseover"
:class "flex gap-4 text-lg"
(loop
:for (href label) :in *nav-menu*
:collect
(if (search href (request-uri jingle:*request*))
(hsx (li :class "text-pink-500"
label))
(hsx (li (a :href href :class "underline hover:text-pink-500"
label))))))))
(main :class "flex-1 pt-2 pb-4 md:pt-4 md:pb-8 overflow-y-scroll "
children))))))

View file

@ -9,7 +9,7 @@
(:import-from #:hp/lib/env (:import-from #:hp/lib/env
#:hp-url #:hp-url
#:hp-env) #:hp-env)
(:import-from #:hp/ui/layout (:import-from #:hp/components/layout
#:~layout)) #:~layout))
(in-package #:hp/renderer) (in-package #:hp/renderer)

View file

View file

@ -3,7 +3,7 @@ module.exports = {
content: [ content: [
"./src/renderer.lisp", "./src/renderer.lisp",
"./src/routes/**/*.lisp", "./src/routes/**/*.lisp",
"./src/ui/**/*.lisp", "./src/components/**/*.lisp",
], ],
theme: { theme: {
container: { container: {