Suggérez une association de polices selon le style
Le choix des polices devient plus simple lorsque chaque rôle visuel est étudié séparément.
Lancer gratuitement
Indiquez si la police du titre est serif, sans-serif, slab ou display, puis choisissez l'ambiance recherchée. L'outil propose une police courante pour le corps, sa catégorie, deux variantes et une brève explication du contraste. Le résultat constitue un point de départ raisonné pour un véritable système de design, et non la garantie que deux polices fonctionneront sans tester les graisses, les tailles et le contenu réels.
Commencez par le rôle visuel du titre
Une police de titre établit l'identité, la hiérarchie et le rythme, tandis qu'une police de texte doit rester confortable dans les phrases, les paragraphes, les légendes et les libellés d'interface. Classez d'abord le titre selon sa construction dominante : serif, sans-serif, slab ou display. Les caractères serif possèdent des empattements et évoquent souvent un univers littéraire ou historique. Les sans-serif suppriment ces empattements et peuvent paraître directes, neutres ou contemporaines. Les slab emploient des empattements épais et rectangulaires qui apportent force et assurance. Display est la catégorie la plus vaste : elle englobe les créations décoratives, très contrastées, condensées, inhabituelles ou principalement destinées aux grands corps. Cette classification ne saisit pas toutes les nuances, mais fournit une première contrainte utile. L'outil choisit ensuite une police de texte dont la texture contraste avec le titre ou crée une parenté maîtrisée. Si votre titre hésite entre deux catégories, retenez le trait que le public remarque en premier, puis comparez avec la catégorie voisine.
Laissez l'ambiance guider le contraste
Le contraste ne se résume pas à une règle imposant toujours une serif avec une sans-serif. Il peut venir de la construction, des proportions, de la modulation du trait, de la largeur, de la graisse ou de la personnalité. L'ambiance indique laquelle de ces différences doit dominer. Une orientation élégante peut associer des titres sobres à une serif raffinée pour le texte, tandis qu'une orientation minimaliste privilégie généralement une texture discrète et neutre. Un résultat ludique accepte des formes plus rondes ou des détails plus vifs ; un résultat technique profite de caractères faciles à distinguer et de proportions rigoureuses. L'algorithme s'appuie sur une table fixe : les mêmes entrées donnent donc toujours la même recommandation. Cette stabilité facilite la documentation d'une décision et l'automatisation de suggestions reproductibles. Considérez la police principale comme la réponse la plus nette et les variantes comme des directions proches. Elles ne sont pas classées par popularité, et l'outil ne télécharge, n'inspecte, ne concède sous licence ni ne mesure aucun fichier de police.
Testez l'association dans la mise en page réelle
Une recommandation ne devient une association efficace qu'après avoir testé les véritables polices avec du contenu réel. Composez plusieurs niveaux de titre, un long paragraphe, des libellés courts, des nombres, de la ponctuation, des liens et du texte mis en valeur. Vérifiez que le titre conserve son caractère sans rendre le corps faible ou étranger. Pour le texte courant, commencez par une graisse normale ou moyenne, puis ajustez la taille, l'interligne et la longueur de ligne avant d'écarter la famille ; l'espacement compte souvent autant que la police. Assurez-vous que les graisses, italiques, langues et systèmes d'écriture nécessaires sont disponibles, puis contrôlez les licences du projet. Testez aussi les petits écrans, les affichages peu contrastés et les polices de repli du navigateur. Si les deux polices attirent l'attention, simplifiez le corps. Si leur ressemblance semble accidentelle, renforcez la hiérarchie par l'échelle, la graisse ou un contraste structurel plus volontaire. La justification fournie décrit la relation recherchée et vous donne une hypothèse concrète à vérifier.
Cas d’usage
Définissez une orientation de marque
Transformez une ambiance initiale en direction typographique concrète pour une planche d'inspiration.
Débloquez une mise en page web
Trouvez une police de texte lisible lorsqu'une police de titre expressive est déjà choisie.
Documentez le système de design
Consignez une recommandation reproductible et sa justification avant de tester graisses, espacements et tailles adaptatives.
Questions fréquentes
L'outil examine-t-il la police du titre ?
Non. Il utilise la classification et l'ambiance que vous indiquez ; il ne reçoit ni n'analyse aucun fichier de police.
Les recommandations sont-elles déterministes ?
Oui. La même classification et la même ambiance normalisées produisent toujours la même recommandation et les mêmes variantes.
Deux polices de même catégorie peuvent-elles fonctionner ensemble ?
Oui. La graisse, la taille, la largeur et la texture peuvent établir la hiérarchie sans changer de catégorie.
La recommandation garantit-elle la couverture linguistique ?
Non. Vérifiez les fichiers réels pour chaque langue, système d'écriture, graisse et style requis par votre projet.
Que se passe-t-il avec une classification inconnue ?
La requête renvoie une erreur de saisie invalide. Les titres acceptent serif, sans-serif, slab et display.
Quel est le coût d'une requête API ?
Chaque requête API coûte $0.002. La version navigateur peut exécuter localement la même logique déterministe.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/doc/font-pairing-suggest \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"classification":"serif","mood":"elegant"}'const res = await fetch("https://api.kit.forhosting.com/doc/font-pairing-suggest", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"classification": "serif",
"mood": "elegant"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/doc/font-pairing-suggest",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"classification": "serif",
"mood": "elegant"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/doc/font-pairing-suggest", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"classification":"serif","mood":"elegant"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"classification":"serif","mood":"elegant"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/doc/font-pairing-suggest", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"classification": "serif",
"mood": "elegant"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "doc.font_pairing_suggest",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
max_mb | 25 |
max_pages | 200 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |