@openeuropa/bcl-theme-default 0.12.0 → 0.16.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.
Files changed (67) hide show
  1. package/bcl-builder.config.js +4 -0
  2. package/css/oe-bcl-default.css +1604 -63
  3. package/css/oe-bcl-default.css.map +1 -1
  4. package/css/oe-bcl-default.min.css +1 -1
  5. package/css/oe-bcl-default.min.css.map +1 -1
  6. package/icons/icons-flag.svg +1 -0
  7. package/js/oe-bcl-default.bundle.js +53 -21
  8. package/js/oe-bcl-default.bundle.js.map +1 -1
  9. package/js/oe-bcl-default.bundle.min.js +1 -1
  10. package/js/oe-bcl-default.bundle.min.js.map +1 -1
  11. package/js/oe-bcl-default.esm.min.js.map +1 -1
  12. package/js/oe-bcl-default.umd.js +61 -24
  13. package/js/oe-bcl-default.umd.js.map +1 -1
  14. package/js/oe-bcl-default.umd.min.js +1 -1
  15. package/js/oe-bcl-default.umd.min.js.map +1 -1
  16. package/package.json +6 -5
  17. package/src/scss/_badge.scss +17 -1
  18. package/src/scss/_banners.scss +9 -7
  19. package/src/scss/_bcl-offcanvas.scss +4 -4
  20. package/src/scss/_footer.scss +16 -7
  21. package/src/scss/_header.scss +68 -17
  22. package/src/scss/_inpage-navigation.scss +19 -0
  23. package/src/scss/_multiselect.scss +3 -2
  24. package/src/scss/_timeline.scss +78 -0
  25. package/src/scss/_utilities.scss +70 -0
  26. package/src/scss/_variables.scss +27 -15
  27. package/src/scss/oe-bcl-default.scss +2 -14
  28. package/templates/bcl-badge/badge.html.twig +9 -1
  29. package/templates/bcl-banner/banner.html.twig +22 -5
  30. package/templates/bcl-base-templates/content-type.html.twig +116 -0
  31. package/templates/bcl-base-templates/listing-page.html.twig +63 -0
  32. package/templates/{bcl-group-landing-listing/group-landing-listing-offcanvas.html.twig → bcl-base-templates/sidebar-search.html.twig} +0 -1
  33. package/templates/bcl-breadcrumb/breadcrumb.html.twig +2 -2
  34. package/templates/bcl-card/card.html.twig +43 -42
  35. package/templates/bcl-content-banner/content-banner.html.twig +103 -0
  36. package/templates/bcl-date-block/date-block.html.twig +42 -0
  37. package/templates/bcl-description-list/description-list.html.twig +110 -0
  38. package/templates/bcl-event/event.html.twig +41 -0
  39. package/templates/bcl-fact-figures/fact-figures.html.twig +115 -0
  40. package/templates/bcl-featured-media/featured-media.html.twig +49 -5
  41. package/templates/bcl-file/file.html.twig +205 -0
  42. package/templates/bcl-footer/footer.html.twig +4 -2
  43. package/templates/bcl-group/group-landing.html.twig +101 -0
  44. package/templates/bcl-group/group.html.twig +27 -0
  45. package/templates/bcl-header/header.html.twig +11 -2
  46. package/templates/bcl-inpage-navigation/inpage-navigation.html.twig +42 -0
  47. package/templates/bcl-landing-page/landing-page.html.twig +59 -0
  48. package/templates/bcl-link/link.html.twig +5 -0
  49. package/templates/bcl-links-block/links-block.html.twig +5 -2
  50. package/templates/bcl-listing/listing.html.twig +67 -38
  51. package/templates/bcl-navbar/navbar.html.twig +22 -20
  52. package/templates/bcl-navigation/navigation.html.twig +135 -110
  53. package/templates/bcl-page/page.html.twig +64 -0
  54. package/templates/bcl-recent-activities/recent-activities.html.twig +1 -1
  55. package/templates/bcl-timeline/timeline.html.twig +109 -0
  56. package/templates/bcl-user/user-edit.html.twig +38 -0
  57. package/templates/{bcl-user-view → bcl-user}/user-view-compact.html.twig +2 -2
  58. package/templates/bcl-user/user-view.html.twig +96 -0
  59. package/templates/bcl-group-landing/group-landing.html.twig +0 -106
  60. package/templates/bcl-group-landing-listing/group-landing-listing.html.twig +0 -74
  61. package/templates/bcl-search/search-offcanvas.html.twig +0 -8
  62. package/templates/bcl-search/search.html.twig +0 -48
  63. package/templates/bcl-user-edit/edit-contents.html.twig +0 -32
  64. package/templates/bcl-user-edit/user-edit.html.twig +0 -19
  65. package/templates/bcl-user-listing/user-listing-offcanvas.html.twig +0 -8
  66. package/templates/bcl-user-listing/user-listing.html.twig +0 -48
  67. package/templates/bcl-user-view/user-view.html.twig +0 -106
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@openeuropa/bcl-theme-default",
3
3
  "author": "European Commission",
