Фронтенд в картинках — просто, наглядно и понятно. Новые знания в компактном формате каждый день.
Присоединяйтесь: @FrontendPortal
Присоединяйтесь: @FrontendPortal
🎂 Мой год перемен
В 27 лет я был в найме, только пробовал себя в менторстве, YeaHub существовал на уровне "в свободное время что-то пилим, одну страницу делаем месяц". На YouTube было 4000 подписчиков, в Telegram — 3000. Только родилась дочь, работы — море, пахал 24/7 без выходных.
Год спустя, в 28, всё иначе.
Я ушел из найма и полностью погрузился в свой проект. Сейчас в нём — 2000 зарегистрированных пользователей, 40 000 посещений за 5 месяцев, ежедневно платформу посещают 500–800 человек. Сеть каналов YeaHub выросла до 6000+ подписчиков. YouTube приближается к 10 000, Telegram — 5200.
За год для учеников я создал полноценный курс-роадмап: от основ HTML/CSS до продвинутых тем вроде Docker и CI/CD. Записал 150+ уроков, собрал базу гайдов и материалов. В мае выйдет бесплатный курс по JS DOM API на YouTube – я продолжаю делиться знаниями бесплатно.
Но главное — люди.
За этот год я обучил (и продолжаю обучать) больше 150 человек. Сообщество учеников и выпускников — уже 130+ человек. Помог трудоустроиться более 30 ребятам. Познакомился с крутыми ребятами — блогерами, менторами, экспертами. Вступил в сильные IT-сообщества. Прочувствовал мощь нетворкинга и силу окружения. Стал лучше, пересмотрел взгляды, прокачал мышление.
А ещё — это самый тёплый день рождения в моей жизни.
Утро началось с 40+ поздравлений от учеников. Жена с дочкой встретили меня с тортиком — не сдержался, прослезился 🥹. Писали коллеги, друзья, знакомые — столько тёплых слов, благодарностей и пожеланий.
Когда тебя так искренне поздравляют, когда благодарят за помощь, вдохновение и поддержку — понимаешь: я на правильном пути.
Я бесконечно благодарен миру за эти возможности, людям — за доверие и помощь, IT — за крутое комьюнити и бесконечный рост.
И знаю: впереди — ещё больше свершений. 💪
В 27 лет я был в найме, только пробовал себя в менторстве, YeaHub существовал на уровне "в свободное время что-то пилим, одну страницу делаем месяц". На YouTube было 4000 подписчиков, в Telegram — 3000. Только родилась дочь, работы — море, пахал 24/7 без выходных.
Год спустя, в 28, всё иначе.
Я ушел из найма и полностью погрузился в свой проект. Сейчас в нём — 2000 зарегистрированных пользователей, 40 000 посещений за 5 месяцев, ежедневно платформу посещают 500–800 человек. Сеть каналов YeaHub выросла до 6000+ подписчиков. YouTube приближается к 10 000, Telegram — 5200.
За год для учеников я создал полноценный курс-роадмап: от основ HTML/CSS до продвинутых тем вроде Docker и CI/CD. Записал 150+ уроков, собрал базу гайдов и материалов. В мае выйдет бесплатный курс по JS DOM API на YouTube – я продолжаю делиться знаниями бесплатно.
Но главное — люди.
За этот год я обучил (и продолжаю обучать) больше 150 человек. Сообщество учеников и выпускников — уже 130+ человек. Помог трудоустроиться более 30 ребятам. Познакомился с крутыми ребятами — блогерами, менторами, экспертами. Вступил в сильные IT-сообщества. Прочувствовал мощь нетворкинга и силу окружения. Стал лучше, пересмотрел взгляды, прокачал мышление.
А ещё — это самый тёплый день рождения в моей жизни.
Утро началось с 40+ поздравлений от учеников. Жена с дочкой встретили меня с тортиком — не сдержался, прослезился 🥹. Писали коллеги, друзья, знакомые — столько тёплых слов, благодарностей и пожеланий.
Когда тебя так искренне поздравляют, когда благодарят за помощь, вдохновение и поддержку — понимаешь: я на правильном пути.
Я бесконечно благодарен миру за эти возможности, людям — за доверие и помощь, IT — за крутое комьюнити и бесконечный рост.
И знаю: впереди — ещё больше свершений. 💪
UI Kit представляет собой систематизированную коллекцию интерфейсных компонентов, которая служит фундаментом для разработки приложений. В современных проектах наличие продуманного UI Kit перешло из категории рекомендаций в обязательное требование по нескольким ключевым причинам.
[Картинка 1: Пример Storybook]
UI Kit — это не просто коллекция кнопок и полей ввода. Это комплексная система, включающая:
- Базовые компоненты интерфейса (кнопки, формы, переключатели)
- Типографику и иерархию текста
- Цветовую палитру с семантическим значением цветов
- Систему отступов и размеров
- Состояния элементов (активное, неактивное, hover, focus)
[Картинка 2 и 3: Дизайн в Figma]
При создании компонентов для UI Kit необходимо придерживаться нескольких фундаментальных принципов
1. Семантическая корректность
Каждый компонент должен максимально точно отражать свою суть на уровне HTML-разметки. Кнопка — это <button> или <input type="button">, ссылка — <a>, поле ввода — <input> или <textarea>. Это важно не только для доступности (accessibility), но и для правильной работы в различных контекстах (например, в формах или при навигации).
2. Полнота свойств
Компонент должен поддерживать все стандартные HTML-атрибуты соответствующего элемента. Для кнопки это включает type (button, submit, reset), disabled, autofocus и другие.
3. Управляемость извне
Компонент не должен содержать внутреннюю логику состояния (где это возможно). Все состояния (активное, неактивное, загружающееся) должны управляться через пропсы. Это делает компонент предсказуемым и легко интегрируемым в любую архитектуру.
4. Принцип открытости/закрытости
Компонент должен быть закрыт для модификаций (его базовое поведение нельзя изменить), но открыт для расширения. На практике это означает:
- Возможность добавления классов через className
- Возможность передачи произвольных атрибутов
- Гибкость в контенте через children
5. Единый источник правды
Изменение компонента в UI Kit должно автоматически отражаться во всех местах его использования. Это требует тщательного проектирования API компонента на этапе создания, чтобы избежать необходимости "ветвления" логики в будущем.
Оптимальная структура для UI Kit в проекте выглядит следующим образом:
src/
ui/
Button/
Button.tsx # React-компонент
Button.stories.tsx # Документация в Storybook
Button.test.tsx # Тесты компонента
Button.module.css # Стили компонента
Input/ # Аналогичная структура для других компонентов
...
styles/
variables.css # CSS-переменные (цвета, отступы, шрифты)
typography.css # Типографика
animations.css # Анимации
global.css # Глобальные стили
Перед разработкой тщательно изучаем макеты и выделяем все варианты кнопок: Варианты по стилю, Размеры, Состояния, Дополнительные требования (иконки, текст).
[Картинка 4: Компонент Button]
При стилизации используем CSS-переменные из дизайн-системы, Для каждого варианта прописываем цвета для всех состояний.
[Картинка 5: CSS-переменные]
Создаем подробные TypeScript-интерфейсы: Объединение с нативными атрибутами button и a, Поддержка всех стандартных HTML-атрибутов, Четкое разделение кастомных и стандартных пропсов
[Картинка 6: Типизация кнопки]
Далее создаем сторисы для всех вариантов: Основной вид, Все состояния, Примеры с иконками, Вариант как ссылки
#ui #storybook #button #react
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Менторство Reactify
🔒 Архив записей менторской программы
Все групповые занятия, лекции и сессии лайвкодинга доступны в нашем закрытом чате-архиве. Здесь собрано 120+ записей, за исключением:
- Персональных мок-собеседований
- Индивидуальных разборов опыта ("прожарок")
- Реальных собеседований учеников
❗️ Эти материалы доступны только в чате с учениками так, как носят личный характер.
В закрытом чате-архиве много записей групповых занятий. Можно готовиться к лайвкодингу, к собеседованиям и изучать сложные темы.
Преимущества архивного чата:
- Доступ по подписке (500 руб./месяц)
- Возможность оценить качество и формат занятий
- Полезно для тех, кто рассматривает менторство
Примеры доступных материалов:
- Лекция по FSD на менторстве
- Групповой лайвкодинг по JavaScript
- Групповой лайвкодинг (Новички)
- Гайд: 80% всего Git & GitHub для работы.
- Гайд по процессам. Отвечаю на вопросы про опыт, по YeaHub
- Лайвкодинг методы массивов
- Лекция по основам JavaScript
- Митап по теме This
- Групповое собеседование
✔️ Хотите понять, подходит ли вам наш формат? Получите бесплатный доступ к закрытому чату на 3 дня
🌐 ПОЛУЧИТЬ ДОСТУП
Все групповые занятия, лекции и сессии лайвкодинга доступны в нашем закрытом чате-архиве. Здесь собрано 120+ записей, за исключением:
- Персональных мок-собеседований
- Индивидуальных разборов опыта ("прожарок")
- Реальных собеседований учеников
❗️ Эти материалы доступны только в чате с учениками так, как носят личный характер.
В закрытом чате-архиве много записей групповых занятий. Можно готовиться к лайвкодингу, к собеседованиям и изучать сложные темы.
Преимущества архивного чата:
- Доступ по подписке (500 руб./месяц)
- Возможность оценить качество и формат занятий
- Полезно для тех, кто рассматривает менторство
Примеры доступных материалов:
- Лекция по FSD на менторстве
- Групповой лайвкодинг по JavaScript
- Групповой лайвкодинг (Новички)
- Гайд: 80% всего Git & GitHub для работы.
- Гайд по процессам. Отвечаю на вопросы про опыт, по YeaHub
- Лайвкодинг методы массивов
- Лекция по основам JavaScript
- Митап по теме This
- Групповое собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
JavaScript: Основы и теория
00:00:00 – Введение: теория и практика JavaScript.
00:00:49 – Способы создания переменных: let, var, const.
00:02:13 – Hoisting (поднятие) и типы данных.
00:03:20 – Примитивные типы данных и NaN.
00:05:40 – Подготовка к собеседованиям с платформой ehab.
Операторы и преобразование типов
00:07:33 – Унарные и бинарные операторы.
00:09:50 – Тернарные операторы и преобразование типов.
00:11:57 – Операторы сравнения и строгое равенство (===).
00:13:43 – Оператор switch как альтернатива if-else.
Функции и замыкания
00:23:06 – Типы функций в JavaScript.
00:26:58 – Стрелочные функции vs обычные функции.
00:27:58 – Замыкания и их применение.
Работа с числами и строками
00:30:11 – Округление чисел (round, floor, ceil).
00:32:57 – Методы строк (toLowerCase, slice, substring).
00:34:32 – Проверка подстроки (includes, регулярные выражения).
Массивы и объекты
00:44:46 – Объекты: хранение и ссылки.
00:46:36 – Клонирование объектов (поверхностное и глубокое).
00:55:05 – Методы массивов (push, pop, map, filter).
Асинхронность и промисы
01:45:12 – Промисы и их состояния (pending, resolved, rejected).
01:48:02 – Методы промисов (all, race, resolve).
01:50:51 – Работа с fetch и запросами.
ООП и прототипы
01:59:20 – Классы и наследование.
02:00:44 – Ключевое слово super и защищенные свойства.
02:02:00 – Создание функции-конструктора Animal.
DOM и события
02:04:24 – Поиск элементов в DOM.
02:07:59 – Фазы событий (захват, цель, всплытие).
02:09:17 – Пользовательские события.
Хранилища и прокси
02:10:28 – localStorage, sessionStorage, cookies.
02:13:03 – MutationObserver для отслеживания изменений DOM.
https://youtu.be/A2P3Gn2_gSY?si=iednvaJ0O502SI-H
00:00:00 – Введение: теория и практика JavaScript.
00:00:49 – Способы создания переменных: let, var, const.
00:02:13 – Hoisting (поднятие) и типы данных.
00:03:20 – Примитивные типы данных и NaN.
00:05:40 – Подготовка к собеседованиям с платформой ehab.
Операторы и преобразование типов
00:07:33 – Унарные и бинарные операторы.
00:09:50 – Тернарные операторы и преобразование типов.
00:11:57 – Операторы сравнения и строгое равенство (===).
00:13:43 – Оператор switch как альтернатива if-else.
Функции и замыкания
00:23:06 – Типы функций в JavaScript.
00:26:58 – Стрелочные функции vs обычные функции.
00:27:58 – Замыкания и их применение.
Работа с числами и строками
00:30:11 – Округление чисел (round, floor, ceil).
00:32:57 – Методы строк (toLowerCase, slice, substring).
00:34:32 – Проверка подстроки (includes, регулярные выражения).
Массивы и объекты
00:44:46 – Объекты: хранение и ссылки.
00:46:36 – Клонирование объектов (поверхностное и глубокое).
00:55:05 – Методы массивов (push, pop, map, filter).
Асинхронность и промисы
01:45:12 – Промисы и их состояния (pending, resolved, rejected).
01:48:02 – Методы промисов (all, race, resolve).
01:50:51 – Работа с fetch и запросами.
ООП и прототипы
01:59:20 – Классы и наследование.
02:00:44 – Ключевое слово super и защищенные свойства.
02:02:00 – Создание функции-конструктора Animal.
DOM и события
02:04:24 – Поиск элементов в DOM.
02:07:59 – Фазы событий (захват, цель, всплытие).
02:09:17 – Пользовательские события.
Хранилища и прокси
02:10:28 – localStorage, sessionStorage, cookies.
02:13:03 – MutationObserver для отслеживания изменений DOM.
https://youtu.be/A2P3Gn2_gSY?si=iednvaJ0O502SI-H
YouTube
ВЕСЬ JavaScript в одном собеседовании. 200 вопросов + 70 задач за 2 часа
Это видео представляет собой структурированный разбор ключевых тем JavaScript, необходимых для успешного прохождения технического собеседования. Формат сочетает теоретические вопросы с практическим решением задач.
JavaScript: Основы и теория
00:00:00 – Введение:…
JavaScript: Основы и теория
00:00:00 – Введение:…
Please open Telegram to view this post
VIEW IN TELEGRAM