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 ──────────
|
||||
# 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
|
||||
|
||||
@@ -38,6 +38,7 @@
|
||||
label: 'O Estúdio',
|
||||
closeLabel: 'Fechar',
|
||||
newWindowLabelSuffix: ' · nova janela',
|
||||
fontFamily: 'Ysabeau Variable, Inter, sans-serif',
|
||||
}]);
|
||||
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">
|
||||
<!-- 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 -->
|
||||
<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>
|
||||
|
||||
|
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">
|
||||
<!-- 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) -->
|
||||
<path d="M4 14l20 15 20-15H4z" fill="#e1000f"/>
|
||||
<path d="M4 14l20 15 20-15H4z" fill="#d97706"/>
|
||||
</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">
|
||||
<!-- 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) -->
|
||||
<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) -->
|
||||
<circle cx="18" cy="13" r="7" fill="#000091"/>
|
||||
<circle cx="18" cy="13" r="7" fill="#f59e0b"/>
|
||||
<!-- 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>
|
||||
|
||||
|
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";
|
||||
}
|
||||
|
||||
# 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;
|
||||
|
||||
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;
|
||||
}
|
||||