appscms-tools-theme 5.6.9 → 5.7.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1a5c2ef6ab656b529276045003dfb246ae244a71472c1bbf29f99b96b048bfc0
4
- data.tar.gz: 7d776e2b2458cd157e90dfc679943e4c3b88ee97cf744793f0d2d5b2f51ffb42
3
+ metadata.gz: dd483d19d3cca1d4445e8fc484be3e28a69f9d0c026b74d734c912c822fa8bb3
4
+ data.tar.gz: 8430e0aa74ed6719618c1a75b6f56ce78539fb45c16c1b887ed14ddb0a9033ce
5
5
  SHA512:
6
- metadata.gz: 680d04093c7f287ced7879d342a458ae55c23d36ef7a66d3e2922ced8db9aca5abeed8e09c5f0749fbbd2358b3e7669b3bb0b159ba5c7faadd0663870298a629
7
- data.tar.gz: 5c3e0b840ddfad096b705c8ded5f2ad3121f34c69b40bcf895966bf6d1d4bf74f1dd2dbec548cabe8cff17d016c0bfebf8dcc1b1aaf3d4429a1a5994ca9fd476
6
+ metadata.gz: c51d61543ba11156f3a62ccf8a726a79a597e88c75c0d85d728cc6d2161fadd4a755e8e9d73eeb4f255e55889f5299a73508ef6ce7b7ac788e2edf14f7514868
7
+ data.tar.gz: 62511290a3e346cf350655b6564de0ac7987a8bc635aef6f9f70349c62fca58cf1f0afc816052b3b487bd6731e278ffceb13a75a80f6cae13b12d98527353cca
data/_data/.DS_Store CHANGED
Binary file
Binary file
@@ -1,193 +1,159 @@
1
1
  {
2
- "Language": "English",
3
- "feature": "compress-pdf",
4
- "htmlLangAtt": "en",
5
- "categories": [
6
- "Scrabble"
7
- ],
8
- "tags": [
9
- "wordswithletters"
10
- ],
11
- "author": "udit",
12
- "contributors": [
13
- {
14
- "name": "udit"
15
- },
16
- {
17
- "name": "udit"
18
- },
19
- {
20
- "name": "udit"
21
- },
22
- {
23
- "name": "udit"
24
- }
25
- ],
26
- "H1": "set alarm for $variable minutes from now",
27
- "H2": "simplest online alarm clock to set alarms. Do not close browser tab.",
28
- "TITLE": "set alarm for $variable minutes from now",
29
- "META": "easiest way to set alarm for $variable minutes from now. Choose sound for alarm from multiple options.",
30
- "keywords": "key1,key2,key3,key4",
31
- "LABEL": "DOCX to PDF",
32
- "nofileupload": true,
33
- "rate": "Rate this tool",
34
- "votes": "votes",
35
- "BREADCRUMB_LABEL": "DOCX TO PDF",
36
- "color": "blue",
37
- "height": "300px",
38
- "img": "/assets/bulb.svg",
39
- "imgwidth": "40px",
40
- "imgheight": "40px",
41
- "imgalt": "altvalue",
42
- "TEXTUAL_CONTENT": [
43
- {
44
- "priority": 1,
45
- "logoUrl": "/assets/bulb.svg",
46
- "header": "Simple to use",
47
- "content": "Setalarmforme.com provides simplest way to set alarms for X minutes from now."
48
- },
49
- {
50
- "priority": 1,
51
- "logoUrl": "/assets/guaranty.svg",
52
- "header": "Accurate alarms",
53
- "content": "Alarms setup by Setalarmforme.com are accurate. You can rely on us completely to start alarm after $variable minutes."
54
- },
55
- {
56
- "priority": 1,
57
- "logoUrl": "/assets/support.svg",
58
- "header": "Cross platform",
59
- "content": "You can setup alarm for $variable minutes from now on any operating system, like Windows/Mac/Linux/Android/iPhone."
60
- },
61
- {
62
- "priority": 1,
63
- "logoUrl": "/assets/protect.svg",
64
- "header": "Secure and trustworthy",
65
- "content": "Setalarmforme.com does not require users to login for setting alarm for $variable minutes from now. No user information is send to our servers."
66
- },
67
- {
68
- "priority": 1,
69
- "logoUrl": "/assets/easy.svg",
70
- "header": "All timezones supported",
71
- "content": "Using Setalarmforme.com you can set alarm to start after $variable minutes from current time, in any time zone."
72
- },
73
- {
74
- "priority": 1,
75
- "logoUrl": "/assets/cloud.svg",
76
- "header": "No need to install any software",
77
- "content": "Setalarmforme.com is a cloud and web based application. You do not need to install any software to use Setalarmforme.com while setting alarms for $variable minutes from now."
78
- }
79
- ],
80
- "csscdns": [
81
- "<link rel=\"stylesheet\" href=\"/assets/css/batch.css\" crossorigin='anonymous' />"
82
- ],
83
- "jsfilepaths": [
84
- "/assets/js/googledrive.js",
85
- "/js/jszip.min.js",
86
- "/assets/js/batch.js",
87
- "/assets/js/testing-batch.js"
88
- ],
89
- "posts": [
90
- {
91
- "tags": [
92
- "ok"
93
- ],
94
- "categories": [
95
- "Scrabble",
96
- "history"
97
- ],
98
- "layout": "appscms-post",
99
- "title": "Everything has beauty, but not everyone can see",
100
- "image": "/uploads/output-1.png",
101
- "image2": "/uploads/8-jan.PNG",
102
- "author": "Balark",
103
- "comments": true,
104
- "url": "history-of-company-copy-10",
105
- "path": "_posts/2021-01-08-history-of-company copy 10.md"
106
- },
107
- {
108
- "tags": [
109
- "ok"
110
- ],
111
- "categories": [
112
- "Scrabble",
113
- "history"
114
- ],
115
- "layout": "appscms-post",
116
- "title": "Everything has beauty, but not everyone can see",
117
- "image": "/uploads/output-1.png",
118
- "image2": "/uploads/8-jan.PNG",
119
- "author": "Balark",
120
- "comments": true,
121
- "url": "history-of-company-copy-11",
122
- "path": "_posts/2021-01-08-history-of-company copy 11.md"
123
- },
124
- {
125
- "tags": [
126
- "ok"
127
- ],
128
- "categories": [
129
- "Scrabble",
130
- "history"
131
- ],
132
- "layout": "appscms-post",
133
- "title": "Everything has beauty, but not everyone can see",
134
- "image": "/uploads/output-1.png",
135
- "image2": "/uploads/8-jan.PNG",
136
- "author": "Balark",
137
- "comments": true,
138
- "url": "history-of-company-copy-12",
139
- "path": "_posts/2021-01-08-history-of-company copy 12.md"
140
- },
141
- {
142
- "tags": [
143
- "ok"
144
- ],
145
- "categories": [
146
- "Scrabble",
147
- "history"
148
- ],
149
- "layout": "appscms-post",
150
- "title": "Everything has beauty, but not everyone can see",
151
- "image": "/uploads/output-1.png",
152
- "image2": "/uploads/8-jan.PNG",
153
- "author": "Balark",
154
- "comments": true,
155
- "url": "history-of-company-copy-13",
156
- "path": "_posts/2021-01-08-history-of-company copy 13.md"
157
- },
158
- {
159
- "tags": [
160
- "ok"
161
- ],
162
- "categories": [
163
- "Scrabble",
164
- "history"
165
- ],
166
- "layout": "appscms-post",
167
- "title": "Everything has beauty, but not everyone can see",
168
- "image": "/uploads/output-1.png",
169
- "image2": "/uploads/8-jan.PNG",
170
- "author": "Balark",
171
- "comments": true,
172
- "url": "history-of-company-copy-14",
173
- "path": "_posts/2021-01-08-history-of-company copy 14.md"
174
- },
175
- {
176
- "tags": [
177
- "ok"
178
- ],
179
- "categories": [
180
- "Scrabble",
181
- "history"
182
- ],
183
- "layout": "appscms-post",
184
- "title": "Everything has beauty, but not everyone can see",
185
- "image": "/uploads/output-1.png",
186
- "image2": "/uploads/8-jan.PNG",
187
- "author": "Balark",
188
- "comments": true,
189
- "url": "history-of-company-copy-15",
190
- "path": "_posts/2021-01-08-history-of-company copy 15.md"
191
- }
192
- ]
193
- }
2
+ "Language": "English",
3
+ "feature": "compress-pdf",
4
+ "htmlLangAtt": "en",
5
+ "categories": ["Scrabble"],
6
+ "tags": ["wordswithletters"],
7
+ "author": "udit",
8
+ "contributors": [
9
+ {
10
+ "name": "udit"
11
+ },
12
+ {
13
+ "name": "udit"
14
+ },
15
+ {
16
+ "name": "udit"
17
+ },
18
+ {
19
+ "name": "udit"
20
+ }
21
+ ],
22
+ "H1": "set alarm for $variable minutes from now",
23
+ "H2": "simplest online alarm clock to set alarms. Do not close browser tab.",
24
+ "TITLE": "set alarm for $variable minutes from now",
25
+ "META": "easiest way to set alarm for $variable minutes from now. Choose sound for alarm from multiple options.",
26
+ "keywords": "key1,key2,key3,key4",
27
+ "LABEL": "DOCX to PDF",
28
+ "nofileupload": true,
29
+ "rate": "Rate this tool",
30
+ "votes": "votes",
31
+ "BREADCRUMB_LABEL": "DOCX TO PDF",
32
+ "color": "blue",
33
+ "height": "300px",
34
+ "img": "/assets/bulb.svg",
35
+ "imgwidth": "40px",
36
+ "imgheight": "40px",
37
+ "imgalt": "altvalue",
38
+ "TEXTUAL_CONTENT": [
39
+ {
40
+ "priority": 1,
41
+ "logoUrl": "/assets/bulb.svg",
42
+ "header": "Simple to use",
43
+ "content": "Setalarmforme.com provides simplest way to set alarms for X minutes from now."
44
+ },
45
+ {
46
+ "priority": 1,
47
+ "logoUrl": "/assets/guaranty.svg",
48
+ "header": "Accurate alarms",
49
+ "content": "Alarms setup by Setalarmforme.com are accurate. You can rely on us completely to start alarm after $variable minutes."
50
+ },
51
+ {
52
+ "priority": 1,
53
+ "logoUrl": "/assets/support.svg",
54
+ "header": "Cross platform",
55
+ "content": "You can setup alarm for $variable minutes from now on any operating system, like Windows/Mac/Linux/Android/iPhone."
56
+ },
57
+ {
58
+ "priority": 1,
59
+ "logoUrl": "/assets/protect.svg",
60
+ "header": "Secure and trustworthy",
61
+ "content": "Setalarmforme.com does not require users to login for setting alarm for $variable minutes from now. No user information is send to our servers."
62
+ },
63
+ {
64
+ "priority": 1,
65
+ "logoUrl": "/assets/easy.svg",
66
+ "header": "All timezones supported",
67
+ "content": "Using Setalarmforme.com you can set alarm to start after $variable minutes from current time, in any time zone."
68
+ },
69
+ {
70
+ "priority": 1,
71
+ "logoUrl": "/assets/cloud.svg",
72
+ "header": "No need to install any software",
73
+ "content": "Setalarmforme.com is a cloud and web based application. You do not need to install any software to use Setalarmforme.com while setting alarms for $variable minutes from now."
74
+ }
75
+ ],
76
+ "csscdns": [
77
+ "<link rel=\"stylesheet\" href=\"/assets/css/batch.css\" crossorigin='anonymous' />"
78
+ ],
79
+ "jsfilepaths": [
80
+ "/assets/js/googledrive.js",
81
+ "/js/jszip.min.js",
82
+ "/assets/js/batch.js",
83
+ "/assets/js/testing-batch.js"
84
+ ],
85
+ "posts": [
86
+ {
87
+ "tags": ["ok"],
88
+ "categories": ["Scrabble", "history"],
89
+ "layout": "appscms-post",
90
+ "title": "Everything has beauty, but not everyone can see",
91
+ "image": "/uploads/output-1.png",
92
+ "image2": "/uploads/8-jan.PNG",
93
+ "author": "Balark",
94
+ "comments": true,
95
+ "url": "history-of-company-copy-10",
96
+ "path": "_posts/2021-01-08-history-of-company copy 10.md"
97
+ },
98
+ {
99
+ "tags": ["ok"],
100
+ "categories": ["Scrabble", "history"],
101
+ "layout": "appscms-post",
102
+ "title": "Everything has beauty, but not everyone can see",
103
+ "image": "/uploads/output-1.png",
104
+ "image2": "/uploads/8-jan.PNG",
105
+ "author": "Balark",
106
+ "comments": true,
107
+ "url": "history-of-company-copy-11",
108
+ "path": "_posts/2021-01-08-history-of-company copy 11.md"
109
+ },
110
+ {
111
+ "tags": ["ok"],
112
+ "categories": ["Scrabble", "history"],
113
+ "layout": "appscms-post",
114
+ "title": "Everything has beauty, but not everyone can see",
115
+ "image": "/uploads/output-1.png",
116
+ "image2": "/uploads/8-jan.PNG",
117
+ "author": "Balark",
118
+ "comments": true,
119
+ "url": "history-of-company-copy-12",
120
+ "path": "_posts/2021-01-08-history-of-company copy 12.md"
121
+ },
122
+ {
123
+ "tags": ["ok"],
124
+ "categories": ["Scrabble", "history"],
125
+ "layout": "appscms-post",
126
+ "title": "Everything has beauty, but not everyone can see",
127
+ "image": "/uploads/output-1.png",
128
+ "image2": "/uploads/8-jan.PNG",
129
+ "author": "Balark",
130
+ "comments": true,
131
+ "url": "history-of-company-copy-13",
132
+ "path": "_posts/2021-01-08-history-of-company copy 13.md"
133
+ },
134
+ {
135
+ "tags": ["ok"],
136
+ "categories": ["Scrabble", "history"],
137
+ "layout": "appscms-post",
138
+ "title": "Everything has beauty, but not everyone can see",
139
+ "image": "/uploads/output-1.png",
140
+ "image2": "/uploads/8-jan.PNG",
141
+ "author": "Balark",
142
+ "comments": true,
143
+ "url": "history-of-company-copy-14",
144
+ "path": "_posts/2021-01-08-history-of-company copy 14.md"
145
+ },
146
+ {
147
+ "tags": ["ok"],
148
+ "categories": ["Scrabble", "history"],
149
+ "layout": "appscms-post",
150
+ "title": "Everything has beauty, but not everyone can see",
151
+ "image": "/uploads/output-1.png",
152
+ "image2": "/uploads/8-jan.PNG",
153
+ "author": "Balark",
154
+ "comments": true,
155
+ "url": "history-of-company-copy-15",
156
+ "path": "_posts/2021-01-08-history-of-company copy 15.md"
157
+ }
158
+ ]
159
+ }
@@ -0,0 +1,42 @@
1
+ {
2
+ "heading": "Just Dropped — Try Our Newest Tools",
3
+ "subtext": "Fresh tools added this week — free, no sign-up needed",
4
+ "tools": [
5
+ {
6
+ "name": "PDF Creator",
7
+ "description": "Create a PDF quickly and easily with our free online PDF creator",
8
+ "url": "/pdf-creator",
9
+ "icon": "/assets/images/convert.svg"
10
+ },
11
+ {
12
+ "name": "Background Remover",
13
+ "description": "Remove or change the background on any photo instantly",
14
+ "url": "/background-remover",
15
+ "icon": "/assets/images/digipaint.svg"
16
+ },
17
+ {
18
+ "name": "Photo Cleanup",
19
+ "description": "Use AI to remove unwanted objects, items, or people from an image",
20
+ "url": "/photo-cleanup",
21
+ "icon": "/assets/images/vectorpaint.svg"
22
+ },
23
+ {
24
+ "name": "Image Converter",
25
+ "description": "Convert images between JPG, PNG, WEBP and more formats in seconds",
26
+ "url": "/image-converter",
27
+ "icon": "/assets/images/addimg.svg"
28
+ },
29
+ {
30
+ "name": "Audio Converter",
31
+ "description": "Convert audio files to MP3, WAV, AAC and other formats with ease",
32
+ "url": "/audio-converter",
33
+ "icon": "/assets/images/audio-upload.svg"
34
+ },
35
+ {
36
+ "name": "Speed Test",
37
+ "description": "Check your internet connection speed quickly and accurately",
38
+ "url": "/speed-test",
39
+ "icon": "/assets/images/speed.svg"
40
+ }
41
+ ]
42
+ }
data/_includes/.DS_Store CHANGED
Binary file
Binary file
@@ -0,0 +1,287 @@
1
+ {% assign lfd = site.data.home.en["latest-tools"] %}
2
+ {% assign lfd_tools = lfd.tools %}
3
+
4
+ {% if lfd_tools.size > 0 %}
5
+ <section class="lfd-section" aria-label="Latest Featured Tools">
6
+ <div class="container">
7
+
8
+ <div class="row mb-4">
9
+ <div class="col">
10
+ <span class="lfd-eyebrow">What's New</span>
11
+ <p class="lfd-heading">{{ lfd.heading }}</p>
12
+ <p class="lfd-sub">{{ lfd.subtext }}</p>
13
+ </div>
14
+ </div>
15
+
16
+ <div class="row">
17
+ {% for item in lfd_tools %}
18
+ <div class="col-12 col-sm-6 col-md-4 mb-4 lfd-col">
19
+ <a href="{{ item.url }}" class="lfd-card lfd-bg-{{ forloop.index }}">
20
+ <div class="lfd-preview">
21
+ <div class="lfd-browser-bar">
22
+ <span class="lfd-dot"></span>
23
+ <span class="lfd-dot"></span>
24
+ <span class="lfd-dot"></span>
25
+ <span class="lfd-url-bar"></span>
26
+ </div>
27
+ <div class="lfd-icon-wrap">
28
+ <img
29
+ src="{{ item.icon }}"
30
+ alt="{{ item.name }}"
31
+ class="lfd-icon"
32
+ crossorigin="anonymous"
33
+ loading="lazy"
34
+ />
35
+ </div>
36
+ <span class="lfd-new-badge">NEW</span>
37
+ </div>
38
+ <div class="lfd-info">
39
+ <p class="lfd-title">{{ item.name | truncate: 36, ".." }}</p>
40
+ <p class="lfd-desc">{{ item.description | truncate: 90, ".." }}</p>
41
+ <span class="lfd-cta">Try it free &rarr;</span>
42
+ </div>
43
+ </a>
44
+ </div>
45
+ {% endfor %}
46
+ </div>
47
+
48
+ </div>
49
+ </section>
50
+
51
+ <style>
52
+ .lfd-section {
53
+ padding: 3.5rem 0 4.5rem;
54
+ background: #f5f7fb;
55
+ }
56
+
57
+ .lfd-eyebrow {
58
+ display: inline-block;
59
+ font-size: .72rem;
60
+ font-weight: 700;
61
+ letter-spacing: .12em;
62
+ text-transform: uppercase;
63
+ color: #2563eb;
64
+ background: #dbeafe;
65
+ border-radius: 999px;
66
+ padding: .2rem .8rem;
67
+ margin-bottom: .65rem;
68
+ }
69
+
70
+ .lfd-heading {
71
+ font-size: clamp(1.4rem, 3vw, 2rem);
72
+ font-weight: 800;
73
+ color: #0f172a;
74
+ margin-bottom: .3rem;
75
+ line-height: 1.2;
76
+ }
77
+
78
+ .lfd-sub {
79
+ color: #64748b;
80
+ font-size: .95rem;
81
+ margin-bottom: 0;
82
+ }
83
+
84
+ /* card */
85
+ .lfd-card {
86
+ display: block;
87
+ background: #fff;
88
+ border-radius: 1rem;
89
+ overflow: hidden;
90
+ text-decoration: none;
91
+ height: 100%;
92
+ box-shadow: 0 1px 4px rgba(0,0,0,.07);
93
+ transition: box-shadow .25s, transform .25s;
94
+ animation: lfd-rise .7s cubic-bezier(.22,.68,0,1.2) both, lfd-ring 2.8s ease-in-out 1.2s infinite;
95
+ }
96
+
97
+ .lfd-card:hover {
98
+ box-shadow: 0 14px 36px rgba(37,99,235,.22);
99
+ transform: translateY(-8px);
100
+ text-decoration: none;
101
+ animation-play-state: paused, paused;
102
+ }
103
+
104
+ @keyframes lfd-ring {
105
+ 0%, 100% { box-shadow: 0 1px 4px rgba(0,0,0,.07); }
106
+ 50% { box-shadow: 0 0 0 4px rgba(37,99,235,.35), 0 8px 28px rgba(37,99,235,.18); }
107
+ }
108
+
109
+ /* staggered entry animation */
110
+ .lfd-col:nth-child(1) .lfd-card { animation-delay: 0ms; }
111
+ .lfd-col:nth-child(2) .lfd-card { animation-delay: 90ms; }
112
+ .lfd-col:nth-child(3) .lfd-card { animation-delay: 180ms; }
113
+ .lfd-col:nth-child(4) .lfd-card { animation-delay: 270ms; }
114
+ .lfd-col:nth-child(5) .lfd-card { animation-delay: 360ms; }
115
+ .lfd-col:nth-child(6) .lfd-card { animation-delay: 450ms; }
116
+
117
+ @keyframes lfd-rise {
118
+ from { opacity: 0; transform: translateY(40px) scale(.92); }
119
+ to { opacity: 1; transform: translateY(0) scale(1); }
120
+ }
121
+
122
+ /* preview background colours — match order in latest-tools.json */
123
+ .lfd-bg-1 .lfd-preview { background: linear-gradient(135deg, #dbeafe 0%, #bfdbfe 100%); }
124
+ .lfd-bg-2 .lfd-preview { background: linear-gradient(135deg, #ede9fe 0%, #ddd6fe 100%); }
125
+ .lfd-bg-3 .lfd-preview { background: linear-gradient(135deg, #dcfce7 0%, #bbf7d0 100%); }
126
+ .lfd-bg-4 .lfd-preview { background: linear-gradient(135deg, #fef9c3 0%, #fef08a 100%); }
127
+ .lfd-bg-5 .lfd-preview { background: linear-gradient(135deg, #ffe4e6 0%, #fecdd3 100%); }
128
+ .lfd-bg-6 .lfd-preview { background: linear-gradient(135deg, #ecfdf5 0%, #a7f3d0 100%); }
129
+
130
+ /* preview area */
131
+ .lfd-preview {
132
+ position: relative;
133
+ height: 190px;
134
+ display: flex;
135
+ align-items: center;
136
+ justify-content: center;
137
+ overflow: hidden;
138
+ }
139
+
140
+ /* shine sweep across preview */
141
+ .lfd-preview::after {
142
+ content: '';
143
+ position: absolute;
144
+ top: 0; bottom: 0;
145
+ left: -60%;
146
+ width: 40%;
147
+ background: linear-gradient(
148
+ 105deg,
149
+ transparent 0%,
150
+ rgba(255,255,255,.85) 50%,
151
+ transparent 100%
152
+ );
153
+ transform: skewX(-15deg);
154
+ animation: lfd-shine 2.8s ease-in-out infinite;
155
+ pointer-events: none;
156
+ }
157
+
158
+ .lfd-col:nth-child(1) .lfd-preview::after { animation-delay: 0s; }
159
+ .lfd-col:nth-child(2) .lfd-preview::after { animation-delay: .45s; }
160
+ .lfd-col:nth-child(3) .lfd-preview::after { animation-delay: .9s; }
161
+ .lfd-col:nth-child(4) .lfd-preview::after { animation-delay: 1.35s; }
162
+ .lfd-col:nth-child(5) .lfd-preview::after { animation-delay: 1.8s; }
163
+ .lfd-col:nth-child(6) .lfd-preview::after { animation-delay: 2.25s; }
164
+
165
+ @keyframes lfd-shine {
166
+ 0% { left: -60%; opacity: 0; }
167
+ 10% { opacity: 1; }
168
+ 60% { left: 130%; opacity: 1; }
169
+ 61%, 100% { left: 130%; opacity: 0; }
170
+ }
171
+
172
+ .lfd-browser-bar {
173
+ position: absolute;
174
+ top: 10px;
175
+ left: 10px;
176
+ right: 10px;
177
+ height: 20px;
178
+ background: rgba(255,255,255,.6);
179
+ border-radius: 5px;
180
+ display: flex;
181
+ align-items: center;
182
+ padding: 0 7px;
183
+ gap: 5px;
184
+ backdrop-filter: blur(4px);
185
+ }
186
+
187
+ .lfd-dot {
188
+ width: 7px;
189
+ height: 7px;
190
+ border-radius: 50%;
191
+ background: rgba(0,0,0,.18);
192
+ flex-shrink: 0;
193
+ }
194
+
195
+ .lfd-url-bar {
196
+ flex: 1;
197
+ height: 7px;
198
+ background: rgba(0,0,0,.1);
199
+ border-radius: 4px;
200
+ margin-left: 5px;
201
+ }
202
+
203
+ .lfd-icon-wrap {
204
+ display: flex;
205
+ align-items: center;
206
+ justify-content: center;
207
+ padding-top: 8px;
208
+ }
209
+
210
+ .lfd-icon {
211
+ width: 72px;
212
+ height: 72px;
213
+ object-fit: contain;
214
+ filter: drop-shadow(0 6px 18px rgba(0,0,0,.22));
215
+ animation: lfd-float 2.4s ease-in-out infinite;
216
+ }
217
+
218
+ @keyframes lfd-float {
219
+ 0%, 100% { transform: translateY(0) scale(1); }
220
+ 50% { transform: translateY(-16px) scale(1.08); }
221
+ }
222
+
223
+ /* NEW badge */
224
+ .lfd-new-badge {
225
+ position: absolute;
226
+ top: 36px;
227
+ right: 10px;
228
+ background: #2563eb;
229
+ color: #fff;
230
+ font-size: .65rem;
231
+ font-weight: 800;
232
+ letter-spacing: .12em;
233
+ padding: .2rem .55rem;
234
+ border-radius: 5px;
235
+ box-shadow: 0 0 0 0 rgba(37,99,235,.7);
236
+ animation: lfd-badge-pop 1.6s ease-out infinite;
237
+ }
238
+
239
+ @keyframes lfd-badge-pop {
240
+ 0% { transform: scale(1); box-shadow: 0 0 0 0 rgba(37,99,235,.7); }
241
+ 50% { transform: scale(1.18); box-shadow: 0 0 0 10px rgba(37,99,235,0); }
242
+ 100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(37,99,235,0); }
243
+ }
244
+
245
+ /* card body */
246
+ .lfd-info {
247
+ padding: 1.1rem 1.2rem 1.3rem;
248
+ }
249
+
250
+ .lfd-title {
251
+ font-size: 1rem;
252
+ font-weight: 700;
253
+ color: #0f172a;
254
+ margin-bottom: .3rem;
255
+ }
256
+
257
+ .lfd-desc {
258
+ font-size: .84rem;
259
+ color: #475569;
260
+ line-height: 1.55;
261
+ margin-bottom: .75rem;
262
+ }
263
+
264
+ .lfd-cta {
265
+ font-size: .9rem;
266
+ font-weight: 700;
267
+ color: #fff;
268
+ background: #2563eb;
269
+ display: inline-block;
270
+ padding: .4rem 1rem;
271
+ border-radius: 999px;
272
+ animation: lfd-nudge 1.4s ease-in-out infinite;
273
+ }
274
+
275
+ @keyframes lfd-nudge {
276
+ 0%, 100% { transform: translateX(0) scale(1); }
277
+ 40% { transform: translateX(8px) scale(1.05); }
278
+ 60% { transform: translateX(4px) scale(1.02); }
279
+ }
280
+
281
+ .lfd-card:hover .lfd-cta {
282
+ animation-play-state: paused;
283
+ background: #1d4ed8;
284
+ transform: translateX(8px) scale(1.05);
285
+ }
286
+ </style>
287
+ {% endif %}
@@ -1,7 +1,7 @@
1
1
  {% assign file = page.fileName %} {% assign lang = page.lang %} {% assign folder
2
2
  = page.folderName %} {% assign pageData = site.data[folder][lang][file] %} {%-
3
3
  assign boxColor = site.data[page.folderName][page.lang][page.fileName].color -%}
4
- <!DOCTYPE html>
4
+ <!doctype html>
5
5
  <html lang="{{ page.lang }}">
6
6
  {%- include appscms/head/head.html -%}
7
7
  <body
@@ -10,11 +10,9 @@ assign boxColor = site.data[page.folderName][page.lang][page.fileName].color -%}
10
10
  data-app-id="{{ site.appId }}"
11
11
  data-dropbox-apikey="{{ site.dropboxapikey }}"
12
12
  >
13
- {%- include adsense/sidebar-ads.html -%}
14
-
15
-
16
- {%- include appscms/navbars/navbar.html -%} {%- include
17
- appscms/navbars/toolbar.html -%} {%- if homeData.nofileupload -%}
13
+ {%- include adsense/sidebar-ads.html -%} {%- include
14
+ appscms/navbars/navbar.html -%} {%- include appscms/navbars/toolbar.html -%}
15
+ {%- if homeData.nofileupload -%}
18
16
  <div
19
17
  id="safeui-alert"
20
18
  class="alert alert-{{homeData.variant | default: 'primary'}} fade show text-center"
@@ -30,7 +28,8 @@ assign boxColor = site.data[page.folderName][page.lang][page.fileName].color -%}
30
28
  site.search -%} {%- include appscms/searchbar/searchbar.html -%} {%- endif
31
29
  -%} {%- if site.categoryTab -%} {%- include
32
30
  appscms/category-tabs/category-tabs.html -%} {%- endif -%} {%- include
33
- appscms/home/feature-boxes.html -%}
31
+ appscms/home/feature-boxes.html -%} {%- include
32
+ appscms/home/latest-features-display.html -%}
34
33
  <div class="appcms-home-content-box" id="appcms-home-content-box">
35
34
  {{ content }}
36
35
  </div>
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: 5.6.9
4
+ version: 5.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - vivek-appscms
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-08-11 00:00:00.000000000 Z
11
+ date: 2026-09-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll
@@ -149,6 +149,7 @@ files:
149
149
  - _data/home/de/de.json
150
150
  - _data/home/en/en.json
151
151
  - _data/home/en/ens.json
152
+ - _data/home/en/latest-tools.json
152
153
  - _data/home/en/photoeffects.json
153
154
  - _data/home/en/posters.json
154
155
  - _data/home/hi/hi.json
@@ -205,6 +206,7 @@ files:
205
206
  - _includes/appscms/home/contenttool-feature-boxes.html
206
207
  - _includes/appscms/home/devtool-feature-boxes.html
207
208
  - _includes/appscms/home/feature-boxes.html
209
+ - _includes/appscms/home/latest-features-display.html
208
210
  - _includes/appscms/howto/howto.html
209
211
  - _includes/appscms/infographics/infographics.html
210
212
  - _includes/appscms/loaders/loader.html