@neatui/css 4.8.1 → 4.9.0

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.
@@ -0,0 +1,75 @@
1
+ $avatar-a-co: 'main', 'well', 'warn', 'risk', 'info';
2
+ $avatar-a-sz: (
3
+ 'xs': 1.5em,
4
+ 's': 2em,
5
+ 'm': 2.5em,
6
+ 'l': 3em,
7
+ 'xl': 4em,
8
+ );
9
+
10
+ // 单个
11
+ [ui-avatar~='@a'] {
12
+ --avatar-size: 2.5em;
13
+
14
+ position: relative;
15
+ display: inline-flex;
16
+ flex-shrink: 0;
17
+ align-items: center;
18
+ justify-content: center;
19
+ width: var(--avatar-size);
20
+ height: var(--avatar-size);
21
+ border-radius: 50%;
22
+ overflow: hidden;
23
+ vertical-align: middle;
24
+ font-size: 1em;
25
+ font-weight: bold;
26
+ line-height: 1;
27
+ white-space: nowrap;
28
+ user-select: none;
29
+
30
+ color: var(--co-desc);
31
+ background: var(--co-line);
32
+
33
+ & > img {
34
+ display: block;
35
+ width: 100%;
36
+ height: 100%;
37
+ object-fit: cover;
38
+ }
39
+
40
+ // 文字随头像尺寸缩放
41
+ & > span {
42
+ font-size: calc(var(--avatar-size) * 0.4);
43
+ }
44
+
45
+ // 方形
46
+ &[ui-avatar~=':square'] {
47
+ border-radius: 0.25em;
48
+ }
49
+
50
+ @each $sz, $v in $avatar-a-sz {
51
+ &[ui-avatar~='#{$sz}'] {
52
+ --avatar-size: #{$v};
53
+ }
54
+ }
55
+
56
+ @each $co in $avatar-a-co {
57
+ &[ui-avatar~='#{$co}'] {
58
+ color: #fff;
59
+ background: var(--co-#{$co});
60
+ }
61
+ }
62
+ }
63
+
64
+ // 群组:叠加展示
65
+ [ui-avatars~='@a'] {
66
+ display: inline-flex;
67
+ align-items: center;
68
+
69
+ & > * + * {
70
+ margin-left: -0.5em;
71
+ }
72
+ & > * {
73
+ box-shadow: 0 0 0 2px var(--co-fore);
74
+ }
75
+ }
@@ -0,0 +1 @@
1
+ @forward './avatar@a.scss';
@@ -0,0 +1,22 @@
1
+ {
2
+ "name": "@neatui/avatar",
3
+ "version": "1.0.0",
4
+ "description": "",
5
+ "main": "index.scss",
6
+ "scripts": {
7
+ "test": "echo \"Error: no test specified\" && exit 1"
8
+ },
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "git+https://gitlab.com/neatui/neatui.git"
12
+ },
13
+ "keywords": [
14
+ "neatui"
15
+ ],
16
+ "author": "xiaojunbo",
17
+ "license": "MIT",
18
+ "bugs": {
19
+ "url": "https://gitlab.com/neatui/neatui/issues"
20
+ },
21
+ "homepage": "https://gitlab.com/neatui/neatui#readme"
22
+ }
@@ -66,6 +66,9 @@ $card_a_sz: 'xs', 's', 'm', 'l', 'xl';
66
66
  position: relative;
67
67
  // height: auto 精确等于内容高度,这里裁不到任何东西
68
68
  overflow: hidden;
69
+ // overflow 非 visible 会让 flex 自动最小尺寸归零。卡片被约束高度时
70
+ // (如 .full + 长表格),工具栏会被挤压到比内容还矮而被裁掉,必须禁止收缩
71
+ flex-shrink: 0;
69
72
  // 让 height: auto 可以参与过渡,动画终点即真实内容高度
70
73
  interpolate-size: allow-keywords;
71
74
  pointer-events: auto;
@@ -1,2 +1,3 @@
1
1
  @forward './tags@a.scss';
2
2
  @forward './tags@b.scss';
