diff --git a/images/door.png b/images/door.png new file mode 100644 index 0000000..6ce037b Binary files /dev/null and b/images/door.png differ diff --git a/internal/server/server.go b/internal/server/server.go index 8062a68..53da690 100644 --- a/internal/server/server.go +++ b/internal/server/server.go @@ -62,6 +62,7 @@ func NewRouter( })) r.Static("/styles", "./styles") r.Static("/favicon", "./favicon") + r.Static("/images", "./images") // html (must be before the api endpoints, because the webpage middleware has to be installed beforehand diff --git a/styles/index.css b/styles/index.css index e974ec6..a1145ee 100644 --- a/styles/index.css +++ b/styles/index.css @@ -216,6 +216,9 @@ .m-\[2em\] { margin: 2em; } + .mt-\[0\.25em\] { + margin-top: 0.25em; + } .mt-\[1em\] { margin-top: 1em; } @@ -252,12 +255,18 @@ .table { display: table; } + .h-\[2rem\] { + height: 2rem; + } .max-h-full { max-height: 100%; } .min-h-full { min-height: 100%; } + .w-fit { + width: fit-content; + } .w-full { width: 100%; } @@ -270,6 +279,9 @@ .min-w-fit { min-width: fit-content; } + .flex-shrink { + flex-shrink: 1; + } .grow { flex-grow: 1; } @@ -303,6 +315,12 @@ .justify-center { justify-content: center; } + .justify-start { + justify-content: flex-start; + } + .gap-\[1em\] { + gap: 1em; + } .gap-y-\[2em\] { row-gap: 2em; } @@ -315,6 +333,9 @@ .overflow-y-hidden { overflow-y: hidden; } + .rounded-\[50\%\] { + border-radius: 50%; + } .rounded-lg { border-radius: var(--radius); } @@ -325,9 +346,26 @@ border-style: var(--tw-border-style); border-width: 1px; } + .border-b-\[1px\] { + border-bottom-style: var(--tw-border-style); + border-bottom-width: 1px; + } + .border-b-\[2px\] { + border-bottom-style: var(--tw-border-style); + border-bottom-width: 2px; + } .border-sidebar-border { border-color: var(--sidebar-border); } + .border-b-\[1px_solid\] { + border-bottom-color: 1px solid; + } + .border-b-\[1px_solid_black\] { + border-bottom-color: 1px solid black; + } + .bg-accent { + background-color: var(--accent); + } .bg-background { background-color: var(--background); } @@ -343,6 +381,9 @@ .pt-\[1em\] { padding-top: 1em; } + .pr-\[2em\] { + padding-right: 2em; + } .pb-\[1em\] { padding-bottom: 1em; } @@ -389,6 +430,83 @@ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); transition-duration: var(--tw-duration, var(--default-transition-duration)); } + .transition-\[left\] { + transition-property: left; + transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); + transition-duration: var(--tw-duration, var(--default-transition-duration)); + } + .transition-\[scale\] { + transition-property: scale; + transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); + transition-duration: var(--tw-duration, var(--default-transition-duration)); + } + .transition-\[top\] { + transition-property: top; + transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); + transition-duration: var(--tw-duration, var(--default-transition-duration)); + } + .transition-\[y\] { + transition-property: y; + transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); + transition-duration: var(--tw-duration, var(--default-transition-duration)); + } + .transition-opacity { + transition-property: opacity; + transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); + transition-duration: var(--tw-duration, var(--default-transition-duration)); + } + .transition-shadow { + transition-property: box-shadow; + transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); + transition-duration: var(--tw-duration, var(--default-transition-duration)); + } + .group-hover\:scale-120 { + &:is(:where(.group):hover *) { + @media (hover: hover) { + --tw-scale-x: 120%; + --tw-scale-y: 120%; + --tw-scale-z: 120%; + scale: var(--tw-scale-x) var(--tw-scale-y); + } + } + } + .hover\:scale-110 { + &:hover { + @media (hover: hover) { + --tw-scale-x: 110%; + --tw-scale-y: 110%; + --tw-scale-z: 110%; + scale: var(--tw-scale-x) var(--tw-scale-y); + } + } + } + .hover\:scale-120 { + &:hover { + @media (hover: hover) { + --tw-scale-x: 120%; + --tw-scale-y: 120%; + --tw-scale-z: 120%; + scale: var(--tw-scale-x) var(--tw-scale-y); + } + } + } + .hover\:scale-150 { + &:hover { + @media (hover: hover) { + --tw-scale-x: 150%; + --tw-scale-y: 150%; + --tw-scale-z: 150%; + scale: var(--tw-scale-x) var(--tw-scale-y); + } + } + } + .hover\:cursor-pointer { + &:hover { + @media (hover: hover) { + cursor: pointer; + } + } + } .hover\:bg-accent { &:hover { @media (hover: hover) { @@ -428,6 +546,18 @@ padding-block: calc(8vw - 0.5em); } } + .dark\:invert { + @media (prefers-color-scheme: dark) { + --tw-invert: invert(100%); + filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); + } + } + .dark\:invert-\[100\%\] { + @media (prefers-color-scheme: dark) { + --tw-invert: invert(100%); + filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); + } + } } @layer base { select { @@ -802,6 +932,21 @@ syntax: "*"; inherits: false; } +@property --tw-scale-x { + syntax: "*"; + inherits: false; + initial-value: 1; +} +@property --tw-scale-y { + syntax: "*"; + inherits: false; + initial-value: 1; +} +@property --tw-scale-z { + syntax: "*"; + inherits: false; + initial-value: 1; +} @layer properties { @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) { *, ::before, ::after, ::backdrop { @@ -820,6 +965,9 @@ --tw-drop-shadow-color: initial; --tw-drop-shadow-alpha: 100%; --tw-drop-shadow-size: initial; + --tw-scale-x: 1; + --tw-scale-y: 1; + --tw-scale-z: 1; } } } diff --git a/templates/layout.html.tmpl b/templates/layout.html.tmpl index bbf7f03..93327e4 100644 --- a/templates/layout.html.tmpl +++ b/templates/layout.html.tmpl @@ -111,12 +111,6 @@ -