swedbank-pay-design-guide-jekyll-theme 2.3.4.1 → 2.4.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2a4f0bb8e3d1eec9a4e8134df0e017db96000703f7cf2bfeb3e97c14ad2d68c6
4
- data.tar.gz: 682ebce58ca4d9630682f57dd6ba463bc2264094bb7114a960a28c341a8005ec
3
+ metadata.gz: 460f32897594d35506f24e3aed0eb34028982b3ca384d4353ce29ea43742b8fe
4
+ data.tar.gz: 49bd8515c22ade73b3a3c06e67a5e2bc1bd0209b78e5fd157d10042c11385150
5
5
  SHA512:
6
- metadata.gz: a6602d548e1f34ea9ed37c5b40a1b83e04032c0d2d2af10398f6a2b1606c25f3657e369eef20cdf8000b98fe11cca92dd11f432c00a625d5a6e3fa9511f24975
7
- data.tar.gz: 587508e22d17761cd4a674b371bbecea644ee9ae8648e26242c5ba89c57b79816699f15736adf008c48c8998fa2c5647f08f992d2656ab647216175e6b3251eb
6
+ metadata.gz: 0af16984cba923880cd3996691af11d37975fa2fc85ac5494e7fa6c8bd229706d87b86eac1b3fe99ba4d9ac28264ab7699a4ae8d8a2027f357f7866c1cf8837f
7
+ data.tar.gz: 4fcc8434970d37db0973cc2b693ba5b180570a1a5b0cab2e1427aaf1ca8cd3307c8578b0591723877ed44379146a3b180bb97117d709ee6afa0f55c55ac76b19
@@ -1,11 +1,13 @@
1
1
  {%- comment -%}
2
2
  **Parameters
3
3
  content(required): What will be displayed inside the accordion when expanded.
4
+ accordion_id: Id of the accordion. If not supplied 'accordion-1' will be used.
5
+ header_text: Text to display both on the expand and collapse header. If supplied will overwrite header_collapse_text and header_expand_text.
6
+ header_css: CSS class to apply both on the expand and collapse header. If supplied will overwrite header_collapse_css and header_expand_css.
4
7
  header_collapse_text: Text to display on the collapse header. If not supplied the text 'Hide fields' will be used.
5
8
  header_collapse_css: CSS class to apply to the text on the collapse header. If not supplied default style will be used.
6
9
  header_expand_text: Text to display on the expand header. If not supplied the text 'Show fields' will be used.
7
10
  header_expand_css: CSS class to apply to the text on the expand header. If not supplied default style will be used.
8
- accordion_id: Id of the accordion. If not supplied 'accordion-1' will be used.
9
11
  {%- endcomment -%}
10
12
 
11
13
  {% assign content = include.content | markdownify%}
@@ -15,6 +17,15 @@ accordion_id: Id of the accordion. If not supplied 'accordion-1' will be used.
15
17
  {% assign header_expand_text = include.header_expand_text | default: 'Show fields'%}
16
18
  {% assign header_expand_css = include.header_expand_css%}
17
19
 
20
+ {% if include.header_text %}
21
+ {% assign header_expand_text = include.header_text %}
22
+ {% assign header_collapse_text = include.header_text %}
23
+ {% endif %}
24
+ {% if include.header_css %}
25
+ {% assign header_expand_css = include.header_css %}
26
+ {% assign header_collapse_css = include.header_css %}
27
+ {% endif %}
28
+
18
29
  <div class="accordion">
19
30
  <button type="button" class="accordion-header" aria-expanded="false" aria-controls="{{accordion_id}}">
20
31
  <span class="mr-3 show {{header_expand_css}}">{{header_expand_text}}</span>
data/_includes/alert.html CHANGED
@@ -1,12 +1,20 @@
1
1
  {% assign type = include.type | default: 'default' %}
2
2
  {% assign type_class = 'alert-' | append: type %}
3
- {% assign icon = include.icon | strip %}
4
3
  {% assign header = include.header | markdownify | remove: '<p>' | remove: '</p>' | strip %}
5
4
  {% assign body = include.body | markdownify | remove: '<p>' | remove: '</p>' | strip %}
6
5
 
7
6
  <div class="alert {{ type_class }}">
8
- {% if icon != blank and icon != empty and icon != nil %}
9
- <i class="material-icons alert-icon mr-3">{{ icon }}</i>
7
+ {% if type == 'success' %}
8
+ <i class="swepay-icon-check-circle-filled" aria-hidden="true"></i>
9
+ {% endif %}
10
+ {% if type == 'informative' %}
11
+ <i class="swepay-icon-info-circle-filled" aria-hidden="true"></i>
12
+ {% endif %}
13
+ {% if type == 'warning' %}
14
+ <i class="swepay-icon-warning-triangle-filled" aria-hidden="true"></i>
15
+ {% endif %}
16
+ {% if type == 'danger' %}
17
+ <i class="swepay-icon-error-triangle-filled" aria-hidden="true"></i>
10
18
  {% endif %}
11
19
 
12
20
  {% if body != blank and body != empty and body != nil %}
@@ -17,24 +17,17 @@ col_class(required): Describes what grid column class(es) each card should be wr
17
17
 
18
18
  {% assign card_type = card.card.type | default: card.card_type | default: include.type %}
19
19
  {% assign icon_content = card.card.icon.content | default: card.icon.content %}
20
- {% assign icon_outlined = card.card.icon.outlined | default: card.icon.outlined %}
21
- {% assign icon_svg = card.card.icon.svg | default: card.icon.svg %}
22
- {% assign no_icon = card.card.icon.no_icon | default: card.icon.no_icon %}
23
- {% assign horizontal = card.card.horizontal | default: false %}
24
- {% assign disabled = card.card.disabled | default: card.disabled %}
20
+ {% assign use_wide = card.card.use_wide | default: false %}
25
21
 
26
22
  <div class="{{ col_class }}">
