В работу не входит

Часто у меня в общении с клиентами задача звучит как: «Нужен дизайн лендинга».

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

В последнем проекте мы обсудили всё с клиентом на созвоне. Ударили по рукам, он переслал преоплату, а я ушёл оформлять бумаги.

В договоре я прописал что входит, и что не входит в работу:

  • создание иллюстраций и иконок;
  • вёрстка,
  • программирование,
  • покупка иконок, картинок, шрифтов за свои деньги.

Прочитав это, клиент ответил: «Погоди, мне нужно, чтобы ты всё сделал под ключ, и иконки тоже, так не пойдёт».

Кажется, что это негативная ситуация. На самом деле нет. Мы ещё ничего не подписали. Хоть деньги он уже переслал, я их никуда не потратил. Проблема вскрылась в начале проекта, никто ничего не потерял. Я могу вернуть деньги сейчас и мы можем разойтись без убытков и конфликтов. Оказывается, это позитивная ситуация.

А ещё причина, чтобы сесть и ещё раз уточнить задачу:

«Раз возник такой вопрос с иконками, хочу узнать: что ещё я должен разработать в проекте? Как вы это видите? Возможно на созвоне мы это не проговорили и недопоняли друг друга. Сейчас подходящий момент, чтобы всё это уточнить, в начале работы.»

Нам нужно доуточнять понимание друг друга, после этого договор можно дорабоатать по новой информации.

А бывает так: дизайнер не написал про то, что не входит в работу. Клиент подумал, что ему сделают набор уникальных иконок. Дизайнер об этом наборе не знает. На выходе конфликт.

Клиент ожидал всё под ключ, дизанер ожидал работу только по дизайну лендинга.

Баги и пожелания Shtab. app

Я начинаю пробовать сервис Штаб и сталкиваюсь с проблемами: не хватает фич и есть баги. В этой заметке я хочу расскзать об этом. Отправлю заметку команде Штаба и надеюсь, они внесут изменения.

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

У меня Windows 10, браузер Chrome. В браузере использую блокировщик рекламы, но для тестов ошибок его выключаю.

1. Сбрасывается выравнивание / баг

Вот тут верхняя картинка была выравнена по левому краю. Я решил вставить нижнюю картинку, верхняя почему-то перескочила в центр. Нижняя загружаются уже 5 минут.

После клика на картинку панель прогресса загрузки пропадает. Видимо не понимает, что картинка уже загрузилась.

2. Появление проектов для трекинга в Windows / фича

Есть такой трекер — TopTracker. При клике на его значок в трее, у нас показывается список проектов. Без папок или категорий. Просто последние использованные 4 проекта. Это круто. Два клика и трек времени пошёл.

Там же кнопки для перехода на сайт и открытие полного окна программы.

Баги и пожелания Shtab.app 1

В штабе при клике на иконку в трее окно показывается по центру, хотелось бы похожего на TopTracker поведения.

Баги и пожелания Shtab.app 2

3. Не считается статистика в Финансы → Зарплата / баг

По статистике видно, что я отработал 2 часа 39 минут.

Баги и пожелания Shtab.app 3

Но в Финансы → Зарплата, всего часов 00:00.

Баги и пожелания Shtab.app 4

4. Не показывается активность у создателя аккаунта / баг

Просто проигрывается анимация и ничего не появляется. Обещали починить дней 5 назад, но пока ничего не изменилось.

Баги и пожелания Shtab.app 5

5. Нет настроек на главном экране

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

Баги и пожелания Shtab.app 6

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

Баги и пожелания Shtab.app 7

6. Мои задачи в кучу / непонятно

В списке «Мои задачи» находятся те, которые я и сам должен делать, и являюсь исполняющим.

Получается я должен:

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

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

Баги и пожелания Shtab.app 8

Оказывается можно отфильтровать их справа, выбрав исполнителя, но в моих задачах хотелось бы это иметь где-то вот рядом. Мол «Мои задачи», «Я контролирую», «Я поручил»

