Py-detect / src /app /shared /eye-toggle /eye-toggle.component.css
RajalashmiNagarajan
login
ed79486
:root { --eye-size:28px; --eye-gap:10px; }
/* Base button: neutral by default; variants handle positioning */
.eye-toggle {
display: inline-flex;
align-items: center;
justify-content: center;
width: var(--eye-size);
height: var(--eye-size);
border-radius:6px;
border: none;
cursor: pointer;
color: inherit;
z-index:3; /* above input */
padding:0;
line-height:1;
}
.eye-toggle i { font-size:0.95rem; pointer-events:none; }
.eye-toggle:focus { outline:2px solid rgba(29,233,182,0.12); outline-offset:2px; }
/* Visual variants */
.eye-toggle.variant-signin { background: rgba(255,255,255,0.06); color:#23395d; }
.eye-toggle.variant-signup { background: rgba(0,0,0,0.04); color:#23395d; }
/* Reserve input right padding when a toggle is present */
.form-field.has-eye input,
.signin-field.has-eye input { padding-right: calc(var(--eye-size) + var(--eye-gap) +6px); }
/* Fallback when markup doesn't add .has-eye */
.form-field:has(.eye-toggle) input,
.signin-field:has(.eye-toggle) input { padding-right: calc(var(--eye-size) + var(--eye-gap) +6px); }
/* Small screens */
@media (max-width:700px) {
:root { --eye-size:24px; --eye-gap:8px; }
.eye-toggle { width: var(--eye-size); height: var(--eye-size); }
}
/* Separate positioning by context to avoid cross-page impact */
/* Sign-in page context: position absolutely inside field */
:host-context(.signin-popup) .eye-toggle.variant-signin {
position: absolute;
right:10px;
top:50%;
transform: translateY(-50%);
}
/* Sign-up page context (if used similarly), keep independent positioning */
:host-context(.signup-popup) .eye-toggle.variant-signup {
position: absolute;
right:10px;
top:50%;
transform: translateY(-50%);
}