CodeBase | Frontend
2.14K subscribers
381 photos
150 videos
5 files
569 links
Все самое интересное и полезное у нас 😎

Контакт: @Filgood777 (реклама, сотрудничество)
Download Telegram
🟢 SAAS 🟢

⚡️ Sass — один из самых продвинутых и надежных CSS препроцессоров, пользующихся высокой популярностью среди опытных специалистов.

🟢 Возможность совместимости с различными версиями CSS позволит вам использовать любые CSS библиотеки в вашем проекте.
🟢 CSS препроцессоры, обладающие таким богатым функционалом, как Sass, являются редкостью.
🟢 Sass является одним из самых опытных CSS препроцессоров, который накопил множество знаний за свою долгую историю.
🟢 Удобство использования Sass фреймворков, таких как Bourbon, значительно облегчит жизнь разработчику. Мы также используем Bourbon в определенных выпусках Джедая верстки при работе с Sass.
🟢 Синтаксис Sass предлагает выбор между двумя вариантами: упрощенным (SASS) и более похожим на CSS (SCSS), чтобы каждый мог выбрать наиболее удобный.

🔗 Посмотреть урок [34:43]

CodeBase | Frontend | #обучение #sass
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
🟢 Макет cайта школы серфинга: Wawe 🟢

🔵 Технологии: HTML/CSS, JS
🔵 Страницы: Одностраничный

🔗 Ссылка на макет

CodeBase | Frontend | #макет
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ Эффект наведения с подсветкой ⚡️
 
🟣Светящийся эффект наведения на карточках, реализованный с использованием CSS.

🔗 Ссылка

CodeBase | Frontend | #html #css
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15
⚡️Приложение для поиска фильмов с помощью React (с хуками) ⚡️

➡️ Чему вы научитесь

➡️ Создавая данное приложение, вы улучшите навыки работы с React, использовав новые хуки API.

➡️ Проект включает в себя компоненты React, разнообразные хуки, взаимодействие с внешним API и стилизацию с помощью CSS.

➡️ Стек технологий и особенности

🟢 React с хуками
🟢 create-react-app
🟢 JSX
🟢 CSS

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

Если понравился пост, добавь 🔥🔥🔥


🔗 Ссылка на проект

CodeBase | Frontend | #react #project
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥74
🖥 Lucide Icons представляет собой привлекательный и единый набор иконок для веб-приложений.

✔️ Установка

npm i lucide

➡️ Этот проект является форком проекта Feather Icons и управляется сообществом, полностью открытым для использования.

➡️ Lucide постоянно расширяется новыми иконками, при этом сохраняя оригинальный минималистичный дизайн.

Понравился пост? Добавь 🔥🔥🔥

CodeBase | Frontend
| #icons
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤‍🔥1🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ Эффект волн - очень привлекательная анимация логотипа.

🔵 Реализована с использованием SCSS и JavaScript.

🔗 Ссылка

CodeBase | Frontend | #scss_js
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥5👍3
⚡️ componentWillUnmount ⚡️

➡️ Этот метод вызывается прямо перед удалением компонента из DOM. Это важное место для выполнения задач по очистке, таких как остановка таймеров, отписка от событий или освобождение ресурсов для предотвращения утечек памяти.

🗣 Пример кода:

jsx
import React, { Component } from 'react';

class TimerComponent extends React.Component {
constructor() {
super();
this.state = {
seconds: 0,
};
this.timer = null; // Инициализация таймера
}
// При монтировании компонента, запускаем таймер
componentDidMount() {
this.timer = setInterval(() => {
this.setState({ seconds: this.state.seconds + 1 });
}, 1000); // Обновление каждую секунду (1000 миллисекунд)
}
// При размонтировании компонента, очищаем таймер, чтобы избежать утечки памяти
componentWillUnmount() {
clearInterval(this.timer);
}
render() {
return (
<>
<h1>Timer Component</h1>
<p>Прошедшее время: {this.state.seconds} секунд</p>
</>
);
}
}
export default TimerComponent;


TimerComponent класс инициализирует состояние seconds для отслеживания времени. В componentDidMount устанавливается таймер, а в componentWillUnmount он очищается. Таймер обновляет время каждую секунду. Компонент отображает прошедшее время. Очистка таймера в componentWillUnmount предотвращает утечки ресурсов.

Понравился пост? Добавь 🔥🔥🔥


CodeBase | Frontend | #react_js
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥3🥴1
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ QUOKKA ⚡️

🟢 Расширение Quokka позволяет тестировать JavaScript-код, не переключаясь на консоль браузера.

🟢 Кроме того, Quokka помогает в прототипировании и работе с файлами.

🟢 В нем есть встроенные отчеты и функции форматирования вывода.

🔗 Ссылка

CodeBase | Frontend | #plugins
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥31
🖼️ React: Базовые крючки 🖼️