27
23
  {% include card.html
28
24
  title=title
29
25
  text=card.description
26
+ cta_text=card.cta_text
30
27
  icon_content=icon_content
31
- icon_outlined=icon_outlined
32
- icon_svg=icon_svg
33
- no_icon=no_icon
34
28
  to=link_to
35
29
  type=card_type
36
- horizontal=horizontal
37
- disabled=disabled
30
+ use_wide=use_wide
38
31
  %}
39
32
  </div>
40
33
  {% endfor %}
@@ -2,7 +2,7 @@
2
2
  {% if child.children && child.children.size > 0 %}
3
3
  {% assign title = child.title | default: child.section %}
4
4
  {% capture header %}
5
- {:.heading-line}
5
+
6
6
  ## {{ title }}
7
7
  {% endcapture %}
8
8
  {% assign header = header | markdownify %}
@@ -5,108 +5,59 @@ This card offers the table component from Design Guide
5
5
 
6
6
  **Parameters
7
7
  title(required): Title of the card
8
- title_type: Determines size of the title
9
8
  icon_content: Used to generate content of cards-icon
10
- icon_outlined: Make icon_content outlined if icon_content is material-icon
11
- icon_svg: Handles value of icon_content as a reference to a svg-file
12
- no_icon: Hides cards-icon
9
+ header: Array of objects with table headers
10
+ table_content: Array of objects with table content
13
11
  text: Text content of the card
14
12
  to(required): Url to the page to be directed to on click
15
13
  type: sdk | module - Empty type result in default card styling
16
14
  {%- endcomment -%}
17
15
 
18
- {% assign title_type = include.title_type | default: 'h2', %}
19
- {% assign icon_content = include.icon_content %}
20
- {% assign icon_outlined = include.icon_outlined | default: false %}
21
- {% assign icon_svg = include.icon_svg | default: false %}
22
- {% assign no_icon = include.no_icon | default: false %}
23
- {% assign text = include.text %}
24
- {% assign to = include.to %}
25
- {% assign disabled = include.disabled %}
26
- {% assign margin_right = include.margin_right | default false %}
27
-
28
-
29
- {% unless icon_svg %}
30
- {% if icon_content contains '/' or icon_content contains '.svg' %}
31
- {% assign icon_svg = true %}
32
- {% endif %}
33
- {% endunless %}
34
-
35
- {% assign card_class = 'cards cards-wide' | strip %}
36
-
37
- <div class="{{ card_class }}">
38
- {% unless no_icon %}
39
- <span class="cards-icon">
40
- {% if icon_svg %}
41
- {% include {{ icon_content }} %}
42
- {% else %}
43
- <i class="material-icons{% if icon_outlined %}-outlined{% endif %}">
44
- {{ icon_content }}
45
- </i>
46
- {% endif %}
47
- </span>
48
- {% endunless %}
49
- {% if include.container_content %}
50
- <div>
51
- {% endif %}
52
- <span class="cards-content">
53
- <span class="{{ title_type }}">{{ include.title }}</span>
54
- {% if margin_right %}
55
- <span class="text-box">{{ text | markdownify }}</span>
56
- {% else %}
57
- <span>{{ text | markdownify }}</span>
58
- {% endif %}
59
- <div class="d-flex">
60
- <table class="table table-plain">
61
- <thead>
62
- <tr>
63
- {% for header in include.header %}
64
- <th> {% if header.badge_type %}
65
- <span class="badge badge-{{header.badge_type}}">{{header.table_header}}</span>
66
- {% else %}
67
- {{ header.table_header }}
68
- {% endif %}
69
- </th>
70
- {% endfor %}
71
- </tr>
72
- </thead>
73
- <tbody>
74
- {% for table_content in include.table_content %}
75
- <tr>
76
-
77
- <th scope="row">
78
- <i class="material-icons{% if icon_outlined %}-outlined{% endif %}">
79
- {{table_content.icon}}
80
- </i> {{table_content.label}}
81
- <td>
82
- {% if table_content.swedbankPay %}
83
- <i class="material-icons{% if icon_outlined %}-outlined{% endif %}">
84
- check_circle_outline
85
- </i>
86
- {% endif %}
87
- </td>
88
- <td>
89
- {% if table_content.merchantSide %}
90
- <i class="material-icons{% if icon_outlined %}-outlined{% endif %}">
91
- check_circle_outline
92
- </i>
93
- {% endif %}
94
- </td>
95
- </th>
96
- </tr>
97
- {% endfor %}
98
- </tbody>
99
- </table>
100
- {% unless disabled %}
101
- <a class="btn btn-{{include.button_type}} {{include.button_alignment}}" href="{{to}}" type="button">{{ include.button_content }}<i class="material-icons ml-2"> arrow_forward</i></a>
102
- {% endunless %}
103
- </div>
104
- </span>
105
- {% if include.container_content %}
106
- </div>
107
- <div class="container-right">
108
- {{ include.container_content | markdownify }}
109
- </div>
110
- {% endif %}
111
- </div>
112
-
16
+ {% capture card_content %}
17
+ <span>{{ include.text }}</span>
18
+ <table class="table table-plain">
19
+ <thead>
20
+ <tr>
21
+ {% for header in include.header %}
22
+ <th> {% if header.badge_type %}
23
+ <span class="badge badge-{{header.badge_type}}">{{header.table_header}}</span>
24
+ {% else %}
25
+ {{ header.table_header }}
26
+ {% endif %}
27
+ </th>
28
+ {% endfor %}
29
+ </tr>
30
+ </thead>
31
+ <tbody>
32
+ {% for table_content in include.table_content %}
33
+ <tr>
34
+ <th scope="row">
35
+ {{table_content.label}}
36
+ <td>
37
+ {% if table_content.swedbankPay %}
38
+ <i class="swepay-icon-check-circle-filled" aria-hidden="true"></i>
39
+ {% endif %}
40
+ </td>
41
+ <td>
42
+ {% if table_content.merchantSide %}
43
+ <i class="swepay-icon-check-circle-filled" aria-hidden="true"></i>
44
+ {% endif %}
45
+ </td>
46
+ </th>
47
+ </tr>
48
+ {% endfor %}
49
+ </tbody>
50
+ </table>
51
+ {% endcapture %}
52
+
53
+ <div>
54
+ {% include card.html
55
+ cta_text=include.cta_text
56
+ title=include.title
57
+ text=card_content
58
+ use_wide=true
59
+ icon_content=include.icon_content
60
+ to=include.to
61
+ type=include.type
62
+ %}
63
+ </div>
data/_includes/card.html CHANGED
@@ -1,26 +1,26 @@
1
1
  {%- comment -%}
