linguabot-tutor / style.css
Avks's picture
ИИ - репетитор по английскому языку
8e477ae verified
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');
:root {
--primary-color: #3b82f6;
--secondary-color: #60a5fa;
--dark-color: #1e293b;
--light-color: #f8fafc;
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Inter', sans-serif;
}
body {
background-color: #f1f5f9;
}
.message {
max-width: 80%;
padding: 12px 16px;
border-radius: 18px;
animation: fadeIn 0.3s ease-in-out;
}
.message.user {
background-color: var(--primary-color);
color: white;
align-self: flex-end;
border-bottom-right-radius: 4px;
}
.message.bot {
background-color: #e2e8f0;
color: var(--dark-color);
align-self: flex-start;
border-bottom-left-radius: 4px;
}
.message.system {
background-color: #fef3c7;
color: #92400e;
align-self: center;
text-align: center;
max-width: 90%;
font-size: 0.85rem;
}
.message-content {
white-space: pre-wrap;
word-break: break-word;
}
.message-time {
font-size: 0.7rem;
opacity: 0.8;
margin-top: 4px;
text-align: right;
}
.attachment-preview {
display: flex;
align-items: center;
background-color: rgba(255, 255, 255, 0.7);
border-radius: 8px;
padding: 8px 12px;
margin-top: 8px;
border: 1px solid #cbd5e1;
}
.attachment-icon {
margin-right: 8px;
color: var(--primary-color);
}
.audio-player {
display: flex;
align-items: center;
background-color: #e0f2fe;
border-radius: 8px;
padding: 8px 12px;
margin-top: 8px;
}
.audio-player button {
background: none;
border: none;
cursor: pointer;
margin-right: 10px;
}
.audio-player progress {
flex-grow: 1;
height: 5px;
}
.typing-indicator {
display: flex;
align-items: center;
padding: 12px 16px;
background-color: #e2e8f0;
border-radius: 18px;
align-self: flex-start;
border-bottom-left-radius: 4px;
}
.typing-dot {
width: 8px;
height: 8px;
background-color: #94a3b8;
border-radius: 50%;
margin: 0 2px;
animation: typing 1.4s infinite ease-in-out;
}
.typing-dot:nth-child(1) { animation-delay: 0s; }
.typing-dot:nth-child(2) { animation-delay: 0.2s; }
.typing-dot:nth-child(3) { animation-delay: 0.4s; }
@keyframes typing {
0%, 60%, 100% { transform: translateY(0); }
30% { transform: translateY(-5px); }
}
@keyframes fadeIn {
from { opacity: 0; transform: translateY(10px); }
to { opacity: 1; transform: translateY(0); }
}
/* Responsive adjustments */
@media (max-width: 768px) {
.message {
max-width: 90%;
}
main {
padding: 1rem;
}
}