@codecademy/gamut-styles

20.0.220.0.3-alpha.212edd.0
~

Modified (12 files)

Index: package/dist/variance/config.js
===================================================================
--- package/dist/variance/config.js
+++ package/dist/variance/config.js
@@ -449,8 +449,11 @@
     },
     resolveProperty: getPropertyMode,
     transform: transformSize
   },
+  // Intentionally unscaled: scaled variance props are token-only and reject raw numbers,
+  // which would break the numeric escape hatch and Tip's z-index arithmetic. Use the numeric
+  // `zIndices` token object instead (e.g. zIndex={zIndices.modal}).
   zIndex: {
     property: 'zIndex'
   },
   opacity: {
Index: package/dist/themes/core.js
===================================================================
--- package/dist/themes/core.js
+++ package/dist/themes/core.js
@@ -1,6 +1,6 @@
 import { createTheme } from '@codecademy/variance';
-import { borderRadii, containerQueries, corePalette, elements, fontFamily, fontSize, fontWeight, lineHeight, mediaQueries, spacing } from '../variables';
+import { borderRadii, containerQueries, corePalette, elements, fontFamily, fontSize, fontWeight, lineHeight, mediaQueries, spacing, zIndices } from '../variables';
 
 /**
  *  @description  This is the core theme that all other Codecademy themes are extended from
  * and is the only theme that gamut components are typed to. This ensures that gamut components
@@ -17,9 +17,10 @@
   fontFamily,
   lineHeight,
   fontWeight,
   spacing,
-  elements
+  elements,
+  zIndices
 }).addColors(corePalette).addColorModes('light', {
   light: {
     text: {
       _: 'navy-800',
@@ -128,5 +129,5 @@
   colors
 }) => ({
   1: `1px solid ${colors['border-primary']}`,
   2: `2px solid ${colors['border-primary']}`
-})).createScaleVariables('elements').addName('core').build();
\ No newline at end of file
+})).createScaleVariables('elements').createScaleVariables('zIndices').addName('core').build();
\ No newline at end of file
Index: package/dist/variables/elements.js
===================================================================
--- package/dist/variables/elements.js
+++ package/dist/variables/elements.js
@@ -1,11 +1,13 @@
+import { zIndices } from './zIndices';
 export const elements = {
   headerHeight: {
     base: '4rem',
     md: '5rem'
   },
   /**
-   * Semi-arbitrary z-index for global page headers.
-   * @remarks PLEASE talk to web platform before adding new z-index constants!
+   * z-index for global page headers. Aliases the `appBar` token from the `zIndices`
+   * scale so consumers still reading `elements.headerZ` stay in sync with the scale.
+   * Prefer `zIndex="appBar"` in new code.
    */
-  headerZ: 15
+  headerZ: zIndices.appBar
 };
\ No newline at end of file
Index: package/dist/variables/index.js
===================================================================
--- package/dist/variables/index.js
+++ package/dist/variables/index.js
@@ -3,5 +3,6 @@
 export * from './elements';
 export * from './responsive';
 export * from './spacing';
 export * from './timing';
