@massimo-cassandro/minimo 0.1.11 → 0.2.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.
Files changed (89) hide show
  1. package/package.json +8 -4
  2. package/src/{js → components}/dialog-content.js +1 -1
  3. package/src/{css → components/inner-nav}/inner-nav.css +2 -2
  4. package/src/{js → components/inner-nav}/inner-nav.js +8 -0
  5. package/src/components/modal-content/modal-content.js +1 -1
  6. package/src/components/modal-content/modal-content.module.css +4 -4
  7. package/src/components/recaptcha/recaptcha.css +4 -5
  8. package/src/components/recaptcha/recaptcha.minimo.tokens.jsonc +24 -0
  9. package/src/{css/spinners → components/spinner}/TODO spinner-circle.css +1 -1
  10. package/src/{css/spinners → components/spinner}/spinner-circle-basic.css +3 -2
  11. package/src/{css/spinners → components/spinner}/spinner-wrapper.css +1 -1
  12. package/src/components/spinner/spinner.minimo.tokens.jsonc +22 -0
  13. package/src/components/toast/toast.js +77 -0
  14. package/src/components/toast/toast.minimo.tokens.jsonc +29 -0
  15. package/src/components/toast/toast.module.css +59 -0
  16. package/src/css/alerts.css +23 -23
  17. package/src/css/anchors.css +17 -16
  18. package/src/css/buttons/btn-close.css +8 -7
  19. package/src/css/buttons/buttons.css +105 -90
  20. package/src/css/buttons/status-buttons.css +43 -43
  21. package/src/css/container.css +3 -12
  22. package/src/css/details.css +1 -1
  23. package/src/css/dialog-content.css +2 -2
  24. package/src/css/flex.css +9 -0
  25. package/src/css/forms/fieldset.css +75 -0
  26. package/src/css/forms/form-group.css +18 -0
  27. package/src/css/forms/form-utilities.css +32 -0
  28. package/src/css/forms/forms.css +37 -202
  29. package/src/css/forms/input-group.css +49 -0
  30. package/src/css/forms/validation.css +25 -0
  31. package/src/css/grid.css +25 -18
  32. package/src/css/headings.css +10 -9
  33. package/src/css/icons.css +1 -40
  34. package/src/css/layout-base.css +3 -3
  35. package/src/css/overlay.css +1 -2
  36. package/src/css/table.css +26 -19
  37. package/src/css/text.css +8 -7
  38. package/src/css/utilities.css +90 -29
  39. package/src/custom-media-default.css +20 -8
  40. package/src/custom-properties-default.css +212 -306
  41. package/src/design-tokens/alerts.minimo.tokens.jsonc +23 -0
  42. package/src/design-tokens/basic.minimo.tokens.jsonc +52 -0
  43. package/src/design-tokens/btn-close.minimo.tokens.jsonc +95 -0
  44. package/src/design-tokens/btn-primary.minimo.tokens.jsonc +100 -0
  45. package/src/design-tokens/btn-secondary.minimo.tokens.jsonc +33 -0
  46. package/src/design-tokens/btn.minimo.tokens.jsonc +200 -0
  47. package/src/design-tokens/color-accent.minimo.tokens.jsonc +13 -0
  48. package/src/design-tokens/color-neutral.minimo.tokens.jsonc +12 -0
  49. package/src/design-tokens/color-primary.minimo.tokens.jsonc +12 -0
  50. package/src/design-tokens/color-secondary.minimo.tokens.jsonc +12 -0
  51. package/src/design-tokens/flex-grid.minimo.tokens.jsonc +18 -0
  52. package/src/design-tokens/form.minimo.tokens.jsonc +295 -0
  53. package/src/design-tokens/gradients-shadowes.minimo.tokens.jsonc +4 -0
  54. package/src/design-tokens/headings.minimo.tokens.jsonc +57 -0
  55. package/src/design-tokens/link.minimo.tokens.jsonc +41 -0
  56. package/src/design-tokens/radius.minimo.tokens.jsonc +45 -0
  57. package/src/design-tokens/size.minimo.tokens.jsonc +101 -0
  58. package/src/design-tokens/status.minimo.tokens.jsonc +69 -0
  59. package/src/design-tokens/table.minimo.tokens.jsonc +66 -0
  60. package/src/design-tokens/typography.minimo.tokens.jsonc +120 -0
  61. package/src/design-tokens/utility.minimo.tokens.jsonc +8 -0
  62. package/src/design-tokens/z-index.minimo.tokens.jsonc +8 -0
  63. package/src/fonts-template.css +7 -0
  64. package/src/index-template.css +5 -10
  65. package/src/index.js +1 -0
  66. package/src/utilities/classnames.js +3 -0
  67. package/src/web-components/simple-datatable/icons/arrow-down.svg +1 -0
  68. package/src/web-components/simple-datatable/icons/arrow-up.svg +2 -0
  69. package/src/web-components/simple-datatable/icons/arrows-down-up.svg +1 -0
  70. package/src/web-components/simple-datatable/icons/caret-left.svg +1 -0
  71. package/src/web-components/simple-datatable/icons/caret-right.svg +1 -0
  72. package/src/web-components/simple-datatable/icons/check-bold.svg +1 -0
  73. package/src/web-components/simple-datatable/icons/x-bold.svg +1 -0
  74. package/src/web-components/simple-datatable/simple-datatable.js +219 -0
  75. package/src/web-components/simple-datatable/simple-datatable.minimo.tokens.jsonc +50 -0
  76. package/src/web-components/simple-datatable/simple-datatable.module.css +214 -0
  77. package/src/web-components/simple-datatable/src/parse-cols.js +117 -0
  78. package/src/components/init.js +0 -7
  79. package/src/css/forms/form-edit-info.css +0 -17
  80. /package/src/{js → components}/alert-autoclose.js +0 -0
  81. /package/src/{js → components}/create-blurhash-canvas.js +0 -0
  82. /package/src/{js → components}/dismiss-alerts.js +0 -0
  83. /package/src/{js → components}/forms.js +0 -0
  84. /package/src/{js → components}/img-viewer-dom-builder.js +0 -0
  85. /package/src/{js → components}/overlay.js +0 -0
  86. /package/src/{js → components}/print-icon.js +0 -0
  87. /package/src/{css/spinners → components/spinner}/TODO spinner-three-dots.css +0 -0
  88. /package/src/{css/spinners → components/spinner}/spinner-trailing-dots.css +0 -0
  89. /package/src/{js → components/spinner}/spinner.js +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@massimo-cassandro/minimo",
