@rolemodel/optics 2.2.0 → 2.3.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.
Files changed (52) hide show
  1. package/.github/pull_request_template.md +3 -0
  2. package/.github/workflows/deploy-to-ghp.yml +20 -0
  3. package/.github/workflows/{release-package.yml → deploy-to-npm.yml} +4 -15
  4. package/.github/workflows/linting.yml +2 -1
  5. package/.github/workflows/publish-storybook.yml +2 -1
  6. package/.stylelintrc.json +3 -2
  7. package/.yarn/install-state.gz +0 -0
  8. package/build_token_json.js +5 -4
  9. package/dist/css/addons/panel.css +3 -3
  10. package/dist/css/addons/tom-select.css +5 -5
  11. package/dist/css/components/accordion.css +3 -3
  12. package/dist/css/components/alert.css +2 -2
  13. package/dist/css/components/avatar.css +6 -6
  14. package/dist/css/components/button.css +3 -3
  15. package/dist/css/components/button_group.css +4 -4
  16. package/dist/css/components/card.css +4 -4
  17. package/dist/css/components/confirm-dialog.css +1 -1
  18. package/dist/css/components/divider.css +7 -6
  19. package/dist/css/components/form.css +13 -14
  20. package/dist/css/components/icon.css +4 -4
  21. package/dist/css/components/modal.css +25 -43
  22. package/dist/css/components/navbar.css +6 -4
  23. package/dist/css/components/pagination.css +1 -1
  24. package/dist/css/components/segmented-control.css +5 -5
  25. package/dist/css/components/side_panel.css +4 -4
  26. package/dist/css/components/sidebar.css +11 -8
  27. package/dist/css/components/spinner.css +3 -3
  28. package/dist/css/components/switch.css +8 -8
  29. package/dist/css/components/table.css +3 -3
  30. package/dist/css/components/tooltip.css +2 -2
  31. package/dist/css/core/base.css +3 -4
  32. package/dist/css/core/layout.css +114 -7
  33. package/dist/css/core/tokens/base_tokens.css +6 -5
  34. package/dist/css/core/utilities.css +93 -68
  35. package/dist/css/optics+feather_icons.css +5967 -0
  36. package/dist/css/optics+feather_icons.min.css +1 -0
  37. package/dist/css/optics+lucide_icons.css +9927 -0
  38. package/dist/css/optics+lucide_icons.min.css +1 -0
  39. package/dist/css/optics+material_outlined_variable.css +5267 -0
  40. package/dist/css/optics+material_outlined_variable.min.css +1 -0
  41. package/dist/css/optics+no_icons.css +5258 -0
  42. package/dist/css/optics+no_icons.min.css +1 -0
  43. package/dist/css/optics+phosphor_icons.css +5298 -0
  44. package/dist/css/optics+phosphor_icons.min.css +1 -0
  45. package/dist/css/optics+tabler_icons.css +5267 -0
  46. package/dist/css/optics+tabler_icons.min.css +1 -0
  47. package/dist/css/optics.css +321 -209
  48. package/dist/css/optics.min.css +1 -1
  49. package/dist/package.json +18 -17
  50. package/dist/tokens/tokens.json +1 -1
  51. package/package.json +18 -17
  52. package/postcss.config.js +9 -1
@@ -34,6 +34,9 @@ Cross out all that don't apply with ~~ ~~ around it like ~~this~~
34
34
  - [ ] Have you updated the dependency graph?
35
35
  - [ ] Have you updated the docs?
36
36
  - [ ] Do you need to update the package version?
37
+ - [ ] Did you update the example pages in `.storybook/assets`?
38
+ - [ ] Were any changes made to the top level optics.css file?
39
+ - [ ] Were those changes reflected in the other top level files?
37
40
 
38
41
  ## Screenshots
39
42
 
@@ -0,0 +1,20 @@
1
+ name: Deploy to GHP
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ release:
6
+ types: [published]
7
+ jobs:
8
+ build-gph:
9
+ runs-on: ubuntu-latest
10
+ steps:
11
+ - uses: actions/checkout@v3
12
+ - uses: actions/setup-node@v3
13
+ with:
14
+ node-version: '24.x'
15
+ registry-url: 'https://npm.pkg.github.com/'
16
+ - run: yarn install --immutable
17
+ - run: yarn build
18
+ - run: npm publish --access public
19
+ env:
20
+ NODE_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}}
@@ -1,9 +1,11 @@
1
- name: Deploy to NPM and GHP
1
+ name: Deploy to NPM
2
2
 