2
2
  **Parameters
3
3
  title(required): Title of the card
4
- title_type: Determines size of the title
4
+ image_src: Image source for the card
5
+ image_alt_text: Alt text for the image
5
6
  icon_content: Used to generate content of dx-card-icon
6
- icon_outlined: Make icon_content outlined if icon_content is material-icon
7
- icon_svg: Handles value of icon_content as a reference to a svg-file
8
- no_icon: Hides dx-card-icon
9
7
  text: Text content of the card
10
- horizontal: Used when dx-card-horizontal is needed
8
+ cta_text: Text for the call to action.
9
+ use_wide: Used when dx-card-horizontal is needed
10
+ open_in_new_tab: Used to open the link in a new tab
11
11
  to(required): Url to the page to be directed to on click
12
12
  type: sdk | module - Empty type result in default card styling
13
13
  {%- endcomment -%}
14
14
 
15
- {% assign title_type = include.title_type | default: 'h4', %}
15
+ {% assign image_src = include.image_src %}
16
+ {% assign image_alt_text = include.image_alt_text %}
17
+ {% assign image_ratio = 'ratio-16-9'%}
16
18
  {% assign icon_content = include.icon_content %}
17
- {% assign icon_outlined = include.icon_outlined | default: false %}
18
- {% assign icon_svg = include.icon_svg | default: false %}
19
- {% assign no_icon = include.no_icon | default: false %}
20
19
  {% assign text = include.text %}
21
- {% assign horizontal = include.horizontal | default: false %}
20
+ {% assign cta_text = include.cta_text %}
21
+ {% assign use_wide = include.use_wide | default: false %}
22
+ {% assign open_in_new_tab = include.open_in_new_tab | default: false %}
22
23
  {% assign to = include.to %}
23
- {% assign disabled = include.disabled %}
24
24
 
25
25
  {% if include.type %}
26
26
  {% assign type = include.type %}
@@ -29,45 +29,39 @@ type: sdk | module - Empty type result in default card styling
29
29
  {% assign type_class = '' %}
30
30
  {% endif %}
31
31
 
32
- {% unless icon_svg %}
33
- {% if icon_content contains '/' or icon_content contains '.svg' %}
34
- {% assign icon_svg = true %}
35
- {% endif %}
36
- {% endunless %}
37
-
38
32
  {% assign card_class = 'cards cards-primary ' | append: type_class | strip %}
39
- {% if horizontal %}
40
- {% assign card_class = card_class | append: ' dx-card-horizontal' | strip %}
33
+ {% if use_wide %}
34
+ {% assign card_class = card_class | append: ' cards-wide' | strip %}
35
+ {% assign image_ratio = '1' %}
36
+ {% endif %}
37
+ {% if image_src %}
38
+ {% assign icon_content = undefined %}
39
+ {% endif %}
40
+ {% assign target = '_self' %}
41
+ {% if open_in_new_tab %}
42
+ {% assign target = '_blank' %}
41
43
  {% endif %}
42
44
 
43
- {% if disabled %}
44
- {% assign card_class = card_class | append: ' dx-card-disabled' | strip %}
45
- {% assign card_tag = 'span' %}
46
- {% else %}
47
- {% assign card_tag = 'a' %}
48
45
  {% capture card_attributes %}href="{{ to }}"{% endcapture %}
49
- {% endif %}
50
46
 
51
- <{{ card_tag }} {{ card_attributes }} class="{{ card_class }}">
52
- {% if icon_svg %}
53
- <div class="cards-icon">
54
- {% include {{ icon_content }} %}
55
- </div>
47
+ <a {{ card_attributes }} class="{{ card_class }}" target="{{target}}" >
48
+ {% if image_src %}
49
+ <img src="{{image_src}}" alt="{{image_alt_text}}" class="{{image_ratio}}" />
56
50
  {% endif %}
57
51
 
58
- {% unless icon_svg %}
59
52
  {% if icon_content %}
60
- <div class="cards-icon">
61
- <i class="material-icons material-icons-outlined" aria-hidden="true">{{ icon_content }}</i>
62
- </div>
53
+ <i class="cards-icon {{ icon_content }}" aria-hidden="true"></i>
63
54
  {% endif %}
64
- {% endunless %}
65
55
 
56
+ <span class="h4">{{ include.title }}</span>
66
57
  <div class="cards-content">
67
- <span class="h4">{{ include.title }}</span>
68
- <span>{{ text | markdownify }}</span>
58
+ {{ text | markdownify }}
59
+ </div>
60
+ <div class="cards-cta">
61
+ {% if cta_text %}
62
+ <span>{{cta_text}}</span>
63
+ {% endif %}
64
+
65
+ <span class="arrow"></span>
69
66
  </div>
70
- {% unless disabled %}
71
- <i class="material-icons">arrow_forward</i>
72
- {% endunless %}
73
- </{{ card_tag }}>
67
+ </a>
@@ -0,0 +1,4 @@
1
+
2
+ ### Example 1
3
+
4
+ The src content for **Example 1**
@@ -0,0 +1,4 @@
1
+
2
+ ### Example 2
3
+
4
+ The src content for **Example 2**
@@ -0,0 +1,4 @@
1
+
2
+ ### Example 3
3
+
4
+ The src content for **Example 3**
data/_includes/tabs.html CHANGED
@@ -1,45 +1,106 @@
1
- <div class="tabs" id="tabs-showcase-example">
1
+ {%- comment -%}
2
+ **Parameters
3
+ tab_list(required): An array with items having the attributes title(required), content_text (required),
4
+ content_src(optional), mark_with_star (optional)
5
+ default_tab_index(optional): Index of the tab to be active by default, starting from 1
6
+ {%- endcomment -%}
7
+
8
+ {% assign tabs = include.tab_list %}
9
+ {% assign max_index = include.tab_list | size | minus:1 %}
10
+ {% assign default_tab_index = include.default_tab_index | minus:1 | at_least:0 | at_most:max_index %}
11
+
12
+ <div id="tabs-container" class="tabs">
2
13
  <ul>
