@rt-tools/ui-kit-v2 0.5.0 → 0.7.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 (111) hide show
  1. package/README.md +87 -7
  2. package/fesm2022/rt-tools-ui-kit-v2.mjs +1929 -994
  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.7.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/rt-container.component.scss +91 -87
  23. package/src/lib/components/counter/rt-counter.component.scss +14 -12
  24. package/src/lib/components/counter-row/rt-counter-row.component.scss +31 -27
  25. package/src/lib/components/date-picker/rt-date-picker.component.scss +73 -71
  26. package/src/lib/components/delta-view/rt-delta-view.component.scss +27 -25
  27. package/src/lib/components/detail-list/rt-detail-list.component.scss +8 -6
  28. package/src/lib/components/detail-list/rt-detail-row.component.scss +18 -16
  29. package/src/lib/components/dialog/footer/rt-dialog-footer.component.scss +19 -17
  30. package/src/lib/components/dialog/header/rt-dialog-header.component.scss +27 -25
  31. package/src/lib/components/dialog/rt-dialog.component.scss +59 -56
  32. package/src/lib/components/download-link/rt-download-link.component.scss +32 -27
  33. package/src/lib/components/empty-state/rt-empty-state.component.scss +50 -46
  34. package/src/lib/components/field/rt-field.component.scss +63 -61
  35. package/src/lib/components/file-card/rt-file-card.component.scss +84 -78
  36. package/src/lib/components/file-drop/rt-file-drop.component.scss +83 -77
  37. package/src/lib/components/file-input/rt-file-input.component.scss +20 -18
  38. package/src/lib/components/file-list/rt-file-list.component.scss +9 -7
  39. package/src/lib/components/filter-control/rt-filter-control.component.scss +16 -14
  40. package/src/lib/components/header/rt-header.component.scss +61 -55
  41. package/src/lib/components/icon/CONTEXT.md +16 -10
  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/CONTEXT.md +9 -7
  47. package/src/lib/components/input/rt-input.component.scss +102 -98
  48. package/src/lib/components/input-number/rt-input-number.component.scss +84 -82
  49. package/src/lib/components/live-badge/rt-live-badge.component.scss +27 -23
  50. package/src/lib/components/logo/rt-logo.component.scss +54 -52
  51. package/src/lib/components/markdown-text/CONTEXT.md +40 -0
  52. package/src/lib/components/markdown-text/rt-markdown-text.component.scss +130 -0
  53. package/src/lib/components/menu/rt-menu-confirm-dialog.component.scss +30 -28
  54. package/src/lib/components/menu/rt-menu-item.component.scss +47 -42
  55. package/src/lib/components/menu/rt-menu.component.scss +23 -15
  56. package/src/lib/components/message/rt-message.component.scss +53 -49
  57. package/src/lib/components/message-composer/CONTEXT.md +1 -1
  58. package/src/lib/components/message-composer/rt-message-composer.component.scss +55 -49
  59. package/src/lib/components/money-list/rt-money-list.component.scss +13 -9
  60. package/src/lib/components/money-list/rt-money-row.component.scss +23 -19
  61. package/src/lib/components/multiselect/rt-multiselect.component.scss +169 -161
  62. package/src/lib/components/night-grid/rt-night-grid.component.scss +47 -42
  63. package/src/lib/components/note/rt-note.component.scss +15 -11
  64. package/src/lib/components/notifications-bell/rt-notifications-bell.component.scss +34 -27
  65. package/src/lib/components/page-header/rt-page-header-mobile.scss +142 -134
  66. package/src/lib/components/page-header/rt-page-header-submenu.scss +130 -123
  67. package/src/lib/components/page-header/rt-page-header.component.scss +221 -210
  68. package/src/lib/components/pagination/rt-pagination.component.scss +88 -81
  69. package/src/lib/components/photo-viewer/rt-photo-viewer.component.scss +109 -105
  70. package/src/lib/components/rich-editor/CONTEXT.md +1 -1
  71. package/src/lib/components/rich-editor/rt-rich-editor.component.scss +63 -59
  72. package/src/lib/components/section-nav/rt-section-nav.component.scss +53 -47
  73. package/src/lib/components/select/rt-select.component.scss +146 -138
  74. package/src/lib/components/skeleton/rt-skeleton.component.scss +50 -41
  75. package/src/lib/components/skeleton-wrapper/rt-skeleton-wrapper.component.scss +8 -6
  76. package/src/lib/components/spinner/rt-spinner.component.scss +35 -32
  77. package/src/lib/components/split-button/rt-split-button.component.scss +74 -62
  78. package/src/lib/components/stat-tile/rt-stat-tile.component.scss +95 -91
  79. package/src/lib/components/stepper/rt-stepper.component.scss +107 -101
  80. package/src/lib/components/table/copy-cell/rt-copy-cell.component.scss +39 -30
  81. package/src/lib/components/table/rt-table.component.scss +260 -252
  82. package/src/lib/components/table/settings-aside/rt-table-settings-aside.component.scss +7 -5
  83. package/src/lib/components/table/settings-panel/rt-table-settings-panel.component.scss +71 -61
  84. package/src/lib/components/table/sort-header/rt-table-sort-header.component.scss +31 -29
  85. package/src/lib/components/tabs/rt-tabs.component.scss +184 -175
  86. package/src/lib/components/tag/rt-tag.component.scss +97 -92
  87. package/src/lib/components/textarea/rt-textarea.component.scss +62 -60
  88. package/src/lib/components/theme-toggle/rt-theme-toggle.component.scss +7 -5
  89. package/src/lib/components/thread-list/rt-thread-list.component.scss +221 -212
  90. package/src/lib/components/timeline/rt-timeline.component.scss +82 -76
  91. package/src/lib/components/toast/rt-toast.component.scss +169 -160
  92. package/src/lib/components/toast/rt-toaster.component.scss +37 -35
  93. package/src/lib/components/toggle-button-group/rt-toggle-button-group.component.scss +129 -122
  94. package/src/lib/components/toggle-switch/rt-toggle-switch.component.scss +97 -91
  95. package/src/lib/components/toolbar/rt-toolbar.component.scss +63 -54
  96. package/src/lib/components/tooltip/rt-tooltip.component.scss +24 -15
  97. package/src/lib/components/welcome-dialog/rt-welcome-dialog.component.scss +46 -44
  98. package/src/lib/components/workspace/rt-workspace.component.scss +139 -131
  99. package/src/lib/components/workspace-details/rt-workspace-details.component.scss +105 -101
  100. package/src/styles/_index.scss +11 -0
  101. package/src/styles/_layers.scss +22 -0
  102. package/src/styles/_login.scss +87 -85
  103. package/src/styles/_mixins.scss +1 -1
  104. package/src/styles/_primitives.scss +138 -66
  105. package/src/styles/_scrollbar.scss +21 -19
  106. package/src/styles/_semantic.scss +155 -62
  107. package/src/styles/_theme-dark-rules.scss +23 -0
  108. package/src/styles/_theme-dark.scss +61 -42
  109. package/styles/tokens.css +754 -418
  110. package/types/rt-tools-ui-kit-v2.d.ts +292 -103
  111. package/rt-tools-ui-kit-v2-0.5.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
  }