hr-design-system-handlebars 1.11.12 → 1.12.0
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/.storybook/main.js +9 -0
- package/.storybook/manager.js +18 -18
- package/.storybook/preview.js +9 -1
- package/CHANGELOG.md +12 -0
- package/README.md +13 -2
- package/build/handlebars/handlebars.js +1 -1
- package/build/scripts/build.js +1 -1
- package/config.js +1 -0
- package/dist/assets/index.css +223 -190
- package/dist/views/components/base/image/icon.hbs +1 -1
- package/dist/views/components/base/link.hbs +11 -1
- package/dist/views/components/base/link_open.hbs +12 -13
- package/dist/views/components/base/link_v2.hbs +14 -0
- package/dist/views/components/button/button.hbs +9 -24
- package/dist/views/components/button/components/button_icon.hbs +2 -1
- package/dist/views/components/button/components/button_label.hbs +1 -1
- package/dist/views/components/button/link_button.hbs +6 -0
- package/dist/views/components/button/utilities/button_base_classes.hbs +1 -0
- package/dist/views/components/button/utilities/button_dimension_classes.hbs +1 -0
- package/dist/views/components/button/utilities/button_on_image_classes.hbs +39 -0
- package/dist/views/components/button/utilities/button_variation_classes.hbs +14 -0
- package/dist/views/components/content_nav/content_nav_container.hbs +1 -1
- package/dist/views/components/content_nav/content_nav_item.hbs +1 -1
- package/dist/views/components/event/calendar/event_calendar_footer.hbs +1 -1
- package/dist/views/components/event/event_ticket_button.hbs +11 -9
- package/dist/views/components/grid/grid_group_highlight.hbs +1 -1
- package/dist/views/components/label/label_old.hbs +1 -1
- package/dist/views/components/mediaplayer/media_player.hbs +4 -22
- package/dist/views/components/mediaplayer/mediaplayer_button.hbs +9 -0
- package/dist/views/components/modal/modal.hbs +2 -2
- package/dist/views/components/site_header/brand_navigation/brand_navigation.hbs +1 -1
- package/dist/views/components/teaser/cluster/teaser_cluster.hbs +4 -1
- package/dist/views/components/teaser/cluster/teaser_cluster_byline.hbs +1 -1
- package/dist/views/components/teaser/cluster/teaser_cluster_item.hbs +1 -1
- package/dist/views/components/teaser/components/teaser_av_consumption_close_button.hbs +6 -20
- package/dist/views/components/teaser/components/teaser_byline.hbs +1 -1
- package/dist/views/components/teaser/components/teaser_image.hbs +6 -14
- package/dist/views/components/teaser/podcast/podcast_subscribe_button.hbs +18 -15
- package/dist/views/components/teaser/podcast/podcast_title.hbs +2 -2
- package/dist/views/components/teaser/tabbox/group_tabbox.hbs +4 -1
- package/dist/views/components/teaser/tabbox/teaser_tabbox.hbs +10 -11
- package/dist/views/components/teaser/teaser_poster.hbs +5 -1
- package/gulpfile.js +9 -0
- package/package.json +4 -2
- package/src/assets/css/custom-components.css +37 -38
- package/src/assets/css/custom-utilities.css +2 -2
- package/src/assets/fixtures/event/calendar/event_calendar_months.inc.json +5 -1
- package/src/assets/tailwind.css +54 -22
- package/src/stories/conventions-and-datastructure.mdx +217 -4
- package/src/stories/views/components/base/image/icon.hbs +1 -1
- package/src/stories/views/components/base/link.hbs +11 -1
- package/src/stories/views/components/base/link_open.hbs +12 -13
- package/src/stories/views/components/base/link_v2.hbs +14 -0
- package/src/stories/views/components/button/button.hbs +9 -24
- package/src/stories/views/components/button/button.mdx +186 -0
- package/src/stories/views/components/button/button.stories.js +508 -0
- package/src/stories/views/components/button/components/button_icon.hbs +2 -1
- package/src/stories/views/components/button/components/button_icon.mdx +25 -0
- package/src/stories/views/components/button/components/button_icon.stories.js +44 -0
- package/src/stories/views/components/button/components/button_label.hbs +1 -1
- package/src/stories/views/components/button/components/button_label.mdx +25 -0
- package/src/stories/views/components/button/components/button_label.stories.js +33 -0
- package/src/stories/views/components/button/link_button.hbs +6 -0
- package/src/stories/views/components/button/link_button.mdx +137 -0
- package/src/stories/views/components/button/link_button.stories.js +420 -0
- package/src/stories/views/components/button/utilities/button_base_classes.hbs +1 -0
- package/src/stories/views/components/button/utilities/button_dimension_classes.hbs +1 -0
- package/src/stories/views/components/button/utilities/button_on_image_classes.hbs +39 -0
- package/src/stories/views/components/button/utilities/button_variation_classes.hbs +14 -0
- package/src/stories/views/components/content_nav/content_nav_container.hbs +1 -1
- package/src/stories/views/components/content_nav/content_nav_item.hbs +1 -1
- package/src/stories/views/components/event/calendar/event_calendar_footer.hbs +1 -1
- package/src/stories/views/components/event/event_ticket_button.hbs +11 -9
- package/src/stories/views/components/grid/grid_group_highlight.hbs +1 -1
- package/src/stories/views/components/label/label_old.hbs +1 -1
- package/src/stories/views/components/mediaplayer/media_player.hbs +4 -22
- package/src/stories/views/components/mediaplayer/mediaplayer_button.hbs +9 -0
- package/src/stories/views/components/mediaplayer/mediaplayer_button.mdx +82 -0
- package/src/stories/views/components/mediaplayer/mediaplayer_button.stories.js +178 -0
- package/src/stories/views/components/modal/modal.hbs +2 -2
- package/src/stories/views/components/site_header/brand_navigation/brand_navigation.hbs +1 -1
- package/src/stories/views/components/teaser/cluster/teaser_cluster.hbs +4 -1
- package/src/stories/views/components/teaser/cluster/teaser_cluster_byline.hbs +1 -1
- package/src/stories/views/components/teaser/cluster/teaser_cluster_item.hbs +1 -1
- package/src/stories/views/components/teaser/components/teaser_av_consumption_close_button.hbs +6 -20
- package/src/stories/views/components/teaser/components/teaser_byline.hbs +1 -1
- package/src/stories/views/components/teaser/components/teaser_image.hbs +6 -14
- package/src/stories/views/components/teaser/fixtures/teaser_event_calendar_100_serif.json +1 -1
- package/src/stories/views/components/teaser/podcast/podcast_subscribe_button.hbs +18 -15
- package/src/stories/views/components/teaser/podcast/podcast_title.hbs +2 -2
- package/src/stories/views/components/teaser/tabbox/group_tabbox.hbs +4 -1
- package/src/stories/views/components/teaser/tabbox/teaser_tabbox.hbs +10 -11
- package/src/stories/views/components/teaser/teaser_poster.hbs +5 -1
- package/tailwind.config.js +8 -1
- package/dist/views/components/button/button_pseudo.hbs +0 -8
- package/dist/views/components/button/button_pseudo.inc.hbs +0 -18
- package/dist/views/components/button/button_pseudo_v2.hbs +0 -12
- package/dist/views/components/button/button_round.hbs +0 -23
- package/dist/views/components/button/button_round_classes.hbs +0 -46
- package/dist/views/components/button/button_transparent.hbs +0 -17
- package/dist/views/components/button/button_v2.hbs +0 -7
- package/dist/views/components/button/components/button_pseudo_link.hbs +0 -3
- package/src/stories/views/components/button/button_pseudo.hbs +0 -8
- package/src/stories/views/components/button/button_pseudo.inc.hbs +0 -18
- package/src/stories/views/components/button/button_pseudo_v2.hbs +0 -12
- package/src/stories/views/components/button/button_round.hbs +0 -23
- package/src/stories/views/components/button/button_round_classes.hbs +0 -46
- package/src/stories/views/components/button/button_transparent.hbs +0 -17
- package/src/stories/views/components/button/button_v2.hbs +0 -7
- package/src/stories/views/components/button/components/button_pseudo_link.hbs +0 -3
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { ArgsTable, Meta, Story, Canvas } from '@storybook/blocks'
|
|
2
|
+
import * as LinkButtonStories from './link_button.stories'
|
|
3
|
+
|
|
4
|
+
<Meta of={LinkButtonStories} />
|
|
5
|
+
|
|
6
|
+
# Link-Button
|
|
7
|
+
|
|
8
|
+
- [Übersicht](#übersicht)
|
|
9
|
+
- [Eigenschaften](#eigenschaften)
|
|
10
|
+
- [Varianten](#varianten)
|
|
11
|
+
- [Verwendung](#verwendung)
|
|
12
|
+
|
|
13
|
+
## Übersicht
|
|
14
|
+
|
|
15
|
+
Der Link-Button erlaubt es einen HTML-Link optisch wie einen Button aussehen zu lassen. Die Komponente sollte immer
|
|
16
|
+
dann eingesetzt werden, wenn beim Klick auf die Schaltfläche eine neue Seite geöffnet werden soll.
|
|
17
|
+
Beispiele hierfür sind die Schaltfläche am unteren Rand einer Tab-Box, die es
|
|
18
|
+
ermöglicht auf eine Seite mit weiteren Inhalten zu kommen, die Schaltfläche innerhalb eines Cluster-Teasers, die auf eine Seite mit weiteren Beiträgen verlinkt
|
|
19
|
+
oder die Schaltfläche innerhalb eines Poster-Teasers, die auf den konkreten Inhalt verlinkt.
|
|
20
|
+
|
|
21
|
+
Die Link-Button-Komponente als solches ist sehr einfach gehalten. Sie stellt nur ein Grundgerüst (ein gestyltes HTML-Link Element) zur Verfügung.
|
|
22
|
+
Alle Inhalte des Buttons, wie das [Label](?path=/docs/komponenten-buttons-komponenten-label--label) oder ein mögliches
|
|
23
|
+
[Icon](?path=/docs/komponenten-buttons-komponenten-icon--icon), können flexibel durch Subkomponenten hinzugefügt werden.
|
|
24
|
+
|
|
25
|
+
<Canvas>
|
|
26
|
+
<Story of={LinkButtonStories.Spielplatz} />
|
|
27
|
+
</Canvas>
|
|
28
|
+
|
|
29
|
+
## Eigenschaften
|
|
30
|
+
|
|
31
|
+
<ArgsTable story="Spielplatz" />
|
|
32
|
+
|
|
33
|
+
## Varianten
|
|
34
|
+
|
|
35
|
+
Auf einer Inhaltsseite kann mehr als ein Button platziert werden. Um wichtige von weniger wichtigen Aktionen
|
|
36
|
+
unterscheidbar zu machen, sind unterschiedliche optische Varianten und Größen von Buttons zu verwenden.
|
|
37
|
+
|
|
38
|
+
### Größen
|
|
39
|
+
|
|
40
|
+
<Canvas>
|
|
41
|
+
<Story of={LinkButtonStories.ButtonLg} />
|
|
42
|
+
<Story of={LinkButtonStories.ButtonMd} />
|
|
43
|
+
<Story of={LinkButtonStories.ButtonSm} />
|
|
44
|
+
</Canvas>
|
|
45
|
+
|
|
46
|
+
### Button-Arten
|
|
47
|
+
|
|
48
|
+
<Canvas>
|
|
49
|
+
<Story of={LinkButtonStories.ButtonPrimary} />
|
|
50
|
+
<Story of={LinkButtonStories.ButtonSecondary} />
|
|
51
|
+
<Story of={LinkButtonStories.ButtonTertiary} />
|
|
52
|
+
</Canvas>
|
|
53
|
+
|
|
54
|
+
### Button mit Icon <a id="button-icon" />
|
|
55
|
+
|
|
56
|
+
<Canvas>
|
|
57
|
+
<Story of={LinkButtonStories.ButtonIconRechts} />
|
|
58
|
+
<Story of={LinkButtonStories.ButtonIconLinks} />
|
|
59
|
+
</Canvas>
|
|
60
|
+
|
|
61
|
+
## Verwendung
|
|
62
|
+
|
|
63
|
+
Ein Link-Button wird mit der Handlebar Komponente `link_button` eingebunden. Wie einleitend schon beschrieben, stellt diese
|
|
64
|
+
Komponente lediglich das Grundgerüst eines Buttons dar. Die Beschriftung und/oder ein Icon müssen mit Subkomponenten hinzugefügt
|
|
65
|
+
werden.
|
|
66
|
+
|
|
67
|
+
<div class="bg-blue-200 !mt-4 p-4">
|
|
68
|
+
<h4 class="!text-stone-950 font-bold">Hinweis</h4>
|
|
69
|
+
|
|
70
|
+
<p>
|
|
71
|
+
Sowohl die Link-Button-Komponente als auch die Subkomponenten Button-Label und Button-Icon
|
|
72
|
+
sind standardmäßig bereits gestyled. Das setzen von zusätzlichen Style Klassen über den
|
|
73
|
+
Parameter <pre class="inline">\_css</pre> ist zwar bei jeder Komponente möglich, sollte aber
|
|
74
|
+
nur dann gemacht werden, wenn es gar nicht anders geht.
|
|
75
|
+
</p>
|
|
76
|
+
</div>
|
|
77
|
+
|
|
78
|
+
### Button mit Text
|
|
79
|
+
|
|
80
|
+
Ein Button der Ausprägung `primary` mit Beschriftung wird, wie in folgendem Codebeispiel gezeigt, gebaut.
|
|
81
|
+
|
|
82
|
+
<Canvas>
|
|
83
|
+
<Story of={LinkButtonStories.ButtonPrimary} />
|
|
84
|
+
</Canvas>
|
|
85
|
+
|
|
86
|
+
```handlebars
|
|
87
|
+
{{#> components/button/link_button _size="lg"}}
|
|
88
|
+
{{> components/button/components/button_label _label="Primary"}}
|
|
89
|
+
{{/components/button/link_button}}
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### Button mit Text und Icon
|
|
93
|
+
|
|
94
|
+
Ein Button der Ausprägung `primary` mit einem Label und einem rechts daneben stehenden Icon wird, wie in folgendem Codebeispiel gezeigt, gebaut.
|
|
95
|
+
|
|
96
|
+
<Canvas>
|
|
97
|
+
<Story of={LinkButtonStories.ButtonIconRechts} />
|
|
98
|
+
</Canvas>
|
|
99
|
+
|
|
100
|
+
```handlebars
|
|
101
|
+
{{#> components/button/link_button _size="lg"}}
|
|
102
|
+
{{> components/button/components/button_label _label="Icon rechts"}}
|
|
103
|
+
{{> components/button/components/button_icon _icon="arrow-right" _iconmap="icons"}}
|
|
104
|
+
{{/components/button/link_button}}
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Soll das Icon links vom Label stehen, muss der Aufruf der Subkomponenten einfach vertauscht werden.
|
|
108
|
+
|
|
109
|
+
<Canvas>
|
|
110
|
+
<Story of={LinkButtonStories.ButtonIconLinks} />
|
|
111
|
+
</Canvas>
|
|
112
|
+
|
|
113
|
+
```handlebars
|
|
114
|
+
{{#> components/button/link_button _size="lg"}}
|
|
115
|
+
{{> components/button/components/button_icon _icon="arrow-left" _iconmap="icons"}}
|
|
116
|
+
{{> components/button/components/button_label _label="Icon links"}}
|
|
117
|
+
{{/components/button/link_button}}
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Der passende Abstand zwischen Icon und Label wird automatisch per CSS gesetzt.
|
|
121
|
+
|
|
122
|
+
### Button auf farbigem Hintergund
|
|
123
|
+
|
|
124
|
+
Soll ein Link-Button auf einem farbigen Hintergrund (bietet sich vor allem bei dunklen Hintergründen an) genutzt werden, kann durch setzen des Parameters
|
|
125
|
+
`_onBackground` eine auf dunkle Hintergründe abgestimmte kontrastreichere optische Variante der Button aktiviert werden.
|
|
126
|
+
|
|
127
|
+
<Canvas>
|
|
128
|
+
<Story of={LinkButtonStories.ButtonPrimaryAufFarbigemHintergrund} />
|
|
129
|
+
<Story of={LinkButtonStories.ButtonSecondaryAufFarbigemHintergrund} />
|
|
130
|
+
<Story of={LinkButtonStories.ButtonTertiaryAufFarbigemHintergrund} />
|
|
131
|
+
</Canvas>
|
|
132
|
+
|
|
133
|
+
```handlebars
|
|
134
|
+
{{#> components/button/link_button _size="lg" _onBackground}}
|
|
135
|
+
{{> components/button/components/button_label _label="Primary"}}
|
|
136
|
+
{{/components/button/link_button}}
|
|
137
|
+
```
|
|
@@ -0,0 +1,420 @@
|
|
|
1
|
+
const handlebars = require('hrHandlebars')
|
|
2
|
+
|
|
3
|
+
const buttonWithLabelTemplate = (args) => {
|
|
4
|
+
let hbsTemplate = handlebars.compile(`
|
|
5
|
+
{{#> components/button/link_button}}
|
|
6
|
+
{{> components/button/components/button_label}}
|
|
7
|
+
{{/components/button/link_button}}
|
|
8
|
+
`)
|
|
9
|
+
return hbsTemplate({ ...args })
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
const buttonWithLabelTemplateOnBackground = (args) => {
|
|
13
|
+
let hbsTemplate = handlebars.compile(`
|
|
14
|
+
<div class="bg-primary p-4">
|
|
15
|
+
{{#> components/button/link_button}}
|
|
16
|
+
{{> components/button/components/button_label}}
|
|
17
|
+
{{/components/button/link_button}}
|
|
18
|
+
</div>
|
|
19
|
+
`)
|
|
20
|
+
return hbsTemplate({ ...args })
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const buttonWithLabelAndIconRightTemplate = (args) => {
|
|
24
|
+
let hbsTemplate = handlebars.compile(`
|
|
25
|
+
{{#> components/button/link_button}}
|
|
26
|
+
{{> components/button/components/button_label}}
|
|
27
|
+
{{> components/button/components/button_icon }}
|
|
28
|
+
{{/components/button/link_button}}
|
|
29
|
+
`)
|
|
30
|
+
return hbsTemplate({ ...args })
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
const buttonWithLabelAndIconLeftTemplate = (args) => {
|
|
34
|
+
let hbsTemplate = handlebars.compile(`
|
|
35
|
+
{{#> components/button/link_button~}}
|
|
36
|
+
{{> components/button/components/button_icon }}
|
|
37
|
+
{{> components/button/components/button_label}}
|
|
38
|
+
{{~/components/button/link_button}}
|
|
39
|
+
`)
|
|
40
|
+
return hbsTemplate({ ...args })
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export default {
|
|
44
|
+
title: 'Komponenten/Buttons/Link-Button',
|
|
45
|
+
|
|
46
|
+
argTypes: {
|
|
47
|
+
_css: {
|
|
48
|
+
description: 'Erlaubt die Angabe zusätzlicher CSS Klassen für den Button',
|
|
49
|
+
control: 'text',
|
|
50
|
+
|
|
51
|
+
table: {
|
|
52
|
+
category: 'Button',
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
|
|
56
|
+
_label: {
|
|
57
|
+
description: 'Label des Buttons',
|
|
58
|
+
control: 'text',
|
|
59
|
+
|
|
60
|
+
table: {
|
|
61
|
+
category: 'Label',
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
|
|
65
|
+
_icon: {
|
|
66
|
+
description: 'Der Name des Icons in der Iconmap',
|
|
67
|
+
control: 'text',
|
|
68
|
+
|
|
69
|
+
table: {
|
|
70
|
+
category: 'Icon',
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
|
|
74
|
+
_iconMap: {
|
|
75
|
+
control: 'text',
|
|
76
|
+
description: 'Der Name der zu verwendenden Iconmap',
|
|
77
|
+
|
|
78
|
+
table: {
|
|
79
|
+
defaultValue: {
|
|
80
|
+
summary: 'icons',
|
|
81
|
+
},
|
|
82
|
+
|
|
83
|
+
category: 'Icon',
|
|
84
|
+
},
|
|
85
|
+
},
|
|
86
|
+
|
|
87
|
+
_size: {
|
|
88
|
+
options: ['sm', 'md', 'lg'],
|
|
89
|
+
control: {
|
|
90
|
+
type: 'select',
|
|
91
|
+
},
|
|
92
|
+
|
|
93
|
+
description: 'Bestimmt die Größe des Buttons. Erlaubte Werte sind `sm`, `md` und `lg`',
|
|
94
|
+
|
|
95
|
+
table: {
|
|
96
|
+
category: 'Button',
|
|
97
|
+
|
|
98
|
+
defaultValue: {
|
|
99
|
+
summary: 'md',
|
|
100
|
+
},
|
|
101
|
+
},
|
|
102
|
+
},
|
|
103
|
+
|
|
104
|
+
_variant: {
|
|
105
|
+
description:
|
|
106
|
+
'In welcher Variante soll der Button dargestellt werden. Erlaubte Varianten sind `primary`, `secondary`, `tertiary`',
|
|
107
|
+
|
|
108
|
+
options: ['primary', 'secondary', 'tertiary'],
|
|
109
|
+
control: {
|
|
110
|
+
type: 'select',
|
|
111
|
+
},
|
|
112
|
+
|
|
113
|
+
table: {
|
|
114
|
+
category: 'Button',
|
|
115
|
+
defaultValue: {
|
|
116
|
+
summary: 'primary',
|
|
117
|
+
},
|
|
118
|
+
},
|
|
119
|
+
},
|
|
120
|
+
|
|
121
|
+
_onBackground: {
|
|
122
|
+
description:
|
|
123
|
+
'Wird dieser Wert gesetzt, wird der Button in einem auf einen farbigen Hintergrund abgestimmtes Farbschema angezeigt. ',
|
|
124
|
+
control: 'boolean',
|
|
125
|
+
|
|
126
|
+
table: {
|
|
127
|
+
category: 'Button',
|
|
128
|
+
|
|
129
|
+
defaultValue: {
|
|
130
|
+
summary: false,
|
|
131
|
+
},
|
|
132
|
+
},
|
|
133
|
+
},
|
|
134
|
+
|
|
135
|
+
_disableButtonPress: {
|
|
136
|
+
description:
|
|
137
|
+
'Durch setzen dieses Wertes, kann deaktiviert werden, dass der Druck auf den Button optisch angezeigt wird.',
|
|
138
|
+
control: 'boolean',
|
|
139
|
+
|
|
140
|
+
table: {
|
|
141
|
+
category: 'Button',
|
|
142
|
+
|
|
143
|
+
defaultValue: {
|
|
144
|
+
summary: false,
|
|
145
|
+
},
|
|
146
|
+
},
|
|
147
|
+
},
|
|
148
|
+
|
|
149
|
+
_isAriaHidden: {
|
|
150
|
+
description:
|
|
151
|
+
'Ermöglicht es den Button von der Nutzung mit assistiven Geräten auszuschließen. Setzt die Eigenschaft aria-hidden auf true und den tabindex auf -1.',
|
|
152
|
+
control: 'boolean',
|
|
153
|
+
|
|
154
|
+
table: {
|
|
155
|
+
category: 'Button',
|
|
156
|
+
|
|
157
|
+
defaultValue: {
|
|
158
|
+
summary: false,
|
|
159
|
+
},
|
|
160
|
+
},
|
|
161
|
+
},
|
|
162
|
+
},
|
|
163
|
+
|
|
164
|
+
parameters: {
|
|
165
|
+
controls: {
|
|
166
|
+
sort: 'alpha',
|
|
167
|
+
},
|
|
168
|
+
},
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
export const Spielplatz = {
|
|
172
|
+
render: buttonWithLabelTemplate.bind({}),
|
|
173
|
+
name: 'Spielplatz',
|
|
174
|
+
|
|
175
|
+
args: {
|
|
176
|
+
_size: 'md',
|
|
177
|
+
_label: 'Button',
|
|
178
|
+
},
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
export const ButtonLg = {
|
|
182
|
+
render: buttonWithLabelTemplate.bind({}),
|
|
183
|
+
name: 'Button - lg',
|
|
184
|
+
|
|
185
|
+
argTypes: {
|
|
186
|
+
_size: {
|
|
187
|
+
control: false,
|
|
188
|
+
},
|
|
189
|
+
|
|
190
|
+
_variant: {
|
|
191
|
+
control: false,
|
|
192
|
+
},
|
|
193
|
+
},
|
|
194
|
+
|
|
195
|
+
args: {
|
|
196
|
+
_size: 'lg',
|
|
197
|
+
_label: 'Large',
|
|
198
|
+
},
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
export const ButtonMd = {
|
|
202
|
+
render: buttonWithLabelTemplate.bind({}),
|
|
203
|
+
name: 'Button - md',
|
|
204
|
+
|
|
205
|
+
argTypes: {
|
|
206
|
+
_size: {
|
|
207
|
+
control: false,
|
|
208
|
+
},
|
|
209
|
+
|
|
210
|
+
_variant: {
|
|
211
|
+
control: false,
|
|
212
|
+
},
|
|
213
|
+
},
|
|
214
|
+
|
|
215
|
+
args: {
|
|
216
|
+
_size: 'md',
|
|
217
|
+
_label: 'Medium',
|
|
218
|
+
},
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
export const ButtonSm = {
|
|
222
|
+
render: buttonWithLabelTemplate.bind({}),
|
|
223
|
+
name: 'Button - sm',
|
|
224
|
+
|
|
225
|
+
argTypes: {
|
|
226
|
+
_size: {
|
|
227
|
+
control: false,
|
|
228
|
+
},
|
|
229
|
+
|
|
230
|
+
_variant: {
|
|
231
|
+
control: false,
|
|
232
|
+
},
|
|
233
|
+
},
|
|
234
|
+
|
|
235
|
+
args: {
|
|
236
|
+
_size: 'sm',
|
|
237
|
+
_label: 'Small',
|
|
238
|
+
},
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
export const ButtonPrimary = {
|
|
242
|
+
render: buttonWithLabelTemplate.bind({}),
|
|
243
|
+
name: 'Button - Primary',
|
|
244
|
+
|
|
245
|
+
argTypes: {
|
|
246
|
+
_size: {
|
|
247
|
+
control: false,
|
|
248
|
+
},
|
|
249
|
+
|
|
250
|
+
_variant: {
|
|
251
|
+
control: false,
|
|
252
|
+
},
|
|
253
|
+
},
|
|
254
|
+
|
|
255
|
+
args: {
|
|
256
|
+
_size: 'lg',
|
|
257
|
+
_label: 'Primary',
|
|
258
|
+
},
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
export const ButtonSecondary = {
|
|
262
|
+
render: buttonWithLabelTemplate.bind({}),
|
|
263
|
+
name: 'Button - Secondary',
|
|
264
|
+
|
|
265
|
+
argTypes: {
|
|
266
|
+
_size: {
|
|
267
|
+
control: false,
|
|
268
|
+
},
|
|
269
|
+
|
|
270
|
+
_variant: {
|
|
271
|
+
control: false,
|
|
272
|
+
},
|
|
273
|
+
},
|
|
274
|
+
|
|
275
|
+
args: {
|
|
276
|
+
_size: 'lg',
|
|
277
|
+
_label: 'Secondary',
|
|
278
|
+
_variant: 'secondary',
|
|
279
|
+
},
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
export const ButtonTertiary = {
|
|
283
|
+
render: buttonWithLabelTemplate.bind({}),
|
|
284
|
+
name: 'Button - Tertiary',
|
|
285
|
+
|
|
286
|
+
argTypes: {
|
|
287
|
+
_size: {
|
|
288
|
+
control: false,
|
|
289
|
+
},
|
|
290
|
+
|
|
291
|
+
_variant: {
|
|
292
|
+
control: false,
|
|
293
|
+
},
|
|
294
|
+
},
|
|
295
|
+
|
|
296
|
+
args: {
|
|
297
|
+
_size: 'lg',
|
|
298
|
+
_label: 'Tertiary',
|
|
299
|
+
_variant: 'tertiary',
|
|
300
|
+
},
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
export const ButtonIconRechts = {
|
|
304
|
+
render: buttonWithLabelAndIconRightTemplate.bind({}),
|
|
305
|
+
name: 'Button - Icon rechts',
|
|
306
|
+
|
|
307
|
+
argTypes: {
|
|
308
|
+
_size: {
|
|
309
|
+
control: false,
|
|
310
|
+
},
|
|
311
|
+
|
|
312
|
+
_variant: {
|
|
313
|
+
control: false,
|
|
314
|
+
},
|
|
315
|
+
},
|
|
316
|
+
|
|
317
|
+
args: {
|
|
318
|
+
_size: 'lg',
|
|
319
|
+
_label: 'Icon rechts',
|
|
320
|
+
_icon: 'arrow-right',
|
|
321
|
+
},
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
export const ButtonIconLinks = {
|
|
325
|
+
render: buttonWithLabelAndIconLeftTemplate.bind({}),
|
|
326
|
+
name: 'Button - Icon links',
|
|
327
|
+
|
|
328
|
+
argTypes: {
|
|
329
|
+
_size: {
|
|
330
|
+
control: false,
|
|
331
|
+
},
|
|
332
|
+
|
|
333
|
+
_variant: {
|
|
334
|
+
control: false,
|
|
335
|
+
},
|
|
336
|
+
},
|
|
337
|
+
|
|
338
|
+
args: {
|
|
339
|
+
_size: 'lg',
|
|
340
|
+
_label: 'Icon links',
|
|
341
|
+
_icon: 'arrow-left',
|
|
342
|
+
},
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
export const ButtonPrimaryAufFarbigemHintergrund = {
|
|
346
|
+
render: buttonWithLabelTemplateOnBackground.bind({}),
|
|
347
|
+
name: 'Button - Primary auf farbigem Hintergrund',
|
|
348
|
+
|
|
349
|
+
argTypes: {
|
|
350
|
+
_size: {
|
|
351
|
+
control: false,
|
|
352
|
+
},
|
|
353
|
+
|
|
354
|
+
_variant: {
|
|
355
|
+
control: false,
|
|
356
|
+
},
|
|
357
|
+
|
|
358
|
+
_onBackground_: {
|
|
359
|
+
control: false,
|
|
360
|
+
},
|
|
361
|
+
},
|
|
362
|
+
|
|
363
|
+
args: {
|
|
364
|
+
_size: 'lg',
|
|
365
|
+
_label: 'Primary',
|
|
366
|
+
_onBackground: true,
|
|
367
|
+
},
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
export const ButtonSecondaryAufFarbigemHintergrund = {
|
|
371
|
+
render: buttonWithLabelTemplateOnBackground.bind({}),
|
|
372
|
+
name: 'Button - Secondary auf farbigem Hintergrund',
|
|
373
|
+
|
|
374
|
+
argTypes: {
|
|
375
|
+
_size: {
|
|
376
|
+
control: false,
|
|
377
|
+
},
|
|
378
|
+
|
|
379
|
+
_variant: {
|
|
380
|
+
control: false,
|
|
381
|
+
},
|
|
382
|
+
|
|
383
|
+
_onBackground_: {
|
|
384
|
+
control: false,
|
|
385
|
+
},
|
|
386
|
+
},
|
|
387
|
+
|
|
388
|
+
args: {
|
|
389
|
+
_size: 'lg',
|
|
390
|
+
_label: 'Secondary',
|
|
391
|
+
_variant: 'secondary',
|
|
392
|
+
_onBackground: true,
|
|
393
|
+
},
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
export const ButtonTertiaryAufFarbigemHintergrund = {
|
|
397
|
+
render: buttonWithLabelTemplateOnBackground.bind({}),
|
|
398
|
+
name: 'Button - Tertiary auf farbigem Hintergrund',
|
|
399
|
+
|
|
400
|
+
argTypes: {
|
|
401
|
+
_size: {
|
|
402
|
+
control: false,
|
|
403
|
+
},
|
|
404
|
+
|
|
405
|
+
_variant: {
|
|
406
|
+
control: false,
|
|
407
|
+
},
|
|
408
|
+
|
|
409
|
+
_onBackground_: {
|
|
410
|
+
control: false,
|
|
411
|
+
},
|
|
412
|
+
},
|
|
413
|
+
|
|
414
|
+
args: {
|
|
415
|
+
_size: 'lg',
|
|
416
|
+
_label: 'Tertiary',
|
|
417
|
+
_variant: 'tertiary',
|
|
418
|
+
_onBackground: true,
|
|
419
|
+
},
|
|
420
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
inline-flex items-center font-heading
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{{~inline-switch _size '["sm","md","lg"]' '[" px-2 py-0.5"," p-2"," px-4 py-2.5",""]'~}}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
absolute bottom-0 right-0
|
|
2
|
+
{{~#switch _teaserType~}}
|
|
3
|
+
{{~#case 'standard'~}}
|
|
4
|
+
{{~#if _isMobile1to1~}}
|
|
5
|
+
{{~inline-switch _teaserSize '["25","33"]' '[" m-2"," m-2 md:m-3"," m-2 md:m-4"]'~}}
|
|
6
|
+
{{~else~}}
|
|
7
|
+
{{~inline-switch _teaserSize '["25","33"]' '[" m-2"," m-4 md:m-3"," m-4"]'~}}
|
|
8
|
+
{{~/if~}}
|
|
9
|
+
{{~/case~}}
|
|
10
|
+
{{~#case 'alternative'~}}
|
|
11
|
+
{{~#if _isMobile1to1~}}
|
|
12
|
+
{{~inline-switch
|
|
13
|
+
_teaserSize
|
|
14
|
+
'["hero","100","50"]'
|
|
15
|
+
'[" m-2 md:m-4"," m-2 md:m-3"," m-2"]'
|
|
16
|
+
~}}
|
|
17
|
+
{{~else~}}
|
|
18
|
+
{{~inline-switch _teaserSize '["hero","100","50"]' '[" m-4"," m-2 md:m-3"," m-2"]'~}}
|
|
19
|
+
{{~/if~}}
|
|
20
|
+
{{~/case~}}
|
|
21
|
+
{{~#case 'tabbox-standard'~}}
|
|
22
|
+
{{~#if _isMobile1to1~}}
|
|
23
|
+
{{~inline-switch _teaserSize '["25","33"]' '[" m-2"," m-2 md:m-3"," m-2 md:m-4 "]'~}}
|
|
24
|
+
{{~else~}}
|
|
25
|
+
{{~inline-switch _teaserSize '["25","33"]' '[" m-2"," m-4 md:m-3"," m-4"]'~}}
|
|
26
|
+
{{~/if~}}
|
|
27
|
+
{{~/case~}}
|
|
28
|
+
{{~#case 'tabbox-alternative'~}}
|
|
29
|
+
{{~#if _isMobile1to1~}}
|
|
30
|
+
{{~inline-switch
|
|
31
|
+
_teaserSize
|
|
32
|
+
'["hero","100","50"]'
|
|
33
|
+
'[" m-2 md:m-4"," m-2 md:m-3"," m-2"]'
|
|
34
|
+
~}}
|
|
35
|
+
{{~else~}}
|
|
36
|
+
{{~inline-switch _teaserSize '["hero","100","50"]' '[" m-4"," m-2 md:m-3"," m-2"]'~}}
|
|
37
|
+
{{~/if~}}
|
|
38
|
+
{{~/case~}}
|
|
39
|
+
{{~/switch~}}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{{#if _onBackground~}}
|
|
2
|
+
{{inline-switch
|
|
3
|
+
_variant
|
|
4
|
+
'["primary","secondary","tertiary"]'
|
|
5
|
+
'[" border text-button-primary bg-button-primary--inverted border-button-primary--inverted hover:bg-button-primary--inverted-dark active:bg-button-primary--inverted-dark"," border text-button-primary--inverted border-button-primary--inverted hover:bg-button-primary--inverted-dark hover:text-button-primary active:text-button-primary active:bg-button-primary--inverted-dark"," bg-transparent border-transparent text-button-inverted hover:bg-button-primary--inverted-dark hover:text-button-primary hover:border-button-primary--inverted-dark active:text-button-primary active:bg-button-primary--inverted-dark"," border text-button-primary bg-button-primary--inverted border-button-primary--inverted hover:bg-button-primary--inverted-dark active:bg-button-primary--inverted-dark"]'
|
|
6
|
+
~}}
|
|
7
|
+
{{else}}
|
|
8
|
+
{{~inline-switch
|
|
9
|
+
_variant
|
|
10
|
+
'["primary","secondary","tertiary"]'
|
|
11
|
+
'[" border text-button-primary--inverted bg-button-primary border-button-primary hover:bg-button-primary--dark hover:border-button-primary--dark active:bg-button-primary--dark"," border text-button-secondary border-button-primary hover:bg-button-primary--inverted active:bg-button-primary--inverted"," border bg-transparent border-transparent text-button-primary hover:bg-button-primary--inverted hover:border-button-primary active:bg-button-primary--inverted"," border text-button-primary--inverted bg-button-primary border-button-primary hover:bg-button-primary--dark hover:border-button-primary--dark active:bg-button-primary--dark"]'
|
|
12
|
+
~}}
|
|
13
|
+
{{/if}}
|
|
14
|
+
{{~#unless _disableButtonPress}} active:scale-95{{/unless}}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
{{#if this.isAutosuggest}}
|
|
7
7
|
<div class="flex mx-0 w-full h-10 border-blue-congress align-center{{#if _autoSuggestContainerCss}} {{_autoSuggestContainerCss}}{{/if}}">
|
|
8
8
|
<input x-ref="autosuggestInput"
|
|
9
|
-
class="{{#if _inputclass }}{{_inputclass}}{{/if}} w-full h-10 pl-2 border-b-8 border-white bg-
|
|
9
|
+
class="{{#if _inputclass }}{{_inputclass}}{{/if}} w-full h-10 pl-2 border-b-8 border-white bg-gray-alabaster text-gray-dark placeholder:text-gray-dark focus:outline-none js-autosuggest-input"
|
|
10
10
|
type="text"
|
|
11
11
|
placeholder="Eintrag filtern"/>
|
|
12
12
|
</div>
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
_doNavigationTracking="true"
|
|
11
11
|
_clickLabelType="Contentnavigation"
|
|
12
12
|
_clickLabelPrefix1=this.title
|
|
13
|
-
_css="flex
|
|
13
|
+
_css="flex items-center pt-2.5 px-2 whitespace-nowrap overflow-hidden"
|
|
14
14
|
_isSelected=this.isSelected
|
|
15
15
|
_selectedCssClass="is-selected"
|
|
16
16
|
}}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<footer class='bg-event-calendar-primary text-center'>
|
|
2
2
|
{{#decorator
|
|
3
3
|
'components/base/link'
|
|
4
|
-
_css='block p-2 text-white text-sm font-serif hover:underline underline-offset-3
|
|
4
|
+
_css='block p-2 text-white text-sm font-serif hover:underline underline-offset-3'
|
|
5
5
|
}}
|
|
6
6
|
{{loca 'event_calendar_monthly_overview_link'}}
|
|
7
7
|
{{/decorator}}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
<div class="static pl-4 pt-1 pb-3 sm:absolute sm:pl-0 sm:pt-0 sm:pb-0 sm:right-4 sm:bottom-4">
|
|
2
|
-
{{#> components/button/
|
|
2
|
+
{{#> components/button/button _id=(nextRandom) _size="lg"}}
|
|
3
3
|
{{> components/button/components/button_icon _icon="ticket" _iconmap="icons" _css="mr-2"}}
|
|
4
4
|
{{>components/button/components/button_label _label="Tickets"}}
|
|
5
|
-
{{/components/button/
|
|
5
|
+
{{/components/button/button}}
|
|
6
6
|
{{#> components/modal/modal _trigger=(getRandom)}}
|
|
7
7
|
{{#> components/teaser/components/teaser_headline}}
|
|
8
8
|
{{> components/teaser/components/teaser_title _text=(loca 'ticket_modal_headline') _css="text-2xl"}}
|
|
@@ -10,8 +10,12 @@
|
|
|
10
10
|
<p class="text-base font-copy mt-2">{{loca "ticket_modal_text"}}</p>
|
|
11
11
|
|
|
12
12
|
<div class="flex flex-wrap mt-4">
|
|
13
|
-
{{
|
|
14
|
-
|
|
13
|
+
{{#> components/button/link_button _size="lg" _css="js-ticket-ok-button js-modal-close mr-4 mt-4"}}
|
|
14
|
+
{{>components/button/components/button_label _label="Zum Ticketshop" _css=""}}
|
|
15
|
+
{{/components/button/link_button}}
|
|
16
|
+
{{#> components/button/button _size="lg" _variant="tertiary" _value="cancel" _css="mt-4"}}
|
|
17
|
+
{{>components/button/components/button_label _label="Abbrechen" _css=""}}
|
|
18
|
+
{{/components/button/button}}
|
|
15
19
|
</div>
|
|
16
20
|
{{/components/modal/modal}}
|
|
17
21
|
<noscript>
|
|
@@ -20,11 +24,9 @@
|
|
|
20
24
|
display:none;
|
|
21
25
|
}
|
|
22
26
|
</style>
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
{{> components/button/components/button_icon _icon="ticket" _iconmap="icons" _css="mr-2"}}
|
|
27
|
+
{{#> components/button/link_button _size="lg"}}
|
|
28
|
+
{{> components/button/components/button_icon _icon="ticket" _iconmap="icons"}}
|
|
26
29
|
{{>components/button/components/button_label _label="Tickets"}}
|
|
27
|
-
{{/components/button/
|
|
28
|
-
{{/components/button/components/button_pseudo_link}}
|
|
30
|
+
{{/components/button/link_button}}
|
|
29
31
|
</noscript>
|
|
30
32
|
</div>
|