appscms-tools-theme 4.8.8 → 4.9.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,30 @@
1
+ {
2
+ "reviews": [
3
+ {
4
+ "name": "Alice Johnson",
5
+ "title": "Excellent Image Editing Tool",
6
+ "review": "Safeimagekit is a lifesaver for quick and secure image editing. Love the variety of tools!"
7
+ },
8
+ {
9
+ "name": "Michael Lee",
10
+ "title": "Very Easy to Use",
11
+ "review": "Super simple to resize and adjust images. No need to download anything; works seamlessly online!"
12
+ },
13
+ {
14
+ "name": "Sophia Martinez",
15
+ "title": "Great for Quick Edits",
16
+ "review": "Perfect for quick edits without compromising privacy. Highly recommend Safeimagekit."
17
+ },
18
+ {
19
+ "name": "David Kim",
20
+ "title": "Fast and Reliable",
21
+ "review": "Impressed by the speed and reliability of Safeimagekit. Great for editing on the go without extra downloads."
22
+ }
23
+ ],
24
+ "title":"Over 5 Million Users Enjoy Using Our Applications monthly.",
25
+ "description":"Join a thriving community of creators who rely on our safeimagekit.com Tools.",
26
+ "rated": "4.8",
27
+ "numberOfReviews": "320",
28
+ "trustpilotReviewLink": "https://www.trustpilot.com/review/safeimagekit.com"
29
+ }
30
+
data/_includes/.DS_Store CHANGED
Binary file
Binary file
@@ -1,6 +1,63 @@
1
1
  <style>
2
+
3
+ .modal-arrow-btn {
4
+ position: absolute;
5
+ top: 50%;
6
+ width: 50px;
7
+ height: 50px;
8
+ background: rgba(0, 0, 0, 0.5);
9
+ color: #fff;
10
+ border: none;
11
+ cursor: pointer;
12
+ font-size: 24px;
13
+ text-align: center;
14
+ line-height: 50px;
15
+ border-radius: 50%;
16
+ transform: translateY(-50%);
17
+ }
18
+
19
+ .modal-arrow-btn.prev {
20
+ left: 10px;
21
+ }
22
+
23
+ .modal-arrow-btn.next {
24
+ right: 10px;
25
+ }
26
+ @media (max-width: 768px) {
27
+ .modal-arrow-btn {
28
+ top: 30%;
29
+ width: 40px;
30
+ height: 40px;
31
+ font-size: 20px;
32
+ line-height: 40px;
33
+ }
34
+
35
+ .modal-arrow-btn.prev {
36
+ left: 5px;
37
+ }
38
+
39
+ .modal-arrow-btn.next {
40
+ right: 5px;
41
+ }
42
+ }
43
+
44
+ @media (max-width: 480px) {
45
+ .modal-arrow-btn {
46
+ width: 30px;
47
+ height: 30px;
48
+ font-size: 16px;
49
+ line-height: 30px;
50
+ }
51
+
52
+ .modal-arrow-btn.prev {
53
+ left: 3px;
54
+ }
55
+
56
+ .modal-arrow-btn.next {
57
+ right: 3px;
58
+ }
59
+ }
2
60
  .modal1 {
3
- display: none;
4
61
  position: fixed;
5
62
  z-index: 1000;
6
63
  left: 0;
@@ -9,120 +66,153 @@
9
66
  height: 100%;
10
67
  overflow: auto;
11
68
  background-color: rgba(59, 58, 58, 0.9);
69
+ opacity: 0;
70
+ visibility: hidden;
71
+ transform: scale(0.8);
72
+ transition: opacity 0.3s ease, transform 0.3s ease, visibility 0s linear 0.3s;
73
+ }
74
+
75
+ .modal1.show {
76
+ opacity: 1;
77
+ visibility: visible;
78
+ transform: scale(1);
79
+ transition: opacity 0.3s ease, transform 0.3s ease, visibility 0s;
12
80
  }
