@sproutsocial/racine 9.1.1-theme-extension.1 → 10.0.0-dar97-beta.2

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 (100) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/__flow__/Box/index.stories.js +1 -1
  3. package/__flow__/Breadcrumb/styles.js +0 -5
  4. package/__flow__/Button/styles.js +1 -1
  5. package/__flow__/Card/index.stories.js +0 -1
  6. package/__flow__/Card/styles.js +1 -1
  7. package/__flow__/Drawer/index.stories.js +3 -3
  8. package/__flow__/Drawer/styles.js +1 -1
  9. package/__flow__/KeyboardKey/styles.js +1 -1
  10. package/__flow__/Listbox/__snapshots__/index.test.js.snap +40 -34
  11. package/__flow__/Menu/__snapshots__/index.test.js.snap +15 -12
  12. package/__flow__/Menu/index.js +3 -7
  13. package/__flow__/Menu/index.stories.js +1 -1
  14. package/__flow__/Menu/styles.js +1 -18
  15. package/__flow__/Modal/index.test.js +0 -16
  16. package/__flow__/Modal/styles.js +1 -1
  17. package/__flow__/Popout/index.js +1 -1
  18. package/__flow__/Stack/index.js +1 -1
  19. package/__flow__/ThemeProvider/index.js +4 -4
  20. package/__flow__/Token/index.js +4 -1
  21. package/__flow__/Token/index.stories.js +11 -0
  22. package/__flow__/Token/styles.js +43 -33
  23. package/__flow__/Tooltip/index.js +1 -1
  24. package/__flow__/index.js +1 -2
  25. package/__flow__/themes/dark/_themed.scss +132 -0
  26. package/__flow__/themes/dark/theme.js +181 -157
  27. package/__flow__/themes/light/_themed.scss +132 -0
  28. package/__flow__/themes/{default → light}/dataviz-palette.js +0 -0
  29. package/__flow__/themes/{default → light}/decorative-palettes.js +0 -0
  30. package/__flow__/themes/{default → light}/literal-colors.js +0 -0
  31. package/__flow__/themes/{default → light}/theme.js +19 -8
  32. package/__flow__/themes/utils/interact.js +12 -0
  33. package/__flow__/types/system-props.flow.js +1 -2
  34. package/__flow__/types/theme.colors.flow.js +1 -1
  35. package/__flow__/types/theme.flow.js +2 -2
  36. package/__flow__/utils/mixins.js +1 -1
  37. package/__flow__/utils/responsiveProps/index.js +1 -1
  38. package/commonjs/Breadcrumb/styles.js +1 -1
  39. package/commonjs/Button/styles.js +1 -1
  40. package/commonjs/Card/styles.js +1 -1
  41. package/commonjs/Drawer/styles.js +1 -1
  42. package/commonjs/KeyboardKey/styles.js +1 -1
  43. package/commonjs/Menu/index.js +3 -1
  44. package/commonjs/Menu/styles.js +3 -16
  45. package/commonjs/Modal/styles.js +1 -1
  46. package/commonjs/Popout/index.js +1 -1
  47. package/commonjs/ThemeProvider/index.js +1 -1
  48. package/commonjs/Token/index.js +5 -2
  49. package/commonjs/Token/styles.js +19 -50
  50. package/commonjs/Tooltip/index.js +1 -1
  51. package/commonjs/index.js +2 -6
  52. package/commonjs/themes/dark/theme.js +180 -155
  53. package/commonjs/themes/{default → light}/dataviz-palette.js +0 -0
  54. package/commonjs/themes/{default → light}/decorative-palettes.js +0 -0
  55. package/commonjs/themes/{default → light}/literal-colors.js +0 -0
  56. package/commonjs/themes/{default → light}/theme.js +19 -8
  57. package/commonjs/themes/utils/interact.js +19 -0
  58. package/commonjs/types/theme.colors.flow.js +1 -1
  59. package/commonjs/types/theme.flow.js +1 -1
  60. package/commonjs/utils/mixins.js +1 -1
  61. package/commonjs/utils/responsiveProps/index.js +1 -1
  62. package/dist/themes/dark/_themed.scss +132 -0
  63. package/dist/themes/dark/dark.scss +601 -0
  64. package/dist/themes/light/_themed.scss +132 -0
  65. package/dist/themes/light/light.scss +692 -0
  66. package/lib/Breadcrumb/styles.js +1 -1
  67. package/lib/Button/styles.js +1 -1
  68. package/lib/Card/styles.js +1 -1
  69. package/lib/Drawer/styles.js +1 -1
  70. package/lib/KeyboardKey/styles.js +1 -1
  71. package/lib/Menu/index.js +4 -2
  72. package/lib/Menu/styles.js +2 -13
  73. package/lib/Modal/styles.js +1 -1
  74. package/lib/Popout/index.js +1 -1
  75. package/lib/ThemeProvider/index.js +1 -1
  76. package/lib/Token/index.js +5 -2
  77. package/lib/Token/styles.js +19 -50
  78. package/lib/Tooltip/index.js +1 -1
  79. package/lib/index.js +1 -2
  80. package/lib/themes/dark/theme.js +175 -154
  81. package/lib/themes/{default → light}/dataviz-palette.js +0 -0
  82. package/lib/themes/{default → light}/decorative-palettes.js +0 -0
  83. package/lib/themes/{default → light}/literal-colors.js +0 -0
  84. package/lib/themes/{default → light}/theme.js +18 -8
  85. package/lib/themes/utils/interact.js +13 -0
  86. package/lib/types/theme.colors.flow.js +1 -1
  87. package/lib/types/theme.flow.js +1 -1
  88. package/lib/utils/mixins.js +1 -1
  89. package/lib/utils/responsiveProps/index.js +1 -1
  90. package/package.json +4 -4
  91. package/__flow__/CustomThemeProvider/index.js +0 -17
  92. package/__flow__/Modal/__snapshots__/index.test.js.snap +0 -80
  93. package/__flow__/themes/sprout/theme.js +0 -22
  94. package/__flow__/utils/extendTheme.js +0 -17
  95. package/commonjs/CustomThemeProvider/index.js +0 -23
  96. package/commonjs/themes/sprout/theme.js +0 -29
  97. package/commonjs/utils/extendTheme.js +0 -22
  98. package/lib/CustomThemeProvider/index.js +0 -12
  99. package/lib/themes/sprout/theme.js +0 -19
  100. package/lib/utils/extendTheme.js +0 -12
