shopmake.ru

Как менять цвета и шрифты на сайте: базовая работа с CSS

Как менять цвета и шрифты на сайте: базовая работа с CSS

Цвета и шрифты — это первое, что оживляет вёрстку. Когда я вижу, как новичок меняет чёрный текст на синий и подбирает нормальный шрифт вместо Times New Roman, страница сразу перестаёт быть «сырой». В студийной практике именно с этих свойств начинается приведение типового шаблона к брендовому стилю: берём макет, вытаскиваем фирменные цвета, подключаем корпоративный шрифт — и сайт обретает лицо. В этой статье разберём, как управлять цветом и типографикой через CSS: от простых свойств до системы переменных и типичных ошибок. Материал для тех, кто уже понимает HTML, но хочет осмысленно менять оформление, а не тыкать наугад.

Что такое CSS и зачем он нужен для цветов и шрифтов

CSS — это не просто «язык оформления», а инструмент управления визуальной иерархией. HTML задаёт структуру: заголовок, абзац, кнопка. CSS превращает эту структуру в интерфейс, который удобно читать и которым приятно пользоваться. Когда мы в студии получаем макет от дизайнера, мы не переписываем HTML под каждый новый цвет — мы правим CSS. Это позволяет за минуту перекрасить все кнопки сайта или заменить шрифт на всех страницах разом.

Именно CSS даёт:

  • быструю смену оформления без правки разметки;
  • единый стиль для всего проекта;
  • поддержку дизайн-системы и брендбука;
  • адаптивность под разные экраны;
  • лёгкое обновление цветов и типографики, когда клиент передумал.

Новичку важно понять: цвета и шрифты — это не украшательство, а функциональный слой, влияющий на читаемость, конверсию и доверие. Поэтому мы не просто «красим», а выстраиваем систему.

Как подключают CSS к сайту

Прежде чем менять цвета, нужно понимать, откуда они берутся. В реальных проектах мы всегда используем внешний файл — это стандарт. Но для понимания полезно знать все три способа, с которыми вы можете столкнуться, разбирая чужой код.

1. Внешний файл CSS

Самый правильный и удобный вариант. Все стили лежат в отдельном файле, например style.css. Браузер кэширует его, и при повторных заходах страница грузится быстрее. В студийной практике мы обычно создаём папку css/ и раскладываем стили по файлам: normalize.css, main.css, components.css. Для начала хватит одного файла.

<link rel="stylesheet" href="style.css">

Подключается в <head>. Это база, к которой нужно привыкнуть с первого дня.

2. Встроенные стили в теге

Стили прописываются прямо в атрибуте style у HTML-элемента. Выглядит так:

<p style="color: red; font-size: 20px;">Текст</p>

В студийной работе это считается плохим тоном: стили размазываются по разметке, их сложно переопределять и поддерживать. Единственное оправдание — быстрая проверка гипотезы в браузере, но даже для этого удобнее использовать DevTools. Я всегда прошу новичков избегать такого подхода, чтобы не плодить хаос.

3. Стили внутри <style>

Блок <style> в <head> страницы. Иногда используется для критических стилей первого экрана, чтобы ускорить отрисовку. Но для учебных целей и небольших страниц он допустим. На больших проектах стили в <style> быстро становятся неуправляемыми, поэтому мы выносим всё во внешние файлы.

Как менять цвет текста в CSS

Свойство color — это первое, что я показываю новичкам, потому что результат виден мгновенно. Оно меняет цвет текста внутри элемента и наследуется потомками, если не переопределено.

p {
  color: #333333;
}

В студийной практике мы редко используем названия цветов вроде red или blue — только для отладки. В продакшене всегда идут конкретные значения из макета: HEX, RGB или RGBA, если нужна прозрачность. HEX-коды удобны своей краткостью, RGBA — когда текст должен лежать поверх градиента или изображения и нужно задать полупрозрачность.

Основные форматы:

Формат Пример Где удобно использовать
Название цвета red Для простых тестов
HEX #ff6600 Самый популярный вариант
RGB rgb(255, 102, 0) Когда нужен точный контроль
RGBA rgba(255, 102, 0, 0.5) Если нужна прозрачность
HSL hsl(24, 100%, 50%) Удобно для работы с оттенками

