@odx/ui 1.0.0-rc.1 → 1.0.0-rc.10

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 (92) hide show
  1. package/323d385340fb9fee6450.svg +6 -0
  2. package/LICENSE +1 -0
  3. package/README.md +32 -0
  4. package/core-icons.css +39 -9
  5. package/core-icons.woff2 +0 -0
  6. package/core-theme.css +1 -1
  7. package/package.json +7 -8
  8. package/scss/{modules → abstract}/_breakpoints.scss +11 -11
  9. package/scss/{modules/_vertical-rythm.scss → abstract/_dimensions.scss} +29 -26
  10. package/scss/abstract/_index.scss +5 -0
  11. package/scss/abstract/_motion.scss +12 -0
  12. package/scss/abstract/_typography.scss +25 -0
  13. package/scss/abstract/_utils.scss +124 -0
  14. package/scss/cdk/active-indicator.scss +25 -0
  15. package/scss/cdk/connected-overlay.scss +36 -0
  16. package/scss/components/accordion-item.component.scss +56 -0
  17. package/scss/components/accordion.component.scss +3 -0
  18. package/scss/components/{action-group/action-group.component.scss → action-group.component.scss} +11 -7
  19. package/scss/components/{area-header/area-header.component.scss → area-header.component.scss} +33 -39
  20. package/scss/components/{avatar/avatar.component.scss → avatar.component.scss} +18 -13
  21. package/scss/components/{badge/badge.component.scss → badge.component.scss} +15 -24
  22. package/scss/components/bar.component.scss +86 -0
  23. package/scss/components/breadcrumbs.component.scss +26 -0
  24. package/scss/components/button-group.component.scss +99 -0
  25. package/scss/components/button.component.scss +129 -0
  26. package/scss/components/checkbox.component.scss +117 -0
  27. package/scss/components/chip.component.scss +52 -0
  28. package/scss/components/circular-progress.component.scss +75 -0
  29. package/scss/components/content-box.component.scss +54 -0
  30. package/scss/components/dropdown.component.scss +28 -0
  31. package/scss/components/form-field.component.scss +208 -0
  32. package/scss/components/header.component.scss +40 -0
  33. package/scss/components/icon.component.scss +35 -0
  34. package/scss/components/inline-message.component.scss +33 -0
  35. package/scss/components/launch-tile.component.scss +118 -0
  36. package/scss/components/{link/link.component.scss → link.component.scss} +6 -4
  37. package/scss/components/list-item.component.scss +107 -0
  38. package/scss/components/list.component.scss +3 -0
  39. package/scss/components/loading-spinner.component.scss +54 -0
  40. package/scss/components/{logo/logo.component.scss → logo.component.scss} +5 -4
  41. package/scss/components/main-menu-button.component.scss +7 -0
  42. package/scss/components/{main-menu/components/main-menu-item.component.scss → main-menu-item.component.scss} +14 -12
  43. package/scss/components/{main-menu/main-menu.component.scss → main-menu.component.scss} +37 -29
  44. package/scss/components/menu-item.component.scss +8 -0
  45. package/scss/components/menu.component.scss +16 -0
  46. package/scss/components/modal.component.scss +144 -0
  47. package/scss/components/progress.component.scss +41 -0
  48. package/scss/components/radio-button.component.scss +120 -0
  49. package/scss/components/radio-group.component.scss +14 -0
  50. package/scss/components/rail-navigation-item.component.scss +60 -0
  51. package/scss/components/rail-navigation.component.scss +32 -0
  52. package/scss/components/select.component.scss +103 -0
  53. package/scss/components/slider.component.scss +131 -0
  54. package/scss/components/spinbox.component.scss +124 -0
  55. package/scss/components/switch.component.scss +163 -0
  56. package/scss/components/tab-bar-item.component.scss +53 -0
  57. package/scss/components/tab-bar.component.scss +124 -0
  58. package/scss/components/toast-item.component.scss +79 -0
  59. package/scss/components/toast.component.scss +33 -0
  60. package/scss/components/toggle-button-group.component.scss +63 -0
  61. package/scss/components/toggle-button.component.scss +69 -0
  62. package/scss/components/tooltip.component.scss +34 -0
  63. package/scss/core.scss +66 -30
  64. package/scss/layout/_base.scss +35 -0
  65. package/scss/layout/_content.scss +25 -0
  66. package/scss/layout/_description-list.scss +30 -0
  67. package/scss/layout/_helpers.scss +85 -0
  68. package/scss/{modules → layout}/_layout.scss +96 -46
  69. package/scss/layout/_text-list.scss +18 -0
  70. package/scss/layout/_typography.scss +114 -0
  71. package/scss/{base/_reset.scss → reset.scss} +30 -5
  72. package/scss/variables/_color-palettes.scss +59 -55
  73. package/scss/variables/_colors.scss +15 -15
  74. package/scss/variables/_controls.scss +47 -0
  75. package/scss/variables/_index.scss +6 -0
  76. package/scss/variables/_typography.scss +18 -0
  77. package/scss/variables/_vertical-rythm.scss +3 -0
  78. package/scss/variables/_visuals.scss +15 -8
  79. package/scss/_helpers.scss +0 -15
  80. package/scss/base/_mixins.scss +0 -3
  81. package/scss/base/_utils.scss +0 -19
  82. package/scss/base/mixins/_container.scss +0 -31
  83. package/scss/base/mixins/_control.scss +0 -50
  84. package/scss/base/mixins/_transition.scss +0 -10
  85. package/scss/components/button/button.component.scss +0 -94
  86. package/scss/components/checkbox/checkbox.component.scss +0 -130
  87. package/scss/components/content-box/content-box.component.scss +0 -50
  88. package/scss/components/header/header.component.scss +0 -39
  89. package/scss/components/icon/icon.component.scss +0 -38
  90. package/scss/components/main-menu/components/main-menu-button.component.scss +0 -7
  91. package/scss/components/radio-group/_radio-group.component.scss +0 -145
  92. package/scss/modules/_typography.scss +0 -161