3
- "version": "0.1.11",
3
+ "version": "0.2.0",
4
4
  "description": "Light css framework",
5
5
  "type": "module",
6
6
  "homepage": "https://github.com/massimo-cassandro/minimo#readme",
@@ -14,7 +14,9 @@
14
14
  "scripts": {
15
15
  "UPD-version": "npx update-version # --config=./dev-utilities.config.mjs",
16
16
  "upd@m": "npx upd@m",
17
- "npm-publish": "npm publish"
17
+ "npm-publish": "npm publish",
18
+ "build-tokens": "node ./utilities/build-tokens.mjs --config ./test/tokens-test/tokens-config.mjs",
19
+ "check unresolved props": "node ./utilities/check-unresolved-custom-props.mjs --config ./test/tokens-test/tokens-config.mjs"
18
20
  },
19
21
  "license": "MIT",
20
22
  "author": "Massimo Cassandro",
@@ -23,9 +25,11 @@
23
25
  },
24
26
  "main": "./src/index.js",
25
27
  "files": [
26
- "src/**/*.{js,css,svg}"
28
+ "src/**/*.{js,mjs,css,svg,tokens.json,tokens.jsonc}"
27
29
  ],
28
30
  "devDependencies": {
29
- "@massimo-cassandro/dev-updater": "^2.1.0"
31
+ "@massimo-cassandro/dev-updater": "^2.1.0",
32
+ "@massimo-cassandro/stylelint-config": "^2.3.2",
33
+ "style-dictionary": "^5.4.0"
30
34
  }
