@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 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
 
@@ -1 +1,2 @@
1
- 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}`}};export{n as Namespace};
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};
@@ -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 };
@@ -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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gct-paas/scss",
3
- "version": "0.1.6-dev.8",
3
+ "version": "6.0.0-dev.1",
4
4
  "type": "module",
5
5
  "loader": "dist/index.esm.min.js",
6
6
  "description": "paas 平台样式框架包",
@@ -0,0 +1,13 @@
1
+ .light {
2
+ .ant-btn-success {
3
+ color: var(--gct-color-success);
4
+ }
5
+
6
+ .ant-btn-error {
7
+ color: var(--gct-color-danger);
8
+ }
9
+
10
+ .ant-btn-warning {
11
+ color: var(--gct-color-warning);
12
+ }
13
+ }
@@ -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
+ }
@@ -1,4 +1,5 @@
1
1
  /** 重置标准化样式、框大小定义等,例如 normalize.css、reset.css **/
2
- @forward './ant-design-vue';
3
2
  @forward './reset';
3
+ @forward './base';
4
+ @forward './antv';
4
5
  @forward './vant';
@@ -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
- }