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 >
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 >
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 >
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 >
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