caret-color

С помощью caret-color можно менять цвет курсора в режиме набора текста.

Время чтения: меньше 5 мин

Кратко

Скопировано

Свойство caret-color задаёт цвет текстового курсора в полях ввода, например, <input> или <textarea>.

Пример

Скопировано

Курсор в поле ввода будет красного цвета:

        
          
          <label>  Красная каретка  <input class="red" type="text" placeholder="Красная каретка"></label>
          <label>
  Красная каретка
  <input class="red" type="text" placeholder="Красная каретка">
</label>

        
        
          
        
      
        
          
          .red {  caret-color: red;}
          .red {
  caret-color: red;
}

        
        
          
        
      

В примере ниже ещё несколько полей ввода с каретками разного цвета:

Открыть демо в новой вкладке

Как пишется

Скопировано

Значением для caret-color может быть любое поддерживаемое в CSS обозначение цвета. Кроме того доступны ключевые слова:

  • auto — значение по умолчанию, пользовательский агент выбирает подходящий цвет для каретки. Обычно это currentColor, но пользовательский агент может выбрать другой цвет, чтобы обеспечить хорошую видимость и контраст с окружающим содержимым, принимая во внимание значение currentColor, фон, тени и другие факторы.
  • transparent — можно использовать везде, где допустимо значение цвета. Это позволяет вам сделать элементы прозрачными, чтобы любой фоновый элемент был виден.
  • currentColor — соответствует значению свойства color для текущего элемента. Это позволяет использовать значение цвета для свойств, которые не наследуют его по умолчанию.

Как понять

Скопировано

Простое CSS-свойство, служащее единственной цели — кастомизации цвета для текстового курсора в полях ввода. Текстовый курсор — это видимый маркера, в который будет вставлен следующий введённый символ. Свойство является наследуемым, поэтому его можно указать глобально или для формы, и не указывать каждому полю ввода отдельно.

Ещё пример

Скопировано

В данном примере мы создадим форму с несколькими полями ввода, для формы зададим оранжевый цвет каретки, <input> будет наследовать свойство от формы, для <textarea> переопределим его на синий, а для параграфа с атрибутом contenteditable зададим розовый цвет каретки:

        
          
          <form>  <input type="text">  <textarea cols="30" rows="10"></textarea></form><p contenteditable>Зелёная каретка</p>
          <form>
  <input type="text">
  <textarea cols="30" rows="10"></textarea>
</form>

<p contenteditable>Зелёная каретка</p>

        
        
          
        
      
        
          
          form {  caret-color: #FF8630;}form textarea {  caret-color: #2E9AFF;}form p {  caret-color: #F498AD;}
          form {
  caret-color: #FF8630;
}

form textarea {
  caret-color: #2E9AFF;
}

form p {
  caret-color: #F498AD;
}

        
        
          
        
      
Открыть демо в новой вкладке

На практике

Скопировано

Миша Захаров советует

Скопировано

🛠 Добавим немного радуги в инпут:

        
          
          <input type="text">
          <input type="text">

        
        
          
        
      
        
          
          @keyframes rainbow {  0% { caret-color: #F498AD; }  20% { caret-color: #FF8630; }  40% { caret-color: #FFD829; }  60% { caret-color: #41E847; }  80% { caret-color: #2E9AFF; }  100% { caret-color: #F498AD; }}input:focus {  animation: 3s infinite rainbow;}
          @keyframes rainbow {
  0% { caret-color: #F498AD; }
  20% { caret-color: #FF8630; }
  40% { caret-color: #FFD829; }
  60% { caret-color: #41E847; }
  80% { caret-color: #2E9AFF; }
  100% { caret-color: #F498AD; }
}

input:focus {
  animation: 3s infinite rainbow;
}

        
        
          
        
      
Открыть демо в новой вкладке