Компонентный подход в вёрстке: подробный разбор для джунов и сочувствующих

Компонентный подход в вёрстке: подробный разбор для джунов и сочувствующих

Объёмы компонентов и их особенности

Компоненты бывают разные по объему. В одних может быть много элементов, а в других — всего один. Порой сложно решить, как делить интерфейс: на мелкие или на крупные детали.

Как делить интерфейс, решает разработчик. Принцип один — быстрее строить интерфейс из крупных строительных блоков, поэтому, как только видите что-то, что потенциально может быть объединено в конструкцию, подходящую для повторного использования, — объединяйте её в компонент. Мы умышленно пока не говорим, как это делать в коде

Сначала важно, чтобы вы поняли принцип стремления к повторному использованию разных частей интерфейса

Примеры комплексных компонентов:

  • Шапка и подвал сайта будут использоваться на всех страницах. Как бы они ни были сложны — это компоненты.

  • Форма обратной связи может появляться на разных страницах — это компонент.

  • Карточка товара, статьи или услуги — это тоже компонент.

  • Всплывающее окно с разным содержимым — это компонент.

  • Входная секция с заголовком в статью — это компонент.

Примеры небольших компонентов:

  • Кнопки одинакового вида

  • Поля ввода

  • Иконки с одинаковыми свойствами

  • Заголовки с повторяющимися свойствами

  • Абзацы

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

Базовые и расширенные функции Notion для специалиста

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

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

Базовые функции Notion

Иерархия страниц 

На панели слева – все страницы, которые есть у пользователя. Их можно удалять, создавать новые. Каждый сам продумывает темы.

Notion – конструктор страниц: главные блоки – слева на панели, в них можно создавать подстраницы. Это не монолитная конструкция: страницы можно перемещать, объединять, связывать между собой, удалять. 

Так выглядит боковая панель

Сверху вниз: быстрый поиск, уведомления, настройки, важное, личные страницы, шаблоны, импорт и корзина

Блочная система 

Если вы хотите создать папку на компьютере, то просто кликаете в любом нужном месте. В Notion так нельзя: вы работаете через блоки. Чтобы совершить действие на странице, нажмите на + и выберите действие из списка. 

Текст можно набирать сразу, а не нажимать на +. Поначалу может быть не так удобно писать тексты, как в Google Docs, потому что в Notion каждый новый абзац – новый блок, а не единый текст. У вас не получится выделить часть одного абзаца и часть другого: в Notion блок – это самостоятельный элемент страницы. Зато блоки удобно двигать, переносить части текста вверх или вниз.

Так выглядит работа с текстом в notion

Создать таблицу в Ноушен

Сила Notion – базы данных. Но пользователь может работать в них, как в таблицах, если нет желания или времени.  

Обычная таблица – набор строк и колонок. База данных – это много интерактивно расширяемых таблиц, которые связаны друг с другом.

В Notion каждый добавленный в базу данных элемент может быть отображен как отдельная страница. Еще можно связывать сущности различных баз данных между собой. В базе данных вы можете не только хранить информацию, но и отображать, группировать, анализировать, выводить, суммировать, применять к ним различные алгоритмы с помощью формул, схожих с формулами Excel.

Больше функций приложения Notion

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

Освойте базы данных 

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

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

Теперь меняйте формат вывода данных: из таблицы в канбан-доску, список или календарь. Сортируйте, устанавливайте фильтры. 

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

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

Дизайн

По умолчанию иконки – обычные смайлики. Хотите стильные и минималистичные — можно взять свои, например, скачать на Tilda или с Notion.vip. 

Меняйте положение текста и шрифт. Выберите темную или светлую версию  

Продвинутые функции Ноушен

Advanced-функции Formula, Relation и Rollup нужны для работы с базами данных.  

Математические формулы – это сложно. Но опыт в Excel и знание математических функций помогут разобраться. Фрилансер сможет и без них организовать работу. Но формулы частично автоматизируют Ноушен, как в примере: 

