@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.
Files changed (84) hide show
  1. package/_tpl/_root/.kick.yml +5 -0
  2. package/_tpl/_root/.schiller-context.txt +12 -0
  3. package/_tpl/_root/docs/_includes/el/lang-chooser-list.html +24 -0
  4. package/_tpl/_root/docs/_includes/el/openhours.html +1 -1
  5. package/_tpl/_root/docs/_includes/footer.md +2 -2
  6. package/_tpl/_root/docs/_layouts/0_blanc.html +9 -5
  7. package/_tpl/_root/docs/_layouts/3_1_navbar.html +13 -1
  8. package/_tpl/_root/src/style_custom.scss +8 -0
  9. package/_tpl/legal/datenschutz.de.md +1 -0
  10. package/_tpl/legal/impressum.de.md +2 -0
  11. package/_tpl/leistungen/hausarzt-uebersicht.de.md +1 -0
  12. package/_tpl/pages/hausarzt-index-singleleistung.de.md +3 -2
  13. package/_tpl/pages/hausarzt-index.de.md +1 -0
  14. package/_tpl/pages/index-theme-genne.de.md +158 -0
  15. package/_tpl/pages/kontakt-anfahrt.de.md +2 -0
  16. package/_tpl/pages/termin-redirect.de.md +1 -0
  17. package/_tpl/pages/ueber-uns.de.md +1 -0
  18. package/_tpl/sections.def.json +121 -0
  19. package/_tpl/service/info-privatpraxis.de.md +120 -0
  20. package/_variables.scss +49 -1
  21. package/dist/elements/hero-slide/hero-slide.js +1 -1
  22. package/dist/sections/cta-base/cta-base.js +1 -1
  23. package/dist/sections/cta-form/cta-form.js +1 -1
  24. package/dist/sections/hero-max/hero-max.js +5 -2
  25. package/dist/sections/hero-title-small/hero-title-small.js +2 -2
  26. package/dist/sections/navbar-switch2/navbar-switch2.d.ts +1 -0
  27. package/dist/sections/navbar-switch2/navbar-switch2.js +44 -0
  28. package/dist/sections/sec-card-2col/sec-card-2col.js +2 -2
  29. package/dist/sections/sec-legal-content/sec-legal-content.js +1 -1
  30. package/dist/sections/sec-multi-card/sec-multi-card.js +1 -1
  31. package/dist/sections/sec-testimonial-ribbon/sec-testimonial-ribbon.js +8 -12
  32. package/dist/sections/sections.d.ts +2 -0
  33. package/dist/sections/sections.js +2 -0
  34. package/dist/sections/subheader/subheader.d.ts +1 -0
  35. package/dist/sections/subheader/subheader.js +15 -0
  36. package/elements/_background-color.scss +4 -0
  37. package/elements/_image-list.scss +39 -0
  38. package/elements/elements.scss +1 -0
  39. package/elements/hero-slide/hero-slide.scss +5 -1
  40. package/elements/hero-slide/hero-slide.ts +1 -1
  41. package/font/cinzel-opensans.scss +2 -2
  42. package/package.json +21 -19
  43. package/sections/_defaults.scss +7 -36
  44. package/sections/_pages/about.def.ts +137 -0
  45. package/sections/_pages/index.def.ts +152 -0
  46. package/sections/_pages/leistungen1.def.ts +87 -0
  47. package/sections/_pages/leistungen2.def.ts +189 -0
  48. package/sections/_typography.scss +72 -0
  49. package/sections/cta-base/cta-base.def.ts +20 -0
  50. package/sections/cta-base/cta-base.scss +4 -3
  51. package/sections/cta-base/cta-base.ts +1 -1
  52. package/sections/cta-form/cta-form.scss +8 -7
  53. package/sections/cta-form/cta-form.ts +1 -1
  54. package/sections/hero-max/hero-max.scss +36 -5
  55. package/sections/hero-max/hero-max.ts +5 -2
  56. package/sections/hero-title-small/hero-title-small.scss +12 -1
  57. package/sections/hero-title-small/hero-title-small.ts +2 -2
  58. package/sections/navbar-centerlogo/_burger-menu.scss +2 -2
  59. package/sections/navbar-centerlogo/navbar-centerlogo.scss +8 -4
  60. package/sections/navbar-switch2/navbar-switch2.scss +274 -0
  61. package/sections/navbar-switch2/navbar-switch2.ts +47 -0
  62. package/sections/sec-card-2col/sec-card-2col.def.ts +73 -0
  63. package/sections/sec-card-2col/sec-card-2col.scss +57 -10
  64. package/sections/sec-card-2col/sec-card-2col.ts +2 -2
  65. package/sections/sec-card-feature/sec-card-feature.def.ts +47 -0
  66. package/sections/sec-legal-content/sec-legal-content.scss +6 -1
  67. package/sections/sec-legal-content/sec-legal-content.ts +1 -1
  68. package/sections/sec-multi-card/sec-multi-card.def.ts +58 -0
  69. package/sections/sec-multi-card/sec-multi-card.ts +1 -1
  70. package/sections/sec-testimonial-ribbon/sec-testimonial-ribbon.def.ts +29 -0
  71. package/sections/sec-testimonial-ribbon/sec-testimonial-ribbon.scss +72 -34
  72. package/sections/sec-testimonial-ribbon/sec-testimonial-ribbon.ts +8 -12
  73. package/sections/sections-export.ts +24 -0
  74. package/sections/sections.def.ts +57 -0
  75. package/sections/sections.scss +4 -0
  76. package/sections/sections.ts +2 -0
  77. package/sections/subheader/subheader.scss +27 -0
  78. package/sections/subheader/subheader.ts +17 -0
  79. package/themes/_defaults/_headering-style-flex.scss +36 -0
  80. package/themes/_defaults/_headering-style-hero.scss +23 -0
  81. package/themes/_defaults/_sprechzeiten-table-highlight.scss +28 -0
  82. package/themes/genne/index.scss +91 -0
  83. package/themes/theme1/index.scss +3 -0
  84. package/tsconfig.json +28 -0