@@ -1,9 +1,9 @@
1
1
  :root {
2
2
  --white: #ffffff;
3
- --black: #060a12;
3
+ --black: #00060f;
4
4
 
5
- --white-5: rgba(255 255 255 / 5%);
6
- --white-60: rgba(255 255 255 / 60%);
5
+ --white-5: #{rgba(#ffffff, 5%)};
6
+ --white-60: #{rgba(#ffffff, 60%)};
7
7
 
8
8
  --gray-50: #f5f7fa;
9
9
  --gray-100: #e9eef4;
@@ -16,66 +16,70 @@
16
16
  --gray-800: #697c8c;
17
17
  --gray-900: #5d6a74;
18
18
 
19
- --blue-50: #d3e2f3;
20
- --blue-100: #a2c4eb;
21
- --blue-200: #6ea5e7;
22
- --blue-300: #3683e7;
23
- --blue-400: #1062d5;
24
- --blue-500: #0647a7;
25
- --blue-600: #03398f;
26
- --blue-700: #002d74;
27
- --blue-800: #02193b;
19
+ --blue-50: #d5e2f6;
20
+ --blue-100: #a8c4f0;
21
+ --blue-200: #79a5ec;
22
+ --blue-300: #4786eb;
23
+ --blue-400: #1f65d7;
24
+ --blue-500: #0a51c2;
25
+ --blue-600: #043c95;
26
+ --blue-700: #002766;
27
+ --blue-800: #001433;
28
28
  --blue-900: #000205;
29
29
 
30
- --blue-700-5: rgba(0 45 116 / 5%);
31
- --blue-700-10: rgba(0 45 116 / 10%);
30
+ --blue-700-5: #{rgba(#002766, 5%)};
31
+ --blue-700-10: #{rgba(#002766, 10%)};
32
+ --blue-700-15: #{rgba(#002766, 15%)};
33
+ --blue-800-30: #{rgba(#001433, 30%)};
32
34
 
33
- --cyan-50: #dbf2ff;
34
- --cyan-100: #c7eaff;
35
- --cyan-200: #9edbff;
36
- --cyan-300: #75cdfe;
37
- --cyan-400: #4dbefe;
38
- --cyan-500: #22aaff;
39
- --cyan-600: #009efa;
40
- --cyan-700: #0084d1;
41
- --cyan-800: #006ba8;
42
- --cyan-900: #005180;
35
+ --cyan-50: #cbe9ff;
36
+ --cyan-100: #9dd7ff;
37
+ --cyan-200: #70c4ff;
38
+ --cyan-300: #47b3ff;
39
+ --cyan-400: #1fa2ff;
40
+ --cyan-500: #0091f7;
41
+ --cyan-600: #007ad1;
42
+ --cyan-700: #0065ad;
43
+ --cyan-800: #00508a;
44
+ --cyan-900: #003c66;
43
45
 
44
- --cyan-500-15: rgb(34 170 255 / 15%);
46
+ --cyan-500-15: #{rgba(#0091f7, 15%)};
47
+ --cyan-500-20: #{rgba(#0091f7, 20%)};
45
48
 
46
49
  --red-00: #ffe0e3;
47
- --red-50: #ffa3ac;
48
- --red-100: #ff8f9c;
49
- --red-200: #ff667d;
50
- --red-300: #ff3d61;
51
- --red-400: #ff1447;
52
- --red-500: #eb003b;
53
- --red-600: #c20030;
54
- --red-700: #990026;
55
- --red-800: #70001c;
56
- --red-900: #470012;
50
+ --red-50: #ffb4b4;
51
+ --red-100: #ff9898;
52
+ --red-200: #ff7b7b;
53
+ --red-300: #ff5c5c;
54
+ --red-400: #ff2020;
55
+ --red-500: #f30303;
56
+ --red-600: #d70202;
57
+ --red-700: #bc0000;
58
+ --red-800: #970000;
59
+ --red-900: #700000;
57
60
 
58
- --yellow-50: #fbffd1;
59
- --yellow-100: #f9ffbd;
60
- --yellow-200: #f6ff94;
61
- --yellow-300: #f3ff6b;
62
- --yellow-400: #efff42;
63
- --yellow-500: #ecff1a;
64
- --yellow-600: #dcf000;
65
- --yellow-700: #b6c700;
66
- --yellow-800: #919e00;
67
- --yellow-900: #6c7500;
61
+ --yellow-50: #fffad7;
62
+ --yellow-100: #fff7b8;
63
+ --yellow-200: #fff18a;
64
+ --yellow-300: #ffed72;
65
+ --yellow-400: #ffea46;
66
+ --yellow-500: #ffe300;
67
+ --yellow-600: #e7cc00;
68
+ --yellow-700: #bea800;
69
+ --yellow-800: #988600;
70
+ --yellow-900: #7c6d00;
68
71
 
69
- --green-50: #adffc5;
70
- --green-100: #99ffb6;
71
- --green-200: #70ff99;
72
- --green-300: #47ff7b;
73
- --green-400: #1fff5e;
74
- --green-500: #00f545;
75
- --green-600: #00cc3a;
76
- --green-700: #00a32e;
77
- --green-800: #007a23;
78
- --green-900: #005217;
72
+ --green-00: #d1ffdf;
73
+ --green-50: #b7ffc6;
74
+ --green-100: #93ffaa;
75
+ --green-200: #6aff8b;
76
+ --green-300: #36ff62;
77
+ --green-400: #0bf23e;
78
+ --green-500: #00dd31;
79
+ --green-600: #00c92c;
80
+ --green-700: #00aa25;
81
+ --green-800: #00851d;
82
+ --green-900: #006616;
79
83
 
80
84
  --orange-50: #fff6ed;
81
85
  --orange-100: #ffebd6;
@@ -19,34 +19,34 @@
19
19
  --odx-c-focus: var(--cyan-500-15);
20
20
  --odx-c-focus-outline: var(--cyan-300);
21
21
 
22
- --odx-c-selection: var(--cyan-500-15);
22
+ --odx-c-selected: var(--cyan-500-15);
23
+ --odx-c-selected-hover: var(--cyan-500-20);
24
+
25
+ --odx-c-selection: var(--cyan-300);
26
+
27
+ --odx-c-backdrop: var(--white-60);
28
+ --odx-c-backdrop-dark: var(--blue-800-30);
29
+
30
+ --odx-c-box-shadow: var(--blue-800-30);
23
31
 
24
- --odx-c-overlay: var(--white-60);
25
32
  --odx-c-seperator: var(--gray-200);
26
33
 
27
34
  --odx-c-background: var(--gray-50);
28
35
  --odx-c-background-content: var(--white);
29
36
 
30
- --odx-c-control: var(--gray-100);
31
- --odx-c-control-hover: var(--gray-400);
32
- --odx-c-control-active: var(--gray-500);
33
- --odx-c-control-disabled: var(--gray-300);
34
- --odx-c-control-text: var(--odx-c-text);
35
- --odx-c-control-text-disabled: var(--gray-600);
36
-
37
37
  --odx-c-highlight: var(--cyan-500);
38
38
  --odx-c-highlight-hover: var(--cyan-600);
39
39
  --odx-c-highlight-active: var(--cyan-700);
40
40
  --odx-c-highlight-disabled: var(--odx-c-highlight);
41
41
  --odx-c-highlight-text: var(--odx-c-text-inverse);
42
- --odx-c-highlight-text-disabled: var(--cyan-700);
42
+ --odx-c-highlight-text-disabled: var(--cyan-800);
43
43
 
44
44
  --odx-c-primary: var(--blue-700);
45
45
  --odx-c-primary-hover: var(--blue-800);
46
46
  --odx-c-primary-active: var(--blue-900);
47
47
  --odx-c-primary-disabled: var(--odx-c-primary);
48
48
  --odx-c-primary-text: var(--odx-c-text-inverse);
49
- --odx-c-primary-text-disabled: var(--blue-500);
49
+ --odx-c-primary-text-disabled: var(--blue-400);
50
50
 
51
51
  --odx-c-secondary: var(--gray-300);
52
52
  --odx-c-secondary-hover: var(--gray-400);
@@ -60,26 +60,26 @@
60
60
  --odx-c-success-active: var(--green-700);
61
61
  --odx-c-success-disabled: var(--green-500);
62
62
  --odx-c-success-text: var(--odx-c-text);
63
- --odx-c-success-text-disabled: var(--green-600);
63
+ --odx-c-success-text-disabled: var(--green-800);
64
64
 
65
65
  --odx-c-warning: var(--yellow-500);
66
66
  --odx-c-warning-hover: var(--yellow-600);
67
67
  --odx-c-warning-active: var(--yellow-700);
68
68
  --odx-c-warning-disabled: var(--yellow-500);
69
69
  --odx-c-warning-text: var(--odx-c-text);
70
- --odx-c-warning-text-disabled: var(--yellow-700);
70
+ --odx-c-warning-text-disabled: var(--yellow-800);
71
71
 
72
72
  --odx-c-danger: var(--red-500);
73
73
  --odx-c-danger-hover: var(--red-600);
74
74
  --odx-c-danger-active: var(--red-700);
75
75
  --odx-c-danger-disabled: var(--red-500);
76
76
  --odx-c-danger-text: var(--odx-c-text-inverse);
77
- --odx-c-danger-text-disabled: var(--red-600);
77
+ --odx-c-danger-text-disabled: var(--red-800);
78
78
 
79
79
  --odx-c-confirmation: var(--orange-500);
80
80
  --odx-c-confirmation-hover: var(--orange-600);
81
81
  --odx-c-confirmation-active: var(--orange-700);
82
82
  --odx-c-confirmation-disabled: var(--orange-500);
83
83
  --odx-c-confirmation-text: var(--odx-c-text);
84
- --odx-c-confirmation-text-disabled: var(--orange-700);
84
+ --odx-c-confirmation-text-disabled: var(--orange-800);
85
85
  }