@@ -6,68 +6,78 @@ import { focusRing } from "../utils/mixins";
6
6
  import type { TypeTheme } from "../types/theme.flow";
7
7
 
8
8
  const Container: StyledComponent<any, TypeTheme, *> = styled.button`
9
- font-family: ${(props) => props.theme.fontFamily};
10
- ${(props) => props.theme.typography[200]};
11
9
  position: relative;
12
10
  display: inline-block;
13
- padding: ${(props) => props.theme.space[200]}
14
- ${(props) => props.theme.space[300]};
15
11
  margin: 0;
16
- color: ${(props) => props.theme.colors.text.body};
17
- background: ${(props) => props.theme.colors.container.background.base};
18
- border: 1px solid ${(props) => props.theme.colors.container.border.base};
19
- font-weight: ${(props) => props.theme.fontWeights.normal};
20
12
  line-height: 1;
21
13
  vertical-align: middle;
22
- border-radius: ${(props) => props.theme.radii[500]};
23
14
  outline: none;
24
- transition: all ${(props) => props.theme.duration.fast}
25
- ${(props) => props.theme.easing.ease_inout};
15
+ /* Theme Properties */
16
+ ${({ theme }) => css`
17
+ ${theme.typography[200]}
18
+ font-family: ${theme.fontFamily};
19
+ font-weight: ${theme.fontWeights.normal};
20
+ border: 1px solid ${theme.colors.container.border.base};
21
+ border-radius: ${theme.radii[500]};
22
+ color: ${theme.colors.text.body};
23
+ background: ${theme.colors.container.background.base};
24
+ padding: ${theme.space[200]} ${theme.space[300]};
25
+ transition: all ${theme.duration.fast} ${theme.easing.ease_inout};
26
+ `}
26
27
 
27
28
  &:focus {
28
29
  ${focusRing}
29
30
  }
30
31
 
31
- ${(props) =>
32
- props.closeable &&
32
+ ${({ theme, palette }) =>
33
+ palette === "blue" &&
33
34
  css`
