diff --git a/.Jules/palette.md b/.Jules/palette.md index 7cb7097..0e467d8 100644 --- a/.Jules/palette.md +++ b/.Jules/palette.md @@ -43,6 +43,11 @@ ## 2025-06-17 - [Dynamic Theme Feedback and Functional Branding] **Learning:** Converting static branding elements into functional navigation links (e.g., logo to dashboard) fulfills standard user expectations. Furthermore, synchronizing the theme toggle's icon and ARIA labels with the active theme via React state, combined with subtle CSS transitions (scale and rotation), creates a more accessible and "delightful" interaction that feels responsive to the user's current environment. **Action:** Always ensure branding logos are functional links and use dynamic state for theme-related UI elements to provide clear, accessible feedback. + +## 2025-06-18 - [Standardized Auth Visual Context and Accessibility] +**Learning:** Adding prefix icons to authentication inputs provides immediate visual context, improving scanability. Implementing a consistent password visibility toggle across all auth forms (Login/Signup) ensures a predictable user experience. Crucially, explicitly associating labels with inputs via `id` and `htmlFor` significantly improves accessibility for screen readers and touch target size. +**Action:** Always include relevant prefix icons in high-visibility forms and ensure strict label-input association for accessibility. + ## 2025-02-03 - [Unified Loading Feedback in Buttons and Components] **Learning:** Moving loading logic (spinners, text, disabled state) into base components like `CustomButton` reduces boilerplate and ensures consistent UX across the app. In Spanish interfaces, using semantic icons like `check_circle` within a `valign-wrapper` in toasts provides clear, professional feedback for critical actions like saving. **Action:** Abstract loading states into reusable UI components and always include visual markers (icons) for status updates. diff --git a/src/v2/pages/V2ForgotPassword.jsx b/src/v2/pages/V2ForgotPassword.jsx index 2f6b6fa..1857d58 100644 --- a/src/v2/pages/V2ForgotPassword.jsx +++ b/src/v2/pages/V2ForgotPassword.jsx @@ -1,6 +1,7 @@ import { useState } from 'react'; import { useHistory, Link } from 'react-router-dom'; import { alertSuccess, alertError } from '../../services/AlertService'; +import CustomPreloader from '../../components/custom/CustomPreloader'; import '../styles/v2-theme.css'; const V2ForgotPassword = () => { @@ -48,19 +49,34 @@ const V2ForgotPassword = () => { {!submitted ? (
) : ( diff --git a/src/v2/pages/V2Login.jsx b/src/v2/pages/V2Login.jsx index 026235f..1b4a08c 100644 --- a/src/v2/pages/V2Login.jsx +++ b/src/v2/pages/V2Login.jsx @@ -3,6 +3,7 @@ import { useHistory, Link } from 'react-router-dom'; import UserService from '../../services/UserService'; import Auth from '../../modules/Auth'; import { alertError } from '../../services/AlertService'; +import CustomPreloader from '../../components/custom/CustomPreloader'; import '../styles/v2-theme.css'; const V2Login = () => { @@ -55,6 +56,10 @@ const V2Login = () => { diff --git a/src/v2/pages/V2Signup.jsx b/src/v2/pages/V2Signup.jsx index 5305544..4856f6d 100644 --- a/src/v2/pages/V2Signup.jsx +++ b/src/v2/pages/V2Signup.jsx @@ -3,6 +3,7 @@ import { useHistory, Link } from 'react-router-dom'; import UserService from '../../services/UserService'; import Auth from '../../modules/Auth'; import { alertError } from '../../services/AlertService'; +import CustomPreloader from '../../components/custom/CustomPreloader'; import '../styles/v2-theme.css'; const V2Signup = () => { @@ -12,6 +13,7 @@ const V2Signup = () => { username: '', password: '' }); + const [showPassword, setShowPassword] = useState(false); const [loading, setLoading] = useState(false); const history = useHistory(); @@ -61,56 +63,111 @@ const V2Signup = () => {