neu-card
Стенд для настройки вида. Сборка не нужна: правим public/css/main.css →
страница перезагружается сама (live-reload). Переключатель темы в правом нижнем углу.
Финальный вид
Принятые значения: сила объёма 0.5, блик 0.2, без текстуры.
Обычная неуморфная карточка на нейтральном фоне.
Обычная карточка · mp-card
Твоя базовая карточка с сайта — для сравнения с неуморфной рядом. Разметка и стили
взяты из public/css/main.css без изменений.
Проект
Базовая карточка проекта с обложкой.
Текстовая
Карточка без обложки — только текст.
Compact
Узкая колонка со ссылкой.
Токены
Числа, которыми управляется вид. Значение по умолчанию — в скобках.
--neu-bg--bg-elevated-
Нейтральная заливка: в тёмной теме тёмная, в светлой — светлая. Отличается от
--bgна 3%, поэтому объём читается тенями, а не контрастом.
--neu-spread0.5- Сила объёма. Масштабирует все семь теней разом.
0— плоская карточка.
--neu-hover-spread1.5- Множитель объёма при наведении.
--neu-glow-a0.2- Сила блика из левого верхнего угла.
0— выключен.
--neu-in-light-mult0.55 / 0.4- Сила внутреннего блика (тёмная / светлая тема). На светлом фоне белый блик «горит», поэтому там он слабее.
--neu-in-dark-mult0.75 / 0.5- Сила внутренней тени (тёмная / светлая тема).
--neu-press1px- Смещение вниз при нажатии.
--neu-press-fade0.5- Во сколько слабеют внутренние блики при нажатии. Блики НЕ инвертируются — карточка остаётся выпуклой.
--neu-lift-3px- Подъём при наведении.
--neu-radius--radius-card- Скругление. По умолчанию следует настройке темы.
--neu-pad1.25rem- Внутренние отступы.
Фоны
Неуморфизм читается только в паре с подложкой. Карточка построена от --bg,
поэтому на каждом фоне ведёт себя по-разному.
Страница · --bg
Поверхность · --bg-elevated
Карточка на карточке · --surface — худший случай
Акцентная подложка · --accent
Состояния
Наведи курсор и нажми — остальное показано принудительно, чтобы видеть их одновременно.
rest
:hover
:active / .is-pressed
:focus-visible
.is-disabled
.neu-card--flat
Содержимое
Проверка наполнения: от пустой до переполненной.
С обложкой
Размеры
Базовый размер задаётся --neu-min-w / --neu-min-h, дальше
карточка растёт от содержимого. В сетке — .neu-card--fluid.
Сетка
Рядом друг с другом тени соседних карточек накладываются. Здесь видно, не слипаются ли.
Три в ряд, gap 1rem
Смешанный рост
Разная высота содержимого — проверка на растяжение по сетке.
Карточка в карточке
Нижняя карточка больше и включает в себя верхние. Оценка того, как объём читается, когда карточка лежит поверх той же самой поверхности, а не на фоне страницы. Это худший случай для неуморфизма: обе поверхности одинаковые по цвету.
То же в светлой теме
Внутренние блики настроены раздельно для тёмной и светлой темы — здесь видна разница.
Светлая тема · тень
На светлом фоне чистый чёрный 0.25 выглядит грязно. Варианты: цвет тени смещён в
холодный тёмно-серый, альфа внешних теней снижена через --neu-drop-mult.
Эта секция принудительно светлая.
как в main.css
светлее тень
темнее, но меньше альфа
было грязно
Контактные карточки
Оригинальная .contact-card с сайта, теперь с неуморфной основой
(объём как у .neu-card). Бренд-цвета через модификаторы
--brand-tg / --brand-vk / --brand-ya / --brand-email.
Цветное наложение — радиальный градиент ::before из --contact-brand.
Матрица · neu-card + шейдер под бликом
Обычная неуморфная карточка (тени снаружи, блик из угла) с живым шейдером внутри, под бликом. Слева — чистая neu-card для сравнения, справа — та же карточка с анимированным mesh-слоем. Объём и блик сохранены, шейдер только подсвечивает поверхность.
Сетка 3 × 2
Одиночная крупная
Mesh gradient
Единственный используемый шейдер — анимированный mesh gradient (цветные пятна плавно перетекают). Ниже — карточка-пример только с ним. Контактные и матричные карточки выше используют тот же шейдер с брендовыми цветами.