@rt-tools/ui-kit-v2 0.5.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 (103) hide show
  1. package/README.md +71 -0
  2. package/fesm2022/rt-tools-ui-kit-v2.mjs +166 -166
  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/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/rt-icon.component.scss +14 -12
  42. package/src/lib/components/icon-button/CONTEXT.md +4 -2
  43. package/src/lib/components/icon-button/rt-icon-button.component.scss +128 -112
  44. package/src/lib/components/info-item/rt-info-item.component.scss +38 -36
  45. package/src/lib/components/input/rt-input.component.scss +102 -98
  46. package/src/lib/components/input-number/rt-input-number.component.scss +84 -82
  47. package/src/lib/components/live-badge/rt-live-badge.component.scss +27 -23
  48. package/src/lib/components/logo/rt-logo.component.scss +54 -52
  49. package/src/lib/components/menu/rt-menu-confirm-dialog.component.scss +30 -28
  50. package/src/lib/components/menu/rt-menu-item.component.scss +47 -42
  51. package/src/lib/components/menu/rt-menu.component.scss +23 -15
  52. package/src/lib/components/message/rt-message.component.scss +53 -49
  53. package/src/lib/components/message-composer/rt-message-composer.component.scss +55 -49
  54. package/src/lib/components/money-list/rt-money-list.component.scss +13 -9
  55. package/src/lib/components/money-list/rt-money-row.component.scss +23 -19
  56. package/src/lib/components/multiselect/rt-multiselect.component.scss +169 -161
  57. package/src/lib/components/night-grid/rt-night-grid.component.scss +47 -42
  58. package/src/lib/components/note/rt-note.component.scss +15 -11
  59. package/src/lib/components/notifications-bell/rt-notifications-bell.component.scss +34 -27
  60. package/src/lib/components/page-header/rt-page-header-mobile.scss +142 -134
  61. package/src/lib/components/page-header/rt-page-header-submenu.scss +130 -123
  62. package/src/lib/components/page-header/rt-page-header.component.scss +221 -210
  63. package/src/lib/components/pagination/rt-pagination.component.scss +88 -81
  64. package/src/lib/components/photo-viewer/rt-photo-viewer.component.scss +109 -105
  65. package/src/lib/components/rich-editor/rt-rich-editor.component.scss +63 -59
  66. package/src/lib/components/section-nav/rt-section-nav.component.scss +53 -47
  67. package/src/lib/components/select/rt-select.component.scss +146 -138
  68. package/src/lib/components/skeleton/rt-skeleton.component.scss +50 -41
  69. package/src/lib/components/skeleton-wrapper/rt-skeleton-wrapper.component.scss +8 -6
  70. package/src/lib/components/spinner/rt-spinner.component.scss +35 -32
  71. package/src/lib/components/split-button/rt-split-button.component.scss +74 -62
  72. package/src/lib/components/stat-tile/rt-stat-tile.component.scss +95 -91
  73. package/src/lib/components/stepper/rt-stepper.component.scss +107 -101
  74. package/src/lib/components/table/copy-cell/rt-copy-cell.component.scss +34 -30
  75. package/src/lib/components/table/rt-table.component.scss +260 -252
  76. package/src/lib/components/table/settings-aside/rt-table-settings-aside.component.scss +7 -5
  77. package/src/lib/components/table/settings-panel/rt-table-settings-panel.component.scss +71 -61
  78. package/src/lib/components/table/sort-header/rt-table-sort-header.component.scss +31 -29
  79. package/src/lib/components/tabs/rt-tabs.component.scss +184 -175
  80. package/src/lib/components/tag/rt-tag.component.scss +97 -92
  81. package/src/lib/components/textarea/rt-textarea.component.scss +62 -60
  82. package/src/lib/components/theme-toggle/rt-theme-toggle.component.scss +7 -5
  83. package/src/lib/components/thread-list/rt-thread-list.component.scss +221 -212
  84. package/src/lib/components/timeline/rt-timeline.component.scss +82 -76
  85. package/src/lib/components/toast/rt-toast.component.scss +169 -160
  86. package/src/lib/components/toast/rt-toaster.component.scss +37 -35
  87. package/src/lib/components/toggle-button-group/rt-toggle-button-group.component.scss +129 -122
  88. package/src/lib/components/toggle-switch/rt-toggle-switch.component.scss +97 -91
  89. package/src/lib/components/toolbar/rt-toolbar.component.scss +56 -54
  90. package/src/lib/components/tooltip/rt-tooltip.component.scss +20 -15
  91. package/src/lib/components/welcome-dialog/rt-welcome-dialog.component.scss +46 -44
  92. package/src/lib/components/workspace/rt-workspace.component.scss +139 -131
  93. package/src/lib/components/workspace-details/rt-workspace-details.component.scss +105 -101
  94. package/src/styles/_index.scss +4 -0
  95. package/src/styles/_layers.scss +22 -0
  96. package/src/styles/_login.scss +87 -85
  97. package/src/styles/_mixins.scss +1 -1
  98. package/src/styles/_primitives.scss +126 -67
  99. package/src/styles/_scrollbar.scss +21 -19
  100. package/src/styles/_semantic.scss +140 -56
  101. package/src/styles/_theme-dark.scss +60 -27
  102. package/styles/tokens.css +628 -408
  103. package/rt-tools-ui-kit-v2-0.5.0.tgz +0 -0