@@ -1,20 +1,21 @@
1
1
  .tjs__cta-form {
2
- padding: var(--t-section-padding);
2
+ --layout-padding: var(--t-section-padding);
3
+ --layout-background-color: var(--t-background-accent);
4
+
5
+ padding: var(--layout-padding);
6
+
7
+
3
8
  .invalid-feedback {
4
9
  padding-bottom: 30px ;
5
10
  }
6
11
  .wrapper {
7
- padding: var(--t-section-padding);
8
- background: var(--t-section-background-accent);
12
+ padding: var(--layout-padding);
13
+ background: var(--layout-background-color);
9
14
  .row > div {
10
15
  --joda-class: "col-12 col-md-6";
11
16
  }
12
17
  }
13
- h2 {
14
- text-align: center;
15
- margin-bottom: 40px;
16
18
 
17
- }
18
19
  input, textarea, select {
19
20
  --joda-use: "input()";
20
21
  }
@@ -6,7 +6,7 @@ Joda.registerTemplate("cta-form",
6
6
  <section class="tjs__cta-form">
7
7
  <form data-micx-formmail-preset="default" data-micx-formmail-sent-message="E-Mail erfolgreich gesendet!">
8
8
  <div class="container">
9
- <slot data-select=":scope h2"></slot>
9
+ <slot class="heading-style-default" data-select=":scope h2, :scope blockquote"></slot>
10
10
  </div>
11
11
  <div class="wrapper">
12
12
  <div class="container">
@@ -3,7 +3,16 @@
3
3
  .tjs__hero-max {
4
4
  --s-box-background: rgba(255, 255, 255, 0.8);
5
5
 
6
- --joda-class: ":: mobile :lg: desktop";
6
+ --layout-desktop-overlay1-background: none;
7
+ --layout-desktop-overlay2-background: none;
8
+ --layout-desktop-overlay3-background: none;
9
+ --layout-desktop-image-mask: none;
10
+
11
+ --layout-desktop-top-space: 200px;
12
+ --layout-desktop-min-height: 600px;
13
+ --layout-desktop-max-height: 1100px;
14
+
15
+ --joda-class: ":: mobile :xl: desktop";
7
16
  --layout-image-ratio: 16 / 10;
8
17
 
9
18
  &.mobile {
@@ -36,6 +45,25 @@
36
45
  }
37
46
  &.desktop {
38
47
 
48
+ .x-overlay {
49
+ position: absolute;
50
+ top: 0;
51
+ left: 0;
52
+ width: 100%;
53
+ height: 100%;
54
+ }
55
+ .x-overlay1 {
56
+ background: var(--layout-desktop-overlay1-background);
57
+ z-index: 1; // Behind Image
58
+ }
59
+ .x-overlay2 {
60
+ background: var(--layout-desktop-overlay2-background);
61
+ z-index: 3;
62
+ }
63
+ .x-overlay3 {
64
+ background: var(--layout-desktop-overlay3-background);
65
+ z-index: 4;
66
+ }
39
67
  &.box {
40
68
  .content {
41
69
  background: var(--s-box-background);
@@ -45,15 +73,16 @@
45
73
  }
46
74
 
47
75
  .tjs__hero-max--container {
76
+ margin-top: var(--layout-desktop-top-space, 200px);
48
77
  height: 100%;
49
78
  }
50
79
 
51
- min-height: var(--layout-min-height, 400px);
80
+ min-height: var(--layout-desktop-min-height);
52
81
  position: relative;
53
82
  &.tjs__hero-max--autoheight {
54
83
  height: calc(100vh - var(--t-fullsize-modifier, 200px));
55
- min-height: var(--layout-min-height, 400px);
56
- max-height: var(--layout-max-height, 1000px);
84
+ min-height: var(--layout-desktop-min-height);
85
+ max-height: var(--layout-destkop-max-height);
57
86
  }
58
87
  &>slot {
59
88
  display: block;
@@ -66,12 +95,14 @@
66
95
  object-fit: cover;
67
96
  object-position: center center;
68
97
  width: 100%;
98
+ -webkit-mask: var(--layout-desktop-image-mask, none);
99
+ mask: var(--layout-desktop-image-mask, none);
69
100
  }
70
101
  }
71
102
 
72
103
  & > .tjs__hero-max--out-wrapper {
73
104
  position: absolute;
74
- z-index: 2;
105
+ z-index: 5;
75
106
  top: 0;
76
107
  bottom: 0;
77
108
  width: 100%;
@@ -5,11 +5,14 @@ Joda.registerTemplate("hero-max",
5
5
  // language=HTML
6
6
  `
7
7
 
8
- <section class="tjs__hero-max [[layout.class]] [[layout.autoheight === false ? '' : 'tjs__hero-max--autoheight' ]] :: mobile :xxl: desktop">
8
+ <section class="tjs__hero-max [[layout.class]] [[layout.autoheight === false ? '' : 'tjs__hero-max--autoheight' ]] :: mobile :lg: desktop">
9
9
  <slot data-select="img.background, :scope>.content>p.background>img" class="slideshow"></slot>
10
+ <div class="x-overlay x-overlay1"></div>
11
+ <div class="x-overlay x-overlay2"></div>
12
+ <div class="x-overlay x-overlay3"></div>
10
13
  <div class="tjs__hero-max--out-wrapper ">
11
14
  <div class="tjs__hero-max--container [[layout.container]] ">
12
- <slot class="content" data-select=".slide || :scope > * "></slot>
15
+ <slot class="content heading-style-hero" data-select=".slide || :scope > * "></slot>
13
16
  </div>
14
17
  </div>
15
18
  </section>
@@ -1,4 +1,15 @@
1
- .tjs__hero-title-small {
1
+ .tjs-hero-title-small {
2
+
3
+ --layout-margin-top: 0;
4
+ --layout-margin-top-mobile: 0;
5
+
6
+
7
+ margin-top: var(--layout-margin-top);
8
+
9
+ @media (max-width: $breakpoint-mobile) {
10
+ margin-top: var(--layout-margin-top-mobile);
11
+ }
12
+
2
13
  width: 100%;
3
14
  align-items: center;
4
15
  position: relative;
@@ -5,11 +5,11 @@ Joda.registerTemplate("hero-title-small",
5
5
  // language=HTML
6
6
  `
7
7
 
8
- <div class="tjs__hero-title-small">
8
+ <section class="tjs-hero-title-small">
9
9
  <div class="imagewrapper">
10
10
  <slot class="image-slot" data-select="img, .top"></slot>
11
11
  </div>
12
12
 
13
13
  <slot></slot>
14
- </div>
14
+ </section>
15
15
  `);
@@ -16,8 +16,8 @@
16
16
  & > .burger-menu__text {
17
17
  padding-right: 5px;
18
18
  font-family: var(--t-font-family-header);
19
- font-size: var(--t-font-size-header);
20
- color: var(--t-text-color-primary);
19
+ font-size: var(--t-font-size-h5);
20
+ color: var(--t-primary);
21
21
  @media (width < 768px) {
22
22
  display: none;
23
23
  }
@@ -21,7 +21,7 @@
21
21
  --layout-burger-color: var(--t-accent);
22
22
  --layout-menu-color: var(--bs-primary);
23
23
  --layout-image-height: 80px;
24
- --layout-zoom-ratio: 2;
24
+ --layout-zoom-ratio: 1.6;
25
25
  --layout-zoom-ratio-mobile: 1.3;
26
26
  --layout-backdrop-height: 20px;
27
27
 
@@ -31,15 +31,17 @@
31
31
 
32
32
 
33
33
  --e-zoom-ratio: var(--layout-zoom-ratio);
34
- @media (width < 750px) {
34
+ --e-translatey: 70%;
35
+ @media (width < $breakpoint-mobile) {
35
36
  --e-zoom-ratio: var(--layout-zoom-ratio-mobile);
37
+ --e-translatey: 50%;
36
38
  }
37
39
 
38
40
 
39
41
 
40
42
 
41
43
  &>.e--spacer {
42
- @media (width < 750px) {
44
+ @media (width < $breakpoint-mobile) {
43
45
  height: var(--layout-spacer-height-mobile);
44
46
  }
45
47
  height: var(--layout-spacer-height);
@@ -114,7 +116,9 @@
114
116
  img {
115
117
  height: var(--layout-image-height);
116
118
  transition: all 0.25s ease-in-out;
117
- width: auto; transform: translateY(50% ) scale(var(--e-zoom-ratio));
119
+ width: auto;
120
+
121
+ transform: translateY(var(--e-translatey)) scale(var(--e-zoom-ratio));
118
122
  max-width: 70vw;
119
123
  }
120
124
 
@@ -0,0 +1,274 @@
1
+ @import "bootstrap/scss/functions";
2
+
3
+ // 2. Include any default variable overrides here
4
+
5
+ // 3. Include remainder of required Bootstrap stylesheets
6
+ @import "bootstrap/scss/variables";
7
+
8
+ // 4. Include any default map overrides here
9
+
10
+ // 5. Include remainder of required parts
11
+ @import "bootstrap/scss/maps";
12
+ @import "bootstrap/scss/mixins";
13
+ @import "bootstrap/scss/root";
14
+
15
+
16
+ .isl-navbar-switch2 {
17
+
18
+
19
+ background: transparent;
20
+
21
+
22
+
23
+
24
+ img {
25
+ max-width: 100%;
26
+ }
27
+
28
+ &__top-bar {
29
+ margin-top: 15px;
30
+ margin-bottom: 15px;
31
+
32
+ ul {
33
+ display: flex;
34
+ justify-content: end;
35
+ margin-bottom: 0;
36
+ &>li {
37
+ list-style: none;
38
+ border-radius: 0;
39
+ padding: 7px 15px;
40
+
41
+ height: auto;
42
+ p {
43
+ margin-bottom: 0;
44
+ font-size: 15px;
45
+ color: $black;
46
+ }
47
+ &:not(:last-child) {
48
+ margin-right: 30px;
49
+ }
50
+ a {
51
+ text-decoration: none;
52
+ }
53
+ }
54
+ }
55
+ }
56
+
57
+ &__nav {
58
+ background: $white;
59
+ border-radius: 0;
60
+ width: 100%;
61
+ height: 80px;
62
+ align-content: center;
63
+ box-shadow: 0px 1px 2px #00000029;
64
+
65
+ overflow: hidden;
66
+ &--inner {
67
+ display: flex;
68
+ justify-content: end;
69
+ align-items: center;
70
+
71
+ }
72
+
73
+ &--logo {
74
+ margin-right: auto;
75
+
76
+
77
+ }
78
+
79
+ &--items {
80
+ display: flex;
81
+ margin-bottom: 0;
82
+
83
+ ul {
84
+ margin-bottom: 0;
85
+
86
+ li {
87
+ list-style: none;
88
+ display: inline-flex;
89
+ a {
90
+
91
+ font-size: 18px;
92
+ font-weight: 500;
93
+ margin-right: 2rem;
94
+ height: 80px;
95
+ line-height: 80px;
96
+ color: var(--text-color, black);
97
+ padding: 0 1rem;
98
+ transition: 0.3s;
99
+ text-decoration: none;
100
+
101
+ @include media-breakpoint-down(lg) {
102
+ margin-right: 0.5rem;
103
+ }
104
+
105
+ &:hover {
106
+ background: $primary;
107
+ color: $white;
108
+ }
109
+ }
110
+ }
111
+ }
112
+
113
+ }
114
+
115
+ &--mobile-menu {
116
+ position: relative;
117
+ width: 35px;
118
+ height: 30px;
119
+ opacity: 0.6;
120
+ cursor: pointer;
121
+
122
+ &-selector {
123
+ position: absolute;
124
+ padding: 20px; // Make the clickable area bigger
125
+ margin: -20px; // Make the clickable area bigger
126
+ z-index: 3;
127
+ div {
128
+ width: 35px;
129
+ height: 3px;
130
+ background-color: black;
131
+ margin: 6px 0;
132
+ }
133
+ }
134
+
135
+ &:hover {
136
+ opacity: 1;
137
+ }
138
+
139
+ }
140
+ }
141
+
142
+ &.floating {
143
+ position: absolute;
144
+ top:0;
145
+ left:0;
146
+ right:0;
147
+ z-index: 999;
148
+ }
149
+
150
+ &.mobile {
151
+
152
+ &.floating {
153
+ position: static;
154
+
155
+ }
156
+ .isl-navbar-switch2__top-bar {
157
+ justify-content: unset;
158
+
159
+ &--item {
160
+ &:last-child {
161
+ margin-left: auto;
162
+ }
163
+ }
164
+ }
165
+
166
+
167
+
168
+
169
+ .isl-navbar-switch2__nav {
170
+ height: auto;
171
+ padding: 20px 10px 20px 0;
172
+
173
+ &--inner {
174
+ justify-content: unset;
175
+ padding-left: unset;
176
+ padding-right: unset;
177
+ }
178
+
179
+ &--items {
180
+ display: none;
181
+ }
182
+
183
+ &--logo {
184
+
185
+ }
186
+ }
187
+
188
+
189
+
190
+ }
191
+
192
+ aside {
193
+ &>.backdrop {
194
+ position: fixed;
195
+ background-color: var(--nav-sidbar-backgrond-color, $primary);
196
+ opacity: 0.4;
197
+ top:0; bottom: 0; left: 0; right: 0;
198
+ width: 100%;
199
+ height: 100%;
200
+ transform: scale(0%);
201
+ -webkit-transform: scale(0, 0);
202
+ transition: all 0.1s ease-in-out;
203
+ z-index:9998;
204
+ }
205
+ &>.menu {
206
+
207
+
208
+ position: fixed;
209
+ top: 0; bottom: 0; right: 0;
210
+ width: 90vw;
211
+ max-width: 300px;
212
+ z-index: 9999;
213
+ transform: translateX(100%);
214
+ background-color: var(--nav-sidbar-backgrond-color, $primary);
215
+ // Do big black shadow
216
+ box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px;
217
+ transition: all 0.2s ease-in-out;
218
+
219
+ ul {
220
+ padding: 0;
221
+ margin: 0;
222
+ &>li {
223
+ list-style: none;
224
+ width: 100%;
225
+ &>a {
226
+ &:hover {
227
+ background-color: var(--nav-sidbar-backgrond-color-hover, darken($primary, 10%));
228
+ }
229
+
230
+ display: block;
231
+ text-decoration: none;
232
+ width: 100%;
233
+ padding: 15px;
234
+ color: $white;
235
+ border-bottom: 1px solid rgba(255, 255, 255, 0.5);
236
+ }
237
+ }
238
+ }
239
+
240
+ &>.menu-header {
241
+ width: 100%;
242
+ border-bottom: 1px solid rgba(255, 255,255,0.5);
243
+ display: flex;
244
+ align-content: center;
245
+ justify-content: end;
246
+
247
+ &>svg {
248
+ cursor: pointer;
249
+ margin: 20px;
250
+ color: $white;
251
+ height: 38px;
252
+ width: 38px;
253
+ }
254
+ }
255
+ }
256
+
257
+ }
258
+
259
+ &.sidebar {
260
+ aside {
261
+ &>.backdrop {
262
+ transform: scale(100%);
263
+ -webkit-transform: scale(100%, 100%);
264
+ }
265
+ &>.menu {
266
+ transform: translateX(0%);
267
+ }
268
+
269
+
270
+ }
271
+ }
272
+
273
+
274
+ }
@@ -0,0 +1,47 @@
1
+
2
+ // language=HTML
3
+ import {Joda, JodaDescriptionManager} from "@leuffen/jodastyle";
4
+
5
+ const html = `
6
+
7
+ <nav class="isl-navbar-switch2 :: mobile :xl:">
8
+
9
+ <div class="isl-navbar-switch2__top-bar container-xxl">
10
+ <slot data-select="ul.navbar-top"></slot>
11
+ </div>
12
+ <div class="isl-navbar-switch2__nav">
13
+ <div class="container-xl">
14
+ <div class="isl-navbar-switch2__nav--inner">
15
+ <div class="isl-navbar-switch2__nav--logo">
16
+ <slot data-select=".brand"></slot>
17
+ </div>
18
+ <div class="isl-navbar-switch2__nav--items :: d-none :xl: d-block">
19
+ <slot data-select="ul.navbar-main" data-child-class="isl-navbar-switch2__nav--items-item"></slot>
20
+ </div>
21
+ <div class="isl-navbar-switch2__nav--mobile-menu :: :xl: d-none" >
22
+ <div class="isl-navbar-switch2__nav--mobile-menu-selector" onclick="this.closest('nav').classList.toggle('sidebar')">
23
+ <div></div>
24
+ <div></div>
25
+ <div></div>
26
+ </div>
27
+
28
+ </div>
29
+ </div>
30
+ </div>
31
+ </div>
32
+ <aside>
33
+ <div class="backdrop" onclick="this.closest('nav').classList.remove('sidebar')"></div>
34
+ <div class="menu">
35
+ <div class="menu-header">
36
+ <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-x-lg" viewBox="0 0 16 16" onclick="this.closest('nav').classList.remove('sidebar')">
37
+ <path d="M2.146 2.854a.5.5 0 1 1 .708-.708L8 7.293l5.146-5.147a.5.5 0 0 1 .708.708L8.707 8l5.147 5.146a.5.5 0 0 1-.708.708L8 8.707l-5.146 5.147a.5.5 0 0 1-.708-.708L7.293 8 2.146 2.854Z"/>
38
+ </svg>
39
+ </div>
40
+ <slot data-select="ul.navbar-main" data-copy="1" data-child-class="isl-navbar-switch2__nav--items-item"></slot>
41
+ </div>
42
+ </aside>
43
+ </nav>
44
+
45
+ `;
46
+
47
+ Joda.registerTemplate("navbar-switch2", html);
@@ -0,0 +1,73 @@
1
+ import {defineSection, example, SectionLayoutGroup} from "../sections.def";
2
+
3
+
4
+ defineSection('sec-card-2col', SectionLayoutGroup.Content)`
5
+
6
+ This section displays a card with two columns. A Main column with the text or main content and a side column.
7
+
8
+ The will be automatically pulled into the side-column. Additional side content can be specified by adding
9
+ a .aside class to the element.
10
+
11
+ This element can be used multiple times in the main content of a page. It should not be used more than 3 times
12
+ in a row without a different section in between (due to the visual similarity).
13
+
14
+ If a blockquote element is specified as first element, it will be used as a big callout header. Use this
15
+ to highlight important information but keep it short (text size is .h1).
16
+
17
+ `;
18
+
19
+
20
+ example("Section with image and Accordion below the text.")`
21
+ ## Vorsorge
22
+ {: layout="use: #sec-card-2col"}
23
+
24
+ > Vorsorge ist die beste Medizin!
25
+
26
+ ![](https://cdn.leuffen.de//leu-stock/v2/76/c_gfedcba/AdobeStock_79790308.webp)
27
+
28
+ Schützen Sie sich und Ihre Lieben durch regelmäßige Untersuchungen, präventive Maßnahmen und individuelle Beratung. Wir stehen Ihnen zur Seite, um potenzielle Gesundheitsrisiken frühzeitig zu erkennen und maßgeschneiderte Präventionspläne zu entwickeln.
29
+
30
+ ---
31
+ {: layout="use: accordion()" class="mt-5"}
32
+
33
+ ### Gesundheits-Check-Up
34
+
35
+ Der Gesundheits-Check-Up ist eine umfassende Untersuchung, die dazu dient, Krankheiten frühzeitig zu erkennen und zu behandeln. Dieser Check-Up ist für alle Patienten ab 35 Jahren alle drei Jahre und für HZV Patienten alle 2 Jahre empfohlen.
36
+
37
+ ### Hautkrebs-Früherkennung
38
+
39
+ Die Hautkrebs-Früherkennung ist eine wichtige Maßnahme zur Früherkennung von Hautkrebs. Sie sollte ab dem 35. Lebensjahr regelmäßig durchgeführt werden. Dieser Check ist für alle Patienten alle zwei Jahre empfohlen.
40
+
41
+ ### Impfungen
42
+
43
+ Impfungen sind eine wichtige Maßnahme zur Vorbeugung von Infektionskrankheiten. Wir beraten Sie gerne zu den empfohlenen Impfungen und führen diese in unserer Praxis durch. Für Impfungen ist kein Termin erforderlich. Kommen Sie einfach während der Sprechzeiten vorbei.
44
+
45
+
46
+ `;
47
+
48
+
49
+ example("Example with Header, Image on one side and Header Text and form on the other side.")`
50
+ ## Online Rezept
51
+ {: layout="use: #sec-card-2col"}
52
+
53
+ > Jetzt Wiederholungsrezept online anfragen
54
+
55
+ ![](https://cdn.leuffen.de//leu-stock/v2/96/c_gfedcba/AdobeStock_249986710.webp)
56
+
57
+ Mit unserem Online-Rezeptformular können Sie bequem von zu Hause aus ein neues Rezept für Ihre Dauermedikation oder Folgerezepte anfordern.
58
+ **Bestellungen vor 10:00 Uhr können am Folgetag abgeholt werden.**
59
+
60
+ ---
61
+ {: layout="use: #e-form" .mt-5}
62
+
63
+ [input type="text" name="Name" required .mb-3]
64
+ [input type="date" name="Geburtsdatum" required .mb-3]
65
+ [input type="email" name="E-Mail" required .mb-3]
66
+ [input type="tel" name="Telefon" required .mb-3]
67
+ [textarea name="Medikament" required .mb-3]
68
+ [textarea name="Ihre Nachricht (optional)" .mb-3 style="height: 120px;"]
69
+ [input type="checkbox" name="Datenschutz" label="Ich akzeptiere die Datenschutzbestimmungen" required .mb-3]
70
+ [input type="submit" value="Absenden" .btn .btn-primary .btn-lg .mt-3]
71
+
72
+ `;
73
+