Частая ошибка новичков: пытаться изменить цвет текста через background-color. Запомните простое правило: color — это цвет шрифта, background-color — цвет фона. Если перепутать, можно получить белый текст на белом фоне и долго гадать, почему ничего не видно.

Как менять цвет фона

Фон задаётся свойством background-color. В реальных проектах мы используем его для секций, карточек, кнопок, плашек. Это основа, на которой строится контраст.

.header {
  background-color: #2c3e50;
  color: #ffffff; /* белый текст на тёмном фоне */
}
.button {
  background-color: #ff6600;
  color: white;
}

При подборе пары «текст-фон» всегда проверяйте контрастность. В студии мы используем инструменты вроде WebAIM Contrast Checker, чтобы соответствовать стандартам доступности (WCAG). Светло-серый текст на белом фоне может выглядеть стильно, но читать его будут с трудом, особенно люди с ослабленным зрением. Для основного текста соотношение контраста должно быть не ниже 4.5:1.

Как менять шрифт на сайте

Свойство font-family определяет, каким шрифтом будет набран текст. Но важно не просто указать красивый шрифт, а обеспечить читаемость на всех устройствах. В студийной практике мы всегда задаём стек шрифтов — список из нескольких названий, разделённых запятыми. Браузер идёт по списку и использует первый доступный шрифт.

body {
  font-family: 'Inter', Arial, sans-serif;
}

Это значит: попробуй Inter, если его нет — Arial, если и его нет — любой системный шрифт без засечек. Запасные варианты спасают, когда внешний шрифт не загрузился (например, из-за медленного интернета) или отсутствует на устройстве. Без них браузер применит шрифт по умолчанию, и вёрстка может «поехать».

Какие шрифты бывают

Для новичка достаточно знать три основные группы:

  • Sans-serif — без засечек. Arial, Inter, Roboto, Open Sans. Это рабочие лошадки веба: они чёткие, хорошо читаются на экранах любого разрешения. В студийных проектах мы чаще всего используем именно их для интерфейсов и основного текста.
  • Serif — с засечками. Times New Roman, Georgia. Засечки помогают глазу скользить по строке в длинных текстах, поэтому такие шрифты уместны в редакционных материалах, блогах, новостных сайтах. Но на мелких размерах они могут выглядеть грязно, поэтому с ними нужно быть аккуратнее.
  • Monospace — моноширинные. Courier New, Consolas. Каждый символ занимает одинаковую ширину. Незаменимы для отображения кода, таблиц, технических данных. В обычном тексте их лучше не использовать.

Я советую новичкам начинать с одного качественного sans-serif шрифта — например, Inter или Roboto. Они нейтральны, имеют много начертаний и прощают ошибки вёрстки.

Как подключить внешний шрифт

Если системных шрифтов не хватает, подключают внешние. Самый простой способ для старта — Google Fonts. Выбираете шрифт, нужные начертания, получаете ссылку и вставляете в <head> перед основным CSS.

<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap" rel="stylesheet">

Затем в CSS:

body {
  font-family: 'Roboto', sans-serif;
}

Важный нюанс: не подключайте все доступные начертания. Каждый добавленный вес увеличивает объём загружаемых данных. Для начала хватит 400 (обычный), 500 (средний) и 700 (жирный). В студийной практике мы часто используем локальное подключение шрифтов через @font-face и форматы woff2 — это быстрее и надёжнее, но для учебных проектов Google Fonts вполне достаточно.

Как менять размер шрифта

Размер текста задаётся свойством font-size. От него зависит иерархия: заголовки должны быть крупнее подзаголовков, подзаголовки — крупнее основного текста. В студийной работе мы почти всегда используем относительные единицы rem, потому что они привязаны к корневому размеру шрифта (обычно 16px у html). Это позволяет пользователю масштабировать текст в браузере, и сайт не ломается.

html {
  font-size: 16px; /* базовый размер */
}
h1 {
  font-size: 2rem; /* 32px */
}
p {
  font-size: 1rem; /* 16px */
}

Новичкам я рекомендую начать с px, чтобы набить руку и понимать абсолютные величины, но постепенно переходить на rem. Смешивать единицы без системы — одна из частых ошибок, которая приводит к непредсказуемым отступам и размерам.

