diff --git a/code/base-project/base-vue/packages/ao-design/src/_styles/_variables.scss b/code/base-project/base-vue/packages/ao-design/src/_styles/_variables.scss
index e626b400..9c9a2563 100644
--- a/code/base-project/base-vue/packages/ao-design/src/_styles/_variables.scss
+++ b/code/base-project/base-vue/packages/ao-design/src/_styles/_variables.scss
@@ -1,126 +1,46 @@
// 公共前缀
-// $prefix: 'ao' !default;
-
-$brand-color-1: var(--td-brand-color-1);
-$brand-color-2: var(--td-brand-color-2);
-$brand-color-3: var(--td-brand-color-3);
-$brand-color-4: var(--td-brand-color-4);
-$brand-color-5: var(--td-brand-color-5);
-$brand-color-6: var(--td-brand-color-6);
-$brand-color-7: var(--td-brand-color-7);
-$brand-color-8: var(--td-brand-color-8);
-$brand-color-9: var(--td-brand-color-9);
-$brand-color-10: var(--td-brand-color-10);
-
-$warning-color-1: var(--td-warning-color-1);
-$warning-color-2: var(--td-warning-color-2);
-$warning-color-3: var(--td-warning-color-3);
-$warning-color-4: var(--td-warning-color-4);
-$warning-color-5: var(--td-warning-color-5);
-$warning-color-6: var(--td-warning-color-6);
-$warning-color-7: var(--td-warning-color-7);
-$warning-color-8: var(--td-warning-color-8);
-$warning-color-9: var(--td-warning-color-9);
-$warning-color-10: var(--td-warning-color-10);
-
-$danger-color-1: var(--td-danger-color-1);
-$danger-color-2: var(--td-danger-color-2);
-$danger-color-3: var(--td-danger-color-3);
-$danger-color-4: var(--td-danger-color-4);
-$danger-color-5: var(--td-danger-color-5);
-$danger-color-6: var(--td-danger-color-6);
-$danger-color-7: var(--td-danger-color-7);
-$danger-color-8: var(--td-danger-color-8);
-$danger-color-9: var(--td-danger-color-9);
-$danger-color-10: var(--td-danger-color-10);
-
-$success-color-1: var(--td-success-color-1);
-$success-color-2: var(--td-success-color-2);
-$success-color-3: var(--td-success-color-3);
-$success-color-4: var(--td-success-color-4);
-$success-color-5: var(--td-success-color-5);
-$success-color-6: var(--td-success-color-6);
-$success-color-7: var(--td-success-color-7);
-$success-color-8: var(--td-success-color-8);
-$success-color-9: var(--td-success-color-9);
-$success-color-10: var(--td-success-color-10);
-
-$gray-color-1: var(--td-gray-color-1);
-$gray-color-2: var(--td-gray-color-2);
-$gray-color-3: var(--td-gray-color-3);
-$gray-color-4: var(--td-gray-color-4);
-$gray-color-5: var(--td-gray-color-5);
-$gray-color-6: var(--td-gray-color-6);
-$gray-color-7: var(--td-gray-color-7);
-$gray-color-8: var(--td-gray-color-8);
-$gray-color-9: var(--td-gray-color-9);
-$gray-color-10: var(--td-gray-color-10);
-$gray-color-11: var(--td-gray-color-11);
-$gray-color-12: var(--td-gray-color-12);
-$gray-color-13: var(--td-gray-color-13);
-$gray-color-14: var(--td-gray-color-14);
-
-// 文字 & 图标 颜色
-$font-white-1: var(--td-font-white-1);
-$font-white-2: var(--td-font-white-2);
-$font-white-3: var(--td-font-white-3);
-$font-white-4: var(--td-font-white-4);
-
-$font-gray-1: var(--td-font-gray-1);
-$font-gray-2: var(--td-font-gray-2);
-$font-gray-3: var(--td-font-gray-3);
-$font-gray-4: var(--td-font-gray-4);
+$prefix: 'ao' !default;
// 基础颜色
-$brand-color: var(--td-brand-color); // 色彩-品牌-可操作
-$warning-color: var(--td-warning-color); // 色彩-功能-警告
-$danger-color: var(--td-danger-color); // 色彩-功能-失败
-$success-color: var(--td-success-color); // 色彩-功能-成功
+$primary: var(--ao-primary); // 色彩-品牌-可操作
+$warning: var(--ao-warning); // 色彩-功能-警告
+$danger: var(--ao-danger); // 色彩-功能-失败
+$success: var(--ao-success); // 色彩-功能-成功
// 基础颜色的扩展 用于 hover / 聚焦 / 禁用 / 点击 等状态
-$brand-color-hover: var(--td-brand-color-hover); // hover态
-$brand-color-focus: var(--td-brand-color-focus); // focus态,包括鼠标和键盘
-$brand-color-active: var(--td-brand-color-active); // 点击态
-$brand-color-disabled: var(--td-brand-color-disabled); // 禁用态
-$brand-color-light: var(--td-brand-color-light); // 浅色的选中态
-$brand-color-light-hover: var(--td-brand-color-light-hover);
+$primary-hover: var(--ao-primary-hover); // hover态
+$primary-focus: var(--ao-primary-focus); // focus态,包括鼠标和键盘
+$primary-active: var(--ao-primary-active); // 点击态
+$primary-disabled: var(--ao-primary-disabled); // 禁用态
// 警告色扩展
-$warning-color-hover: var(--td-warning-color-hover);
-$warning-color-focus: var(--td-warning-color-focus);
-$warning-color-active: var(--td-warning-color-active);
-$warning-color-disabled: var(--td-warning-color-disabled);
-$warning-color-light: var(--td-warning-color-light);
-$warning-color-light-hover: var(--td-warning-color-light-hover);
+$warning-hover: var(--ao-warning-hover);
+$warning-focus: var(--ao-warning-focus);
+$warning-active: var(--ao-warning-active);
+$warning-disabled: var(--ao-warning-disabled);
// 失败/错误色扩展
-$danger-color-hover: var(--td-danger-color-hover);
-$danger-color-focus: var(--td-danger-color-focus);
-$danger-color-active: var(--td-danger-color-active);
-$danger-color-disabled: var(--td-danger-color-disabled);
-$danger-color-light: var(--td-danger-color-light);
-$danger-color-light-hover: var(--td-danger-color-light-hover);
+$danger-hover: var(--ao-danger-hover);
+$danger-focus: var(--ao-danger-focus);
+$danger-active: var(--ao-danger-active);
+$danger-disabled: var(--ao-danger-disabled);
// 成功色扩展
-$success-color-hover: var(--td-success-color-hover);
-$success-color-focus: var(--td-success-color-focus);
-$success-color-active: var(--td-success-color-active);
-$success-color-disabled: var(--td-success-color-disabled);
-$success-color-light: var(--td-success-color-light);
-$success-color-light-hover: var(--td-success-color-light-hover);
-
-$bg-color-component: var(--td-bg-color-component); // 色彩 - 组件
-$bg-color-component-hover: var(--td-bg-color-component-hover); // 色彩 - 组件 - hover
-$bg-color-component-active: var(--td-bg-color-component-active); // 色彩 - 组件 - active
-$bg-color-component-disabled: var(--td-bg-color-component-disabled); // 色彩 - 组件 - disabled
+$success-hover: var(--ao-success-hover);
+$success-focus: var(--ao-success-focus);
+$success-active: var(--ao-success-active);
+$success-disabled: var(--ao-success-disabled);
// 文本颜色
-$text-color-primary: var(--td-text-color-primary); // 色彩-文字-主要
-$text-color-secondary: var(--td-text-color-secondary); // 色彩-文字-次要
-$text-color-placeholder: var(--td-text-color-placeholder); // 色彩-文字-占位符/说明
-$text-color-disabled: var(--td-text-color-disabled); // 色彩-文字-禁用
-$text-color-anti: var(--td-text-color-anti); // 色彩-文字-反色
-$text-color-brand: var(--td-text-color-brand); // 色彩-文字-品牌
-$text-color-link: var(--td-text-color-link); // 色彩-文字-链接
+$text-primary: var(--ao-text-primary); // 色彩-文字-主要
+$text-secondary: var(--ao-text-secondary); // 色彩-文字-次要
+$text-assist: var(--ao-text-secondary); // 色彩-文字-次要
+$text-placeholder: var(--ao-text-placeholder); // 色彩-文字-占位符/说明
+$text-disabled: var(--ao-text-disabled); // 色彩-文字-禁用
+$text-anti: var(--ao-text-anti); // 色彩-文字-反色
+$text-primary: var(--ao-text-primary); // 色彩-文字-品牌
+$text-link: var(--ao-text-link); // 色彩-文字-链接
$border-radius: 2px;
+$border-divider: var(--ao-stroke); // 分割线(内容区域之间的分隔,如列表、面板内部)
+$border-component: var(--ao-border); // 组件边框(Input、Select、Card 等容器的外部边框)
diff --git a/code/base-project/base-vue/packages/ao-design/src/_styles/index.scss b/code/base-project/base-vue/packages/ao-design/src/_styles/index.scss
index 8c893237..55e3b730 100644
--- a/code/base-project/base-vue/packages/ao-design/src/_styles/index.scss
+++ b/code/base-project/base-vue/packages/ao-design/src/_styles/index.scss
@@ -1,3 +1 @@
-@use './variables' as *;
-
@use './theme/index.scss' as *;
diff --git a/code/base-project/base-vue/packages/ao-design/src/_styles/theme/_dark.scss b/code/base-project/base-vue/packages/ao-design/src/_styles/theme/_dark.scss
index 5e8aeaa6..8c7d83b5 100644
--- a/code/base-project/base-vue/packages/ao-design/src/_styles/theme/_dark.scss
+++ b/code/base-project/base-vue/packages/ao-design/src/_styles/theme/_dark.scss
@@ -1,169 +1,39 @@
:root[theme-mode='dark'] {
- --td-brand-color-1: #1b2f51;
- --td-brand-color-2: #173463;
- --td-brand-color-3: #143975;
- --td-brand-color-4: #103d88;
- --td-brand-color-5: #0d429a;
- --td-brand-color-6: #054bbe;
- --td-brand-color-7: #2667d4;
- --td-brand-color-8: #4582e6;
- --td-brand-color-9: #699ef5;
- --td-brand-color-10: #96bbf8;
- --td-warning-color-1: #4f2a1d;
- --td-warning-color-2: #582f21;
- --td-warning-color-3: #733c23;
- --td-warning-color-4: #a75d2b;
- --td-warning-color-5: #cf6e2d;
- --td-warning-color-6: #dc7633;
- --td-warning-color-7: #e8935c;
- --td-warning-color-8: #ecbf91;
- --td-warning-color-9: #eed7bf;
- --td-warning-color-10: #f3e9dc;
- --td-danger-color-1: #472324;
- --td-danger-color-2: #5e2a2d;
- --td-danger-color-3: #703439;
- --td-danger-color-4: #83383e;
- --td-danger-color-5: #a03f46;
- --td-danger-color-6: #c64751;
- --td-danger-color-7: #de6670;
- --td-danger-color-8: #ec888e;
- --td-danger-color-9: #edb1b6;
- --td-danger-color-10: #eeced0;
- --td-success-color-1: #193a2a;
- --td-success-color-2: #1a4230;
- --td-success-color-3: #17533d;
- --td-success-color-4: #0d7a55;
- --td-success-color-5: #059465;
- --td-success-color-6: #43af8a;
- --td-success-color-7: #46bf96;
- --td-success-color-8: #80d2b6;
- --td-success-color-9: #b4e1d3;
- --td-success-color-10: #deede8;
- --td-gray-color-1: #f3f3f3;
- --td-gray-color-2: #eee;
- --td-gray-color-3: #e8e8e8;
- --td-gray-color-4: #ddd;
- --td-gray-color-5: #c6c6c6;
- --td-gray-color-6: #a6a6a6;
- --td-gray-color-7: #8b8b8b;
- --td-gray-color-8: #777;
- --td-gray-color-9: #5e5e5e;
- --td-gray-color-10: #4b4b4b;
- --td-gray-color-11: #393939;
- --td-gray-color-12: #2c2c2c;
- --td-gray-color-13: #242424;
- --td-gray-color-14: #181818;
+ --ao-primary: #4582e6;
+ --ao-warning: #cf6e2d;
+ --ao-danger: #c64751;
+ --ao-success: #059465;
- // 文字 & 图标 颜色
- --td-font-white-1: rgba(255, 255, 255, 90%);
- --td-font-white-2: rgba(255, 255, 255, 55%);
- --td-font-white-3: rgba(255, 255, 255, 35%);
- --td-font-white-4: rgba(255, 255, 255, 22%);
- --td-font-gray-1: rgba(0, 0, 0, 90%);
- --td-font-gray-2: rgba(0, 0, 0, 60%);
- --td-font-gray-3: rgba(0, 0, 0, 40%);
- --td-font-gray-4: rgba(0, 0, 0, 26%);
+ --ao-primary-hover: #2667d4;
+ --ao-primary-focus: #173463;
+ --ao-primary-active: #699ef5;
+ --ao-primary-disabled: #143975;
- // 基础颜色
- --td-brand-color: var(--td-brand-color-8); // 色彩-品牌-可操作
- --td-warning-color: var(--td-warning-color-5); // 色彩-功能-警告
- --td-danger-color: var(--td-danger-color-6); // 色彩-功能-失败
- --td-success-color: var(--td-success-color-5); // 色彩-功能-成功
+ --ao-warning-hover: #a75d2b;
+ --ao-warning-focus: #582f21;
+ --ao-warning-active: #dc7633;
+ --ao-warning-disabled: #733c23;
- // 基础颜色的扩展 用于 hover / 聚焦 / 禁用 / 点击 等状态
- --td-brand-color-hover: var(--td-brand-color-7); // hover态
- --td-brand-color-focus: var(--td-brand-color-2); // focus态,包括鼠标和键盘
- --td-brand-color-active: var(--td-brand-color-9); // 点击态
- --td-brand-color-disabled: var(--td-brand-color-3); // 禁用态
- --td-brand-color-light: var(--td-brand-color-1); // 浅色的选中态
- --td-brand-color-light-hover: var(--td-brand-color-2);
+ --ao-danger-hover: #a03f46;
+ --ao-danger-focus: #5e2a2d;
+ --ao-danger-active: #de6670;
+ --ao-danger-disabled: #703439;
- // 警告色扩展
- --td-warning-color-hover: var(--td-warning-color-4);
- --td-warning-color-focus: var(--td-warning-color-2);
- --td-warning-color-active: var(--td-warning-color-6);
- --td-warning-color-disabled: var(--td-warning-color-3);
- --td-warning-color-light: var(--td-warning-color-1);
- --td-warning-color-light-hover: var(--td-warning-color-2);
+ --ao-success-hover: #0d7a55;
+ --ao-success-focus: #1a4230;
+ --ao-success-active: #43af8a;
+ --ao-success-disabled: #17533d;
- // 失败/错误色扩展
- --td-danger-color-hover: var(--td-danger-color-5);
- --td-danger-color-focus: var(--td-danger-color-2);
- --td-danger-color-active: var(--td-danger-color-7);
- --td-danger-color-disabled: var(--td-danger-color-3);
- --td-danger-color-light: var(--td-danger-color-1);
- --td-danger-color-light-hover: var(--td-danger-color-2);
+ --ao-text-primary: rgba(255, 255, 255, 90%); /* 主要文字 */
+ --ao-text-secondary: rgba(255, 255, 255, 55%); /* 次要文字 / 辅助信息 */
+ --ao-text-assist: rgba(255, 255, 255, 45%); /* 输入框内部辅助元素(icon/count) */
+ --ao-text-placeholder: rgba(255, 255, 255, 35%); /* 占位符 / 说明文字 */
+ --ao-text-disabled: rgba(255, 255, 255, 22%); /* 禁用文字 */
+ --ao-text-anti: #fff; /* 反色文字(深色背景上) */
+ --ao-text-brand: #4582e6; /* 品牌色文字 / 主操作色 */
+ --ao-text-link: #4582e6; /* 链接文字 */
+ --ao-text-watermark: rgba(255, 255, 255, 10%); /* 水印 / 背景文字 */
- // 成功色扩展
- --td-success-color-hover: var(--td-success-color-4);
- --td-success-color-focus: var(--td-success-color-2);
- --td-success-color-active: var(--td-success-color-6);
- --td-success-color-disabled: var(--td-success-color-3);
- --td-success-color-light: var(--td-success-color-1);
- --td-success-color-light-hover: var(--td-success-color-2);
-
- // 遮罩
- --td-mask-active: rgba(0, 0, 0, 40%); // 遮罩-弹出
- --td-mask-disabled: rgba(0, 0, 0, 60%); // 遮罩-禁用
- --td-mask-background: rgba(36, 36, 36, 96%); // 二维码遮罩
-
- // 背景色
- --td-bg-color-page: var(--td-gray-color-14); // 色彩 - page
- --td-bg-color-container: var(--td-gray-color-13); // 色彩 - 容器
- --td-bg-color-container-hover: var(--td-gray-color-12); // 色彩 - 容器 - hover
- --td-bg-color-container-active: var(--td-gray-color-10); // 色彩 - 容器 - active
- --td-bg-color-container-select: var(--td-gray-color-9); // 色彩 - 容器 - select
- --td-bg-color-secondarycontainer: var(--td-gray-color-12); // 色彩 - 次级容器
- --td-bg-color-secondarycontainer-hover: var(--td-gray-color-11); // 色彩 - 次级容器 - hover
- --td-bg-color-secondarycontainer-active: var(--td-gray-color-9); // 色彩 - 次级容器 - active
- --td-bg-color-component: var(--td-gray-color-11); // 色彩 - 组件
- --td-bg-color-component-hover: var(--td-gray-color-10); // 色彩 - 组件 - hover
- --td-bg-color-component-active: var(--td-gray-color-9); // 色彩 - 组件 - active
- --td-bg-color-secondarycomponent: var(--td-gray-color-10); // 色彩 - 次级组件
- --td-bg-color-secondarycomponent-hover: var(--td-gray-color-9); // 色彩 - 次级组件 - hover
- --td-bg-color-secondarycomponent-active: var(--td-gray-color-8); // 色彩 - 次级组件 - active
- --td-bg-color-component-disabled: var(--td-gray-color-12); // 色彩 - 组件 - disabled
-
- // 特殊组件背景色,目前只用于 button、input 组件多主题场景,浅色主题下固定为白色,深色主题下为 transparent 适配背景颜色
- --td-bg-color-specialcomponent: transparent;
-
- // 文本颜色
- --td-text-color-primary: var(--td-font-white-1); // 色彩-文字-主要
- --td-text-color-secondary: var(--td-font-white-2); // 色彩-文字-次要
- --td-text-color-placeholder: var(--td-font-white-3); // 色彩-文字-占位符/说明
- --td-text-color-disabled: var(--td-font-white-4); // 色彩-文字-禁用
- --td-text-color-anti: #fff; // 色彩-文字-反色
- --td-text-color-brand: var(--td-brand-color-8); // 色彩-文字-品牌
- --td-text-color-link: var(--td-brand-color-8); // 色彩-文字-链接
- --td-text-color-watermark: rgba(255, 255, 255, 10%); // 色彩-文字-水印颜色
-
- // 分割线
- --td-border-level-1-color: var(--td-gray-color-11);
- --td-component-stroke: var(--td-gray-color-11);
- // 边框
- --td-border-level-2-color: var(--td-gray-color-9);
- --td-component-border: var(--td-gray-color-9);
-
- // 基础/下层 投影 hover 使用的组件包括:表格 /
- --td-shadow-1: 0 4px 6px rgba(0, 0, 0, 6%), 0 1px 10px rgba(0, 0, 0, 8%), 0 2px 4px rgba(0, 0, 0, 12%);
- // 中层投影 下拉 使用的组件包括:下拉菜单 / 气泡确认框 / 选择器 /
- --td-shadow-2: 0 8px 10px rgba(0, 0, 0, 12%), 0 3px 14px rgba(0, 0, 0, 10%), 0 5px 5px rgba(0, 0, 0, 16%);
- // 上层投影(警示/弹窗)使用的组件包括:全局提示 / 消息通知
- --td-shadow-3: 0 16px 24px rgba(0, 0, 0, 14%), 0 6px 30px rgba(0, 0, 0, 12%), 0 8px 10px rgba(0, 0, 0, 20%);
- // 内投影 用于弹窗类组件(气泡确认框 / 全局提示 / 消息通知)的内描边
-
- --td-shadow-inset-top: inset 0 0.5px 0 #5e5e5e;
- --td-shadow-inset-right: inset 0.5px 0 0 #5e5e5e;
- --td-shadow-inset-bottom: inset 0 -0.5px 0 #5e5e5e;
- --td-shadow-inset-left: inset -0.5px 0 0 #5e5e5e;
-
- // table 特定阴影
- --td-table-shadow-color: rgba(0, 0, 0, 55%);
-
- // 滚动条颜色
- --td-scrollbar-color: rgba(255, 255, 255, 10%);
- // 滚动条悬浮颜色( hover )
- --td-scrollbar-hover-color: rgba(255, 255, 255, 30%);
- // 滚动条轨道颜色,不能是带透明度,否则纵向滚动时,横向滚动条会穿透
- --td-scroll-track-color: #333;
+ --ao-stroke: #393939; // 分割线
+ --ao-border: #5e5e5e; // 边框
}
diff --git a/code/base-project/base-vue/packages/ao-design/src/_styles/theme/_light.scss b/code/base-project/base-vue/packages/ao-design/src/_styles/theme/_light.scss
index 45d00bd7..66dae25e 100644
--- a/code/base-project/base-vue/packages/ao-design/src/_styles/theme/_light.scss
+++ b/code/base-project/base-vue/packages/ao-design/src/_styles/theme/_light.scss
@@ -1,170 +1,40 @@
:root,
:root[theme-mode='light'] {
- --td-brand-color-1: #f2f3ff;
- --td-brand-color-2: #d9e1ff;
- --td-brand-color-3: #b5c7ff;
- --td-brand-color-4: #8eabff;
- --td-brand-color-5: #618dff;
- --td-brand-color-6: #366ef4;
- --td-brand-color-7: #0052d9;
- --td-brand-color-8: #003cab;
- --td-brand-color-9: #002a7c;
- --td-brand-color-10: #001a57;
- --td-warning-color-1: #fff1e9;
- --td-warning-color-2: #ffd9c2;
- --td-warning-color-3: #ffb98c;
- --td-warning-color-4: #fa9550;
- --td-warning-color-5: #e37318;
- --td-warning-color-6: #be5a00;
- --td-warning-color-7: #954500;
- --td-warning-color-8: #713300;
- --td-warning-color-9: #532300;
- --td-warning-color-10: #3b1700;
- --td-danger-color-1: #fff0ed;
- --td-danger-color-2: #ffd8d2;
- --td-danger-color-3: #ffb9b0;
- --td-danger-color-4: #ff9285;
- --td-danger-color-5: #f6685d;
- --td-danger-color-6: #d54941;
- --td-danger-color-7: #ad352f;
- --td-danger-color-8: #881f1c;
- --td-danger-color-9: #68070a;
- --td-danger-color-10: #490002;
- --td-success-color-1: #e3f9e9;
- --td-success-color-2: #c6f3d7;
- --td-success-color-3: #92dab2;
- --td-success-color-4: #56c08d;
- --td-success-color-5: #2ba471;
- --td-success-color-6: #008858;
- --td-success-color-7: #006c45;
- --td-success-color-8: #005334;
- --td-success-color-9: #003b23;
- --td-success-color-10: #002515;
- --td-gray-color-1: #f3f3f3;
- --td-gray-color-2: #eee;
- --td-gray-color-3: #e8e8e8;
- --td-gray-color-4: #ddd;
- --td-gray-color-5: #c6c6c6;
- --td-gray-color-6: #a6a6a6;
- --td-gray-color-7: #8b8b8b;
- --td-gray-color-8: #777;
- --td-gray-color-9: #5e5e5e;
- --td-gray-color-10: #4b4b4b;
- --td-gray-color-11: #393939;
- --td-gray-color-12: #2c2c2c;
- --td-gray-color-13: #242424;
- --td-gray-color-14: #181818;
+ --ao-primary: #0052d9;
+ --ao-warning: #e37318;
+ --ao-danger: #d54941;
+ --ao-success: #2ba471;
- // 文字 & 图标 颜色
- --td-font-white-1: rgba(255, 255, 255, 100%);
- --td-font-white-2: rgba(255, 255, 255, 55%);
- --td-font-white-3: rgba(255, 255, 255, 35%);
- --td-font-white-4: rgba(255, 255, 255, 22%);
- --td-font-gray-1: rgba(0, 0, 0, 90%);
- --td-font-gray-2: rgba(0, 0, 0, 60%);
- --td-font-gray-3: rgba(0, 0, 0, 40%);
- --td-font-gray-4: rgba(0, 0, 0, 26%);
+ --ao-primary-hover: #366ef4;
+ --ao-primary-focus: #d9e1ff;
+ --ao-primary-active: #003cab;
+ --ao-primary-disabled: #b5c7ff;
- // 基础颜色
- --td-brand-color: var(--td-brand-color-7); // 色彩-品牌-可操作
- --td-warning-color: var(--td-warning-color-5); // 色彩-功能-警告
- --td-danger-color: var(--td-danger-color-6); // 色彩-功能-失败
- --td-success-color: var(--td-success-color-5); // 色彩-功能-成功
+ --ao-warning-hover: #fa9550;
+ --ao-warning-focus: #ffd9c2;
+ --ao-warning-active: #be5a00;
+ --ao-warning-disabled: #ffb98c;
- // 基础颜色的扩展 用于 hover / 聚焦 / 禁用 / 点击 等状态
- --td-brand-color-hover: var(--td-brand-color-6); // hover态
- --td-brand-color-focus: var(--td-brand-color-2); // focus态,包括鼠标和键盘
- --td-brand-color-active: var(--td-brand-color-8); // 点击态
- --td-brand-color-disabled: var(--td-brand-color-3); // 禁用态
- --td-brand-color-light: var(--td-brand-color-1); // 浅色的选中态
- --td-brand-color-light-hover: var(--td-brand-color-2);
+ --ao-danger-hover: #f6685d;
+ --ao-danger-focus: #ffd8d2;
+ --ao-danger-active: #ad352f;
+ --ao-danger-disabled: #ffb9b0;
- // 警告色扩展
- --td-warning-color-hover: var(--td-warning-color-4);
- --td-warning-color-focus: var(--td-warning-color-2);
- --td-warning-color-active: var(--td-warning-color-6);
- --td-warning-color-disabled: var(--td-warning-color-3);
- --td-warning-color-light: var(--td-warning-color-1);
- --td-warning-color-light-hover: var(--td-warning-color-2);
+ --ao-success-hover: #56c08d;
+ --ao-success-focus: #c6f3d7;
+ --ao-success-active: #008858;
+ --ao-success-disabled: #92dab2;
- // 失败/错误色扩展
- --td-danger-color-hover: var(--td-danger-color-5);
- --td-danger-color-focus: var(--td-danger-color-2);
- --td-danger-color-active: var(--td-danger-color-7);
- --td-danger-color-disabled: var(--td-danger-color-3);
- --td-danger-color-light: var(--td-danger-color-1);
- --td-danger-color-light-hover: var(--td-danger-color-2);
+ --ao-text-primary: rgba(0, 0, 0, 90%); /* 主要文字 */
+ --ao-text-secondary: rgba(0, 0, 0, 60%); /* 次要文字 / 辅助信息 */
+ --ao-text-assist: rgba(0, 0, 0, 50%); /* 输入框内部辅助元素(icon/count) */
+ --ao-text-placeholder: rgba(0, 0, 0, 40%); /* 占位符 / 说明文字 */
+ --ao-text-disabled: rgba(0, 0, 0, 26%); /* 禁用文字 */
+ --ao-text-anti: #fff; /* 反色文字(深色背景上) */
+ --ao-text-brand: #0052d9; /* 品牌色文字 / 主操作色 */
+ --ao-text-link: #003cab; /* 链接文字 */
+ --ao-text-watermark: rgba(0, 0, 0, 10%); /* 水印 / 背景文字 */
- // 成功色扩展
- --td-success-color-hover: var(--td-success-color-4);
- --td-success-color-focus: var(--td-success-color-2);
- --td-success-color-active: var(--td-success-color-6);
- --td-success-color-disabled: var(--td-success-color-3);
- --td-success-color-light: var(--td-success-color-1);
- --td-success-color-light-hover: var(--td-success-color-2);
-
- // 遮罩
- --td-mask-active: rgba(0, 0, 0, 60%); // 遮罩-弹出
- --td-mask-disabled: rgba(255, 255, 255, 60%); // 遮罩-禁用
- --td-mask-background: rgba(255, 255, 255, 96%); // 二维码遮罩
-
- // 背景色
- --td-bg-color-page: var(--td-gray-color-2); // 色彩 - page
- --td-bg-color-container: #fff; // 色彩 - 容器
- --td-bg-color-container-hover: var(--td-gray-color-1); // 色彩 - 容器 - hover
- --td-bg-color-container-active: var(--td-gray-color-3); // 色彩 - 容器 - active
- --td-bg-color-container-select: #fff; // 色彩 - 容器 - select
- --td-bg-color-secondarycontainer: var(--td-gray-color-1); // 色彩 - 次级容器
- --td-bg-color-secondarycontainer-hover: var(--td-gray-color-2); // 色彩 - 次级容器 - hover
- --td-bg-color-secondarycontainer-active: var(--td-gray-color-4); // 色彩 - 次级容器 - active
- --td-bg-color-component: var(--td-gray-color-3); // 色彩 - 组件
- --td-bg-color-component-hover: var(--td-gray-color-4); // 色彩 - 组件 - hover
- --td-bg-color-component-active: var(--td-gray-color-6); // 色彩 - 组件 - active
- --td-bg-color-secondarycomponent: var(--td-gray-color-4); // 色彩 - 次级组件
- --td-bg-color-secondarycomponent-hover: var(--td-gray-color-5); // 色彩 - 次级组件 - hover
- --td-bg-color-secondarycomponent-active: var(--td-gray-color-6); // 色彩 - 次级组件 - active
- --td-bg-color-component-disabled: var(--td-gray-color-2); // 色彩 - 组件 - disabled
-
- // 特殊组件背景色,目前只用于 button、input 组件多主题场景,浅色主题下固定为白色,深色主题下为 transparent 适配背景颜色
- --td-bg-color-specialcomponent: #fff;
-
- // 文本颜色
- --td-text-color-primary: var(--td-font-gray-1); // 色彩-文字-主要
- --td-text-color-secondary: var(--td-font-gray-2); // 色彩-文字-次要
- --td-text-color-placeholder: var(--td-font-gray-3); // 色彩-文字-占位符/说明
- --td-text-color-disabled: var(--td-font-gray-4); // 色彩-文字-禁用
- --td-text-color-anti: #fff; // 色彩-文字-反色
- --td-text-color-brand: var(--td-brand-color-7); // 色彩-文字-品牌
- --td-text-color-link: var(--td-brand-color-8); // 色彩-文字-链接
- --td-text-color-watermark: rgba(0, 0, 0, 10%); // 色彩-文字-水印颜色
-
- // 分割线
- --td-border-level-1-color: var(--td-gray-color-3);
- --td-component-stroke: var(--td-gray-color-3);
- // 边框
- --td-border-level-2-color: var(--td-gray-color-4);
- --td-component-border: var(--td-gray-color-4);
-
- // 基础/下层 投影 hover 使用的组件包括:表格 /
- --td-shadow-1: 0 1px 10px rgba(0, 0, 0, 5%), 0 4px 5px rgba(0, 0, 0, 8%), 0 2px 4px -1px rgba(0, 0, 0, 12%);
- // 中层投影 下拉 使用的组件包括:下拉菜单 / 气泡确认框 / 选择器 /
- --td-shadow-2: 0 3px 14px 2px rgba(0, 0, 0, 5%), 0 8px 10px 1px rgba(0, 0, 0, 6%), 0 5px 5px -3px rgba(0, 0, 0, 10%);
- // 上层投影(警示/弹窗)使用的组件包括:全局提示 / 消息通知
- --td-shadow-3: 0 6px 30px 5px rgba(0, 0, 0, 5%), 0 16px 24px 2px rgba(0, 0, 0, 4%), 0 8px 10px -5px rgba(0, 0, 0, 8%);
-
- // 内投影 用于弹窗类组件(气泡确认框 / 全局提示 / 消息通知)的内描边
- --td-shadow-inset-top: inset 0 0.5px 0 #dcdcdc;
- --td-shadow-inset-right: inset 0.5px 0 0 #dcdcdc;
- --td-shadow-inset-bottom: inset 0 -0.5px 0 #dcdcdc;
- --td-shadow-inset-left: inset -0.5px 0 0 #dcdcdc;
-
- // table 特定阴影
- --td-table-shadow-color: rgba(0, 0, 0, 8%);
-
- // 滚动条颜色
- --td-scrollbar-color: rgba(0, 0, 0, 10%);
- // 滚动条悬浮颜色( hover )
- --td-scrollbar-hover-color: rgba(0, 0, 0, 30%);
- // 滚动条轨道颜色,不能是带透明度,否则纵向滚动时,横向滚动条会穿透
- --td-scroll-track-color: #fff;
+ --ao-stroke: #e8e8e8; // 分割线
+ --ao-border: #ddd; // 边框
}
diff --git a/code/base-project/base-vue/packages/ao-design/src/_styles/theme/index.scss b/code/base-project/base-vue/packages/ao-design/src/_styles/theme/index.scss
index 72096001..a7583226 100644
--- a/code/base-project/base-vue/packages/ao-design/src/_styles/theme/index.scss
+++ b/code/base-project/base-vue/packages/ao-design/src/_styles/theme/index.scss
@@ -4,31 +4,4 @@
@use './_font' as *;
@use './_size' as *;
-$prefix: 'ao' !default;
-$default-color: #165dff !default;
-$primary-color: $default-color !default;
-// $danger-color: #f53f3f !default;
-// $warning-color: #ff7d00 !default;
-// $success-color: #00b42a !default;
-// $border-radius: 2px;
-
-$input-border-color: #ddd;
-$input-border: 1px solid $input-border-color;
-
-$input-hover-border-color: $primary-color;
-$input-focus-border-color: $primary-color;
-
-$input-hover-border: 1px solid $input-hover-border-color;
-$input-focus-border: 1px solid $input-focus-border-color;
-
-$input-focus-shadow: 0 0 0 2px rgba($primary-color, 0.2);
-
-$input-placeholder-color: #999999;
-$input-icon-wrapper-size: 18px;
-$input-affix-color: #6e6e6e;
-$input-icon-hover-bg-color: #f2f3f5;
-
-$input-readonly-bg-color: #fdfdfd;
-$input-disabled-bg-color: #fafafc;
-$input-disabled-font-color: #a8a8a8;
diff --git a/code/base-project/base-vue/packages/ao-design/src/button/index.scss b/code/base-project/base-vue/packages/ao-design/src/button/index.scss
index 644813f1..414e9967 100644
--- a/code/base-project/base-vue/packages/ao-design/src/button/index.scss
+++ b/code/base-project/base-vue/packages/ao-design/src/button/index.scss
@@ -1,7 +1,5 @@
@use 'sass:color';
-@use '../_styles/variables' as *;
-
-@use '../_styles/theme/index' as *;
+@use '../_styles/_variables.scss' as *;
$btn-prefix: #{$prefix}-btn;
@@ -78,35 +76,35 @@ $btn-prefix: #{$prefix}-btn;
}
&.#{$btn-prefix}-status-primary {
- background: $brand-color;
- color: $text-color-anti;
+ background: $primary;
+ color: $text-anti;
&:hover:enabled {
- background: $brand-color-hover;
+ background: $primary-hover;
}
&:active:enabled {
- background: $brand-color-active;
+ background: $primary-active;
}
}
&.#{$btn-prefix}-status-danger {
- background: $danger-color;
- color: $text-color-anti;
+ background: $danger;
+ color: $text-anti;
&:hover:enabled {
- background: $danger-color-hover;
+ background: $danger-hover;
}
&:active:enabled {
- background: $danger-color-active;
+ background: $danger-active;
}
}
&.#{$btn-prefix}-status-warning {
- background: $warning-color;
- color: $text-color-anti;
+ background: $danger;
+ color: $text-anti;
&:hover:enabled {
- background: $warning-color-hover;
+ background: $danger-hover;
}
&:active:enabled {
- background: $warning-color-active;
+ background: $danger-active;
}
}
&.#{$btn-prefix}-status-success {
diff --git a/code/base-project/base-vue/packages/ao-design/src/group/index.scss b/code/base-project/base-vue/packages/ao-design/src/group/index.scss
index 0b9cd7ce..0d769b42 100644
--- a/code/base-project/base-vue/packages/ao-design/src/group/index.scss
+++ b/code/base-project/base-vue/packages/ao-design/src/group/index.scss
@@ -1,4 +1,4 @@
-@use '../_styles/theme/index' as *;
+@use '../_styles/_variables.scss' as *;
@use 'sass:color';
$group-prefix: #{$prefix}-group;
@@ -15,24 +15,24 @@ $group-prefix: #{$prefix}-group;
border-radius: 0;
position: relative;
- border: $input-border;
+ border: $border-outline-color;
border-left: none;
box-shadow: none;
&:hover {
- border-left: $input-hover-border;
+ border-left: $brand-color;
z-index: 1;
box-shadow: none;
}
&:focus-within,
&:active {
- border-left: $input-focus-border;
+ border-left: $brand-color;
z-index: 1;
box-shadow: none;
}
}
> *:first-child {
- border-left: $input-border;
+ border-left: $border-outline-color;
border-top-left-radius: $border-radius;
border-bottom-left-radius: $border-radius;
}
diff --git a/code/base-project/base-vue/packages/ao-design/src/icon/index.scss b/code/base-project/base-vue/packages/ao-design/src/icon/index.scss
index 34196ddb..a2d46b96 100644
--- a/code/base-project/base-vue/packages/ao-design/src/icon/index.scss
+++ b/code/base-project/base-vue/packages/ao-design/src/icon/index.scss
@@ -1,4 +1,4 @@
-@use '../_styles/theme/index' as *;
+@use '../_styles/_variables.scss' as *;
$icon-prefix: #{$prefix}-icon;
diff --git a/code/base-project/base-vue/packages/ao-design/src/index.scss b/code/base-project/base-vue/packages/ao-design/src/index.scss
index c6f8a736..b95dcde1 100644
--- a/code/base-project/base-vue/packages/ao-design/src/index.scss
+++ b/code/base-project/base-vue/packages/ao-design/src/index.scss
@@ -1,3 +1,5 @@
+@use './_styles/index.scss' as *;
+
@use './button/index.scss' as *;
@use './input/index.scss' as *;
@use './textarea/index.scss' as *;
diff --git a/code/base-project/base-vue/packages/ao-design/src/input/index.scss b/code/base-project/base-vue/packages/ao-design/src/input/index.scss
index 67172535..2ebd5d47 100644
--- a/code/base-project/base-vue/packages/ao-design/src/input/index.scss
+++ b/code/base-project/base-vue/packages/ao-design/src/input/index.scss
@@ -1,4 +1,4 @@
-@use '../_styles/theme/index' as *;
+@use '../_styles/_variables.scss' as *;
@use 'sass:color';
$input-prefix: #{$prefix}-input;
@@ -24,7 +24,7 @@ $input-prefix: #{$prefix}-input;
display: flex;
align-items: center;
width: 100%;
- border: $input-border;
+ border: 1px solid $border-outline-color;
border-radius: $border-radius;
box-sizing: border-box;
@@ -48,17 +48,17 @@ $input-prefix: #{$prefix}-input;
height: 100%;
&::placeholder {
- color: $input-placeholder-color;
+ color: $text-color-placeholder;
}
}
&:hover {
- border-color: $input-hover-border-color;
+ border-color: $brand-color;
}
&:focus-within {
- border-color: $input-focus-border-color;
- box-shadow: $input-focus-shadow;
+ border-color: $brand-color;
+ box-shadow: 0 0 0 2px $brand-color-focus;
}
.#{$input-prefix}-align {
@@ -90,29 +90,29 @@ $input-prefix: #{$prefix}-input;
}
&.#{$input-prefix}-disabled {
- background-color: $input-disabled-bg-color;
+ background-color: $bg-color-component-disabled;
cursor: not-allowed;
.#{$input-prefix}-input {
- color: $input-disabled-font-color;
+ color: $text-color-disabled;
}
.#{$input-prefix}-input::placeholder {
- color: $input-disabled-font-color;
+ color: $text-color-disabled;
}
.#{$input-prefix}-prefix,
.#{$input-prefix}-suffix {
- color: $input-disabled-font-color;
+ color: $text-color-disabled;
}
&:hover,
&:focus-within {
- border-color: $input-border-color;
+ border: $border-outline-color;
box-shadow: none;
}
}
&.#{$input-prefix}-readonly {
- background-color: $input-readonly-bg-color;
+ background-color: $bg-color-component-readonly;
}
.#{$input-prefix}-icon {
@@ -120,18 +120,17 @@ $input-prefix: #{$prefix}-input;
transition:
color 0.2s,
background-color 0.2s;
- color: $input-affix-color;
+ color: $text-color-secondary;
display: inline-flex;
align-items: center;
justify-content: center;
-
- width: $input-icon-wrapper-size;
- height: $input-icon-wrapper-size;
+ width: 18px;
+ height: 18px;
+ border-radius: 50%;
&:hover {
- background-color: $input-icon-hover-bg-color;
- border-radius: 50%;
+ background-color: $bg-color-component-hover;
}
}
@@ -139,6 +138,6 @@ $input-prefix: #{$prefix}-input;
flex-shrink: 0;
margin-left: 4px;
white-space: nowrap;
- color: $input-affix-color;
+ color: $text-color-secondary;
}
}
diff --git a/code/base-project/base-vue/packages/ao-design/src/spin/index.scss b/code/base-project/base-vue/packages/ao-design/src/spin/index.scss
index 7b8b31d1..5ccd9f39 100644
--- a/code/base-project/base-vue/packages/ao-design/src/spin/index.scss
+++ b/code/base-project/base-vue/packages/ao-design/src/spin/index.scss
@@ -1,4 +1,4 @@
-@use '../_styles/theme/index' as *;
+@use '../_styles/_variables.scss' as *;
$spin-prefix: #{$prefix}-spin;
@@ -20,7 +20,7 @@ $spin-prefix: #{$prefix}-spin;
flex-direction: column;
justify-content: center;
align-items: center;
- color: $primary-color;
+ color: $brand-color;
}
&-tip {
diff --git a/code/base-project/base-vue/packages/ao-design/src/textarea/index.scss b/code/base-project/base-vue/packages/ao-design/src/textarea/index.scss
index 109911f8..91b9d6e5 100644
--- a/code/base-project/base-vue/packages/ao-design/src/textarea/index.scss
+++ b/code/base-project/base-vue/packages/ao-design/src/textarea/index.scss
@@ -1,4 +1,4 @@
-@use '../_styles/theme/index' as *;
+@use '../_styles/_variables.scss' as *;
@use 'sass:color';
$textarea-prefix: #{$prefix}-textarea;
@@ -23,20 +23,20 @@ $textarea-prefix: #{$prefix}-textarea;
transition:
all cubic-bezier(0.38, 0, 0.24, 1) 0.2s,
height 0s;
- border: $input-border;
+ border: 1px solid $border-outline-color;
border-radius: $border-radius;
&::placeholder {
- color: $input-placeholder-color;
+ color: $text-color-placeholder;
}
&:hover {
- border-color: $input-hover-border-color;
+ border-color: $brand-color;
}
&:focus-within {
- border-color: $input-focus-border-color;
- box-shadow: $input-focus-shadow;
+ border-color: $brand-color;
+ box-shadow: 0 0 0 2px $brand-color-focus;
}
&::-webkit-scrollbar {
@@ -58,19 +58,19 @@ $textarea-prefix: #{$prefix}-textarea;
}
.#{$textarea-prefix}-disabled {
- background-color: $input-disabled-bg-color;
+ background-color: $bg-color-component-disabled;
cursor: not-allowed;
- color: $input-disabled-font-color;
+ color: $text-color-disabled;
&:hover,
&:focus-within {
- border-color: $input-border-color;
+ border: $border-outline-color;
box-shadow: none;
}
}
.#{$textarea-prefix}-readonly {
- background-color: $input-readonly-bg-color;
+ background-color: $bg-color-component-readonly;
}
.#{$textarea-prefix}-clear {
@@ -80,21 +80,21 @@ $textarea-prefix: #{$prefix}-textarea;
transform: translateY(-50%);
cursor: pointer;
- width: $input-icon-wrapper-size;
- height: $input-icon-wrapper-size;
+ width: 18px;
+ height: 18px;
+ border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
- color: $input-affix-color;
+ color: $text-color-secondary;
transition:
color 0.2s,
background-color 0.2s;
&:hover {
- background-color: $input-icon-hover-bg-color;
- border-radius: 50%;
+ background-color: $bg-color-component-hover;
}
}
@@ -103,6 +103,6 @@ $textarea-prefix: #{$prefix}-textarea;
right: 8px;
bottom: 0px;
font-size: 12px;
- color: $input-affix-color;
+ color: $text-color-secondary;
}
}
diff --git a/code/base-project/base-vue/src/App.vue b/code/base-project/base-vue/src/App.vue
index 3973a87d..65cbe297 100644
--- a/code/base-project/base-vue/src/App.vue
+++ b/code/base-project/base-vue/src/App.vue
@@ -1,6 +1,24 @@
+
+
-
+
+
+ 黑色主题
+
+
+
+ 白色主题
+
+
+
Normal
@@ -119,5 +137,8 @@
large
+
+
+
diff --git a/code/base-project/base-vue/src/components.d.ts b/code/base-project/base-vue/src/components.d.ts
index 59f27f54..224dd33b 100644
--- a/code/base-project/base-vue/src/components.d.ts
+++ b/code/base-project/base-vue/src/components.d.ts
@@ -8,6 +8,7 @@ export {}
/* prettier-ignore */
declare module 'vue' {
export interface GlobalComponents {
+ A: typeof import('@ao/ao-design')['default']
AButton: typeof import('@ao/ao-design')['Button']
AConfigProvider: typeof import('@ao/ao-design')['ConfigProvider']
AGroup: typeof import('@ao/ao-design')['Group']
@@ -16,6 +17,7 @@ declare module 'vue' {
ALoading: typeof import('@ao/ao-design')['Loading']
ALoding: typeof import('@ao/ao-design')['Loding']
ASpin: typeof import('@ao/ao-design')['Spin']
+ AT: typeof import('@ao/ao-design')['T']
ATex: typeof import('@ao/ao-design')['Tex']
ATextarea: typeof import('@ao/ao-design')['Textarea']
}