Files
Velocity-OS/webos/src/shared/layout/LoginPage.module.css

133 lines
2.7 KiB
CSS

/* LoginPage styles */
.root {
min-height: 100vh;
display: flex;
align-items: center;
justify-content: center;
background: var(--color-base-bg);
position: relative;
overflow: hidden;
}
/* Ambient gradient blob */
.bg {
position: absolute;
inset: 0;
background:
radial-gradient(ellipse 60% 50% at 30% 40%, var(--color-violet-glow) 0%, transparent 70%),
radial-gradient(ellipse 40% 40% at 70% 70%, var(--color-amber-glow) 0%, transparent 70%);
pointer-events: none;
}
.card {
width: 100%;
max-width: 420px;
padding: var(--space-10) var(--space-8);
position: relative;
z-index: 1;
}
.logo {
display: flex;
align-items: center;
gap: var(--space-3);
margin-bottom: var(--space-8);
}
.logoMark {
width: 36px;
height: 36px;
border-radius: var(--radius-md);
background: var(--color-violet);
display: flex;
align-items: center;
justify-content: center;
color: white;
font-weight: var(--font-bold);
font-size: var(--text-base);
box-shadow: var(--glass-shadow-violet);
}
.logoLabel {
font-size: var(--text-lg);
font-weight: var(--font-semibold);
color: var(--color-text-primary);
letter-spacing: var(--tracking-tight);
}
.title {
font-size: var(--text-3xl);
font-weight: var(--font-bold);
color: var(--color-text-primary);
letter-spacing: var(--tracking-tight);
margin: 0 0 var(--space-2);
}
.subtitle {
font-size: var(--text-sm);
color: var(--color-text-secondary);
margin: 0 0 var(--space-8);
}
.form {
display: flex;
flex-direction: column;
gap: var(--space-5);
}
.field {
display: flex;
flex-direction: column;
gap: var(--space-2);
}
.label {
font-size: var(--text-xs);
font-weight: var(--font-semibold);
letter-spacing: var(--tracking-wider);
text-transform: uppercase;
color: var(--color-text-secondary);
}
.input {
background: var(--glass-bg);
border: var(--glass-border);
border-radius: var(--radius-lg);
padding: var(--space-3) var(--space-4);
font-family: var(--font-sans);
font-size: var(--text-base);
color: var(--color-text-primary);
outline: none;
transition: border-color var(--duration-fast) var(--ease-standard),
box-shadow var(--duration-fast) var(--ease-standard);
width: 100%;
box-sizing: border-box;
}
.input:focus {
border-color: rgba(124, 58, 237, 0.50);
box-shadow: 0 0 0 3px var(--color-violet-glow);
}
.input::placeholder { color: var(--color-text-tertiary); }
.error {
font-size: var(--text-sm);
color: var(--color-red);
margin: 0;
}
.submit {
width: 100%;
justify-content: center;
padding: var(--space-4);
font-size: var(--text-base);
margin-top: var(--space-2);
}
.submit:disabled {
opacity: 0.5;
cursor: not-allowed;
transform: none !important;
}