coderuday21 commited on
Commit
cef921f
·
1 Parent(s): 11dcbe4

Polish forgot password and password toggle UI to match design system

Browse files
Files changed (2) hide show
  1. static/css/style.css +72 -20
  2. templates/index.html +28 -10
static/css/style.css CHANGED
@@ -110,12 +110,48 @@ body::before {
110
  font-size: 0.9rem;
111
  margin-bottom: 1.75rem;
112
  }
113
- .auth-container .form-group:last-of-type { margin-bottom: 1.75rem; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
114
  .toggle-auth {
115
  text-align: center;
116
- margin-top: 1.5rem;
117
  color: var(--text-muted);
118
- font-size: 0.9rem;
119
  }
120
  .toggle-auth a {
121
  color: var(--accent);
@@ -124,47 +160,63 @@ body::before {
124
  }
125
  .toggle-auth a:hover { text-decoration: underline; }
126
 
127
- .forgot-link {
128
- text-align: right;
129
- margin-top: -0.5rem;
130
- margin-bottom: 0.25rem;
 
 
 
 
 
 
 
 
131
  }
132
- .forgot-link a {
 
 
 
133
  color: var(--text-dim);
134
  font-size: 0.82rem;
135
  text-decoration: none;
 
136
  transition: color var(--transition);
137
  }
138
- .forgot-link a:hover { color: var(--accent); }
139
 
140
  /* ---- Password input with eye toggle ---- */
141
  .input-password-wrap {
142
  position: relative;
143
- display: flex;
144
- align-items: center;
145
  }
146
  .input-password-wrap input {
147
- padding-right: 2.8rem;
 
148
  }
149
  .password-toggle {
150
  position: absolute;
151
- right: 0.6rem;
152
- top: 50%;
153
- transform: translateY(-50%);
154
- background: none;
 
155
  border: none;
 
 
156
  cursor: pointer;
157
  color: var(--text-dim);
158
- padding: 0.25rem;
159
  display: flex;
160
  align-items: center;
161
  justify-content: center;
162
- border-radius: var(--radius-xs);
163
- transition: color var(--transition), background var(--transition);
164
  }
165
  .password-toggle:hover {
 
 
 
 
 
166
  color: var(--accent);
167
- background: rgba(45, 212, 191, 0.08);
168
  }
169
  .password-toggle svg.eye-closed { display: none; }
170
  .password-toggle.active svg.eye-open { display: none !important; }
 
110
  font-size: 0.9rem;
111
  margin-bottom: 1.75rem;
112
  }
113
+ .auth-container .form-group:last-of-type { margin-bottom: 0.5rem; }
114
+
115
+ .password-row-meta {
116
+ display: flex;
117
+ align-items: center;
118
+ justify-content: space-between;
119
+ margin-bottom: 0.4rem;
120
+ }
121
+ .password-row-meta label { margin-bottom: 0; }
122
+ .forgot-link {
123
+ margin: 0;
124
+ }
125
+ .forgot-link a {
126
+ color: var(--text-dim);
127
+ font-size: 0.78rem;
128
+ text-decoration: none;
129
+ transition: color var(--transition);
130
+ font-weight: 400;
131
+ }
132
+ .forgot-link a:hover { color: var(--accent); text-decoration: underline; }
133
+
134
+ .auth-actions { margin-top: 1.75rem; }
135
+ .auth-divider {
136
+ display: flex;
137
+ align-items: center;
138
+ gap: 0.75rem;
139
+ margin: 1.5rem 0;
140
+ color: var(--text-dim);
141
+ font-size: 0.78rem;
142
+ }
143
+ .auth-divider::before,
144
+ .auth-divider::after {
145
+ content: '';
146
+ flex: 1;
147
+ height: 1px;
148
+ background: var(--border);
149
+ }
150
  .toggle-auth {
151
  text-align: center;
152
+ margin-top: 0;
153
  color: var(--text-muted);
154
+ font-size: 0.88rem;
155
  }
156
  .toggle-auth a {
157
  color: var(--accent);
 
160
  }
161
  .toggle-auth a:hover { text-decoration: underline; }
162
 
163
+ /* Forgot password page header */
164
+ .forgot-header-icon {
165
+ width: 52px;
166
+ height: 52px;
167
+ border-radius: 50%;
168
+ background: var(--bg-elevated);
169
+ border: 1px solid var(--border);
170
+ display: flex;
171
+ align-items: center;
172
+ justify-content: center;
173
+ margin: 0 auto 1rem;
174
+ color: var(--accent);
175
  }
176
+ .back-to-login {
177
+ display: inline-flex;
178
+ align-items: center;
179
+ gap: 0.35rem;
180
  color: var(--text-dim);
181
  font-size: 0.82rem;
182
  text-decoration: none;
183
+ margin-top: 1.75rem;
184
  transition: color var(--transition);
185
  }
186
+ .back-to-login:hover { color: var(--accent); }
187
 
188
  /* ---- Password input with eye toggle ---- */
189
  .input-password-wrap {
190
  position: relative;
 
 
191
  }
192
  .input-password-wrap input {
193
+ width: 100%;
194
+ padding-right: 2.75rem;
195
  }
196
  .password-toggle {
197
  position: absolute;
198
+ right: 1px;
199
+ top: 1px;
200
+ bottom: 1px;
201
+ width: 2.5rem;
202
+ background: transparent;
203
  border: none;
204
+ border-left: 1px solid transparent;
205
+ border-radius: 0 calc(var(--radius-sm) - 1px) calc(var(--radius-sm) - 1px) 0;
206
  cursor: pointer;
207
  color: var(--text-dim);
 
208
  display: flex;
209
  align-items: center;
210
  justify-content: center;
211
+ transition: color var(--transition), background var(--transition), border-color var(--transition);
 
212
  }
213
  .password-toggle:hover {
214
+ color: var(--text);
215
+ background: var(--bg-hover);
216
+ border-left-color: var(--border);
217
+ }
218
+ .password-toggle.active {
219
  color: var(--accent);
 
220
  }
221
  .password-toggle svg.eye-closed { display: none; }
222
  .password-toggle.active svg.eye-open { display: none !important; }
templates/index.html CHANGED
@@ -27,7 +27,10 @@
27
  <input type="email" id="login-email" required placeholder="you@example.com" />
28
  </div>
29
  <div class="form-group">
30
- <label for="login-password">Password</label>
 
 
 
31
  <div class="input-password-wrap">
32
  <input type="password" id="login-password" required placeholder="Enter your password" />
33
  <button type="button" class="password-toggle" data-target="login-password" aria-label="Show password">
@@ -36,9 +39,11 @@
36
  </button>
37
  </div>
38
  </div>
39
- <button type="submit" class="btn btn-primary btn-block">Sign in</button>
 
 
40
  </form>
41
- <p class="forgot-link"><a href="#" data-view="forgot">Forgot your password?</a></p>
42
  <p class="toggle-auth">Don't have an account? <a href="#" data-view="register">Create one</a></p>
43
  </div>
44
  </div>
@@ -76,8 +81,11 @@
76
  </button>
77
  </div>
78
  </div>
79
- <button type="submit" class="btn btn-primary btn-block">Create account</button>
 
 
80
  </form>
 
81
  <p class="toggle-auth">Already have an account? <a href="#" data-view="login">Sign in</a></p>
82
  </div>
83
  </div>
@@ -93,13 +101,16 @@
93
  <span>SatDetect</span>
94
  </div>
95
  <div class="card">
96
- <h2>Reset password</h2>
97
- <p class="sub">Enter your email and choose a new password.</p>
 
 
 
98
  <div id="forgot-error" class="alert alert-error hidden"></div>
99
  <div id="forgot-success" class="alert alert-success hidden"></div>
100
  <form id="form-forgot">
101
  <div class="form-group">
102
- <label for="forgot-email">Email</label>
103
  <input type="email" id="forgot-email" required placeholder="you@example.com" />
104
  </div>
105
  <div class="form-group">
@@ -112,9 +123,16 @@
112
  </button>
113
  </div>
114
  </div>
115
- <button type="submit" class="btn btn-primary btn-block">Reset password</button>
 
 
116
  </form>
117
- <p class="toggle-auth">Remember your password? <a href="#" data-view="login">Sign in</a></p>
 
 
 
 
 
118
  </div>
119
  </div>
120
  </section>
@@ -271,6 +289,6 @@
271
  </div>
272
  </div>
273
 
274
- <script src="/static/js/app.js?v=6"></script>
275
  </body>
276
  </html>
 
27
  <input type="email" id="login-email" required placeholder="you@example.com" />
28
  </div>
29
  <div class="form-group">
30
+ <div class="password-row-meta">
31
+ <label for="login-password">Password</label>
32
+ <span class="forgot-link"><a href="#" data-view="forgot">Forgot password?</a></span>
33
+ </div>
34
  <div class="input-password-wrap">
35
  <input type="password" id="login-password" required placeholder="Enter your password" />
36
  <button type="button" class="password-toggle" data-target="login-password" aria-label="Show password">
 
39
  </button>
40
  </div>
41
  </div>
42
+ <div class="auth-actions">
43
+ <button type="submit" class="btn btn-primary btn-block">Sign in</button>
44
+ </div>
45
  </form>
46
+ <div class="auth-divider">or</div>
47
  <p class="toggle-auth">Don't have an account? <a href="#" data-view="register">Create one</a></p>
48
  </div>
49
  </div>
 
81
  </button>
82
  </div>
83
  </div>
84
+ <div class="auth-actions">
85
+ <button type="submit" class="btn btn-primary btn-block">Create account</button>
86
+ </div>
87
  </form>
88
+ <div class="auth-divider">or</div>
89
  <p class="toggle-auth">Already have an account? <a href="#" data-view="login">Sign in</a></p>
90
  </div>
91
  </div>
 
101
  <span>SatDetect</span>
102
  </div>
103
  <div class="card">
104
+ <div class="forgot-header-icon">
105
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="11" width="18" height="11" rx="2" ry="2"/><path d="M7 11V7a5 5 0 0110 0v4"/></svg>
106
+ </div>
107
+ <h2 style="text-align:center;">Reset your password</h2>
108
+ <p class="sub" style="text-align:center;">Enter the email you registered with and choose a new password.</p>
109
  <div id="forgot-error" class="alert alert-error hidden"></div>
110
  <div id="forgot-success" class="alert alert-success hidden"></div>
111
  <form id="form-forgot">
112
  <div class="form-group">
113
+ <label for="forgot-email">Email address</label>
114
  <input type="email" id="forgot-email" required placeholder="you@example.com" />
115
  </div>
116
  <div class="form-group">
 
123
  </button>
124
  </div>
125
  </div>
126
+ <div class="auth-actions">
127
+ <button type="submit" class="btn btn-primary btn-block">Reset password</button>
128
+ </div>
129
  </form>
130
+ <div style="text-align:center;">
131
+ <a href="#" class="back-to-login" data-view="login">
132
+ <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="19" y1="12" x2="5" y2="12"/><polyline points="12 19 5 12 12 5"/></svg>
133
+ Back to sign in
134
+ </a>
135
+ </div>
136
  </div>
137
  </div>
138
  </section>
 
289
  </div>
290
  </div>
291
 
292
+ <script src="/static/js/app.js?v=7"></script>
293
  </body>
294
  </html>