31
35
  }
@@ -1,6 +1,6 @@
1
1
  import './dialog-content.css';
2
2
  import x_icon from '@icone/x.svg?inline';
3
- import { spinner } from './spinner';
3
+ import { spinner } from './spinner/spinner';
4
4
  /**
5
5
  `indicator_class`: classe da aggiungere al wrapper per indicare in modo univoco il dialog
6
6
  */
@@ -1,8 +1,8 @@
1
1
  .inner-nav-main, .inner-nav {
2
2
  display: flex;
3
- gap: 1.5rem;
3
+ gap: var(--size-lg);
4
4
  justify-content: flex-end;
5
- margin: 1rem 0;
5
+ margin-block: var(--size-base);
6
6
  /* text-align: end; */
7
7
 
8
8
  @media print {
@@ -1,4 +1,12 @@
1
1
  // navigazione scheda / elenco
2
+ /*
3
+ <p class="inner-nav-main">...</p>
4
+ ...
5
+ <p class="inner-nav"></p>
6
+ */
7
+
8
+ import './inner-nav.css';
9
+
2
10
  let nav_primary = document.querySelector('.inner-nav-main');
3
11
  if (nav_primary) {
4
12
  // nav_primary.classList.add('text-right', 'd-print-none');
@@ -27,7 +27,7 @@ export function modalContent({
27
27
  /** dimensione modal: full, large, medium o small */
28
28
  size = 'large',
29
29
 
30
- /** padding: std (var(--spacing-md) 0) o none */
30
+ /** padding: std (var(--size-md) 0) o none */
31
31
  padding = 'std'
32
32
  }) {
33
33
 
@@ -52,7 +52,7 @@
52
52
  .dialogInner {
53
53
  width: 100%;
54
54
  height: 100%;
55
- padding-inline-end: var(--spacing-md);
55
+ padding-inline-end: var(--size-md);
56
56
  overflow-x: hidden;
57
57
  overflow-y: auto;
58
58
  /* scrollbar-gutter: stable; */
@@ -60,7 +60,7 @@
60
60
 
61
61
  /* stylelint-disable selector-class-pattern */
62
62
  .padding-std & {
63
- padding: var(--spacing-md) 0;
63
+ padding: var(--size-md) 0;
64
64
  }
65
65
  .padding-none & {
66
66
  padding: 0;
@@ -70,7 +70,7 @@
70
70
 
71
71
  .modalSpinner {
72
72
  position: relative;
73
- padding-block-start: var(--spacing-2xl);
73
+ padding-block-start: var(--size-2xl);
74
74
 
75
75
  .dialog.on & {
76
76
  display: none;
@@ -99,7 +99,7 @@
99
99
  --btn-hover-color: var(--secondary, #fff);
100
100
  --btn-hover-bg-color: var(--secondary-fg, #000);
101
101
  --icon-size: 2.5rem;
102
- --btn-padding: var(--spacing-xs, .5rem);
102
+ --btn-padding: var(--size-xs, .5rem);
103
103
  --icon-bars-thickness: 3px;
104
104
 
105
105
  position: absolute;
@@ -36,7 +36,7 @@
36
36
  inset: 0;
37
37
  display: block;
38
38
  content: '';
39
- background-color: var(--recaptcha-alert-overlay, color-mix(in srgb, #000 50%, transparent));
39
+ background-color: var(--recaptcha-alert-overlay-color, rgb(0 0 0 / .5));
40
40
  }
41
41
  }
42
42
  input, select, textarea {
@@ -49,12 +49,11 @@
49
49
  top: 50%;
50
50
  left: 50%;
51
51
  display: block;
52
- padding: var(--spacing-xs);
53
- color: var(--recaptcha-alert-fg, #fff);
54
- background-color: var(--recaptcha-alert-bg, #000);
52
+ padding: var(--size-xs);
53
+ color: var(--recaptcha-alert-foreground, #fff);
54
+ background-color: var(--recaptcha-alert-background-color, #000);
55
55
  border: .5px solid currentColor;
56
56
  border-radius: var(--radius-xs);
57
- box-shadow: var(--box-shadow-base);
58
57
  transform-origin: center;
59
58
  translate: -50% -50%;
60
59
  }
@@ -0,0 +1,24 @@
1
+ {
2
+ "recaptcha": {
3
+ "alert": {
4
+
5
+ "overlay": {
6
+ "color": {
7
+ "$type": "color",
8
+ "$value": "rgb(0 0 0 / .5)"
9
+ },
10
+ },
11
+
12
+ "background": {
13
+ "color": {
14
+ "$type": "color",
15
+ "$value": "#000"
16
+ }
17
+ },
18
+ "foreground": {
19
+ "$type": "color",
20
+ "$value": "#fff"
21
+ },
22
+ }
23
+ }
24
+ }
@@ -11,7 +11,7 @@ https://lukehaas.me/projects/css-spinners/ (#2)
11
11
  height: 10em;
12
12
  margin: 55px auto;
13
13
  font-size: .7rem;
14
- color: var(--spinner-color);
14
+ color: var(--_spinner-color);
15
15
  text-indent: -99999em;
16
16
  box-shadow: inset 0 0 0 1em;
17
17
  transform: translateZ(0);
@@ -1,10 +1,11 @@
1
1
  .spinner {
2
- display: inline-block;
2
+ display: block;
3
3
  width: var(--spinner-size);
4
4
  aspect-ratio: 1;
5
+ margin: .5rem auto;
5
6
  color: var(--spinner-color);
6
7
  text-indent: -99999em;
7
- border: var(--spinner-stroke) solid;
8
+ border: var(--spinner-stroke-width) solid;
8
9
  border-color: currentColor currentColor transparent;
9
10
  border-radius: 50%;
10
11
  animation: spinner-border .7s linear infinite;
@@ -5,7 +5,7 @@
5
5
  display: grid;
6
6
  place-content: center;
7
7
  pointer-events: none;
8
- background-color: var(--spinner-overlay-color);
8
+ background-color: var(--overlay-color);
9
9
  }
10
10
 
11
11
  .spinner-wrapper {
@@ -0,0 +1,22 @@
1
+ {
2
+ "spinner": {
3
+
4
+ "size": {
5
+ "$value": "{size.lg}",
6
+ "$type": "dimension"
7
+ },
8
+
9
+ "color": {
10
+ "$value": "{primary.base}",
11
+ "$type": "color"
12
+ },
13
+
14
+ "stroke": {
15
+ "width": {
16
+ "$value": "2px",
17
+ "$type": "dimension"
18
+ }
19
+ },
20
+
21
+ }
22
+ }
@@ -0,0 +1,77 @@
1
+ // forked from https://github.com/argyleink/gui-challenges/tree/main/toast
2
+ // https://web.dev/articles/building/a-toast-component?hl=en
3
+
4
+ // TODO rivedere
5
+
6
+ import * as styles from './toast.module.css';
7
+
8
+
9
+ const init = () => {
10
+ const toastWrapper = document.createElement('section');
11
+ toastWrapper.classList.add(styles.toastWrapper);
12
+
13
+ // document.firstElementChild.insertBefore(toastWrapper, document.body);
14
+ document.body.append(toastWrapper);
15
+ return toastWrapper;
16
+ };
17
+
18
+ const createToast = text => {
19
+ const thisToast = document.createElement('output');
20
+
21
+ thisToast.innerHTML = text;
22
+ thisToast.classList.add(styles.toast);
23
+ thisToast.setAttribute('role', 'status');
24
+ thisToast.setAttribute('aria-live', 'polite');
25
+
26
+ return thisToast;
27
+ };
28
+
29
+ const addToast = toast => {
30
+ const { matches:motionOK } = window.matchMedia(
31
+ '(prefers-reduced-motion: no-preference)'
32
+ );
33
+
34
+ toastWrapper.children.length && motionOK
35
+ ? flipToast(toast)
36
+ : toastWrapper.appendChild(toast);
37
+ };
38
+
39
+ const Toast = text => {
40
+ let toast = createToast(text);
41
+ addToast(toast);
42
+
43
+ return Promise.allSettled(
44
+ toast.getAnimations().map( animation => animation.finished )
45
+ ).then(() => {
46
+ toastWrapper.removeChild(toast);
47
+ });
48
+ };
49
+
50
+ // https://aerotwist.com/blog/flip-your-animations/
51
+ const flipToast = toast => {
52
+ // FIRST
53
+ const first = toastWrapper.offsetHeight;
54
+
55
+ // add new child to change container size
56
+ toastWrapper.appendChild(toast);
57
+
58
+ // LAST
59
+ const last = toastWrapper.offsetHeight;
60
+
61
+ // INVERT
62
+ const invert = last - first;
63
+
64
+ // PLAY
65
+ const animation = toastWrapper.animate([
66
+ { transform: `translateY(${invert}px)` },
67
+ { transform: 'translateY(0)' }
68
+ ], {
69
+ duration: 150,
70
+ easing: 'ease-out',
71
+ });
72
+
73
+ animation.startTime = document.timeline.currentTime;
74
+ };
75
+
76
+ const toastWrapper = init();
77
+ export { Toast };
@@ -0,0 +1,29 @@
1
+ {
2
+ "toast": {
3
+
4
+ "font": {
5
+ "size": {
6
+ "$value": "{font.size.sm}",
7
+ "$type": "dimension"
8
+ },
9
+ },
10
+
11
+ "border": {
12
+ "radius": {
13
+ "$value": "{radius.sm}",
14
+ "$type": "color"
15
+ }
16
+ },
17
+ "text": {
18
+ "color": {
19
+ "$value": "{text.color}",
20
+ "$type": "color"
21
+ }
22
+ },
23
+ "duration": {
24
+ "$value": "5s",
25
+ "$type": "duration"
26
+ }
27
+ }
28
+
29
+ }
@@ -0,0 +1,59 @@
1
+ /* purgecss start ignore */
2
+ .toastWrapper {
3
+ position: fixed;
4
+ inset-block-end: 0;
5
+ inset-inline: 0;
6
+ z-index: 1;
7
+
8
+ display: grid;
9
+ gap: 1vh;
10
+ justify-content: center;
11
+ justify-items: stretch;
12
+ padding-block-end: 5vh;
13
+
14
+ /* optimizations */
15
+ pointer-events: none;
16
+ }
17
+
18
+ .toast {
19
+ --_bg-lightness: 90%;
20
+ --_travel-distance: 0;
21
+
22
+ max-inline-size: min(25ch, 90vw);
23
+ padding-block: .5ch;
24
+ padding-inline: 1ch;
25
+
26
+ /* font-family: system-ui, sans-serif; */
27
+ font-size: var(--toast-font-size);
28
+ color: var(--toast-text-color);
29
+ background: hsl(0 0% var(--_bg-lightness) / 90%);
30
+ border-radius: var(--toast-border-radius);
31
+ animation:
32
+ fade-in .3s ease,
33
+ slide-in .3s ease,
34
+ fade-out .3s ease var(--toast-duration);
35
+
36
+ will-change: transform;
37
+
38
+ @media (--dark) {
39
+ /* color: white; */
40
+ --_bg-lightness: 20%;
41
+ }
42
+
43
+ @media (--motionOK) {
44
+ --_travel-distance: 5vh;
45
+ }
46
+ }
47
+
48
+ @keyframes fade-in {
49
+ from { opacity: 0; }
50
+ }
51
+
52
+ @keyframes fade-out {
53
+ to { opacity: 0; }
54
+ }
55
+
56
+ @keyframes slide-in {
57
+ from { transform: translateY(var(--_travel-distance, 10px)); }
58
+ }
59
+ /* purgecss end ignore */
@@ -25,44 +25,44 @@
25
25
  */
26
26
 
27
27
  /* alert-error / alert-danger (default) */
28
- --alert-bg-color: var(--status-danger-color);
29
- --alert-fg-color: var(--status-danger-fg-color);
30
- --alert-border-color: var(--status-danger-border-color);
28
+ --_alert-bg-color: var(--status-danger-color);
29
+ --_alert-fg-color: var(--status-danger-fg);
30
+ --_alert-border-color: var(--status-danger-border-color);
31
31
 
32
32
  position: relative;
33
33
 
34
34
  &.alert-warning, &.alert-notice {
35
- --alert-bg-color: var(--status-warning-color);
36
- --alert-fg-color: var(--status-warning-fg-color);
37
- --alert-border-color: var(--status-warning-border-color);
35
+ --_alert-bg-color: var(--status-warning-color);
36
+ --_alert-fg-color: var(--status-warning-fg);
37
+ --_alert-border-color: var(--status-warning-border-color);
38
38
  }
39
39
  &.alert-info {
40
- --alert-bg-color: var(--status-info-color);
41
- --alert-fg-color: var(--status-info-fg-color);
42
- --alert-border-color: var(--status-info-border-color);
40
+ --_alert-bg-color: var(--status-info-color);
41
+ --_alert-fg-color: var(--status-info-fg);
42
+ --_alert-border-color: var(--status-info-border-color);
43
43
  }
44
44
  &.alert-success {
45
- --alert-bg-color: var(--status-success-color);
46
- --alert-fg-color: var(--status-success-fg-color);
47
- --alert-border-color: var(--status-success-border-color);
45
+ --_alert-bg-color: var(--status-success-color);
46
+ --_alert-fg-color: var(--status-success-fg);
47
+ --_alert-border-color: var(--status-success-border-color);
48
48
  }
49
49
 
50
- padding: var(--spacing-base) var(--spacing-xl) var(--spacing-base) var(--spacing-base);
51
- margin: var(--spacing-base) 0;
50
+ padding: var(--size-base) var(--size-xl) var(--size-base) var(--size-base);
51
+ margin: var(--size-base) 0;
52
52
  font-size: var(--font-size-md);
53
53
  font-weight: var(--font-weight-semibold);
54
- color: var(--alert-fg-color);
55
- background-color: var(--alert-bg-color);
56
- border: 1px solid var(--alert-border-color);
54
+ color: var(--_alert-fg-color);
55
+ background-color: color-mix(in srgb, var(--_alert-bg-color) 60%, transparent);
56
+ border: 1px solid var(--_alert-border-color);
57
57
  border-radius: var(--alert-border-radius);
58
- box-shadow: var(--alert-box-shadow);
58
+ box-shadow: var(--alert-drop-shadow);
59
59
 
60
60
  h2 {
61
- margin: 0 0 var(--spacing-xs);
61
+ margin: 0 0 var(--size-xs);
62
62
  font-size: var(--font-size-lg);
63
63
  }
64
64
  p {
65
- margin-block-end: var(--spacing-xs);
65
+ margin-block-end: var(--size-xs);
66
66
  &:last-child {
67
67
  margin-block-end: 0;
68
68
  }
@@ -71,13 +71,13 @@
71
71
  text-decoration: underline;
72
72
  text-underline-offset: 3px;
73
73
  &, &:visited {
74
- color: var(--alert-link-color);
74
+ color: var(--_alert-link-color);
75
75
  }
76
76
 
77
- @media (--mouse) {
77
+ @media (hover: hover) {
78
78
  &:hover {
79
79
  text-decoration-thickness: 4px;
80
- background-color: color-mix(in srgb, var(--body-bg-color) 30%, transparent);
80
+ background-color: color-mix(in srgb, var(--body-background-color) 30%, transparent);
81
81
  }
82
82
  }
83
83
  } */
@@ -9,32 +9,33 @@ a:link, .btn-link {
9
9
  }
10
10
  }
11
11
 
12
+ a:not(.btn) {
13
+ text-decoration: none;
14
+ &:link {
15
+ color: var(--link-color);
16
+ }
17
+ &:visited {
18
+ color: var(--link-visited-color);
19
+ }
20
+ }
12
21
 
13
22
  a:not(.btn), .btn-link {
14
23
  &:focus, &:focus-visible {
15
24
  outline: 1px solid color-mix(in srgb, var(--link-color) 60%, transparent);
16
25
  outline-offset: 2px;
17
26
  }
18
- &:hover {
19
- text-decoration: underline;
20
- text-underline-offset: 2px;
27
+ @media (hover: hover) {
28
+ &:hover {
29
+ text-decoration: underline;
30
+ text-underline-offset: 2px;
31
+ }
21
32
  }
22
33
  &:active {
23
- /* TODO rivedere, sostituire con colori specifici da cuistome props */
34
+ /* TODO rivedere, sostituire con colori specifici da custom props */
24
35
  /* stylelint-disable-next-line declaration-no-important */
25
- color: var(--body-bg-color) !important;
26
- background-color: var(--link-color);
36
+ color: var(--body-background-color) !important;
27
37
  outline: 2px solid var(--link-color);
38
+ background-color: var(--link-color);
28
39
  offset: 0;
29
40
  }
30
41
  }
31
-
32
- a:not(.btn) {
33
- text-decoration: none;
34
- &:link {
35
- color: var(--link-color);
36
- }
37
- &:visited {
38
- color: var(--link-visited-color);
39
- }
40
- }
@@ -7,7 +7,7 @@
7
7
 
8
8
  .btn-close {
9
9
 
10
- --icon-bar-width: calc(var(--btn-close-size) - (var(--btn-close-padding) * 2) - (var(--btn-close-border-width) * 2));
10
+ --_icon-bar-width: calc(var(--btn-close-size) - (var(--btn-close-padding) * 2) - (var(--btn-close-border-width) * 2));
11
11
 
12
12
  position: relative;
13
13
 
@@ -17,7 +17,7 @@
17
17
  padding: var(--btn-close-padding);
18
18
  color: var(--btn-close-icon-color);
19
19
  cursor: pointer;
20
- background-color: var(--btn-close-background);
20
+ background-color: var(--btn-close-background-color);
21
21
  border: var(--btn-close-border-width) solid var(--btn-close-border-color);
22
22
  border-radius: var(--btn-close-border-radius);
23
23
 
@@ -26,7 +26,7 @@
26
26
  top: 50%;
27
27
  left: 0;
28
28
  display: block;
29
- width: var(--icon-bar-width);
29
+ width: var(--_icon-bar-width);
30
30
  height: var(--btn-close-icon-bar-size);
31
31
  content: '';
32
32
  background: currentColor;
@@ -42,23 +42,24 @@
42
42
 
43
43
  &:focus {
44
44
  outline: var(--btn-close-focus-outline-width) solid var(--btn-close-focus-outline-color);
45
+ outline-offset: var(--btn-close-focus-outline-offset);
45
46
  }
46
47
 
47
48
  @media (hover: hover) {
48
49
  &:hover {
49
50
 
50
- background-color: var(--btn-close-hover-background);
51
+ background-color: var(--btn-close-hover-background-color);
51
52
 
52
53
  &::before, &::after {
53
- background-color: var(--btn-close-icon-hover-color);
54
+ background-color: var(--btn-close-hover-icon-color);
54
55
  }
55
56
  }
56
57
  }
57
58
 
58
59
  &:active {
59
- background-color: var(--btn-close-active-background);
60
+ background-color: var(--btn-close-active-background-color);
60
61
  &::before, &::after {
61
- background-color: var(--btn-close-icon-active-color);
62
+ background-color: var(--btn-close-active-icon-color);
62
63
  }
63
64
 
64
65
  }