Spec-Zone.ru › CSS

CSS-свойство `caret-color`

Базовая поддержка Широко доступно

Эта функция хорошо зарекомендовала себя и работает на множестве устройств и в разных версиях браузеров. Она поддерживается браузерами с января 2020 года.

CSS-свойство caret-color CSS задаёт цвет каретки ввода, иногда называемой текстовым курсором. Это видимый маркер в точке ввода, где будет добавлен следующий набранный символ или удалён следующий символ.

Свойство caret-color также можно задать как часть сокращённого свойства caret.

Попробуйте

caret-color: red;
caret-color: auto;
caret-color: transparent;
<section class="default-example container" id="default-example">
  <div>
    <p>Enter text in the field to see the caret:</p>
    <p><input id="example-element" type="text" /></p>
  </div>
</section>
#example-element {
  font-size: 1.2rem;
}

Синтаксис

/* Keyword values */
caret-color: auto;
caret-color: transparent;
caret-color: currentColor;

/* <color> values */
caret-color: red;
caret-color: #5729e9;
caret-color: rgb(0 200 0);
caret-color: hsl(228deg 4% 24% / 80%);

/* Global values */
caret-color: inherit;
caret-color: initial;
caret-color: revert;
caret-color: revert-layer;
caret-color: unset;

Значения

Для этого свойства указывается одно значение из следующего списка:

auto
Как правило, вычисляется в значение currentColor — color текста, который будет изменён.
color
Цвет каретки.

Описание

Каретка ввода — это видимый индикатор позиции в редактируемом тексте или в элементе, который принимает текстовый ввод, куда пользователь добавит или удалит содержимое. Обычно каретка выглядит как тонкая вертикальная линия, указывающая место добавления или удаления символов. Как правило, она мигает (появляется и исчезает), чтобы быть заметнее. Каретка отображается только тогда, когда редактируемый элемент находится в фокусе. По умолчанию она имеет цвет текста. Свойство caret-color позволяет задать для каретки цвет, отличный от currentColor, или сбросить заданный цвет каретки к значению по умолчанию.

Значение auto задаёт для каретки ввода значение currentColor, то есть color текста, который добавляется или удаляется. Пользовательские агенты могут выбрать другой цвет, чтобы обеспечить хорошую видимость и контраст с окружающим содержимым, учитывая color, background-color, тени и другие факторы. Однако на практике все браузеры по умолчанию используют текущий цвет, а также когда caret-color задано как auto. В качестве значения можно задать любой допустимый <color>.

Каретки ввода

Каретка ввода и, следовательно, это свойство применимы только к тексту или элементам, принимающим текстовый ввод. Каретка отображается в элементах пользовательского интерфейса, находящихся в фокусе и позволяющих пользователям обновлять содержимое, например в элементах <input>, принимающих произвольный текст, в элементе <textarea> и в элементах, для которых задан атрибут contenteditable.

Каретка может отображаться в элементах <input> типов password, text, search, tel и email. В полях ввода типов date, color, hidden, radio и checkbox каретки нет. Некоторые браузеры отображают каретку для поля ввода типа number. В некоторых браузерах можно заставить каретку отображаться в элементах, которые никогда не содержат текст, например задав appearance: none и добавив атрибут contenteditable. Однако так делать не рекомендуется.

Каретка может отображаться в редактируемом элементе или его потомках, если возможность редактирования не отключена, например, установкой атрибута contentEditable элемента-потомка в значение false. Если элемент нельзя редактировать или выбирать, например, если свойству user-select задано значение none, каретка не должна отображаться.

Каретка и курсор

Существует несколько видов кареток. Свойство caret-color влияет только на каретку ввода.

Во многих браузерах есть навигационная каретка, которая действует подобно каретке ввода, но её можно перемещать по нередактируемому тексту.

Изображение курсора мыши, отображаемое для некоторых значений свойства cursor (например, auto или text), может напоминать каретку, но это не она. Это курсор.

Анимация от значения auto

Как правило, когда для caret-color задано значение auto или оно используется по умолчанию, пользовательские агенты применяют currentColor, которое можно анимировать. Однако auto по умолчанию не является анимируемым значением: при анимации или переходе caret-color от auto к любому цветовому значению интерполяция не выполняется. Анимация является дискретной; цвет переключается на currentColor или с него в середине animation-duration или transition-duration.

Формальное определение

Исходное значение auto
Применяется к Тексту или элементам, принимающим текстовый ввод
Наследуется да
Вычисленное значение <code>auto</code> вычисляется согласно заданному значению, а значения <code>&lt;color&gt;</code> вычисляются согласно определению для свойства color.
Тип анимации a <a href="/en-US/docs/Web/CSS/Reference/Values/color_value#interpolation" title="Значения типа данных CSS <color> интерполируются по каждой из составляющих — красной, зелёной и синей; каждая из них обрабатывается как вещественное число с плавающей запятой. Обратите внимание, что интерполяция цветов выполняется в цветовом пространстве sRGBA с предварительно умноженной альфой, чтобы избежать появления неожиданных серых цветов.">color</a>

