The A of ITA had lost its diagonal: at 260px the hairlines of a Didone fall below a pixel, downscaling averages them into grey, and the panel's mid-grey cut then discarded them. What reached the shop window was a detached serif and something closer to a lambda. Letting more grey count as ink keeps them whole. 165 was not enough — the diagonal came back dotted — and 195 holds it solid without thickening the stems into mud. The number belongs to this particular drawing, so `npm run brand:variants` renders the grid of widths and thresholds it was chosen from, magnified, for the day the logo changes. Width stays at 260: the header shares its line with the date, and the main block is narrower now the week runs down the right-hand side. The panel will redraw once when it next wakes, since the image and therefore its content hash have changed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012cSY9pVhZmJUKNN7wf1Myd
74 lines
2.1 KiB
JSON
74 lines
2.1 KiB
JSON
{
|
|
"name": "ita-ito-trmnl-admin",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"license": "UNLICENSED",
|
|
"engines": {
|
|
"node": ">=20.9"
|
|
},
|
|
"scripts": {
|
|
"dev": "next dev --port 3010",
|
|
"build": "next build",
|
|
"start": "next start --port ${PORT:-3010}",
|
|
"lint": "eslint . --max-warnings 0",
|
|
"typecheck": "tsc --noEmit",
|
|
"test": "vitest run",
|
|
"test:watch": "vitest",
|
|
"coverage": "vitest run --coverage",
|
|
"seed": "tsx prisma/seed.ts",
|
|
"screen:preview": "tsx scripts/preview.ts",
|
|
"brand": "tsx scripts/brand.ts",
|
|
"e2e": "playwright test",
|
|
"holidays:sync": "tsx scripts/sync-holidays.ts",
|
|
"translate:test": "tsx scripts/test-translation.ts",
|
|
"e2e:ui": "playwright test --ui",
|
|
"screen:fonts": "tsx scripts/typography-preview.ts",
|
|
"brand:variants": "tsx scripts/logo-variants.ts"
|
|
},
|
|
"dependencies": {
|
|
"@fontsource-variable/inter": "^5.3.0",
|
|
"@fontsource-variable/source-serif-4": "^5.3.0",
|
|
"@prisma/adapter-pg": "^7.10.0",
|
|
"@prisma/client": "^7.10.0",
|
|
"@resvg/resvg-js": "^2.6.2",
|
|
"date-fns": "^4.4.0",
|
|
"date-fns-tz": "^3.2.0",
|
|
"dotenv": "^18.0.1",
|
|
"next": "^16.3.5",
|
|
"next-auth": "^5.0.0-beta.32",
|
|
"node-cron": "^4.6.0",
|
|
"pg": "^8.23.0",
|
|
"prisma": "^7.10.0",
|
|
"react": "^19.3.0",
|
|
"react-dom": "^19.3.0",
|
|
"satori": "^0.33.4",
|
|
"zod": "^4.6.5"
|
|
},
|
|
"devDependencies": {
|
|
"@eslint/js": "^9.39.5",
|
|
"@fontsource/atkinson-hyperlegible": "^5.3.0",
|
|
"@fontsource/ibm-plex-sans": "^5.3.0",
|
|
"@fontsource/inter": "^5.3.0",
|
|
"@fontsource/silkscreen": "^5.3.0",
|
|
"@fontsource/source-serif-4": "^5.3.0",
|
|
"@playwright/test": "^1.63.0",
|
|
"@tailwindcss/postcss": "^4.3.3",
|
|
"@types/node": "^26.6.2",
|
|
"@types/node-cron": "^3.0.11",
|
|
"@types/pg": "^8.23.1",
|
|
"@types/react": "^19.3.0",
|
|
"@types/react-dom": "^19.3.0",
|
|
"@vitest/coverage-v8": "^4.1.11",
|
|
"eslint": "^9.39.5",
|
|
"eslint-config-next": "^16.3.5",
|
|
"msw": "^2.15.0",
|
|
"postcss": "^8.5.28",
|
|
"sharp": "^0.35.4",
|
|
"tailwindcss": "^4.3.3",
|
|
"tsx": "^4.23.15",
|
|
"typescript": "^6.0.3",
|
|
"typescript-eslint": "^8.70.0",
|
|
"vitest": "^4.1.11"
|
|
}
|
|
}
|