Générez une valeur border-radius CSS
Le générateur CSS border-radius transforme un, deux, trois ou quatre rayons d’angle en une déclaration raccourcie prête à l’emploi.
Lancer gratuitement
Saisissez des longueurs ou pourcentages CSS usuels pour obtenir à la fois la valeur abrégée et la propriété border-radius complète. L’ordre respecte la spécification CSS : vous pouvez donc régler chaque angle de manière cohérente sans rechercher quelle position le commande. Les rayons négatifs sont refusés, car ils ne sont pas valides dans une feuille de style.
Choisissez entre un et quatre rayons
Commencez par choisir le nombre de valeurs correspondant à la forme recherchée. Une seule valeur applique le même rayon aux quatre angles, ce qui convient parfaitement aux cartes, boutons, champs et autres composants symétriques. Deux valeurs alternent entre les angles opposés : la première commande les angles supérieur gauche et inférieur droit, tandis que la seconde commande les angles supérieur droit et inférieur gauche. Avec trois valeurs, la première concerne l’angle supérieur gauche, la deuxième les angles supérieur droit et inférieur gauche, et la troisième l’angle inférieur droit. Quatre valeurs permettent un réglage indépendant dans le sens horaire : supérieur gauche, supérieur droit, inférieur droit, puis inférieur gauche. Chaque entrée doit être une longueur CSS ou un pourcentage positif ou nul, par exemple 8px, 0.5rem, 12% ou 0. Le zéro sans unité est admis par CSS, mais tout autre nombre doit comporter une unité de longueur reconnue ou le signe de pourcentage. La saisie en valeurs distinctes rend l’association entre positions et angles visible avant la création du raccourci final.
Interprétez et utilisez le CSS produit
Le résultat comprend deux champs adaptés à des usages différents. Le champ border_radius contient uniquement la valeur raccourcie ; il est pratique lorsqu’une application connaît déjà la propriété CSS à définir ou lorsqu’une chaîne de jetons de conception exige une valeur seule. Le champ css fournit la déclaration complète, avec le nom de propriété border-radius, les deux-points et le point-virgule, afin que vous puissiez la coller directement dans une règle de style. Les valeurs apparaissent dans l’ordre de saisie et sont séparées par une espace unique. Le générateur ne réorganise pas silencieusement les angles, ne convertit pas les unités et ne réduit pas les valeurs répétées : la représentation fournie reste ainsi prévisible et la syntaxe volontaire des jetons est préservée. Par exemple, les valeurs 8px et 16px donnent border-radius: 8px 16px;, tandis que quatre valeurs forment une déclaration dans le sens horaire. La sortie est déterministe et ne dépend d’aucune mesure propre au navigateur ; l’API et l’outil exécuté localement renvoient donc exactement les mêmes chaînes.
Validez les rayons avant de publier un composant
Les rayons d’angle CSS ne peuvent pas être négatifs. Le générateur s’arrête donc avec une erreur de saisie dès qu’une valeur commence par un signe moins. Il refuse également les éléments vides, le texte non pris en charge, les nombres non nuls dépourvus d’unité, les déclarations contenant de la ponctuation et les tableaux qui ne comportent pas entre une et quatre valeurs. Cette validation est utile lorsque les rayons proviennent d’un formulaire, d’un fichier de configuration, d’un éditeur de thème ou d’une compilation automatisée de jetons de conception, où un texte incorrect pourrait autrement atteindre une feuille de style sans être détecté. Les unités absolues, relatives à la police ou à la fenêtre, physiques et en pourcentage les plus courantes sont acceptées, notamment px, em, rem, vw, vh, vmin, vmax, ch, cm, mm, in, pt et pc, ainsi que les variantes modernes de fenêtre. Cette capacité produit le raccourci standard à rayon unique ; elle ne génère pas la syntaxe elliptique séparée par une barre oblique. Pour des angles elliptiques, conservez séparément les rayons horizontal et vertical dans votre CSS. Prévisualisez enfin le résultat sur l’élément réel, car les pourcentages dépendent de ses dimensions.
Cas d’usage
Créer des styles de composants
Produisez une déclaration border-radius prête à coller pour des cartes, boutons, boîtes de dialogue, badges et champs.
Valider des jetons de conception
Refusez les rayons négatifs ou incorrects avant qu’un thème ou une bibliothèque publie sa feuille de style.
Générer du CSS dynamique
Transformez les choix d’un éditeur visuel ou d’un formulaire de configuration en raccourci CSS prévisible.
Questions fréquentes
Quel est le tarif ?
Chaque requête API coûte $0.002, et vous pouvez aussi exécuter gratuitement l’outil dans votre navigateur sur cette page.
Dans quel ordre placer quatre valeurs ?
Elles suivent le sens horaire CSS : supérieur gauche, supérieur droit, inférieur droit, puis inférieur gauche.
Puis-je employer des pourcentages ?
Oui. Les pourcentages positifs ou nuls, comme 10% ou 50%, sont acceptés avec les unités de longueur CSS compatibles.
Pourquoi les valeurs négatives sont-elles refusées ?
La propriété CSS border-radius n’autorise aucun rayon négatif ; ce refus empêche de produire une déclaration invalide.
Le zéro sans unité est-il accepté ?
Oui. Le zéro et ses formes décimales équivalentes sont admis sans unité ; toute autre valeur exige une unité compatible ou un pourcentage.
L’outil produit-il des rayons elliptiques avec une barre ?
Non. Il génère le raccourci standard d’une à quatre valeurs, avec des rayons horizontal et vertical identiques pour chaque angle.
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/web/border-radius-generate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"values":["8px","16px","24px","32px"]}'const res = await fetch("https://api.kit.forhosting.com/web/border-radius-generate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"values": [
"8px",
"16px",
"24px",
"32px"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/border-radius-generate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"values": [
"8px",
"16px",
"24px",
"32px"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/border-radius-generate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"values":["8px","16px","24px","32px"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"values":["8px","16px","24px","32px"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/border-radius-generate", 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
{
"values": [
"8px",
"16px",
"24px",
"32px"
]
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.border_radius_generate",
"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
timeout_sec | 30 |
max_crawl_pages | 25 |
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. |