3
- <li class="full-checkout">
4
- <a href="#full-checkout" id="full-checkout">Full Checkout</a>
5
- </li>
6
- <li class="payments-only">
7
- <a href="#payments-only" id="payments-only">Payments Only</a>
14
+ {% for tab in tabs %}
15
+ <li id="{{ tab.title | replace: ' ', '_' | replace: '.', '' }}"
16
+ class="{% if forloop.index0 == default_tab_index %}active{% endif %}">
17
+ <a id="{{ forloop.index0 }}">{{ tab.title }}{% if tab.mark_with_star %}*{% endif %}</a>
8
18
  </li>
19
+ {% endfor %}
9
20
  </ul>
10
21
  </div>
22
+ <p id="tab-content-text">
23
+ </p>
24
+ <div id="tab-content-src">
25
+ </div>
26
+ {% for tab in tabs %}
27
+ {% if tab.content_src %}
28
+ <div class="tab-src">
29
+ {% capture sourced_content %}
30
+ {% include {{tab.content_src}} %}
31
+ {% endcapture %}
32
+ {{ sourced_content | markdownify }}
33
+ </div>
34
+ {% endif %}
35
+ {% endfor %}
11
36
 
12
- <section>
13
- <div id="tab1">
14
- <div class="tab-intro">
15
- {{ include.tab1_intro | markdownify}}
16
- </div>
17
- <div class="tab1-content">
18
- {{ include.tab1_content | markdownify}}
19
- </div>
20
- </div>
21
- <div id="tab2" class="d-none">
22
- <div class="tab-intro">
23
- {{ include.tab2_intro | markdownify}}
24
- </div>
25
- <div>
26
- {{ include.tab2_content | markdownify}}
27
- </div>
28
- </div>
29
- </section>
37
+ <script>
38
+ var defaultIndex = {{ default_tab_index | jsonify }};
39
+ const allTabs = {{ tabs | jsonify }};
40
+ const compiledTabTextContents = allTabs?.map(tab => tab.content_text);
41
+ const compiledTabSrcContents = $(".tab-src");
42
+ </script>
30
43
 
31
44
  <script>
32
- $( "#full-checkout" ).click(function() {
33
- $( "#tab2" ).addClass( "d-none" )
34
- $( "#tab1" ).removeClass( "d-none" )
35
- $( ".full-checkout" ).addClass( "active" )
36
- $( ".payments-only" ).removeClass( "active" )
37
-
38
- });
39
- $( "#payments-only" ).click(function() {
40
- $( "#tab2" ).removeClass( "d-none" )
41
- $( "#tab1" ).addClass( "d-none" )
42
- $( ".full-checkout" ).removeClass( "active" )
43
- $( ".payments-only" ).addClass( "active" )
44
- });
45
- </script>
45
+ $(document).ready(function () {
46
+ let tabSrcContents = [];
47
+ for (let index = 0; index < compiledTabSrcContents.length; index++) {
48
+ tabSrcContents[index] = compiledTabSrcContents[index].innerHTML;
49
+ }
50
+ $(".tab-src").remove();
51
+
52
+ $("#tabs-container ul li a").click(function () {
53
+ const tabTitles = $("#tabs-container ul li");
54
+ for (let index = 0; index < tabTitles.length; index++) {
55
+ tabTitles[index].classList.remove("active");
56
+ }
57
+
58
+ $(this).parent().addClass("active");
59
+ populateTabContent(this.id);
60
+ });
61
+
62
+ function populateTabContent(index) {
63
+ if (compiledTabTextContents && compiledTabTextContents[index]) {
64
+ $("#tab-content-text").html(compiledTabTextContents[index]);
65
+ } else {
66
+ $("#tab-content-text").html("");
67
+ }
68
+
69
+ if (compiledTabSrcContents && compiledTabSrcContents[index]) {
70
+ $("#tab-content-src").html(compiledTabSrcContents[index]);
71
+ }
72
+ else {
73
+ $("#tab-content-src").html("");
74
+ }
75
+ }
76
+
77
+ function setActiveTabOnLoad() {
78
+ const hash = window.location.hash;
79
+
80
+ if (hash) {
81
+ const hashParts = hash.split("-").reverse();
82
+ const tabTitles = $("#tabs-container ul li");
83
+ for (let index = 0; index < tabTitles.length; index++) {
84
+ const tabTitleParts = tabTitles[index].id.split("_").reverse();
85
+
86
+ if (hashParts[0] === tabTitleParts[0]) {
87
+ defaultIndex = index;
88
+ }
89
+ }
90
+ }
91
+
92
+ const tabTitles = $("#tabs-container ul li");
93
+ for (let index = 0; index < tabTitles.length; index++) {
94
+
95
+ if (index === defaultIndex) {
96
+ tabTitles[index].classList.add("active");
97
+ } else {
98
+ tabTitles[index].classList.remove("active");
99
+ }
100
+ }
101
+ }
102
+
103
+ setActiveTabOnLoad();
104
+ populateTabContent(defaultIndex);
105
+ });
106
+ </script>
@@ -15,16 +15,14 @@ layout: default
15
15
  <h3>{{ front_page_hero1 }}
16
16
  <span class="d-block">
17
17
  <span class="front-page-hero-jumbo">{{ front_page_hero2 }}</span>
18
- <span class="front-page-hero-name"> {</span>
19
18
  <span class="front-page-hero-lean">{{ front_page_title }}</span>
20
- <span class="front-page-hero-name">}</span>
21
19
  </span>
22
20
  </h3>
23
21
  <p>{{ front_page_ingress }}</p>
24
22
  </div>
25
23
  {% if front_page_start_heading %}
26
24
  <div class="front-page-intro-cards">
27
- <h2 id="front-page-start" class="heading-line heading-line-indent">{{ front_page_start_heading }}</h2>
25
+ <h2 id="front-page-start">{{ front_page_start_heading }}</h2>
28
26
  {% contentblock start %}
29
27
  </div>
30
28
  {% endif %}
@@ -85,7 +83,7 @@ layout: default
85
83
  <div class="front-page-contact-content">
86
84
  <div class="row">
87
85
  <div class="col-xl-7">
88
- <h2 id="front-page-contact" class="heading-line heading-line-long">Can't find what you are
86
+ <h2 id="front-page-contact">Can't find what you are
89
87
  looking for?</h2>
90
88
  <p>
91
89
  We are always trying to make the developer portal as
@@ -19,37 +19,5 @@
19
19
  display: block;
20
20
  }
21
21
  }
22
-
23
- &:hover {
24
- background-color: $apricot;
25
- }
26
- }
27
-
28
- .accordion-body {
29
- padding: 0;
30
- }
31
-
32
- table {
33
- border: 1px solid rgba(153, 153, 153, 0.5);
34
- border-radius: 0.25rem;
35
-
36
- th {
37
- font-size: 0.875rem;
38
- }
39
-
40
- tbody {
41
- font-size: 0.875rem;
42
-
43
- tr:nth-child(odd) {
44
- background-color: #F9F8F6;
45
- }
46
-
47
- tr {
48
- &:hover {
49
- background-color: $apricot;
50
- transition: .5s;
51
- }
52
- }
53
- }
54
22
  }
55
23
  }
@@ -57,11 +57,12 @@ $front-page-max-width: $breakpoint-lg;
57
57
 
58
58
  #github {
59
59
  top: 2.5rem;
60
+
60
61
  path {
61
62
  fill: $black;
62
63
  }
63
64
  }
64
-
65
+
65
66
  .front-page-top {
66
67
  position: relative;
67
68
  margin: 0 4rem;
@@ -82,7 +83,7 @@ $front-page-max-width: $breakpoint-lg;
82
83
  margin-bottom: 2rem;
83
84
  font-size: 2.5rem;
84
85
  line-height: 3.5rem;
85
-
86
+
86
87
 
87
88
  }
88
89
 
@@ -90,35 +91,41 @@ $front-page-max-width: $breakpoint-lg;
90
91
  color: $brown;
91
92
  font-size: 1.125rem;
92
93
  }
93
-
94
+
94
95
  a {
95
96
  color: #43d0dd;
96
97
  }
97
98
 
98
- .front-page-hero-name {
99
- font-family: $font_mono;
100
- font-weight: bold;
101
- font-size: 2.5rem;
102
- color: $yellow;
103
- margin-bottom: 1rem;
104
-
105
-
106
- span {
107
- color: $white;
108
- }
99
+ .front-page-hero-jumbo {
100
+ color: $brown;
101
+ font-family: $font_headline;
102
+ margin-bottom: 2rem;
103
+ font-size: 3.5rem;
109
104
  }
110
105
 
111
- .front-page-hero-jumbo {
112
- color: $brown;
113
- font-family: $font_headline;
114
- margin-bottom: 2rem;
115
- font-size: 3.5rem;
116
- }
117
-
118
106
  .front-page-hero-lean {
119
107
  font-family: $font_mono;
108
+ white-space: nowrap;
109
+
110
+ &::before {
111
+ content: ' { ';
112
+ font-family: $font_mono;
113
+ font-weight: bold;
114
+ font-size: 2.5rem;
115
+ color: $yellow;
116
+ margin-bottom: 1rem;
117
+ }
118
+
119
+ &::after {
120
+ content: ' } ';
121
+ font-family: $font_mono;
122
+ font-weight: bold;
123
+ font-size: 2.5rem;
124
+ color: $yellow;
125
+ margin-bottom: 1rem;
126
+ }
120
127
  }
121
-
128
+
122
129
 
123
130
  }
124
131
 
@@ -139,14 +146,14 @@ $front-page-max-width: $breakpoint-lg;
139
146
  }
140
147
 
141
148
  @media screen and (min-width: $breakpoint-xxl) {
142
- margin-bottom: 8rem;
143
-
149
+
144
150
  .front-page-intro-cards {
145
151
  left: 0;
146
152
  width: 100%;
147
153
  }
148
154
  }
149
155
  }
156
+
150
157
  .front-page-container {
151
158
  max-width: $front-page-max-width;
152
159
  margin: $front-page-padding;
@@ -244,130 +251,4 @@ $front-page-max-width: $breakpoint-lg;
244
251
 
245
252
  }
246
253
  }
