@admin-core/design 0.1.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/README.en.md +698 -0
  2. package/README.md +588 -285
  3. package/dist/index.cjs +5 -1
  4. package/dist/index.cjs.map +1 -1
  5. package/dist/index.d.ts +1 -0
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +2616 -1
  8. package/dist/index.js.map +1 -1
  9. package/dist/index.umd.js +5 -1
  10. package/dist/index.umd.js.map +1 -1
  11. package/dist/style.css +1 -1
  12. package/dist/theme/composables.d.ts +89 -0
  13. package/dist/theme/composables.d.ts.map +1 -0
  14. package/dist/theme/constants.d.ts +56 -0
  15. package/dist/theme/constants.d.ts.map +1 -0
  16. package/dist/theme/i18n/en-US.d.ts +3 -0
  17. package/dist/theme/i18n/en-US.d.ts.map +1 -0
  18. package/dist/theme/i18n/index.d.ts +34 -0
  19. package/dist/theme/i18n/index.d.ts.map +1 -0
  20. package/dist/theme/i18n/zh-CN.d.ts +69 -0
  21. package/dist/theme/i18n/zh-CN.d.ts.map +1 -0
  22. package/dist/theme/index.d.ts +52 -0
  23. package/dist/theme/index.d.ts.map +1 -0
  24. package/dist/theme/integration.d.ts +124 -0
  25. package/dist/theme/integration.d.ts.map +1 -0
  26. package/dist/theme/types.d.ts +135 -0
  27. package/dist/theme/types.d.ts.map +1 -0
  28. package/dist/theme/utils.d.ts +230 -0
  29. package/dist/theme/utils.d.ts.map +1 -0
  30. package/package.json +32 -4
  31. package/src/css/base.css +145 -0
  32. package/src/css/components.css +96 -0
  33. package/src/css/index.css +21 -0
  34. package/src/css/integrations/ant-design-vue.css +64 -0
  35. package/src/css/integrations/arco-design.css +62 -0
  36. package/src/css/integrations/element-plus.css +157 -0
  37. package/src/css/integrations/index.css +17 -0
  38. package/src/css/integrations/naive-ui.css +60 -0
  39. package/src/css/nprogress.css +74 -0
  40. package/src/css/transition.css +256 -0
  41. package/src/css/ui.css +117 -0
  42. package/src/css/utilities.css +138 -0
  43. package/src/tokens/dark.css +406 -0
  44. package/src/tokens/index.ts +6 -0
  45. package/src/tokens/light.css +297 -0
