@webority/theme 0.53.1 → 0.54.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/dist/purge-safelist.json +339 -3
- package/dist/webority-theme.css +1 -1
- package/package.json +1 -1
- package/scss/_components.scss +27 -4
- package/scss/_marketing.scss +5 -0
- package/scss/_variables.scss +5 -4
- package/scss/_wui-aliases.scss +14 -0
- package/scss/_wui-components.scss +29 -0
- package/scss/wui/_avatar-picker.scss +1 -1
- package/scss/wui/_calendar.scss +5 -5
- package/scss/wui/_card.scss +2 -2
- package/scss/wui/_carousel.scss +182 -0
- package/scss/wui/_chart.scss +2 -2
- package/scss/wui/_choice.scss +88 -8
- package/scss/wui/_code-block.scss +138 -0
- package/scss/wui/_command-palette.scss +99 -1
- package/scss/wui/_comment-thread.scss +268 -0
- package/scss/wui/_context-menu.scss +2 -2
- package/scss/wui/_controls.scss +14 -12
- package/scss/wui/_data.scss +407 -14
- package/scss/wui/_disclosure.scss +2 -2
- package/scss/wui/_display.scss +13 -9
- package/scss/wui/_dock.scss +2 -2
- package/scss/wui/_drawer.scss +198 -0
- package/scss/wui/_file-viewer.scss +6 -6
- package/scss/wui/_groups.scss +111 -0
- package/scss/wui/_hover-card.scss +55 -0
- package/scss/wui/_illustration.scss +76 -0
- package/scss/wui/_image-crop.scss +6 -6
- package/scss/wui/_inline-edit.scss +131 -0
- package/scss/wui/_interaction.scss +286 -0
- package/scss/wui/_kanban.scss +6 -6
- package/scss/wui/_lightbox.scss +169 -0
- package/scss/wui/_media.scss +8 -5
- package/scss/wui/_mention-input.scss +88 -0
- package/scss/wui/_menubar.scss +110 -0
- package/scss/wui/_navigation-menu.scss +172 -0
- package/scss/wui/_navigation.scss +109 -6
- package/scss/wui/_notification-center.scss +251 -0
- package/scss/wui/_onboarding-checklist.scss +199 -0
- package/scss/wui/_overlays.scss +7 -11
- package/scss/wui/_rating.scss +87 -0
- package/scss/wui/_record-pager.scss +27 -0
- package/scss/wui/_relative-time.scss +10 -0
- package/scss/wui/_resizable.scss +98 -0
- package/scss/wui/_rich-text.scss +2 -2
- package/scss/wui/_rolling-number.scss +60 -0
- package/scss/wui/_sections.scss +315 -0
- package/scss/wui/_shell-parts.scss +12 -3
- package/scss/wui/_shell.scss +6 -6
- package/scss/wui/_shortcuts.scss +143 -0
- package/scss/wui/_show-more.scss +30 -0
- package/scss/wui/_sortable.scss +2 -2
- package/scss/wui/_split-view.scss +321 -0
- package/scss/wui/_toolbar.scss +4 -4
- package/scss/wui/_tour.scss +2 -2
- package/scss/wui/_tree.scss +2 -2
- package/scss/wui/_truncate.scss +32 -0
- package/scss/wui/_typography.scss +14 -0
- package/scss/wui/_utilities.scss +8 -8
- package/scss/wui/_whats-new.scss +147 -0
- package/scss/wui/_workspace.scss +2 -2
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
// ── Code block ──
|
|
2
|
+
// AppCodeBlock / <app-code-block> (a <wui-code-block> element): source with syntax colours, a header
|
|
3
|
+
// with a Copy button, optional line numbers and wrapping. The element hides the plain
|
|
4
|
+
// `.wui-code-source` once it has drawn `.wui-code-chrome`; without script the source stays.
|
|
5
|
+
// Colours are semantic text tokens, so light and dark follow the theme.
|
|
6
|
+
//
|
|
7
|
+
// Part of the wui-components layer, see _wui-components.scss for load order.
|
|
8
|
+
|
|
9
|
+
.wui-code-block {
|
|
10
|
+
display: block;
|
|
11
|
+
min-width: 0;
|
|
12
|
+
border: 1px solid var(--color-border);
|
|
13
|
+
border-radius: var(--wui-radius);
|
|
14
|
+
background: var(--color-bg-subtle);
|
|
15
|
+
color: var(--color-text);
|
|
16
|
+
font-family: var(--bs-font-monospace);
|
|
17
|
+
font-size: 13px;
|
|
18
|
+
line-height: 1.6;
|
|
19
|
+
overflow: hidden;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.wui-code-source {
|
|
23
|
+
margin: 0;
|
|
24
|
+
padding: 12px 14px;
|
|
25
|
+
overflow-x: auto;
|
|
26
|
+
color: inherit;
|
|
27
|
+
font: inherit;
|
|
28
|
+
white-space: pre;
|
|
29
|
+
}
|
|
30
|
+
.wui-code-source code {
|
|
31
|
+
color: inherit;
|
|
32
|
+
font: inherit;
|
|
33
|
+
}
|
|
34
|
+
.wui-code-block[wrap] .wui-code-source {
|
|
35
|
+
overflow-wrap: anywhere;
|
|
36
|
+
white-space: pre-wrap;
|
|
37
|
+
}
|
|
38
|
+
.wui-code-block[data-wui-ready] > .wui-code-source {
|
|
39
|
+
display: none;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.wui-code-bar {
|
|
43
|
+
display: flex;
|
|
44
|
+
align-items: center;
|
|
45
|
+
justify-content: space-between;
|
|
46
|
+
gap: 8px;
|
|
47
|
+
padding: 2px 6px 2px 14px;
|
|
48
|
+
border-bottom: 1px solid var(--color-border);
|
|
49
|
+
background: var(--color-bg-muted);
|
|
50
|
+
}
|
|
51
|
+
.wui-code-title {
|
|
52
|
+
min-width: 0;
|
|
53
|
+
overflow: hidden;
|
|
54
|
+
color: var(--color-text-muted);
|
|
55
|
+
font-family: var(--font-sans);
|
|
56
|
+
font-size: 12px;
|
|
57
|
+
text-overflow: ellipsis;
|
|
58
|
+
white-space: nowrap;
|
|
59
|
+
}
|
|
60
|
+
.wui-code-copy {
|
|
61
|
+
flex: none;
|
|
62
|
+
display: inline-flex;
|
|
63
|
+
align-items: center;
|
|
64
|
+
gap: 6px;
|
|
65
|
+
}
|
|
66
|
+
.wui-code-copy-icon {
|
|
67
|
+
display: inline-flex;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.wui-code-view {
|
|
71
|
+
overflow-x: auto;
|
|
72
|
+
padding: 12px 0;
|
|
73
|
+
}
|
|
74
|
+
.wui-code-view:focus-visible {
|
|
75
|
+
outline: var(--wui-focus-ring-width) solid var(--color-focus-ring);
|
|
76
|
+
outline-offset: var(--wui-focus-ring-inset);
|
|
77
|
+
}
|
|
78
|
+
.wui-code-pre {
|
|
79
|
+
margin: 0;
|
|
80
|
+
color: inherit;
|
|
81
|
+
font: inherit;
|
|
82
|
+
white-space: pre;
|
|
83
|
+
counter-reset: wui-code-line;
|
|
84
|
+
}
|
|
85
|
+
.wui-code-pre code {
|
|
86
|
+
display: block;
|
|
87
|
+
color: inherit;
|
|
88
|
+
font: inherit;
|
|
89
|
+
}
|
|
90
|
+
.wui-code-block[wrap] .wui-code-pre {
|
|
91
|
+
overflow-wrap: anywhere;
|
|
92
|
+
white-space: pre-wrap;
|
|
93
|
+
}
|
|
94
|
+
.wui-code-line {
|
|
95
|
+
display: block;
|
|
96
|
+
min-height: 1.6em;
|
|
97
|
+
padding-inline: 14px;
|
|
98
|
+
}
|
|
99
|
+
.wui-code-block[line-numbers] .wui-code-line {
|
|
100
|
+
position: relative;
|
|
101
|
+
padding-inline-start: calc(30px + var(--wui-code-digits, 2) * 1ch);
|
|
102
|
+
counter-increment: wui-code-line;
|
|
103
|
+
}
|
|
104
|
+
.wui-code-block[line-numbers] .wui-code-line::before {
|
|
105
|
+
position: absolute;
|
|
106
|
+
inset-inline-start: 14px;
|
|
107
|
+
width: calc(var(--wui-code-digits, 2) * 1ch);
|
|
108
|
+
content: counter(wui-code-line);
|
|
109
|
+
color: var(--color-text-subtle);
|
|
110
|
+
font-variant-numeric: tabular-nums;
|
|
111
|
+
text-align: end;
|
|
112
|
+
user-select: none;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
.wui-code-t-comment {
|
|
116
|
+
color: var(--color-text-subtle);
|
|
117
|
+
font-style: italic;
|
|
118
|
+
}
|
|
119
|
+
.wui-code-t-string {
|
|
120
|
+
color: var(--color-success-text);
|
|
121
|
+
}
|
|
122
|
+
.wui-code-t-number,
|
|
123
|
+
.wui-code-t-literal,
|
|
124
|
+
.wui-code-t-variable {
|
|
125
|
+
color: var(--color-warning-text);
|
|
126
|
+
}
|
|
127
|
+
.wui-code-t-keyword,
|
|
128
|
+
.wui-code-t-tag {
|
|
129
|
+
color: var(--color-primary-ink);
|
|
130
|
+
}
|
|
131
|
+
.wui-code-t-function,
|
|
132
|
+
.wui-code-t-type,
|
|
133
|
+
.wui-code-t-attr {
|
|
134
|
+
color: var(--color-info-text);
|
|
135
|
+
}
|
|
136
|
+
.wui-code-t-punct {
|
|
137
|
+
color: var(--color-text-muted);
|
|
138
|
+
}
|
|
@@ -63,6 +63,79 @@ wui-command-palette {
|
|
|
63
63
|
color: var(--color-primary-ink);
|
|
64
64
|
}
|
|
65
65
|
|
|
66
|
+
// Nested pages: the Back button and the path to the open page. The element fills the trail and
|
|
67
|
+
// shows the bar only while a page is open.
|
|
68
|
+
.wui-cmd-crumbs {
|
|
69
|
+
display: flex;
|
|
70
|
+
flex: 0 0 auto;
|
|
71
|
+
align-items: center;
|
|
72
|
+
gap: 6px;
|
|
73
|
+
padding: 6px 12px;
|
|
74
|
+
border-bottom: 1px solid var(--color-border);
|
|
75
|
+
}
|
|
76
|
+
.wui-cmd-crumbs[hidden] {
|
|
77
|
+
display: none;
|
|
78
|
+
}
|
|
79
|
+
.wui-cmd-back {
|
|
80
|
+
display: inline-grid;
|
|
81
|
+
flex: 0 0 auto;
|
|
82
|
+
place-items: center;
|
|
83
|
+
width: 28px;
|
|
84
|
+
height: 28px;
|
|
85
|
+
padding: 0;
|
|
86
|
+
border: 0;
|
|
87
|
+
border-radius: var(--radius);
|
|
88
|
+
corner-shape: squircle;
|
|
89
|
+
background: transparent;
|
|
90
|
+
color: var(--color-text-muted);
|
|
91
|
+
cursor: pointer;
|
|
92
|
+
}
|
|
93
|
+
.wui-cmd-back:hover {
|
|
94
|
+
background: var(--color-bg-muted);
|
|
95
|
+
color: var(--color-text);
|
|
96
|
+
}
|
|
97
|
+
.wui-cmd-trail {
|
|
98
|
+
display: flex;
|
|
99
|
+
flex: 1 1 auto;
|
|
100
|
+
flex-wrap: wrap;
|
|
101
|
+
align-items: center;
|
|
102
|
+
min-width: 0;
|
|
103
|
+
margin: 0;
|
|
104
|
+
padding: 0;
|
|
105
|
+
color: var(--color-text-muted);
|
|
106
|
+
font-size: 13px;
|
|
107
|
+
list-style: none;
|
|
108
|
+
}
|
|
109
|
+
.wui-cmd-trail > li + li::before {
|
|
110
|
+
content: "/";
|
|
111
|
+
padding: 0 6px;
|
|
112
|
+
color: var(--color-text-subtle);
|
|
113
|
+
}
|
|
114
|
+
.wui-cmd-crumb {
|
|
115
|
+
padding: 2px 4px;
|
|
116
|
+
border: 0;
|
|
117
|
+
border-radius: var(--wui-radius-sm);
|
|
118
|
+
background: transparent;
|
|
119
|
+
color: inherit;
|
|
120
|
+
font: inherit;
|
|
121
|
+
}
|
|
122
|
+
button.wui-cmd-crumb {
|
|
123
|
+
cursor: pointer;
|
|
124
|
+
}
|
|
125
|
+
button.wui-cmd-crumb:hover {
|
|
126
|
+
color: var(--color-text);
|
|
127
|
+
text-decoration: underline;
|
|
128
|
+
}
|
|
129
|
+
span.wui-cmd-crumb[aria-current="page"] {
|
|
130
|
+
color: var(--color-text);
|
|
131
|
+
font-weight: 600;
|
|
132
|
+
}
|
|
133
|
+
.wui-cmd-back:focus-visible,
|
|
134
|
+
button.wui-cmd-crumb:focus-visible {
|
|
135
|
+
outline: var(--wui-focus-ring-width) solid var(--color-focus-ring);
|
|
136
|
+
outline-offset: 1px;
|
|
137
|
+
}
|
|
138
|
+
|
|
66
139
|
.wui-cmd-list {
|
|
67
140
|
flex: 1 1 auto;
|
|
68
141
|
min-height: 0;
|
|
@@ -74,10 +147,16 @@ wui-command-palette {
|
|
|
74
147
|
}
|
|
75
148
|
.wui-cmd-list[hidden],
|
|
76
149
|
.wui-cmd-group[hidden],
|
|
150
|
+
.wui-cmd-page[hidden],
|
|
77
151
|
.wui-cmd-item[hidden] {
|
|
78
152
|
display: none;
|
|
79
153
|
}
|
|
80
|
-
|
|
154
|
+
// The element fills this with the recently chosen items; with none it takes no room.
|
|
155
|
+
.wui-cmd-recents:empty {
|
|
156
|
+
display: none;
|
|
157
|
+
}
|
|
158
|
+
.wui-cmd-group + .wui-cmd-group,
|
|
159
|
+
.wui-cmd-recents:not(:empty) + .wui-cmd-group {
|
|
81
160
|
margin-top: 4px;
|
|
82
161
|
}
|
|
83
162
|
.wui-cmd-group-label {
|
|
@@ -150,6 +229,25 @@ wui-command-palette {
|
|
|
150
229
|
color: var(--color-text-muted);
|
|
151
230
|
font-size: 12px;
|
|
152
231
|
}
|
|
232
|
+
.wui-cmd-item-chevron {
|
|
233
|
+
display: inline-flex;
|
|
234
|
+
flex: 0 0 auto;
|
|
235
|
+
color: var(--color-text-muted);
|
|
236
|
+
}
|
|
237
|
+
.wui-cmd-item > .wui-kbd {
|
|
238
|
+
flex: 0 0 auto;
|
|
239
|
+
}
|
|
240
|
+
.wui-cmd-item[aria-selected="true"] > .wui-kbd {
|
|
241
|
+
border-color: var(--color-primary-ink);
|
|
242
|
+
background: var(--color-surface);
|
|
243
|
+
color: var(--color-primary-ink);
|
|
244
|
+
}
|
|
245
|
+
// A phone has no keyboard to press them on.
|
|
246
|
+
@media (hover: none) and (pointer: coarse) {
|
|
247
|
+
.wui-cmd-item > .wui-kbd {
|
|
248
|
+
display: none;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
153
251
|
// The query inside a label: bolder, never a highlighter block.
|
|
154
252
|
.wui-cmd-mark {
|
|
155
253
|
padding: 0;
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
// ── Comment thread ──
|
|
2
|
+
// AppCommentThread / <app-comment-thread> / <wui-comment-thread>: comments with an avatar, the
|
|
3
|
+
// author and time, the body with mentions, reactions and the Reply, Edit and Delete actions;
|
|
4
|
+
// replies indent under their comment. The element shows and hides the boxes and the delete
|
|
5
|
+
// question; [aria-busy] on the host while a change is saving.
|
|
6
|
+
//
|
|
7
|
+
// Part of the wui-components layer, see _wui-components.scss for load order.
|
|
8
|
+
|
|
9
|
+
.wui-comment-thread {
|
|
10
|
+
display: flex;
|
|
11
|
+
flex-direction: column;
|
|
12
|
+
gap: 16px;
|
|
13
|
+
min-width: 0;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.wui-comment-list {
|
|
17
|
+
display: flex;
|
|
18
|
+
flex-direction: column;
|
|
19
|
+
gap: 16px;
|
|
20
|
+
margin: 0;
|
|
21
|
+
padding: 0;
|
|
22
|
+
list-style: none;
|
|
23
|
+
}
|
|
24
|
+
.wui-comment-replies {
|
|
25
|
+
gap: 12px;
|
|
26
|
+
margin-top: 12px;
|
|
27
|
+
// Under the parent's avatar, so a reply reads as belonging to it.
|
|
28
|
+
margin-inline-start: 20px;
|
|
29
|
+
padding-inline-start: 22px;
|
|
30
|
+
border-inline-start: 2px solid var(--color-border);
|
|
31
|
+
}
|
|
32
|
+
.wui-comment-empty {
|
|
33
|
+
margin: 0;
|
|
34
|
+
color: var(--color-text-muted);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.wui-comment-row {
|
|
38
|
+
display: flex;
|
|
39
|
+
align-items: flex-start;
|
|
40
|
+
gap: 10px;
|
|
41
|
+
}
|
|
42
|
+
.wui-comment-avatar {
|
|
43
|
+
flex: none;
|
|
44
|
+
}
|
|
45
|
+
.wui-comment-main {
|
|
46
|
+
display: flex;
|
|
47
|
+
flex: 1 1 auto;
|
|
48
|
+
flex-direction: column;
|
|
49
|
+
gap: 6px;
|
|
50
|
+
min-width: 0;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.wui-comment-head {
|
|
54
|
+
display: flex;
|
|
55
|
+
flex-wrap: wrap;
|
|
56
|
+
align-items: baseline;
|
|
57
|
+
gap: 2px 8px;
|
|
58
|
+
}
|
|
59
|
+
.wui-comment-author {
|
|
60
|
+
font-weight: 600;
|
|
61
|
+
color: var(--color-text);
|
|
62
|
+
}
|
|
63
|
+
.wui-comment-time,
|
|
64
|
+
.wui-comment-edited {
|
|
65
|
+
font-size: 12px;
|
|
66
|
+
color: var(--color-text-muted);
|
|
67
|
+
font-variant-numeric: tabular-nums;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.wui-comment-text {
|
|
71
|
+
color: var(--color-text);
|
|
72
|
+
overflow-wrap: anywhere;
|
|
73
|
+
// The line breaks a person typed still read as lines.
|
|
74
|
+
white-space: pre-wrap;
|
|
75
|
+
}
|
|
76
|
+
.wui-comment-text[hidden] {
|
|
77
|
+
display: none;
|
|
78
|
+
}
|
|
79
|
+
.wui-comment-text-deleted {
|
|
80
|
+
font-style: italic;
|
|
81
|
+
color: var(--color-text-muted);
|
|
82
|
+
}
|
|
83
|
+
.wui-mention {
|
|
84
|
+
padding: 0 2px;
|
|
85
|
+
border-radius: var(--wui-radius-sm);
|
|
86
|
+
background: var(--color-primary-soft);
|
|
87
|
+
color: var(--color-primary-ink);
|
|
88
|
+
font-weight: 500;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.wui-comment-reactions {
|
|
92
|
+
display: flex;
|
|
93
|
+
flex-wrap: wrap;
|
|
94
|
+
align-items: center;
|
|
95
|
+
gap: 6px;
|
|
96
|
+
}
|
|
97
|
+
.wui-reaction,
|
|
98
|
+
.wui-reaction-add {
|
|
99
|
+
display: inline-flex;
|
|
100
|
+
align-items: center;
|
|
101
|
+
gap: 4px;
|
|
102
|
+
min-height: 28px;
|
|
103
|
+
padding: 2px 8px;
|
|
104
|
+
border: 1px solid var(--color-border);
|
|
105
|
+
border-radius: 999px;
|
|
106
|
+
background: var(--color-surface);
|
|
107
|
+
color: var(--color-text);
|
|
108
|
+
font: inherit;
|
|
109
|
+
font-size: 13px;
|
|
110
|
+
line-height: 1;
|
|
111
|
+
transition:
|
|
112
|
+
background-color 160ms var(--wui-ease-ui),
|
|
113
|
+
border-color 160ms var(--wui-ease-ui);
|
|
114
|
+
}
|
|
115
|
+
button.wui-reaction,
|
|
116
|
+
.wui-reaction-add {
|
|
117
|
+
cursor: pointer;
|
|
118
|
+
}
|
|
119
|
+
button.wui-reaction:hover,
|
|
120
|
+
.wui-reaction-add:hover {
|
|
121
|
+
background: var(--color-bg-muted);
|
|
122
|
+
}
|
|
123
|
+
.wui-reaction-mine {
|
|
124
|
+
border-color: var(--color-primary);
|
|
125
|
+
background: var(--color-primary-soft);
|
|
126
|
+
color: var(--color-primary-ink);
|
|
127
|
+
}
|
|
128
|
+
.wui-reaction-count {
|
|
129
|
+
font-variant-numeric: tabular-nums;
|
|
130
|
+
}
|
|
131
|
+
.wui-reaction-add {
|
|
132
|
+
color: var(--color-text-muted);
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
.wui-reaction-picker {
|
|
136
|
+
position: fixed;
|
|
137
|
+
z-index: var(--wui-z-menu);
|
|
138
|
+
display: flex;
|
|
139
|
+
gap: 2px;
|
|
140
|
+
padding: 4px;
|
|
141
|
+
background: var(--color-surface);
|
|
142
|
+
border: 1px solid var(--color-border);
|
|
143
|
+
border-radius: var(--radius-lg);
|
|
144
|
+
corner-shape: squircle;
|
|
145
|
+
box-shadow: var(--shadow-overlay);
|
|
146
|
+
}
|
|
147
|
+
.wui-reaction-picker[hidden] {
|
|
148
|
+
display: none;
|
|
149
|
+
}
|
|
150
|
+
.wui-reaction-choice {
|
|
151
|
+
display: inline-flex;
|
|
152
|
+
align-items: center;
|
|
153
|
+
justify-content: center;
|
|
154
|
+
width: 36px;
|
|
155
|
+
height: 36px;
|
|
156
|
+
border: 0;
|
|
157
|
+
border-radius: var(--radius);
|
|
158
|
+
background: transparent;
|
|
159
|
+
font-size: 18px;
|
|
160
|
+
cursor: pointer;
|
|
161
|
+
}
|
|
162
|
+
.wui-reaction-choice:hover {
|
|
163
|
+
background: var(--color-bg-muted);
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
.wui-comment-actions {
|
|
167
|
+
display: flex;
|
|
168
|
+
flex-wrap: wrap;
|
|
169
|
+
gap: 4px 12px;
|
|
170
|
+
}
|
|
171
|
+
.wui-comment-actions[hidden] {
|
|
172
|
+
display: none;
|
|
173
|
+
}
|
|
174
|
+
.wui-comment-action {
|
|
175
|
+
padding: 2px 0;
|
|
176
|
+
border: 0;
|
|
177
|
+
background: transparent;
|
|
178
|
+
color: var(--color-text-muted);
|
|
179
|
+
font: inherit;
|
|
180
|
+
font-size: 13px;
|
|
181
|
+
font-weight: 500;
|
|
182
|
+
cursor: pointer;
|
|
183
|
+
}
|
|
184
|
+
.wui-comment-action:hover {
|
|
185
|
+
color: var(--color-primary-ink);
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
.wui-comment-confirm {
|
|
189
|
+
display: flex;
|
|
190
|
+
flex-wrap: wrap;
|
|
191
|
+
align-items: center;
|
|
192
|
+
gap: 8px;
|
|
193
|
+
}
|
|
194
|
+
.wui-comment-confirm[hidden] {
|
|
195
|
+
display: none;
|
|
196
|
+
}
|
|
197
|
+
.wui-comment-confirm-text {
|
|
198
|
+
font-size: 13px;
|
|
199
|
+
color: var(--color-text);
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
.wui-comment-editor,
|
|
203
|
+
.wui-comment-reply,
|
|
204
|
+
.wui-comment-composer {
|
|
205
|
+
display: flex;
|
|
206
|
+
flex-direction: column;
|
|
207
|
+
gap: 8px;
|
|
208
|
+
}
|
|
209
|
+
.wui-comment-reply {
|
|
210
|
+
margin-top: 12px;
|
|
211
|
+
margin-inline-start: 42px;
|
|
212
|
+
}
|
|
213
|
+
.wui-comment-editor[hidden],
|
|
214
|
+
.wui-comment-reply[hidden] {
|
|
215
|
+
display: none;
|
|
216
|
+
}
|
|
217
|
+
.wui-comment-form-actions {
|
|
218
|
+
display: flex;
|
|
219
|
+
flex-wrap: wrap;
|
|
220
|
+
gap: 8px;
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
.wui-comment-error {
|
|
224
|
+
font-size: 12px;
|
|
225
|
+
// The AA text shade, as .field-error: the fill red is under 4.5:1 at this size.
|
|
226
|
+
color: var(--color-danger-text);
|
|
227
|
+
}
|
|
228
|
+
.wui-comment-error[hidden] {
|
|
229
|
+
display: none;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
.wui-comment-action:focus-visible,
|
|
233
|
+
.wui-reaction:focus-visible,
|
|
234
|
+
.wui-reaction-add:focus-visible,
|
|
235
|
+
.wui-reaction-choice:focus-visible {
|
|
236
|
+
outline: var(--wui-focus-ring-width) solid var(--color-focus-ring);
|
|
237
|
+
outline-offset: var(--wui-focus-ring-offset);
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
@media (pointer: coarse) {
|
|
241
|
+
.wui-reaction,
|
|
242
|
+
.wui-reaction-add,
|
|
243
|
+
.wui-reaction-choice {
|
|
244
|
+
min-height: 44px;
|
|
245
|
+
min-width: 44px;
|
|
246
|
+
justify-content: center;
|
|
247
|
+
}
|
|
248
|
+
.wui-comment-action {
|
|
249
|
+
min-height: 44px;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
@media (max-width: 575.98px) {
|
|
254
|
+
.wui-comment-replies {
|
|
255
|
+
margin-inline-start: 8px;
|
|
256
|
+
padding-inline-start: 12px;
|
|
257
|
+
}
|
|
258
|
+
.wui-comment-reply {
|
|
259
|
+
margin-inline-start: 0;
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
@media (prefers-reduced-motion: reduce) {
|
|
264
|
+
.wui-reaction,
|
|
265
|
+
.wui-reaction-add {
|
|
266
|
+
transition: none;
|
|
267
|
+
}
|
|
268
|
+
}
|
|
@@ -35,8 +35,8 @@ wui-context-menu {
|
|
|
35
35
|
|
|
36
36
|
// A row the user can reach with the keyboard shows where it is.
|
|
37
37
|
.dropdown-item:focus-visible {
|
|
38
|
-
outline:
|
|
39
|
-
outline-offset: -
|
|
38
|
+
outline: var(--wui-focus-ring-width) solid var(--color-focus-ring);
|
|
39
|
+
outline-offset: var(--wui-focus-ring-inset);
|
|
40
40
|
}
|
|
41
41
|
// Listed but unchoosable: quiet, and no hover tint.
|
|
42
42
|
.dropdown-item[aria-disabled="true"] {
|
package/scss/wui/_controls.scss
CHANGED
|
@@ -145,14 +145,15 @@
|
|
|
145
145
|
border-color: var(--color-primary);
|
|
146
146
|
box-shadow: 0 0 0 2px var(--color-primary-soft);
|
|
147
147
|
}
|
|
148
|
-
// Keyboard focus
|
|
149
|
-
//
|
|
148
|
+
// Keyboard focus draws the shared ring, never the soft hover glow (under 3:1 and identical to
|
|
149
|
+
// hover). :focus-visible matches keyboard/AT focus only, never a plain mouse click.
|
|
150
150
|
.form-check-input:focus-visible,
|
|
151
151
|
.wui-check:focus-visible,
|
|
152
152
|
.wui-radio:focus-visible {
|
|
153
|
-
outline:
|
|
153
|
+
outline: var(--wui-focus-ring-width) solid var(--color-focus-ring);
|
|
154
|
+
outline-offset: var(--wui-focus-ring-offset);
|
|
154
155
|
border-color: var(--color-primary);
|
|
155
|
-
box-shadow:
|
|
156
|
+
box-shadow: none;
|
|
156
157
|
}
|
|
157
158
|
// A plain MOUSE click must leave NO lingering focus/active glow, ring, border tint or
|
|
158
159
|
// darkening — Bootstrap paints all of them on :focus/:active. Neutralise them for pointer
|
|
@@ -762,8 +763,8 @@ $wui-field-error-glyph: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/
|
|
|
762
763
|
background: transparent;
|
|
763
764
|
}
|
|
764
765
|
.pw-toggle:focus-visible {
|
|
765
|
-
outline:
|
|
766
|
-
outline-offset:
|
|
766
|
+
outline: var(--wui-focus-ring-width) solid var(--color-focus-ring);
|
|
767
|
+
outline-offset: var(--wui-focus-ring-offset);
|
|
767
768
|
}
|
|
768
769
|
.pw-toggle .pw-eye-off {
|
|
769
770
|
display: none;
|
|
@@ -805,8 +806,8 @@ $wui-field-error-glyph: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/
|
|
|
805
806
|
background: var(--color-bg-muted);
|
|
806
807
|
}
|
|
807
808
|
.input-clear:focus-visible {
|
|
808
|
-
outline:
|
|
809
|
-
outline-offset:
|
|
809
|
+
outline: var(--wui-focus-ring-width) solid var(--color-focus-ring);
|
|
810
|
+
outline-offset: var(--wui-focus-ring-offset);
|
|
810
811
|
}
|
|
811
812
|
@keyframes wui-clear-in {
|
|
812
813
|
from { opacity: 0; transform: translateY(-50%) scale(0.72); }
|
|
@@ -1256,7 +1257,8 @@ wui-select[compact] {
|
|
|
1256
1257
|
background: var(--color-bg-muted);
|
|
1257
1258
|
}
|
|
1258
1259
|
.num-btn:focus-visible {
|
|
1259
|
-
outline:
|
|
1260
|
+
outline: var(--wui-focus-ring-width) solid var(--color-focus-ring);
|
|
1261
|
+
outline-offset: var(--wui-focus-ring-inset);
|
|
1260
1262
|
color: var(--color-primary-ink);
|
|
1261
1263
|
}
|
|
1262
1264
|
.num-btn:active:not(:disabled) {
|
|
@@ -1419,8 +1421,8 @@ wui-select[compact] {
|
|
|
1419
1421
|
border-color: color-mix(in srgb, var(--color-primary) 30%, transparent);
|
|
1420
1422
|
}
|
|
1421
1423
|
.choice-chip:has(input:focus-visible) {
|
|
1422
|
-
outline:
|
|
1423
|
-
outline-offset:
|
|
1424
|
+
outline: var(--wui-focus-ring-width) solid var(--color-focus-ring);
|
|
1425
|
+
outline-offset: var(--wui-focus-ring-offset);
|
|
1424
1426
|
}
|
|
1425
1427
|
.choice-chip input {
|
|
1426
1428
|
position: absolute;
|
|
@@ -1687,7 +1689,7 @@ wui-otp {
|
|
|
1687
1689
|
box-shadow: 0 3px 14px color-mix(in srgb, var(--color-primary) 28%, transparent);
|
|
1688
1690
|
}
|
|
1689
1691
|
.slider-thumb:focus-visible {
|
|
1690
|
-
outline:
|
|
1692
|
+
outline: var(--wui-focus-ring-width) solid var(--color-focus-ring);
|
|
1691
1693
|
outline-offset: 4px;
|
|
1692
1694
|
}
|
|
1693
1695
|
.slider-thumb:disabled,
|