3
3
  on:
4
+ workflow_dispatch:
4
5
  release:
5
6
  types: [published]
6
-
7
+ permissions:
8
+ contents: write
7
9
  jobs:
8
10
  build-npm:
9
11
  runs-on: ubuntu-latest
@@ -18,16 +20,3 @@ jobs:
18
20
  - run: npm publish --access public
19
21
  env:
20
22
  NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
21
- build-gph:
22
- runs-on: ubuntu-latest
23
- steps:
24
- - uses: actions/checkout@v3
25
- - uses: actions/setup-node@v3
26
- with:
27
- node-version: '24.x'
28
- registry-url: https://npm.pkg.github.com/
29
- - run: yarn install --immutable
30
- - run: yarn build
31
- - run: npm publish --access public
32
- env:
33
- NODE_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}}
@@ -7,7 +7,8 @@ on:
7
7
  branches: ['main']
8
8
  pull_request:
9
9
  branches: ['main']
10
-
10
+ permissions:
11
+ contents: read
11
12
  jobs:
12
13
  build:
13
14
  name: Run linters and check build scripts
@@ -4,7 +4,8 @@ on:
4
4
  workflow_dispatch:
5
5
  release:
6
6
  types: [created]
7
-
7
+ permissions:
8
+ contents: write
8
9
  jobs:
9
10
  build-and-deploy:
10
11
  runs-on: ubuntu-latest
package/.stylelintrc.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "extends": ["stylelint-config-idiomatic-order"],
3
- "plugins": ["stylelint-prettier"],
3
+ "plugins": ["stylelint-prettier", "stylelint-use-logical"],
4
4
  "overrides": [],
5
5
  "rules": {
6
6
  "prettier/prettier": true,
@@ -10,6 +10,7 @@
10
10
  "message": "CSS variables should be prefixed with op-"
11
11
  }
12
12
  ],
13
- "selector-class-pattern": null
13
+ "selector-class-pattern": null,
14
+ "csstools/use-logical": "always"
14
15
  }
15
16
  }
Binary file
@@ -108,16 +108,17 @@ function addToJson(keys, data, value) {
108
108
  }
109
109
 