7. Не вяжет сайт и трекер / баг

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

Баги и пожелания Shtab.app 9

8. Не хватает вкладок у проекта / фича

В моём проекте сейчас есть 3 этапа: тексты, дизайн, вёрстка. Я хочу разделить их так, чтобы они не лежали в одном и том же пространстве. Да, есть фильтры. Но хотелось бы иметь 3 вкладки в самом проекте и создавать новые.

Баги и пожелания Shtab.app 10

Так сделано у YouGile — обалденная вещь!

Доработка wordpress сайта с темой для администратора

В этой статье я разберу, как можно дорабатывать wordpress-сайт с темой для администратора.

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

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

Достаточно делать это под администратором:

<? if (current_user_can( 'administrator' )): ?>
     // код, который будет виден только админу
     // можно положить сюда html, тег style и теги script     
<? endif; ?>

Но иногда, когда работаешь с базой, ошибки могут ломать весь сайт, независимо от того, что там стоит условие администратора.

Пользователи заходят и видят вот это:

Доработка wordpress сайта с темой для администратора 11

Не очень круто, и чем больше сайт, тем сложнее: php капризный малый.

К тому же хочется вести версии сайта. Мой сайт существует лет 6−7. И за это время сменилось 9 версий сайта. Я за эти 9 версий делал много крутых штук на сайте, а потом вырезал за ненадобностью. Но сейчас они могут мне понадобиться, а их уже нет.

Вот это хочется избежать. Пусть все 9 версий будут доступны мне в любой момент времени

Решение

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

Это удобно, так как можно делать версии, мои темы называются вот так:

Доработка wordpress сайта с темой для администратора 12

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

Какой порядок действий

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

1 шаг — дублируем тему

Я пользуюсь программой FTP, вы пользуйтесь своими инструментами. Нам надо зайти в wp-content/themes/ и продублировать тему.

Доработка wordpress сайта с темой для администратора 13
Дублирую тему в WinSCP

После копирования темы не забудьте в новой теме зайти в styles.css и поменять название темы:

Доработка wordpress сайта с темой для администратора 14

Можно подумать, что темы раздуют ваш хостинг и место быстро закончится — нет и ещё раз нет. Темы содержат только файлы для оформления. Максимум изображения/иконки для самой вёрстки. Все остальное лежит в других местах Wordperss и не дублируется вместе с темой.

Доказательство:

Доработка wordpress сайта с темой для администратора 15

2 шаг — добавить плагин

Нам нужно попасть в папку wp-content/plugins. Создать там папку swith-theme и внутри создать файл swith-theme.php c таким содержимым:

<?
/*
Plugin Name: Отдельная тема для администратора
Description: Плагин изменяет тему для администратора.
*/

// вешаем на plugins_loaded, чтобы можно было определить пользователя
add_action('plugins_loaded', 'switch_theme_for');
function switch_theme_for(){
	// условия только для администраторов   
	if(!current_user_can('manage_options'))
		return;
	add_filter( 'template', 'custom_load_template' );
	add_filter( 'stylesheet', 'custom_load_template' );
}

/* Пишем тему, которая будет использоваться для администратора. 
Для юзеров будет использоваться та, что установлена на момент включения плагина */
function custom_load_template(){
	return 'THEME_NAME';
}

3 шаг — пишем название темы в плагин и активируем его

Строку 'THEME_NAME' нужно поменять на название вашей продублированой темы. У меня получилась вот такая строчка: return 'portfolio-v7.4'; Я копировал свою тему 7.3 и переименовал её на 7.4, а затем заменил название в коде.

Доработка wordpress сайта с темой для администратора 16

Так нужно будет делать каждый раз.

После этого переходите в список плагинов и активируйте его в списке

Доработка wordpress сайта с темой для администратора 17

4 шаг — переключаем тему для всех

Представим, что вы добавили что-то в коде и все протестировали. Теперь надо менять поставить её для всех.

Для этого нам нужно отключить плагин: «Отдельная тема для администратора"переходите в Внешний вид → Темы.

Почему это нужно делать? Когда вы поставите новую тему для себя, админка будет показывать так, якобы тема активна для всех. А как можно активировать уже активированную тему? 🙂

Когда мы отключим плагин, тема для администратора перестанет быть активной и мы сможем её активировать.

Доработка wordpress сайта с темой для администратора 18
Список моих тем

Курочка KFC в дизайне

Вчера были в KFC. Сидим в каталоге товаров в приложении и выбираем. Назаказывали на большую компанию.

Я думаю: «во мы курицы набрали».

Cижим кушаем, мне не даёт покоя мысль: «мы сидим едим курицу и тесто, просто в разных вариациях, но не стали бы в таких объёмах есть одно блюдо».

И тут я уловил связь с моей жизнью.

Я будучи верстальщикоv и дизайнером бывало разочаровывался во фрилансе. Бывали дурацкие месяца и хотелось прям уйти из это области, как я ушел из вёрстки в одно время.

Теперь я понимаю, что нужно со своими навыками проделывать то, что делает с курицей и тестом KFC — переупаковывать как курочку и тесто.

Если что-то не так с продвижением навыков, может стоить их переупаковать? Как курочку в KFC

У меня могут не заказать дизайн лендинга, а вот дизайн для Getcourse с чеком в 2−3 раза выше этого лендинга — да запросто. Javascript услугу не купят, я вот набрать скриптов в нашем интернет-магазине — пффф, легко.

А разница-то невелика.

Последние 2−3 дня сижу и изучаю свой опыт на предмет вот таких переупаковок. И озознал — сколько же опыта пропадает зря. В заметках десятки полезных скриптов, инструкций, решений просто так пылятся. На рынке десятки применений дизайнера.

Мораль поста — возьмите свои навыки и сделайте из них линейку как у KFC: нагетсы, твистер, бургер, крылышки, стрипсы, ножки.

Навык тот же, переупаковываем в разных вариациях.

#9 Прокатиться на лошади

Никогда раньше не ездил на лошади и решил попробовать. Меня это всегда завораживало

Оборудование

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

#9 Прокатиться на лошади 19

Стоимость

Одно занятие стоит 600 рублей. Занимаешься по началу с специалистом, потом уже сам.

Первый заезд

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

Было не сложно, специалист показывал что делать, как делать и всё объяснили. Пссле первого занятия задница болит около суток 🙂

#9 Прокатиться на лошади 20

Осознание

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

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

Потом я зашел в конюшню и увидел вот это. Небольшое окошко и комнатка 3−4. И тут они по пол-дня ждут, когда их выведут на улицу. Мне было тошно на это смотреть.

#9 Прокатиться на лошади 21

Я считаю, что у лошадей должна быть вот такая «комната»:

Красивая лошадь в поле - обои для рабочего стола, картинки, фото

Я понял, что я не хочу инвестировать в это свои деньги.

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

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

Как делал раньше

Я пользовался костылём — разрывом страницы.

Как сделать подстраницу для произвольного типа записей в wordpress 22
Так выглядит разрыв страницы

Недостатки такого решения:

  • Url будут нечитабельными. Каждый разрыв страницы в url будет идти цифрой: /1, /2, /3. А я хочу, чтобы это были нормальные url: /logo, /process, /mobile
  • Всё в одной странице. Если вы создадите таких 5−6 разрывов с кучей контента, ваша админка начнёт загибаться.
  • Если же вы начнёте создавать страницы отдельно и связывать их допустим ACF — в списке страниц они могут быть далеко друг от друга.

Задача

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

Выглядеть должно примерно так:

Как сделать подстраницу для произвольного типа записей в wordpress 23