@@ -0,0 +1,47 @@
1
+ :root {
2
+ --odx-control-color: var(--odx-c-text);
3
+ --odx-control-background-color: var(--gray-200);
4
+ --odx-control-outline-color: var(--gray-300);
5
+
6
+ --odx-control-color-hover: var(--odx-c-text);
7
+ --odx-control-background-color-hover: var(--gray-300);
8
+ --odx-control-outline-color-hover: var(--gray-400);
9
+
10
+ --odx-control-color-selected: var(--odx-c-highlight-text);
11
+ --odx-control-background-color-selected: var(--odx-c-highlight);
12
+ --odx-control-outline-color-selected: var(--odx-c-highlight);
13
+
14
+ --odx-control-color-disabled: var(--gray-500);
15
+ --odx-control-background-color-disabled: var(--gray-100);
16
+ --odx-control-outline-color-disabled: transparent;
17
+
18
+ --odx-control-color-readonly: var(--odx-control-color);
19
+ --odx-control-background-color-readonly: transparent;
20
+ --odx-control-outline-color-readonly: var(--odx-control-color);
21
+
22
+ --odx-control-color-error: var(--odx-c-error-text);
23
+ --odx-control-background-color-error: var(--odx-c-error);
24
+ --odx-control-outline-color-error: var(--odx-c-error-outline);
25
+ --odx-control-outline-color-error-hover: var(--odx-c-error-outline-hover);
26
+
27
+ --odx-input-control-color: var(--odx-c-text);
28
+ --odx-input-control-background-color: var(--gray-100);
29
+ --odx-input-control-outline-color: var(--gray-200);
30
+
31
+ --odx-input-control-color-hover: var(--odx-c-text);
32
+ --odx-input-control-background-color-hover: var(--gray-200);
33
+ --odx-input-control-outline-color-hover: var(--gray-300);
34
+
35
+ --odx-input-control-color-disabled: var(--gray-500);
36
+ --odx-input-control-background-color-disabled: var(--gray-50);
37
+ --odx-input-control-outline-color-disabled: transparent;
38
+
39
+ --odx-input-control-color-readonly: var(--odx-control-color);
40
+ --odx-input-control-background-color-readonly: transparent;
41
+ --odx-input-control-outline-color-readonly: var(--odx-control-outline-color);
42
+
43
+ --odx-input-control-color-error: var(--odx-c-error-text);
44
+ --odx-input-control-background-color-error: var(--odx-c-error);
45
+ --odx-input-control-outline-color-error: var(--odx-c-error-outline);
46
+ --odx-input-control-outline-color-error-hover: var(--odx-c-error-outline-hover);
47
+ }
@@ -0,0 +1,6 @@
1
+ @forward 'color-palettes';
2
+ @forward 'colors';
3
+ @forward 'controls';
4
+ @forward 'typography';
5
+ @forward 'vertical-rythm';
6
+ @forward 'visuals';
@@ -0,0 +1,18 @@
1
+ @use '../abstract/breakpoints';
2
+
3
+ :root {
4
+ --odx-typography-base-size: 1.6rem; // clamp(1.4rem, 0.667vw + 1rem, 1.6rem);
5
+ --odx-typography-base-line-height: 1.5;
6
+ --odx-typography-font-weight-normal: normal;
7
+ --odx-typography-font-weight-normal-letter-spacing: 0;
8
+ --odx-typography-font-weight-medium: 500;
9
+ --odx-typography-font-weight-medium-letter-spacing: -0.19px;
10
+ --odx-typography-font-weight-bold: bold;
11
+ --odx-typography-font-weight-bold-letter-spacing: 0;
12
+ --odx-typography-positive-font-scaling-factor: 1.125;
13
+ --odx-typography-negative-font-scaling-factor: 1.2;
14
+
15
+ @include breakpoints.up(tablet) {
16
+ --odx-typography-positive-font-scaling-factor: 1.25;
17
+ }
18
+ }
@@ -0,0 +1,3 @@
1
+ :root {
2
+ --odx-vertical-rythm-base-size: calc(var(--odx-typography-base-line-height) * var(--odx-typography-base-size));
3
+ }
@@ -1,11 +1,18 @@
1
1
  :root {
2
- --odx-v-border-radius: calc(var(--odx-t-base-size) * 0.375);
3
- --odx-v-border-radius-controls: calc(var(--odx-t-base-size) * 0.19);
4
- // --odx-v-shadow-layer-1: 0 2px 6px 0 rgba(var(--blue-500), 0.4);
5
- // --odx-v-shadow-layer-2: 0 4px 12px 0 rgba(var(--blue-500), 0.3);
6
- // --odx-v-shadow-layer-3: 0 6px 18px 0 rgba(var(--blue-500), 0.2);
7
- // --odx-v-shadow-layer-4: 0 8px 24px 0 rgba(var(--blue-500), 0.1);
8
- --odx-v-transition-duration: 200ms;
2
+ --odx-v-border-radius: calc(var(--odx-typography-base-size) * 0.375);
3
+ --odx-v-border-radius-controls: calc(var(--odx-typography-base-size) * 0.19);
4
+
5
+ --odx-v-backdrop-blur: 3px;
6
+
7
+ --odx-v-box-shadow-layer-1: 0 2px 6px 0 var(--odx-c-box-shadow);
8
+ --odx-v-box-shadow-layer-2: 0 4px 12px 0 var(--odx-c-box-shadow);
9
+
10
+ --odx-v-transition-duration: 250ms;
9
11
  --odx-v-transition-easing-fn: ease;
10
- --odx-v-focus-outline: 1px solid var(--odx-c-focus-outline);
12
+ --odx-v-outline-width: 1px;
13
+ --odx-v-outline-width-bold: 2px;
14
+
15
+ --odx-v-scrollbar-track-color: transparent;
16
+ --odx-v-scrollbar-thumb-color: var(--gray-600);
17
+ --odx-v-scrollbar-thumb-color-hover: var(--gray-700);
11
18
  }