110
110
  try {
111
- const arguments = {}
111
+ const parsedArgs = {}
112
+
112
113
  process.argv.forEach((argument) => {
113
114
  const values = argument.slice(2).split('=')
114
115
  if (values.length === 2) {
115
- arguments[values[0]] = values[1]
116
+ parsedArgs[values[0]] = values[1]
116
117
  }
117
118
  })
118
119
 
119
- const source = arguments['source'] || 'src/core/tokens'
120
- const output = arguments['output'] || './dist/tokens'
120
+ const source = parsedArgs['source'] || 'src/core/tokens'
121
+ const output = parsedArgs['output'] || './dist/tokens'
121
122
  const outputPath = path.dirname(output)
122
123
  const outputFile = path.basename(output)
123
124
 
@@ -3,10 +3,10 @@
3
3
 
4
4
  position: absolute;
5
5
  z-index: var(--op-z-index-sidebar);
6
- width: var(--op-panel-width);
7
- height: 100vh;
8
6
  background-color: var(--op-color-background);
7
+ block-size: 100vh;
9
8
  color: var(--op-color-on-background);
9
+ inline-size: var(--op-panel-width);
10
10
  inset-inline-end: calc(-1 * var(--op-panel-width)); /* this pushes the panel off the screen to the right */
11
11
  overflow-y: scroll;
12
12
  padding-block-end: var(--op-space-large);
@@ -23,7 +23,7 @@
23
23
  padding: var(--op-space-medium);
24
24
  border-radius: 100%;
25
25
  cursor: pointer;
26
- float: right;
26
+ float: inline-end;
27
27
 
28
28
  &:hover {
29
29
  background-color: var(--op-color-neutral-plus-seven);
@@ -2,7 +2,6 @@
2
2
  .ts-wrapper {
3
3
  /* Control */
4
4
  .ts-control {
5
- min-height: var(--op-input-height-large);
6
5
  align-items: center;
7
6
  border: none;
8
7
  border-radius: var(--op-radius-large);
@@ -12,13 +11,14 @@
12
11
  font-size: var(--op-font-x-small);
13
12
  font-weight: var(--op-font-weight-light);
14
13
  line-height: var(--op-line-height-base);
14
+ min-block-size: var(--op-input-height-large);
15
15
  }
16
16
 
17
17
  /* Active control */
18
18
  &.dropdown-active {
19
19
  .ts-control {
20
- border-bottom-left-radius: 0;
21
- border-bottom-right-radius: 0;
20
+ border-end-end-radius: 0;
21
+ border-end-start-radius: 0;
22
22
  }
23
23
  }
24
24
 
@@ -26,8 +26,8 @@
26
26
  .ts-dropdown {
27
27
  border: none;
28
28
  margin: 0;
29
- border-bottom-left-radius: var(--op-radius-large);
30
- border-bottom-right-radius: var(--op-radius-large);
29
+ border-end-end-radius: var(--op-radius-large);
30
+ border-end-start-radius: var(--op-radius-large);
31
31
  box-shadow: var(--op-border-all) var(--op-color-border);
32
32
  contain: paint;
33
33
 
@@ -9,11 +9,11 @@
9
9
 
10
10
  summary {
11
11
  display: grid;
12
- min-height: var(--_op-accordion-summary-min-height);
13
12
  align-items: center;
14
13
  cursor: pointer;
15
14
  gap: var(--op-space-2x-small);
16
15
  grid-template-columns: auto 1fr auto;
16
+ min-block-size: var(--_op-accordion-summary-min-height);
17
17
 
18
18
  &::marker,
19
19
  &::-webkit-details-marker {
@@ -38,7 +38,7 @@
38
38
  }
39
39
 
40
40
  &::details-content {
41
- height: 0;
41
+ block-size: 0;
42
42
  transition: var(--op-transition-accordion-content);
43
43
  }
44
44
 
@@ -48,7 +48,7 @@
48
48
  }
49
49
 
50
50
  &::details-content {
51
- height: auto;
51
+ block-size: auto;
52
52
  }
53
53
  }
54
54
 
@@ -36,9 +36,9 @@
36
36
  &.alert--flash {
37
37
  position: fixed;
38
38
  z-index: var(--op-z-index-alert-group);
39
- top: var(--op-space-large);
40
- right: var(--op-space-large);
41
39
  animation: var(--op-animation-flash);
40
+ inset-block-start: var(--op-space-large);
41
+ inset-inline-end: var(--op-space-large);
42
42
  }
43
43
 
44
44
  &.alert--warning {
@@ -18,11 +18,11 @@
18
18
  z-index: 1;
19
19
  display: block;
20
20
  overflow: hidden;
21
- width: var(--__op-avatar-size);
22
- min-width: var(--__op-avatar-size);
23
- height: var(--__op-avatar-size);
24
- min-height: var(--__op-avatar-size);
25
21
  border-radius: var(--_op-avatar-border-radius);
22
+ block-size: var(--__op-avatar-size);
23
+ inline-size: var(--__op-avatar-size);
24
+ min-block-size: var(--__op-avatar-size);
25
+ min-inline-size: var(--__op-avatar-size);
26
26
 
27
27
  &::before {
28
28
  position: absolute;
@@ -43,8 +43,8 @@
43
43
  }
44
44
 
45
45
  img {
46
- width: 100%;
47
- height: 100%;
46
+ block-size: 100%;
47
+ inline-size: 100%;
48
48
  object-fit: cover;
49
49
  }
50
50
 
@@ -16,7 +16,6 @@
16
16
  --__op-btn-padding: var(--_op-btn-padding-large);
17
17
 
18
18
  display: inline-flex;
19
- min-height: var(--__op-btn-height);
20
19
  align-items: center;
21
20
  justify-content: center;
22
21
  padding: var(--__op-btn-padding);
@@ -29,6 +28,7 @@
29
28
  font-size: var(--__op-btn-font-size);
30
29
  font-weight: var(--op-font-weight-normal);
31
30
  gap: var(--op-space-x-small);
31
+ min-block-size: var(--__op-btn-height);
32
32
  text-align: center;
33
33
  text-decoration: none;
34
34
  transition: var(--op-transition-input);
@@ -92,9 +92,9 @@
92
92
 
93
93
  /* Icon Modifier */
94
94
  &.btn--icon {
95
- width: var(--__op-btn-height);
96
- min-width: var(--__op-btn-height);
97
95
  padding: 0;
96
+ inline-size: var(--__op-btn-height);
97
+ min-inline-size: var(--__op-btn-height);
98
98
  }
99
99
 
100
100
  /* Icon With Label Modifier */
@@ -30,13 +30,13 @@
30
30
  }
31
31
 
32
32
  &:first-child:not(:last-child) {
33
- border-bottom-right-radius: 0;
34
- border-top-right-radius: 0;
33
+ border-end-end-radius: 0;
34
+ border-start-end-radius: 0;
35
35
  }
36
36
 
37
37
  &:last-child:not(:first-child) {
38
- border-bottom-left-radius: 0;
39
- border-top-left-radius: 0;
38
+ border-end-start-radius: 0;
39
+ border-start-start-radius: 0;
40
40
  }
41
41
  }
42
42
  }
@@ -50,8 +50,8 @@
50
50
  }
