@fastkit/vui 0.12.7 → 0.12.9

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 (109) hide show
  1. package/LICENSE +1 -1
  2. package/dist/vui.css +2786 -2716
  3. package/dist/vui.css.map +1 -0
  4. package/dist/vui.d.ts +9072 -10160
  5. package/dist/vui.mjs +2158 -1968
  6. package/dist/vui.mjs.map +1 -0
  7. package/package.json +89 -59
  8. package/src/components/VApp/VApp.tsx +3 -1
  9. package/src/components/VAvatar/VAvatar.scss +62 -60
  10. package/src/components/VAvatar/VAvatar.tsx +6 -1
  11. package/src/components/VBreadcrumbs/VBreadcrumbs.scss +53 -51
  12. package/src/components/VBusyImage/VBusyImage.scss +50 -51
  13. package/src/components/VButton/VButton.scss +120 -118
  14. package/src/components/VButton/VButton.tsx +6 -1
  15. package/src/components/VButton/VButtonGroup.scss +21 -19
  16. package/src/components/VCard/VCard.scss +41 -42
  17. package/src/components/VCard/VCard.tsx +5 -0
  18. package/src/components/VCard/VCardActions.scss +9 -7
  19. package/src/components/VCard/VCardContent.scss +4 -2
  20. package/src/components/VCheckable/VCheckable.scss +79 -80
  21. package/src/components/VCheckable/VCheckable.tsx +1 -1
  22. package/src/components/VCheckbox/VCheckbox.scss +50 -48
  23. package/src/components/VCheckbox/VCheckbox.tsx +2 -2
  24. package/src/components/VChip/VChip.scss +61 -59
  25. package/src/components/VChip/VChip.tsx +6 -1
  26. package/src/components/VContentSwitcher/VContentSwitcher.scss +52 -50
  27. package/src/components/VControlField/VControlField.scss +148 -146
  28. package/src/components/VControlField/VControlField.tsx +3 -3
  29. package/src/components/VDataTable/VDataTable.scss +167 -168
  30. package/src/components/VDataTable/VDataTable.tsx +39 -8
  31. package/src/components/VDrawerLayout/VDrawerLayout.scss +27 -25
  32. package/src/components/VForm/VForm.tsx +3 -4
  33. package/src/components/VFormControl/VFormControl.scss +84 -82
  34. package/src/components/VFormControl/VFormControl.tsx +2 -3
  35. package/src/components/VGrid/VGridContainer.scss +5 -3
  36. package/src/components/VGrid/VGridItem.scss +4 -2
  37. package/src/components/VHero/VHero.scss +23 -21
  38. package/src/components/VIcon/VIcon.scss +19 -17
  39. package/src/components/VListTile/VListTile.scss +60 -58
  40. package/src/components/VListTile/VListTile.tsx +5 -0
  41. package/src/components/VNavigation/VNavigation.scss +12 -10
  42. package/src/components/VNavigation/VNavigationItem.scss +21 -19
  43. package/src/components/VNavigation/VNavigationItem.tsx +5 -0
  44. package/src/components/VOption/VOption.scss +55 -56
  45. package/src/components/VOption/VOption.tsx +2 -2
  46. package/src/components/VOptionGroup/VOptionGroup.scss +14 -12
  47. package/src/components/VOptionGroup/VOptionGroup.tsx +3 -1
  48. package/src/components/VPagination/VPagination.scss +81 -79
  49. package/src/components/VPagination/VPagination.tsx +1 -1
  50. package/src/components/VPaper/VPaper.scss +43 -41
  51. package/src/components/VRadio/VRadio.scss +52 -53
  52. package/src/components/VRadio/VRadio.tsx +2 -2
  53. package/src/components/VSelect/VSelect.scss +77 -75
  54. package/src/components/VSelect/VSelect.tsx +5 -2
  55. package/src/components/VSkeltonLoader/VSkeltonLoaderBone.scss +24 -22
  56. package/src/components/VSwitch/VSwitch.scss +96 -94
  57. package/src/components/VSwitch/VSwitch.tsx +2 -2
  58. package/src/components/VTabs/VTab.scss +59 -57
  59. package/src/components/VTabs/VTabs.scss +41 -39
  60. package/src/components/VTabs/VTabs.tsx +5 -2
  61. package/src/components/VTextCounter/VTextCounter.scss +4 -2
  62. package/src/components/VTextField/VTextField.scss +37 -35
  63. package/src/components/VTextField/VTextField.tsx +2 -2
  64. package/src/components/VTextarea/VTextarea.scss +33 -31
  65. package/src/components/VTextarea/VTextarea.tsx +2 -2
  66. package/src/components/VToolbar/VToolbar.scss +19 -17
  67. package/src/components/VToolbar/VToolbarEdge.scss +21 -19
  68. package/src/components/VToolbar/VToolbarMenu.scss +6 -4
  69. package/src/components/VToolbar/VToolbarMenu.tsx +5 -0
  70. package/src/components/VToolbar/VToolbarTitle.scss +19 -17
  71. package/src/components/VWysiwygEditor/VWysiwygEditor.scss +52 -50
  72. package/src/components/VWysiwygEditor/VWysiwygEditor.tsx +2 -2
  73. package/src/components/VWysiwygEditor/extensions/linter/Linter.scss +108 -109
  74. package/src/components/VWysiwygEditor/schemes.ts +1 -1
  75. package/src/components/VWysiwygEditor/tools/color.scss +106 -112
  76. package/src/components/kits.ts +1 -1
  77. package/src/composables/control.ts +1 -1
  78. package/src/composables/form-selector.scss +20 -18
  79. package/src/composables/form-selector.tsx +5 -3
  80. package/src/index.ts +13 -2
  81. package/src/plugin.tsx +4 -4
  82. package/src/schemes/control.ts +2 -2
  83. package/src/service.tsx +5 -5
  84. package/src/styles/core/functions.scss +2 -2
  85. package/src/styles/index.scss +23 -9
  86. package/dist/tool/index.d.ts +0 -2
  87. package/dist/tool/index.d.ts.map +0 -1
  88. package/dist/tool/index.mjs +0 -193
  89. package/dist/tool/vite-plugin.d.ts +0 -25
  90. package/dist/tool/vite-plugin.d.ts.map +0 -1
  91. package/src/.DS_Store +0 -0
  92. package/src/assets/builtins/color-scheme.ts +0 -9
  93. package/src/assets/builtins/media-match.ts +0 -3
  94. package/src/components/.DS_Store +0 -0
  95. package/src/components/VAvatar/.DS_Store +0 -0
  96. package/src/components/VChip/.DS_Store +0 -0
  97. package/src/components/VSkeltonLoader/.DS_Store +0 -0
  98. package/src/components/VTextField/.DS_Store +0 -0
  99. package/src/components/VWysiwygEditor/.DS_Store +0 -0
  100. package/src/components/VWysiwygEditor/extensions/.DS_Store +0 -0
  101. package/src/components/VWysiwygEditor/extensions/linter/.DS_Store +0 -0
  102. package/src/tool/index.ts +0 -2
  103. package/src/tool/vite-plugin.ts +0 -266
  104. /package/{src/styles → dist}/after-effects/display-flow.scss +0 -0
  105. /package/{src/styles → dist}/after-effects/spacing.scss +0 -0
  106. /package/{src/styles → dist}/after-effects/text.scss +0 -0
  107. /package/{src/styles → dist}/after-effects.scss +0 -0
  108. /package/dist/{assets/builtins → builtins}/color-scheme.ts +0 -0
  109. /package/dist/{assets/builtins → builtins}/media-match.ts +0 -0
