<div><img src="https://top-fwz1.mail.ru/counter?id=3548135;js=na" style="position:absolute;left:-9999px;" alt="Top.Mail.Ru" /></div>
Публичное облако на базе VMware с управлением через vCloud Director
Вход / Регистрация

Создание интернет-магазина на Node.js с нуля. Часть 1: Дизайн. Основы работы в Figma

Вячеслав Печенов
Вячеслав Печенов
Технический писатель
21 мая 2025 г.
33
18 минут чтения
Средний рейтинг статьи: 5

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

  • Дизайн и прототипирование

    На начальном этапе важно создать привлекательный и удобный интерфейс, который будет радовать пользователей и способствовать продажам. Для этого мы воспользуемся Figma — мощным инструментом для проектирования UI/UX. С помощью Figma вы сможете легко создавать макеты, экспериментировать с различными элементами дизайна и согласовывать их с командой. Прототипирование позволит вам заранее увидеть, как будет выглядеть ваш магазин, и внести необходимые корректировки еще до начала кодирования.

  • Фронтенд-разработка

    После разработки дизайна переходим к верстке. Здесь нам поможет Vue.js. Эти технологии позволяют создавать адаптивные и быстрые сайты, которые будут хорошо смотреться на любых устройствах — от смартфонов до десктопов. Мы уделим внимание кроссбраузерности и доступности сайта, чтобы обеспечить максимальное удобство для всех категорий пользователей.

  • Бэкенд-разработка

    Серверная часть нашего интернет-магазина будет реализована на Node.js. Этот мощный и гибкий инструмент позволяет быстро разрабатывать высокопроизводительные веб-приложения. Для работы с базой данных мы выберем MongoDB, которая является одной из наиболее популярных баз данных NoSQL. Она отлично подходит для хранения и обработки больших объемов данных, что особенно актуально для интернет-магазинов. Чтобы упростить взаимодействие с MongoDB, мы используем Mongoose — объектно-реляционное отображение (ORM), которое абстрагирует работу с базой данных и делает ее более удобной и безопасной.

  • Деплой и настройка сервера

    Развертывание проекта на виртуальном сервере. Мы разберем процесс запуска сайта на хостинге, настройки домена и SSL-сертификата для безопасного соединения. После успешной установки и настройки сервера наш интернет-магазин будет готов принимать первых покупателей!

Таким образом, наша серия статей охватывает весь путь от идеи до запуска собственного интернет-магазина. Вы узнаете, как использовать передовые технологии и инструменты для создания успешного веб-проекта, который будет радовать вас и ваших клиентов.

В первую очередь нам необходимо определиться с интерфейсом нашего будущего онлайн магазина. Создавать дизайн мы будем в Figma.

vds

Основы работы в Figma

В этом разделе рассмотрим, как устроена Фигма: создадим первый файл и поработаем с ним.

Установка Figma

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

Image84

Вы можете бесплатно скачать Figma на ПК. Для этого зайдите на страницу загрузки и выберите версию программы для MacOS или Windows.

Также доступно мобильное приложение для iOS и Android. Рекомендуем его использовать для просмотра дизайна мобильной версии вашего проекта.

Интерфейс Figma

После регистрации перед пользователем открывается главная страница Figma:

Image86

Рассмотрим пункты меню:

  1. Аккаунт
  2. Поиск
  3. Недавние файлы
  4. Команда
  5. Доски
  6. Проекты
  7. Корзина
  8. Комьюнити

Давайте рассмотрим каждый пункт подробнее.

Аккаунт

По нажатию на стрелочку откроется список.

Image85

  • Пункт «Theme» изменяет тему Figma. Доступна светлая и тёмная темы и автоматический режим в зависимости от настроек системы.
  • Пункт «Settings» открывает настройки.
  • Пункт «Get desktop app» перенаправит вас на страницу установки программы.
  • Далее указан ваш Community-профиль, он необходим для публикации своих проектов в открытый доступ. Если вы его не регистрировали (это можно сделать здесь), то данного списка у вас не будет.
  • Пункт «Add account» позволяет подключить дополнительный аккаунт Figma для быстрого переключения между ними.
  • Пункт «Log out» завершает сессию аккаунта.

Поиск

Интерфейс поиска выглядит следующим образом:

Image88

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

Недавние файлы

Здесь находятся все файлы в хронологическом порядке.

Image87

Команда

В данном пункте меню вы можете выбрать созданные команды или создать новую.

Image91