51
51
 
52
52
  .card__header {
53
- border-top-left-radius: var(--_op-card-radius);
54
- border-top-right-radius: var(--_op-card-radius);
53
+ border-start-end-radius: var(--_op-card-radius);
54
+ border-start-start-radius: var(--_op-card-radius);
55
55
 
56
56
  h1,
57
57
  h2,
@@ -64,7 +64,7 @@
64
64
  }
65
65
 
66
66
  .card__footer {
67
- border-bottom-left-radius: var(--_op-card-radius);
68
- border-bottom-right-radius: var(--_op-card-radius);
67
+ border-end-end-radius: var(--_op-card-radius);
68
+ border-end-start-radius: var(--_op-card-radius);
69
69
  }
70
70
  }
@@ -44,13 +44,13 @@
44
44
  --_op-confirm-dialog-width: calc(100 * var(--op-size-unit)); /* 400px */
45
45
 
46
46
  z-index: var(--op-z-index-dialog-content);
47
- width: var(--_op-confirm-dialog-width);
48
47
  border-radius: var(--op-radius-medium);
49
48
  background-color: var(--op-color-background);
50
49
  box-shadow: var(--op-border-all) var(--op-color-border);
51
50
  color: var(--op-color-on-background);
52
51
  contain: paint;
53
52
  font-size: var(--op-font-medium);
53
+ inline-size: var(--_op-confirm-dialog-width);
54
54
  line-height: var(--op-line-height-base);
55
55
  opacity: var(--op-opacity-none);
56
56
  transform: scale(0.7);
@@ -11,12 +11,12 @@
11
11
  /* Private API (component option defaults) */
12
12
  --__op-divider-height: var(--_op-divider-height-small);
13
13
  --__op-divider-padding: 0;
14
-
15
- width: 100%;
16
- height: var(--__op-divider-height);
17
14
  background-color: var(--op-color-border);
15
+ block-size: var(--__op-divider-height);
16
+ inline-size: 100%;
18
17
  margin-block: var(--__op-divider-padding);
19
18
  margin-inline: 0;
19
+ min-block-size: var(--__op-divider-height);
20
20
 
21
21
  /* Size Modifiers */
22
22
  &.divider--small {
@@ -46,10 +46,11 @@
46
46
 
47
47
  /* Direction Modifier */
48
48
  &.divider--vertical {
49
- width: var(--__op-divider-height);
50
- height: 100%;
51
- min-height: var(--_op-divider-vertical-min-height);
49
+ block-size: 100%;
50
+ inline-size: var(--__op-divider-height);
52
51
  margin-block: 0;
53
52
  margin-inline: var(--__op-divider-padding);
53
+ min-block-size: var(--_op-divider-vertical-min-height);
54
+ min-inline-size: var(--__op-divider-height);
54
55
  }
55
56
  }
