DocWeave / frontend /src /components /auth /AuthLayout.css
shak3008's picture
feat: add quick demo login, fix archived knowledge filter and workflow completion state
31cf797
Raw
History Blame Contribute Delete
6.59 kB
.dw-auth {
min-height: 100vh;
display: grid;
grid-template-columns: minmax(0, 460px) 1fr;
background: var(--color-bg);
}
.dw-auth__panel {
display: flex;
flex-direction: column;
justify-content: center;
padding: var(--space-10) var(--space-10);
}
.dw-auth__brand {
display: flex;
align-items: center;
gap: var(--space-2);
margin-bottom: var(--space-10);
}
.dw-auth__mark {
width: 20px;
height: 20px;
border-radius: var(--radius-sm);
background: linear-gradient(135deg, var(--color-accent), var(--color-accent-strong));
}
.dw-auth__logo {
width: 48px;
height: 48px;
object-fit: contain;
border-radius: var(--radius-md);
}
.dw-auth__wordmark {
font-size: var(--text-xl);
font-weight: 700;
letter-spacing: -0.02em;
}
.dw-auth__card {
animation: fade-in var(--transition-base);
}
.dw-auth__eyebrow {
display: inline-block;
font-size: var(--text-xs);
font-weight: 600;
letter-spacing: 0.06em;
text-transform: uppercase;
color: var(--color-accent-text);
margin-bottom: var(--space-3);
}
.dw-auth__title {
font-size: var(--text-3xl);
margin-bottom: var(--space-2);
}
.dw-auth__subtitle {
color: var(--color-text-secondary);
font-size: var(--text-sm);
margin-bottom: var(--space-8);
}
.dw-auth__body {
display: flex;
flex-direction: column;
gap: var(--space-4);
max-width: 360px;
}
.dw-auth__footer {
margin-top: var(--space-8);
font-size: var(--text-sm);
color: var(--color-text-secondary);
}
.dw-auth__aside {
position: relative;
background: linear-gradient(145deg, #0d1117 0%, #111a2e 50%, #0a1628 100%);
border-left: 1px solid var(--color-border);
overflow: hidden;
display: flex;
align-items: center;
justify-content: center;
padding: var(--space-10);
}
.dw-auth__aside-grid {
position: absolute;
inset: 0;
background-image:
linear-gradient(rgba(76, 141, 255, 0.15) 1px, transparent 1px),
linear-gradient(90deg, rgba(76, 141, 255, 0.15) 1px, transparent 1px);
background-size: 48px 48px;
mask-image: radial-gradient(ellipse at 50% 40%, black 20%, transparent 70%);
}
.dw-auth__aside::before {
content: "";
position: absolute;
inset: 0;
background:
radial-gradient(circle at 25% 25%, rgba(76, 141, 255, 0.25) 0%, transparent 40%),
radial-gradient(circle at 75% 65%, rgba(110, 86, 255, 0.18) 0%, transparent 35%),
radial-gradient(circle at 50% 90%, rgba(63, 191, 127, 0.12) 0%, transparent 30%);
z-index: 0;
}
.dw-auth__aside::after {
content: "";
position: absolute;
top: 15%;
right: 20%;
width: 180px;
height: 180px;
background: rgba(76, 141, 255, 0.15);
border-radius: 50%;
filter: blur(60px);
z-index: 0;
}
.dw-auth__aside-copy {
position: relative;
z-index: 1;
display: flex;
flex-direction: column;
align-items: flex-start;
gap: var(--space-3);
margin: auto;
}
.dw-auth__tagline-line {
font-family: var(--font-sans);
font-size: 2rem;
font-weight: 700;
color: var(--color-text-primary);
letter-spacing: -0.02em;
line-height: 1.2;
opacity: 0.85;
}
.dw-auth__tagline-line--accent {
color: var(--color-accent-strong);
opacity: 1;
}
@media (max-width: 900px) {
.dw-auth {
grid-template-columns: 1fr;
}
.dw-auth__aside {
display: none;
}
}
/* Auth form shared styles */
.dw-auth-form {
display: flex;
flex-direction: column;
gap: 16px;
}
.dw-auth-form__password-field {
display: flex;
flex-direction: column;
gap: 6px;
}
.dw-auth-form__show-password {
display: flex;
align-items: center;
gap: 6px;
font-size: var(--text-xs);
color: var(--color-text-secondary);
cursor: pointer;
user-select: none;
}
.dw-auth-form__show-password input[type="checkbox"] {
width: 14px;
height: 14px;
}
.dw-auth-form__strength {
display: flex;
align-items: center;
gap: var(--space-2);
}
.dw-auth-form__strength-bar {
flex: 1;
height: 4px;
border-radius: 2px;
background: var(--color-border);
overflow: hidden;
}
.dw-auth-form__strength-fill {
height: 100%;
border-radius: 2px;
transition: width 0.2s, background 0.2s;
}
.dw-auth-form__options {
display: flex;
align-items: center;
justify-content: space-between;
}
.dw-auth-form__remember {
display: flex;
align-items: center;
gap: 8px;
font-size: var(--text-sm);
color: var(--color-text-secondary);
cursor: pointer;
}
.dw-auth-form__link {
font-size: var(--text-sm);
color: var(--color-accent-text);
text-decoration: none;
}
.dw-auth-form__link:hover {
text-decoration: underline;
}
.dw-auth-form__error {
font-size: var(--text-sm);
color: var(--color-danger);
padding: var(--space-2) var(--space-3);
background: var(--color-danger-soft);
border-radius: var(--radius-sm);
}
.dw-auth-form__resend {
background: none;
border: none;
color: var(--color-accent-text);
font-size: var(--text-sm);
cursor: pointer;
text-align: center;
padding: var(--space-1) 0;
}
.dw-auth-form__resend:hover {
text-decoration: underline;
}
.dw-auth-form__footer-text {
font-size: var(--text-sm);
color: var(--color-text-secondary);
text-align: center;
margin: 2px 0 6px;
}
.dw-auth-form__footer-text a {
color: var(--color-accent-text);
font-weight: 500;
text-decoration: none;
}
.dw-auth-form__footer-text a:hover {
text-decoration: underline;
}
.dw-auth-divider {
display: flex;
align-items: center;
text-align: center;
margin: 4px 0;
}
.dw-auth-divider::before,
.dw-auth-divider::after {
content: "";
flex: 1;
border-bottom: 1px solid var(--color-border);
}
.dw-auth-divider span {
padding: 0 10px;
font-size: 11px;
color: var(--color-text-secondary);
text-transform: uppercase;
letter-spacing: 0.06em;
font-weight: 600;
}
.dw-auth-demo-btn {
width: 100%;
display: flex;
align-items: center;
justify-content: center;
gap: 8px;
background: rgba(76, 141, 255, 0.08) !important;
border: 1px solid rgba(76, 141, 255, 0.3) !important;
color: var(--color-accent-text, #4c8dff) !important;
font-weight: 600 !important;
padding: 10px 16px !important;
border-radius: var(--radius-md) !important;
cursor: pointer;
transition: all 0.2s ease !important;
}
.dw-auth-demo-btn:hover {
background: rgba(76, 141, 255, 0.18) !important;
border-color: rgba(76, 141, 255, 0.6) !important;
color: #fff !important;
box-shadow: 0 0 16px rgba(76, 141, 255, 0.2);
transform: translateY(-1px);
}