WIP: Adds initial sidebar, needs more styling.

This commit is contained in:
2025-12-30 19:30:39 -05:00
parent f67c3ef847
commit 3e5c584d57
2 changed files with 44 additions and 0 deletions

View File

@@ -21,8 +21,13 @@ public struct MainPage<Inner: HTML>: SendableHTMLDocument where Inner: Sendable
public var body: some HTML {
div(.class("bg-white dark:bg-gray-800 dark:text-white")) {
Sidebar()
inner
}
script(.src("https://unpkg.com/lucide@latest")) {}
script {
"lucide.createIcons();"
}
}
}

View File

@@ -0,0 +1,39 @@
import Elementary
struct Sidebar: HTML {
var body: some HTML {
div(
.class(
"""
h-screen w-64 border-r-3 bg-gray-100 shadow space-y-4
""")
) {
row(title: "Project", icon: "map-pin")
row(title: "Rooms", icon: "door-closed")
row(title: "Equivalent Lengths", icon: "ruler-dimension-line")
row(title: "Friction Rate", icon: "square-function")
row(title: "Duct Sizes", icon: "wind")
}
}
func row(
title: String,
icon: String
) -> some HTML {
button(
.class(
"""
flex w-full jusitfy-between items-center text-gray-800 hover:bg-gray-300
"""
)
) {
i(.data("lucide", value: icon)) {}
p(
.class("text-2xl flex-1")
) {
title
}
}
}
}