@cerebruminc/cerebellum 17.3.2 → 17.3.3-beta.dangerous.d775720

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 (45) hide show
  1. package/.jsonSeeds/digitalInput.json +1 -1
  2. package/.jsonSeeds/input.json +1 -1
  3. package/.jsonSeeds/stepper.json +1 -1
  4. package/.jsonSeeds/table.json +1 -1
  5. package/CHANGELOG.md +10 -0
  6. package/package.json +1 -1
  7. package/src/components/Button/Button.tsx +9 -1
  8. package/src/components/Button/ButtonComponentStyles.tsx +72 -5
  9. package/src/components/Button/helpers.ts +2 -2
  10. package/src/components/Button/types.ts +2 -0
  11. package/src/components/CheckboxGroup/types.ts +2 -2
  12. package/src/components/ColorPickerInput/ColorPickerInput.mdx +1 -1
  13. package/src/components/ConfigurableInput/ConfigurableInput.mdx +1 -1
  14. package/src/components/CreditCardInput/types.ts +1 -1
  15. package/src/components/CurrencyInput/types.ts +1 -1
  16. package/src/components/DatePicker/DatePicker.mdx +1 -1
  17. package/src/components/DatePicker/types.ts +1 -1
  18. package/src/components/DigitalInput/DigitalInput.mdx +1 -1
  19. package/src/components/EmailInput/types.ts +1 -1
  20. package/src/components/HorizontalTabMenu/HorizontalTabMenu.mdx +1 -1
  21. package/src/components/HorizontalTabMenu/types.ts +1 -1
  22. package/src/components/ImagePicker/ImagePicker.mdx +1 -1
  23. package/src/components/InlineInput/types.ts +1 -1
  24. package/src/components/Input/types.ts +1 -1
  25. package/src/components/PhoneInput/types.ts +1 -1
  26. package/src/components/RJSForm/RJSFormStyles.tsx +2 -2
  27. package/src/components/RJSFormRenderer/RJSFormRenderer.mdx +1 -1
  28. package/src/components/RadioGroup/types.ts +2 -2
  29. package/src/components/SearchMenu/SearchMenu.tsx +1 -1
  30. package/src/components/SsnInput/types.ts +1 -1
  31. package/src/components/Stepper/Stepper.mdx +3 -3
  32. package/src/components/Table/types.ts +2 -2
  33. package/src/components/Textarea/types.ts +1 -1
  34. package/src/components/ToggleButtons/ToggleButtons.test.tsx +1 -1
  35. package/src/components/ToggleGroup/types.ts +2 -2
  36. package/src/components/TooltipOptions/TooltipOptionsStyles.tsx +1 -1
  37. package/src/components/UserInformationCard/UserInformationCardStyles.tsx +1 -1
  38. package/src/components/ZipCodeInput/types.ts +1 -1
  39. package/src/configuredComponents/DescriptiveDropdownInput/DescriptiveDropdownInput.mdx +1 -1
  40. package/src/configuredComponents/DropdownInput/types.ts +1 -1
  41. package/src/configuredComponents/StatusDropdown/StatusDropdown.tsx +2 -2
  42. package/src/examples/FormGridLayout.tsx +1 -1
  43. package/src/mantine/mantineTheme.ts +15 -15
  44. package/src/sharedTypes/types.ts +1 -0
  45. package/src/theme.ts +14 -12
@@ -183,7 +183,7 @@
183
183
  "name": "helperTextColor",
184
184
  "property": "color",
185
185
  "type": "string",
186
- "value": "colors.COOL_GREY_60",
186
+ "value": "colors.COOL_GREY_65",
187
187
  "description": "The color for the helper text"
188
188
  },
189
189
  {
@@ -189,7 +189,7 @@
189
189
  "name": "helperTextColor",
190
190
  "property": "color",
191
191
  "type": "string",
192
- "value": "colors.COOL_GREY_60",
192
+ "value": "colors.COOL_GREY_65",
193
193
  "description": "The helper text color"
194
194
  },
195
195
  {
@@ -174,7 +174,7 @@
174
174
  "name": "inactiveTextColor",
175
175
  "property": "color",
176
176
  "type": "string",
177
- "value": "colors.COOL_GREY_60",
177
+ "value": "colors.COOL_GREY_65",
178
178
  "description": "The future/disabled steps` text color"
179
179
  }
180
180
  ],
@@ -411,7 +411,7 @@
411
411
  "name": "inactiveHeaderColor",
412
412
  "property": "color",
413
413
  "type": "string",
414
- "value": "colors.COOL_GREY_60",
414
+ "value": "colors.COOL_GREY_65",
415
415
  "description": "The header text color when it is not the sorting column"
416
416
  },
