@taiga-ui/styles 4.71.1 → 5.0.0-canary.2da416d

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 (71) hide show
  1. package/components/appearance.less +51 -0
  2. package/components/avatar.less +192 -0
  3. package/components/badge.less +127 -0
  4. package/components/block.less +118 -0
  5. package/components/button.less +135 -0
  6. package/components/checkbox.less +84 -0
  7. package/components/chip.less +131 -0
  8. package/components/comment.less +63 -0
  9. package/components/compass.less +49 -0
  10. package/components/group.less +172 -0
  11. package/components/icon.less +83 -0
  12. package/components/icons.less +79 -0
  13. package/components/label.less +51 -0
  14. package/components/like.less +67 -0
  15. package/components/link.less +69 -0
  16. package/components/message.less +33 -0
  17. package/components/notification.less +181 -0
  18. package/components/pin.less +164 -0
  19. package/components/progress-bar.less +117 -0
  20. package/components/radio.less +59 -0
  21. package/components/status.less +40 -0
  22. package/components/switch.less +104 -0
  23. package/components/textfield.less +362 -0
  24. package/components/title.less +80 -0
  25. package/components/toast.less +44 -0
  26. package/mixins/appearance.less +56 -0
  27. package/mixins/appearance.scss +57 -0
  28. package/mixins/browsers.less +23 -0
  29. package/mixins/browsers.scss +23 -0
  30. package/mixins/date-picker.less +152 -0
  31. package/mixins/date-picker.scss +152 -0
  32. package/mixins/miscellaneous.less +168 -0
  33. package/mixins/miscellaneous.scss +162 -0
  34. package/mixins/slider.less +67 -0
  35. package/mixins/slider.scss +67 -0
  36. package/package.json +9 -2
  37. package/taiga-ui-fonts.less +4 -0
  38. package/taiga-ui-theme.less +4 -0
  39. package/theme/appearance/accent.less +14 -0
  40. package/theme/appearance/action.less +38 -0
  41. package/theme/appearance/flat.less +23 -0
  42. package/theme/appearance/floating.less +21 -0
  43. package/theme/appearance/glass.less +30 -0
  44. package/theme/appearance/outline.less +78 -0
  45. package/theme/appearance/primary.less +48 -0
  46. package/theme/appearance/secondary.less +77 -0
  47. package/theme/appearance/status.less +125 -0
  48. package/theme/appearance/table.less +68 -0
  49. package/theme/appearance/textfield.less +80 -0
  50. package/theme/appearance.less +12 -0
  51. package/theme/palette.less +161 -0
  52. package/theme/variables.less +71 -0
  53. package/utils.less +6 -0
  54. package/utils.scss +6 -0
  55. package/variables/media.less +23 -0
  56. package/variables/media.scss +23 -0
  57. package/basic/keyframes.less +0 -19
  58. package/basic/main.less +0 -80
  59. package/markup/tui-container.less +0 -64
  60. package/markup/tui-form.less +0 -145
  61. package/markup/tui-island.less +0 -200
  62. package/markup/tui-list.less +0 -136
  63. package/markup/tui-mobile-only.less +0 -5
  64. package/markup/tui-required.less +0 -13
  65. package/markup/tui-row.less +0 -139
  66. package/markup/tui-skeleton.less +0 -43
  67. package/markup/tui-space.less +0 -52
  68. package/markup/tui-table.less +0 -184
  69. package/markup/tui-text.less +0 -61
  70. package/project.json +0 -35
  71. package/taiga-ui-global.less +0 -14
