From e31994a8cfcf696d8a7d9f72123103eccc9475d3 Mon Sep 17 00:00:00 2001 From: Nicole Tietz-Sokolskaya Date: Sun, 24 Mar 2024 01:28:21 -0400 Subject: [PATCH] Add layout for main page with top bar --- static/main.css | 1279 +++++++++++++++++++++++++++++++++++++++- static/main.js | 46 ++ templates/home.html | 116 +++- templates/login.html | 69 ++- templates/sidebar.html | 0 templates/top_bar.html | 8 - 6 files changed, 1461 insertions(+), 57 deletions(-) create mode 100644 static/main.js create mode 100644 templates/sidebar.html delete mode 100644 templates/top_bar.html diff --git a/static/main.css b/static/main.css index 758d3f1..fc4e466 100644 --- a/static/main.css +++ b/static/main.css @@ -544,34 +544,333 @@ video { --tw-backdrop-sepia: ; } +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border-width: 0; +} + +.fixed { + position: fixed; +} + +.absolute { + position: absolute; +} + +.relative { + position: relative; +} + +.sticky { + position: sticky; +} + +.inset-0 { + inset: 0px; +} + +.-inset-0 { + inset: -0px; +} + +.-inset-0\.5 { + inset: -0.125rem; +} + +.-inset-1 { + inset: -0.25rem; +} + +.-inset-1\.5 { + inset: -0.375rem; +} + +.inset-y-0 { + top: 0px; + bottom: 0px; +} + +.left-0 { + left: 0px; +} + +.right-0 { + right: 0px; +} + +.left-full { + left: 100%; +} + +.top-0 { + top: 0px; +} + +.z-10 { + z-index: 10; +} + +.z-40 { + z-index: 40; +} + +.z-50 { + z-index: 50; +} + +.-m-2 { + margin: -0.5rem; +} + +.-m-2\.5 { + margin: -0.625rem; +} + +.mx-auto { + margin-left: auto; + margin-right: auto; +} + +.-mx-2 { + margin-left: -0.5rem; + margin-right: -0.5rem; +} + +.-mx-6 { + margin-left: -1.5rem; + margin-right: -1.5rem; +} + +.ml-3 { + margin-left: 0.75rem; +} + +.mt-10 { + margin-top: 2.5rem; +} + +.mt-2 { + margin-top: 0.5rem; +} + +.mt-6 { + margin-top: 1.5rem; +} + +.mb-6 { + margin-bottom: 1.5rem; +} + +.mt-1 { + margin-top: 0.25rem; +} + +.ml-auto { + margin-left: auto; +} + +.mt-auto { + margin-top: auto; +} + +.mr-16 { + margin-right: 4rem; +} + +.-mr-2 { + margin-right: -0.5rem; +} + +.ml-10 { + margin-left: 2.5rem; +} + +.ml-4 { + margin-left: 1rem; +} + +.mt-3 { + margin-top: 0.75rem; +} + +.block { + display: block; +} + +.inline-block { + display: inline-block; +} + .flex { display: flex; } +.inline-flex { + display: inline-flex; +} + +.grid { + display: grid; +} + +.hidden { + display: none; +} + .h-full { height: 100%; } +.h-10 { + height: 2.5rem; +} + +.h-4 { + height: 1rem; +} + +.h-5 { + height: 1.25rem; +} + +.h-16 { + height: 4rem; +} + +.h-6 { + height: 1.5rem; +} + +.h-8 { + height: 2rem; +} + .min-h-screen { min-height: 100vh; } +.min-h-full { + min-height: 100%; +} + +.w-4 { + width: 1rem; +} + +.w-5 { + width: 1.25rem; +} + +.w-auto { + width: auto; +} + +.w-full { + width: 100%; +} + +.w-48 { + width: 12rem; +} + +.w-6 { + width: 1.5rem; +} + +.w-8 { + width: 2rem; +} + +.w-9 { + width: 2.25rem; +} + +.w-16 { + width: 4rem; +} + +.w-10 { + width: 2.5rem; +} + +.min-w-max { + min-width: -moz-max-content; + min-width: max-content; +} + .max-w-sm { max-width: 24rem; } +.max-w-7xl { + max-width: 80rem; +} + +.max-w-xs { + max-width: 20rem; +} + .flex-1 { flex: 1 1 0%; } -.shrink { - flex-shrink: 1; +.flex-shrink-0 { + flex-shrink: 0; +} + +.shrink-0 { + flex-shrink: 0; } .grow-0 { flex-grow: 0; } +.grow { + flex-grow: 1; +} + +.origin-top-right { + transform-origin: top right; +} + +.-translate-x-full { + --tw-translate-x: -100%; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.translate-x-0 { + --tw-translate-x: 0px; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.scale-100 { + --tw-scale-x: 1; + --tw-scale-y: 1; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.scale-95 { + --tw-scale-x: .95; + --tw-scale-y: .95; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.transform { + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.grid-cols-2 { + grid-template-columns: repeat(2, minmax(0, 1fr)); +} + .flex-row { flex-direction: row; } @@ -580,36 +879,162 @@ video { flex-direction: column; } +.items-center { + align-items: center; +} + +.items-baseline { + align-items: baseline; +} + .justify-center { justify-content: center; } +.justify-between { + justify-content: space-between; +} + +.gap-3 { + gap: 0.75rem; +} + +.gap-4 { + gap: 1rem; +} + +.gap-x-3 { + -moz-column-gap: 0.75rem; + column-gap: 0.75rem; +} + +.gap-x-4 { + -moz-column-gap: 1rem; + column-gap: 1rem; +} + +.gap-y-5 { + row-gap: 1.25rem; +} + +.gap-y-7 { + row-gap: 1.75rem; +} + +.gap-x-6 { + -moz-column-gap: 1.5rem; + column-gap: 1.5rem; +} + +.space-y-6 > :not([hidden]) ~ :not([hidden]) { + --tw-space-y-reverse: 0; + margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse))); + margin-bottom: calc(1.5rem * var(--tw-space-y-reverse)); +} + +.space-y-1 > :not([hidden]) ~ :not([hidden]) { + --tw-space-y-reverse: 0; + margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse))); + margin-bottom: calc(0.25rem * var(--tw-space-y-reverse)); +} + +.space-x-4 > :not([hidden]) ~ :not([hidden]) { + --tw-space-x-reverse: 0; + margin-right: calc(1rem * var(--tw-space-x-reverse)); + margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse))); +} + .overflow-hidden { overflow: hidden; } +.overflow-y-auto { + overflow-y: auto; +} + +.truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.whitespace-nowrap { + white-space: nowrap; +} + .rounded { border-radius: 0.25rem; } +.rounded-md { + border-radius: 0.375rem; +} + +.rounded-full { + border-radius: 9999px; +} + +.rounded-lg { + border-radius: 0.5rem; +} + +.border-0 { + border-width: 0px; +} + +.border { + border-width: 1px; +} + +.border-t { + border-top-width: 1px; +} + +.border-b-2 { + border-bottom-width: 2px; +} + +.border-l-4 { + border-left-width: 4px; +} + .border-gray-200 { --tw-border-opacity: 1; border-color: rgb(229 231 235 / var(--tw-border-opacity)); } -.bg-white { - --tw-bg-opacity: 1; - background-color: rgb(255 255 255 / var(--tw-bg-opacity)); +.border-gray-300 { + --tw-border-opacity: 1; + border-color: rgb(209 213 219 / var(--tw-border-opacity)); } -.bg-black { - --tw-bg-opacity: 1; - background-color: rgb(0 0 0 / var(--tw-bg-opacity)); +.border-indigo-500 { + --tw-border-opacity: 1; + border-color: rgb(99 102 241 / var(--tw-border-opacity)); } -.bg-purple-50 { - --tw-bg-opacity: 1; - background-color: rgb(250 245 255 / var(--tw-bg-opacity)); +.border-transparent { + border-color: transparent; +} + +.border-indigo-400 { + --tw-border-opacity: 1; + border-color: rgb(129 140 248 / var(--tw-border-opacity)); +} + +.border-indigo-700 { + --tw-border-opacity: 1; + border-color: rgb(67 56 202 / var(--tw-border-opacity)); +} + +.border-purple-700 { + --tw-border-opacity: 1; + border-color: rgb(126 34 206 / var(--tw-border-opacity)); +} + +.border-emerald-700 { + --tw-border-opacity: 1; + border-color: rgb(4 120 87 / var(--tw-border-opacity)); } .bg-purple-100 { @@ -617,19 +1042,407 @@ video { background-color: rgb(243 232 255 / var(--tw-bg-opacity)); } +.bg-white { + --tw-bg-opacity: 1; + background-color: rgb(255 255 255 / var(--tw-bg-opacity)); +} + +.bg-indigo-600 { + --tw-bg-opacity: 1; + background-color: rgb(79 70 229 / var(--tw-bg-opacity)); +} + +.bg-pink-600 { + --tw-bg-opacity: 1; + background-color: rgb(219 39 119 / var(--tw-bg-opacity)); +} + +.bg-orange-600 { + --tw-bg-opacity: 1; + background-color: rgb(234 88 12 / var(--tw-bg-opacity)); +} + +.bg-green-600 { + --tw-bg-opacity: 1; + background-color: rgb(22 163 74 / var(--tw-bg-opacity)); +} + +.bg-emerald-600 { + --tw-bg-opacity: 1; + background-color: rgb(5 150 105 / var(--tw-bg-opacity)); +} + +.bg-gray-100 { + --tw-bg-opacity: 1; + background-color: rgb(243 244 246 / var(--tw-bg-opacity)); +} + +.bg-indigo-50 { + --tw-bg-opacity: 1; + background-color: rgb(238 242 255 / var(--tw-bg-opacity)); +} + +.bg-indigo-500 { + --tw-bg-opacity: 1; + background-color: rgb(99 102 241 / var(--tw-bg-opacity)); +} + +.bg-indigo-700 { + --tw-bg-opacity: 1; + background-color: rgb(67 56 202 / var(--tw-bg-opacity)); +} + +.bg-gray-900\/80 { + background-color: rgb(17 24 39 / 0.8); +} + +.bg-purple-600 { + --tw-bg-opacity: 1; + background-color: rgb(147 51 234 / var(--tw-bg-opacity)); +} + +.bg-purple-700 { + --tw-bg-opacity: 1; + background-color: rgb(126 34 206 / var(--tw-bg-opacity)); +} + +.bg-emerald-700 { + --tw-bg-opacity: 1; + background-color: rgb(4 120 87 / var(--tw-bg-opacity)); +} + +.bg-purple-200 { + --tw-bg-opacity: 1; + background-color: rgb(233 213 255 / var(--tw-bg-opacity)); +} + +.bg-purple-300 { + --tw-bg-opacity: 1; + background-color: rgb(216 180 254 / var(--tw-bg-opacity)); +} + +.bg-gray-200 { + --tw-bg-opacity: 1; + background-color: rgb(229 231 235 / var(--tw-bg-opacity)); +} + +.fill-\[\#24292F\] { + fill: #24292F; +} + +.p-1 { + padding: 0.25rem; +} + +.p-2 { + padding: 0.5rem; +} + +.p-2\.5 { + padding: 0.625rem; +} + .py-12 { padding-top: 3rem; padding-bottom: 3rem; } +.px-3 { + padding-left: 0.75rem; + padding-right: 0.75rem; +} + +.px-6 { + padding-left: 1.5rem; + padding-right: 1.5rem; +} + +.py-1 { + padding-top: 0.25rem; + padding-bottom: 0.25rem; +} + +.py-1\.5 { + padding-top: 0.375rem; + padding-bottom: 0.375rem; +} + +.py-2 { + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} + +.px-1 { + padding-left: 0.25rem; + padding-right: 0.25rem; +} + +.px-2 { + padding-left: 0.5rem; + padding-right: 0.5rem; +} + +.px-4 { + padding-left: 1rem; + padding-right: 1rem; +} + +.px-2\.5 { + padding-left: 0.625rem; + padding-right: 0.625rem; +} + +.py-0 { + padding-top: 0px; + padding-bottom: 0px; +} + +.py-0\.5 { + padding-top: 0.125rem; + padding-bottom: 0.125rem; +} + +.py-3 { + padding-top: 0.75rem; + padding-bottom: 0.75rem; +} + +.py-10 { + padding-top: 2.5rem; + padding-bottom: 2.5rem; +} + +.py-4 { + padding-top: 1rem; + padding-bottom: 1rem; +} + +.px-5 { + padding-left: 1.25rem; + padding-right: 1.25rem; +} + +.py-6 { + padding-top: 1.5rem; + padding-bottom: 1.5rem; +} + +.pb-6 { + padding-bottom: 1.5rem; +} + +.pb-4 { + padding-bottom: 1rem; +} + +.pl-3 { + padding-left: 0.75rem; +} + +.pr-2 { + padding-right: 0.5rem; +} + +.pr-4 { + padding-right: 1rem; +} + +.pt-1 { + padding-top: 0.25rem; +} + +.pt-2 { + padding-top: 0.5rem; +} + +.pb-2 { + padding-bottom: 0.5rem; +} + +.pt-5 { + padding-top: 1.25rem; +} + +.pb-3 { + padding-bottom: 0.75rem; +} + +.pt-4 { + padding-top: 1rem; +} + +.text-center { + text-align: center; +} + +.text-xl { + font-size: 1.25rem; + line-height: 1.75rem; +} + +.text-2xl { + font-size: 1.5rem; + line-height: 2rem; +} + +.text-sm { + font-size: 0.875rem; + line-height: 1.25rem; +} + +.text-base { + font-size: 1rem; + line-height: 1.5rem; +} + +.text-\[0\.625rem\] { + font-size: 0.625rem; +} + +.text-xs { + font-size: 0.75rem; + line-height: 1rem; +} + .text-lg { font-size: 1.125rem; line-height: 1.75rem; } -.text-xl { - font-size: 1.25rem; - line-height: 1.75rem; +.font-bold { + font-weight: 700; +} + +.font-medium { + font-weight: 500; +} + +.font-semibold { + font-weight: 600; +} + +.leading-6 { + line-height: 1.5rem; +} + +.leading-9 { + line-height: 2.25rem; +} + +.leading-5 { + line-height: 1.25rem; +} + +.tracking-tight { + letter-spacing: -0.025em; +} + +.text-gray-500 { + --tw-text-opacity: 1; + color: rgb(107 114 128 / var(--tw-text-opacity)); +} + +.text-gray-900 { + --tw-text-opacity: 1; + color: rgb(17 24 39 / var(--tw-text-opacity)); +} + +.text-indigo-600 { + --tw-text-opacity: 1; + color: rgb(79 70 229 / var(--tw-text-opacity)); +} + +.text-white { + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); +} + +.text-pink-600 { + --tw-text-opacity: 1; + color: rgb(219 39 119 / var(--tw-text-opacity)); +} + +.text-orange-600 { + --tw-text-opacity: 1; + color: rgb(234 88 12 / var(--tw-text-opacity)); +} + +.text-green-600 { + --tw-text-opacity: 1; + color: rgb(22 163 74 / var(--tw-text-opacity)); +} + +.text-emerald-600 { + --tw-text-opacity: 1; + color: rgb(5 150 105 / var(--tw-text-opacity)); +} + +.text-gray-400 { + --tw-text-opacity: 1; + color: rgb(156 163 175 / var(--tw-text-opacity)); +} + +.text-gray-700 { + --tw-text-opacity: 1; + color: rgb(55 65 81 / var(--tw-text-opacity)); +} + +.text-indigo-700 { + --tw-text-opacity: 1; + color: rgb(67 56 202 / var(--tw-text-opacity)); +} + +.text-indigo-200 { + --tw-text-opacity: 1; + color: rgb(199 210 254 / var(--tw-text-opacity)); +} + +.text-indigo-300 { + --tw-text-opacity: 1; + color: rgb(165 180 252 / var(--tw-text-opacity)); +} + +.text-purple-200 { + --tw-text-opacity: 1; + color: rgb(233 213 255 / var(--tw-text-opacity)); +} + +.text-purple-300 { + --tw-text-opacity: 1; + color: rgb(216 180 254 / var(--tw-text-opacity)); +} + +.text-emerald-200 { + --tw-text-opacity: 1; + color: rgb(167 243 208 / var(--tw-text-opacity)); +} + +.text-emerald-300 { + --tw-text-opacity: 1; + color: rgb(110 231 183 / var(--tw-text-opacity)); +} + +.text-gray-300 { + --tw-text-opacity: 1; + color: rgb(209 213 219 / var(--tw-text-opacity)); +} + +.text-black { + --tw-text-opacity: 1; + color: rgb(0 0 0 / var(--tw-text-opacity)); +} + +.text-gray-600 { + --tw-text-opacity: 1; + color: rgb(75 85 99 / var(--tw-text-opacity)); +} + +.opacity-0 { + opacity: 0; +} + +.opacity-100 { + opacity: 1; } .shadow-lg { @@ -638,9 +1451,439 @@ video { box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } -@media (prefers-color-scheme: dark) { - .dark\:bg-gray-900 { - --tw-bg-opacity: 1; - background-color: rgb(17 24 39 / var(--tw-bg-opacity)); +.shadow { + --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); + --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + +.shadow-sm { + --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05); + --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + +.ring-1 { + --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); + --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color); + box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); +} + +.ring-inset { + --tw-ring-inset: inset; +} + +.ring-gray-300 { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(209 213 219 / var(--tw-ring-opacity)); +} + +.ring-black { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(0 0 0 / var(--tw-ring-opacity)); +} + +.ring-indigo-500 { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(99 102 241 / var(--tw-ring-opacity)); +} + +.ring-opacity-5 { + --tw-ring-opacity: 0.05; +} + +.transition { + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 150ms; +} + +.transition-opacity { + transition-property: opacity; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 150ms; +} + +.duration-200 { + transition-duration: 200ms; +} + +.duration-75 { + transition-duration: 75ms; +} + +.duration-300 { + transition-duration: 300ms; +} + +.duration-100 { + transition-duration: 100ms; +} + +.ease-in { + transition-timing-function: cubic-bezier(0.4, 0, 1, 1); +} + +.ease-out { + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); +} + +.ease-in-out { + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); +} + +.ease-linear { + transition-timing-function: linear; +} + +.placeholder\:text-gray-400::-moz-placeholder { + --tw-text-opacity: 1; + color: rgb(156 163 175 / var(--tw-text-opacity)); +} + +.placeholder\:text-gray-400::placeholder { + --tw-text-opacity: 1; + color: rgb(156 163 175 / var(--tw-text-opacity)); +} + +.hover\:border-gray-300:hover { + --tw-border-opacity: 1; + border-color: rgb(209 213 219 / var(--tw-border-opacity)); +} + +.hover\:bg-gray-50:hover { + --tw-bg-opacity: 1; + background-color: rgb(249 250 251 / var(--tw-bg-opacity)); +} + +.hover\:bg-indigo-500:hover { + --tw-bg-opacity: 1; + background-color: rgb(99 102 241 / var(--tw-bg-opacity)); +} + +.hover\:bg-pink-500:hover { + --tw-bg-opacity: 1; + background-color: rgb(236 72 153 / var(--tw-bg-opacity)); +} + +.hover\:bg-orange-500:hover { + --tw-bg-opacity: 1; + background-color: rgb(249 115 22 / var(--tw-bg-opacity)); +} + +.hover\:bg-green-500:hover { + --tw-bg-opacity: 1; + background-color: rgb(34 197 94 / var(--tw-bg-opacity)); +} + +.hover\:bg-emerald-500:hover { + --tw-bg-opacity: 1; + background-color: rgb(16 185 129 / var(--tw-bg-opacity)); +} + +.hover\:bg-gray-100:hover { + --tw-bg-opacity: 1; + background-color: rgb(243 244 246 / var(--tw-bg-opacity)); +} + +.hover\:bg-indigo-700:hover { + --tw-bg-opacity: 1; + background-color: rgb(67 56 202 / var(--tw-bg-opacity)); +} + +.hover\:bg-purple-500:hover { + --tw-bg-opacity: 1; + background-color: rgb(168 85 247 / var(--tw-bg-opacity)); +} + +.hover\:bg-opacity-75:hover { + --tw-bg-opacity: 0.75; +} + +.hover\:text-indigo-500:hover { + --tw-text-opacity: 1; + color: rgb(99 102 241 / var(--tw-text-opacity)); +} + +.hover\:text-pink-500:hover { + --tw-text-opacity: 1; + color: rgb(236 72 153 / var(--tw-text-opacity)); +} + +.hover\:text-orange-500:hover { + --tw-text-opacity: 1; + color: rgb(249 115 22 / var(--tw-text-opacity)); +} + +.hover\:text-green-500:hover { + --tw-text-opacity: 1; + color: rgb(34 197 94 / var(--tw-text-opacity)); +} + +.hover\:text-emerald-500:hover { + --tw-text-opacity: 1; + color: rgb(16 185 129 / var(--tw-text-opacity)); +} + +.hover\:text-gray-500:hover { + --tw-text-opacity: 1; + color: rgb(107 114 128 / var(--tw-text-opacity)); +} + +.hover\:text-gray-700:hover { + --tw-text-opacity: 1; + color: rgb(55 65 81 / var(--tw-text-opacity)); +} + +.hover\:text-white:hover { + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); +} + +.focus\:outline-none:focus { + outline: 2px solid transparent; + outline-offset: 2px; +} + +.focus\:ring-2:focus { + --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); + --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); + box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); +} + +.focus\:ring-inset:focus { + --tw-ring-inset: inset; +} + +.focus\:ring-indigo-600:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(79 70 229 / var(--tw-ring-opacity)); +} + +.focus\:ring-pink-600:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(219 39 119 / var(--tw-ring-opacity)); +} + +.focus\:ring-orange-600:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(234 88 12 / var(--tw-ring-opacity)); +} + +.focus\:ring-green-600:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(22 163 74 / var(--tw-ring-opacity)); +} + +.focus\:ring-emerald-600:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(5 150 105 / var(--tw-ring-opacity)); +} + +.focus\:ring-indigo-500:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(99 102 241 / var(--tw-ring-opacity)); +} + +.focus\:ring-white:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(255 255 255 / var(--tw-ring-opacity)); +} + +.focus\:ring-offset-2:focus { + --tw-ring-offset-width: 2px; +} + +.focus\:ring-offset-indigo-600:focus { + --tw-ring-offset-color: #4f46e5; +} + +.focus\:ring-offset-purple-600:focus { + --tw-ring-offset-color: #9333ea; +} + +.focus\:ring-offset-emerald-600:focus { + --tw-ring-offset-color: #059669; +} + +.focus-visible\:outline:focus-visible { + outline-style: solid; +} + +.focus-visible\:outline-2:focus-visible { + outline-width: 2px; +} + +.focus-visible\:outline-offset-2:focus-visible { + outline-offset: 2px; +} + +.focus-visible\:outline-indigo-600:focus-visible { + outline-color: #4f46e5; +} + +.focus-visible\:outline-pink-600:focus-visible { + outline-color: #db2777; +} + +.focus-visible\:outline-orange-600:focus-visible { + outline-color: #ea580c; +} + +.focus-visible\:outline-green-600:focus-visible { + outline-color: #16a34a; +} + +.focus-visible\:outline-emerald-600:focus-visible { + outline-color: #059669; +} + +.focus-visible\:ring-transparent:focus-visible { + --tw-ring-color: transparent; +} + +.group:hover .group-hover\:text-white { + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); +} + +@media (min-width: 640px) { + .sm\:static { + position: static; + } + + .sm\:inset-auto { + inset: auto; + } + + .sm\:mx-auto { + margin-left: auto; + margin-right: auto; + } + + .sm\:ml-6 { + margin-left: 1.5rem; + } + + .sm\:flex { + display: flex; + } + + .sm\:hidden { + display: none; + } + + .sm\:w-full { + width: 100%; + } + + .sm\:max-w-\[480px\] { + max-width: 480px; + } + + .sm\:max-w-md { + max-width: 28rem; + } + + .sm\:items-stretch { + align-items: stretch; + } + + .sm\:justify-start { + justify-content: flex-start; + } + + .sm\:space-x-8 > :not([hidden]) ~ :not([hidden]) { + --tw-space-x-reverse: 0; + margin-right: calc(2rem * var(--tw-space-x-reverse)); + margin-left: calc(2rem * calc(1 - var(--tw-space-x-reverse))); + } + + .sm\:rounded-lg { + border-radius: 0.5rem; + } + + .sm\:px-12 { + padding-left: 3rem; + padding-right: 3rem; + } + + .sm\:px-6 { + padding-left: 1.5rem; + padding-right: 1.5rem; + } + + .sm\:px-3 { + padding-left: 0.75rem; + padding-right: 0.75rem; + } + + .sm\:pr-0 { + padding-right: 0px; + } + + .sm\:text-sm { + font-size: 0.875rem; + line-height: 1.25rem; + } + + .sm\:leading-6 { + line-height: 1.5rem; + } +} + +@media (min-width: 768px) { + .md\:ml-6 { + margin-left: 1.5rem; + } + + .md\:block { + display: block; + } + + .md\:hidden { + display: none; + } +} + +@media (min-width: 1024px) { + .lg\:fixed { + position: fixed; + } + + .lg\:inset-y-0 { + top: 0px; + bottom: 0px; + } + + .lg\:z-50 { + z-index: 50; + } + + .lg\:flex { + display: flex; + } + + .lg\:hidden { + display: none; + } + + .lg\:w-72 { + width: 18rem; + } + + .lg\:flex-col { + flex-direction: column; + } + + .lg\:px-8 { + padding-left: 2rem; + padding-right: 2rem; + } + + .lg\:pl-72 { + padding-left: 18rem; } } diff --git a/static/main.js b/static/main.js new file mode 100644 index 0000000..3744808 --- /dev/null +++ b/static/main.js @@ -0,0 +1,46 @@ +let mobile_open_button = document.getElementById("mobile-menu-open-button"); +let mobile_close_button = document.getElementById("mobile-menu-close-button"); +let mobile_menu = document.getElementById("mobile-menu"); + +const profile_button = document.getElementById("profile-menu-button"); +let profile_dropdown = document.getElementById("profile-dropdown"); + +function toggle_mobile_menu() { + + if (mobile_open_button.classList.contains("block")) { + mobile_menu.classList.remove("hidden"); + mobile_open_button.classList.remove("block"); + mobile_open_button.classList.add("hidden"); + mobile_close_button.classList.remove("hidden"); + mobile_close_button.classList.add("block"); + } else { + mobile_menu.classList.add("hidden"); + mobile_close_button.classList.remove("block"); + mobile_close_button.classList.add("hidden"); + mobile_open_button.classList.remove("hidden"); + mobile_open_button.classList.add("block"); + } +} + +function toggle_profile_dropdown() { + + if (profile_dropdown.classList.contains("hidden")) { + profile_dropdown.classList.remove("hidden"); + } else { + profile_dropdown.classList.add("hidden"); + } +} + +function hide_profile_dropdown() { + let profile_dropdown = document.getElementById("profile-dropdown"); + + if (!profile_dropdown.classList.contains("hidden")) { + profile_dropdown.classList.add("hidden"); + } +} + +document.addEventListener("click", (event) => { + if (!profile_button.contains(event.target) && !profile_dropdown.contains(event.target)) { + profile_dropdown.classList.add("hidden"); + } +}); diff --git a/templates/home.html b/templates/home.html index ab9a818..32fd3a5 100644 --- a/templates/home.html +++ b/templates/home.html @@ -1,9 +1,117 @@ - + {% include "head.html" %} - - {% include "top_bar.html" %} + + +
+ + +
+
+ + Hi there! + +
+
+
+ + diff --git a/templates/login.html b/templates/login.html index c8d10cd..8579ccb 100644 --- a/templates/login.html +++ b/templates/login.html @@ -1,35 +1,50 @@ - + {% include "head.html" %} - -
-
-
-
-
-

Sign In to Pique

+ - {% if error %} -

{{ error }}

- {% endif %} +
+
+

Sign in to Pique

+
-
- - -
- -
- - -
- -
- -
- -
-
+
+
+
+
+ +
+ +
+ +
+ +
+ +
+
+ +
+
+ + +
+ + +
+ +
+ +
+
+
+
+ +
+ diff --git a/templates/sidebar.html b/templates/sidebar.html new file mode 100644 index 0000000..e69de29 diff --git a/templates/top_bar.html b/templates/top_bar.html deleted file mode 100644 index 6e4e86d..0000000 --- a/templates/top_bar.html +++ /dev/null @@ -1,8 +0,0 @@ -