@@ -0,0 +1,145 @@
1
+ /**
2
+ * 基础样式
3
+ * 全局重置和基础元素样式
4
+ */
5
+ @layer base {
6
+ /* 全局盒模型和边框重置 */
7
+ *,
8
+ ::after,
9
+ ::before {
10
+ box-sizing: border-box;
11
+ border-style: solid;
12
+ border-width: 0;
13
+ border-color: hsl(var(--border));
14
+ }
15
+
16
+ /* HTML 根元素样式 */
17
+ html {
18
+ color: hsl(var(--foreground));
19
+ background-color: hsl(var(--background));
20
+ font-family: var(--font-family);
21
+ font-size: var(--font-size-base, 16px);
22
+ line-height: 1.15;
23
+ font-variation-settings: normal;
24
+ text-size-adjust: 100%;
25
+ font-synthesis-weight: none;
26
+ scroll-behavior: smooth;
27
+ text-rendering: optimizelegibility;
28
+ -webkit-tap-highlight-color: transparent;
29
+ }
30
+
31
+ /* 应用容器、body 和 html 全高度 */
32
+ #app,
33
+ body,
34
+ html {
35
+ width: 100%;
36
+ height: 100%;
37
+ }
38
+
39
+ /* Body 样式 */
40
+ body {
41
+ min-height: 100vh;
42
+ }
43
+
44
+ /* 链接样式重置 */
45
+ a,
46
+ a:active,
47
+ a:hover,
48
+ a:link,
49
+ a:visited {
50
+ text-decoration: none;
51
+ }
52
+
53
+ /* 视图过渡动画配置 */
54
+ ::view-transition-new(root),
55
+ ::view-transition-old(root) {
56
+ animation: none;
57
+ mix-blend-mode: normal;
58
+ }
59
+
60
+ /* 旧视图层级 */
61
+ ::view-transition-old(root) {
62
+ z-index: 1;
63
+ }
64
+
65
+ /* 新视图层级 */
66
+ ::view-transition-new(root) {
67
+ z-index: 2147483646;
68
+ }
69
+
70
+ /* 暗色模式下的视图过渡层级反转 */
71
+ html.dark::view-transition-old(root) {
72
+ z-index: 2147483646;
73
+ }
74
+
75
+ html.dark::view-transition-new(root) {
76
+ z-index: 1;
77
+ }
78
+
79
+ /* 输入框占位符样式 */
80
+ input::placeholder,
81
+ textarea::placeholder {
82
+ opacity: 1;
83
+ color: hsl(var(--input-placeholder));
84
+ }
85
+
86
+ /* Select 下拉框样式 */
87
+ select {
88
+ background-color: hsl(var(--input-background)) !important;
89
+ color: hsl(var(--foreground)) !important;
90
+ color-scheme: light dark;
91
+ }
92
+
93
+ /* 深色模式下的 select */
94
+ html.dark select {
95
+ color-scheme: dark;
96
+ background-color: hsl(var(--background)) !important;
97
+ }
98
+
99
+ /* Select 选项样式 - 尽力而为,浏览器支持有限 */
100
+ select option {
101
+ background-color: hsl(var(--background)) !important;
102
+ color: hsl(var(--foreground)) !important;
103
+ }
104
+
105
+ html.dark select option {
106
+ background-color: hsl(var(--background)) !important;
107
+ color: hsl(var(--foreground)) !important;
108
+ }
109
+
110
+ /* 移除数字输入框的增减按钮 */
111
+ input[type='number']::-webkit-inner-spin-button,
112
+ input[type='number']::-webkit-outer-spin-button {
113
+ margin: 0;
114
+ appearance: none;
115
+ }
116
+
117
+ /* 自定义滚动条样式(仅非 macOS 系统) */
118
+ html:not([data-platform='macOs']) {
119
+ /* 滚动条尺寸 */
120
+ ::-webkit-scrollbar {
121
+ height: 10px;
122
+ width: 10px;
123
+ }
124
+
125
+ /* 滚动条滑块 */
126
+ ::-webkit-scrollbar-thumb {
127
+ background-color: hsl(var(--border));
128
+ border-radius: 0.125rem;
129
+ border: none;
130
+ }
131
+
132
+ /* 滚动条轨道 */
133
+ ::-webkit-scrollbar-track {
134
+ border-radius: 0.125rem;
135
+ border: none;
136
+ background-color: transparent;
137
+ box-shadow: none;
138
+ }
139
+
140
+ /* 隐藏滚动条按钮 */
141
+ ::-webkit-scrollbar-button {
142
+ display: none;
143
+ }
144
+ }
145
+ }
@@ -0,0 +1,96 @@
1
+ /**
2
+ * 组件样式
3
+ * 可复用的组件类
4
+ */
5
+ @layer components {
6
+ /* 水平居中布局 */
7
+ .flex-center {
8
+ display: flex;
9
+ align-items: center;
10
+ justify-content: center;
11
+ }
12
+
13
+ /* 垂直居中布局 */
14
+ .flex-col-center {
15
+ display: flex;
16
+ flex-direction: column;
17
+ align-items: center;
18
+ justify-content: center;
19
+ }
20
+
21
+ /* 卡片容器样式 */
22
+ .card-box {
23
+ background-color: hsl(var(--card));
24
+ color: hsl(var(--card-foreground));
25
+ border: 1px solid hsl(var(--border));
26
+ border-radius: 0.75rem;
27
+ }
28
+
29
+ /* 轮廓框样式 */
30
+ .outline-box {
31
+ position: relative;
32
+ cursor: pointer;
33
+ border-radius: 0.375rem;
34
+ padding: 0.25rem;
35
+ outline: 1px solid hsl(var(--border));
36
+ }
37
+
38
+ /* 轮廓框悬停效果 */
39
+ .outline-box::after {
40
+ content: "";
41
+ position: absolute;
42
+ left: 50%;
43
+ top: 50%;
44
+ z-index: 20;
45
+ height: 0;
46
+ width: 1px;
47
+ border-radius: 0.125rem;
48
+ opacity: 0;
49
+ outline: 2px solid transparent;
50
+ transition: all 0.3s;
51
+ }
52
+
53
+ /* 激活状态的轮廓框 */
54
+ .outline-box.outline-box-active {
55
+ outline: 2px solid hsl(var(--primary));
56
+ }
57
+
58
+ .outline-box.outline-box-active::after {
59
+ display: none;
60
+ }
61
+
62
+ /* 非激活状态的悬停效果 */
63
+ .outline-box:not(.outline-box-active):hover::after {
64
+ left: 0;
65
+ top: 0;
66
+ height: 100%;
67
+ width: 100%;
68
+ padding: 0.25rem;
69
+ opacity: 1;
70
+ outline-color: hsl(var(--primary));
71
+ }
72
+
73
+ /* 链接样式 */
74
+ .admin-link {
75
+ color: hsl(var(--primary));
76
+ cursor: pointer;
77
+ }
78
+
79
+ .admin-link:hover {
80
+ opacity: 0.8;
81
+ }
82
+
83
+ .admin-link:active {
84
+ opacity: 0.6;
85
+ }
86
+ }
87
+
88
+ /* 反色模式 */
89
+ html.invert-mode {
90
+ filter: invert(1);
91
+ }
92
+
93
+ /* 灰度模式 */
94
+ html.grayscale-mode {
95
+ filter: grayscale(1);
96
+ }
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @admin-core/design 样式系统入口
3
+ *
4
+ * 包含:
5
+ * 1. Tailwind CSS v4 基础
6
+ * 2. 设计令牌(浅色/暗色主题)
7
+ * 3. 基础样式、组件样式、工具类
8
+ */
9
+
10
+ /* Tailwind CSS v4 导入 */
11
+ @import "tailwindcss";
12
+
13
+ /* 导入设计令牌 */
14
+ @import "../tokens/light.css";
15
+ @import "../tokens/dark.css";
16
+
17
+ /* 导入样式模块 */
18
+ @import "./utilities.css";
19
+ @import "./base.css";
20
+ @import "./components.css";
21
+
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Ant Design Vue 主题集成
3
+ * 将 Admin Core 主题颜色映射到 Ant Design Vue
4
+ *
5
+ * 使用方法:
6
+ * import '@admin-core/design/css/integrations/ant-design-vue.css'
7
+ */
8
+
9
+ :root {
10
+ /* 主色 */
11
+ --ant-primary-color: hsl(var(--primary));
12
+ --ant-primary-color-hover: hsl(var(--primary) / 0.8);
13
+ --ant-primary-color-active: hsl(var(--primary) / 0.9);
14
+ --ant-primary-color-outline: hsl(var(--primary) / 0.2);
15
+
16
+ /* 成功色 */
17
+ --ant-success-color: hsl(var(--success));
18
+ --ant-success-color-hover: hsl(var(--success) / 0.8);
19
+ --ant-success-color-active: hsl(var(--success) / 0.9);
20
+ --ant-success-color-outline: hsl(var(--success) / 0.2);
21
+
22
+ /* 警告色 */
23
+ --ant-warning-color: hsl(var(--warning));
24
+ --ant-warning-color-hover: hsl(var(--warning) / 0.8);
25
+ --ant-warning-color-active: hsl(var(--warning) / 0.9);
26
+ --ant-warning-color-outline: hsl(var(--warning) / 0.2);
27
+
28
+ /* 错误色 */
29
+ --ant-error-color: hsl(var(--destructive));
30
+ --ant-error-color-hover: hsl(var(--destructive) / 0.8);
31
+ --ant-error-color-active: hsl(var(--destructive) / 0.9);
32
+ --ant-error-color-outline: hsl(var(--destructive) / 0.2);
33
+
34
+ /* 信息色 */
35
+ --ant-info-color: hsl(var(--info));
36
+ --ant-info-color-hover: hsl(var(--info) / 0.8);
37
+ --ant-info-color-active: hsl(var(--info) / 0.9);
38
+
39
+ /* 文本颜色 */
40
+ --ant-text-color: hsl(var(--foreground));
41
+ --ant-text-color-secondary: hsl(var(--muted-foreground));
42
+ --ant-text-color-disabled: hsl(var(--muted-foreground) / 0.4);
43
+
44
+ /* 边框颜色 */
45
+ --ant-border-color-base: hsl(var(--border));
46
+ --ant-border-color-split: hsl(var(--border) / 0.5);
47
+
48
+ /* 背景颜色 */
49
+ --ant-background-color-base: hsl(var(--background));
50
+ --ant-background-color-light: hsl(var(--background-deep));
51
+ --ant-component-background: hsl(var(--card));
52
+
53
+ /* 阴影 */
54
+ --ant-box-shadow-base: 0 2px 8px hsl(var(--foreground) / 0.1);
55
+ }
56
+
57
+ /* 暗色模式 */
58
+ .dark {
59
+ --ant-background-color-base: hsl(var(--background));
60
+ --ant-background-color-light: hsl(var(--background-deep));
61
+ --ant-component-background: hsl(var(--card));
62
+ --ant-text-color: hsl(var(--foreground));
63
+ --ant-border-color-base: hsl(var(--border));
64
+ }
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Arco Design 主题集成
3
+ * 将 Admin Core 主题颜色映射到 Arco Design
4
+ *
5
+ * 使用方法:
6
+ * import '@admin-core/design/css/integrations/arco-design.css'
7
+ */
8
+
9
+ :root {
10
+ /* 主色 */
11
+ --color-primary-light-1: hsl(var(--primary) / 0.1);
12
+ --color-primary-light-2: hsl(var(--primary) / 0.2);
13
+ --color-primary-light-3: hsl(var(--primary) / 0.3);
14
+ --color-primary-light-4: hsl(var(--primary) / 0.5);
15
+ --color-primary: hsl(var(--primary));
16
+ --color-primary-6: hsl(var(--primary));
17
+ --color-primary-7: hsl(var(--primary) / 0.9);
18
+
19
+ /* 成功色 */
20
+ --color-success-light-1: hsl(var(--success) / 0.1);
21
+ --color-success-light-2: hsl(var(--success) / 0.2);
22
+ --color-success: hsl(var(--success));
23
+
24
+ /* 警告色 */
25
+ --color-warning-light-1: hsl(var(--warning) / 0.1);
26
+ --color-warning-light-2: hsl(var(--warning) / 0.2);
27
+ --color-warning: hsl(var(--warning));
28
+
29
+ /* 危险色 */
30
+ --color-danger-light-1: hsl(var(--destructive) / 0.1);
31
+ --color-danger-light-2: hsl(var(--destructive) / 0.2);
32
+ --color-danger: hsl(var(--destructive));
33
+
34
+ /* 文本颜色 */
35
+ --color-text-1: hsl(var(--foreground));
36
+ --color-text-2: hsl(var(--foreground) / 0.9);
37
+ --color-text-3: hsl(var(--muted-foreground));
38
+ --color-text-4: hsl(var(--muted-foreground) / 0.6);
39
+
40
+ /* 边框颜色 */
41
+ --color-border: hsl(var(--border));
42
+ --color-border-1: hsl(var(--border) / 0.3);
43
+ --color-border-2: hsl(var(--border) / 0.5);
44
+ --color-border-3: hsl(var(--border) / 0.7);
45
+ --color-border-4: hsl(var(--border));
46
+
47
+ /* 背景颜色 */
48
+ --color-bg-1: hsl(var(--background));
49
+ --color-bg-2: hsl(var(--background-deep));
50
+ --color-bg-3: hsl(var(--card));
51
+ --color-bg-4: hsl(var(--muted));
52
+ --color-bg-5: hsl(var(--muted) / 0.5);
53
+ }
54
+
55
+ /* 暗色模式 */
56
+ .dark {
57
+ --color-bg-1: hsl(var(--background));
58
+ --color-bg-2: hsl(var(--background-deep));
59
+ --color-bg-3: hsl(var(--card));
60
+ --color-text-1: hsl(var(--foreground));
61
+ --color-border: hsl(var(--border));
62
+ }
@@ -0,0 +1,157 @@
1
+ /**
2
+ * Element Plus 主题集成
3
+ * 将 Admin Core 主题颜色映射到 Element Plus
4
+ *
5
+ * 使用方法:
6
+ * import '@admin-core/design/css/integrations/element-plus.css'
7
+ */
8
+
9
+ /* 主色 */
10
+ :root {
11
+ --el-color-primary: hsl(var(--primary));
12
+ --el-color-primary-light-3: hsl(var(--primary) / 0.7);
13
+ --el-color-primary-light-5: hsl(var(--primary) / 0.5);
14
+ --el-color-primary-light-7: hsl(var(--primary) / 0.3);
15
+ --el-color-primary-light-8: hsl(var(--primary) / 0.2);
16
+ --el-color-primary-light-9: hsl(var(--primary) / 0.1);
17
+ --el-color-primary-dark-2: hsl(var(--primary));
18
+
19
+ /* 成功色 */
20
+ --el-color-success: hsl(var(--success));
21
+ --el-color-success-light-3: hsl(var(--success) / 0.7);
22
+ --el-color-success-light-5: hsl(var(--success) / 0.5);
23
+ --el-color-success-light-7: hsl(var(--success) / 0.3);
24
+ --el-color-success-light-8: hsl(var(--success) / 0.2);
25
+ --el-color-success-light-9: hsl(var(--success) / 0.1);
26
+ --el-color-success-dark-2: hsl(var(--success));
27
+
28
+ /* 警告色 */
29
+ --el-color-warning: hsl(var(--warning));
30
+ --el-color-warning-light-3: hsl(var(--warning) / 0.7);
31
+ --el-color-warning-light-5: hsl(var(--warning) / 0.5);
32
+ --el-color-warning-light-7: hsl(var(--warning) / 0.3);
33
+ --el-color-warning-light-8: hsl(var(--warning) / 0.2);
34
+ --el-color-warning-light-9: hsl(var(--warning) / 0.1);
35
+ --el-color-warning-dark-2: hsl(var(--warning));
36
+
37
+ /* 危险色 */
38
+ --el-color-danger: hsl(var(--destructive));
39
+ --el-color-danger-light-3: hsl(var(--destructive) / 0.7);
40
+ --el-color-danger-light-5: hsl(var(--destructive) / 0.5);
41
+ --el-color-danger-light-7: hsl(var(--destructive) / 0.3);
42
+ --el-color-danger-light-8: hsl(var(--destructive) / 0.2);
43
+ --el-color-danger-light-9: hsl(var(--destructive) / 0.1);
44
+ --el-color-danger-dark-2: hsl(var(--destructive));
45
+
46
+ /* 信息色 */
47
+ --el-color-info: hsl(var(--muted-foreground));
48
+ --el-color-info-light-3: hsl(var(--muted-foreground) / 0.7);
49
+ --el-color-info-light-5: hsl(var(--muted-foreground) / 0.5);
50
+ --el-color-info-light-7: hsl(var(--muted-foreground) / 0.3);
51
+ --el-color-info-light-8: hsl(var(--muted-foreground) / 0.2);
52
+ --el-color-info-light-9: hsl(var(--muted-foreground) / 0.1);
53
+
54
+ /* 文本颜色 */
55
+ --el-text-color-primary: hsl(var(--foreground));
56
+ --el-text-color-regular: hsl(var(--foreground) / 0.9);
57
+ --el-text-color-secondary: hsl(var(--muted-foreground));
58
+ --el-text-color-placeholder: hsl(var(--muted-foreground) / 0.6);
59
+ --el-text-color-disabled: hsl(var(--muted-foreground) / 0.4);
60
+
61
+ /* 边框颜色 */
62
+ --el-border-color: hsl(var(--border));
63
+ --el-border-color-light: hsl(var(--border) / 0.7);
64
+ --el-border-color-lighter: hsl(var(--border) / 0.5);
65
+ --el-border-color-extra-light: hsl(var(--border) / 0.3);
66
+ --el-border-color-dark: hsl(var(--border));
67
+ --el-border-color-darker: hsl(var(--border));
68
+
69
+ /* 背景颜色 */
70
+ --el-bg-color: hsl(var(--background));
71
+ --el-bg-color-page: hsl(var(--background-deep));
72
+ --el-bg-color-overlay: hsl(var(--card));
73
+
74
+ /* 填充颜色 */
75
+ --el-fill-color: hsl(var(--muted));
76
+ --el-fill-color-light: hsl(var(--muted) / 0.7);
77
+ --el-fill-color-lighter: hsl(var(--muted) / 0.5);
78
+ --el-fill-color-extra-light: hsl(var(--muted) / 0.3);
79
+ --el-fill-color-dark: hsl(var(--muted));
80
+ --el-fill-color-darker: hsl(var(--muted));
81
+ --el-fill-color-blank: hsl(var(--background));
82
+
83
+ /* 遮罩颜色 */
84
+ --el-overlay-color: hsl(var(--foreground) / 0.5);
85
+ --el-overlay-color-light: hsl(var(--foreground) / 0.3);
86
+ --el-overlay-color-lighter: hsl(var(--foreground) / 0.2);
87
+
88
+ /* 阴影 */
89
+ --el-box-shadow: 0 2px 8px hsl(var(--foreground) / 0.1);
90
+ --el-box-shadow-light: 0 1px 4px hsl(var(--foreground) / 0.08);
91
+ --el-box-shadow-lighter: 0 1px 2px hsl(var(--foreground) / 0.05);
92
+ --el-box-shadow-dark: 0 4px 16px hsl(var(--foreground) / 0.15);
93
+ }
94
+
95
+ /* 暗色模式 */
96
+ .dark {
97
+ --el-bg-color: hsl(var(--background));
98
+ --el-bg-color-page: hsl(var(--background-deep));
99
+ --el-bg-color-overlay: hsl(var(--card));
100
+ --el-text-color-primary: hsl(var(--foreground));
101
+ --el-text-color-regular: hsl(var(--foreground) / 0.9);
102
+ --el-border-color: hsl(var(--border));
103
+ --el-fill-color: hsl(var(--muted));
104
+ --el-fill-color-blank: hsl(var(--background));
105
+ }
106
+
107
+ /* Element Plus 组件微调 */
108
+ .el-button {
109
+ transition: all 0.3s ease;
110
+ }
111
+
112
+ .el-input__wrapper {
113
+ background-color: hsl(var(--background));
114
+ box-shadow: 0 0 0 1px hsl(var(--border)) inset;
115
+ transition: all 0.3s ease;
116
+ }
117
+
118
+ .el-input__wrapper:hover {
119
+ box-shadow: 0 0 0 1px hsl(var(--ring)) inset;
120
+ }
121
+
122
+ .el-input__wrapper.is-focus {
123
+ box-shadow: 0 0 0 2px hsl(var(--ring)) inset;
124
+ }
125
+
126
+ .el-select__wrapper {
127
+ background-color: hsl(var(--background));
128
+ box-shadow: 0 0 0 1px hsl(var(--border)) inset;
129
+ transition: all 0.3s ease;
130
+ }
131
+
132
+ .el-select__wrapper:hover {
133
+ box-shadow: 0 0 0 1px hsl(var(--ring)) inset;
134
+ }
135
+
136
+ .el-select__wrapper.is-focused {
137
+ box-shadow: 0 0 0 2px hsl(var(--ring)) inset;
138
+ }
139
+
140
+ .el-card {
141
+ background-color: hsl(var(--card));
142
+ border-color: hsl(var(--border));
143
+ color: hsl(var(--card-foreground));
144
+ transition: all 0.3s ease;
145
+ }
146
+
147
+ .el-alert {
148
+ transition: all 0.3s ease;
149
+ }
150
+
151
+ .el-tag {
152
+ transition: all 0.3s ease;
153
+ }
154
+
155
+ .el-progress__text {
156
+ color: hsl(var(--foreground));
157
+ }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * 第三方组件库集成
3
+ *
4
+ * 根据你使用的组件库,选择对应的集成文件:
5
+ *
6
+ * Element Plus:
7
+ * @import '@admin-core/design/css/integrations/element-plus.css';
8
+ *
9
+ * Ant Design Vue:
10
+ * @import '@admin-core/design/css/integrations/ant-design-vue.css';
11
+ *
12
+ * Naive UI:
13
+ * @import '@admin-core/design/css/integrations/naive-ui.css';
14
+ *
15
+ * Arco Design:
16
+ * @import '@admin-core/design/css/integrations/arco-design.css';
17
+ */
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Naive UI 主题集成
3
+ * 将 Admin Core 主题颜色映射到 Naive UI
4
+ *
5
+ * 使用方法:
6
+ * import '@admin-core/design/css/integrations/naive-ui.css'
7
+ *
8
+ * 注意:Naive UI 原生支持 CSS 变量,这个文件提供额外的样式优化
9
+ */
10
+
11
+ :root {
12
+ /* 主色 */
13
+ --n-color-primary: hsl(var(--primary));
14
+ --n-color-primary-hover: hsl(var(--primary) / 0.8);
15
+ --n-color-primary-pressed: hsl(var(--primary) / 0.9);
16
+ --n-color-primary-suppl: hsl(var(--primary));
17
+
18
+ /* 成功色 */
19
+ --n-color-success: hsl(var(--success));
20
+ --n-color-success-hover: hsl(var(--success) / 0.8);
21
+ --n-color-success-pressed: hsl(var(--success) / 0.9);
22
+
23
+ /* 警告色 */
24
+ --n-color-warning: hsl(var(--warning));
25
+ --n-color-warning-hover: hsl(var(--warning) / 0.8);
26
+ --n-color-warning-pressed: hsl(var(--warning) / 0.9);
27
+
28
+ /* 错误色 */
29
+ --n-color-error: hsl(var(--destructive));
30
+ --n-color-error-hover: hsl(var(--destructive) / 0.8);
31
+ --n-color-error-pressed: hsl(var(--destructive) / 0.9);
32
+
33
+ /* 信息色 */
34
+ --n-color-info: hsl(var(--info));
35
+ --n-color-info-hover: hsl(var(--info) / 0.8);
36
+ --n-color-info-pressed: hsl(var(--info) / 0.9);
37
+
38
+ /* 文本颜色 */
39
+ --n-text-color-base: hsl(var(--foreground));
40
+ --n-text-color-1: hsl(var(--foreground));
41
+ --n-text-color-2: hsl(var(--foreground) / 0.9);
42
+ --n-text-color-3: hsl(var(--muted-foreground));
43
+
44
+ /* 边框颜色 */
45
+ --n-border-color: hsl(var(--border));
46
+
47
+ /* 背景颜色 */
48
+ --n-body-color: hsl(var(--background));
49
+ --n-card-color: hsl(var(--card));
50
+ --n-modal-color: hsl(var(--card));
51
+ --n-popover-color: hsl(var(--card));
52
+ }
53
+
54
+ /* 暗色模式 */
55
+ .dark {
56
+ --n-body-color: hsl(var(--background));
57
+ --n-card-color: hsl(var(--card));
58
+ --n-text-color-base: hsl(var(--foreground));
59
+ --n-border-color: hsl(var(--border));
60
+ }
@@ -0,0 +1,74 @@
1
+ /* NProgress 进度条样式 */
2
+
3
+ /* 使点击事件穿透 */
4
+ #nprogress {
5
+ pointer-events: none;
6
+ }
7
+
8
+ /* 进度条主体 */
9
+ #nprogress .bar {
10
+ background-color: var(--color-primary);
11
+ position: fixed;
12
+ left: 0;
13
+ top: 0;
14
+ z-index: 1031;
15
+ height: 2px;
16
+ width: 100%;
17
+ }
18
+
19
+ /* 进度条尾部光晕效果 */
20
+ #nprogress .peg {
21
+ position: absolute;
22
+ right: 0;
23
+ display: block;
24
+ height: 100%;
25
+ width: 100px;
26
+ box-shadow:
27
+ 0 0 10px var(--color-primary),
28
+ 0 0 5px var(--color-primary);
29
+ opacity: 1;
30
+ transform: rotate(3deg) translate(0, -4px);
31
+ }
32
+
33
+ /* 加载旋转图标容器 */
34
+ #nprogress .spinner {
35
+ position: fixed;
36
+ right: 1rem;
37
+ top: 1rem;
38
+ z-index: 1031;
39
+ display: block;
40
+ }
41
+
42
+ /* 旋转图标样式 */
43
+ #nprogress .spinner-icon {
44
+ width: 1rem;
45
+ height: 1rem;
46
+ border-radius: 9999px;
47
+ border: 2px solid transparent;
48
+ border-top-color: var(--color-primary);
49
+ border-left-color: var(--color-primary);
50
+ animation: nprogress-spinner 400ms linear infinite;
51
+ }
52
+
53
+ /* 自定义父容器 */
54
+ .nprogress-custom-parent {
55
+ position: relative;
56
+ overflow: hidden;
57
+ }
58
+
59
+ /* 自定义父容器内的进度条和旋转图标定位 */
60
+ .nprogress-custom-parent #nprogress .spinner,
61
+ .nprogress-custom-parent #nprogress .bar {
62
+ position: absolute;
63
+ }
64
+
65
+ /* 旋转动画关键帧 */
66
+ @keyframes nprogress-spinner {
67
+ 0% {
68
+ transform: rotate(0deg);
69
+ }
70
+
71
+ 100% {
72
+ transform: rotate(360deg);
73
+ }
74
+ }