3
+ @forward './tags@c.scss';
@@ -29,13 +29,13 @@ $tag-a-sz: 'xs', 's', 'm', 'l', 'xl';
29
29
  @if ($co== 'main') {
30
30
  &,
31
31
  &[ui-tag~='#{$co}'] {
32
- color: var(--co-#{$co});
32
+ color: var(--co-#{$co}-b-lm, var(--co-#{$co}));
33
33
  box-shadow: inset 0 0 0 1px var(--co-#{$co}-o-ms);
34
34
  background: var(--co-#{$co}-o-sm);
35
35
  }
36
36
  } @else {
37
37
  &[ui-tag~='#{$co}'] {
38
- color: var(--co-#{$co});
38
+ color: var(--co-#{$co}-b-lm, var(--co-#{$co}));
39
39
  box-shadow: inset 0 0 0 1px var(--co-#{$co}-o-ms);
40
40
  background: var(--co-#{$co}-o-sm);
41
41
  }
@@ -86,7 +86,7 @@ $tag-a-sz: 'xs', 's', 'm', 'l', 'xl';
86
86
  border-radius: 10em 0;
87
87
  }
88
88
  // 弹头
89
- &[ui-tag~=':bullet'] > * {
89
+ &[ui-tags~=':bullet'] > * {
90
90
  padding: 0.25em 0.65em 0.25em 0.5em;
91
91
  border-radius: 1em 0.2em 0.2em 1em;
92
92
  }
@@ -96,13 +96,13 @@ $tag-a-sz: 'xs', 's', 'm', 'l', 'xl';
96
96
  @if ($co== 'main') {
97
97
  & > *,
98
98
  &[ui-tags~='#{$co}'] > * {
99
- color: var(--co-#{$co});
99
+ color: var(--co-#{$co}-b-lm, var(--co-#{$co}));
100
100
  box-shadow: inset 0 0 0 1px var(--co-#{$co}-o-ms);
101
101
  background: var(--co-#{$co}-o-sm);
102
102
  }
103
103
  } @else {
104
104
  &[ui-tags~='#{$co}'] > * {
105
- color: var(--co-#{$co});
105
+ color: var(--co-#{$co}-b-lm, var(--co-#{$co}));
106
106
  box-shadow: inset 0 0 0 1px var(--co-#{$co}-o-ms);
107
107
  background: var(--co-#{$co}-o-sm);
108
108
  }
@@ -39,12 +39,12 @@ $tag-b-sz: 'xs', 's', 'm', 'l', 'xl';
39
39
  @if ($co== 'main') {
40
40
  &,
41
41
  &[ui-tag~='#{$co}'] {
42
- color: var(--co-#{$co});
42
+ color: var(--co-#{$co}-b-lm, var(--co-#{$co}));
43
43
  background: var(--co-#{$co}-o-sm);
44
44
  }
45
45
  } @else {
46
46
  &[ui-tag~='#{$co}'] {
47
- color: var(--co-#{$co});
47
+ color: var(--co-#{$co}-b-lm, var(--co-#{$co}));
48
48
  background: var(--co-#{$co}-o-sm);
49
49
  }
50
50
  }
@@ -94,7 +94,7 @@ $tag-b-sz: 'xs', 's', 'm', 'l', 'xl';
94
94
  border-radius: 10em 0;
95
95
  }
96
96
  // 弹头
97
- &[ui-tag~=':bullet'] > * {
97
+ &[ui-tags~=':bullet'] > * {
98
98
  padding: 0.5em 0.65em 0.5em 0.5em;
99
99
  border-radius: 1em 0.2em 0.2em 1em;
100
100
  }
@@ -104,12 +104,12 @@ $tag-b-sz: 'xs', 's', 'm', 'l', 'xl';
104
104
  @if ($co== 'main') {
105
105
  & > *,
106
106
  &[ui-tags~='#{$co}'] > * {
107
- color: var(--co-#{$co});
107
+ color: var(--co-#{$co}-b-lm, var(--co-#{$co}));
108
108
  background: var(--co-#{$co}-o-sm);
109
109
  }
110
110
  } @else {
111
111
  &[ui-tags~='#{$co}'] > * {
112
- color: var(--co-#{$co});
112
+ color: var(--co-#{$co}-b-lm, var(--co-#{$co}));
113
113
  background: var(--co-#{$co}-o-sm);
114
114
  }
115
115
  }
@@ -0,0 +1,135 @@
1
+ $tag-c-co: 'main', 'well', 'warn', 'risk', 'info', 'read', 'note', 'idle';
2
+
3
+ // 单个(实心徽标,如版本号)
4
+ [ui-tag~='@c'] {
5
+ display: inline-block;
6
+ padding: 2px 0.5em;
7
+ border-radius: 10em;
8
+ font-weight: bold;
9
+ line-height: 1.25;
10
+ white-space: nowrap;
11
+ vertical-align: middle;
12
+ color: #fff;
13
+
14
+ // 圆角
15
+ &[ui-tag~=':round'] {
16
+ border-radius: 10em;
17
+ }
18
+ // 方角
19
+ &[ui-tag~=':square'] {
20
+ border-radius: 0.2rem;
21
+ }
22
+ // 叶型
23
+ &[ui-tag~=':leaf'] {
24
+ border-radius: 0.5em 0;
25
+ }
26
+ // 弹头
27
+ &[ui-tag~=':bullet'] {
28
+ border-radius: 1em 0.2em 0.2em 1em;
29
+ }
30
+
31
+ // 尺寸(只调内边距,字号由 class 控制)
32
+ &[ui-tag~='s'] {
33
+ padding: 1px 0.5em;
34
+ }
35
+ &[ui-tag~='m'] {
36
+ padding: 2px 0.5em;
37
+ }
38
+ &[ui-tag~='l'] {
39
+ padding: 3px 0.5em;
40
+ }
41
+
42
+ // 颜色
43
+ @each $co in $tag-c-co {
44
+ @if ($co== 'main') {
45
+ &,
46
+ &[ui-tag~='#{$co}'] {
47
+ background: var(--co-#{$co});
48
+ }
49
+ } @else {
50
+ &[ui-tag~='#{$co}'] {
51
+ background: var(--co-#{$co});
52
+ }
53
+ }
54
+ }
55
+ }
56
+
57
+ // 群组
58
+ [ui-tags~='@c'] {
59
+ // 容器
60
+ & {
61
+ position: relative;
62
+ width: 100%;
63
+
64
+ &[ui-tags~='al'] {
65
+ & > * {
66
+ margin-right: 0.5rem;
67
+ }
68
+ }
69
+ &[ui-tags~='ac'] {
70
+ & > * {
71
+ margin-left: 0.5rem;
72
+ margin-right: 0.5rem;
73
+ }
74
+ }
75
+ &[ui-tags~='ar'] {
76
+ & > * {
77
+ margin-left: 0.5rem;
78
+ }
79
+ }
80
+ }
81
+
82
+ // 子项
83
+ & > * {
84
+ display: inline-block;
85
+ padding: 2px 0.5em;
86
+ border-radius: 10em;
87
+ font-weight: bold;
88
+ line-height: 1.25;
89
+ white-space: nowrap;
90
+ vertical-align: middle;
91
+ color: #fff;
92
+ }
93
+
94
+ // 圆角
95
+ &[ui-tags~=':round'] > * {
96
+ border-radius: 10em;
97
+ }
98
+ // 方角
99
+ &[ui-tags~=':square'] > * {
100
+ border-radius: 0.2rem;
101
+ }
102
+ // 叶型
103
+ &[ui-tags~=':leaf'] > * {
104
+ border-radius: 10em 0;
105
+ }
106
+ // 弹头
107
+ &[ui-tags~=':bullet'] > * {
108
+ border-radius: 1em 0.2em 0.2em 1em;
109
+ }
110
+
111
+ // 尺寸
112
+ &[ui-tags~='s'] > * {
113
+ padding: 1px 0.5em;
114
+ }
115
+ &[ui-tags~='m'] > * {
116
+ padding: 2px 0.5em;
117
+ }
118
+ &[ui-tags~='l'] > * {
119
+ padding: 3px 0.5em;
120
+ }
121
+
122
+ // 主题
123
+ @each $co in $tag-c-co {
124
+ @if ($co== 'main') {
125
+ & > *,
126
+ &[ui-tags~='#{$co}'] > * {
127
+ background: var(--co-#{$co});
128
+ }
129
+ } @else {
130
+ &[ui-tags~='#{$co}'] > * {
131
+ background: var(--co-#{$co});
132
+ }
133
+ }
134
+ }
135
+ }