From d178122b6abb8940e9aedd596f0059456b669e1f Mon Sep 17 00:00:00 2001 From: BlackAngelTVdev Date: Wed, 27 May 2026 20:30:59 +0200 Subject: [PATCH 1/3] fix(var): add variable css [5][DONE] --- p/assets/img/logo.png | Bin 0 -> 10867 bytes p/assets/main-styles/styles.css | 16 +++++++++------- p/assets/main-styles/var.css | 14 ++++++++++++++ 3 files changed, 23 insertions(+), 7 deletions(-) create mode 100644 p/assets/img/logo.png create mode 100644 p/assets/main-styles/var.css diff --git a/p/assets/img/logo.png b/p/assets/img/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..dda0772bccb4461a37d9090f8daa8da297406dc5 GIT binary patch literal 10867 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 Date: Wed, 27 May 2026 21:20:03 +0200 Subject: [PATCH 2/3] feat(layout): shared shell and page styles --- index.html | 93 ++++++++---- p/assets/main-styles/main.css | 129 +++++++++++++++++ p/assets/main-styles/styles.css | 247 +++++++++++++++++--------------- p/contact/index.html | 39 +++++ p/dl/index.html | 1 + p/index/index.html | 2 + 6 files changed, 375 insertions(+), 136 deletions(-) create mode 100644 p/assets/main-styles/main.css create mode 100644 p/contact/index.html diff --git a/index.html b/index.html index 533017b..7296f41 100644 --- a/index.html +++ b/index.html @@ -1,38 +1,83 @@ - - - - - Fws Web - - - -

- -
- -
+
+ +
-
-

Un seul index, un header, un footer, et du contenu injecté dans le main selon l'URL.

