@redocly/theme 0.53.0 → 0.54.0-next.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.
@@ -36,14 +36,22 @@ function Switch({ value = false, disabled = false, onChange }) {
36
36
  onChange(!value);
37
37
  };
38
38
  return (react_1.default.createElement(SwitchWrapper, { onClick: handleClick, role: "switch", selected: value, disabled: disabled },
39
- react_1.default.createElement(Knob, { selected: value })));
39
+ react_1.default.createElement(Knob, { selected: value, disabled: disabled })));
40
40
  }
41
41
  const SwitchWrapper = styled_components_1.default.div `
42
42
  width: var(--switch-width);
43
43
  height: var(--switch-height);
44
44
  border-radius: var(--switch-border-radius);
45
+ border: var(--switch-border-width) solid
46
+ ${({ selected, disabled }) => disabled
47
+ ? 'var(--switch-border-color-disabled)'
48
+ : selected
49
+ ? 'var(--switch-border-color-selected)'
50
+ : 'var(--switch-border-color)'};
45
51
  background-color: ${({ selected, disabled }) => disabled
46
- ? 'var(--switch-bg-color-disabled)'
52
+ ? selected
53
+ ? 'var(--switch-bg-color-disabled-selected)'
54
+ : 'var(--switch-bg-color-disabled)'
47
55
  : selected
48
56
  ? 'var(--switch-bg-color-selected)'
49
57
  : 'var(--switch-bg-color)'};
@@ -53,22 +61,28 @@ const SwitchWrapper = styled_components_1.default.div `
53
61
  cursor: ${({ disabled }) => (disabled ? 'not-allowed' : 'pointer')};
54
62
  transition: var(--switch-bg-transition);
55
63
 