Сделать так, чтобы можно было делать подстраницы, в решении этого мне нужно:

  • нормальные url, которыми я могу управлять
  • разделить страницы на разные, чтобы избежать нагрузки на админку
  • чтобы подстраницы были связаны с родительскими страницами в списке

Решение

Наше решение состоит из нескольких шагов

  1. Поменять параметры в создании произвольного типа записи
  2. Обновить постоянные ссылки
  3. Выбрать родительскую страницу у нескольких страниц
  4. Вывести подстраницы на родительской страницы
  5. Вывести подстраницы на каждой подстранице

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

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

    register_post_type('projects', array(
        'label'  => null,
        'labels' => array(
            'name'               => 'Проекты', // основное название для типа записи
            'singular_name'      => 'Проект', // название для одной записи этого типа
            'add_new'            => 'Добавить проект', // для добавления новой записи
            'add_new_item'       => 'Добавление проекта', // заголовка у вновь создаваемой записи в админ-панели.
            'edit_item'          => 'Редактирование проекта', // для редактирования типа записи
            'new_item'           => 'Новый проект', // текст новой записи
            'view_item'          => 'Смотреть проект', // для просмотра записи этого типа.
            'search_items'       => 'Искать проект', // для поиска по этим типам записи
            'not_found'          => 'Не найдено', // если в результате поиска ничего не было найдено
            'not_found_in_trash' => 'Не найдено в корзине', // если не было найдено в корзине
            // 'parent_item_colon'  => '', // для родителей (у древовидных типов)
            'menu_name'          => 'Проекты', // название меню
        ),
        'description'         => '',
        'public'              => true,
        'publicly_queryable'  => true, // зависит от public
        'exclude_from_search' => false, // зависит от public
        'show_ui'             => true, // зависит от public
        'show_in_menu'        => true, // показывать ли в меню адмнки
        'show_in_admin_bar'   => true, // по умолчанию значение show_in_menu
        'show_in_nav_menus'   => true, // зависит от public
        'show_in_rest'        => true, // добавить в REST API. C WP 4.7
        'rest_base'           => null, // $post_type. C WP 4.7
        'menu_position'       => 4,
        'menu_icon'           => 'dashicons-format-gallery',
        'capability_type'   => 'page',
        //'capabilities'      => 'post', // массив дополнительных прав для этого типа записи
        //'map_meta_cap'      => null, // Ставим true чтобы включить дефолтный обработчик специальных прав
        'hierarchical'        => true,
        'supports'            => array('title', 'thumbnail','comments', 'editor', 'page-attributes','post-formats', 'excerpt', 'revisions', 'custom-fields'),
        'has_archive'         => false,
        'taxonomies'          => array('projectcategory'),
        'rewrite'             => true,
        'query_var'           => true
    ) );

Для нас важны параметры:

  • parent_item_colon
  • show_in_rest
  • rewrite
  • capability_type
  • hierarchical

Если у вас таких нет, скопируйте их из моего кода.

Что менять в коде:

  • parent_item_colon — он должен быть либо закомментирован, либо там должно быть что-то написано. Если будет просто пустое — он не покажет блок выбора родительской страницы
  • show_in_rest => true
  • rewrite => true
  • capability_type => true
  • hierarchical => true

Обновить постоянные ссылки

В админке переходим в: «Настройки → Постоянные ссылки». И нажать кнопку «Сохранить изменения».

Как сделать подстраницу для произвольного типа записей в wordpress 24

Выбрать родительскую страницу у нескольких страниц

Я создал тестовый проект и несколько подстраниц. У подстраниц выбрал родительскую страницу.

Как сделать подстраницу для произвольного типа записей в wordpress 25
Как сделать подстраницу для произвольного типа записей в wordpress 26

Вывести подстраницы на родительской странице

Теперь нам надо вывести их на родительской странице.

Будем использовать функцию get_childen, подробнее о ней можно почитать на WP Kama.

Иду в код single-project.php, у вас может быть свой шаблон детальной страницы.

Как сделать подстраницу для произвольного типа записей в wordpress 27

У меня уже тут стоит костыль от прошлого решения. Его мы и перепишем.

Вот такой код я скопировал с WP Kama, надо в post_parent поставить айди поста и вывести ссылки в цикле.

$childrens = get_children( [
	'post_parent' => 0, // попеняем на $post->ID
	'post_type'   => 'any',
	'numberposts' => -1,
	'post_status' => 'any'
] );

if( $childrens ){
	foreach( $childrens as $children ){
		// вывыдем ссылки
	}
}

Вот, что у меня получилось, пришлось попотеть, чтобы учесть всё. Не забудьте заменить projects на свою таксономи.

<?
  $parents = get_post_ancestors($post->ID); // выводим родителей страницы
  $parentPost = get_post($parents[0]); // выводим пост в отдельную странцу

  $childrens = get_children(  [
    'post_parent' => (!empty($parents)? $parents[0] : $post->ID), // если массив родителей не пустой — 
    'post_type'   => 'projects', // здесь вставьте свою таксономию
    'numberposts' => -1,
    'post_status' => 'any'
  ] );
?>


<!-- Выводим заголовок родительского поста, если он есть -->
<h1 class="case-title">
  <?if(!empty($parents)):?>
    <? echo $parentPost->post_title;?> <!-- Заголовок родителя -->
  <?else:?>
    <?the_title();?> <!-- Заголовок поста -->
  <?endif;?>
</h1>

<!-- Если нет родителей и детей, не выодим блок с ссылками -->
<?if (!empty($chilrens) & !empty($parents)):?>

  <!-- Контейнер с ссылками подстраниц -->
  <div>
    <!-- Выводим ссылку описание: 
            если у проекта есть родитель — выводим его ссылку.
            если у проекта есть дети — выводим его собственную ссылку -->
    <?if (!empty($parents)):?>
      <a href="<?=get_permalink($parents[0]);?>" class="project-page-tab js-tab-description">Описание</a> 
    <?elseif (!empty($childrens)):?>
      <a href="<?=get_permalink($post->ID);?>" class="project-page-tab js-tab-description">Описание</a> 
    <?endif;?>

    <!-- Выводим ссылки подстраниц, если есть -->
    <?if( $childrens ): ?>
      <? foreach( $childrens as $children ): ?>
        <!-- Выводим ссылку -->
          <a href="<?=get_permalink($children->ID);?>"><?=$children->post_title;?></a> 
      <?endforeach;
    endif;?>
  </div><!-- end контейнер с ссылками --> 

<?endif;?>

Что получилось в итоге

Обратите внимание на url.

Решение подсказал Дмитрий Воробьев.

Предложения по улучшению сайта arti.ru

Эта статья — просьба оценить сайт на предмет недочётов.

Первый блок

Предложения по улучшению сайта arti.ru 28

Непонятно, что вам доверяют 26 лет. Мы продаём избавление от проблем в конкретной области. В данный момент кажется, что вы продаёте доверие. В тексте не раскрыта ваша польза.

Я вижу такое решение:

Предложения по улучшению сайта arti.ru 29

Здесь мы чётко показали в заголовке, что занимаемся не ремонтом, а забираем на себя все процессы. Снизу прописали процессы простым языком. Также добавили кнопку СTA.

Всё спрятано

Скриншоты блоков, где важная информация скрыта от пользователя. Чтобы это увидеть, надо пролистать слайдер или навести на элементы. Так никто не будет делать. Надо всё вытаскивать.

Самая естественная навигация пользователя по странице — прокрутка колесиком. Её не нужно вспоминать, в ней не нужно разбираться. Просто крути колесико и смотри.

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

Предложения по улучшению сайта arti.ru 30

Скрыты важные факты о компании

Предложения по улучшению сайта arti.ru 31

