Open liamcarter111 opened 4 months ago
This would be a fantastic addition!
I suggest introducing a logoDark
parameter to accommodate dark mode, which could be implemented like this:
const FaviconsWebpackPlugin = require('favicons-webpack-plugin');
plugins: [
new FaviconsWebpackPlugin({
logo: './src/logo.png',
logoDark: './src/logo_dark.png',
}),
];
With this change, the generated HTML would be updated from:
<link rel="icon" type="image/png" sizes="16x16" href="/assets/favicon-16x16.png">
<link rel="icon" type="image/png" sizes="32x32" href="/assets/favicon-32x32.png">
to:
<link rel="icon" type="image/png" sizes="16x16" href="/assets/favicon-16x16.png" media="(prefers-color-scheme: light)">
<link rel="icon" type="image/png" sizes="32x32" href="/assets/favicon-32x32.png" media="(prefers-color-scheme: light)">
<link rel="icon" type="image/png" sizes="16x16" href="/assets/favicon-dark-16x16.png" media="(prefers-color-scheme: dark)">
<link rel="icon" type="image/png" sizes="32x32" href="/assets/favicon-dark-32x32.png" media="(prefers-color-scheme: dark)">
This approach would ensure that we support dark mode effectively, with coverage across 97% of browsers according to Can I use.
Is it possible to support define different inputs for dark/light mode and the output injects the relivant
prefers-color-scheme
media attributeSee here https://joyofcode.xyz/dark-mode-favicon