From 7c2abfe6bbe93fe173f9ff26f3a7b55a5e83dd54 Mon Sep 17 00:00:00 2001 From: Max Kohler Date: Sun, 19 Oct 2025 12:54:13 +0200 Subject: [PATCH 01/12] Add files --- components/src/Breakout/Breakout.mdx | 12 ++++++++++++ components/src/Breakout/Breakout.stories.svelte | 15 +++++++++++++++ components/src/Breakout/Breakout.svelte | 17 +++++++++++++++++ components/src/Breakout/index.ts | 2 ++ components/src/index.js | 1 + 5 files changed, 47 insertions(+) create mode 100644 components/src/Breakout/Breakout.mdx create mode 100644 components/src/Breakout/Breakout.stories.svelte create mode 100644 components/src/Breakout/Breakout.svelte create mode 100644 components/src/Breakout/index.ts diff --git a/components/src/Breakout/Breakout.mdx b/components/src/Breakout/Breakout.mdx new file mode 100644 index 00000000..02c422b3 --- /dev/null +++ b/components/src/Breakout/Breakout.mdx @@ -0,0 +1,12 @@ +import { Story, Meta, Primary, Controls, Stories } from '@storybook/addon-docs/blocks'; + +import * as BreakoutStories from './Breakout.stories.svelte'; + + + +# Breakout + + + +## Usage +## Notes diff --git a/components/src/Breakout/Breakout.stories.svelte b/components/src/Breakout/Breakout.stories.svelte new file mode 100644 index 00000000..b49ff5c9 --- /dev/null +++ b/components/src/Breakout/Breakout.stories.svelte @@ -0,0 +1,15 @@ + + + + + diff --git a/components/src/Breakout/Breakout.svelte b/components/src/Breakout/Breakout.svelte new file mode 100644 index 00000000..b0d86375 --- /dev/null +++ b/components/src/Breakout/Breakout.svelte @@ -0,0 +1,17 @@ + + +
+ {#if children} + {@render children()} + {/if} +
+ + diff --git a/components/src/Breakout/index.ts b/components/src/Breakout/index.ts new file mode 100644 index 00000000..2bf3b6af --- /dev/null +++ b/components/src/Breakout/index.ts @@ -0,0 +1,2 @@ +import Breakout from './Breakout.svelte'; +export default Breakout; diff --git a/components/src/index.js b/components/src/index.js index ca214faa..6b0d383c 100644 --- a/components/src/index.js +++ b/components/src/index.js @@ -12,6 +12,7 @@ export { default as Note } from './Note/Note.svelte'; // Display export { default as Card } from './Card/Card.svelte'; export { default as Scroller } from './Scroller/Scroller.svelte'; +export { default as Breakout } from './Breakout/Breakout.svelte'; // Chart export { default as ChartHeader } from './ChartHeader/ChartHeader.svelte'; From 08166a285d9f3a74f67d89fbb323e601371850c1 Mon Sep 17 00:00:00 2001 From: Max Kohler Date: Thu, 23 Oct 2025 14:12:24 +0200 Subject: [PATCH 02/12] Block out DevContainer --- .../src/Breakout/Breakout.stories.svelte | 2 - .../src/ChartList/ChartList.stories.svelte | 5 +- components/src/ChartList/ChartList.svelte | 16 ++-- components/src/DevContainer/DevContainer.mdx | 33 ++++++++ .../DevContainer/DevContainer.stories.svelte | 35 ++++++++ .../src/DevContainer/DevContainer.svelte | 83 +++++++++++++++++++ .../src/DevContainer/SwrLogo.svg.svelte | 8 ++ components/src/DevContainer/index.ts | 2 + 8 files changed, 172 insertions(+), 12 deletions(-) create mode 100644 components/src/DevContainer/DevContainer.mdx create mode 100644 components/src/DevContainer/DevContainer.stories.svelte create mode 100644 components/src/DevContainer/DevContainer.svelte create mode 100644 components/src/DevContainer/SwrLogo.svg.svelte create mode 100644 components/src/DevContainer/index.ts diff --git a/components/src/Breakout/Breakout.stories.svelte b/components/src/Breakout/Breakout.stories.svelte index b49ff5c9..5c3e4e39 100644 --- a/components/src/Breakout/Breakout.stories.svelte +++ b/components/src/Breakout/Breakout.stories.svelte @@ -2,8 +2,6 @@ import { defineMeta } from '@storybook/addon-svelte-csf'; import DesignTokens from '../DesignTokens/DesignTokens.svelte'; - import Copy from './Breakout.svelte'; - const { Story } = defineMeta({ title: 'Display/Breakout', component: Copy diff --git a/components/src/ChartList/ChartList.stories.svelte b/components/src/ChartList/ChartList.stories.svelte index 4e9af52c..7dacecf3 100644 --- a/components/src/ChartList/ChartList.stories.svelte +++ b/components/src/ChartList/ChartList.stories.svelte @@ -8,7 +8,10 @@ const { Story } = defineMeta({ title: 'Meta/ChartList', - component: ChartList + component: ChartList, + parameters: { + layout: 'fullscreen' + } }); const testCharts = [ diff --git a/components/src/ChartList/ChartList.svelte b/components/src/ChartList/ChartList.svelte index bba653d7..f575ab8a 100644 --- a/components/src/ChartList/ChartList.svelte +++ b/components/src/ChartList/ChartList.svelte @@ -44,8 +44,8 @@ {/if} +

Nutze die "Embed URL" um Grafiken in Sophora einzubinden.

-

Nutze die "Embed URL" um Grafiken in Sophora einzubinden.

diff --git a/components/src/DevContainer/DevContainer.svelte b/components/src/DevContainer/DevContainer.svelte new file mode 100644 index 00000000..9741401d --- /dev/null +++ b/components/src/DevContainer/DevContainer.svelte @@ -0,0 +1,83 @@ + + +
+
+ +
+ + + +
+
+ {@render children?.()} +
+
+
+ + diff --git a/components/src/DevContainer/SwrLogo.svg.svelte b/components/src/DevContainer/SwrLogo.svg.svelte new file mode 100644 index 00000000..cc3b4686 --- /dev/null +++ b/components/src/DevContainer/SwrLogo.svg.svelte @@ -0,0 +1,8 @@ + + + + + diff --git a/components/src/DevContainer/index.ts b/components/src/DevContainer/index.ts new file mode 100644 index 00000000..2bf3b6af --- /dev/null +++ b/components/src/DevContainer/index.ts @@ -0,0 +1,2 @@ +import Breakout from './Breakout.svelte'; +export default Breakout; From 887330842f4a481dbd90a38d8c1f907ba6b62f56 Mon Sep 17 00:00:00 2001 From: Max Kohler Date: Thu, 23 Oct 2025 14:45:31 +0200 Subject: [PATCH 03/12] Iterate --- components/.storybook/preview.ts | 1 + components/src/Breakout/Breakout.mdx | 5 + .../src/Breakout/Breakout.stories.svelte | 29 +++++- components/src/Breakout/Breakout.svelte | 62 +++++++++++- components/src/Caption/Caption.stories.svelte | 4 +- .../ChartHeader/ChartHeader.stories.svelte | 6 +- components/src/Copy/Copy.stories.svelte | 2 +- components/src/DesignTokens/DesignTokens.mdx | 94 ++++++++----------- .../src/DevContainer/DevContainer.svelte | 60 ++++++++++-- .../src/Headline/Headline.stories.svelte | 2 +- components/src/Note/Note.stories.svelte | 2 +- .../src/Scroller/Scroller.stories.svelte | 2 +- 12 files changed, 193 insertions(+), 76 deletions(-) diff --git a/components/.storybook/preview.ts b/components/.storybook/preview.ts index 46a7ca60..81b35f72 100644 --- a/components/.storybook/preview.ts +++ b/components/.storybook/preview.ts @@ -19,6 +19,7 @@ const preview: Preview = { 'Design Tokens', 'Typography', ['Headline', 'Copy', 'Caption'], + 'Layout', 'Display', 'Chart', ['ChartHeader'], diff --git a/components/src/Breakout/Breakout.mdx b/components/src/Breakout/Breakout.mdx index 02c422b3..1d6355ba 100644 --- a/components/src/Breakout/Breakout.mdx +++ b/components/src/Breakout/Breakout.mdx @@ -6,6 +6,11 @@ import * as BreakoutStories from './Breakout.stories.svelte'; # Breakout +Utility component for breaking out of the [SWR.de](https://www.swr.de) grid system. + + + + ## Usage diff --git a/components/src/Breakout/Breakout.stories.svelte b/components/src/Breakout/Breakout.stories.svelte index 5c3e4e39..718e6429 100644 --- a/components/src/Breakout/Breakout.stories.svelte +++ b/components/src/Breakout/Breakout.stories.svelte @@ -1,13 +1,36 @@ - + + +
+
+
+ + diff --git a/components/src/Breakout/Breakout.svelte b/components/src/Breakout/Breakout.svelte index b0d86375..d2007d50 100644 --- a/components/src/Breakout/Breakout.svelte +++ b/components/src/Breakout/Breakout.svelte @@ -1,10 +1,11 @@
@@ -14,4 +15,61 @@
diff --git a/components/src/Caption/Caption.stories.svelte b/components/src/Caption/Caption.stories.svelte index 30047a3a..cff6bb61 100644 --- a/components/src/Caption/Caption.stories.svelte +++ b/components/src/Caption/Caption.stories.svelte @@ -11,7 +11,7 @@ - +
Björn Schittenhelm, Apotheker aus Holzgerlingen (Kreis Böblingen)
@@ -19,7 +19,7 @@
- +
Björn Schittenhelm, Apotheker aus Holzgerlingen (Kreis Böblingen) diff --git a/components/src/ChartHeader/ChartHeader.stories.svelte b/components/src/ChartHeader/ChartHeader.stories.svelte index 8f133e59..887929f1 100644 --- a/components/src/ChartHeader/ChartHeader.stories.svelte +++ b/components/src/ChartHeader/ChartHeader.stories.svelte @@ -20,7 +20,7 @@ }); }} > - + - + - + - +
Björn Schittenhelm, Apotheker aus Holzgerlingen (Kreis Böblingen), bedient derzeit diff --git a/components/src/DesignTokens/DesignTokens.mdx b/components/src/DesignTokens/DesignTokens.mdx index 794da0c6..710e4081 100644 --- a/components/src/DesignTokens/DesignTokens.mdx +++ b/components/src/DesignTokens/DesignTokens.mdx @@ -18,20 +18,6 @@ import * as NoteStories from '../Note/Note.stories.svelte'; # Design Tokens -## Table of Contents - -- [Usage](#usage) - - [Web](#web) - - [Figma](#figma) -- [Typography](#typography) - - [Sizes](#sizes) - - [Styles](#styles) -- [Colours](#colours) - - [Shades](#shades) - - [Linear scales](#linear-scales) - - [Categorical Scales](#categorical-scales) - - [Divergent Scales](#divergent-scales) - ## Usage ### Web @@ -40,7 +26,7 @@ The `` component makes colours, type sizes and other design tokens ```html @@ -48,9 +34,9 @@ The `` component makes colours, type sizes and other design tokens ``` @@ -66,47 +52,10 @@ const sampleScale = scaleThreshold([0, 10], tokens.scales.red_blue); The tokens on this page are available as a [Figma library](https://www.figma.com/design/Wrd7uUV3GxpNXXkM5ozuHk/Datalab-Design-Tokens?node-id=0-1&t=iOqDxhuMdvEyY8VK-1). This is enabled by default for any file in the [SWR Data Lab team](https://www.figma.com/files/1125823985461580916/team/1415988138343592768). -## Typography - -Type sizes and paragraph styles are designed to match the typography on [swr.de](https://www.swr.de/). **Styles** come with built-in settings for `line-height`, `letter-spacing`, etc. and should be preferred over using **sizes** directly. - -### Styles - -#### H2 - - - -#### Copy - - - -#### Caption - - - -#### Note - - - -### Sizes - - { - return size; - }) - .reverse()} -/> - ## Colours ### Semantics -Light / Dark - {[ 'textPrimary', @@ -146,3 +95,38 @@ Light / Dark ); })} + +## Typography + +Type sizes and paragraph styles are designed to match the typography on [swr.de](https://www.swr.de/). **Styles** come with built-in settings for `line-height`, `letter-spacing`, etc. and should be preferred over using **sizes** directly. + +### Styles + +#### H2 + + + +#### Copy + + + +#### Caption + + + +#### Note + + + +### Sizes + + { + return size; + }) + .reverse()} +/> \ No newline at end of file diff --git a/components/src/DevContainer/DevContainer.svelte b/components/src/DevContainer/DevContainer.svelte index 9741401d..49af0eee 100644 --- a/components/src/DevContainer/DevContainer.svelte +++ b/components/src/DevContainer/DevContainer.svelte @@ -5,25 +5,42 @@ interface DevContainerProps { showHeader?: boolean; showNav?: boolean; + showPlayer?: boolean; showBreadcrumbs?: boolean; children?: Snippet; } let { showHeader = true, showNav = true, + showPlayer = true, showBreadcrumbs = true, children }: DevContainerProps = $props();
-
- -
- - + {#if showHeader} +
+ +
+ {/if} + {#if showNav} + + {/if} + {#if showBreadcrumbs} + + {/if} + {#if showPlayer} +
+ +
+ + +
+
+ {/if}
@@ -33,6 +50,9 @@
diff --git a/components/src/Headline/Headline.svelte b/components/src/Headline/Headline.svelte index 91de28be..b2d00154 100644 --- a/components/src/Headline/Headline.svelte +++ b/components/src/Headline/Headline.svelte @@ -8,9 +8,7 @@

- {#if children} - {@render children()} - {/if} + {@render children?.()}

diff --git a/components/src/Breakout/Breakout.svelte b/components/src/Breakout/Breakout.svelte index d2007d50..3aa0f9fa 100644 --- a/components/src/Breakout/Breakout.svelte +++ b/components/src/Breakout/Breakout.svelte @@ -8,10 +8,8 @@ let { layout = 'medium', children }: BreakoutProps = $props(); -
- {#if children} - {@render children()} - {/if} +
+ {@render children?.()}
From f80c9d3d6c73f3718542f91bf2525883887d2ea1 Mon Sep 17 00:00:00 2001 From: Max Kohler Date: Fri, 24 Oct 2025 17:34:14 +0200 Subject: [PATCH 09/12] Iterare Breakout --- components/src/Breakout/Breakout.svelte | 4 ++++ .../src/DevContainer/DevContainer.svelte | 19 ++++++++++++++++--- .../src/DevContainer/GridInspector.svelte | 4 ++++ 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/components/src/Breakout/Breakout.svelte b/components/src/Breakout/Breakout.svelte index f58d8e88..3a6c1ca6 100644 --- a/components/src/Breakout/Breakout.svelte +++ b/components/src/Breakout/Breakout.svelte @@ -50,6 +50,10 @@ width: calc(var(--column-width) * 12 + var(--column-gap) * 11); margin-left: calc((var(--column-width) * -1 + var(--column-gap) * -1)); } + @media (min-width: 1024px) { + width: calc(var(--column-width) * 12 + var(--column-gap) * 11); + margin-left: calc((var(--column-width) * -2 + var(--column-gap) * -2)); + } @media (min-width: 1440px) { width: calc(var(--column-width) * 10 + var(--column-gap) * 11); margin-left: calc((var(--column-width) * -2 + var(--column-gap) * -3)); diff --git a/components/src/DevContainer/DevContainer.svelte b/components/src/DevContainer/DevContainer.svelte index cc6d9438..3bbae2af 100644 --- a/components/src/DevContainer/DevContainer.svelte +++ b/components/src/DevContainer/DevContainer.svelte @@ -250,6 +250,9 @@ @media (min-width: 640px) { margin: 0 40px; } + @media (min-width: 1024px) { + margin: 0 48px; + } @media (min-width: 1440px) { margin: 0 auto; } @@ -262,6 +265,9 @@ @media (min-width: 640px) { grid-column: 2 / 12; } + @media (min-width: 1024px) { + grid-column: 3 / 11; + } @media (min-width: 1440px) { grid-column: 4/10; } @@ -274,6 +280,9 @@ @media (min-width: 640px) { grid-column: 2 / 12; } + @media (min-width: 1024px) { + grid-column: 3 / 11; + } @media (min-width: 1440px) { grid-column: 4 / 10; } @@ -281,14 +290,15 @@ .article-eyebrow { font-size: 0.875rem; font-weight: 500; - @media (min-width: 1440px) { + @media (min-width: 1024px) { font-size: 1.25rem; } } .article-title { font-size: 2rem; line-height: 1.3; - @media (min-width: 1440px) { + @media (min-width: 1024px) { + line-height: 1.25; font-size: 3rem; } } @@ -297,7 +307,7 @@ hyphens: auto; font-size: 1.25rem; line-height: 1.25; - @media (min-width: 1440px) { + @media (min-width: 1024px) { font-size: 1.5rem; } } @@ -368,6 +378,9 @@ @media (min-width: 640px) { grid-column: 2 / 12; } + @media (min-width: 1024px) { + grid-column: 3 / 11; + } @media (min-width: 1440px) { grid-column: 4/10; } diff --git a/components/src/DevContainer/GridInspector.svelte b/components/src/DevContainer/GridInspector.svelte index 1e390822..fc66d8d4 100644 --- a/components/src/DevContainer/GridInspector.svelte +++ b/components/src/DevContainer/GridInspector.svelte @@ -4,7 +4,9 @@ } const { target }: GridInspectorProps = $props(); + let w = $state(0); let cols = $derived.by(() => { + w; if (!target) return []; return window.getComputedStyle(target).gridTemplateColumns.split(' '); }); @@ -16,6 +18,8 @@ {/each}
+ +