247
-
248
- .front-page-demoshop {
249
- display: flex;
250
- flex-direction: column;
251
- align-items: center;
252
- padding: $front-page-padding;
253
- padding-top: 4rem;
254
- margin-bottom: 4rem;
255
- width: 100%;
256
- height: 22.5rem;
257
- background-color: $dark-brown;
258
- text-decoration: none;
259
- border-radius: 1rem;
260
-
261
- &:after {
262
- display: none;
263
- content: none;
264
- }
265
-
266
- .front-page-demoshop-text {
267
- display: flex;
268
- flex-direction: column;
269
- margin-bottom: 2rem;
270
- max-width: $front-page-max-width;
271
- width: 100%;
272
-
273
- .h2 {
274
- color: $white;
275
- }
276
-
277
- .demoshop-text-description {
278
- color: $white;
279
- width: 40%;
280
- min-height: 4.5rem;
281
- font-size: 1rem;
282
-
283
- }
284
-
285
- }
286
-
287
- @media screen and (max-width: $breakpoint-md) {
288
- padding-top: 3rem;
289
- height: 18rem;
290
-
291
- .front-page-demoshop-text {
292
- .demoshop-text-description {
293
- width: 100%;
294
- min-height: 2.25rem;
295
- }
296
- }
297
-
298
- }
299
-
300
- .front-page-demoshop-link {
301
- display: flex;
302
- position: relative;
303
- color: $white;
304
- text-decoration: none;
305
- background-color: $medium-brown;
306
- align-items: center;
307
- height: 4.625rem;
308
- border-radius: 2px;
309
- box-shadow: 1px 2px 10px rgba(0, 0, 0, 0.15);
310
- max-width: $front-page-max-width;
311
- width: 100%;
312
- cursor: pointer;
313
-
314
- a::after{
315
- content: '';
316
- }
317
-
318
- &:hover,
319
- &:focus {
320
- background-color: $white;
321
- color: $brown;
322
-
323
- .h3 {
324
- color: $brown;
325
- }
326
- }
327
-
328
- .demoshop-link-img {
329
- display: flex;
330
- align-items: center;
331
- position: absolute;
332
- bottom: -1rem;
333
- right: 3%;
334
- pointer-events: none;
335
-
336
- .demoshop-link-img-web {
337
- width: 26.5rem;
338
- height: 15.125rem;
339
- border-radius: 2px;
340
- box-shadow: 1px 2px 10px rgba(0, 0, 0, 0.15);
341
- }
342
-
343
- .demoshop-link-img-mobile {
344
- height: 15.125rem;
345
- border-radius: 2px;
346
- box-shadow: 1px 2px 10px rgba(0, 0, 0, 0.15);
347
- margin-right: 1rem;
348
- }
349
- }
350
-
351
- .h3 {
352
- color: $white;
353
- padding-right: 1rem;
354
- padding-left: 1.5rem;
355
- margin: 0;
356
- }
357
- }
358
-
359
- @media screen and (min-width: $breakpoint-xxl) {
360
- .front-page-demoshop-text {
361
- margin-bottom: 1rem;
362
- }
363
-
364
- .front-page-demoshop-link {
365
- .demoshop-link-img {
366
- bottom: -2rem;
367
- }
368
- }
369
- }
370
- }
371
-
372
-
373
- }
254
+ }
@@ -3,15 +3,12 @@
3
3
  @import 'variables.scss';
4
4
  @import 'breakpoints.scss';
5
5
 
6
- @import 'card.scss';
6
+ @import 'accordion-table.scss';
7
7
  @import 'code-view.scss';
8
8
  @import 'front-page.scss';
9
- @import 'heading.scss';
10
- @import 'accordion-table.scss';
11
9
  @import 'paragraph-highlight.scss';
12
10
  @import 'sidebar.scss';
13
11
  @import 'title-header.scss';
14
- @import 'tabs.scss';
15
12
 
16
13
  $bg: #f5f2f0;
17
14
  $darkened-bg: darken($bg, 10%);
@@ -20,11 +17,22 @@ img {
20
17
  max-width: 100%;
21
18
  }
22
19
 
20
+ .cards-icon.flag-icon {
21
+ margin-left: var(--padding-outer);
22
+ line-height: var(--padding-outer);
23
+ background-position: right 80%;
24
+ }
25
+
26
+ .cards-wide:has(.cards-cta) :is(.flag-icon + .h4) {
27
+ padding-left: 0;
28
+ }
29
+
23
30
  body {
24
31
  font-size: 1.125rem;
25
32
  }
26
33
 
27
34
  .table {
35
+
28
36
  th,
29
37
  td {
30
38
  >.material-icons {
@@ -33,6 +41,12 @@ body {
33
41
  }
34
42
  }
35
43
 
44
+ .table.table-plain tbody>tr:nth-child(2n+1),
45
+ .table.table-plain tbody td,
46
+ .table.table-plain tbody th {
47
+ background-color: inherit !important;
48
+ }
49
+
36
50
  .jumbotron {
37
51
  /* TODO: Make .jumbotron @extend .slab. */
38
52
  font-family: Roboto, sans-serif;
@@ -131,6 +145,20 @@ body {
131
145
  }
132
146
  }
133
147
  }
148
+
149
+ .toc-list {
150
+ list-style-type: none;
151
+ padding: 0;
152
+ margin: 0;
153
+ }
154
+
155
+ .toc-list li {
156
+ padding: 4px 0;
157
+ }
158
+
159
+ .toc-list ul {
160
+ padding-inline-start: 2ch;
161
+ }
134
162
  }
135
163
 