Единица Что означает Когда использовать
px фиксированный размер Для простых задач и точного контроля
em зависит от родителя Для вложенных элементов
rem зависит от корневого размера Для удобной масштабируемой системы

Как сделать текст жирным, тонким и выразительным

Насыщенность шрифта управляется через font-weight. Вместо слов bold или normal лучше использовать числовые значения от 100 до 900 — они точнее и позволяют тоньше настраивать визуальный вес. В студийной практике мы обычно оперируем значениями 400 (regular), 500 (medium), 600 (semi-bold), 700 (bold).

h2 {
  font-weight: 600;
}
strong {
  font-weight: 700;
}

С помощью веса можно выстроить чёткую иерархию: заголовки — полужирные, ключевые цифры — жирные, обычный текст — 400. Не стоит делать всё подряд жирным — это создаёт визуальный шум и утомляет. И помните: не каждый шрифт имеет все начертания. Если вы зададите font-weight: 800, а шрифт такого не поддерживает, браузер подберёт ближайший доступный, и результат может отличаться от ожидаемого.

Как изменить высоту строки и читаемость текста

line-height — свойство, которое часто недооценивают, а зря. Оно задаёт расстояние между строками и напрямую влияет на читаемость. В студийных проектах мы всегда используем относительные значения (без единиц), например 1.5. Это значит, что высота строки будет в 1.5 раза больше размера шрифта, и при изменении font-size пропорция сохранится.

p {
  font-size: 16px;
  line-height: 1.6;
}

Для основного текста оптимальный диапазон — 1.4–1.7. Для заголовков можно делать поменьше, 1.2–1.3, потому что они обычно крупнее и не требуют такого большого интерлиньяжа. Слишком маленькая высота строки делает текст сдавленным, слишком большая — разваливает абзац на отдельные строки.

Дополнительно на читаемость влияют:

  • letter-spacing — расстояние между буквами. Иногда полезно слегка разрядить заглавные буквы в заголовках.
  • text-transform — управление регистром: uppercase для кнопок или навигации.
  • text-align — выравнивание. Для длинных текстов лучше использовать left (или start), а не justify, который может создавать неравномерные пробелы.

Как задавать стили для всего сайта сразу

В любом проекте мы начинаем с базовых сбросов и глобальных настроек на элементе body. Это задаёт фундамент, от которого потом отталкиваются все остальные элементы. Я всегда рекомендую подключать normalize.css или простой сброс отступов, чтобы убрать кросс-браузерные различия, а затем определять основные параметры.

body {
  margin: 0;
  font-family: 'Inter', sans-serif;
  font-size: 16px;
  line-height: 1.5;
  color: #333;
  background-color: #fff;
}

Такой подход гарантирует, что весь текст на сайте будет наследовать эти стили, пока вы не переопределите их для конкретных элементов. Это экономит массу времени и поддерживает визуальную консистентность.

Как использовать CSS-переменные для цветов и шрифтов

Когда в проекте больше трёх цветов или несколько повторяющихся размеров, самое время завести переменные. В студийной практике мы создаём отдельный файл _variables.css и определяем там палитру, шрифты, отступы. Это позволяет изменить фирменный цвет во всём сайте, поменяв одно значение.

:root {
  --primary: #ff6600;
  --text: #333333;
  --bg: #ffffff;
  --font-main: 'Inter', sans-serif;
  --font-heading: 'Roboto', sans-serif;
}

Использование:

body {
  color: var(--text);
  background-color: var(--bg);
  font-family: var(--font-main);
}
.button {
  background-color: var(--primary);
}

Переменные дисциплинируют и уменьшают количество ошибок: вы не забудете точный HEX-код и не создадите случайно пять оттенков одного цвета. Кроме того, на их основе легко реализовать переключение тем (светлая/тёмная) — достаточно переопределить переменные в другом классе.

Практический пример: собираем базовую стилизацию

Ниже — минимальный, но уже вполне рабочий набор стилей, который я часто даю новичкам как стартовую точку. Он не претендует на дизайн-шедевр, но задаёт аккуратную типографику, понятную цветовую схему и базовую адаптивность. Скопируйте его в свой style.css и посмотрите, как преобразится страница.

:root {
  --primary: #2c7be5;
  --text: #1e293b;
  --bg: #f8fafc;
  --white: #ffffff;
}

body {
  margin: 0;
  font-family: 'Inter', sans-serif;
  font-size: 16px;
  line-height: 1.6;
  color: var(--text);
  background-color: var(--bg);
}

.container {
  max-width: 800px;
  margin: 0 auto;
  padding: 2rem 1rem;
}

h1, h2, h3 {
  font-weight: 600;
  line-height: 1.3;
  margin-top: 1.5em;
  margin-bottom: 0.5em;
}

h1 { font-size: 2rem; }
h2 { font-size: 1.5rem; }
h3 { font-size: 1.25rem; }

a {
  color: var(--primary);
  text-decoration: none;
}
a:hover {
  text-decoration: underline;
}

.button {
  display: inline-block;
  padding: 0.75em 1.5em;
  background-color: var(--primary);
  color: var(--white);
  border-radius: 6px;
  font-weight: 500;
  text-align: center;
}

Обратите внимание: здесь уже есть переменные, ограничение ширины контейнера для читаемости, отступы у заголовков и стилизация ссылок и кнопок. Это не просто набор свойств, а маленькая система, которую можно расширять.

Типичные ошибки новичков

За годы работы я насмотрелся на самые разные грабли. Вот те, что встречаются чаще всего, и способы их избежать.

1. Слишком много разных шрифтов

Один-два шрифта на страницу — золотое правило. Когда новичок подключает Roboto для текста, Playfair Display для заголовков и ещё какой-нибудь декоративный для цитат, сайт превращается в лоскутное одеяло. В студийной практике мы почти всегда обходимся одним семейством, играя с весом и размером. Если очень хочется второй шрифт — используйте его только для крупных заголовков.

2. Слабый контраст текста и фона

Светло-серый текст на белом фоне — частая проблема. Визуально это может выглядеть «воздушно», но читать такой текст неудобно. Мы всегда проверяем контраст минимум на уровне AA (4.5:1 для обычного текста). Есть отличный инструмент — вкладка Accessibility в Chrome DevTools, которая подсвечивает проблемные места.

3. Смешивание единиц без системы

Когда размеры заданы вперемешку: font-size: 14px, margin: 1em, padding: 2rem, width: 50% — понять логику интерфейса становится невозможно. Выберите что-то одно для шрифтов (например, rem), для отступов тоже rem или px для мелких деталей, и придерживайтесь этого.

4. Неправильный выбор веса шрифта

Ставить font-weight: 900 на всё подряд — плохая идея. Жирный текст должен акцентировать внимание, а не кричать из каждого абзаца. Используйте жирность осмысленно: заголовки — 600 или 700, ключевые слова — 500, обычный текст — 400.

5. Оформление прямо в HTML

Стили в атрибуте style — это соблазнительно быстро, но потом проект превращается в кашу. Разделяйте структуру и оформление с самого начала. Даже в учебных примерах выносите стили в <style> или внешний файл.

Чек-лист: что проверить после изменения цветов и шрифтов

Перед тем как показывать результат, я всегда прохожусь по этому списку. Он выручает и в студийной работе, и при проверке домашек.

  • Текст читается на любом фоне? Проверьте контраст.
  • Заголовки визуально отделены от обычного текста? Они должны быть крупнее и/или жирнее.
  • На странице не больше двух шрифтов? Если больше — есть ли веская причина?
  • Высота строки для основного текста в пределах 1.4–1.7? Не сдавлен ли текст?
  • Ссылки и кнопки отличаются от обычного текста не только цветом, но и, например, подчёркиванием или фоном?
  • Цвета используются последовательно: один и тот же оттенок для всех кнопок, один для ссылок и т.д.?
  • Нет ли слишком мелкого текста (меньше 14px на десктопе)?
  • На мобильном экране заголовки не обрезаются, строки не становятся слишком длинными, кнопки достаточно крупные для нажатия пальцем?

Пошагово: как поменять оформление на существующем сайте

Часто приходится править не свой код с нуля, а готовый сайт. Вот алгоритм, который я использую сам и даю новичкам.

Шаг 1. Найдите нужный файл CSS

Откройте DevTools (F12), вкладка Sources или Network, найдите подключаемые CSS-файлы. Обычно это style.css, main.css или что-то в папке assets/css. Если сайт на CMS, файлы могут называться theme.css или custom.css.

Шаг 2. Определите основные элементы

Посмотрите, где задаются стили для body, заголовков h1–h6, параграфов p, ссылок a, кнопок. Используйте инспектор элементов, чтобы понять, какие селекторы и правила сейчас действуют. Не спешите писать !important — лучше повысьте специфичность, добавив класс или родительский селектор.

Шаг 3. Сначала задайте базу

Начните с глобальных настроек: шрифт, цвет текста, фон страницы, базовый размер шрифта, межстрочный интервал. Если на body уже есть стили, аккуратно дополните их или переопределите в своём файле, подключённом после основного.

Шаг 4. Затем настройте акценты

После базы переходите к заголовкам, кнопкам, ссылкам, карточкам. Обычно достаточно изменить цвет фона, шрифт и, возможно, вес. Следите за тем, чтобы новые стили не ломали сетку и отступы.

Шаг 5. Проверьте адаптивность

Обязательно посмотрите, как сайт выглядит на мобильном разрешении (в DevTools есть режим эмуляции). Убедитесь, что заголовки не слишком большие, текст не вылезает за пределы экрана, кнопки не стали микроскопическими. При необходимости добавьте медиазапросы для корректировки размеров.

Когда лучше не менять шрифт и цвет вручную

Есть ситуации, когда прямое вмешательство в CSS может навредить. Если сайт собран на готовом шаблоне с развитой дизайн-системой, часто есть панель настроек темы, где можно поменять цвета и шрифты без кода. В CMS вроде WordPress такие опции бывают в кастомайзере. Ручная правка файлов темы может слететь при обновлении. В студийной практике мы для таких случаев создаём дочернюю тему или подключаем дополнительный CSS-файл через функции темы, чтобы не трогать ядро.

Также будьте осторожны, если стили завязаны на компоненты (например, в React или Vue). Там цвета могут приходить из JavaScript-переменных, и править нужно в другом месте. Всегда сначала изучите архитектуру проекта.

FAQ

Можно ли менять цвет текста без CSS?

Формально да — через устаревший атрибут color у тега <font> или text у <body>. Но это не рекомендуется и не работает в современном HTML. Используйте CSS — это стандарт.

Какой шрифт выбрать для сайта новичку?

Для старта отлично подойдут Inter, Roboto, Arial или Open Sans. Это универсальные, качественные шрифты с хорошей поддержкой кириллицы и множеством начертаний. Они не отвлекают внимание и позволяют сосредоточиться на структуре.

Что лучше: px или rem?

Для начинающих проще px, потому что он абсолютен и предсказуем. Но для гибкой и доступной вёрстки лучше переходить на rem. В студийных проектах мы используем rem для шрифтов и отступов, а px — для бордеров, теней и других элементов, которые не должны масштабироваться.

Почему цвет на сайте выглядит не так, как в макете?

Причин может быть несколько: разный цветовой профиль монитора, не подключён нужный шрифт (он влияет на восприятие цвета), цвет переопределён более специфичным правилом в CSS, или в макете используется цветовая модель, отличная от sRGB. Всегда уточняйте у дизайнера точные HEX-коды и проверяйте их через инспектор.

Можно ли использовать один шрифт для всего сайта?

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

Вывод

Управление цветами и шрифтами в CSS — это не просто «покрасить и выбрать шрифт». Это основа визуальной коммуникации сайта. Когда вы понимаете, как работают color, background-color, font-family, font-size, font-weight и line-height, вы можете превратить скучную HTML-разметку в аккуратный, читаемый интерфейс. В студийной практике именно с этого начинается любой проект: сначала выстраивается типографика и цветовая система, а потом уже добавляются более сложные эффекты.

Освоив эти базовые свойства, вы получите достаточно инструментов, чтобы оформлять страницы чисто, предсказуемо и без хаоса. А дальше — адаптивность, анимации, препроцессоры. Но фундамент остаётся тем же.