@taiga-ui/styles 4.70.0 → 5.0.0-rc.3

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 (72) hide show
  1. package/components/appearance.less +51 -0
  2. package/components/avatar.less +188 -0
  3. package/components/badge.less +128 -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 +64 -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 +184 -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 +103 -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/miscellaneous.less +168 -0
  32. package/mixins/miscellaneous.scss +161 -0
  33. package/mixins/picker.less +200 -0
  34. package/mixins/picker.scss +199 -0
  35. package/mixins/slider.less +67 -0
  36. package/mixins/slider.scss +67 -0
  37. package/package.json +9 -2
  38. package/taiga-ui-fonts.less +4 -0
  39. package/taiga-ui-theme.less +4 -0
  40. package/theme/appearance/accent.less +14 -0
  41. package/theme/appearance/action.less +38 -0
  42. package/theme/appearance/flat.less +23 -0
  43. package/theme/appearance/floating.less +21 -0
  44. package/theme/appearance/glass.less +30 -0
  45. package/theme/appearance/outline.less +78 -0
  46. package/theme/appearance/primary.less +48 -0
  47. package/theme/appearance/secondary.less +77 -0
  48. package/theme/appearance/status.less +125 -0
  49. package/theme/appearance/table.less +68 -0
  50. package/theme/appearance/textfield.less +80 -0
  51. package/theme/appearance.less +12 -0
  52. package/theme/palette.less +161 -0
  53. package/theme/variables.less +57 -0
  54. package/utils.less +7 -0
  55. package/utils.scss +6 -0
  56. package/variables/media.less +23 -0
  57. package/variables/media.scss +23 -0
  58. package/basic/keyframes.less +0 -19
  59. package/basic/main.less +0 -80
  60. package/markup/tui-container.less +0 -64
  61. package/markup/tui-form.less +0 -145
  62. package/markup/tui-island.less +0 -200
  63. package/markup/tui-list.less +0 -136
  64. package/markup/tui-mobile-only.less +0 -5
  65. package/markup/tui-required.less +0 -13
  66. package/markup/tui-row.less +0 -139
  67. package/markup/tui-skeleton.less +0 -43
  68. package/markup/tui-space.less +0 -52
  69. package/markup/tui-table.less +0 -184
  70. package/markup/tui-text.less +0 -61
  71. package/project.json +0 -35
  72. package/taiga-ui-global.less +0 -14
