diff --git a/src/main/resources/static/css/dashboard.css b/src/main/resources/static/css/dashboard.css index 0a4161c..b52893b 100644 --- a/src/main/resources/static/css/dashboard.css +++ b/src/main/resources/static/css/dashboard.css @@ -15,180 +15,111 @@ body { /* NAVBAR STYLING */ .nav { - align-items: center; - display: grid; - grid-template-columns: 1fr auto 1fr; - padding: 1rem 1rem; - width: 100%; - left: 0; - margin: 0; - - /* 1. Make it sticky at the top */ position: fixed; - top: 0; - z-index: 1000; - - /* 2. The Frosted Glass Effect */ - background: rgba(250, 251, 252, 0.75); /* Semi-transparent white */ - backdrop-filter: blur(12px); /* Blurs whatever is behind the nav */ - -webkit-backdrop-filter: blur(12px); /* Safari support */ - - /* 3. A subtle border to define the edge */ - border-bottom: 1px solid rgba(224, 224, 224, 0.5); - box-shadow: 0 4px 30px rgba(0, 0, 0, 0.05); -} - -.nav a { - text-decoration: none; - color: #1a1a2e; - font-size: 0.92rem; - transition: color 0.3s ease; -} - -.nav a:hover:not(#link-garden, #sign-up-btn) { - color: #3b82f6; -} - -.nav #link-garden { - font-weight: bold; - font-size: 1.2rem; - color: #1a1a2e; -} - -.nav-left, .nav-center, .nav-right { + top: env(safe-area-inset-top, 0); + left: 50%; + transform: translateX(-50%); + max-width: 80rem; + width: 80rem; + backdrop-filter: blur(12px) saturate(180%) contrast(200%); + background: rgba(0, 122, 255, 0.404); + border: 1px solid var(--glass-border); + box-shadow: 0 10px 30px rgba(0, 0, 0, 0.06); + padding: 8px; + border-radius: 99rem; display: flex; - align-items: center; -} - -.nav-left a { - display: inline-flex; - align-items: center; - gap: 0.5rem; -} - -.nav-left svg { - width: 30px; - height: 30px; - display: block; - transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275); -} - -.nav-left a:hover svg { - transform: rotate(-10deg) scale(1.1); - color: #3b82f6 !important; -} - -.nav-center { justify-content: center; - justify-self: center; - gap: 1rem; + gap: 6rem; + z-index: 50; align-items: center; } -.nav-center a, .nav-center button { - font-size: 1.2rem; - position: relative; - text-decoration: none; -} - -.nav-center a::after { - content: ''; +.nav::after { + content: ""; position: absolute; - width: 0; - height: 2px; - bottom: -4px; - left: 0; - background: linear-gradient(90deg, #3b82f6, #0ea5e9); - transition: width 0.3s cubic-bezier(0.165, 0.84, 0.44, 1); -} - -.nav-center a:hover::after { - width: 100%; -} - -.nav button:hover { - color: #3b82f6; + inset: 0; + border-radius: inherit; + box-shadow:inset 2px 2px 5px -2px rgba(255, 255, 255, 0.4),inset -2px -2px 5px 2px rgba(255, 255, 255, 0.4),inset 0 -2px 0 rgba(255, 255, 255, 0.2); + pointer-events: none; + z-index: -1; } -.nav-left { - justify-self: start; - margin-left: 10rem; -} - -.nav-right { - justify-self: end; - gap: 0.75rem; - margin-right: 10rem; -} - -.nav-right a { - display: inline-flex; +.nav a ,.nav form, .nav form button{ + display: flex; + flex-direction: column; align-items: center; - line-height: 1; - font-size: 1.2rem; - position: relative; + flex: 1 1 0; + min-width: 0; + color: #1a1a2e; text-decoration: none; + padding: 10px 6px; + border-radius: 999rem; + max-width: 15rem; + -webkit-tap-highlight-color: transparent; + transition: + background 0.18s var(--ease-spring), + color 0.18s var(--ease-spring), + transform 0.18s var(--ease-spring), + box-shadow 0.3s ease-in-out; +} + +.nav a:hover:not(#logout:hover, #sign-up-btn), .nav form:hover { + transition: + background 0.18s var(--ease-spring), + color 0.18s var(--ease-spring), + transform 0.18s var(--ease-spring), + box-shadow 0.3s ease-in-out; + background-color: rgba(255, 255, 255, 30%); + box-shadow: + inset 2px 2px 5px -2px rgba(255, 255, 255, 0.4), + inset -2px -1px 5px 0 rgba(255, 255, 255, 0.4), + inset 0 -2px 0 rgba(255, 255, 255, 0.2); + transform: rotate(2.2); + color: rgba(0, 122, 255, 70%); +} + +.nav form button:hover { + color: rgba(0, 122, 255, 70%); +} + +.nav #logout:hover { + color: red; + text-decoration: underline; } -.nav-right a:not(#sign-up-btn)::after { - content: ''; - position: absolute; - width: 0; - height: 2px; - bottom: -4px; - left: 0; - background: linear-gradient(90deg, #3b82f6, #0ea5e9); - transition: width 0.3s cubic-bezier(0.165, 0.84, 0.44, 1); +.nav svg { + width: 1.4rem; + font-size: 1.4rem; } -.nav-right a:not(#sign-up-btn):hover::after { - width: 100%; +.nav span, .nav form button { + font-size: 0.8rem; + font-weight: 600; + margin-top: 4px; } -.nav-center button, .nav-right button { +.nav form button { + background: transparent; border: none; - background: none; - padding: 0 0 3px 0; -} - -.nav-center button:hover, .nav-right button:hover { - color: #3b82f6; + color: #1a1a2e; cursor: pointer; -} - -.logout-form { - margin: 0; padding: 0; - display: flex; + font-family: inherit; } -#logout-btn { +.nav form button:hover { background: transparent; - color: #ef4444; - border: 1px solid #ef4444; - padding: 0.4rem 1rem; - border-radius: 0.5rem; - font-size: 1rem; - font-weight: 600; - cursor: pointer; - transition: all 0.3s ease; + border: none; } -#logout-btn:hover { - background: #ef4444; - color: white; - box-shadow: 0 4px 12px rgba(239, 68, 68, 0.3); - transform: translateY(-2px); +/* ACTIVE TAB CSS */ +.nav .active { + background: rgba(237, 237, 237, 0.6); + color: rgba(0, 122, 255, 0.9); } -.nav-right button { - border: none; - background: none; - padding: 0 0 3px 0; -} -.nav-right button:hover { - color: #3b82f6; - cursor: pointer; +.nav a:active { + transform: scale(0.98); } #sign-up-btn { @@ -200,30 +131,42 @@ body { cursor: pointer; transition: all 0.3s ease; box-shadow: 0 2px 8px rgba(59, 130, 246, 0.2); + text-align: center; + display: flex; + align-items: center; + justify-content: center; position: relative; overflow: hidden; + max-width: 6rem; + max-height: 2rem; } #sign-up-btn::after { content: ''; position: absolute; top: 0; - left: -100%; + left: -100%; /* Start completely off the left edge */ width: 50%; height: 100%; background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.3) 50%, rgba(255,255,255,0) 100%); transform: skewX(-25deg); - animation: shimmer-beam 5s infinite; -} - -@keyframes shimmer-beam { - 0%, 70% { left: -100%; } - 100% { left: 200%; } + animation: shimmer-beam 5s infinite; /* Runs endlessly */ } #sign-up-btn:hover { box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3); transform: translateY(-1px); + text-decoration: underline; +} + +@keyframes shimmer-beam { + 0%, 70% { left: -100%; } /* Wait off-screen for a few seconds */ + 100% { left: 200%; } /* Zoom across the button! */ +} + +#sign-up-btn span { + text-align: center; + font-size: 22px; } @@ -270,7 +213,7 @@ p { } -form { +form:not(.nav form) { max-width: 760px; background: #ffffff; border: 1px solid #dbe8ff; @@ -470,6 +413,7 @@ form { } .live-preview { + margin-top: 2rem; position: fixed; right: 40px; top: 70px; diff --git a/src/main/resources/static/css/landing.css b/src/main/resources/static/css/landing.css index 162b462..6ad1ba3 100644 --- a/src/main/resources/static/css/landing.css +++ b/src/main/resources/static/css/landing.css @@ -9,117 +9,115 @@ body { } + + /* NAVBAR STYLING */ -/* Update your existing .nav class */ .nav { - align-items: center; - display: grid; - grid-template-columns: 1fr auto 1fr; - padding: 1rem 1rem; - width: 100%; - left: 0; - margin: 0; - - /* 1. Make it sticky at the top */ position: fixed; - top: 0; - z-index: 1000; - - /* 2. The Frosted Glass Effect */ - background: rgba(250, 251, 252, 0.75); /* Semi-transparent white */ - backdrop-filter: blur(12px); /* Blurs whatever is behind the nav */ - -webkit-backdrop-filter: blur(12px); /* Safari support */ - - /* 3. A subtle border to define the edge */ - border-bottom: 1px solid rgba(224, 224, 224, 0.5); - box-shadow: 0 4px 30px rgba(0, 0, 0, 0.05); -} - -/* Add this right below the .nav block to prevent your hero text from hiding under the fixed nav! */ -body { - padding-top: 80px; -} - -.nav a { - text-decoration: none; - color: #1a1a2e; - font-size: 0.92rem; - transition: color 0.3s ease; -} - -.nav a:hover:not(#link-garden, #sign-up-btn) { - color: #3b82f6; -} - -.nav #link-garden { - font-weight: bold; - font-size: 1.2rem; - color: #1a1a2e; -} - -.nav-left, .nav-center, .nav-right { + top: env(safe-area-inset-top, 0); + left: 50%; + transform: translateX(-50%); + max-width: 80rem; + width: 80rem; + backdrop-filter: blur(12px) saturate(180%) contrast(200%); + background: rgba(0, 122, 255, 0.404); + border: 1px solid var(--glass-border); + box-shadow: 0 10px 30px rgba(0, 0, 0, 0.06); + padding: 8px; + border-radius: 99rem; display: flex; + justify-content: center; + gap: 6rem; + z-index: 50; align-items: center; } - -.nav-left a { - display: inline-flex; - align-items: center; - gap: 0.5rem; -} - -.nav-left svg { - width: 30px; - height: 30px; - display: block; +.nav::after { + content: ""; + position: absolute; + inset: 0; + border-radius: inherit; + box-shadow:inset 2px 2px 5px -2px rgba(255, 255, 255, 0.4),inset -2px -2px 5px 2px rgba(255, 255, 255, 0.4),inset 0 -2px 0 rgba(255, 255, 255, 0.2); + pointer-events: none; + z-index: -1; } -.nav-center { - justify-content: center; - justify-self: center; - gap: 1rem; +.nav a ,.nav form, .nav form button{ + display: flex; + flex-direction: column; align-items: center; + flex: 1 1 0; + min-width: 0; + color: #1a1a2e; + text-decoration: none; + padding: 10px 6px; + border-radius: 999rem; + max-width: 15rem; + -webkit-tap-highlight-color: transparent; + transition: + background 0.18s var(--ease-spring), + color 0.18s var(--ease-spring), + transform 0.18s var(--ease-spring), + box-shadow 0.3s ease-in-out; +} + +.nav a:hover:not(#logout:hover, #sign-up-btn), .nav form:hover { + transition: + background 0.18s var(--ease-spring), + color 0.18s var(--ease-spring), + transform 0.18s var(--ease-spring), + box-shadow 0.3s ease-in-out; + background-color: rgba(255, 255, 255, 30%); + box-shadow: + inset 2px 2px 5px -2px rgba(255, 255, 255, 0.4), + inset -2px -1px 5px 0 rgba(255, 255, 255, 0.4), + inset 0 -2px 0 rgba(255, 255, 255, 0.2); + transform: rotate(2.2); + color: rgba(0, 122, 255, 70%); +} + +.nav form button:hover { + color: rgba(0, 122, 255, 70%); +} + +.nav #logout:hover { + color: red; + text-decoration: underline; } -.nav-center a, .nav-center button { - font-size: 1.2rem; +.nav svg { + width: 1.4rem; + font-size: 1.4rem; } -.nav button:hover { - color: #3b82f6; +.nav span, .nav form button { + font-size: 0.8rem; + font-weight: 600; + margin-top: 4px; } -.nav-left { - justify-self: start; - margin-left: 10rem; +.nav form button { + background: transparent; + border: none; + color: #1a1a2e; + cursor: pointer; + padding: 0; + font-family: inherit; } -.nav-right { - justify-self: end; - gap: 0.75rem; - margin-right: 10rem; +.nav form button:hover { + background: transparent; + border: none; } -.nav-right a { - display: inline-flex; - align-items: center; - line-height: 1; - font-size: 1.2rem; +/* ACTIVE TAB CSS */ +.nav .active { + background: rgba(237, 237, 237, 0.6); + color: rgba(0, 122, 255, 0.9); } -.nav-right #logout-link:hover { - text-decoration: underline; -} - -.nav-center button, .nav-right button { - border: none; - background: none; - padding: 0; -} -.nav-center button:hover, .nav-right button:hover { - color: #3b82f6; - cursor: pointer; +.nav a:active { + transform: scale(0.98); } #sign-up-btn { @@ -131,13 +129,16 @@ body { cursor: pointer; transition: all 0.3s ease; box-shadow: 0 2px 8px rgba(59, 130, 246, 0.2); - - /* NEW: Setup for the shimmer */ + text-align: center; + display: flex; + align-items: center; + justify-content: center; position: relative; overflow: hidden; + max-width: 6rem; + max-height: 2rem; } -/* Create the diagonal white beam */ #sign-up-btn::after { content: ''; position: absolute; @@ -150,17 +151,24 @@ body { animation: shimmer-beam 5s infinite; /* Runs endlessly */ } +#sign-up-btn:hover { + box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3); + transform: translateY(-1px); + text-decoration: underline; +} + @keyframes shimmer-beam { 0%, 70% { left: -100%; } /* Wait off-screen for a few seconds */ 100% { left: 200%; } /* Zoom across the button! */ } -#sign-up-btn:hover { - box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3); - transform: translateY(-1px); +#sign-up-btn span { + text-align: center; + font-size: 22px; } + /* INTRO STYLING */ .hero { text-align: center; diff --git a/src/main/resources/static/css/login.css b/src/main/resources/static/css/login.css index 4dba971..902187b 100644 --- a/src/main/resources/static/css/login.css +++ b/src/main/resources/static/css/login.css @@ -11,145 +11,111 @@ body { /* NAVBAR STYLING */ .nav { - align-items: center; - display: grid; - grid-template-columns: 1fr auto 1fr; - padding: 1rem 1rem; - width: 100%; - left: 0; - margin: 0; - - /* 1. Make it sticky at the top */ position: fixed; - top: 0; - z-index: 1000; - - /* 2. The Frosted Glass Effect */ - background: rgba(250, 251, 252, 0.75); /* Semi-transparent white */ - backdrop-filter: blur(12px); /* Blurs whatever is behind the nav */ - -webkit-backdrop-filter: blur(12px); /* Safari support */ - - /* 3. A subtle border to define the edge */ - border-bottom: 1px solid rgba(224, 224, 224, 0.5); - box-shadow: 0 4px 30px rgba(0, 0, 0, 0.05); -} - -.nav a { - text-decoration: none; - color: #1a1a2e; - font-size: 0.92rem; - transition: color 0.3s ease; -} - -.nav a:hover:not(#link-garden, #sign-up-btn) { - color: #3b82f6; -} - -.nav #link-garden { - font-weight: bold; - font-size: 1.2rem; - color: #1a1a2e; -} - -.nav-left, .nav-center, .nav-right { + top: env(safe-area-inset-top, 0); + left: 50%; + transform: translateX(-50%); + max-width: 80rem; + width: 80rem; + backdrop-filter: blur(12px) saturate(180%) contrast(200%); + background: rgba(0, 122, 255, 0.404); + border: 1px solid var(--glass-border); + box-shadow: 0 10px 30px rgba(0, 0, 0, 0.06); + padding: 8px; + border-radius: 99rem; display: flex; - align-items: center; -} - -.nav-left a { - display: inline-flex; - align-items: center; - gap: 0.5rem; -} - -.nav-left svg { - width: 30px; - height: 30px; - display: block; - transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275); -} - -.nav-left a:hover svg { - transform: rotate(-10deg) scale(1.1); - color: #3b82f6 !important; -} - -.nav-center { justify-content: center; - justify-self: center; - gap: 1rem; + gap: 6rem; + z-index: 50; align-items: center; } -.nav-center a, .nav-center button { - font-size: 1.2rem; - position: relative; - text-decoration: none; -} - -.nav-center a::after { - content: ''; +.nav::after { + content: ""; position: absolute; - width: 0; - height: 2px; - bottom: -4px; - left: 0; - background: linear-gradient(90deg, #3b82f6, #0ea5e9); - transition: width 0.3s cubic-bezier(0.165, 0.84, 0.44, 1); + inset: 0; + border-radius: inherit; + box-shadow:inset 2px 2px 5px -2px rgba(255, 255, 255, 0.4),inset -2px -2px 5px 2px rgba(255, 255, 255, 0.4),inset 0 -2px 0 rgba(255, 255, 255, 0.2); + pointer-events: none; + z-index: -1; } -.nav-center a:hover::after { - width: 100%; -} - -.nav button:hover { - color: #3b82f6; +.nav a ,.nav form, .nav form button{ + display: flex; + flex-direction: column; + align-items: center; + flex: 1 1 0; + min-width: 0; + color: #1a1a2e; + text-decoration: none; + padding: 10px 6px; + border-radius: 999rem; + max-width: 15rem; + -webkit-tap-highlight-color: transparent; + transition: + background 0.18s var(--ease-spring), + color 0.18s var(--ease-spring), + transform 0.18s var(--ease-spring), + box-shadow 0.3s ease-in-out; +} + +.nav a:hover:not(#logout:hover, #sign-up-btn), .nav form:hover { + transition: + background 0.18s var(--ease-spring), + color 0.18s var(--ease-spring), + transform 0.18s var(--ease-spring), + box-shadow 0.3s ease-in-out; + background-color: rgba(255, 255, 255, 30%); + box-shadow: + inset 2px 2px 5px -2px rgba(255, 255, 255, 0.4), + inset -2px -1px 5px 0 rgba(255, 255, 255, 0.4), + inset 0 -2px 0 rgba(255, 255, 255, 0.2); + transform: rotate(2.2); + color: rgba(0, 122, 255, 70%); +} + +.nav form button:hover { + color: rgba(0, 122, 255, 70%); +} + +.nav #logout:hover { + color: red; + text-decoration: underline; } -.nav-left { - justify-self: start; - margin-left: 10rem; +.nav svg { + width: 1.4rem; + font-size: 1.4rem; } -.nav-right { - justify-self: end; - gap: 0.75rem; - margin-right: 10rem; +.nav span, .nav form button { + font-size: 0.8rem; + font-weight: 600; + margin-top: 4px; } -.nav-right a { - display: inline-flex; - align-items: center; - line-height: 1; - font-size: 1.2rem; - position: relative; - text-decoration: none; -} - -.nav-right a:not(#sign-up-btn)::after { - content: ''; - position: absolute; - width: 0; - height: 2px; - bottom: -4px; - left: 0; - background: linear-gradient(90deg, #3b82f6, #0ea5e9); - transition: width 0.3s cubic-bezier(0.165, 0.84, 0.44, 1); +.nav form button { + background: transparent; + border: none; + color: #1a1a2e; + cursor: pointer; + padding: 0; + font-family: inherit; } -.nav-right a:not(#sign-up-btn):hover::after { - width: 100%; +.nav form button:hover { + background: transparent; + border: none; } -.nav-center button, .nav-right button { - border: none; - background: none; - padding: 0 0 3px 0; +/* ACTIVE TAB CSS */ +.nav .active { + background: rgba(237, 237, 237, 0.6); + color: rgba(0, 122, 255, 0.9); } -.nav-center button:hover, .nav-right button:hover { - color: #3b82f6; - cursor: pointer; +.nav a:active { + transform: scale(0.98); } #sign-up-btn { @@ -161,30 +127,42 @@ body { cursor: pointer; transition: all 0.3s ease; box-shadow: 0 2px 8px rgba(59, 130, 246, 0.2); + text-align: center; + display: flex; + align-items: center; + justify-content: center; position: relative; overflow: hidden; + max-width: 6rem; + max-height: 2rem; } #sign-up-btn::after { content: ''; position: absolute; top: 0; - left: -100%; + left: -100%; /* Start completely off the left edge */ width: 50%; height: 100%; background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.3) 50%, rgba(255,255,255,0) 100%); transform: skewX(-25deg); - animation: shimmer-beam 5s infinite; -} - -@keyframes shimmer-beam { - 0%, 70% { left: -100%; } - 100% { left: 200%; } + animation: shimmer-beam 5s infinite; /* Runs endlessly */ } #sign-up-btn:hover { box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3); transform: translateY(-1px); + text-decoration: underline; +} + +@keyframes shimmer-beam { + 0%, 70% { left: -100%; } /* Wait off-screen for a few seconds */ + 100% { left: 200%; } /* Zoom across the button! */ +} + +#sign-up-btn span { + text-align: center; + font-size: 22px; } /*Login CSS*/ @@ -201,7 +179,7 @@ body { flex-direction: column; align-items: center; text-align: center; - margin-top: 4rem; + margin-top: 2rem; flex: 1; } diff --git a/src/main/resources/static/css/register.css b/src/main/resources/static/css/register.css index c7769e5..2527ce2 100644 --- a/src/main/resources/static/css/register.css +++ b/src/main/resources/static/css/register.css @@ -23,145 +23,111 @@ footer { /* NAVBAR STYLING */ .nav { - align-items: center; - display: grid; - grid-template-columns: 1fr auto 1fr; - padding: 1rem 1rem; - width: 100%; - left: 0; - margin: 0; - - /* 1. Make it sticky at the top */ position: fixed; - top: 0; - z-index: 1000; - - /* 2. The Frosted Glass Effect */ - background: rgba(250, 251, 252, 0.75); /* Semi-transparent white */ - backdrop-filter: blur(12px); /* Blurs whatever is behind the nav */ - -webkit-backdrop-filter: blur(12px); /* Safari support */ - - /* 3. A subtle border to define the edge */ - border-bottom: 1px solid rgba(224, 224, 224, 0.5); - box-shadow: 0 4px 30px rgba(0, 0, 0, 0.05); -} - -.nav a { - text-decoration: none; - color: #1a1a2e; - font-size: 0.92rem; - transition: color 0.3s ease; -} - -.nav a:hover:not(#link-garden, #sign-up-btn) { - color: #3b82f6; -} - -.nav #link-garden { - font-weight: bold; - font-size: 1.2rem; - color: #1a1a2e; -} - -.nav-left, .nav-center, .nav-right { + top: env(safe-area-inset-top, 0); + left: 50%; + transform: translateX(-50%); + max-width: 80rem; + width: 80rem; + backdrop-filter: blur(12px) saturate(180%) contrast(200%); + background: rgba(0, 122, 255, 0.404); + border: 1px solid var(--glass-border); + box-shadow: 0 10px 30px rgba(0, 0, 0, 0.06); + padding: 8px; + border-radius: 99rem; display: flex; - align-items: center; -} - -.nav-left a { - display: inline-flex; - align-items: center; - gap: 0.5rem; -} - -.nav-left svg { - width: 30px; - height: 30px; - display: block; - transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275); -} - -.nav-left a:hover svg { - transform: rotate(-10deg) scale(1.1); - color: #3b82f6 !important; -} - -.nav-center { justify-content: center; - justify-self: center; - gap: 1rem; + gap: 6rem; + z-index: 50; align-items: center; } -.nav-center a, .nav-center button { - font-size: 1.2rem; - position: relative; - text-decoration: none; -} - -.nav-center a::after { - content: ''; +.nav::after { + content: ""; position: absolute; - width: 0; - height: 2px; - bottom: -4px; - left: 0; - background: linear-gradient(90deg, #3b82f6, #0ea5e9); - transition: width 0.3s cubic-bezier(0.165, 0.84, 0.44, 1); + inset: 0; + border-radius: inherit; + box-shadow:inset 2px 2px 5px -2px rgba(255, 255, 255, 0.4),inset -2px -2px 5px 2px rgba(255, 255, 255, 0.4),inset 0 -2px 0 rgba(255, 255, 255, 0.2); + pointer-events: none; + z-index: -1; } -.nav-center a:hover::after { - width: 100%; -} - -.nav button:hover { - color: #3b82f6; +.nav a ,.nav form, .nav form button{ + display: flex; + flex-direction: column; + align-items: center; + flex: 1 1 0; + min-width: 0; + color: #1a1a2e; + text-decoration: none; + padding: 10px 6px; + border-radius: 999rem; + max-width: 15rem; + -webkit-tap-highlight-color: transparent; + transition: + background 0.18s var(--ease-spring), + color 0.18s var(--ease-spring), + transform 0.18s var(--ease-spring), + box-shadow 0.3s ease-in-out; +} + +.nav a:hover:not(#logout:hover, #sign-up-btn), .nav form:hover { + transition: + background 0.18s var(--ease-spring), + color 0.18s var(--ease-spring), + transform 0.18s var(--ease-spring), + box-shadow 0.3s ease-in-out; + background-color: rgba(255, 255, 255, 30%); + box-shadow: + inset 2px 2px 5px -2px rgba(255, 255, 255, 0.4), + inset -2px -1px 5px 0 rgba(255, 255, 255, 0.4), + inset 0 -2px 0 rgba(255, 255, 255, 0.2); + transform: rotate(2.2); + color: rgba(0, 122, 255, 70%); +} + +.nav form button:hover { + color: rgba(0, 122, 255, 70%); +} + +.nav #logout:hover { + color: red; + text-decoration: underline; } -.nav-left { - justify-self: start; - margin-left: 10rem; +.nav svg { + width: 1.4rem; + font-size: 1.4rem; } -.nav-right { - justify-self: end; - gap: 0.75rem; - margin-right: 10rem; +.nav span, .nav form button { + font-size: 0.8rem; + font-weight: 600; + margin-top: 4px; } -.nav-right a { - display: inline-flex; - align-items: center; - line-height: 1; - font-size: 1.2rem; - position: relative; - text-decoration: none; -} - -.nav-right a:not(#sign-up-btn)::after { - content: ''; - position: absolute; - width: 0; - height: 2px; - bottom: -4px; - left: 0; - background: linear-gradient(90deg, #3b82f6, #0ea5e9); - transition: width 0.3s cubic-bezier(0.165, 0.84, 0.44, 1); +.nav form button { + background: transparent; + border: none; + color: #1a1a2e; + cursor: pointer; + padding: 0; + font-family: inherit; } -.nav-right a:not(#sign-up-btn):hover::after { - width: 100%; +.nav form button:hover { + background: transparent; + border: none; } -.nav-center button, .nav-right button { - border: none; - background: none; - padding: 0 0 3px 0; +/* ACTIVE TAB CSS */ +.nav .active { + background: rgba(237, 237, 237, 0.6); + color: rgba(0, 122, 255, 0.9); } -.nav-center button:hover, .nav-right button:hover { - color: #3b82f6; - cursor: pointer; +.nav a:active { + transform: scale(0.98); } #sign-up-btn { @@ -173,30 +139,42 @@ footer { cursor: pointer; transition: all 0.3s ease; box-shadow: 0 2px 8px rgba(59, 130, 246, 0.2); + text-align: center; + display: flex; + align-items: center; + justify-content: center; position: relative; overflow: hidden; + max-width: 6rem; + max-height: 2rem; } #sign-up-btn::after { content: ''; position: absolute; top: 0; - left: -100%; + left: -100%; /* Start completely off the left edge */ width: 50%; height: 100%; background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.3) 50%, rgba(255,255,255,0) 100%); transform: skewX(-25deg); - animation: shimmer-beam 5s infinite; -} - -@keyframes shimmer-beam { - 0%, 70% { left: -100%; } - 100% { left: 200%; } + animation: shimmer-beam 5s infinite; /* Runs endlessly */ } #sign-up-btn:hover { box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3); transform: translateY(-1px); + text-decoration: underline; +} + +@keyframes shimmer-beam { + 0%, 70% { left: -100%; } /* Wait off-screen for a few seconds */ + 100% { left: 200%; } /* Zoom across the button! */ +} + +#sign-up-btn span { + text-align: center; + font-size: 22px; } /*Message Error CSS*/ @@ -226,7 +204,7 @@ footer { flex-direction: column; align-items: center; text-align: center; - margin-top: 4rem; + margin-top: 2rem; flex: 1; } @@ -286,14 +264,40 @@ footer { box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.15); } +.signup-form input, +.signup-form textarea, .signup-form select { - padding: 0.75rem; - width: 100%; - box-sizing: border-box; font-size: 1rem; - border: 1px solid #cbd5e1; - border-radius: .5rem; - background-color: #ffffff; + color: #8795a8; +} + +.signup-form select{ + -webkit-appearance: none; /* Chrome/Safari/Edge */ + -moz-appearance: none; /* Firefox */ + appearance: none; /* Standard */ + /* Add custom styling here */ + background: white; + height: 2rem; + color: #8795a8; + font-size: 1rem; + padding: .5rem; + border: .5px solid #000; +} + +.signup-form select:focus { + outline: none; + border-color: #3bf6ed; + box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.15); +} + +.signup-form select option { + background: transparent; + color: inherit; +} + +/* When the select has no valid value (the placeholder/disabled option), show muted text */ +.signup-form select:invalid { + color: #6b7280; /* gray-500 */ } .signup-form #signup-btn { diff --git a/src/main/resources/static/css/templates.css b/src/main/resources/static/css/templates.css index 0306a61..1c6fc2a 100644 --- a/src/main/resources/static/css/templates.css +++ b/src/main/resources/static/css/templates.css @@ -11,144 +11,111 @@ body { /* NAVBAR STYLING */ .nav { - align-items: center; - display: grid; - grid-template-columns: 1fr auto 1fr; - padding: 1rem 1rem; - width: 100%; - left: 0; - margin: 0; - - /* 1. Make it sticky at the top */ position: fixed; - top: 0; - z-index: 1000; - - /* 2. The Frosted Glass Effect */ - background: rgba(250, 251, 252, 0.75); /* Semi-transparent white */ - backdrop-filter: blur(12px); /* Blurs whatever is behind the nav */ - -webkit-backdrop-filter: blur(12px); /* Safari support */ - - /* 3. A subtle border to define the edge */ - border-bottom: 1px solid rgba(224, 224, 224, 0.5); - box-shadow: 0 4px 30px rgba(0, 0, 0, 0.05); -} - -.nav a { - text-decoration: none; - color: #1a1a2e; - font-size: 0.92rem; - transition: color 0.3s ease; -} - -.nav a:hover:not(#link-garden, #sign-up-btn) { - color: #3b82f6; -} - -.nav #link-garden { - font-weight: bold; - font-size: 1.2rem; - color: #1a1a2e; -} - -.nav-left, .nav-center, .nav-right { + top: env(safe-area-inset-top, 0); + left: 50%; + transform: translateX(-50%); + max-width: 80rem; + width: 80rem; + backdrop-filter: blur(12px) saturate(180%) contrast(200%); + background: rgba(0, 122, 255, 0.404); + border: 1px solid var(--glass-border); + box-shadow: 0 10px 30px rgba(0, 0, 0, 0.06); + padding: 8px; + border-radius: 99rem; display: flex; + justify-content: center; + gap: 6rem; + z-index: 50; align-items: center; } -.nav-left a { - display: inline-flex; - align-items: center; - gap: 0.5rem; -} - -.nav-left svg { - width: 30px; - height: 30px; - display: block; - transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275); -} - -.nav-left a:hover svg { - transform: rotate(-10deg) scale(1.1); - color: #3b82f6 !important; +.nav::after { + content: ""; + position: absolute; + inset: 0; + border-radius: inherit; + box-shadow:inset 2px 2px 5px -2px rgba(255, 255, 255, 0.4),inset -2px -2px 5px 2px rgba(255, 255, 255, 0.4),inset 0 -2px 0 rgba(255, 255, 255, 0.2); + pointer-events: none; + z-index: -1; } -.nav-center { - justify-content: center; - justify-self: center; - gap: 1rem; +.nav a ,.nav form, .nav form button{ + display: flex; + flex-direction: column; align-items: center; -} - -.nav-center a, .nav-center button { - font-size: 1.2rem; - position: relative; + flex: 1 1 0; + min-width: 0; + color: #1a1a2e; text-decoration: none; + padding: 10px 6px; + border-radius: 999rem; + max-width: 15rem; + -webkit-tap-highlight-color: transparent; + transition: + background 0.18s var(--ease-spring), + color 0.18s var(--ease-spring), + transform 0.18s var(--ease-spring), + box-shadow 0.3s ease-in-out; } -.nav-center a::after { - content: ''; - position: absolute; - width: 0; - height: 2px; - bottom: -4px; - left: 0; - background: linear-gradient(90deg, #3b82f6, #0ea5e9); - transition: width 0.3s cubic-bezier(0.165, 0.84, 0.44, 1); +.nav a:hover:not(#logout:hover, #sign-up-btn), .nav form:hover { + transition: + background 0.18s var(--ease-spring), + color 0.18s var(--ease-spring), + transform 0.18s var(--ease-spring), + box-shadow 0.3s ease-in-out; + background-color: rgba(255, 255, 255, 30%); + box-shadow: + inset 2px 2px 5px -2px rgba(255, 255, 255, 0.4), + inset -2px -1px 5px 0 rgba(255, 255, 255, 0.4), + inset 0 -2px 0 rgba(255, 255, 255, 0.2); + transform: rotate(2.2); + color: rgba(0, 122, 255, 70%); } -.nav-center a:hover::after { - width: 100%; +.nav form button:hover { + color: rgba(0, 122, 255, 70%); } -.nav button:hover { - color: #3b82f6; +.nav #logout:hover { + color: red; + text-decoration: underline; } -.nav-left { - justify-self: start; - margin-left: 10rem; +.nav svg { + width: 1.4rem; + font-size: 1.4rem; } -.nav-right { - justify-self: end; - gap: 0.75rem; - margin-right: 10rem; +.nav span, .nav form button { + font-size: 0.8rem; + font-weight: 600; + margin-top: 4px; } -.nav-right a { - display: inline-flex; - align-items: center; - line-height: 1; - font-size: 1.2rem; - position: relative; - text-decoration: none; +.nav form button { + background: transparent; + border: none; + color: #1a1a2e; + cursor: pointer; + padding: 0; + font-family: inherit; } -.nav-right a:not(#sign-up-btn)::after { - content: ''; - position: absolute; - width: 0; - height: 2px; - bottom: -4px; - left: 0; - background: linear-gradient(90deg, #3b82f6, #0ea5e9); - transition: width 0.3s cubic-bezier(0.165, 0.84, 0.44, 1); +.nav form button:hover { + background: transparent; + border: none; } -.nav-right a:not(#sign-up-btn):hover::after { - width: 100%; +/* ACTIVE TAB CSS */ +.nav .active { + background: rgba(237, 237, 237, 0.6); + color: rgba(0, 122, 255, 0.9); } -.nav-center button, .nav-right button { - border: none; - background: none; - padding: 0; -} -.nav-center button:hover, .nav-right button:hover { - color: #3b82f6; - cursor: pointer; +.nav a:active { + transform: scale(0.98); } #sign-up-btn { @@ -160,30 +127,42 @@ body { cursor: pointer; transition: all 0.3s ease; box-shadow: 0 2px 8px rgba(59, 130, 246, 0.2); + text-align: center; + display: flex; + align-items: center; + justify-content: center; position: relative; overflow: hidden; + max-width: 6rem; + max-height: 2rem; } #sign-up-btn::after { content: ''; position: absolute; top: 0; - left: -100%; + left: -100%; /* Start completely off the left edge */ width: 50%; height: 100%; background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.3) 50%, rgba(255,255,255,0) 100%); transform: skewX(-25deg); - animation: shimmer-beam 5s infinite; -} - -@keyframes shimmer-beam { - 0%, 70% { left: -100%; } - 100% { left: 200%; } + animation: shimmer-beam 5s infinite; /* Runs endlessly */ } #sign-up-btn:hover { box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3); transform: translateY(-1px); + text-decoration: underline; +} + +@keyframes shimmer-beam { + 0%, 70% { left: -100%; } /* Wait off-screen for a few seconds */ + 100% { left: 200%; } /* Zoom across the button! */ +} + +#sign-up-btn span { + text-align: center; + font-size: 22px; } diff --git a/src/main/resources/templates/auth/login.html b/src/main/resources/templates/auth/login.html index de5b248..6c047bf 100644 --- a/src/main/resources/templates/auth/login.html +++ b/src/main/resources/templates/auth/login.html @@ -7,23 +7,51 @@ -
diff --git a/src/main/resources/templates/auth/register.html b/src/main/resources/templates/auth/register.html index 6d5ebb6..2b9cdd4 100644 --- a/src/main/resources/templates/auth/register.html +++ b/src/main/resources/templates/auth/register.html @@ -7,23 +7,29 @@ -