-export * from './typography';
\ No newline at end of file
+export * from './typography';
+export * from './zIndices';
\ No newline at end of file
Index: package/package.json
===================================================================
--- package/package.json
+++ package/package.json
@@ -1,11 +1,11 @@
 {
   "name": "@codecademy/gamut-styles",
   "description": "Styleguide & Component library for codecademy.com",
-  "version": "20.0.2",
+  "version": "20.0.3-alpha.212edd.0",
   "author": "Jake Hiller <[email protected]>",
   "dependencies": {
-    "@codecademy/variance": "0.26.1",
+    "@codecademy/variance": "0.26.2-alpha.212edd.0",
     "@emotion/is-prop-valid": "^1.1.0",
     "framer-motion": "^11.18.0",
     "get-nonce": "^1.0.0",
     "polished": "^4.1.2"
Index: package/dist/themes/admin.d.ts
===================================================================
--- package/dist/themes/admin.d.ts
+++ package/dist/themes/admin.d.ts
@@ -33,15 +33,21 @@
     sm: string;
     md: string;
     lg: string;
     xl: string;
-}> & import("@codecademy/variance/dist/createTheme/types").Merge<Record<"elements", Record<"elements", import("@codecademy/variance").KeyAsVariable<{
-    readonly headerHeight: {
-        readonly base: "4rem";
-        readonly md: "5rem";
-    };
-    readonly headerZ: 15;
-}, "elements">>> & import("@codecademy/variance/dist/createTheme/types").Merge<import("@codecademy/variance/dist/createTheme/types").MergeTheme<import("@codecademy/variance/dist/createTheme/types").MergeTheme<Record<"breakpoints", {
+}> & import("@codecademy/variance/dist/createTheme/types").Merge<Record<"zIndices", Record<"zIndices", import("@codecademy/variance").KeyAsVariable<{
+    readonly underlay: -100;
+    readonly base: 0;
+    readonly foreground: 100;
+    readonly portal: 200;
+    readonly widget: 300;
+    readonly appBar: 400;
+    readonly flyout: 500;
+    readonly modal: 600;
+    readonly popover: 700;
+    readonly toaster: 800;
+    readonly tooltip: 900;
+}, "zIndices">>> & import("@codecademy/variance/dist/createTheme/types").Merge<import("@codecademy/variance/dist/createTheme/types").MergeTheme<import("@codecademy/variance/dist/createTheme/types").MergeTheme<import("@codecademy/variance/dist/createTheme/types").MergeTheme<Record<"breakpoints", {
     c_base: string;
     c_xs: string;
     c_sm: string;
     c_md: string;
@@ -119,10 +125,23 @@
         readonly headerHeight: {
             readonly base: "4rem";
             readonly md: "5rem";
         };
-        readonly headerZ: 15;
+        readonly headerZ: 400;
     };
+    zIndices: {
+        readonly underlay: -100;
+        readonly base: 0;
+        readonly foreground: 100;
+        readonly portal: 200;
+        readonly widget: 300;
+        readonly appBar: 400;
+        readonly flyout: 500;
+        readonly modal: 600;
+        readonly popover: 700;
+        readonly toaster: 800;
+        readonly tooltip: 900;
+    };
 } & import("@codecademy/variance/dist/createTheme/types").PrivateThemeKeys, Record<"colors", import("@codecademy/variance").KeyAsVariable<import("@codecademy/variance").LiteralPaths<{
     readonly beige: "#FFF0E5";
     readonly blue: "#1557FF";
     readonly green: "#008A27";
@@ -543,9 +562,15 @@
     }, "-">) => string;
 }>, Record<"borders", import("@codecademy/variance").LiteralPaths<{
     1: string;
     2: string;
-}, "-">>>, import("@codecademy/variance/dist/createTheme/types").PrivateThemeKeys> & import("@codecademy/variance/dist/createTheme/types").PrivateThemeKeys, Record<"name", string>> & import("@codecademy/variance/dist/createTheme/types").PrivateThemeKeys, {
+}, "-">>>, import("@codecademy/variance/dist/createTheme/types").PrivateThemeKeys, Record<"elements", Record<"elements", import("@codecademy/variance").KeyAsVariable<{
+    readonly headerHeight: {
+        readonly base: "4rem";
+        readonly md: "5rem";
+    };
+    readonly headerZ: 400;
+}, "elements">>>>, import("@codecademy/variance/dist/createTheme/types").PrivateThemeKeys> & import("@codecademy/variance/dist/createTheme/types").PrivateThemeKeys, Record<"name", string>> & import("@codecademy/variance/dist/createTheme/types").PrivateThemeKeys, {
     colors: import("@codecademy/variance").KeyAsVariable<import("@codecademy/variance").LiteralPaths<{
         primary: {
             _: "blue-500";
             hover: "blue-400";
Index: package/dist/themes/core.d.ts
===================================================================
--- package/dist/themes/core.d.ts
+++ package/dist/themes/core.d.ts
@@ -14,15 +14,21 @@
     sm: string;
     md: string;
     lg: string;
     xl: string;
-}> & import("@codecademy/variance/dist/createTheme/types").Merge<Record<"elements", Record<"elements", import("@codecademy/variance").KeyAsVariable<{
-    readonly headerHeight: {
-        readonly base: "4rem";
-        readonly md: "5rem";
-    };
-    readonly headerZ: 15;
-}, "elements">>> & import("@codecademy/variance/dist/createTheme/types").Merge<import("@codecademy/variance/dist/createTheme/types").MergeTheme<import("@codecademy/variance/dist/createTheme/types").MergeTheme<Record<"breakpoints", {
+}> & import("@codecademy/variance/dist/createTheme/types").Merge<Record<"zIndices", Record<"zIndices", import("@codecademy/variance").KeyAsVariable<{
+    readonly underlay: -100;
+    readonly base: 0;
+    readonly foreground: 100;
+    readonly portal: 200;
+    readonly widget: 300;
+    readonly appBar: 400;
+    readonly flyout: 500;
+    readonly modal: 600;
+    readonly popover: 700;
+    readonly toaster: 800;
+    readonly tooltip: 900;
+}, "zIndices">>> & import("@codecademy/variance/dist/createTheme/types").Merge<import("@codecademy/variance/dist/createTheme/types").MergeTheme<import("@codecademy/variance/dist/createTheme/types").MergeTheme<import("@codecademy/variance/dist/createTheme/types").MergeTheme<Record<"breakpoints", {
     c_base: string;
     c_xs: string;
     c_sm: string;
     c_md: string;
@@ -100,10 +106,23 @@
         readonly headerHeight: {
             readonly base: "4rem";
             readonly md: "5rem";
         };
-        readonly headerZ: 15;
+        readonly headerZ: 400;
     };
+    zIndices: {
+        readonly underlay: -100;
+        readonly base: 0;
+        readonly foreground: 100;
+        readonly portal: 200;
+        readonly widget: 300;
+        readonly appBar: 400;
+        readonly flyout: 500;
+        readonly modal: 600;
+        readonly popover: 700;
+        readonly toaster: 800;
+        readonly tooltip: 900;
+    };
 } & import("@codecademy/variance/dist/createTheme/types").PrivateThemeKeys, Record<"colors", import("@codecademy/variance").KeyAsVariable<import("@codecademy/variance").LiteralPaths<{
     readonly beige: "#FFF0E5";
     readonly blue: "#1557FF";
     readonly green: "#008A27";
@@ -524,8 +543,14 @@
     }, "-">) => string;
 }>, Record<"borders", import("@codecademy/variance").LiteralPaths<{
     1: string;
     2: string;
-}, "-">>>, import("@codecademy/variance/dist/createTheme/types").PrivateThemeKeys> & import("@codecademy/variance/dist/createTheme/types").PrivateThemeKeys, Record<"name", string>> & import("@codecademy/variance/dist/createTheme/types").PrivateThemeKeys;
+}, "-">>>, import("@codecademy/variance/dist/createTheme/types").PrivateThemeKeys, Record<"elements", Record<"elements", import("@codecademy/variance").KeyAsVariable<{
+    readonly headerHeight: {
+        readonly base: "4rem";
+        readonly md: "5rem";
+    };
+    readonly headerZ: 400;
+}, "elements">>>>, import("@codecademy/variance/dist/createTheme/types").PrivateThemeKeys> & import("@codecademy/variance/dist/createTheme/types").PrivateThemeKeys, Record<"name", string>> & import("@codecademy/variance/dist/createTheme/types").PrivateThemeKeys;
 export type CoreThemeShape = typeof coreTheme;
 export interface CoreTheme extends CoreThemeShape {
 }
Index: package/dist/variables/elements.d.ts
===================================================================
--- package/dist/variables/elements.d.ts
+++ package/dist/variables/elements.d.ts
@@ -3,9 +3,10 @@
         readonly base: "4rem";
         readonly md: "5rem";
     };
     /**
-     * Semi-arbitrary z-index for global page headers.
-     * @remarks PLEASE talk to web platform before adding new z-index constants!
+     * z-index for global page headers. Aliases the `appBar` token from the `zIndices`
+     * scale so consumers still reading `elements.headerZ` stay in sync with the scale.
+     * Prefer `zIndex="appBar"` in new code.
      */
-    readonly headerZ: 15;
+    readonly headerZ: 400;
 };
Index: package/dist/variables/index.d.ts
===================================================================
--- package/dist/variables/index.d.ts
+++ package/dist/variables/index.d.ts
@@ -4,4 +4,5 @@
 export * from './responsive';
 export * from './spacing';
 export * from './timing';
 export * from './typography';
+export * from './zIndices';
Index: package/dist/themes/lxStudio.d.ts
===================================================================
--- package/dist/themes/lxStudio.d.ts
+++ package/dist/themes/lxStudio.d.ts
@@ -77,20 +77,45 @@
         md: string;
         lg: string;
         xl: string;
     };
+    zIndices: Record<"zIndices", import("@codecademy/variance").KeyAsVariable<{
+        readonly underlay: -100;
+        readonly base: 0;
+        readonly foreground: 100;
+        readonly portal: 200;
+        readonly widget: 300;
+        readonly appBar: 400;
+        readonly flyout: 500;
+        readonly modal: 600;
+        readonly popover: 700;
+        readonly toaster: 800;
+        readonly tooltip: 900;
+    }, "zIndices">> & {
+        readonly underlay: -100;
+        readonly base: 0;
+        readonly foreground: 100;
+        readonly portal: 200;
+        readonly widget: 300;
+        readonly appBar: 400;
+        readonly flyout: 500;
+        readonly modal: 600;
+        readonly popover: 700;
+        readonly toaster: 800;
+        readonly tooltip: 900;
+    };
     elements: Record<"elements", import("@codecademy/variance").KeyAsVariable<{
         readonly headerHeight: {
             readonly base: "4rem";
             readonly md: "5rem";
         };
-        readonly headerZ: 15;
+        readonly headerZ: 400;
     }, "elements">> & {
         readonly headerHeight: {
             readonly base: "4rem";
             readonly md: "5rem";
         };
-        readonly headerZ: 15;
+        readonly headerZ: 400;
     };
     fontSize: {
         readonly 64: string;
         readonly 44: string;
@@ -119,10 +144,10 @@
         readonly 48: string;
         readonly 64: string;
         readonly 96: string;
     };
