@rolemodel/optics 0.3.1 → 0.4.1
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/.babelrc.json +14 -0
- package/.github/pull_request_template.md +1 -0
- package/.github/workflows/publish-storybook.yml +1 -1
- package/.prettierignore +2 -0
- package/README.md +10 -14
- package/dist/css/optics.css +961 -446
- package/dist/css/optics.css.map +1 -1
- package/dist/scss/addons/tom-select.scss +1 -4
- package/dist/scss/components/alert.scss +56 -38
- package/dist/scss/components/avatar.scss +96 -0
- package/dist/scss/components/badge.scss +8 -3
- package/dist/scss/components/button.scss +168 -97
- package/dist/scss/components/button_group.scss +23 -5
- package/dist/scss/components/confirm-dialog.scss +88 -0
- package/dist/scss/components/divider.scss +59 -0
- package/dist/scss/components/form.scss +180 -49
- package/dist/scss/components/index.scss +6 -1
- package/dist/scss/components/modal.scss +156 -0
- package/dist/scss/components/pagination.scss +28 -0
- package/dist/scss/components/sidebar.scss +83 -159
- package/dist/scss/components/table.scss +22 -17
- package/dist/scss/components/tooltip.scss +136 -0
- package/dist/scss/core/tokens/base_tokens.scss +10 -5
- package/dist/scss/recipes/16six-sidebar.scss +32 -61
- package/dist/scss/recipes/domains-sidebar.scss +24 -44
- package/dist/tokens/tokens.json +9 -8
- package/package.json +30 -24
- package/.storybook/ModeSwitcher.jsx +0 -98
- package/.storybook/documentation.scss +0 -93
- package/.storybook/main.js +0 -11
- package/.storybook/manager.js +0 -22
- package/.storybook/preview.js +0 -12
- package/.storybook/rolemodelTheme.js +0 -10
- package/dist/scss/addons/rails-modal-and-panel/index.scss +0 -2
- package/dist/scss/addons/rails-modal-and-panel/modal.scss +0 -111
- package/dist/scss/components/flash.scss +0 -58
- /package/dist/scss/addons/{rails-modal-and-panel/panel.scss → panel.scss} +0 -0
|
@@ -1,36 +1,20 @@
|
|
|
1
1
|
@mixin sidebar-rail-global {
|
|
2
2
|
// Private API
|
|
3
3
|
--__op-sidebar-width: var(--_op-sidebar-rail-width);
|
|
4
|
+
--__op-sidebar-brand-width: var(--_op-sidebar-rail-brand-width);
|
|
4
5
|
|
|
5
6
|
// Elements
|
|
6
7
|
.sidebar__content {
|
|
7
|
-
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
.sidebar__section-title,
|
|
11
|
-
.sidebar__section-divider {
|
|
12
|
-
display: none;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
.sidebar__item {
|
|
16
|
-
flex-direction: column;
|
|
17
|
-
gap: var(--op-space-2x-small);
|
|
18
|
-
|
|
19
|
-
.sidebar__item-icon {
|
|
20
|
-
padding: var(--op-space-2x-small) var(--op-space-medium);
|
|
21
|
-
transition: var(--_op-sidebar-transition);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
&:hover .sidebar__item-icon {
|
|
25
|
-
background-color: var(--_op-sidebar-icon-background-hover-color);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
&.active .sidebar__item-icon {
|
|
29
|
-
background-color: var(--_op-sidebar-icon-background-active-color);
|
|
30
|
-
}
|
|
8
|
+
align-items: center;
|
|
31
9
|
|
|
32
|
-
|
|
33
|
-
|
|
10
|
+
> * {
|
|
11
|
+
// Can't use extend but need to get icon behavior
|
|
12
|
+
width: var(--__op-btn-height);
|
|
13
|
+
min-width: var(--__op-btn-height);
|
|
14
|
+
justify-content: center;
|
|
15
|
+
padding: 0;
|
|
16
|
+
font-size: 0;
|
|
17
|
+
gap: 0;
|
|
34
18
|
}
|
|
35
19
|
}
|
|
36
20
|
}
|
|
@@ -38,51 +22,21 @@
|
|
|
38
22
|
@mixin sidebar-drawer-global {
|
|
39
23
|
// Private API
|
|
40
24
|
--__op-sidebar-width: var(--_op-sidebar-drawer-width);
|
|
25
|
+
--__op-sidebar-brand-width: var(--_op-sidebar-drawer-brand-width);
|
|
26
|
+
}
|
|
41
27
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
.sidebar__section-title {
|
|
47
|
-
overflow: hidden;
|
|
48
|
-
height: var(--op-input-height-large);
|
|
49
|
-
padding: var(--op-space-small) var(--op-space-medium);
|
|
50
|
-
color: var(--_op-sidebar-text-color);
|
|
51
|
-
font-size: var(--op-font-small);
|
|
52
|
-
font-weight: var(--op-font-weight-bold);
|
|
53
|
-
text-overflow: ellipsis;
|
|
54
|
-
white-space: nowrap;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
.sidebar__section-divider {
|
|
58
|
-
border-bottom: var(--op-border-width) solid var(--_op-sidebar-text-color);
|
|
59
|
-
margin: 0 var(--_op-sidebar-spacing);
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
.sidebar__item {
|
|
63
|
-
height: var(--op-input-height-large);
|
|
64
|
-
flex-direction: row;
|
|
65
|
-
padding: var(--op-space-x-small) var(--op-space-medium);
|
|
66
|
-
border-radius: var(--op-radius-pill);
|
|
67
|
-
gap: var(--_op-sidebar-link-spacing);
|
|
68
|
-
|
|
69
|
-
&:hover,
|
|
70
|
-
&.active {
|
|
71
|
-
transition: var(--_op-sidebar-transition);
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
&:hover {
|
|
75
|
-
background-color: var(--_op-sidebar-icon-background-hover-color);
|
|
76
|
-
color: var(--_op-sidebar-icon-text-hover-color);
|
|
77
|
-
|
|
78
|
-
.sidebar__item-icon {
|
|
79
|
-
color: var(--_op-sidebar-icon-text-hover-color);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
28
|
+
@mixin sidebar-compact-global {
|
|
29
|
+
// Private API
|
|
30
|
+
--__op-sidebar-width: var(--_op-sidebar-compact-width);
|
|
31
|
+
--__op-sidebar-brand-width: var(--_op-sidebar-compact-brand-width);
|
|
82
32
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
33
|
+
// Elements
|
|
34
|
+
.sidebar__content {
|
|
35
|
+
> * {
|
|
36
|
+
// Can't use extend but need to get icon-with-label behavior
|
|
37
|
+
flex-direction: column;
|
|
38
|
+
padding: var(--op-space-small);
|
|
39
|
+
gap: var(--op-space-3x-small);
|
|
86
40
|
}
|
|
87
41
|
}
|
|
88
42
|
}
|
|
@@ -90,51 +44,69 @@
|
|
|
90
44
|
%sidebar-global {
|
|
91
45
|
// Public API
|
|
92
46
|
// Normal
|
|
93
|
-
--_op-sidebar-background-color: var(--op-color-neutral-plus-
|
|
94
|
-
--_op-sidebar-text-color: var(--op-color-neutral-on-plus-
|
|
95
|
-
|
|
96
|
-
// Active
|
|
97
|
-
--_op-sidebar-icon-background-active-color: var(--op-color-neutral-plus-three);
|
|
98
|
-
--_op-sidebar-icon-text-active-color: var(--op-color-neutral-on-plus-three);
|
|
99
|
-
|
|
100
|
-
// Hover
|
|
101
|
-
--_op-sidebar-icon-background-hover-color: var(--op-color-neutral-plus-four);
|
|
102
|
-
--_op-sidebar-icon-text-hover-color: var(--op-color-neutral-on-plus-four);
|
|
47
|
+
--_op-sidebar-background-color: var(--op-color-neutral-plus-eight);
|
|
48
|
+
--_op-sidebar-text-color: var(--op-color-neutral-on-plus-eight);
|
|
49
|
+
--_op-sidebar-border-color: var(--op-color-neutral-plus-four);
|
|
103
50
|
|
|
104
51
|
// Width
|
|
105
52
|
--_op-sidebar-rail-width: 8.8rem;
|
|
106
|
-
--_op-sidebar-
|
|
53
|
+
--_op-sidebar-compact-width: 16.9rem;
|
|
54
|
+
--_op-sidebar-drawer-width: 21.6rem;
|
|
55
|
+
--_op-sidebar-rail-brand-width: 7.728rem;
|
|
56
|
+
--_op-sidebar-compact-brand-width: 9.8rem;
|
|
57
|
+
--_op-sidebar-drawer-brand-width: 9.8rem;
|
|
107
58
|
|
|
108
59
|
// Spacing
|
|
109
|
-
--_op-sidebar-spacing: var(--op-space-
|
|
110
|
-
--_op-sidebar-
|
|
60
|
+
--_op-sidebar-spacing: calc(var(--op-space-2x-large) + var(--op-space-2x-small));
|
|
61
|
+
--_op-sidebar-brand-spacing: var(--op-space-medium);
|
|
62
|
+
--_op-sidebar-content-spacing: var(--op-space-x-small);
|
|
63
|
+
--_op-sidebar-content-item-spacing: var(--op-space-2x-small);
|
|
111
64
|
|
|
112
65
|
// Animation
|
|
113
66
|
--_op-sidebar-transition: var(--op-transition-sidebar);
|
|
114
67
|
|
|
115
68
|
// Private API
|
|
116
69
|
--__op-sidebar-width: var(--_op-sidebar-drawer-width);
|
|
70
|
+
--__op-sidebar-brand-width: var(--_op-sidebar-drawer-brand-width);
|
|
117
71
|
|
|
118
72
|
display: flex;
|
|
119
73
|
width: var(--__op-sidebar-width);
|
|
74
|
+
min-width: var(--__op-sidebar-width);
|
|
120
75
|
flex-direction: column;
|
|
121
|
-
padding: var(--_op-sidebar-spacing) 0;
|
|
122
76
|
background-color: var(--_op-sidebar-background-color);
|
|
77
|
+
box-shadow: var(--op-border-right) var(--_op-sidebar-border-color);
|
|
123
78
|
color: var(--_op-sidebar-text-color);
|
|
124
|
-
gap: var(--_op-sidebar-spacing);
|
|
125
79
|
overflow-y: auto;
|
|
126
80
|
transition: var(--_op-sidebar-transition);
|
|
127
81
|
|
|
128
82
|
// Elements
|
|
129
83
|
.sidebar__brand {
|
|
130
|
-
|
|
131
|
-
padding:
|
|
84
|
+
height: var(--__op-sidebar-brand-width);
|
|
85
|
+
padding: var(--_op-sidebar-brand-spacing);
|
|
86
|
+
margin: 0 auto;
|
|
87
|
+
|
|
88
|
+
img {
|
|
89
|
+
height: 100%;
|
|
90
|
+
}
|
|
132
91
|
}
|
|
133
92
|
|
|
134
93
|
.sidebar__content {
|
|
135
94
|
display: flex;
|
|
136
95
|
flex-direction: column;
|
|
137
96
|
flex-grow: 1;
|
|
97
|
+
padding: 0 var(--_op-sidebar-content-spacing);
|
|
98
|
+
gap: var(--_op-sidebar-content-item-spacing);
|
|
99
|
+
|
|
100
|
+
> * {
|
|
101
|
+
justify-content: flex-start;
|
|
102
|
+
|
|
103
|
+
.material-symbols-outlined {
|
|
104
|
+
/* stylelint-disable scss/at-extend-no-missing-placeholder */
|
|
105
|
+
@extend .icon--large;
|
|
106
|
+
@extend .icon--weight-bold;
|
|
107
|
+
/* stylelint-enable scss/at-extend-no-missing-placeholder */
|
|
108
|
+
}
|
|
109
|
+
}
|
|
138
110
|
|
|
139
111
|
&.sidebar__content--start {
|
|
140
112
|
justify-content: start;
|
|
@@ -149,61 +121,34 @@
|
|
|
149
121
|
}
|
|
150
122
|
}
|
|
151
123
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
cursor: pointer;
|
|
157
|
-
text-align: center;
|
|
158
|
-
text-decoration: none;
|
|
159
|
-
|
|
160
|
-
&:visited {
|
|
161
|
-
color: var(--_op-sidebar-text-color);
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
&:hover,
|
|
165
|
-
&.active {
|
|
166
|
-
.sidebar__item-icon {
|
|
167
|
-
--op-mso-weight: var(--op-font-weight-bold);
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
&:hover .sidebar__item-icon {
|
|
172
|
-
color: var(--_op-sidebar-text-color);
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
.sidebar__item-icon {
|
|
176
|
-
/* stylelint-disable scss/at-extend-no-missing-placeholder */
|
|
177
|
-
@extend .icon--x-large;
|
|
178
|
-
/* stylelint-enable scss/at-extend-no-missing-placeholder */
|
|
124
|
+
// Modifiers
|
|
125
|
+
&.sidebar--padded {
|
|
126
|
+
padding: var(--_op-sidebar-spacing) 0;
|
|
127
|
+
}
|
|
179
128
|
|
|
180
|
-
|
|
129
|
+
// Drawer Modifier
|
|
130
|
+
&.sidebar--drawer:not(.sidebar--responsive) {
|
|
131
|
+
@include sidebar-drawer-global;
|
|
132
|
+
}
|
|
181
133
|
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
border-radius: var(--op-radius-pill);
|
|
134
|
+
&.sidebar--drawer.sidebar--responsive {
|
|
135
|
+
@media (width > $breakpoint-medium) {
|
|
136
|
+
@include sidebar-drawer-global;
|
|
186
137
|
}
|
|
187
138
|
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
max-width: 90%;
|
|
191
|
-
font-weight: var(--op-font-weight-medium);
|
|
192
|
-
letter-spacing: var(--op-letter-spacing-navigation);
|
|
193
|
-
line-height: var(--op-line-height-dense);
|
|
194
|
-
text-overflow: ellipsis;
|
|
195
|
-
white-space: nowrap;
|
|
139
|
+
@media (width <= $breakpoint-medium) {
|
|
140
|
+
@include sidebar-rail-global;
|
|
196
141
|
}
|
|
197
142
|
}
|
|
198
143
|
|
|
199
|
-
//
|
|
200
|
-
&.sidebar--
|
|
201
|
-
@include sidebar-
|
|
144
|
+
// Compact Modifier
|
|
145
|
+
&.sidebar--compact:not(.sidebar--responsive) {
|
|
146
|
+
@include sidebar-compact-global;
|
|
202
147
|
}
|
|
203
148
|
|
|
204
|
-
&.sidebar--
|
|
149
|
+
&.sidebar--compact.sidebar--responsive {
|
|
205
150
|
@media (width > $breakpoint-medium) {
|
|
206
|
-
@include sidebar-
|
|
151
|
+
@include sidebar-compact-global;
|
|
207
152
|
}
|
|
208
153
|
|
|
209
154
|
@media (width <= $breakpoint-medium) {
|
|
@@ -214,6 +159,10 @@
|
|
|
214
159
|
&.sidebar--rail {
|
|
215
160
|
@include sidebar-rail-global;
|
|
216
161
|
}
|
|
162
|
+
|
|
163
|
+
&.sidebar--compact {
|
|
164
|
+
@include sidebar-compact-global;
|
|
165
|
+
}
|
|
217
166
|
}
|
|
218
167
|
|
|
219
168
|
.sidebar {
|
|
@@ -224,32 +173,7 @@
|
|
|
224
173
|
.sidebar-primary {
|
|
225
174
|
@extend %sidebar-global;
|
|
226
175
|
|
|
227
|
-
|
|
228
|
-
--_op-sidebar-
|
|
229
|
-
--_op-sidebar-
|
|
230
|
-
|
|
231
|
-
// Active
|
|
232
|
-
--_op-sidebar-icon-background-active-color: var(--op-color-primary-plus-three);
|
|
233
|
-
--_op-sidebar-icon-text-active-color: var(--op-color-primary-on-plus-three);
|
|
234
|
-
|
|
235
|
-
// Hover
|
|
236
|
-
--_op-sidebar-icon-background-hover-color: var(--op-color-primary-plus-four);
|
|
237
|
-
--_op-sidebar-icon-text-hover-color: var(--op-color-primary-on-plus-four);
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
// Subtle Primary
|
|
241
|
-
.sidebar-subtle-primary {
|
|
242
|
-
@extend %sidebar-global;
|
|
243
|
-
|
|
244
|
-
// Normal
|
|
245
|
-
--_op-sidebar-background-color: var(--op-color-primary-plus-max);
|
|
246
|
-
--_op-sidebar-text-color: var(--op-color-primary-on-plus-max);
|
|
247
|
-
|
|
248
|
-
// Active
|
|
249
|
-
--_op-sidebar-icon-background-active-color: var(--op-color-primary-plus-three);
|
|
250
|
-
--_op-sidebar-icon-text-active-color: var(--op-color-primary-on-plus-three);
|
|
251
|
-
|
|
252
|
-
// Hover
|
|
253
|
-
--_op-sidebar-icon-background-hover-color: var(--op-color-primary-plus-four);
|
|
254
|
-
--_op-sidebar-icon-text-hover-color: var(--op-color-primary-on-plus-four);
|
|
176
|
+
--_op-sidebar-background-color: var(--op-color-primary-plus-six);
|
|
177
|
+
--_op-sidebar-text-color: var(--op-color-primary-on-plus-six);
|
|
178
|
+
--_op-sidebar-border-color: var(--op-color-primary-plus-four);
|
|
255
179
|
}
|
|
@@ -1,15 +1,13 @@
|
|
|
1
|
-
// TODO: When we get a pagination component, add it to the table styles and docs for within a table footer
|
|
2
|
-
|
|
3
1
|
%table-global {
|
|
4
2
|
// Public API
|
|
5
|
-
// Cells (for
|
|
6
|
-
--_op-table-cell-
|
|
7
|
-
--_op-table-cell-
|
|
8
|
-
--_op-table-cell-
|
|
3
|
+
// Cells (for height, the appropriate variable is used when using the density modifiers)
|
|
4
|
+
--_op-table-cell-height-default: calc(var(--op-space-scale-unit) * 4.4);
|
|
5
|
+
--_op-table-cell-height-comfortable: calc(var(--op-space-scale-unit) * 6.4);
|
|
6
|
+
--_op-table-cell-height-compact: calc(var(--op-space-scale-unit) * 3.4);
|
|
9
7
|
|
|
10
8
|
// Private API
|
|
11
9
|
// These allow for overriding specific padding versions easier.
|
|
12
|
-
--__op-table-cell-
|
|
10
|
+
--__op-table-cell-height: var(--_op-table-cell-height-default);
|
|
13
11
|
|
|
14
12
|
width: 100%;
|
|
15
13
|
border-radius: var(--op-radius-medium);
|
|
@@ -19,25 +17,32 @@
|
|
|
19
17
|
table-layout: auto;
|
|
20
18
|
|
|
21
19
|
thead {
|
|
22
|
-
background-color: var(--op-color-neutral-plus-
|
|
23
|
-
|
|
20
|
+
background-color: var(--op-color-neutral-plus-eight);
|
|
21
|
+
box-shadow: inset var(--op-border-top) var(--op-border-color);
|
|
22
|
+
color: var(--op-color-neutral-on-plus-eight);
|
|
23
|
+
|
|
24
|
+
// This Currently does not work in Firefox since it does not support :has yet, but fails gracefully.
|
|
25
|
+
&:has(th input[type='checkbox']:checked) {
|
|
26
|
+
background-color: var(--op-color-primary-plus-seven);
|
|
27
|
+
color: var(--op-color-primary-on-plus-seven);
|
|
28
|
+
}
|
|
24
29
|
}
|
|
25
30
|
|
|
26
31
|
th {
|
|
27
|
-
font-weight: var(--op-font-weight-
|
|
32
|
+
font-weight: var(--op-font-weight-semi-bold);
|
|
28
33
|
text-align: left;
|
|
29
|
-
text-transform: uppercase;
|
|
30
34
|
}
|
|
31
35
|
|
|
32
36
|
tbody,
|
|
33
37
|
tfoot {
|
|
34
|
-
background-color: var(--op-color-
|
|
35
|
-
color: var(--op-color-on-
|
|
38
|
+
background-color: var(--op-color-neutral-plus-max);
|
|
39
|
+
color: var(--op-color-neutral-on-plus-max);
|
|
36
40
|
}
|
|
37
41
|
|
|
38
42
|
th,
|
|
39
43
|
td {
|
|
40
|
-
|
|
44
|
+
height: var(--__op-table-cell-height);
|
|
45
|
+
padding: var(--op-space-2x-small) var(--op-space-small);
|
|
41
46
|
font-size: var(--op-font-small);
|
|
42
47
|
}
|
|
43
48
|
|
|
@@ -60,15 +65,15 @@
|
|
|
60
65
|
|
|
61
66
|
// Table Density Modifiers
|
|
62
67
|
&.table--default-density {
|
|
63
|
-
--__op-table-cell-
|
|
68
|
+
--__op-table-cell-height: var(--_op-table-cell-height-default);
|
|
64
69
|
}
|
|
65
70
|
|
|
66
71
|
&.table--comfortable-density {
|
|
67
|
-
--__op-table-cell-
|
|
72
|
+
--__op-table-cell-height: var(--_op-table-cell-height-comfortable);
|
|
68
73
|
}
|
|
69
74
|
|
|
70
75
|
&.table--compact-density {
|
|
71
|
-
--__op-table-cell-
|
|
76
|
+
--__op-table-cell-height: var(--_op-table-cell-height-compact);
|
|
72
77
|
}
|
|
73
78
|
|
|
74
79
|
// Striped Modifiers
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
%tooltip-global {
|
|
2
|
+
// Public API
|
|
3
|
+
--_op-tooltip-max-width: calc(5 * var(--op-space-3x-large));
|
|
4
|
+
--_op-tooltip-padding: var(--op-space-x-small) var(--op-space-medium);
|
|
5
|
+
--_op-tooltip-background-color: var(--op-color-neutral-minus-max);
|
|
6
|
+
--_op-tooltip-text-color: var(--op-color-neutral-on-minus-max);
|
|
7
|
+
--_op-tooltip-arrow-size: calc(var(--op-space-small) / 2);
|
|
8
|
+
--_op-tooltip-tooltip-offset: var(--op-space-x-small);
|
|
9
|
+
--_op-tooltip-tooltip-radius: var(--op-radius-medium);
|
|
10
|
+
--_op-tooltip-tooltip-font-size: var(--op-font-small);
|
|
11
|
+
|
|
12
|
+
position: relative;
|
|
13
|
+
|
|
14
|
+
&::before,
|
|
15
|
+
&::after {
|
|
16
|
+
opacity: 0;
|
|
17
|
+
transition: var(--op-transition-tooltip);
|
|
18
|
+
visibility: hidden;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
&::before {
|
|
22
|
+
position: absolute;
|
|
23
|
+
z-index: var(--op-z-index-tooltip);
|
|
24
|
+
display: block;
|
|
25
|
+
width: max-content;
|
|
26
|
+
max-width: var(--_op-tooltip-max-width);
|
|
27
|
+
padding: var(--_op-tooltip-padding);
|
|
28
|
+
border-radius: var(--_op-tooltip-tooltip-radius);
|
|
29
|
+
background-color: var(--_op-tooltip-background-color);
|
|
30
|
+
color: var(--_op-tooltip-text-color);
|
|
31
|
+
content: attr(data-tooltip-text);
|
|
32
|
+
font-family: var(--op-font-family); // Makes tooltips on icons work
|
|
33
|
+
font-size: var(--_op-tooltip-tooltip-font-size);
|
|
34
|
+
overflow-wrap: break-word;
|
|
35
|
+
pointer-events: none;
|
|
36
|
+
text-align: center;
|
|
37
|
+
white-space: normal;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
&::after {
|
|
41
|
+
position: absolute;
|
|
42
|
+
z-index: var(--op-z-index-tooltip);
|
|
43
|
+
border: var(--_op-tooltip-arrow-size) solid var(--_op-tooltip-background-color);
|
|
44
|
+
content: '';
|
|
45
|
+
pointer-events: none;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
&:hover {
|
|
49
|
+
&::before,
|
|
50
|
+
&::after {
|
|
51
|
+
opacity: 1;
|
|
52
|
+
visibility: visible;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
&[data-tooltip-position='top'],
|
|
57
|
+
&:not([data-tooltip-position]) {
|
|
58
|
+
&::before,
|
|
59
|
+
&::after {
|
|
60
|
+
left: 50%;
|
|
61
|
+
transform: translateX(-50%);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
&::before {
|
|
65
|
+
bottom: 100%;
|
|
66
|
+
margin-bottom: calc(var(--_op-tooltip-arrow-size) + var(--_op-tooltip-tooltip-offset));
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
&::after {
|
|
70
|
+
bottom: 100%;
|
|
71
|
+
border-color: var(--_op-tooltip-background-color) transparent transparent transparent;
|
|
72
|
+
margin-bottom: calc(-1 * var(--_op-tooltip-arrow-size) + var(--_op-tooltip-tooltip-offset));
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
&[data-tooltip-position='left'] {
|
|
77
|
+
&::before,
|
|
78
|
+
&::after {
|
|
79
|
+
top: 50%;
|
|
80
|
+
transform: translateY(-50%);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
&::before {
|
|
84
|
+
right: 100%;
|
|
85
|
+
margin-right: calc(var(--_op-tooltip-arrow-size) + var(--_op-tooltip-tooltip-offset));
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
&::after {
|
|
89
|
+
right: 100%;
|
|
90
|
+
border-color: transparent transparent transparent var(--_op-tooltip-background-color);
|
|
91
|
+
margin-right: calc(-1 * var(--_op-tooltip-arrow-size) + var(--_op-tooltip-tooltip-offset));
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
&[data-tooltip-position='bottom'] {
|
|
96
|
+
&::before,
|
|
97
|
+
&::after {
|
|
98
|
+
left: 50%;
|
|
99
|
+
transform: translateX(-50%);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
&::before {
|
|
103
|
+
top: 100%;
|
|
104
|
+
margin-top: calc(var(--_op-tooltip-arrow-size) + var(--_op-tooltip-tooltip-offset));
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
&::after {
|
|
108
|
+
top: 100%;
|
|
109
|
+
border-color: transparent transparent var(--_op-tooltip-background-color) transparent;
|
|
110
|
+
margin-top: calc(-1 * var(--_op-tooltip-arrow-size) + var(--_op-tooltip-tooltip-offset));
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
&[data-tooltip-position='right'] {
|
|
115
|
+
&::before,
|
|
116
|
+
&::after {
|
|
117
|
+
top: 50%;
|
|
118
|
+
transform: translateY(-50%);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
&::before {
|
|
122
|
+
left: 100%;
|
|
123
|
+
margin-left: calc(var(--_op-tooltip-arrow-size) + var(--_op-tooltip-tooltip-offset));
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
&::after {
|
|
127
|
+
left: 100%;
|
|
128
|
+
border-color: transparent var(--_op-tooltip-background-color) transparent transparent;
|
|
129
|
+
margin-left: calc(-1 * var(--_op-tooltip-arrow-size) + var(--_op-tooltip-tooltip-offset));
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
[data-tooltip-text] {
|
|
135
|
+
@extend %tooltip-global;
|
|
136
|
+
}
|
|
@@ -194,8 +194,8 @@
|
|
|
194
194
|
/**
|
|
195
195
|
* @tokens Encoded Images
|
|
196
196
|
*/
|
|
197
|
-
--op-
|
|
198
|
-
--op-
|
|
197
|
+
--op-encoded-images-dropdown-arrow-width: var(--op-space-scale-unit); // No way to string interpolate
|
|
198
|
+
--op-encoded-images-dropdown-arrow: url("data:image/svg+xml,%3Csvg viewBox='0 0 10 7' version='1.1' xmlns='http://www.w3.org/2000/svg' width='10' height='7'%3E%3Cg transform='matrix(0.983953,0,0,1.00934,-9.22679,-3.65885)'%3E%3Cpath fill='%23d1d1d1' d='M9.37727 3.625l5.08154 6.93523L19.54036 3.625'/%3E%3C/g%3E%3C/svg%3E%0A");
|
|
199
199
|
}
|
|
200
200
|
|
|
201
201
|
@mixin fonts {
|
|
@@ -268,9 +268,14 @@
|
|
|
268
268
|
* @tokens Input Focus
|
|
269
269
|
* @presenter Shadow
|
|
270
270
|
*/
|
|
271
|
-
--op-input-
|
|
272
|
-
--op-input-
|
|
273
|
-
--op-input-focus: var(--op-input-inner-focus)
|
|
271
|
+
--op-input-inner-focus: inset 0 0 0 var(--op-border-width-large);
|
|
272
|
+
--op-input-outer-focus: 0 0 0 var(--op-border-width-x-large);
|
|
273
|
+
--op-input-focus-primary: var(--op-input-inner-focus) var(--op-color-primary-plus-two),
|
|
274
|
+
var(--op-input-outer-focus) var(--op-color-primary-plus-five);
|
|
275
|
+
--op-input-focus-danger: var(--op-input-inner-focus) var(--op-color-alerts-danger-plus-two),
|
|
276
|
+
var(--op-input-outer-focus) var(--op-color-alerts-danger-plus-five);
|
|
277
|
+
--op-input-focus-warning: var(--op-input-inner-focus) var(--op-color-alerts-warning-plus-two),
|
|
278
|
+
var(--op-input-outer-focus) var(--op-color-alerts-warning-plus-five);
|
|
274
279
|
}
|
|
275
280
|
|
|
276
281
|
// We use SCSS variables outside the root since support for custom properties / css variables
|