QuantumAI / frontend /src /components /ChatArea.css
Abhroneel's picture
Stage 2
32ba82b
Raw
History Blame Contribute Delete
4.08 kB
.chat-area {
flex: 1;
overflow-y: auto;
overflow-x: hidden;
background:
radial-gradient(ellipse 60% 50% at 15% 20%, rgba(59,142,255,0.09) 0%, transparent 70%),
radial-gradient(ellipse 50% 60% at 85% 75%, rgba(155,109,255,0.08) 0%, transparent 65%),
radial-gradient(ellipse 45% 40% at 60% 10%, rgba(0,229,255,0.06) 0%, transparent 60%);
}
.chat-area__inner {
max-width: 760px;
margin: 0 auto;
padding: 32px 24px 16px;
display: flex;
flex-direction: column;
gap: 4px;
min-height: 100%;
}
.welcome {
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
padding: 48px 24px 40px;
animation: fadeInUp 0.55s cubic-bezier(0.4, 0, 0.2, 1);
flex: 1;
}
.welcome__icon {
position: relative;
margin-bottom: 32px;
animation: float 5s ease-in-out infinite;
}
.welcome__icon::before {
content: '';
position: absolute;
inset: -20px;
background: radial-gradient(circle, rgba(59,142,255,0.2) 0%, rgba(0,229,255,0.1) 40%, transparent 70%);
border-radius: 50%;
animation: glowPulse 3s ease-in-out infinite;
}
.welcome__icon svg {
filter: drop-shadow(0 0 12px rgba(59,142,255,0.8)) drop-shadow(0 0 28px rgba(0,229,255,0.5));
}
.welcome__title {
font-size: 44px;
font-weight: 700;
letter-spacing: -0.05em;
background: linear-gradient(135deg, #ffffff 10%, #a8d4ff 45%, #00E5FF 75%, #9B6DFF 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
margin-bottom: 12px;
line-height: 1;
animation: textGlow 5s ease-in-out infinite;
}
.welcome__tagline {
font-size: 13px;
font-weight: 500;
letter-spacing: 0.08em;
text-transform: uppercase;
color: var(--accent-cyan);
margin-bottom: 18px;
opacity: 0.85;
}
.welcome__desc {
font-size: 14.5px;
color: var(--text-secondary);
line-height: 1.75;
max-width: 460px;
margin-bottom: 40px;
}
.welcome__chips {
display: flex;
flex-wrap: wrap;
gap: 9px;
justify-content: center;
max-width: 620px;
}
.welcome__chip {
padding: 10px 18px;
background: var(--bg-glass);
border: 1px solid var(--border-default);
border-radius: 100px;
color: var(--text-secondary);
font-family: var(--font-sans);
font-size: 13px;
font-weight: 400;
cursor: pointer;
transition: all var(--transition-base);
white-space: nowrap;
position: relative;
overflow: hidden;
}
.welcome__chip::before {
content: '';
position: absolute;
inset: 0;
background: linear-gradient(135deg, rgba(59,142,255,0.1) 0%, rgba(0,229,255,0.05) 100%);
opacity: 0;
transition: opacity var(--transition-fast);
}
.welcome__chip:hover::before { opacity: 1; }
.welcome__chip:hover {
border-color: rgba(0,229,255,0.45);
color: var(--accent-cyan);
transform: translateY(-2px);
box-shadow: 0 6px 20px rgba(0,229,255,0.15), 0 0 0 1px rgba(0,229,255,0.12);
}
.typing-indicator {
display: flex;
align-items: flex-end;
gap: 12px;
padding: 10px 0;
animation: fadeIn 0.22s ease;
}
.typing-indicator__avatar {
width: 34px;
height: 34px;
background: linear-gradient(135deg, rgba(59,142,255,0.2), rgba(155,109,255,0.15));
border: 1px solid rgba(59,142,255,0.3);
border-radius: 11px;
display: flex;
align-items: center;
justify-content: center;
font-size: 9px;
font-weight: 700;
color: var(--accent-cyan);
font-family: var(--font-mono);
flex-shrink: 0;
letter-spacing: 0.04em;
box-shadow: 0 0 14px rgba(59,142,255,0.2);
}
.typing-indicator__bubble {
display: flex;
align-items: center;
gap: 7px;
padding: 13px 18px;
background: var(--bg-elevated);
border: 1px solid var(--border-default);
border-radius: 16px 16px 16px 4px;
box-shadow: 0 0 20px rgba(59,142,255,0.08);
}
.typing-indicator__dot {
width: 5px;
height: 5px;
background: var(--accent-cyan);
border-radius: 50%;
animation: bounceDot 1.3s ease-in-out infinite;
box-shadow: 0 0 6px rgba(0,229,255,0.6);
}
.typing-indicator__label {
font-size: 11.5px;
font-family: var(--font-mono);
color: var(--text-tertiary);
margin-left: 5px;
letter-spacing: 0.05em;
}