@@ -10,9 +10,8 @@
10
10
  /* Private API (component option defaults) */
11
11
  --__op-form-control-height: var(--_op-form-control-height-large);
12
12
  --__op-form-control-font-size: var(--_op-form-control-font-large);
13
-
14
- min-width: var(--__op-form-control-height);
15
- height: var(--__op-form-control-height);
13
+ block-size: var(--__op-form-control-height);
14
+ min-inline-size: var(--__op-form-control-height);
16
15
 
17
16
  /* Size Modifiers */
18
17
  &.form-control--small {
@@ -60,12 +59,12 @@
60
59
  --_op-form-control-height-medium: var(--op-space-large);
61
60
  --_op-form-control-height-large: var(--op-space-x-large);
62
61
 
63
- width: var(--__op-form-control-height);
64
- height: var(--__op-form-control-height);
65
62
  align-self: center;
66
63
  margin: 0;
67
64
  accent-color: var(--op-color-primary-base);
65
+ block-size: var(--__op-form-control-height);
68
66
  cursor: pointer;
67
+ inline-size: var(--__op-form-control-height);
69
68
 
70
69
  & + label {
71
70
  align-self: center;
@@ -81,18 +80,18 @@
81
80
  --__op-form-control-border-color: var(--op-color-neutral-plus-four);
82
81
 
83
82
  display: block;
84
- width: 100%;
85
- min-width: var(--__op-form-control-height);
86
- height: var(--__op-form-control-height);
87
83
  border: none;
88
84
  border-radius: var(--op-radius-medium);
89
85
  appearance: none;
90
86
  background-color: var(--op-color-neutral-plus-eight);
87
+ block-size: var(--__op-form-control-height);
91
88
  box-shadow: var(--op-border-all) var(--__op-form-control-border-color);
92
89
  color: var(--op-color-neutral-on-plus-eight);
93
90
  cursor: text;
94
91
  font-size: var(--__op-form-control-font-size);
92
+ inline-size: 100%;
95
93
  line-height: var(--op-line-height-base);
94
+ min-inline-size: var(--__op-form-control-height);
96
95
  padding-block: var(--op-space-2x-small);
97
96
  padding-inline: var(--op-space-small) var(--op-space-x-small);
98
97
 
@@ -159,7 +158,6 @@
159
158
  --__op-btn-height: var(--__op-btn-base-height);
160
159
 
161
160
  display: inline-flex;
162
- min-height: var(--__op-btn-height);
163
161
  align-items: center;
164
162
  justify-content: center;
165
163
  border: none;
@@ -173,6 +171,7 @@
173
171
  font-weight: var(--op-font-weight-normal);
174
172
  gap: var(--op-space-x-small);
175
173
  margin-block: calc((var(--__op-form-control-height) / 2) - (var(--__op-btn-height) / 2));
174
+ min-block-size: var(--__op-btn-height);
176
175
  padding-block: 0;
177
176
  padding-inline: var(--op-space-x-small);
178
177
  text-align: center;
@@ -199,13 +198,13 @@ select.form-control:not([multiple], [type='radio'], [type='checkbox']) {
199
198
  }
200
199
 
201
200
  select.form-control[multiple] {
202
- min-height: calc(2 * var(--__op-form-control-height));
201
+ min-block-size: calc(2 * var(--__op-form-control-height));
203
202
  }
204
203
 
205
204
  textarea.form-control:not([type='radio'], [type='checkbox']) {
206
- max-width: 100%;
207
- height: calc(2 * var(--__op-form-control-height));
208
- min-height: var(--__op-form-control-height);
205
+ block-size: calc(2 * var(--__op-form-control-height));
206
+ max-inline-size: 100%;
207
+ min-block-size: var(--__op-form-control-height);
209
208
  }
210
209
 
211
210
  .form-label {
@@ -217,9 +216,9 @@ textarea.form-control:not([type='radio'], [type='checkbox']) {
217
216
  }
218
217
 
219
218
  .form-error {
220
- width: fit-content;
221
219
  color: var(--op-color-alerts-danger-base);
222
220
  font-size: var(--op-font-x-small);
221
+ inline-size: fit-content;
223
222
  }
224
223
 
225
224
  .form-hint {
@@ -34,10 +34,10 @@
34
34
  --__op-icon-optical-size: var(--_op-icon-optical-size-medium);
35
35
 
36
36
  display: inline-block;
37
- width: var(--__op-icon-font-size);
38
- height: var(--__op-icon-font-size);
37
+ block-size: var(--__op-icon-font-size);
39
38
  font-size: var(--__op-icon-font-size);
40
39
  font-weight: var(--__op-icon-weight);
40
+ inline-size: var(--__op-icon-font-size);
41
41
  line-height: var(--op-line-height-densest);
42
42
  vertical-align: middle;
43
43
 
@@ -115,7 +115,7 @@
115
115
  /* Custom SVG Icons app specific */
116
116
  .custom-icons {
117
117
  svg {
118
- width: 100%;
119
- height: 100%;
118
+ block-size: 100%;
119
+ inline-size: 100%;
120
120
  }
121
121
  }
@@ -41,20 +41,19 @@
41
41
  }
42
42
  }
43
43
 
44
- /* stylelint-disable no-descending-specificity */
45
44
  .modal {
46
45
  /* Public API (customizable component options) */
47
46
  --_op-modal-width: calc(141 * var(--op-size-unit)); /* 564px */
48
47
  --_op-modal-max-height: calc(125 * var(--op-size-unit)); /* 500px */
49
48
 
50
49
  z-index: var(--op-z-index-dialog-content);
51
- width: var(--_op-modal-width);
52
50
  border-radius: var(--op-radius-medium);
53
51
  background-color: var(--op-color-background);
54
52
  box-shadow: var(--op-border-all) var(--op-color-border);
55
53
  color: var(--op-color-on-background);
56
54
  contain: paint;
57
55
  font-size: var(--op-font-medium);
56
+ inline-size: var(--_op-modal-width);
58
57
  line-height: var(--op-line-height-base);
59
58
  opacity: var(--op-opacity-none);
60
59
  transform: scale(0.7);
@@ -75,8 +74,8 @@
75
74
  }
76
75
 
77
76
  .modal__body {
78
- max-height: var(--_op-modal-max-height);
79
77
  box-shadow: var(--op-border-all) var(--op-color-border);
78
+ max-block-size: var(--_op-modal-max-height);
80
79
  overflow-y: auto;
81
80
  }
82
81
 
@@ -87,63 +86,46 @@
87
86
  gap: var(--op-space-small);
88
87
  }
89
88
  }
