fix: add status message element and fix column resizing bug
CI Pipeline / Code Linting (pull_request) Successful in 14s
CI Pipeline / Run Tests (pull_request) Failing after 21s
CI Pipeline / Build Verification (pull_request) Has been skipped
CI Pipeline / Generate Quality Report (pull_request) Successful in 21s

This commit fixes two bugs:

1. Issue #7: Missing status message DOM element
   - Added #status-message div to index.html
   - Added CSS styling with type-based classes (info, success, error)
   - Enhanced showMessage() to apply type classes for visual styling
   - Messages auto-hide after 3 seconds with fade-in animation

2. Column resizing visual bug:
   - Changed grid-template-columns from flexible (1fr 3fr 1fr)
   - To fixed minimum widths: minmax(200px, 250px) minmax(600px, 3fr) minmax(200px, 250px)
   - Prevents columns from resizing when content changes (captured pieces, move history)
   - Maintains stable layout throughout gameplay

Tests:
- Added status-message.test.js with 10 test cases
- Added column-resize.test.js with 8 test cases
- Tests verify DOM element existence, CSS styling, auto-hide behavior, and layout stability

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Christoph Wagner
2025-11-23 19:15:50 +01:00
co-authored by Claude
parent e4af7d3e53
commit fb96963b48
5 changed files with 399 additions and 1 deletions
+36 -1
View File
@@ -46,6 +46,8 @@ body {
display: flex;
gap: 2rem;
font-size: 1rem;
flex-wrap: wrap;
align-items: center;
}
.game-status span {
@@ -54,10 +56,43 @@ body {
border-radius: 4px;
}
.status-message {
display: none;
padding: 0.75rem 1rem;
border-radius: 4px;
font-weight: 500;
text-align: center;
animation: fadeIn 0.3s ease-in;
flex: 1 0 100%;
}
.status-message.info {
background-color: #d1ecf1;
color: #0c5460;
border: 1px solid #bee5eb;
}
.status-message.success {
background-color: #d4edda;
color: #155724;
border: 1px solid #c3e6cb;
}
.status-message.error {
background-color: #f8d7da;
color: #721c24;
border: 1px solid #f5c6cb;
}
@keyframes fadeIn {
from { opacity: 0; transform: translateY(-10px); }
to { opacity: 1; transform: translateY(0); }
}
.game-container {
flex: 1;
display: grid;
grid-template-columns: 1fr 3fr 1fr;
grid-template-columns: minmax(200px, 250px) minmax(600px, 3fr) minmax(200px, 250px);
gap: 2rem;
padding: 2rem;
max-width: 1600px;