QuantumAI / frontend /src /components /InputBar.css
Abhroneel's picture
Stage 2
32ba82b
Raw
History Blame Contribute Delete
5.13 kB
.input-bar {
flex-shrink: 0;
padding: 10px 20px 22px;
background: linear-gradient(to top, rgba(3,4,12,0.99) 60%, transparent);
position: relative;
z-index: 10;
}
.input-bar__inner {
max-width: 760px;
margin: 0 auto;
background: linear-gradient(135deg, rgba(12,15,28,0.98) 0%, rgba(8,10,20,0.98) 100%);
border: 1px solid var(--border-default);
border-radius: var(--radius-xl);
overflow: hidden;
box-shadow: var(--shadow-lg), 0 0 0 1px rgba(59,142,255,0.04) inset;
transition: border-color var(--transition-base), box-shadow var(--transition-base);
position: relative;
}
.input-bar__inner::before {
content: '';
position: absolute;
top: 0; left: 8%; right: 8%;
height: 1px;
background: linear-gradient(90deg, transparent, rgba(59,142,255,0.5), rgba(0,229,255,0.7), rgba(155,109,255,0.5), transparent);
opacity: 0;
transition: opacity var(--transition-base);
}
.input-bar__inner:focus-within::before { opacity: 1; }
.input-bar__inner:focus-within {
border-color: rgba(59,142,255,0.45);
box-shadow: var(--shadow-lg),
0 0 0 3px rgba(59,142,255,0.07),
0 0 32px rgba(59,142,255,0.12);
}
.input-bar__toolbar {
display: flex;
align-items: center;
justify-content: space-between;
padding: 11px 14px 0;
}
.input-bar__toolbar-left {
display: flex;
align-items: center;
gap: 10px;
}
.input-bar__select {
background: none;
border: none;
color: var(--accent-blue-bright);
font-family: var(--font-sans);
font-size: 12px;
font-weight: 600;
cursor: pointer;
outline: none;
padding: 2px 20px 2px 0;
appearance: none;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='rgba(59,142,255,0.5)' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
background-repeat: no-repeat;
background-position: right 2px center;
letter-spacing: -0.01em;
transition: color var(--transition-fast);
}
.input-bar__select option { background: #0d1020; color: white; }
.input-bar__select:hover { color: var(--accent-cyan); }
.input-bar__divider {
width: 1px;
height: 14px;
background: var(--border-subtle);
}
.input-bar__param {
display: flex;
align-items: center;
gap: 6px;
}
.input-bar__param-label {
font-size: 11px;
color: var(--text-tertiary);
font-weight: 500;
letter-spacing: 0.01em;
}
.input-bar__param-input {
width: 44px;
background: rgba(59,142,255,0.08);
border: 1px solid rgba(59,142,255,0.18);
border-radius: 6px;
padding: 3px 6px;
color: var(--accent-cyan);
font-family: var(--font-mono);
font-size: 12px;
text-align: center;
outline: none;
transition: all var(--transition-fast);
}
.input-bar__param-input:focus {
border-color: rgba(0,229,255,0.5);
box-shadow: 0 0 8px rgba(0,229,255,0.18);
}
.input-bar__param-input::-webkit-outer-spin-button,
.input-bar__param-input::-webkit-inner-spin-button { -webkit-appearance: none; }
.input-bar__hint {
font-size: 10.5px;
color: var(--text-tertiary);
letter-spacing: 0.01em;
display: none;
}
@media (min-width: 600px) { .input-bar__hint { display: block; } }
.input-bar__compose {
display: flex;
align-items: flex-end;
gap: 0;
padding: 8px 8px 10px 16px;
}
.input-bar__textarea {
flex: 1;
background: none;
border: none;
outline: none;
resize: none;
color: var(--text-primary);
font-family: var(--font-sans);
font-size: 14.5px;
line-height: 1.62;
padding: 6px 0;
max-height: 160px;
overflow-y: auto;
letter-spacing: -0.01em;
}
.input-bar__textarea::placeholder { color: var(--text-tertiary); }
.input-bar__textarea:disabled { opacity: 0.4; }
.input-bar__send {
width: 38px;
height: 38px;
background: var(--bg-glass);
border: 1px solid var(--border-subtle);
border-radius: 13px;
display: flex;
align-items: center;
justify-content: center;
color: var(--text-tertiary);
cursor: not-allowed;
transition: all var(--transition-base);
flex-shrink: 0;
margin-bottom: 1px;
position: relative;
overflow: hidden;
}
.input-bar__send--active {
background: linear-gradient(135deg, var(--accent-blue) 0%, #7040FF 100%);
border-color: transparent;
color: white;
cursor: pointer;
box-shadow: 0 4px 18px rgba(59,142,255,0.5), 0 0 0 1px rgba(255,255,255,0.12) inset;
}
.input-bar__send--active::before {
content: '';
position: absolute;
inset: 0;
background: linear-gradient(135deg, rgba(255,255,255,0.15) 0%, transparent 60%);
opacity: 0;
transition: opacity var(--transition-fast);
}
.input-bar__send--active:hover::before { opacity: 1; }
.input-bar__send--active:hover {
transform: scale(1.07) translateY(-1px);
box-shadow: 0 6px 26px rgba(59,142,255,0.65), 0 0 0 1px rgba(255,255,255,0.15) inset;
}
.input-bar__send--active:active { transform: scale(0.96); }
.input-bar__send--loading {
cursor: default;
background: var(--accent-blue-soft);
border-color: rgba(59,142,255,0.25);
color: var(--accent-blue);
}
.input-bar__spinner { animation: spin 0.85s linear infinite; }