diff --git a/CHANGELOG.md b/CHANGELOG.md
index b23c254..cfb1f1f 100755
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [1.5.0] - 2026-07-25
+### Added
+
+- New monochrome logo and icon: a grid monogram that forms an "E" from table cells, matching the app's soft-black palette (the previous mark was a blue-to-green gradient that predated the monochrome redesign)
+- Proper icon set: PNG favicons (16 and 32), an Apple touch icon, and 192/512 PWA icons alongside the SVG
+- Link preview support: a 1200x630 social card (`og-image.png`) plus OpenGraph and Twitter card metadata, so shared links and the GitHub social preview render with the brand card
+
+### Changed
+
+- The PWA manifest now lists raster icons at the sizes installers expect, and the service worker precaches the new favicon set
+
### Security
- Table extraction hardened against denial-of-service PDFs: the column-detection histogram is built from a difference array (O(items + size) instead of O(rows x size) work), and fragment merging skips rows with more than 400 fragments, so a crafted PDF degrades gracefully instead of freezing the tab
@@ -17,6 +27,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Fixed
- Renovate's custom cdnjs manager now matches the single-quoted library URLs in `app.js` and `sw.js`; previously only `index.html` was tracked, so automated library updates would have left the PDF.js worker and the service-worker cache list on the old version
+- The `_worker.js` asset allowlist now matches the icons that actually ship (it previously listed `/icons/icon-192x192.png` and `/icons/icon-512x512.png`, paths that did not exist)
## [1.4.0] - 2026-07-25
diff --git a/public/_worker.js b/public/_worker.js
index af0adbc..76ddb2b 100755
--- a/public/_worker.js
+++ b/public/_worker.js
@@ -9,7 +9,8 @@ export default {
'/manifest.json', '/robots.txt',
'/easyconvert-logo.svg', '/easyconvert-icon.svg',
'/nx1xlab-logo.png', '/nx1xlab-logo.ico',
- '/icons/icon-192x192.png', '/icons/icon-512x512.png'
+ '/favicon-16.png', '/favicon-32.png', '/apple-touch-icon.png',
+ '/icon-192.png', '/icon-512.png', '/og-image.png'
];
if (allowed.includes(path)) {
diff --git a/public/apple-touch-icon.png b/public/apple-touch-icon.png
new file mode 100644
index 0000000..2aa8b85
Binary files /dev/null and b/public/apple-touch-icon.png differ
diff --git a/public/easyconvert-icon.svg b/public/easyconvert-icon.svg
index 5693cf2..d980b7b 100755
--- a/public/easyconvert-icon.svg
+++ b/public/easyconvert-icon.svg
@@ -1,77 +1,18 @@
-
\ No newline at end of file
+
diff --git a/public/easyconvert-logo.svg b/public/easyconvert-logo.svg
index f30015b..4ac1036 100755
--- a/public/easyconvert-logo.svg
+++ b/public/easyconvert-logo.svg
@@ -1,134 +1,14 @@
-
\ No newline at end of file
+
diff --git a/public/favicon-16.png b/public/favicon-16.png
new file mode 100644
index 0000000..a76e627
Binary files /dev/null and b/public/favicon-16.png differ
diff --git a/public/favicon-32.png b/public/favicon-32.png
new file mode 100644
index 0000000..0f2dd75
Binary files /dev/null and b/public/favicon-32.png differ
diff --git a/public/icon-192.png b/public/icon-192.png
new file mode 100644
index 0000000..e9c246c
Binary files /dev/null and b/public/icon-192.png differ
diff --git a/public/icon-512.png b/public/icon-512.png
new file mode 100644
index 0000000..63dee0c
Binary files /dev/null and b/public/icon-512.png differ
diff --git a/public/index.html b/public/index.html
index 818a2e8..cb3327f 100755
--- a/public/index.html
+++ b/public/index.html
@@ -16,8 +16,25 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/public/manifest.json b/public/manifest.json
index 9b69eee..29fc754 100755
--- a/public/manifest.json
+++ b/public/manifest.json
@@ -17,10 +17,16 @@
"purpose": "any maskable"
},
{
- "src": "easyconvert-logo.svg",
- "sizes": "any",
- "type": "image/svg+xml",
- "purpose": "any"
+ "src": "icon-192.png",
+ "sizes": "192x192",
+ "type": "image/png",
+ "purpose": "any maskable"
+ },
+ {
+ "src": "icon-512.png",
+ "sizes": "512x512",
+ "type": "image/png",
+ "purpose": "any maskable"
}
]
}
diff --git a/public/og-image.png b/public/og-image.png
new file mode 100644
index 0000000..c7b3062
Binary files /dev/null and b/public/og-image.png differ
diff --git a/public/sw.js b/public/sw.js
index 271a05a..5999803 100755
--- a/public/sw.js
+++ b/public/sw.js
@@ -7,6 +7,9 @@ const urlsToCache = [
'/manifest.json',
'/easyconvert-logo.svg',
'/easyconvert-icon.svg',
+ '/favicon-32.png',
+ '/favicon-16.png',
+ '/apple-touch-icon.png',
'/nx1xlab-logo.png',
'https://cdnjs.cloudflare.com/ajax/libs/pdf.js/3.11.174/pdf.min.js',
'https://cdnjs.cloudflare.com/ajax/libs/pdf.js/3.11.174/pdf.worker.min.js',