34
- cursor: pointer;
35
+ color: ${theme.colors.text.body};
36
+ background: ${theme.colors.container.background.decorative.blue};
37
+ border: 1px solid ${theme.colors.container.border.decorative.blue};
38
+ &:hover,
39
+ &:active {
40
+ cursor: pointer;
41
+ box-shadow: ${theme.shadows.low};
42
+ border: 1px solid
43
+ ${theme.utils.interact(theme.colors.container.border.decorative.blue)};
44
+ }
45
+ `}
35
46
 
47
+ ${({ closeable, theme }) =>
48
+ closeable &&
49
+ css`
50
+ cursor: pointer;
36
51
  &:hover,
37
52
  &:active {
38
- color: ${(props) => props.theme.colors.text.body};
53
+ box-shadow: ${theme.shadows.low};
39
54
  border: 1px solid
40
- ${(props) => props.theme.colors.container.border.decorative.neutral};
41
- background-color: ${(props) =>
42
- props.theme.colors.container.background.decorative.neutral};
55
+ ${theme.utils.interact(theme.colors.container.border.base)};
43
56
  }
44
57
  `}
45
58
 
46
- ${(props) =>
47
- props.disabled &&
59
+ ${({ disabled, theme }) =>
60
+ disabled &&
48
61
  css`
49
62
  opacity: 0.4;
50
63
  cursor: not-allowed;
51
64
  &:hover,
52
65
  &:active {
53
- background: ${(props) => props.theme.colors.container.background.base};
54
- border: 1px solid ${(props) => props.theme.colors.container.border.base};
66
+ box-shadow: none;
67
+ border: 1px solid ${theme.colors.container.border.base};
55
68
  }
56
69
  `}
57
-
58
- ${(props) =>
59
- !props.valid &&
70
+
71
+ ${({ valid, theme }) =>
72
+ !valid &&
60
73
  css`
61
- color: ${(props) => props.theme.colors.text.body};
62
- border-color: ${(props) => props.theme.colors.container.border.error};
63
- background: ${(props) => props.theme.colors.container.background.error};
64
-
74
+ color: ${theme.colors.text.error};
75
+ background: ${theme.colors.container.background.error};
76
+ border: 1px solid ${theme.colors.container.border.error};
65
77
  &:hover {
66
- color: ${(props) => props.theme.colors.text.body};
78
+ box-shadow: ${theme.shadows.low};
67
79
  border: 1px solid
68
- ${(props) => props.theme.colors.container.border.error};
69
- background-color: ${(props) =>
70
- props.theme.colors.container.background.error};
80
+ ${theme.utils.interact(theme.colors.container.border.error)};
71
81
  }