4
4
  "license": "EUPL-1.2",
5
- "version": "0.12.0",
5
+ "version": "0.16.0",
6
6
  "description": "OE - BCL theme default",
7
7
  "scripts": {
8
8
  "build": "npm-run-all build:*",
@@ -13,9 +13,10 @@
13
13
  "prepublish": "npm run build"
14
14
  },
15
15
  "devDependencies": {
16
- "@openeuropa/bcl-bootstrap": "^0.12.0",
17
- "@openeuropa/bcl-builder": "^0.12.0",
18
- "@openeuropa/bcl-twig-templates": "^0.12.0",
16
+ "@ecl/resources-flag-icons": "3.1.3",
17
+ "@openeuropa/bcl-bootstrap": "^0.16.0",
18
+ "@openeuropa/bcl-builder": "^0.16.0",
19
+ "@openeuropa/bcl-twig-templates": "^0.16.0",
19
20
  "copyfiles": "2.4.1",
20
21
  "cross-env": "7.0.3",
21
22
  "glob": "7.2.0",
@@ -39,5 +40,5 @@
39
40
  "design-system",
40
41
  "twig"
41
42
  ],
42
- "gitHead": "b39df646cb20e7faf4564fe7d6bc78aa6bc9022f"
43
+ "gitHead": "39a52d25c36789a0c4712b0f6e55cbc5cbbedcb5"
43
44
  }
@@ -2,7 +2,8 @@
2
2
  .badge {
3
3
  font-size: $badge-font-size;
4
4
  font-weight: $badge-font-weight;
5
- vertical-align: 15%;
5
+ display: inline-flex;
6
+ align-items: center;
6
7
  @include media-breakpoint-up(md) {
7
8
  font-size: $badge-font-size-desktop;
8
9
  }
@@ -82,3 +83,18 @@ a {
82
83
  font-size: 0.75em; // Default size in Bootstrap
83
84
  }
84
85
  }
86
+
87
+ @each $color, $value in $theme-colors {
88
+ .badge-outline-#{$color} {
89
+ border: $border-width solid $value;
90
+ color: $value !important;
91
+ background: transparent !important;
92
+ .icon--close {
93
+ background: $value;
94
+ color: $white;
95
+ @if $color == light {
96
+ color: $black;
97
+ }
98
+ }
99
+ }
100
+ }
@@ -30,7 +30,7 @@
30
30
 
31
31
  .bcl-banner__content {
32
32
  padding: map-get($spacers, "4-75") map-get($spacers, "4-5");
33
- border-color: $banner-content-border-color !important;
33
+ border-color: $banner-content-border-color;
34
34
  }
35
35
 
36
36
  .bcl-banner__image {
@@ -91,13 +91,15 @@
91
91
  border-left: 4px solid transparent;
92
92
  }
93
93
  }
94
+ }
94
95
 
95
- &.full-width {
96
- left: 50%;
97
- width: 100vw;
98
- margin-left: -50vw;
99
- border-radius: 0;
100
- }
96
+ .bcl-banner.full-width,
97
+ .bcl-content-banner {
98
+ left: 50%;
99
+ width: 100vw;
100
+ margin-left: -50vw;
101
+ border-radius: 0;
102
+ position: relative;
101
103
  }