Команды позволяют работать над проектом совместно с другими участниками. Это полезно, когда разработчик видит актуальный дизайн, менеджер видит стадии работы над проектом, а заказчик может оставлять комментарии прямо в файле. При нажатии на кнопку «Create new» открывается окно, где необходимо придумать название для команды, что помогает структурировать работу и улучшить коммуникацию между всеми участниками проекта.

Image89

Далее при помощи email вы можете пригласить участников в команду. Данный пункт можно пропустить и добавить участников позже. Для этого нажмите кнопку «Skip for now».

Image95

И в завершение необходимо выбрать тариф.

Image93

Для начала нам подойдет тариф «Starter», для углубленной работы стоит рассмотреть покупку платных пакетов.

Доски

В этом пункте мы можем увидеть все созданные нами доски.

Image100

Сейчас данный пункт пуст, но после создания макета здесь появятся наши файлы.

Проекты

В данном пункте мы можем увидеть все проекты нашей команды.

Image97

Корзина

Здесь мы можем увидеть все файлы, которые мы удалили.

Image102

Комьюнити 

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

Редактор Figma

Design, figjam и слайды — три разных подхода и форматов представления материалов в Figma, каждый из которых имеет свою специфику и область применения.

Design

Design («дизайн») — классический инструмент для проектирования интерфейсов, иконографики, иллюстраций и визуальных элементов. Это основной режим работы в Figma, используемый дизайнерами и UI/UX-специалистами для разработки макетов приложений, веб-сайтов и любых цифровых продуктов. Основные особенности дизайна включают:

  • Создание и редактирование векторных объектов, шрифтов, цветов и слоев.

  • Работу с сетками, компоновкой и интерактивностью прототипов.

  • Совместную работу над проектами командой дизайнеров, разработчиков и менеджеров проектов.

Это наиболее распространенный способ взаимодействия с Figma для большинства пользователей.

Figjam

Термин «Figjam» часто используется среди российских специалистов по дизайну и UX-исследованиям. Этот термин возник от английской фразы foggy jam («затуманенный хаос») и обозначает ситуацию, когда дизайнерская идея запутывается и теряет ясность из-за большого количества итераций, неопределенности требований заказчика или переизбытка вариантов решения проблемы. Сам термин «figjam» относится скорее к процессу работы и возникающим сложностям, нежели к конкретной функциональности программы Figma.

Таким образом, figjam не является самостоятельным инструментом или типом файла в Figma, а описывает типичные сложности, возникающие во время рабочего процесса, такие как трудности принятия решений, конфликты мнений внутри команды или недостаточная ясность целей проекта.

Слайды

Режим «Слайды» в Figma предназначен для быстрого создания презентационных материалов и схем. По сути, это аналог инструментов типа PowerPoint или Google Презентаций, встроенных прямо в интерфейс Figma. Режим слайдов позволяет создавать структурированные презентации, иллюстрирующие этапы проекта, концепции продукта, бизнес-модели, исследования рынка и другие аспекты дизайн-процесса. Основное назначение режима слайдов заключается в представлении результатов работ перед заказчиками, инвесторами, коллегами или широкой аудиторией.

Основные преимущества слайдов в Figma:

  • Легкость интеграции графики и анимаций из режимов дизайна.

  • Возможность вставлять компоненты дизайна непосредственно в слайды.

  • Поддерживает общую экосистему совместной работы и комментирования.

Этот режим особенно полезен, когда проект требует пояснений, демонстрации этапов разработки или аргументации выбора определённых решений.

Итоги сравнения:

Параметр

Design

Figjam

Слайды

Назначение

Проектирование

Описание ситуации

Представление идей

Формат документа

Файл .fig

Не применимо

Файл .fig

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

Дизайнеры

Команда

Руководители, дизайнеры

Основная задача

Макеты и элементы

Анализ трудностей

Пояснения и отчёты

Интеграция

Да

Нет

Да

Примеры действий

Интерфейс сайта

Выбор направления

Презентация проекта

Таким образом, разница между этими тремя понятиями определяется характером задач и этапами процесса проектирования.

В нашем случае мы будем использовать «Design». Для этого перейдем на страницу «Drafts» (доски), наведем курсор на кнопку «+Create» и выберем «Design».

Image103

После создания файла перед нами открывается рабочее пространство с тремя областями: панель слоев, рабочая область и инспектор.

Image104

Для создания объектов используется нижнее меню.

Image105

В данном меню:

  1. Первый пункт — меню выбора режима работы курсора:

Image106

    • Move отвечает за выбор объекта и его перемещение.
    • Hand tool используется для передвижения по доске, заменяется нажатием на колесико мышки.
    • Scale изменяет размер объекта.
  1. Создание Frame, Section и Slice.