72
82
  `}
73
83
 
@@ -159,7 +159,7 @@ const Content = ({
159
159
  m={200}
160
160
  color="text.body"
161
161
  bg="container.background.base"
162
- boxShadow={300}
162
+ boxShadow="medium"
163
163
  border={500}
164
164
  borderColor="container.border.base"
165
165
  // $FlowIssue - upgrade v0.112.0
package/__flow__/index.js CHANGED
@@ -3,7 +3,7 @@ export type { EnumIconNames } from "./EnumIconNames";
3
3
  export type { TypeTheme } from "./types/theme.flow";
4
4
  export { visuallyHidden, focusRing, disabled } from "./utils/mixins";
5
5
  export { useSelect, useMultiselect, useTextContent } from "./utils/hooks";
6
- export { default as theme } from "./themes/default/theme";
6
+ export { default as theme } from "./themes/light/theme";
7
7
  export { default as darkTheme } from "./themes/dark/theme";
8
8
  export { default as Icon } from "./Icon";
9
9
  // DEPRECATED: Alert has been renamed to Banner
@@ -43,7 +43,6 @@ export { default as Modal } from "./Modal";
43
43
  export { default as Popout } from "./Popout";
44
44
  export type { EnumPlacements } from "./Popout";
45
45
  export { default as ThemeProvider } from "./ThemeProvider";
46
- export { default as CustomThemeProvider } from "./CustomThemeProvider";
47
46
  export { default as Tooltip } from "./Tooltip";
48
47
  export { default as Drawer } from "./Drawer";
49
48
  export { default as LoaderButton } from "./LoaderButton";
@@ -0,0 +1,132 @@
1
+ // Inspired by https://medium.com/@katiemctigue/how-to-create-a-dark-mode-in-sass-609f131a3995
2
+ // This file is excluded from stylelint, because stylelint is only set up to lint styled-components at the moment.
3
+
4
+ // SET-UP
5
+ // These files are auto-generated based on JS theme files, ensuring our SCSS theme variables stay in sync.
6
+ @import "../../../dist/themes/dark/dark.scss";
7
+
8
+ // In the JS theme files, the theme object is exported as "default" (i.e., using "export default"),
9
+ // so we need to map-get "default" to access it.
10
+ $theme: map-get($dark, 'default');
11
+
12
+ // MIXIN
13
+ // CSS properties that are theme-dependent must be wrapped in this mixin
14
+ @mixin themed() {
15
+ & {
16
+ $theme-map: () !global;
17
+ @each $key, $submap in $theme {
18
+ $value: map-get($theme, "#{$key}");
19
+ $theme-map: map-merge($theme-map, ($key: $value)) !global;
20
+ }
21
+ @content;
22
+ $theme-map: null !global;
23
+ }
24
+ }
25
+
26
+ // FUNCTIONS
27
+ // This function will allow you to get any value from the theme.
28
+ // @param {string} $key - the period-separated path to the value in the theme object. e.g., "colors.text.body"
29
+ @function t($key) {
30
+ $keys: _str-split($key, ".");
31
+ @return _map-deep-get($theme-map, $keys);
32
+ }
33
+
34
+ // The rest of the functions are convenience methods to get theme values for subsets of the theme.
35
+ // @param {string} $key - the period-separated path to the value in the theme object, with "colors." omitted. e.g., "text.body"
36
+ @function colors($key) {
37
+ $keys: _str-split($key, ".");
38
+ @return _map-deep-get($theme-map, join("colors", $keys));
39
+ }
40
+
41
+ // @param {string} $key - the period-separated path to the value in the theme object, with "typography." omitted. e.g., "100.fontSize"
42
+ @function typography($key) {
43
+ $keys: _str-split($key, ".");
44
+ @return _map-deep-get($theme-map, join("typography", $keys));
45
+ }
46
+
47
+ // @param {string} $key - the period-separated path to the value in the theme object, with "fontWeights." omitted. e.g., "normal"
48
+ @function fontWeights($key) {
49
+ $keys: _str-split($key, ".");
50
+ @return _map-deep-get($theme-map, join("fontWeights", $keys));
51
+ }
52
+
53
+ // @param {string} $key - the period-separated path to the value in the theme object, with "space." omitted. e.g., "100"
54
+ @function space($key) {
55
+ $keys: _str-split($key, ".");
56
+ @return _map-deep-get($theme-map, join("space", $keys));
57
+ }
58
+
59
+ // @param {string} $key - the period-separated path to the value in the theme object, with "radii." omitted. e.g., "inner"
60
+ @function radii($key) {
61
+ $keys: _str-split($key, ".");
62
+ @return _map-deep-get($theme-map, join("radii", $keys));
63
+ }
64
+
65
+ // @param {string} $key - the period-separated path to the value in the theme object, with "borders." omitted. e.g., "500"
66
+ @function borders($key) {
67
+ $keys: _str-split($key, ".");
68
+ @return _map-deep-get($theme-map, join("borders", $keys));
69
+ }
70
+
71
+ // @param {string} $key - the period-separated path to the value in the theme object, with "borderWidths." omitted. e.g., "500"
72
+ @function borderWidths($key) {
73
+ $keys: _str-split($key, ".");
74
+ @return _map-deep-get($theme-map, join("borderWidths", $keys));
75
+ }
76
+
77
+ // @param {string} $key - the period-separated path to the value in the theme object, with "shadows." omitted. e.g., "low"
78
+ @function shadows($key) {
79
+ $keys: _str-split($key, ".");
80
+ @return _map-deep-get($theme-map, join("shadows", $keys));
81
+ }
82
+
83
+ // @param {string} $key - the period-separated path to the value in the theme object, with "easing." omitted. e.g., "ease_in"
84
+ @function easing($key) {
85
+ $keys: _str-split($key, ".");
86
+ @return _map-deep-get($theme-map, join("easing", $keys));
87
+ }
88
+
89
+ // @param {string} $key - the period-separated path to the value in the theme object, with "duration." omitted. e.g., "fast"
90
+ @function duration($key) {
91
+ $keys: _str-split($key, ".");
92
+ @return _map-deep-get($theme-map, join("duration", $keys));
93
+ }
94
+
95
+ // UTILITIES
96
+ // Helper functions that power the functions above. Not relevant to the theme.
97
+ // If you import this file with @use, these functions will be excluded because they are private.
98
+
99
+ // Via https://stackoverflow.com/a/42295154
100
+ // Used to split period-separated object keys, e.g. "colors.text.body" => ["colors", "text", "body"]
101
+ // Only works with a single-character separator.
102
+ @function _str-split($string, $separator) {
103
+ // empty array/list
104
+ $split-arr: ();
105
+ // first index of separator in string
106
+ $index : str-index($string, $separator);
107
+ // loop through string
108
+ @while $index != null {
109
+ // get the substring from the first character to the separator
110
+ $item: str-slice($string, 1, $index - 1);
111
+ // push item to array
112
+ $split-arr: append($split-arr, $item);
113
+ // remove item and separator from string
114
+ $string: str-slice($string, $index + 1);
115
+ // find new index of separator
116
+ $index : str-index($string, $separator);
117
+ }
118
+ // add the remaining string to list (the last item)
119
+ $split-arr: append($split-arr, $string);
120
+
121
+ @return $split-arr;
122
+ }
123
+
124
+ // Adapted from https://css-tricks.com/snippets/sass/deep-getset-maps/
125
+ // Iterates over a list of keys to read multi-level maps.
126
+ // e.g., _map-deep-get((colors: (text: (body: "#364141"))), ["colors", "text", "body"]) => "#364141"
127
+ @function _map-deep-get($map, $keys) {
128
+ @each $key in $keys {
129
+ $map: map-get($map, $key);
130
+ }
131
+ @return $map;
132
+ }
@@ -1,7 +1,8 @@
1
1
  // @flow strict-local
2
2
 
3
3
  import COLORS from "@sproutsocial/seeds-color";
4
- import defaultTheme from "../default/theme";
4
+ import DEPTH from "@sproutsocial/seeds-depth";
5
+ import defaultTheme from "../light/theme";
5
6
  import { datavizPalette } from "./dataviz-palette";
6
7
  import {
7
8
  green,
@@ -13,185 +14,208 @@ import {
13
14
  neutral,
14
15
  } from "./decorative-palettes";
15
16
 
16
- const darkTheme = {
17
- ...defaultTheme,
18
- colors: {
19
- ...defaultTheme.colors,
20
- app: {
21
- background: {
22
- base: COLORS.COLOR_NEUTRAL_1000,
17
+ import interact from "../utils/interact";
18
+
19
+ const MODE = "default-dark";
20
+
21
+ export const shadows = {
22
+ low: `${DEPTH.ELEVATION_LEVEL_100} ${COLORS.COLOR_NEUTRAL_1100}FF`,
23
+ medium: `${DEPTH.ELEVATION_LEVEL_300} ${COLORS.COLOR_NEUTRAL_1100}FF`,
24
+ high: `${DEPTH.ELEVATION_LEVEL_400} ${COLORS.COLOR_NEUTRAL_1100}FF`,
25
+ };
26
+
27
+ const colors = {
28
+ ...defaultTheme.colors,
29
+ utils: {
30
+ interact: interact(MODE),
31
+ },
32
+ app: {
33
+ background: {
34
+ base: COLORS.COLOR_NEUTRAL_1000,
35
+ },
36
+ },
37
+ container: {
38
+ background: {
39
+ base: COLORS.COLOR_NEUTRAL_900,
40
+ success: green.background,
41
+ warning: yellow.background,
42
+ error: red.background,
43
+ info: blue.background,
44
+ opportunity: purple.background,
45
+ danger: red.background,
46
+ decorative: {
47
+ green: green.background,
48
+ blue: blue.background,
49
+ purple: purple.background,
50
+ yellow: yellow.background,
51
+ orange: orange.background,
52
+ red: red.background,
53
+ neutral: neutral.background,
54
+ },
55
+ selected: COLORS.COLOR_NEUTRAL_0,
56
+ },
57
+ border: {
58
+ base: COLORS.COLOR_NEUTRAL_1100,
59
+ success: green.highlight,
60
+ warning: yellow.highlight,
61
+ error: red.highlight,
62
+ danger: red.highlight,
63
+ info: blue.highlight,
64
+ opportunity: purple.highlight,
65
+ decorative: {
66
+ green: green.highlight,
67
+ blue: blue.highlight,
68
+ purple: purple.highlight,
69
+ yellow: yellow.highlight,
70
+ orange: orange.highlight,
71
+ red: red.highlight,
72
+ neutral: neutral.highlight,
23
73
  },
74
+ selected: COLORS.COLOR_NEUTRAL_0,
24
75
  },
25
- container: {
76
+ },
77
+ button: {
78
+ primary: {
26
79
  background: {
27
- base: COLORS.COLOR_NEUTRAL_900,
28
- success: green.background,
29
- warning: yellow.background,
30
- error: red.background,
31
- info: blue.background,
32
- opportunity: purple.background,
33
- danger: red.background,
34
- decorative: {
35
- green: green.background,
36
- blue: blue.background,
37
- purple: purple.background,
38
- yellow: yellow.background,
39
- orange: orange.background,
40
- red: red.background,
41
- neutral: neutral.background,
42
- },
43
- selected: COLORS.COLOR_NEUTRAL_0,
80
+ base: COLORS.COLOR_BLUE_400,
81
+ hover: COLORS.COLOR_BLUE_300,
82
+ active: COLORS.COLOR_BLUE_200,
44
83
  },
45
84
  border: {
46
- base: COLORS.COLOR_NEUTRAL_1100,
47
- success: green.highlight,
48
- warning: yellow.highlight,
49
- error: red.highlight,
50
- danger: red.highlight,
51
- info: blue.highlight,
52
- opportunity: purple.highlight,
53
- decorative: {
54
- green: green.highlight,
55
- blue: blue.highlight,
56
- purple: purple.highlight,
57
- yellow: yellow.highlight,
58
- orange: orange.highlight,
59
- red: red.highlight,
60
- neutral: neutral.highlight,
61
- },
62
- selected: COLORS.COLOR_NEUTRAL_0,
85
+ base: "transparent",
63
86
  },
64
- },
65
- button: {
66
- primary: {
67
- background: {
68
- base: COLORS.COLOR_BLUE_400,
69
- hover: COLORS.COLOR_BLUE_300,
70
- active: COLORS.COLOR_BLUE_200,
71
- },
72
- border: {
73
- base: "transparent",
74
- },
75
- text: {
76
- base: COLORS.COLOR_NEUTRAL_900,
77
- hover: COLORS.COLOR_NEUTRAL_1000,
78
- },
79
- },
80
- secondary: {
81
- background: {
82
- base: "transparent",
83
- hover: COLORS.COLOR_NEUTRAL_100,
84
- active: COLORS.COLOR_NEUTRAL_0,
85
- },
86
- border: {
87
- base: COLORS.COLOR_NEUTRAL_0,
88
- },
89
- text: {
90
- base: COLORS.COLOR_NEUTRAL_0,
91
- hover: COLORS.COLOR_NEUTRAL_800,
92
- },
93
- },
94
- pill: {
95
- background: {
96
- base: "transparent",
97
- hover: COLORS.COLOR_NEUTRAL_1000,
98
- active: COLORS.COLOR_NEUTRAL_900,
99
- },
100
- border: {
101
- base: "transparent",
102
- },
103
- text: {
104
- base: COLORS.COLOR_NEUTRAL_100,
105
- hover: COLORS.COLOR_NEUTRAL_0,
106
- },
107
- },
108
- destructive: {
109
- background: {
110
- base: COLORS.COLOR_RED_400,
111
- hover: COLORS.COLOR_RED_300,
112
- active: COLORS.COLOR_RED_200,
113
- },
114
- border: {
115
- base: "transparent",
116
- },
117
- text: {
118
- base: COLORS.COLOR_NEUTRAL_900,
119
- hover: COLORS.COLOR_NEUTRAL_1000,
120
- },
121
- },
122
- placeholder: {
123
- background: {
124
- base: "transparent",
125
- hover: COLORS.COLOR_NEUTRAL_1100,
126
- active: COLORS.COLOR_NEUTRAL_1100,
127
- },
128
- border: {
129
- base: COLORS.COLOR_NEUTRAL_500,
130
- },
131
- text: {
132
- base: COLORS.COLOR_BLUE_400,
133
- hover: COLORS.COLOR_BLUE_300,
134
- },
135
- },
136
- unstyled: {
137
- background: {
138
- base: "transparent",
139
- },
140
- border: {
141
- base: "transparent",
142
- },
143
- text: {
144
- base: COLORS.COLOR_NEUTRAL_300,
145
- hover: COLORS.COLOR_NEUTRAL_200,
146
- },
87
+ text: {
88
+ base: COLORS.COLOR_NEUTRAL_900,
89
+ hover: COLORS.COLOR_NEUTRAL_1000,
147
90
  },
148
91
  },
149
- link: {
150
- base: COLORS.COLOR_BLUE_400,
151
- hover: COLORS.COLOR_BLUE_300,
152
- },
153
- text: {
154
- headline: COLORS.COLOR_NEUTRAL_0,
155
- subtext: COLORS.COLOR_NEUTRAL_300,
156
- body: COLORS.COLOR_NEUTRAL_100,
157
- inverse: COLORS.COLOR_NEUTRAL_900,
158
- error: COLORS.COLOR_RED_400,
92
+ secondary: {
93
+ background: {
94
+ base: "transparent",
95
+ hover: COLORS.COLOR_NEUTRAL_100,
96
+ active: COLORS.COLOR_NEUTRAL_0,
97
+ },
98
+ border: {
99
+ base: COLORS.COLOR_NEUTRAL_0,
100
+ },
101
+ text: {
102
+ base: COLORS.COLOR_NEUTRAL_0,
103
+ hover: COLORS.COLOR_NEUTRAL_800,
104
+ },
159
105
  },
160
- icon: {
161
- base: COLORS.COLOR_NEUTRAL_100,
162
- inverse: COLORS.COLOR_NEUTRAL_900,
163
- success: green.foreground,
164
- warning: yellow.foreground,
165
- error: red.foreground,
166
- danger: red.foreground,
167
- info: blue.foreground,
168
- opportunity: purple.foreground,
106
+ pill: {
107
+ background: {
108
+ base: "transparent",
109
+ hover: COLORS.COLOR_NEUTRAL_1000,
110
+ active: COLORS.COLOR_NEUTRAL_900,
111
+ },
112
+ border: {
113
+ base: "transparent",
114
+ },
115
+ text: {
116
+ base: COLORS.COLOR_NEUTRAL_100,
117
+ hover: COLORS.COLOR_NEUTRAL_0,
118
+ },
169
119
  },
170
- form: {
120
+ destructive: {
171
121
  background: {
122
+ base: COLORS.COLOR_RED_400,
123
+ hover: COLORS.COLOR_RED_300,
124
+ active: COLORS.COLOR_RED_200,
125
+ },
126
+ border: {
127
+ base: "transparent",
128
+ },
129
+ text: {
172
130
  base: COLORS.COLOR_NEUTRAL_900,
173
- selected: COLORS.COLOR_NEUTRAL_0,
131
+ hover: COLORS.COLOR_NEUTRAL_1000,
132
+ },
133
+ },
134
+ placeholder: {
135
+ background: {
136
+ base: "transparent",
137
+ hover: COLORS.COLOR_NEUTRAL_1100,
138
+ active: COLORS.COLOR_NEUTRAL_1100,
174
139
  },
175
140
  border: {
176
141
  base: COLORS.COLOR_NEUTRAL_500,
177
- error: red.highlight,
178
- warning: yellow.highlight,
179
- selected: COLORS.COLOR_NEUTRAL_0,
180
142
  },
181
- placeholder: {
182
- base: COLORS.COLOR_NEUTRAL_500,
143
+ text: {
144
+ base: COLORS.COLOR_BLUE_400,
145
+ hover: COLORS.COLOR_BLUE_300,
183
146
  },
184
147
  },
185
- listItem: {
148
+ unstyled: {
186
149
  background: {
187
150
  base: "transparent",
188
- hover: COLORS.COLOR_NEUTRAL_800,
189
- selected: COLORS.COLOR_NEUTRAL_0,
151
+ },
152
+ border: {
153
+ base: "transparent",
154
+ },
155
+ text: {
156
+ base: COLORS.COLOR_NEUTRAL_300,
157
+ hover: COLORS.COLOR_NEUTRAL_200,
190
158
  },
191
159
  },
192
- ...datavizPalette,
193
160
  },
194
- mode: "dark",
161
+ link: {
162
+ base: COLORS.COLOR_BLUE_400,
163
+ hover: COLORS.COLOR_BLUE_300,
164
+ },
165
+ text: {
166
+ headline: COLORS.COLOR_NEUTRAL_0,
167
+ subtext: COLORS.COLOR_NEUTRAL_300,
168
+ body: COLORS.COLOR_NEUTRAL_100,
169
+ inverse: COLORS.COLOR_NEUTRAL_900,
170
+ error: COLORS.COLOR_RED_400,
171
+ },
172
+ icon: {
173
+ base: COLORS.COLOR_NEUTRAL_100,
174
+ inverse: COLORS.COLOR_NEUTRAL_900,
175
+ success: green.foreground,
176
+ warning: yellow.foreground,
177
+ error: red.foreground,
178
+ danger: red.foreground,
179
+ info: blue.foreground,
180
+ opportunity: purple.foreground,
181
+ },
182
+ form: {
183
+ background: {
184
+ base: COLORS.COLOR_NEUTRAL_900,
185
+ selected: COLORS.COLOR_NEUTRAL_0,
186
+ },
187
+ border: {
188
+ base: COLORS.COLOR_NEUTRAL_500,
189
+ error: red.highlight,
190
+ warning: yellow.highlight,
191
+ selected: COLORS.COLOR_NEUTRAL_0,
192
+ },
193
+ placeholder: {
194
+ base: COLORS.COLOR_NEUTRAL_500,
195
+ },
196
+ },
197
+ listItem: {
198
+ background: {
199
+ base: "transparent",
200
+ hover: COLORS.COLOR_NEUTRAL_800,
201
+ selected: COLORS.COLOR_NEUTRAL_0,
202
+ },
203
+ },
204
+ elevation: {
205
+ base: COLORS.COLOR_NEUTRAL_1100,
206
+ },
207
+ dataviz: {
208
+ map: datavizPalette.DATAVIZ_COLORS_MAP,
209
+ list: datavizPalette.DATAVIZ_COLORS_LIST,
210
+ },
211
+ ...datavizPalette,
212
+ };
213
+
214
+ const darkTheme = {
215
+ ...defaultTheme,
216
+ colors,
217
+ shadows,
218
+ mode: MODE,
195
219
  };
196
220
 
197
221
  export default darkTheme;