56
- ${({ disabled }) => !disabled &&
64
+ ${({ selected, disabled }) => !disabled &&
65
+ !selected &&
57
66
  (0, styled_components_1.css) `
58
67
  &:hover {
59
68
  background-color: var(--switch-bg-color-hover);
69
+ border: var(--switch-border-width) solid var(--switch-border-color-hover);
70
+ }
71
+ &:active {
72
+ background-color: var(--switch-bg-color-pressed);
73
+ border: var(--switch-border-width) solid var(--switch-border-color-pressed);
60
74
  }
61
75
  `}
62
-
63
- &:active {
64
- background-color: var(--switch-bg-color-pressed);
65
- }
66
76
  `;
67
77
  const Knob = styled_components_1.default.div `
68
78
  width: var(--switch-knob-width);
69
79
  height: var(--switch-knob-height);
70
80
  border-radius: var(--switch-knob-border-radius);
71
- background-color: ${({ selected }) => selected ? 'var(--switch-knob-bg-color-selected)' : 'var(--switch-knob-bg-color)'};
81
+ background-color: ${({ selected, disabled }) => disabled
82
+ ? 'var(--switch-knob-bg-color-disabled)'
83
+ : selected
84
+ ? 'var(--switch-knob-bg-color-selected)'
85
+ : 'var(--switch-knob-bg-color)'};
72
86
  transform: ${({ selected }) => selected ? 'translateX(var(--switch-knob-width))' : 'translateX(0)'};
73
87
  transition: var(--switch-knob-transition);
74
88
  `;
@@ -3,19 +3,33 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.switcherDarkMode = void 0;
4
4
  const styled_components_1 = require("styled-components");
5
5
  exports.switcherDarkMode = (0, styled_components_1.css) `
6
- --switch-bg-color: var(--color-warm-grey-6); // @presenter Color
7
- --switch-bg-color-selected: var(--color-warm-grey-6); // @presenter Color
8
- --switch-bg-color-hover: var(--color-warm-grey-7); // @presenter Color
9
- --switch-bg-color-pressed: var(--color-warm-grey-7); // @presenter Color
10
- --switch-bg-color-disabled: var(--color-warm-grey-5); // @presenter Color
11
- --switch-knob-bg-color: var(--color-warm-grey-8); // @presenter Color
12
- --switch-knob-bg-color-selected: var(--color-warm-grey-11); // @presenter Color
6
+ --switch-bg-color: transparent; // @presenter Color
7
+ --switch-bg-color-selected: var(--color-warm-grey-7); // @presenter Color
8
+ --switch-bg-color-hover: transparent; // @presenter Color
9
+ --switch-bg-color-pressed: transparent; // @presenter Color
10
+ --switch-bg-color-disabled: transparent; // @presenter Color
11
+ --switch-bg-color-disabled-selected: var(--color-warm-grey-5); // @presenter Color
12
+
13
+ --switch-border-color: var(--color-warm-grey-6); // @presenter Color
14
+ --switch-border-color-hover: var(--color-warm-grey-7); // @presenter Color
15
+ --switch-border-color-pressed: var(--color-warm-grey-8); // @presenter Color
16
+ --switch-border-color-disabled: var(--color-warm-grey-5); // @presenter Color
17
+ --switch-border-color-selected: var(--color-warm-grey-7); // @presenter Color
18
+ --switch-border-width: var(--border-width); // @presenter Border
13
19
  --switch-border-radius: var(--border-radius); // @presenter BorderRadius
14
- --switch-knob-border-radius: calc(var(--border-radius) / 2); // @presenter BorderRadius
20
+
15
21
  --switch-width: 32px; // @presenter Width
16
22
  --switch-height: 18px; // @presenter Height
17
- --switch-padding: calc(var(--spacing-xxs) / 2); // @presenter Padding
23
+ --switch-padding: calc((var(--spacing-xxs) / 2) - var(--switch-border-width)); // @presenter Padding
18
24
  --switch-bg-transition: background-color 0.3s; // @presenter Transition
25
+
26
+ // Knob
27
+
28
+ --switch-knob-bg-color: var(--color-warm-grey-8); // @presenter Color
29
+ --switch-knob-bg-color-selected: var(--color-static-white); // @presenter Color
30
+ --switch-knob-bg-color-disabled: var(--color-warm-grey-6); // @presenter Color
31
+
32
+ --switch-knob-border-radius: calc(var(--border-radius) / 2); // @presenter BorderRadius
19
33
  --switch-knob-height: 14px; // @presenter Height
20
34
  --switch-knob-width: 14px; // @presenter Width
21
35
  --switch-knob-transition: all 0.3s; // @presenter Transition
@@ -8,14 +8,28 @@ exports.switcher = (0, styled_components_1.css) `
8
8
  --switch-bg-color-hover: var(--color-warm-grey-5); // @presenter Color
9
9
  --switch-bg-color-pressed: var(--color-warm-grey-6); // @presenter Color
10
10
  --switch-bg-color-disabled: var(--color-warm-grey-3); // @presenter Color
11
- --switch-knob-bg-color: var(--color-white); // @presenter Color
12
- --switch-knob-bg-color-selected: var(--color-white); // @presenter Color
11
+ --switch-bg-color-disabled-selected: var(--color-warm-grey-3); // @presenter Color
12
+
13
+ --switch-border-color: transparent; // @presenter Color
14
+ --switch-border-color-hover: transparent; // @presenter Color
15
+ --switch-border-color-pressed: transparent; // @presenter Color
16
+ --switch-border-color-disabled: transparent; // @presenter Color
17
+ --switch-border-color-selected: transparent; // @presenter Color
13
18
  --switch-border-radius: var(--border-radius); // @presenter BorderRadius
14
- --switch-knob-border-radius: calc(var(--border-radius) / 2); // @presenter BorderRadius
19
+ --switch-border-width: var(--border-width); // @presenter Border
20
+
15
21
  --switch-width: 32px; // @presenter Width
16
22
  --switch-height: 18px; // @presenter Height
17
- --switch-padding: calc(var(--spacing-xxs) / 2); // @presenter Padding
23
+ --switch-padding: calc((var(--spacing-xxs) / 2) - var(--switch-border-width)); // @presenter Padding
18
24
  --switch-bg-transition: background-color 0.3s; // @presenter Transition
25
+
26
+ // Knob
27
+
28
+ --switch-knob-bg-color: var(--color-white); // @presenter Color
29
+ --switch-knob-bg-color-selected: var(--color-white); // @presenter Color
30
+ --switch-knob-bg-color-disabled: var(--color-warm-grey-1); // @presenter Color
31
+
32
+ --switch-knob-border-radius: calc(var(--border-radius) / 2); // @presenter BorderRadius
19
33
  --switch-knob-height: 14px; // @presenter Height
20
34
  --switch-knob-width: 14px; // @presenter Width
21
35
  --switch-knob-transition: transform 0.3s; // @presenter Transition
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redocly/theme",
3
- "version": "0.53.0",
3
+ "version": "0.54.0-next.0",
4
4
  "description": "Shared UI components lib",
5
5
  "keywords": [
6
6
  "theme",
@@ -15,7 +15,7 @@ export function Switch({ value = false, disabled = false, onChange }: SwitchProp
15
15
 
16
16
  return (
17
17
  <SwitchWrapper onClick={handleClick} role="switch" selected={value} disabled={disabled}>
18
- <Knob selected={value} />
18
+ <Knob selected={value} disabled={disabled} />
19
19
  </SwitchWrapper>
20
20
  );
21
21
  }
@@ -24,9 +24,18 @@ const SwitchWrapper = styled.div<{ selected: boolean; disabled: boolean }>`
24
24
  width: var(--switch-width);
25
25
  height: var(--switch-height);
26
26
  border-radius: var(--switch-border-radius);
27
+ border: var(--switch-border-width) solid
28
+ ${({ selected, disabled }) =>
29
+ disabled
30
+ ? 'var(--switch-border-color-disabled)'
31
+ : selected
32
+ ? 'var(--switch-border-color-selected)'
33
+ : 'var(--switch-border-color)'};
27
34
  background-color: ${({ selected, disabled }) =>
28
35
  disabled
29
- ? 'var(--switch-bg-color-disabled)'
36
+ ? selected
37
+ ? 'var(--switch-bg-color-disabled-selected)'
38
+ : 'var(--switch-bg-color-disabled)'
30
39
  : selected
31
40
  ? 'var(--switch-bg-color-selected)'
32
41
  : 'var(--switch-bg-color)'};
@@ -36,25 +45,31 @@ const SwitchWrapper = styled.div<{ selected: boolean; disabled: boolean }>`
36
45
  cursor: ${({ disabled }) => (disabled ? 'not-allowed' : 'pointer')};
37
46
  transition: var(--switch-bg-transition);
38
47
 
39
- ${({ disabled }) =>
48
+ ${({ selected, disabled }) =>
40
49
  !disabled &&
50
+ !selected &&
41
51
  css`
42
52
  &:hover {
43
53
  background-color: var(--switch-bg-color-hover);
54
+ border: var(--switch-border-width) solid var(--switch-border-color-hover);
55
+ }
56
+ &:active {
57
+ background-color: var(--switch-bg-color-pressed);
58
+ border: var(--switch-border-width) solid var(--switch-border-color-pressed);
44
59
  }
45
60
  `}
46
-
47
- &:active {
48
- background-color: var(--switch-bg-color-pressed);
49
- }
50
61
  `;
51
62
 
52
- const Knob = styled.div<{ selected: boolean }>`
63
+ const Knob = styled.div<{ selected: boolean; disabled: boolean }>`
53
64
  width: var(--switch-knob-width);
54
65
  height: var(--switch-knob-height);
55
66
  border-radius: var(--switch-knob-border-radius);
56
- background-color: ${({ selected }) =>
57
- selected ? 'var(--switch-knob-bg-color-selected)' : 'var(--switch-knob-bg-color)'};
67
+ background-color: ${({ selected, disabled }) =>
68
+ disabled
69
+ ? 'var(--switch-knob-bg-color-disabled)'
70
+ : selected
71
+ ? 'var(--switch-knob-bg-color-selected)'
72
+ : 'var(--switch-knob-bg-color)'};
58
73
  transform: ${({ selected }) =>
59
74
  selected ? 'translateX(var(--switch-knob-width))' : 'translateX(0)'};
60
75
  transition: var(--switch-knob-transition);
@@ -1,19 +1,33 @@
1
1
  import { css } from 'styled-components';
2
2
 
3
3
  export const switcherDarkMode = css`
4
- --switch-bg-color: var(--color-warm-grey-6); // @presenter Color
5
- --switch-bg-color-selected: var(--color-warm-grey-6); // @presenter Color
6
- --switch-bg-color-hover: var(--color-warm-grey-7); // @presenter Color
7
- --switch-bg-color-pressed: var(--color-warm-grey-7); // @presenter Color
8
- --switch-bg-color-disabled: var(--color-warm-grey-5); // @presenter Color
9
- --switch-knob-bg-color: var(--color-warm-grey-8); // @presenter Color
10
- --switch-knob-bg-color-selected: var(--color-warm-grey-11); // @presenter Color
4
+ --switch-bg-color: transparent; // @presenter Color
5
+ --switch-bg-color-selected: var(--color-warm-grey-7); // @presenter Color
6
+ --switch-bg-color-hover: transparent; // @presenter Color
7
+ --switch-bg-color-pressed: transparent; // @presenter Color
8
+ --switch-bg-color-disabled: transparent; // @presenter Color
9
+ --switch-bg-color-disabled-selected: var(--color-warm-grey-5); // @presenter Color
10
+
11
+ --switch-border-color: var(--color-warm-grey-6); // @presenter Color
12
+ --switch-border-color-hover: var(--color-warm-grey-7); // @presenter Color
13
+ --switch-border-color-pressed: var(--color-warm-grey-8); // @presenter Color
14
+ --switch-border-color-disabled: var(--color-warm-grey-5); // @presenter Color
15
+ --switch-border-color-selected: var(--color-warm-grey-7); // @presenter Color
16
+ --switch-border-width: var(--border-width); // @presenter Border
11
17
  --switch-border-radius: var(--border-radius); // @presenter BorderRadius
12
- --switch-knob-border-radius: calc(var(--border-radius) / 2); // @presenter BorderRadius
18
+
13
19
  --switch-width: 32px; // @presenter Width
14
20
  --switch-height: 18px; // @presenter Height
15
- --switch-padding: calc(var(--spacing-xxs) / 2); // @presenter Padding
21
+ --switch-padding: calc((var(--spacing-xxs) / 2) - var(--switch-border-width)); // @presenter Padding
16
22
  --switch-bg-transition: background-color 0.3s; // @presenter Transition
23
+
24
+ // Knob
25
+
26
+ --switch-knob-bg-color: var(--color-warm-grey-8); // @presenter Color
27
+ --switch-knob-bg-color-selected: var(--color-static-white); // @presenter Color
28
+ --switch-knob-bg-color-disabled: var(--color-warm-grey-6); // @presenter Color
29
+
30
+ --switch-knob-border-radius: calc(var(--border-radius) / 2); // @presenter BorderRadius
17
31
  --switch-knob-height: 14px; // @presenter Height
18
32
  --switch-knob-width: 14px; // @presenter Width
19
33
  --switch-knob-transition: all 0.3s; // @presenter Transition
@@ -6,14 +6,28 @@ export const switcher = css`
6
6
  --switch-bg-color-hover: var(--color-warm-grey-5); // @presenter Color
7
7
  --switch-bg-color-pressed: var(--color-warm-grey-6); // @presenter Color
8
8
  --switch-bg-color-disabled: var(--color-warm-grey-3); // @presenter Color
9
- --switch-knob-bg-color: var(--color-white); // @presenter Color
10
- --switch-knob-bg-color-selected: var(--color-white); // @presenter Color
9
+ --switch-bg-color-disabled-selected: var(--color-warm-grey-3); // @presenter Color
10
+
11
+ --switch-border-color: transparent; // @presenter Color
12
+ --switch-border-color-hover: transparent; // @presenter Color
13
+ --switch-border-color-pressed: transparent; // @presenter Color
14
+ --switch-border-color-disabled: transparent; // @presenter Color
15
+ --switch-border-color-selected: transparent; // @presenter Color
11
16
  --switch-border-radius: var(--border-radius); // @presenter BorderRadius
12
- --switch-knob-border-radius: calc(var(--border-radius) / 2); // @presenter BorderRadius
17
+ --switch-border-width: var(--border-width); // @presenter Border
18
+
13
19
  --switch-width: 32px; // @presenter Width
14
20
  --switch-height: 18px; // @presenter Height
15
- --switch-padding: calc(var(--spacing-xxs) / 2); // @presenter Padding
21
+ --switch-padding: calc((var(--spacing-xxs) / 2) - var(--switch-border-width)); // @presenter Padding
16
22
  --switch-bg-transition: background-color 0.3s; // @presenter Transition
23
+
24
+ // Knob
25
+
26
+ --switch-knob-bg-color: var(--color-white); // @presenter Color
27
+ --switch-knob-bg-color-selected: var(--color-white); // @presenter Color
28
+ --switch-knob-bg-color-disabled: var(--color-warm-grey-1); // @presenter Color
29
+
30
+ --switch-knob-border-radius: calc(var(--border-radius) / 2); // @presenter BorderRadius
17
31
  --switch-knob-height: 14px; // @presenter Height
18
32
  --switch-knob-width: 14px; // @presenter Width
19
33
  --switch-knob-transition: transform 0.3s; // @presenter Transition