Image107

    • Frame — контейнер фиксированного размера для группировки элементов дизайна с возможностью установки границ и фона.

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

    • Slice — специальная область для экспорта отдельных частей макета в виде изображений или файлов определённого формата.

  1. Создание фигур.

Image108

  1. Инструменты для рисования векторов.

Image109

  1. Инструмент для написания текста.

  2. Инструмент для создания комментариев.

  3. Меню асетов и плагинов.

Image74

  1. Dev-режим, платная функция.

Image75

Создание интерфейса магазина

Теперь можно приступить к созданию интерфейса нашего интернет-магазина. 

Главная страница

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

Image76

Теперь мы можем переходить к созданию дизайна. Для начала определите, что необходимо на странице. 

Наша структура будет следующей:

Image77

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

Темная тема:

Image78

Светлая тема:

Image79

Теперь мы можем переходить к созданию макета. Начнём с подготовки компонентов. Создаем Header (меню для магазина). В нашем случае структура меню будет следующая:

Image80

Для поиска иконок воспользуемся плагином Phosphor Icons. Установить его можно из меню Фигмы:

Image81

Откроем данный плагин и найдем иконки для:

  • Изменения темы
  • Локации
  • Корзины
  • Избранных товаров
  • Аккаунта

Image82

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

Image83

Далее для структуризации всех иконок создайте Frame «UI-Kit». В него будем добавлять все загруженные иконки. 

Для выравнивания иконок добавим к Frame свойство Auto layout.

Image19

Создание Header

После создания UI-Kit переходим к созданию Header. Опираясь на шаблон, создаем Frame (фрейм) «Header - light». Структура нашего Frame следующая:

Image21

Элементы в нашем Header:

  • Кнопка переключения темы («Vector»)
  • Frame «Content»:
    • Frame «Location»:
      • Иконка локации («MapPinArea»)
      • Текст «Москва»
    • Frame «Logo»:
      • Frame «Text»:
        • Текст «Online»
        • Текст «Store»
    • Frame «Icons»:
      • Объект для иконки корзины («ShoppingCartSimple»)
      • Иконка для избранных товаров («Heart»)
      • Иконка для профиля пользователя (“Regular/User»)

В данном примере в качестве лого магазина мы используем текст, поэтому каждое из слов пишем на отдельном элементе «Text». По этой причине мы создаем дополнительный фрейм «Text». Если использовать картинку, то ставим ее вместо фрейм «Text».

Переходим к настройке Auto layout для каждого элемента.

Элемент «Location»:

  • Ширина: Hug (по размеру элементов)
  • Высота Fill (заполнить высоту контейнера)
  • Направление в сторону
  • Отступы между элементами 10
  • Выравнивание по центру с левой стороны

Image22

Элемент «Logo»:

  • Ширина: Hug (по размеру элементов)
  • Высота Fill (заполнить высоту контейнера)
  • Направление в сторону
  • Отступы между элементами 0 
  • Выравнивание по центру с левой стороны

Image23

Элемент «Icons»:

  • Ширина: 120
  • Высота Fill (заполнить высоту контейнера)
  • Направление в сторону
  • Отступы между элементами Auto
  • Выравнивание по центру

Image24

Используем ранее составленную палитру цветов и получаем два Header, в светлой и темной теме:

Image25

Теперь переводим наши Header в компоненты.

Image26

Создание поиска и меню быстрой навигации

Составим структуру:

Image27

Ссылки в меню быстрой навигации будут на страницы:

  1. Каталог
  2. Отслеживание заказа
  3. Поддержка
  4. FAQ

Создаем Frame «Search» и создаем структуру:

Image28

Рассмотрим четвертый Frame «Search»: 

  • Ширина: Fill (100% ширины)
  • Высота: Hug (по размеру элементов)
  • Направление в сторону
  • Отступы между элементами Auto
  • Выравнивание по центру
  • Padding 10px

Image29

Рассмотрим Frame «Button»:

  • Ширина: Hug (по размеру элементов)
  • Высота: Hug (по размеру элементов)
  • Направление в сторону
  • Отступы между элементами 8
  • Выравнивание по центру
  • Padding по горизонтали 24, по вертикали 14

Image1

У активной кнопки добавляем Fill с цветом из палитры.

Image2

После всех настроек переводим Frame «Search» в компонент.

Создание виджетов с топ товарами

Составим структуру виджетов:

Image3

В виджете мы будем показывать наши товары, к их созданию мы перейдем позже. Создаем фрейм Widgets внутри которого будут еще два фрейма: Widget и Small Widgets. Рассмотрим структуру фрейма Widget:

Image4