package/README.md CHANGED
@@ -34,6 +34,20 @@ export const appConfig: ApplicationConfig = {
34
34
  @use '@rt-tools/ui-kit-v2/styles/tokens.css';
35
35
  ```
36
36
 
37
+ Стили кита объявлены слоем каскада `rt-kit` — тремя подслоями в порядке `vendor`, `base`,
38
+ `components`. Правило приложения, объявленное вне слоя, выигрывает у любого правила кита
39
+ независимо от специфичности: перебирать её счётом и обходить чужую вёрстку больше не нужно.
40
+
41
+ Объявления свойств на корне страницы в слой не уходят — их приложение перебивает порядком,
42
+ объявляя своё после `tokens.css`.
43
+
44
+ Подслой `vendor` — для чужого CSS, который чинит кит. Тема редактора текста подключается в
45
+ него, иначе она выигрывает у правил кита и панель редактора перестраивается:
46
+
47
+ ```scss
48
+ @import 'quill/dist/quill.snow.css' layer(rt-kit.vendor);
49
+ ```
50
+
37
51
  Иконки лежат отдельными файлами в `node_modules/@rt-tools/ui-kit-v2/src/assets/icons`: сборка
38
52
  копирует каталог в свою статику, а `provideRtIcons('/icons')` называет адрес, по которому он
39
53
  опубликован. Реестр забирает их одним проходом на подъёме и склеивает в inline-sprite, поэтому
@@ -97,6 +111,47 @@ provideRtKitLabels({
97
111
  доживает до рантайма) и то, что на них отвечают готовой строкой: подстановки вида `{{name}}`
98
112
  переводчик делает сам. Подпись, которой он не дал, берётся английской — поштучно, не набором.
99
113
 
114
+ ## Настройка компонента снаружи
115
+
116
+ Компонент не берёт ступень шкалы там, где рисует себя: между ступенью и местом употребления
117
+ стоит своё свойство компонента — `--rt-<блок>-<что>`. Объявлено оно в корне блока, значением по
118
+ умолчанию стоит та самая ступень, поэтому без единой строки от приложения кит выглядит так же,
119
+ как выглядел.
120
+
121
+ Своими свойствами покрыты четыре рода назначений:
122
+
123
+ | Род | Имя свойства | Где применяется |
124
+ | ------------- | ----------------------------------- | --------------------------------------------------------------- |
125
+ | скругление | `--rt-<блок>-*-radius` | рамка блока, пузырь, значок, плашка, кольцо аватара |
126
+ | тень | `--rt-<блок>-*-shadow` | карточка, панель в перекрытии, кольцо фокуса, приподнятая точка |
127
+ | толщина рамки | `--rt-<блок>-*-border-width` | обводка, разделитель строк, дорожка, полоса под вкладкой |
128
+ | длительность | `--rt-<блок>-*-transition-duration` | переход цвета, фона, размера и сдвига |
129
+
130
+ Отступ, кегль и габариты остаются на ступенях намеренно: роль отступа одним словом не
131
+ называется, и свойство под неё вышло бы именем места, а не именем роли.
132
+
133
+ Приложение переопределяет свойство правилом той же цели и большей силы — наследования тут мало,
134
+ объявление живёт на самом блоке:
135
+
136
+ ```css
137
+ .my-app .rt-button {
138
+ --rt-btn-radius: 0;
139
+ }
140
+ ```
141
+
142
+ Часть, которую браузер уносит из поддерева блока — панель списка, меню, перетаскиваемая
143
+ строка, — объявляет свойство на себе, и целиться в неё надо тоже отдельно:
144
+
145
+ ```css
146
+ .my-app .rt-select__panel {
147
+ --rt-select-panel-shadow: none;
148
+ }
149
+ ```
150
+
151
+ Что ни один компонент этот порядок не обошёл, проверяет `pnpm run check:tokens-styles`: ступень,
152
+ взятая в стилях компонента напрямую, роняет прогон. Показ на витрине — страница
153
+ `Foundation / Design Tokens / Component Props`.
154
+
100
155
  ## Свой логотип
101
156
 
102
157
  `rt-logo` рисует то, что даст приложение: своих начертаний кит не везёт.
@@ -121,3 +176,19 @@ pnpm exec nx test @rt-tools/ui-kit-v2
121
176
  pnpm exec nx lint @rt-tools/ui-kit-v2
122
177
  pnpm exec stylelint "projects/ui-kit-v2/**/*.scss"
123
178
  ```
179
+
180
+ ## Переход на слой каскада
181
+
182
+ Стили кита переехали в слой `rt-kit`, и это меняет вид у тех, кто настраивал кит поверх. Ошибки
183
+ сборки не будет — узнаётся глазами, поэтому названо здесь прямо.
184
+
185
+ - **Правило приложения теперь выигрывает у правила кита независимо от специфичности.** Место,
186
+ где кит перебивали поднятой специфичностью или обходом чужой вёрстки, продолжит работать, но
187
+ надобности в этом больше нет: обычное правило сильнее любого правила из слоя.
188
+ - **Правило кита теперь проигрывает и чужой библиотеке, чей CSS объявлен вне слоя.** Тема
189
+ редактора текста подключается в подслой `vendor` — импортом с именем подслоя; подключённая
190
+ мимо, она перестраивает панель редактора.
191
+ - **Кит больше не настаивает на своём восклицательным знаком.** Таблица в карточном виде
192
+ перестала перебивать `min-width` приложения: приложению, которому нужен и горизонтальный
193
+ скролл, и карточный вид, остаётся сузить свой селектор до широкого экрана.
194
+