@gct-paas/scss 0.1.6-dev.8 → 6.0.0-dev.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.
- package/README.md +82 -0
- package/dist/index.esm.min.js +2 -1
- package/docs/theme-tokens.md +30 -0
- package/es/index.mjs +2 -2
- package/es/utils/index.d.ts +1 -1
- package/es/utils/namespace/namespace.d.ts +8 -0
- package/es/utils/namespace/namespace.mjs +11 -1
- package/package.json +1 -1
- package/style/generic/antv.scss +13 -0
- package/style/generic/base.scss +78 -0
- package/style/generic/index.scss +2 -1
- package/style/theme/light/_blue-palettes.scss +33 -0
- package/style/theme/light/light-theme.scss +7 -13
- package/style/generic/ant-design-vue.scss +0 -303
package/README.md
CHANGED
|
@@ -1,3 +1,85 @@
|
|
|
1
|
+
# @gct-paas/scss
|
|
2
|
+
|
|
3
|
+
PaaS 平台样式框架包。提供 BEM 命名、主题 CSS 变量、全局 SCSS 入口及 TS 侧 `useNamespace` 辅助。被 `core-components`、`core-web`、`v-ben` 及上层 design/render 包依赖。
|
|
4
|
+
|
|
5
|
+
> 本文档面向后续开发与 AI 模型阅读。下文「样式工具文档」章节为 SCSS functions/mixins API 参考。
|
|
6
|
+
|
|
7
|
+
## 包信息
|
|
8
|
+
|
|
9
|
+
| 项 | 值 |
|
|
10
|
+
| --- | --- |
|
|
11
|
+
| 包名 | `@gct-paas/scss` |
|
|
12
|
+
| 入口 | `es/index.mjs`(类型:`es/index.d.ts`) |
|
|
13
|
+
| 样式入口 | `@gct-paas/scss/style/global.scss`、`@gct-paas/scss/style/index.scss` |
|
|
14
|
+
| peer | 无(宿主仅需 Vue 3 用于 TS 导出) |
|
|
15
|
+
|
|
16
|
+
```ts
|
|
17
|
+
import { useNamespace } from '@gct-paas/scss';
|
|
18
|
+
// 或从 @gct-paas/core 再导出(推荐与 core 一致)
|
|
19
|
+
import '@gct-paas/scss/style/index.scss';
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## 在 monorepo 中的位置
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
scss(样式基础层,无 _gct 依赖)
|
|
28
|
+
├── core-components / v-ben / core-web
|
|
29
|
+
└── design / render 及其 *-web 层
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
规划中端侧包(`core-mobile` / `core-pad` 等)同样依赖本包。
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## 依赖说明
|
|
37
|
+
|
|
38
|
+
| 依赖 | 用途 |
|
|
39
|
+
| --- | --- |
|
|
40
|
+
| `normalize.css` | 浏览器样式重置 |
|
|
41
|
+
| `vue` | TS 侧 `Namespace` / `useNamespace` 构建依赖 |
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## 源码结构
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
packages/scss/
|
|
49
|
+
├── src/utils/namespace/ # Namespace、useNamespace(与 core 逻辑对齐)
|
|
50
|
+
├── style/ # global.scss、index.scss、mixins、functions、tokens
|
|
51
|
+
└── README.md # 本文件(含下方 SCSS API 表)
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## 与 `_gct` 的关系
|
|
57
|
+
|
|
58
|
+
**不挂载、不依赖 `_gct`。** 纯样式与 BEM 工具层。
|
|
59
|
+
|
|
60
|
+
- **TS BEM**:组件内优先 `useNamespace('block')`(也可从 `@gct-paas/core` 导入,底层同源)
|
|
61
|
+
- **SCSS BEM**:`@include b/e/m/when`,详见 `.agents/skills/gct-bem-best/SKILL.md`
|
|
62
|
+
- **CSS 变量三步法**:define map → `set-component-css-var` → `getCssVar`
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## 给后续模型的约束
|
|
67
|
+
|
|
68
|
+
1. 组件样式类名走 BEM,禁止手写 `gct-xxx` 拼接。
|
|
69
|
+
2. 全局样式通过 `@gct-paas/scss/style/global.scss` 或 `index.scss` 引入,不要复制 mixin 源码。
|
|
70
|
+
3. 本包无运行时初始化,引入 SCSS/TS 即可。
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## 本地命令
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
cd packages/scss
|
|
78
|
+
npm run dev
|
|
79
|
+
npm run build
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
---
|
|
1
83
|
|
|
2
84
|
# 样式工具文档
|
|
3
85
|
|
package/dist/index.esm.min.js
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
/*! @gct-paas/scss v6.0.0-dev.1 */
|
|
2
|
+
function t(e){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t(e)}function e(e,r,n){return(r=function(e){var r=function(e){if("object"!=t(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,"string");if("object"!=t(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==t(r)?r:r+""}(r))in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n,e}function r(t,e,r,n,o){let s=`${t}-${e}`;return r&&(s+=`-${r}`),n&&(s+=`__${n}`),o&&(s+=`--${o}`),s}var n=class{constructor(t,r){e(this,"block",void 0),e(this,"namespace",void 0),this.block=t,this.namespace=r||"gct"}b(t=""){return r(this.namespace,this.block,t,"","")}e(t){return t?r(this.namespace,this.block,"",t,""):""}m(t){return t?r(this.namespace,this.block,"","",t):""}be(t,e){return t&&e?r(this.namespace,this.block,t,e,""):""}em(t,e){return t&&e?r(this.namespace,this.block,"",t,e):""}bm(t,e){return t&&e?r(this.namespace,this.block,t,"",e):""}bem(t,e,n){return t&&e&&n?r(this.namespace,this.block,t,e,n):""}is(t,e){return t&&e?`is-${t}`:""}cssVar(t){const e={};for(const r in t)t[r]&&(e[this.cssVarName(r)]=t[r]);return e}cssVarBlock(t){const e={};for(const r in t)t[r]&&(e[this.cssVarBlockName(r)]=t[r]);return e}cssVarName(t){return`--${this.namespace}-${t}`}cssVarBlockName(t){return`--${this.namespace}-${this.block}-${t}`}};function o(t){return new n(t)}export{n as Namespace,o as useNamespace};
|
package/docs/theme-tokens.md
CHANGED
|
@@ -24,6 +24,36 @@ This document outlines all design tokens available in the light theme.
|
|
|
24
24
|
| `--gct--blue-11` | RGB(1, 60, 114) |
|
|
25
25
|
| `--gct--blue-12` | RGB(1, 48, 90) |
|
|
26
26
|
|
|
27
|
+
#### Runtime Theme Color (Light)
|
|
28
|
+
|
|
29
|
+
Light theme supports two pre-defined primary palettes, switched via CSS class on `html`:
|
|
30
|
+
|
|
31
|
+
| `themeSetting.themeColor` | Class on `html` | Blue-8 (Primary) |
|
|
32
|
+
|---------------------------|-----------------|------------------|
|
|
33
|
+
| `#026AC8` (default) | _(none)_ | RGB(2, 106, 200) |
|
|
34
|
+
| `#0DAA9C` | `theme-color-teal` | RGB(13, 170, 156) |
|
|
35
|
+
|
|
36
|
+
When `theme-color-teal` is present on `.light` / `.light-theme`, only `--gct-blue-1` through `--gct-blue-12` are overridden. Semantic tokens (`--gct-color-primary`, info, link, border hover/active) cascade automatically.
|
|
37
|
+
|
|
38
|
+
**Teal palette** (`theme-color-teal`):
|
|
39
|
+
|
|
40
|
+
| Token | Value |
|
|
41
|
+
|-------|-------|
|
|
42
|
+
| `--gct--blue-1` | RGB(248, 252, 252) |
|
|
43
|
+
| `--gct--blue-2` | RGB(233, 247, 246) |
|
|
44
|
+
| `--gct--blue-3` | RGB(211, 240, 237) |
|
|
45
|
+
| `--gct--blue-4` | RGB(207, 238, 235) |
|
|
46
|
+
| `--gct--blue-5` | RGB(170, 225, 220) |
|
|
47
|
+
| `--gct--blue-6` | RGB(134, 213, 206) |
|
|
48
|
+
| `--gct--blue-7` | RGB(66, 189, 178) |
|
|
49
|
+
| `--gct--blue-8` | RGB(13, 170, 156) |
|
|
50
|
+
| `--gct--blue-9` | RGB(12, 156, 144) |
|
|
51
|
+
| `--gct--blue-10` | RGB(11, 139, 128) |
|
|
52
|
+
| `--gct--blue-11` | RGB(9, 122, 112) |
|
|
53
|
+
| `--gct--blue-12` | RGB(8, 109, 100) |
|
|
54
|
+
|
|
55
|
+
Switching is handled by `useThemeSetting` in `@gct-paas/core` — set `themeSetting.themeColor` to one of `THEME_COLORS` (`#026AC8` | `#0DAA9C`).
|
|
56
|
+
|
|
27
57
|
### Red (Danger)
|
|
28
58
|
| Token | Value |
|
|
29
59
|
|-------|-------|
|
package/es/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { Namespace } from "./utils/namespace/namespace.mjs";
|
|
2
|
-
export { Namespace };
|
|
1
|
+
import { Namespace, useNamespace } from "./utils/namespace/namespace.mjs";
|
|
2
|
+
export { Namespace, useNamespace };
|
package/es/utils/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { Namespace } from './namespace/namespace';
|
|
1
|
+
export { Namespace, useNamespace } from './namespace/namespace';
|
|
@@ -115,3 +115,11 @@ export declare class Namespace {
|
|
|
115
115
|
*/
|
|
116
116
|
cssVarBlockName(name: string): string;
|
|
117
117
|
}
|
|
118
|
+
/**
|
|
119
|
+
* 获取 bem 操作类
|
|
120
|
+
*
|
|
121
|
+
* @export
|
|
122
|
+
* @param {string} block
|
|
123
|
+
* @return {*} {Namespace}
|
|
124
|
+
*/
|
|
125
|
+
export declare function useNamespace(block: string): Namespace;
|
|
@@ -168,5 +168,15 @@ var Namespace = class {
|
|
|
168
168
|
return `--${this.namespace}-${this.block}-${name}`;
|
|
169
169
|
}
|
|
170
170
|
};
|
|
171
|
+
/**
|
|
172
|
+
* 获取 bem 操作类
|
|
173
|
+
*
|
|
174
|
+
* @export
|
|
175
|
+
* @param {string} block
|
|
176
|
+
* @return {*} {Namespace}
|
|
177
|
+
*/
|
|
178
|
+
function useNamespace(block) {
|
|
179
|
+
return new Namespace(block);
|
|
180
|
+
}
|
|
171
181
|
//#endregion
|
|
172
|
-
export { Namespace };
|
|
182
|
+
export { Namespace, useNamespace };
|
package/package.json
CHANGED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
// ! nprogress 样式
|
|
2
|
+
|
|
3
|
+
/* Make clicks pass-through */
|
|
4
|
+
#nprogress {
|
|
5
|
+
pointer-events: none;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
#nprogress .bar {
|
|
9
|
+
position: fixed;
|
|
10
|
+
top: 0;
|
|
11
|
+
left: 0;
|
|
12
|
+
z-index: 1031;
|
|
13
|
+
width: 100%;
|
|
14
|
+
height: 2px;
|
|
15
|
+
background: #29d;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/* Fancy blur effect */
|
|
19
|
+
#nprogress .peg {
|
|
20
|
+
position: absolute;
|
|
21
|
+
right: 0;
|
|
22
|
+
display: block;
|
|
23
|
+
width: 100px;
|
|
24
|
+
height: 100%;
|
|
25
|
+
box-shadow: 0 0 10px #29d, 0 0 5px #29d;
|
|
26
|
+
opacity: 1.0;
|
|
27
|
+
transform: rotate(3deg) translate(0, -4px);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/* Remove these to get rid of the spinner */
|
|
31
|
+
#nprogress .spinner {
|
|
32
|
+
position: fixed;
|
|
33
|
+
top: 15px;
|
|
34
|
+
right: 15px;
|
|
35
|
+
z-index: 1031;
|
|
36
|
+
display: block;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
#nprogress .spinner-icon {
|
|
40
|
+
box-sizing: border-box;
|
|
41
|
+
width: 18px;
|
|
42
|
+
height: 18px;
|
|
43
|
+
border: solid 2px transparent;
|
|
44
|
+
border-top-color: #29d;
|
|
45
|
+
border-left-color: #29d;
|
|
46
|
+
border-radius: 50%;
|
|
47
|
+
animation: nprogress-spinner 400ms linear infinite;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.nprogress-custom-parent {
|
|
51
|
+
position: relative;
|
|
52
|
+
overflow: hidden;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.nprogress-custom-parent #nprogress .spinner,
|
|
56
|
+
.nprogress-custom-parent #nprogress .bar {
|
|
57
|
+
position: absolute;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
@keyframes nprogress-spinner {
|
|
61
|
+
0% { transform: rotate(0deg); }
|
|
62
|
+
100% { transform: rotate(360deg); }
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
@keyframes nprogress-spinner {
|
|
66
|
+
0% { transform: rotate(0deg); }
|
|
67
|
+
100% { transform: rotate(360deg); }
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// ! nprogress 样式 End
|
|
71
|
+
|
|
72
|
+
body.color-weak {
|
|
73
|
+
filter: invert(80%);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
body.gray-mode {
|
|
77
|
+
filter: grayscale(100%);
|
|
78
|
+
}
|
package/style/generic/index.scss
CHANGED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
@use '../../global.scss' as *;
|
|
2
|
+
|
|
3
|
+
// 默认主色 #026AC8
|
|
4
|
+
@mixin blue-palette-blue {
|
|
5
|
+
#{getCssVarName(blue, 1)}: 246, 250, 253;
|
|
6
|
+
#{getCssVarName(blue, 2)}: 226, 238, 249;
|
|
7
|
+
#{getCssVarName(blue, 3)}: 200, 223, 243;
|
|
8
|
+
#{getCssVarName(blue, 4)}: 191, 216, 242;
|
|
9
|
+
#{getCssVarName(blue, 5)}: 144, 187, 233;
|
|
10
|
+
#{getCssVarName(blue, 6)}: 91, 156, 225;
|
|
11
|
+
#{getCssVarName(blue, 7)}: 48, 126, 210;
|
|
12
|
+
#{getCssVarName(blue, 8)}: 2, 106, 200;
|
|
13
|
+
#{getCssVarName(blue, 9)}: 2, 90, 170;
|
|
14
|
+
#{getCssVarName(blue, 10)}: 1, 75, 142;
|
|
15
|
+
#{getCssVarName(blue, 11)}: 1, 60, 114;
|
|
16
|
+
#{getCssVarName(blue, 12)}: 1, 48, 90;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
// 青绿主色 #0DAA9C
|
|
20
|
+
@mixin blue-palette-teal {
|
|
21
|
+
#{getCssVarName(blue, 1)}: 248, 252, 252;
|
|
22
|
+
#{getCssVarName(blue, 2)}: 233, 247, 246;
|
|
23
|
+
#{getCssVarName(blue, 3)}: 211, 240, 237;
|
|
24
|
+
#{getCssVarName(blue, 4)}: 207, 238, 235;
|
|
25
|
+
#{getCssVarName(blue, 5)}: 170, 225, 220;
|
|
26
|
+
#{getCssVarName(blue, 6)}: 134, 213, 206;
|
|
27
|
+
#{getCssVarName(blue, 7)}: 66, 189, 178;
|
|
28
|
+
#{getCssVarName(blue, 8)}: 13, 170, 156;
|
|
29
|
+
#{getCssVarName(blue, 9)}: 12, 156, 144;
|
|
30
|
+
#{getCssVarName(blue, 10)}: 11, 139, 128;
|
|
31
|
+
#{getCssVarName(blue, 11)}: 9, 122, 112;
|
|
32
|
+
#{getCssVarName(blue, 12)}: 8, 109, 100;
|
|
33
|
+
}
|
|
@@ -1,22 +1,11 @@
|
|
|
1
1
|
@use '../../global.scss' as *;
|
|
2
|
+
@use './blue-palettes' as *;
|
|
2
3
|
|
|
3
4
|
.light, .light-theme {
|
|
4
5
|
#{getCssVarName(color, white)}: white;
|
|
5
6
|
#{getCssVarName(color, black)}: black;
|
|
6
7
|
|
|
7
|
-
|
|
8
|
-
#{getCssVarName(blue, 1)}: 246, 250, 253;
|
|
9
|
-
#{getCssVarName(blue, 2)}: 226, 238, 249;
|
|
10
|
-
#{getCssVarName(blue, 3)}: 200, 223, 243;
|
|
11
|
-
#{getCssVarName(blue, 4)}: 191, 216, 242;
|
|
12
|
-
#{getCssVarName(blue, 5)}: 144, 187, 233;
|
|
13
|
-
#{getCssVarName(blue, 6)}: 91, 156, 225;
|
|
14
|
-
#{getCssVarName(blue, 7)}: 48, 126, 210;
|
|
15
|
-
#{getCssVarName(blue, 8)}: 2, 106, 200;
|
|
16
|
-
#{getCssVarName(blue, 9)}: 2, 90, 170;
|
|
17
|
-
#{getCssVarName(blue, 10)}: 1, 75, 142;
|
|
18
|
-
#{getCssVarName(blue, 11)}: 1, 60, 114;
|
|
19
|
-
#{getCssVarName(blue, 12)}: 1, 48, 90;
|
|
8
|
+
@include blue-palette-blue;
|
|
20
9
|
|
|
21
10
|
// 危险色
|
|
22
11
|
#{getCssVarName(red, 1)}: 254, 236, 221;
|
|
@@ -280,3 +269,8 @@
|
|
|
280
269
|
#{getCssVarName(z-index, l)}: 2000;
|
|
281
270
|
#{getCssVarName(z-index, xl)}: 9999;
|
|
282
271
|
}
|
|
272
|
+
|
|
273
|
+
.light.theme-color-teal,
|
|
274
|
+
.light-theme.theme-color-teal {
|
|
275
|
+
@include blue-palette-teal;
|
|
276
|
+
}
|
|
@@ -1,303 +0,0 @@
|
|
|
1
|
-
@use '../global.scss' as *;
|
|
2
|
-
|
|
3
|
-
// 用于重置覆盖 ant-design-vue 的样式
|
|
4
|
-
.light {
|
|
5
|
-
--ant-primary-color: var(--gct-color-primary);
|
|
6
|
-
--ant-primary-color-hover: var(--gct-color-primary-hover);
|
|
7
|
-
--ant-primary-color-active: var(--gct-color-primary-active);
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
input:-webkit-autofill {
|
|
11
|
-
box-shadow: 0 0 0 1000px white inset !important;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
:-webkit-autofill {
|
|
15
|
-
transition: background-color 5000s ease-in-out 0s !important;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
html {
|
|
19
|
-
overflow: hidden;
|
|
20
|
-
text-size-adjust: 100%;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
html,
|
|
24
|
-
body {
|
|
25
|
-
width: 100%;
|
|
26
|
-
height: 100%;
|
|
27
|
-
overflow: visible;
|
|
28
|
-
overflow-x: hidden;
|
|
29
|
-
overscroll-behavior: none;
|
|
30
|
-
|
|
31
|
-
// overflow: hidden;
|
|
32
|
-
|
|
33
|
-
&.color-weak {
|
|
34
|
-
filter: invert(80%);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
&.gray-mode {
|
|
38
|
-
filter: grayscale(100%);
|
|
39
|
-
filter: progid:dximagetransform.microsoft.basicimage(grayscale=1);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
.copy-main {
|
|
43
|
-
box-sizing: border-box;
|
|
44
|
-
overflow: hidden;
|
|
45
|
-
text-overflow: ellipsis;
|
|
46
|
-
word-break: break-all; /* 任意字符处都可换行(包括单词中间) */
|
|
47
|
-
overflow-wrap: break-word; /* 允许在单词内换行 */
|
|
48
|
-
outline: none;
|
|
49
|
-
background-color: #fff;
|
|
50
|
-
|
|
51
|
-
// display: table;
|
|
52
|
-
border: 1px dashed #e8ebf0;
|
|
53
|
-
|
|
54
|
-
.copy-rich-text {
|
|
55
|
-
box-sizing: border-box;
|
|
56
|
-
width: 100%;
|
|
57
|
-
height: 100%;
|
|
58
|
-
overflow: hidden;
|
|
59
|
-
word-break: break-all; /* 任意字符处都可换行(包括单词中间) */
|
|
60
|
-
overflow-wrap: break-word; /* 允许在单词内换行 */
|
|
61
|
-
|
|
62
|
-
span {
|
|
63
|
-
line-height: 1;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
p {
|
|
67
|
-
margin-bottom: 12px;
|
|
68
|
-
font-size: 12px;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
#app {
|
|
75
|
-
overflow: auto;
|
|
76
|
-
|
|
77
|
-
// & > *:not(.is-empty-page) {
|
|
78
|
-
// min-width: 1280px;
|
|
79
|
-
// }
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
a:focus,
|
|
83
|
-
a:active,
|
|
84
|
-
button,
|
|
85
|
-
div,
|
|
86
|
-
svg,
|
|
87
|
-
/* stylelint-disable-next-line no-descending-specificity */
|
|
88
|
-
span {
|
|
89
|
-
outline: none;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
.primary-gct {
|
|
93
|
-
color: #{getCssVar(color-primary)} !important;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
.warning-gct {
|
|
97
|
-
color: #{getCssVar(color-warning)} !important;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
.error-gct {
|
|
101
|
-
color: #{getCssVar(color-error)} !important;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
.success-gct {
|
|
105
|
-
color: #{getCssVar(color-success)} !important;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
.primary-gct-hover:hover {
|
|
109
|
-
color: #{getCssVar(color-primary)} !important;
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
.warning-gct-hover:hover {
|
|
113
|
-
color: #{getCssVar(color-warning)} !important;
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
.error-gct-hover:hover {
|
|
117
|
-
color: #{getCssVar(color-error)} !important;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
.success-gct-hover:hover {
|
|
121
|
-
color: #{getCssVar(color-success)} !important;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
.box-full {
|
|
125
|
-
width: 100%;
|
|
126
|
-
height: 100%;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
.gct-divider__vertical {
|
|
130
|
-
display: inline-block;
|
|
131
|
-
height: var(--size, 14px);
|
|
132
|
-
margin-right: var(--space-r, 12px);
|
|
133
|
-
margin-left: var(--space-l, 12px);
|
|
134
|
-
border-left: 1px solid var(--color, #eaeaea);
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
// css描述 覆盖antd样式
|
|
138
|
-
// tab组件左上方间距
|
|
139
|
-
.ant-tabs.--tl-space {
|
|
140
|
-
.ant-tabs-nav {
|
|
141
|
-
padding-left: 24px;
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
// //拖拽样式
|
|
146
|
-
.drawing-chosen {
|
|
147
|
-
background-color: rgb(13 170 156 / 10%) !important;
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
.simple-upload-model.ant-modal {
|
|
151
|
-
.ant-modal-header {
|
|
152
|
-
padding-right: 50px;
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
.gct-text-overflow {
|
|
157
|
-
overflow: hidden;
|
|
158
|
-
text-overflow: ellipsis;
|
|
159
|
-
word-break: break-all;
|
|
160
|
-
white-space: nowrap;
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
a[danger] {
|
|
164
|
-
color: var(--ant-error-color);
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
// textarea关闭resize,数字提示位置调整
|
|
168
|
-
div.ant-input-textarea.ant-input-textarea-show-count {
|
|
169
|
-
position: relative;
|
|
170
|
-
|
|
171
|
-
textarea {
|
|
172
|
-
resize: none;
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
&.ant-input-textarea-show-count::after {
|
|
176
|
-
position: absolute;
|
|
177
|
-
right: 12px;
|
|
178
|
-
bottom: 1px;
|
|
179
|
-
margin: 0;
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
// 修改组件默认圆角大小
|
|
184
|
-
button.ant-btn,
|
|
185
|
-
span.ant-input-affix-wrapper,
|
|
186
|
-
textarea.ant-input,
|
|
187
|
-
div.ant-input-number,
|
|
188
|
-
div.ant-select:not(.ant-select-customize-input) .ant-select-selector,
|
|
189
|
-
div.ant-picker,
|
|
190
|
-
div.ant-input-number-group-addon {
|
|
191
|
-
border-radius: 4px;
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
input.ant-input {
|
|
195
|
-
border-radius: 0;
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
.ant-input-group.ant-input-group-compact > .ant-select:first-child > div.ant-select-selector,
|
|
199
|
-
span.ant-input-group.ant-input-group-compact > :first-child,
|
|
200
|
-
span.ant-input-group-addon {
|
|
201
|
-
border-top-left-radius: 4px;
|
|
202
|
-
border-bottom-left-radius: 4px;
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
span.ant-input-group.ant-input-group-compact > :last-child,
|
|
206
|
-
span.ant-input-group-addon:last-child {
|
|
207
|
-
border-top-right-radius: 4px;
|
|
208
|
-
border-bottom-right-radius: 4px;
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
.gct-number-input {
|
|
212
|
-
&.ant-input-number {
|
|
213
|
-
border-right-width: 0;
|
|
214
|
-
|
|
215
|
-
&:hover {
|
|
216
|
-
border-right-width: 1px;
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
.ant-input-number-group-addon {
|
|
221
|
-
font-size: 14px;
|
|
222
|
-
background-color: #fff;
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
.gct-edhr-table {
|
|
227
|
-
.ant-spin-nested-loading > div > .ant-spin {
|
|
228
|
-
max-height: 100%;
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
.gct-edhr-auto-size-table {
|
|
233
|
-
position: relative;
|
|
234
|
-
height: 100%;
|
|
235
|
-
overflow: hidden;
|
|
236
|
-
|
|
237
|
-
.ant-spin-nested-loading {
|
|
238
|
-
position: absolute;
|
|
239
|
-
inset: 0;
|
|
240
|
-
height: 100%;
|
|
241
|
-
overflow: hidden;
|
|
242
|
-
|
|
243
|
-
.ant-spin-container {
|
|
244
|
-
display: flex;
|
|
245
|
-
flex-direction: column;
|
|
246
|
-
justify-content: space-between;
|
|
247
|
-
width: 100%;
|
|
248
|
-
height: 100%;
|
|
249
|
-
overflow: hidden;
|
|
250
|
-
|
|
251
|
-
.ant-table {
|
|
252
|
-
flex: 1;
|
|
253
|
-
overflow: hidden;
|
|
254
|
-
}
|
|
255
|
-
|
|
256
|
-
.ant-table-container {
|
|
257
|
-
display: flex;
|
|
258
|
-
flex-direction: column;
|
|
259
|
-
height: 100%;
|
|
260
|
-
overflow: hidden;
|
|
261
|
-
|
|
262
|
-
.ant-table-body {
|
|
263
|
-
flex: 1;
|
|
264
|
-
|
|
265
|
-
// overflow: auto !important;
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
.gct-edhr-pagination {
|
|
273
|
-
.ant-pagination.ant-table-pagination {
|
|
274
|
-
margin-bottom: 0;
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
|
|
278
|
-
/* stylelint-disable-next-line no-descending-specificity */
|
|
279
|
-
.ant-table {
|
|
280
|
-
color: #212528;
|
|
281
|
-
}
|
|
282
|
-
|
|
283
|
-
.gct-border-dashed {
|
|
284
|
-
border: 2px dashed #dbdbdb;
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
// 无界应用内的 vue-devtools 容器隐藏
|
|
288
|
-
.wujie-sub-app {
|
|
289
|
-
/* stylelint-disable-next-line selector-id-pattern */
|
|
290
|
-
#__vue-devtools-container__ {
|
|
291
|
-
display: none !important;
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
|
|
295
|
-
.ant-radio {
|
|
296
|
-
.ant-radio-inner {
|
|
297
|
-
border-color: var(--gct-color-border);
|
|
298
|
-
}
|
|
299
|
-
}
|
|
300
|
-
|
|
301
|
-
.is-hidden {
|
|
302
|
-
display: none !important;
|
|
303
|
-
}
|