Structure legacy-compatible frontend CSS

This commit is contained in:
2026-07-27 11:13:54 +00:00
parent 1509a39d26
commit ab6f4129a9
38 changed files with 466 additions and 366 deletions
+7 -4
View File
@@ -1,4 +1,7 @@
@import 'tailwindcss';
@import './styles/tokens.css';
@import './styles/game-shell.css';
@import './styles/ref-shell.css';
@theme {
--color-sammo-ink: #000;
@@ -15,7 +18,7 @@ body {
margin: 0;
background: #000;
color: #fff;
font-family: Pretendard, 'Apple SD Gothic Neo', 'Noto Sans KR', 'Malgun Gothic', sans-serif;
font-family: var(--sammo-font-sans);
font-size: 14px;
line-height: 1.3;
}
@@ -29,17 +32,17 @@ textarea {
.legacy-bg0 {
background-color: #302016;
background-image: url('/image/game/back_walnut.jpg');
background-image: var(--sammo-texture-walnut);
}
.legacy-bg1 {
background-color: #14241b;
background-image: url('/image/game/back_green.jpg');
background-image: var(--sammo-texture-green);
}
.legacy-bg2 {
background-color: #172a52;
background-image: url('/image/game/back_blue.jpg');
background-image: var(--sammo-texture-blue);
}
.legacy-button {
@@ -0,0 +1,54 @@
/*
* Shared shell for the main dashboard family.
*
* Keep geometry here limited to declarations that are identical on the main,
* chief-center, and public screens. Page-specific grids remain scoped in their
* owning SFC so a generic class cannot silently change a ref measurement.
*/
.game-shell {
min-height: 100vh;
padding: 24px;
display: flex;
flex-direction: column;
gap: 16px;
}
.game-shell__header {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
gap: 12px;
border-bottom: 1px solid var(--sammo-color-border);
padding-bottom: 12px;
}
.game-shell__title {
font-size: 1.6rem;
font-weight: 600;
}
.game-shell__subtitle {
font-size: 0.85rem;
color: var(--sammo-color-text-muted);
}
.game-shell__actions {
display: flex;
flex-wrap: wrap;
gap: 8px;
}
.game-shell__action {
border: 1px solid var(--sammo-color-border);
padding: 6px 12px;
background: var(--sammo-color-action-bg);
color: inherit;
text-decoration: none;
font-size: 0.8rem;
cursor: pointer;
}
.game-feedback--error {
color: var(--sammo-color-error);
font-size: 0.85rem;
}
@@ -0,0 +1,77 @@
/*
* Fixed ref geometry. This namespace is intentionally separate from
* .game-shell: its 1000/500px contract must win over generic responsive styles.
*/
.ref-shell {
width: 100%;
min-width: 500px;
max-width: 1000px;
min-height: 100vh;
margin: 0 auto;
padding: 0;
display: flex;
flex-direction: column;
gap: 0;
background-color: #302016;
background-image: var(--sammo-texture-walnut);
color: var(--sammo-color-text);
font-family: var(--sammo-font-sans);
font-size: 14px;
line-height: 1.5;
}
.ref-shell__topbar {
position: relative;
min-height: 32px;
display: flex;
align-items: center;
justify-content: center;
gap: 10px;
flex-wrap: wrap;
padding: 0 8px;
border: 1px solid #666;
background-color: #302016;
background-image: var(--sammo-texture-walnut);
}
.ref-shell__title {
font-size: 17px;
font-weight: 500;
}
.ref-shell__subtitle {
display: none;
}
.ref-shell__actions {
position: absolute;
left: 0;
top: 0;
display: flex;
flex-wrap: wrap;
gap: 4px;
}
.ref-shell__control {
min-height: 32px;
border: 1px solid #777;
border-radius: 0;
background: #303030;
color: inherit;
padding: 4px 8px;
font: inherit;
cursor: pointer;
}
.ref-feedback--error {
padding: 5px 8px;
border: 1px solid #a33;
color: #ff7777;
text-align: center;
}
@media (max-width: 991px) {
.ref-shell {
width: 500px;
}
}
@@ -0,0 +1,12 @@
:root {
--sammo-font-sans: Pretendard, 'Apple SD Gothic Neo', 'Noto Sans KR', 'Malgun Gothic', sans-serif;
--sammo-color-text: #fff;
--sammo-color-text-muted: rgba(232, 221, 196, 0.7);
--sammo-color-accent: #f39c12;
--sammo-color-border: rgba(201, 164, 90, 0.4);
--sammo-color-action-bg: rgba(16, 16, 16, 0.6);
--sammo-color-error: #f5b7b1;
--sammo-texture-walnut: url('/image/game/back_walnut.jpg');
--sammo-texture-green: url('/image/game/back_green.jpg');
--sammo-texture-blue: url('/image/game/back_blue.jpg');
}