const [state, setState] = useState(initialState);


➡️ Использование функции useState позволяет создать переменную state и функцию setState для управления ее значением.

Во время инициализации, state равно переданному значению initialState.

setState(newState);

➡️ Функция setState применяется для изменения значения состояния. При вызове функции с новым значением, React добавляет в очередь повторную отрисовку компонента.

При последующих обновлениях, значение state, полученное с помощью useState, отображает текущее состояние после всех обновлений.

Функциональные обновления

➡️ Если новое состояние зависит от предыдущего, можно передать функцию в setState, которая принимает предыдущее значение и возвращает новое. В примере с компонентом счетчика используются обе формы setState.

function Counter({initialCount}) {
const [count, setCount] = useState(initialCount);
return (
<>
Count: {count}
<button onClick={() => setCount(initialCount)}>Reset</button>
<button onClick={() => setCount(prevCount => prevCount + 1)}>+</button>
<button onClick={() => setCount(prevCount => prevCount - 1)}>-</button>
</>
);
}

Понравился пост? Добавь 🔥🔥🔥


CodeBase | Frontend | #react
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8❤‍🔥3👍1
⚡️ fullPage.js — это JavaScript-библиотека, которая используется для создания полноэкранных прокручивающихся веб-страниц.

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

➡️ Основные возможности fullPage.js включают:

1️⃣ Полноэкранная прокрутка: Контент отображается по одному слайду на экран.

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

3️⃣ Мульти-секционные страницы: Возможность создания множества секций и слайдов внутри них.

4️⃣ Анимации переходов: Поддержка различных эффектов переходов между слайдами.

5️⃣ Адаптивность: Поддержка мобильных устройств и возможность адаптировать внешний вид под разные размеры экранов.

6️⃣ Совместимость: Работа с большинством современных браузеров.

➡️ Пример использования fullPage.js может выглядеть так:

<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/fullPage.js/3.0.9/fullpage.min.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/fullPage.js/3.0.9/fullpage.min.js"></script>
<style>
.section {
text-align: center;
font-size: 3em;
color: #fff;
}
#section1 { background-color: #1BBC9B; }
#section2 { background-color: #4BBFC3; }
#section3 { background-color: #7BAABE; }
#section4 { background-color: #f90; }
</style>
</head>
<body>
<div id="fullpage">
<div class="section" id="section1">Section 1</div>
<div class="section" id="section2">Section 2</div>
<div class="section" id="section3">Section 3</div>
<div class="section" id="section4">Section 4</div>
</div>

<script>
new fullpage('#fullpage', {
// Опции конфигурации
autoScrolling: true,
navigation: true,
navigationPosition: 'right',
});
</script>
</body>
</html>


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

🟡 Библиотека fullPage.js широко используется для создания эффектных и интерактивных одностраничных веб-сайтов.

Понравился пост? Добавь 🔥🔥🔥


CodeBase | Frontend | #js_lib
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥8👍3🔥31🖕1
⚡️ Howler.js — это JavaScript-библиотека для работы с аудио в веб-приложениях. Она обеспечивает удобный API для воспроизведения звуков, что позволяет разработчикам легко добавлять аудиоэффекты и музыкальные фоны на свои веб-страницы.

🟣 Howler.js поддерживает все современные форматы аудио и предоставляет дополнительные возможности для управления звуками.

➡️ Основные возможности:

1️⃣ Кроссбраузерная поддержка: Работает в большинстве современных браузеров, обеспечивая совместимость с различными аудиоформатами (MP3, OGG, WAV, AAC и другими).

2️⃣ Управление звуками: Воспроизведение, пауза, остановка, изменение громкости, регулировка скорости воспроизведения.

3️⃣ Поддержка спрайтов: Возможность создания аудиоспрайтов, что позволяет хранить несколько звуков в одном файле и воспроизводить их по частям.

4️⃣ Буферизация: Автоматическая загрузка и кэширование аудиофайлов для плавного воспроизведения.

5️⃣ События: Поддержка событий, таких как начало воспроизведения, завершение, пауза и другие.

6️⃣ Простая интеграция: Легкий API, который позволяет быстро интегрировать аудио в веб-приложения.

➡️ Пример использования:

<!DOCTYPE html>
<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/howler/2.2.3/howler.min.js"></script>
</head>
<body>
<button onclick="playSound()">Play Sound</button>
<button onclick="pauseSound()">Pause Sound</button>
<button onclick="stopSound()">Stop Sound</button>

<script>
// Создание объекта Howl для управления звуком
var sound = new Howl({
src: ['path/to/sound.mp3', 'path/to/sound.ogg'],
volume: 0.5,
onplay: function() {
console.log('Sound is playing');
},
onend: function() {
console.log('Sound has ended');
}
});

// Функции управления звуком
function playSound() {
sound.play();
}

