@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.
- package/README.md +71 -0
- package/fesm2022/rt-tools-ui-kit-v2.mjs +166 -166
- package/fesm2022/rt-tools-ui-kit-v2.mjs.map +1 -1
- package/package.json +1 -1
- package/rt-tools-ui-kit-v2-0.6.0.tgz +0 -0
- package/src/lib/components/aside/_rt-aside-overlay.scss +73 -71
- package/src/lib/components/aside/footer/rt-aside-footer.component.scss +20 -16
- package/src/lib/components/aside/header/rt-aside-header.component.scss +72 -70
- package/src/lib/components/aside/rt-aside.component.scss +107 -105
- package/src/lib/components/aside/unsaved-dialog/rt-aside-unsaved-dialog.component.scss +33 -31
- package/src/lib/components/aside-section/rt-aside-section.component.scss +27 -23
- package/src/lib/components/autocomplete/rt-autocomplete.component.scss +124 -118
- package/src/lib/components/bar-list/rt-bar-list.component.scss +85 -81
- package/src/lib/components/bottom-sheet/rt-bottom-sheet.component.scss +64 -57
- package/src/lib/components/button/rt-button.directive.scss +319 -280
- package/src/lib/components/calendar/rt-calendar.component.scss +106 -102
- package/src/lib/components/card/rt-card.component.scss +53 -45
- package/src/lib/components/chat/rt-chat.component.scss +312 -306
- package/src/lib/components/checkbox/rt-checkbox.component.scss +61 -54
- package/src/lib/components/collapsible-text/rt-collapsible-text.component.scss +36 -34
- package/src/lib/components/confirm-popover/rt-confirm-popover.component.scss +36 -30
- package/src/lib/components/container/rt-container.component.scss +91 -87
- package/src/lib/components/counter/rt-counter.component.scss +14 -12
- package/src/lib/components/counter-row/rt-counter-row.component.scss +31 -27
- package/src/lib/components/date-picker/rt-date-picker.component.scss +73 -71
- package/src/lib/components/delta-view/rt-delta-view.component.scss +27 -25
- package/src/lib/components/detail-list/rt-detail-list.component.scss +8 -6
- package/src/lib/components/detail-list/rt-detail-row.component.scss +18 -16
- package/src/lib/components/dialog/footer/rt-dialog-footer.component.scss +19 -17
- package/src/lib/components/dialog/header/rt-dialog-header.component.scss +27 -25
- package/src/lib/components/dialog/rt-dialog.component.scss +59 -56
- package/src/lib/components/download-link/rt-download-link.component.scss +32 -27
- package/src/lib/components/empty-state/rt-empty-state.component.scss +50 -46
- package/src/lib/components/field/rt-field.component.scss +63 -61
- package/src/lib/components/file-card/rt-file-card.component.scss +84 -78
- package/src/lib/components/file-drop/rt-file-drop.component.scss +83 -77
- package/src/lib/components/file-input/rt-file-input.component.scss +20 -18
- package/src/lib/components/file-list/rt-file-list.component.scss +9 -7
- package/src/lib/components/filter-control/rt-filter-control.component.scss +16 -14
- package/src/lib/components/header/rt-header.component.scss +61 -55
- package/src/lib/components/icon/rt-icon.component.scss +14 -12
- package/src/lib/components/icon-button/CONTEXT.md +4 -2
- package/src/lib/components/icon-button/rt-icon-button.component.scss +128 -112
- package/src/lib/components/info-item/rt-info-item.component.scss +38 -36
- package/src/lib/components/input/rt-input.component.scss +102 -98
- package/src/lib/components/input-number/rt-input-number.component.scss +84 -82
- package/src/lib/components/live-badge/rt-live-badge.component.scss +27 -23
- package/src/lib/components/logo/rt-logo.component.scss +54 -52
- package/src/lib/components/menu/rt-menu-confirm-dialog.component.scss +30 -28
- package/src/lib/components/menu/rt-menu-item.component.scss +47 -42
- package/src/lib/components/menu/rt-menu.component.scss +23 -15
- package/src/lib/components/message/rt-message.component.scss +53 -49
- package/src/lib/components/message-composer/rt-message-composer.component.scss +55 -49
- package/src/lib/components/money-list/rt-money-list.component.scss +13 -9
- package/src/lib/components/money-list/rt-money-row.component.scss +23 -19
- package/src/lib/components/multiselect/rt-multiselect.component.scss +169 -161
- package/src/lib/components/night-grid/rt-night-grid.component.scss +47 -42
- package/src/lib/components/note/rt-note.component.scss +15 -11
- package/src/lib/components/notifications-bell/rt-notifications-bell.component.scss +34 -27
- package/src/lib/components/page-header/rt-page-header-mobile.scss +142 -134
- package/src/lib/components/page-header/rt-page-header-submenu.scss +130 -123
- package/src/lib/components/page-header/rt-page-header.component.scss +221 -210
- package/src/lib/components/pagination/rt-pagination.component.scss +88 -81
- package/src/lib/components/photo-viewer/rt-photo-viewer.component.scss +109 -105
- package/src/lib/components/rich-editor/rt-rich-editor.component.scss +63 -59
- package/src/lib/components/section-nav/rt-section-nav.component.scss +53 -47
- package/src/lib/components/select/rt-select.component.scss +146 -138
- package/src/lib/components/skeleton/rt-skeleton.component.scss +50 -41
- package/src/lib/components/skeleton-wrapper/rt-skeleton-wrapper.component.scss +8 -6
- package/src/lib/components/spinner/rt-spinner.component.scss +35 -32
- package/src/lib/components/split-button/rt-split-button.component.scss +74 -62
- package/src/lib/components/stat-tile/rt-stat-tile.component.scss +95 -91
- package/src/lib/components/stepper/rt-stepper.component.scss +107 -101
- package/src/lib/components/table/copy-cell/rt-copy-cell.component.scss +34 -30
- package/src/lib/components/table/rt-table.component.scss +260 -252
- package/src/lib/components/table/settings-aside/rt-table-settings-aside.component.scss +7 -5
- package/src/lib/components/table/settings-panel/rt-table-settings-panel.component.scss +71 -61
- package/src/lib/components/table/sort-header/rt-table-sort-header.component.scss +31 -29
- package/src/lib/components/tabs/rt-tabs.component.scss +184 -175
- package/src/lib/components/tag/rt-tag.component.scss +97 -92
- package/src/lib/components/textarea/rt-textarea.component.scss +62 -60
- package/src/lib/components/theme-toggle/rt-theme-toggle.component.scss +7 -5
- package/src/lib/components/thread-list/rt-thread-list.component.scss +221 -212
- package/src/lib/components/timeline/rt-timeline.component.scss +82 -76
- package/src/lib/components/toast/rt-toast.component.scss +169 -160
- package/src/lib/components/toast/rt-toaster.component.scss +37 -35
- package/src/lib/components/toggle-button-group/rt-toggle-button-group.component.scss +129 -122
- package/src/lib/components/toggle-switch/rt-toggle-switch.component.scss +97 -91
- package/src/lib/components/toolbar/rt-toolbar.component.scss +56 -54
- package/src/lib/components/tooltip/rt-tooltip.component.scss +20 -15
- package/src/lib/components/welcome-dialog/rt-welcome-dialog.component.scss +46 -44
- package/src/lib/components/workspace/rt-workspace.component.scss +139 -131
- package/src/lib/components/workspace-details/rt-workspace-details.component.scss +105 -101
- package/src/styles/_index.scss +4 -0
- package/src/styles/_layers.scss +22 -0
- package/src/styles/_login.scss +87 -85
- package/src/styles/_mixins.scss +1 -1
- package/src/styles/_primitives.scss +126 -67
- package/src/styles/_scrollbar.scss +21 -19
- package/src/styles/_semantic.scss +140 -56
- package/src/styles/_theme-dark.scss +60 -27
- package/styles/tokens.css +628 -408
- package/rt-tools-ui-kit-v2-0.5.0.tgz +0 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/* Порядок подслоёв кита. Объявляется раньше всего остального: слой, не названный здесь,
|
|
2
|
+
встаёт в каскад по первому появлению, а появляются подслои в порядке загрузки — стили
|
|
3
|
+
компонента Angular инжектит отдельным блоком, и он способен прийти раньше основы. Названные
|
|
4
|
+
заранее, оба подслоя держат порядок независимо от того, что загрузилось первым.
|
|
5
|
+
|
|
6
|
+
Правило приложения, объявленное вне слоя, выигрывает у любого правила отсюда независимо от
|
|
7
|
+
специфичности: неслоевое правило сильнее слоевого. Ради этого слой и заводится — перебивать
|
|
8
|
+
кит счётом специфичности потребителю больше не нужно.
|
|
9
|
+
|
|
10
|
+
Объявления свойств на корне страницы (`:root { --rt-* }`) в слой не уходят: их потребитель
|
|
11
|
+
перебивает порядком, объявляя свою линейку бренда после `tokens.css`.
|
|
12
|
+
|
|
13
|
+
Нижний подслой — `vendor`, и он для чужого CSS, который чинит кит: тема редактора текста,
|
|
14
|
+
готовые стили перекрытия. Слой опускает правила кита ниже всего, что объявлено вне слоя, —
|
|
15
|
+
не только ниже приложения, но и ниже такой библиотеки, и панель редактора перестраивалась
|
|
16
|
+
молча. Подключается чужой файл импортом с именем подслоя:
|
|
17
|
+
|
|
18
|
+
@import 'quill/dist/quill.snow.css' layer(rt-kit.vendor);
|
|
19
|
+
|
|
20
|
+
Кит его за потребителя не подключает: редактор текста опционален, и тянуть его тему в
|
|
21
|
+
пакет значило бы отдать её всем. */
|
|
22
|
+
@layer rt-kit.vendor, rt-kit.base, rt-kit.components;
|
package/src/styles/_login.scss
CHANGED
|
@@ -1,97 +1,99 @@
|
|
|
1
|
-
.
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
@layer rt-kit.base {
|
|
2
|
+
.login__viewport {
|
|
3
|
+
display: flex;
|
|
4
|
+
min-height: 100dvh;
|
|
5
|
+
box-sizing: border-box;
|
|
6
|
+
align-items: center;
|
|
7
|
+
justify-content: center;
|
|
8
|
+
padding: 0 var(--rt-space-5);
|
|
9
|
+
background-color: var(--rt-color-bg-surface-auth-card);
|
|
10
|
+
}
|
|
10
11
|
|
|
11
|
-
.login__chrome {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}
|
|
12
|
+
.login__chrome {
|
|
13
|
+
position: fixed;
|
|
14
|
+
z-index: 10;
|
|
15
|
+
top: 20px;
|
|
16
|
+
right: 20px;
|
|
17
|
+
display: flex;
|
|
18
|
+
align-items: center;
|
|
19
|
+
gap: var(--rt-space-2);
|
|
20
|
+
}
|
|
20
21
|
|
|
21
|
-
.login__card {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
}
|
|
22
|
+
.login__card {
|
|
23
|
+
position: relative;
|
|
24
|
+
display: flex;
|
|
25
|
+
width: 100%;
|
|
26
|
+
max-width: 400px;
|
|
27
|
+
box-sizing: border-box;
|
|
28
|
+
flex-direction: column;
|
|
29
|
+
align-items: stretch;
|
|
30
|
+
padding: var(--rt-space-16) var(--rt-space-5);
|
|
31
|
+
border-radius: var(--rt-radius-md);
|
|
32
|
+
background-color: var(--rt-color-bg-surface-auth-card);
|
|
33
|
+
gap: var(--rt-space-10);
|
|
34
|
+
}
|
|
34
35
|
|
|
35
|
-
.login__logo {
|
|
36
|
-
|
|
37
|
-
}
|
|
36
|
+
.login__logo {
|
|
37
|
+
align-self: center;
|
|
38
|
+
}
|
|
38
39
|
|
|
39
|
-
.login__title {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
}
|
|
40
|
+
.login__title {
|
|
41
|
+
margin: 0;
|
|
42
|
+
color: var(--rt-color-text-primary);
|
|
43
|
+
font-size: var(--rt-text-2xl);
|
|
44
|
+
font-weight: var(--rt-font-weight-bold);
|
|
45
|
+
text-align: center;
|
|
46
|
+
}
|
|
46
47
|
|
|
47
|
-
.login__form {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
}
|
|
48
|
+
.login__form {
|
|
49
|
+
display: flex;
|
|
50
|
+
flex-direction: column;
|
|
51
|
+
gap: var(--rt-space-5);
|
|
52
|
+
}
|
|
52
53
|
|
|
53
|
-
.login__error {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
}
|
|
54
|
+
.login__error {
|
|
55
|
+
padding: var(--rt-space-sm) var(--rt-space-4);
|
|
56
|
+
border-radius: var(--rt-radius-md);
|
|
57
|
+
margin: 0;
|
|
58
|
+
background-color: var(--rt-color-state-danger-bg);
|
|
59
|
+
color: var(--rt-color-state-error-text);
|
|
60
|
+
font-size: var(--rt-text-sm);
|
|
61
|
+
}
|
|
61
62
|
|
|
62
|
-
.login__submit {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
}
|
|
63
|
+
.login__submit {
|
|
64
|
+
width: 100%;
|
|
65
|
+
height: 40px;
|
|
66
|
+
}
|
|
66
67
|
|
|
67
|
-
.login__links {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
}
|
|
68
|
+
.login__links {
|
|
69
|
+
display: flex;
|
|
70
|
+
flex-wrap: wrap;
|
|
71
|
+
justify-content: center;
|
|
72
|
+
padding-top: var(--rt-space-5);
|
|
73
|
+
border-top: var(--rt-border-width-thin) solid var(--rt-color-border-default);
|
|
74
|
+
gap: var(--rt-space-5);
|
|
75
|
+
}
|
|
75
76
|
|
|
76
|
-
.login__link {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
}
|
|
77
|
+
.login__link {
|
|
78
|
+
padding: 0;
|
|
79
|
+
border: none;
|
|
80
|
+
background: transparent;
|
|
81
|
+
color: var(--rt-color-text-muted);
|
|
82
|
+
cursor: pointer;
|
|
83
|
+
font-size: var(--rt-text-xs);
|
|
84
|
+
font-weight: var(--rt-font-weight-medium);
|
|
85
|
+
letter-spacing: var(--rt-letter-spacing-wide);
|
|
86
|
+
text-decoration: underline;
|
|
87
|
+
text-decoration-thickness: 1px;
|
|
88
|
+
}
|
|
88
89
|
|
|
89
|
-
.login__link:hover {
|
|
90
|
-
|
|
91
|
-
}
|
|
90
|
+
.login__link:hover {
|
|
91
|
+
color: var(--rt-color-action-primary);
|
|
92
|
+
}
|
|
92
93
|
|
|
93
|
-
.login__link:focus-visible {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
94
|
+
.login__link:focus-visible {
|
|
95
|
+
border-radius: var(--rt-radius-xs);
|
|
96
|
+
outline: 2px solid var(--rt-color-action-primary);
|
|
97
|
+
outline-offset: 2px;
|
|
98
|
+
}
|
|
97
99
|
}
|
package/src/styles/_mixins.scss
CHANGED
|
@@ -1,42 +1,55 @@
|
|
|
1
1
|
/* Primitive design tokens — single source of truth для шкал. */
|
|
2
2
|
|
|
3
3
|
:root {
|
|
4
|
-
/* Neutral scale — серо-сине-стальная.
|
|
4
|
+
/* Neutral scale — серо-сине-стальная.
|
|
5
|
+
|
|
6
|
+
Ряд посчитан в OKLCH: тон 264.4° и цветность 0.0234 взяты у прежней ступени 600,
|
|
7
|
+
светлота идёт ровным шагом 0.0785 от 0.985 к 0.20. Ноль остаётся чистым белым —
|
|
8
|
+
это бумага, а не ступень ряда. В самом светлом конце цветность ужата охватом
|
|
9
|
+
sRGB: синеватого такой светлоты не существует.
|
|
10
|
+
|
|
11
|
+
До пересчёта ряд шкалой не был. Он держал два семейства сразу — чисто серое
|
|
12
|
+
(0, 50, 200, 500, 900) и синеватое (100, 300, 400, 600, 700, 800, 950), —
|
|
13
|
+
шаг светлоты гулял от 0.009 до 0.173, а ступень 900 была темнее ступени 950,
|
|
14
|
+
то есть ряд шёл назад. Ещё девять ступеней стояли между этими: заведённые под
|
|
15
|
+
одно место, они выглядели шкалой, но выбрать из такого ряда было нельзя. */
|
|
5
16
|
--rt-neutral-0: #fff;
|
|
6
|
-
--rt-neutral-50: #
|
|
7
|
-
--rt-neutral-100: #
|
|
8
|
-
--rt-neutral-
|
|
9
|
-
--rt-neutral-
|
|
10
|
-
--rt-neutral-
|
|
11
|
-
--rt-neutral-
|
|
12
|
-
--rt-neutral-
|
|
13
|
-
--rt-neutral-
|
|
14
|
-
--rt-neutral-
|
|
15
|
-
--rt-neutral-
|
|
16
|
-
--rt-neutral-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
--rt-
|
|
27
|
-
--rt-
|
|
28
|
-
--rt-
|
|
29
|
-
|
|
30
|
-
/*
|
|
31
|
-
--rt-
|
|
32
|
-
--rt-
|
|
33
|
-
--rt-
|
|
34
|
-
--rt-
|
|
35
|
-
--rt-
|
|
36
|
-
--rt-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
17
|
+
--rt-neutral-50: #f8faff;
|
|
18
|
+
--rt-neutral-100: #d8e0f0;
|
|
19
|
+
--rt-neutral-200: #bfc7d6;
|
|
20
|
+
--rt-neutral-300: #a6aebd;
|
|
21
|
+
--rt-neutral-400: #8e96a4;
|
|
22
|
+
--rt-neutral-500: #777e8c;
|
|
23
|
+
--rt-neutral-600: #606775;
|
|
24
|
+
--rt-neutral-700: #4b515f;
|
|
25
|
+
--rt-neutral-800: #363c49;
|
|
26
|
+
--rt-neutral-900: #232934;
|
|
27
|
+
--rt-neutral-950: #111621;
|
|
28
|
+
|
|
29
|
+
/* Бренд — линейка цвета марки. Потребитель перекрашивает кит объявлением этих
|
|
30
|
+
одиннадцати ступеней после tokens.css: назначения, прозрачные оттенки и кольцо
|
|
31
|
+
фокуса берут цвет отсюда сами, в обеих темах.
|
|
32
|
+
|
|
33
|
+
Ряд посчитан в OKLCH: тон 262.87° и цветность взяты у ступени 500, светлота идёт
|
|
34
|
+
ровными шагами от 0.97 к 0.20. Ступень 500 — сам цвет марки, поэтому светлый конец
|
|
35
|
+
ряда темнее, чем у палитр, где 500 стоит серединой светлоты. У 600 и 700 цветность
|
|
36
|
+
ужата: с полной они не влезают в охват sRGB. */
|
|
37
|
+
--rt-brand-50: #f0f5ff;
|
|
38
|
+
--rt-brand-100: #cddaf1;
|
|
39
|
+
--rt-brand-200: #a8bfea;
|
|
40
|
+
--rt-brand-300: #7ea3e9;
|
|
41
|
+
--rt-brand-400: #4e84f2; /* отметка прочтения в чате */
|
|
42
|
+
--rt-brand-500: #155dfc; /* цвет марки */
|
|
43
|
+
--rt-brand-600: #0047df;
|
|
44
|
+
--rt-brand-700: #0038b5;
|
|
45
|
+
--rt-brand-800: #012a8a;
|
|
46
|
+
--rt-brand-900: #021d62;
|
|
47
|
+
--rt-brand-950: #02113c;
|
|
48
|
+
|
|
49
|
+
/* Navy — тёмная синева обвязки и рельсы прогресса. Цветом марки она не красится:
|
|
50
|
+
перекрасивший бренд не ждёт, что вместе с кнопкой сменится подложка шапки. */
|
|
51
|
+
--rt-navy-600: #435775; /* трек прогресса, тёмная тема */
|
|
52
|
+
--rt-navy-900: #182142; /* подложка шапки и боковой навигации */
|
|
40
53
|
|
|
41
54
|
/* Charcoal — тёплый графит для тёмной темы. */
|
|
42
55
|
--rt-charcoal-950: #17181c; /* глубокий фон / приподнятая alt-поверхность, subtle */
|
|
@@ -48,48 +61,52 @@
|
|
|
48
61
|
|
|
49
62
|
/* Stepper rail — приглушённые оттенки трека/прогресса прогресс-полосы. */
|
|
50
63
|
--rt-gray-350: #b3b3b3; /* трек, light */
|
|
51
|
-
--rt-navy-600: #435775; /* трек, dark */
|
|
52
64
|
--rt-slate-300: #a9b8cd; /* пройденный прогресс, dark */
|
|
53
65
|
|
|
54
|
-
/* Status — success/warning/danger/info
|
|
66
|
+
/* Status — success/warning/danger/info.
|
|
67
|
+
|
|
68
|
+
Ступени 600 и 700 считаны от своей 500 ровным шагом светлоты линейки бренда
|
|
69
|
+
(ΔL = 0.0687 в OKLCH): тон и цветность берутся у 500, светлота убывает шагом.
|
|
70
|
+
До этого ряды были собраны вручную и шли неровно — у успеха 700 была светлее
|
|
71
|
+
600, а у опасности 600 отличалась от 500 неразличимо на глаз. Наведение и
|
|
72
|
+
нажатие действия берут именно эти ступени, и такая пара их сливала. */
|
|
55
73
|
--rt-success-50: #ecfdf5;
|
|
56
74
|
--rt-success-100: #eafaf5;
|
|
57
75
|
--rt-success-500: #059669;
|
|
58
|
-
--rt-success-600: #
|
|
59
|
-
--rt-success-700: #
|
|
76
|
+
--rt-success-600: #017f58;
|
|
77
|
+
--rt-success-700: #006848;
|
|
60
78
|
--rt-warning-50: #fffbeb;
|
|
61
79
|
--rt-warning-500: #d97706;
|
|
62
|
-
--rt-warning-600: #
|
|
80
|
+
--rt-warning-600: #bc6600;
|
|
81
|
+
--rt-warning-700: #9f5500;
|
|
63
82
|
--rt-yellow-400: #f4d85a;
|
|
64
83
|
--rt-amber-400: #f49f5a;
|
|
65
84
|
--rt-danger-50: #fef2f2;
|
|
66
85
|
--rt-danger-500: #dc2626;
|
|
67
|
-
--rt-danger-600: #
|
|
68
|
-
--rt-danger-700: #
|
|
69
|
-
--rt-info-50: #eff6ff;
|
|
70
|
-
--rt-info-500: #2563eb;
|
|
71
|
-
--rt-info-600: #1d4ed8;
|
|
86
|
+
--rt-danger-600: #c00111;
|
|
87
|
+
--rt-danger-700: #9e000c;
|
|
72
88
|
|
|
73
|
-
/*
|
|
89
|
+
/* Info разведён с маркой намеренно. До этого две палитры стояли на одном тоне —
|
|
90
|
+
262.9° у обеих, — различаясь только цветностью, а ступень 700 совпадала с
|
|
91
|
+
брендовой буквально. Уведомление «к сведению» — статус наравне с успехом и
|
|
92
|
+
опасностью, а не акцент марки: у потребителя с зелёной маркой оно иначе стало
|
|
93
|
+
бы неотличимо от успешного. Тон уведён к 250°: дальше охват sRGB режет
|
|
94
|
+
цветность вдвое, и синий уходит в бирюзу. */
|
|
95
|
+
--rt-info-50: #eef6ff;
|
|
96
|
+
--rt-info-500: #0173c6;
|
|
97
|
+
--rt-info-600: #005fa5;
|
|
98
|
+
--rt-info-700: #004c85;
|
|
99
|
+
|
|
100
|
+
/* Spacing — ряд с шагом 4px. Промежуточных ступеней в нём нет: 6, 10, 12 и 28
|
|
101
|
+
пикселей стояли ступенями под конкретные места, и выбрать из такого ряда было
|
|
102
|
+
нельзя. Употребления округлены к ближайшей ступени, при равенстве — вверх. */
|
|
74
103
|
--rt-space-0: 0;
|
|
75
104
|
--rt-space-0-5: 2px;
|
|
76
105
|
--rt-space-1: 4px;
|
|
77
|
-
|
|
78
|
-
/* @deprecated off-grid — округлять к --rt-space-2 (8) или --rt-space-1 (4). */
|
|
79
|
-
--rt-space-1-5: 6px;
|
|
80
106
|
--rt-space-2: 8px;
|
|
81
|
-
|
|
82
|
-
/* @deprecated off-grid — округлять к --rt-space-2 (8) или --rt-space-md (16). */
|
|
83
|
-
--rt-space-2-5: 10px;
|
|
84
|
-
|
|
85
|
-
/* @deprecated off-grid — округлять к --rt-space-md (16). */
|
|
86
|
-
--rt-space-3: 12px;
|
|
87
107
|
--rt-space-4: 16px;
|
|
88
108
|
--rt-space-5: 20px;
|
|
89
109
|
--rt-space-6: 24px;
|
|
90
|
-
|
|
91
|
-
/* @deprecated off-grid — заведён под промежуток между группами панели навигации. */
|
|
92
|
-
--rt-space-7: 28px;
|
|
93
110
|
--rt-space-8: 32px;
|
|
94
111
|
--rt-space-10: 40px;
|
|
95
112
|
--rt-space-12: 48px;
|
|
@@ -164,11 +181,44 @@
|
|
|
164
181
|
панели навигации размазывают её край вместо того, чтобы его очертить. */
|
|
165
182
|
--rt-shadow-profile-menu: 0 16px 32px rgb(0 0 0 / 15%);
|
|
166
183
|
|
|
167
|
-
/*
|
|
168
|
-
|
|
169
|
-
--rt-
|
|
170
|
-
|
|
171
|
-
|
|
184
|
+
/* Тень окна — тот же силуэт, что у shadow-card-soft, но вдвое плотнее: окно
|
|
185
|
+
лежит поверх затемнённой страницы, и слабый ореол на ней не читается. */
|
|
186
|
+
--rt-shadow-dialog: 0 0 40px rgb(0 0 0 / 25%);
|
|
187
|
+
|
|
188
|
+
/* Size — шкала габаритов: ширина, высота и сторона квадратного узла там, где их
|
|
189
|
+
задаёт не содержимое. Множитель тот же, что у отступов: ступень N равна N × 4px,
|
|
190
|
+
и ряд идёт без промежуточных ступеней — габарит, не легший на ряд, округляется к
|
|
191
|
+
соседней, а не заводит себе ступень по месту. */
|
|
192
|
+
--rt-size-1: 4px;
|
|
193
|
+
--rt-size-2: 8px;
|
|
194
|
+
--rt-size-3: 12px;
|
|
195
|
+
--rt-size-4: 16px;
|
|
196
|
+
--rt-size-5: 20px;
|
|
197
|
+
--rt-size-6: 24px;
|
|
198
|
+
--rt-size-8: 32px;
|
|
199
|
+
--rt-size-10: 40px;
|
|
200
|
+
--rt-size-12: 48px;
|
|
201
|
+
--rt-size-16: 64px;
|
|
202
|
+
--rt-size-20: 80px;
|
|
203
|
+
--rt-size-24: 96px;
|
|
204
|
+
--rt-size-30: 120px;
|
|
205
|
+
--rt-size-40: 160px;
|
|
206
|
+
--rt-size-60: 240px;
|
|
207
|
+
--rt-size-64: 256px;
|
|
208
|
+
--rt-size-100: 400px;
|
|
209
|
+
|
|
210
|
+
/* Control height — одна шкала высот на все интерактивные контролы: кнопку,
|
|
211
|
+
иконочную кнопку и семейство полей. Ряд идёт шагом 8px и ложится на сетку
|
|
212
|
+
отступов; ступень md остаётся сорока, потому что это самый ходовой размер
|
|
213
|
+
кнопки.
|
|
214
|
+
|
|
215
|
+
До свода рядов было три, и в одной строке они не совпадали: кнопка шла
|
|
216
|
+
30/40/50/60/70, поле 36/45/52, иконочная кнопка 28/36/44/52/60. */
|
|
217
|
+
--rt-control-height-sm: 32px;
|
|
218
|
+
--rt-control-height-md: 40px;
|
|
219
|
+
--rt-control-height-lg: 48px;
|
|
220
|
+
--rt-control-height-xl: 56px;
|
|
221
|
+
--rt-control-height-2xl: 64px;
|
|
172
222
|
--rt-control-textarea-min-height-sm: 80px;
|
|
173
223
|
--rt-control-textarea-min-height-md: 120px;
|
|
174
224
|
--rt-control-textarea-min-height-lg: 160px;
|
|
@@ -198,10 +248,19 @@
|
|
|
198
248
|
--rt-overlay-white-25: rgb(250 250 250 / 25%); /* disabled-текст на графите */
|
|
199
249
|
--rt-overlay-white-40: rgb(250 250 250 / 40%); /* muted-текст на графите */
|
|
200
250
|
--rt-overlay-black-50: rgb(0 0 0 / 50%);
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
251
|
+
|
|
252
|
+
/* Оттенки марки считаются от её ступени, а не повторяют код цвета: повторённое
|
|
253
|
+
значение расходится с источником молча, и перекрасивший бренд получал бы прежний
|
|
254
|
+
синий в подложке действия и в кольце фокуса. */
|
|
255
|
+
--rt-overlay-brand-8: color-mix(in srgb, var(--rt-brand-500) 8%, transparent);
|
|
256
|
+
--rt-overlay-brand-24: color-mix(in srgb, var(--rt-brand-500) 24%, transparent);
|
|
257
|
+
--rt-overlay-danger-16: color-mix(in srgb, var(--rt-danger-500) 16%, transparent);
|
|
258
|
+
--rt-overlay-amber-16: color-mix(in srgb, var(--rt-amber-400) 16%, transparent);
|
|
259
|
+
|
|
260
|
+
/* Подложка окна — синеватая, а не чёрная: окно стоит на странице обвязки, и
|
|
261
|
+
чёрное затемнение под ним холоднее её синевы. Считается от ступени обвязки
|
|
262
|
+
по той же причине, что и оттенки марки. */
|
|
263
|
+
--rt-overlay-navy-70: color-mix(in srgb, var(--rt-navy-900) 70%, transparent);
|
|
205
264
|
|
|
206
265
|
/* Z-index */
|
|
207
266
|
--rt-z-base: 0;
|
|
@@ -1,24 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
@layer rt-kit.base {
|
|
2
|
+
::-webkit-scrollbar {
|
|
3
|
+
width: 12px;
|
|
4
|
+
}
|
|
4
5
|
|
|
5
|
-
::-webkit-scrollbar:horizontal {
|
|
6
|
-
|
|
7
|
-
}
|
|
6
|
+
::-webkit-scrollbar:horizontal {
|
|
7
|
+
height: 12px;
|
|
8
|
+
}
|
|
8
9
|
|
|
9
|
-
::-webkit-scrollbar-thumb {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}
|
|
10
|
+
::-webkit-scrollbar-thumb {
|
|
11
|
+
border: var(--rt-border-width-thick) solid transparent;
|
|
12
|
+
border-radius: var(--rt-radius-md);
|
|
13
|
+
background: var(--rt-color-border-default);
|
|
14
|
+
background-clip: content-box;
|
|
15
|
+
}
|
|
15
16
|
|
|
16
|
-
::-webkit-scrollbar-thumb:hover {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}
|
|
17
|
+
::-webkit-scrollbar-thumb:hover {
|
|
18
|
+
border: var(--rt-border-width-medium) solid transparent;
|
|
19
|
+
background: var(--rt-color-border-strong);
|
|
20
|
+
background-clip: content-box;
|
|
21
|
+
}
|
|
21
22
|
|
|
22
|
-
::-webkit-scrollbar-track:hover {
|
|
23
|
-
|
|
23
|
+
::-webkit-scrollbar-track:hover {
|
|
24
|
+
border: var(--rt-border-width-thin) solid var(--rt-color-bg-subtle);
|
|
25
|
+
}
|
|
24
26
|
}
|