Эта формула Бена Смита поможет фрилансеру посчитать количество часов, которое он работал

За этим важно следить, чтобы рассчитать ставку за час. Можно устанавливать зависимость между базами

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

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

Роллап помогает сделать вычисления в базе данных на основе данных другой таблицы.


Пример, как можно использовать свойства «связать» и «роллап». В первом столбике указана финансовая цель. Второй связали с таблицей клиентов. В третьем посчитали с помощью роллапа, сколько они заплатили за месяц

Подробный обзор функций Notion есть у популярного блогера Насти Кей:

Что такое Notion

Notion – приложение для работы с информацией, организации личных и рабочих дел.  

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

Разработчики добавили необходимые инструменты: базы данных, редактор текста, математические формулы, списки, канбан-доски. Как в игре The Sims можно построить дом мечты, так в Notion — построить идеальное приложение. 

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


Так выглядит приложение, когда его впервые открываешь. Русскоязычной версии нет

За пределами вёрстки. Как компоненты работают в фреймворках

Перед тем как говорить о принципах вёрстки, позволяющих создавать компоненты, полезно увидеть практику применения компонентного подхода в его максимальном воплощении — в компонентных фреймворках. Это позволит сформировать картину результата, первым этапом получения которого является вёрстка.

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

В видео показано, как из одного проекта с именем копируют папку с компонентом во второй проект с именем . После этого остаётся только импортировать компонент в страницу, вставить в нужное место и дописать настройки, определённые в компоненте. На деле переиспользование в новом проекте выглядит похоже на HTML-теги, но вместо тегов используют целые компоненты. Вот такой код автор вставляет в новый проект:

Так на странице появляются два компонента с выпадающим по нажатии на кнопку текстом.

В других библиотеках повторное использование может быть ещё проще: в Vue.js или Svelte весь код компонента хранится в одном файле со специальным расширением. Этот файл содержит и стили, и разметку, и функциональность. Поэтому перетаскивать из проекта в проект приходится не папку с компонентом, а всего один файл.

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

После этого они превращаются в интерфейс. Это реальность современной разработки. Одни люди составляют библиотеки компонентов, другие их используют.

Ограничения компонентного подхода в HTML и CSS

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

Получается, что реализовать компоненты на чистом HTML и CSS невозможно. Нужны дополнительные программы, способные вставить отдельный кусок HTML-кода в общее полотно страницы. Такие программы называются сборщиками или бандлерами. Кроме сборщика для реализации компонента потребуется ещё одна программа — шаблонизатор. Она позволит создавать на HTML основу для контента, а сам контент помещать внутрь тегов при вызове компонента в нужном месте. Работает это примерно так:

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

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

Компоненты и элементы

Компоненты — это обычно набор элементов. Например, компонент «Форма» состоит из элементов: заголовок, поле ввода, текст лейбла и кнопка.

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

На этой странице есть две очень похожие друг на друга кнопки: 

Кнопка в шапке и кнопка в форме отличаются лишь размерами и цветом текста, но, скорее всего, у них разная функциональность

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

Элементы большого компонента — не всегда другие компоненты. Если какой-то элемент используется только в контексте конкретного компонента и, скорее всего, не будет использован нигде больше — это просто элемент.

Логотип справа из этого скриншота, скорее всего, встретится в интерфейсе не раз, а вот рука с указателем на него — это что-то специфичное для подвала сайта

Как выглядит компонентный подход в деле

В процессе вёрстки более или менее сложного интерфейса в дизайне повторяются одни и те же элементы: кнопки, всплывающие окна, карточки, списки. Они выглядят одинаково на разных страницах сайта или просто в разных его зонах. Это и есть компонентный подход к интерфейсам.

Пользователи любят предсказуемый интерфейс. Когда они привыкнут к поведению какого-то элемента, им будет проще использовать аналогичный в другом месте.