@@ -0,0 +1,67 @@
1
+ @track-inset: {
2
+ @s: 0.625rem;
3
+ @m: 0.75rem;
4
+ @l: 1rem;
5
+ };
6
+
7
+ @thumb-diameter: var(--tui-thumb-size, 0.75rem);
8
+ @thumb-radius: calc(@thumb-diameter / 2);
9
+ @track-thickness: max(calc(@thumb-radius - 0.25rem), 0.125rem);
10
+
11
+ .tui-slider-ticks-labels() {
12
+ --t-offset: @thumb-radius;
13
+
14
+ display: flex;
15
+ font: var(--tui-typography-body-s);
16
+ color: var(--tui-text-secondary);
17
+ margin: 0.25rem var(--t-offset) 0;
18
+
19
+ & > * {
20
+ position: relative;
21
+ flex: 2;
22
+ text-align: center;
23
+
24
+ &:first-child {
25
+ inset-inline-start: calc(-1 * var(--t-offset));
26
+ flex: 1;
27
+ text-align: start;
28
+ }
29
+
30
+ &:last-child {
31
+ inset-inline-end: calc(-1 * var(--t-offset));
32
+ flex: 1;
33
+ text-align: end;
34
+ }
35
+ }
36
+
37
+ tui-range + & {
38
+ --t-offset: @thumb-diameter;
39
+ }
40
+
41
+ /* TODO: add :has([tuiInputSlider]) */
42
+ tui-textfield[data-size='l'] + & {
43
+ --t-offset: calc(@track-inset[@l] + @thumb-radius);
44
+ }
45
+
46
+ /* TODO: add :has([tuiInputSlider]) */
47
+ tui-textfield[data-size='m'] + & {
48
+ --t-offset: calc(@track-inset[@m] + @thumb-radius);
49
+ }
50
+
51
+ /* TODO: add :has([tuiInputSlider]) */
52
+ tui-textfield[data-size='s'] + & {
53
+ --t-offset: calc(@track-inset[@s] + @thumb-radius);
54
+ }
55
+
56
+ tui-input-range[data-size='l'] + & {
57
+ --t-offset: calc(@track-inset[@l] + @thumb-diameter);
58
+ }
59
+
60
+ tui-input-range[data-size='m'] + & {
61
+ --t-offset: calc(@track-inset[@m] + @thumb-diameter);
62
+ }
63
+
64
+ tui-input-range[data-size='s'] + & {
65
+ --t-offset: calc(@track-inset[@s] + @thumb-diameter);
66
+ }
67
+ }
@@ -0,0 +1,67 @@
1
+ $track-inset: (
2
+ 's': 0.625rem,
3
+ 'm': 0.75rem,
4
+ 'l': 1rem,
5
+ );
6
+
7
+ $thumb-diameter: var(--tui-thumb-size, 0.75rem);
8
+ $thumb-radius: calc($thumb-diameter / 2);
9
+ $track-thickness: max(calc($thumb-radius - 0.25rem), 0.125rem);
10
+
11
+ @mixin tui-slider-ticks-labels() {
12
+ --t-offset: $thumb-radius;
13
+
14
+ display: flex;
15
+ font: var(--tui-typography-body-s);
16
+ color: var(--tui-text-secondary);
17
+ margin: 0.25rem var(--t-offset) 0;
18
+
19
+ & > * {
20
+ position: relative;
21
+ flex: 2;
22
+ text-align: center;
23
+
24
+ &:first-child {
25
+ inset-inline-start: calc(-1 * var(--t-offset));
26
+ flex: 1;
27
+ text-align: start;
28
+ }
29
+
30
+ &:last-child {
31
+ inset-inline-end: calc(-1 * var(--t-offset));
32
+ flex: 1;
33
+ text-align: end;
34
+ }
35
+ }
36
+
37
+ tui-range + & {
38
+ --t-offset: $thumb-diameter;
39
+ }
40
+
41
+ /* TODO: add :has([tuiInputSlider]) */
42
+ tui-textfield[data-size='l'] + & {
43
+ --t-offset: calc(map-get($track-inset, 'l') + $thumb-radius);
44
+ }
45
+
46
+ /* TODO: add :has([tuiInputSlider]) */
47
+ tui-textfield[data-size='m'] + & {
48
+ --t-offset: calc(map-get($track-inset, 'm') + $thumb-radius);
49
+ }
50
+
51
+ /* TODO: add :has([tuiInputSlider]) */
52
+ tui-textfield[data-size='s'] + & {
53
+ --t-offset: calc(map-get($track-inset, 's') + $thumb-radius);
54
+ }
55
+
56
+ tui-input-range[data-size='l'] + & {
57
+ --t-offset: calc(map-get($track-inset, 'l') + $thumb-diameter);
58
+ }
59
+
60
+ tui-input-range[data-size='m'] + & {
61
+ --t-offset: calc(map-get($track-inset, 'm') + $thumb-diameter);
62
+ }
63
+
64
+ tui-input-range[data-size='s'] + & {
65
+ --t-offset: calc(map-get($track-inset, 's') + $thumb-diameter);
66
+ }
67
+ }
package/package.json CHANGED
@@ -1,5 +1,12 @@
1
1
  {
2
2
  "name": "@taiga-ui/styles",
3
- "version": "4.71.1",
4
- "description": "Global Styles for Taiga UI"
3
+ "version": "5.0.0-canary.2da416d",
4
+ "description": "Framework-agnostic package with styles for Taiga UI",
5
+ "license": "Apache-2.0",
6
+ "exports": {
7
+ "./*": "./*"
8
+ },
9
+ "peerDependencies": {
10
+ "@taiga-ui/design-tokens": "~0.283.0"
11
+ }
5
12
  }
