Исправляем градиентное размытие снизу в CSS

    При наложении размытого изображения с маской на оригинал часто возникает проблема: снизу размытие пропадает, хотя градиент маски задан корректно. Это происходит из-за того, что filter: blur() размывает края самого элемента, а маска обрезает их вместе с размытием. Разберём, как добиться плавного размытия по всей высоте, как в оригинале.

    Почему не работает размытие снизу?

    Основная причина - filter: blur(20px) создаёт размытие за пределами видимой области изображения. Маска mask-image обрезает элемент по своему контуру, убирая размытые пиксели у нижнего края. В результате градиент резко обрывается, а не сходит на нет.

    Как исправить: используем clip-path вместо mask-image

    Для плавного размытия снизу примените clip-path в сочетании с filter. Это позволит размыть изображение полностью, а затем обрезать его по нужному контуру без потери размытия у краёв.

    .blurr {
        filter: blur(20px);
        clip-path: inset(0);
        /* или более точный полигон */
        clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
    }

    Другой подход: масштабирование с overflow

    Если clip-path не подходит, увеличьте размер размытого слоя на 10-20% через transform: scale(1.1) и задайте overflow: hidden родителю. Это компенсирует обрезание размытых краёв маской. Пример:

    .blurr {
        filter: blur(20px);
        transform: scale(1.1);
    }
    .eventimage {
        overflow: hidden;
    }

    Сравнение методов

    • clip-path - точное обрезание без потери размытия, подходит для любых градиентов.
    • transform: scale - простое решение, но может сдвинуть картинку, требует корректировки позиционирования.
    • mask-image - не рекомендуется для blur(), так как обрезает размытые края.

    Готовый рабочий код

    Замените класс .blurr на следующий:

    .blurr {
        filter: blur(20px);
        clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
        /* или используйте inset */
        clip-path: inset(0);
    }

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

    Часто задаваемые вопросы