hr-design-system-handlebars 1.11.9 → 1.11.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.babelrc.json +14 -0
- package/.storybook/main.js +34 -52
- package/.storybook/preview-head.html +4 -1
- package/.storybook/preview.js +25 -35
- package/CHANGELOG.md +30 -0
- package/dist/assets/index.css +11 -3
- package/dist/views/components/base/load_dynamic.hbs +3 -0
- package/dist/views/components/teaser/ticker/teaser_ticker.hbs +29 -0
- package/package.json +20 -13
- package/src/assets/css/custom-utilities.css +3 -3
- package/src/assets/fixtures/teaser/teaser_ticker.inc.json +121 -0
- package/src/assets/fixtures/teaser/ticker_teaser_standard_100.json +25 -0
- package/src/assets/images/sportschau-image-5708_v-16to9.jpg +0 -0
- package/src/assets/images/sportschau-image-5708_v-16to9__medium.jpg +0 -0
- package/src/assets/images/sportschau-image-5708_v-16to9__retina.jpg +0 -0
- package/src/assets/images/sportschau-image-5708_v-16to9__small.jpg +0 -0
- package/src/assets/images/sportschau-image-5708_v-1to1.jpg +0 -0
- package/src/assets/images/sportschau-image-5708_v-1to1__large.jpg +0 -0
- package/src/assets/images/sportschau-image-5708_v-1to1__medium.jpg +0 -0
- package/src/assets/images/sportschau-image-5708_v-1to1__small.jpg +0 -0
- package/src/stories/BrandColors.data.js +42 -0
- package/src/stories/BrandColors.mdx +25 -0
- package/src/stories/{Colors.stories.mdx → Colors.data.js} +2 -18
- package/src/stories/Colors.mdx +19 -0
- package/src/stories/Example.mdx +56 -0
- package/src/stories/Example.stories.js +57 -0
- package/src/stories/{Fixtures.stories.mdx → Fixtures.mdx} +3 -5
- package/src/stories/{InstallAndUpdate.stories.mdx → InstallAndUpdate.mdx} +0 -2
- package/src/stories/Introduction.mdx +3 -0
- package/src/stories/{SvgOptimization.stories.mdx → SvgOptimization.mdx} +0 -2
- package/src/stories/{Typography.stories.mdx → Typography.mdx} +13 -14
- package/src/stories/{conventions-and-datastructure.stories.mdx → conventions-and-datastructure.mdx} +7 -9
- package/src/stories/views/components/Button.mdx +30 -0
- package/src/stories/views/components/Button_.stories.js +77 -0
- package/src/stories/views/components/base/load_dynamic.hbs +3 -0
- package/src/stories/views/components/event/calendar/{event_calendar_components.stories.mdx → event_calendar_components.mdx} +31 -87
- package/src/stories/views/components/event/calendar/event_calendar_components.stories.js +129 -0
- package/src/stories/views/components/geoTag/geoTag.mdx +32 -0
- package/src/stories/views/components/geoTag/geoTag.stories.js +35 -0
- package/src/stories/views/components/grid/grid.mdx +210 -0
- package/src/stories/views/components/grid/grid.stories.js +148 -0
- package/src/stories/views/components/label/label.mdx +54 -0
- package/src/stories/views/components/label/label.stories.js +183 -0
- package/src/stories/views/components/page/page.data.js +17 -0
- package/src/stories/views/components/page/page.mdx +110 -0
- package/src/stories/views/components/page/page.stories.js +50 -0
- package/src/stories/views/components/page/page_pagination.data.js +8 -0
- package/src/stories/views/components/page/page_pagination.mdx +8 -0
- package/src/stories/views/components/page/page_pagination.stories.js +34 -0
- package/src/stories/views/components/page/page_player.mdx +21 -0
- package/src/stories/views/components/page/page_player.stories.js +34 -0
- package/src/stories/views/components/site_header/{header.stories.mdx → header.mdx} +218 -152
- package/src/stories/views/components/site_header/header.stories.js +62 -0
- package/src/stories/views/components/teaser/cluster/teaser_cluster.mdx +32 -0
- package/src/stories/views/components/teaser/cluster/teaser_cluster.stories.js +146 -0
- package/src/stories/views/components/teaser/components/teaser_byline.mdx +97 -0
- package/src/stories/views/components/teaser/components/teaser_byline.stories.js +30 -0
- package/src/stories/views/components/teaser/components/teaser_heading.mdx +96 -0
- package/src/stories/views/components/teaser/components/teaser_heading.stories.js +158 -0
- package/src/stories/views/components/teaser/components/teaser_text.mdx +36 -0
- package/src/stories/views/components/teaser/components/teaser_text.stories.js +74 -0
- package/src/stories/views/components/teaser/components/teaser_title.mdx +42 -0
- package/src/stories/views/components/teaser/components/teaser_title.stories.js +85 -0
- package/src/stories/views/components/teaser/components/teaser_topline.mdx +29 -0
- package/src/stories/views/components/teaser/components/teaser_topline.stories.js +27 -0
- package/src/stories/views/components/teaser/content_nav/teaser_content_nav.mdx +54 -0
- package/src/stories/views/components/teaser/content_nav/{teaser_content_nav.stories.mdx → teaser_content_nav.stories.js} +80 -61
- package/src/stories/views/components/teaser/fixtures/ticker_teaser_standard_100.json +1 -0
- package/src/stories/views/components/teaser/group_teaser/group.mdx +18 -0
- package/src/stories/views/components/teaser/group_teaser/group.stories.js +85 -0
- package/src/stories/views/components/teaser/podcast/podcast.mdx +11 -0
- package/src/stories/views/components/teaser/podcast/{podcast.stories.mdx → podcast.stories.js} +50 -39
- package/src/stories/views/components/teaser/podcast/podcast_subscribe_button.mdx +10 -0
- package/src/stories/views/components/teaser/podcast/podcast_subscribe_button.stories.js +51 -0
- package/src/stories/views/components/teaser/tabbox/teaser_tabbox.mdx +10 -0
- package/src/stories/views/components/teaser/tabbox/teaser_tabbox.stories.js +40 -0
- package/src/stories/views/components/teaser/teaser_alternativ.mdx +76 -0
- package/src/stories/views/components/teaser/teaser_alternativ.stories.js +126 -0
- package/src/stories/views/components/teaser/teaser_alternativ_av.mdx +75 -0
- package/src/stories/views/components/teaser/teaser_alternativ_av.stories.js +111 -0
- package/src/stories/views/components/teaser/teaser_event_calendar.mdx +57 -0
- package/src/stories/views/components/teaser/teaser_event_calendar.stories.js +92 -0
- package/src/stories/views/components/teaser/teaser_indextext.mdx +35 -0
- package/src/stories/views/components/teaser/teaser_indextext.stories.js +85 -0
- package/src/stories/views/components/teaser/teaser_logic/teaser_logic.mdx +23 -0
- package/src/stories/views/components/teaser/teaser_logic/teaser_logic.stories.js +36 -0
- package/src/stories/views/components/teaser/teaser_poster.mdx +95 -0
- package/src/stories/views/components/teaser/teaser_poster.stories.js +67 -0
- package/src/stories/views/components/teaser/teaser_stage.mdx +15 -0
- package/src/stories/views/components/teaser/teaser_stage.stories.js +60 -0
- package/src/stories/views/components/teaser/teaser_standard.mdx +129 -0
- package/src/stories/views/components/teaser/teaser_standard.stories.js +166 -0
- package/src/stories/views/components/teaser/teaser_standard_av.mdx +38 -0
- package/src/stories/views/components/teaser/teaser_standard_av.stories.js +117 -0
- package/src/stories/views/components/teaser/teaser_standard_event.mdx +103 -0
- package/src/stories/views/components/teaser/teaser_standard_event.stories.js +119 -0
- package/src/stories/views/components/teaser/ticker/teaser_ticker.hbs +29 -0
- package/src/stories/views/components/teaser/ticker/teaser_ticker.mdx +10 -0
- package/src/stories/views/components/teaser/ticker/teaser_ticker.stories.js +34 -0
- package/.storybook/withThemeDecorator.js +0 -12
- package/src/stories/BrandColors.stories.mdx +0 -39
- package/src/stories/Example.stories.mdx +0 -93
- package/src/stories/Introduction.stories.mdx +0 -211
- package/src/stories/views/components/Button.stories.mdx +0 -82
- package/src/stories/views/components/geoTag/geoTag.stories.mdx +0 -61
- package/src/stories/views/components/grid/grid.stories.mdx +0 -275
- package/src/stories/views/components/label/label.stories.mdx +0 -200
- package/src/stories/views/components/page/page.stories.mdx +0 -144
- package/src/stories/views/components/page/page_pagination.stories.mdx +0 -36
- package/src/stories/views/components/page/page_player.stories.mdx +0 -43
- package/src/stories/views/components/teaser/cluster/teaser_cluster.stories.mdx +0 -97
- package/src/stories/views/components/teaser/components/teaser_byline.stories.mdx +0 -78
- package/src/stories/views/components/teaser/components/teaser_heading.stories.mdx +0 -219
- package/src/stories/views/components/teaser/components/teaser_text.stories.mdx +0 -94
- package/src/stories/views/components/teaser/components/teaser_title.stories.mdx +0 -124
- package/src/stories/views/components/teaser/components/teaser_topline.stories.mdx +0 -63
- package/src/stories/views/components/teaser/group_teaser/group.stories.mdx +0 -85
- package/src/stories/views/components/teaser/podcast/podcast_subscribe_button.stories.mdx +0 -52
- package/src/stories/views/components/teaser/tabbox/teaser_tabbox.stories.mdx +0 -39
- package/src/stories/views/components/teaser/teaser_alternativ.stories.mdx +0 -163
- package/src/stories/views/components/teaser/teaser_alternativ_av.stories.mdx +0 -142
- package/src/stories/views/components/teaser/teaser_event_calendar.stories.mdx +0 -131
- package/src/stories/views/components/teaser/teaser_indextext.stories.mdx +0 -111
- package/src/stories/views/components/teaser/teaser_logic/teaser_logic.stories.mdx +0 -39
- package/src/stories/views/components/teaser/teaser_poster.stories.mdx +0 -130
- package/src/stories/views/components/teaser/teaser_stage.stories.mdx +0 -53
- package/src/stories/views/components/teaser/teaser_standard.stories.mdx +0 -170
- package/src/stories/views/components/teaser/teaser_standard_av.stories.mdx +0 -95
- package/src/stories/views/components/teaser/teaser_standard_event.stories.mdx +0 -150
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
import { ArgsTable, Meta, Story, Canvas, Preview } from '@storybook/addon-docs'
|
|
2
|
-
import teaser from './teaser_poster.hbs'
|
|
3
|
-
import teserPosterLg from './fixtures/teaser_poster_lg.json'
|
|
4
|
-
import teserPosterMd from './fixtures/teaser_poster_md.json'
|
|
5
|
-
import teserPosterMdLabel from './fixtures/teaser_poster_md_label.json'
|
|
6
|
-
|
|
7
|
-
<Meta
|
|
8
|
-
title="Komponenten/Teaser/Poster"
|
|
9
|
-
parameters={{
|
|
10
|
-
layout: 'fullscreen',
|
|
11
|
-
chromatic: {
|
|
12
|
-
diffThreshold: 0.5,
|
|
13
|
-
},
|
|
14
|
-
}}
|
|
15
|
-
argTypes={{
|
|
16
|
-
teaserSize: {
|
|
17
|
-
control: {
|
|
18
|
-
type: 'select',
|
|
19
|
-
options: ['50', '33'],
|
|
20
|
-
},
|
|
21
|
-
description: 'Teaser Größe',
|
|
22
|
-
table: {
|
|
23
|
-
defaultValue: {
|
|
24
|
-
summary: '50',
|
|
25
|
-
},
|
|
26
|
-
},
|
|
27
|
-
},
|
|
28
|
-
}}
|
|
29
|
-
decorators={[
|
|
30
|
-
(Story) => {
|
|
31
|
-
return `<div class="grid grid-page"><div class="grid grid-cols-12 py-6 col-full gap-x-6 gap-y-6 sm:px-9.5 sm:col-main">
|
|
32
|
-
${Story()}
|
|
33
|
-
</div></div>`
|
|
34
|
-
},
|
|
35
|
-
]}
|
|
36
|
-
/>
|
|
37
|
-
|
|
38
|
-
export const Template = (args, { globals: { customConditionalToolbar } }) => {
|
|
39
|
-
// You can either use a function to create DOM elements or use a plain html string!
|
|
40
|
-
// return `<div>${label}</div>`;
|
|
41
|
-
let brand =
|
|
42
|
-
undefined !== customConditionalToolbar ? customConditionalToolbar['brands'] : 'hessenschau'
|
|
43
|
-
return teaser({ brand, ...args })
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
# Poster-Teaser
|
|
47
|
-
|
|
48
|
-
## Beschreibung
|
|
49
|
-
|
|
50
|
-
Der Poster-Teaser besteht aus 3 übereinanderliegenden Ebenen.
|
|
51
|
-
|
|
52
|
-
Unterste-Ebene: <b>Bild (1:1)</b><br/>
|
|
53
|
-
Mittlere Ebene: <b>Dachzeile und Titel</b> + <b>Farbverlauf</b> von schwarz nach transparent<br/>
|
|
54
|
-
Oberste Ebene (verlinkt): <b>Zusatztext</b> ("zum Artikel" o.ä.)<br/>
|
|
55
|
-
|
|
56
|
-
Alle Ebenen erstrecken sich über die komplette Größe des 1:1-Bilds.
|
|
57
|
-
|
|
58
|
-
Alle enthaltenen Inhalte sind aria-hidden. Für screenreader wurde ein extra span eingebaut mit class="sr-only".<br/>
|
|
59
|
-
Inhalt dieses spans: Zusatztext + ": " + Titel
|
|
60
|
-
|
|
61
|
-
Der Poster-Teaser soll nur als 50%- bzw. 33%-Teaser verwendet werden. Diese Restriktion muss cms-seitig implementiert werden.
|
|
62
|
-
|
|
63
|
-
## Sub-Komponenten
|
|
64
|
-
|
|
65
|
-
Die Poster-Teaser-Komponente inkludiert folgende Komponenten:
|
|
66
|
-
|
|
67
|
-
<ul>
|
|
68
|
-
<li>
|
|
69
|
-
components/base/image/<b>responsive_image</b>
|
|
70
|
-
</li>
|
|
71
|
-
<li>
|
|
72
|
-
components/base/<b>link</b>
|
|
73
|
-
</li>
|
|
74
|
-
<li>
|
|
75
|
-
components/teaser/components/<b>teaser_heading</b>
|
|
76
|
-
</li>
|
|
77
|
-
</ul>
|
|
78
|
-
|
|
79
|
-
## Props
|
|
80
|
-
|
|
81
|
-
Die Poster-Teaser-Komponente benötigt die folgenden json-Daten (enthalten im Teaser-Json im Objekt <b>logicItem.includeModel</b>):
|
|
82
|
-
|
|
83
|
-
<ul>
|
|
84
|
-
<li>
|
|
85
|
-
<b>topline</b>
|
|
86
|
-
</li>
|
|
87
|
-
<li>
|
|
88
|
-
<b>title</b>
|
|
89
|
-
</li>
|
|
90
|
-
<li>
|
|
91
|
-
<b>teaserSize</b>
|
|
92
|
-
</li>
|
|
93
|
-
<li>
|
|
94
|
-
<b>teaserType</b>
|
|
95
|
-
</li>
|
|
96
|
-
<li>
|
|
97
|
-
<b>teaserImage</b>
|
|
98
|
-
</li>
|
|
99
|
-
<li>
|
|
100
|
-
<b>content.imageVariant</b>
|
|
101
|
-
</li>
|
|
102
|
-
<li>
|
|
103
|
-
<b>isSerifHeading</b>
|
|
104
|
-
</li>
|
|
105
|
-
<li>
|
|
106
|
-
<b>link.readMoreText.readMoreLong</b>
|
|
107
|
-
</li>
|
|
108
|
-
</ul>
|
|
109
|
-
|
|
110
|
-
## Verwendung
|
|
111
|
-
|
|
112
|
-
Die Poster-Teaser-Komponente wird in handlebars wie folgt eingebaut:
|
|
113
|
-
|
|
114
|
-
```html
|
|
115
|
-
{{> components/teaser/teaser_poster}}
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
<Preview withToolbar>
|
|
119
|
-
<Story name="Poster 50" args={teserPosterLg.logicItem.includeModel}>
|
|
120
|
-
{Template.bind({})}
|
|
121
|
-
</Story>
|
|
122
|
-
<Story name="Poster 33" args={teserPosterMd.logicItem.includeModel}>
|
|
123
|
-
{Template.bind({})}
|
|
124
|
-
</Story>
|
|
125
|
-
<Story name="Poster 33 mit Label" args={teserPosterMdLabel.logicItem.includeModel}>
|
|
126
|
-
{Template.bind({})}
|
|
127
|
-
</Story>
|
|
128
|
-
</Preview>
|
|
129
|
-
|
|
130
|
-
<ArgsTable story="Poster 50" />
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { ArgsTable, Meta, Story, Canvas, Preview } from '@storybook/addon-docs'
|
|
2
|
-
import teaser from './teaser_stage.hbs'
|
|
3
|
-
import stageTeaserData from './fixtures/stage_teaser.json'
|
|
4
|
-
import stageTeaserWideData from './fixtures/stage_teaser_wide.json'
|
|
5
|
-
import stageTeaserDataWithEventtag from './fixtures/stage_teaser_eventtag.json'
|
|
6
|
-
import stageTeaserDataForProgram from './fixtures/stage_teaser_program.json'
|
|
7
|
-
|
|
8
|
-
<Meta
|
|
9
|
-
title="Komponenten/Teaser/Stage"
|
|
10
|
-
parameters={{
|
|
11
|
-
layout: 'fullscreen',
|
|
12
|
-
chromatic: {
|
|
13
|
-
viewports: [360, 768, 1024],
|
|
14
|
-
diffThreshold: 0.5
|
|
15
|
-
},
|
|
16
|
-
}}
|
|
17
|
-
argTypes={{}}
|
|
18
|
-
decorators={[
|
|
19
|
-
(Story) => {
|
|
20
|
-
return `<div class="grid grid-page"><div class="col-full gap-x-6 gap-y-6">
|
|
21
|
-
${Story()}
|
|
22
|
-
</div></div>`
|
|
23
|
-
},
|
|
24
|
-
]}
|
|
25
|
-
/>
|
|
26
|
-
|
|
27
|
-
export const Template = (args, { globals: { customConditionalToolbar } }) => {
|
|
28
|
-
// You can either use a function to create DOM elements or use a plain html string!
|
|
29
|
-
// return `<div>${label}</div>`;
|
|
30
|
-
let brand =
|
|
31
|
-
undefined !== customConditionalToolbar ? customConditionalToolbar['brands'] : 'hessenschau'
|
|
32
|
-
return teaser({ brand, ...args })
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
# Stage-Teaser
|
|
36
|
-
|
|
37
|
-
## Beschreibung
|
|
38
|
-
|
|
39
|
-
<Preview withToolbar>
|
|
40
|
-
<b>Stage Teaser</b>
|
|
41
|
-
<Story name="Stage Teaser" args={stageTeaserData}>
|
|
42
|
-
{Template.bind({})}
|
|
43
|
-
</Story>
|
|
44
|
-
<Story name="Stage Teaser Wide" args={stageTeaserWideData}>
|
|
45
|
-
{Template.bind({})}
|
|
46
|
-
</Story>
|
|
47
|
-
<Story name="Stage Teaser with Event" args={stageTeaserDataWithEventtag}>
|
|
48
|
-
{Template.bind({})}
|
|
49
|
-
</Story>
|
|
50
|
-
<Story name="Stage Teaser Program" args={stageTeaserDataForProgram}>
|
|
51
|
-
{Template.bind({})}
|
|
52
|
-
</Story>
|
|
53
|
-
</Preview>
|
|
@@ -1,170 +0,0 @@
|
|
|
1
|
-
import { ArgsTable, Meta, Story, Canvas, Preview } from '@storybook/addon-docs'
|
|
2
|
-
import teaser from './teaser_standard.hbs'
|
|
3
|
-
import teaserHeroSerifWithLabel from './fixtures/teaser_standard_hero_serif_label.json'
|
|
4
|
-
import teaserHeroSerifWithComments from './fixtures/teaser_standard_hero_serif_comments.json'
|
|
5
|
-
import teaserHeroLink from './fixtures/teaser_standard_hero_serif_link.json'
|
|
6
|
-
import teaserHeroSerif from './fixtures/teaser_standard_hero_serif.json'
|
|
7
|
-
import teaser100Serif from './fixtures/teaser_standard_100_serif.json'
|
|
8
|
-
import teaser50Serif from './fixtures/teaser_standard_50_serif.json'
|
|
9
|
-
import teaser50SerifWithoutTeaserImage from './fixtures/teaser_standard_without_teaserimage_50_serif.json'
|
|
10
|
-
import teaser33Serif from './fixtures/teaser_standard_33_serif.json'
|
|
11
|
-
import teaser25Serif from './fixtures/teaser_standard_25_serif.json'
|
|
12
|
-
import teaser25SerifWithoutTeaserimage from './fixtures/teaser_standard_without_teaserimage_25_serif.json'
|
|
13
|
-
import teaser100Download from './fixtures/teaser_standard_100_serif_download.json'
|
|
14
|
-
import teaser100Link from './fixtures/teaser_standard_100_serif_link.json'
|
|
15
|
-
import teaser100Program from './fixtures/teaser_standard_100_serif_program.json'
|
|
16
|
-
import teaser50Link from './fixtures/teaser_standard_50_serif_link.json'
|
|
17
|
-
import teaser33Link from './fixtures/teaser_standard_33_serif_link.json'
|
|
18
|
-
import teaser25Link from './fixtures/teaser_standard_25_serif_link.json'
|
|
19
|
-
import teaser33LongGeotag from './fixtures/teaser_standard_33_long_geotag.json'
|
|
20
|
-
|
|
21
|
-
<Meta
|
|
22
|
-
title="Komponenten/Teaser/Standard"
|
|
23
|
-
parameters={{
|
|
24
|
-
layout: 'fullscreen',
|
|
25
|
-
chromatic: {
|
|
26
|
-
viewports: [360, 1024],
|
|
27
|
-
diffThreshold: 0.5,
|
|
28
|
-
},
|
|
29
|
-
}}
|
|
30
|
-
argTypes={{
|
|
31
|
-
teaserSize: {
|
|
32
|
-
control: {
|
|
33
|
-
type: 'select',
|
|
34
|
-
options: ['hero', '100', '50', '33', '25'],
|
|
35
|
-
},
|
|
36
|
-
description: 'Teaser Größe',
|
|
37
|
-
table: {
|
|
38
|
-
defaultValue: {
|
|
39
|
-
summary: 'hero',
|
|
40
|
-
},
|
|
41
|
-
},
|
|
42
|
-
},
|
|
43
|
-
}}
|
|
44
|
-
decorators={[
|
|
45
|
-
(Story) => {
|
|
46
|
-
return `<div class="grid grid-page"><div class="grid grid-cols-12 py-6 col-full gap-x-6 gap-y-6 sm:px-9.5 sm:col-main">
|
|
47
|
-
${Story()}
|
|
48
|
-
</div></div>`
|
|
49
|
-
},
|
|
50
|
-
]}
|
|
51
|
-
/>
|
|
52
|
-
|
|
53
|
-
export const Template = (args, { globals: { customConditionalToolbar } }) => {
|
|
54
|
-
// You can either use a function to create DOM elements or use a plain html string!
|
|
55
|
-
// return `<div>${label}</div>`;
|
|
56
|
-
let brand =
|
|
57
|
-
undefined !== customConditionalToolbar ? customConditionalToolbar['brands'] : 'hessenschau'
|
|
58
|
-
return teaser({ brand, ...args })
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
# Standard-Teaser
|
|
62
|
-
|
|
63
|
-
## Beschreibung
|
|
64
|
-
|
|
65
|
-
Der Standard-Teaser besteht aus 2 Hauptelemente: <b>Bild</b> und <b>Text</b> (Label, Dachzeile, Titel, Teasertext, Zusatzinformationen)
|
|
66
|
-
|
|
67
|
-
<b>Standard Hero:</b> <br />
|
|
68
|
-
Desktop = Text unter dem Bild <br />
|
|
69
|
-
Mobile = Text unter dem Bild <b>ohne</b> Teasertext <br />
|
|
70
|
-
|
|
71
|
-
<b>Standard 100%, 50%, 33%:</b> <br />
|
|
72
|
-
Desktop = Text unter dem Bild <br />
|
|
73
|
-
Mobile = Text unter dem Bild ohne Teasertext <br />
|
|
74
|
-
|
|
75
|
-
<b>Standard 25%:</b> <br />
|
|
76
|
-
Desktop = Text unter dem Bild ohne Teasertext <br />
|
|
77
|
-
Mobile = Bild(1x1) neben Text ohne Teasertext <br />
|
|
78
|
-
|
|
79
|
-
## Sub-Komponenten
|
|
80
|
-
|
|
81
|
-
Die Standard-Teaser-Komponente inkludiert folgende Komponenten:
|
|
82
|
-
|
|
83
|
-
<ul>
|
|
84
|
-
<li>
|
|
85
|
-
components/teaser/components/<b>teaser_lead</b>
|
|
86
|
-
</li>
|
|
87
|
-
<li>
|
|
88
|
-
components/base/<b>link</b>
|
|
89
|
-
</li>
|
|
90
|
-
<li>
|
|
91
|
-
components/teaser/components/<b>teaser_heading</b>
|
|
92
|
-
</li>
|
|
93
|
-
<li>
|
|
94
|
-
components/teaser/components/<b>teaser_text</b>
|
|
95
|
-
</li>
|
|
96
|
-
<li>
|
|
97
|
-
components/teaser/components/<b>teaser_byline</b>
|
|
98
|
-
</li>
|
|
99
|
-
</ul>
|
|
100
|
-
|
|
101
|
-
## Verwendung
|
|
102
|
-
|
|
103
|
-
Die Standard-Teaser-Komponente wird in handlebars wie folgt eingebaut:
|
|
104
|
-
|
|
105
|
-
```html
|
|
106
|
-
{{> components/teaser/teaser_standard}}
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
<Preview withToolbar>
|
|
110
|
-
<Story name="Standard Hero" args={teaserHeroSerif.logicItem.includeModel}>
|
|
111
|
-
{Template.bind({})}
|
|
112
|
-
</Story>
|
|
113
|
-
<Story name="Standard Hero mit Label" args={teaserHeroSerifWithLabel.logicItem.includeModel}>
|
|
114
|
-
{Template.bind({})}
|
|
115
|
-
</Story>
|
|
116
|
-
<Story
|
|
117
|
-
name="Standard Hero Mit Kommentaren"
|
|
118
|
-
args={teaserHeroSerifWithComments.logicItem.includeModel}
|
|
119
|
-
>
|
|
120
|
-
{Template.bind({})}
|
|
121
|
-
</Story>
|
|
122
|
-
<Story name="Standard Hero mit externem Link" args={teaserHeroLink.logicItem.includeModel}>
|
|
123
|
-
{Template.bind({})}
|
|
124
|
-
</Story>
|
|
125
|
-
<Story name="Standard 100" args={teaser100Serif.logicItem.includeModel}>
|
|
126
|
-
{Template.bind({})}
|
|
127
|
-
</Story>
|
|
128
|
-
<Story name="Standard 100 mit externem Link" args={teaser100Link.logicItem.includeModel}>
|
|
129
|
-
{Template.bind({})}
|
|
130
|
-
</Story>
|
|
131
|
-
<Story name="Standard 100 mit Sendungsdokument" args={teaser100Program.logicItem.includeModel}>
|
|
132
|
-
{Template.bind({})}
|
|
133
|
-
</Story>
|
|
134
|
-
<Story name="Standard 50" args={teaser50Serif.logicItem.includeModel}>
|
|
135
|
-
{Template.bind({})}
|
|
136
|
-
</Story>
|
|
137
|
-
<Story
|
|
138
|
-
name="Standard 50 ohne Teaserbild"
|
|
139
|
-
args={teaser50SerifWithoutTeaserImage.logicItem.includeModel}
|
|
140
|
-
>
|
|
141
|
-
{Template.bind({})}
|
|
142
|
-
</Story>
|
|
143
|
-
<Story name="Standard 50 mit externem Link" args={teaser50Link.logicItem.includeModel}>
|
|
144
|
-
{Template.bind({})}
|
|
145
|
-
</Story>
|
|
146
|
-
<Story name="Standard 33" args={teaser33Serif.logicItem.includeModel}>
|
|
147
|
-
{Template.bind({})}
|
|
148
|
-
</Story>
|
|
149
|
-
<Story name="Standard 33 mit externem Link" args={teaser33Link.logicItem.includeModel}>
|
|
150
|
-
{Template.bind({})}
|
|
151
|
-
</Story>
|
|
152
|
-
<Story name="Standard 25" args={teaser25Serif.logicItem.includeModel}>
|
|
153
|
-
{Template.bind({})}
|
|
154
|
-
</Story>
|
|
155
|
-
<Story
|
|
156
|
-
name="Standard 25 ohne Teaserbild"
|
|
157
|
-
args={teaser25SerifWithoutTeaserimage.logicItem.includeModel}
|
|
158
|
-
>
|
|
159
|
-
{Template.bind({})}
|
|
160
|
-
</Story>
|
|
161
|
-
<Story name="Standard 25 mit externem Link" args={teaser25Link.logicItem.includeModel}>
|
|
162
|
-
{Template.bind({})}
|
|
163
|
-
</Story>
|
|
164
|
-
<Story name="Standard 100 Mit Download" args={teaser100Download.logicItem.includeModel}>
|
|
165
|
-
{Template.bind({})}
|
|
166
|
-
</Story>
|
|
167
|
-
<Story name="Standard 33 mit langer Ortsmarke" args={teaser33LongGeotag.logicItem.includeModel}>
|
|
168
|
-
{Template.bind({})}
|
|
169
|
-
</Story>
|
|
170
|
-
</Preview>
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
import { ArgsTable, Meta, Story, Canvas, Preview } from '@storybook/addon-docs'
|
|
2
|
-
import teaser from './teaser_standard.hbs'
|
|
3
|
-
|
|
4
|
-
import teaser50video from './fixtures/teaser_standard_50_serif_video.json'
|
|
5
|
-
import teaser25video from './fixtures/teaser_standard_25_serif_video.json'
|
|
6
|
-
import teaser50audio from './fixtures/teaser_standard_50_serif_audio.json'
|
|
7
|
-
import teaser50podcast from './fixtures/teaser_standard_50_serif_podcast.json'
|
|
8
|
-
import teaser25podcast from './fixtures/teaser_standard_25_serif_podcast.json'
|
|
9
|
-
import teaser50audioLivestream from './fixtures/teaser_standard_50_serif_audio_livestream.json'
|
|
10
|
-
import teaser25audio from './fixtures/teaser_standard_25_serif_audio.json'
|
|
11
|
-
import teaser25audioLivestream from './fixtures/teaser_standard_25_serif_audio_livestream.json'
|
|
12
|
-
import teaser50live from './fixtures/teaser_standard_50_serif_live.json'
|
|
13
|
-
import teaser25live from './fixtures/teaser_standard_25_serif_live.json'
|
|
14
|
-
|
|
15
|
-
<Meta
|
|
16
|
-
title="Komponenten/Teaser/AV-Standard"
|
|
17
|
-
parameters={{
|
|
18
|
-
layout: 'fullscreen',
|
|
19
|
-
chromatic: {
|
|
20
|
-
diffThreshold: 0.5,
|
|
21
|
-
},
|
|
22
|
-
}}
|
|
23
|
-
argTypes={{
|
|
24
|
-
teaserSize: {
|
|
25
|
-
control: {
|
|
26
|
-
type: 'select',
|
|
27
|
-
options: ['hero', '100', '50', '33', '25'],
|
|
28
|
-
},
|
|
29
|
-
description: 'Teaser Größe',
|
|
30
|
-
table: {
|
|
31
|
-
defaultValue: {
|
|
32
|
-
summary: 'hero',
|
|
33
|
-
},
|
|
34
|
-
},
|
|
35
|
-
},
|
|
36
|
-
}}
|
|
37
|
-
decorators={[
|
|
38
|
-
(Story) => {
|
|
39
|
-
return `<div class="grid grid-page"><div class="grid grid-cols-12 py-6 col-full gap-x-6 gap-y-6 sm:px-9.5 sm:col-main">
|
|
40
|
-
${Story()}
|
|
41
|
-
</div></div>`
|
|
42
|
-
},
|
|
43
|
-
]}
|
|
44
|
-
/>
|
|
45
|
-
|
|
46
|
-
export const Template = (args, { globals: { customConditionalToolbar } }) => {
|
|
47
|
-
// You can either use a function to create DOM elements or use a plain html string!
|
|
48
|
-
// return `<div>${label}</div>`;
|
|
49
|
-
let brand =
|
|
50
|
-
undefined !== customConditionalToolbar ? customConditionalToolbar['brands'] : 'hessenschau'
|
|
51
|
-
return teaser({ brand, ...args })
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
# Header
|
|
55
|
-
|
|
56
|
-
Ein toller Einleitungstext für unsere `Teaser` Komponente:
|
|
57
|
-
|
|
58
|
-
<Preview withToolbar>
|
|
59
|
-
<Story name="Standard 50% Video" args={teaser50video.logicItem.includeModel}>
|
|
60
|
-
{Template.bind({})}
|
|
61
|
-
</Story>
|
|
62
|
-
<Story name="Standard 25% Video" args={teaser25video.logicItem.includeModel}>
|
|
63
|
-
{Template.bind({})}
|
|
64
|
-
</Story>
|
|
65
|
-
<Story name="Standard 50% Video Livestream" args={teaser50live.logicItem.includeModel}>
|
|
66
|
-
{Template.bind({})}
|
|
67
|
-
</Story>
|
|
68
|
-
<Story name="Standard 25% Video Livestream" args={teaser25live.logicItem.includeModel}>
|
|
69
|
-
{Template.bind({})}
|
|
70
|
-
</Story>
|
|
71
|
-
<Story name="Standard 50% Audio" args={teaser50audio.logicItem.includeModel}>
|
|
72
|
-
{Template.bind({})}
|
|
73
|
-
</Story>
|
|
74
|
-
<Story name="Standard 25% Audio" args={teaser25audio.logicItem.includeModel}>
|
|
75
|
-
{Template.bind({})}
|
|
76
|
-
</Story>
|
|
77
|
-
<Story name="Standard 50% Podcast" args={teaser50podcast.logicItem.includeModel}>
|
|
78
|
-
{Template.bind({})}
|
|
79
|
-
</Story>
|
|
80
|
-
<Story name="Standard 25% Podcast" args={teaser25podcast.logicItem.includeModel}>
|
|
81
|
-
{Template.bind({})}
|
|
82
|
-
</Story>
|
|
83
|
-
<Story
|
|
84
|
-
name="Standard 50% Audio Livestream"
|
|
85
|
-
args={teaser50audioLivestream.logicItem.includeModel}
|
|
86
|
-
>
|
|
87
|
-
{Template.bind({})}
|
|
88
|
-
</Story>
|
|
89
|
-
<Story
|
|
90
|
-
name="Standard 25% Audio Livestream"
|
|
91
|
-
args={teaser25audioLivestream.logicItem.includeModel}
|
|
92
|
-
>
|
|
93
|
-
{Template.bind({})}
|
|
94
|
-
</Story>
|
|
95
|
-
</Preview>
|
|
@@ -1,150 +0,0 @@
|
|
|
1
|
-
import { ArgsTable, Meta, Story, Canvas, Preview } from '@storybook/addon-docs'
|
|
2
|
-
import teaser from './teaser_standard.hbs'
|
|
3
|
-
import teaserAlternative from './teaser_alternativ.hbs'
|
|
4
|
-
import teaser33SingleEventSerif from './fixtures/teaser_standard_33_serif_single_event.json'
|
|
5
|
-
import teaser33SingleEventStatus from './fixtures/teaser_standard_33_serif_single_event_status.json'
|
|
6
|
-
import teaser33TwoEventsSerif from './fixtures/teaser_standard_33_serif_two_events.json'
|
|
7
|
-
import teaser33MultipleEventsSerif from './fixtures/teaser_standard_33_serif_multiple_events.json'
|
|
8
|
-
import teaser50SingleEventSerif from './fixtures/teaser_standard_50_serif_single_event.json'
|
|
9
|
-
import teaser100SingleEventSerif from './fixtures/teaser_standard_100_serif_single_event.json'
|
|
10
|
-
import teaser100TwoEventsSerif from './fixtures/teaser_standard_100_serif_two_events.json'
|
|
11
|
-
import teaserAlternative100SingleEventSerif from './fixtures/teaser_alternative_100_serif_single_event.json'
|
|
12
|
-
import teaserAlternative100TwoEventsSerif from './fixtures/teaser_alternative_100_serif_two_events.json'
|
|
13
|
-
|
|
14
|
-
<Meta
|
|
15
|
-
title="Komponenten/Teaser/Event"
|
|
16
|
-
parameters={{
|
|
17
|
-
layout: 'fullscreen',
|
|
18
|
-
chromatic: {
|
|
19
|
-
viewports: [360, 1024],
|
|
20
|
-
diffThreshold: 0.5,
|
|
21
|
-
},
|
|
22
|
-
}}
|
|
23
|
-
argTypes={{
|
|
24
|
-
teaserSize: {
|
|
25
|
-
control: {
|
|
26
|
-
type: 'select',
|
|
27
|
-
options: ['33', '50', '100'],
|
|
28
|
-
},
|
|
29
|
-
description: 'Teaser Größe',
|
|
30
|
-
table: {
|
|
31
|
-
defaultValue: {
|
|
32
|
-
summary: 'hero',
|
|
33
|
-
},
|
|
34
|
-
},
|
|
35
|
-
},
|
|
36
|
-
}}
|
|
37
|
-
decorators={[
|
|
38
|
-
(Story) => {
|
|
39
|
-
return `<div class="grid grid-page"><div class="grid grid-cols-12 py-6 col-full gap-x-6 gap-y-6 sm:px-9.5 sm:col-main">
|
|
40
|
-
${Story()}
|
|
41
|
-
</div></div>`
|
|
42
|
-
},
|
|
43
|
-
]}
|
|
44
|
-
/>
|
|
45
|
-
|
|
46
|
-
export const Template = (args, { globals: { customConditionalToolbar } }) => {
|
|
47
|
-
// You can either use a function to create DOM elements or use a plain html string!
|
|
48
|
-
// return `<div>${label}</div>`;
|
|
49
|
-
let brand =
|
|
50
|
-
undefined !== customConditionalToolbar ? customConditionalToolbar['brands'] : 'hessenschau'
|
|
51
|
-
return teaser({ brand, ...args })
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
export const TemplateAlternative = (args, { globals: { customConditionalToolbar } }) => {
|
|
55
|
-
// You can either use a function to create DOM elements or use a plain html string!
|
|
56
|
-
// return `<div>${label}</div>`;
|
|
57
|
-
let brand =
|
|
58
|
-
undefined !== customConditionalToolbar ? customConditionalToolbar['brands'] : 'hessenschau'
|
|
59
|
-
return teaserAlternative({ brand, ...args })
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
# Standard-Teaser
|
|
63
|
-
|
|
64
|
-
## Beschreibung
|
|
65
|
-
|
|
66
|
-
Der Standard-Teaser besteht aus 2 Hauptelemente: <b>Bild</b> und <b>Text</b> (Label, Dachzeile, Titel, Teasertext, Zusatzinformationen)
|
|
67
|
-
|
|
68
|
-
<b>Standard 33 Single Event:</b> <br />
|
|
69
|
-
Desktop = Text unter dem Bild <br />
|
|
70
|
-
Mobile = Text unter dem Bild mit Teasertext <br />
|
|
71
|
-
|
|
72
|
-
<b>Standard 33 Two Events:</b> <br />
|
|
73
|
-
Desktop = Text unter dem Bild <br />
|
|
74
|
-
Mobile = Text unter dem Bild mit Teasertext <br />
|
|
75
|
-
|
|
76
|
-
<b>Standard 33 Multiple Events:</b> <br />
|
|
77
|
-
Desktop = Text unter dem Bild <br />
|
|
78
|
-
Mobile = Text unter dem Bild mit Teasertext <br />{' '}
|
|
79
|
-
|
|
80
|
-
## Sub-Komponenten
|
|
81
|
-
|
|
82
|
-
Die Standard-Teaser-Komponente inkludiert folgende Komponenten:
|
|
83
|
-
|
|
84
|
-
<ul>
|
|
85
|
-
<li>
|
|
86
|
-
components/teaser/components/<b>teaser_lead</b>
|
|
87
|
-
</li>
|
|
88
|
-
<li>
|
|
89
|
-
components/base/<b>link</b>
|
|
90
|
-
</li>
|
|
91
|
-
<li>
|
|
92
|
-
components/teaser/components/<b>teaser_heading</b>
|
|
93
|
-
</li>
|
|
94
|
-
<li>
|
|
95
|
-
components/teaser/components/<b>teaser_text</b>
|
|
96
|
-
</li>
|
|
97
|
-
<li>
|
|
98
|
-
components/teaser/components/<b>teaser_byline</b>
|
|
99
|
-
</li>
|
|
100
|
-
</ul>
|
|
101
|
-
|
|
102
|
-
## Verwendung
|
|
103
|
-
|
|
104
|
-
Die Standard-Teaser-Komponente wird in handlebars wie folgt eingebaut:
|
|
105
|
-
|
|
106
|
-
```html
|
|
107
|
-
{{> components/teaser/teaser_standard_event}}
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
<Preview withToolbar>
|
|
111
|
-
<Story name="Standard 33 Einzel-Event" args={teaser33SingleEventSerif.logicItem.includeModel}>
|
|
112
|
-
{Template.bind({})}
|
|
113
|
-
</Story>
|
|
114
|
-
<Story
|
|
115
|
-
name="Standard 33 Einzel-Event abgesagt"
|
|
116
|
-
args={teaser33SingleEventStatus.logicItem.includeModel}
|
|
117
|
-
>
|
|
118
|
-
{Template.bind({})}
|
|
119
|
-
</Story>
|
|
120
|
-
<Story name="Standard 33 zwei Events" args={teaser33TwoEventsSerif.logicItem.includeModel}>
|
|
121
|
-
{Template.bind({})}
|
|
122
|
-
</Story>
|
|
123
|
-
<Story
|
|
124
|
-
name="Standard 33 mehrere Events"
|
|
125
|
-
args={teaser33MultipleEventsSerif.logicItem.includeModel}
|
|
126
|
-
>
|
|
127
|
-
{Template.bind({})}
|
|
128
|
-
</Story>
|
|
129
|
-
<Story name="Standard 50 Einzel-Event" args={teaser50SingleEventSerif.logicItem.includeModel}>
|
|
130
|
-
{Template.bind({})}
|
|
131
|
-
</Story>
|
|
132
|
-
<Story name="Standard 100 Einzel-Event" args={teaser100SingleEventSerif.logicItem.includeModel}>
|
|
133
|
-
{Template.bind({})}
|
|
134
|
-
</Story>
|
|
135
|
-
<Story name="Standard 100 zwei Events" args={teaser100TwoEventsSerif.logicItem.includeModel}>
|
|
136
|
-
{Template.bind({})}
|
|
137
|
-
</Story>
|
|
138
|
-
<Story
|
|
139
|
-
name="Alternativ 100 Einzel-Event"
|
|
140
|
-
args={teaserAlternative100SingleEventSerif.logicItem.includeModel}
|
|
141
|
-
>
|
|
142
|
-
{TemplateAlternative.bind({})}
|
|
143
|
-
</Story>
|
|
144
|
-
<Story
|
|
145
|
-
name="Alternativ 100 zwei Events"
|
|
146
|
-
args={teaserAlternative100TwoEventsSerif.logicItem.includeModel}
|
|
147
|
-
>
|
|
148
|
-
{TemplateAlternative.bind({})}
|
|
149
|
-
</Story>
|
|
150
|
-
</Preview>
|