Сложно разобраться, что это слайдер и как он работает.

Предложения по улучшению сайта arti.ru 32

Сложно понять, что на это можно наводить

Предложения по улучшению сайта arti.ru 33

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

Предложения по улучшению сайта arti.ru 34

По краям достаточно места для показа сертификатов, не вижу смысла складывать их в стопку

Сложно написано

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

Текст написан общими фразами: максимально полное всеобьемлеющее комплексное решение для вашего бизнеса. Но я так и не понял, что вы делаете.

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

Чтобы это было понятно и мне, и продавцу в магните и руководителю IT-отдела. От простоты текста вы не потеряете в авторитете. Как раз таки сложно написать простыми словами.

Предложения по улучшению сайта arti.ru 35
Предложения по улучшению сайта arti.ru 36
Предложения по улучшению сайта arti.ru 37

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

Пара примеров ниже.

Плохо

  • Обеспечение составным частями производства печтаных материалов
  • Мы создали уникальный продукт для вашего бизнеса — максимально полное комплексное решение для вашей IT компании.

Лучше

  • Будем вовремя закупать материалы для печати
  • Разработаем макеты документов; закупим бумагу и чернила; проследим за работоспособностью оборудования; соберем IT отдел для работы с печатью.

Главный герой обложки

Этот пост — фиксирование совета Бюро Горбунова про главного героя знака.

Сейчас мы с дизайнером разрабатываем обложки для проекта Getscipt.ru. Один из товаров — маска для номера телефона. Вот его обложка сейчас. Нам она не нравится и мы хотим её редизайнить.

Главный герой обложки 38

Смотрю что сделал дизайнер:

Главный герой обложки 39

Смотрю и не понимаю, кто тут «главный герой знака»? Что мы продаём? Форму в целом, кнопку или поле ввода? А ведь обложка это как иконка. Надо быстро понять, что товар даже не читая заголовок.

Чтобы дать это понимание, надо удалить лишнее и показать процесс:

Главный герой обложки 40

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

Главный герой обложки 41

Как скопировать компоненты на другую страницу в Figma

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

Будьте осторожны, при таком копировании слетают все текстовые стили

Инструкция внизу

Как скопировать компоненты на другую страницу в Figma 42

Я разрабатываю продукт, где есть версии. Дизайн продукта на14 страниц. Все страницы в этом продукте используют компоненты и стили.

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

Сложность

Что делать, когда нужна будет вторая версия продукта? Я как раз на пороге второй версии. Я думал снизу страниц делать её вторую версию.

Как скопировать компоненты на другую страницу в Figma 43
Версии страниц в столбик. Сверху первая версия, снизу вторая.

Но дело в том, что во второй версии может измениться шапка, кнопка и цвет ссылок. Что делать в этом случае? Раздувать фрейм с компонентами. Но через 10 версии этот файл будет с трудом открываться из-за объёма.

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

Решение

Мы продублируем страницу, скопируем нужные блоки и их мастер-компоненты и вставим это на созданной странице в основном файле.

Инструкция

Чтобы провернуть этот трюк, нам сначала нужно продублировать весь файл. Да, даже если нужно откопировать часть файлов и их компоненты, надо всё равно копировать весь файл.

  1. Идём дублировать проект. Кликаем на стрелоку рядом с названием и нажимаем Duplicate.
Как скопировать компоненты на другую страницу в Figma 44

2. После открытия нового файла скопируйте там нужные элементы и компоненты. Если вы хотите чтобы они были связаны — надо скопировать и мастер-компонент и дочерние компоненты. Я например скопировал всё.

Как скопировать компоненты на другую страницу в Figma 45

3. Вставить их на новой странице. Теперь они свяжутся и будут отделены от тех, что лежат на соседней странице.

4. Страницу-дубликат можно удалить.

Демо-видео решения

На случай, если не понятно, что и как делать — показываю в видео.