Files
dickendock/frontend/generate-icons.mjs

34 lines
1.0 KiB
JavaScript

import { createCanvas } from 'canvas';
import { writeFileSync } from 'fs';
function generateIcon(size) {
const canvas = createCanvas(size, size);
const ctx = canvas.getContext('2d');
const r = size * 0.22;
const grad = ctx.createLinearGradient(0, 0, size, size);
grad.addColorStop(0, '#4ecdc4');
grad.addColorStop(1, '#ff6b9d');
ctx.beginPath();
ctx.moveTo(r, 0); ctx.lineTo(size - r, 0);
ctx.quadraticCurveTo(size, 0, size, r);
ctx.lineTo(size, size - r);
ctx.quadraticCurveTo(size, size, size - r, size);
ctx.lineTo(r, size); ctx.quadraticCurveTo(0, size, 0, size - r);
ctx.lineTo(0, r); ctx.quadraticCurveTo(0, 0, r, 0);
ctx.closePath();
ctx.fillStyle = grad;
ctx.fill();
ctx.fillStyle = '#0d0d0f';
ctx.textAlign = 'center';
ctx.font = `bold ${size * 0.52}px serif`;
ctx.fillText('⚒', size / 2, size * 0.72);
return canvas.toBuffer('image/png');
}
writeFileSync('public/icon-192.png', generateIcon(192));
writeFileSync('public/icon-512.png', generateIcon(512));
console.log('Icons generated.');