-    _variables: import("@codecademy/variance/dist/createTheme/types").Assign<Record<string, import("@codecademy/variance").CSSObject>, Record<string, import("@codecademy/variance").CSSObject>> & Record<string, import("@codecademy/variance").CSSObject>;
-    _tokens: import("@codecademy/variance/dist/createTheme/types").Assign<Record<string | number, any>, Record<string | number, any>> & Record<string | number, any>;
+    _variables: import("@codecademy/variance/dist/createTheme/types").Assign<import("@codecademy/variance/dist/createTheme/types").Assign<Record<string, import("@codecademy/variance").CSSObject>, Record<string, import("@codecademy/variance").CSSObject>>, Record<string, import("@codecademy/variance").CSSObject>> & Record<string, import("@codecademy/variance").CSSObject>;
+    _tokens: import("@codecademy/variance/dist/createTheme/types").Assign<import("@codecademy/variance/dist/createTheme/types").Assign<Record<string | number, any>, Record<string | number, any>>, Record<string | number, any>> & Record<string | number, any>;
     colors: import("@codecademy/variance/dist/createTheme/types").Assign<import("@codecademy/variance").KeyAsVariable<import("@codecademy/variance").LiteralPaths<{
         readonly beige: "#FFF0E5";
         readonly blue: "#1557FF";
         readonly green: "#008A27";
Index: package/dist/themes/percipio.d.ts
===================================================================
--- package/dist/themes/percipio.d.ts
+++ package/dist/themes/percipio.d.ts
@@ -61,20 +61,45 @@
         md: string;
         lg: string;
         xl: string;
     };
+    zIndices: Record<"zIndices", import("@codecademy/variance").KeyAsVariable<{
+        readonly underlay: -100;
+        readonly base: 0;
+        readonly foreground: 100;
+        readonly portal: 200;
+        readonly widget: 300;
+        readonly appBar: 400;
+        readonly flyout: 500;
+        readonly modal: 600;
+        readonly popover: 700;
+        readonly toaster: 800;
+        readonly tooltip: 900;
+    }, "zIndices">> & {
+        readonly underlay: -100;
+        readonly base: 0;
+        readonly foreground: 100;
+        readonly portal: 200;
+        readonly widget: 300;
+        readonly appBar: 400;
+        readonly flyout: 500;
+        readonly modal: 600;
+        readonly popover: 700;
+        readonly toaster: 800;
+        readonly tooltip: 900;
+    };
     elements: Record<"elements", import("@codecademy/variance").KeyAsVariable<{
         readonly headerHeight: {
             readonly base: "4rem";
             readonly md: "5rem";
         };
-        readonly headerZ: 15;
+        readonly headerZ: 400;
     }, "elements">> & {
         readonly headerHeight: {
             readonly base: "4rem";
             readonly md: "5rem";
         };
-        readonly headerZ: 15;
+        readonly headerZ: 400;
     };
     borderRadii: {
         none: string;
         sm: string;
@@ -111,10 +136,10 @@
         readonly 48: string;
         readonly 64: string;
         readonly 96: string;
     };
-    _variables: import("@codecademy/variance/dist/createTheme/types").Assign<Record<string, import("@codecademy/variance").CSSObject>, Record<string, import("@codecademy/variance").CSSObject>> & Record<string, import("@codecademy/variance").CSSObject>;
-    _tokens: import("@codecademy/variance/dist/createTheme/types").Assign<Record<string | number, any>, Record<string | number, any>> & Record<string | number, any>;
+    _variables: import("@codecademy/variance/dist/createTheme/types").Assign<import("@codecademy/variance/dist/createTheme/types").Assign<Record<string, import("@codecademy/variance").CSSObject>, Record<string, import("@codecademy/variance").CSSObject>>, Record<string, import("@codecademy/variance").CSSObject>> & Record<string, import("@codecademy/variance").CSSObject>;
+    _tokens: import("@codecademy/variance/dist/createTheme/types").Assign<import("@codecademy/variance/dist/createTheme/types").Assign<Record<string | number, any>, Record<string | number, any>>, Record<string | number, any>> & Record<string | number, any>;
     colors: import("@codecademy/variance/dist/createTheme/types").Assign<import("@codecademy/variance").KeyAsVariable<import("@codecademy/variance").LiteralPaths<{
         readonly beige: "#FFF0E5";
         readonly blue: "#1557FF";
         readonly green: "#008A27";
Index: package/dist/themes/platform.d.ts
===================================================================
--- package/dist/themes/platform.d.ts
+++ package/dist/themes/platform.d.ts
@@ -49,15 +49,21 @@
     sm: string;
     md: string;
     lg: string;
     xl: string;
-}> & import("@codecademy/variance/dist/createTheme/types").Merge<Record<"elements", Record<"elements", import("@codecademy/variance").KeyAsVariable<{
-    readonly headerHeight: {
-        readonly base: "4rem";
-        readonly md: "5rem";
-    };
-    readonly headerZ: 15;
-}, "elements">>> & import("@codecademy/variance/dist/createTheme/types").Merge<import("@codecademy/variance/dist/createTheme/types").MergeTheme<import("@codecademy/variance/dist/createTheme/types").MergeTheme<Record<"breakpoints", {
+}> & import("@codecademy/variance/dist/createTheme/types").Merge<Record<"zIndices", Record<"zIndices", import("@codecademy/variance").KeyAsVariable<{
+    readonly underlay: -100;
+    readonly base: 0;
+    readonly foreground: 100;
+    readonly portal: 200;
+    readonly widget: 300;
+    readonly appBar: 400;
+    readonly flyout: 500;
+    readonly modal: 600;
+    readonly popover: 700;
+    readonly toaster: 800;
+    readonly tooltip: 900;
+}, "zIndices">>> & import("@codecademy/variance/dist/createTheme/types").Merge<import("@codecademy/variance/dist/createTheme/types").MergeTheme<import("@codecademy/variance/dist/createTheme/types").MergeTheme<import("@codecademy/variance/dist/createTheme/types").MergeTheme<Record<"breakpoints", {
     c_base: string;
     c_xs: string;
     c_sm: string;
     c_md: string;
@@ -135,10 +141,23 @@
         readonly headerHeight: {
             readonly base: "4rem";
             readonly md: "5rem";
         };
-        readonly headerZ: 15;
+        readonly headerZ: 400;
     };
+    zIndices: {
+        readonly underlay: -100;
+        readonly base: 0;
+        readonly foreground: 100;
+        readonly portal: 200;
+        readonly widget: 300;
+        readonly appBar: 400;
+        readonly flyout: 500;
+        readonly modal: 600;
+        readonly popover: 700;
+        readonly toaster: 800;
+        readonly tooltip: 900;
+    };
 } & import("@codecademy/variance/dist/createTheme/types").PrivateThemeKeys, Record<"colors", import("@codecademy/variance").KeyAsVariable<import("@codecademy/variance").LiteralPaths<{
     readonly beige: "#FFF0E5";
     readonly blue: "#1557FF";
     readonly green: "#008A27";
@@ -559,9 +578,15 @@
     }, "-">) => string;
 }>, Record<"borders", import("@codecademy/variance").LiteralPaths<{
     1: string;
     2: string;
-}, "-">>>, import("@codecademy/variance/dist/createTheme/types").PrivateThemeKeys> & import("@codecademy/variance/dist/createTheme/types").PrivateThemeKeys, Record<"name", string>> & import("@codecademy/variance/dist/createTheme/types").PrivateThemeKeys, Record<"colors", import("@codecademy/variance").KeyAsVariable<import("@codecademy/variance").LiteralPaths<{
+}, "-">>>, import("@codecademy/variance/dist/createTheme/types").PrivateThemeKeys, Record<"elements", Record<"elements", import("@codecademy/variance").KeyAsVariable<{
+    readonly headerHeight: {
+        readonly base: "4rem";
+        readonly md: "5rem";
+    };
+    readonly headerZ: 400;
+}, "elements">>>>, import("@codecademy/variance/dist/createTheme/types").PrivateThemeKeys> & import("@codecademy/variance/dist/createTheme/types").PrivateThemeKeys, Record<"name", string>> & import("@codecademy/variance/dist/createTheme/types").PrivateThemeKeys, Record<"colors", import("@codecademy/variance").KeyAsVariable<import("@codecademy/variance").LiteralPaths<{
     readonly lightBeige: "#FFFBF8";
     readonly gold: "#8A7300";
     readonly teal: "#006D82";
     readonly purple: "#B3CCFF";