addition / src /App.css
elyor-ml's picture
addition game
671ec71
/* General App Styles */
body {
font-family: 'Arial', sans-serif;
background-color: #f0f8ff; /* Light alice blue */
color: #333;
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
margin: 0;
padding: 20px;
box-sizing: border-box;
}
.app-container {
background-color: #fff;
padding: 30px;
border-radius: 20px;
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
text-align: center;
width: 100%;
max-width: 900px; /* Max width adjusted for new layout */
}
.game-header {
margin-bottom: 30px;
display: flex;
justify-content: space-between;
align-items: center;
padding-bottom: 20px;
border-bottom: 2px solid #e0e0e0;
}
.game-header h1 {
font-size: 2.5rem;
color: #007bff;
margin: 0;
}
.display-mode-selector button {
font-size: 1.3rem;
padding: 10px 18px;
margin: 0 8px;
border: 2px solid #007bff;
background-color: #fff;
color: #007bff;
border-radius: 10px;
cursor: pointer;
transition: background-color 0.3s, color 0.3s;
}
.display-mode-selector button:hover {
background-color: #0056b3;
color: #fff;
}
.display-mode-selector button.active {
background-color: #007bff;
color: #fff;
}
.score-display {
font-size: 1.6rem;
font-weight: bold;
color: #28a745;
}
/* Game Area Styles */
.game-area {
padding: 20px;
}
/* New Question Container for 5-column layout */
.question-container-new {
display: flex;
justify-content: space-around; /* Distribute columns */
align-items: flex-start; /* Align tops of columns */
background-color: #fffacd; /* Light yellow background like image */
padding: 20px;
border-radius: 15px;
margin-bottom: 30px;
border: 1px solid #ddd; /* Soft border */
}
.operand-column, .result-column {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center; /* Center content like the question mark */
gap: 15px;
flex: 1;
padding: 10px;
min-height: 150px; /* Ensure it has some height to center the ? vertically */
}
.number-box {
background-color: #fff;
border: 1px solid #ccc;
border-radius: 10px;
padding: 20px 30px;
min-width: 80px; /* Minimum width for the number box */
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
display: inline-flex; /* To make it wrap content tightly */
justify-content: center;
align-items: center;
}
.number-text {
font-size: 3.5rem; /* Large numbers */
font-weight: bold;
color: #333;
}
.objects-display {
display: flex;
flex-direction: column; /* Stack objects vertically as in image */
justify-content: center;
align-items: center;
gap: 8px;
min-height: 60px; /* Base height even if empty */
width: 100%;
}
.item-object {
font-size: 2.5rem !important; /* Adjusted emoji size */
padding: 2px;
}
.operator-cell {
display: flex;
flex-direction: column; /* To center operator and have line above/below */
align-items: center;
justify-content: center; /* Center the operator symbol vertically */
position: relative; /* For pseudo-elements for lines */
align-self: stretch; /* Make cell take full height of question-container-new */
padding: 0 20px; /* Horizontal padding around operator */
}
.operator-cell::before, .operator-cell::after {
content: '';
position: absolute;
left: 50%;
transform: translateX(-50%);
width: 2px; /* Width of the vertical line */
background-color: #bdbdbd; /* Color of the vertical line */
height: calc(50% - 25px); /* Adjust based on operator symbol size and desired gap */
}
.operator-cell::before {
top: 0;
}
.operator-cell::after {
bottom: 0;
}
.operator-symbol {
font-size: 2rem;
font-weight: bold;
color: #555;
background-color: #fff;
border: 2px solid #bdbdbd;
border-radius: 50%;
width: 40px;
height: 40px;
display: flex;
justify-content: center;
align-items: center;
z-index: 1; /* To appear above the pseudo-element lines */
}
.answer-placeholder-new {
font-size: 4rem; /* Large question mark */
font-weight: bold;
color: #dc3545; /* Red color or similar to operand numbers */
display: flex;
justify-content: center;
align-items: center;
/* If it needs a box like numbers, we can add similar styling to .number-box here */
/* For now, just a large character */
}
/* Options Styles - Assuming these are still relevant */
.options-container {
display: flex;
justify-content: center;
gap: 20px;
margin-bottom: 30px;
}
.option-button {
font-size: 2.5rem;
font-weight: bold;
padding: 20px 35px;
border: 3px solid #28a745;
background-color: #fff;
color: #28a745;
border-radius: 15px;
cursor: pointer;
transition: background-color 0.3s, color 0.3s, transform 0.2s;
min-width: 90px;
}
.option-button:hover {
background-color: #218838;
color: #fff;
transform: translateY(-3px);
}
/* Feedback Message Styles */
.feedback-message {
font-size: 1.8rem;
font-weight: bold;
margin-top: 25px;
padding: 15px;
border-radius: 10px;
color: #fff;
/* Assuming JS still sets background color for correct/incorrect, or do it here */
}
.feedback-message:empty {
display: none;
}
/* Loading State */
.loading {
font-size: 2rem;
text-align: center;
padding: 50px;
color: #007bff;
}
/* Remove old styles that are no longer used */
/* .question-container, .operand-stack, .operator, .answer-placeholder (and their media queries if specific) */
/* Responsive adjustments for the new layout */
@media (max-width: 768px) {
.game-header h1 {
font-size: 2rem;
}
.display-mode-selector button {
font-size: 1.1rem;
padding: 8px 12px;
}
.score-display {
font-size: 1.3rem;
}
.question-container-new {
flex-direction: column; /* Stack columns vertically on smaller screens */
align-items: center; /* Center columns when stacked */
padding: 15px;
}
.operand-column, .result-column {
width: 100%; /* Make columns take full width when stacked */
max-width: 300px; /* Limit width of operand columns */
gap: 10px;
}
.operator-cell {
flex-direction: row; /* Operators side by side with lines */
align-self: auto; /* Reset self-stretch */
padding: 10px 0;
width: 80%;
max-width: 250px;
}
.operator-cell::before, .operator-cell::after {
width: calc(50% - 25px); /* Horizontal lines */
height: 2px;
top: 50%;
transform: translateY(-50%);
}
.operator-cell::before {
left: 0;
}
.operator-cell::after {
right: 0;
left: auto; /* Override previous left: 50% */
}
.number-text {
font-size: 2.8rem;
}
.item-object {
font-size: 2rem !important;
}
.operator-symbol {
font-size: 1.5rem;
width: 35px;
height: 35px;
}
.options-container {
flex-direction: column;
gap: 10px;
}
.option-button {
font-size: 2rem;
padding: 15px 25px;
}
.feedback-message {
font-size: 1.5rem;
}
}
@media (max-width: 480px) {
.game-header {
flex-direction: column;
gap: 10px;
}
.game-header h1 {
font-size: 1.6rem;
}
.display-mode-selector button {
font-size: 1rem;
padding: 6px 10px;
}
.number-text {
font-size: 2.2rem;
}
.item-object {
font-size: 1.8rem !important;
}
.operator-symbol {
font-size: 1.3rem;
width: 30px;
height: 30px;
}
.option-button {
font-size: 1.6rem;
padding: 12px 20px;
}
}
/* Clean up old, unused styles - This should be done carefully after verifying */
.question-container, .operand-stack, .operator, .answer-placeholder, .result-objects-display {
display: none !important; /* Hide them if they are still in the DOM somehow */
}