@rolemodel/optics 2.1.2 → 2.1.3

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 (40) hide show
  1. package/.yarn/install-state.gz +0 -0
  2. package/.yarn/releases/yarn-4.8.1.cjs +935 -0
  3. package/.yarnrc.yml +1 -1
  4. package/dist/css/components/accordion.css +66 -0
  5. package/dist/css/components/alert.css +171 -0
  6. package/dist/css/components/avatar.css +95 -0
  7. package/dist/css/components/badge.css +73 -0
  8. package/dist/css/components/breadcrumbs.css +37 -0
  9. package/dist/css/components/button.css +273 -0
  10. package/dist/css/components/button_group.css +47 -0
  11. package/dist/css/components/card.css +62 -0
  12. package/dist/css/components/confirm-dialog.css +80 -0
  13. package/dist/css/components/divider.css +55 -0
  14. package/dist/css/components/form.css +360 -0
  15. package/dist/css/components/icon.css +121 -0
  16. package/dist/css/components/index.css +24 -0
  17. package/dist/css/components/modal.css +149 -0
  18. package/dist/css/components/navbar.css +60 -0
  19. package/dist/css/components/pagination.css +24 -0
  20. package/dist/css/components/side_panel.css +90 -0
  21. package/dist/css/components/sidebar.css +138 -0
  22. package/dist/css/components/spinner.css +52 -0
  23. package/dist/css/components/switch.css +107 -0
  24. package/dist/css/components/tab.css +76 -0
  25. package/dist/css/components/table.css +133 -0
  26. package/dist/css/components/tag.css +168 -0
  27. package/dist/css/components/text_pair.css +55 -0
  28. package/dist/css/components/tooltip.css +134 -0
  29. package/dist/css/core/base.css +95 -0
  30. package/dist/css/core/fonts/icon_fonts.css +8 -0
  31. package/dist/css/core/fonts/index.css +8 -0
  32. package/dist/css/core/fonts/text_fonts.css +16 -0
  33. package/dist/css/core/layout.css +43 -0
  34. package/dist/css/core/tokens/base_tokens.css +338 -0
  35. package/dist/css/core/tokens/index.css +2 -0
  36. package/dist/css/core/tokens/scale_color_tokens.css +1498 -0
  37. package/dist/css/core/utilities.css +429 -0
  38. package/dist/package.json +3 -3
  39. package/package.json +3 -3
  40. package/.yarn/releases/yarn-4.2.2.cjs +0 -894
