@leuffen/themejs1 7.0.1 → 7.0.3

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 (54) hide show
  1. package/_tpl/_root/.kick.yml +5 -0
  2. package/_tpl/_root/.schiller-context.txt +16 -0
  3. package/_tpl/_root/docs/_includes/el/address.html +2 -0
  4. package/_tpl/_root/docs/_includes/el/lang-chooser-list.html +24 -0
  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 +1 -1
  8. package/_tpl/_root/docs/_layouts/legal/impressum.html +1 -1
  9. package/_tpl/_root/package.json +1 -12
  10. package/_tpl/_root/src/_variables.scss +2 -2
  11. package/_tpl/pages/hausarzt-index-singleleistung.de.md +13 -5
  12. package/_tpl/pages/hausarzt-index.de.md +7 -4
  13. package/_tpl/pages/index-singlepage-frauenarzt.de.md +10 -4
  14. package/_tpl/pages/index.de.md +8 -4
  15. package/_tpl/service/online-anmeldung.de.md +49 -0
  16. package/_tpl/service/online-videosprechstunde.de.md +55 -0
  17. package/_variables.scss +3 -0
  18. package/dist/elements/button-group/button-group.d.ts +1 -0
  19. package/dist/elements/button-group/button-group.js +8 -0
  20. package/dist/elements/elements.d.ts +2 -0
  21. package/dist/elements/elements.js +2 -0
  22. package/dist/elements/hero-slide/hero-slide.d.ts +1 -0
  23. package/dist/elements/hero-slide/hero-slide.js +15 -0
  24. package/dist/sections/hero-max/hero-max.js +1 -7
  25. package/dist/sections/navbar-centerlogo/navbar-centerlogo.js +42 -21
  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 -1
  29. package/dist/sections/sections.d.ts +1 -0
  30. package/dist/sections/sections.js +1 -0
  31. package/elements/_text-format.scss +3 -0
  32. package/elements/button-group/button-group.scss +31 -0
  33. package/elements/button-group/button-group.ts +10 -0
  34. package/elements/elements.scss +3 -0
  35. package/elements/elements.ts +2 -0
  36. package/elements/hero-slide/hero-slide.scss +44 -0
  37. package/elements/hero-slide/hero-slide.ts +21 -0
  38. package/package.json +13 -11
  39. package/sections/_defaults.scss +4 -1
  40. package/sections/hero-max/hero-max.scss +7 -17
  41. package/sections/hero-max/hero-max.ts +1 -7
  42. package/sections/navbar-centerlogo/_burger-menu.scss +3 -1
  43. package/sections/navbar-centerlogo/_sidebar.scss +80 -0
  44. package/sections/navbar-centerlogo/navbar-centerlogo.scss +89 -115
  45. package/sections/navbar-centerlogo/navbar-centerlogo.ts +46 -21
  46. package/sections/navbar-switch2/navbar-switch2.scss +274 -0
  47. package/sections/navbar-switch2/navbar-switch2.ts +47 -0
  48. package/sections/sec-card-2col/sec-card-2col.scss +28 -0
  49. package/sections/sec-card-2col/sec-card-2col.ts +2 -1
  50. package/sections/sec-testimonial-ribbon/sec-testimonial-ribbon.scss +6 -3
  51. package/sections/sections.scss +1 -0
  52. package/sections/sections.ts +1 -0
  53. package/themes/theme1/index.scss +1 -1
  54. package/themes/theme2/index.scss +1 -1
@@ -0,0 +1,3 @@
1
+ .address {
2
+ white-space: pre-wrap;
3
+ }
@@ -0,0 +1,31 @@
1
+
2
+ .tjs-button-group {
3
+
4
+ --layout-gap: 1rem;
5
+ // --layout-breakpoint: 1024px; Not Working on media query
6
+
7
+ &>slot {
8
+ display: flex;
9
+ flex-wrap: wrap;
10
+
11
+ &>* {
12
+ width: 100%;
13
+ }
14
+ p {
15
+ width: 100%;
16
+ display: flex;
17
+ flex-direction: row;
18
+ @media (width < 500px) {
19
+ flex-direction: column;
20
+ }
21
+ align-items: stretch;
22
+ gap: var(--layout-gap);
23
+ &>* {
24
+ flex-grow: 1;
25
+
26
+ }
27
+ }
28
+
29
+ }
30
+
31
+ }
@@ -0,0 +1,10 @@
1
+ import {Joda} from "@leuffen/jodastyle";
2
+
3
+
4
+ Joda.registerTemplate("button-group",
5
+ // language=HTML
6
+ `
7
+ <div class="tjs-button-group">
8
+ <slot></slot>
9
+ </div>
10
+ `);
@@ -2,3 +2,6 @@
2
2
  @import "background-color";
3
3
  @import "list-style";
4
4
  @import "e-form/e-form";
5
+ @import "hero-slide/hero-slide";
6
+ @import "button-group/button-group";
7
+ @import "text-format";
@@ -1 +1,3 @@
1
1
  export * from "./e-form/e-form";
2
+ export * from "./hero-slide/hero-slide";
3
+ export * from "./button-group/button-group";
@@ -0,0 +1,44 @@
1
+
2
+
3
+ .hero-slide {
4
+
5
+ --layout-box-color: rgba(255, 255, 255, 0.8);
6
+ --layout-text-shadow: 0 0 2px rgba(255, 255, 255, 1);
7
+ --layout-align-self: center;
8
+ --layout-justify-self: center;
9
+ --layout-cols: 6;
10
+
11
+ --layout-y-adjust: 25%;
12
+ --layout-x-adjust: 25%;
13
+
14
+ align-self: var(--layout-align-self);
15
+ justify-self: var(--layout-justify-self);
16
+
17
+
18
+
19
+ &.desktop {
20
+ margin-top: var(--layout-y-adjust);
21
+ margin-left: var(--layout-x-adjust);
22
+ width: calc(100% / 12 * var(--layout-cols));
23
+ &.box {
24
+ padding: 10px;
25
+ background-color: var(--layout-box-color);
26
+ }
27
+
28
+ &.glow {
29
+ &>slot {
30
+ &>h1,h2,h3,&>p {
31
+ text-shadow: var(--layout-text-shadow);
32
+ }
33
+ }
34
+ }
35
+ }
36
+ &.mobile {
37
+ width: 100%;
38
+ }
39
+
40
+
41
+
42
+
43
+
44
+ }
@@ -0,0 +1,21 @@
1
+ import {Joda} from "@leuffen/jodastyle";
2
+
3
+ Joda.registerTemplate("hero-slide",
4
+ // language=HTML
5
+ `
6
+
7
+ <article class="hero-slide :: mobile :xl: desktop">
8
+ <slot></slot>
9
+ </article>
10
+
11
+ `,
12
+ {
13
+ cols: 6
14
+ },
15
+ {
16
+ onAfterConnectedCallback: (el) => {
17
+
18
+ }
19
+ }
20
+
21
+ );
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leuffen/themejs1",
3
- "version": "7.0.1",
3
+ "version": "7.0.3",
4
4
 
5
5
  "description": "",
6
6
  "license": "proprietary",
@@ -54,17 +54,15 @@
54
54
  ],
55
55
  "author": "",
56
56
  "dependencies": {
57
- "@leuffen/jodastyle": "^3.0.9",
58
- "@kasimirjs/embed": "^1.0.8",
59
- "@leuffen/isl-base": "^3.0.4",
60
- "@leuffen/liscom": "^2.0.8",
61
- "@leuffen/liscom-loader": "^1.0.6",
62
- "@leuffen/liweco-base": "^2.0.2",
57
+ "@leuffen/jodastyle": "^3.1.2",
58
+ "@kasimirjs/embed": "^1.0.23",
59
+ "@leuffen/isl-base": "^3.0.7",
60
+ "@leuffen/liscom": "^2.0.10",
61
+ "@leuffen/liscom-loader": "^1.1.10",
62
+ "@leuffen/liweco-base": "^2.0.3",
63
63
  "@micx/lib-js": "^1.0.22",
64
- "bootstrap": "^5.3.0"
65
- },
66
- "devDependencies": {
67
- "@micx/lib-js": "^1.0.18",
64
+ "bootstrap": "^5.3.0",
65
+
68
66
  "@kasimirjs/kit-bootstrap": "^1.0.4",
69
67
  "markdown-it": "^13.0.1",
70
68
  "markdown-it-attrs": "^4.1.6",
@@ -79,6 +77,10 @@
79
77
  "webpack": "^5.75.0",
80
78
  "webpack-cli": "^5.0.1",
81
79
  "webpack-dev-server": "^4.11.1"
80
+
81
+ },
82
+ "devDependencies": {
83
+
82
84
  },