81
+
13
82
  .modal1-content1 {
14
83
  margin: auto;
15
84
  display: block;
16
85
  width: 80%;
17
86
  max-width: 800px;
18
87
  margin-top: 20px;
88
+ opacity: 0;
89
+ transform: translateY(-20px);
90
+ transition: opacity 0.3s ease 0.1s, transform 0.3s ease 0.1s;
19
91
  }
20
- .modal1-body img {
21
- width: 100%;
22
- height: auto;
23
- }
24
- .close1 {
25
- position: absolute;
26
- top: 10px;
27
- right: 10px;
28
- font-size: 24px;
29
- color: #fff;
30
- cursor: pointer;
31
- }
32
- .close1:hover {
33
- color: #ccc;
92
+
93
+ .modal1.show .modal1-content1 {
94
+ opacity: 1;
95
+ transform: translateY(0);
34
96
  }
35
- </style>
36
- <div class="inforgraphics_section">
37
- <h3 class="text-center w-100 mb-5"><b>Other useful information</b></h3>
38
- <div class="wrapper">
39
- <img
40
- class="infographics-arrow"
41
- id="left"
42
- src="/assets/images/arrow-left.svg"
43
- alt=""
44
- />
45
- <div class="carousel">
46
- <div class="carousel-inner">
47
- {%- if pageData.infographics -%} {% for item in pageData.infographics %}
48
- <div class="slide">
49
- <img
50
- loading="lazy"
51
- src="{{ item.image }}"
52
- alt="img"
53
- draggable="false"
54
- class="infographic-img"
55
- onclick="openModal1('{{ item.image }}')"
56
- />
57
- <p class="infographic-desc">{{ item.description | capitalize }}</p>
97
+ .modal1-body img {
98
+ width: 100%;
99
+ height: auto;
100
+ }
101
+ .close1 {
102
+ position: absolute;
103
+ top: 10px;
104
+ right: 10px;
105
+ font-size: 24px;
106
+ color: #fff;
107
+ cursor: pointer;
108
+ }
109
+ .close1:hover {
110
+ color: #ccc;
111
+ }
112
+ </style>
113
+ <div class="inforgraphics_section">
114
+ <h3 class="text-center w-100 mb-5"><b>Other useful information</b></h3>
115
+ <div class="wrapper">
116
+ <i id="left" class="fas fa-angle-left"></i>
117
+ <div class="carousel">
118
+ <div class="carousel-inner">
119
+ {%- if pageData.infographics -%} {% for item in pageData.infographics %}
120
+ <div class="slide">
121
+ <img
122
+ loading="lazy"
123
+ src="{{ item.image }}"
124
+ alt="{{item.alt}}"
125
+ draggable="false"
126
+ class="infographic-img"
127
+ onclick="openModal1('{{ item.image }}')"
128
+ />
129
+ <p class="infographic-desc">{{ item.description | capitalize }}</p>
130
+ </div>
131
+ {% endfor %} {%- endif -%}
58
132
  </div>
59
- {% endfor %} {%- endif -%}
60
133
  </div>
134
+ <i id="right" class="fas fa-angle-right"></i>
61
135
  </div>
62
- <img
63
- class="infographics-arrow"
64
- id="right"
65
- src="/assets/images/arrow-right.svg"
66
- alt=""
67
- />
68
136
  </div>
69
- </div>
70
- <div id="imageModal1" class="modal1" onclick="closeModal1()">
71
- <span class="close1" onclick="closeModal1()">&times;</span>
72
- <div class="modal1-content1">
73
- <div class="modal1-body">
74
- <img id="modal1Image" src="" alt="Image" />
137
+ <div id="imageModal1" class="modal1" onclick="closeModal1()">
138
+ <span class="close1" onclick="closeModal1()">&times;</span>
139
+ <button class="modal-arrow-btn prev">&#10094;</button>
140
+ <button class="modal-arrow-btn next">&#10095;</button>
141
+ <div class="modal1-content1">
142
+ <div class="modal1-body">
143
+ <img id="modal1Image" src="" alt="Image" />
144
+ </div>
75
145
  </div>
76
146
  </div>
77
- </div>
78
- <script>
79
- function openModal1(imageSrc) {
80
- var modal1 = document.getElementById("imageModal1");
81
- var modal1Img = document.getElementById("modal1Image");
82
- modal1.style.display = "block";
83
- modal1Img.src = imageSrc;
84
- }
85
- function closeModal1() {
86
- var modal1 = document.getElementById("imageModal1");
87
- modal1.style.display = "none";
88
- }
89
- document.addEventListener("click", function (event) {
90
- var modal1 = document.getElementById("imageModal1");
91
- if (event.target === modal1) {
92
- closeModal1();
147
+ <script>
148
+ document.addEventListener("DOMContentLoaded", () => {
149
+ let modal_array_of_images = [];
150
+ let current_modal_img = 0;
151
+
152
+ // Function to update the modal image
153
+ function updateModalImage() {
154
+ const modal1Img = document.getElementById("modal1Image");
155
+ if (modal_array_of_images.length > 0) {
156
+ modal1Img.src = modal_array_of_images[current_modal_img].src;
157
+ }
93
158
  }
94
- });
95
- const carousel = document.querySelector(".carousel-inner"),
96
- firstImg = carousel.querySelectorAll("img")[0],
97
- arrowIcons = document.querySelectorAll(".infographics-arrow");
98
- const numImages = carousel.querySelectorAll("img").length;
99
- const isMobile = window.matchMedia("(max-width: 767px)").matches; // Check if screen width is less than or equal to 767px
100
- if (numImages > 3) {
101
- arrowIcons[1].style.display = "block";
102
- } else {
103
- arrowIcons[0].style.display = "none";
104
- arrowIcons[1].style.display = "none";
105
- }
106
- let isDragStart = false,
107
- isDragging = false,
108
- prevPageX,
109
- prevScrollLeft,
110
- positionDiff;
111
- const showHideIcons = () => {
112
- let scrollWidth = carousel.scrollWidth - carousel.clientWidth; // getting max scrollable width
113
- arrowIcons[0].style.display = carousel.scrollLeft == 0 ? "none" : "block";
114
- arrowIcons[1].style.display =
115
- carousel.scrollLeft == scrollWidth ? "none" : "block";
116
- };
117
- arrowIcons.forEach((icon) => {
118
- icon.addEventListener("click", () => {
119
- let firstImgWidth = firstImg.clientWidth + 40;
120
- const scrollAmount = icon.id === "left" ? -firstImgWidth : firstImgWidth;
121
- carousel.scrollBy({
122
- left: scrollAmount,
123
- behavior: "smooth",
159
+
160
+ // Function to prepare the array of images for the modal
161
+ function readyallimages() {
162
+ modal_array_of_images = Array.from(document.querySelectorAll('.infographic-img'));
163
+ }
164
+
165
+ // Function to open the modal and set the current image
166
+ function openModal1(imageSrc) {
167
+ const modal1 = document.getElementById("imageModal1");
168
+ modal1.classList.add("show");
169
+ modal_array_of_images = Array.from(document.querySelectorAll('.infographic-img'));
170
+ current_modal_img = modal_array_of_images.findIndex(img => img.src === imageSrc);
171
+ updateModalImage();
172
+ }
173
+
174
+ // Function to close the modal
175
+ function closeModal1() {
176
+ const modal1 = document.getElementById("imageModal1");
177
+ modal1.classList.remove("show");
178
+ }
179
+
180
+ // Add click event listeners to each infographic image
181
+ document.querySelectorAll('.infographic-img').forEach(img => {
182
+ img.addEventListener('click', (event) => {
183
+ openModal1(event.target.src);
184
+ });
185
+ });
186
+
187
+ // Event listeners for the modal arrow buttons
188
+ const modal_btns = document.querySelectorAll('.modal-arrow-btn');
189
+ modal_btns.forEach(modal_btn => {
190
+ modal_btn.addEventListener('click', (e) => {
191
+ e.stopPropagation();
192
+ if (modal_btn.classList.contains('prev')) {
193
+ current_modal_img = (current_modal_img > 0) ? current_modal_img - 1 : modal_array_of_images.length - 1;
194
+ } else {
195
+ current_modal_img = (current_modal_img < modal_array_of_images.length - 1) ? current_modal_img + 1 : 0;
196
+ }
197
+ updateModalImage();
124
198
  });
125
- setTimeout(() => showHideIcons(), 60); // calling showHideIcons after 60ms
126
199
  });
200
+
201
+ // Event listener for the close button
202
+ document.querySelectorAll(".close1").forEach(element => {
203
+ element.addEventListener("click", closeModal1);
204
+ });
205
+
206
+ // Event listener for closing the modal when clicking outside the image
207
+ document.getElementById("imageModal1").addEventListener("click", (event) => {
208
+ if (event.target === document.getElementById("imageModal1")) {
209
+ closeModal1();
210
+ }
211
+ });
212
+
213
+ // Initialize modal images on page load
214
+ readyallimages();
127
215
  });
128
- </script>
216
+
217
+ </script>
218
+
@@ -1,76 +1,4 @@
1
- <style>
2
- .search-container {
3
- display: flex;
4
- border: 1px solid #ccc;
5
- border-radius: 5px;
6
- overflow: hidden;
7
- height: 38px;
8
- width: 400px;
9
- background-color: white;
10
- position: relative;
11
- }
12
1
 
13
- .search-input {
14
- flex: 1;
15
- border: none;
16
- padding: 12px 16px;
17
- font-size: 16px;
18
- outline: none;
19
- }
20
-
21
- .search-input::placeholder {
22
- color: #888;
23
- }
24
-
25
- .search-button {
26
- background-color: var(--primary-color);
27
- border: none;
28
- padding: 0 16px;
29
- display: flex;
30
- align-items: center;
31
- justify-content: center;
32
- cursor: pointer;
33
- outline: none;
34
- border-radius: 0 !important;
35
- }
36
-
37
- .search-button svg {
38
- /* fill: #fff; */
39
- height: 20px;
40
- }
41
-
42
- .search-button:active {
43
- background-color: #555;
44
- }
45
- .nav-search{
46
- position: relative;
47
- }
48
- .result-item{
49
- padding: 9px 12px;
50
- }
51
- .result-item a{
52
- color: #222325;
53
- }
54
- .searchbarResults{
55
- overflow: scroll;
56
- height: 60vh;
57
- background-color: #fff;
58
- border: 1px solid #e4e5e7;
59
- border-radius: 6px;
60
- -webkit-box-shadow: 0 17px 58px rgba(0, 0, 0, .08);
61
- box-shadow: 0 17px 58px rgba(0, 0, 0, .08);
62
- -webkit-box-sizing: border-box;
63
- box-sizing: border-box;
64
- color: #74767e;
65
- cursor: default;
66
- margin-top: 8px;
67
- padding: 12px;
68
- position: absolute;
69
- width: 100%;
70
- z-index: 101;
71
- display: none;
72
- }
73
- </style>
74
2
  {% assign lang = page.lang | default: "en" %} {% assign siteData = site.data.header[lang].data
75
3
  %} {% assign featureData = page.fileName %} {% assign folder = page.folderName
76
4
  %} {% assign Data= site.data[folder][lang][file] %}
@@ -1,87 +1,4 @@
1
- <style>
2
- .mobile-search-bar {
3
- position: relative;
4
- height: 100px;
5
- width: 100%;
6
- display: none;
7
- }
8
-
9
- .mobile-search-container {
10
- display: flex;
11
- border: 1px solid #ccc;
12
- border-radius: 5px;
13
- overflow: hidden;
14
- height: 38px;
15
- margin: 20px 0px 20px 0px;
16
- background-color: white;
17
- position: relative;
18
- }
19
-
20
- .mobile-search-input {
21
- flex: 1;
22
- border: none;
23
- padding: 12px 16px;
24
- font-size: 16px;
25
- outline: none;
26
- }
27
-
28
- .mobile-search-input::placeholder {
29
- color: #888;
30
- }
31
-
32
- .mobile-search-button {
33
- background-color: #000;
34
- border: none;
35
- padding: 0 16px;
36
- display: flex;
37
- align-items: center;
38
- justify-content: center;
39
- cursor: pointer;
40
- outline: none;
41
- }
42
-
43
- .mobile-search-button svg {
44
- /* fill: #fff; */
45
- height: 20px;
46
- }
47
-
48
- .mobile-search-button:active {
49
- background-color: #555;
50
- }
51
-
52
- .mobile-nav-search {
53
- position: relative;
54
- }
55
-
56
- .mobile-result-item {
57
- padding: 9px 12px;
58
- }
59
-
60
- .mobile-result-item a {
61
- color: #222325;
62
- }
63
-
64
- .mobile-searchbarResults {
65
- background-color: #fff;
66
- border: 1px solid #e4e5e7;
67
- border-radius: 6px;
68
- -webkit-box-shadow: 0 17px 58px rgba(0, 0, 0, .08);
69
- box-shadow: 0 17px 58px rgba(0, 0, 0, .08);
70
- -webkit-box-sizing: border-box;
71
- box-sizing: border-box;
72
- color: #74767e;
73
- cursor: default;
74
- margin-top: 8px;
75
- padding: 12px;
76
- position: fixed;
77
- margin-top: 42px;
78
- width: 244px;
79
- height: 400px;
80
- overflow-y: scroll;
81
- z-index: 101;
82
- display: none;
83
- }
84
- </style>
1
+
85
2
 
86
3
  {%- if site.newToolBar -%}
87
4
  <div class="appscms-toolbar">
@@ -128,7 +45,7 @@
128
45
  <h4 class="expand_menu-name-categiry">FEATURED TOOLS</h4>
129
46
  {%- for i in item.featuredLinks -%}
130
47
  <a href="{{i.url}}" class="category-tools__item">
131
- <div class="icon_box v_2 v2">
48
+ <div class="icon_box v_2 v2" style="background-color: {{i.color}};">
132
49
  <img src="{{i.iconSrc}}" alt="icon-img" />
133
50
  </div>
134
51
  <div class="category-tools__content">
@@ -202,8 +119,8 @@
202
119
  <h4 class="expand_menu-name-categiry">FEATURED TOOLS</h4>
203
120
  {%- for i in item.featuredLinks -%}
204
121
  <a href="{{i.url}}" class="category-tools__item">
205
- <div class="icon_box v_2 v2">
206
- <img src="{{i.iconSrc}}" alt="icon-img" />
122
+ <div class="icon_box v_2 v2" >
123
+ <img style="background-color: {{i.color}};" src="{{i.iconSrc}}" alt="icon-img" />
207
124
  </div>
208
125
  <div class="category-tools__content">
209
126
  <h4>{{i.name}}</h4>
@@ -385,57 +302,3 @@
385
302
 
386
303
  </script>
387
304
 
388
- <style>
389
- .scroll-container {
390
- display: flex;
391
- align-items: center;
392
- background-color: #333;
393
- position: relative;
394
- }
395
-
396
- .scroll-left,
397
- .scroll-right {
398
- background-color: #4456f6f7;
399
- color: white;
400
- border: none;
401
- height: 40px;
402
- cursor: pointer;
403
- position: absolute;
404
- width: 40px;
405
- top: 50%;
406
- z-index: 100;
407
- transform: translateY(-50%);
408
- }
409
-
410
- .scroll-left {
411
- left: 0;
412
- }
413
-
414
- .scroll-right {
415
- right: 0;
416
- }
417
-
418
- .scroll-left:hover,
419
- .scroll-right:hover {
420
- background-color: #8691f6f7;
421
- }
422
-
423
- .navbar {
424
- /* overflow-x: auto; */
425
- white-space: nowrap;
426
- flex-grow: 1;
427
- scroll-behavior: smooth;
428
- display: flex;
429
- }
430
-
431
- .navbar ul {
432
- padding: 0;
433
- margin: 0;
434
- display: flex;
435
- list-style-type: none;
436
- }
437
-
438
- .navbar li {
439
- display: inline;
440
- }
441
- </style>