Caret-shape - Propriété CSS

caret-shape

Résumé des caractéristiques de la propriété caret-shape

Description rapide
Définit la forme du marqueur de texte.
Statut
Problèmes de compatibilité
Valeurs prédéfinies
auto | bar | block | underscore
Pourcentages
Ne s'appliquent pas.
Valeur initiale
auto
Héritée par défaut
Oui.
Discrète : lors d'une animation, la propriété caret-shape passe d'une valeur à l'autre sans transition.
[single}
Module W3C
Module CSS - Interface utilisateur de base
Statut du document: WD (document de travail)

Schéma de la syntaxe de caret-shape.

Diagramme syntaxique de caret-shape
Schéma syntaxique de la propriété caret-shape.
Cliquez sur les liens du schéma pour plus de précisons sur les valeurs.
Télécharger le schéma en SVG.

Description de la propriété caret-shape.

Curieusement, cette propriété, qui parait pourtant courante, est très mal prise en charge par les navigateurs actuels (2026).

La propriété CSS caret-shape définit la forme du marqueur de texte, c'est à dire le curseur clignotant qui apparaît lorsqu'on a cliqué dans une zone de saisie. Le curseur associé à la souris n'est pas impacté par cette propriété.

Pointeur de la souris.
Marqueur de texte et pointeur de souris
Marqueur de texte (clignotant).

Voir les autres propriétés relatives au marqueur de texte (nous indiquons également cursor qui est plutôt relatif au pointeur de la souris) :

Cette propriété définit si le clignotement par défaut du curseur de texte doit être maintenu.
Choisit la couleur du marqueur de texte (curseur clignotant).
Propriété résumée regroupant toutes les propriétés relatives au marqueur de texte.
Définit la forme du curseur de la souris.

Valeurs pour caret-shape.

  • caret-shape: auto;

    La forme du marqueur de texte est déterminée par le navigateur, en fonction du contexte. Par exemple la saisie en mode insertion correspond normalement à un marqueur de texte du type trait vertical clignotant (bar), tandis que la saisie en remplacement correspond à un marqueur de forme rectangulaire (block).

  • caret-shape: bar;

    Le marqueur de texte a la forme d'une mince barre verticale, positionnée à l'endroit où le caractère saisi va apparaître. Ce marqueur ne se superpose jamais à un caractère déjà saisi : il correspond à une saisie par insertion.

    Le marqueur de texte peut éventuellement s'incliner lorsque la saisie se fait en caractères italiques ou obliques.

  • caret-shape: block;

    Le marqueur de texte a la forme d'un rectangle superposé à un des caractères déjà saisi. Ce marqueur correspond à une saisie en remplacement.

    Ce marqueur de texte peut éventuellement s'incliner lorsque la saisie se fait en caractères italiques ou obliques.

  • caret-shape: underscore;

    Le marqueur de texte a la forme d'une petite barre horizontale, positionnée en dessous de la ligne de texte.

  • caret-shape: initial; (auto) caret-shape: inherit; caret-shape: revert; caret-shape: revert-layer; caret-shape: revert-rule; caret-shape: unset;

    Les valeurs communes sont présentées sur ces pages : initial, inherit, revert, revert-layer, revert-rule, unset.

Exemple d'animation de caret-shape.

La propriété caret-shape peut être animée, d'après la norme CSS, mais cela présente peu d'intérêt (à notre avis).

Accéder à la propriété caret-shape par programme.

Avec Javascript, modifier la valeur de caret-shape.

En Javascript, voici comment modifier la valeur de caret-shape. On voit que Javascript propose une syntaxe avec la notation typique de CSS, en kebab-case (un tiret pour séparer les mots), et une autre syntaxe avec la notation en camel-case (une majuscule pour séparer les mots).

Javascript
let el = document.getElementById('id'); el.style['caret-shape'] = 'block'; // ou let el = document.getElementById('id'); el.style.caretShape = 'block';

Avec Javascript, lire la valeur de caret-shape.

La propriété doit avoir été affectée directement à l'élément lui-même via son attribut style, et non pas en passant par un sélecteur CSS.

Javascript
let el = document.getElementById('id'); let value = el.style['caret-shape']; // ou let el = document.getElementById('id'); let value = el.style.caretShape;

Avec Javascript, lire la valeur calculée de caret-shape.

La valeur calculée est celle qui résulte de l'évaluation de la cascade des héritages, ou à défaut, c'est la valeur initiale de la propriété : auto. La valeur calculée est toujours définie.

Javascript
let el = document.getElementById('id'); let value = window.getComputedStyle(el).getPropertyValue('caret-shape');

