From 7eac0bfca1dd0b3d8e6e1ab4eb7feb9ea36c569d Mon Sep 17 00:00:00 2001 From: jbpenrath Date: Wed, 3 May 2023 15:30:45 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8(tokens)=20make=20sass=20maps=20overri?= =?UTF-8?q?dable?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We suffix all sass maps with `!default` flag. In this way, if a consumer needs to override cunningham tokens, it will be able to. --- .changeset/calm-ties-hear.md | 5 +++++ .../tokens/src/bin/Generators/SassGenerator.spec.ts | 12 ++++++------ packages/tokens/src/bin/Generators/SassGenerator.ts | 5 +++-- 3 files changed, 14 insertions(+), 8 deletions(-) create mode 100644 .changeset/calm-ties-hear.md diff --git a/.changeset/calm-ties-hear.md b/.changeset/calm-ties-hear.md new file mode 100644 index 0000000..6b7c7c2 --- /dev/null +++ b/.changeset/calm-ties-hear.md @@ -0,0 +1,5 @@ +--- +"@openfun/cunningham-tokens": minor +--- + +Suffix all sass maps with the `!default` map diff --git a/packages/tokens/src/bin/Generators/SassGenerator.spec.ts b/packages/tokens/src/bin/Generators/SassGenerator.spec.ts index d0a0d0f..bac693a 100644 --- a/packages/tokens/src/bin/Generators/SassGenerator.spec.ts +++ b/packages/tokens/src/bin/Generators/SassGenerator.spec.ts @@ -30,22 +30,22 @@ describe("SassGenerator", () => { 'secondary': #DA0000, 'ternary-900': #022858, 'ogre-odor-is-orange-indeed': #FD5240 - ); + ) !default; $fontFamilies: ( 'base': Roboto - ); + ) !default; $fontSizes: ( 'm': 1rem - ); + ) !default; $fontWeights: ( 'medium': 400 - ); + ) !default; $spacings: ( 's': 1rem - ); + ) !default; $transitions: ( 'ease': linear - ); + ) !default; " `); }); diff --git a/packages/tokens/src/bin/Generators/SassGenerator.ts b/packages/tokens/src/bin/Generators/SassGenerator.ts index 12e4a07..7563d4e 100644 --- a/packages/tokens/src/bin/Generators/SassGenerator.ts +++ b/packages/tokens/src/bin/Generators/SassGenerator.ts @@ -49,7 +49,7 @@ const generateTransitionsSassMap = (tokens: Tokens) => { return `$transitions: ${JSONToSassMap(tokens.theme.transitions)};`; }; -function JSONToSassMap(json: Object) { +function JSONToSassMap(json: Object, isDefault = true) { function deepQuoteObjectKeys(object: Object) { return Object.entries(object).reduce( (acc, [key, value]): Record => ({ @@ -65,5 +65,6 @@ function JSONToSassMap(json: Object) { return JSON.stringify(jsonWithQuotedKeys, null, 2) .replace(/{/g, "(") .replace(/}/g, ")") - .replace(/"/g, ""); + .replace(/"/g, "") + .concat(isDefault ? " !default" : ""); }