From 3b3ac3d1ef59d7e8325fce3fbcfd1b5b0c2d7818 Mon Sep 17 00:00:00 2001 From: Hikari Date: Thu, 5 Mar 2026 10:26:31 -0800 Subject: [PATCH] fix: load Google Fonts correctly with strict CSP - Allow fonts.googleapis.com in style-src and fonts.gstatic.com in font-src - Add Google Fonts preconnect links and import (Griffy, Kalam, Creepster, Henny Penny) - Set body font to Kalam and heading font to Griffy - Disable Angular inlineCritical optimisation to prevent deferred CSS loading via onload attribute, which was blocked by the strict script-src CSP --- api/src/app/plugins/helmet.ts | 4 ++-- apps/frontend/project.json | 5 +++++ apps/frontend/src/index.html | 3 +++ apps/frontend/src/styles.scss | 23 ++++++++++++++++++++++- 4 files changed, 32 insertions(+), 3 deletions(-) diff --git a/api/src/app/plugins/helmet.ts b/api/src/app/plugins/helmet.ts index 1d2db76..25f2612 100644 --- a/api/src/app/plugins/helmet.ts +++ b/api/src/app/plugins/helmet.ts @@ -14,11 +14,11 @@ const helmetPlugin: FastifyPluginAsync = async (app) => { directives: { defaultSrc: ["'self'"], // Angular uses inline styles for component encapsulation, so we need to allow them - styleSrc: ["'self'", "'unsafe-inline'"], + styleSrc: ["'self'", "'unsafe-inline'", "https://fonts.googleapis.com"], imgSrc: ["'self'", "data:", "https:"], scriptSrc: ["'self'"], connectSrc: ["'self'", process.env.FRONTEND_URL ?? "http://localhost:4200"], - fontSrc: ["'self'", "data:"], + fontSrc: ["'self'", "data:", "https://fonts.gstatic.com"], objectSrc: ["'none'"], baseUri: ["'self'"], formAction: ["'self'"], diff --git a/apps/frontend/project.json b/apps/frontend/project.json index ea4900a..122d121 100644 --- a/apps/frontend/project.json +++ b/apps/frontend/project.json @@ -25,6 +25,11 @@ }, "configurations": { "production": { + "optimization": { + "styles": { + "inlineCritical": false + } + }, "budgets": [ { "type": "initial", diff --git a/apps/frontend/src/index.html b/apps/frontend/src/index.html index 46aa935..22660c5 100644 --- a/apps/frontend/src/index.html +++ b/apps/frontend/src/index.html @@ -8,6 +8,9 @@ + + +