appscms-tools-theme 3.7.0 → 3.7.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 57655291d504d24197e1fa238e82bb97e64f11a5775b317ccf8cb7f9f6b83d9f
4
- data.tar.gz: a9e8072805e769566e0544631aec16a97945d3b4031715ced34d953731cf18a4
3
+ metadata.gz: 3788ca0629c1e0f87c36963e3619b806bcc36eb5675b978f195b3d9d0f4dc0f0
4
+ data.tar.gz: 29a45fc8b9c68c1200182bae96acc0078952edd7613035ac89a22a976957db1d
5
5
  SHA512:
6
- metadata.gz: 853dd44ab43330027bdc265badf4939d996e3f33ba0256852388b055b51144f4b2ec692a380b570bd177d9aa17ab4c675dc6818037ac008744b8bc7adda82f39
7
- data.tar.gz: 63d30a565bdc51907243551f1244c6292f7fc80df52ef86c7094c3783799cf5a8b6e5e2be7414b35c9edbab6a348dc9bb9338380209a5dee8f83e97b4bc82f67
6
+ metadata.gz: 11a1384b943c1b47774e535a389c36c85e7dec373793629d26aa4b5dd872e785febddfb4055d28855e6d1032c541e65910bb5fd700c5d865ccf39dadc70f8df7
7
+ data.tar.gz: a1cd694412ff5299d248afa57b995c925666bb629dc2cfc940faed45199f75edde1a815f5bd924a2bdde8328bf6f8b47aa2930070930ac4f88391405c7ac7c7c
@@ -34,6 +34,18 @@
34
34
  }
35
35
  ],
36
36
  "infographics": [
37
+ {
38
+ "image": "https://imagestoolkit-develop.netlify.app/uploads/21_06_2023_1687326380390_How%20to%20safe%20imagekit%20(24).png",
39
+ "description": "How to use 1500x2100 image resizer"
40
+ },
41
+ {
42
+ "image": "https://imagestoolkit-develop.netlify.app/uploads/21_06_2023_1687326394649_sAFEIMAGEKIT%20(24).png",
43
+ "description": "Why you should use 1500x2100 image resizer"
44
+ },
45
+ {
46
+ "image": "https://imagestoolkit-develop.netlify.app/uploads/21_06_2023_1687326405953_tips%20for%20using%20WhatsApp%20image%20resizer%20(25).png",
47
+ "description": "Tips for using 1500x2100 image resizer"
48
+ },
37
49
  {
38
50
  "image": "/assets/images/1.webp",
39
51
  "description": "How to set alarm on wake me up at 4:45 am tool"
@@ -46,6 +58,8 @@
46
58
  "image": "/assets/images/3.webp",
47
59
  "description": "Additional features of wake me up at 4:45 am tool"
48
60
  }
61
+
62
+
49
63
  ],
