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.
@@ -1,7 +1,7 @@
|
|||||||
# ── Stage 1: build lagaufre.js from suitenumerique/integration source ──────────
|
# ── Stage 1: build lagaufre.js from suitenumerique/integration source ──────────
|
||||||
# Build context must be the sunbeam/ root so we can reach both
|
# Build context must be the sunbeam/ root so we can reach both
|
||||||
# integration/packages/widgets/ and integration-service/.
|
# integration/packages/widgets/ and integration-service/.
|
||||||
FROM node:22-alpine AS widget-build
|
FROM --platform=$BUILDPLATFORM node:22-alpine AS widget-build
|
||||||
WORKDIR /src
|
WORKDIR /src
|
||||||
COPY integration/packages/widgets/ .
|
COPY integration/packages/widgets/ .
|
||||||
RUN npm ci && npm run build
|
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.
|
# 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
|
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).
|
# Nginx config — only services.json is mounted at runtime (from ConfigMap).
|
||||||
COPY integration-service/nginx.conf /etc/nginx/conf.d/default.conf
|
COPY integration-service/nginx.conf /etc/nginx/conf.d/default.conf
|
||||||
|
|||||||
@@ -38,6 +38,7 @@
|
|||||||
label: 'O Estúdio',
|
label: 'O Estúdio',
|
||||||
closeLabel: 'Fechar',
|
closeLabel: 'Fechar',
|
||||||
newWindowLabelSuffix: ' · nova janela',
|
newWindowLabelSuffix: ' · nova janela',
|
||||||
|
fontFamily: 'Ysabeau Variable, Inter, sans-serif',
|
||||||
}]);
|
}]);
|
||||||
widgetReady = true;
|
widgetReady = true;
|
||||||
};
|
};
|
||||||
|
|||||||
10
logos/docs.svg
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<!-- Document body -->
|
||||||
|
<path d="M10 6a2 2 0 00-2 2v32a2 2 0 002 2h28a2 2 0 002-2V16l-10-10H10z" fill="#f59e0b"/>
|
||||||
|
<!-- Folded corner -->
|
||||||
|
<path d="M30 6l10 10H32a2 2 0 01-2-2V6z" fill="#d97706"/>
|
||||||
|
<!-- Text lines -->
|
||||||
|
<rect x="14" y="22" width="20" height="2" rx="1" fill="#d97706"/>
|
||||||
|
<rect x="14" y="27" width="20" height="2" rx="1" fill="#d97706"/>
|
||||||
|
<rect x="14" y="32" width="14" height="2" rx="1" fill="#d97706"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 531 B |
@@ -1,6 +1,6 @@
|
|||||||
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
|
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
<!-- Folder tab -->
|
<!-- Folder tab -->
|
||||||
<path d="M4 20v-4a3 3 0 013-3h9.17l3.41 3.41A2 2 0 0021 17h20a3 3 0 013 3v2H4z" fill="#e1000f"/>
|
<path d="M4 20v-4a3 3 0 013-3h9.17l3.41 3.41A2 2 0 0021 17h20a3 3 0 013 3v2H4z" fill="#d97706"/>
|
||||||
<!-- Folder body -->
|
<!-- Folder body -->
|
||||||
<path d="M4 22h40v16a4 4 0 01-4 4H8a4 4 0 01-4-4V22z" fill="#000091"/>
|
<path d="M4 22h40v16a4 4 0 01-4 4H8a4 4 0 01-4-4V22z" fill="#f59e0b"/>
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 320 B After Width: | Height: | Size: 320 B |
@@ -1,6 +1,6 @@
|
|||||||
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
|
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
<!-- Envelope body -->
|
<!-- Envelope body -->
|
||||||
<path d="M4 14h40v22a2 2 0 01-2 2H6a2 2 0 01-2-2V14z" fill="#000091"/>
|
<path d="M4 14h40v22a2 2 0 01-2 2H6a2 2 0 01-2-2V14z" fill="#f59e0b"/>
|
||||||
<!-- Envelope fold (chevron) -->
|
<!-- Envelope fold (chevron) -->
|
||||||
<path d="M4 14l20 15 20-15H4z" fill="#e1000f"/>
|
<path d="M4 14l20 15 20-15H4z" fill="#d97706"/>
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 286 B After Width: | Height: | Size: 286 B |
@@ -1,10 +1,10 @@
|
|||||||
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
|
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
<!-- Person 2 head (behind) -->
|
<!-- Person 2 head (behind) -->
|
||||||
<circle cx="30" cy="13" r="7" fill="#e1000f"/>
|
<circle cx="30" cy="13" r="7" fill="#d97706"/>
|
||||||
<!-- Person 2 body (behind) -->
|
<!-- Person 2 body (behind) -->
|
||||||
<path d="M18 38c0-6.627 5.373-12 12-12s12 5.373 12 12H18z" fill="#e1000f"/>
|
<path d="M18 38c0-6.627 5.373-12 12-12s12 5.373 12 12H18z" fill="#d97706"/>
|
||||||
<!-- Person 1 head (front) -->
|
<!-- Person 1 head (front) -->
|
||||||
<circle cx="18" cy="13" r="7" fill="#000091"/>
|
<circle cx="18" cy="13" r="7" fill="#f59e0b"/>
|
||||||
<!-- Person 1 body (front) -->
|
<!-- Person 1 body (front) -->
|
||||||
<path d="M6 38c0-6.627 5.373-12 12-12s12 5.373 12 12H6z" fill="#000091"/>
|
<path d="M6 38c0-6.627 5.373-12 12-12s12 5.373 12 12H6z" fill="#f59e0b"/>
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 489 B After Width: | Height: | Size: 489 B |
9
logos/visio.svg
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<!-- Camera body -->
|
||||||
|
<rect x="4" y="14" width="28" height="20" rx="3" fill="#f59e0b"/>
|
||||||
|
<!-- Camera lens -->
|
||||||
|
<circle cx="18" cy="24" r="6" fill="#d97706"/>
|
||||||
|
<circle cx="18" cy="24" r="3" fill="#f59e0b"/>
|
||||||
|
<!-- Play triangle (video) -->
|
||||||
|
<path d="M36 16l8 8-8 8V16z" fill="#d97706"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 396 B |
@@ -26,6 +26,14 @@ server {
|
|||||||
add_header Cache-Control "public, max-age=86400";
|
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)
|
# v1 gaufre.js — thin wrapper served from image (no DOMAIN_SUFFIX needed)
|
||||||
location = /api/v1/gaufre.js {
|
location = /api/v1/gaufre.js {
|
||||||
alias /usr/share/nginx/html/gaufre.js;
|
alias /usr/share/nginx/html/gaufre.js;
|
||||||
|
|||||||
40
theme.css
Normal file
@@ -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;
|
||||||
|
}
|
||||||