-
-
+
+ +
+ + + + - - \ No newline at end of file diff --git a/p/assets/main-styles/main.css b/p/assets/main-styles/main.css new file mode 100644 index 0000000..7904585 --- /dev/null +++ b/p/assets/main-styles/main.css @@ -0,0 +1,129 @@ +@import "./var.css"; + +.hero, +.card { + backdrop-filter: blur(18px); + background: var(--bg-soft); + box-shadow: var(--shadow); +} + +.hero { + padding: clamp(1.5rem, 3vw, 2.75rem); +} + +.eyebrow { + margin: 0 0 0.75rem; + color: var(--accent); + text-transform: uppercase; + letter-spacing: 0.22em; + font-size: 0.78rem; + font-weight: 700; +} + +.hero h1, +.card h2 { + font-family: "Georgia", "Palatino Linotype", serif; +} + +.hero h1 { + margin: 0; + font-size: clamp(2.2rem, 5vw, 4.5rem); + line-height: 0.98; + max-width: 12ch; +} + +.lead { + max-width: 62ch; + color: var(--muted); + font-size: 1.08rem; + line-height: 1.7; + margin: 1rem 0 0; +} + +.lead span, +.card span { + color: var(--text); +} + +.release-badge { + display: inline-flex; + align-items: center; + gap: 0.75rem; + margin: 1.35rem 0 0; + padding: 0.7rem 1rem; + border: 1px solid rgba(148, 163, 184, 0.22); + border-radius: 999px; + background: rgba(255, 255, 255, 0.04); + color: var(--muted); + font-size: 0.95rem; + font-weight: 700; +} + +.release-badge span { + color: var(--text); +} + +.hero-actions { + display: flex; + flex-wrap: wrap; + gap: 0.75rem; + margin-top: 1.5rem; +} + +.button { + display: inline-flex; + align-items: center; + justify-content: center; + padding: 0.85rem 1.2rem; + text-decoration: none; + border: 1px solid rgba(148, 163, 184, 0.22); + border-radius: 999px; + font-weight: 700; + transition: + transform 160ms ease, + background 160ms ease, + color 160ms ease, + border-color 160ms ease; +} + +.button:hover { + transform: translateY(-1px); +} + +.button-primary { + color: #08101d; + background: linear-gradient(145deg, var(--accent), var(--accent-strong)); +} + +.button-secondary { + color: var(--text); + background: rgba(255, 255, 255, 0.04); +} + +.grid { + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + gap: 1rem; +} + +.card { + padding: 1.25rem; +} + +.card h2 { + margin-top: 0; + margin-bottom: 0.75rem; + font-size: 1.45rem; +} + +.card p { + margin: 0; + color: var(--muted); + line-height: 1.65; +} + +@media (max-width: 900px) { + .grid { + grid-template-columns: 1fr; + } +} diff --git a/p/assets/main-styles/styles.css b/p/assets/main-styles/styles.css index 7a91665..8f9e7ae 100644 --- a/p/assets/main-styles/styles.css +++ b/p/assets/main-styles/styles.css @@ -37,7 +37,6 @@ body::after { content: ""; position: fixed; inset: auto; - border-radius: 999px; pointer-events: none; filter: blur(18px); opacity: 0.6; @@ -62,32 +61,34 @@ body::after { .page-shell { position: relative; z-index: 1; - width: min(1120px, calc(100% - 2rem)); + width: 100%; margin: 0 auto; min-height: 100vh; display: grid; grid-template-rows: auto 1fr auto; gap: 1.25rem; - padding: 1rem 0 1.25rem; -} - -.site-header, -.site-footer, -.hero, -.card { - backdrop-filter: blur(18px); - background: var(--bg-soft); - border: 1px solid var(--panel-border); - box-shadow: var(--shadow); } .site-header, .site-footer { - border-radius: 1.5rem; + backdrop-filter: blur(18px); + background: var(--bg-soft); + box-shadow: var(--shadow); +} + +.header-brand-block{ + width: 100%; + margin: 0 auto; + max-width: 1200px; + display: flex; + /* align-items: center; */ + gap: 0.85rem; + justify-content: space-between; } .site-header { display: flex; + width: 100%; align-items: center; justify-content: space-between; gap: 1rem; @@ -103,14 +104,10 @@ body::after { } .brand-mark { - display: grid; - place-items: center; width: 2.75rem; height: 2.75rem; - border-radius: 0.95rem; - background: linear-gradient(145deg, rgba(125, 211, 252, 0.95), rgba(56, 189, 248, 0.45)); - color: #08101d; - font-weight: 800; + object-fit: cover; + display: block; } .brand-text { @@ -118,9 +115,7 @@ body::after { line-height: 1.05; } -.brand-text strong, -.hero h1, -.card h2 { +.brand-text strong { font-family: "Georgia", "Palatino Linotype", serif; } @@ -134,8 +129,7 @@ body::after { gap: 0.6rem; } -.site-nav a, -.button { +.site-nav a { border-radius: 999px; transition: transform 160ms ease, @@ -159,113 +153,133 @@ body::after { } .site-main { + margin: 0 auto; + max-width: 1200px; display: grid; gap: 1.25rem; align-content: start; } -.hero { - border-radius: 2rem; - padding: clamp(1.5rem, 3vw, 2.75rem); -} - -.eyebrow { - margin: 0 0 0.75rem; - color: var(--accent); - text-transform: uppercase; - letter-spacing: 0.22em; - font-size: 0.78rem; - font-weight: 700; -} - -.hero h1 { - margin: 0; - font-size: clamp(2.2rem, 5vw, 4.5rem); - line-height: 0.98; - max-width: 12ch; -} - -.lead { - max-width: 62ch; - color: var(--muted); - font-size: 1.08rem; - line-height: 1.7; - margin: 1rem 0 0; -} - -.lead span, -.card span { - color: var(--text); -} - -.hero-actions { - display: flex; - flex-wrap: wrap; - gap: 0.75rem; - margin-top: 1.5rem; -} - -.button { - display: inline-flex; - align-items: center; - justify-content: center; - padding: 0.85rem 1.2rem; - text-decoration: none; - border: 1px solid rgba(148, 163, 184, 0.22); - font-weight: 700; -} - -.button:hover, .site-nav a:hover { transform: translateY(-1px); } -.button-primary { - color: #08101d; - background: linear-gradient(145deg, var(--accent), var(--accent-strong)); -} - -.button-secondary { - color: var(--text); - background: rgba(255, 255, 255, 0.04); -} - -.grid { - display: grid; - grid-template-columns: repeat(3, minmax(0, 1fr)); - gap: 1rem; -} - -.card { - border-radius: 1.4rem; - padding: 1.25rem; -} - -.card h2 { - margin-top: 0; - margin-bottom: 0.75rem; - font-size: 1.45rem; -} - -.card p { - margin: 0; - color: var(--muted); - line-height: 1.65; -} - .site-footer { - padding: 1rem 1.25rem; - color: var(--muted); + padding: 1.5rem 1.25rem; + background: rgb(50, 54, 66); } .site-footer p { margin: 0; } +.footer-brand-row { + display: flex; + align-items: start; + justify-content: space-between; + gap: 1rem; + padding-bottom: 1rem; + border-bottom: 1px solid rgba(148, 163, 184, 0.16); +} +.footer-content { + margin: 0 auto; + max-width: 1200px; + display: flex; + flex-direction: column; + gap: 0.5rem; +} +.footer-brand-block { + display: flex; + align-items: center; + gap: 0.85rem; + max-width: 42rem; +} + +.footer-brand-mark { + width: 3rem; + height: 3rem; + border-radius: 0.95rem; + object-fit: cover; + display: block; + flex: none; +} + +.footer-brand-block strong { + display: block; + color: var(--text); + font-family: "Georgia", "Palatino Linotype", serif; + font-size: 1.05rem; +} + +.footer-brand-block p, +.footer-note, +.footer-bottom p { + color: var(--muted); + line-height: 1.6; +} + +.footer-note { + max-width: 20rem; +} + +.footer-links-grid { + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + gap: 1rem; + padding: 1.25rem 0; +} + +.footer-links-grid section { + display: grid; + gap: 0.6rem; + align-content: start; +} + +.footer-links-grid h2 { + margin: 0 0 0.15rem; + color: var(--text); + font-size: 0.98rem; +} + +.footer-links-grid a { + color: var(--muted); + text-decoration: none; + width: fit-content; + transition: color 160ms ease, transform 160ms ease; +} + +.footer-links-grid a:hover { + color: var(--text); + transform: translateX(2px); +} + +.footer-bottom { + display: flex; + justify-content: space-between; + gap: 1rem; + padding-top: 1rem; + border-top: 1px solid rgba(148, 163, 184, 0.16); + font-size: 0.95rem; +} + +.footer-release, +.footer-commit { + text-align: right; +} + +.footer-release span, +.footer-commit span { + color: var(--text); +} + @media (max-width: 900px) { .grid { grid-template-columns: 1fr; } + + .footer-links-grid { + grid-template-columns: 1fr; + } } @media (max-width: 700px) { @@ -288,4 +302,13 @@ body::after { .button { width: 100%; } + + .footer-brand-row, + .footer-bottom { + flex-direction: column; + } + + .footer-brand-block { + align-items: flex-start; + } } \ No newline at end of file diff --git a/p/contact/index.html b/p/contact/index.html new file mode 100644 index 0000000..bf5ce52 --- /dev/null +++ b/p/contact/index.html @@ -0,0 +1,39 @@ + + + + + + Contact + + + +
+
+

Contact

+

Tu veux nous joindre ?

+

+ Cette page centralise les moyens de contact et les liens utiles pour écrire, appeler, ou retrouver le projet ailleurs. +

+ +
+ +
+
+

Email

+

contact@fwslinux.fr pour les demandes générales et les retours rapides.

+
+
+

Téléphone

+

+33 0 00 00 00 00 pour les appels ou le support direct.

+
+
+

Réseaux

+

Le footer te donne aussi les liens vers GitHub, Instagram et LinkedIn.

+
+
+
+ + diff --git a/p/dl/index.html b/p/dl/index.html index 3417dca..48a4643 100644 --- a/p/dl/index.html +++ b/p/dl/index.html @@ -4,6 +4,7 @@ DL +
diff --git a/p/index/index.html b/p/index/index.html index 0fe4b72..14e6468 100644 --- a/p/index/index.html +++ b/p/index/index.html @@ -4,6 +4,7 @@ Accueil +
@@ -14,6 +15,7 @@ La page principale vit dans p/index/index.html et le script l'injecte dans le main quand l'URL pointe vers /?p/index/.

+

Download FWS

Aller vers DL Rester sur l'accueil From 64191eb054dedf936f24e833793f744c9db6c63d Mon Sep 17 00:00:00 2001 From: BlackAngelTVdev Date: Wed, 27 May 2026 21:20:15 +0200 Subject: [PATCH 3/3] fix(router): keep html entrypoints working --- p/assets/main-nav/app.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/p/assets/main-nav/app.js b/p/assets/main-nav/app.js index 4ed7a06..3173bb4 100644 --- a/p/assets/main-nav/app.js +++ b/p/assets/main-nav/app.js @@ -1,9 +1,14 @@ (() => { const main = document.getElementById("app-main"); + const footerYear = document.getElementById("footer-year"); const pageStyleSelectors = "[data-page-style='true']"; const links = Array.from(document.querySelectorAll("[data-route]")); + if (footerYear) { + footerYear.textContent = new Date().getFullYear().toString(); + } + function clearInjectedPageStyles() { document.querySelectorAll(pageStyleSelectors).forEach((node) => node.remove()); } @@ -59,6 +64,10 @@ const path = window.location.pathname.replace(/^\/+|\/+$/g, ""); if (path) { + if (path.endsWith(".html")) { + return "index"; + } + const parts = path.split("/"); if (parts[0] === "p" && parts[1]) { return normalizeRoute(parts.slice(1).join("/"));