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 @@ + + 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'] }