90
- /* stylelint-enable no-descending-specificity */
91
89
 
92
90
  dialog.modal {
93
- position: fixed;
94
- display: block;
95
91
  padding: 0;
96
92
  border: none;
97
- inset: 0;
93
+ overscroll-behavior: contain;
94
+ transform: scale(0.7);
95
+ transition:
96
+ display var(--op-transition-modal-time) allow-discrete,
97
+ overlay var(--op-transition-modal-time) allow-discrete,
98
+ transform var(--op-transition-modal-time),
99
+ opacity var(--op-transition-modal-time);
98
100
 
99
101
  &::backdrop {
100
- /* The Dialog backdrop does not inheret from :root so these need to be duplicated here. */
101
- --op-color-black: hsl(0deg 0% 0%);
102
- --_op-modal-backdrop-active-opacity: 0.5;
103
- --op-opacity-none: 0;
104
- --op-opacity-full: 1;
105
-
106
- animation: show-backdrop 300ms ease-in;
107
- background: var(--op-color-black);
108
- opacity: var(--_op-modal-backdrop-active-opacity);
102
+ overflow: hidden;
103
+ background-color: var(--op-color-black);
104
+ opacity: var(--op-opacity-none);
105
+ overscroll-behavior: contain;
106
+ transition:
107
+ display var(--op-transition-modal-time) allow-discrete,
108
+ overlay var(--op-transition-modal-time) allow-discrete,
109
+ transform var(--op-transition-modal-time),
110
+ opacity var(--op-transition-modal-time);
109
111
  }
110
112
 
111
113
  &[open] {
112
114
  opacity: var(--op-opacity-full);
113
115
  transform: scale(1);
114
- }
115
-
116
- &.modal--closing {
117
- opacity: var(--op-opacity-none);
118
- transform: scale(0.7);
119
116
 
120
117
  &::backdrop {
121
- animation: hide-backdrop 300ms ease-in;
122
- opacity: var(--op-opacity-none);
118
+ opacity: var(--op-opacity-half);
123
119
  }
124
120
  }
125
121
  }
