로그인 페이지 스타일 적용

This commit is contained in:
현성필
2025-11-14 11:10:12 +09:00
parent 0362db6d9a
commit 55a4db9de8
11 changed files with 413 additions and 356 deletions
+186 -156
View File
@@ -625,16 +625,17 @@ hr {
-webkit-backdrop-filter: blur(10px);
box-shadow: var(--shadow-sm);
z-index: 1000;
height: 80px;
height: 65px;
transition: all 0.3s ease;
border-bottom: 1px solid #5F666C;
}
.header-content {
display: flex;
align-items: center;
justify-content: space-between;
height: 80px;
max-width: 1280px;
height: 65px;
max-width: 1920px;
margin: 0 auto;
padding: 0 20px;
}
@@ -644,8 +645,8 @@ hr {
align-items: center;
}
.header-left .logo {
height: 45px;
width: auto;
height: 22px;
width: 114px;
}
.logo-wrapper {
@@ -658,7 +659,7 @@ hr {
display: flex;
align-items: center;
gap: 12px;
height: 45px;
height: 22px;
z-index: 10;
}
.logo a {
@@ -669,29 +670,23 @@ hr {
text-decoration: none;
}
.logo img {
height: 45px;
width: auto;
height: 22px;
width: 114px;
}
.logo-text {
font-size: 16px;
font-weight: 700;
color: var(--primary-blue);
padding: 4px 12px;
background: var(--light-bg);
border-radius: 20px;
color: var(--text-dark);
text-decoration: none;
display: inline-block;
transition: all 0.3s ease;
}
.logo-text:hover {
background: var(--primary-blue);
color: var(--white);
transform: translateY(-1px);
box-shadow: var(--shadow-md);
color: var(--primary-blue);
}
.logo-text:visited {
color: var(--primary-blue);
color: var(--text-dark);
}
.logo-link,
@@ -1207,7 +1202,7 @@ hr {
}
body {
padding-top: 80px;
padding-top: 65px;
}
@media (max-width: 768px) {
@@ -3624,6 +3619,28 @@ select.form-control {
transform: translateY(-2px);
box-shadow: 0 4px 12px rgba(75, 155, 255, 0.1);
}
.login-btn-box {
width: 75px;
height: 37px;
padding: 0;
display: inline-flex;
align-items: center;
justify-content: center;
color: #1A1A2E;
text-decoration: none;
border: 1px solid #000000;
border-radius: 5.5px;
font-weight: 400;
font-size: 14px;
background: transparent;
transition: all 0.3s ease;
}
.login-btn-box:hover {
background: #F8FAFC;
color: #1A1A2E;
transform: translateY(-1px);
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}
.user-profile-dropdown {
position: relative;
@@ -6181,213 +6198,189 @@ select.form-control {
display: flex;
align-items: center;
justify-content: center;
background: linear-gradient(135deg, var(--light-bg) 0%, var(--gray-bg) 100%);
background: #EDF9FE;
padding: 40px 20px;
position: relative;
overflow: hidden;
}
.login-page::before {
content: "";
position: absolute;
top: -50%;
right: -20%;
width: 600px;
height: 600px;
background: radial-gradient(circle, var(--accent-cyan) 0%, transparent 70%);
opacity: 0.1;
border-radius: 50%;
}
.login-page::after {
content: "";
position: absolute;
bottom: -30%;
left: -10%;
width: 400px;
height: 400px;
background: radial-gradient(circle, var(--primary-blue) 0%, transparent 70%);
opacity: 0.1;
border-radius: 50%;
border-radius: 12px;
margin-top: 60px;
margin-bottom: 60px;
}
.login-container {
width: 100%;
max-width: 480px;
max-width: 504px;
margin: 0 auto;
position: relative;
z-index: 1;
}
.login-card {
background: var(--white);
border-radius: 24px;
box-shadow: var(--shadow-xl);
padding: 48px 40px;
backdrop-filter: blur(10px);
border: 1px solid rgba(255, 255, 255, 0.8);
background: transparent;
padding: 0;
display: flex;
flex-direction: column;
align-items: center;
}
@media (max-width: 480px) {
@media (max-width: 576px) {
.login-card {
padding: 32px 24px;
border-radius: 16px;
padding: 0 20px;
}
}
.login-header {
.login-logo {
width: 90px;
height: 90px;
margin-bottom: 30px;
}
.login-logo img {
width: 100%;
height: 100%;
object-fit: contain;
}
.login-message {
font-family: "Noto Sans KR", sans-serif;
font-size: 20px;
font-weight: 400;
color: #000000;
text-align: center;
margin-bottom: 40px;
}
.login-header .login-logo {
display: inline-flex;
align-items: center;
gap: 12px;
margin-bottom: 24px;
}
.login-header .login-logo img {
height: 48px;
width: auto;
}
.login-header .login-logo .logo-text {
font-size: 20px;
font-weight: 700;
color: var(--primary-blue);
padding: 6px 16px;
background: var(--light-bg);
border-radius: 24px;
}
.login-header .login-title {
font-size: 28px;
font-weight: 700;
color: var(--text-dark);
margin-bottom: 8px;
}
.login-header .login-subtitle {
font-size: 15px;
color: var(--text-gray);
line-height: 1;
}
.login-form {
margin-bottom: 24px;
}
.login-form .form-group {
margin-bottom: 20px;
}
.login-form .form-group:last-child {
width: 100%;
margin-bottom: 0;
}
.login-form .form-label {
display: block;
font-size: 14px;
font-weight: 600;
color: var(--text-dark);
margin-bottom: 8px;
.login-form .form-group {
margin-bottom: 24px;
}
.login-form .form-group:last-of-type {
margin-bottom: 0;
}
.login-form .form-input {
width: 100%;
padding: 14px 16px;
font-size: 15px;
border: 2px solid var(--border-gray);
height: 70px;
padding: 0 32px;
font-family: "Noto Sans KR", sans-serif;
font-size: 16px;
font-weight: 400;
color: #5F666C;
background: #FFFFFF;
border: 1px solid #DDDDDD;
border-radius: 12px;
background: var(--white);
transition: all 0.3s ease;
outline: none;
transition: all 0.3s ease;
}
.login-form .form-input::placeholder {
color: var(--text-light);
color: #5F666C;
}
.login-form .form-input:focus {
border-color: var(--primary-blue);
box-shadow: 0 0 0 4px rgba(75, 155, 255, 0.1);
border-color: #0049B4;
}
.login-form .form-input.error {
border-color: var(--accent-orange);
}
.login-form .form-input.error:focus {
box-shadow: 0 0 0 4px rgba(255, 107, 107, 0.1);
border-color: #FF6B6B;
}
.login-form .form-checkbox {
display: flex;
align-items: center;
gap: 8px;
margin-top: 16px;
justify-content: flex-end;
gap: 7px;
margin-top: 24px;
margin-bottom: 22px;
margin-right: 10px;
}
.login-form .form-checkbox input[type=checkbox] {
width: 18px;
height: 18px;
accent-color: var(--primary-blue);
width: 20px;
height: 20px;
border: 1.5px solid #000000;
border-radius: 4px;
cursor: pointer;
appearance: none;
background: #FFFFFF;
position: relative;
flex-shrink: 0;
}
.login-form .form-checkbox input[type=checkbox]:checked {
background: #FFFFFF;
border-color: #2C2C2C;
}
.login-form .form-checkbox input[type=checkbox]:checked::after {
content: "";
position: absolute;
left: 50%;
top: 45%;
transform: translate(-50%, -50%) rotate(45deg);
width: 6px;
height: 12px;
border: solid #2C2C2C;
border-width: 0 2px 2px 0;
}
.login-form .form-checkbox label {
font-size: 14px;
color: var(--text-gray);
font-family: "Noto Sans KR", sans-serif;
font-size: 16px;
font-weight: 400;
color: #000000;
cursor: pointer;
user-select: none;
line-height: 24px;
white-space: nowrap;
}
.login-button {
width: 100%;
padding: 16px 24px;
font-size: 16px;
font-weight: 600;
color: var(--white);
background: var(--gradient-primary);
height: 80px;
padding: 10px;
font-family: "Noto Sans KR", sans-serif;
font-size: 20px;
font-weight: 700;
color: #FFFFFF;
background: #0049B4;
border: none;
border-radius: 12px;
cursor: pointer;
transition: all 0.3s ease;
box-shadow: var(--shadow-md);
margin-bottom: 40px;
line-height: 1;
}
.login-button:hover {
transform: translateY(-2px);
box-shadow: var(--shadow-lg);
background: rgb(0, 62.6583333333, 154.5);
}
.login-button:active {
transform: translateY(0);
background: rgb(0, 52.3166666667, 129);
}
.login-button:disabled {
opacity: 0.6;
cursor: not-allowed;
transform: none;
}
.login-links {
display: flex;
justify-content: center;
align-items: center;
gap: 16px;
margin-top: 32px;
padding-top: 32px;
border-top: 1px solid var(--border-gray);
gap: 26px;
flex-wrap: wrap;
}
@media (max-width: 480px) {
.login-links {
gap: 12px;
margin-top: 24px;
padding-top: 24px;
}
}
.login-links a {
font-size: 14px;
color: var(--text-gray);
font-family: "Noto Sans KR", sans-serif;
font-size: 16px;
font-weight: 400;
color: #000000;
text-decoration: none;
transition: color 0.3s ease;
display: flex;
align-items: center;
gap: 6px;
line-height: 1;
}
.login-links a:hover {
color: var(--primary-blue);
}
.login-links a i {
font-size: 16px;
color: #0049B4;
text-decoration: underline;
}
.login-links .link-separator {
color: var(--border-gray);
font-size: 14px;
color: #000000;
font-size: 16px;
}
.login-alert {
margin-bottom: 20px;
width: 100%;
margin-bottom: 24px;
padding: 12px 16px;
border-radius: 8px;
font-size: 14px;
@@ -6397,34 +6390,33 @@ select.form-control {
}
.login-alert.alert-error {
background: rgba(255, 107, 107, 0.1);
color: var(--accent-orange);
color: #FF6B6B;
border: 1px solid rgba(255, 107, 107, 0.2);
}
.login-alert.alert-success {
background: rgba(107, 207, 127, 0.1);
color: var(--accent-green);
color: #6BCF7F;
border: 1px solid rgba(107, 207, 127, 0.2);
}
.login-alert.alert-info {
background: rgba(75, 155, 255, 0.1);
color: var(--primary-blue);
border: 1px solid rgba(75, 155, 255, 0.2);
background: rgba(0, 73, 180, 0.1);
color: #0049B4;
border: 1px solid rgba(0, 73, 180, 0.2);
}
.login-alert i {
font-size: 18px;
}
.login-loading {
position: absolute;
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(255, 255, 255, 0.9);
background: rgba(237, 249, 254, 0.9);
display: flex;
align-items: center;
justify-content: center;
border-radius: 24px;
z-index: 10;
opacity: 0;
pointer-events: none;
@@ -6437,8 +6429,8 @@ select.form-control {
.login-loading .spinner {
width: 40px;
height: 40px;
border: 3px solid var(--border-gray);
border-top-color: var(--primary-blue);
border: 3px solid #DDDDDD;
border-top-color: #0049B4;
border-radius: 50%;
animation: spin 1s linear infinite;
}
@@ -6448,6 +6440,44 @@ select.form-control {
transform: rotate(360deg);
}
}
@media (max-width: 576px) {
.login-container {
max-width: 100%;
padding: 0 20px;
}
.login-logo {
width: 70px;
height: 70px;
margin-bottom: 24px;
}
.login-message {
font-size: 18px;
margin-bottom: 32px;
}
.login-form .form-input {
height: 60px;
padding: 0 20px;
font-size: 15px;
}
.login-form .form-checkbox input[type=checkbox] {
width: 24px;
height: 24px;
}
.login-form .form-checkbox label {
font-size: 14px;
}
.login-button {
height: 70px;
font-size: 18px;
margin-bottom: 32px;
}
.login-links {
gap: 20px;
}
.login-links a, .login-links .link-separator {
font-size: 14px;
}
}
.signup-selection-page {
min-height: calc(100vh - 140px);
display: flex;
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

@@ -37,6 +37,31 @@
transform: translateY(-2px);
box-shadow: $shadow-md;
}
// Box style for Figma design (75x37px with black border)
&-box {
width: 75px;
height: 37px;
padding: 0;
display: inline-flex;
align-items: center;
justify-content: center;
color: $text-dark;
text-decoration: none;
border: 1px solid #000000;
border-radius: 5.5px;
font-weight: $font-weight-regular;
font-size: $font-size-sm;
background: transparent;
transition: $transition-base;
&:hover {
background: $gray-bg;
color: $text-dark;
transform: translateY(-1px);
box-shadow: $shadow-sm;
}
}
}
// ===========================
@@ -60,16 +60,17 @@
-webkit-backdrop-filter: blur(10px);
box-shadow: var(--shadow-sm);
z-index: 1000;
height: 80px;
height: 65px;
transition: all 0.3s ease;
border-bottom: 1px solid #5F666C;
}
.header-content {
display: flex;
align-items: center;
justify-content: space-between;
height: 80px;
max-width: $container-max-width;
height: 65px;
max-width: 1920px;
margin: 0 auto;
padding: 0 20px;
}
@@ -84,8 +85,8 @@
align-items: center;
.logo {
height: 45px;
width: auto;
height: 22px;
width: 114px;
}
}
@@ -101,7 +102,7 @@
display: flex;
align-items: center;
gap: 12px;
height: 45px;
height: 22px;
z-index: 10;
a {
@@ -113,32 +114,26 @@
}
img {
height: 45px;
width: auto;
height: 22px;
width: 114px;
}
}
.logo-text {
font-size: 16px;
font-weight: 700;
color: var(--primary-blue);
padding: 4px 12px;
background: var(--light-bg);
border-radius: 20px;
color: var(--text-dark);
text-decoration: none;
display: inline-block;
transition: all 0.3s ease;
// When logo-text is a link
&:hover {
background: var(--primary-blue);
color: var(--white);
transform: translateY(-1px);
box-shadow: var(--shadow-md);
color: var(--primary-blue);
}
&:visited {
color: var(--primary-blue);
color: var(--text-dark);
}
}
@@ -792,7 +787,7 @@
// Body Layout Compensation
// ===========================
body {
padding-top: 80px; // Compensate for fixed header
padding-top: 65px; // Compensate for fixed header
}
// ===========================
+168 -148
View File
@@ -1,5 +1,5 @@
// -----------------------------------------------------------------------------
// Login Page Styles - Modern Design
// Login Page Styles - Figma Design Implementation
// -----------------------------------------------------------------------------
.login-page {
@@ -7,192 +7,172 @@
display: flex;
align-items: center;
justify-content: center;
background: linear-gradient(135deg, var(--light-bg) 0%, var(--gray-bg) 100%);
background: #EDF9FE; // Light blue background from Figma
padding: 40px 20px;
position: relative;
overflow: hidden;
// Decorative background elements
&::before {
content: '';
position: absolute;
top: -50%;
right: -20%;
width: 600px;
height: 600px;
background: radial-gradient(circle, var(--accent-cyan) 0%, transparent 70%);
opacity: 0.1;
border-radius: 50%;
}
&::after {
content: '';
position: absolute;
bottom: -30%;
left: -10%;
width: 400px;
height: 400px;
background: radial-gradient(circle, var(--primary-blue) 0%, transparent 70%);
opacity: 0.1;
border-radius: 50%;
}
border-radius: 12px;
margin-top: 60px;
margin-bottom: 60px;
}
.login-container {
width: 100%;
max-width: 480px;
max-width: 504px; // Match Figma width
margin: 0 auto;
position: relative;
z-index: 1;
}
.login-card {
background: var(--white);
border-radius: 24px;
box-shadow: var(--shadow-xl);
padding: 48px 40px;
backdrop-filter: blur(10px);
border: 1px solid rgba(255, 255, 255, 0.8);
background: transparent;
padding: 0;
display: flex;
flex-direction: column;
align-items: center;
@media (max-width: 480px) {
padding: 32px 24px;
border-radius: 16px;
@media (max-width: 576px) {
padding: 0 20px;
}
}
.login-header {
.login-logo {
width: 90px;
height: 90px;
margin-bottom: 30px;
img {
width: 100%;
height: 100%;
object-fit: contain;
}
}
.login-message {
font-family: 'Noto Sans KR', sans-serif;
font-size: 20px;
font-weight: 400;
color: #000000;
text-align: center;
margin-bottom: 40px;
.login-logo {
display: inline-flex;
align-items: center;
gap: 12px;
margin-bottom: 24px;
img {
height: 48px;
width: auto;
}
.logo-text {
font-size: 20px;
font-weight: 700;
color: var(--primary-blue);
padding: 6px 16px;
background: var(--light-bg);
border-radius: 24px;
}
}
.login-title {
font-size: 28px;
font-weight: 700;
color: var(--text-dark);
margin-bottom: 8px;
}
.login-subtitle {
font-size: 15px;
color: var(--text-gray);
}
line-height: 1;
}
.login-form {
margin-bottom: 24px;
width: 100%;
margin-bottom: 0;
.form-group {
margin-bottom: 20px;
margin-bottom: 24px;
&:last-child {
&:last-of-type {
margin-bottom: 0;
}
}
.form-label {
display: block;
font-size: 14px;
font-weight: 600;
color: var(--text-dark);
margin-bottom: 8px;
}
.form-input {
width: 100%;
padding: 14px 16px;
font-size: 15px;
border: 2px solid var(--border-gray);
height: 70px;
padding: 0 32px;
font-family: 'Noto Sans KR', sans-serif;
font-size: 16px;
font-weight: 400;
color: #5F666C;
background: #FFFFFF;
border: 1px solid #DDDDDD;
border-radius: 12px;
background: var(--white);
transition: all 0.3s ease;
outline: none;
transition: all 0.3s ease;
&::placeholder {
color: var(--text-light);
color: #5F666C;
}
&:focus {
border-color: var(--primary-blue);
box-shadow: 0 0 0 4px rgba(75, 155, 255, 0.1);
border-color: #0049B4;
}
&.error {
border-color: var(--accent-orange);
&:focus {
box-shadow: 0 0 0 4px rgba(255, 107, 107, 0.1);
}
border-color: #FF6B6B;
}
}
.form-checkbox {
display: flex;
align-items: center;
gap: 8px;
margin-top: 16px;
justify-content: flex-end;
gap: 7px;
margin-top: 24px;
margin-bottom: 22px;
margin-right: 10px;
input[type="checkbox"] {
width: 18px;
height: 18px;
accent-color: var(--primary-blue);
width: 20px;
height: 20px;
border: 1.5px solid #000000;
border-radius: 4px;
cursor: pointer;
appearance: none;
background: #FFFFFF;
position: relative;
flex-shrink: 0;
&:checked {
background: #FFFFFF;
border-color: #2C2C2C;
&::after {
content: '';
position: absolute;
left: 50%;
top: 45%;
transform: translate(-50%, -50%) rotate(45deg);
width: 6px;
height: 12px;
border: solid #2C2C2C;
border-width: 0 2px 2px 0;
}
}
}
label {
font-size: 14px;
color: var(--text-gray);
font-family: 'Noto Sans KR', sans-serif;
font-size: 16px;
font-weight: 400;
color: #000000;
cursor: pointer;
user-select: none;
line-height: 24px;
white-space: nowrap;
}
}
}
.login-button {
width: 100%;
padding: 16px 24px;
font-size: 16px;
font-weight: 600;
color: var(--white);
background: var(--gradient-primary);
height: 80px;
padding: 10px;
font-family: 'Noto Sans KR', sans-serif;
font-size: 20px;
font-weight: 700;
color: #FFFFFF;
background: #0049B4;
border: none;
border-radius: 12px;
cursor: pointer;
transition: all 0.3s ease;
box-shadow: var(--shadow-md);
margin-bottom: 40px;
line-height: 1;
&:hover {
transform: translateY(-2px);
box-shadow: var(--shadow-lg);
background: darken(#0049B4, 5%);
}
&:active {
transform: translateY(0);
background: darken(#0049B4, 10%);
}
&:disabled {
opacity: 0.6;
cursor: not-allowed;
transform: none;
}
}
@@ -200,45 +180,34 @@
display: flex;
justify-content: center;
align-items: center;
gap: 16px;
margin-top: 32px;
padding-top: 32px;
border-top: 1px solid var(--border-gray);
gap: 26px;
flex-wrap: wrap;
@media (max-width: 480px) {
gap: 12px;
margin-top: 24px;
padding-top: 24px;
}
a {
font-size: 14px;
color: var(--text-gray);
font-family: 'Noto Sans KR', sans-serif;
font-size: 16px;
font-weight: 400;
color: #000000;
text-decoration: none;
transition: color 0.3s ease;
display: flex;
align-items: center;
gap: 6px;
line-height: 1;
&:hover {
color: var(--primary-blue);
}
i {
font-size: 16px;
color: #0049B4;
text-decoration: underline;
}
}
.link-separator {
color: var(--border-gray);
font-size: 14px;
color: #000000;
font-size: 16px;
}
}
// Alert messages
.login-alert {
margin-bottom: 20px;
width: 100%;
margin-bottom: 24px;
padding: 12px 16px;
border-radius: 8px;
font-size: 14px;
@@ -248,20 +217,20 @@
&.alert-error {
background: rgba(255, 107, 107, 0.1);
color: var(--accent-orange);
color: #FF6B6B;
border: 1px solid rgba(255, 107, 107, 0.2);
}
&.alert-success {
background: rgba(107, 207, 127, 0.1);
color: var(--accent-green);
color: #6BCF7F;
border: 1px solid rgba(107, 207, 127, 0.2);
}
&.alert-info {
background: rgba(75, 155, 255, 0.1);
color: var(--primary-blue);
border: 1px solid rgba(75, 155, 255, 0.2);
background: rgba(0, 73, 180, 0.1);
color: #0049B4;
border: 1px solid rgba(0, 73, 180, 0.2);
}
i {
@@ -271,16 +240,15 @@
// Loading state
.login-loading {
position: absolute;
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(255, 255, 255, 0.9);
background: rgba(237, 249, 254, 0.9);
display: flex;
align-items: center;
justify-content: center;
border-radius: 24px;
z-index: 10;
opacity: 0;
pointer-events: none;
@@ -294,8 +262,8 @@
.spinner {
width: 40px;
height: 40px;
border: 3px solid var(--border-gray);
border-top-color: var(--primary-blue);
border: 3px solid #DDDDDD;
border-top-color: #0049B4;
border-radius: 50%;
animation: spin 1s linear infinite;
}
@@ -305,4 +273,56 @@
to {
transform: rotate(360deg);
}
}
}
// Responsive adjustments
@media (max-width: 576px) {
.login-container {
max-width: 100%;
padding: 0 20px;
}
.login-logo {
width: 70px;
height: 70px;
margin-bottom: 24px;
}
.login-message {
font-size: 18px;
margin-bottom: 32px;
}
.login-form {
.form-input {
height: 60px;
padding: 0 20px;
font-size: 15px;
}
.form-checkbox {
input[type="checkbox"] {
width: 24px;
height: 24px;
}
label {
font-size: 14px;
}
}
}
.login-button {
height: 70px;
font-size: 18px;
margin-bottom: 32px;
}
.login-links {
gap: 20px;
a, .link-separator {
font-size: 14px;
}
}
}
@@ -6,12 +6,14 @@
<div class="login-page">
<div class="login-container">
<div class="login-card">
<!-- Login Header with Logo -->
<div class="login-header">
<h1 class="login-title">로그인</h1>
<p class="login-subtitle">광주은행 개발자 포털에 오신 것을 환영합니다</p>
<!-- Logo -->
<div class="login-logo">
<img th:src="@{/img/logo/logo_box.png}" alt="광주은행">
</div>
<!-- Header Message -->
<p class="login-message">로그인 하시면 더 많은 서비스를 이용하실 수 있습니다.</p>
<!-- Alert Messages -->
<div th:if="${param.logout}" class="login-alert alert-info">
<i class="fas fa-info-circle"></i>
@@ -24,33 +26,31 @@
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<input type="hidden" id="loginId" th:value="${loginId}">
<!-- Email Field -->
<!-- ID Field -->
<div class="form-group">
<label for="id" class="form-label">이메일</label>
<input type="text"
id="id"
name="id"
th:value="${loginId}"
class="form-input"
placeholder="이메일 아이디를 입력해 주세요"
placeholder="아이디"
required>
</div>
<!-- Password Field -->
<div class="form-group">
<label for="password" class="form-label">비밀번호</label>
<input type="password"
id="password"
name="password"
class="form-input"
placeholder="비밀번호를 입력해 주세요"
placeholder="비밀번호"
required>
</div>
<!-- Remember Me Checkbox -->
<div class="form-checkbox">
<input id="checkId" name="checkId" type="checkbox">
<label for="checkId">아이디 저장</label>
<label for="checkId">아이디저장</label>
</div>
</form>
@@ -61,20 +61,11 @@
<!-- Additional Links -->
<div class="login-links">
<a th:href="@{/account_recovery(tab='findId')}">
<i class="fas fa-search"></i>
<span>아이디 찾기</span>
</a>
<a th:href="@{/account_recovery(tab='findId')}">아이디 찾기</a>
<span class="link-separator">|</span>
<a th:href="@{/account_recovery(tab='resetPassword')}">
<i class="fas fa-lock"></i>
<span>비밀번호 초기화</span>
</a>
<a th:href="@{/account_recovery(tab='resetPassword')}">비밀번호 초기화</a>
<span class="link-separator">|</span>
<a th:href="@{/signup}">
<i class="fas fa-user-plus"></i>
<span>회원가입</span>
</a>
<a th:href="@{/signup}">회원가입</a>
</div>
<!-- Loading State -->
@@ -13,9 +13,9 @@
<div class="header-left">
<div class="logo-wrapper">
<a th:href="@{/}" class="logo-link">
<img src="/img/logo/logo.png" alt="광주은행" class="logo">
<img src="/img/logo/logo.png" alt="광주은행" class="logo" width="114" height="22">
</a>
<a th:href="@{/}" class="logo-text">개발자 포털</a>
<a th:href="@{/}" class="logo-text">API Portal</a>
</div>
</div>
@@ -31,7 +31,7 @@
<li><a th:href="@{/inquiry}">Q&amp;A</a></li>
</ul>
</li>
<!-- <li sec:authorize="isAuthenticated()"><a href="#community" class="nav-link">MY</a></li>-->
<li sec:authorize="isAuthenticated()"><a href="#community" class="nav-link">커뮤니티</a></li>
</ul>
</nav>
@@ -39,11 +39,7 @@
<!-- Login State (Anonymous) -->
<div class="auth-group" sec:authorize="isAnonymous()">
<a th:href="@{/login}" class="login-btn">로그인</a>
<a th:href="@{/signup}" class="signup-btn">
<span>회원 가입</span>
<i class="fas fa-arrow-right"></i>
</a>
<a th:href="@{/login}" class="login-btn login-btn-box">로그인</a>
</div>
<!-- Logout State (Authenticated) -->
@@ -145,7 +141,7 @@
<!-- Authenticated Menu Items -->
<li sec:authorize="isAuthenticated()">
<a href="#community" class="drawer-link">MY</a>
<a href="#community" class="drawer-link">커뮤니티</a>
</li>
<li sec:authorize="hasRole('ROLE_USER_MANAGER')">
<a th:href="@{/users}" class="drawer-link">