diff --git a/packages/react/src/components/Forms/Checkbox/_index.scss b/packages/react/src/components/Forms/Checkbox/_index.scss index 90966f9..49facfc 100644 --- a/packages/react/src/components/Forms/Checkbox/_index.scss +++ b/packages/react/src/components/Forms/Checkbox/_index.scss @@ -1,5 +1,4 @@ .c__checkbox__group { - &__list { display: flex; flex-direction: column; @@ -24,13 +23,11 @@ margin-left: -1 * $padding; cursor: pointer; - &:hover, &:focus-within { - background-color: var(--c--components--forms-checkbox--background-color--hover); - } + &:focus-within { outline: 0; - border-color: var(--c--theme--colors--primary-600); + border-color: var(--c--contextuals--border--semantic--brand--primary); } &__container { @@ -75,6 +72,12 @@ } &:checked { + background-color: var( + --c--components--forms-checkbox--background-color--checked + ); + border-color: var( + --c--components--forms-checkbox--background-color--checked + ); ~ .checkmark { clip-path: $clipPathShow; } @@ -84,6 +87,12 @@ } &:indeterminate { + background-color: var( + --c--components--forms-checkbox--background-color--indeterminate + ); + border-color: var( + --c--components--forms-checkbox--background-color--indeterminate + ); ~ .indeterminate { clip-path: $clipPathShow; } @@ -91,11 +100,35 @@ clip-path: $clipPathHide; } } + + &:disabled { + cursor: not-allowed !important; + svg { + color: var(--c--components--forms-checkbox--accent-color); + } + &:not(:checked):not(:indeterminate) { + background-color: white; + border-color: var( + --c--components--forms-checkbox--border-color--disabled + ); + } + + &:checked, + &:indeterminate { + background-color: var( + --c--components--forms-checkbox--background-color--disabled + ); + border-color: var( + --c--components--forms-checkbox--border-color--disabled + ); + } + } } svg { clip-path: $clipPathHide; - transition: var(--c--theme--transitions--duration) var(--c--theme--transitions--ease-out); + transition: var(--c--globals--transitions--duration) + var(--c--globals--transitions--ease-out); position: absolute; top: 0; left: 0; @@ -110,11 +143,11 @@ &--disabled { border-color: transparent; - color: var(--c--theme--colors--greyscale-600); - cursor: not-allowed; + color: var(--c--contextuals--content--semantic--disabled--primary) !important; + cursor: not-allowed !important; svg { - color: var(--c--theme--colors--greyscale-400); + color: var(--c--contextuals--background--surface--primary); } &:hover { @@ -122,7 +155,7 @@ } .c__checkbox__label { - color: var(--c--theme--colors--greyscale-600); + color: var(--c--contextuals--content--semantic--disabled--primary) !important; } } diff --git a/packages/react/src/components/Forms/Checkbox/index.spec.tsx b/packages/react/src/components/Forms/Checkbox/index.spec.tsx index e4fc6b8..b5af65c 100644 --- a/packages/react/src/components/Forms/Checkbox/index.spec.tsx +++ b/packages/react/src/components/Forms/Checkbox/index.spec.tsx @@ -130,6 +130,7 @@ describe("", () => { textItems: ["my text item 1", "my text item 2"], rightText: "my right text", indeterminate: true, + disabled: false, }; render(); diff --git a/packages/react/src/components/Forms/Checkbox/index.stories.tsx b/packages/react/src/components/Forms/Checkbox/index.stories.tsx index c6ca072..150f894 100644 --- a/packages/react/src/components/Forms/Checkbox/index.stories.tsx +++ b/packages/react/src/components/Forms/Checkbox/index.stories.tsx @@ -121,20 +121,32 @@ export const Success = { export const Group = () => (
-
Your offices
+
Your offices
+ +
); export const GroupError = () => (
-
Your offices
+
Your offices
@@ -147,7 +159,7 @@ export const GroupError = () => ( export const GroupSuccess = () => (
-
Your offices
+
Your offices
diff --git a/packages/react/src/components/Forms/Checkbox/tokens.ts b/packages/react/src/components/Forms/Checkbox/tokens.ts index ac7552b..a03467f 100644 --- a/packages/react/src/components/Forms/Checkbox/tokens.ts +++ b/packages/react/src/components/Forms/Checkbox/tokens.ts @@ -1,13 +1,20 @@ import { DefaultTokens } from "@openfun/cunningham-tokens"; export const tokens = (defaults: DefaultTokens) => ({ - "background-color--hover": defaults.theme.colors["greyscale-200"], - "background-color": defaults.theme.colors["greyscale-000"], - "font-size": defaults.theme.font.sizes.m, - "font-weight": defaults.theme.font.weights.medium, - color: defaults.theme.colors["greyscale-900"], - "border-color": defaults.theme.colors["greyscale-300"], + "background-color--hover": + defaults.contextuals.background.semantic.neutral["tertiary-hover"], + "background-color": defaults.contextuals.background.surface.primary, + "font-size": defaults.globals.font.sizes.s, + "font-weight": defaults.globals.font.weights.medium, + color: defaults.contextuals.content.semantic.neutral.primary, + "border-color": defaults.contextuals.content.semantic.neutral.tertiary, "border-radius": "2px", - "accent-color": defaults.theme.colors["success-600"], + "accent-color": defaults.contextuals.content.semantic.contextual.primary, + size: "1.5rem", + "background-color--checked": defaults.contextuals.content.semantic.brand.tertiary, + "background-color--indeterminate": + defaults.contextuals.content.semantic.brand.tertiary, + "background-color--disabled": defaults.contextuals.content.semantic.disabled.primary, + "border-color--disabled": defaults.contextuals.content.semantic.disabled.primary, });