@@ -0,0 +1,4 @@
1
+ // stylelint-disable
2
+ // https://github.com/stackblitz/core/issues/2104#issuecomment-1397086512
3
+ //noinspection CssUnknownTarget
4
+ @import (optional) url(https://fonts.googleapis.com/css2?family=Manrope:wght@500;800&display=swap);
@@ -0,0 +1,4 @@
1
+ @import 'theme/variables.less';
2
+ @import 'theme/palette.less';
3
+ @import 'theme/appearance.less';
4
+ @import 'theme/appearance/textfield.less';
@@ -0,0 +1,14 @@
1
+ @import '../../utils.less';
2
+
3
+ [tuiAppearance][data-appearance='accent'] {
4
+ background: var(--tui-background-accent-2);
5
+ color: var(--tui-text-primary-on-accent-2);
6
+
7
+ .appearance-hover({
8
+ background: var(--tui-background-accent-2-hover);
9
+ });
10
+
11
+ .appearance-active({
12
+ background: var(--tui-background-accent-2-pressed);
13
+ });
14
+ }
@@ -0,0 +1,38 @@
1
+ [tuiAppearance][data-appearance='action'] {
2
+ color: var(--tui-text-action);
3
+ background: transparent;
4
+
5
+ .appearance-hover({
6
+ color: var(--tui-text-action-hover);
7
+ });
8
+
9
+ .appearance-active({
10
+ color: var(--tui-text-action-hover);
11
+ });
12
+ }
13
+
14
+ [tuiAppearance][data-appearance='action-destructive'] {
15
+ color: var(--tui-text-negative);
16
+ background: transparent;
17
+
18
+ .appearance-hover({
19
+ color: var(--tui-text-negative-hover);
20
+ });
21
+
22
+ .appearance-active({
23
+ color: var(--tui-text-negative-hover);
24
+ });
25
+ }
26
+
27
+ [tuiAppearance][data-appearance='action-grayscale'] {
28
+ color: var(--tui-text-secondary);
29
+ background: transparent;
30
+
31
+ .appearance-hover({
32
+ color: var(--tui-text-primary);
33
+ });
34
+
35
+ .appearance-active({
36
+ color: var(--tui-text-primary);
37
+ });
38
+ }
@@ -0,0 +1,23 @@
1
+ @import '../../utils.less';
2
+
3
+ [tuiAppearance][data-appearance='flat'],
4
+ [tuiAppearance][data-appearance='flat-destructive'],
5
+ [tuiAppearance][data-appearance='flat-grayscale'] {
6
+ color: var(--tui-text-action);
7
+
8
+ .appearance-hover({
9
+ background: var(--tui-background-neutral-1-hover);
10
+ });
11
+
12
+ .appearance-active({
13
+ background: var(--tui-background-neutral-1-pressed);
14
+ });
15
+ }
16
+
17
+ [tuiAppearance][data-appearance='flat-destructive'] {
18
+ color: var(--tui-text-negative);
19
+ }
20
+
21
+ [tuiAppearance][data-appearance='flat-grayscale'] {
22
+ color: var(--tui-text-primary);
23
+ }
@@ -0,0 +1,21 @@
1
+ @import '../../utils.less';
2
+
3
+ [tuiAppearance][data-appearance='floating'] {
4
+ background: var(--tui-background-elevation-2);
5
+ color: var(--tui-text-primary);
6
+ box-shadow: var(--tui-shadow-small);
7
+
8
+ &::before,
9
+ &::after {
10
+ transition-property: color;
11
+ }
12
+
13
+ .appearance-hover({
14
+ box-shadow: var(--tui-shadow-small-hover);
15
+ });
16
+
17
+ .appearance-active({
18
+ background: var(--tui-background-base-alt);
19
+ box-shadow: var(--tui-shadow-small);
20
+ });
21
+ }
@@ -0,0 +1,30 @@
1
+ @import '../../utils.less';
2
+
3
+ [tuiAppearance][data-appearance='glass'] {
4
+ background: rgba(0, 0, 0, 0.4);
5
+ color: #fff;
6
+ backdrop-filter: blur(1rem);
7
+
8
+ --tui-border-focus: rgba(255, 255, 255, 0.64);
9
+
10
+ .appearance-hover({
11
+ background: rgba(0, 0, 0, 0.48);
12
+ });
13
+
14
+ .appearance-active({
15
+ background: rgba(0, 0, 0, 0.6);
16
+ });
17
+ }
18
+
19
+ [tuiTheme='dark'] [tuiAppearance][data-appearance='glass'],
20
+ [tuiTheme='dark'][tuiAppearance][data-appearance='glass'] {
21
+ background: rgba(255, 255, 255, 0.3);
22
+
23
+ .appearance-hover({
24
+ background: rgba(255, 255, 255, 0.4);
25
+ });
26
+
27
+ .appearance-active({
28
+ background: rgba(255, 255, 255, 0.5);
29
+ });
30
+ }
@@ -0,0 +1,78 @@
1
+ @import '../../utils.less';
2
+
3
+ [tuiAppearance][data-appearance='outline'],
4
+ [tuiAppearance][data-appearance='outline-destructive'],
5
+ [tuiAppearance][data-appearance='outline-grayscale'] {
6
+ --t-bs: var(--tui-border-normal);
7
+
8
+ color: var(--tui-text-action);
9
+ box-shadow: inset 0 0 0 1px var(--t-bs);
10
+
11
+ &:checked:not([data-mode]),
12
+ &[data-mode~='checked'] {
13
+ --t-bs: var(--tui-background-accent-1);
14
+
15
+ box-shadow: inset 0 0 0 2px var(--t-bs);
16
+
17
+ .appearance-hover({
18
+ --t-bs: var(--tui-background-accent-1-hover);
19
+ });
20
+
21
+ .appearance-active({
22
+ --t-bs: var(--tui-background-accent-1-pressed);
23
+ });
24
+ }
25
+
26
+ .appearance-invalid({
27
+ box-shadow: inset 0 0 0 1px var(--tui-status-negative-pale-hover);
28
+
29
+ &:checked,
30
+ &[data-mode~='checked'] {
31
+ box-shadow: inset 0 0 0 2px var(--tui-status-negative);
32
+ }
33
+ });
34
+
35
+ .appearance-hover({
36
+ cursor: pointer;
37
+ --t-bs: var(--tui-border-hover);
38
+ });
39
+
40
+ .appearance-active({
41
+ background: var(--tui-background-neutral-1);
42
+ --t-bs: var(--tui-border-hover);
43
+ });
44
+ }
45
+
46
+ [tuiAppearance][data-appearance='outline-grayscale'] {
47
+ color: var(--tui-text-primary);
48
+ }
49
+
50
+ [tuiAppearance][data-appearance='outline-destructive'] {
51
+ color: var(--tui-text-negative);
52
+ }
53
+
54
+ [tuiAppearance][data-appearance='icon'],
55
+ [tuiAppearance][data-appearance='outline-grayscale'],
56
+ [tuiAppearance][data-appearance='floating'] {
57
+ color: var(--tui-text-primary);
58
+
59
+ &::before,
60
+ &::after {
61
+ transition-property: color, transform;
62
+ color: var(--tui-text-tertiary);
63
+ }
64
+
65
+ .appearance-hover({
66
+ &:before,
67
+ &:after {
68
+ color: var(--tui-text-secondary);
69
+ }
70
+ });
71
+
72
+ .appearance-active({
73
+ &:before,
74
+ &:after {
75
+ color: var(--tui-text-primary);
76
+ }
77
+ });
78
+ }
@@ -0,0 +1,48 @@
1
+ @import '../../utils.less';
2
+
3
+ [tuiAppearance][data-appearance='primary'] {
4
+ --t-bg: var(--tui-background-accent-1);
5
+
6
+ background: var(--t-bg);
7
+ color: var(--tui-text-primary-on-accent-1);
8
+
9
+ .appearance-invalid({
10
+ background: var(--tui-status-negative);
11
+ });
12
+
13
+ .appearance-hover({
14
+ --t-bg: var(--tui-background-accent-1-hover);
15
+ });
16
+
17
+ .appearance-active({
18
+ --t-bg: var(--tui-background-accent-1-pressed);
19
+ });
20
+ }
21
+
22
+ [tuiAppearance][data-appearance='primary-destructive'] {
23
+ color: #fff;
24
+ background: var(--tui-status-negative);
25
+
26
+ .appearance-hover({
27
+ filter: saturate(1) brightness(1.3);
28
+ });
29
+
30
+ .appearance-active({
31
+ filter: saturate(0.8) brightness(1);
32
+ });
33
+ }
34
+
35
+ [tuiAppearance][data-appearance='primary-grayscale'] {
36
+ --tui-border-focus: #979797;
37
+
38
+ background: var(--tui-background-accent-opposite);
39
+ color: var(--tui-background-base);
40
+
41
+ .appearance-hover({
42
+ background: var(--tui-background-accent-opposite-hover);
43
+ });
44
+
45
+ .appearance-active({
46
+ background: var(--tui-background-accent-opposite-pressed);
47
+ });
48
+ }
@@ -0,0 +1,77 @@
1
+ @import '../../utils.less';
2
+
3
+ [tuiAppearance][data-appearance='secondary'],
4
+ [tuiAppearance][data-appearance='secondary-destructive'],
5
+ [tuiAppearance][data-appearance='secondary-grayscale'] {
6
+ background: var(--tui-background-neutral-1);
7
+ color: var(--tui-text-action);
8
+
9
+ .appearance-hover({
10
+ background: var(--tui-background-neutral-1-hover);
11
+ });
12
+
13
+ .appearance-active({
14
+ background: var(--tui-background-neutral-1-pressed);
15
+ });
16
+
17
+ &:checked:not([data-mode]),
18
+ &[data-mode~='checked'],
19
+ &[type='checkbox']:indeterminate:not([data-mode]) {
20
+ background: var(--tui-background-accent-1);
21
+ color: var(--tui-text-primary-on-accent-1);
22
+
23
+ .appearance-hover({
24
+ background: var(--tui-background-accent-1-hover);
25
+ });
26
+
27
+ .appearance-active({
28
+ background: var(--tui-background-accent-1-pressed);
29
+ });
30
+
31
+ .appearance-invalid({
32
+ background: var(--tui-status-negative);
33
+ color: #fff;
34
+
35
+ .appearance-hover({
36
+ background: var(--tui-status-negative);
37
+ color: #fff;
38
+ });
39
+
40
+ .appearance-active({
41
+ background: var(--tui-status-negative);
42
+ color: #fff;
43
+ });
44
+ });
45
+ }
46
+
47
+ .appearance-invalid({
48
+ color: var(--tui-text-negative);
49
+ background: var(--tui-status-negative-pale);
50
+
51
+ .appearance-hover({
52
+ color: var(--tui-text-negative-hover);
53
+ background: var(--tui-status-negative-pale-hover);
54
+ });
55
+
56
+ .appearance-active({
57
+ color: var(--tui-text-negative-hover);
58
+ background: var(--tui-status-negative-pale-hover);
59
+ });
60
+ });
61
+ }
62
+
63
+ [tuiAppearance][data-appearance='secondary-destructive'] {
64
+ color: var(--tui-text-negative);
65
+ }
66
+
67
+ [tuiAppearance][data-appearance='secondary-grayscale'] {
68
+ color: var(--tui-text-primary);
69
+ }
70
+
71
+ // Overriding to darker colors for small items
72
+ input[type='checkbox'][data-appearance='secondary'],
73
+ input[type='radio'][data-appearance='secondary'] {
74
+ --tui-background-neutral-1: var(--tui-background-neutral-2);
75
+ --tui-background-neutral-1-hover: var(--tui-background-neutral-2-hover);
76
+ --tui-background-neutral-1-pressed: var(--tui-background-neutral-2-pressed);
77
+ }
@@ -0,0 +1,125 @@
1
+ @import '../../utils.less';
2
+
3
+ [tuiAppearance][data-appearance='negative'],
4
+ [tuiAppearance][data-appearance='positive'],
5
+ [tuiAppearance][data-appearance='warning'],
6
+ [tuiAppearance][data-appearance='info'],
7
+ [tuiAppearance][data-appearance='neutral'] {
8
+ background: var(--t-bg);
9
+ color: var(--tui-text-primary);
10
+
11
+ &:checked:not([data-mode]),
12
+ &[data-mode~='checked'] {
13
+ color: #fff;
14
+ }
15
+ }
16
+
17
+ [tuiAppearance][data-appearance='negative'] {
18
+ --t-bg: var(--tui-status-negative-pale);
19
+
20
+ &::before,
21
+ &::after {
22
+ color: var(--tui-status-negative);
23
+ }
24
+
25
+ .appearance-hover({
26
+ --t-bg: var(--tui-status-negative-pale-hover);
27
+ });
28
+
29
+ .appearance-active({
30
+ --t-bg: var(--tui-status-negative-pale-hover);
31
+ });
32
+
33
+ &:checked:not([data-mode]),
34
+ &[data-mode~='checked'] {
35
+ background: var(--tui-status-negative);
36
+ }
37
+ }
38
+
39
+ [tuiAppearance][data-appearance='positive'] {
40
+ --t-bg: var(--tui-status-positive-pale);
41
+
42
+ &::before,
43
+ &::after {
44
+ color: var(--tui-status-positive);
45
+ }
46
+
47
+ .appearance-hover({
48
+ --t-bg: var(--tui-status-positive-pale-hover);
49
+ });
50
+
51
+ .appearance-active({
52
+ --t-bg: var(--tui-status-positive-pale-hover);
53
+ });
54
+
55
+ &:checked:not([data-mode]),
56
+ &[data-mode~='checked'] {
57
+ background: var(--tui-status-positive);
58
+ }
59
+ }
60
+
61
+ [tuiAppearance][data-appearance='warning'] {
62
+ --t-bg: var(--tui-status-warning-pale);
63
+
64
+ &::before,
65
+ &::after {
66
+ color: var(--tui-status-warning);
67
+ }
68
+
69
+ .appearance-hover({
70
+ --t-bg: var(--tui-status-warning-pale-hover);
71
+ });
72
+
73
+ .appearance-active({
74
+ --t-bg: var(--tui-status-warning-pale-hover);
75
+ });
76
+
77
+ &:checked:not([data-mode]),
78
+ &[data-mode~='checked'] {
79
+ background: var(--tui-status-warning);
80
+ }
81
+ }
82
+
83
+ [tuiAppearance][data-appearance='info'] {
84
+ --t-bg: var(--tui-status-info-pale);
85
+
86
+ &::before,
87
+ &::after {
88
+ color: var(--tui-status-info);
89
+ }
90
+
91
+ .appearance-hover({
92
+ --t-bg: var(--tui-status-info-pale-hover);
93
+ });
94
+
95
+ .appearance-active({
96
+ --t-bg: var(--tui-status-info-pale-hover);
97
+ });
98
+
99
+ &:checked:not([data-mode]),
100
+ &[data-mode~='checked'] {
101
+ background: var(--tui-status-info);
102
+ }
103
+ }
104
+
105
+ [tuiAppearance][data-appearance='neutral'] {
106
+ --t-bg: var(--tui-background-neutral-1);
107
+
108
+ &::before,
109
+ &::after {
110
+ color: var(--tui-status-neutral);
111
+ }
112
+
113
+ .appearance-hover({
114
+ --t-bg: var(--tui-background-neutral-1-hover);
115
+ });
116
+
117
+ .appearance-active({
118
+ --t-bg: var(--tui-background-neutral-1-pressed);
119
+ });
120
+
121
+ &:checked:not([data-mode]),
122
+ &[data-mode~='checked'] {
123
+ background: var(--tui-status-neutral);
124
+ }
125
+ }
@@ -0,0 +1,68 @@
1
+ @import '../../utils.less';
2
+
3
+ [tuiAppearance][data-appearance='table'] {
4
+ min-block-size: calc(100% + 1px);
5
+ border-radius: 0 !important;
6
+ background: transparent;
7
+ color: var(--tui-text-primary);
8
+ border: none;
9
+ outline: none;
10
+ margin: -1px -1px 0;
11
+ overflow: hidden;
12
+
13
+ &:not(tui-textfield[multi], tui-input-card-group) [tuiInput]:not(textarea) {
14
+ block-size: var(--t-height);
15
+ border-block-end: 100rem solid transparent;
16
+ box-sizing: content-box;
17
+ }
18
+
19
+ &::before,
20
+ &::after {
21
+ color: var(--tui-text-tertiary);
22
+ }
23
+
24
+ &:not([data-mode~='readonly']) {
25
+ .appearance-hover({
26
+ &[data-focus='false'] {
27
+ background-color: var(--tui-background-neutral-1);
28
+ }
29
+
30
+ &::before,
31
+ &::after {
32
+ color: var(--tui-text-secondary);
33
+ }
34
+ });
35
+ }
36
+
37
+ .appearance-focus({
38
+ border-image: conic-gradient(var(--tui-border-focus) 0 0) 1 / 0.125rem / 0 0 1px;
39
+ });
40
+
41
+ .appearance-invalid({
42
+ background:
43
+ linear-gradient(to top right, transparent 0% 50%, var(--tui-status-negative) 50% 100%)
44
+ top right / 0.5rem 0.5rem
45
+ no-repeat
46
+ border-box;
47
+
48
+ &[data-focus='false'] {
49
+ background-color: var(--tui-status-negative-pale);
50
+ }
51
+
52
+ .appearance-hover({
53
+ &[data-focus='false'] {
54
+ background-color: var(--tui-status-negative-pale-hover);
55
+ }
56
+ });
57
+
58
+ .appearance-disabled({
59
+ background: transparent;
60
+ outline: none;
61
+ });
62
+
63
+ .appearance-focus({
64
+ background-color: transparent;
65
+ border-image: conic-gradient(var(--tui-status-negative) 0 0) 1 / 1px / 0 0 1px;
66
+ });
67
+ });
68
+ }