@rt-tools/ui-kit-v2 0.4.0 → 0.6.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.
Files changed (108) hide show
  1. package/README.md +71 -0
  2. package/fesm2022/rt-tools-ui-kit-v2.mjs +395 -188
  3. package/fesm2022/rt-tools-ui-kit-v2.mjs.map +1 -1
  4. package/package.json +1 -1
  5. package/rt-tools-ui-kit-v2-0.6.0.tgz +0 -0
  6. package/src/lib/components/aside/_rt-aside-overlay.scss +73 -71
  7. package/src/lib/components/aside/footer/rt-aside-footer.component.scss +20 -16
  8. package/src/lib/components/aside/header/rt-aside-header.component.scss +72 -70
  9. package/src/lib/components/aside/rt-aside.component.scss +107 -105
  10. package/src/lib/components/aside/unsaved-dialog/rt-aside-unsaved-dialog.component.scss +33 -31
  11. package/src/lib/components/aside-section/rt-aside-section.component.scss +27 -23
  12. package/src/lib/components/autocomplete/rt-autocomplete.component.scss +124 -118
  13. package/src/lib/components/bar-list/rt-bar-list.component.scss +85 -81
  14. package/src/lib/components/bottom-sheet/rt-bottom-sheet.component.scss +64 -57
  15. package/src/lib/components/button/rt-button.directive.scss +319 -280
  16. package/src/lib/components/calendar/rt-calendar.component.scss +106 -102
  17. package/src/lib/components/card/rt-card.component.scss +53 -45
  18. package/src/lib/components/chat/rt-chat.component.scss +312 -306
  19. package/src/lib/components/checkbox/rt-checkbox.component.scss +61 -54
  20. package/src/lib/components/collapsible-text/rt-collapsible-text.component.scss +36 -34
  21. package/src/lib/components/confirm-popover/rt-confirm-popover.component.scss +36 -30
  22. package/src/lib/components/container/CONTEXT.md +22 -0
  23. package/src/lib/components/container/rt-container.component.scss +91 -87
  24. package/src/lib/components/counter/rt-counter.component.scss +14 -12
  25. package/src/lib/components/counter-row/rt-counter-row.component.scss +31 -27
  26. package/src/lib/components/date-picker/rt-date-picker.component.scss +73 -71
  27. package/src/lib/components/delta-view/rt-delta-view.component.scss +27 -25
  28. package/src/lib/components/detail-list/rt-detail-list.component.scss +8 -6
  29. package/src/lib/components/detail-list/rt-detail-row.component.scss +18 -16
  30. package/src/lib/components/dialog/footer/rt-dialog-footer.component.scss +19 -17
  31. package/src/lib/components/dialog/header/rt-dialog-header.component.scss +27 -25
  32. package/src/lib/components/dialog/rt-dialog.component.scss +59 -56
  33. package/src/lib/components/download-link/rt-download-link.component.scss +32 -27
  34. package/src/lib/components/empty-state/rt-empty-state.component.scss +50 -46
  35. package/src/lib/components/field/rt-field.component.scss +63 -61
  36. package/src/lib/components/file-card/rt-file-card.component.scss +84 -78
  37. package/src/lib/components/file-drop/rt-file-drop.component.scss +83 -77
  38. package/src/lib/components/file-input/rt-file-input.component.scss +20 -18
  39. package/src/lib/components/file-list/rt-file-list.component.scss +9 -7
  40. package/src/lib/components/filter-control/rt-filter-control.component.scss +16 -14
  41. package/src/lib/components/header/rt-header.component.scss +61 -55
  42. package/src/lib/components/icon/rt-icon.component.scss +14 -12
  43. package/src/lib/components/icon-button/CONTEXT.md +4 -2
  44. package/src/lib/components/icon-button/rt-icon-button.component.scss +128 -112
  45. package/src/lib/components/info-item/rt-info-item.component.scss +38 -36
  46. package/src/lib/components/input/rt-input.component.scss +102 -98
  47. package/src/lib/components/input-number/rt-input-number.component.scss +84 -82
  48. package/src/lib/components/live-badge/rt-live-badge.component.scss +27 -23
  49. package/src/lib/components/logo/rt-logo.component.scss +54 -52
  50. package/src/lib/components/menu/rt-menu-confirm-dialog.component.scss +30 -28
  51. package/src/lib/components/menu/rt-menu-item.component.scss +47 -42
  52. package/src/lib/components/menu/rt-menu.component.scss +23 -15
  53. package/src/lib/components/message/rt-message.component.scss +53 -49
  54. package/src/lib/components/message-composer/rt-message-composer.component.scss +55 -49
  55. package/src/lib/components/money-list/rt-money-list.component.scss +13 -9
  56. package/src/lib/components/money-list/rt-money-row.component.scss +23 -19
  57. package/src/lib/components/multiselect/rt-multiselect.component.scss +169 -161
  58. package/src/lib/components/night-grid/rt-night-grid.component.scss +47 -42
  59. package/src/lib/components/note/rt-note.component.scss +15 -11
  60. package/src/lib/components/notifications-bell/rt-notifications-bell.component.scss +34 -27
  61. package/src/lib/components/page-header/rt-page-header-mobile.scss +142 -134
  62. package/src/lib/components/page-header/rt-page-header-submenu.scss +130 -123
  63. package/src/lib/components/page-header/rt-page-header.component.scss +221 -210
  64. package/src/lib/components/pagination/rt-pagination.component.scss +88 -81
  65. package/src/lib/components/photo-viewer/rt-photo-viewer.component.scss +109 -105
  66. package/src/lib/components/rich-editor/rt-rich-editor.component.scss +63 -59
  67. package/src/lib/components/section-nav/rt-section-nav.component.scss +53 -47
  68. package/src/lib/components/select/rt-select.component.scss +146 -138
  69. package/src/lib/components/skeleton/rt-skeleton.component.scss +50 -41
  70. package/src/lib/components/skeleton-wrapper/rt-skeleton-wrapper.component.scss +8 -6
  71. package/src/lib/components/spinner/rt-spinner.component.scss +35 -32
  72. package/src/lib/components/split-button/rt-split-button.component.scss +74 -62
  73. package/src/lib/components/stat-tile/rt-stat-tile.component.scss +95 -91
  74. package/src/lib/components/stepper/rt-stepper.component.scss +107 -101
  75. package/src/lib/components/table/copy-cell/rt-copy-cell.component.scss +34 -30
  76. package/src/lib/components/table/rt-table.component.scss +260 -252
  77. package/src/lib/components/table/settings-aside/rt-table-settings-aside.component.scss +7 -5
  78. package/src/lib/components/table/settings-panel/rt-table-settings-panel.component.scss +71 -61
  79. package/src/lib/components/table/sort-header/CONTEXT.md +40 -0
  80. package/src/lib/components/table/sort-header/rt-table-sort-header.component.scss +31 -29
  81. package/src/lib/components/tabs/CONTEXT.md +5 -0
  82. package/src/lib/components/tabs/rt-tabs.component.scss +184 -175
  83. package/src/lib/components/tag/rt-tag.component.scss +97 -92
  84. package/src/lib/components/textarea/rt-textarea.component.scss +62 -60
  85. package/src/lib/components/theme-toggle/rt-theme-toggle.component.scss +7 -5
  86. package/src/lib/components/thread-list/rt-thread-list.component.scss +221 -212
  87. package/src/lib/components/timeline/rt-timeline.component.scss +82 -76
  88. package/src/lib/components/toast/CONTEXT.md +8 -0
  89. package/src/lib/components/toast/rt-toast.component.scss +169 -160
  90. package/src/lib/components/toast/rt-toaster.component.scss +37 -35
  91. package/src/lib/components/toggle-button-group/rt-toggle-button-group.component.scss +129 -122
  92. package/src/lib/components/toggle-switch/rt-toggle-switch.component.scss +97 -91
  93. package/src/lib/components/toolbar/rt-toolbar.component.scss +56 -54
  94. package/src/lib/components/tooltip/rt-tooltip.component.scss +20 -15
  95. package/src/lib/components/welcome-dialog/rt-welcome-dialog.component.scss +46 -44
  96. package/src/lib/components/workspace/rt-workspace.component.scss +139 -131
  97. package/src/lib/components/workspace-details/rt-workspace-details.component.scss +105 -101
  98. package/src/styles/_index.scss +4 -0
  99. package/src/styles/_layers.scss +22 -0
  100. package/src/styles/_login.scss +87 -85
  101. package/src/styles/_mixins.scss +1 -1
  102. package/src/styles/_primitives.scss +126 -67
  103. package/src/styles/_scrollbar.scss +21 -19
  104. package/src/styles/_semantic.scss +140 -56
  105. package/src/styles/_theme-dark.scss +60 -27
  106. package/styles/tokens.css +628 -408
  107. package/types/rt-tools-ui-kit-v2.d.ts +9 -16
  108. package/rt-tools-ui-kit-v2-0.4.0.tgz +0 -0
