diff --git a/services/web/frontend/js/features/project-list/components/project-list-lumiere.tsx b/services/web/frontend/js/features/project-list/components/project-list-lumiere.tsx
index 346ecaebce..5594ed9906 100644
--- a/services/web/frontend/js/features/project-list/components/project-list-lumiere.tsx
+++ b/services/web/frontend/js/features/project-list/components/project-list-lumiere.tsx
@@ -106,26 +106,14 @@ const ProjectCard = memo(function ProjectCard({
{projectTags.length > 0 && (
- {projectTags.map(tag => {
- const color = getTagColor(tag)
- return (
-
-
- {tag.name}
-
- )
- })}
+ {projectTags.map(tag => (
+
+ ))}
)}
{date}
diff --git a/services/web/frontend/stylesheets/pages/login-register.scss b/services/web/frontend/stylesheets/pages/login-register.scss
index 6d273fed85..fdd5025c1d 100644
--- a/services/web/frontend/stylesheets/pages/login-register.scss
+++ b/services/web/frontend/stylesheets/pages/login-register.scss
@@ -52,17 +52,17 @@
}
// ── Login page footer — Lumière override ──────────────────────────────────────
-// Same dark-navy treatment as the project page footer.
+// Same light-teal treatment as the project page footer.
body:has(.login-page) footer.site-footer {
position: relative;
- background-color: #0d1b24 !important;
+ background-color: #edf7f4 !important;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.28'/%3E%3C/svg%3E") !important;
background-size: 200px 200px !important;
background-repeat: repeat !important;
border-top: none !important;
- color: rgba(255, 255, 255, 0.38) !important;
+ color: #64748b !important;
font-size: 0.78rem;
- letter-spacing: 0.03em;
+ letter-spacing: 0.025em;
&::before {
content: '';
@@ -76,7 +76,7 @@ body:has(.login-page) footer.site-footer {
}
a {
- color: rgba(255, 255, 255, 0.38) !important;
+ color: #64748b !important;
text-decoration: none;
transition: color 0.15s ease;
@@ -87,7 +87,8 @@ body:has(.login-page) footer.site-footer {
.col-lg-9 .site-footer-items > li:first-child a {
font-family: Georgia, 'Times New Roman', 'DejaVu Serif', serif;
- color: rgba(255, 255, 255, 0.55) !important;
+ color: #1a2e3b !important;
+ font-weight: 500;
}
.col-lg-3 {
@@ -95,15 +96,24 @@ body:has(.login-page) footer.site-footer {
font-size: 0.70rem;
text-transform: uppercase;
letter-spacing: 0.07em;
+ color: #94a3b8 !important;
+
+ a {
+ color: #94a3b8 !important;
+
+ &:hover {
+ color: #2a9d8f !important;
+ }
+ }
}
.text-muted {
- color: rgba(255, 255, 255, 0.16) !important;
+ color: #b8d4cf !important;
}
- --link-color: rgba(255, 255, 255, 0.38);
+ --link-color: #64748b;
--link-hover-color: #2a9d8f;
- --link-visited-color: rgba(255, 255, 255, 0.38);
+ --link-visited-color: #64748b;
}
.login-lumiere-card {
diff --git a/services/web/frontend/stylesheets/pages/project-list-lumiere.scss b/services/web/frontend/stylesheets/pages/project-list-lumiere.scss
index 93da0b4de3..8b8fdb28a7 100644
--- a/services/web/frontend/stylesheets/pages/project-list-lumiere.scss
+++ b/services/web/frontend/stylesheets/pages/project-list-lumiere.scss
@@ -663,34 +663,25 @@ $lum-noise: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' wi
}
// ── Card tags ─────────────────────────────────────────────────────────────
+ // Shown as compact coloured dots only — no text — so cards with/without
+ // tags stay the same height and long tag names never wrap.
.lumiere-card-tags {
display: flex;
- flex-wrap: wrap;
- gap: 4px;
- margin-top: 4px;
- }
-
- .lumiere-card-tag {
- display: inline-flex;
+ flex-wrap: nowrap;
+ gap: 5px;
+ margin-top: 5px;
align-items: center;
- gap: 4px;
- font-size: 0.65rem;
- font-weight: 500;
- padding: 2px 6px;
- border-radius: 999px;
- border: 1px solid;
- max-width: 80px;
- white-space: nowrap;
overflow: hidden;
- text-overflow: ellipsis;
}
.lumiere-card-tag-dot {
flex-shrink: 0;
- width: 6px;
- height: 6px;
+ width: 8px;
+ height: 8px;
border-radius: 50%;
+ display: inline-block;
+ cursor: default;
}
// ── Selection bar — tool buttons ──────────────────────────────────────────
@@ -741,20 +732,20 @@ $lum-noise: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' wi
}
// ── Footer — Lumière override ─────────────────────────────────────────────────
-// Dark-navy footer with noise texture, gradient accent stripe, and two type
-// treatments: serif copyright on the left, monospace meta links on the right.
+// Pale teal canvas with noise grain, 2px teal→blue accent stripe at top.
+// Left col: serif author credit. Right col: monospace/uppercase meta links.
// !important beats :root [data-theme='default'] .project-ds-nav-page footer.site-footer.
.project-list-lumiere footer.site-footer {
position: relative;
- background-color: #0d1b24 !important;
+ background-color: #edf7f4 !important;
background-image: #{$lum-noise} !important;
background-size: 200px 200px !important;
background-repeat: repeat !important;
border-top: none !important;
- color: rgba(255, 255, 255, 0.38) !important;
+ color: #64748b !important;
font-size: 0.78rem;
- letter-spacing: 0.03em;
+ letter-spacing: 0.025em;
// Teal-to-blue gradient stripe matching the navbar accent
&::before {
@@ -769,7 +760,7 @@ $lum-noise: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' wi
}
a {
- color: rgba(255, 255, 255, 0.38) !important;
+ color: #64748b !important;
text-decoration: none;
transition: color 0.15s ease;
@@ -781,7 +772,8 @@ $lum-noise: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' wi
// Author credit — warm serif for a human touch
.col-lg-9 .site-footer-items > li:first-child a {
font-family: Georgia, 'Times New Roman', 'DejaVu Serif', serif;
- color: rgba(255, 255, 255, 0.55) !important;
+ color: $lum-text !important;
+ font-weight: 500;
}
// Meta links (AGPL, source code) — subtle monospace/uppercase treatment
@@ -790,14 +782,23 @@ $lum-noise: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' wi
font-size: 0.70rem;
text-transform: uppercase;
letter-spacing: 0.07em;
+ color: $lum-text-muted !important;
+
+ a {
+ color: $lum-text-muted !important;
+
+ &:hover {
+ color: $lum-teal !important;
+ }
+ }
}
- // Pipe separators — nearly invisible
+ // Pipe separators
.text-muted {
- color: rgba(255, 255, 255, 0.16) !important;
+ color: #b8d4cf !important;
}
- --link-color: rgba(255, 255, 255, 0.38);
+ --link-color: #64748b;
--link-hover-color: #{$lum-teal};
- --link-visited-color: rgba(255, 255, 255, 0.38);
+ --link-visited-color: #64748b;
}
diff --git a/services/web/locales/fr.json b/services/web/locales/fr.json
index c86ce1dbc3..43a2f79d79 100644
--- a/services/web/locales/fr.json
+++ b/services/web/locales/fr.json
@@ -333,6 +333,7 @@
"deleting": "Suppression en cours",
"demonstrating_git_integration": "Démonstration de l’intégration Git",
"department": "Département",
+ "deselect_all": "Tout désélectionner",
"descending": "Descendant",
"description": "Description",
"dictionary": "Dictionnaire",