Рассмотрим отдельно каждый элемент.

Первый Frame «Content»:

  • Ширина: 356
  • Высота 232
  • Направление вниз
  • Отступы между элементами 24
  • Выравнивание по центру с левой стороны

Image5

Второй Frame «Content»:

  • Ширина: Hug (по размеру элементов)
  • Высота: Hug (по размеру элементов)
  • Направление вниз
  • Отступы между элементами 24
  • Выравнивание по левому краю

Image6

Frame «Button»:

  • Ширина: Hug (по размеру элементов)
  • Высота: Hug (по размеру элементов)
  • Направление в сторону
  • Отступы между элементами 12
  • Выравнивание по центру
  • Цвет: #7177F8

Image7

Рассмотрим структуру Small Widgets.

Image8

Frame «Content»:

  • Ширина: Hug (по размеру элементов)
  • Высота: Hug (по размеру элементов)
  • Направление вниз
  • Отступы между элементами 18
  • Выравнивание по левому краю

Image9

Frame «Info»:

  • Ширина: Hug (по размеру элементов)
  • Высота: Hug (по размеру элементов)
  • Направление вниз, отступы между элементами 5
  • Выравнивание по левому краю

Image10

Frame «Button»: 

  • Ширина: Hug (по размеру элементов)
  • Высота: Hug (по размеру элементов)
  • Направление в сторону
  • Отступы между элементами 8
  • Выравнивание по центру
  • Цвет: #7177F8

Image42

По аналогии создаем второй Frame. В итоге получаем Frame «Widgets».

Image43

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

Теперь нам необходимо создать товары для нашего онлайн-магазина. 

Мы будем продавать футболки, поэтому переходим в Community и пишем запрос «T-Shirt Mockup». Среди результатов ищем то, что нам подходит большего всего, и по инструкции внутри файла создаем макеты. 

После того как макеты футболок сделаны, нам необходимо их экспортировать. Для этого переходим в инспектор, листаем вниз и выбираем пункт «Export». Далее выбираем необходимый размер и нажимаем кнопку Export. 

В данном интернет-магазине мы будет продавать три футболки:

Image44

Добавление товаров в виджеты

Добавим наши товары в созданный Frame и получаем:

Image45

Теперь создаем такой же Frame для светлой темы сайта:

Image46

Переводим Frame в компоненты.

Создание блока с информацией

Структура блока:

Image47

Информация которую мы будем указывать:

  • Быстрая доставка

    • Доставка по МСК за 24 часа

  • 24 часа на возврат

    • 100% возврат по гарантии

  • Защищенная оплата

    • Твои данные защищены

  • Поддержка 24/7

    • Помощь в любое время

Создайте Frame «Features» и следующую структуру:

Image48

Блок Feature клонируем 4 раза, заменяя значения.

Компонент «Duotone/Package» — это иконка, которую мы добавили проект ранее.

Рассмотрим Frame «Feature»:

  • Ширина: Hug (по размеру элементов)
  • Высота: Hug (по размеру элементов)
  • Направление в сторону
  • Отступы между элементами 16
  • Выравнивание по центру
  • Padding 16

Image49

Создаем остальные три фрейма «Feature» и получаем:

Image50

Создаем из Frame компонент.

Создание блока с товарами

Для начала определимся со структурой блока:

Image51

Создадим Frame «Best Deals» и добавим следующую структуру:

Image41

У «Товара 1» мы покажем информацию о рейтинге, названии, описании, цене, скидке и поставим отметку HOT.

Добавим все элементы и получаем:

Image32

У данного элемента мы не настраиванием Auto layout.

Создадим сетку из 8 товаров. Сетка будет состоять из восьми фреймов «Product». Структура фрейма будет следующая:

Image33

У данного компонента мы также не настраиваем Auto layout.

Добавим все элементы и получаем:

Image34

Клонируем Frame «Product» до необходимого количества.

Настроим родительский Frame для «Product».

Добавим Auto layout. 

  • Ширина 1000 и ограничитель max-width со значением 1000
  • Направление в сторону с переносом на новую строку
  • Выравнивание по центру с левой стороны
  • Все отступы оставим в 0

Image35

Проверяем, что у нас получилось:

7a3b79b4 Eff7 4dcb 9f83 E1f22875ecf8

По аналогии создаем блок для светлой темы:

Image37

Переводим Frame в компоненты.

Создание страницы

Проверим, что все элементы у нас готовы:

Image38

Все страницы мы будем делать внутри Frame, поэтому создаем фрейм и задаем размеры 1440 на 1080 — это эталонные размеры для области контента. Далее необходимо дать название нашему фрейму. Сейчас мы создаем главную страницу, поэтому назовем его «MainPage PC light» («PC» — так как версия для ПК, а «light» — так как светлая тема).