83
85
  "scripts": {
84
86
  "make.mjs": "tsc -d",
@@ -3,7 +3,7 @@
3
3
  --t-background-footer: #{$background-footer};
4
4
  --t-section-background: transparent;
5
5
  --t-section-background-accent: #{$background-accent};
6
- --t-section-background-primary: #D6EED9;
6
+ --t-section-background-primary: #{$soft-primary};
7
7
 
8
8
 
9
9
  --t-font-family-base: #{$font-family-base};
@@ -34,5 +34,8 @@
34
34
  --t-section-inner-padding: 3rem;
35
35
 
36
36
  --t-accent: #{$accent};
37
+ --t-primary: #{$primary};
38
+ --t-soft-primary: #{$soft-primary};
39
+ --t-soft-accent: #{$soft-accent};
37
40
 
38
41
  }
@@ -43,6 +43,11 @@
43
43
  }
44
44
 
45
45
  }
46
+
47
+ .tjs__hero-max--container {
48
+ height: 100%;
49
+ }
50
+
46
51
  min-height: var(--layout-min-height, 400px);
47
52
  position: relative;
48
53
  &.tjs__hero-max--autoheight {
@@ -87,33 +92,18 @@
87
92
 
88
93
 
89
94
 
90
- h1 {
91
- font-size: calc(1.5em + 1vw);
92
- }
93
95
 
94
96
  .slideshow:empty {
95
97
  display: none;
96
98
  }
97
99
 
98
- h1.glow {
99
- color: white;
100
- text-shadow: 0 0 10px var(--t-text-color), 0 0 20px var(--t-text-color), 0 0 30px var(--t-text-color), 0 0 40px var(--t-text-color), 0 0 50px var(--t-text-color), 0 0 60px var(--t-text-color), 0 0 70px var(--t-text-color);
101
- }
100
+ slot.content{
101
+ display: grid;
102
102
 
103
-
104
- .tjs-_hero-max--inner-wrapper {
105
- position: relative;
106
- width: 100%;
107
103
  height: 100%;
108
104
  }
109
105
 
110
106
 
111
- .tjs__hero-max--section-text {
112
- }
113
-
114
- .offsetmodifier {
115
- height: 100px;
116
- }
117
107
 
118
108
 
119
109
  }
@@ -9,19 +9,13 @@ Joda.registerTemplate("hero-max",
9
9
  <slot data-select="img.background, :scope>.content>p.background>img" class="slideshow"></slot>
10
10
  <div class="tjs__hero-max--out-wrapper ">
11
11
  <div class="tjs__hero-max--container [[layout.container]] ">
12
- <div class="tjs__hero-max--inner-wrapper :: :xxl: col-[[layout.cols]]">
13
- <div class="tjs__hero-max--section-text">
14
- <slot></slot>
15
- </div>
16
- </div>
17
- </div>
12
+ <slot class="content" data-select=".slide || :scope > * "></slot>
18
13
  </div>
19
14
  </div>
20
15
  </section>
21
16
 
22
17
  `,
23
18
  {
24
- cols: "6",
25
19
  'aspect-ratio': "5/4",
26
20
  },
27
21
  {
@@ -28,7 +28,9 @@
28
28
  padding: 20px; // Make the clickable area bigger
29
29
  margin: -20px; // Make the clickable area bigger
30
30
  z-index: 3;
31
- opacity: 0.6;transform: scale(1); transition: all 0.1s ease-in-out;
31
+ transition: all 0.1s ease-in-out;
32
+ opacity: 0.7;
33
+ transform: scale(1);
32
34
  div {
33
35
  width: 35px;
34
36
  height: 3px;
@@ -0,0 +1,80 @@
1
+ aside {
2
+ &>.backdrop {
3
+ position: fixed;
4
+ background-color: var(--nav-sidbar-backgrond-color, $primary);
5
+ opacity: 0.4;
6
+ top:0; bottom: 0; left: 0; right: 0;
7
+ width: 100%;
8
+ height: 100%;
9
+ transform: scale(0%);
10
+ -webkit-transform: scale(0, 0);
11
+ transition: all 0.1s ease-in-out;
12
+ z-index:9998;
13
+ }
14
+ &>.menu {
15
+
16
+
17
+ position: fixed;
18
+ top: 0; bottom: 0; right: 0;
19
+ width: 90vw;
20
+ max-width: 300px;
21
+ z-index: 9999;
22
+ transform: translateX(100%);
23
+ background-color: var(--nav-sidbar-backgrond-color, $primary);
24
+ // Do big black shadow
25
+ box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px;
26
+ transition: all 0.2s ease-in-out;
27
+
28
+ ul {
29
+ padding: 0;
30
+ margin: 0;
31
+ &>li {
32
+ list-style: none;
33
+ width: 100%;
34
+ &>a {
35
+ &:hover {
36
+ background-color: var(--nav-sidbar-backgrond-color-hover, darken($primary, 10%));
37
+ }
38
+
39
+ display: block;
40
+ text-decoration: none;
41
+ width: 100%;
42
+ padding: 15px;
43
+ color: $white;
44
+ border-bottom: 1px solid rgba(255, 255, 255, 0.5);
45
+ }
46
+ }
47
+ }
48
+
49
+ &>.menu-header {
50
+ width: 100%;
51
+ border-bottom: 1px solid rgba(255, 255,255,0.5);
52
+ display: flex;
53
+ align-content: center;
54
+ justify-content: end;
55
+
56
+ &>svg {
57
+ cursor: pointer;
58
+ margin: 20px;
59
+ color: $white;
60
+ height: 38px;
61
+ width: 38px;
62
+ }
63
+ }
64
+ }
65
+
66
+ }
67
+
68
+ &.sidebar {
69
+ aside {
70
+ &>.backdrop {
71
+ transform: scale(100%);
72
+ -webkit-transform: scale(100%, 100%);
73
+ }
74
+ &>.menu {
75
+ transform: translateX(0%);
76
+ }
77
+
78
+
79
+ }
80
+ }
@@ -17,159 +17,133 @@
17
17
 
18
18
  --layout-bg-default: transparent;
19
19
  --layout-bg-sticky: #fff;
20
- --layout-bg-sticky-shadow: 0px 1px 2px #000;
20
+ --layout-bg-sticky-shadow: 0px 1px 5px rgba(0, 0, 0, 0.6);
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;
25
+ --layout-zoom-ratio-mobile: 1.3;
26
+ --layout-backdrop-height: 20px;
24
27
 
28
+ --layout-spacer-height: 0px;
29
+ --layout-spacer-color: rgba(255,255,255,1);
30
+ --layout-spacer-height-mobile: calc(var(--layout-image-height) * var(--layout-zoom-ratio-mobile));
25
31
 
26
- background-color: var(--layout-bg-default);
27
- position: absolute;
28
- top: 0;
29
- width: 100vw;
30
- height: auto;
31
- z-index: 999;
32
32
 
33
- .brand img {
34
- height: auto;
35
-
36
- width: 50%;
33
+ --e-zoom-ratio: var(--layout-zoom-ratio);
34
+ @media (width < 750px) {
35
+ --e-zoom-ratio: var(--layout-zoom-ratio-mobile);
37
36
  }
38
37
 
39
- &.scrolled img.brand {
40
- width: auto;
41
- height: 80px;
42
-
43
- }
44
38
 
45
39
 
46
- &>.navbar__wrapper {
47
- display: flex;
48
- justify-content: space-between;
49
- flex-wrap: nowrap;
50
- flex-direction: row;
51
40
 
52
- & > *{
53
- flex-grow: 1;
54
- display: flex;
55
- width: 33%;
41
+ &>.e--spacer {
42
+ @media (width < 750px) {
43
+ height: var(--layout-spacer-height-mobile);
56
44
  }
57
- &>.navbar__logo {
58
- transition: all 0.5s ease-in-out;
59
- align-items: center;
60
- justify-content: center;
61
- display: flex;
45
+ height: var(--layout-spacer-height);
46
+ position: relative;
47
+ background-color: var(--layout-spacer-color);
62
48
 
49
+ }
50
+ &>.e--backdrop {
51
+ position: absolute;
52
+ width: 100vw;
53
+ left: 0;
54
+ z-index: 9;
55
+ height: var(--layout-backdrop-height);
56
+ background: linear-gradient(180deg, var(--layout-spacer-color) 0%, rgba(0,0,0,0) 100%);
57
+ }
58
+ &>.navbar {
59
+ background-color: var(--layout-bg-default);
63
60
 
64
- img {
65
- height: var(--layout-image-height);
66
- transition: all 0.25s ease-in-out;
67
- width: auto; transform: translateY(50%) scale(2);
68
- max-width: 70vw;
69
- }
61
+ position: absolute;
62
+ top: 0;
63
+ width: 100vw;
64
+ height: auto;
65
+ z-index: 999;
70
66
 
71
- }
72
- @import "burger-menu";
67
+ .brand img {
68
+ height: auto;
73
69
 
74
- }
70
+ width: 50%;
71
+ }
75
72
 
76
- transition: background-color 0.2s ease-in-out;
77
73
 
74
+ &.unscrolled {
78
75
 
79
76
 
80
- &.scrolled {
81
- height: var(--layout-scrolled-height);
82
- position: fixed;
83
- top: 0;
84
- width: 100vw;
85
- background-color: var(--layout-bg-sticky);
86
- .navbar__logo img {
87
- transform: translateY(0) scale(1);
88
77
  }
89
- }
90
78
 
79
+ &.scrolled {
80
+ box-shadow: var(--layout-bg-sticky-shadow);
81
+ img.brand {
82
+ width: auto;
83
+ height: 80px;
91
84
 
85
+ }
86
+ }
92
87
 
93
- aside {
94
- &>.backdrop {
95
- position: fixed;
96
- background-color: var(--nav-sidbar-backgrond-color, $primary);
97
- opacity: 0.4;
98
- top:0; bottom: 0; left: 0; right: 0;
99
- width: 100%;
100
- height: 100%;
101
- transform: scale(0%);
102
- -webkit-transform: scale(0, 0);
103
- transition: all 0.1s ease-in-out;
104
- z-index:9998;
88
+
89
+ transform: translateY(0);
90
+ transition: all 0.3s ease-in-out;
91
+ &.scrollup {
92
+ transform: translateY(-100%);
105
93
  }
106
- &>.menu {
107
94
 
108
95
 
109
- position: fixed;
110
- top: 0; bottom: 0; right: 0;
111
- width: 90vw;
112
- max-width: 300px;
113
- z-index: 9999;
114
- transform: translateX(100%);
115
- background-color: var(--nav-sidbar-backgrond-color, $primary);
116
- // Do big black shadow
117
- box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px;
118
- transition: all 0.2s ease-in-out;
119
-
120
- ul {
121
- padding: 0;
122
- margin: 0;
123
- &>li {
124
- list-style: none;
125
- width: 100%;
126
- &>a {
127
- &:hover {
128
- background-color: var(--nav-sidbar-backgrond-color-hover, darken($primary, 10%));
129
- }
130
-
131
- display: block;
132
- text-decoration: none;
133
- width: 100%;
134
- padding: 15px;
135
- color: $white;
136
- border-bottom: 1px solid rgba(255, 255, 255, 0.5);
137
- }
138
- }
139
- }
96
+ &>.navbar__wrapper {
97
+ display: flex;
98
+ justify-content: space-between;
99
+ flex-wrap: nowrap;
100
+ flex-direction: row;
140
101
 
141
- &>.menu-header {
142
- width: 100%;
143
- border-bottom: 1px solid rgba(255, 255,255,0.5);
102
+ & > *{
103
+ flex-grow: 1;
144
104
  display: flex;
145
- align-content: center;
146
- justify-content: end;
147
-
148
- &>svg {
149
- cursor: pointer;
150
- margin: 20px;
151
- color: $white;
152
- height: 38px;
153
- width: 38px;
105
+ width: 33%;
106
+ }
107
+ &>.navbar__logo {
108
+ transition: all 0.5s ease-in-out;
109
+ align-items: center;
110
+ justify-content: center;
111
+ display: flex;
112
+
113
+
114
+ img {
115
+ height: var(--layout-image-height);
116
+ transition: all 0.25s ease-in-out;
117
+ width: auto; transform: translateY(50% ) scale(var(--e-zoom-ratio));
118
+ max-width: 70vw;
154
119
  }
120
+
155
121
  }
122
+ @import "burger-menu";
123
+
156
124
  }
157
125
 
158
- }
159
126
 
160
- &.sidebar {
161
- aside {
162
- &>.backdrop {
163
- transform: scale(100%);
164
- -webkit-transform: scale(100%, 100%);
165
- }
166
- &>.menu {
167
- transform: translateX(0%);
168
- }
169
127
 
170
128
 
129
+
130
+ &.scrolled {
131
+ height: var(--layout-scrolled-height);
132
+ position: fixed;
133
+ top: 0;
134
+ width: 100vw;
135
+ background-color: var(--layout-bg-sticky);
136
+ .navbar__logo img {
137
+ transform: translateY(0) scale(1);
138
+ }
171
139
  }
140
+
172
141
  }
173
142
 
174
143
 
144
+
145
+
146
+ @import "sidebar";
147
+
148
+
175
149
  }