function pauseSound() {
sound.pause();
}

function stopSound() {
sound.stop();
}
</script>
</body>
</html>


🟣 Этот пример демонстрирует, как создать аудиообъект с помощью howler.js и управлять воспроизведением звука через кнопки.

🟣 Howler.js является мощным инструментом для добавления аудио в веб-приложения, предлагая множество функций для гибкого и удобного управления звуками.

Понравился пост? Добавь 🔥🔥🔥


CodeBase | Frontend | #js
Please open Telegram to view this post
VIEW IN TELEGRAM
👍52🔥1
⚡️ Tamagui - это программное обеспечение с текстовым графическим пользовательским интерфейсом (TUI) для управления устройствами через командную строку, облегчая взаимодействие пользователя с техническими устройствами.

➡️ Для установки используйте:

npm install tamagui @tamagui/config


➡️ Включает в себя три компонента:

🟢 @tamagui/core — является библиотекой стилей, расширяющей API стилей React Native с множеством функций из CSS без внешних зависимостей, кроме React.

🟢 @tamagui/static — компилятор, который оптимизирует производительность.

🟢 @tamagui — обширный универсальный набор компонентов.

🖥 GitHub
💩 Доки

Понравился пост? Добавь 🔥🔥🔥


CodeBase | Frontend | #react
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5
⚡️ Pixi.js — это мощная библиотека для рендеринга 2D-графики в браузере.

🔵 Она позволяет разработчикам создавать сложные и производительные анимации и интерактивные приложения с использованием HTML5 и WebGL.

🔵 Pixi.js поддерживает как WebGL, так и Canvas, что позволяет ей работать на разных устройствах и браузерах, обеспечивая высокую производительность.

➡️ Основные особенности Pixi.js:

1️⃣ Высокая производительность: Использование WebGL для рендеринга обеспечивает быстрое и плавное отображение графики.

2️⃣ Кросс-браузерная поддержка: Поддерживает различные браузеры и устройства, автоматически переключаясь на Canvas, если WebGL недоступен.

3️⃣ Легкость использования: Предоставляет удобный и понятный API для работы с графикой и анимацией.

4️⃣ Поддержка различных форматов: Работает с изображениями, спрайтами, текстом, видео и другими форматами мультимедиа.

5️⃣ Расширяемость: Имеет множество плагинов и дополнений, которые расширяют функционал библиотеки.

➡️ Пример простого использования Pixi.js:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Pixi.js Example</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/pixi.js/6.5.8/pixi.min.js"></script>
</head>
<body>
<script>
// Создаем приложение Pixi
let app = new PIXI.Application({
width: 800,
height: 600,
backgroundColor: 0x1099bb
});
document.body.appendChild(app.view);

// Загружаем изображение и создаем спрайт
PIXI.Loader.shared.add('example.png').load((loader, resources) => {
let sprite = new PIXI.Sprite(resources['example.png'].texture);

// Центрируем спрайт
sprite.x = app.view.width / 2;
sprite.y = app.view.height / 2;
sprite.anchor.set(0.5);

// Добавляем спрайт в сцену
app.stage.addChild(sprite);
});
</script>
</body>
</html>


👀 В этом примере создается простое приложение Pixi.js, которое загружает изображение example.png и отображает его в центре экрана.

Понравился пост? Добавь 🔥🔥🔥


CodeBase | Frontend | #js_lib
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍2❤‍🔥11
⚡️ useLayoutEffect — это хук в React, который позволяет выполнять побочные эффекты синхронно после того, как все изменения DOM были внесены, но до того, как браузер обновит экран.

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

▶️ Сравнение с useEffect

Основное различие между useEffect и useLayoutEffect заключается во времени их выполнения:

🔘 useEffect выполняется асинхронно после рендеринга и после того, как браузер обновил экран.
🔘 useLayoutEffect выполняется синхронно сразу после всех изменений в DOM, но до того, как браузер нарисует экран.

▶️ Когда использовать useLayoutEffect

Использование useLayoutEffect целесообразно в случаях, когда нужно:

🔘 Измерить размеры или позицию DOM-элементов до того, как браузер отрисует изменения.
🔘 Выполнить какие-либо операции, которые могут повлиять на верстку или стиль, и эти изменения должны быть учтены до отображения на экране.

▶️ Пример использования useLayoutEffect

Рассмотрим пример, где мы хотим измерить ширину элемента div сразу после его рендеринга и отобразить эту ширину в элементе:

import React, { useLayoutEffect, useRef, useState } from 'react';

function MeasureDiv() {
const divRef = useRef(null);
const [width, setWidth] = useState(0);

useLayoutEffect(() => {
if (divRef.current) {
setWidth(divRef.current.offsetWidth);
}
}, []);

return (
<div>
<div ref={divRef} style={{ width: '50%' }}>
Resize the window to change my width
</div>
<p>Div width: {width}px</p>
</div>
);
}

