JavaRush /Курсы /Модуль 1: Web Core /Манипуляции с цветами

Манипуляции с цветами

Модуль 1: Web Core
16 уровень , 8 лекция
Открыта

9.1 Комбинирование цветовых функций

Веб-дизайн требует более глубокого понимания и применения цветовых функций для создания сложных, но гармоничных и адаптивных интерфейсов. Рассмотрим более сложные манипуляции с цветами в CSS, используя функции rgba(), hsla(), hsl() и rgb().

Пример 1: Создание полупрозрачного градиента

Для создания сложных градиентов можно комбинировать несколько цветовых функций.

В этом примере используется линейный градиент, который комбинирует полупрозрачные цвета, заданные с помощью rgba() и hsla():

HTML
    
      <div class="gradient"></div>
    
  
CSS
    
      .gradient {
        min-height: 200px;
        background: linear-gradient(
          to right,
          rgba(255, 0, 0, 0.8),
          hsla(240, 100%, 50%, 0.7),
          rgba(0, 255, 0, 0.6)
        );
      }
    
  

Пример 2: Градиент с переходом через несколько цветов

Здесь используется линейный градиент под углом 45 градусов, который плавно переходит через пять цветов, каждый из которых задан разными цветовыми функциями:

HTML
    
      <div class="gradient"></div>
    
  
CSS
    
      .gradient {
        min-height: 200px;
        background: linear-gradient(
          45deg,
          hsl(0, 100%, 50%) 0%,
          rgb(255, 255, 0) 25%,
          hsla(240, 100%, 50%, 0.7) 50%,
          rgba(0, 255, 0, 0.6) 75%,
          rgb(0, 255, 255) 100%
        );
      }
    
  

9.2 Создание сложных теней и полупрозрачных эффектов

Пример 3: Тени с использованием rgba()

В этом примере создается сложная тень, которая использует полупрозрачные цвета, чтобы создать эффект объема и света:

HTML
    
      <div class="shadow"></div>
    
  
CSS
    
      .shadow {
        min-height: 155px;
        box-shadow: 10px 10px 20px rgba(0, 0, 0, 0.5),
                    -10px -10px 20px rgba(255, 255, 255, 0.2);
      }
    
  

Пример 4: Полупрозрачные границы и фоны

Полупрозрачные границы и фоны могут быть созданы с использованием rgba() и hsla(), что позволяет создать многослойные и текстурированные эффекты:

HTML
    
      <div class="border-background"></div>
    
  
CSS
    
      .border-background {
        min-height: 200px;
        border: 2px solid rgba(0, 0, 0, 0.5);
        background-color: hsla(120, 100%, 50%, 0.3);
      }
    
  

9.3 Анимация и переходы с использованием цветовых функций

Пример 5: Анимация фона с использованием hsl()

В этом примере используется анимация, которая плавно меняет цвет фона через разные оттенки с использованием hsl():

HTML
    
      <div class="animated-background"></div>
    
  
CSS
    
      @keyframes color-change {
        0% {
          background-color: hsl(0, 100%, 50%);
        }
        50% {
          background-color: hsl(120, 100%, 50%);
        }
        100% {
          background-color: hsl(240, 100%, 50%);
        }
      }

      .animated-background {
        min-height: 200px;
        animation: color-change 5s infinite;
      }
    
  

Пример 6: Переход цвета текста

Здесь текст плавно меняет цвет и прозрачность при наведении курсора, используя rgba() и свойство transition:

HTML
    
      <div class="text-transition">Some text</div>
    
  
CSS
    
      .text-transition {
        min-height: 100px;
        color: rgba(255, 0, 0, 1);
        transition: color 2s;
      }

      .text-transition:hover {
        color: rgba(0, 0, 255, 0.5);
      }
    
  

9.4 Использование CSS-переменных

Рассмотрим примеры использования CSS-переменных с цветовыми функциями.

Пример 7: Переменные и цветовые функции

Использование CSS-переменных с цветовыми функциями позволяет централизованно управлять цветами и создавать сложные, но легко управляемые стили:

HTML
    
      <div class="advanced"></div>
    
  
CSS
    
      :root {
        --primary-color: rgba(255, 0, 0, 0.8);
        --secondary-color: hsl(240, 100%, 50%);
        --border-color: rgba(0, 0, 0, 0.5);
      }

      .advanced {
        min-height: 200px;
        background: linear-gradient(
          to right,
          var(--primary-color),
          var(--secondary-color)
        );
        border: 2px solid var(--border-color);
      }
    
  

Пример 8: Совмещение нескольких градиентов

В этом примере два линейных градиента накладываются друг на друга, создавая сложный многослойный эффект:

HTML
    
      <div class="multi-gradient"></div>
    
  
CSS
    
      .multi-gradient {
        min-height: 200px;
        background: linear-gradient(to right, rgba(255, 0, 0, 0.5), rgba(0, 255, 0, 0.5)),
        linear-gradient(to bottom, hsla(240, 100%, 50%, 0.5), hsla(60, 100%, 50%, 0.5));
      }
    
  
1
Задача
Модуль 1: Web Core, 16 уровень, 8 лекция
Недоступна
Линейный градиент цветов
Линейный градиент цветов
1
Задача
Модуль 1: Web Core, 16 уровень, 8 лекция
Недоступна
Анимация фона hsl
Анимация фона hsl
Комментарии (1)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Vadim Makarenko Уровень 42
28 июня 2025
Хотел бы обратить внимание, что точка останова у градиента может содержать 2 значения для позиции: начало и конец. Причём, если конец и начало смежных цветов совпадают, то граница между этими цветами окажется не плавной, а резкой. Это свойство может быть использовано для создания сложных паттернов.