Создаем Frame и добавляем настройки:

Image39

  • Ширина: 20 Hug
  • Высота: 20 Hug
  • Направление вниз
  • Отступы 10
  • Выравнивание по левому углу

Ничего страшного, что наш фрейм стал размером 20 на 20. Добавляем в него созданные элементы:

Image40

По аналогии добавляем темную тему:

Image30

Более подробно посмотреть процесс создания данных страниц можно в видео на Rutube.

Cтраница товара

Используя полученные знания, создадим страницу товара. Структура страницы:

Image31

Создадим страницу для товара «Футболка OnlineStore».

Информация, которую мы добавим:

  • Путь: Главная/Магазин/Мужская одежда/Футболки/Футболка OnlineStore 
  • Оценка: 4.7 (21,671 Оценок)
  • Артикул: A264671
  • Бренд: Tutorial
  • Наличие: В наличии
  • Категория: Футболки
  • Цена: 750 ₽ со скидкой 50%
  • 3 цвета: синий, белый, черный
  • Размерный ряд: XS, S, M, L, XL

Используя эти данные, составим Frame «Product Detail».

Image66

Создадим Frame «path», добавим данные и получим:

Image67

Добавим адаптацию под светлую и темную тему:

Image68

Фрейм «path» остается одинаковым как для светлой, так и для темной темы.

Страница отслеживания заказа

Для того чтобы наши клиенты могли узнать состояние заказа, добавим страницу отслеживания. Ее структура:

Image69

Путь до страницы: Главная/Отследить заказ

Для получения информации о заказе пользователь должен сообщить ID заказа и свой email.

Составим страницу и получим:

Image70

Добавим адаптацию под светлую тему и получаем:

Image71

После проверки данных пользователя будет перекидывать на страницу с активностью заказа. Структура данной страницы:

Image72

Используя макет, создадим страницу:

Image73

И создадим адаптив для светлой темы:

Image63

Страница избранного

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

Image64

Путь до страницы: Главная/Избранное.

Для примера добавим все три товара в список избранного и получим следующую страницу:

Image65

Адаптируем страницу под светлую тему и получаем:

Image56

Корзина

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

Image57

Для примера добавим два товара в корзину:

Image58

Реализуем адаптацию под светлую тему:

Image59

Страница оформления заказа

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

Image60

Составим страницу, ориентируясь на макет, и получим:

Image61

Адаптируем дизайн под светлую тему и получим:

Image62

Далее мы перенаправим пользователя на главную страницу и отправим на электронную почту информацию по заказу.

Админ-панель

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

  • Главная (общая аналитика, последние заказы, самые популярные товары)
  • Товары (просмотр товаров, создание новых, товарный остаток)
  • Заказы (все активные и архивные заказы)
  • Пользователи (все зарегистрированные пользователи)
  • Статистика (выручка за день, неделю, месяц; количество активных заказов; время большей активности; самый популярный товар)

Создадим структуру нашего меню:

Image52

Теперь создадим наше меню в Figma:

Image53

Применим к меню Auto layout и настроим его:

Image54

Далее добавим структуру:

В Frame «Content» находится всё наше меню:

  • Return — возврат в магазин
  • Logo — картинка, в нашем случае текст «OnlineStore | ADMIN»
  • Icons — иконки навигации

Image55

Далее создадим темную тему для меню:

Image90

Переходим к созданию самой страницы. Ее макет выглядит следующим образом:

Image92

Создадим раздел с аналитикой. Его макет:

Image94

Создадим Frame «Activity». Структура и настройки:

Image96

Настройки Auto layout:

Image98

В результате получаем:

Image101

Добавим адаптацию под темную тему:

Image17

Для «Активных заказов» и «Популярных товаров» создадим обычную таблицу:

Image16

Адаптируя, получаем:

Image20

Собираем страницу и получаем:

Image18

Добавим адаптацию для темной темы:

Image13

По аналогии создаем все остальные страницы. В результате получаем следующие страницы.

Страница товаров:

Image12

Страница заказов:

Image15

Страница пользователей:

Image14

Страница аналитики:

Image11

Выгодные тарифы на VDS/VPS в Timeweb Cloud

Заключение

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

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

Хотите внести свой вклад?
Участвуйте в нашей контент-программе за
вознаграждение или запросите нужную вам инструкцию
img-server
21 мая 2025 г.
33
18 минут чтения
Средний рейтинг статьи: 5
Пока нет комментариев