Skip to content

Commit 53e32c5

Browse files
committed
u
1 parent a99d9f9 commit 53e32c5

5 files changed

Lines changed: 21 additions & 36 deletions

File tree

src/App.vue

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -199,12 +199,7 @@ onUnmounted(() => {
199199
}
200200
201201
.fab-btn:hover .fab-icon :deep(svg) {
202-
opacity: 0.85;
203-
}
204-
205-
.fab-btn:focus-visible {
206-
outline: 2px solid var(--color-focus-ring);
207-
outline-offset: 2px;
202+
opacity: 0.8;
208203
}
209204
210205
/* FAB 图标容器 */

src/assets/colors.css

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,7 @@
3434
--color-border-medium: #adafbc;
3535
--color-border-secondary: #888888;
3636

37-
/* ===== 强调 / 焦点 ===== */
38-
--color-focus-ring: #ffd33d;
39-
--color-highlight-gold: #B79227;
37+
--color-highlight: #ffd33d;
4038

4139
/* ===== 错误 ===== */
4240
--color-error: #cc3333;

src/components/BoardPanel.vue

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -246,12 +246,6 @@ watch(pieceScale, (val) => {
246246
cursor: grab;
247247
}
248248
249-
.board-square:focus-visible {
250-
outline: 2px solid var(--color-focus-ring);
251-
outline-offset: -2px;
252-
z-index: 10;
253-
}
254-
255249
.square-background,
256250
.piece {
257251
display: block;

src/components/ChessClock.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ const formattedBlackTime = computed(() => formatTime(props.blackTimeSeconds))
8282
8383
/* 激活状态的高亮指示 */
8484
.clock-side.is-active {
85-
border-color: var(--color-highlight-gold);
85+
border-color: var(--color-highlight);
8686
}
8787
8888
.clock-time {

src/components/GameSetup.vue

Lines changed: 18 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,17 @@
1717
<div class="setup-section">
1818
<h3>棋盘</h3>
1919
<div class="option-group">
20-
<label class="option-btn" :class="{ active: boardMode === 'standard' }">
20+
<label class="option-card-btn" :class="{ active: boardMode === 'standard' }">
2121
<input v-model="boardMode" type="radio" value="standard" />
2222
<img :src="iconClassic" alt="" class="card-icon" />
2323
<span>标准棋盘</span>
2424
</label>
25-
<label class="option-btn" :class="{ active: boardMode === 'chess960' }">
25+
<label class="option-card-btn" :class="{ active: boardMode === 'chess960' }">
2626
<input v-model="boardMode" type="radio" value="chess960" />
2727
<img :src="iconChess960" alt="" class="card-icon" />
2828
<span>Chess960</span>
2929
</label>
30-
<label class="option-btn" :class="{ active: boardMode === 'custom' }">
30+
<label class="option-card-btn" :class="{ active: boardMode === 'custom' }">
3131
<input v-model="boardMode" type="radio" value="custom" />
3232
<img :src="iconCustom" alt="" class="card-icon" />
3333
<span>自定义棋盘</span>
@@ -59,7 +59,7 @@
5959
v-for="preset in presetClocks"
6060
:key="preset.label"
6161
type="button"
62-
class="option-btn preset-btn"
62+
class="option-card-btn preset-btn"
6363
:class="{ active: isPresetActive(preset.minutes, preset.increment) }"
6464
@click="applyPreset(preset.minutes, preset.increment)"
6565
>
@@ -72,7 +72,7 @@
7272
<div v-if="gameMode === 'ai'" class="setup-section">
7373
<h3>强度</h3>
7474
<div class="option-group">
75-
<label v-for="level in 5" :key="level" class="option-btn difficulty-card"
75+
<label v-for="level in 5" :key="level" class="option-card-btn difficulty-card-btn"
7676
:class="{ active: difficulty === level }">
7777
<input v-model="difficulty" type="radio" :value="level" />
7878
<span>{{ level }}</span>
@@ -84,19 +84,19 @@
8484
<div v-if="gameMode === 'ai'" class="setup-section">
8585
<h3>AI 风格</h3>
8686
<div class="option-group">
87-
<label class="option-btn" :class="{ active: aiStyle === 'balanced' }">
87+
<label class="option-card-btn" :class="{ active: aiStyle === 'balanced' }">
8888
<input v-model="aiStyle" type="radio" value="balanced" />
8989
<span>均衡</span>
9090
</label>
91-
<label class="option-btn" :class="{ active: aiStyle === 'aggressive' }">
91+
<label class="option-card-btn" :class="{ active: aiStyle === 'aggressive' }">
9292
<input v-model="aiStyle" type="radio" value="aggressive" />
9393
<span>进攻</span>
9494
</label>
95-
<label class="option-btn" :class="{ active: aiStyle === 'defensive' }">
95+
<label class="option-card-btn" :class="{ active: aiStyle === 'defensive' }">
9696
<input v-model="aiStyle" type="radio" value="defensive" />
9797
<span>防守</span>
9898
</label>
99-
<label class="option-btn" :class="{ active: aiStyle === 'unpredictable' }">
99+
<label class="option-card-btn" :class="{ active: aiStyle === 'unpredictable' }">
100100
<input v-model="aiStyle" type="radio" value="unpredictable" />
101101
<span>出其不意</span>
102102
</label>
@@ -106,17 +106,17 @@
106106
<div v-if="gameMode === 'ai'" class="setup-section">
107107
<h3>执棋方</h3>
108108
<div class="option-group">
109-
<label class="option-btn starter-card" :class="{ active: starter === 'black' }">
109+
<label class="option-card-btn starter-card-btn" :class="{ active: starter === 'black' }">
110110
<input v-model="starter" type="radio" value="black" />
111111
<img :src="kingBlackIcon" alt="" class="starter-icon" />
112112
<span>黑方</span>
113113
</label>
114-
<label class="option-btn starter-card" :class="{ active: starter === 'random' }">
114+
<label class="option-card-btn starter-card-btn" :class="{ active: starter === 'random' }">
115115
<input v-model="starter" type="radio" value="random" />
116116
<img :src="kingRandomIcon" alt="" class="starter-icon" />
117117
<span>随机</span>
118118
</label>
119-
<label class="option-btn starter-card" :class="{ active: starter === 'white' }">
119+
<label class="option-card-btn starter-card-btn" :class="{ active: starter === 'white' }">
120120
<input v-model="starter" type="radio" value="white" />
121121
<img :src="kingWhiteIcon" alt="" class="starter-icon" />
122122
<span>白方</span>
@@ -431,7 +431,7 @@ const handleStart = () => {
431431
min-width: 0;
432432
}
433433
434-
.option-btn {
434+
.option-card-btn {
435435
display: inline-flex;
436436
align-items: center;
437437
gap: 6px;
@@ -445,11 +445,11 @@ const handleStart = () => {
445445
}
446446
447447
/* 隐藏原生的单选框圆点 */
448-
.option-btn input[type="radio"] {
448+
.option-card-btn input[type="radio"] {
449449
display: none;
450450
}
451451
452-
.difficulty-card {
452+
.difficulty-card-btn {
453453
width: 40px;
454454
height: 40px;
455455
justify-content: center;
@@ -458,10 +458,8 @@ const handleStart = () => {
458458
font-weight: 600;
459459
}
460460
461-
.option-btn.active {
462-
border-color: var(--color-surface-border);
463-
background: var(--color-surface-border);
464-
color: var(--color-text-on-primary);
461+
.option-card-btn.active {
462+
border: 2px solid var(--color-highlight);
465463
}
466464
467465
.card-icon {
@@ -470,7 +468,7 @@ const handleStart = () => {
470468
flex-shrink: 0;
471469
}
472470
473-
.starter-card {
471+
.starter-card-btn {
474472
flex-direction: column;
475473
padding: 12px 16px;
476474
min-width: 80px;

0 commit comments

Comments
 (0)