Как в этом примере:

​​При наведении на каждую клетку сайта caniuse.com появляется тултип с информацией. Каждая клетка ведёт себя одинаковым образом, а каждый тултип похож на другой. И клетка, и тултип — это компоненты интерфейса.

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

Зачем выбирают компонентный подход

Разработка подавляющего числа продуктов ведётся в духе компонентного подхода. Как и самые популярные фреймворки и библиотеки строятся на его принципах. Разработка современного продуктового фронтенда в основном связана с такими технологиями, как React, Vue.js, Angular или Svelte, а это всё фреймворки с компонентным подходом. 

Компонентный подход к разработке интерфейса — путь экономии в разработке. Собрав систему компонентов однажды, разработчики уменьшают рутину. Одни и те же кнопки, контроллы (элементы управления) и даже крупные блоки сайта не приходится писать заново. Они просто лежат в библиотеке и ждут, когда разработчик скопирует заготовку и вставит её в нужное место.

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

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

Коротко фрилансерам о Notion

Заказать разработку приложения для себя стоит от 200 тысяч рублей. Или можно потратить несколько вечеров на кастомизацию Notion и получить почти собственное приложение.

  • Notion – программа, где фрилансер может хранить всю информацию о проектах и заказчиках, вести задачи, контролировать доходы и расходы, работать с данными. 
  • Все процессы настраивает сам пользователь, автоматически ничего не работает. Приложение подойдет тем, кто любит разбираться в программах, инструкциях, собирать виртуальный конструктор данных. 
  • Сила Notion в возможности выстраивания иерархии страниц и работы в базах данных. Из приложения можно сделать свою википедию.
  • В Notion нет русифицированной версии. Но онлайн-переводчик поможет разобраться.
  • Бесплатной версии хватит, если не собираетесь хранить больше 5 МБ файлов. Тарифы стартуют от $4 в месяц. Цена для командной работы — от $8. 
  • Есть сложные функции для работы с базами данных: Formulas, Rollup, Relation. Ими можно не пользоваться, если нужен просто продвинутый планер или электронный блокнот.
  • В интернете есть обучающие материалы про Notion. Новички могут начать с шаблонов – их можно найти в самом приложении или в интернете. Вы можете начать с шаблонов автора этой статьи.
  • Чтобы вести Notion эффективно, нужно ввести это в привычку.


У меня есть курс о том, как правильно и интересно вести телеграм-канал и продвигать его: покупайте здесь всего за 7200 рублей.

Фишки, чтобы упростить работу в Notion

Notion – это сложно. Но вот некоторые способы упростить работу в приложении: 

Шаблоны

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

Веб-клиппер 

Установите расширение для Google Chrome или Mozilla Firefox и сохраняйте любую страницу из интернета в Notion: статьи, цитаты, исследования и изображения. Для Safari расширения нет. 

На телефон устанавливать ничего не надо: сразу «делитесь» с приложением ссылкой. 

Бэкап

Чтобы экспортировать рабочую область, найдите «Export All Workspace Content» в настройках. 

Получить данные можно в Markdown&CSV и HTML бесплатно, а в платной версии можно и в PDF.

Перевести Notion на русский 

Чтобы поменять язык в Notion, можно установить расширение-переводчик для Chrome и открывать приложение в браузере. 

Абзацы и блоки

Выше мы описывали проблему: при нажатии Enter новый абзац текста становится новым блоком. Сочетание Shift+Enter делает абзац, но не переносит текст в новый блок. 

Открыть еще окна в Notion 

Открыть второе и последующие окна в программе на Macbook можно через сочетание command + значок страницы, которую хотите открыть рядом. 

Горячие клавиши в Ноушен

Пользуйтесь горячими клавишами, как в Google Docs. Вот здесь перечислены команды, а еще они всплывают как подсказки в самом приложении.

Понравилась статья? Поделиться с друзьями:
Kinoteka
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: