diff --git a/.storybook/preview.tsx b/.storybook/preview.tsx
index 86ab6ab374..d7d37a71e7 100644
--- a/.storybook/preview.tsx
+++ b/.storybook/preview.tsx
@@ -6,19 +6,91 @@ import docJson from "../documentation.json";
setCompodocJson(docJson);
const decorator = componentWrapperDecorator(
- (story) => `
-
- ${story}
-
-
- ${story}
-
-
- `
+ (story) => {
+ return `
+
+
+ ${story}
+
+
+
+
+ ${story}
+
+
+
+
+ ${story}
+
+
+
+
+ ${story}
+
+
+
+
+
+
+
+ `;
+ },
+ ({ globals }) => {
+ return { theme: `${globals["theme"]}` };
+ }
);
const preview: Preview = {
decorators: [decorator],
+ globalTypes: {
+ theme: {
+ description: "Global theme for components",
+ defaultValue: "both",
+ toolbar: {
+ title: "Theme",
+ icon: "circlehollow",
+ items: [
+ {
+ title: "Light & Dark",
+ value: "both",
+ icon: "sidebyside",
+ },
+ {
+ title: "Light",
+ value: "light",
+ icon: "sun",
+ },
+ {
+ title: "Dark",
+ value: "dark",
+ icon: "moon",
+ },
+ {
+ title: "Nord",
+ value: "nord",
+ left: "⛰",
+ },
+ {
+ title: "Solarized",
+ value: "solarized",
+ left: "☯",
+ },
+ ],
+ dynamicTitle: true,
+ },
+ },
+ },
parameters: {
actions: { argTypesRegex: "^on[A-Z].*" },
controls: {
diff --git a/libs/components/src/stories/colors.mdx b/libs/components/src/stories/colors.mdx
index d77c726b26..4fe5ad12ce 100644
--- a/libs/components/src/stories/colors.mdx
+++ b/libs/components/src/stories/colors.mdx
@@ -105,4 +105,6 @@ Below are all the permited colors. Please consult design before considering addi
diff --git a/libs/components/src/tw-theme.css b/libs/components/src/tw-theme.css
index ba4efe60e7..2a59fe2e93 100644
--- a/libs/components/src/tw-theme.css
+++ b/libs/components/src/tw-theme.css
@@ -80,4 +80,82 @@
--tw-ring-offset-color: #1f242e;
}
+.theme_nord {
+ --color-transparent-hover: rgb(255 255 255 / 0.12);
+
+ --color-background: 67 76 94;
+ --color-background-alt: 59 66 82;
+ --color-background-alt2: 76 86 106;
+ --color-background-alt3: 76 86 106;
+ --color-background-alt4: 67 76 94;
+
+ --color-primary-300: 108 153 166;
+ --color-primary-500: 136 192 208;
+ --color-primary-700: 160 224 242;
+
+ --color-secondary-100: 76 86 106;
+ --color-secondary-300: 94 105 125;
+ --color-secondary-500: 216 222 233;
+ --color-secondary-700: 255 255 255;
+
+ --color-success-500: 163 190 140;
+ --color-success-700: 144 170 122;
+
+ --color-danger-500: 228 129 139;
+ --color-danger-700: 191 97 106;
+
+ --color-warning-500: 235 203 139;
+ --color-warning-700: 210 181 121;
+
+ --color-info-500: 129 161 193;
+ --color-info-700: 94 129 172;
+
+ --color-text-main: 229 233 240;
+ --color-text-muted: 216 222 233;
+ --color-text-contrast: 46 52 64;
+ --color-text-alt2: 255 255 255;
+ --color-text-code: 219 177 211;
+
+ --tw-ring-offset-color: #434c5e;
+}
+
+.theme_solarized {
+ --color-transparent-hover: rgb(255 255 255 / 0.12);
+
+ --color-background: 0 43 54;
+ --color-background-alt: 7 54 66;
+ --color-background-alt2: 31 72 87;
+ --color-background-alt3: 31 72 87;
+ --color-background-alt4: 0 43 54;
+
+ --color-primary-300: 42 161 152;
+ --color-primary-500: 133 153 0;
+ --color-primary-700: 192 203 123;
+
+ --color-secondary-100: 31 72 87;
+ --color-secondary-300: 101 123 131;
+ --color-secondary-500: 131 148 150;
+ --color-secondary-700: 238 232 213;
+
+ --color-success-500: 133 153 0;
+ --color-success-700: 192 203 123;
+
+ --color-danger-500: 220 50 47;
+ --color-danger-700: 223 135 134;
+
+ --color-warning-500: 181 137 0;
+ --color-warning-700: 220 189 92;
+
+ --color-info-500: 133 153 0;
+ --color-info-700: 192 203 123;
+
+ --color-text-main: 253 246 227;
+ --color-text-muted: 147 161 161;
+ --color-text-contrast: 0 43 54;
+ --color-text-alt2: 255 255 255;
+ --color-text-code: 240 141 199;
+
+ --tw-ring-offset-color: #002b36;
+}
+
@import "./search/search.component.css";