Avec JQuery, lire ou modifier la valeur de caret-shape.

JQuery

// Lire la valeur :
$('#id').prop('caret-shape');
// Écrire la valeur :
$('#id').prop('caret-shape', 'block');
$('#id').prop('{caret-shape': 'block'});

Avec JQuery, lire la valeur calculée de caret-shape.

JQuery
let value = $('#id').css('caret-shape');

Testez vous-même.

Les boutons ci-dessous appliquent la valeur saisie à la propriété caret-shape et affichent ensuite soit la valeur telle qu'elle a été appliquée, soit la valeur calculée. Cette deuxième option permet de voir comment est mémorisée (sérialisée) la valeur de caret-shape. Dans le cas de caret-shape il n'y aura pas de différences entree les deux valeurs puisqu'il s'agit forcément de valeurs prédéfinies, sauf si vous saisissez une valeur incorrecte.

Exemple interactif avec la propriété caret-shape.

Le marqueur est le petit symbole clignotant qui indique à quel endroit le prochain caractère saisie apparaîtra. Il ne s'affiche que lorsque la zone de saisie est sélectionnée.

  Ne fonctionne pas sur tous les navigateurs.

caret-shape :
Test :

Compatibilité des navigateurs avec caret-shape.

La propriété caret-shape est encore mal gérée par les navigateurs : de grands navigateurs comme Firefox   ne la prennent pas encore en charge (2026).

Colonne 1
Support par les navigateurs de la propriété caret-shape qui définit la forme du marqueur de texte (curseur clignotant qui indique à quel endroit le caractère tapé va apparaitre).
Colonne 2
Support par les navigateurs de la propriété caret-color pour définir la couleur du curseur de texte qui apparait dans les zones éditables.
1
Propriété
caret-shape
2
Propriété
caret-color
Estimation de la prise en charge globale.
66%
95%

Navigateurs sur ordinateurs :

Navigateurs sur mobiles :

Navigateurs obsolètes ou marginaux :

Internet Explorer

UC Browser pour Androïd

Opéra Mobile

QQ Browser

Baidu Browser

Safari

Safari sur IOS

Opéra

Chrome

Edge

Firefox

Chrome pour Androïd

Samsung Internet

Androïd Brower

Firefox pour Androïd

KaiOS Browser

Opéra mini

Histoire de la propriété caret-shape.

  • Module CSS - Interface utilisateur de base - Niveau 4

    Ce niveau 4 de la spécification reprend les définitions déjà établies au niveau 3. Il apporte également quelques ajouts : la gestion du marqueur de texte est plus fine, plusieurs propriétés concernent le pointeur de souris, etc.

    Concernant caret-shape Ajout de la possibilité de choisir la forme du curseur, avec la propriété caret-shape.
    WD
    22 Septembre 2015
    Document de travail.
    CR
    PR
    REC

Voir aussi, au sujet de l'interface utilisateur.

Les possibilités de personnalisation ou de stylisation de l'interface utilisateur (UI) sont décrites dans la spécification module CSS - Interface utilisateur de base du W3C. Voici les principales propriétés définies dans cette norme :

Propriétés :

accent-color
Définit la couleur des élément actifs, cochés.
appearance
Supprime la mise en forme apportée par le système d'exploitation. Ne concerne que les contrôles de formulaire.
caret
Propriété résumée regroupant toutes les propriétés relatives au marqueur de texte.
caret-animation
Cette propriété définit si le clignotement par défaut du curseur de texte doit être maintenu.
caret-color
Choisit la couleur du marqueur de texte (curseur clignotant).
Caret-shape
Définit la forme du marqueur de texte.
cursor
Définit la forme du curseur de la souris.
ime-mode
Définit l'accessibilité d'une zone de saisie.
interactivity
Permet de rendre inerte un élément et ses descendants.
interest-delay
Propriété résumée équivalente à interest-delay-start et interest-delay-end.
interest-delay-end
Définit le temps entre le moment où la souris quitte l'élément et le moment où l'infobulle disparait.
interest-delay-start
Définit le temps entre le moment où la souris arrive sur l'élément et le moment où l'infobulle apparait.
outline
Résumé des caractéristiques du contour.
outline-color
Définit la couleur du contour (outline).
outline-offset
Définit l'espacement entre le contour et l'élément.
outline-style
Définit le type de trait des contours (simple, double, pointillé...).
outline-width
Définit l'épaisseur du trait des contours.
resize
Autorise ou empêche le dimensionnement de l'élément par l'utilisateur.
user-select
Définit si le contenu d'un élément est sélectionnable par l'utilisateur ou non.