Aller à l'article
Aniq-UI

NorthstackImage de marque

Image de marque

Faites vôtres le site et le tableau de bord : le nom, les lockups et les icônes, les couleurs et la typographie, les cartes de partage, les thèmes, et les endroits où l'API écrit le nom du produit.

Pour le pack Full Stack

Où se trouve la marque

ÉlémentSite (website/)Tableau de bord (dashboard/)
Nom et métadonnéesmessages/layout/<locale>.json (Metadata, Common.brand), src/config/site.tssrc/config/brand.config.ts, messages/metadata/<locale>.json
Lockup et symbolepublic/brand/, dimensionné dans src/components/Logo.tsxpublic/brand/, dimensionné dans src/config/brand.config.ts
Icônessrc/app/icon.svgsrc/app/ et les deux fichiers web-app-manifest dans public/
Carte de partagepublic/meta_image.pngmeta.ogImage dans src/config/brand.config.ts
Couleurssrc/styles/theme-variables.csssrc/styles/theme-variables.css
Formespublic/shapes/public/shapes/
Policessrc/fonts/ et public/fonts/src/fonts/
Textesmessages/ et src/content/messages/

Chaque couleur est un token défini une fois pour le thème clair et une fois pour le thème sombre. Les composants ne lisent que des tokens : un token modifié atteint donc chaque écran. Changez une couleur de marque dans les deux blocs, sinon un thème garde l'ancienne.

Le nom et les textes du site

  • Le nom dans les titres d'onglet et les cartes de partage est Metadata.siteName dans messages/layout/en.json et ar.json, avec le titre par défaut, la description et le texte alternatif de l'image de partage à côté. Le nom accessible du logo est Common.brand, et la ligne de copyright est Footer.copyright.
  • Le titre et la description propres à chaque page se trouvent sous meta dans son namespace de messages/, par exemple PricingPage.meta dans messages/pricing/.
  • Le nom du produit apparaît aussi dans des phrases, écrit Northstack en lettres latines dans les deux langues : cherchez-le dans messages/ et src/content/ et réécrivez ces lignes. La documentation, le journal et le changelog de src/content/ décrivent Northstack lui-même et vous pouvez les réécrire.
FichierUtilisé pour
public/brand/logo-light.svg, public/brand/logo-dark.svgLe lockup (le symbole et le nom dessinés ensemble) dans l'en-tête, le pied de page et l'aperçu de l'espace de travail, sur les pages claires comme sombres. Le même lockup sert les deux langues.
src/app/icon.svgL'icône de l'onglet du navigateur
public/meta_image.pngLa carte de partage, 1200 par 630, nommée dans ogImage dans src/config/site.ts, pour chaque page.
public/shapes/Les carrés, cercles, quarts de cercle et triangles dessinés autour des sections, par src/components/Shape.tsx

Remplacez les deux fichiers de lockup par les vôtres, sous les mêmes noms. Leurs proportions sont écrites dans LOCKUP_RATIO dans src/components/Logo.tsx (379.24 par 68 tel que livré) : réglez-le sur la largeur de votre lockup divisée par sa hauteur, pour que l'en-tête garde sa taille.

Les couleurs et la typographie du site

TokenClairSombreRôle
--background, --surface#f1ece3#171717, #202020Page et panneaux
--text, --text-muted#111111, #5d5e63#f1ece3, #b9b8b2Texte
--border, --border-strong#b8b5ad, #111111#696761, #b8b5adFilets et contours
--primary#111111#f1ece3Boutons principaux
--brand-action#c7492c#c7492cLes boutons d'appel à l'action rouges
--link, --focus#1151d8#82a8ffLiens et anneau de focus
--red, --cobalt, --sunflower#c7492c, #1151d8, #efbf43Le mêmeLes formes et les marques de statut
--errorColor#a83a20#e0714fErreurs

