From 11d5c624e440a53aa271f071de1b43afcd9d6a60 Mon Sep 17 00:00:00 2001 From: Sienna Meridian Satterwhite Date: Fri, 6 Mar 2026 11:46:01 +0000 Subject: [PATCH] feat(integration): add docs/visio logos, theme.css, and nginx updates Add SVG logos for docs and visio apps. Update drive, mail, people logos. Add theme.css served at /api/v2/theme.css for La Suite frontend theming. Update nginx to serve theme endpoint and tighten cache headers. Update Dockerfile to include new static assets. --- Dockerfile | 5 ++++- gaufre.js | 1 + logos/docs.svg | 10 ++++++++++ logos/drive.svg | 4 ++-- logos/mail.svg | 4 ++-- logos/people.svg | 8 ++++---- logos/visio.svg | 9 +++++++++ nginx.conf | 8 ++++++++ theme.css | 40 ++++++++++++++++++++++++++++++++++++++++ 9 files changed, 80 insertions(+), 9 deletions(-) create mode 100644 logos/docs.svg create mode 100644 logos/visio.svg create mode 100644 theme.css diff --git a/Dockerfile b/Dockerfile index a2fc65d..c92a929 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ # ── Stage 1: build lagaufre.js from suitenumerique/integration source ────────── # Build context must be the sunbeam/ root so we can reach both # integration/packages/widgets/ and integration-service/. -FROM node:22-alpine AS widget-build +FROM --platform=$BUILDPLATFORM node:22-alpine AS widget-build WORKDIR /src COPY integration/packages/widgets/ . RUN npm ci && npm run build @@ -23,5 +23,8 @@ COPY --from=widget-build /src/dist/lagaufre.js /usr/share/nginx/html/widget/laga # Derives its origin from the script URL at runtime; no DOMAIN_SUFFIX baked in. COPY integration-service/gaufre.js /usr/share/nginx/html/gaufre.js +# Runtime brand CSS variable overrides for the estudio theme. +COPY integration-service/theme.css /usr/share/nginx/html/theme.css + # Nginx config — only services.json is mounted at runtime (from ConfigMap). COPY integration-service/nginx.conf /etc/nginx/conf.d/default.conf diff --git a/gaufre.js b/gaufre.js index 700d1a2..9cf553c 100644 --- a/gaufre.js +++ b/gaufre.js @@ -38,6 +38,7 @@ label: 'O Estúdio', closeLabel: 'Fechar', newWindowLabelSuffix: ' · nova janela', + fontFamily: 'Ysabeau Variable, Inter, sans-serif', }]); widgetReady = true; }; diff --git a/logos/docs.svg b/logos/docs.svg new file mode 100644 index 0000000..a503a36 --- /dev/null +++ b/logos/docs.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/logos/drive.svg b/logos/drive.svg index af3fbdf..9ab8cc3 100644 --- a/logos/drive.svg +++ b/logos/drive.svg @@ -1,6 +1,6 @@ - + - + diff --git a/logos/mail.svg b/logos/mail.svg index b109821..e6292f4 100644 --- a/logos/mail.svg +++ b/logos/mail.svg @@ -1,6 +1,6 @@ - + - + diff --git a/logos/people.svg b/logos/people.svg index 3fc0662..9aa1a7d 100644 --- a/logos/people.svg +++ b/logos/people.svg @@ -1,10 +1,10 @@ - + - + - + - + diff --git a/logos/visio.svg b/logos/visio.svg new file mode 100644 index 0000000..faf1b61 --- /dev/null +++ b/logos/visio.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/nginx.conf b/nginx.conf index d815494..c8be20b 100644 --- a/nginx.conf +++ b/nginx.conf @@ -26,6 +26,14 @@ server { add_header Cache-Control "public, max-age=86400"; } + # v2 theme — brand CSS variable overrides served from image + location = /api/v2/theme.css { + alias /usr/share/nginx/html/theme.css; + add_header Content-Type "text/css; charset=utf-8"; + add_header Access-Control-Allow-Origin "*"; + add_header Cache-Control "public, max-age=3600"; + } + # v1 gaufre.js — thin wrapper served from image (no DOMAIN_SUFFIX needed) location = /api/v1/gaufre.js { alias /usr/share/nginx/html/gaufre.js; diff --git a/theme.css b/theme.css new file mode 100644 index 0000000..cafef13 --- /dev/null +++ b/theme.css @@ -0,0 +1,40 @@ +/* + * O Estúdio — runtime brand overrides for docs + people. + * Loaded after the compiled Cunningham CSS via nginx sub_filter injection. + * Overrides :root CSS variables — no app rebuild required. + */ + +:root { + /* Font */ + --c--globals--font--families--base: 'Ysabeau Variable', Inter, sans-serif; + --c--globals--font--families--accent: 'Ysabeau Variable', Inter, sans-serif; + + /* Brand — amber/gold palette (replaces default blue/purple) */ + --c--globals--colors--brand-050: #fffbeb; + --c--globals--colors--brand-100: #fef3c7; + --c--globals--colors--brand-150: #fde9a0; + --c--globals--colors--brand-200: #fde68a; + --c--globals--colors--brand-250: #fde047; + --c--globals--colors--brand-300: #fcd34d; + --c--globals--colors--brand-350: #fbcf3f; + --c--globals--colors--brand-400: #fbbf24; + --c--globals--colors--brand-450: #f8b31a; + --c--globals--colors--brand-500: #f59e0b; + --c--globals--colors--brand-550: #e8920a; + --c--globals--colors--brand-600: #d97706; + --c--globals--colors--brand-650: #c26d05; + --c--globals--colors--brand-700: #b45309; + --c--globals--colors--brand-750: #9a4508; + --c--globals--colors--brand-800: #92400e; + --c--globals--colors--brand-850: #7c370c; + --c--globals--colors--brand-900: #78350f; + --c--globals--colors--brand-950: #451a03; + + /* Logo gradient colours used by ui-kit header components */ + --c--globals--colors--logo-1: #f59e0b; + --c--globals--colors--logo-2: #d97706; + --c--globals--colors--logo-1-light: #f59e0b; + --c--globals--colors--logo-2-light: #d97706; + --c--globals--colors--logo-1-dark: #fcd34d; + --c--globals--colors--logo-2-dark: #fbbf24; +}