From 34f8ffa5c0f5dba9a89292486e748e05698bf46b Mon Sep 17 00:00:00 2001 From: Jon McClure Date: Sat, 20 Aug 2022 21:21:04 +0100 Subject: [PATCH] theming --- .storybook/Wrapper.svelte | 10 +++ .storybook/main.cjs | 2 +- .storybook/preview.js | 6 +- .storybook/preview.scss | 29 ++++--- src/components/Article/Article.svelte | 1 + src/components/BeforeAfter/BeforeAfter.svelte | 28 ++++--- src/components/Block/Block.svelte | 10 +-- .../FeaturePhoto/FeaturePhoto.svelte | 10 +-- .../GraphicBlock/GraphicBlock.svelte | 19 ++--- src/components/GraphicBlock/TextBlock.svelte | 4 +- src/components/Headline/Headline.svelte | 49 ++++++----- .../Headline/stories/docs/component.md | 1 - .../Headline/stories/docs/withByline.md | 1 - src/components/ReutersLogo/ReutersLogo.svelte | 4 +- .../SiteFooter/SiteFooter.stories.svelte | 19 +++-- src/components/SiteFooter/SiteFooter.svelte | 36 +------- .../SiteFooter/stories/docs/darkTheme.md | 34 ++------ .../SiteHeader/MobileMenu/index.svelte | 13 ++- .../SiteHeader/SiteHeader.stories.svelte | 18 ++-- src/components/SiteHeader/SiteHeader.svelte | 53 ++---------- .../SiteHeader/stories/docs/darkTheme.md | 34 ++------ src/components/Theme/@types/component.ts | 30 +++++++ src/components/Theme/Theme.stories.svelte | 82 +++++++++++-------- src/components/Theme/Theme.svelte | 49 ++++++----- .../Theme/stories/ThemedPage.svelte | 41 ++++++++++ .../Theme/stories/docs/component.md | 14 +++- .../Theme/stories/docs/customise.md | 16 ++++ .../Theme/stories/docs/inheritance.md | 17 ++++ src/components/Theme/themes/dark.js | 22 +++++ src/components/Theme/themes/light.js | 21 +++++ src/components/Theme/utils/merge.js | 24 ++++++ src/components/Video/Video.svelte | 13 +-- .../Visible/stories/docs/component.md | 2 +- .../component-guidelines.stories.mdx | 6 ++ .../guides/customising-with-scss.stories.mdx | 6 +- src/docs/scss/classes.stories.mdx | 12 --- src/docs/scss/css-variables.stories.mdx | 52 ++++++++++++ src/docs/scss/spacers.stories.mdx | 78 ++++++++++++++++++ src/index.js | 17 ++-- src/scss/fonts/_rules.scss | 8 +- src/scss/main.scss | 1 + src/scss/mixins/_body-text.scss | 36 ++++---- src/scss/mixins/_graphic.scss | 6 +- src/scss/mixins/_note-text.scss | 10 +-- src/scss/spacers/_rules.scss | 65 +++++++++++++++ src/scss/spacers/_variables.scss | 19 +++++ 46 files changed, 669 insertions(+), 359 deletions(-) create mode 100644 .storybook/Wrapper.svelte create mode 100644 src/components/Theme/@types/component.ts create mode 100644 src/components/Theme/stories/ThemedPage.svelte create mode 100644 src/components/Theme/stories/docs/customise.md create mode 100644 src/components/Theme/stories/docs/inheritance.md create mode 100644 src/components/Theme/themes/dark.js create mode 100644 src/components/Theme/themes/light.js create mode 100644 src/components/Theme/utils/merge.js delete mode 100644 src/docs/scss/classes.stories.mdx create mode 100644 src/docs/scss/css-variables.stories.mdx create mode 100644 src/docs/scss/spacers.stories.mdx create mode 100644 src/scss/spacers/_rules.scss create mode 100644 src/scss/spacers/_variables.scss diff --git a/.storybook/Wrapper.svelte b/.storybook/Wrapper.svelte new file mode 100644 index 00000000..2ed234b6 --- /dev/null +++ b/.storybook/Wrapper.svelte @@ -0,0 +1,10 @@ + + + +
+ +
+
\ No newline at end of file diff --git a/.storybook/main.cjs b/.storybook/main.cjs index 871bccbd..4fc3918e 100644 --- a/.storybook/main.cjs +++ b/.storybook/main.cjs @@ -17,7 +17,7 @@ module.exports = { }, "features": { "storyStoreV7": false, - "previewMdx2": true, + "previewMdx2": false, // Until this is fixed: https://github.com/storybookjs/storybook/issues/18556 }, typescript: { check: false, diff --git a/.storybook/preview.js b/.storybook/preview.js index 64f54904..b9d4325a 100644 --- a/.storybook/preview.js +++ b/.storybook/preview.js @@ -1,8 +1,8 @@ import '../src/scss/main.scss'; import './preview.scss'; -import Article from '../src/components/Article/Article.svelte'; import { PrismLight as SyntaxHighlighter } from 'react-syntax-highlighter'; +import Wrapper from './Wrapper.svelte'; import markdown from 'react-syntax-highlighter/dist/esm/languages/prism/markdown'; import scss from 'react-syntax-highlighter/dist/esm/languages/prism/scss'; import svelte from './svelte-highlighting.js'; @@ -41,6 +41,8 @@ export const parameters = { ], 'Layout', ['Intro', '*'], + 'Theming', + ['*'], 'Components', ['Intro', '*'], '*', @@ -65,4 +67,4 @@ export const parameters = { } }; -export const decorators = [() => ({ Component: Article })]; +export const decorators = [() => ({ Component: Wrapper })]; diff --git a/.storybook/preview.scss b/.storybook/preview.scss index 6c3d4cc1..6ff288d3 100644 --- a/.storybook/preview.scss +++ b/.storybook/preview.scss @@ -67,14 +67,21 @@ a.sbdocs-a { } -// .sbdocs { -// max-width: 800px; -// margin: 0 auto !important; -// display: block; -// } -// .sbdocs.sbdocs-pre { -// max-width: 1000px; -// } -// .sbdocs.sbdocs-wrapper, .sbdocs.sbdocs-content, .sbdocs.sbdocs-preview { -// max-width: 100%; -// } +code { + font-size: 90%; + margin-left: 2px; + margin-right: 2px; + background-color: #efefef; + padding: 2px 4px; +} + +img { + display: block; + margin-top: 1rem; + margin-bottom: 2rem; +} + +div.reset-article { + width: calc(100% + 30px); + margin-left: -15px; +} \ No newline at end of file diff --git a/src/components/Article/Article.svelte b/src/components/Article/Article.svelte index b1cdeef7..33dc5f83 100644 --- a/src/components/Article/Article.svelte +++ b/src/components/Article/Article.svelte @@ -55,6 +55,7 @@ margin: 0; padding: 0 15px; overflow-x: hidden; + background-color: var(--theme-colour-background, transparent); &.embedded { overflow: auto; } diff --git a/src/components/BeforeAfter/BeforeAfter.svelte b/src/components/BeforeAfter/BeforeAfter.svelte index 715b8908..67e90f2d 100644 --- a/src/components/BeforeAfter/BeforeAfter.svelte +++ b/src/components/BeforeAfter/BeforeAfter.svelte @@ -100,16 +100,16 @@ const move = (e) => { if (sliding && imgOffset) { const el = e.touches ? e.touches[0] : e; - const figureOffset = figure - ? parseInt(window.getComputedStyle(figure).marginLeft.slice(0, -2)) - : 0; + const figureOffset = figure ? + parseInt(window.getComputedStyle(figure).marginLeft.slice(0, -2)) : + 0; let x = el.pageX - figureOffset - imgOffset.left; x = - x < handleMargin - ? handleMargin - : x > w - handleMargin - ? w - handleMargin - : x; + x < handleMargin ? + handleMargin : + x > w - handleMargin ? + w - handleMargin : + x; offset = x / w; } }; @@ -229,7 +229,7 @@ {/if} diff --git a/src/components/Headline/stories/docs/component.md b/src/components/Headline/stories/docs/component.md index 36c5ac63..904afa54 100644 --- a/src/components/Headline/stories/docs/component.md +++ b/src/components/Headline/stories/docs/component.md @@ -9,6 +9,5 @@ Reuters Graphics headline hed="{'Reuters Graphics Interactive'}" dek="{'The beginning of a beautiful page'}" section="{'Global news'}" - sectionColour="{'orange'}" /> ``` diff --git a/src/components/Headline/stories/docs/withByline.md b/src/components/Headline/stories/docs/withByline.md index 3f59865d..1badf2df 100644 --- a/src/components/Headline/stories/docs/withByline.md +++ b/src/components/Headline/stories/docs/withByline.md @@ -9,7 +9,6 @@ Add a byline and dateline with `byline` and `dateline` named slots. hed="{'Reuters Graphics Interactive'}" dek="{'The beginning of a beautiful page'}" section="{'Global news'}" - sectionColour="{'orange'}" > By Peppa Pig diff --git a/src/components/ReutersLogo/ReutersLogo.svelte b/src/components/ReutersLogo/ReutersLogo.svelte index e218a9bf..0ba74528 100644 --- a/src/components/ReutersLogo/ReutersLogo.svelte +++ b/src/components/ReutersLogo/ReutersLogo.svelte @@ -15,8 +15,8 @@ > + style="fill: {logoColour};"> + style="fill: {textColour};"> diff --git a/src/components/SiteFooter/SiteFooter.stories.svelte b/src/components/SiteFooter/SiteFooter.stories.svelte index 9a704635..e75cead5 100644 --- a/src/components/SiteFooter/SiteFooter.stories.svelte +++ b/src/components/SiteFooter/SiteFooter.stories.svelte @@ -8,20 +8,18 @@ // @ts-ignore import customReferralsDocs from './stories/docs/customReferrals.md?raw'; - import SiteFooter, { themes } from './SiteFooter.svelte'; + import SiteFooter from './SiteFooter.svelte'; + import Theme from '../Theme/Theme.svelte'; import { withComponentDocs, - withStoryDocs, + withStoryDocs } from '$lib/docs/utils/withParams.js'; const meta = { title: 'Components/SiteFooter', component: SiteFooter, ...withComponentDocs(componentDocs), - argsTypes: { - themes: { control: { disable: true } }, - }, }; const customReferrals = [ @@ -54,11 +52,14 @@ +> +
+ + + +
+
- /** - * Exported preset themes you can use to customise the `theme` prop. - */ - export const themes = { - default: { - background: '#fff', - primary: '#404040', - rules: '#d0d0d0', - }, - dark: { - background: '#333', - primary: '#eee', - rules: '#999', - }, - }; - -