diff --git a/game-studio/src/components/AppButton.vue b/game-studio/src/components/AppButton.vue index 63882c57..d2c62488 100644 --- a/game-studio/src/components/AppButton.vue +++ b/game-studio/src/components/AppButton.vue @@ -77,6 +77,11 @@ function onClick(ev: MouseEvent) { .app-btn:active { transform: scale(0.98); } +/* —— 键盘聚焦环(无障碍;鼠标点击不触发,仅 :focus-visible)—— */ +.app-btn:focus-visible { + outline: none; + box-shadow: var(--focus-ring); +} /* —— 尺寸 —— */ .app-btn--normal { @@ -105,9 +110,9 @@ function onClick(ev: MouseEvent) { 背景 135° cyan→green 渐变 + 重字重 820 + 深色高对比字(#061014); 仅 primary 用此渐变与字重,ghost/danger/plain 不受影响。 */ .app-btn--primary { - background: linear-gradient(135deg, var(--cyan), var(--green)); - color: #061014; - font-weight: 820; + background: var(--grad-primary); + color: var(--on-accent); + font-weight: var(--fw-cta); } /* ghost 透明描边青 */ .app-btn--ghost { @@ -118,7 +123,7 @@ function onClick(ev: MouseEvent) { /* danger 危险 */ .app-btn--danger { background: var(--danger); - color: #2a0608; + color: var(--on-danger); } /* plain 次要面板 */ .app-btn--plain { diff --git a/game-studio/src/components/AppearanceSwitch.vue b/game-studio/src/components/AppearanceSwitch.vue new file mode 100644 index 00000000..ad015967 --- /dev/null +++ b/game-studio/src/components/AppearanceSwitch.vue @@ -0,0 +1,104 @@ + + + + + diff --git a/game-studio/src/components/Field.vue b/game-studio/src/components/Field.vue new file mode 100644 index 00000000..8f0112a1 --- /dev/null +++ b/game-studio/src/components/Field.vue @@ -0,0 +1,113 @@ + + + + + diff --git a/game-studio/src/components/Icon.vue b/game-studio/src/components/Icon.vue new file mode 100644 index 00000000..9eeb3b10 --- /dev/null +++ b/game-studio/src/components/Icon.vue @@ -0,0 +1,55 @@ + + + + +