Формальный синтаксис

caret-color = 
  auto |
  <color>

<color> = 
  <color-base> |
  currentColor |
  <system-color> |
  <light-dark()> |
  <deprecated-system-color>

<color-base> = 
  <hex-color> |
  <color-function> |
  <named-color> |
  <color-mix()> |
  transparent

<system-color> = 
  AccentColor |
  AccentColorText |
  ActiveText |
  ButtonBorder |
  ButtonFace |
  ButtonText |
  Canvas |
  CanvasText |
  Field |
  FieldText |
  GrayText |
  Highlight |
  HighlightText |
  LinkText |
  Mark |
  MarkText |
  SelectedItem |
  SelectedItemText |
  VisitedText

<light-dark()> = 
  light-dark( <color>, <color> )

<deprecated-system-color> = 
  ActiveBorder |
  ActiveCaption |
  AppWorkspace |
  Background |
  ButtonHighlight |
  ButtonShadow |
  CaptionText |
  InactiveBorder |
  InactiveCaption |
  InactiveCaptionText |
  InfoBackground |
  InfoText |
  Menu |
  MenuText |
  Scrollbar |
  ThreeDDarkShadow |
  ThreeDFace |
  ThreeDHighlight |
  ThreeDLightShadow |
  ThreeDShadow |
  Window |
  WindowFrame |
  WindowText

<color-function> = 
  <rgb()> |
  <rgba()> |
  <hsl()> |
  <hsla()> |
  <hwb()> |
  <lab()> |
  <lch()> |
  <oklab()> |
  <oklch()> |
  <color()>

<named-color> = 
  aliceblue |
  antiquewhite |
  aqua |
  aquamarine |
  azure |
  beige |
  bisque |
  black |
  blanchedalmond |
  blue |
  blueviolet |
  brown |
  burlywood |
  cadetblue |
  chartreuse |
  chocolate |
  coral |
  cornflowerblue |
  cornsilk |
  crimson |
  cyan |
  darkblue |
  darkcyan |
  darkgoldenrod |
  darkgray |
  darkgreen |
  darkgrey |
  darkkhaki |
  darkmagenta |
  darkolivegreen |
  darkorange |
  darkorchid |
  darkred |
  darksalmon |
  darkseagreen |
  darkslateblue |
  darkslategray |
  darkslategrey |
  darkturquoise |
  darkviolet |
  deeppink |
  deepskyblue |
  dimgray |
  dimgrey |
  dodgerblue |
  firebrick |
  floralwhite |
  forestgreen |
  fuchsia |
  gainsboro |
  ghostwhite |
  gold |
  goldenrod |
  gray |
  green |
  greenyellow |
  grey |
  honeydew |
  hotpink |
  indianred |
  indigo |
  ivory |
  khaki |
  lavender |
  lavenderblush |
  lawngreen |
  lemonchiffon |
  lightblue |
  lightcoral |
  lightcyan |
  lightgoldenrodyellow |
  lightgray |
  lightgreen |
  lightgrey |
  lightpink |
  lightsalmon |
  lightseagreen |
  lightskyblue |
  lightslategray |
  lightslategrey |
  lightsteelblue |
  lightyellow |
  lime |
  limegreen |
  linen |
  magenta |
  maroon |
  mediumaquamarine |
  mediumblue |
  mediumorchid |
  mediumpurple |
  mediumseagreen |
  mediumslateblue |
  mediumspringgreen |
  mediumturquoise |
  mediumvioletred |
  midnightblue |
  mintcream |
  mistyrose |
  moccasin |
  navajowhite |
  navy |
  oldlace |
  olive |
  olivedrab |
  orange |
  orangered |
  orchid |
  palegoldenrod |
  palegreen |
  paleturquoise |
  palevioletred |
  papayawhip |
  peachpuff |
  peru |
  pink |
  plum |
  powderblue |
  purple |
  rebeccapurple |
  red |
  rosybrown |
  royalblue |
  saddlebrown |
  salmon |
  sandybrown |
  seagreen |
  seashell |
  sienna |
  silver |
  skyblue |
  slateblue |
  slategray |
  slategrey |
  snow |
  springgreen |
  steelblue |
  tan |
  teal |
  thistle |
  tomato |
  turquoise |
  violet |
  wheat |
  white |
  whitesmoke |
  yellow |
  yellowgreen