Les couleurs de la barre du navigateur (#f1ece3 et #171717) sont themeColor dans src/app/[locale]/layout.tsx. Vérifiez que le texte sur vos couleurs reste lisible à 4,5 pour 1 dans les deux thèmes.

Les polices sont livrées avec l'application, un build ne les télécharge donc jamais : Inter pour le texte latin (src/fonts/InterVariable-latin.woff2, chargée dans src/fonts/fonts.ts), Noto Sans Arabic pour le texte arabe et Almarai pour les titres arabes (public/fonts/, déclarées dans src/styles/fonts.css et préchargées sur les pages arabes). Chacune a sa licence SIL Open Font License à côté. Pour en changer une, placez son fichier .woff2 dans le même dossier, faites pointer la déclaration vers lui, et gardez sa licence à côté.

Résultats de recherche, partage et domaine

  • NEXT_PUBLIC_SITE_URL est la base de chaque adresse canonique, des alternatives de langue, des cartes de partage, de robots.txt et du sitemap. Définissez-la avec votre vraie adresse avant le build.
  • Les prix sont écrits de la même façon dans les deux langues, le signe dollar en premier avec des chiffres latins, par src/lib/format/formatUsd.ts.
  • Les métadonnées de la page nomment Aniq-UI comme auteur (authors dans src/app/[locale]/layout.tsx) : mettez-y votre propre nom.

Clair et sombre

  • Le site propose System, Light et Dark dans son menu Theme. System suit le système d'exploitation. Le choix est gardé dans le localStorage du navigateur sous northstack-theme, et un script de l'en-tête de la page l'applique avant le premier affichage : un rechargement ne fait donc jamais clignoter l'autre thème.
  • Le tableau de bord a un seul bouton de thème dans sa barre supérieure, un disque à moitié plein nommé Toggle theme pour les lecteurs d'écran, qui bascule entre clair et sombre. Tant qu'on n'appuie pas dessus, le tableau de bord suit le système d'exploitation. Le choix est gardé dans localStorage sous theme et appliqué avant le premier affichage de la même façon.
  • Rien du thème n'est envoyé à l'API.

Le nom, le lockup et les couleurs du tableau de bord

  • Nom : name dans BRAND_CONFIG (src/config/brand.config.ts) est la moitié « marque » de chaque titre d'onglet (Team | Northstack), le texte alternatif du logo et le nom de l'application installée. Il est identique dans les deux langues. Le titre de chaque page se trouve sous pages dans messages/metadata/en.json et ar.json, et le titre et la description par défaut sous site. Le nom du produit apparaît aussi dans des phrases de messages/, en lettres latines dans les deux langues.
  • Métadonnées : meta.keywords, meta.author (Aniq-UI tel que livré : mettez le vôtre) et meta.ogImage, l'image qu'affiche un lien partagé, avec sa taille. Telle que livrée, c'est l'icône d'application de 512 par 512, qui se partage en petite carte ; une image de 1200 par 630 se partage en grande carte. theme.light et theme.dark sont les couleurs de la barre du navigateur, et manifest les couleurs et icônes de l'application installée.
  • Lockup et symbole : remplacez logo-light.svg, logo-dark.svg, mark-light.svg et mark-dark.svg dans public/brand/, en gardant les noms, et réglez logo.width et logo.height sur les proportions du nouveau lockup. Le symbole seul s'affiche dans la barre latérale réduite et l'en-tête du téléphone, dessiné aux proportions 100 par 48 dans src/components/ui/BrandLogo.tsx.
  • Icônes : src/app/favicon.ico (l'onglet), src/app/icon0.svg et src/app/icon1.png, src/app/apple-icon.png (écrans d'accueil de l'iPhone et de l'iPad), et public/web-app-manifest-192x192.png et public/web-app-manifest-512x512.png pour l'application installée.
  • Couleurs : la palette (--paper, --ink, --red, --cobalt, --sunflower), les surfaces et le texte, les filets (--border, --border-strong), les actions, les marques de statut (--status-progress, --status-review, --status-blocked, --status-done) et la couleur des graphiques, dans src/styles/theme-variables.css, une fois par thème. Les formes sont dessinées par src/components/ui/Shape.tsx à partir de public/shapes/, et les personnes sans photo apparaissent comme des carrés avec leurs initiales.
  • Polices : Inter pour le texte latin et IBM Plex Sans Arabic pour l'arabe, depuis src/fonts/ (avec leurs licences), chargées dans src/styles/fonts.ts.
  • Adresses : NEXT_PUBLIC_BASE_URL est l'adresse propre du tableau de bord (robots.txt, sitemap, métadonnées et adresse de l'espace de travail dans l'onboarding et les paramètres) et NEXT_PUBLIC_WEBSITE_URL celle du site (les liens Documentation, Privacy et Terms).

Le tableau de bord écarte chaque page des moteurs de recherche (noindex dans l'en-tête de la page et un en-tête X-Robots-Tag), comme il se doit pour un panneau d'administration.

Où l'API écrit le nom du produit

EmplacementFichier
L'expéditeur de chaque e-mail, SMTP_FROM (Northstack <no-reply@localhost> quand il est vide)back-end/.env, back-end/src/modules/mail/mail.service.ts
L'objet de l'e-mail de réinitialisation du mot de passeback-end/src/modules/auth/account.service.ts
L'objet de l'e-mail d'invitationback-end/src/modules/workspaces/services/invitations.service.ts
Le titre et les lignes de la facture PDFback-end/src/modules/billing/services/billing.service.ts
Le nom de la formule sur la page de paiement de Stripeback-end/src/modules/billing/providers/stripe.provider.ts
Le nom des licences sur la page de paiement et le reçuback-end/src/modules/licenses/constants/license-offers.ts

Les paramètres de la plateforme initialisent un Product name, un Tagline et une Support address (back-end/src/database/seeders/app-settings.seeder.ts), modifiés dans la page Settings de la plateforme du tableau de bord. Parmi eux, seul l'assistant IA lit le Product name et la Support address, pour nommer le produit dans ses réponses ; les écrans prennent le nom dans les fichiers ci-dessus.

Textes et pages légales

Chaque phrase visible se trouve dans messages/ (et les longs textes du site dans src/content/), avec un en.json et un ar.json. Réécrivez le texte dans les deux fichiers. La politique de confidentialité, les conditions d'utilisation, la politique de cookies et la page des droits sur les données de messages/legal sont des textes d'exemple, avec une date « Last updated » d'exemple : réécrivez-les pour votre activité et votre pays avant d'accueillir de vrais clients.

Bloqué sur une étape ?

Trouvez une solution avant de tout recommencer.

Dépannage

Préférences des Cookies

Nous utilisons des cookies pour améliorer votre expérience de navigation, analyser le trafic du site et personnaliser le contenu. En cliquant sur "Accepter Tout", vous consentez à notre utilisation des cookies pour l'analyse et la publicité personnalisée.