From 4eedc5544ce1858e4518b6f0b19edf348f997495 Mon Sep 17 00:00:00 2001 From: Alex Bueno <44420072+aweell@users.noreply.github.com> Date: Wed, 21 Jan 2026 11:31:43 +0100 Subject: [PATCH 1/6] Include new spacing tokens --- tokens/blau.json | 77 ++++++++++++ tokens/esimflag.json | 77 ++++++++++++ tokens/figma/utils/constants.mjs | 1 + tokens/figma/utils/extract-json-data.mjs | 140 ++++++++++++++++++++- tokens/figma/variables.mjs | 10 ++ tokens/movistar-new.json | 77 ++++++++++++ tokens/movistar.json | 77 ++++++++++++ tokens/o2-new.json | 77 ++++++++++++ tokens/o2.json | 77 ++++++++++++ tokens/schema/skin-schema.json | 151 ++++++++++++++++++++--- tokens/telefonica.json | 77 ++++++++++++ tokens/tu.json | 77 ++++++++++++ tokens/vivo-new.json | 77 ++++++++++++ tokens/vivo.json | 77 ++++++++++++ 14 files changed, 1051 insertions(+), 21 deletions(-) diff --git a/tokens/blau.json b/tokens/blau.json index ec2bc26ea8..9181de53a1 100644 --- a/tokens/blau.json +++ b/tokens/blau.json @@ -3353,6 +3353,83 @@ } } }, + "spacing": { + "buttonDefaultPadding": { + "value": { + "x": { + "mobile": 16, + "desktop": 16 + } + }, + "type": "spacing" + }, + "buttonSmallPadding": { + "value": { + "x": { + "mobile": 12, + "desktop": 12 + } + }, + "type": "spacing" + }, + "cardDefaultPadding": { + "value": { + "mobile": 16, + "desktop": 24 + }, + "type": "spacing" + }, + "inputPadding": { + "value": { + "y": { + "desktop": 8 + } + }, + "type": "spacing" + }, + "tagPadding": { + "value": { + "y": { + "mobile": 4, + "desktop": 4 + } + }, + "type": "spacing" + }, + "feedbackScreenPadding": { + "value": { + "desktop": 64 + }, + "type": "spacing" + }, + "heroPadding": { + "value": { + "y": { + "mobile": 24 + } + }, + "type": "spacing" + }, + "headerPadding": { + "value": { + "y": { + "mobile": 24 + } + }, + "type": "spacing" + }, + "drawerPadding": { + "value": { + "top": { + "desktop": 40 + }, + "x": { + "desktop": 40 + } + }, + "type": "spacing" + } + }, "componentProperties": { "dismissActionType": { "value": "neutral", diff --git a/tokens/esimflag.json b/tokens/esimflag.json index 722bc369c0..61502ed4bc 100644 --- a/tokens/esimflag.json +++ b/tokens/esimflag.json @@ -3375,6 +3375,83 @@ } } }, + "spacing": { + "buttonDefaultPadding": { + "value": { + "x": { + "mobile": 16, + "desktop": 16 + } + }, + "type": "spacing" + }, + "buttonSmallPadding": { + "value": { + "x": { + "mobile": 12, + "desktop": 12 + } + }, + "type": "spacing" + }, + "cardDefaultPadding": { + "value": { + "mobile": 16, + "desktop": 24 + }, + "type": "spacing" + }, + "inputPadding": { + "value": { + "y": { + "desktop": 8 + } + }, + "type": "spacing" + }, + "tagPadding": { + "value": { + "y": { + "mobile": 4, + "desktop": 4 + } + }, + "type": "spacing" + }, + "feedbackScreenPadding": { + "value": { + "desktop": 64 + }, + "type": "spacing" + }, + "heroPadding": { + "value": { + "y": { + "mobile": 24 + } + }, + "type": "spacing" + }, + "headerPadding": { + "value": { + "y": { + "mobile": 24 + } + }, + "type": "spacing" + }, + "drawerPadding": { + "value": { + "top": { + "desktop": 40 + }, + "x": { + "desktop": 40 + } + }, + "type": "spacing" + } + }, "themeVariant": { "successFeedback": { "value": "inverse", diff --git a/tokens/figma/utils/constants.mjs b/tokens/figma/utils/constants.mjs index 40e9ed37a9..f6a41a6227 100644 --- a/tokens/figma/utils/constants.mjs +++ b/tokens/figma/utils/constants.mjs @@ -29,6 +29,7 @@ export const VARIABLE_SCOPES = { FONT_FAMILY: "FONT_FAMILY", TEXT_CONTENT: "TEXT_CONTENT", WIDTH_HEIGHT: "WIDTH_HEIGHT", + GAP: "GAP", }; export const BRANDS = { diff --git a/tokens/figma/utils/extract-json-data.mjs b/tokens/figma/utils/extract-json-data.mjs index d3d3b3db65..6c782b6172 100644 --- a/tokens/figma/utils/extract-json-data.mjs +++ b/tokens/figma/utils/extract-json-data.mjs @@ -363,6 +363,72 @@ export const extractSkinJsonData = ( }; }); + const spacingArray = Object.keys( + parsedContent.spacing + ).flatMap((key) => { + const value = + parsedContent.spacing[key].value; + const result = []; + + // Helper to capitalize axis/side and append to token name + const capitalize = (str) => + str.charAt(0).toUpperCase() + + str.slice(1); + + // Push all breakpoints for a given axis or side + const pushBreakpoints = ( + axisOrSide, + breakpoints + ) => { + Object.keys(breakpoints).forEach( + (breakpoint) => { + // Build Figma-friendly name + const figmaName = axisOrSide + ? `${key}${capitalize(axisOrSide)}` + : key; + + result.push({ + name: `spacing/${breakpoint}/${figmaName}`, + value: Number( + breakpoints[breakpoint] + ), + }); + } + ); + }; + + // CASE 1 — scalar (all sides or gap) + if ( + typeof value === "object" && + value !== null && + !("x" in value) && + !("y" in value) && + !("top" in value) + ) { + pushBreakpoints(null, value); + return result; + } + + // CASE 2 — axis-based (x / y) + if ("x" in value || "y" in value) { + if (value.x) + pushBreakpoints("x", value.x); + if (value.y) + pushBreakpoints("y", value.y); + return result; + } + + // CASE 3 — side-based (top / right / bottom / left) + ["top", "right", "bottom", "left"].forEach( + (side) => { + if (value[side]) + pushBreakpoints(side, value[side]); + } + ); + + return result; + }); + // Accumulate results accumulator[fileName] = { light: processColors( @@ -380,6 +446,7 @@ export const extractSkinJsonData = ( fontWeight: fontWeightArray, fontSize: fontSizeArray, lineHeight: lineHeightArray, + spacing: spacingArray, }; return accumulator; @@ -760,6 +827,72 @@ export const extractMiddlewareJsonData = ( }; }); + const spacingArray = Object.keys( + parsedContent.spacing + ).flatMap((key) => { + const value = + parsedContent.spacing[key].value; + const result = []; + + // Helper to capitalize axis/side and append to token name + const capitalize = (str) => + str.charAt(0).toUpperCase() + + str.slice(1); + + // Push all breakpoints for a given axis or side + const pushBreakpoints = ( + axisOrSide, + breakpoints + ) => { + Object.keys(breakpoints).forEach( + (breakpoint) => { + // Figma-friendly name: append axis/side + const figmaName = axisOrSide + ? `${key}${capitalize(axisOrSide)}` + : key; + + result.push({ + name: `spacing/${breakpoint}/${figmaName}`, + value: Number( + breakpoints[breakpoint] + ), + }); + } + ); + }; + + // CASE 1 — scalar (all sides / gap) + if ( + typeof value === "object" && + value !== null && + !("x" in value) && + !("y" in value) && + !("top" in value) + ) { + pushBreakpoints(null, value); + return result; + } + + // CASE 2 — axis-based (x / y) + if ("x" in value || "y" in value) { + if (value.x) + pushBreakpoints("x", value.x); + if (value.y) + pushBreakpoints("y", value.y); + return result; + } + + // CASE 3 — side-based (top / right / bottom / left) + ["top", "right", "bottom", "left"].forEach( + (side) => { + if (value[side]) + pushBreakpoints(side, value[side]); + } + ); + + return result; + }); + const themeVariantArray = Object.keys( parsedContent.themeVariant ).map((key) => ({ @@ -773,7 +906,8 @@ export const extractMiddlewareJsonData = ( ).map((key) => ({ name: `componentProperties/${key}`, value: - parsedContent.componentProperties[key].value, + parsedContent.componentProperties[key] + .value, })); // Accumulate results @@ -793,8 +927,10 @@ export const extractMiddlewareJsonData = ( fontWeight: fontWeightArray, fontSize: fontSizeArray, lineHeight: lineHeightArray, + spacing: spacingArray, themeVariant: themeVariantArray, - componentProperties: componentPropertiesArray, + componentProperties: + componentPropertiesArray, }; return accumulator; diff --git a/tokens/figma/variables.mjs b/tokens/figma/variables.mjs index 0c9fc06019..e5094e1b5b 100644 --- a/tokens/figma/variables.mjs +++ b/tokens/figma/variables.mjs @@ -118,6 +118,16 @@ export const getNonColorVariables = ( ], hasAlias: false, }, + { + variables: jsonData[brand]?.spacing || [], + collectionName: COLLECTION_NAMES.SKIN, + resolvedType: VARIABLE_TYPES.FLOAT, + variableScopes: [ + VARIABLE_SCOPES.WIDTH_HEIGHT, + VARIABLE_SCOPES.GAP, + ], + hasAlias: false, + }, { variables: jsonData[brand]?.themeVariant || [], diff --git a/tokens/movistar-new.json b/tokens/movistar-new.json index 76311a223d..c72e951a50 100644 --- a/tokens/movistar-new.json +++ b/tokens/movistar-new.json @@ -3343,6 +3343,83 @@ } } }, + "spacing": { + "buttonDefaultPadding": { + "value": { + "x": { + "mobile": 16, + "desktop": 16 + } + }, + "type": "spacing" + }, + "buttonSmallPadding": { + "value": { + "x": { + "mobile": 8, + "desktop": 12 + } + }, + "type": "spacing" + }, + "cardDefaultPadding": { + "value": { + "mobile": 16, + "desktop": 16 + }, + "type": "spacing" + }, + "inputPadding": { + "value": { + "y": { + "desktop": 2 + } + }, + "type": "spacing" + }, + "tagPadding": { + "value": { + "y": { + "mobile": 4, + "desktop": 2 + } + }, + "type": "spacing" + }, + "feedbackScreenPadding": { + "value": { + "desktop": 40 + }, + "type": "spacing" + }, + "heroPadding": { + "value": { + "y": { + "mobile": 16 + } + }, + "type": "spacing" + }, + "headerPadding": { + "value": { + "y": { + "mobile": 16 + } + }, + "type": "spacing" + }, + "drawerPadding": { + "value": { + "top": { + "desktop": 32 + }, + "x": { + "desktop": 24 + } + }, + "type": "spacing" + } + }, "themeVariant": { "successFeedback": { "value": "inverse", diff --git a/tokens/movistar.json b/tokens/movistar.json index 8892151f27..02347aeb18 100644 --- a/tokens/movistar.json +++ b/tokens/movistar.json @@ -3343,6 +3343,83 @@ } } }, + "spacing": { + "buttonDefaultPadding": { + "value": { + "x": { + "mobile": 16, + "desktop": 16 + } + }, + "type": "spacing" + }, + "buttonSmallPadding": { + "value": { + "x": { + "mobile": 12, + "desktop": 12 + } + }, + "type": "spacing" + }, + "cardDefaultPadding": { + "value": { + "mobile": 16, + "desktop": 24 + }, + "type": "spacing" + }, + "inputPadding": { + "value": { + "y": { + "desktop": 8 + } + }, + "type": "spacing" + }, + "tagPadding": { + "value": { + "y": { + "mobile": 4, + "desktop": 4 + } + }, + "type": "spacing" + }, + "feedbackScreenPadding": { + "value": { + "desktop": 64 + }, + "type": "spacing" + }, + "heroPadding": { + "value": { + "y": { + "mobile": 24 + } + }, + "type": "spacing" + }, + "headerPadding": { + "value": { + "y": { + "mobile": 24 + } + }, + "type": "spacing" + }, + "drawerPadding": { + "value": { + "top": { + "desktop": 40 + }, + "x": { + "desktop": 40 + } + }, + "type": "spacing" + } + }, "themeVariant": { "successFeedback": { "value": "default", diff --git a/tokens/o2-new.json b/tokens/o2-new.json index b83f02a01d..8d307201bb 100644 --- a/tokens/o2-new.json +++ b/tokens/o2-new.json @@ -3375,6 +3375,83 @@ } } }, + "spacing": { + "buttonDefaultPadding": { + "value": { + "x": { + "mobile": 16, + "desktop": 16 + } + }, + "type": "spacing" + }, + "buttonSmallPadding": { + "value": { + "x": { + "mobile": 12, + "desktop": 12 + } + }, + "type": "spacing" + }, + "cardDefaultPadding": { + "value": { + "mobile": 16, + "desktop": 24 + }, + "type": "spacing" + }, + "inputPadding": { + "value": { + "y": { + "desktop": 8 + } + }, + "type": "spacing" + }, + "tagPadding": { + "value": { + "y": { + "mobile": 4, + "desktop": 4 + } + }, + "type": "spacing" + }, + "feedbackScreenPadding": { + "value": { + "desktop": 64 + }, + "type": "spacing" + }, + "heroPadding": { + "value": { + "y": { + "mobile": 24 + } + }, + "type": "spacing" + }, + "headerPadding": { + "value": { + "y": { + "mobile": 24 + } + }, + "type": "spacing" + }, + "drawerPadding": { + "value": { + "top": { + "desktop": 40 + }, + "x": { + "desktop": 40 + } + }, + "type": "spacing" + } + }, "themeVariant": { "successFeedback": { "value": "inverse", diff --git a/tokens/o2.json b/tokens/o2.json index 882133519d..07cbc32aaa 100644 --- a/tokens/o2.json +++ b/tokens/o2.json @@ -3343,6 +3343,83 @@ } } }, + "spacing": { + "buttonDefaultPadding": { + "value": { + "x": { + "mobile": 16, + "desktop": 16 + } + }, + "type": "spacing" + }, + "buttonSmallPadding": { + "value": { + "x": { + "mobile": 12, + "desktop": 12 + } + }, + "type": "spacing" + }, + "cardDefaultPadding": { + "value": { + "mobile": 16, + "desktop": 24 + }, + "type": "spacing" + }, + "inputPadding": { + "value": { + "y": { + "desktop": 8 + } + }, + "type": "spacing" + }, + "tagPadding": { + "value": { + "y": { + "mobile": 4, + "desktop": 4 + } + }, + "type": "spacing" + }, + "feedbackScreenPadding": { + "value": { + "desktop": 64 + }, + "type": "spacing" + }, + "heroPadding": { + "value": { + "y": { + "mobile": 24 + } + }, + "type": "spacing" + }, + "headerPadding": { + "value": { + "y": { + "mobile": 24 + } + }, + "type": "spacing" + }, + "drawerPadding": { + "value": { + "top": { + "desktop": 40 + }, + "x": { + "desktop": 40 + } + }, + "type": "spacing" + } + }, "themeVariant": { "successFeedback": { "value": "inverse", diff --git a/tokens/schema/skin-schema.json b/tokens/schema/skin-schema.json index 77159b2619..107d8dc767 100644 --- a/tokens/schema/skin-schema.json +++ b/tokens/schema/skin-schema.json @@ -1,6 +1,7 @@ { "additionalProperties": false, - "required": ["light", "dark", "radius", "text", "global", "themeVariant", "componentProperties"], + "required": ["light", "dark", "radius", "text", "spacing", "global", "themeVariant", "componentProperties"], + "properties": { "global": { "additionalProperties": false, @@ -38,6 +39,10 @@ } } }, + "spacing": { + "comment": "Aquí se obliga a usar los spacing definidos", + "allOf": [{ "$ref": "#/global/spacing" }] + }, "themeVariant": { "comment": "Aquí se definen las variantes de tema", "allOf": [{ "$ref": "#/global/themeVariant" }] @@ -645,6 +650,7 @@ }, "weight": { "additionalProperties": false, + "required": ["drawerTitle", "cardTitle", "rowTitle", "button", "tabsLabel", "link", "indicator", "navigationBar", "title1", "title2", "title3", "title4", "text5", "text6", "text7", "text8", "text9", "text10", "chipLabel"], "properties": { "drawerTitle": { "$ref": "#/definitions/weightProperties" }, "cardTitle": { "$ref": "#/definitions/weightProperties" }, @@ -669,6 +675,38 @@ }, "size": { "additionalProperties": false, + "required": [ + "drawerTitle", + "cardPretitleDefault", + "cardTitleDefault", + "cardSubtitleDefault", + "cardDescriptionDefault", + "cardPretitleSnap", + "cardTitleSnap", + "cardSubtitleSnap", + "cardDescriptionSnap", + "tabsLabel", + "title1", + "title2", + "title3", + "title4", + "text1", + "text2", + "text3", + "text4", + "text5", + "text6", + "text7", + "text8", + "text9", + "text10", + "chipLabel", + "inputLabel", + "inputValue", + "inputHelperText", + "stepperStepLabel", + "loadingScreenTitle" + ], "properties": { "drawerTitle": { "$ref": "#/definitions/sizeProperties" }, "cardPretitleDefault": { "$ref": "#/definitions/sizeProperties" }, @@ -704,6 +742,38 @@ }, "lineHeight": { "additionalProperties": false, + "required": [ + "drawerTitle", + "cardPretitleDefault", + "cardTitleDefault", + "cardSubtitleDefault", + "cardDescriptionDefault", + "cardPretitleSnap", + "cardTitleSnap", + "cardSubtitleSnap", + "cardDescriptionSnap", + "tabsLabel", + "title1", + "title2", + "title3", + "title4", + "text1", + "text2", + "text3", + "text4", + "text5", + "text6", + "text7", + "text8", + "text9", + "text10", + "chipLabel", + "inputLabel", + "inputValue", + "inputHelperText", + "stepperStepLabel", + "loadingScreenTitle" + ], "properties": { "drawerTitle": { "$ref": "#/definitions/lineHeightProperties" }, "cardPretitleDefault": { "$ref": "#/definitions/lineHeightProperties" }, @@ -737,6 +807,21 @@ "loadingScreenTitle": { "$ref": "#/definitions/lineHeightProperties" } } }, + "spacing": { + "additionalProperties": false, + "required": ["buttonDefaultPadding", "buttonSmallPadding", "cardDefaultPadding", "tagPadding", "feedbackScreenPadding", "inputPadding", "heroPadding", "headerPadding", "drawerPadding"], + "properties": { + "buttonDefaultPadding": { "$ref": "#/definitions/spacingProperties" }, + "buttonSmallPadding": { "$ref": "#/definitions/spacingProperties" }, + "cardDefaultPadding": { "$ref": "#/definitions/spacingProperties" }, + "tagPadding": { "$ref": "#/definitions/spacingProperties" }, + "feedbackScreenPadding": { "$ref": "#/definitions/spacingProperties" }, + "inputPadding": { "$ref": "#/definitions/spacingProperties" }, + "heroPadding": { "$ref": "#/definitions/spacingProperties" }, + "headerPadding": { "$ref": "#/definitions/spacingProperties" }, + "drawerPadding": { "$ref": "#/definitions/spacingProperties" } + } + }, "themeVariant": { "additionalProperties": false, "required": ["successFeedback", "brandLoadingScreen"], @@ -949,16 +1034,12 @@ "type": "object", "patternProperties": { "value": { - "type": "object", - "properties": { - "desktop": { - "type": "number" - }, - "mobile": { - "type": "number" + "allOf": [ + { "$ref": "#/definitions/breakpoints" }, + { + "required": ["mobile", "desktop"] } - }, - "required": ["desktop", "mobile"] + ] }, "type": { "const": "typography" @@ -970,16 +1051,12 @@ "type": "object", "patternProperties": { "value": { - "type": "object", - "properties": { - "desktop": { - "type": "number" - }, - "mobile": { - "type": "number" + "allOf": [ + { "$ref": "#/definitions/breakpoints" }, + { + "required": ["mobile", "desktop"] } - }, - "required": ["desktop", "mobile"] + ] }, "type": { "const": "typography" @@ -987,6 +1064,32 @@ }, "required": ["value", "type"] }, + "spacingProperties": { + "type": "object", + "required": ["value", "type"], + "properties": { + "type": { "const": "spacing" }, + "value": { + "anyOf": [ + { "$ref": "#/definitions/breakpoints" }, + { + "type": "object", + "properties": { + "x": { "$ref": "#/definitions/breakpoints" }, + "y": { "$ref": "#/definitions/breakpoints" }, + "top": { "$ref": "#/definitions/breakpoints" }, + "right": { "$ref": "#/definitions/breakpoints" }, + "bottom": { "$ref": "#/definitions/breakpoints" }, + "left": { "$ref": "#/definitions/breakpoints" } + }, + "additionalProperties": false, + "minProperties": 1 + } + ] + } + } + }, + "themeVariantProperties": { "type": "object", "patternProperties": { @@ -1011,6 +1114,16 @@ } }, "required": ["value", "type"] + }, + "breakpoints": { + "type": "object", + "properties": { + "mobile": { "type": "number" }, + "tablet": { "type": "number" }, + "desktop": { "type": "number" } + }, + "minProperties": 1, + "additionalProperties": false } } } diff --git a/tokens/telefonica.json b/tokens/telefonica.json index c0080e085e..81ab76938a 100644 --- a/tokens/telefonica.json +++ b/tokens/telefonica.json @@ -3343,6 +3343,83 @@ } } }, + "spacing": { + "buttonDefaultPadding": { + "value": { + "x": { + "mobile": 16, + "desktop": 16 + } + }, + "type": "spacing" + }, + "buttonSmallPadding": { + "value": { + "x": { + "mobile": 12, + "desktop": 12 + } + }, + "type": "spacing" + }, + "cardDefaultPadding": { + "value": { + "mobile": 16, + "desktop": 24 + }, + "type": "spacing" + }, + "inputPadding": { + "value": { + "y": { + "desktop": 8 + } + }, + "type": "spacing" + }, + "tagPadding": { + "value": { + "y": { + "mobile": 4, + "desktop": 4 + } + }, + "type": "spacing" + }, + "feedbackScreenPadding": { + "value": { + "desktop": 64 + }, + "type": "spacing" + }, + "heroPadding": { + "value": { + "y": { + "mobile": 24 + } + }, + "type": "spacing" + }, + "headerPadding": { + "value": { + "y": { + "mobile": 24 + } + }, + "type": "spacing" + }, + "drawerPadding": { + "value": { + "top": { + "desktop": 40 + }, + "x": { + "desktop": 40 + } + }, + "type": "spacing" + } + }, "themeVariant": { "successFeedback": { "value": "inverse", diff --git a/tokens/tu.json b/tokens/tu.json index cf5b38990f..d7697f81d6 100644 --- a/tokens/tu.json +++ b/tokens/tu.json @@ -3343,6 +3343,83 @@ } } }, + "spacing": { + "buttonDefaultPadding": { + "value": { + "x": { + "mobile": 16, + "desktop": 16 + } + }, + "type": "spacing" + }, + "buttonSmallPadding": { + "value": { + "x": { + "mobile": 12, + "desktop": 12 + } + }, + "type": "spacing" + }, + "cardDefaultPadding": { + "value": { + "mobile": 16, + "desktop": 24 + }, + "type": "spacing" + }, + "inputPadding": { + "value": { + "y": { + "desktop": 8 + } + }, + "type": "spacing" + }, + "tagPadding": { + "value": { + "y": { + "mobile": 4, + "desktop": 4 + } + }, + "type": "spacing" + }, + "feedbackScreenPadding": { + "value": { + "desktop": 64 + }, + "type": "spacing" + }, + "heroPadding": { + "value": { + "y": { + "mobile": 24 + } + }, + "type": "spacing" + }, + "headerPadding": { + "value": { + "y": { + "mobile": 24 + } + }, + "type": "spacing" + }, + "drawerPadding": { + "value": { + "top": { + "desktop": 40 + }, + "x": { + "desktop": 40 + } + }, + "type": "spacing" + } + }, "themeVariant": { "successFeedback": { "value": "inverse", diff --git a/tokens/vivo-new.json b/tokens/vivo-new.json index e41f4f14a9..43b040448f 100644 --- a/tokens/vivo-new.json +++ b/tokens/vivo-new.json @@ -3343,6 +3343,83 @@ } } }, + "spacing": { + "buttonDefaultPadding": { + "value": { + "x": { + "mobile": 16, + "desktop": 16 + } + }, + "type": "spacing" + }, + "buttonSmallPadding": { + "value": { + "x": { + "mobile": 12, + "desktop": 12 + } + }, + "type": "spacing" + }, + "cardDefaultPadding": { + "value": { + "mobile": 16, + "desktop": 24 + }, + "type": "spacing" + }, + "inputPadding": { + "value": { + "y": { + "desktop": 8 + } + }, + "type": "spacing" + }, + "tagPadding": { + "value": { + "y": { + "mobile": 4, + "desktop": 4 + } + }, + "type": "spacing" + }, + "feedbackScreenPadding": { + "value": { + "desktop": 64 + }, + "type": "spacing" + }, + "heroPadding": { + "value": { + "y": { + "mobile": 24 + } + }, + "type": "spacing" + }, + "headerPadding": { + "value": { + "y": { + "mobile": 24 + } + }, + "type": "spacing" + }, + "drawerPadding": { + "value": { + "top": { + "desktop": 40 + }, + "x": { + "desktop": 40 + } + }, + "type": "spacing" + } + }, "themeVariant": { "successFeedback": { "value": "inverse", diff --git a/tokens/vivo.json b/tokens/vivo.json index cd163787ca..c41ba6ccab 100644 --- a/tokens/vivo.json +++ b/tokens/vivo.json @@ -3343,6 +3343,83 @@ } } }, + "spacing": { + "buttonDefaultPadding": { + "value": { + "x": { + "mobile": 16, + "desktop": 16 + } + }, + "type": "spacing" + }, + "buttonSmallPadding": { + "value": { + "x": { + "mobile": 12, + "desktop": 12 + } + }, + "type": "spacing" + }, + "cardDefaultPadding": { + "value": { + "mobile": 16, + "desktop": 24 + }, + "type": "spacing" + }, + "inputPadding": { + "value": { + "y": { + "desktop": 8 + } + }, + "type": "spacing" + }, + "tagPadding": { + "value": { + "y": { + "mobile": 4, + "desktop": 4 + } + }, + "type": "spacing" + }, + "feedbackScreenPadding": { + "value": { + "desktop": 64 + }, + "type": "spacing" + }, + "heroPadding": { + "value": { + "y": { + "mobile": 24 + } + }, + "type": "spacing" + }, + "headerPadding": { + "value": { + "y": { + "mobile": 24 + } + }, + "type": "spacing" + }, + "drawerPadding": { + "value": { + "top": { + "desktop": 40 + }, + "x": { + "desktop": 40 + } + }, + "type": "spacing" + } + }, "themeVariant": { "successFeedback": { "value": "inverse", From 8257df7b9fbd5b56dc8882478c680ec41594192d Mon Sep 17 00:00:00 2001 From: Alex Bueno <44420072+aweell@users.noreply.github.com> Date: Wed, 21 Jan 2026 11:42:29 +0100 Subject: [PATCH 2/6] Fix multiple variable generation from single token --- tokens/figma/utils/extract-json-data.mjs | 130 ++++++++++++----------- 1 file changed, 66 insertions(+), 64 deletions(-) diff --git a/tokens/figma/utils/extract-json-data.mjs b/tokens/figma/utils/extract-json-data.mjs index 6c782b6172..ab341eb7af 100644 --- a/tokens/figma/utils/extract-json-data.mjs +++ b/tokens/figma/utils/extract-json-data.mjs @@ -380,52 +380,54 @@ export const extractSkinJsonData = ( axisOrSide, breakpoints ) => { - Object.keys(breakpoints).forEach( - (breakpoint) => { - // Build Figma-friendly name + Object.entries(breakpoints).forEach( + ([breakpoint, bpValue]) => { const figmaName = axisOrSide ? `${key}${capitalize(axisOrSide)}` : key; - result.push({ name: `spacing/${breakpoint}/${figmaName}`, - value: Number( - breakpoints[breakpoint] - ), + value: Number(bpValue), }); } ); }; - // CASE 1 — scalar (all sides or gap) + // Detect scalar tokens (all breakpoints, no axes/sides) if ( typeof value === "object" && value !== null && - !("x" in value) && - !("y" in value) && - !("top" in value) + !Object.keys(value).some((k) => + [ + "x", + "y", + "top", + "right", + "bottom", + "left", + ].includes(k) + ) ) { pushBreakpoints(null, value); - return result; - } - - // CASE 2 — axis-based (x / y) - if ("x" in value || "y" in value) { - if (value.x) - pushBreakpoints("x", value.x); - if (value.y) - pushBreakpoints("y", value.y); - return result; + } else { + // Handle any combination of axes and sides + [ + "x", + "y", + "top", + "right", + "bottom", + "left", + ].forEach((axisOrSide) => { + if (value[axisOrSide]) { + pushBreakpoints( + axisOrSide, + value[axisOrSide] + ); + } + }); } - // CASE 3 — side-based (top / right / bottom / left) - ["top", "right", "bottom", "left"].forEach( - (side) => { - if (value[side]) - pushBreakpoints(side, value[side]); - } - ); - return result; }); @@ -834,62 +836,62 @@ export const extractMiddlewareJsonData = ( parsedContent.spacing[key].value; const result = []; - // Helper to capitalize axis/side and append to token name const capitalize = (str) => str.charAt(0).toUpperCase() + str.slice(1); - // Push all breakpoints for a given axis or side const pushBreakpoints = ( - axisOrSide, + nameSuffix, breakpoints ) => { - Object.keys(breakpoints).forEach( - (breakpoint) => { - // Figma-friendly name: append axis/side - const figmaName = axisOrSide - ? `${key}${capitalize(axisOrSide)}` + Object.entries(breakpoints).forEach( + ([bp, bpValue]) => { + const figmaName = nameSuffix + ? `${key}${capitalize(nameSuffix)}` : key; - result.push({ - name: `spacing/${breakpoint}/${figmaName}`, - value: Number( - breakpoints[breakpoint] - ), + name: `spacing/${bp}/${figmaName}`, + value: Number(bpValue), }); } ); }; - // CASE 1 — scalar (all sides / gap) + // If value is a simple scalar object (all breakpoints) if ( typeof value === "object" && value !== null && - !("x" in value) && - !("y" in value) && - !("top" in value) + !Object.keys(value).some((k) => + [ + "x", + "y", + "top", + "right", + "bottom", + "left", + ].includes(k) + ) ) { pushBreakpoints(null, value); - return result; - } - - // CASE 2 — axis-based (x / y) - if ("x" in value || "y" in value) { - if (value.x) - pushBreakpoints("x", value.x); - if (value.y) - pushBreakpoints("y", value.y); - return result; + } else { + // Loop through all possible axes and sides + [ + "x", + "y", + "top", + "right", + "bottom", + "left", + ].forEach((axisOrSide) => { + if (value[axisOrSide]) { + pushBreakpoints( + axisOrSide, + value[axisOrSide] + ); + } + }); } - // CASE 3 — side-based (top / right / bottom / left) - ["top", "right", "bottom", "left"].forEach( - (side) => { - if (value[side]) - pushBreakpoints(side, value[side]); - } - ); - return result; }); From 62e0cdde19481d93c8e85b9a52265f8a45258842 Mon Sep 17 00:00:00 2001 From: Alex Bueno <44420072+aweell@users.noreply.github.com> Date: Wed, 21 Jan 2026 14:34:44 +0100 Subject: [PATCH 3/6] Remove axis case from token definition --- tokens/blau.json | 41 +++++++++-- tokens/esimflag.json | 41 +++++++++-- tokens/figma/utils/extract-json-data.mjs | 92 +++++++++--------------- tokens/movistar-new.json | 43 ++++++++--- tokens/movistar.json | 41 +++++++++-- tokens/o2-new.json | 41 +++++++++-- tokens/o2.json | 41 +++++++++-- tokens/schema/skin-schema.json | 3 +- tokens/telefonica.json | 41 +++++++++-- tokens/tu.json | 41 +++++++++-- tokens/vivo-new.json | 41 +++++++++-- tokens/vivo.json | 41 +++++++++-- 12 files changed, 376 insertions(+), 131 deletions(-) diff --git a/tokens/blau.json b/tokens/blau.json index 9181de53a1..9d2688ab89 100644 --- a/tokens/blau.json +++ b/tokens/blau.json @@ -3356,7 +3356,11 @@ "spacing": { "buttonDefaultPadding": { "value": { - "x": { + "left": { + "mobile": 16, + "desktop": 16 + }, + "right": { "mobile": 16, "desktop": 16 } @@ -3365,7 +3369,11 @@ }, "buttonSmallPadding": { "value": { - "x": { + "left": { + "mobile": 12, + "desktop": 12 + }, + "right": { "mobile": 12, "desktop": 12 } @@ -3381,7 +3389,10 @@ }, "inputPadding": { "value": { - "y": { + "top": { + "desktop": 8 + }, + "bottom": { "desktop": 8 } }, @@ -3389,7 +3400,11 @@ }, "tagPadding": { "value": { - "y": { + "top": { + "mobile": 4, + "desktop": 4 + }, + "bottom": { "mobile": 4, "desktop": 4 } @@ -3404,7 +3419,10 @@ }, "heroPadding": { "value": { - "y": { + "top": { + "mobile": 24 + }, + "bottom": { "mobile": 24 } }, @@ -3412,7 +3430,10 @@ }, "headerPadding": { "value": { - "y": { + "top": { + "mobile": 24 + }, + "bottom": { "mobile": 24 } }, @@ -3423,7 +3444,13 @@ "top": { "desktop": 40 }, - "x": { + "bottom": { + "desktop": 24 + }, + "left": { + "desktop": 40 + }, + "right": { "desktop": 40 } }, diff --git a/tokens/esimflag.json b/tokens/esimflag.json index 61502ed4bc..5c623691e9 100644 --- a/tokens/esimflag.json +++ b/tokens/esimflag.json @@ -3378,7 +3378,11 @@ "spacing": { "buttonDefaultPadding": { "value": { - "x": { + "left": { + "mobile": 16, + "desktop": 16 + }, + "right": { "mobile": 16, "desktop": 16 } @@ -3387,7 +3391,11 @@ }, "buttonSmallPadding": { "value": { - "x": { + "left": { + "mobile": 12, + "desktop": 12 + }, + "right": { "mobile": 12, "desktop": 12 } @@ -3403,7 +3411,10 @@ }, "inputPadding": { "value": { - "y": { + "top": { + "desktop": 8 + }, + "bottom": { "desktop": 8 } }, @@ -3411,7 +3422,11 @@ }, "tagPadding": { "value": { - "y": { + "top": { + "mobile": 4, + "desktop": 4 + }, + "bottom": { "mobile": 4, "desktop": 4 } @@ -3426,7 +3441,10 @@ }, "heroPadding": { "value": { - "y": { + "top": { + "mobile": 24 + }, + "bottom": { "mobile": 24 } }, @@ -3434,7 +3452,10 @@ }, "headerPadding": { "value": { - "y": { + "top": { + "mobile": 24 + }, + "bottom": { "mobile": 24 } }, @@ -3445,7 +3466,13 @@ "top": { "desktop": 40 }, - "x": { + "bottom": { + "desktop": 24 + }, + "left": { + "desktop": 40 + }, + "right": { "desktop": 40 } }, diff --git a/tokens/figma/utils/extract-json-data.mjs b/tokens/figma/utils/extract-json-data.mjs index ab341eb7af..185b555402 100644 --- a/tokens/figma/utils/extract-json-data.mjs +++ b/tokens/figma/utils/extract-json-data.mjs @@ -370,20 +370,28 @@ export const extractSkinJsonData = ( parsedContent.spacing[key].value; const result = []; - // Helper to capitalize axis/side and append to token name + // Helper to capitalize side and append to token name const capitalize = (str) => str.charAt(0).toUpperCase() + str.slice(1); - // Push all breakpoints for a given axis or side + // Sides we care about + const sides = [ + "top", + "right", + "bottom", + "left", + ]; + + // Push all breakpoints for a given side const pushBreakpoints = ( - axisOrSide, + side, breakpoints ) => { Object.entries(breakpoints).forEach( ([breakpoint, bpValue]) => { - const figmaName = axisOrSide - ? `${key}${capitalize(axisOrSide)}` + const figmaName = side + ? `${key}${capitalize(side)}` : key; result.push({ name: `spacing/${breakpoint}/${figmaName}`, @@ -393,38 +401,18 @@ export const extractSkinJsonData = ( ); }; - // Detect scalar tokens (all breakpoints, no axes/sides) + // CASE 1 — scalar (all sides, no sides explicitly defined) if ( typeof value === "object" && value !== null && - !Object.keys(value).some((k) => - [ - "x", - "y", - "top", - "right", - "bottom", - "left", - ].includes(k) - ) + !sides.some((side) => side in value) ) { - pushBreakpoints(null, value); + pushBreakpoints(null, value); // Only master variable } else { - // Handle any combination of axes and sides - [ - "x", - "y", - "top", - "right", - "bottom", - "left", - ].forEach((axisOrSide) => { - if (value[axisOrSide]) { - pushBreakpoints( - axisOrSide, - value[axisOrSide] - ); - } + // CASE 2 — side-specific values + sides.forEach((side) => { + if (value[side]) + pushBreakpoints(side, value[side]); }); } @@ -840,6 +828,13 @@ export const extractMiddlewareJsonData = ( str.charAt(0).toUpperCase() + str.slice(1); + const sides = [ + "top", + "right", + "bottom", + "left", + ]; + const pushBreakpoints = ( nameSuffix, breakpoints @@ -857,37 +852,18 @@ export const extractMiddlewareJsonData = ( ); }; - // If value is a simple scalar object (all breakpoints) + // CASE 1 — scalar (all breakpoints, no sides explicitly defined) if ( typeof value === "object" && value !== null && - !Object.keys(value).some((k) => - [ - "x", - "y", - "top", - "right", - "bottom", - "left", - ].includes(k) - ) + !sides.some((side) => side in value) ) { - pushBreakpoints(null, value); + pushBreakpoints(null, value); // master variable only } else { - // Loop through all possible axes and sides - [ - "x", - "y", - "top", - "right", - "bottom", - "left", - ].forEach((axisOrSide) => { - if (value[axisOrSide]) { - pushBreakpoints( - axisOrSide, - value[axisOrSide] - ); + // CASE 2 — side-specific values + sides.forEach((side) => { + if (value[side]) { + pushBreakpoints(side, value[side]); } }); } diff --git a/tokens/movistar-new.json b/tokens/movistar-new.json index c72e951a50..3aff04ef5a 100644 --- a/tokens/movistar-new.json +++ b/tokens/movistar-new.json @@ -3346,7 +3346,11 @@ "spacing": { "buttonDefaultPadding": { "value": { - "x": { + "left": { + "mobile": 16, + "desktop": 16 + }, + "right": { "mobile": 16, "desktop": 16 } @@ -3355,7 +3359,11 @@ }, "buttonSmallPadding": { "value": { - "x": { + "left": { + "mobile": 8, + "desktop": 12 + }, + "right": { "mobile": 8, "desktop": 12 } @@ -3371,7 +3379,10 @@ }, "inputPadding": { "value": { - "y": { + "top": { + "desktop": 2 + }, + "bottom": { "desktop": 2 } }, @@ -3379,8 +3390,12 @@ }, "tagPadding": { "value": { - "y": { - "mobile": 4, + "top": { + "mobile": 2, + "desktop": 2 + }, + "bottom": { + "mobile": 2, "desktop": 2 } }, @@ -3394,7 +3409,10 @@ }, "heroPadding": { "value": { - "y": { + "top": { + "mobile": 16 + }, + "bottom": { "mobile": 16 } }, @@ -3402,7 +3420,10 @@ }, "headerPadding": { "value": { - "y": { + "top": { + "mobile": 16 + }, + "bottom": { "mobile": 16 } }, @@ -3413,7 +3434,13 @@ "top": { "desktop": 32 }, - "x": { + "bottom": { + "desktop": 32 + }, + "left": { + "desktop": 24 + }, + "right": { "desktop": 24 } }, diff --git a/tokens/movistar.json b/tokens/movistar.json index 02347aeb18..7b2895d7e9 100644 --- a/tokens/movistar.json +++ b/tokens/movistar.json @@ -3346,7 +3346,11 @@ "spacing": { "buttonDefaultPadding": { "value": { - "x": { + "left": { + "mobile": 16, + "desktop": 16 + }, + "right": { "mobile": 16, "desktop": 16 } @@ -3355,7 +3359,11 @@ }, "buttonSmallPadding": { "value": { - "x": { + "left": { + "mobile": 12, + "desktop": 12 + }, + "right": { "mobile": 12, "desktop": 12 } @@ -3371,7 +3379,10 @@ }, "inputPadding": { "value": { - "y": { + "top": { + "desktop": 8 + }, + "bottom": { "desktop": 8 } }, @@ -3379,7 +3390,11 @@ }, "tagPadding": { "value": { - "y": { + "top": { + "mobile": 4, + "desktop": 4 + }, + "bottom": { "mobile": 4, "desktop": 4 } @@ -3394,7 +3409,10 @@ }, "heroPadding": { "value": { - "y": { + "top": { + "mobile": 24 + }, + "bottom": { "mobile": 24 } }, @@ -3402,7 +3420,10 @@ }, "headerPadding": { "value": { - "y": { + "top": { + "mobile": 24 + }, + "bottom": { "mobile": 24 } }, @@ -3413,7 +3434,13 @@ "top": { "desktop": 40 }, - "x": { + "bottom": { + "desktop": 24 + }, + "left": { + "desktop": 40 + }, + "right": { "desktop": 40 } }, diff --git a/tokens/o2-new.json b/tokens/o2-new.json index 8d307201bb..ce1ea33b22 100644 --- a/tokens/o2-new.json +++ b/tokens/o2-new.json @@ -3378,7 +3378,11 @@ "spacing": { "buttonDefaultPadding": { "value": { - "x": { + "left": { + "mobile": 16, + "desktop": 16 + }, + "right": { "mobile": 16, "desktop": 16 } @@ -3387,7 +3391,11 @@ }, "buttonSmallPadding": { "value": { - "x": { + "left": { + "mobile": 12, + "desktop": 12 + }, + "right": { "mobile": 12, "desktop": 12 } @@ -3403,7 +3411,10 @@ }, "inputPadding": { "value": { - "y": { + "top": { + "desktop": 8 + }, + "bottom": { "desktop": 8 } }, @@ -3411,7 +3422,11 @@ }, "tagPadding": { "value": { - "y": { + "top": { + "mobile": 4, + "desktop": 4 + }, + "bottom": { "mobile": 4, "desktop": 4 } @@ -3426,7 +3441,10 @@ }, "heroPadding": { "value": { - "y": { + "top": { + "mobile": 24 + }, + "bottom": { "mobile": 24 } }, @@ -3434,7 +3452,10 @@ }, "headerPadding": { "value": { - "y": { + "top": { + "mobile": 24 + }, + "bottom": { "mobile": 24 } }, @@ -3445,7 +3466,13 @@ "top": { "desktop": 40 }, - "x": { + "bottom": { + "desktop": 24 + }, + "left": { + "desktop": 40 + }, + "right": { "desktop": 40 } }, diff --git a/tokens/o2.json b/tokens/o2.json index 07cbc32aaa..23b8c810ba 100644 --- a/tokens/o2.json +++ b/tokens/o2.json @@ -3346,7 +3346,11 @@ "spacing": { "buttonDefaultPadding": { "value": { - "x": { + "left": { + "mobile": 16, + "desktop": 16 + }, + "right": { "mobile": 16, "desktop": 16 } @@ -3355,7 +3359,11 @@ }, "buttonSmallPadding": { "value": { - "x": { + "left": { + "mobile": 12, + "desktop": 12 + }, + "right": { "mobile": 12, "desktop": 12 } @@ -3371,7 +3379,10 @@ }, "inputPadding": { "value": { - "y": { + "top": { + "desktop": 8 + }, + "bottom": { "desktop": 8 } }, @@ -3379,7 +3390,11 @@ }, "tagPadding": { "value": { - "y": { + "top": { + "mobile": 4, + "desktop": 4 + }, + "bottom": { "mobile": 4, "desktop": 4 } @@ -3394,7 +3409,10 @@ }, "heroPadding": { "value": { - "y": { + "top": { + "mobile": 24 + }, + "bottom": { "mobile": 24 } }, @@ -3402,7 +3420,10 @@ }, "headerPadding": { "value": { - "y": { + "top": { + "mobile": 24 + }, + "bottom": { "mobile": 24 } }, @@ -3413,7 +3434,13 @@ "top": { "desktop": 40 }, - "x": { + "bottom": { + "desktop": 24 + }, + "left": { + "desktop": 40 + }, + "right": { "desktop": 40 } }, diff --git a/tokens/schema/skin-schema.json b/tokens/schema/skin-schema.json index 107d8dc767..e2bdad098e 100644 --- a/tokens/schema/skin-schema.json +++ b/tokens/schema/skin-schema.json @@ -1072,11 +1072,10 @@ "value": { "anyOf": [ { "$ref": "#/definitions/breakpoints" }, + { "type": "object", "properties": { - "x": { "$ref": "#/definitions/breakpoints" }, - "y": { "$ref": "#/definitions/breakpoints" }, "top": { "$ref": "#/definitions/breakpoints" }, "right": { "$ref": "#/definitions/breakpoints" }, "bottom": { "$ref": "#/definitions/breakpoints" }, diff --git a/tokens/telefonica.json b/tokens/telefonica.json index 81ab76938a..e9f39ef35a 100644 --- a/tokens/telefonica.json +++ b/tokens/telefonica.json @@ -3346,7 +3346,11 @@ "spacing": { "buttonDefaultPadding": { "value": { - "x": { + "left": { + "mobile": 16, + "desktop": 16 + }, + "right": { "mobile": 16, "desktop": 16 } @@ -3355,7 +3359,11 @@ }, "buttonSmallPadding": { "value": { - "x": { + "left": { + "mobile": 12, + "desktop": 12 + }, + "right": { "mobile": 12, "desktop": 12 } @@ -3371,7 +3379,10 @@ }, "inputPadding": { "value": { - "y": { + "top": { + "desktop": 8 + }, + "bottom": { "desktop": 8 } }, @@ -3379,7 +3390,11 @@ }, "tagPadding": { "value": { - "y": { + "top": { + "mobile": 4, + "desktop": 4 + }, + "bottom": { "mobile": 4, "desktop": 4 } @@ -3394,7 +3409,10 @@ }, "heroPadding": { "value": { - "y": { + "top": { + "mobile": 24 + }, + "bottom": { "mobile": 24 } }, @@ -3402,7 +3420,10 @@ }, "headerPadding": { "value": { - "y": { + "top": { + "mobile": 24 + }, + "bottom": { "mobile": 24 } }, @@ -3413,7 +3434,13 @@ "top": { "desktop": 40 }, - "x": { + "bottom": { + "desktop": 24 + }, + "left": { + "desktop": 40 + }, + "right": { "desktop": 40 } }, diff --git a/tokens/tu.json b/tokens/tu.json index d7697f81d6..365b696d42 100644 --- a/tokens/tu.json +++ b/tokens/tu.json @@ -3346,7 +3346,11 @@ "spacing": { "buttonDefaultPadding": { "value": { - "x": { + "left": { + "mobile": 16, + "desktop": 16 + }, + "right": { "mobile": 16, "desktop": 16 } @@ -3355,7 +3359,11 @@ }, "buttonSmallPadding": { "value": { - "x": { + "left": { + "mobile": 12, + "desktop": 12 + }, + "right": { "mobile": 12, "desktop": 12 } @@ -3371,7 +3379,10 @@ }, "inputPadding": { "value": { - "y": { + "top": { + "desktop": 8 + }, + "bottom": { "desktop": 8 } }, @@ -3379,7 +3390,11 @@ }, "tagPadding": { "value": { - "y": { + "top": { + "mobile": 4, + "desktop": 4 + }, + "bottom": { "mobile": 4, "desktop": 4 } @@ -3394,7 +3409,10 @@ }, "heroPadding": { "value": { - "y": { + "top": { + "mobile": 24 + }, + "bottom": { "mobile": 24 } }, @@ -3402,7 +3420,10 @@ }, "headerPadding": { "value": { - "y": { + "top": { + "mobile": 24 + }, + "bottom": { "mobile": 24 } }, @@ -3413,7 +3434,13 @@ "top": { "desktop": 40 }, - "x": { + "bottom": { + "desktop": 24 + }, + "left": { + "desktop": 40 + }, + "right": { "desktop": 40 } }, diff --git a/tokens/vivo-new.json b/tokens/vivo-new.json index 43b040448f..bd1ede70c2 100644 --- a/tokens/vivo-new.json +++ b/tokens/vivo-new.json @@ -3346,7 +3346,11 @@ "spacing": { "buttonDefaultPadding": { "value": { - "x": { + "left": { + "mobile": 16, + "desktop": 16 + }, + "right": { "mobile": 16, "desktop": 16 } @@ -3355,7 +3359,11 @@ }, "buttonSmallPadding": { "value": { - "x": { + "left": { + "mobile": 12, + "desktop": 12 + }, + "right": { "mobile": 12, "desktop": 12 } @@ -3371,7 +3379,10 @@ }, "inputPadding": { "value": { - "y": { + "top": { + "desktop": 8 + }, + "bottom": { "desktop": 8 } }, @@ -3379,7 +3390,11 @@ }, "tagPadding": { "value": { - "y": { + "top": { + "mobile": 4, + "desktop": 4 + }, + "bottom": { "mobile": 4, "desktop": 4 } @@ -3394,7 +3409,10 @@ }, "heroPadding": { "value": { - "y": { + "top": { + "mobile": 24 + }, + "bottom": { "mobile": 24 } }, @@ -3402,7 +3420,10 @@ }, "headerPadding": { "value": { - "y": { + "top": { + "mobile": 24 + }, + "bottom": { "mobile": 24 } }, @@ -3413,7 +3434,13 @@ "top": { "desktop": 40 }, - "x": { + "bottom": { + "desktop": 24 + }, + "left": { + "desktop": 40 + }, + "right": { "desktop": 40 } }, diff --git a/tokens/vivo.json b/tokens/vivo.json index c41ba6ccab..d5d09b475e 100644 --- a/tokens/vivo.json +++ b/tokens/vivo.json @@ -3346,7 +3346,11 @@ "spacing": { "buttonDefaultPadding": { "value": { - "x": { + "left": { + "mobile": 16, + "desktop": 16 + }, + "right": { "mobile": 16, "desktop": 16 } @@ -3355,7 +3359,11 @@ }, "buttonSmallPadding": { "value": { - "x": { + "left": { + "mobile": 12, + "desktop": 12 + }, + "right": { "mobile": 12, "desktop": 12 } @@ -3371,7 +3379,10 @@ }, "inputPadding": { "value": { - "y": { + "top": { + "desktop": 8 + }, + "bottom": { "desktop": 8 } }, @@ -3379,7 +3390,11 @@ }, "tagPadding": { "value": { - "y": { + "top": { + "mobile": 4, + "desktop": 4 + }, + "bottom": { "mobile": 4, "desktop": 4 } @@ -3394,7 +3409,10 @@ }, "heroPadding": { "value": { - "y": { + "top": { + "mobile": 24 + }, + "bottom": { "mobile": 24 } }, @@ -3402,7 +3420,10 @@ }, "headerPadding": { "value": { - "y": { + "top": { + "mobile": 24 + }, + "bottom": { "mobile": 24 } }, @@ -3413,7 +3434,13 @@ "top": { "desktop": 40 }, - "x": { + "bottom": { + "desktop": 24 + }, + "left": { + "desktop": 40 + }, + "right": { "desktop": 40 } }, From 148f0e2256ce3e85d99777e93476e7335b594e4c Mon Sep 17 00:00:00 2001 From: Alex Bueno <44420072+aweell@users.noreply.github.com> Date: Mon, 26 Jan 2026 16:39:48 +0100 Subject: [PATCH 4/6] Avoid single breakpoint values in spacing tokens --- tokens/blau.json | 19 +++++++++++++++---- tokens/esimflag.json | 19 +++++++++++++++---- tokens/movistar-new.json | 19 +++++++++++++++---- tokens/movistar.json | 19 +++++++++++++++---- tokens/o2-new.json | 19 +++++++++++++++---- tokens/o2.json | 19 +++++++++++++++---- tokens/schema/skin-schema.json | 1 + tokens/telefonica.json | 21 ++++++++++++++++----- tokens/tu.json | 19 +++++++++++++++---- tokens/vivo-new.json | 19 +++++++++++++++---- tokens/vivo.json | 19 +++++++++++++++---- 11 files changed, 152 insertions(+), 41 deletions(-) diff --git a/tokens/blau.json b/tokens/blau.json index 9d2688ab89..7f909e48f5 100644 --- a/tokens/blau.json +++ b/tokens/blau.json @@ -3390,9 +3390,11 @@ "inputPadding": { "value": { "top": { + "mobile": 18, "desktop": 8 }, "bottom": { + "mobile": 18, "desktop": 8 } }, @@ -3413,6 +3415,7 @@ }, "feedbackScreenPadding": { "value": { + "mobile": 64, "desktop": 64 }, "type": "spacing" @@ -3420,10 +3423,12 @@ "heroPadding": { "value": { "top": { - "mobile": 24 + "mobile": 24, + "desktop": 56 }, "bottom": { - "mobile": 24 + "mobile": 24, + "desktop": 56 } }, "type": "spacing" @@ -3431,10 +3436,12 @@ "headerPadding": { "value": { "top": { - "mobile": 24 + "mobile": 24, + "desktop": 48 }, "bottom": { - "mobile": 24 + "mobile": 24, + "desktop": 48 } }, "type": "spacing" @@ -3442,15 +3449,19 @@ "drawerPadding": { "value": { "top": { + "mobile": 40, "desktop": 40 }, "bottom": { + "mobile": 16, "desktop": 24 }, "left": { + "mobile": 16, "desktop": 40 }, "right": { + "mobile": 16, "desktop": 40 } }, diff --git a/tokens/esimflag.json b/tokens/esimflag.json index 5c623691e9..b962458458 100644 --- a/tokens/esimflag.json +++ b/tokens/esimflag.json @@ -3412,9 +3412,11 @@ "inputPadding": { "value": { "top": { + "mobile": 18, "desktop": 8 }, "bottom": { + "mobile": 18, "desktop": 8 } }, @@ -3435,6 +3437,7 @@ }, "feedbackScreenPadding": { "value": { + "mobile": 64, "desktop": 64 }, "type": "spacing" @@ -3442,10 +3445,12 @@ "heroPadding": { "value": { "top": { - "mobile": 24 + "mobile": 24, + "desktop": 56 }, "bottom": { - "mobile": 24 + "mobile": 24, + "desktop": 56 } }, "type": "spacing" @@ -3453,10 +3458,12 @@ "headerPadding": { "value": { "top": { - "mobile": 24 + "mobile": 24, + "desktop": 48 }, "bottom": { - "mobile": 24 + "mobile": 24, + "desktop": 48 } }, "type": "spacing" @@ -3464,15 +3471,19 @@ "drawerPadding": { "value": { "top": { + "mobile": 40, "desktop": 40 }, "bottom": { + "mobile": 16, "desktop": 24 }, "left": { + "mobile": 16, "desktop": 40 }, "right": { + "mobile": 16, "desktop": 40 } }, diff --git a/tokens/movistar-new.json b/tokens/movistar-new.json index 3aff04ef5a..f369c940ca 100644 --- a/tokens/movistar-new.json +++ b/tokens/movistar-new.json @@ -3380,9 +3380,11 @@ "inputPadding": { "value": { "top": { + "mobile": 18, "desktop": 2 }, "bottom": { + "mobile": 18, "desktop": 2 } }, @@ -3403,6 +3405,7 @@ }, "feedbackScreenPadding": { "value": { + "mobile": 64, "desktop": 40 }, "type": "spacing" @@ -3410,10 +3413,12 @@ "heroPadding": { "value": { "top": { - "mobile": 16 + "mobile": 16, + "desktop": 56 }, "bottom": { - "mobile": 16 + "mobile": 16, + "desktop": 56 } }, "type": "spacing" @@ -3421,10 +3426,12 @@ "headerPadding": { "value": { "top": { - "mobile": 16 + "mobile": 16, + "desktop": 48 }, "bottom": { - "mobile": 16 + "mobile": 16, + "desktop": 48 } }, "type": "spacing" @@ -3432,15 +3439,19 @@ "drawerPadding": { "value": { "top": { + "mobile": 40, "desktop": 32 }, "bottom": { + "mobile": 16, "desktop": 32 }, "left": { + "mobile": 16, "desktop": 24 }, "right": { + "mobile": 16, "desktop": 24 } }, diff --git a/tokens/movistar.json b/tokens/movistar.json index 7b2895d7e9..70a003abde 100644 --- a/tokens/movistar.json +++ b/tokens/movistar.json @@ -3380,9 +3380,11 @@ "inputPadding": { "value": { "top": { + "mobile": 18, "desktop": 8 }, "bottom": { + "mobile": 18, "desktop": 8 } }, @@ -3403,6 +3405,7 @@ }, "feedbackScreenPadding": { "value": { + "mobile": 64, "desktop": 64 }, "type": "spacing" @@ -3410,10 +3413,12 @@ "heroPadding": { "value": { "top": { - "mobile": 24 + "mobile": 24, + "desktop": 56 }, "bottom": { - "mobile": 24 + "mobile": 24, + "desktop": 56 } }, "type": "spacing" @@ -3421,10 +3426,12 @@ "headerPadding": { "value": { "top": { - "mobile": 24 + "mobile": 24, + "desktop": 48 }, "bottom": { - "mobile": 24 + "mobile": 24, + "desktop": 48 } }, "type": "spacing" @@ -3432,15 +3439,19 @@ "drawerPadding": { "value": { "top": { + "mobile": 40, "desktop": 40 }, "bottom": { + "mobile": 16, "desktop": 24 }, "left": { + "mobile": 16, "desktop": 40 }, "right": { + "mobile": 16, "desktop": 40 } }, diff --git a/tokens/o2-new.json b/tokens/o2-new.json index ce1ea33b22..2ccf8fac6b 100644 --- a/tokens/o2-new.json +++ b/tokens/o2-new.json @@ -3412,9 +3412,11 @@ "inputPadding": { "value": { "top": { + "mobile": 18, "desktop": 8 }, "bottom": { + "mobile": 18, "desktop": 8 } }, @@ -3435,6 +3437,7 @@ }, "feedbackScreenPadding": { "value": { + "mobile": 64, "desktop": 64 }, "type": "spacing" @@ -3442,10 +3445,12 @@ "heroPadding": { "value": { "top": { - "mobile": 24 + "mobile": 24, + "desktop": 56 }, "bottom": { - "mobile": 24 + "mobile": 24, + "desktop": 56 } }, "type": "spacing" @@ -3453,10 +3458,12 @@ "headerPadding": { "value": { "top": { - "mobile": 24 + "mobile": 24, + "desktop": 48 }, "bottom": { - "mobile": 24 + "mobile": 24, + "desktop": 48 } }, "type": "spacing" @@ -3464,15 +3471,19 @@ "drawerPadding": { "value": { "top": { + "mobile": 40, "desktop": 40 }, "bottom": { + "mobile": 16, "desktop": 24 }, "left": { + "mobile": 16, "desktop": 40 }, "right": { + "mobile": 16, "desktop": 40 } }, diff --git a/tokens/o2.json b/tokens/o2.json index 23b8c810ba..e2fe38a357 100644 --- a/tokens/o2.json +++ b/tokens/o2.json @@ -3380,9 +3380,11 @@ "inputPadding": { "value": { "top": { + "mobile": 18, "desktop": 8 }, "bottom": { + "mobile": 18, "desktop": 8 } }, @@ -3403,6 +3405,7 @@ }, "feedbackScreenPadding": { "value": { + "mobile": 64, "desktop": 64 }, "type": "spacing" @@ -3410,10 +3413,12 @@ "heroPadding": { "value": { "top": { - "mobile": 24 + "mobile": 24, + "desktop": 56 }, "bottom": { - "mobile": 24 + "mobile": 24, + "desktop": 56 } }, "type": "spacing" @@ -3421,10 +3426,12 @@ "headerPadding": { "value": { "top": { - "mobile": 24 + "mobile": 24, + "desktop": 48 }, "bottom": { - "mobile": 24 + "mobile": 24, + "desktop": 48 } }, "type": "spacing" @@ -3432,15 +3439,19 @@ "drawerPadding": { "value": { "top": { + "mobile": 40, "desktop": 40 }, "bottom": { + "mobile": 16, "desktop": 24 }, "left": { + "mobile": 16, "desktop": 40 }, "right": { + "mobile": 16, "desktop": 40 } }, diff --git a/tokens/schema/skin-schema.json b/tokens/schema/skin-schema.json index e2bdad098e..c2dc45171c 100644 --- a/tokens/schema/skin-schema.json +++ b/tokens/schema/skin-schema.json @@ -1122,6 +1122,7 @@ "desktop": { "type": "number" } }, "minProperties": 1, + "required": ["mobile", "desktop"], "additionalProperties": false } } diff --git a/tokens/telefonica.json b/tokens/telefonica.json index e9f39ef35a..ca1dc9b041 100644 --- a/tokens/telefonica.json +++ b/tokens/telefonica.json @@ -3380,9 +3380,11 @@ "inputPadding": { "value": { "top": { + "mobile": 18, "desktop": 8 }, "bottom": { + "mobile": 18, "desktop": 8 } }, @@ -3403,6 +3405,7 @@ }, "feedbackScreenPadding": { "value": { + "mobile": 64, "desktop": 64 }, "type": "spacing" @@ -3410,10 +3413,12 @@ "heroPadding": { "value": { "top": { - "mobile": 24 + "mobile": 24, + "desktop": 56 }, "bottom": { - "mobile": 24 + "mobile": 24, + "desktop": 56 } }, "type": "spacing" @@ -3421,10 +3426,12 @@ "headerPadding": { "value": { "top": { - "mobile": 24 + "mobile": 24, + "desktop": 48 }, "bottom": { - "mobile": 24 + "mobile": 24, + "desktop": 48 } }, "type": "spacing" @@ -3432,15 +3439,19 @@ "drawerPadding": { "value": { "top": { + "mobile": 40, "desktop": 40 }, - "bottom": { + "bottom": { + "mobile": 16, "desktop": 24 }, "left": { + "mobile": 16, "desktop": 40 }, "right": { + "mobile": 16, "desktop": 40 } }, diff --git a/tokens/tu.json b/tokens/tu.json index 365b696d42..c4d8127626 100644 --- a/tokens/tu.json +++ b/tokens/tu.json @@ -3380,9 +3380,11 @@ "inputPadding": { "value": { "top": { + "mobile": 18, "desktop": 8 }, "bottom": { + "mobile": 18, "desktop": 8 } }, @@ -3403,6 +3405,7 @@ }, "feedbackScreenPadding": { "value": { + "mobile": 64, "desktop": 64 }, "type": "spacing" @@ -3410,10 +3413,12 @@ "heroPadding": { "value": { "top": { - "mobile": 24 + "mobile": 24, + "desktop": 56 }, "bottom": { - "mobile": 24 + "mobile": 24, + "desktop": 56 } }, "type": "spacing" @@ -3421,10 +3426,12 @@ "headerPadding": { "value": { "top": { - "mobile": 24 + "mobile": 24, + "desktop": 48 }, "bottom": { - "mobile": 24 + "mobile": 24, + "desktop": 48 } }, "type": "spacing" @@ -3432,15 +3439,19 @@ "drawerPadding": { "value": { "top": { + "mobile": 40, "desktop": 40 }, "bottom": { + "mobile": 16, "desktop": 24 }, "left": { + "mobile": 16, "desktop": 40 }, "right": { + "mobile": 16, "desktop": 40 } }, diff --git a/tokens/vivo-new.json b/tokens/vivo-new.json index bd1ede70c2..b98fa1b6e2 100644 --- a/tokens/vivo-new.json +++ b/tokens/vivo-new.json @@ -3380,9 +3380,11 @@ "inputPadding": { "value": { "top": { + "mobile": 18, "desktop": 8 }, "bottom": { + "mobile": 18, "desktop": 8 } }, @@ -3403,6 +3405,7 @@ }, "feedbackScreenPadding": { "value": { + "mobile": 64, "desktop": 64 }, "type": "spacing" @@ -3410,10 +3413,12 @@ "heroPadding": { "value": { "top": { - "mobile": 24 + "mobile": 24, + "desktop": 56 }, "bottom": { - "mobile": 24 + "mobile": 24, + "desktop": 56 } }, "type": "spacing" @@ -3421,10 +3426,12 @@ "headerPadding": { "value": { "top": { - "mobile": 24 + "mobile": 24, + "desktop": 48 }, "bottom": { - "mobile": 24 + "mobile": 24, + "desktop": 48 } }, "type": "spacing" @@ -3432,15 +3439,19 @@ "drawerPadding": { "value": { "top": { + "mobile": 40, "desktop": 40 }, "bottom": { + "mobile": 16, "desktop": 24 }, "left": { + "mobile": 16, "desktop": 40 }, "right": { + "mobile": 16, "desktop": 40 } }, diff --git a/tokens/vivo.json b/tokens/vivo.json index d5d09b475e..42bccd5d3d 100644 --- a/tokens/vivo.json +++ b/tokens/vivo.json @@ -3380,9 +3380,11 @@ "inputPadding": { "value": { "top": { + "mobile": 18, "desktop": 8 }, "bottom": { + "mobile": 18, "desktop": 8 } }, @@ -3403,6 +3405,7 @@ }, "feedbackScreenPadding": { "value": { + "mobile": 64, "desktop": 64 }, "type": "spacing" @@ -3410,10 +3413,12 @@ "heroPadding": { "value": { "top": { - "mobile": 24 + "mobile": 24, + "desktop": 56 }, "bottom": { - "mobile": 24 + "mobile": 24, + "desktop": 56 } }, "type": "spacing" @@ -3421,10 +3426,12 @@ "headerPadding": { "value": { "top": { - "mobile": 24 + "mobile": 24, + "desktop": 48 }, "bottom": { - "mobile": 24 + "mobile": 24, + "desktop": 48 } }, "type": "spacing" @@ -3432,15 +3439,19 @@ "drawerPadding": { "value": { "top": { + "mobile": 40, "desktop": 40 }, "bottom": { + "mobile": 16, "desktop": 24 }, "left": { + "mobile": 16, "desktop": 40 }, "right": { + "mobile": 16, "desktop": 40 } }, From 097a5a2a145c8be60288418cd6e77f4b51181e6f Mon Sep 17 00:00:00 2001 From: Alex Bueno <44420072+aweell@users.noreply.github.com> Date: Tue, 27 Jan 2026 11:04:46 +0100 Subject: [PATCH 5/6] Change feedbackScreen to use all sides --- tokens/blau.json | 18 ++++++++++++++++-- tokens/esimflag.json | 26 ++++++++++++++++++++------ tokens/movistar-new.json | 18 ++++++++++++++++-- tokens/movistar.json | 18 ++++++++++++++++-- tokens/o2-new.json | 18 ++++++++++++++++-- tokens/o2.json | 18 ++++++++++++++++-- tokens/telefonica.json | 18 ++++++++++++++++-- tokens/tu.json | 18 ++++++++++++++++-- tokens/vivo-new.json | 18 ++++++++++++++++-- tokens/vivo.json | 18 ++++++++++++++++-- 10 files changed, 164 insertions(+), 24 deletions(-) diff --git a/tokens/blau.json b/tokens/blau.json index 7f909e48f5..c9fb453edc 100644 --- a/tokens/blau.json +++ b/tokens/blau.json @@ -3415,8 +3415,22 @@ }, "feedbackScreenPadding": { "value": { - "mobile": 64, - "desktop": 64 + "top": { + "mobile": 64, + "desktop": 64 + }, + "bottom": { + "mobile": 16, + "desktop": 64 + }, + "left": { + "mobile": 16, + "desktop": 64 + }, + "right": { + "mobile": 16, + "desktop": 64 + } }, "type": "spacing" }, diff --git a/tokens/esimflag.json b/tokens/esimflag.json index b962458458..36db6a8814 100644 --- a/tokens/esimflag.json +++ b/tokens/esimflag.json @@ -3437,8 +3437,22 @@ }, "feedbackScreenPadding": { "value": { - "mobile": 64, - "desktop": 64 + "top": { + "mobile": 64, + "desktop": 64 + }, + "bottom": { + "mobile": 16, + "desktop": 64 + }, + "left": { + "mobile": 16, + "desktop": 64 + }, + "right": { + "mobile": 16, + "desktop": 64 + } }, "type": "spacing" }, @@ -3471,19 +3485,19 @@ "drawerPadding": { "value": { "top": { - "mobile": 40, + "mobile": 40, "desktop": 40 }, "bottom": { - "mobile": 16, + "mobile": 16, "desktop": 24 }, "left": { - "mobile": 16, + "mobile": 16, "desktop": 40 }, "right": { - "mobile": 16, + "mobile": 16, "desktop": 40 } }, diff --git a/tokens/movistar-new.json b/tokens/movistar-new.json index f369c940ca..3f87cafd09 100644 --- a/tokens/movistar-new.json +++ b/tokens/movistar-new.json @@ -3405,8 +3405,22 @@ }, "feedbackScreenPadding": { "value": { - "mobile": 64, - "desktop": 40 + "top": { + "mobile": 64, + "desktop": 40 + }, + "bottom": { + "mobile": 16, + "desktop": 40 + }, + "left": { + "mobile": 16, + "desktop": 40 + }, + "right": { + "mobile": 16, + "desktop": 40 + } }, "type": "spacing" }, diff --git a/tokens/movistar.json b/tokens/movistar.json index 70a003abde..768a61e8e0 100644 --- a/tokens/movistar.json +++ b/tokens/movistar.json @@ -3405,8 +3405,22 @@ }, "feedbackScreenPadding": { "value": { - "mobile": 64, - "desktop": 64 + "top": { + "mobile": 64, + "desktop": 64 + }, + "bottom": { + "mobile": 16, + "desktop": 64 + }, + "left": { + "mobile": 16, + "desktop": 64 + }, + "right": { + "mobile": 16, + "desktop": 64 + } }, "type": "spacing" }, diff --git a/tokens/o2-new.json b/tokens/o2-new.json index 2ccf8fac6b..a593d21bfb 100644 --- a/tokens/o2-new.json +++ b/tokens/o2-new.json @@ -3437,8 +3437,22 @@ }, "feedbackScreenPadding": { "value": { - "mobile": 64, - "desktop": 64 + "top": { + "mobile": 64, + "desktop": 64 + }, + "bottom": { + "mobile": 16, + "desktop": 64 + }, + "left": { + "mobile": 16, + "desktop": 64 + }, + "right": { + "mobile": 16, + "desktop": 64 + } }, "type": "spacing" }, diff --git a/tokens/o2.json b/tokens/o2.json index e2fe38a357..e3eeb50285 100644 --- a/tokens/o2.json +++ b/tokens/o2.json @@ -3405,8 +3405,22 @@ }, "feedbackScreenPadding": { "value": { - "mobile": 64, - "desktop": 64 + "top": { + "mobile": 64, + "desktop": 64 + }, + "bottom": { + "mobile": 16, + "desktop": 64 + }, + "left": { + "mobile": 16, + "desktop": 64 + }, + "right": { + "mobile": 16, + "desktop": 64 + } }, "type": "spacing" }, diff --git a/tokens/telefonica.json b/tokens/telefonica.json index ca1dc9b041..9b92c2998e 100644 --- a/tokens/telefonica.json +++ b/tokens/telefonica.json @@ -3405,8 +3405,22 @@ }, "feedbackScreenPadding": { "value": { - "mobile": 64, - "desktop": 64 + "top": { + "mobile": 64, + "desktop": 64 + }, + "bottom": { + "mobile": 16, + "desktop": 64 + }, + "left": { + "mobile": 16, + "desktop": 64 + }, + "right": { + "mobile": 16, + "desktop": 64 + } }, "type": "spacing" }, diff --git a/tokens/tu.json b/tokens/tu.json index c4d8127626..0b7b8ad46f 100644 --- a/tokens/tu.json +++ b/tokens/tu.json @@ -3405,8 +3405,22 @@ }, "feedbackScreenPadding": { "value": { - "mobile": 64, - "desktop": 64 + "top": { + "mobile": 64, + "desktop": 64 + }, + "bottom": { + "mobile": 16, + "desktop": 64 + }, + "left": { + "mobile": 16, + "desktop": 64 + }, + "right": { + "mobile": 16, + "desktop": 64 + } }, "type": "spacing" }, diff --git a/tokens/vivo-new.json b/tokens/vivo-new.json index b98fa1b6e2..a84d3aab5b 100644 --- a/tokens/vivo-new.json +++ b/tokens/vivo-new.json @@ -3405,8 +3405,22 @@ }, "feedbackScreenPadding": { "value": { - "mobile": 64, - "desktop": 64 + "top": { + "mobile": 64, + "desktop": 64 + }, + "bottom": { + "mobile": 16, + "desktop": 64 + }, + "left": { + "mobile": 16, + "desktop": 64 + }, + "right": { + "mobile": 16, + "desktop": 64 + } }, "type": "spacing" }, diff --git a/tokens/vivo.json b/tokens/vivo.json index 42bccd5d3d..2209682cd8 100644 --- a/tokens/vivo.json +++ b/tokens/vivo.json @@ -3405,8 +3405,22 @@ }, "feedbackScreenPadding": { "value": { - "mobile": 64, - "desktop": 64 + "top": { + "mobile": 64, + "desktop": 64 + }, + "bottom": { + "mobile": 16, + "desktop": 64 + }, + "left": { + "mobile": 16, + "desktop": 64 + }, + "right": { + "mobile": 16, + "desktop": 64 + } }, "type": "spacing" }, From 22c899027dff8f20a59129cc282fb3b9e6a626d6 Mon Sep 17 00:00:00 2001 From: Alex Bueno <44420072+aweell@users.noreply.github.com> Date: Tue, 27 Jan 2026 11:07:32 +0100 Subject: [PATCH 6/6] Update cardDefault padding token structure --- tokens/blau.json | 18 ++++++++++++++++-- tokens/esimflag.json | 18 ++++++++++++++++-- tokens/movistar-new.json | 18 ++++++++++++++++-- tokens/movistar.json | 18 ++++++++++++++++-- tokens/o2-new.json | 18 ++++++++++++++++-- tokens/o2.json | 18 ++++++++++++++++-- tokens/telefonica.json | 18 ++++++++++++++++-- tokens/tu.json | 18 ++++++++++++++++-- tokens/vivo-new.json | 18 ++++++++++++++++-- tokens/vivo.json | 18 ++++++++++++++++-- 10 files changed, 160 insertions(+), 20 deletions(-) diff --git a/tokens/blau.json b/tokens/blau.json index c9fb453edc..18bb287ad6 100644 --- a/tokens/blau.json +++ b/tokens/blau.json @@ -3382,8 +3382,22 @@ }, "cardDefaultPadding": { "value": { - "mobile": 16, - "desktop": 24 + "top": { + "mobile": 16, + "desktop": 24 + }, + "bottom": { + "mobile": 16, + "desktop": 24 + }, + "left": { + "mobile": 16, + "desktop": 24 + }, + "right": { + "mobile": 16, + "desktop": 24 + } }, "type": "spacing" }, diff --git a/tokens/esimflag.json b/tokens/esimflag.json index 36db6a8814..475800b716 100644 --- a/tokens/esimflag.json +++ b/tokens/esimflag.json @@ -3404,8 +3404,22 @@ }, "cardDefaultPadding": { "value": { - "mobile": 16, - "desktop": 24 + "top": { + "mobile": 16, + "desktop": 24 + }, + "bottom": { + "mobile": 16, + "desktop": 24 + }, + "left": { + "mobile": 16, + "desktop": 24 + }, + "right": { + "mobile": 16, + "desktop": 24 + } }, "type": "spacing" }, diff --git a/tokens/movistar-new.json b/tokens/movistar-new.json index 3f87cafd09..abdcc04ab3 100644 --- a/tokens/movistar-new.json +++ b/tokens/movistar-new.json @@ -3372,8 +3372,22 @@ }, "cardDefaultPadding": { "value": { - "mobile": 16, - "desktop": 16 + "top": { + "mobile": 16, + "desktop": 16 + }, + "bottom": { + "mobile": 16, + "desktop": 16 + }, + "left": { + "mobile": 16, + "desktop": 16 + }, + "right": { + "mobile": 16, + "desktop": 16 + } }, "type": "spacing" }, diff --git a/tokens/movistar.json b/tokens/movistar.json index 768a61e8e0..cbdcc2bed6 100644 --- a/tokens/movistar.json +++ b/tokens/movistar.json @@ -3372,8 +3372,22 @@ }, "cardDefaultPadding": { "value": { - "mobile": 16, - "desktop": 24 + "top": { + "mobile": 16, + "desktop": 24 + }, + "bottom": { + "mobile": 16, + "desktop": 24 + }, + "left": { + "mobile": 16, + "desktop": 24 + }, + "right": { + "mobile": 16, + "desktop": 24 + } }, "type": "spacing" }, diff --git a/tokens/o2-new.json b/tokens/o2-new.json index a593d21bfb..0f154bc8af 100644 --- a/tokens/o2-new.json +++ b/tokens/o2-new.json @@ -3404,8 +3404,22 @@ }, "cardDefaultPadding": { "value": { - "mobile": 16, - "desktop": 24 + "top": { + "mobile": 16, + "desktop": 24 + }, + "bottom": { + "mobile": 16, + "desktop": 24 + }, + "left": { + "mobile": 16, + "desktop": 24 + }, + "right": { + "mobile": 16, + "desktop": 24 + } }, "type": "spacing" }, diff --git a/tokens/o2.json b/tokens/o2.json index e3eeb50285..8ba25f5fb7 100644 --- a/tokens/o2.json +++ b/tokens/o2.json @@ -3372,8 +3372,22 @@ }, "cardDefaultPadding": { "value": { - "mobile": 16, - "desktop": 24 + "top": { + "mobile": 16, + "desktop": 24 + }, + "bottom": { + "mobile": 16, + "desktop": 24 + }, + "left": { + "mobile": 16, + "desktop": 24 + }, + "right": { + "mobile": 16, + "desktop": 24 + } }, "type": "spacing" }, diff --git a/tokens/telefonica.json b/tokens/telefonica.json index 9b92c2998e..c88d27d53b 100644 --- a/tokens/telefonica.json +++ b/tokens/telefonica.json @@ -3372,8 +3372,22 @@ }, "cardDefaultPadding": { "value": { - "mobile": 16, - "desktop": 24 + "top": { + "mobile": 16, + "desktop": 24 + }, + "bottom": { + "mobile": 16, + "desktop": 24 + }, + "left": { + "mobile": 16, + "desktop": 24 + }, + "right": { + "mobile": 16, + "desktop": 24 + } }, "type": "spacing" }, diff --git a/tokens/tu.json b/tokens/tu.json index 0b7b8ad46f..644c0d3852 100644 --- a/tokens/tu.json +++ b/tokens/tu.json @@ -3372,8 +3372,22 @@ }, "cardDefaultPadding": { "value": { - "mobile": 16, - "desktop": 24 + "top": { + "mobile": 16, + "desktop": 24 + }, + "bottom": { + "mobile": 16, + "desktop": 24 + }, + "left": { + "mobile": 16, + "desktop": 24 + }, + "right": { + "mobile": 16, + "desktop": 24 + } }, "type": "spacing" }, diff --git a/tokens/vivo-new.json b/tokens/vivo-new.json index a84d3aab5b..54886b5a4f 100644 --- a/tokens/vivo-new.json +++ b/tokens/vivo-new.json @@ -3372,8 +3372,22 @@ }, "cardDefaultPadding": { "value": { - "mobile": 16, - "desktop": 24 + "top": { + "mobile": 16, + "desktop": 24 + }, + "bottom": { + "mobile": 16, + "desktop": 24 + }, + "left": { + "mobile": 16, + "desktop": 24 + }, + "right": { + "mobile": 16, + "desktop": 24 + } }, "type": "spacing" }, diff --git a/tokens/vivo.json b/tokens/vivo.json index 2209682cd8..7a11d425ac 100644 --- a/tokens/vivo.json +++ b/tokens/vivo.json @@ -3372,8 +3372,22 @@ }, "cardDefaultPadding": { "value": { - "mobile": 16, - "desktop": 24 + "top": { + "mobile": 16, + "desktop": 24 + }, + "bottom": { + "mobile": 16, + "desktop": 24 + }, + "left": { + "mobile": 16, + "desktop": 24 + }, + "right": { + "mobile": 16, + "desktop": 24 + } }, "type": "spacing" },