102
104
 
103
105
  .bcl-banner__content {
@@ -1,16 +1,16 @@
1
- // stylelint-disable declaration-no-important
2
-
3
- @media screen and (min-width: 992px) {
1
+ @include media-breakpoint-up(lg) {
4
2
  .bcl-offcanvas {
5
3
  position: relative;
6
4
  width: auto;
7
- visibility: visible !important;
5
+ visibility: visible !important; // stylelint-disable-line declaration-no-important
8
6
  border: none;
9
7
  transform: none;
8
+
10
9
  .offcanvas-body {
11
10
  overflow: visible;
12
11
  }
13
12
  }
13
+
14
14
  .bcl-offcanvas + .offcanvas-backdrop {
15
15
  display: none;
16
16
  }
@@ -2,17 +2,26 @@
2
2
 
3
3
  $footer-border-color: #adb5bd !default;
4
4
 
5
- .bcl-footer {
6
- background: $eu-light-blue;
5
+ .bcl-footer--neutral {
6
+ background: $gray-600;
7
+ a,
8
+ p {
9
+ color: $white;
10
+ }
7
11
  }
8
12
 
9
- .bcl-footer.ec__footer {
10
- background: $ec-blue;
13
+ .bcl-footer--eu,
14
+ .eu__footer {
15
+ background: $eu-light-blue;
11
16
  }
12
17
 
13
- .bcl-footer.ec__footer a,
14
- .bcl-footer.ec__footer p {
15
- color: $white;
18
+ .bcl-footer--ec,
19
+ .ec__footer {
20
+ background: $ec-blue;
21
+ a,
22
+ p {
23
+ color: $white;
24
+ }
16
25
  }
17
26
 
18
27
  .bcl-footer *[class*="border-"] {
@@ -21,13 +21,11 @@ $header-link-active-background: #003776 !default;
21
21
  padding-bottom: map-get($spacers, 3);
22
22
  }
23
23
 
24
- .bcl-header__project {
25
- padding-top: map-get($spacers, 3);
26
- }
27
-
28
- .ec__header .bcl-header__project,
29
- .ec__header .bcl-header__navbar {
30
- background: $header-background;
24
+ .bcl-header--neutral {
25
+ .bcl-header__project,
26
+ .bcl-header__navbar {
27
+ background: $gray-600;
28
+ }
31
29
  }
32
30
 
33
31
  .bcl-navbar-header {
@@ -38,8 +36,20 @@ $header-link-active-background: #003776 !default;
38
36
  color: $eu-blue;
39
37
  }
40
38
 
41
- .bcl-header.ec__header .nav-link {
42
- color: $ec-blue;
39
+ .bcl-header--ec,
40
+ .ec__header {
41
+ .bcl-header__project,
42
+ .bcl-header__navbar {
43
+ background: $header-background;
44
+ }
45
+
46
+ .nav-link {
47
+ color: $ec-blue;
48
+ }
49
+ }
50
+
51
+ .bcl-header:not(.bcl-header--neutral) .bcl-header__project {
52
+ padding-top: map-get($spacers, 3);
43
53
  }
44
54
 
45
55
  .bcl-header__navbar .navbar-nav .nav-link {
@@ -76,7 +86,7 @@ $header-link-active-background: #003776 !default;
76
86
  transform: translate(-11px, 5px);
77
87
  }
78
88
 
79
- .bcl-header__project p {
89
+ .bcl-header__project .bcl-header__site-name {
80
90
  display: inline-block;
81
91
  margin-bottom: 0;
82
92
  font-size: 1.3rem;
@@ -96,6 +106,12 @@ $header-link-active-background: #003776 !default;
96
106
  background: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 1)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 8h24M4 16h24M4 24h24'/%3E%3C/svg%3E");
97
107
  }
98
108
 
109
+ @media only screen and (max-width: 400px) {
110
+ .bcl-header--neutral .bcl-header__project-logo {
111
+ display: none;
112
+ }
113
+ }
114
+
99
115
  @include media-breakpoint-down(sm) {
100
116
  .bcl-header .navbar:first-child .nav-link {
101
117
  padding: 0.5rem 0.4rem;
@@ -103,48 +119,83 @@ $header-link-active-background: #003776 !default;
103
119
  }
104
120
 
105
121
  @include media-breakpoint-up(md) {
106
- .ec__header .navbar-brand img {
107
- width: 180px;
122
+ .bcl-header--ec,
123
+ .ec__header {
124
+ .navbar-brand img {
125
+ width: 180px;
126
+ }
127
+ }
128
+ }
129
+
130
+ @include media-breakpoint-down(lg) {
131
+ .bcl-header__project {
132
+ min-height: map-get($spacers, 5);
133
+ padding-top: map-get($spacers, 3);
134
+ }
135
+
136
+ .bcl-header nav + nav {
137
+ min-height: map-get($spacers, 5);
138
+
139
+ .navbar-toggler {
140
+ position: static;
141
+ }
142
+
143
+ .container {
144
+ justify-content: right;
145
+ }
108
146
  }
109
147
  }
110
148
 
111
149
  @include media-breakpoint-up(lg) {
112
150
  .bcl-header__project.light,
151
+ .bcl-header--ec .bcl-header__project.light,
113
152
  .ec__header .bcl-header__project.light {
114
153
  background: $white;
115
154
  }
116
- .bcl-header__project p {
155
+
156
+ .bcl-header__site-name {
117
157
  padding-left: map-get($spacers, 4);
118
158
  font-weight: 500;
119
159
  }
120
- .bcl-header__project.light p {
160
+
161
+ .bcl-header__project.light .bcl-header__site-name {
121
162
  color: $black;
122
163
  }
164
+
123
165
  .bcl-header .navbar-toggler {
124
166
  position: relative;
125
167
  right: 0;
126
168
  bottom: 0;
127
169
  }
170
+
128
171
  .bcl-header .navbar-brand img {
129
172
  width: auto;
130
173
  }
174
+
131
175
  .bcl-header__navbar .navbar-collapse {
132
176
  padding-bottom: 0;
133
177
  }
178
+
134
179
  .bcl-header__navbar .nav-link.active {
135
180
  padding-top: $spacer;
136
181
  padding-bottom: $spacer;
137
182
  margin-top: -#{map-get($spacers, 2)};
138
183
  margin-bottom: -#{map-get($spacers, 2)};
139
184
  }
185
+
140
186
  .bcl-header__navbar .dropdown-menu {
141
187
  z-index: 1050; // Make sure dropdown overlaps the search offcanvas
142
188
  }
143
- .bcl-header__project {
189
+
190
+ .bcl-header:not(.bcl-header--neutral) .bcl-header__project {
144
191
  padding-bottom: map-get($spacers, 3);
145
192
  }
146
- .ec__header .navbar-brand img {
147
- width: 285px;
193
+
194
+ .bcl-header--ec,
195
+ .ec__header {
196
+ .navbar-brand img {
197
+ width: 285px;
198
+ }
148
199
  }
149
200
  }
150
201
 
@@ -0,0 +1,19 @@
1
+ .bcl-inpage-navigation {
2
+ top: map-get($spacers, 3); // needed for position-sticky
3
+ background-color: $gray-100;
4
+
5
+ h5 {
6
+ font-weight: bold;
7
+ margin-bottom: 0;
8
+ padding: map-get($spacers, "3-5");
9
+ border-bottom: 1px solid $gray-300;
10
+ }
11
+ ul {
12
+ padding: map-get($spacers, "2-5");
13
+
14
+ .nav-link {
15
+ padding: map-get($spacers, 2);
16
+ margin-bottom: map-get($spacers, 2);
17
+ }
18
+ }
19
+ }
@@ -3,8 +3,9 @@
3
3
  no-descending-specificity,
4
4
  function-calc-no-unspaced-operator,
5
5
  */
6
- @use "slim-select/src/slim-select/slimselect.scss" with
7
- ($primary-color: $primary);
6
+ @use "slim-select/src/slim-select/slimselect.scss" with (
7
+ $primary-color: $primary
8
+ );
8
9
 
9
10
  // Multiselect Spacers
10
11
  $multiselect-spacers: (
@@ -0,0 +1,78 @@
1
+ /* stylelint-disable declaration-no-important */
2
+ // timeline
3
+ .bcl-timeline {
4
+ list-style-type: none;
5
+ position: relative;
6
+ padding: 0;
7
+ margin: 0;
8
+ max-width: 648px;
9
+
10
+ > li {
11
+ position: relative;
12
+ padding-bottom: map-get($spacers, "4-5");
13
+ padding-left: calc(22px + map-get($spacers, 3));
14
+
15
+ &::before {
16
+ content: "";
17
+ background: $white;
18
+ display: inline-block;
19
+ position: absolute;
20
+ border-radius: 50%;
21
+ border: 2px solid $primary;
22
+ left: 0;
23
+ width: 22px;
24
+ height: 22px;
25
+ }
26
+
27
+ &::after {
28
+ content: "";
29
+ background: $gray-300;
30
+ display: inline-block;
31
+ position: absolute;
32
+ left: 10px;
33
+ top: 22px;
34
+ width: 2px;
35
+ height: 100%;
36
+ }
37
+
38
+ &.collapsing {
39
+ transition: none !important;
40
+ }
41
+
42
+ &.bcl-timeline__item--toggle {
43
+ &::before {
44
+ border-color: $gray-600;
45
+ top: 7px;
46
+ }
47
+ &::after {
48
+ top: 30px;
49
+ background: repeating-linear-gradient(
50
+ to bottom,
51
+ $gray-300,
52
+ $gray-300 3px,
53
+ $white 3px,
54
+ $white 6px
55
+ );
56
+ }
57
+ }
58
+ &:last-child {
59
+ &::after {
60
+ content: none;
61
+ }
62
+ }
63
+ }
64
+
65
+ button[aria-expanded="false"] {
66
+ .label-expanded {
67
+ display: none;
68
+ }
69
+ }
70
+ button[aria-expanded="true"] {
71
+ .label-collapsed {
72
+ display: none;
73
+ }
74
+ svg {
75
+ transform: rotate(180deg);
76
+ }
77
+ }
78
+ }
@@ -1,3 +1,60 @@
1
+ $utilities: map-merge(
2
+ $utilities,
3
+ (
4
+ "background-color":
5
+ map-merge(
6
+ map-get($utilities, "background-color"),
7
+ (
8
+ values:
9
+ map-merge(
10
+ map-get(map-get($utilities, "background-color"), "values"),
11
+ (
12
+ date: $date,
13
+ )
14
+ ),
15
+ )
16
+ ),
17
+ // Extend rounded-top utility.
18
+ "max-width":
19
+ map-merge(
20
+ map-get($utilities, "max-width"),
21
+ (
22
+ values:
23
+ map-merge(
24
+ map-get(map-get($utilities, "max-width"), "values"),
25
+ (
26
+ date: 7.5rem,
27
+ "listing-img": 10rem,
28
+ )
29
+ ),
30
+ )
31
+ ),
32
+ // Create responsive classes for padding
33
+ "padding":
34
+ map-merge(
35
+ map-get($utilities, "padding"),
36
+ (
37
+ responsive: true,
38
+ )
39
+ ),
40
+ // Create responsive classes for borders
41
+ "border":
42
+ map-merge(
43
+ map-get($utilities, "border"),
44
+ (
45
+ responsive: true,
46
+ )
47
+ ),
48
+ )
49
+ );
50
+
51
+ .text-underline-hover {
52
+ text-decoration: none;
53
+ }
54
+ .text-underline-hover:hover {
55
+ text-decoration: underline;
56
+ }
57
+
1
58
  @include media-breakpoint-down(md) {
2
59
  .n-mx-container {
3
60
  padding-right: $container-padding-x;
@@ -6,3 +63,16 @@
6
63
  margin-left: -$container-padding-x;
7
64
  }
8
65
  }
66
+
67
+ .bg-lighter {
68
+ background-color: $lighter;
69
+ }
70
+
71
+ .bg-gray-200 {
72
+ background-color: $gray-200;
73
+ }
74
+
75
+ .grid-3-9 {
76
+ grid-template-columns: 25% 75%;
77
+ grid-gap: map-get($gutters, "2-5");
78
+ }
@@ -1,12 +1,25 @@
1
+ $enable-negative-margins: true;
2
+ $negative-spacers: negativify-map($spacers);
3
+
1
4
  // Colors variables
2
- $gray-100: #f0f0f0;
3
- $light: $gray-100;
5
+ $light: #f0f0f0;
6
+ $lighter: $gray-100;
7
+ $date: #1698af;
4
8
  $blue-50: tint-color($blue, 90%);
5
9
  $red-50: tint-color($red, 90%);
6
10
  $yellow-50: tint-color($yellow, 90%);
7
11
  $green-50: tint-color($green, 90%);
8
12
  $cyan-50: tint-color($cyan, 90%);
9
13
 
14
+ // Override theme-color "light"
15
+ $theme-colors: map-merge(
16
+ $theme-colors,
17
+ (
18
+ "light": $light,
19
+ )
20
+ );
21
+ $theme-colors-rgb: map-loop($theme-colors, to-rgb, "$value");
22
+
10
23
  $custom-blues: (
11
24
  "blue-50": $blue-50,
12
25
  );
@@ -23,13 +36,6 @@ $custom-cyans: (
23
36
  "cyan-50": $cyan-50,
24
37
  );
25
38
 
26
- $theme-colors: map-merge(
27
- $theme-colors,
28
- (
29
- "light": $light,
30
- )
31
- ) !default;
32
- $theme-colors-rgb: map-loop($theme-colors, to-rgb, "$value");
33
39
  $blues: map-merge($blues, $custom-blues);
34
40
  $reds: map-merge($reds, $custom-reds);
35
41
  $yellows: map-merge($yellows, $custom-yellows);
@@ -53,13 +59,12 @@ $spacers-extended: (
53
59
  );
54
60
 
55
61
  $spacers: map-merge($spacers, $spacers-extended);
62
+ $gutters: $spacers;
56
63
 
57
- // Forms
58
- $form-check-input-size-lg: $form-check-input-width + 0.3em !default;
59
- $form-font-size: $font-size-base !default;
60
- $form-font-size-lg: $font-size-base + 0.25rem !default;
61
- $form-select-height: 3rem !default;
62
- $form-select-height-md: 2.375rem !default;
64
+ // accordion
65
+ $accordion-button-active-color: $accordion-button-color;
66
+ $accordion-button-active-bg: $lighter;
67
+ $accordion-border-color: $gray-300;
63
68
 
64
69
  // Badges
65
70
  $badge-font-weight: $font-weight-normal; // 400
@@ -68,3 +73,10 @@ $badge-font-size-desktop: 1rem; // 16px
68
73
 
69
74
  // banners
70
75
  $banner-content-border-color: $primary;
76
+
77
+ // Forms
78
+ $form-check-input-size-lg: $form-check-input-width + 0.3em !default;
79
+ $form-font-size: $font-size-base !default;
80
+ $form-font-size-lg: $font-size-base + 0.25rem !default;
81
+ $form-select-height: 3rem !default;
82
+ $form-select-height-md: 2.375rem !default;
@@ -8,20 +8,6 @@
8
8
 
9
9
  @import "@openeuropa/bcl-bootstrap/scss/utilities";
10
10
 
11
- // Create responsive classes for padding
12
- $utilities: map-merge(
13
- $utilities,
14
- (
15
- "padding":
16
- map-merge(
17
- map-get($utilities, "padding"),
18
- (
19
- responsive: true,
20
- )
21
- ),
22
- )
23
- );
24
-
25
11
  // Layout & components
26
12
  @import "@openeuropa/bcl-bootstrap/scss/root";
27
13
  @import "@openeuropa/bcl-bootstrap/scss/reboot";
@@ -76,3 +62,5 @@ $utilities: map-merge(
76
62
  @import "@openeuropa/bcl-theme-default/src/scss/bcl-offcanvas";
77
63
  @import "@openeuropa/bcl-theme-default/src/scss/breadcrumb";
78
64
  @import "@openeuropa/bcl-theme-default/src/scss/banners";
65
+ @import "@openeuropa/bcl-theme-default/src/scss/timeline";
66
+ @import "@openeuropa/bcl-theme-default/src/scss/inpage-navigation";
@@ -8,13 +8,15 @@
8
8
  - dismissible (boolean) (default: false)
9
9
  - assistive_text (string) (default: '')
10
10
  - rounded_pill (boolean) (default: false)
11
+ - outline (boolean) (default: false)
11
12
  - icons_path (string) (default: '')
12
13
  #}
13
14
 
14
15
  {% set _rounded_pill = rounded_pill|default(false) %}
16
+ {% set _outline = outline|default(false) %}
15
17
  {% set _background = background|default('primary') %}
16
18
  {% set _label = label|default('') %}
17
- {% set _classes = ['badge', 'bg-' ~ _background] %}
19
+ {% set _classes = ['badge'] %}
18
20
  {% set _url = url|default('') %}
19
21
  {% set _icons_path = icons_path|default('') %}
20
22
  {% set _title = title|default(_label) %}
@@ -25,6 +27,12 @@
25
27
  {% set _classes = _classes|merge(['rounded-pill']) %}
26
28
  {% endif %}
27
29
 
30
+ {% if _outline %}
31
+ {% set _classes = _classes|merge([ 'badge-outline-' ~ _background]) %}
32
+ {% else %}
33
+ {% set _classes = _classes|merge([ 'bg-' ~ _background]) %}
34
+ {% endif %}
35
+
28
36
  {% if _background in ['light', 'warning', 'info'] %}
29
37
  {% set _classes = _classes|merge(['text-dark']) %}
30
38
  {% endif %}
@@ -2,21 +2,36 @@
2
2
 
3
3
  {# Parameters:
4
4
  - title: (string) (default: "")
5
+ - title_tag: (string) (default: "div")
5
6
  - description: (string) (default: "")
6
7
  - link: (link object) (default: {}): predefined structure for Link component
7
8
  - image: (string) <img> tag
8
9
  - shade: (boolean) (default: false)
9
10
  - hero: (boolean) (default: false)
10
11
  - full_width: (boolean) (default: false)
12
+ - content_classes: (string) (default: "")
11
13
  #}
12
14
 
13
- {% set _title = title|default("") %}
14
- {% set _description = description|default("") %}
15
+ {% set _title = title|default('') %}
16
+ {% set _title_tag = title_tag|default('div') %}
17
+ {% set _description = description|default('') %}
15
18
  {% set _link = link|default({}) %}
16
- {% set _image = image|default("") %}
19
+ {% set _image = image|default('') %}
17
20
  {% set _shade = shade|default(false) %}
18
21
  {% set _hero = hero|default(false) %}
19
22
  {% set _full_width = full_width|default(false) %}
23
+ {% set _content_classes = content_classes|default('') %}
24
+
25
+
26
+ {% set _content_class = 'bcl-banner__content' %}
27
+ {% if _content_classes is not empty %}
28
+ {% set _content_class = _content_class ~ " " ~ _content_classes %}
29
+ {% endif %}
30
+
31
+ {% set _title_classes = "display-6" %}
32
+ {% if _description is not empty or _link is not empty %}
33
+ {% set _title_classes = _title_classes ~ " mb-3" %}
34
+ {% endif %}
20
35
 
21
36
  {% set _classes = [
22
37
  'bcl-banner',
@@ -32,10 +47,12 @@
32
47
  <div class="bcl-banner__image" style="background-image:url({{ _image }})"></div>
33
48
  {% endif %}
34
49
  <div class="container">
35
- <div class="bcl-banner__content">
50
+ <div class="{{ _content_class }}">
36
51
  {% if _title is not empty %}
37
- <div class="display-6 mb-3">{{ _title }}</div>
52
+ <{{ _title_tag }} class="{{ _title_classes }}">{{ _title }}</{{ _title_tag }}>
53
+ {% if _description is not empty %}
38
54
  <p class="mb-4">{{ _description }}</p>
55
+ {% endif %}
39
56
  {% if _link.path %}
40
57
  {% include '@oe-bcl/bcl-link/link.html.twig' with _link only %}
41
58
  {% endif %}