@leuffen/themejs1 7.0.2 → 8.0.2
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/_tpl/_root/.kick.yml +5 -0
- package/_tpl/_root/.schiller-context.txt +12 -0
- package/_tpl/_root/docs/_includes/el/lang-chooser-list.html +24 -0
- package/_tpl/_root/docs/_includes/el/openhours.html +1 -1
- package/_tpl/_root/docs/_includes/footer.md +2 -2
- package/_tpl/_root/docs/_layouts/0_blanc.html +9 -5
- package/_tpl/_root/docs/_layouts/3_1_navbar.html +13 -1
- package/_tpl/_root/src/style_custom.scss +8 -0
- package/_tpl/legal/datenschutz.de.md +1 -0
- package/_tpl/legal/impressum.de.md +2 -0
- package/_tpl/leistungen/hausarzt-uebersicht.de.md +1 -0
- package/_tpl/pages/hausarzt-index-singleleistung.de.md +3 -2
- package/_tpl/pages/hausarzt-index.de.md +1 -0
- package/_tpl/pages/index-theme-genne.de.md +158 -0
- package/_tpl/pages/kontakt-anfahrt.de.md +2 -0
- package/_tpl/pages/termin-redirect.de.md +1 -0
- package/_tpl/pages/ueber-uns.de.md +1 -0
- package/_tpl/sections.def.json +121 -0
- package/_tpl/service/info-privatpraxis.de.md +120 -0
- package/_variables.scss +49 -1
- package/dist/elements/hero-slide/hero-slide.js +1 -1
- package/dist/sections/cta-base/cta-base.js +1 -1
- package/dist/sections/cta-form/cta-form.js +1 -1
- package/dist/sections/hero-max/hero-max.js +5 -2
- package/dist/sections/hero-title-small/hero-title-small.js +2 -2
- package/dist/sections/navbar-switch2/navbar-switch2.d.ts +1 -0
- package/dist/sections/navbar-switch2/navbar-switch2.js +44 -0
- package/dist/sections/sec-card-2col/sec-card-2col.js +2 -2
- package/dist/sections/sec-legal-content/sec-legal-content.js +1 -1
- package/dist/sections/sec-multi-card/sec-multi-card.js +1 -1
- package/dist/sections/sec-testimonial-ribbon/sec-testimonial-ribbon.js +8 -12
- package/dist/sections/sections.d.ts +2 -0
- package/dist/sections/sections.js +2 -0
- package/dist/sections/subheader/subheader.d.ts +1 -0
- package/dist/sections/subheader/subheader.js +15 -0
- package/elements/_background-color.scss +4 -0
- package/elements/_image-list.scss +39 -0
- package/elements/elements.scss +1 -0
- package/elements/hero-slide/hero-slide.scss +5 -1
- package/elements/hero-slide/hero-slide.ts +1 -1
- package/font/cinzel-opensans.scss +2 -2
- package/package.json +21 -19
- package/sections/_defaults.scss +7 -36
- package/sections/_pages/about.def.ts +137 -0
- package/sections/_pages/index.def.ts +152 -0
- package/sections/_pages/leistungen1.def.ts +87 -0
- package/sections/_pages/leistungen2.def.ts +189 -0
- package/sections/_typography.scss +72 -0
- package/sections/cta-base/cta-base.def.ts +20 -0
- package/sections/cta-base/cta-base.scss +4 -3
- package/sections/cta-base/cta-base.ts +1 -1
- package/sections/cta-form/cta-form.scss +8 -7
- package/sections/cta-form/cta-form.ts +1 -1
- package/sections/hero-max/hero-max.scss +36 -5
- package/sections/hero-max/hero-max.ts +5 -2
- package/sections/hero-title-small/hero-title-small.scss +12 -1
- package/sections/hero-title-small/hero-title-small.ts +2 -2
- package/sections/navbar-centerlogo/_burger-menu.scss +2 -2
- package/sections/navbar-centerlogo/navbar-centerlogo.scss +8 -4
- package/sections/navbar-switch2/navbar-switch2.scss +274 -0
- package/sections/navbar-switch2/navbar-switch2.ts +47 -0
- package/sections/sec-card-2col/sec-card-2col.def.ts +73 -0
- package/sections/sec-card-2col/sec-card-2col.scss +57 -10
- package/sections/sec-card-2col/sec-card-2col.ts +2 -2
- package/sections/sec-card-feature/sec-card-feature.def.ts +47 -0
- package/sections/sec-legal-content/sec-legal-content.scss +6 -1
- package/sections/sec-legal-content/sec-legal-content.ts +1 -1
- package/sections/sec-multi-card/sec-multi-card.def.ts +58 -0
- package/sections/sec-multi-card/sec-multi-card.ts +1 -1
- package/sections/sec-testimonial-ribbon/sec-testimonial-ribbon.def.ts +29 -0
- package/sections/sec-testimonial-ribbon/sec-testimonial-ribbon.scss +72 -34
- package/sections/sec-testimonial-ribbon/sec-testimonial-ribbon.ts +8 -12
- package/sections/sections-export.ts +24 -0
- package/sections/sections.def.ts +57 -0
- package/sections/sections.scss +4 -0
- package/sections/sections.ts +2 -0
- package/sections/subheader/subheader.scss +27 -0
- package/sections/subheader/subheader.ts +17 -0
- package/themes/_defaults/_headering-style-flex.scss +36 -0
- package/themes/_defaults/_headering-style-hero.scss +23 -0
- package/themes/_defaults/_sprechzeiten-table-highlight.scss +28 -0
- package/themes/genne/index.scss +91 -0
- package/themes/theme1/index.scss +3 -0
- package/tsconfig.json +28 -0
|
@@ -1,11 +1,24 @@
|
|
|
1
1
|
|
|
2
2
|
|
|
3
3
|
.tjs__sec-card-2col {
|
|
4
|
+
|
|
5
|
+
--layout-border: 1px solid var(--t-section-border-color);
|
|
6
|
+
--layout-border-radius: var(--t-section-border-radius);
|
|
7
|
+
--layout-section-background: var(--t-section-background);
|
|
8
|
+
--layout-container-background: var(--t-container-background, white);
|
|
9
|
+
--layout-title-aspect-ratio: 16 / 9;
|
|
10
|
+
|
|
11
|
+
--layout-padding: 40px;
|
|
12
|
+
--layout-padding-mobile: 10px;
|
|
13
|
+
|
|
4
14
|
padding: var(--t-section-padding);
|
|
5
|
-
background: var(--
|
|
15
|
+
background: var(--layout-section-background);
|
|
6
16
|
|
|
7
17
|
|
|
8
|
-
|
|
18
|
+
|
|
19
|
+
.row {
|
|
20
|
+
--bs-gutter-x: 0;
|
|
21
|
+
}
|
|
9
22
|
|
|
10
23
|
|
|
11
24
|
|
|
@@ -57,6 +70,9 @@
|
|
|
57
70
|
--joda-class: p-4 p-lg-5;
|
|
58
71
|
}
|
|
59
72
|
|
|
73
|
+
.aside-content {
|
|
74
|
+
}
|
|
75
|
+
|
|
60
76
|
|
|
61
77
|
&.mobile.text-first {
|
|
62
78
|
.row > .tjs__sec-card-2col--col-start {
|
|
@@ -66,6 +82,20 @@
|
|
|
66
82
|
|
|
67
83
|
.row > .tjs__sec-card-2col--col-start {
|
|
68
84
|
order: 99;
|
|
85
|
+
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
&.reverse {
|
|
89
|
+
&.mobile.text-first {
|
|
90
|
+
.row > .tjs__sec-card-2col--col-start {
|
|
91
|
+
order: 99;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.row > .tjs__sec-card-2col--col-start {
|
|
96
|
+
order: 1;
|
|
97
|
+
|
|
98
|
+
}
|
|
69
99
|
}
|
|
70
100
|
|
|
71
101
|
|
|
@@ -92,18 +122,35 @@
|
|
|
92
122
|
}
|
|
93
123
|
|
|
94
124
|
|
|
125
|
+
|
|
126
|
+
|
|
95
127
|
.tjs__sec-card-2col--container {
|
|
96
|
-
border: 1px solid var(--t-section-border-color);
|
|
97
|
-
border-radius: var(--t-section-border-radius);
|
|
98
|
-
overflow: hidden;
|
|
99
|
-
background-color: white;
|
|
100
128
|
padding: 0;
|
|
129
|
+
border: var(--layout-border);
|
|
130
|
+
border-radius: var(--layout-border-radius);
|
|
131
|
+
overflow: hidden;
|
|
132
|
+
background-color: var(--layout-container-background);
|
|
101
133
|
}
|
|
102
134
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
135
|
+
// Padding
|
|
136
|
+
.tjs__sec-card-2col--col-end {
|
|
137
|
+
padding: var(--layout-padding);
|
|
138
|
+
&:has(> slot > img) {
|
|
139
|
+
padding: 0;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
&.mobile .tjs__sec-card-2col--col-end {
|
|
144
|
+
padding: var(--layout-padding-mobile);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
.tjs__sec-card-2col--col-start {
|
|
150
|
+
padding: var(--layout-padding);
|
|
151
|
+
}
|
|
152
|
+
&.mobile .tjs__sec-card-2col--col-start {
|
|
153
|
+
padding: var(--layout-padding-mobile);
|
|
107
154
|
}
|
|
108
155
|
|
|
109
156
|
}
|
|
@@ -12,12 +12,12 @@ Joda.registerTemplate(
|
|
|
12
12
|
<div class="tjs__sec-card-2col--container [[layout.container]]">
|
|
13
13
|
<slot class="title" data-select="img.title || .title > img"></slot>
|
|
14
14
|
<div class="row [[layout.order === 'reverse' ? 'flex-column-reverse': '']] [[layout.mobile_reverse === 'yes' ? ':: flex-column-reverse :lg:': '']]">
|
|
15
|
-
<div class="tjs__sec-card-2col--col-start
|
|
15
|
+
<div class="tjs__sec-card-2col--col-start heading-style-flex :: col-12 :lg: col-[[layout.cols]]">
|
|
16
16
|
<slot></slot>
|
|
17
17
|
</div>
|
|
18
18
|
<div class="tjs__sec-card-2col--col-end image-side :: col-12 :lg: col-[[12 - layout.cols]] ">
|
|
19
19
|
|
|
20
|
-
<slot class="[[layout.slideshow === true ? 'slideshow' : '']]" data-select=".aside || img, .children > .section-hr.aside" [[layout.slideshow !== true ? 'data-limit="1"' : '' ]]></slot>
|
|
20
|
+
<slot class="[[layout.slideshow === true ? 'slideshow' : '']]" data-select=".aside || .aside-content || img, .children > .section-hr.aside" [[layout.slideshow !== true ? 'data-limit="1"' : '' ]]></slot>
|
|
21
21
|
</div>
|
|
22
22
|
</div>
|
|
23
23
|
</div>
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import {defineSection, example, SectionLayoutGroup} from "../sections.def";
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
defineSection('sec-card-feature', SectionLayoutGroup.Content)`
|
|
5
|
+
|
|
6
|
+
A Feature Card Section with a large image on top and to columens of Text below. Should be used only
|
|
7
|
+
once within a pages content. Best places at after 2-3 sec-card-2col elements.
|
|
8
|
+
|
|
9
|
+
If a Blockquote is used as first element, it will be used as a big callout header. The h2 element will be
|
|
10
|
+
smaller abouve the callout.
|
|
11
|
+
|
|
12
|
+
`;
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
example("Section with image image on top, header, callout and text on left and accordion on right.")`
|
|
16
|
+
## Vorsorge für die ganze Familie
|
|
17
|
+
{: layout="use: #sec-card-feature"}
|
|
18
|
+
|
|
19
|
+
> Gesundheit für alle Altersgruppen
|
|
20
|
+
|
|
21
|
+
Vorsorge ist für alle Altersgruppen wichtig. Ob Kinder, Jugendliche, Erwachsene oder Senioren - wir bieten für jede Altersgruppe passende Vorsorgeuntersuchungen an.
|
|
22
|
+
|
|
23
|
+
Uns ist eine umfassende Aufklärung über die Möglichkeiten der Vorsorge und eine individuelle Beratung wichtig. Wir arbeiten eng mit Ihnen zusammen, um die bestmögliche Vorsorge für Ihre individuellen Bedürfnisse zu gewährleisten.
|
|
24
|
+
|
|
25
|
+
[Jetzt Termin vereinbaren](/kontakt){: .btn .fw-bold .btn-secondary .mt-4}
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+

|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
{: layout="use: accordion()"}
|
|
32
|
+
|
|
33
|
+
### Akutversorgung von Kindern ab 6 Monaten
|
|
34
|
+
|
|
35
|
+
Unsere Praxis legt besonderen Wert auf die Versorgung Ihrer jüngsten Familienmitglieder. Bei akuten Beschwerden und Krankheitsbildern steht das Wohl Ihres Kindes immer an erster Stelle. Kinder ab dem Alter von 6 Monaten benötigen eine spezielle Herangehensweise, die sowohl medizinisches Know-how als auch eine kindgerechte Behandlung beinhaltet. Unsere erfahrenen Fachkräfte nehmen sich ausreichend Zeit für Ihren Nachwuchs und sorgen dafür, dass er sich in unserer Praxis sicher und geborgen fühlt.
|
|
36
|
+
|
|
37
|
+
### Jugendschutzuntersuchung
|
|
38
|
+
|
|
39
|
+
Jeder Jugendliche steht im Laufe seiner Entwicklung vor neuen Herausforderungen und Veränderungen. Die Jugendschutzuntersuchung ist ein wichtiger Baustein, um sicherzustellen, dass junge Menschen gesund und wohlbehalten ins Berufsleben starten können. In unserer Praxis bieten wir diese Untersuchung an, die dazu dient, mögliche gesundheitliche Risiken frühzeitig zu erkennen und vorbeugende Maßnahmen zu treffen. Es ist unser Ziel, die körperliche und geistige Gesundheit Ihres Teenagers zu fördern und zu schützen.
|
|
40
|
+
|
|
41
|
+
### Altersmedizinische Vorsorgeuntersuchungen
|
|
42
|
+
|
|
43
|
+
Mit fortschreitendem Alter ändern sich die Bedürfnisse und Anforderungen an unsere Gesundheit. Unsere Praxis ist darauf spezialisiert, Sie bestmöglich durch diese Lebensphase zu begleiten. Mithilfe altersmedizinischer Vorsorgeuntersuchungen (geriatrisches Basisassessment) können wir frühzeitig Veränderungen und potenzielle Risikofaktoren erkennen. So sind wir in der Lage, Ihnen individuell angepasste Empfehlungen und Therapien anzubieten. Ihr Wohlbefinden und Ihre Lebensqualität stehen für uns immer im Vordergrund. Vertrauen Sie auf unsere Expertise und lassen Sie uns gemeinsam für Ihre Gesundheit sorgen.
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
`;
|
|
47
|
+
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
|
|
2
2
|
|
|
3
|
-
.
|
|
3
|
+
.tjs-legal-content {
|
|
4
|
+
--layout-margin-top: 0;
|
|
5
|
+
|
|
6
|
+
margin-top: var(--layout-margin-top);
|
|
7
|
+
|
|
4
8
|
background: var(--t-section-background);
|
|
5
9
|
padding: var(--t-section-padding);
|
|
6
10
|
|
|
11
|
+
|
|
7
12
|
.inner-wrapper {
|
|
8
13
|
|
|
9
14
|
border: 1px solid var(--t-section-border-color);
|
|
@@ -5,7 +5,7 @@ Joda.registerTemplate("sec-legal-content",
|
|
|
5
5
|
// language=HTML
|
|
6
6
|
`
|
|
7
7
|
|
|
8
|
-
<section class="
|
|
8
|
+
<section class="tjs-legal-content :: mobile :lg:">
|
|
9
9
|
<div class="out-wrapper">
|
|
10
10
|
<div class="container p-0">
|
|
11
11
|
<div class="inner-wrapper :: p-4 :lg: p-5">
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import {defineSection, example, SectionLayoutGroup} from "../sections.def";
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
defineSection('sec-multi-card', SectionLayoutGroup.Content)`
|
|
5
|
+
|
|
6
|
+
A Header with callout and text followed by a card elements per h3 row with image on top.
|
|
7
|
+
|
|
8
|
+
`;
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
example("Leistungsübersicht auf Startseite mit Überschift, darunter 3 Columns mit Bild und Text. Danach eine Zeile mit einem Button zu den Leistungen")`
|
|
12
|
+
## Unsere Leistungen
|
|
13
|
+
{: layout="use: #sec-multi-card; cols:3"}
|
|
14
|
+
|
|
15
|
+
### Vorsorge
|
|
16
|
+
|
|
17
|
+

|
|
18
|
+
|
|
19
|
+
Wir bieten eine umfassende Vorsorgeuntersuchung an, um Krankheiten frühzeitig zu erkennen und zu behandeln.
|
|
20
|
+
|
|
21
|
+
### Diagnostik
|
|
22
|
+
|
|
23
|
+

|
|
24
|
+
|
|
25
|
+
Unsere Praxis ist mit modernsten Diagnosegeräten ausgestattet, um eine genaue und schnelle Diagnose zu gewährleisten.
|
|
26
|
+
|
|
27
|
+
### Therapie
|
|
28
|
+
|
|
29
|
+

|
|
30
|
+
|
|
31
|
+
Wir bieten eine breite Palette von Therapien an, um eine effektive Behandlung zu gewährleisten.
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
{: .section-h2}
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
[Unsere Leistungen](/leistungen){: .btn .btn-primary .btn-lg .mb-3}
|
|
38
|
+
{: .text-center}
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
`;
|
|
42
|
+
|
|
43
|
+
example("Mitarbeiter mit jeweils 3 Cards nebeneinander. (kann beliebig lang werden). Hier ist der Header mittels .d-none ausgeblendet (falls vorher bereits ein Cards Element steht).")`
|
|
44
|
+
## Unsere Mitarbeiter
|
|
45
|
+
{: layout="use: #sec-multi-card; cols:3" .d-none}
|
|
46
|
+
|
|
47
|
+
### Nicoleta Avrinte
|
|
48
|
+
|
|
49
|
+

|
|
50
|
+
|
|
51
|
+
### Anika Engel
|
|
52
|
+
|
|
53
|
+

|
|
54
|
+
|
|
55
|
+
### Anika Meier
|
|
56
|
+
|
|
57
|
+

|
|
58
|
+
`;
|
|
@@ -22,7 +22,7 @@ Joda.registerTemplate("sec-multi-card",
|
|
|
22
22
|
`
|
|
23
23
|
|
|
24
24
|
<section class="tjs__sec-multi-card">
|
|
25
|
-
<div class="container header" style="--joda-on-empty-class: d-none;">
|
|
25
|
+
<div class="container header heading-style-default" style="--joda-on-empty-class: d-none;">
|
|
26
26
|
<slot class="tjs__section-text" data-select=":scope > .content"></slot>
|
|
27
27
|
</div>
|
|
28
28
|
<div class="container">
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import {defineSection, example, SectionLayoutGroup} from "../sections.def";
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
defineSection('sec-testimonial-ribbon', SectionLayoutGroup.Content)`
|
|
5
|
+
|
|
6
|
+
A section filling the screens full width with a round image of a person and a quote of this person.
|
|
7
|
+
|
|
8
|
+
Only use maximum once per page. Do not use as last nor as first element on a page.
|
|
9
|
+
|
|
10
|
+
The text of the header will not be shown.
|
|
11
|
+
|
|
12
|
+
`;
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
example("Statement of the doctor himself.")`
|
|
16
|
+
|
|
17
|
+
## Testimonial
|
|
18
|
+
{: layout="use: #sec-testimonial-ribbon"}
|
|
19
|
+
|
|
20
|
+

|
|
21
|
+
|
|
22
|
+
„In unserer Praxis legen wir großen Wert auf eine individuelle und professionelle psychiatrische und psychotherapeutische Versorgung. Wir nutzen modernste Diagnoseverfahren und Behandlungsmethoden, um unseren Patienten die bestmögliche Unterstützung zu bieten. Unser Ziel ist es, dass sich jeder Patient bei uns gut aufgehoben und verstanden fühlt.“
|
|
23
|
+
|
|
24
|
+
— Yigit Sinan, Facharzt für XXX
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
`;
|
|
29
|
+
|
|
@@ -1,55 +1,93 @@
|
|
|
1
|
-
.
|
|
1
|
+
.tjs-testimonial-ribbon {
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
--layout-
|
|
3
|
+
|
|
4
|
+
--layout-section-background: var(--t-background-primary);
|
|
5
|
+
--layout-image-size: 200px;
|
|
6
|
+
--layout-image-size-mobile: 120px;
|
|
7
|
+
--layout-section-padding: var(--layout-section-padding);
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
--layout-content-padding: 40px;
|
|
11
|
+
|
|
12
|
+
--layout-font-size: 1.3rem;
|
|
5
13
|
|
|
6
14
|
padding: var(--t-section-padding);
|
|
7
15
|
background-color: var(--layout-bg);
|
|
8
16
|
|
|
9
|
-
&.mobile {
|
|
10
|
-
padding-top: 40px;
|
|
11
|
-
}
|
|
12
17
|
|
|
13
|
-
&.mobile > .tjs__sec-testimonial-ribbon--wrapper {
|
|
14
|
-
margin-top: 75px;
|
|
15
18
|
|
|
16
|
-
.image-round {
|
|
17
|
-
width: 150px;
|
|
18
|
-
height: 150px;
|
|
19
|
-
position: relative;
|
|
20
|
-
top: -150px;
|
|
21
|
-
margin-bottom: -150px;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
19
|
|
|
25
|
-
|
|
26
|
-
|
|
20
|
+
|
|
21
|
+
.x--wrapper {
|
|
22
|
+
background-color: var(--layout-section-background);
|
|
23
|
+
|
|
24
|
+
padding-top: var(--layout-section-padding);
|
|
25
|
+
|
|
27
26
|
}
|
|
28
27
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
28
|
+
&.mobile .x--wrapper {
|
|
29
|
+
margin-top: calc(var(--layout-image-size-mobile) / 2);
|
|
30
|
+
}
|
|
31
|
+
.x--row {
|
|
32
|
+
display: flex;
|
|
33
|
+
flex-direction: row;
|
|
34
|
+
align-items: center;
|
|
35
|
+
}
|
|
36
36
|
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
&.mobile {
|
|
38
|
+
.x--row {
|
|
39
|
+
flex-direction: column;
|
|
39
40
|
}
|
|
40
41
|
}
|
|
41
42
|
|
|
43
|
+
&.mobile div.x--image > slot{
|
|
44
|
+
margin-top: -50%;
|
|
45
|
+
|
|
46
|
+
}
|
|
47
|
+
&.mobile div.x--image {
|
|
48
|
+
padding: 0;
|
|
49
|
+
}
|
|
50
|
+
&.mobile div.x--image > slot {
|
|
51
|
+
border: 4px solid var(--layout-section-background);
|
|
52
|
+
}
|
|
53
|
+
div.x--image {
|
|
54
|
+
|
|
55
|
+
position: relative;
|
|
56
|
+
padding: var(--layout-content-padding);
|
|
57
|
+
&>slot {
|
|
42
58
|
|
|
43
|
-
|
|
59
|
+
display: block;
|
|
60
|
+
width: var(--layout-image-size);
|
|
61
|
+
height: var(--layout-image-size);
|
|
62
|
+
border: 1px solid white;
|
|
63
|
+
border-radius: 100%;
|
|
64
|
+
&>img {
|
|
65
|
+
width: 100%;
|
|
66
|
+
height: 100%;
|
|
67
|
+
object-fit: cover;
|
|
68
|
+
border-radius: 100%;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
44
71
|
|
|
45
72
|
}
|
|
73
|
+
slot.x--text {
|
|
74
|
+
padding: var(--layout-content-padding);
|
|
75
|
+
display: block;
|
|
76
|
+
h2,h3 {
|
|
77
|
+
display: none;
|
|
78
|
+
}
|
|
46
79
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
80
|
+
|
|
81
|
+
p {
|
|
82
|
+
font-size: var(--layout-font-size);
|
|
83
|
+
line-height: 1.5;
|
|
84
|
+
font-weight: lighter;
|
|
85
|
+
font-style: italic;
|
|
86
|
+
}
|
|
87
|
+
p:last-child {
|
|
88
|
+
margin-bottom: 0;
|
|
89
|
+
font-weight: normal;
|
|
90
|
+
}
|
|
53
91
|
}
|
|
54
92
|
}
|
|
55
93
|
|
|
@@ -5,21 +5,17 @@ Joda.registerTemplate("sec-testimonial-ribbon",
|
|
|
5
5
|
// language=HTML
|
|
6
6
|
`
|
|
7
7
|
|
|
8
|
-
<div class="
|
|
9
|
-
<div class="
|
|
10
|
-
<div class="
|
|
11
|
-
<div class="row">
|
|
12
|
-
<div class="col-lg-3 image-round mx-auto :: :xl: my-auto">
|
|
13
|
-
<div class="ratio ratio-1x1">
|
|
14
|
-
<slot data-select="img" data-replace=""></slot>
|
|
15
|
-
</div>
|
|
8
|
+
<div class="tjs-testimonial-ribbon :: mobile :lg:">
|
|
9
|
+
<div class="x--wrapper">
|
|
10
|
+
<div class="x--container [[layout.container]] :: :xl:">
|
|
16
11
|
|
|
12
|
+
<div class="x--row">
|
|
13
|
+
<div class="x--image">
|
|
14
|
+
<slot class="" data-select="img"></slot>
|
|
17
15
|
</div>
|
|
18
|
-
<div class="col-lg-9 text-format :: :lg: my-auto">
|
|
19
|
-
<slot></slot>
|
|
20
|
-
</div>
|
|
21
16
|
|
|
22
|
-
|
|
17
|
+
<slot class="x--text"></slot>
|
|
18
|
+
|
|
23
19
|
</div>
|
|
24
20
|
</div>
|
|
25
21
|
</div>
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import * as fs from "fs";
|
|
2
|
+
|
|
3
|
+
import "./_pages/index.def";
|
|
4
|
+
import "./_pages/about.def";
|
|
5
|
+
import "./_pages/leistungen1.def";
|
|
6
|
+
import "./_pages/leistungen2.def";
|
|
7
|
+
import "./sec-card-2col/sec-card-2col.def";
|
|
8
|
+
import "./sec-card-feature/sec-card-feature.def";
|
|
9
|
+
import "./sec-multi-card/sec-multi-card.def";
|
|
10
|
+
import "./sec-testimonial-ribbon/sec-testimonial-ribbon.def";
|
|
11
|
+
import "./cta-base/cta-base.def";
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
import {SECTIONS} from "./sections.def";
|
|
16
|
+
|
|
17
|
+
fs.writeFile(__dirname + "/../_tpl/sections.def.json", JSON.stringify(SECTIONS, null, 2), (err) => {
|
|
18
|
+
if (err) {
|
|
19
|
+
console.error(err);
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
console.log("File has been created");
|
|
23
|
+
});
|
|
24
|
+
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
export type SectionExample = {
|
|
6
|
+
description: string,
|
|
7
|
+
code: string
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export type Section = {
|
|
11
|
+
name: string,
|
|
12
|
+
group: SectionLayoutGroup,
|
|
13
|
+
description: string,
|
|
14
|
+
layout_options: Map<string, string>,
|
|
15
|
+
examples : SectionExample[]
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const general = `
|
|
19
|
+
Nutze die Beispiele im folgenden json-Code als Referenz, wie und welche Sections angelegt werden können (achte auf die Kramdown anweisungen in {: ...}. Diese müssen mit angegeben werden):`;
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
type TaggedTemplateLiteral<T> = (strings: TemplateStringsArray, ...values: any[]) => T;
|
|
23
|
+
|
|
24
|
+
export var SECTIONS = {
|
|
25
|
+
general,
|
|
26
|
+
available_sections: [],
|
|
27
|
+
};
|
|
28
|
+
var currentSection = null;
|
|
29
|
+
|
|
30
|
+
export enum SectionLayoutGroup {
|
|
31
|
+
Hero = "Hero",
|
|
32
|
+
Content = "Content",
|
|
33
|
+
ContentElements = "Content-Elements",
|
|
34
|
+
Footer = "Footer",
|
|
35
|
+
CTA = "Call-To-Action(CTA)",
|
|
36
|
+
Page = "Page",
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
export function defineSection(name: string, group : SectionLayoutGroup) : TaggedTemplateLiteral<{name: string, description: string}> {
|
|
41
|
+
return (strings: TemplateStringsArray, ...values: any[]) => {
|
|
42
|
+
SECTIONS.available_sections.push(currentSection = {name, group, description: strings.join(''), layout_options: new Map(), examples: []});
|
|
43
|
+
return {name, description: strings.join('')};
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
export function example(description: string) : TaggedTemplateLiteral<{example : SectionExample}> {
|
|
50
|
+
return (strings: TemplateStringsArray, ...values: any[]) => {
|
|
51
|
+
let curExample = {description, code: strings.join('')};
|
|
52
|
+
currentSection.examples.push(curExample);
|
|
53
|
+
return {example : curExample};
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
|
package/sections/sections.scss
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
|
|
2
2
|
@import "defaults";
|
|
3
|
+
@import "typography";
|
|
4
|
+
|
|
3
5
|
@import "navbar-blox/navbar-blox.scss";
|
|
4
6
|
@import "navbar-centerlogo/navbar-centerlogo.scss";
|
|
7
|
+
@import "navbar-switch2/navbar-switch2";
|
|
5
8
|
@import "sec-legal-content/sec-legal-content";
|
|
6
9
|
@import "sec-testimonial-ribbon/sec-testimonial-ribbon";
|
|
7
10
|
@import "sec-card-2col/sec-card-2col";
|
|
@@ -15,3 +18,4 @@
|
|
|
15
18
|
@import "cta-form/cta-form";
|
|
16
19
|
@import "image-gallery1/image-gallery1";
|
|
17
20
|
@import "infobox/infobox";
|
|
21
|
+
@import "subheader/subheader";
|
package/sections/sections.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
|
|
2
2
|
import "./navbar-blox/navbar-blox";
|
|
3
3
|
import "./navbar-centerlogo/navbar-centerlogo";
|
|
4
|
+
import "./navbar-switch2/navbar-switch2";
|
|
4
5
|
import "./sec-legal-content/sec-legal-content";
|
|
5
6
|
import "./sec-testimonial-ribbon/sec-testimonial-ribbon";
|
|
6
7
|
import "./sec-card-2col/sec-card-2col";
|
|
@@ -14,3 +15,4 @@ import "./hero-title-small/hero-title-small";
|
|
|
14
15
|
import "./cta-form/cta-form";
|
|
15
16
|
import "./image-gallery1/image-gallery1";
|
|
16
17
|
import "./infobox/infobox";
|
|
18
|
+
import "./subheader/subheader";
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
.tjs-subheader {
|
|
4
|
+
--layout-background: var(--t-soft-primary);
|
|
5
|
+
--layout-padding: 25px;
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
padding: var(--t-section-padding);
|
|
9
|
+
|
|
10
|
+
&>.x-wrapper {
|
|
11
|
+
padding: 0;
|
|
12
|
+
&>.x-inner {
|
|
13
|
+
text-align: center;
|
|
14
|
+
color: var(--t-primary);
|
|
15
|
+
background: var(--layout-background);
|
|
16
|
+
padding: var(--layout-padding);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
slot {
|
|
20
|
+
&>div.content {
|
|
21
|
+
&>*:last-child {
|
|
22
|
+
margin-bottom: 0;
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import {Joda} from "@leuffen/jodastyle";
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
Joda.registerTemplate("subheader",
|
|
5
|
+
// language=HTML
|
|
6
|
+
`
|
|
7
|
+
|
|
8
|
+
<div class="tjs-subheader">
|
|
9
|
+
<div class="x-wrapper [[layout.container]]">
|
|
10
|
+
<div class="x-inner">
|
|
11
|
+
<slot></slot>
|
|
12
|
+
</div>
|
|
13
|
+
</div>
|
|
14
|
+
</div>
|
|
15
|
+
`, {
|
|
16
|
+
container: "container"
|
|
17
|
+
});
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
|
|
2
|
+
.heading-style-flex {
|
|
3
|
+
h2:has(+ blockquote) {
|
|
4
|
+
text-transform: var(--t-header-text-transform, uppercase);
|
|
5
|
+
font-size: var(--t-font-size-base);
|
|
6
|
+
font-family: var(--t-font-family-base);
|
|
7
|
+
color: var(--t-accent) !important;
|
|
8
|
+
margin-bottom: var(--t-paragraf-margin-bottom);
|
|
9
|
+
font-weight: bold;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
h2 + blockquote > p {
|
|
13
|
+
font-size: var(--t-font-size-h2);
|
|
14
|
+
line-height: var(--t-line-height-header);
|
|
15
|
+
font-family: var(--t-font-family-header);
|
|
16
|
+
color: var(--t-primary) !important;
|
|
17
|
+
margin: var(--t-header-margin, 0 0 20px 0);
|
|
18
|
+
hyphens: manual;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
h1:has(+ blockquote) {
|
|
22
|
+
|
|
23
|
+
font-size: var(--t-font-size-h4);
|
|
24
|
+
color: var(--t-accent) !important;
|
|
25
|
+
margin-bottom: var(--t-paragraf-margin-bottom);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
h1 + blockquote > p {
|
|
29
|
+
font-size: var(--t-font-size-h1);
|
|
30
|
+
color: var(--t-primary) !important;
|
|
31
|
+
line-height: var(--t-line-height-header);
|
|
32
|
+
|
|
33
|
+
margin: var(--t-header-margin, 0 0 20px 0);
|
|
34
|
+
hyphens: manual;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
|
|
2
|
+
.heading-style-hero {
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
h1:has(+ blockquote) {
|
|
6
|
+
|
|
7
|
+
font-size: var(--t-font-size-h4);
|
|
8
|
+
color: var(--t-accent) !important;
|
|
9
|
+
margin-bottom: 0;
|
|
10
|
+
font-family: var(--t-font-family-header);
|
|
11
|
+
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
h1 + blockquote > p {
|
|
15
|
+
font-size: var(--t-font-size-h1);
|
|
16
|
+
color: var(--t-primary) !important;
|
|
17
|
+
line-height: var(--t-line-height-header);
|
|
18
|
+
font-family: var(--t-font-family-header);
|
|
19
|
+
|
|
20
|
+
margin: var(--t-header-margin, 0 0 20px 0);
|
|
21
|
+
hyphens: manual;
|
|
22
|
+
}
|
|
23
|
+
}
|