@@ -1,257 +1,268 @@
1
- /* Цвет плашки вынесен в локальный override `--rt-page-header-bg`, дефолт
2
- берётся из семантики навигации. Отступ от краёв страницы задаёт тот, кто
3
- ставит шапку: своего у неё нет. */
4
- .rt-page-header {
5
- display: flex;
6
- width: auto;
7
- min-height: 48px;
8
- box-sizing: border-box;
9
- align-items: center;
10
- justify-content: space-between;
11
- padding: var(--rt-nav-header-padding);
12
- border-radius: var(--rt-radius-md);
13
- background-color: var(--rt-page-header-bg, var(--rt-nav-header-color-bg));
14
- color: var(--rt-nav-item-color);
15
- gap: var(--rt-space-2);
16
-
17
- &__nav {
18
- min-width: 0;
19
- flex: 1 1 auto;
20
- }
1
+ @layer rt-kit.components {
2
+ /* Цвет плашки вынесен в локальный override `--rt-page-header-bg`, дефолт
3
+ берётся из семантики навигации. Отступ от краёв страницы задаёт тот, кто
4
+ ставит шапку: своего у неё нет. */
5
+ .rt-page-header {
6
+ --rt-nav-header-radius: var(--rt-radius-md);
7
+ --rt-nav-header-transition-duration: var(--rt-duration-fast);
8
+ --rt-nav-item-radius: var(--rt-radius-md);
9
+ --rt-nav-item-border-width: var(--rt-border-width-thin);
10
+ --rt-nav-burger-radius: var(--rt-radius-ms);
11
+ --rt-nav-marker-radius: var(--rt-radius-full);
12
+ --rt-nav-user-avatar-radius: var(--rt-radius-full);
13
+ --rt-nav-user-avatar-border-width: var(--rt-border-width-thin);
21
14
 
22
- &__list {
23
15
  display: flex;
24
- flex-flow: row wrap;
25
- align-items: center;
26
- padding: 0;
27
- margin: 0;
28
- gap: var(--rt-nav-item-gap);
29
- list-style: none;
30
- }
31
-
32
- /* Пункт ряда несёт собственную плашку. На фоне шапки того же цвета её не
33
- видно — проступает только активный раздел, у которого фон белый. */
34
- &__item {
35
- display: inline-flex;
16
+ width: auto;
17
+ min-height: 48px;
18
+ box-sizing: border-box;
36
19
  align-items: center;
37
- border: var(--rt-border-width-thin) solid var(--rt-nav-item-color-border);
38
- border-radius: var(--rt-radius-md);
39
- background-color: var(--rt-nav-item-color-bg);
40
- }
41
-
42
- &__disabled-slot {
43
- display: inline-flex;
44
- flex-direction: column;
45
- align-items: stretch;
46
- }
47
-
48
- &__link {
49
- position: relative;
50
- display: inline-flex;
51
- min-height: var(--rt-nav-item-height);
52
- align-items: center;
53
- padding: var(--rt-nav-item-padding);
54
- border: 0;
55
- border-radius: var(--rt-radius-md);
56
- background-color: transparent;
20
+ justify-content: space-between;
21
+ padding: var(--rt-nav-header-padding);
22
+ border-radius: var(--rt-nav-header-radius);
23
+ background-color: var(--rt-page-header-bg, var(--rt-nav-header-color-bg));
57
24
  color: var(--rt-nav-item-color);
58
- cursor: pointer;
59
- font-size: var(--rt-nav-item-font-size);
60
- font-weight: var(--rt-nav-item-font-weight);
61
- gap: var(--rt-nav-item-content-gap);
62
- line-height: var(--rt-nav-item-line-height);
63
- text-decoration: none;
64
- transition: color var(--rt-duration-fast) linear;
65
- white-space: nowrap;
66
-
67
- /* Наведение красит подпись, а не фон: фоном отмечен активный раздел, и
68
- два фона в одном ряду читались бы как два активных. */
69
- &:hover {
70
- color: var(--rt-nav-item-color-hover);
71
- }
25
+ gap: var(--rt-space-2);
72
26
 
73
- &:focus {
74
- outline: none;
27
+ &__nav {
28
+ min-width: 0;
29
+ flex: 1 1 auto;
75
30
  }
76
31
 
77
- &:focus-visible {
78
- outline: 2px dashed var(--rt-nav-color-focus);
79
- outline-offset: 2px;
32
+ &__list {
33
+ display: flex;
34
+ flex-flow: row wrap;
35
+ align-items: center;
36
+ padding: 0;
37
+ margin: 0;
38
+ gap: var(--rt-nav-item-gap);
39
+ list-style: none;
80
40
  }
81
41
 
82
- &--is-active {
83
- background-color: var(--rt-nav-item-color-bg-active);
84
- color: var(--rt-nav-item-color);
42
+ /* Пункт ряда несёт собственную плашку. На фоне шапки того же цвета её не
43
+ видно — проступает только активный раздел, у которого фон белый. */
44
+ &__item {
45
+ display: inline-flex;
46
+ align-items: center;
47
+ border: var(--rt-nav-item-border-width) solid var(--rt-nav-item-color-border);
48
+ border-radius: var(--rt-nav-item-radius);
49
+ background-color: var(--rt-nav-item-color-bg);
85
50
  }
86
51
 
87
- /* Пока панель открыта, её раздел держит цвет наведения: курсор ушёл в
88
- панель, наведение с него снялось, и без этого не видно, чья панель
89
- открыта. */
90
- &--is-open {
91
- color: var(--rt-nav-item-color-hover);
52
+ &__disabled-slot {
53
+ display: inline-flex;
54
+ flex-direction: column;
55
+ align-items: stretch;
92
56
  }
93
57
 
94
- /* `aria-disabled` браузер не стилизует сам: без этого правила пункт,
95
- выключенный только для скринридера, выглядит рабочим. Нативный
96
- `disabled` не годится — он не даёт ни наведения, ни фокуса, и
97
- объяснение до пользователя не доходит. */
98
- &--disabled,
99
- &:disabled,
100
- &[aria-disabled='true'] {
58
+ &__link {
59
+ position: relative;
60
+ display: inline-flex;
61
+ min-height: var(--rt-nav-item-height);
62
+ align-items: center;
63
+ padding: var(--rt-nav-item-padding);
64
+ border: 0;
65
+ border-radius: var(--rt-nav-item-radius);
101
66
  background-color: transparent;
102
- color: var(--rt-nav-color-disabled);
103
- cursor: not-allowed;
104
-
67
+ color: var(--rt-nav-item-color);
68
+ cursor: pointer;
69
+ font-size: var(--rt-nav-item-font-size);
70
+ font-weight: var(--rt-nav-item-font-weight);
71
+ gap: var(--rt-nav-item-content-gap);
72
+ line-height: var(--rt-nav-item-line-height);
73
+ text-decoration: none;
74
+ transition: color var(--rt-nav-header-transition-duration) linear;
75
+ white-space: nowrap;
76
+
77
+ /* Наведение красит подпись, а не фон: фоном отмечен активный раздел, и
78
+ два фона в одном ряду читались бы как два активных. */
105
79
  &:hover {
106
- background-color: transparent;
80
+ color: var(--rt-nav-item-color-hover);
107
81
  }
108
- }
109
- }
110
82
 
111
- &__icon {
112
- flex-shrink: 0;
113
- }
83
+ &:focus {
84
+ outline: none;
85
+ }
114
86
 
115
- /* Точка идёт следом за подписью и перед указателем раскрытия, в общем ритме
116
- содержимого пункта. Поверх текста она садилась бы на последнюю букву. */
117
- &__marker {
118
- width: var(--rt-nav-marker-size);
119
- height: var(--rt-nav-marker-size);
120
- flex-shrink: 0;
121
- border-radius: var(--rt-radius-full);
122
- background-color: var(--rt-nav-marker-color);
123
- }
87
+ &:focus-visible {
88
+ outline: 2px dashed var(--rt-nav-color-focus);
89
+ outline-offset: 2px;
90
+ }
124
91
 
125
- /* Указатель раскрытия приглушён сильнее подписи: он говорит, что панель есть,
126
- и не должен спорить с названием раздела. Начертание парное (вверх-вниз),
127
- поэтому разворот на раскрытии ничего не добавил бы. */
128
- &__caret {
129
- display: inline-flex;
130
- flex-shrink: 0;
131
- color: var(--rt-nav-item-color-caret);
132
- }
92
+ &--is-active {
93
+ background-color: var(--rt-nav-item-color-bg-active);
94
+ color: var(--rt-nav-item-color);
95
+ }
133
96
 
134
- &__burger {
135
- display: none; /* десктоп — гамбургера нет; включается ниже в @media */
136
- flex-shrink: 0;
137
- align-items: center;
138
- justify-content: center;
139
- padding: var(--rt-space-1-5);
140
- border: 0;
141
- border-radius: var(--rt-radius-ms);
142
- background-color: transparent;
143
- color: var(--rt-nav-item-color);
144
- cursor: pointer;
145
- transition: color var(--rt-duration-fast) linear;
97
+ /* Пока панель открыта, её раздел держит цвет наведения: курсор ушёл в
98
+ панель, наведение с него снялось, и без этого не видно, чья панель
99
+ открыта. */
100
+ &--is-open {
101
+ color: var(--rt-nav-item-color-hover);
102
+ }
146
103
 
147
- &:hover {
148
- color: var(--rt-nav-item-color-hover);
149
- }
104
+ /* `aria-disabled` браузер не стилизует сам: без этого правила пункт,
105
+ выключенный только для скринридера, выглядит рабочим. Нативный
106
+ `disabled` не годится — он не даёт ни наведения, ни фокуса, и
107
+ объяснение до пользователя не доходит. */
108
+ &--disabled,
109
+ &:disabled,
110
+ &[aria-disabled='true'] {
111
+ background-color: transparent;
112
+ color: var(--rt-nav-color-disabled);
113
+ cursor: not-allowed;
150
114
 
151
- &:active {
152
- color: var(--rt-nav-item-color-pressed);
115
+ &:hover {
116
+ background-color: transparent;
117
+ }
118
+ }
153
119
  }
154
120
 
155
- &:focus {
156
- outline: none;
121
+ &__icon {
122
+ flex-shrink: 0;
157
123
  }
158
124
 
159
- &:focus-visible {
160
- outline: 2px dashed var(--rt-nav-color-focus);
161
- outline-offset: 2px;
125
+ /* Точка идёт следом за подписью и перед указателем раскрытия, в общем ритме
126
+ содержимого пункта. Поверх текста она садилась бы на последнюю букву. */
127
+ &__marker {
128
+ width: var(--rt-nav-marker-size);
129
+ height: var(--rt-nav-marker-size);
130
+ flex-shrink: 0;
131
+ border-radius: var(--rt-nav-marker-radius);
132
+ background-color: var(--rt-nav-marker-color);
162
133
  }
163
134
 
164
- &--is-open {
165
- background-color: var(--rt-nav-item-color-bg-active);
135
+ /* Указатель раскрытия приглушён сильнее подписи: он говорит, что панель есть,
136
+ и не должен спорить с названием раздела. Начертание парное (вверх-вниз),
137
+ поэтому разворот на раскрытии ничего не добавил бы. */
138
+ &__caret {
139
+ display: inline-flex;
140
+ flex-shrink: 0;
141
+ color: var(--rt-nav-item-color-caret);
166
142
  }
167
- }
168
143
 
169
- &__burger-icon {
170
- flex-shrink: 0;
171
- }
144
+ &__burger {
145
+ display: none; /* десктоп — гамбургера нет; включается ниже в @media */
146
+ flex-shrink: 0;
147
+ align-items: center;
148
+ justify-content: center;
149
+ padding: var(--rt-space-2);
150
+ border: 0;
151
+ border-radius: var(--rt-nav-burger-radius);
152
+ background-color: transparent;
153
+ color: var(--rt-nav-item-color);
154
+ cursor: pointer;
155
+ transition: color var(--rt-nav-header-transition-duration) linear;
172
156
 
173
- /* Восемь разделов с иконками в ряд не помещаются и переносятся на вторую
174
- строку, а перенос удваивает высоту шапки. До широкого вьюпорта ряд идёт
175
- без иконок: подпись раздела нужнее картинки рядом с ней. Замер в Chrome
176
- 2026-08-02: на 1081px ряд с иконками занимает 938.7px при доступных
177
- 798.4, без иконок — 762.7. */
178
- @media (width <= 1380px) {
179
- /* Селектор из двух классов, а не одного: `.rt-icon` задаёт иконке
180
- `display`, и порядок стилей двух компонентов кита между собой не
181
- закреплён ничем. */
182
- &__link &__icon {
183
- display: none;
184
- }
185
- }
157
+ &:hover {
158
+ color: var(--rt-nav-item-color-hover);
159
+ }
186
160
 
187
- /* Узкий вьюпорт: инлайн-навигация уступает место гамбургеру. */
188
- @media (width <= 1080px) {
189
- &__nav {
190
- display: none;
161
+ &:active {
162
+ color: var(--rt-nav-item-color-pressed);
163
+ }
164
+
165
+ &:focus {
166
+ outline: none;
167
+ }
168
+
169
+ &:focus-visible {
170
+ outline: 2px dashed var(--rt-nav-color-focus);
171
+ outline-offset: 2px;
172
+ }
173
+
174
+ &--is-open {
175
+ background-color: var(--rt-nav-item-color-bg-active);
176
+ }
191
177
  }
192
178
 
193
- &__burger {
194
- display: inline-flex;
179
+ &__burger-icon {
180
+ flex-shrink: 0;
195
181
  }
196
- }
197
182
 
198
- &__user {
199
- display: inline-flex;
200
- min-height: var(--rt-nav-item-height);
201
- align-items: center;
202
- padding: var(--rt-nav-item-padding);
203
- border: 0;
204
- border-radius: var(--rt-radius-md);
205
- background-color: transparent;
206
- color: var(--rt-nav-item-color);
207
- cursor: pointer;
208
- font-size: var(--rt-nav-item-font-size);
209
- font-weight: var(--rt-nav-item-font-weight);
210
- gap: var(--rt-nav-item-content-gap);
211
- line-height: var(--rt-leading-tight);
212
- transition: background-color var(--rt-duration-fast) linear;
213
-
214
- &:hover,
215
- &:active {
216
- background-color: var(--rt-nav-item-color-bg-active);
183
+ /* Восемь разделов с иконками в ряд не помещаются и переносятся на вторую
184
+ строку, а перенос удваивает высоту шапки. До широкого вьюпорта ряд идёт
185
+ без иконок: подпись раздела нужнее картинки рядом с ней. Замер в Chrome
186
+ 2026-08-02: на 1081px ряд с иконками занимает 938.7px при доступных
187
+ 798.4, без иконок — 762.7. */
188
+ @media (width <= 1380px) {
189
+ /* Селектор из двух классов, а не одного: `.rt-icon` задаёт иконке
190
+ `display`, и порядок стилей двух компонентов кита между собой не
191
+ закреплён ничем. */
192
+ &__link &__icon {
193
+ display: none;
194
+ }
217
195
  }
218
196
 
219
- &:focus {
220
- outline: none;
197
+ /* Узкий вьюпорт: инлайн-навигация уступает место гамбургеру. */
198
+ @media (width <= 1080px) {
199
+ &__nav {
200
+ display: none;
201
+ }
202
+
203
+ &__burger {
204
+ display: inline-flex;
205
+ }
221
206
  }
222
207
 
223
- &:focus-visible {
224
- outline: 2px dashed var(--rt-nav-color-focus);
225
- outline-offset: 2px;
208
+ &__user {
209
+ display: inline-flex;
210
+ min-height: var(--rt-nav-item-height);
211
+ align-items: center;
212
+ padding: var(--rt-nav-item-padding);
213
+ border: 0;
214
+ border-radius: var(--rt-nav-item-radius);
215
+ background-color: transparent;
216
+ color: var(--rt-nav-item-color);
217
+ cursor: pointer;
218
+ font-size: var(--rt-nav-item-font-size);
219
+ font-weight: var(--rt-nav-item-font-weight);
220
+ gap: var(--rt-nav-item-content-gap);
221
+ line-height: var(--rt-leading-tight);
222
+ transition: background-color var(--rt-nav-header-transition-duration) linear;
223
+
224
+ &:hover,
225
+ &:active {
226
+ background-color: var(--rt-nav-item-color-bg-active);
227
+ }
228
+
229
+ &:focus {
230
+ outline: none;
231
+ }
232
+
233
+ &:focus-visible {
234
+ outline: 2px dashed var(--rt-nav-color-focus);
235
+ outline-offset: 2px;
236
+ }
226
237
  }
227
- }
228
238
 
229
- &__user-avatar {
230
- display: inline-flex;
231
- width: 16px;
232
- height: 16px;
233
- align-items: center;
234
- justify-content: center;
235
- border: var(--rt-border-width-thin) solid var(--rt-nav-item-color-caret);
236
- border-radius: var(--rt-radius-full);
237
- color: var(--rt-color-text-muted);
238
- font-size: var(--rt-text-2xs);
239
- font-weight: var(--rt-font-weight-semibold);
240
- line-height: var(--rt-leading-none);
241
- }
239
+ &__user-avatar {
240
+ display: inline-flex;
241
+ width: 16px;
242
+ height: 16px;
243
+ align-items: center;
244
+ justify-content: center;
245
+ border: var(--rt-nav-user-avatar-border-width) solid var(--rt-nav-item-color-caret);
246
+ border-radius: var(--rt-nav-user-avatar-radius);
247
+ color: var(--rt-color-text-muted);
248
+ font-size: var(--rt-text-2xs);
249
+ font-weight: var(--rt-font-weight-semibold);
250
+ line-height: var(--rt-leading-none);
251
+ }
242
252
 
243
- &__user-name {
244
- white-space: nowrap;
245
- }
253
+ &__user-name {
254
+ white-space: nowrap;
255
+ }
246
256
 
247
- /* Начертание парное, вверх-вниз: разворачивать его при открытии нечего. */
248
- &__user-caret {
249
- display: inline-flex;
250
- flex-shrink: 0;
251
- color: var(--rt-nav-item-color-caret);
252
- }
257
+ /* Начертание парное, вверх-вниз: разворачивать его при открытии нечего. */
258
+ &__user-caret {
259
+ display: inline-flex;
260
+ flex-shrink: 0;
261
+ color: var(--rt-nav-item-color-caret);
262
+ }
253
263
 
254
- &__user--is-open {
255
- background-color: var(--rt-nav-item-color-bg-active);
264
+ &__user--is-open {
265
+ background-color: var(--rt-nav-item-color-bg-active);
266
+ }
256
267
  }
257
268
  }