@@ -1,92 +1,94 @@
1
1
  @use '../../styles/core.scss';
2
2
 
3
- .v-select {
4
- &__input {
5
- cursor: pointer;
3
+ @layer vui {
4
+ .v-select {
5
+ &__input {
6
+ cursor: pointer;
6
7
 
7
- &__element {
8
- @include core.hidden-input-element;
9
- }
10
-
11
- // &__element {
12
- // width: 100%;
13
- // min-width: 0;
14
- // // width: calc(100% - 8px);
15
- // padding: 0;
16
- // margin: 0;
17
- // overflow: hidden;
18
- // // margin: 0 8px;
19
- // font-size: inherit;
20
- // text-overflow: ellipsis;
21
- // white-space: nowrap;
22
- // background: transparent;
23
- // border: 0;
24
- // border-radius: 0;
25
- // outline: 0;
8
+ &__element {
9
+ @include core.hidden-input-element;
10
+ }
26
11
 
27
- // &:-webkit-autofill {
28
- // color: inherit !important;
29
- // // box-shadow: 0 0 0 1000px get-color(field) inset;
30
- // }
12
+ // &__element {
13
+ // width: 100%;
14
+ // min-width: 0;
15
+ // // width: calc(100% - 8px);
16
+ // padding: 0;
17
+ // margin: 0;
18
+ // overflow: hidden;
19
+ // // margin: 0 8px;
20
+ // font-size: inherit;
21
+ // text-overflow: ellipsis;
22
+ // white-space: nowrap;
23
+ // background: transparent;
24
+ // border: 0;
25
+ // border-radius: 0;
26
+ // outline: 0;
31
27
 
32
- // &::-ms-clear {
33
- // display: none;
34
- // }
28
+ // &:-webkit-autofill {
29
+ // color: inherit !important;
30
+ // // box-shadow: 0 0 0 1000px get-color(field) inset;
31
+ // }
35
32
 
36
- // // @include placeholder {
37
- // // color: get-color(text-muted);
38
- // // }
39
- // }
40
- }
33
+ // &::-ms-clear {
34
+ // display: none;
35
+ // }
41
36
 
42
- &__body {
43
- padding: 0.5em 0;
44
- }
37
+ // // @include placeholder {
38
+ // // color: get-color(text-muted);
39
+ // // }
40
+ // }
41
+ }
45
42
 
46
- &__selections {
47
- display: table;
48
- width: 100%;
49
- table-layout: fixed;
50
- // display: flex;
51
- // align-items: center;
52
- // width: 100%;
53
- // min-width: 0;
54
- &__inner {
55
- display: table-cell;
56
- overflow: hidden;
57
- text-overflow: ellipsis;
58
- white-space: nowrap;
59
- vertical-align: middle;
43
+ &__body {
44
+ padding: 0.5em 0;
60
45
  }
61
46
 
62
- .v-select--multiple & {
63
- display: block;
47
+ &__selections {
48
+ display: table;
49
+ width: 100%;
50
+ table-layout: fixed;
51
+ // display: flex;
52
+ // align-items: center;
53
+ // width: 100%;
54
+ // min-width: 0;
55
+ &__inner {
56
+ display: table-cell;
57
+ overflow: hidden;
58
+ text-overflow: ellipsis;
59
+ white-space: nowrap;
60
+ vertical-align: middle;
61
+ }
62
+
63
+ .v-select--multiple & {
64
+ display: block;
65
+ }
66
+
67
+ .v-select--multiple &__inner {
68
+ display: block;
69
+ overflow: auto;
70
+ white-space: unset;
71
+ }
64
72
  }
65
73
 
66
- .v-select--multiple &__inner {
67
- display: block;
68
- overflow: auto;
69
- white-space: unset;
74
+ &--multiple .v-control-field__body {
75
+ padding: 0.2em 0;
70
76
  }
71
- }
72
77
 
73
- &--multiple .v-control-field__body {
74
- padding: 0.2em 0;
75
- }
78
+ &__placeholder {
79
+ font-style: italic;
80
+ color: var(--control-disabled-color);
81
+ }
76
82
 
77
- &__placeholder {
78
- font-style: italic;
79
- color: var(--control-disabled-color);
83
+ // &__selection {
84
+ // // // box-sizing: content-box;
85
+ // // display: table-cell;
86
+ // // // width: 100%;
87
+ // // // min-width: 0;
88
+ // // overflow: hidden;
89
+ // // text-overflow: ellipsis;
90
+ // // white-space: nowrap;
91
+ // // vertical-align: middle;
92
+ // }
80
93
  }
81
-
82
- // &__selection {
83
- // // // box-sizing: content-box;
84
- // // display: table-cell;
85
- // // // width: 100%;
86
- // // // min-width: 0;
87
- // // overflow: hidden;
88
- // // text-overflow: ellipsis;
89
- // // white-space: nowrap;
90
- // // vertical-align: middle;
91
- // }
92
94
  }
@@ -12,14 +12,17 @@ import {
12
12
  createFormSelectorSettings,
13
13
  useFormSelectorControl,
14
14
  createFormControlProps,
15
- defineSlotsProps,
16
15
  FormControlSlots,
17
16
  FormSelectorItemControl,
17
+ } from '@fastkit/vue-form-control';
18
+ import {
19
+ defineSlotsProps,
18
20
  createPropsOptions,
19
21
  VNodeChildOrSlot,
20
22
  resolveVNodeChildOrSlots,
21
23
  useKeyboard,
22
- } from '@fastkit/vue-kit';
24
+ } from '@fastkit/vue-utils';
25
+ import {} from '@fastkit/vue-scroller';
23
26
  import { VFormControl } from '../VFormControl';
24
27
  import {
25
28
  VControlField,
@@ -1,26 +1,28 @@
1
- .v-skelton-loader-bone {
2
- position: relative;
3
- overflow: hidden;
4
- cursor: progress;
5
- background: rgba(0, 0, 0, 0.12);
6
- border-radius: inherit;
1
+ @layer vui {
2
+ .v-skelton-loader-bone {
3
+ position: relative;
4
+ overflow: hidden;
5
+ cursor: progress;
6
+ background: rgba(0, 0, 0, 0.12);
7
+ border-radius: inherit;
7
8
 
8
- &::after {
9
- position: absolute;
10
- top: 0;
11
- right: 0;
12
- left: 0;
13
- z-index: 1;
14
- height: 100%;
15
- content: '';
16
- background: linear-gradient(
17
- 90deg,
18
- hsla(0deg, 0%, 100%, 0),
19
- hsla(0deg, 0%, 100%, 0.3),
20
- hsla(0deg, 0%, 100%, 0)
21
- );
22
- transform: translateX(-100%);
23
- animation: v-skelton-loader-bone-loading 1.5s infinite;
9
+ &::after {
10
+ position: absolute;
11
+ top: 0;
12
+ right: 0;
13
+ left: 0;
14
+ z-index: 1;
15
+ height: 100%;
16
+ content: '';
17
+ background: linear-gradient(
18
+ 90deg,
19
+ hsla(0deg, 0%, 100%, 0),
20
+ hsla(0deg, 0%, 100%, 0.3),
21
+ hsla(0deg, 0%, 100%, 0)
22
+ );
23
+ transform: translateX(-100%);
24
+ animation: v-skelton-loader-bone-loading 1.5s infinite;
25
+ }
24
26
  }
25
27
  }
26
28
 
@@ -1,125 +1,127 @@
1
1
  @use 'sass:math';
2
2
 
3
- .v-switch {
4
- --my-pin-color: var(--palette-background);
5
- // --my-faux-bg-color: transparent;
3
+ @layer vui {
4
+ .v-switch {
5
+ --my-pin-color: var(--palette-background);
6
+ // --my-faux-bg-color: transparent;
6
7
 
7
- &--selected {
8
- --my-pin-color: var(--color);
9
- }
10
-
11
- &__faux {
12
- position: relative;
13
- display: flex;
14
- align-items: center;
15
- justify-content: center;
16
- width: 100%;
17
- width: var(--control-switch-width);
18
- height: 100%;
19
- cursor: pointer;
20
-
21
- &::before {
22
- display: block;
23
- width: var(--control-switch-track-width);
24
- height: var(--control-switch-track-height);
25
- content: '';
26
- background: var(--color);
27
- border-radius: calc(var(--control-switch-track-height) / 2);
28
- opacity: 0.5;
8
+ &--selected {
9
+ --my-pin-color: var(--color);
29
10
  }
30
11
 
31
- &__pin {
32
- position: absolute;
33
- top: 0;
34
- bottom: 0;
35
- left: 0;
12
+ &__faux {
13
+ position: relative;
36
14
  display: flex;
37
15
  align-items: center;
38
16
  justify-content: center;
39
- width: var(--outer-size);
40
- height: var(--outer-size);
41
- // background: #f00;
42
- border-radius: 50%;
43
- transition: left 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,
44
- transform 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
17
+ width: 100%;
18
+ width: var(--control-switch-width);
19
+ height: 100%;
20
+ cursor: pointer;
45
21
 
46
- &::before,
47
- &::after {
22
+ &::before {
48
23
  display: block;
24
+ width: var(--control-switch-track-width);
25
+ height: var(--control-switch-track-height);
49
26
  content: '';
27
+ background: var(--color);
28
+ border-radius: calc(var(--control-switch-track-height) / 2);
29
+ opacity: 0.5;
50
30
  }
51
31
 
52
- &::before {
32
+ &__pin {
53
33
  position: absolute;
54
- width: 100%;
55
- height: 100%;
56
- background: currentColor;
34
+ top: 0;
35
+ bottom: 0;
36
+ left: 0;
37
+ display: flex;
38
+ align-items: center;
39
+ justify-content: center;
40
+ width: var(--outer-size);
41
+ height: var(--outer-size);
42
+ // background: #f00;
57
43
  border-radius: 50%;
58
- opacity: 0;
59
- transition: opacity 0.2s;
60
- }
44
+ transition: left 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,
45
+ transform 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
61
46
 
62
- &::after {
63
- position: relative;
64
- width: var(--icon-size);
65
- height: var(--icon-size);
66
- background: var(--my-pin-color);
67
- border-radius: 50%;
68
- box-shadow: rgb(0 0 0 / 0.2) 0 2px 1px -1px,
69
- rgb(0 0 0 / 0.14) 0 1px 1px 0, rgb(0 0 0 / 0.12) 0 1px 3px 0;
70
- transform: scale(var(--control-checkable-faux-scale));
47
+ &::before,
48
+ &::after {
49
+ display: block;
50
+ content: '';
51
+ }
52
+
53
+ &::before {
54
+ position: absolute;
55
+ width: 100%;
56
+ height: 100%;
57
+ background: currentColor;
58
+ border-radius: 50%;
59
+ opacity: 0;
60
+ transition: opacity 0.2s;
61
+ }
62
+
63
+ &::after {
64
+ position: relative;
65
+ width: var(--icon-size);
66
+ height: var(--icon-size);
67
+ background: var(--my-pin-color);
68
+ border-radius: 50%;
69
+ box-shadow: rgb(0 0 0 / 0.2) 0 2px 1px -1px,
70
+ rgb(0 0 0 / 0.14) 0 1px 1px 0, rgb(0 0 0 / 0.12) 0 1px 3px 0;
71
+ transform: scale(var(--control-checkable-faux-scale));
72
+ }
71
73
  }
72
74
  }
73
- }
74
75
 
75
- &--selected &__faux {
76
- &__pin {
77
- left: calc(100% - var(--outer-size));
76
+ &--selected &__faux {
77
+ &__pin {
78
+ left: calc(100% - var(--outer-size));
79
+ }
78
80
  }
79
- }
80
81
 
81
- &--disabled &__faux {
82
- &::before {
83
- background-color: #000;
84
- opacity: 0.12;
85
- }
82
+ &--disabled &__faux {
83
+ &::before {
84
+ background-color: #000;
85
+ opacity: 0.12;
86
+ }
86
87
 
87
- &__pin {
88
- &::after {
89
- background-color: rgba(245, 245, 245, 1);
88
+ &__pin {
89
+ &::after {
90
+ background-color: rgba(245, 245, 245, 1);
91
+ }
90
92
  }
91
93
  }
92
- }
93
94
 
94
- &__faux:hover &__faux__pin::before {
95
- opacity: 0.1;
96
- }
95
+ &__faux:hover &__faux__pin::before {
96
+ opacity: 0.1;
97
+ }
97
98
 
98
- &:focus-within &__faux {
99
- &__pin {
100
- &::before {
101
- opacity: 0.1;
99
+ &:focus-within &__faux {
100
+ &__pin {
101
+ &::before {
102
+ opacity: 0.1;
103
+ }
102
104
  }
103
105
  }
104
- }
105
106
 
106
- // &--indeterminate &__faux {
107
- // $x1: math.div(12, 54) * 100%;
108
- // $x2: 100% - $x1;
109
- // $y1: math.div(24, 54) * 100%;
110
- // $y2: 100% - $y1;
107
+ // &--indeterminate &__faux {
108
+ // $x1: math.div(12, 54) * 100%;
109
+ // $x2: 100% - $x1;
110
+ // $y1: math.div(24, 54) * 100%;
111
+ // $y2: 100% - $y1;
111
112
 
112
- // clip-path: polygon(
113
- // 0 0,
114
- // 0 100%,
115
- // 100% 100%,
116
- // 100% 0,
117
- // #{$x2} #{$y1},
118
- // #{$x2} #{$y2},
119
- // #{$x1} #{$y2},
120
- // #{$x1} #{$y1},
121
- // #{$x2} #{$y1},
122
- // 100% 0
123
- // );
124
- // }
113
+ // clip-path: polygon(
114
+ // 0 0,
115
+ // 0 100%,
116
+ // 100% 100%,
117
+ // 100% 0,
118
+ // #{$x2} #{$y1},
119
+ // #{$x2} #{$y2},
120
+ // #{$x1} #{$y2},
121
+ // #{$x1} #{$y1},
122
+ // #{$x2} #{$y1},
123
+ // 100% 0
124
+ // );
125
+ // }
126
+ }
125
127
  }
@@ -3,8 +3,8 @@ import { defineComponent } from 'vue';
3
3
  import {
4
4
  createFormSelectorItemSettings,
5
5
  useFormSelectorItemControl,
6
- renderSlotOrEmpty,
7
- } from '@fastkit/vue-kit';
6
+ } from '@fastkit/vue-form-control';
7
+ import { renderSlotOrEmpty } from '@fastkit/vue-utils';
8
8
  import { createControlProps, useControl } from '../../composables';
9
9
  import { VUI_SWITCH_GROUP_SYMBOL, VUI_SWITCH_SYMBOL } from '../../injections';
10
10
  import { VCheckable } from '../VCheckable';
@@ -1,73 +1,75 @@
1
1
  @use '../../styles/core.scss';
2
2
 
3
- .v-tab {
4
- @include core.button-reset;
3
+ @layer vui {
4
+ .v-tab {
5
+ @include core.button-reset;
5
6
 
6
- --tab-content-color: var(--palette-caption);
7
- --tab-content-focus-color: var(--main-color);
8
- --tab-content-opacity: 0.7;
7
+ --tab-content-color: var(--palette-caption);
8
+ --tab-content-focus-color: var(--main-color);
9
+ --tab-content-opacity: 0.7;
9
10
 
10
- position: relative;
11
- z-index: 3;
12
- display: flex;
13
- // flex: 1 1 auto;
14
- align-items: center;
15
- justify-content: center;
16
- height: var(--tabs-height);
17
- padding: 0 1.25em;
18
- font: inherit;
19
- font-size: var(--tabs-font-size);
20
- // color: inherit;
21
- white-space: nowrap;
22
- user-select: none;
23
- transition: color 0.6s;
24
-
25
- &::before {
26
- position: absolute;
27
- right: 0;
28
- bottom: 0;
29
- // top: 0;
30
- left: 0;
31
- z-index: 1;
32
- height: 2px;
33
- content: '';
34
- background-color: var(--tab-content-focus-color);
35
- border-radius: inherit;
36
- transition: all 0.25s;
37
- transform: scaleX(0);
38
- }
39
-
40
- &__content {
41
11
  position: relative;
42
- z-index: 2;
12
+ z-index: 3;
43
13
  display: flex;
14
+ // flex: 1 1 auto;
44
15
  align-items: center;
45
- line-height: 1.2;
46
- color: var(--tab-content-color);
47
- text-align: center;
48
- opacity: var(--tab-content-opacity);
49
- transition: all 0.25s ease;
50
- }
16
+ justify-content: center;
17
+ height: var(--tabs-height);
18
+ padding: 0 1.25em;
19
+ font: inherit;
20
+ font-size: var(--tabs-font-size);
21
+ // color: inherit;
22
+ white-space: nowrap;
23
+ user-select: none;
24
+ transition: color 0.6s;
51
25
 
52
- &__icon {
53
- margin-right: 8px;
54
- font-size: 120%;
55
- }
26
+ &::before {
27
+ position: absolute;
28
+ right: 0;
29
+ bottom: 0;
30
+ // top: 0;
31
+ left: 0;
32
+ z-index: 1;
33
+ height: 2px;
34
+ content: '';
35
+ background-color: var(--tab-content-focus-color);
36
+ border-radius: inherit;
37
+ transition: all 0.25s;
38
+ transform: scaleX(0);
39
+ }
56
40
 
57
- &:hover {
58
- --tab-content-color: var(--tab-content-focus-color);
59
- }
41
+ &__content {
42
+ position: relative;
43
+ z-index: 2;
44
+ display: flex;
45
+ align-items: center;
46
+ line-height: 1.2;
47
+ color: var(--tab-content-color);
48
+ text-align: center;
49
+ opacity: var(--tab-content-opacity);
50
+ transition: all 0.25s ease;
51
+ }
60
52
 
61
- &--active {
62
- --tab-content-color: rgba(0, 0, 0, 0.87);
53
+ &__icon {
54
+ margin-right: 8px;
55
+ font-size: 120%;
56
+ }
63
57
 
64
- pointer-events: none;
65
- background: var(--tabs-color);
58
+ &:hover {
59
+ --tab-content-color: var(--tab-content-focus-color);
60
+ }
66
61
 
67
- --tab-content-opacity: 1;
62
+ &--active {
63
+ --tab-content-color: rgba(0, 0, 0, 0.87);
68
64
 
69
- &::before {
70
- transform: scaleX(1);
65
+ pointer-events: none;
66
+ background: var(--tabs-color);
67
+
68
+ --tab-content-opacity: 1;
69
+
70
+ &::before {
71
+ transform: scaleX(1);
72
+ }
71
73
  }
72
74
  }
73
75
  }