Skip to content

Commit

Permalink
Merge pull request #368 from danskernesdigitalebibliotek/DDFFORM-5-ar…
Browse files Browse the repository at this point in the history
…tikler-brodtekst

Rich text / WYSIWYG styling. DDFFORM-5.
  • Loading branch information
rasben authored Dec 12, 2023
2 parents b1889b4 + 116339d commit 7b18984
Show file tree
Hide file tree
Showing 7 changed files with 176 additions and 0 deletions.
1 change: 1 addition & 0 deletions base.scss
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@
@import "./src/stories/Library/image-credited/image-credited";
@import "./src/stories/Library/event-description/event-description";
@import "./src/stories/Library/link-with-icon/link-with-icon";
@import "./src/stories/Library/rich-text/rich-text";

// Autosuggest block styling needs to be loaded before the rest of the scss for autosuggest
@import "./src/stories/Blocks/autosuggest/autosuggest";
Expand Down
20 changes: 20 additions & 0 deletions src/stories/Library/rich-text/RichText.stories.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import { ComponentMeta, ComponentStory } from "@storybook/react";
import { withDesign } from "storybook-addon-designs";
import { RichText } from "./RichText";

export default {
title: "Library / Rich Text",
component: RichText,
decorators: [withDesign],
parameters: {
design: {
type: "figma",
url: "https://www.figma.com/file/Zx9GrkFA3l4ISvyZD2q0Qi/Designsystem?type=design&node-id=7880-59101&mode=design&t=dMcJmvsouH6erxzA-4",
},
layout: "centered",
},
} as ComponentMeta<typeof RichText>;

const Template: ComponentStory<typeof RichText> = () => <RichText />;

export const Default = Template.bind({});
50 changes: 50 additions & 0 deletions src/stories/Library/rich-text/RichText.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
export interface RichTextProps {
text: string;
}

export const RichText = () => {
return (
<div className="rich-text">
<h2>Tad survive ensnare joy mistake courtesy Bagshot Row.</h2>
<p>
<a href="#">Ligulas step drops both?</a> You shall not pass! Tender
Tender respectable success. Valar impressive unfriendly bloom scraped?
Branch hey-diddle-diddle <strong>pony troublell sleeping</strong>.
</p>
<h3>North valor overflowing sort Iáve mister kingly money?</h3>
<p>
Curse you and all the halflings! Deserted anytime Lake-town burned caves
balls. Smoked lthilien forbids Thrain?
</p>
<ul>
<li>Adamant.</li>
<li>
Ligulas step drops <em>both? You shall not pass!</em>. Valar
impressive unfriendly bloom scraped? Branch hey-diddle-diddle pony
troublell sleeping during jump Narsil.
</li>
<li>Witch-king.</li>
<li>Precious.</li>
<li>Gaffers!</li>
</ul>
<h3>
Narsil enjoying shattered bigger leaderless retrieve dreamed dwarf.
</h3>
<p>
Ravens wonder wanted runs me crawl gaining lots faster! Khazad-dum
surprise baby season ranks. I bid you all a very fond farewell.
</p>
<ol>
<li>Narsil.</li>
<li>Elros.</li>
<li>Arwen Evenstar.</li>
<li>
Ligulas step drops both? You shall not pass! Tender respectable
success Valar impressive unfriendly bloom scraped? Branch
hey-diddle-diddle pony troublell sleeping during jump Narsil.
</li>
<li>Bagginses?</li>
</ol>
</div>
);
};
77 changes: 77 additions & 0 deletions src/stories/Library/rich-text/rich-text.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
// This component is used for WYSIWYG content.
// E.g. we cannot control classes of the underlying elements, so in this case
// we will target HTML tags instead.
.rich-text {
@include typography($typo__rich-text-body);

// Setting a max-width to increase readability for sentences.
max-width: $layout__max-width--text;

a {
@extend %text-inline-link;
}

h2 {
@include typography($typo__h3);
}

h3 {
@include typography($typo__h4);
}

> * {
margin-bottom: $s-md;
}

ol > li,
ul > li {
$_dash-width: 21px;
$_dash-width--wide: 33px;

position: relative;
padding-left: $_dash-width + $s-md;
padding-bottom: $s-lg;

&::before {
position: absolute;
top: 0.8em;
left: 0;
width: $_dash-width;
text-align: center;
}

@include media-query__medium {
padding-left: $_dash-width--wide + $s-lg;

&::before {
width: $_dash-width--wide;
}
}
}

ul > li::before {
content: "";
height: 1px;
background-color: black;
}

ol {
counter-reset: list;

> li::before {
@include typography(
$typo__h4,
(
excludes: (
line-height,
),
)
);

font-weight: normal;
line-height: 0;
counter-increment: list;
content: counter(list) ".";
}
}
}
11 changes: 11 additions & 0 deletions src/styles/scss/tools/placeholder.scss
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,17 @@
max-width: 100%;
}

%text-inline-link {
text-decoration: underline solid black;
text-underline-offset: 0.3em;
transition: text-underline-offset 0.1s ease-in-out;

&:hover {
color: $color__text-primary-black;
text-underline-offset: 0.2em;
}
}

%link-tag {
@include typography($typo__body-placeholder);

Expand Down
2 changes: 2 additions & 0 deletions src/styles/scss/tools/variables.layout.scss
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
$layout__max-width: 1024px;
$layout__max-width--small: 768px;
$layout__max-width--large: 1440px;

$layout__max-width--text: 780px;
15 changes: 15 additions & 0 deletions src/styles/scss/tools/variables.typography.scss
Original file line number Diff line number Diff line change
Expand Up @@ -277,3 +277,18 @@ $typo__label: (
letter-spacing: 0.02em,
),
);

$typo__rich-text-body: (
mobile: (
font-family: $font__body,
font-style: normal,
font-weight: $font__weight--normal,
font-size: 16px,
line-height: 24px,
color: $color__text-secondary-gray,
),
medium: (
font-size: 18px,
line-height: 32px,
),
);

0 comments on commit 7b18984

Please sign in to comment.