417
417
  {
package/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # react-component-lib-boilerplate
2
2
 
3
+ ## [17.3.3](https://github.com/cerebruminc/cerebellum/compare/v17.3.2...v17.3.3) (2026-06-17)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * **button:** add secondaryText color property and hover text transitions ([22f165d](https://github.com/cerebruminc/cerebellum/commit/22f165d001263d93dccf583036c9ff4f07b37c83))
9
+ * **button:** sync Mantine theme button colors with accessible values ([b18f1eb](https://github.com/cerebruminc/cerebellum/commit/b18f1eb12f18eba7011d7b14c12fd110afe0083f))
10
+ * **button:** update color families for WCAG AA compliance ([75f6b2f](https://github.com/cerebruminc/cerebellum/commit/75f6b2fc044c50c536710339ae9472780f5924d8))
11
+ * **toggle-button:** update test to work with new colors ([e60fe71](https://github.com/cerebruminc/cerebellum/commit/e60fe71f0ce2ba94e2937c2200b38eb13a81523d))
12
+
3
13
  ## [17.3.2](https://github.com/cerebruminc/cerebellum/compare/v17.3.1...v17.3.2) (2026-06-15)
4
14
 
5
15
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cerebruminc/cerebellum",
3
- "version": "17.3.2",
3
+ "version": "17.3.3-beta.dangerous.d775720",
4
4
  "description": "Cerebrum's React Component Library",
5
5
  "type": "module",
6
6
  "main": "src/index.ts",
@@ -89,7 +89,13 @@ export const Button: FC<ButtonType> = (props: ButtonType) => {
89
89
  const arrowGap = directionalButtonGap || theme.button?.directionalButtonGap;
90
90
  const confirmedCaretGap = caretGap || theme.button?.caretGap;
91
91
  const confirmedIconGap = iconGap ?? (boxed || textButton ? 10 : boxedOutline ? 13 : Icon ? 20 : arrowGap || 70);
92
- const iconColor = disabled ? disabledTextColor || theme.button?.disabledTextColor : primary && !white ? colorGroup.text : colorGroup.main;
92
+ const iconColor = disabled
93
+ ? disabledTextColor || theme.button?.disabledTextColor
94
+ : primary && !white
95
+ ? colorGroup.text
96
+ : secondary || boxed
97
+ ? colorGroup.secondaryText || colorGroup.main
98
+ : colorGroup.main;
93
99
  const loadingStyleFormat =
94
100
  loadingConfiguration || getLoadingConfiguration({ primary, outline, boxedOutline, secondary, textButton, boxed, colorGroup });
95
101
  const loadingOffsetParams = { iconSize, autoIconSize, iconGap, confirmedIconGap, Icon, backButton, caret, nextButton };
@@ -182,7 +188,9 @@ export const Button: FC<ButtonType> = (props: ButtonType) => {
182
188
  $disabled={disabled}
183
189
  $disabledTextColor={disabledTextColor}
184
190
  $letterSpacing={letterSpacing}
191
+ $outline={outline}
185
192
  $primary={!(!primary || white)}
193
+ $secondary={secondary}
186
194
  $textButton={textButton}
187
195
  $textFontSize={textFontSize}
188
196
  data-sentry-unmask
@@ -1,5 +1,5 @@
1
1
  import { colors } from "../../const/colors";
2
- import { styled } from "styled-components";
2
+ import { styled, type DefaultTheme } from "styled-components";
3
3
 
4
4
  import {
5
5
  ButtonElementProps,
@@ -11,6 +11,64 @@ import {
11
11
  UnderlineProps,
12
12
  } from "./types";
13
13
 
14
+ type BaseTextColorProps = Pick<TextProps, "$primary" | "$secondary" | "$boxed" | "$colorGroup" | "$disabled" | "$disabledTextColor"> & {
15
+ theme: DefaultTheme;
16
+ };
17
+
18
+ type HoverTextColorProps = Pick<
19
+ TextProps,
20
+ "$primary" | "$secondary" | "$boxed" | "$outline" | "$boxedOutline" | "$textButton" | "$colorGroup" | "$disabled" | "$disabledTextColor"
21
+ > & {
22
+ theme: DefaultTheme;
23
+ };
24
+
25
+ const getBaseTextColor = ({ $primary, $secondary, $boxed, $colorGroup, $disabled, $disabledTextColor, theme }: BaseTextColorProps) => {
26
+ if ($disabled) {
27
+ return $disabledTextColor || theme.button?.disabledTextColor;
28
+ }
29
+
30
+ if ($primary) {
31
+ return $colorGroup.text;
32
+ }
33
+
34
+ if ($secondary || $boxed) {
35
+ return $colorGroup.secondaryText || $colorGroup.main;
36
+ }
37
+
38
+ return $colorGroup.main;
39
+ };
40
+
41
+ const getHoverTextColor = ({
42
+ $primary,
43
+ $secondary,
44
+ $boxed,
45
+ $outline,
46
+ $boxedOutline,
47
+ $textButton,
48
+ $colorGroup,
49
+ $disabled,
50
+ $disabledTextColor,
51
+ theme,
52
+ }: HoverTextColorProps) => {
53
+ if ($disabled) {
54
+ return $disabledTextColor || theme.button?.disabledTextColor;
55
+ }
56
+
57
+ if ($primary) {
58
+ return $colorGroup.text;
59
+ }
60
+
61
+ if ($outline || $boxedOutline) {
62
+ return $colorGroup.hover;
63
+ }
64
+
65
+ if ($textButton || $secondary || $boxed) {
66
+ return $colorGroup.secondaryText || $colorGroup.main;
67
+ }
68
+
69
+ return $colorGroup.main;
70
+ };
71
+
14
72
  export const ButtonElement = styled.button<ButtonElementProps>`
15
73
  align-items: center;
16
74
  line-height: ${({ $lineHeight }) => ($lineHeight ? $lineHeight : 1.15)};
@@ -40,7 +98,11 @@ export const ButtonElement = styled.button<ButtonElementProps>`
40
98
  }};
41
99
  border: 1px solid
42
100
  ${({ $boxedOutline, disabled, $disabledTextColor, $outline, $colorGroup, $textButton, theme }) =>
43
- $boxedOutline || $outline ? (disabled ? $disabledTextColor || theme.button?.disabledTextColor : $colorGroup.main) : $textButton ? "transparent" : theme.button?.outlineColor || "transparent"};
101
+ $boxedOutline || $outline
102
+ ? (disabled ? $disabledTextColor || theme.button?.disabledTextColor : $colorGroup.main)
103
+ : $textButton
104
+ ? "transparent"
105
+ : theme.button?.outlineColor || "transparent"};
44
106
  border-radius: ${({ $borderRadius, $boxed, $boxedOutline, $textButton }) =>
45
107
  $borderRadius ?? ($boxedOutline ? 7 : $boxed || $textButton ? 8 : 30)}px;
46
108
  box-shadow: ${({ $colorGroup, disabled, $primary, $shadow }) =>
@@ -88,6 +150,8 @@ export const ButtonElement = styled.button<ButtonElementProps>`
88
150
  ? $colorGroup.medium
89
151
  : $colorGroup.hover;
90
152
  }};
153
+ ${({ $boxedOutline, $outline, $colorGroup, disabled }) =>
154
+ ($boxedOutline || $outline) && !disabled ? `border-color: ${$colorGroup.hover};` : ""}
91
155
  }
92
156
  &:after {
93
157
  content: "";
@@ -142,15 +206,18 @@ export const NextIconBox = styled(IconBox)`
142
206
  margin-right: 0;
143
207
  `;
144
208
  export const Text = styled.span<TextProps>`
145
- color: ${({ $primary, $colorGroup, $disabled, $disabledTextColor, theme }) =>
146
- $disabled ? $disabledTextColor || theme.button?.disabledTextColor : $primary ? $colorGroup.text : $colorGroup.main};
209
+ color: ${getBaseTextColor};
147
210
  font-size: ${(props) => props.$textFontSize || props.theme.button?.textFontSize}px;
148
211
  font-weight: ${({ $boxed, $boxedOutline, $textButton }) => ($boxed || $boxedOutline || $textButton ? 500 : 600)};
149
- letter-spacing: ${({ $boxed, $boxedOutline, $letterSpacing, $textButton: textButton }) => ($letterSpacing ? $letterSpacing : ($boxed || $boxedOutline || textButton ? "0.36px" : "0.07em"))};
212
+ letter-spacing: ${({ $boxed, $boxedOutline, $letterSpacing, $textButton: textButton }) => ($letterSpacing ? $letterSpacing : $boxed || $boxedOutline || textButton ? "0.36px" : "0.07em")};
150
213
  position: relative;
214
+ transition: color 150ms ease-out;
151
215
  vertical-align: middle;
152
216
  white-space: nowrap;
153
217
  z-index: 1;
218
+ ${ButtonElement}:hover & {
219
+ color: ${getHoverTextColor};
220
+ }
154
221
  `;
155
222
  export const TextButtonBackground = styled.span<TextBackgroundProps>`
156
223
  bottom: 0;
@@ -69,7 +69,7 @@ export const getLoadingConfiguration = ({
69
69
  if (primary) {
70
70
  return PrimaryButtonLoadingConfiguration(colorGroup?.text);
71
71
  } else if (secondary) {
72
- return SecondaryButtonLoadingConfiguration(colorGroup?.main);
72
+ return SecondaryButtonLoadingConfiguration(colorGroup?.secondaryText || colorGroup?.main);
73
73
  } else if (outline) {
74
74
  return OutlineButtonLoadingConfiguration(colorGroup?.main);
75
75
  } else if (boxedOutline) {
@@ -77,7 +77,7 @@ export const getLoadingConfiguration = ({
77
77
  } else if (textButton) {
78
78
  return TextButtonLoadingConfiguration(colorGroup?.main);
79
79
  } else if (boxed) {
80
- return BoxedButtonLoadingConfiguration(colorGroup?.main);
80
+ return BoxedButtonLoadingConfiguration(colorGroup?.secondaryText || colorGroup?.main);
81
81
  } else {
82
82
  return {};
83
83
  }
@@ -164,7 +164,9 @@ export interface TextProps {
164
164
  $disabled?: boolean;
165
165
  $disabledTextColor?: string;
166
166
  $letterSpacing?: string;
167
+ $outline?: boolean;
167
168
  $primary: boolean;
169
+ $secondary?: boolean;
168
170
  $textButton?: boolean;
169
171
  $textFontSize?: number;
170
172
  }
@@ -17,9 +17,9 @@ export interface CheckboxGroupType extends Omit<CheckboxItemType, "active" | "di
17
17
  disableGroup?: boolean;
18
18
  /** The failed validation color. THEME PROP: default is colors.RED_100 */
19
19
  failColor?: string;
20
- /** Small explainatory text that applies to the whole checkbox group. It appears under the label */
20
+ /** Small explanatory text that applies to the whole checkbox group. It appears under the label */
21
21
  helperText?: string | ReactElement;
22
- /** The color for the helper text. THEME PROP: default is colors.COOL_GREY_60 */
22
+ /** The color for the helper text. THEME PROP: default is colors.COOL_GREY_65 */
23
23
  helperTextColor?: string;
24
24
  /** The label for CheckboxGroup. Not required, but strongly recommended */
25
25
  label?: ReactNode;
@@ -52,7 +52,7 @@ If you need to override the theme, these props are available through `themeOverr
52
52
  | disabledColor | string | Text color when input is disabled | colors.COOL_GREY_30 |
53
53
  | failColor | string | Border color when validation fails | colors.RED_100 |
54
54
  | failColorSecondary | string | Secondary color for validation failure states | colors.RED_5 |
55
- | helperTextColor | string | Color of helper text and legibility messages | colors.COOL_GREY_60 |
55
+ | helperTextColor | string | Color of helper text and legibility messages | colors.COOL_GREY_65 |
56
56
  | hoverBorderColor | string | Border color when input is hovered | colors.COOL_GREY_40 |
57
57
  | inactiveBorderColor | string | Border color when input is inactive | colors.COOL_GREY_25 |
58
58
  | inputBackgroundColor | string | Background color of the input | colors.WHITE |
@@ -85,7 +85,7 @@ import { ConfigurableInput, ConfigurableInputType, MaskedRadioType } from "@cere
85
85
  | focusedRadioColor | string | Color of the shadow when a radio is focused | colors.BLUE_5 |
86
86
  | failColor | string | The failed validation color. | colors.RED_100 |
87
87
  | failColorSecondary | string | The failed validation color that highlights the input text | colors.RED_5 |
88
- | helperTextColor | string | The helper text color. | colors.COOL_GREY_60 |
88
+ | helperTextColor | string | The helper text color. | colors.COOL_GREY_65 |
89
89
  | hoverBorderColor | string | The input border color, on hover | colors.COOL_GREY_40 |
90
90
  | inactiveBorderColor | string | The input border color | colors.COOL_GREY_25 |
91
91
  | inactiveRadioColor | string | The inactive radio color | colors.COOL_GREY_60 |
@@ -6,7 +6,7 @@ export interface CreditCardInputType extends Omit<InlineCreditCardInputType, "tr
6
6
  asteriskColor?: string;
7
7
  /** Descriptive text for your input. Keep it short & concise */
8
8
  helperText?: string | ReactElement;
9
- /** The helper text color. Also used for trailing text. THEME PROP: default is colors.COOL_GREY_60 */
9
+ /** The helper text color. Also used for trailing text. THEME PROP: default is colors.COOL_GREY_65 */
10
10
  helperTextColor?: string;
11
11
  /** A label for your input. Not required, but strongly recommended. */
12
12
  inputLabel?: ReactNode;
@@ -6,7 +6,7 @@ export interface CurrencyInputType extends Omit<InlineCurrencyInputType, "traili
6
6
  asteriskColor?: string;
7
7
  /** Descriptive text for your input. Keep it short & concise */
8
8
  helperText?: string | ReactElement;
9
- /** The helper text color. Also used for trailing text. THEME PROP: default is colors.COOL_GREY_60 */
9
+ /** The helper text color. Also used for trailing text. THEME PROP: default is colors.COOL_GREY_65 */
10
10
  helperTextColor?: string;
11
11
  /** A label for your input. Not required, but strongly recommended. */
12
12
  inputLabel?: ReactNode;
@@ -72,7 +72,7 @@ DatePicker supports theme styling. You can pass the following props individually
72
72
  | calendarHeaderColor | string | Calendar header color, and hover date color | colors.COOL_GREY_5 |
73
73
  | disabledColor | string | If `disabled`, then everything turns this color | colors.COOL_GREY_30 |
74
74
  | failColor | string | The failed validation color | colors.RED_100 |
75
- | helperTextColor | string | The helper text color | colors.COOL_GREY_60 |
75
+ | helperTextColor | string | The helper text color | colors.COOL_GREY_65 |
76
76
  | inactiveBorderColor | string | The border color | colors.COOL_GREY_25 |
77
77
  | inactiveIconColor | string | The icon color | colors.COOL_GREY_35 |
78
78
  | inputHeight | number | The input height, not counting the label, in pixels | 55 |
@@ -85,7 +85,7 @@ export type DatePickerType = InlineDatePickerProps & {
85
85
  asteriskColor?: string;
86
86
  /** Descriptive text for your input. Keep it short & concise */
87
87
  helperText?: string | ReactElement;
88
- /** The helper text color. Set by the theme, defaults to colors.COOL_GREY_60 */
88
+ /** The helper text color. Set by the theme, defaults to colors.COOL_GREY_65 */
89
89
  helperTextColor?: string;
90
90
  /** A label for your input. Not required, but strongly recommended. */
91
91
  inputLabel?: ReactNode;
@@ -89,7 +89,7 @@ If you need to override the theme, these props are available through `themeOverr
89
89
  | disabledColor | string | If `disabled`, then everything turns this color | colors.COOL_GREY_30 |
90
90
  | disabledBorderColor | string | If `disabled`, then the border turns this color | colors.COOL_GREY_25 |
91
91
  | failColor | string | The failed validation color | colors.RED_100 |
92
- | helperTextColor | string | The color for the helper text | colors.COOL_GREY_60 |
92
+ | helperTextColor | string | The color for the helper text | colors.COOL_GREY_65 |
93
93
  | hoverBorderColor | string | The border color, on hover | colors.COOL_GREY_40 |
94
94
  | inactiveBorderColor | string | The border color | colors.COOL_GREY_25 |
95
95
  | inputBackgroundColor | string | The input&#39;s background color | colors.WHITE |
@@ -6,7 +6,7 @@ export interface EmailInputType extends InlineEmailInputType {
6
6
  asteriskColor?: string;
7
7
  /** Descriptive text for your input. Keep it short & concise */
8
8
  helperText?: string | ReactElement;
9
- /** The helper text color. Also used for trailing text. THEME PROP: default is colors.COOL_GREY_60 */
9
+ /** The helper text color. Also used for trailing text. THEME PROP: default is colors.COOL_GREY_65 */
10
10
  helperTextColor?: string;
11
11
  /** A label for your input. Not required, but strongly recommended. */
12
12
  inputLabel?: ReactNode;
@@ -105,7 +105,7 @@ If you update `options` to change the tabs contents (ie, change a label's text),
105
105
  | mainColor | string | The highlight color for active menu items. | BLUE_100 |
106
106
  | menuPaddingString | string | Padding for the HorizontalTabMenu | 4px 0 0 0 |
107
107
  | minTabWidth | number | Sets a minimum tab width. Useful for numerical tab labels | -- |
108
- | textColor | string | Text color for inactive menu items. | COOL_GREY_60 |
108
+ | textColor | string | Text color for inactive menu items. | COOL_GREY_65 |
109
109
  | textHoverColor | string | Text color for inactive menu items when hovered. | COOL_GREY_75 |
110
110
  | underlineColor | string | Color for the underline, when `floating: false`. | COOL_GREY_20 |
111
111
 
@@ -31,7 +31,7 @@ export interface HorizontalTabMenuType {
31
31
  preventClick?: boolean;
32
32
  /** The space between the tabs, in pixels */
33
33
  spaceBetweenTabs?: number;
34
- /** Text color for inactive menu items. THEME PROP: default is colors.COOL_GREY_60 */
34
+ /** Text color for inactive menu items. THEME PROP: default is colors.COOL_GREY_65 */
35
35
  textColor?: string;
36
36
  /** Text color for inactive menu items when hovered. THEME PROP: default is colors.COOL_GREY_75 */
37
37
  textHoverColor?: string;
@@ -127,7 +127,7 @@ If you need to override the theme, these props are available through `themeOverr
127
127
  | borderRadius | number | The outline box border radius, in pixels | 5 |
128
128
  | disabledColor | string | The label and helperText when disabled | colors.COOL_GREY_30 |
129
129
  | failColor | string | The failed validation color | colors.RED_100 |
130
- | helperTextColor | string | The helper text color. | colors.COOL_GREY_60 |
130
+ | helperTextColor | string | The helper text color. | colors.COOL_GREY_65 |
131
131
  | labelColor | string | The image label color. | colors.COOL_GREY_80 |
132
132
  | placeholderCircleColor | string | The color for the placeholder circle | colors.BLUE_100 |
133
133
  | placeholderIconHeight | number | The height for the placeholder icon | 95px |
@@ -128,7 +128,7 @@ export interface InlineInputType {
128
128
  textFontSize?: number;
129
129
  /** The trailing icon's color. Only used if passing an icon component from Cerebellum. THEME PROP: default is colors.COOL_GREY_60 */
130
130
  trailingIconColor?: string;
131
- /** The trailing text color. THEME PROP: default is colors.COOL_GREY_60 */
131
+ /** The trailing text color. THEME PROP: default is colors.COOL_GREY_65 */
132
132
  trailingTextColor?: string;
133
133
  }
134
134
 
@@ -6,7 +6,7 @@ export interface InputType extends InlineInputType {
6
6
  asteriskColor?: string;
7
7
  /** Descriptive text for your input. Keep it short & concise */
8
8
  helperText?: string | ReactElement;
9
- /** The helper text color. Also used for trailing text. THEME PROP: default is colors.COOL_GREY_60 */
9
+ /** The helper text color. Also used for trailing text. THEME PROP: default is colors.COOL_GREY_65 */
10
10
  helperTextColor?: string;
11
11
  /** A label for your input. Not required, but strongly recommended. */
12
12
  inputLabel?: ReactNode;
@@ -6,7 +6,7 @@ export interface PhoneInputType extends Omit<InlinePhoneInputType, "trailingText
6
6
  asteriskColor?: string;
7
7
  /** Descriptive text for your input. Keep it short & concise */
8
8
  helperText?: string | ReactElement;
9
- /** The helper text color. Also used for trailing text. THEME PROP: default is colors.COOL_GREY_60 */
9
+ /** The helper text color. Also used for trailing text. THEME PROP: default is colors.COOL_GREY_65 */
10
10
  helperTextColor?: string;
11
11
  /** A label for your input. Not required, but strongly recommended. */
12
12
  inputLabel?: ReactNode;
@@ -78,10 +78,10 @@ export const RJSTitleBox = styled.div<RJSTitleBoxProps>`
78
78
  `;
79
79
 
80
80
  const ValueLabel = styled.span<{ $isDefault?: boolean }>`
81
- color: ${({ $isDefault }) => ($isDefault ? colors.COOL_GREY_60 : colors.BLUE_60)};
81
+ color: ${({ $isDefault }) => ($isDefault ? colors.COOL_GREY_65 : colors.BLUE_60)};
82
82
  font-size: 15px;
83
83
  cursor: ${({ $isDefault }) => ($isDefault ? "default" : "pointer")};
84
- text-decoration: ${({ $isDefault }) => ($isDefault ? "default" : "underline")};
84
+ text-decoration: ${({ $isDefault }) => ($isDefault ? "none" : "underline")};
85
85
  `;
86
86
 
87
87
  const FlexListItem = styled.li`
@@ -56,7 +56,7 @@ If you need to override the theme, these props are available through `themeOverr
56
56
  | --------------------- | ------ | ------------------------------------------------- | -------------------- |
57
57
  | altRowBackgroundColor | string | The background color of the odd rows | colors.COOL_GREY_4 |
58
58
  | backgroundColor | string | The background color of the surrounding component | colors.WHITE |
59
- | labelColor | string | The color for the label | colors.COOL_GREY_60 |
59
+ | labelColor | string | The color for the label | colors.COOL_GREY_65 |
60
60
  | paddingString | string | The padding value for the surrounding component | "30px 20px" |
61
61
  | rowBackgroundColor | string | The background color of the even rows | colors.WHITE |
62
62
  | titleColor | string | The color of the component title | colors.COOL_GREY_100 |
@@ -11,9 +11,9 @@ export interface RadioGroupType extends Omit<RadioItemType, "active" | "disabled
11
11
  disableGroup?: boolean;
12
12
  /** The failed validation color. THEME PROP: default is colors.RED_100 */
13
13
  failColor?: string;
14
- /** Explainatory text that applies to the whole radio group */
14
+ /** Explanatory text that applies to the whole radio group */
15
15
  helperText?: string | ReactElement;
16
- /** The color for the helper text. THEME PROP: default is colors.COOL_GREY_60 */
16
+ /** The color for the helper text. THEME PROP: default is colors.COOL_GREY_65 */
17
17
  helperTextColor?: string;
18
18
  /** Defines if the orientation is horizontal or vertical. */
19
19
  horizontal?: boolean;
@@ -193,7 +193,7 @@ export const SearchMenu: FC<SearchMenuType> = ({
193
193
  <Menu ref={innerRef} $backgroundColor={backgroundColor} $borderRadius={borderRadius} $boxShadow={boxShadow}>
194
194
  {displayHeader && (
195
195
  <Header data-testid="searchMenu_header">
196
- <HeaderTitle $textColor={colors.COOL_GREY_60}>
196
+ <HeaderTitle $textColor={colors.COOL_GREY_65}>
197
197
  <Truncate sentryUnmask>{headerTitle}</Truncate>
198
198
  </HeaderTitle>
199
199
  {headerFunction && (
@@ -36,7 +36,7 @@ export interface SsnInputType extends Omit<InlineSsnInputType, "trailingTextColo
36
36
  asteriskColor?: string;
37
37
  /** Descriptive text for your input. Keep it short & concise */
38
38
  helperText?: string | ReactElement;
39
- /** The helper text color. Also used for trailing text. THEME PROP: default is colors.COOL_GREY_60 */
39
+ /** The helper text color. Also used for trailing text. THEME PROP: default is colors.COOL_GREY_65 */
40
40
  helperTextColor?: string;
41
41
  /** A label for your input. Not required, but strongly recommended. */
42
42
  inputLabel?: ReactNode;
@@ -48,10 +48,10 @@ If you need to override the theme, these props are available through `themeOverr
48
48
  | footerBackgroundColor | string | Footer background color | colors.COOL_GREY_4 |
49
49
  | headerFontSize | number | The header main text's font size, in pixels | 30 |
50
50
  | headerMinHeight | number | The header's minimum height, in pixels | 110 |
51
- | helperText | string | The helperText text color | colors.COOL_GREY_60 |
52
- | inactiveCheckmarkBgColor | string | The future completed steps` checkmark backgroun color | colors.COOL_GREY_20 |
51
+ | helperTextColor | string | The helperText text color | colors.COOL_GREY_65 |
52
+ | inactiveCheckmarkBgColor | string | The future completed steps` checkmark background color | colors.COOL_GREY_20 |
53
53
  | inactiveCheckmarkColor | string | The future completed steps` checkmark color | colors.COOL_GREY_45 |
54
- | inactiveTextColor | string | The future/disabled steps` text color | colors.COOL_GREY_60 |
54
+ | inactiveTextColor | string | The future/disabled steps` text color | colors.COOL_GREY_65 |
55
55
 
56
56
  ### CompletedStepsType
57
57
 
@@ -153,9 +153,9 @@ export interface TableType {
153
153
  highlightRowExtend?: number;
154
154
  /** The color of the rightmost tip of the highlighted row. THEME PROP: Defaults to transparent. */
155
155
  highlightTipColor?: string;
156
- /** The header text color when it is not the sorting column. THEME PROP: default is colors.COOL_GREY_60 */
156
+ /** The header text color when it is not the sorting column. THEME PROP: default is colors.COOL_GREY_65 */
157
157
  inactiveHeaderColor?: string;
158
- /** The header text color when hovered and it is not the sorting column. THEME PROP: default is colors.COOL_GREY_60 */
158
+ /** The header text color when hovered and it is not the sorting column. THEME PROP: default is colors.COOL_GREY_80 */
159
159
  inactiveHeaderColorHover?: string;
160
160
  /** The color family for the no results button. THEME PROP: default is ButtonColorFamilyEnum.Blue */
161
161
  noResultsButtonColorFamily?: ButtonColorFamilyEnum;
@@ -76,7 +76,7 @@ export interface TextareaType extends Omit<InlineTextareaType, "textareaRef" | "
76
76
 
77
77
  /** The required asterisk color. THEME PROP: default is BLUE_70 */
78
78
  asteriskColor?: string;
79
- /** The helper text color. THEME PROP: default is COOL_GREY_60 */
79
+ /** The helper text color. THEME PROP: default is COOL_GREY_65 */
80
80
  helperTextColor?: string;
81
81
  /** The label color. THEME PROP: default is COOL_GREY_80 */
82
82
  labelColor?: string;
@@ -139,7 +139,7 @@ describe("ToggleButtons", () => {
139
139
  const iconBox = screen.getByTestId(`${buttonText} icon`);
140
140
  const path = iconBox.querySelector("path");
141
141
  // Default: active icon fill = colorGroup.hover = BLUE_100
142
- expect(path?.getAttribute("fill")).toBe("#4F6CEA");
142
+ expect(path?.getAttribute("fill")).toBe("#4965c8");
143
143
  });
144
144
 
145
145
  test("active icon uses colorGroup.light fill when invertActive is true", () => {
@@ -10,9 +10,9 @@ export interface ToggleGroupType extends Omit<ToggleItemType, "active" | "label"
10
10
  failColor?: string;
11
11
  /** Disables the whole group. Disable individual toggles in `toggles` */
12
12
  disableGroup?: boolean;
13
- /** Explainatory text that applies to the whole toggle group */
13
+ /** Explanatory text that applies to the whole toggle group */
14
14
  helperText?: string | ReactElement;
15
- /** The color for the helper text. THEME PROP: default is colors.COOL_GREY_60 */
15
+ /** The color for the helper text. THEME PROP: default is colors.COOL_GREY_65 */
16
16
  helperTextColor?: string;
17
17
  /** Removes the bottom padding. This padding is necessary if you're using the `validationMessage` */
18
18
  noBottomPadding?: boolean;
@@ -24,7 +24,7 @@ export const TooltipOptionText = styled(BodySSemiBold)`
24
24
  `;
25
25
 
26
26
  export const Header = styled(BodySSecondary)`
27
- color: ${colors.COOL_GREY_60};
27
+ color: ${colors.COOL_GREY_65};
28
28
  letter-spacing: 0;
29
29
  margin-left: 13px;
30
30
  padding: 3px 0 8px;
@@ -132,7 +132,7 @@ export const Item = styled.div<ItemProps>`
132
132
 
133
133
  export const Label = styled.span`
134
134
  font-size: 15px;
135
- color: ${colors.COOL_GREY_60};
135
+ color: ${colors.COOL_GREY_65};
136
136
  font-weight: 600;
137
137
  width: 100%;
138
138
  `;
@@ -33,7 +33,7 @@ export interface ZipCodeInputType extends Omit<InlineZipCodeInputType, "trailing
33
33
  asteriskColor?: string;
34
34
  /** Descriptive text for your input. Keep it short & concise */
35
35
  helperText?: string | ReactElement;
36
- /** The helper text color. Also used for trailing text. THEME PROP: default is colors.COOL_GREY_60 */
36
+ /** The helper text color. Also used for trailing text. THEME PROP: default is colors.COOL_GREY_65 */
37
37
  helperTextColor?: string;
38
38
  /** A label for your input. Not required, but strongly recommended. */
39
39
  inputLabel?: ReactNode;
@@ -118,7 +118,7 @@ import {
118
118
  | failColor | string | The failed validation color. | colors.RED_100 |
119
119
  | failColorSecondary | string | The failed validation color that highlights the text. | colors.RED_5 |
120
120
  | focusedColor | string | Focus color for the switches | colors.BLUE_5 |
121
- | helperTextColor | string | The helper text color. | colors.COOL_GREY_60 |
121
+ | helperTextColor | string | The helper text color. | colors.COOL_GREY_65 |
122
122
  | hoverBorderColor | string | The border color when InputButton is hovered | colors.COOL_GREY_30 |
123
123
  | inactiveBorderColor | string | The border color. | colors.COOL_GREY_25 |
124
124
  | inactiveSwitchColor | string | Inactive checkbox & radio color | colors.COOL_GREY_60 |
@@ -48,7 +48,7 @@ export interface DropdownInputType {
48
48
  headerFunctionLabel?: string;
49
49
  /** Descriptive text that appears below the InputButton. Keep it short & concise */
50
50
  helperText?: string | ReactElement;
51
- /** The helper text color. THEME PROP: default is colors.COOL_GREY_60 */
51
+ /** The helper text color. THEME PROP: default is colors.COOL_GREY_65 */
52
52
  helperTextColor?: string;
53
53
  /** Hides the InputButton caret. A TrailingIcon will also hide the caret */
54
54
  hideCaret?: boolean;
@@ -27,7 +27,7 @@ export const StatusDropdown: FC<StatusDropdownType> = (props) => {
27
27
  <OptionBox $numbers={numbers}>
28
28
  {numbers && (
29
29
  <Typography
30
- textColor={option?.disabled ? cerebellumTheme.input.disabledColor : colors.COOL_GREY_60}
30
+ textColor={option?.disabled ? cerebellumTheme.input.disabledColor : colors.COOL_GREY_65}
31
31
  variant={TextVariantEnum.BodySEmphasis}
32
32
  >
33
33
  {index != null ? index + 1 : ""}
@@ -40,7 +40,7 @@ export const StatusDropdown: FC<StatusDropdownType> = (props) => {
40
40
  />
41
41
  <Typography
42
42
  textColor={
43
- option?.disabled ? cerebellumTheme.input.disabledColor : option?.status ? colors.COOL_GREY_100 : colors.COOL_GREY_60
43
+ option?.disabled ? cerebellumTheme.input.disabledColor : option?.status ? colors.COOL_GREY_100 : colors.COOL_GREY_65
44
44
  }
45
45
  variant={option?.id === activeId ? TextVariantEnum.BodySSemiBold : TextVariantEnum.BodySPrimary}
46
46
  >
@@ -511,7 +511,7 @@ const AddedApplicantsBase = styled.div`
511
511
  padding: 32px 10px 0px;
512
512
  `;
513
513
  const ApplicantsTableHeader = styled.div`
514
- color: ${colors.COOL_GREY_60};
514
+ color: ${colors.COOL_GREY_65};
515
515
  display: flex;
516
516
  justify-content: space-between;
517
517
  align-items: center;
@@ -82,13 +82,13 @@ const blue: MantineColorsTuple = [
82
82
  "#E5EBFC", // BLUE_5 - 0
83
83
  "#D7E1FF", // BLUE_10 - 1
84
84
  "#ADBDFE", // BLUE_25 - 2
85
- "#829EFD", // BLUE_40 - 3
86
- "#7290F7", // BLUE_50 - 4
87
- "#6b8af5", // BLUE_65 - 5
88
- "#5d7cf0", // BLUE_80 - 6
89
- "#4F6CEA", // BLUE_100 - 7
90
- "#4d6be1", // BLUE_110 - 8
91
- "#4965c8", // BLUE_120 - 9
85
+ "#7A97FA", // BLUE_45 - 3
86
+ "#6988f4", // BLUE_70 - 4
87
+ "#5d7cf0", // BLUE_80 - 5
88
+ "#4F6CEA", // BLUE_100 - 6 (main)
89
+ "#4965c8", // BLUE_120 - 7 (hover)
90
+ "#4158aa", // BLUE_130 - 8 (secondaryText)
91
+ "#394B91", // BLUE_150 - 9
92
92
  ];
93
93
 
94
94
  // High-contrast binary palette — mirrors styled-components highContrastColorFamily (BLACK/WHITE only)
@@ -288,15 +288,15 @@ export const createCustomMantineTheme = (optionsOrBrandColor?: CreateCustomManti
288
288
  ? highContrastRed
289
289
  : [
290
290
  "#FFDDE5", // RED_5 - 0
291
- "#FFCCD4", // RED_15 - 1
291
+ "#FFD5DD", // RED_10 - 1
292
292
  "#FFBBC4", // RED_25 - 2
293
- "#FFAAB4", // RED_35 - 3
294
- "#FF8F9C", // RED_50 - 4
295
- "#FF7285", // RED_65 - 5
296
- "#FF506F", // RED_80 - 6
297
- "#FF3161", // RED_100 - 7
298
- "#EB305A", // RED_110 - 8
299
- "#D72F53", // RED_120 - 9
293
+ "#FF8F9C", // RED_50 - 3
294
+ "#FF677E", // RED_70 - 4
295
+ "#FF3161", // RED_100 - 5
296
+ "#D72F53", // RED_120 - 6 (main)
297
+ "#C42D4C", // RED_130 - 7 (hover)
298
+ "#B02B45", // RED_140 - 8 (secondaryText)
299
+ "#9E293E", // RED_150 - 9
300
300
  ],
301
301
  peach: highContrast
302
302
  ? highContrastGray
@@ -18,6 +18,7 @@ export interface ColorFamilyType {
18
18
  hover: string;
19
19
  text: string;
20
20
  outline?: string;
21
+ secondaryText?: string;
21
22
  }
22
23
  export interface ConnotationColorType {
23
24
  light: string;
package/src/theme.ts CHANGED
@@ -775,9 +775,10 @@ export const cerebellumTheme: DefaultTheme = {
775
775
  medium: colors.BLUE_10,
776
776
  mediumDark: colors.BLUE_25,
777
777
  dark: colors.BLUE_45,
778
- main: colors.BLUE_70,
779
- hover: colors.BLUE_100,
778
+ main: colors.BLUE_100,
779
+ hover: colors.BLUE_120,
780
780
  text: colors.WHITE,
781
+ secondaryText: colors.BLUE_130,
781
782
  },
782
783
  COOL_GREY: {
783
784
  light: colors.COOL_GREY_4,
@@ -811,9 +812,10 @@ export const cerebellumTheme: DefaultTheme = {
811
812
  medium: colors.RED_10,
812
813
  mediumDark: colors.RED_25,
813
814
  dark: colors.RED_65,
814
- main: colors.RED_100,
815
- hover: colors.RED_100,
815
+ main: colors.RED_120,
816
+ hover: colors.RED_130,
816
817
  text: colors.WHITE,
818
+ secondaryText: colors.RED_140,
817
819
  },
818
820
  },
819
821
  colorPicker: {
@@ -869,7 +871,7 @@ export const cerebellumTheme: DefaultTheme = {
869
871
  calendarHeaderColor: colors.COOL_GREY_5,
870
872
  disabledColor: colors.COOL_GREY_30,
871
873
  failColor: colors.RED_100,
872
- helperTextColor: colors.COOL_GREY_60,
874
+ helperTextColor: colors.COOL_GREY_65,
873
875
  inactiveBorderColor: colors.COOL_GREY_25,
874
876
  inactiveIconColor: colors.COOL_GREY_35,
875
877
  inputHeight: 55,
@@ -958,7 +960,7 @@ export const cerebellumTheme: DefaultTheme = {
958
960
  floatingBorderRadius: 10,
959
961
  floatingShadow: "0 4px 10px 0 rgba(81,118,236,0.15)",
960
962
  mainColor: colors.BLUE_100,
961
- textColor: colors.COOL_GREY_60,
963
+ textColor: colors.COOL_GREY_65,
962
964
  textHoverColor: colors.COOL_GREY_75,
963
965
  underlineColor: colors.COOL_GREY_20,
964
966
  },
@@ -986,7 +988,7 @@ export const cerebellumTheme: DefaultTheme = {
986
988
  borderRadius: 5,
987
989
  disabledColor: colors.COOL_GREY_30,
988
990
  failColor: colors.RED_100,
989
- helperTextColor: colors.COOL_GREY_60,
991
+ helperTextColor: colors.COOL_GREY_65,
990
992
  iconSize: 30,
991
993
  imagePadding: 11,
992
994
  labelColor: colors.COOL_GREY_80,
@@ -1008,7 +1010,7 @@ export const cerebellumTheme: DefaultTheme = {
1008
1010
  disabledLabelColor: colors.COOL_GREY_30,
1009
1011
  failColor: colors.RED_100,
1010
1012
  failColorSecondary: colors.RED_5,
1011
- helperTextColor: colors.COOL_GREY_60,
1013
+ helperTextColor: colors.COOL_GREY_65,
1012
1014
  hoverBorderColor: colors.COOL_GREY_40,
1013
1015
  inactiveBorderColor: colors.COOL_GREY_25,
1014
1016
  inputBackgroundColor: colors.WHITE,
@@ -1107,7 +1109,7 @@ export const cerebellumTheme: DefaultTheme = {
1107
1109
  rjsFormRenderer: {
1108
1110
  altRowBackgroundColor: colors.COOL_GREY_4,
1109
1111
  backgroundColor: colors.WHITE,
1110
- labelColor: colors.COOL_GREY_60,
1112
+ labelColor: colors.COOL_GREY_65,
1111
1113
  paddingString: "30px 20px",
1112
1114
  rowBackgroundColor: colors.WHITE,
1113
1115
  titleColor: colors.COOL_GREY_100,
@@ -1195,10 +1197,10 @@ export const cerebellumTheme: DefaultTheme = {
1195
1197
  footerBackgroundColor: colors.COOL_GREY_4,
1196
1198
  headerFontSize: 30,
1197
1199
  headerMinHeight: 110,
1198
- helperTextColor: colors.COOL_GREY_60,
1200
+ helperTextColor: colors.COOL_GREY_65,
1199
1201
  inactiveCheckmarkBgColor: colors.COOL_GREY_20,
1200
1202
  inactiveCheckmarkColor: colors.COOL_GREY_45,
1201
- inactiveTextColor: colors.COOL_GREY_60,
1203
+ inactiveTextColor: colors.COOL_GREY_65,
1202
1204
  },
1203
1205
  switchGroup: {
1204
1206
  titleColor: colors.COOL_GREY_80,
@@ -1229,7 +1231,7 @@ export const cerebellumTheme: DefaultTheme = {
1229
1231
  highlightRowColor: colors.WHITE,
1230
1232
  highlightRowExtend: 0,
1231
1233
  highlightTipColor: "transparent",
1232
- inactiveHeaderColor: colors.COOL_GREY_60,
1234
+ inactiveHeaderColor: colors.COOL_GREY_65,
1233
1235
  inactiveHeaderColorHover: colors.COOL_GREY_80,
1234
1236
  noResultsButtonColorFamily: ButtonColorFamilyEnum.Blue,
1235
1237
  noResultsHeaderColor: colors.COOL_GREY_90,