<color-mix()> = 
  color-mix( <color-interpolation-method> , [ <color> && <percentage [0,100]>? ]#{2})

<rgb()> = 
  rgb( <percentage>#{3} , <alpha-value>? ) |
  rgb( <number>#{3} , <alpha-value>? ) |
  rgb( [ <number> | <percentage> | none ]{3} [ / [ <alpha-value> | none ] ]? )

<rgba()> = 
  rgba( <percentage>#{3} , <alpha-value>? ) |
  rgba( <number>#{3} , <alpha-value>? ) |
  rgba( [ <number> | <percentage> | none ]{3} [ / [ <alpha-value> | none ] ]? )

<hsl()> = 
  hsl( <hue>, <percentage>, <percentage>, <alpha-value>? ) |
  hsl( [ <hue> | none ] [ <percentage> | <number> | none ] [ <percentage> | <number> | none ] [ / [ <alpha-value> | none ] ]? )

<hsla()> = 
  hsla( <hue>, <percentage>, <percentage>, <alpha-value>? ) |
  hsla( [ <hue> | none ] [ <percentage> | <number> | none ] [ <percentage> | <number> | none ] [ / [ <alpha-value> | none ] ]? )

<hwb()> = 
  hwb( [ <hue> | none ] [ <percentage> | <number> | none ] [ <percentage> | <number> | none ] [ / [ <alpha-value> | none ] ]? )

<lab()> = 
  lab( [<percentage> | <number> | none] [ <percentage> | <number> | none] [ <percentage> | <number> | none] [ / [<alpha-value> | none] ]? )

<lch()> = 
  lch( [<percentage> | <number> | none] [ <percentage> | <number> | none] [ <hue> | none] [ / [<alpha-value> | none] ]? )

<oklab()> = 
  oklab( [ <percentage> | <number> | none] [ <percentage> | <number> | none] [ <percentage> | <number> | none] [ / [<alpha-value> | none] ]? )

<oklch()> = 
  oklch( [ <percentage> | <number> | none] [ <percentage> | <number> | none] [ <hue> | none] [ / [<alpha-value> | none] ]? )

<color()> = 
  color( [ from <color> ]? <colorspace-params> [ / [ <alpha-value> | none ] ]? )

<color-interpolation-method> = 
  in [ <rectangular-color-space> | <polar-color-space> <hue-interpolation-method>? | <custom-color-space> ]

<alpha-value> = 
  <number> |
  <percentage>

<hue> = 
  <number> |
  <angle>

<colorspace-params> = 
  [<custom-params> | <predefined-rgb-params> | <xyz-params>]

<rectangular-color-space> = 
  srgb |
  srgb-linear |
  display-p3 |
  display-p3-linear |
  a98-rgb |
  prophoto-rgb |
  rec2020 |
  lab |
  oklab |
  xyz |
  xyz-d50 |
  xyz-d65

<polar-color-space> = 
  hsl |
  hwb |
  lch |
  oklch

<hue-interpolation-method> = 
  [ shorter | longer | increasing | decreasing ] hue

<custom-color-space> = 
  <dashed-ident>

<custom-params> = 
  <dashed-ident> [ <number> | <percentage> | none ]+

<predefined-rgb-params> = 
  <predefined-rgb> [ <number> | <percentage> | none ]{3}

<xyz-params> = 
  <xyz> [ <number> | <percentage> | none ]{3}

<predefined-rgb> = 
  srgb |
  srgb-linear |
  display-p3 |
  display-p3-linear |
  a98-rgb |
  prophoto-rgb |
  rec2020

<xyz> = 
  xyz |
  xyz-d50 |
  xyz-d65

Примеры

Задание пользовательского цвета каретки

HTML

<input value="This field uses a default caret." size="64" />
<input class="custom" value="I have a custom caret color!" size="64" />
<p contenteditable class="custom">
  This paragraph can be edited, and its caret has a custom color as well!
</p>

CSS

input {
  caret-color: auto;
  display: block;
  margin-bottom: 0.5em;
}

input.custom {
  caret-color: orange;
}

p.custom {
  caret-color: green;
}

Результат

Спецификации

Спецификация
Модуль базового пользовательского интерфейса CSS уровня 4
# caret-color

Совместимость с браузерами

Компьютеры Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android WebView на iOS
caret-color
57
79
53
44
11.1
57
53
43
11.3
7.0
57
11.3
auto
57
79
53
44
11.1
57
53
43
11.3
7.0
57
11.3
currentColor
57
79
53
44
11.1
57
53
43
11.3
7.0
57
11.3
transparent
57
79
53
44
11.1
57
53
43
11.3
7.0
57
11.3

См. также

  • caret-animation, caret-shape
  • Сокращённое свойство caret
  • color
  • text-emphasis
  • cursor
  • text-emphasis
  • Тип данных CSS color
  • Элемент <input>
  • Атрибут HTML contenteditable

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/caret-color

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API