AI generation React

This commit is contained in:
2026-06-15 12:41:51 +03:00
commit 25ee7a53ea
27 changed files with 5402 additions and 0 deletions
+196
View File
@@ -0,0 +1,196 @@
.quiz-question {
background: white;
border-radius: 15px;
padding: 30px;
box-shadow: 0 10px 30px rgba(0,0,0,0.1);
}
.question-text {
font-size: 1.3rem;
color: #333;
margin-bottom: 20px;
line-height: 1.4;
}
.question-image {
text-align: center;
margin-bottom: 25px;
}
.question-image img {
max-width: 100%;
max-height: 300px;
border-radius: 10px;
box-shadow: 0 5px 15px rgba(0,0,0,0.1);
}
.answers-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 20px;
margin-top: 20px;
}
.answer-card {
background: #f8f9fa;
border-radius: 12px;
padding: 20px;
cursor: pointer;
transition: all 0.3s ease;
border: 2px solid transparent;
text-align: center;
}
.answer-card:hover {
transform: translateY(-5px);
box-shadow: 0 10px 20px rgba(0,0,0,0.1);
background: #f0f0f0;
}
.answer-card.selected {
border-color: #667eea;
background: #e8eaf6;
box-shadow: 0 5px 15px rgba(102, 126, 234, 0.3);
}
.answer-image {
margin-bottom: 15px;
}
.answer-image img {
max-width: 100%;
max-height: 150px;
border-radius: 8px;
}
.answer-text {
font-size: 1rem;
color: #333;
font-weight: 500;
}
.text-answer-container {
margin-top: 25px;
}
.text-answer-input {
width: 100%;
padding: 15px;
border: 2px solid #e0e0e0;
border-radius: 10px;
font-size: 1rem;
font-family: inherit;
resize: vertical;
transition: border-color 0.3s ease;
}
.text-answer-input:focus {
outline: none;
border-color: #667eea;
}
.submit-button {
margin-top: 15px;
padding: 12px 30px;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
border: none;
border-radius: 25px;
font-size: 1rem;
cursor: pointer;
transition: all 0.3s ease;
}
.submit-button:hover {
transform: translateY(-2px);
box-shadow: 0 5px 15px rgba(102, 126, 234, 0.4);
}
@media (max-width: 768px) {
.quiz-question {
padding: 20px;
}
.question-text {
font-size: 1.1rem;
}
.answers-grid {
grid-template-columns: 1fr;
gap: 15px;
}
}
.quiz-question {
animation: slideIn 0.5s ease;
}
@keyframes slideIn {
from {
opacity: 0;
transform: translateX(20px);
}
to {
opacity: 1;
transform: translateX(0);
}
}
/* Стиль для заблокированных ответов при истекшем времени */
.answer-card.disabled {
opacity: 0.5;
cursor: not-allowed;
pointer-events: none;
}
.time-expired-message {
background: white;
border-radius: 15px;
padding: 60px 30px;
text-align: center;
box-shadow: 0 10px 30px rgba(0,0,0,0.1);
animation: fadeIn 0.5s ease;
}
.expired-content {
max-width: 400px;
margin: 0 auto;
}
.expired-icon {
font-size: 64px;
display: block;
margin-bottom: 20px;
animation: shake 0.5s ease;
}
.time-expired-message h3 {
color: #f44336;
margin-bottom: 10px;
font-size: 24px;
}
.time-expired-message p {
color: #666;
font-size: 16px;
}
@keyframes shake {
0%, 100% {
transform: translateX(0);
}
25% {
transform: translateX(-10px);
}
75% {
transform: translateX(10px);
}
}
@keyframes fadeIn {
from {
opacity: 0;
}
to {
opacity: 1;
}
}