@rolemodel/optics 0.5.1 → 1.1.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/.editorconfig +10 -0
- package/.gitattributes +4 -0
- package/.github/workflows/linting.yml +9 -9
- package/.github/workflows/publish-storybook.yml +3 -3
- package/.github/workflows/release-package.yml +6 -6
- package/.prettierignore +1 -0
- package/.yarn/install-state.gz +0 -0
- package/.yarn/releases/yarn-4.2.2.cjs +894 -0
- package/.yarnrc.yml +2 -0
- package/dist/css/optics.css +103 -41
- package/dist/css/optics.css.map +1 -1
- package/dist/scss/addons/panel.scss +1 -1
- package/dist/scss/addons/tom-select.scss +2 -2
- package/dist/scss/components/avatar.scss +2 -0
- package/dist/scss/components/button.scss +1 -0
- package/dist/scss/components/button_group.scss +2 -0
- package/dist/scss/components/card.scss +6 -6
- package/dist/scss/components/confirm-dialog.scss +2 -2
- package/dist/scss/components/divider.scss +1 -1
- package/dist/scss/components/form.scss +20 -7
- package/dist/scss/components/icon.scss +1 -1
- package/dist/scss/components/modal.scss +2 -2
- package/dist/scss/components/side_panel.scss +2 -2
- package/dist/scss/components/sidebar.scss +1 -0
- package/dist/scss/components/table.scss +4 -4
- package/dist/scss/components/tooltip.scss +2 -0
- package/dist/scss/core/tokens/base_tokens.scss +18 -8
- package/dist/scss/core/tokens/dark_mode_tokens.scss +3 -0
- package/dist/scss/recipes/aligned-header.scss +20 -0
- package/dist/tokens/tokens.json +5 -5
- package/package.json +30 -29
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
width: var(--_op-confirm-dialog-width);
|
|
43
43
|
border-radius: var(--op-radius-medium);
|
|
44
44
|
background-color: var(--op-color-background);
|
|
45
|
-
box-shadow: var(--op-border-all) var(--op-border
|
|
45
|
+
box-shadow: var(--op-border-all) var(--op-color-border);
|
|
46
46
|
color: var(--op-color-on-background);
|
|
47
47
|
contain: paint;
|
|
48
48
|
font-size: var(--op-font-medium);
|
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
}
|
|
64
64
|
|
|
65
65
|
.confirm-dialog__body {
|
|
66
|
-
box-shadow: var(--op-border-all) var(--op-border
|
|
66
|
+
box-shadow: var(--op-border-all) var(--op-color-border);
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
.confirm-dialog__footer {
|
|
@@ -139,6 +139,7 @@
|
|
|
139
139
|
|
|
140
140
|
&[type='color'] {
|
|
141
141
|
padding: var(--op-space-2x-small);
|
|
142
|
+
cursor: pointer;
|
|
142
143
|
|
|
143
144
|
&::-webkit-color-swatch-wrapper {
|
|
144
145
|
padding: 0;
|
|
@@ -159,21 +160,33 @@
|
|
|
159
160
|
padding-block: 0;
|
|
160
161
|
|
|
161
162
|
&::file-selector-button {
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
163
|
+
--__op-btn-base-height: var(--op-input-height-small);
|
|
164
|
+
--__op-btn-height: var(--__op-btn-base-height);
|
|
165
|
+
|
|
166
|
+
display: inline-flex;
|
|
167
|
+
min-height: var(--__op-btn-height);
|
|
168
|
+
align-items: center;
|
|
169
|
+
justify-content: center;
|
|
170
|
+
padding: 0 var(--op-space-x-small);
|
|
168
171
|
border: none;
|
|
172
|
+
border-radius: var(--op-radius-medium);
|
|
173
|
+
appearance: none;
|
|
169
174
|
background-color: var(--op-color-neutral-plus-eight);
|
|
170
175
|
box-shadow: inset var(--op-border-all) var(--op-color-neutral-plus-four);
|
|
171
176
|
color: var(--op-color-neutral-on-plus-eight);
|
|
177
|
+
cursor: pointer;
|
|
178
|
+
font-size: var(--op-font-x-small);
|
|
179
|
+
font-weight: var(--op-font-weight-normal);
|
|
180
|
+
gap: var(--op-space-x-small);
|
|
172
181
|
margin-block: calc((var(--__op-form-control-height) / 2) - (var(--__op-btn-height) / 2));
|
|
182
|
+
text-align: center;
|
|
183
|
+
text-decoration: none;
|
|
184
|
+
transition: var(--op-transition-input);
|
|
185
|
+
white-space: nowrap;
|
|
173
186
|
}
|
|
174
187
|
|
|
175
188
|
&.form-control--small::file-selector-button {
|
|
176
|
-
--__op-btn-height: calc(var(--
|
|
189
|
+
--__op-btn-height: calc(var(--__op-btn-base-height) - var(--op-space-x-small));
|
|
177
190
|
}
|
|
178
191
|
}
|
|
179
192
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// from Googles CDN like we do for our other fonts
|
|
4
4
|
// https://developers.google.com/fonts/docs/material_symbols#variable_font_with_google_fonts
|
|
5
5
|
|
|
6
|
-
@import 'https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200';
|
|
6
|
+
@import 'https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=block';
|
|
7
7
|
|
|
8
8
|
.material-symbols-outlined,
|
|
9
9
|
.material-symbols {
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
width: var(--_op-modal-width);
|
|
47
47
|
border-radius: var(--op-radius-medium);
|
|
48
48
|
background-color: var(--op-color-background);
|
|
49
|
-
box-shadow: var(--op-border-all) var(--op-border
|
|
49
|
+
box-shadow: var(--op-border-all) var(--op-color-border);
|
|
50
50
|
color: var(--op-color-on-background);
|
|
51
51
|
contain: paint;
|
|
52
52
|
font-size: var(--op-font-medium);
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
|
|
72
72
|
.modal__body {
|
|
73
73
|
max-height: var(--_op-modal-max-height);
|
|
74
|
-
box-shadow: var(--op-border-all) var(--op-border
|
|
74
|
+
box-shadow: var(--op-border-all) var(--op-color-border);
|
|
75
75
|
overflow-y: auto;
|
|
76
76
|
}
|
|
77
77
|
|
|
@@ -17,11 +17,11 @@
|
|
|
17
17
|
|
|
18
18
|
// Modifiers
|
|
19
19
|
&.side-panel--border-left {
|
|
20
|
-
box-shadow: var(--op-border-left) var(--op-border
|
|
20
|
+
box-shadow: var(--op-border-left) var(--op-color-border);
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
&.side-panel--border-right {
|
|
24
|
-
box-shadow: var(--op-border-right) var(--op-border
|
|
24
|
+
box-shadow: var(--op-border-right) var(--op-color-border);
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
&.side-panel--border-left.side-panel--border-right {
|
|
@@ -69,6 +69,7 @@
|
|
|
69
69
|
--__op-sidebar-width: var(--_op-sidebar-drawer-width);
|
|
70
70
|
--__op-sidebar-brand-width: var(--_op-sidebar-drawer-brand-width);
|
|
71
71
|
|
|
72
|
+
z-index: var(--op-z-index-sidebar);
|
|
72
73
|
display: flex;
|
|
73
74
|
width: var(--__op-sidebar-width);
|
|
74
75
|
min-width: var(--__op-sidebar-width);
|
|
@@ -12,13 +12,13 @@
|
|
|
12
12
|
width: 100%;
|
|
13
13
|
border-radius: var(--op-radius-medium);
|
|
14
14
|
border-collapse: collapse;
|
|
15
|
-
box-shadow: var(--op-border-all) var(--op-border
|
|
15
|
+
box-shadow: var(--op-border-all) var(--op-color-border);
|
|
16
16
|
contain: paint;
|
|
17
17
|
table-layout: auto;
|
|
18
18
|
|
|
19
19
|
thead {
|
|
20
20
|
background-color: var(--op-color-neutral-plus-eight);
|
|
21
|
-
box-shadow: inset var(--op-border-top) var(--op-border
|
|
21
|
+
box-shadow: inset var(--op-border-top) var(--op-color-border);
|
|
22
22
|
color: var(--op-color-neutral-on-plus-eight);
|
|
23
23
|
|
|
24
24
|
// This Currently does not work in Firefox since it does not support :has yet, but fails gracefully.
|
|
@@ -47,11 +47,11 @@
|
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
tr:not(:last-child) {
|
|
50
|
-
box-shadow: inset var(--op-border-top) var(--op-border
|
|
50
|
+
box-shadow: inset var(--op-border-top) var(--op-color-border);
|
|
51
51
|
}
|
|
52
52
|
|
|
53
53
|
tfoot tr {
|
|
54
|
-
box-shadow: var(--op-border-top) var(--op-border
|
|
54
|
+
box-shadow: var(--op-border-top) var(--op-color-border);
|
|
55
55
|
}
|
|
56
56
|
|
|
57
57
|
// Layout Modifiers
|
|
@@ -1,5 +1,14 @@
|
|
|
1
|
-
@import 'https://fonts.googleapis.com/css2?family=Noto+Sans:ital,wght@0,100
|
|
2
|
-
|
|
1
|
+
@import 'https://fonts.googleapis.com/css2?family=Noto+Sans:ital,wdth,wght@0,62.5..100,100..900;1,62.5..100,100..900&family=Noto+Serif:ital,wdth,wght@0,62.5..100,100..900;1,62.5..100,100..900&display=swap';
|
|
2
|
+
|
|
3
|
+
// Noto Sans supports:
|
|
4
|
+
// font-weight: {anything between 100 and 900}
|
|
5
|
+
// font-stretch: {anything between 62.5% and 100%}
|
|
6
|
+
// font-style: {normal or italic}
|
|
7
|
+
|
|
8
|
+
// Noto Serif supports:
|
|
9
|
+
// font-weight: {anything between 100 and 900}
|
|
10
|
+
// font-stretch: {anything between 62.5% and 100%}
|
|
11
|
+
// font-style: {normal or italic}
|
|
3
12
|
|
|
4
13
|
// Using Mixins allows us to include them at a component level
|
|
5
14
|
// as needed and override them.
|
|
@@ -128,11 +137,11 @@ $breakpoint-x-large: 1440px; // medium laptop
|
|
|
128
137
|
* @tokens Border Color
|
|
129
138
|
* @presenter Color
|
|
130
139
|
*/
|
|
131
|
-
--op-border
|
|
140
|
+
--op-color-border: var(--op-color-neutral-plus-five);
|
|
132
141
|
}
|
|
133
142
|
|
|
134
143
|
@mixin box-shadows {
|
|
135
|
-
// E.G. box-shadow: var(--op-border-top) var(--op-border
|
|
144
|
+
// E.G. box-shadow: var(--op-border-top) var(--op-color-border);
|
|
136
145
|
|
|
137
146
|
/**
|
|
138
147
|
* @tokens Border Shadow
|
|
@@ -144,8 +153,8 @@ $breakpoint-x-large: 1440px; // medium laptop
|
|
|
144
153
|
--op-border-right: var(--op-border-width) 0 0 0;
|
|
145
154
|
--op-border-bottom: 0 var(--op-border-width) 0 0;
|
|
146
155
|
--op-border-left: calc(-1 * var(--op-border-width)) 0 0 0;
|
|
147
|
-
--op-border-y: var(--op-border-top) var(--op-border
|
|
148
|
-
--op-border-x: var(--op-border-left) var(--op-border
|
|
156
|
+
--op-border-y: var(--op-border-top) var(--op-color-border), var(--op-border-bottom) var(--op-color-border);
|
|
157
|
+
--op-border-x: var(--op-border-left) var(--op-color-border), var(--op-border-right) var(--op-color-border);
|
|
149
158
|
}
|
|
150
159
|
|
|
151
160
|
@mixin font-scales {
|
|
@@ -240,7 +249,8 @@ $breakpoint-x-large: 1440px; // medium laptop
|
|
|
240
249
|
* @tokens Font Family
|
|
241
250
|
* @presenter FontFamily
|
|
242
251
|
*/
|
|
243
|
-
--op-font-family: 'Noto Sans',
|
|
252
|
+
--op-font-family: 'Noto Sans', sans-serif;
|
|
253
|
+
--op-font-family-alt: 'Noto Serif', serif;
|
|
244
254
|
}
|
|
245
255
|
|
|
246
256
|
@mixin spacing-scales {
|
|
@@ -287,7 +297,7 @@ $breakpoint-x-large: 1440px; // medium laptop
|
|
|
287
297
|
*/
|
|
288
298
|
--op-z-index-header: 500;
|
|
289
299
|
--op-z-index-footer: 500;
|
|
290
|
-
--op-z-index-
|
|
300
|
+
--op-z-index-sidebar: 700;
|
|
291
301
|
--op-z-index-dialog: 800;
|
|
292
302
|
--op-z-index-dialog-backdrop: 801;
|
|
293
303
|
--op-z-index-dialog-content: 802;
|
|
@@ -447,6 +447,9 @@
|
|
|
447
447
|
}
|
|
448
448
|
|
|
449
449
|
@mixin encoded-images {
|
|
450
|
+
/**
|
|
451
|
+
* @tokens Encoded Images
|
|
452
|
+
*/
|
|
450
453
|
--op-encoded-images-dropdown-arrow: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iOSIgdmlld0JveD0iMCAwIDEyIDkiIGZpbGw9IiNmZmYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik02IDguMzc1MDFMMCAyLjM3NTAxTDEuNCAwLjk3NTAwNkw2IDUuNTc1MDFMMTAuNiAwLjk3NTAwNkwxMiAyLjM3NTAxTDYgOC4zNzUwMVoiIGZpbGw9IiNmZmYiLz4KPC9zdmc+Cg==');
|
|
451
454
|
}
|
|
452
455
|
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
%aligned-header {
|
|
2
|
+
// Public API (allowed to be overridden)
|
|
3
|
+
--_op-line-height: var(--op-line-height-base);
|
|
4
|
+
--_op-font-size: var(--op-font-4x-large);
|
|
5
|
+
|
|
6
|
+
font-size: var(--_op-font-size);
|
|
7
|
+
font-weight: var(--op-font-weight-semi-bold);
|
|
8
|
+
line-height: var(--_op-line-height);
|
|
9
|
+
|
|
10
|
+
.aligned-header__centered-suffix {
|
|
11
|
+
display: inline-flex;
|
|
12
|
+
height: calc(var(--_op-line-height) * var(--_op-font-size));
|
|
13
|
+
align-items: center;
|
|
14
|
+
vertical-align: top;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.aligned-header {
|
|
19
|
+
@extend %aligned-header;
|
|
20
|
+
}
|
package/dist/tokens/tokens.json
CHANGED
|
@@ -593,6 +593,7 @@
|
|
|
593
593
|
}
|
|
594
594
|
}
|
|
595
595
|
},
|
|
596
|
+
"border": "var(--op-color-neutral-plus-five)",
|
|
596
597
|
"background": "var(--op-color-neutral-plus-eight)",
|
|
597
598
|
"on-background": "var(--op-color-neutral-on-plus-eight)"
|
|
598
599
|
},
|
|
@@ -623,15 +624,14 @@
|
|
|
623
624
|
"width": "1px",
|
|
624
625
|
"width-large": "2px",
|
|
625
626
|
"width-x-large": "4px",
|
|
626
|
-
"color": "var(--op-color-neutral-plus-five)",
|
|
627
627
|
"none": "0 0 0 0",
|
|
628
628
|
"all": "0 0 0 var(--op-border-width)",
|
|
629
629
|
"top": "0 calc(-1 * var(--op-border-width)) 0 0",
|
|
630
630
|
"right": "var(--op-border-width) 0 0 0",
|
|
631
631
|
"bottom": "0 var(--op-border-width) 0 0",
|
|
632
632
|
"left": "calc(-1 * var(--op-border-width)) 0 0 0",
|
|
633
|
-
"y": "var(--op-border-top) var(--op-border
|
|
634
|
-
"x": "var(--op-border-left) var(--op-border
|
|
633
|
+
"y": "var(--op-border-top) var(--op-color-border), var(--op-border-bottom) var(--op-color-border)",
|
|
634
|
+
"x": "var(--op-border-left) var(--op-color-border), var(--op-border-right) var(--op-color-border)"
|
|
635
635
|
},
|
|
636
636
|
"font": {
|
|
637
637
|
"scale-unit": "1rem",
|
|
@@ -659,7 +659,7 @@
|
|
|
659
659
|
"extra-bold": "800",
|
|
660
660
|
"black": "900"
|
|
661
661
|
},
|
|
662
|
-
"family": "'Noto Sans',
|
|
662
|
+
"family": "'Noto Sans', sans-serif"
|
|
663
663
|
},
|
|
664
664
|
"line-height": {
|
|
665
665
|
"none": "0",
|
|
@@ -719,7 +719,7 @@
|
|
|
719
719
|
"z-index": {
|
|
720
720
|
"header": "500",
|
|
721
721
|
"footer": "500",
|
|
722
|
-
"
|
|
722
|
+
"sidebar": "700",
|
|
723
723
|
"dialog": "800",
|
|
724
724
|
"dialog-backdrop": "801",
|
|
725
725
|
"dialog-content": "802",
|
package/package.json
CHANGED
|
@@ -1,23 +1,24 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rolemodel/optics",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "1.1.0",
|
|
4
|
+
"packageManager": "yarn@4.2.2",
|
|
4
5
|
"description": "Optics is an scss package that provides base styles and components that can be integrated and customized in a variety of projects.",
|
|
5
6
|
"main": "dist/scss/optics.scss",
|
|
6
7
|
"scripts": {
|
|
7
8
|
"test": "exit 0",
|
|
8
|
-
"build": "
|
|
9
|
+
"build": "yarn build:css && yarn build:scss && yarn build:tokens",
|
|
9
10
|
"build:css": "sass src/optics.scss dist/css/optics.css --load-path=node_modules/",
|
|
10
11
|
"build:scss": "rsync -a src/ dist/scss --exclude stories",
|
|
11
12
|
"build:tokens": "node build_token_json --source=src/core/tokens --output=dist/tokens/tokens.json",
|
|
12
|
-
"storybook": "storybook dev -p 6006",
|
|
13
|
-
"build-storybook": "storybook build",
|
|
14
|
-
"lint": "
|
|
15
|
-
"lint-fix": "
|
|
13
|
+
"storybook": "storybook dev -p 6006 --docs",
|
|
14
|
+
"build-storybook": "storybook build --docs",
|
|
15
|
+
"lint": "yarn lint:js && yarn lint:css",
|
|
16
|
+
"lint-fix": "yarn lint:js --fix && yarn lint:css --fix",
|
|
16
17
|
"lint:js": "eslint 'src/stories/**/*.js'",
|
|
17
18
|
"lint:css": "stylelint 'src/**/*.(scss|css)'",
|
|
18
19
|
"prettier": "prettier -w .",
|
|
19
20
|
"prettier-check": "prettier -c .",
|
|
20
|
-
"sanity-check": "
|
|
21
|
+
"sanity-check": "yarn lint && yarn prettier && yarn build && yarn build-storybook && rm -rf ./dist && rm -rf ./storybook-static",
|
|
21
22
|
"generate": "node ./tools/generate.js"
|
|
22
23
|
},
|
|
23
24
|
"repository": {
|
|
@@ -45,38 +46,38 @@
|
|
|
45
46
|
"modern-css-reset": "^1.4.0"
|
|
46
47
|
},
|
|
47
48
|
"devDependencies": {
|
|
48
|
-
"@babel/preset-env": "^7.
|
|
49
|
-
"@storybook/addon-essentials": "^
|
|
50
|
-
"@storybook/
|
|
51
|
-
"@storybook/
|
|
52
|
-
"@storybook/
|
|
53
|
-
"@storybook/
|
|
54
|
-
"@storybook/
|
|
55
|
-
"@storybook/
|
|
56
|
-
"@storybook/
|
|
49
|
+
"@babel/preset-env": "^7.23.9",
|
|
50
|
+
"@storybook/addon-essentials": "^8.1.3",
|
|
51
|
+
"@storybook/blocks": "^8.1.3",
|
|
52
|
+
"@storybook/html": "^8.1.3",
|
|
53
|
+
"@storybook/html-vite": "^8.1.3",
|
|
54
|
+
"@storybook/manager-api": "^8.1.3",
|
|
55
|
+
"@storybook/preview-api": "^8.1.3",
|
|
56
|
+
"@storybook/test": "^8.1.3",
|
|
57
|
+
"@storybook/theming": "^8.1.3",
|
|
57
58
|
"eslint": "^8.45.0",
|
|
58
|
-
"eslint-config-prettier": "^
|
|
59
|
+
"eslint-config-prettier": "^9.1.0",
|
|
59
60
|
"eslint-config-standard": "^17.1.0",
|
|
60
61
|
"eslint-plugin-import": "^2.27.5",
|
|
61
62
|
"eslint-plugin-n": "^16.0.1",
|
|
62
63
|
"eslint-plugin-promise": "^6.1.1",
|
|
63
64
|
"eslint-plugin-storybook": "^0.6.13",
|
|
64
65
|
"generate-template-files": "^3.2.1",
|
|
65
|
-
"postcss
|
|
66
|
+
"postcss": "^8.4.38",
|
|
67
|
+
"postcss-scss": "^4.0.9",
|
|
66
68
|
"prettier": "^3.0.0",
|
|
67
|
-
"
|
|
68
|
-
"
|
|
69
|
-
"
|
|
70
|
-
"
|
|
71
|
-
"storybook": "^7.1.0",
|
|
72
|
-
"storybook-design-token": "^3.0.0-beta.3",
|
|
69
|
+
"sass": "^1.77.2",
|
|
70
|
+
"sass-loader": "^14.1.0",
|
|
71
|
+
"storybook": "^8.1.3",
|
|
72
|
+
"storybook-design-token": "^3.1.0",
|
|
73
73
|
"style-loader": "^3.3.3",
|
|
74
|
-
"stylelint": "^
|
|
75
|
-
"stylelint-config-idiomatic-order": "^
|
|
74
|
+
"stylelint": "^16.2.1",
|
|
75
|
+
"stylelint-config-idiomatic-order": "^10.0.0",
|
|
76
76
|
"stylelint-config-prettier-scss": "^1.0.0",
|
|
77
|
-
"stylelint-config-standard-scss": "^
|
|
78
|
-
"stylelint-prettier": "^
|
|
79
|
-
"stylelint-scss": "^
|
|
77
|
+
"stylelint-config-standard-scss": "^13.0.0",
|
|
78
|
+
"stylelint-prettier": "^5.0.0",
|
|
79
|
+
"stylelint-scss": "^6.1.0",
|
|
80
|
+
"vite": "^5.2.11"
|
|
80
81
|
},
|
|
81
82
|
"peerDependencies": {
|
|
82
83
|
"tom-select": "^2.0.0"
|