136
164
  .documentation {
@@ -138,7 +166,7 @@ body {
138
166
  overflow-y: auto;
139
167
  }
140
168
 
141
- > div {
169
+ >div {
142
170
  &.row {
143
171
  margin-right: 0;
144
172
  }
@@ -221,7 +249,7 @@ body {
221
249
  max-width: 880px;
222
250
  }
223
251
 
224
- .row.card-list > div {
252
+ .row.card-list>div {
225
253
  display: flex;
226
254
  align-self: stretch;
227
255
  }
@@ -391,16 +419,22 @@ body {
391
419
 
392
420
  #overlay {
393
421
  @media screen and (max-width: $breakpoint-lg) {
394
- position: fixed; /* Sit on top of the page content */
395
- display: none; /* Hidden by default */
396
- width: 100%; /* Full width (cover the whole page) */
397
- height: 100%; /* Full height (cover the whole page) */
422
+ position: fixed;
423
+ /* Sit on top of the page content */
424
+ display: none;
425
+ /* Hidden by default */
426
+ width: 100%;
427
+ /* Full width (cover the whole page) */
428
+ height: 100%;
429
+ /* Full height (cover the whole page) */
398
430
  top: 0;
399
431
  left: 0;
400
432
  right: 0;
401
433
  bottom: 0;
402
- background-color: rgba(0,0,0,0.5); /* Black background with opacity */
403
- z-index: 3; /* Specify a stack order in case you're using a different order for other elements */
434
+ background-color: rgba(0, 0, 0, 0.5);
435
+ /* Black background with opacity */
436
+ z-index: 3;
437
+ /* Specify a stack order in case you're using a different order for other elements */
404
438
  }
405
439
  }
406
440
 
@@ -447,3 +481,21 @@ body {
447
481
  position: absolute;
448
482
  }
449
483
  }
484
+
485
+ .video-container {
486
+ width: 100%;
487
+ max-width: 330px;
488
+ padding: 0.5rem;
489
+
490
+ @media screen and (max-width: $breakpoint-lg) {
491
+ display: none !important;
492
+ }
493
+ }
494
+
495
+ .video-container video {
496
+ margin: 0;
497
+ height: 100%;
498
+ width: 100%;
499
+ aspect-ratio: 872 / 1080;
500
+ object-fit: cover;
501
+ }
Binary file
@@ -0,0 +1,5 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-dk" viewBox="0 0 512 512">
2
+ <path fill="#c8102e" d="M0 0h512.1v512H0z"/>
3
+ <path fill="#fff" d="M144 0h73.1v512H144z"/>
4
+ <path fill="#fff" d="M0 219.4h512.1v73.2H0z"/>
5
+ </svg>
@@ -0,0 +1,7 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-no" viewBox="0 0 512 512">
2
+ <path fill="#ed2939" d="M0 0h512v512H0z"/>
3
+ <path fill="#fff" d="M128 0h128v512H128z"/>
4
+ <path fill="#fff" d="M0 192h512v128H0z"/>
5
+ <path fill="#002664" d="M160 0h64v512h-64z"/>
6
+ <path fill="#002664" d="M0 224h512v64H0z"/>
7
+ </svg>
@@ -0,0 +1,16 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-se" viewBox="0 0 640 480">
2
+ <defs>
3
+ <clipPath id="a">
4
+ <path fill-opacity=".7" d="M-53.4 0h682.6v512H-53.4z"/>
5
+ </clipPath>
6
+ </defs>
7
+ <g clip-path="url(#a)" transform="translate(50) scale(.9375)">
8
+ <g fill-rule="evenodd" stroke-width="1pt">
9
+ <path fill="#006aa7" d="M-121.1.3h256v204.8h-256zm0 306.9h256V512h-256z"/>
10
+ <path fill="#fecc00" d="M-121.1 205h256v102.4h-256z"/>
11
+ <path fill="#fecc00" d="M133.8 0h102.4v512H133.8z"/>
12
+ <path fill="#fecc00" d="M233 205h460.8v102.4H233z"/>
13
+ <path fill="#006aa7" d="M236.2 307.2H697V512H236.2zm0-306.9H697v204.8H236.2z"/>
14
+ </g>
15
+ </g>
16
+ </svg>
data/lib/gem_version.rb CHANGED
@@ -4,7 +4,7 @@ module Gem
4
4
  # Gem Specification
5
5
  class Specification
6
6
  def self.gem_version
7
- '2.3.4.1'
7
+ '2.4.1'
8
8
  end
9
9
  end
10
10
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: swedbank-pay-design-guide-jekyll-theme
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.4.1
4
+ version: 2.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Swedbank Pay
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-02-18 00:00:00.000000000 Z
11
+ date: 2025-03-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -397,14 +397,15 @@ files:
397
397
  - _includes/apple-touch-icons.md
398
398
  - _includes/apple-touch-startup-image.html
399
399
  - _includes/apple-touch-startup-images.md
400
- - _includes/card-extended.html
401
- - _includes/card-horizontal-list.html
402
400
  - _includes/card-list.html
403
401
  - _includes/card-overview.html
404
402
  - _includes/card-table.html
405
403
  - _includes/card.html
406
404
  - _includes/code-example.html
407
405
  - _includes/doc-container.html
406
+ - _includes/example-1.md
407
+ - _includes/example-2.md
408
+ - _includes/example-3.md
408
409
  - _includes/github.html
409
410
  - _includes/google_analytics.html
410
411
  - _includes/img/merchants/logo-coop.svg
@@ -437,20 +438,19 @@ files:
437
438
  - _plugins/swedbank-pay-design-guide-jekyll-theme.rb
438
439
  - _sass/accordion-table.scss
439
440
  - _sass/breakpoints.scss
440
- - _sass/card.scss
441
441
  - _sass/code-view.scss
442
442
  - _sass/colors.scss
443
443
  - _sass/fonts.scss
444
444
  - _sass/front-page.scss
445
- - _sass/heading.scss
446
445
  - _sass/paragraph-highlight.scss
447
446
  - _sass/sidebar.scss
448
447
  - _sass/swedbank-pay-design-guide-theme.scss
449
- - _sass/tabs.scss
450
448
  - _sass/title-header.scss
451
449
  - _sass/variables.scss
452
450
  - assets/css/pygments-autumn.css
453
451
  - assets/css/style.scss
452
+ - assets/img/betala-med-pax-a920pro.jpg
453
+ - assets/img/betala-online.jpg
454
454
  - assets/img/demoshop-image.svg
455
455
  - assets/img/demoshop-mobile.svg
456
456
  - assets/img/demoshop-mobile2.svg
@@ -458,6 +458,9 @@ files:
458
458
  - assets/img/demoshop.svg
459
459
  - assets/img/external-url-dark-bg.svg
460
460
  - assets/img/external-url.svg
461
+ - assets/img/flag-dk.svg
462
+ - assets/img/flag-no.svg
463
+ - assets/img/flag-se.svg
461
464
  - assets/js/cookie-consent.js
462
465
  - assets/js/mermaid.min.js
463
466
  - assets/js/swedbank-pay-design-guide-theme.js
@@ -1,66 +0,0 @@
1
- {%- comment -%}
2
- **Parameters
3
- title(required): Title of the card
4
- title_type: Determines size of the title
5
- icon_content: Used to generate content of cards-icon
6
- icon_outlined: Make icon_content outlined if icon_content is material-icon
7
- icon_svg: Handles value of icon_content as a reference to a svg-file
8
- no_icon: Hides cards-icon
9
- text: Text content of the card
10
- to(required): Url to the page to be directed to on click
11
- type: sdk | module - Empty type result in default card styling
12
- {%- endcomment -%}
13
-
14
- {% assign title_type = include.title_type | default: 'h2', %}
15
- {% assign icon_content = include.icon_content %}
16
- {% assign icon_outlined = include.icon_outlined | default: false %}
17
- {% assign icon_svg = include.icon_svg | default: false %}
18
- {% assign no_icon = include.no_icon | default: false %}
19
- {% assign text = include.text %}
20
- {% assign to = include.to %}
21
- {% assign disabled = include.disabled %}
22
- {% assign margin_right = include.margin_right | default false %}
23
-
24
-
25
- {% unless icon_svg %}
26
- {% if icon_content contains '/' or icon_content contains '.svg' %}
27
- {% assign icon_svg = true %}
28
- {% endif %}
29
- {% endunless %}
30
-
31
- {% assign card_class = 'cards cards-wide' | strip %}
32
-
33
- <div class="{{ card_class }}">
34
- {% unless no_icon %}
35
- <span class="cards-icon">
36
- {% if icon_svg %}
37
- {% include {{ icon_content }} %}
38
- {% else %}
39
- <i class="material-icons{% if icon_outlined %}-outlined{% endif %}">
40
- {{ icon_content }}
41
- </i>
42
- {% endif %}
43
- </span>
44
- {% endunless %}
45
- {% if include.container_content %}
46
- <div>
47
- {% endif %}
48
- <span class="cards-content">
49
- <span class="{{ title_type }}">{{ include.title }}</span>
50
- {% if margin_right %}
51
- <span class="text-box-extended">{{ text | markdownify }}</span>
52
- {% else %}
53
- <span>{{ text | markdownify }}</span>
54
- {% endif %}
55
- </span>
56
- {% unless disabled %}
57
- <a class="btn btn-{{include.button_type}} {{include.button_alignment}}" href="{{to}}" type="button">{{ include.button_content }}<i class="material-icons ml-2"> arrow_forward</i></a>
58
- {% endunless %}
59
- {% if include.container_content %}
60
- </div>
61
- <div class="container-right">
62
- {{ include.container_content | markdownify }}
63
- </div>
64
- {% endif %}
65
- </div>
66
-
@@ -1,33 +0,0 @@
1
- {%- comment -%}
2
- **Parameters
3
- card_list(required): An array with items having the attributes card_title,
4
- title(required), estimated_read, url(required). Works with site.pages
5
- type: sdk | module - Empty type result in default card styling
6
- {%- endcomment -%}
7
-
8
- {% assign card_list = include.card_list %}
9
- {% assign type = include.type %}
10
-
11
- <div class="card-horizontal-list">
12
- {% for card in card_list %}
13
- {% if card.estimated_read %}
14
- {% assign text = card.estimated_read | append: ' min read' %}
15
- {% else %}
16
- {% assign text = %}
17
- {% endif %}
18
- {% if card.card_title %}
19
- {% assign title = card.card_title %}
20
- {% else %}
21
- {% assign title = card.title | split: '–' | last %}
22
- {% endif %}
23
- {% assign icon_content = '0' | append: forloop.index %}
24
- {% include card.html title=title
25
- title_type='h3'
26
- text=text
27
- icon_content=icon_content
28
- horizontal=true
29
- to=card.url
30
- type=type
31
- %}
32
- {% endfor %}
33
- </div>
data/_sass/card.scss DELETED
@@ -1,6 +0,0 @@
1
- .cards-icon {
2
- svg {
3
- fill: $brown;
4
- max-width: 24px;
5
- }
6
- }
data/_sass/heading.scss DELETED
@@ -1,85 +0,0 @@
1
- @import 'colors.scss';
2
-
3
- .heading-line {
4
- position: relative;
5
-
6
- &:after {
7
- content: "";
8
- position: absolute;
9
- bottom: -0.75rem;
10
- left: 0;
11
- width: 4rem;
12
- height: 4px;
13
- background-color: $yellow;
14
- border-radius: 0.625rem;
15
- }
16
-
17
- &.heading-line-white {
18
- &:after {
19
- background-color: $white;
20
- }
21
- }
22
-
23
- &.heading-line-green {
24
- &:after {
25
- background-color: $brand-success;
26
- }
27
- }
28
-
29
- &.heading-line-sdk {
30
- &:after {
31
- background-color: $turquoise;
32
- }
33
- }
34
-
35
- &.heading-line-module {
36
- &:after {
37
- background-color: $card-pink;
38
- }
39
- }
40
-
41
- &.heading-line-long {
42
- &:after {
43
- width: 7rem;
44
- }
45
- }
46
-
47
- &.heading-line-indent {
48
- &:after {
49
- left: 1.5rem;
50
- }
51
- }
52
- }
53
-
54
-
55
- h1>a.header-anchor,
56
- h2>a.header-anchor,
57
- h3>a.header-anchor,
58
- h4>a.header-anchor,
59
- h5>a.header-anchor,
60
- h6>a.header-anchor {
61
- color: #ebf8f2;
62
- text-decoration: none;
63
- }
64
-
65
- h1:hover>a.header-anchor,
66
- h2:hover>a.header-anchor,
67
- h3:hover>a.header-anchor,
68
- h4:hover>a.header-anchor,
69
- h5:hover>a.header-anchor,
70
- h6:hover>a.header-anchor {
71
- color: #8acdc3;
72
- }
73
-
74
- h1>a.header-anchor:hover,
75
- h2>a.header-anchor:hover,
76
- h3>a.header-anchor:hover,
77
- h4>a.header-anchor:hover,
78
- h5>a.header-anchor:hover,
79
- h6>a.header-anchor:hover {
80
- color: #257886;
81
- }
82
-
83
- a.header-anchor::before {
84
- content: '#';
85
- }
data/_sass/tabs.scss DELETED
@@ -1,11 +0,0 @@
1
- .tabs {
2
- margin: 2rem 0 3.75rem;
3
-
4
- li {
5
- cursor: pointer;
6
- }
7
- }
8
-
9
- .tab-intro {
10
- padding-bottom: 3rem;
11
- }