@@ -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
+ }
@@ -0,0 +1,80 @@
1
+ @import '../../utils.less';
2
+
3
+ [tuiAppearance][data-appearance='textfield'] {
4
+ .transition(~'box-shadow, background-color, outline-color, border-color, color');
5
+
6
+ --t-shadow: 0 0.125rem 0.1875rem rgba(0, 0, 0, 0.1);
7
+
8
+ background-color: var(--tui-background-base);
9
+ color: var(--tui-text-tertiary);
10
+ box-shadow: var(--t-shadow);
11
+ outline: 1px solid var(--tui-border-normal);
12
+ outline-offset: -1px;
13
+ border-width: 0;
14
+
15
+ &:is(input, textarea, select) {
16
+ color: var(--tui-text-primary) !important;
17
+ }
18
+
19
+ &::before,
20
+ &::after {
21
+ transition-property: transform;
22
+ }
23
+
24
+ &:not([data-mode~='readonly']) {
25
+ .appearance-hover({
26
+ --t-shadow: 0 0.125rem 0.3125rem rgba(0, 0, 0, 0.16);
27
+ color: var(--tui-text-secondary);
28
+ });
29
+ }
30
+
31
+ .appearance-focus({
32
+ box-shadow: none;
33
+ outline: 0.125rem solid var(--tui-background-accent-1);
34
+ outline-offset: -0.125rem;
35
+ });
36
+
37
+ .appearance-disabled({
38
+ box-shadow: none;
39
+ });
40
+
41
+ .appearance-invalid({
42
+ outline-color: var(--tui-status-negative);
43
+ });
44
+
45
+ &[data-mode~='readonly'],
46
+ &[data-state='disabled'],
47
+ &:disabled,
48
+ &._disabled {
49
+ background: transparent !important;
50
+ box-shadow: none !important;
51
+ outline-color: var(--tui-border-normal) !important;
52
+ }
53
+
54
+ [tuiInput][chrome-autofilled], /* Chrome on IOS */
55
+ [tuiInput]:-webkit-autofill {
56
+ -webkit-text-fill-color: var(--tui-text-primary) !important;
57
+ caret-color: var(--tui-text-primary) !important;
58
+ box-shadow: 0 0 0 100rem var(--tui-service-autofill-background) inset !important;
59
+ transition: background-color 600000s 0s;
60
+ clip-path: inset(0.125rem round calc(var(--tui-radius-m) - 0.125rem));
61
+ }
62
+
63
+ &[data-size='l'] [tuiInput][chrome-autofilled], /* Chrome on IOS */
64
+ &[data-size='l'] [tuiInput]:-webkit-autofill {
65
+ clip-path: inset(0.125rem round calc(var(--tui-radius-l) - 0.125rem));
66
+ }
67
+ }
68
+
69
+ [tuiTheme='dark'] [tuiAppearance][data-appearance='textfield'],
70
+ [tuiTheme='dark'][tuiAppearance][data-appearance='textfield'] {
71
+ background-color: var(--tui-background-neutral-1);
72
+
73
+ .appearance-hover({
74
+ background-color: var(--tui-background-neutral-1-hover);
75
+ });
76
+
77
+ .appearance-focus({
78
+ background-color: transparent !important;
79
+ });
80
+ }
@@ -0,0 +1,12 @@
1
+ @import 'appearance/accent.less';
2
+ @import 'appearance/action.less';
3
+ @import 'appearance/flat.less';
4
+ @import 'appearance/floating.less';
5
+ @import 'appearance/glass.less';
6
+ @import 'appearance/outline.less';
7
+ @import 'appearance/primary.less';
8
+ @import 'appearance/secondary.less';
9
+ @import 'appearance/status.less';
10
+ @import 'appearance/table.less';
11
+ // Do not add it, we need it separately in proprietary theme
12
+ // @import 'appearance/textfield.less';
@@ -0,0 +1,161 @@
1
+ .dark() {
2
+ // Backgrounds
3
+ --tui-background-base: #222;
4
+ --tui-background-base-alt: #333;
5
+ --tui-background-neutral-1: rgba(255, 255, 255, 0.08);
6
+ --tui-background-neutral-1-hover: rgba(255, 255, 255, 0.16);
7
+ --tui-background-neutral-1-pressed: rgba(255, 255, 255, 0.24);
8
+ --tui-background-neutral-2: rgba(255, 255, 255, 0.24);
9
+ --tui-background-neutral-2-hover: rgba(255, 255, 255, 0.32);
10
+ --tui-background-neutral-2-pressed: rgba(255, 255, 255, 0.4);
11
+ --tui-background-accent-opposite: #fff;
12
+ --tui-background-accent-opposite-hover: #f6f6f6;
13
+ --tui-background-accent-opposite-pressed: #ededed;
14
+ --tui-background-elevation-1: #292929;
15
+ --tui-background-elevation-2: #2f2f2f;
16
+ --tui-background-elevation-3: #373737;
17
+ // Other
18
+ --tui-service-autofill-background: rgb(85, 74, 42);
19
+ --tui-border-normal: rgba(255, 255, 255, 0.14);
20
+ --tui-border-hover: rgba(255, 255, 255, 0.6);
21
+ --tui-border-focus: rgba(255, 255, 255, 0.64);
22
+ // Statuses
23
+ --tui-status-negative: rgba(255, 140, 103, 1);
24
+ --tui-status-negative-pale: rgba(244, 87, 37, 0.32);
25
+ --tui-status-negative-pale-hover: rgba(244, 87, 37, 0.4);
26
+ --tui-status-positive: rgb(74, 201, 155);
27
+ --tui-status-positive-pale: rgba(74, 201, 155, 0.32);
28
+ --tui-status-positive-pale-hover: rgba(74, 201, 155, 0.4);
29
+ --tui-status-warning: rgb(255, 199, 0);
30
+ --tui-status-warning-pale: rgba(255, 199, 0, 0.32);
31
+ --tui-status-warning-pale-hover: rgba(255, 199, 0, 0.4);
32
+ --tui-status-info: rgb(112, 182, 246);
33
+ --tui-status-info-pale: rgba(112, 182, 246, 0.32);
34
+ --tui-status-info-pale-hover: rgba(112, 182, 246, 0.4);
35
+ --tui-status-neutral: rgb(149, 155, 164);
36
+ // Text
37
+ --tui-text-primary: rgba(255, 255, 255, 1);
38
+ --tui-text-secondary: rgba(255, 255, 255, 0.72);
39
+ --tui-text-tertiary: rgba(255, 255, 255, 0.6);
40
+ --tui-text-action: #6788ff;
41
+ --tui-text-action-hover: #526ed3;
42
+ --tui-text-positive: #44c596;
43
+ --tui-text-positive-hover: #3aa981;
44
+ --tui-text-negative: #ff8c67;
45
+ --tui-text-negative-hover: #bb593a;
46
+ }
47
+
48
+ .light() {
49
+ // Backgrounds
50
+ --tui-background-base: #fff;
51
+ --tui-background-base-alt: #f6f6f6;
52
+ --tui-background-neutral-1: rgba(0, 0, 0, 0.04);
53
+ --tui-background-neutral-1-hover: rgba(0, 0, 0, 0.08);
54
+ --tui-background-neutral-1-pressed: rgba(0, 0, 0, 0.12);
55
+ --tui-background-neutral-2: rgba(0, 0, 0, 0.08);
56
+ --tui-background-neutral-2-hover: rgba(0, 0, 0, 0.1);
57
+ --tui-background-neutral-2-pressed: rgba(0, 0, 0, 0.14);
58
+ --tui-background-accent-1: #526ed3;
59
+ --tui-background-accent-1-hover: #6c86e2;
60
+ --tui-background-accent-1-pressed: #314692;
61
+ --tui-background-accent-2: #ff7043;
62
+ --tui-background-accent-2-hover: #ff9a94;
63
+ --tui-background-accent-2-pressed: #e7716a;
64
+ --tui-background-accent-opposite: #000;
65
+ --tui-background-accent-opposite-hover: #333;
66
+ --tui-background-accent-opposite-pressed: #808080;
67
+ --tui-background-elevation-1: #fff;
68
+ --tui-background-elevation-2: #fff;
69
+ --tui-background-elevation-3: #fff;
70
+ // Other
71
+ --tui-service-autofill-background: #fff5c0;
72
+ --tui-service-selection-background: rgba(112, 182, 246, 0.12);
73
+ --tui-service-backdrop: rgba(0, 0, 0, 0.75);
74
+ --tui-border-normal: rgba(0, 0, 0, 0.1);
75
+ --tui-border-hover: rgba(0, 0, 0, 0.16);
76
+ --tui-border-focus: rgba(51, 51, 51, 0.64);
77
+ // Statuses
78
+ --tui-status-negative: rgba(244, 87, 37, 1);
79
+ --tui-status-negative-pale: rgba(244, 87, 37, 0.12);
80
+ --tui-status-negative-pale-hover: rgba(244, 87, 37, 0.24);
81
+ --tui-status-positive: rgba(74, 201, 155, 1);
82
+ --tui-status-positive-pale: rgba(74, 201, 155, 0.12);
83
+ --tui-status-positive-pale-hover: rgba(74, 201, 155, 0.24);
84
+ --tui-status-warning: rgba(255, 199, 0, 1);
85
+ --tui-status-warning-pale: rgba(255, 199, 0, 0.12);
86
+ --tui-status-warning-pale-hover: rgba(255, 199, 0, 0.24);
87
+ --tui-status-info: rgba(112, 182, 246, 1);
88
+ --tui-status-info-pale: rgba(112, 182, 246, 0.12);
89
+ --tui-status-info-pale-hover: rgba(112, 182, 246, 0.24);
90
+ --tui-status-neutral: rgb(121, 129, 140);
91
+ // Text
92
+ --tui-text-primary: rgba(27, 31, 59, 1);
93
+ --tui-text-secondary: rgba(27, 31, 59, 0.65);
94
+ --tui-text-tertiary: rgba(27, 31, 59, 0.4);
95
+ --tui-text-primary-on-accent-1: #fff;
96
+ --tui-text-primary-on-accent-2: #fff;
97
+ --tui-text-action: #4c66c3;
98
+ --tui-text-action-hover: #6c86e2;
99
+ --tui-text-positive: #3aa981;
100
+ --tui-text-positive-hover: #7ac5aa;
101
+ --tui-text-negative: #dd4c1e;
102
+ --tui-text-negative-hover: #e38163;
103
+ // Charts
104
+ --tui-chart-categorical-00: var(--tui-background-accent-1);
105
+ --tui-chart-categorical-01: #ea97c4;
106
+ --tui-chart-categorical-02: #a0c5df;
107
+ --tui-chart-categorical-03: #fee797;
108
+ --tui-chart-categorical-04: #b0b0b0;
109
+ --tui-chart-categorical-05: #e29398;
110
+ --tui-chart-categorical-06: #b8474e;
111
+ --tui-chart-categorical-07: #fcc068;
112
+ --tui-chart-categorical-08: #ff8a00;
113
+ --tui-chart-categorical-09: #dab3f9;
114
+ --tui-chart-categorical-10: #7b439e;
115
+ --tui-chart-categorical-11: #8dda71;
116
+ --tui-chart-categorical-12: #fcbb14;
117
+ --tui-chart-categorical-13: #a8cef1;
118
+ --tui-chart-categorical-14: #bd65a4;
119
+ --tui-chart-categorical-15: #7fd7cc;
120
+ --tui-chart-categorical-16: #2fad96;
121
+ --tui-chart-categorical-17: #d4aca2;
122
+ --tui-chart-categorical-18: #9d6f64;
123
+ --tui-chart-categorical-19: #d2e9a2;
124
+ --tui-chart-categorical-20: #aadc42;
125
+ --tui-chart-categorical-21: #3682db;
126
+ --tui-chart-categorical-22: #34b41f;
127
+ // Shadows
128
+ --tui-shadow-small: 0 0.25rem 1.25rem rgba(0, 0, 0, 0.1);
129
+ --tui-shadow-small-hover: 0 1rem 2.5rem rgba(0, 0, 0, 0.14);
130
+ --tui-shadow-medium: 0 0.375rem 2rem rgba(0, 0, 0, 0.12);
131
+ --tui-shadow-medium-hover: 0 1.25rem 4rem rgba(0, 0, 0, 0.18);
132
+ --tui-shadow-popup: 0 1.25rem 3rem rgba(0, 0, 0, 0.2);
133
+ }
134
+
135
+ @media screen {
136
+ [tuiTheme='dark'] {
137
+ color-scheme: dark;
138
+
139
+ .dark();
140
+ }
141
+
142
+ [tuiTheme='light'] {
143
+ color-scheme: light;
144
+ }
145
+
146
+ &:root,
147
+ :host,
148
+ [tuiTheme='light'] {
149
+ .light();
150
+ }
151
+ }
152
+
153
+ @media print {
154
+ &:root,
155
+ :host,
156
+ [tuiTheme] {
157
+ color-scheme: light;
158
+
159
+ .light();
160
+ }
161
+ }
@@ -0,0 +1,57 @@
1
+ @import (inline, once) '@taiga-ui/design-tokens/palette/animation.css';
2
+ @import (inline, once) '@taiga-ui/design-tokens/palette/shadow.css';
3
+
4
+ &:root,
5
+ &:host {
6
+ // Fonts
7
+ --tui-font-family-text: 'Manrope', system-ui, sans-serif;
8
+ --tui-font-family-display: 'Manrope', system-ui, sans-serif;
9
+ --tui-font-offset: ~'0rem';
10
+ // Heading
11
+ --tui-font-heading-h1: bold calc(var(--tui-font-offset) + 3.125rem) / calc(50 / 56) var(--tui-font-family-display);
12
+ --tui-font-heading-h2: bold calc(var(--tui-font-offset) + 2.75rem) / calc(48 / 44) var(--tui-font-family-display);
13
+ --tui-font-heading-h3: bold calc(var(--tui-font-offset) + 2.25rem) / calc(40 / 36) var(--tui-font-family-display);
14
+ --tui-font-heading-h4: bold calc(var(--tui-font-offset) + 1.75rem) / calc(32 / 28) var(--tui-font-family-display);
15
+ --tui-font-heading-h5: bold calc(var(--tui-font-offset) + 1.5rem) / calc(28 / 24) var(--tui-font-family-display);
16
+ --tui-font-heading-h6: bold calc(var(--tui-font-offset) + 1.25rem) / calc(24 / 20) var(--tui-font-family-display);
17
+ // Body
18
+ --tui-font-body-l: normal calc(var(--tui-font-offset) + 1.0625rem) / calc(28 / 17) var(--tui-font-family-text);
19
+ --tui-font-body-m: normal calc(var(--tui-font-offset) + 1rem) / calc(24 / 16) var(--tui-font-family-text);
20
+ --tui-font-body-s: normal calc(var(--tui-font-offset) + 0.875rem) / calc(20 / 14) var(--tui-font-family-text);
21
+ --tui-font-body-xs: normal calc(var(--tui-font-offset) + 0.6875rem) / calc(16 / 11) var(--tui-font-family-text);
22
+ // Reduced
23
+ --tui-font-ui-l: normal calc(var(--tui-font-offset) + 1.0625rem) / calc(24 / 17) var(--tui-font-family-text);
24
+ --tui-font-ui-m: normal calc(var(--tui-font-offset) + 1rem) / calc(20 / 16) var(--tui-font-family-text);
25
+ --tui-font-ui-s: normal calc(var(--tui-font-offset) + 0.875rem) / calc(16 / 14) var(--tui-font-family-text);
26
+ --tui-font-ui-xs: normal calc(var(--tui-font-offset) + 0.75rem) / calc(15 / 12) var(--tui-font-family-text);
27
+ --tui-font-ui-2xs: normal calc(var(--tui-font-offset) + 0.6875rem) / calc(13 / 11) var(--tui-font-family-text);
28
+ // Radii
29
+ --tui-radius-xs: 0.25rem;
30
+ --tui-radius-s: 0.5rem;
31
+ --tui-radius-m: 0.625rem;
32
+ --tui-radius-l: 0.75rem;
33
+ --tui-radius-xl: 1.5rem;
34
+ // Sizes
35
+ --tui-height-xs: 1.5rem;
36
+ --tui-height-s: 2rem;
37
+ --tui-height-m: 2.75rem;
38
+ --tui-height-l: 3.5rem;
39
+ // Input padding
40
+ --tui-padding-s: 0.625rem;
41
+ --tui-padding-m: 0.75rem;
42
+ --tui-padding-l: 1rem;
43
+ // Misc
44
+ --tui-stroke-width: 0.125rem;
45
+ --tui-duration: 0.3s;
46
+ --tui-disabled-opacity: 0.56;
47
+ // logical
48
+ --tui-inline-start: left;
49
+ --tui-inline-end: right;
50
+ --tui-inline: 1;
51
+ }
52
+
53
+ [dir='rtl'] {
54
+ --tui-inline-start: right;
55
+ --tui-inline-end: left;
56
+ --tui-inline: -1;
57
+ }
package/utils.less ADDED
@@ -0,0 +1,7 @@
1
+ @import 'mixins/browsers.less';
2
+ @import 'mixins/date-picker.less';
3
+ @import 'mixins/miscellaneous.less';
4
+ @import 'mixins/picker.less';
5
+ @import 'mixins/slider.less';
6
+ @import 'mixins/appearance.less';
7
+ @import 'variables/media.less';
package/utils.scss ADDED
@@ -0,0 +1,6 @@
1
+ @import 'mixins/browsers';
2
+ @import 'mixins/miscellaneous';
3
+ @import 'mixins/picker';
4
+ @import 'mixins/slider';
5
+ @import 'mixins/appearance';
6
+ @import 'variables/media';
@@ -0,0 +1,23 @@
1
+ @tui-media-retina: ~'(-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi)';
2
+ @tui-media-retina-mobile: ~'(-webkit-min-device-pixel-ratio: 2) and (max-width: 599.4px), (min-resolution: 192dpi) and (max-width: 599.4px)';
3
+ @tui-media-retina-tablet: ~'(-webkit-min-device-pixel-ratio: 2) and (max-width: 1023.4px), (min-resolution: 192dpi) and (max-width: 1023.4px)';
4
+ @tui-media-retina-desktop: ~'(-webkit-min-device-pixel-ratio: 2) and (max-width: 1359.4px), (min-resolution: 192dpi) and (max-width: 1359.4px)';
5
+
6
+ @tui-mobile: ~'screen and (max-width: 767.4px)';
7
+ @tui-mobile-min: ~'screen and (min-width: 360px)';
8
+ @tui-mobile-interval: ~'(min-width: 360px) and (max-width: 767.4px)';
9
+
10
+ @tui-tablet: ~'screen and (max-width: 1023.4px)';
11
+ @tui-tablet-min: ~'screen and (min-width: 768px)';
12
+ @tui-tablet-interval: ~'(min-width: 768px) and (max-width: 1023.4px)';
13
+
14
+ @tui-desktop: ~'screen and (max-width: 1279.4px)';
15
+ @tui-desktop-min: ~'screen and (min-width: 1024px)';
16
+ @tui-desktop-interval: ~'(min-width: 1024px) and (max-width: 1279.4px)';
17
+
18
+ @tui-desktop-lg-min: ~'screen and (min-width: 1280px)';
19
+
20
+ @tui-touch: ~'(hover: none) and (pointer: coarse)';
21
+ @tui-stylus: ~'(hover: none) and (pointer: fine)';
22
+ @tui-pointer: ~'(hover: hover) and (pointer: coarse)';
23
+ @tui-mouse: ~'(hover: hover) and (pointer: fine)';
@@ -0,0 +1,23 @@
1
+ $tui-media-retina: '(-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi)';
2
+ $tui-media-retina-mobile: '(-webkit-min-device-pixel-ratio: 2) and (max-width: 599.4px), (min-resolution: 192dpi) and (max-width: 599.4px)';
3
+ $tui-media-retina-tablet: '(-webkit-min-device-pixel-ratio: 2) and (max-width: 1023.4px), (min-resolution: 192dpi) and (max-width: 1023.4px)';
4
+ $tui-media-retina-desktop: '(-webkit-min-device-pixel-ratio: 2) and (max-width: 1359.4px), (min-resolution: 192dpi) and (max-width: 1359.4px)';
5
+
6
+ $tui-mobile: 'screen and (max-width: 767.4px)';
7
+ $tui-mobile-min: 'screen and (min-width: 360px)';
8
+ $tui-mobile-interval: '(min-width: 360px) and (max-width: 767.4px)';
9
+
10
+ $tui-tablet: 'screen and (max-width: 1023.4px)';
11
+ $tui-tablet-min: 'screen and (min-width: 768px)';
12
+ $tui-tablet-interval: '(min-width: 768px) and (max-width: 1023.4px)';
13
+
14
+ $tui-desktop: 'screen and (max-width: 1279.4px)';
15
+ $tui-desktop-min: 'screen and (min-width: 1024px)';
16
+ $tui-desktop-interval: '(min-width: 1024px) and (max-width: 1279.4px)';
17
+
18
+ $tui-desktop-lg-min: 'screen and (min-width: 1280px)';
19
+
20
+ $tui-touch: '(hover: none) and (pointer: coarse)';
21
+ $tui-stylus: '(hover: none) and (pointer: fine)';
22
+ $tui-pointer: '(hover: hover) and (pointer: coarse)';
23
+ $tui-mouse: '(hover: hover) and (pointer: fine)';
@@ -1,19 +0,0 @@
1
- @keyframes tuiReveal {
2
- from {
3
- transform: scale(0);
4
- }
5
-
6
- to {
7
- transform: scale(1);
8
- }
9
- }
10
-
11
- @keyframes tuiFadeIn {
12
- from {
13
- opacity: var(--tui-fade-start, 0);
14
- }
15
-
16
- to {
17
- opacity: var(--tui-fade-end, 1);
18
- }
19
- }
package/basic/main.less DELETED
@@ -1,80 +0,0 @@
1
- html {
2
- block-size: 100%;
3
- /* stylelint-disable-next-line */
4
- font-size: 16px;
5
- }
6
-
7
- body {
8
- block-size: 100%;
9
- min-block-size: 100%;
10
- text-rendering: optimizeLegibility;
11
- -webkit-font-smoothing: antialiased;
12
- -moz-osx-font-smoothing: grayscale;
13
- }
14
-
15
- html,
16
- body {
17
- -webkit-overflow-scrolling: touch;
18
- }
19
-
20
- ul,
21
- ol {
22
- list-style: none;
23
- padding: 0;
24
- margin: 0;
25
- }
26
-
27
- table {
28
- border-collapse: collapse;
29
- border-spacing: 0;
30
- }
31
-
32
- input,
33
- button,
34
- select,
35
- textarea {
36
- font-family: inherit;
37
- color: inherit;
38
- }
39
-
40
- hr {
41
- margin: 0;
42
- block-size: 1px;
43
- border: none;
44
- background: var(--tui-border-normal);
45
- }
46
-
47
- iframe {
48
- border: none;
49
- }
50
-
51
- // Resolve bug with use elements in IE11
52
- // https://stackoverflow.com/questions/30653533/ie-11-crashes-when-using-dynamic-svg-elements
53
- svg use {
54
- pointer-events: none;
55
- }
56
-
57
- ::selection {
58
- background-color: var(--tui-service-selection-background);
59
- }
60
-
61
- ::-ms-clear {
62
- display: none;
63
- }
64
-
65
- ::-ms-reveal {
66
- display: none;
67
- }
68
-
69
- // @note: only safari 16+
70
- @supports (-webkit-hyphens: none) and (text-align-last: right) {
71
- /**
72
- * @descriptions:
73
- * Safari 16 has bug when for some reason,
74
- * the ::after blocks aren't removed
75
- * after the destruction of the parent class
76
- */
77
- ::after {
78
- content: none;
79
- }
80
- }