50
64
  "TEXTUAL_CONTENT": [
51
65
  {
@@ -1,123 +1,221 @@
1
1
  <style>
2
- /* Reset default browser styles */
3
-
4
- .infographic {
5
- display: flex;
6
- justify-content: space-between;
7
- align-items: center;
8
- margin: 50px auto;
9
- max-width: 800px;
2
+ .inforgraphics_section {
3
+ width: 100%;
4
+ padding: 50px 0px 50px 0px;
5
+ border-top: 1px solid rgb(224, 224, 224);
6
+ display: flex;
7
+ flex-direction: column;
8
+ align-items: center;
10
9
  }
11
- .infographic-item {
12
- flex-basis: 30%;
13
- text-align: center;
10
+
11
+ .inforgraphics_section .wrapper {
12
+ display: flex;
13
+ max-width: 700px;
14
+ position: relative;
14
15
  }
15
16
 
16
- .infographic-item img {
17
- max-width: 100%;
18
- height: auto;
19
- border-radius: 8px;
20
- margin-bottom: 10px;
17
+ .inforgraphics_section .wrapper i {
18
+ top: 50%;
19
+ height: 44px;
20
+ width: 44px;
21
+ color: #343F4F;
22
+ cursor: pointer;
23
+ font-size: 1.15rem;
24
+ position: absolute;
25
+ text-align: center;
26
+ line-height: 44px;
27
+ background: #eee;
28
+ border-radius: 50%;
29
+ transform: translateY(-50%);
30
+ transition: transform 0.1s linear;
21
31
  }
22
32
 
23
- .infographic-item h3 {
24
- font-size: 20px;
25
- margin-bottom: 10px;
33
+ .inforgraphics_section .wrapper i:active {
34
+ transform: translateY(-50%) scale(0.9);
26
35
  }
27
36
 
28
- .infographic-item p {
29
- font-size: 16px;
37
+ .inforgraphics_section .wrapper i:hover {
38
+ background: #f2f2f2;
30
39
  }
31
40
 
32
- @media (max-width: 600px) {
33
- .infographic {
34
- flex-wrap: wrap;
35
- }
41
+ .inforgraphics_section .wrapper i:first-child {
42
+ left: 0px;
43
+ display: none;
44
+ z-index: 999;
45
+ }
36
46
 
37
- .infographic-item {
38
- flex-basis: 100%;
39
- margin-bottom: 30px;
40
- }
47
+ .inforgraphics_section .wrapper i:last-child {
48
+ right: 0px;
49
+ }
50
+
51
+ .carousel {
52
+ display: flex;
53
+ max-width: 700px;
54
+ overflow-x: scroll;
55
+ scroll-snap-type: x mandatory;
56
+ scroll-behavior: smooth;
57
+ }
58
+
59
+ .carousel-inner {
60
+ display: flex;
61
+ flex-wrap: nowrap;
62
+ }
63
+
64
+ .slide {
65
+ flex: 0 0 calc(100% / 3);
66
+ scroll-snap-align: start;
67
+ padding: 20px;
68
+ }
69
+
70
+ .carousel img {
71
+ width: 100%;
72
+ object-fit: contain;
73
+ max-width: 100%;
74
+ height: auto;
75
+ border-radius: 8px;
76
+ }
77
+
78
+ .carousel-inner p {
79
+ text-align: center;
80
+ margin: 10px 0;
81
+ font-size: 14px;
82
+ white-space: normal;
83
+ word-wrap: break-word;
41
84
  }
42
- </style>
43
- <div class="infographics_section">
44
- <h3 class="text-center w-100 mb-5"><b>Other useful information</b></h3>
45
- <div class="infographic">
46
- {%- for item in featureData.infographics -%}
47
- <div class="infographic-item">
48
- <img src="{{item.image}}" alt="Image 1">
49
- <p class="infographic-desc">{{item.description | capitalize }}</p>
50
- </div>
51
- {%- endfor -%}
52
- </div>
53
85
 
86
+ @media screen and (max-width: 768px) {
87
+ .inforgraphics_section .wrapper {
88
+ max-width: 100%;
89
+ }
90
+
91
+
92
+ .carousel-inner p {
93
+ font-size: 20px;
94
+ }
95
+
96
+ .inforgraphics_section .wrapper i:first-child {
97
+ left: 0;
98
+ /* margin-left: 14px; */
99
+ z-index: 99;
100
+ }
101
+
102
+ .inforgraphics_section .wrapper i:last-child {
103
+ right: 0;
104
+ z-index: 99;
105
+ display: block !important;
106
+ }
107
+
108
+ .carousel {
109
+ overflow-x: hidden;
110
+ }
111
+ .slide {
112
+ flex: 0 0 100%;
113
+ margin-right: 0;
114
+ }
115
+ }
116
+ </style>
54
117
 
55
- <!-- <div class="slider">
56
- <div class="row">
57
- <div class="col-md-12 mx-auto">
58
- <div id="carousel">
59
- {%- for item in featureData.infographics -%}
60
- <div class="slide">
61
- <img src="{{item.image}}" alt="Photo1" />
62
- <p class="infographics-desc">{{item.description | capitalize }}</p>
63
- </div>
64
- {%- endfor -%}
118
+ <div class="inforgraphics_section">
119
+ <h3 class="text-center w-100 mb-5"><b>Other useful information</b></h3>
120
+ <div class="wrapper">
121
+ <i id="left" class="fas fa-angle-left"></i>
122
+ <div class="carousel">
123
+ <div class="carousel-inner">
124
+ {% for item in featureData.infographics %}
125
+ <div class="slide">
126
+ <img src="{{ item.image }}" alt="img" draggable="false">
127
+ <p class="infographic-desc">{{ item.description | capitalize }}</p>
65
128
  </div>
129
+ {% endfor %}
66
130
  </div>
67
131
  </div>
68
- <button class="btn-slide prev"><i class="fas fa-3x fa-chevron-circle-left"></i></button>
69
- <button class="btn-slide next"><i class="fas fa-3x fa-chevron-circle-right"></i></button>
70
- </div>
71
- <div class="dots-container">
72
- {%- for item in featureData.infographics -%}
73
- <span class="dot active" data-slide="{{ forloop.index0 }}"></span>
74
- {%- endfor -%}
75
- </div> -->
132
+ <i id="right" class="fas fa-angle-right"></i>
133
+ </div>
76
134
  </div>
77
135
 
78
- <!-- <script>
79
- function Slider() {
80
- const carouselSlides = document.querySelectorAll('.slide');
81
- const btnPrev = document.querySelector('.prev');
82
- const btnNext = document.querySelector('.next');
83
- const dotsSlide = document.querySelector('.dots-container');
84
- let currentSlide = 0;
85
-
86
- const activeDot = function (slide) {
87
- document.querySelectorAll('.dot').forEach(dot => dot.classList.remove('active'));
88
- document.querySelector(`.dot[data-slide="${slide}"]`).classList.add('active');
89
- };
90
- activeDot(currentSlide);
91
-
92
- const changeSlide = function (slides) {
93
- carouselSlides.forEach((slide, index) => (slide.style.transform = `translateX(${100 * (index - slides)}%)`));
94
- };
95
- changeSlide(currentSlide);
96
-
97
- btnNext.addEventListener('click', function () {
98
- currentSlide++;
99
- if (carouselSlides.length - 1 < currentSlide) {
100
- currentSlide = 0;
101
- };
102
- changeSlide(currentSlide);
103
- activeDot(currentSlide);
104
- });
105
- btnPrev.addEventListener('click', function () {
106
- currentSlide--;
107
- if (0 >= currentSlide) {
108
- currentSlide = 0;
109
- };
110
- changeSlide(currentSlide);
111
- activeDot(currentSlide);
112
- });
136
+ <script>
137
+ const carousel = document.querySelector(".carousel-inner"),
138
+ firstImg = carousel.querySelectorAll("img")[0],
139
+ arrowIcons = document.querySelectorAll(".wrapper i")
140
+
141
+ const numImages = carousel.querySelectorAll("img").length;
142
+ const isMobile = window.matchMedia("(max-width: 767px)").matches; // Check if screen width is less than or equal to 767px
113
143
 
114
- dotsSlide.addEventListener('click', function (e) {
115
- if (e.target.classList.contains('dot')) {
116
- const slide = e.target.dataset.slide;
117
- changeSlide(slide);
118
- activeDot(slide);
119
- }
144
+ if (numImages > 3) {
145
+ arrowIcons[1].style.display = "block"
146
+ } else {
147
+ arrowIcons[0].style.display = "none";
148
+ arrowIcons[1].style.display = "none";
149
+ }
150
+
151
+ let isDragStart = false, isDragging = false, prevPageX, prevScrollLeft, positionDiff;
152
+ const showHideIcons = () => {
153
+ let scrollWidth = carousel.scrollWidth - carousel.clientWidth; // getting max scrollable width
154
+ arrowIcons[0].style.display = carousel.scrollLeft == 0 ? "none" : "block";
155
+ arrowIcons[1].style.display = carousel.scrollLeft == scrollWidth ? "none" : "block";
156
+ }
157
+
158
+ arrowIcons.forEach(icon => {
159
+ icon.addEventListener("click", () => {
160
+ let firstImgWidth = firstImg.clientWidth + 40;
161
+ const scrollAmount = icon.id === "left" ? -firstImgWidth : firstImgWidth;
162
+ carousel.scrollBy({
163
+ left: scrollAmount,
164
+ behavior: "smooth",
165
+ });
166
+ setTimeout(() => showHideIcons(), 60); // calling showHideIcons after 60ms
120
167
  });
121
- };
122
- Slider();
123
- </script> -->
168
+ });
169
+
170
+ // const autoSlide = () => {
171
+ // // if there is no image left to scroll then return from here
172
+ // if (carousel.scrollLeft - (carousel.scrollWidth - carousel.clientWidth) > -1 || carousel.scrollLeft <= 0) return;
173
+
174
+ // positionDiff = Math.abs(positionDiff); // making positionDiff value to positive
175
+ // let firstImgWidth = firstImg.clientWidth + 14;
176
+ // // getting difference value that needs to add or reduce from carousel left to take middle img center
177
+ // let valDifference = firstImgWidth - positionDiff;
178
+
179
+ // if (carousel.scrollLeft > prevScrollLeft) { // if user is scrolling to the right
180
+ // return carousel.scrollLeft += positionDiff > firstImgWidth / 3 ? valDifference : -positionDiff;
181
+ // }
182
+ // // if user is scrolling to the left
183
+ // carousel.scrollLeft -= positionDiff > firstImgWidth / 3 ? valDifference : -positionDiff;
184
+ // }
185
+
186
+ // const dragStart = (e) => {
187
+ // // updatating global variables value on mouse down event
188
+ // isDragStart = true;
189
+ // prevPageX = e.pageX || e.touches[0].pageX;
190
+ // prevScrollLeft = carousel.scrollLeft;
191
+ // }
192
+
193
+ // const dragging = (e) => {
194
+ // // scrolling images/carousel to left according to mouse pointer
195
+ // if (!isDragStart) return;
196
+ // e.preventDefault();
197
+ // isDragging = true;
198
+ // carousel.classList.add("dragging");
199
+ // positionDiff = (e.pageX || e.touches[0].pageX) - prevPageX;
200
+ // carousel.scrollLeft = prevScrollLeft - positionDiff;
201
+ // showHideIcons();
202
+ // }
203
+
204
+ // const dragStop = () => {
205
+ // isDragStart = false;
206
+ // carousel.classList.remove("dragging");
207
+
208
+ // if (!isDragging) return;
209
+ // isDragging = false;
210
+ // autoSlide();
211
+ // }
212
+
213
+ // carousel.addEventListener("mousedown", dragStart);
214
+ // carousel.addEventListener("touchstart", dragStart);
215
+
216
+ // document.addEventListener("mousemove", dragging);
217
+ // carousel.addEventListener("touchmove", dragging);
218
+
219
+ // document.addEventListener("mouseup", dragStop);
220
+ // carousel.addEventListener("touchend", dragStop);
221
+ </script>
data/assets/css/tools.css CHANGED
@@ -1692,6 +1692,12 @@ ol li::marker {
1692
1692
  }
1693
1693
  }
1694
1694
  @media screen and (min-width: 1920px) {
1695
+ .feature-card-title, .faq-question{
1696
+ font-size: 22px;
1697
+ }
1698
+ .feature-card-desc,.how-to-list-item,.faq-answer{
1699
+ font-size: 18px;
1700
+ }
1695
1701
  .appscms-sidebar-left {
1696
1702
  left: 300px !important;
1697
1703
  }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: appscms-tools-theme
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.7.0
4
+ version: 3.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - vivek-appscms
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-06-21 00:00:00.000000000 Z
11
+ date: 2023-06-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll