Логово верстальщика
8.03K subscribers
994 photos
48 videos
4 files
1.61K links
Канал для верстальщиков с инфой о HTML и CSS, а так же JavaScript на уровне верстальщиков.

Канал на бирже - https://telega.in/c/webdevlair

По вопросам рекламы или разработки: @g_abashkin
Download Telegram
👩‍💻 Signature animation

Поле для ввода подписи с интересной анимацией. Сделана на SVG, CSS и JavaScript.

Открыть код...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 10 лучших CSS-библиотек и фреймворков для быстрой разработки фронтенда

Запутался в CSS-фреймворках? Мы собрали ТОП-10 самых крутых инструментов, которые реально экономят время на фронтенде. От тяжеловеса Bootstrap до минималистичного Milligram – разобрали плюсы каждого и объяснили, когда что использовать.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Переходите на сторону light-dark()

Статья раскрывает современные CSS-функции для создания адаптивного темного режима, заменяющие традиционные медиа-запросы. Рассматриваются подходы, упрощающие настройку цветовых схем под предпочтения пользователя.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
1
👩‍💻 Решение головоломки судоку на JavaScript с помощью хэш-карт и рекурсий

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

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Улучшение производительности с делегированием событий

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

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Подсчёт частоты элементов в массиве

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

Пример:

const input = [1, 2, 2, 3, 4, 3, 5, 3];
const result = countFrequency(input);
console.log(result);
// Ожидаемый результат: {1: 1, 2: 2, 3: 3, 4: 1, 5: 1}


Решение задачи🔽

function countFrequency(array) {
return array.reduce((acc, item) => {
acc[item] = (acc[item] || 0) + 1;
return acc;
}, {});
}

// Пример использования:
const input = [1, 2, 2, 3, 4, 3, 5, 3];
const result = countFrequency(input);
console.log(result);
// Ожидаемый результат: {1: 1, 2: 2, 3: 3, 4: 1, 5: 1}
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 TypeScript в деталях: настраиваем tsconfig.json правильно

Один файл, который может изменить все: полное руководство по tsconfig.json. Разбираем каждый параметр и его влияние на разработку, сборку и поддержку TypeScript-проектов.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Анимация "пульсации" кнопки

Создайте кнопку, которая при наведении начинает "пульсировать" — её размер плавно увеличивается и уменьшается в течение короткого времени.

Ожидаемое поведение:

Кнопка остаётся статичной, пока на неё не навели мышь.
При наведении запускается бесконечная анимация "пульсации".
При убирании мыши анимация прекращается.

Решение задачи🔽

<button class="pulse-button">Наведи на меня</button>

.pulse-button {
padding: 10px 20px;
font-size: 16px;
color: white;
background-color:
#28a745;
border: none;
border-radius: 8px;
cursor: pointer;
transition: transform 0.2s ease;
}

.pulse-button:hover {
animation: pulse 1s infinite;
}

@keyframes pulse {
0% {
transform: scale(1);
}
50% {
transform: scale(1.1);
}
100% {
transform: scale(1);
}
}
Please open Telegram to view this post
VIEW IN TELEGRAM
👎1
👩‍💻 Fluid Simulation

Сцена с интересной симуляцией жидкости с текстом. Сделана на CSS и JavaScript.

Открыть код...
Please open Telegram to view this post
VIEW IN TELEGRAM
1
⚙️ Что такое box-shadow в CSS и как оно работает?

box-shadow — это свойство CSS, которое добавляет тень к элементу. Оно позволяет задавать смещение, размытие, размер растушёвки и цвет тени.

➡️ Пример:

<div class="box">Я с тенью</div>

<style>
.box {
width: 200px;
height: 100px;
background: lightblue;
box-shadow: 10px 10px 20px rgba(0, 0, 0, 0.5); /* Смещение и размытие тени */
}
</style>


🗣️ В этом примере box-shadow добавляет мягкую тень с чётким смещением и прозрачностью. Это свойство отлично подходит для выделения элементов интерфейса.


🖥 Подробнее тут
Please open Telegram to view this post
VIEW IN TELEGRAM
2
🎨 UI для разработчика — это тоже UI

Ты сделал админку, отладочный дашборд или просто лог-страницу. Вроде «только для себя» — но ты в ней путаешься.

👉 Совет: даже если интерфейс внутренний, подходи к нему как к продукту. Сделай удобно, понятно, визуально чисто. Чем меньше усилий тратится на навигацию — тем больше остаётся на работу.
Please open Telegram to view this post
VIEW IN TELEGRAM
4
👩‍💻 Паттерны для эффективного манипулирования DOM с ванильным JavaScript

В руководстве рассматриваются такие шаблоны работы с DOM на JavaScript, как выбор правильного querySelector, кэширование элементов и улучшение обработки событий.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Text Illumination

Сцена с анимированным появлением текста. Сделана на SVG и CSS.

Открыть код...
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
🧨 Работа с куки-файлами хуже сапёрного дела

Статья разбирает особенности работы с HTTP-куки и неожиданные проблемы, которые могут возникнуть при их использовании. Рассматривается пример с сериализацией JSON, казалось бы, безобидный, но вызывающий интересные нюансы в обработке браузерами и серверами.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Что такое Content Security Policy (CSP) и зачем она нужна?

Content Security Policy (CSP) — это механизм безопасности, ограничивающий источники загружаемого контента на веб-странице. CSP помогает предотвращать атаки XSS и другие угрозы, задавая правила через HTTP-заголовок или <meta>.

➡️ Пример:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' https://apis.example.com;">
<title>Пример CSP</title>
</head>
<body>
<script src="https://apis.example.com/library.js"></script>
<script>
// Этот скрипт выполнится, так как он разрешен
console.log("Скрипт из разрешенного источника работает.");
</script>
<script>
// Этот скрипт нарушит политику CSP, так как он inline
alert("Inline скрипт заблокирован!");
</script>
</body>
</html>


🗣️ В этом примере политика CSP разрешает загрузку ресурсов только с того же домена ('self') и скриптов с определенного внешнего источника. Inline-скрипты и неразрешенные ресурсы будут заблокированы, повышая безопасность приложения.


🖥 Подробнее тут
Please open Telegram to view this post
VIEW IN TELEGRAM
🔍 Как найти утечки памяти на сайтах и в веб-приложениях

Утечки памяти мешают пользователям долго работать с вашим веб-приложением – из-за них можно потерять аудиторию. Попробуем разобраться как этого издежать.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
👩‍💻 Как выбрать библиотеку для управления состоянием в Vue.js

Веб-разработка тесна связана с управлением состоянием, особенно если это касается сложных структур. Рассказываем, какие библиотеки помогут в этом и какие у них есть преимущества.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👎3
👩‍💻 Is a number prime?

Определите функцию, которая принимает целочисленный аргумент и возвращает логическое значение true или false в зависимости от того, является ли целое число простым.

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

Требования
• Вы можете предположить, что вам будет предоставлен целочисленный ввод.
• Вы не можете предполагать, что целое число будет только положительным. Вам • также могут быть даны отрицательные числа ( или 0 ).

Пример кода:

is_prime(1)  /* false */
is_prime(2) /* true */
is_prime(-1) /* false */


Решение задачи🔽

function isPrime(num) {
if (num <= 1) {
return false;
}

if (num === 2) {
return true; // 2 - единственное четное простое число
}

if (num % 2 === 0) {
return false; // исключаем все четные числа, кроме 2
}

// Проверка делимости от 3 до квадратного корня из num
for (let i = 3; i <= Math.sqrt(num); i += 2) {
if (num % i === 0) {
return false;
}
}

return true;
}

// Примеры использования
console.log(isPrime(1)); // false
console.log(isPrime(2)); // true
console.log(isPrime(-1)); // false
console.log(isPrime(17)); // true
console.log(isPrime(18)); // false
Please open Telegram to view this post
VIEW IN TELEGRAM