export default MeasureDiv;


⚠️ В этом примере:

🔘 Мы используем useRef для получения ссылки на элемент div.
🔘 С помощью useLayoutEffect мы измеряем ширину элемента после его рендеринга, но до того, как браузер обновит экран.
🔘 Ширина сохраняется в состоянии с помощью useState и отображается в абзаце.

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

▶️ Важные моменты

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

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

Понравился пост? Добавь 🔥🔥🔥


CodeBase | Frontend | #react_hook
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥51
👩‍💻 Расширение VS Code: Bookmarks

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

➡️ Ссылка на плагин

CodeBase | Frontend | #плагин
Please open Telegram to view this post
VIEW IN TELEGRAM
8
⚡️ Memos - это открытый сервис для создания заметок, который обеспечивает конфиденциальность.

🔵 Реализован с использованием технологий React и Go, позволяя удобно записывать свои мысли.

😀 Для быстрого запуска с помощью Docker:

docker run -d \
--init \
--name memos \
--publish 5230:5230 \
--volume ~/.memos/:/var/opt/memos \
neosmemo/memos:stable


CodeBase | Frontend | #react
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
⚡️ AFISHA ⚡️

🔵 Сложность: Легкая
🔵 Страницы: Одностраничный
🔵 Язык: русский

🔗 Ссылка на макет
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
⚡️ Cleave.js - это JavaScript библиотека, которая применяется преимущественно для форматирования вводимого текста, обеспечивая плавную работу.

🔵 Она легка в использовании и проста в освоении.

🔗 Документация

Понравился пост? Добавь 🔥🔥🔥


CodeBase | Frontend | #js
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍4
⚡️ Dismantle.js — это библиотека для анализа и модификации исполняемого JavaScript-кода.

🟢 Она предоставляет инструменты для работы с абстрактными синтаксическими деревьями (AST), позволяя разработчикам исследовать и изменять структуру и поведение кода.

➡️ Основные возможности включают:

1️⃣ Разбор кода: Преобразование JavaScript-кода в синтаксическое дерево.

2️⃣ Анализ кода: Изучение элементов кода, таких как переменные, функции и выражения.

3️⃣ Манипуляция кодом: Изменение синтаксического дерева для рефакторинга или оптимизации.

4️⃣ Генерация кода: Преобразование измененного синтаксического дерева обратно в код.

👀 Эта библиотека полезна для создания инструментов разработки, таких как линтеры, форматеры и транспайлеры.

🔗 Установка

Понравился пост? Добавь 🔥🔥🔥


CodeBase | Frontend | #js
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
⚡️ Как отобразить сообщение, если JavaScript отключен? ⚡️

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

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

🟢 Если контент не работает без JavaScript, нужно показывать сообщение об ошибке.

1️⃣ Использование HTML тега <noscript>

🔵 Тег <noscript> отображает альтернативный контент в браузерах без поддержки скриптов или с отключенным JavaScript.

➡️ Пример:

<noscript>
Видео не может проигрываться, так как JavaScript отключен.
</noscript>


➡️ Полный пример:

<!DOCTYPE html>
<html>
<head>
<title>Заголовок документа</title>
</head>
<body>
<h1>Пример тега noscript</h1>
<noscript>
<h2>JavaScript отключен в вашем веб-браузере. Некоторые функции не будут работать.</h2>
<style type="text/css">
#main-content { display: none; }
</style>
</noscript>
<div id="main-content">
<h2>JavaScript включен!</h2>
</div>
</body>
</html>


2️⃣ Использование метода meta refresh

🟣 Для отображения контента при отключенном JavaScript можно перенаправить пользователя на страницу с сообщением об этом. Метод meta refresh использует тег <meta> с атрибутом http-equiv="refresh" и атрибутом content, указывающим интервал времени до перенаправления.

➡️ Установив интервал в 0, можно мгновенно перенаправить пользователя:

<noscript>
<meta http-equiv="refresh" content="0;URL=ShowErrorPage.html">
</noscript>


🟣 Если JavaScript отключен, браузер перенаправит пользователя на "ShowErrorPage.html" с предупреждающим сообщением.

CodeBase | Frontend | #js
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤‍🔥1👎1
⚡️ ESLintESLint ⚡️

➡️ ESLint обеспечивает проверку кода на наличие синтаксических ошибок и предлагает варианты исправлений.

➡️ Хотя в VS Code есть встроенная система IntelliSense для отображения подсказок, ESLint становится более удобным выбором, особенно если требуются различные настройки для JSX, обычного JavaScript или среды Node.js.

➡️ Линтер также может интегрироваться в систему проверки кода, позволяя убедиться в правильности кода перед отправкой файлов в репозиторий.

🔗 Документация

CodeBase | Frontend | #plugin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍63