From e4b122a1ff58f313b3c9d0a2c570e93906077308 Mon Sep 17 00:00:00 2001 From: Kris Urbas <605420+krzysu@users.noreply.github.com> Date: Wed, 5 Feb 2025 11:10:16 +0100 Subject: [PATCH] feat: custom storybook theme for circle --- .../circle-demo-webapp/public/favicon.ico | Bin 16958 -> 15086 bytes .../circle-react-elements/.storybook/main.ts | 1 + .../.storybook/manager.ts | 28 ++++++++++++++++++ .../public/circle-logo-ondark.svg | 21 +++++++++++++ .../public/circle-logo.svg | 21 +++++++++++++ .../circle-react-elements/public/favicon.ico | Bin 0 -> 15086 bytes 6 files changed, 71 insertions(+) create mode 100644 packages/circle-react-elements/.storybook/manager.ts create mode 100644 packages/circle-react-elements/public/circle-logo-ondark.svg create mode 100644 packages/circle-react-elements/public/circle-logo.svg create mode 100644 packages/circle-react-elements/public/favicon.ico diff --git a/packages/circle-demo-webapp/public/favicon.ico b/packages/circle-demo-webapp/public/favicon.ico index 8830cf6821b354114848e6354889b8ecf6d2bc61..cd6bc40b27d736193685bc790a753151c1df6ff1 100644 GIT binary patch literal 15086 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 Uzs2le&oWL5!jU8PKCJKm0l5#4rT_o{ literal 16958 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 EKbET!0{{R3 diff --git a/packages/circle-react-elements/.storybook/main.ts b/packages/circle-react-elements/.storybook/main.ts index bf2a515..7d5f12e 100644 --- a/packages/circle-react-elements/.storybook/main.ts +++ b/packages/circle-react-elements/.storybook/main.ts @@ -25,6 +25,7 @@ const config: StorybookConfig = { name: getAbsolutePath('@storybook/react-vite'), options: {}, }, + staticDirs: ['../public'], core: { disableTelemetry: true, }, diff --git a/packages/circle-react-elements/.storybook/manager.ts b/packages/circle-react-elements/.storybook/manager.ts new file mode 100644 index 0000000..61d60ab --- /dev/null +++ b/packages/circle-react-elements/.storybook/manager.ts @@ -0,0 +1,28 @@ +import { addons } from '@storybook/manager-api'; +import { create } from '@storybook/theming'; + +// Set initial theme +addons.setConfig({ + theme: create({ + base: 'light', + brandTitle: 'Circle React Elements', + brandImage: './circle-logo.svg', + }), +}); + +// Listen for theme changes and update logo +addons.register('theme-switcher', (api) => { + const channel = api.getChannel(); + + if (channel) { + channel.on('DARK_MODE', (isDark) => { + const newTheme = create({ + base: isDark ? 'dark' : 'light', + brandTitle: 'Circle React Elements', + brandImage: isDark ? './circle-logo-ondark.svg' : './circle-logo.svg', + }); + + addons.setConfig({ theme: newTheme }); + }); + } +}); diff --git a/packages/circle-react-elements/public/circle-logo-ondark.svg b/packages/circle-react-elements/public/circle-logo-ondark.svg new file mode 100644 index 0000000..ec05714 --- /dev/null +++ b/packages/circle-react-elements/public/circle-logo-ondark.svg @@ -0,0 +1,21 @@ + + + logo/on dark + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/circle-react-elements/public/circle-logo.svg b/packages/circle-react-elements/public/circle-logo.svg new file mode 100644 index 0000000..bd66273 --- /dev/null +++ b/packages/circle-react-elements/public/circle-logo.svg @@ -0,0 +1,21 @@ + + + logo/logo + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/circle-react-elements/public/favicon.ico b/packages/circle-react-elements/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..cd6bc40b27d736193685bc790a753151c1df6ff1 GIT binary patch literal 15086 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 Uzs2le&oWL5!jU8PKCJKm0l5#4rT_o{ literal 0 HcmV?d00001