@@ -1,15 +0,0 @@
1
- @use 'sass:math';
2
- @use 'base/mixins' as mx;
3
- @use 'modules/vertical-rythm' as vr;
4
-
5
- .visually-hidden {
6
- @include mx.visually-hidden();
7
- }
8
-
9
- .seperator,
10
- hr {
11
- @include vr.height(1, math.div(1, 24));
12
-
13
- background-color: var(--odx-c-seperator);
14
- border: 0;
15
- }
@@ -1,3 +0,0 @@
1
- @forward 'mixins/container';
2
- @forward 'mixins/control';
3
- @forward 'mixins/transition';
@@ -1,19 +0,0 @@
1
- @use 'sass:math';
2
-
3
- @function css-pow($value, $exponent) {
4
- $css-value: 1;
5
-
6
- @if $exponent < 0 {
7
- @for $i from 1 through math.abs($exponent) {
8
- $css-value: $css-value + '*1/#{$value}';
9
- }
10
- }
11
-
12
- @if $exponent > 0 {
13
- @for $i from 1 through $exponent {
14
- $css-value: $css-value + '*#{$value}';
15
- }
16
- }
17
-
18
- @return calc(#{$css-value});
19
- }
@@ -1,31 +0,0 @@
1
- /* stylelint-disable block-closing-brace-newline-after */
2
- @mixin center-content($inline: false) {
3
- @if $inline {
4
- display: inline-flex;
5
- } @else {
6
- display: flex;
7
- }
8
-
9
- align-items: center;
10
- justify-content: center;
11
- }
12
-
13
- @mixin vertical-center-content($inline: false) {
14
- @if $inline {
15
- display: inline-flex;
16
- } @else {
17
- display: flex;
18
- }
19
-
20
- align-items: center;
21
- }
22
-
23
- @mixin horizontal-center-content($inline: false) {
24
- @if $inline {
25
- display: inline-flex;
26
- } @else {
27
- display: flex;
28
- }
29
-
30
- justify-content: center;
31
- }
@@ -1,50 +0,0 @@
1
- @mixin focus-state($with-background: true) {
2
- outline-color: var(--odx-c-focus-outline);
3
-
4
- @if $with-background {
5
- background-color: var(--odx-c-focus);
6
- }
7
- }
8
-
9
- @mixin interactive($with-background: true, $focus-within: false) {
10
- cursor: pointer;
11
- outline: var(--odx-v-focus-outline);
12
- outline-color: transparent;
13
- outline-offset: -1px;
14
- user-select: none;
15
-
16
- &:disabled,
17
- &.is-disabled {
18
- cursor: not-allowed;
19
- }
20
-
21
- @if $focus-within {
22
- &.has-focus {
23
- @include focus-state($with-background);
24
- }
25
-
26
- &:focus-within:has(:focus-visible) {
27
- @include focus-state($with-background);
28
- }
29
- } @else {
30
- &:focus-visible {
31
- @include focus-state($with-background);
32
- }
33
- }
34
- }
35
-
36
- @mixin non-interactive() {
37
- pointer-events: none;
38
- user-select: none;
39
- }
40
-
41
- @mixin visually-hidden() {
42
- appearance: none;
43
- height: 0;
44
- margin: 0;
45
- opacity: 0;
46
- outline: none !important;
47
- padding: 0;
48
- position: absolute;
49
- width: 0;
50
- }
@@ -1,10 +0,0 @@
1
- @mixin transition($properties, $delay: 0ms) {
2
- $props: ();
3
-
4
- @each $prop in $properties {
5
- $props: append($props, $prop, comma);
6
- }
7
-
8
- transition: all var(--odx-v-transition-duration) $delay var(--odx-v-transition-easing-fn);
9
- transition-property: $props;
10
- }
@@ -1,94 +0,0 @@
1
- @use 'sass:math';
2
- @use '../../modules/vertical-rythm' as vr;
3
- @use '../../modules/typography' as t;
4
- @use '../../base/mixins' as mx;
5
- @use '../avatar/avatar.component' as ac;
6
-
7
- .odx-button {
8
- $variants: secondary, primary, highlight, success, danger, confirmation;
9
-
10
- @extend .odx-button--secondary;
11
- @include t.prevent-text-overflow();
12
- @include mx.transition(background-color color outline);
13
- @include mx.center-content(true);
14
- @include mx.interactive($with-background: false);
15
- @include vr.height(2, 1.5);
16
- @include vr.padding-x(0.5);
17
-
18
- border-radius: var(--odx-v-border-radius-controls);
19
- font-weight: var(--odx-t-font-weight-medium);
20
- min-width: vr.get-size(1.5);
21
- outline-width: 2px;
22
-
23
- &:not(:has(> .odx-icon, > .odx-avatar)) {
24
- min-width: vr.get-size(3);
25
- }
26
-
27
- > .odx-icon {
28
- @include vr.margin-x(-0.25);
29
- }
30
-
31
- > .odx-icon[alignLeft] {
32
- @include vr.margin(0.25, right);
33
- }
34
-
35
- > .odx-icon[alignRight] {
36
- @include vr.margin(0.25, left);
37
- }
38
-
39
- > .odx-avatar {
40
- @include vr.margin-x(-0.5);
41
- @include ac.avatar-size(2, math.div(32, 24), 0, 1);
42
- }
43
-
44
- &--highlight:focus-visible {
45
- outline-color: var(--blue-400);
46
- }
47
-
48
- @each $variant in $variants {
49
- &--#{$variant} {
50
- background-color: var(--odx-c-#{$variant});
51
- color: var(--odx-c-#{$variant}-text);
52
-
53
- &:hover {
54
- background-color: var(--odx-c-#{$variant}-hover);
55
- }
56
-
57
- &:active {
58
- background-color: var(--odx-c-#{$variant}-active);
59
- }
60
-
61
- &:disabled,
62
- &.is-disabled {
63
- background-color: var(--odx-c-#{$variant}-disabled);
64
- color: var(--odx-c-#{$variant}-text-disabled);
65
- }
66
- }
67
- }
68
-
69
- &--ghost {
70
- background-color: transparent;
71
- color: var(--odx-c-link);
72
- outline-width: 1px;
73
-
74
- &:hover {
75
- background-color: var(--blue-700-5);
76
- color: var(--odx-c-link-hover);
77
- }
78
-
79
- &:active {
80
- color: var(--odx-c-link-active);
81
- }
82
-
83
- &:focus-visible,
84
- &:active {
85
- background-color: var(--odx-c-focus);
86
- }
87
-
88
- &:disabled,
89
- &.is-disabled {
90
- background-color: transparent;
91
- color: var(--odx-c-link-disabled);
92
- }
93
- }
94
- }
@@ -1,130 +0,0 @@
1
- @use 'sass:math';
2
- @use '../../modules/vertical-rythm' as vr;
3
- @use '../../modules/typography' as t;
4
- @use '../../base/mixins' as mx;
5
- @use '../../helpers';
6
-
7
- :root {
8
- --odx-checkbox-color: var(--odx-c-highlight-text);
9
- --odx-checkbox-color-disabled: var(--odx-c-control-text-disabled);
10
-
11
- --odx-checkbox-background-color: var(--odx-c-control);
12
- --odx-checkbox-background-color-active: var(--odx-c-highlight);
13
- --odx-checkbox-background-color-disabled: var(--odx-c-control-disabled);
14
- --odx-checkbox-background-color-readonly: var(--white);
15
-
16
- --odx-checkbox-border-color: var(--odx-c-control-disabled);
17
- --odx-checkbox-border-color-active: var(--odx-c-highlight);
18
- --odx-checkbox-border-color-hover: var(--odx-c-control-hover);
19
- --odx-checkbox-border-color-readonly: var(--odx-c-control-disabled);
20
-
21
- --odx-checkbox-label-color: var(--odx-c-text);
22
- --odx-checkbox-label-color-disabled: var(--odx-c-text-disabled);
23
- }
24
-
25
- .odx-checkbox {
26
- $root: &;
27
-
28
- color: var(--odx-checkbox-label-color);
29
- display: block;
30
-
31
- &.is-disabled,
32
- &.is-readonly {
33
- @include mx.non-interactive();
34
- }
35
-
36
- &.is-disabled {
37
- color: var(--odx-checkbox-label-color-disabled);
38
- }
39
-
40
- &__label {
41
- @include mx.interactive($focus-within: true);
42
- @include vr.line-height(1);
43
- @include mx.transition(background-color color outline);
44
- @include t.font-size(0);
45
-
46
- border-radius: var(--odx-v-border-radius-controls);
47
- color: inherit;
48
- cursor: pointer;
49
- display: inline-flex;
50
- min-height: vr.get-size(1);
51
- padding: 0 2px;
52
- vertical-align: top;
53
- }
54
-
55
- &__input {
56
- @extend .visually-hidden;
57
- }
58
-
59
- &__indicator {
60
- @include vr.container(1, math.div(20, 24));
61
- @include mx.transition(background-color border-color);
62
-
63
- background-color: var(--odx-checkbox-background-color);
64
- border: 1px solid var(--odx-checkbox-border-color);
65
- border-radius: var(--odx-v-border-radius-controls);
66
- box-sizing: border-box;
67
- color: var(--odx-checkbox-color);
68
- flex: 0 0 auto;
69
-
70
- > .odx-icon {
71
- $checkmark-size: math.div(18, 24);
72
- @include vr.container($checkmark-size);
73
-
74
- display: none;
75
- font-size: vr.get-size($checkmark-size);
76
- }
77
-
78
- #{$root}:hover & {
79
- border-color: var(--odx-checkbox-border-color-hover);
80
- }
81
-
82
- #{$root}.is-active &,
83
- #{$root}__input:indeterminate ~ &,
84
- #{$root}__input:checked ~ & {
85
- background-color: var(--odx-checkbox-background-color-active);
86
- border-color: var(--odx-checkbox-border-color-active);
87
- }
88
-
89
- #{$root}.has-error & {
90
- background-color: var(--odx-c-error);
91
- border-color: var(--odx-c-error-outline);
92
- color: var(--odx-c-error-text);
93
- }
94
-
95
- #{$root}.has-error:hover & {
96
- border-color: var(--odx-c-error-outline-hover);
97
- }
98
-
99
- #{$root}.is-disabled & {
100
- background-color: var(--odx-checkbox-background-color-disabled);
101
- border-color: transparent;
102
- color: var(--odx-checkbox-color-disabled);
103
- }
104
-
105
- #{$root}.is-readonly & {
106
- background-color: var(--odx-checkbox-background-color-readonly);
107
- border-color: var(--odx-checkbox-border-color-readonly);
108
- color: inherit;
109
- }
110
- }
111
-
112
- &__content {
113
- @include vr.margin(0.5, left);
114
-
115
- padding-left: 2px;
116
-
117
- &:empty {
118
- margin: 0;
119
- padding: 0;
120
- }
121
- }
122
-
123
- &.is-active,
124
- &__input:indeterminate,
125
- &__input:checked {
126
- ~ .odx-checkbox__indicator > .odx-icon {
127
- display: block;
128
- }
129
- }
130
- }