From cd6a641d720c0d77934905f1bfce5a7572958fa9 Mon Sep 17 00:00:00 2001 From: Paul Atlan Date: Sat, 30 May 2026 20:13:55 +0200 Subject: [PATCH] =?UTF-8?q?feat(theme):=20color=20package=20Electric=20Tea?= =?UTF-8?q?l=20+=20bascule=20nom=20IA=20qu'=C3=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- astro.config.mjs | 94 ++++++++++++++++++- deploy.sh | 2 +- public/favicon.svg | 10 +- public/logo.svg | 14 +++ src/components/ArticleCard.astro | 49 +++++++--- src/components/BrandLogo.astro | 44 +++++++++ src/components/Footer.astro | 14 ++- src/components/Navbar.astro | 151 +++++++++++++++++++++++-------- src/components/SeriesBadge.astro | 29 ++++-- src/components/SeriesNav.astro | 86 +++++++++--------- src/layouts/BaseLayout.astro | 17 +++- src/layouts/BlogPost.astro | 10 +- src/pages/a-propos.astro | 2 +- src/pages/index.astro | 129 ++++++++++++++------------ src/pages/series.astro | 106 ++++++++++++---------- src/styles/global.css | 70 +++++++++++--- tailwind.config.mjs | 42 +++++++-- 18 files changed, 630 insertions(+), 241 deletions(-) create mode 100644 public/logo.svg create mode 100644 src/components/BrandLogo.astro diff --git a/README.md b/README.md index dce2152..cdc8fec 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# IA qu'à... — Blog +# IA qu'à — Blog Blog statique personnel sur l'IA en PME. diff --git a/astro.config.mjs b/astro.config.mjs index ccd8d5a..7d9847f 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -3,12 +3,104 @@ import mdx from "@astrojs/mdx"; import sitemap from "@astrojs/sitemap"; import tailwind from "@astrojs/tailwind"; +/** + * "IA qu'à" Atom Syntax theme — Electric Teal color package §3/§4. + * Dark Slate canvas with the 7-color diagnostic spectrum mapped onto + * standard code tokens. Used for all fenced code blocks (light & dark site). + */ +const iaQuaSyntax = { + name: "ia-qua-atom-syntax", + type: "dark", + colors: { + "editor.background": "#0F172A", + "editor.foreground": "#F1F5F9", + }, + settings: [ + { settings: { background: "#0F172A", foreground: "#F1F5F9" } }, + // comment / metadata → Orchid + { + scope: ["comment", "punctuation.definition.comment", "string.comment"], + settings: { foreground: "#8B5CF6", fontStyle: "italic" }, + }, + // keyword / control → Ember + { + scope: [ + "keyword", + "keyword.control", + "storage", + "storage.type", + "storage.modifier", + "keyword.operator.new", + "entity.name.tag", + ], + settings: { foreground: "#FF6B00" }, + }, + // string / regex → Gold + { + scope: [ + "string", + "string.quoted", + "string.template", + "constant.other.symbol", + "string.regexp", + ], + settings: { foreground: "#F59E0B" }, + }, + // support / type / class → Emerald + { + scope: [ + "entity.name.class", + "entity.name.type", + "support.type", + "support.class", + "storage.type.class", + "entity.other.attribute-name", + ], + settings: { foreground: "#10B981" }, + }, + // entity / function → Indigo + { + scope: [ + "entity.name.function", + "support.function", + "meta.function-call", + "variable.function", + ], + settings: { foreground: "#6366F1" }, + }, + // variable / parameter & numerics → Sky + { + scope: [ + "variable", + "variable.other", + "variable.parameter", + "support.variable", + "constant.numeric", + "constant.language", + "constant", + ], + settings: { foreground: "#0EA5E9" }, + }, + // exception / invalid → Rose + { + scope: ["invalid", "invalid.illegal", "invalid.deprecated"], + settings: { foreground: "#F43F5E" }, + }, + // punctuation kept muted + { + scope: ["punctuation", "meta.brace", "punctuation.separator"], + settings: { foreground: "#94A3B8" }, + }, + ], +}; + export default defineConfig({ site: "https://ia-qua.fr", // À changer si autre domaine integrations: [mdx(), sitemap(), tailwind()], markdown: { shikiConfig: { - theme: "github-dark", + theme: iaQuaSyntax, + wrap: false, }, }, }); diff --git a/deploy.sh b/deploy.sh index 5e99aa3..a2dfe93 100644 --- a/deploy.sh +++ b/deploy.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -euo pipefail -# ─── deploy.sh — Blog IA qu'à... ─── +# ─── deploy.sh — Blog IA qu'à ─── # Usage : sudo bash deploy.sh # Depuis le répertoire du repo sur Cloudbreak diff --git a/public/favicon.svg b/public/favicon.svg index 4637905..dee87e0 100644 --- a/public/favicon.svg +++ b/public/favicon.svg @@ -1,4 +1,10 @@ - - IA + + + + + + + + IA diff --git a/public/logo.svg b/public/logo.svg new file mode 100644 index 0000000..8842bfe --- /dev/null +++ b/public/logo.svg @@ -0,0 +1,14 @@ + + + + + + + + + IA + qu + + à + + diff --git a/src/components/ArticleCard.astro b/src/components/ArticleCard.astro index 34749d4..812eb2b 100644 --- a/src/components/ArticleCard.astro +++ b/src/components/ArticleCard.astro @@ -20,21 +20,44 @@ const formattedDate = pubDate.toLocaleDateString("fr-FR", { }); --- -
+ diff --git a/src/components/BrandLogo.astro b/src/components/BrandLogo.astro new file mode 100644 index 0000000..6b80a07 --- /dev/null +++ b/src/components/BrandLogo.astro @@ -0,0 +1,44 @@ +--- +/** + * BrandLogo — wordmark "IA qu'à" (color package §1, palette Classic Electric Teal). + * "IA" + apostrophe en dégradé cyan→bleu, "qu'à" en slate adaptatif (clair/sombre). + * Double sens assumé : "IA qu'à" ↔ "Y'a qu'à". Rendu en Inter (police du site). + */ +interface Props { + class?: string; +} +const { class: className = "h-7 w-auto" } = Astro.props; +// id unique pour éviter les collisions de gradient si plusieurs instances +const gid = "iaGrad-" + Math.random().toString(36).slice(2, 8); +--- + + + + + + + + + + IA + qu + + à + + diff --git a/src/components/Footer.astro b/src/components/Footer.astro index 7338e28..6032a8a 100644 --- a/src/components/Footer.astro +++ b/src/components/Footer.astro @@ -2,12 +2,20 @@ const year = new Date().getFullYear(); --- -