@@ -0,0 +1,273 @@
1
+ .btn {
2
+ /* Public API (customizable component options) */
3
+ --_op-btn-height-small: var(--op-input-height-small);
4
+ --_op-btn-height-medium: var(--op-input-height-medium);
5
+ --_op-btn-height-large: var(--op-input-height-large);
6
+ --_op-btn-font-small: var(--op-font-x-small);
7
+ --_op-btn-font-medium: var(--op-font-small);
8
+ --_op-btn-font-large: var(--op-font-small);
9
+ --_op-btn-padding-small: 0 var(--op-space-x-small);
10
+ --_op-btn-padding-medium: 0 var(--op-space-small);
11
+ --_op-btn-padding-large: 0 var(--op-space-small);
12
+
13
+ /* Private API (component option defaults) */
14
+ --__op-btn-height: var(--_op-btn-height-large);
15
+ --__op-btn-font-size: var(--_op-btn-font-large);
16
+ --__op-btn-padding: var(--_op-btn-padding-large);
17
+
18
+ display: inline-flex;
19
+ min-height: var(--__op-btn-height);
20
+ align-items: center;
21
+ justify-content: center;
22
+ padding: var(--__op-btn-padding);
23
+ border-radius: var(--op-radius-medium);
24
+ appearance: none;
25
+ background-color: var(--op-color-neutral-plus-eight);
26
+ box-shadow: inset var(--op-border-all) var(--op-color-neutral-plus-four);
27
+ color: var(--op-color-neutral-on-plus-eight);
28
+ cursor: pointer;
29
+ font-size: var(--__op-btn-font-size);
30
+ font-weight: var(--op-font-weight-normal);
31
+ gap: var(--op-space-x-small);
32
+ text-align: center;
33
+ text-decoration: none;
34
+ transition: var(--op-transition-input);
35
+ white-space: nowrap;
36
+
37
+ /* Modifiers */
38
+
39
+ /* Default Active State */
40
+ &.btn--active {
41
+ background-color: var(--op-color-primary-plus-five);
42
+ box-shadow: inset var(--op-border-all) var(--op-color-primary-plus-three);
43
+ color: var(--op-color-primary-on-plus-five);
44
+ }
45
+
46
+ /* Default Hover State */
47
+ &:hover {
48
+ background-color: var(--op-color-primary-plus-eight);
49
+ box-shadow: inset var(--op-border-all) var(--op-color-primary-plus-three);
50
+ color: var(--op-color-primary-on-plus-eight);
51
+ }
52
+
53
+ /* Default Focus State */
54
+ &:focus-visible {
55
+ background-color: var(--op-color-neutral-plus-eight);
56
+ box-shadow: var(--op-input-focus-primary);
57
+ color: var(--op-color-neutral-on-plus-eight);
58
+ }
59
+
60
+ /* Default Borderless State */
61
+ &.btn--no-border {
62
+ background-color: transparent;
63
+ box-shadow: none;
64
+ color: var(--op-color-primary-on-plus-max);
65
+
66
+ /* Default Borderless + Active State. */
67
+ &.btn--active {
68
+ background-color: var(--op-color-primary-plus-five);
69
+ box-shadow: inset var(--op-border-all) var(--op-color-primary-plus-three);
70
+ color: var(--op-color-primary-on-plus-five);
71
+ }
72
+
73
+ /* Default Borderless + Hover State */
74
+ &:hover {
75
+ background-color: var(--op-color-primary-plus-eight);
76
+ box-shadow: inset var(--op-border-all) var(--op-color-primary-plus-five);
77
+ color: var(--op-color-primary-on-plus-eight);
78
+ }
79
+
80
+ /* Default Borderless + Focus State */
81
+ &:focus-visible {
82
+ background-color: var(--op-color-primary-plus-eight);
83
+ box-shadow: var(--op-input-focus-primary);
84
+ color: var(--op-color-primary-on-plus-eight);
85
+ }
86
+ }
87
+
88
+ /* Pill Modifier */
89
+ &.btn--pill {
90
+ border-radius: var(--op-radius-pill);
91
+ }
92
+
93
+ /* Icon Modifier */
94
+ &.btn--icon {
95
+ width: var(--__op-btn-height);
96
+ min-width: var(--__op-btn-height);
97
+ padding: 0;
98
+ }
99
+
100
+ /* Icon With Label Modifier */
101
+ &.btn--icon-with-label {
102
+ flex-direction: column;
103
+ padding: var(--op-space-small);
104
+ gap: var(--op-space-3x-small);
105
+ }
106
+
107
+ /* Size Modifiers */
108
+ &.btn--small {
109
+ --__op-btn-height: var(--_op-btn-height-small);
110
+ --__op-btn-font-size: var(--_op-btn-font-small);
111
+ --__op-btn-padding: var(--_op-btn-padding-small);
112
+ }
113
+
114
+ &.btn--medium {
115
+ --__op-btn-height: var(--_op-btn-height-medium);
116
+ --__op-btn-font-size: var(--_op-btn-font-medium);
117
+ --__op-btn-padding: var(--_op-btn-padding-medium);
118
+ }
119
+
120
+ &.btn--large {
121
+ --__op-btn-height: var(--_op-btn-height-large);
122
+ --__op-btn-font-size: var(--_op-btn-font-large);
123
+ --__op-btn-padding: var(--_op-btn-padding-large);
124
+ }
125
+
126
+ /* Disabled Modifier */
127
+ &.btn--disabled,
128
+ &:disabled {
129
+ opacity: var(--op-opacity-disabled);
130
+ pointer-events: none;
131
+ -webkit-user-select: none; /* stylelint-disable property-no-vendor-prefix */
132
+ user-select: none;
133
+ }
134
+
135
+ /* Button with notification style badge */
136
+ &.btn--with-badge {
137
+ position: relative;
138
+ }
139
+
140
+ /* Focus State */
141
+ &:focus,
142
+ &:focus-within,
143
+ &:focus-visible {
144
+ outline: none;
145
+ }
146
+
147
+ /* https:/*uxmovement.com/mobile/optimal-size-and-spacing-for-mobile-buttons/ */
148
+
149
+ /* --op-breakpoint-small */
150
+ @media (width <= 768px) {
151
+ --__op-btn-height: var(--_op-btn-height-large);
152
+ --__op-btn-font-size: var(--_op-btn-font-large);
153
+
154
+ &.btn--small,
155
+ &.btn--medium,
156
+ &.btn--large {
157
+ --__op-btn-height: var(--_op-btn-height-large);
158
+ --__op-btn-font-size: var(--_op-btn-font-large);
159
+ --__op-btn-padding: var(--_op-btn-padding-large);
160
+ }
161
+ }
162
+
163
+ /* Variant Modifiers */
164
+ &.btn--primary {
165
+ background-color: var(--op-color-primary-base);
166
+ box-shadow: inset var(--op-border-all) var(--op-color-primary-base);
167
+ color: var(--op-color-primary-on-base);
168
+
169
+ /* Active State */
170
+ &.btn--active {
171
+ background-color: var(--op-color-primary-minus-five);
172
+ box-shadow: inset var(--op-border-all) var(--op-color-primary-plus-two);
173
+ color: var(--op-color-primary-on-minus-five);
174
+ }
175
+
176
+ /* Hover State */
177
+ &:hover {
178
+ background-color: var(--op-color-primary-plus-one);
179
+ box-shadow: inset var(--op-border-all) var(--op-color-primary-plus-one);
180
+ color: var(--op-color-primary-on-plus-one);
181
+ }
182
+
183
+ /* Focus State */
184
+ &:focus-visible {
185
+ background-color: var(--op-color-primary-base);
186
+ box-shadow: var(--op-input-focus-primary);
187
+ color: var(--op-color-primary-on-base);
188
+ }
189
+
190
+ /* Borderless State */
191
+ &.btn--no-border {
192
+ background-color: transparent;
193
+ box-shadow: none;
194
+ color: var(--op-color-primary-base);
195
+
196
+ /* Borderless + Active State */
197
+ &.btn--active {
198
+ background-color: var(--op-color-primary-plus-five);
199
+ box-shadow: inset var(--op-border-all) var(--op-color-primary-plus-three);
200
+ color: var(--op-color-primary-on-plus-five);
201
+ }
202
+
203
+ /* Borderless + Hover State */
204
+ &:hover {
205
+ background-color: var(--op-color-primary-plus-eight);
206
+ box-shadow: inset var(--op-border-all) var(--op-color-primary-plus-five);
207
+ color: var(--op-color-primary-on-plus-eight);
208
+ }
209
+
210
+ /* Borderless + Focus State */
211
+ &:focus-visible {
212
+ background-color: var(--op-color-primary-plus-eight);
213
+ box-shadow: var(--op-input-focus-primary);
214
+ color: var(--op-color-primary-on-plus-eight);
215
+ }
216
+ }
217
+ }
218
+
219
+ &.btn--destructive,
220
+ &.btn--delete {
221
+ background-color: var(--op-color-alerts-danger-base);
222
+ box-shadow: inset var(--op-border-all) var(--op-color-alerts-danger-base);
223
+ color: var(--op-color-alerts-danger-on-base);
224
+
225
+ /* Active State */
226
+ &.btn--active {
227
+ background-color: var(--op-color-alerts-danger-plus-five);
228
+ box-shadow: inset var(--op-border-all) var(--op-color-alerts-danger-plus-three);
229
+ color: var(--op-color-alerts-danger-on-plus-five);
230
+ }
231
+
232
+ /* Hover State */
233
+ &:hover {
234
+ background-color: var(--op-color-alerts-danger-minus-two);
235
+ box-shadow: inset var(--op-border-all) var(--op-color-alerts-danger-minus-two);
236
+ color: var(--op-color-alerts-danger-on-minus-two);
237
+ }
238
+
239
+ /* Focus State */
240
+ &:focus-visible {
241
+ background-color: var(--op-color-alerts-danger-base);
242
+ box-shadow: var(--op-input-focus-danger);
243
+ color: var(--op-color-alerts-danger-on-base);
244
+ }
245
+ }
246
+
247
+ &.btn--warning {
248
+ background-color: var(--op-color-alerts-warning-base);
249
+ box-shadow: inset var(--op-border-all) var(--op-color-alerts-warning-base);
250
+ color: var(--op-color-alerts-warning-on-base);
251
+
252
+ /* Active State */
253
+ &.btn--active {
254
+ background-color: var(--op-color-alerts-warning-plus-five);
255
+ box-shadow: inset var(--op-border-all) var(--op-color-alerts-warning-plus-three);
256
+ color: var(--op-color-alerts-warning-on-plus-five);
257
+ }
258
+
259
+ /* Hover State */
260
+ &:hover {
261
+ background-color: var(--op-color-alerts-warning-minus-two);
262
+ box-shadow: inset var(--op-border-all) var(--op-color-alerts-warning-minus-two);
263
+ color: var(--op-color-alerts-warning-on-minus-two);
264
+ }
265
+
266
+ /* Focus State */
267
+ &:focus-visible {
268
+ background-color: var(--op-color-alerts-warning-base);
269
+ box-shadow: var(--op-input-focus-warning);
270
+ color: var(--op-color-alerts-warning-on-base);
271
+ }
272
+ }
273
+ }
@@ -0,0 +1,47 @@
1
+ .btn-group {
2
+ --op-btn-group-hover-z-index: 1;
3
+ --op-btn-group-active-z-index: 2;
4
+ --op-btn-group-focus-z-index: 3;
5
+
6
+ display: inline-flex;
7
+ align-items: center;
8
+
9
+ .btn {
10
+ + .btn {
11
+ margin-inline-start: calc(var(--op-border-width) * -1);
12
+ }
13
+
14
+ &:hover {
15
+ z-index: var(--op-btn-group-hover-z-index);
16
+ }
17
+
18
+ &.btn--active {
19
+ z-index: var(--op-btn-group-active-z-index);
20
+ }
21
+
22
+ &:focus,
23
+ &:focus-within,
24
+ &:focus-visible {
25
+ z-index: var(--op-btn-group-focus-z-index);
26
+ }
27
+
28
+ &:not(:first-child, :last-child) {
29
+ border-radius: 0;
30
+ }
31
+
32
+ &:first-child:not(:last-child) {
33
+ border-bottom-right-radius: 0;
34
+ border-top-right-radius: 0;
35
+ }
36
+
37
+ &:last-child:not(:first-child) {
38
+ border-bottom-left-radius: 0;
39
+ border-top-left-radius: 0;
40
+ }
41
+ }
42
+ }
43
+
44
+ .btn-group-toolbar {
45
+ display: flex;
46
+ flex-wrap: wrap;
47
+ }
@@ -0,0 +1,62 @@
1
+ .card {
2
+ /* Public API (customizable component options) */
3
+ --_op-card-padding: var(--op-space-medium);
4
+ --_op-card-box-shadow: var(--op-border-all) var(--op-color-border);
5
+
6
+ position: relative;
7
+ border-radius: var(--op-radius-medium);
8
+ background-color: var(--op-color-background);
9
+ box-shadow: var(--_op-card-box-shadow);
10
+ color: var(--op-color-on-background);
11
+ contain: paint;
12
+ font-size: var(--op-font-medium);
13
+ line-height: var(--op-line-height-base);
14
+
15
+ /* Modifiers */
16
+
17
+ &.card--condensed {
18
+ --_op-card-padding: var(--op-space-x-small);
19
+ }
20
+
21
+ &.card--padded {
22
+ padding: var(--_op-card-padding);
23
+ }
24
+
25
+ &.card--shadow-x-small {
26
+ box-shadow: var(--_op-card-box-shadow), var(--op-shadow-x-small);
27
+ }
28
+
29
+ &.card--shadow-small {
30
+ box-shadow: var(--_op-card-box-shadow), var(--op-shadow-small);
31
+ }
32
+
33
+ &.card--shadow-medium {
34
+ box-shadow: var(--_op-card-box-shadow), var(--op-shadow-medium);
35
+ }
36
+
37
+ &.card--shadow-large {
38
+ box-shadow: var(--_op-card-box-shadow), var(--op-shadow-large);
39
+ }
40
+
41
+ &.card--shadow-x-large {
42
+ box-shadow: var(--_op-card-box-shadow), var(--op-shadow-x-large);
43
+ }
44
+
45
+ /* Elements */
46
+ .card__header,
47
+ .card__body,
48
+ .card__footer {
49
+ padding: var(--_op-card-padding);
50
+ }
51
+
52
+ .card__header {
53
+ h1,
54
+ h2,
55
+ h3,
56
+ h4,
57
+ h5,
58
+ h6 {
59
+ margin: 0;
60
+ }
61
+ }
62
+ }
@@ -0,0 +1,80 @@
1
+ .confirm-dialog-wrapper {
2
+ position: fixed;
3
+ z-index: var(--op-z-index-dialog);
4
+ display: flex;
5
+ overflow: hidden;
6
+ align-items: center;
7
+ justify-content: center;
8
+ inset: 0;
9
+ outline: 0;
10
+ visibility: hidden;
11
+
12
+ /* Elements */
13
+
14
+ .confirm-dialog-wrapper__backdrop {
15
+ position: fixed;
16
+ z-index: var(--op-z-index-dialog-backdrop);
17
+ background: var(--op-color-black);
18
+ inset: 0;
19
+ opacity: var(--op-opacity-none);
20
+ transition: var(--op-transition-modal);
21
+ visibility: hidden;
22
+ }
23
+
24
+ /* Modifiers */
25
+
26
+ &.confirm-dialog-wrapper--active {
27
+ visibility: visible;
28
+
29
+ .confirm-dialog {
30
+ opacity: var(--op-opacity-full);
31
+ transform: scale(1);
32
+ }
33
+
34
+ .confirm-dialog-wrapper__backdrop {
35
+ opacity: var(--op-opacity-half);
36
+ visibility: visible;
37
+ }
38
+ }
39
+ }
40
+
41
+ /* stylelint-disable no-descending-specificity */
42
+ .confirm-dialog {
43
+ /* Public API (customizable component options) */
44
+ --_op-confirm-dialog-width: calc(100 * var(--op-size-unit)); /* 400px */
45
+
46
+ z-index: var(--op-z-index-dialog-content);
47
+ width: var(--_op-confirm-dialog-width);
48
+ border-radius: var(--op-radius-medium);
49
+ background-color: var(--op-color-background);
50
+ box-shadow: var(--op-border-all) var(--op-color-border);
51
+ color: var(--op-color-on-background);
52
+ contain: paint;
53
+ font-size: var(--op-font-medium);
54
+ line-height: var(--op-line-height-base);
55
+ opacity: var(--op-opacity-none);
56
+ transform: scale(0.7);
57
+ transition: var(--op-transition-modal);
58
+
59
+ .confirm-dialog__header,
60
+ .confirm-dialog__body,
61
+ .confirm-dialog__footer {
62
+ padding: var(--op-space-medium);
63
+ }
64
+
65
+ .confirm-dialog__header {
66
+ font-size: var(--op-font-large);
67
+ font-weight: var(--op-font-weight-semi-bold);
68
+ }
69
+
70
+ .confirm-dialog__body {
71
+ box-shadow: var(--op-border-all) var(--op-color-border);
72
+ }
73
+
74
+ .confirm-dialog__footer {
75
+ display: flex;
76
+ align-items: center;
77
+ justify-content: space-between;
78
+ }
79
+ }
80
+ /* stylelint-enable no-descending-specificity */
@@ -0,0 +1,55 @@
1
+ .divider {
2
+ /* Public API (customizable component options) */
3
+ --_op-divider-vertical-min-height: var(--op-space-large);
4
+ --_op-divider-height-small: var(--op-border-width);
5
+ --_op-divider-height-medium: var(--op-border-width-large);
6
+ --_op-divider-height-large: var(--op-border-width-x-large);
7
+ --_op-divider-padding-small: var(--op-space-2x-small);
8
+ --_op-divider-padding-medium: var(--op-space-x-small);
9
+ --_op-divider-padding-large: var(--op-space-medium);
10
+
11
+ /* Private API (component option defaults) */
12
+ --__op-divider-height: var(--_op-divider-height-small);
13
+ --__op-divider-padding: 0;
14
+
15
+ width: 100%;
16
+ height: var(--__op-divider-height);
17
+ background-color: var(--op-color-border);
18
+ margin-block: var(--__op-divider-padding);
19
+ margin-inline: 0;
20
+
21
+ /* Size Modifiers */
22
+ &.divider--small {
23
+ --__op-divider-height: var(--_op-divider-height-small);
24
+ }
25
+
26
+ &.divider--medium {
27
+ --__op-divider-height: var(--_op-divider-height-medium);
28
+ }
29
+
30
+ &.divider--large {
31
+ --__op-divider-height: var(--_op-divider-height-large);
32
+ }
33
+
34
+ /* Spacing Modifiers */
35
+ &.divider--spacing-small {
36
+ --__op-divider-padding: var(--_op-divider-padding-small);
37
+ }
38
+
39
+ &.divider--spacing-medium {
40
+ --__op-divider-padding: var(--_op-divider-padding-medium);
41
+ }
42
+
43
+ &.divider--spacing-large {
44
+ --__op-divider-padding: var(--_op-divider-padding-large);
45
+ }
46
+
47
+ /* Direction Modifier */
48
+ &.divider--vertical {
49
+ width: var(--__op-divider-height);
50
+ height: 100%;
51
+ min-height: var(--_op-divider-vertical-min-height);
52
+ margin-block: 0;
53
+ margin-inline: var(--__op-divider-padding);
54
+ }
55
+ }