From 655673eb991c251d0a9f7f5bedbc6d97d301aed9 Mon Sep 17 00:00:00 2001 From: zizi Date: Tue, 16 Jun 2026 15:55:35 +0000 Subject: [PATCH] =?UTF-8?q?feat(studio-ds):=20P3=20=E7=BB=84=E4=BB=B6?= =?UTF-8?q?=E5=BA=93=E2=80=94=E2=80=94AppButton=20=E4=BB=A4=E7=89=8C?= =?UTF-8?q?=E5=8C=96(grad-primary/on-accent/focus=E7=8E=AF)=20+=20?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=20Icon(SVG)/Field/AppearanceSwitch?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit P3 of HJ-FE-DS-001 金样板。通用品牌组件,P4 接入 Feed/Create/Profile。 Co-Authored-By: Claude Opus 4.8 (1M context) --- game-studio/src/components/AppButton.vue | 13 +- .../src/components/AppearanceSwitch.vue | 104 ++++++++++++++++ game-studio/src/components/Field.vue | 113 ++++++++++++++++++ game-studio/src/components/Icon.vue | 55 +++++++++ 4 files changed, 281 insertions(+), 4 deletions(-) create mode 100644 game-studio/src/components/AppearanceSwitch.vue create mode 100644 game-studio/src/components/Field.vue create mode 100644 game-studio/src/components/Icon.vue 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 @@ + + + + +