Files
YuGiOh-Database-Frontend/src/index.css
T
Syco ff48ec8af0
ci/woodpecker/push/woodpecker Pipeline was successful
Apply Design A: dark theme, type badges, code cleanup
Visual:
- Dark theme throughout (#111 bg, #1c1c1c panels, #2a2a2a borders)
- Type badges with color: Monster=orange, Spell=green, Trap=purple
- Owned count shown as ×3 (highlighted) or — (dimmed)
- Printing column headers in CardRow
- Card detail panel: type badge, attribute, race, level stars

Cleanup:
- Replace index.css (was Vite boilerplate) with dark base + shared CSS classes
  (.card-row-header:hover, .filter-chip, .icon-btn, modal styles)
- Clear App.css (Vite boilerplate, unused)
- Remove Footer.css (modal styles consolidated into index.css)
- Extract useDebounce to src/hooks/useDebounce.js
- Remove react-window (installed but never used)
- App.jsx: remove unnecessary wrapper div
- gitignore: add mockups/

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-15 21:19:05 +02:00

95 lines
2.5 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html, body, #root { height: 100%; }
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
background: #111;
color: #e0e0e0;
font-size: 14px;
-webkit-font-smoothing: antialiased;
}
/* Card row — :hover can't be done with inline styles */
.card-row-header:hover { background: #1a1a1a !important; }
/* Filter chips */
.filter-chip {
padding: 3px 12px;
border-radius: 20px;
border: 1px solid #333;
background: transparent;
color: #666;
font-size: 12px;
cursor: pointer;
transition: border-color 0.15s, color 0.15s;
}
.filter-chip:hover { border-color: #555; color: #bbb; }
.filter-chip.active { background: #e0e0e0; color: #111; border-color: #e0e0e0; }
.filter-chip.active-m { background: #c07020; color: #fff; border-color: #c07020; }
.filter-chip.active-s { background: #1a7a5e; color: #fff; border-color: #1a7a5e; }
.filter-chip.active-t { background: #7a2060; color: #fff; border-color: #7a2060; }
/* Amount +/ buttons */
.icon-btn {
width: 22px;
height: 22px;
border-radius: 4px;
border: 1px solid #333;
background: #222;
color: #aaa;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
font-size: 14px;
line-height: 1;
}
.icon-btn:hover:not(:disabled) { background: #2e2e2e; border-color: #444; }
.icon-btn:disabled { opacity: 0.4; cursor: default; }
/* Import modal */
.modal-backdrop {
position: fixed;
inset: 0;
background: rgba(0, 0, 0, 0.6);
backdrop-filter: blur(2px);
z-index: 1000;
animation: fadeIn 0.15s ease;
}
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
.import-modal {
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background: #1e1e1e;
color: #e0e0e0;
padding: 2rem 2.5rem;
border-radius: 12px;
border: 1px solid #333;
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.7);
z-index: 1001;
max-width: 90%;
min-width: 300px;
text-align: center;
animation: popIn 0.2s cubic-bezier(0.34, 1.56, 0.64, 1);
}
@keyframes popIn {
from { opacity: 0; transform: translate(-50%, -48%) scale(0.92); }
to { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}
.import-modal button {
margin-top: 1.25rem;
padding: 0.4rem 1.4rem;
cursor: pointer;
background: #2a2a2a;
color: #e0e0e0;
border: 1px solid #444;
border-radius: 6px;
font-size: 0.9rem;
transition: background 0.15s;
}
.import-modal button:hover { background: #333; }