126
122
 
127
- /* Using the Dialog element */
128
-
129
- /* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dialog */
130
-
131
- @keyframes show-backdrop {
132
- from {
133
- opacity: var(--op-opacity-none);
134
- }
135
-
136
- to {
137
- opacity: var(--_op-modal-backdrop-active-opacity);
138
- }
139
- }
140
-
141
- @keyframes hide-backdrop {
142
- from {
143
- opacity: var(--_op-modal-backdrop-active-opacity);
144
- }
123
+ @starting-style {
124
+ dialog.modal[open] {
125
+ transform: scale(0.7);
145
126
 
146
- to {
147
- opacity: var(--op-opacity-none);
127
+ &::backdrop {
128
+ opacity: var(--op-opacity-none);
129
+ }
148
130
  }
149
131
  }
@@ -16,18 +16,20 @@
16
16
  align-items: center;
17
17
  padding: var(--op-space-small) var(--_op-navbar-horizontal-spacing);
18
18
  background-color: var(--_op-navbar-background-color);
19
- box-shadow: var(--op-border-bottom) var(--_op-navbar-border-color);
19
+ box-shadow:
20
+ var(--op-border-top) var(--_op-navbar-border-color),
21
+ var(--op-border-bottom) var(--_op-navbar-border-color);
20
22
  color: var(--_op-navbar-text-color);
21
23
  gap: var(--_op-navbar-content-spacing);
22
24
 
23
25
  /* Elements */
24
26
 
25
27
  .navbar__brand {
26
- height: var(--_op-navbar-brand-height);
27
- margin-right: var(--_op-navbar-horizontal-spacing);
28
+ block-size: var(--_op-navbar-brand-height);
29
+ margin-inline-end: var(--_op-navbar-horizontal-spacing);
28
30
 
29
31
  img {
30
- height: 100%;
32
+ block-size: 100%;
31
33
  }
32
34
  }
33
35
 
@@ -18,7 +18,7 @@
18
18
 
19
19
  /* ... Gap */
20
20
  .pagination__divider {
21
- height: 100%;
21
+ block-size: 100%;
22
22
  padding-inline: var(--op-space-x-small);
23
23
  }
24
24
  }
@@ -36,19 +36,19 @@
36
36
 
37
37
  position: relative;
38
38
  display: grid;
39
- width: fit-content;
40
- height: var(--__op-segmented-control-height);
41
39
  padding: var(--op-space-2x-small);
42
40
  border-radius: var(--op-radius-medium);
43
41
  background-color: var(--op-color-neutral-plus-eight);
42
+ block-size: var(--__op-segmented-control-height);
44
43
  box-shadow: var(--op-border-all) var(--op-color-border);
45
44
  color: var(--op-color-neutral-on-plus-eight);
46
45
  font-size: var(--__op-segmented-control-font-size);
47
46
  gap: var(--op-space-2x-small);
48
47
  grid-auto-flow: column;
48
+ inline-size: fit-content;
49
49
 
50
50
  &.segmented-control--full-width {
51
- width: 100%;
51
+ inline-size: 100%;
52
52
  }
53
53
 
54
54
  .icon {
@@ -58,12 +58,12 @@
58
58
  .segmented-control__input {
59
59
  position: absolute;
60
60
  overflow: hidden;
61
- width: 1px;
62
- height: 1px;
63
61
  padding: 0;
64
62
  border-width: 0;
65
63
  margin: -1px;
64
+ block-size: 1px;
66
65
  clip: rect(0, 0, 0, 0);
66
+ inline-size: 1px;
67
67
  white-space: nowrap;
68
68
 
69
69
  /* Selected Option */