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

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

По вопросам рекламы или разработки: @g_abashkin
Download Telegram
📝 Подборка вакансий для мидлов

Наставник на онлайн-курс "Frontend-разработчик"
Angular, HTML, CSS, JavaScript, Node.js, Webpack, JQuery, TypeScript
от 25 000 ₽ на руки | 1–3 года

React разработчик
React, Redux, TypeScript, Material-UI, Webpack
Уровень дохода не указан | 1–3 года

Middle React Developer
React, Next.js, TypeScript, Effector, TailwindCSS, WebSockets, Семантическая и валидная верстка
от 150 000 ₽ на руки | 1–3 года
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 CSS :has() — Псевдокласс, который давно ждали

Преобразуйте свой CSS с помощью псевдокласса :has(), позволяющего стилизовать элементы на основе их дочерних элементов.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Простой калькулятор с динамическим вводом

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

Требования:

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

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

<div>
<input type="number" id="num1" placeholder="Введите первое число">
<select id="operation">
<option value="add">+</option>
<option value="subtract">-</option>
<option value="multiply">×</option>
<option value="divide">÷</option>
</select>
<input type="number" id="num2" placeholder="Введите второе число">
</div>
<div>
<h3>Результат: <span id="result">0</span></h3>
</div>

const num1 = document.getElementById('num1');
const num2 = document.getElementById('num2');
const operation = document.getElementById('operation');
const result = document.getElementById('result');

function calculate() {
const value1 = parseFloat(num1.value) || 0;
const value2 = parseFloat(num2.value) || 0;

let res = 0;
switch (operation.value) {
case 'add':
res = value1 + value2;
break;
case 'subtract':
res = value1 - value2;
break;
case 'multiply':
res = value1 * value2;
break;
case 'divide':
res = value2 !== 0 ? value1 / value2 : 'Ошибка (деление на 0)';
break;
}

result.textContent = res;
}

[num1, num2, operation].forEach(element => {
element.addEventListener('input', calculate);
});
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Кнопки с несколькими состояниями

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

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Привет! 👋
Мы нашли канал, на котором каждый день публикуются увлекательные и полезные материалы, которые вы так долго искали! 😎

Здесь вы найдёте:
• рецепты кода
• мемы
• интересные статьи и факты
• викторины
• макеты
• иконки
• полезные ссылки

И это еще не всё! Здесь много интересного!

Да-да! Всё в 1 канале!
Подписывайся скорее пока доступ не пропал! 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
📝 Подборка вакансий для сеньоров

Fullstack TypeScript Developer [Senior]
TypeScript, Node.js, React, SQL, Kubernetes, Docker
Уровень дохода не указан | Более 6 лет

Fullstack Web Разработчик
HTML, CSS, JavaScript, Laravel, Vue.js, Nuxt.js, React, TypeScript, MySQL, Redis
от 3 000 $ на руки | 3–6 лет

Senior FullStack-разработчик
PHP, Laravel, Vue.js, Redis, MySQL, JavaScript
Уровень дохода не указан | 3–6 лет
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ 9 open source библиотек для вашего следующего проекта

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

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

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Что такое AbortController в JavaScript и зачем он используется?

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

➡️ Пример:

const controller = new AbortController();
const signal = controller.signal;

// Отправляем запрос с возможностью отмены
fetch('https://jsonplaceholder.typicode.com/posts', { signal })
.then(response => response.json())
.then(data => console.log(data))
.catch(err => {
if (err.name === 'AbortError') {
console.log('Запрос был отменён');
} else {
console.error(err);
}
});

// Отмена запроса через 500 мс
setTimeout(() => controller.abort(), 500);


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


🖥 Подробнее тут
Please open Telegram to view this post
VIEW IN TELEGRAM
🔎 Подборка вакансий для лидов

Senior Front-End (React) разработчик
🟢React.js, Redux, TypeScript, CSS, REST API, Flux
🟢от 4 000 до 5 000 $ до вычета налогов | Более 6 лет

Senior Frontend Engineer
🟢React, Redux, Redux-Saga, TypeScript, Electron, Node.js, MUI
🟢Уровень дохода не указан | Более 6 лет

Руководитель группы разработки (Team lead)
🟢PHP, Node.js, Laravel, Docker, Kubernetes, MySQL, Redis, Backend, Frontend
🟢от 200 000 ₽ на руки | Более 6 лет
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Разбираемся с цветами: пространства, иллюзии и квантование

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

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
🎯 Ставь цели на день через "3 приоритета"

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

👉 Совет: каждое утро выделяй три главных задачи на день — именно те, что реально сдвинут твои дела вперёд. Всё остальное — бонусы. Такая простая фокусировка помогает делать важное, а не тонуть в рутине.
Please open Telegram to view this post
VIEW IN TELEGRAM
1
🔎 Подборка зарубежных вакансий

Senior Frontend Engineer
🟢React, Redux, TypeScript, Webpack, Electron, Node.js
🟢Уровень дохода не указан | Более 6 лет

Frontend Developer
🟢React, JavaScript, HTML, CSS, Blockchain
🟢Уровень дохода не указан | 3–6 лет

Full Stack Developer
🟢Node.js, TypeScript, VueJS, React, PostgreSQL, Redis, AWS, DevOps
🟢Уровень дохода не указан | Более 6 лет
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Реализация интерактивной карты

Наглядный пример того, как с помощью JS API можно создавать нестандартные интерактивные карты. Яндекс Еда опубликовала исследование самых характерных блюд в городах в России и для визуализации использовала решение от API Яндекс Карт. Оно удобно тем, что позволяет легко и быстро настраивать цвета и детальность карты, убирать или добавлять нужную информацию.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Remove anchor from URL

Завершите функцию/метод так, чтобы он возвращал URL с чем-либо после удаления привязки (#).

Пример кода:

"www.codewars.com#about" --> "www.codewars.com"
"www.codewars.com?page=1" -->"www.codewars.com?page=1"


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


function removeUrlAnchor(url) {
return url.split('#')[0];
}

// Примеры использования
console.log(removeUrlAnchor("
www.codewars.com#about")); // "www.codewars.com"
console.log(removeUrlAnchor("
www.codewars.com?page=1")); // "www.codewars.com?page=1"
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 CSS единицы измерения: lh и rlh

Изучение новых относительных единиц измерения CSS основанных на высоте строки и позволяющих отказаться от угадывания вертикального ритма.

Смотреть…
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Стилизация кнопки с эффектом наведения

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

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

• Основной цвет фона кнопки — синий (#007BFF).
• При наведении цвет фона становится темно-синим (#0056b3), добавляется тень, и кнопка слегка увеличивается.

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

<button class="styled-button">Нажми меня</button>

.styled-button {
background-color:
#007BFF;
color: white;
padding: 10px 20px;
border: none;
border-radius: 8px;
cursor: pointer;
font-size: 16px;
transition: background-color 0.3s, transform 0.3s, box-shadow 0.3s;
}

.styled-button:hover {
background-color:
#0056b3;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
transform: scale(1.05);
}
Please open Telegram to view this post
VIEW IN TELEGRAM
🔎 Подборка вакансий для джунов

Frontend-разработчик Vue
🟢Vue.js, JavaScript, Git, Vuex/Pinia, Sass/Less, TypeScript, Nuxt.js, Docker, Webpack
🟢от 60 000 до 90 000 ₽ на руки | Без опыта

Frontend-разработчик
🟢HTML5, CSS3, JavaScript (ES6+), Vue.js, Vue Router, Vuex/Pinia, Git, REST API
🟢от 70 000 до 120 000 ₽ на руки | 1–3 года

Frontend Developer/Программист JS
🟢JavaScript, Vue.js, Bootstrap, HTML5, CSS3, .NET (C#), .Net Core, SQL
🟢от 80 000 до 150 000 ₽ на руки | 1–3 года
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 <pixel-canvas> Web Component

Сцена с стильно анимированными карточками. Сделана на CSS, SVG и JavaScript.

Открыть код...
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Что такое clamp() в CSS и как его использовать?

clamp() — это функция в CSS, которая задаёт значение с ограничениями: минимальное, предпочтительное и максимальное. Она позволяет адаптивно управлять размерами элементов или текстом, сохраняя их в заданных пределах.

➡️ Пример:

<div class="text">
Адаптивный размер текста
</div>

<style>
.text {
font-size: clamp(1rem, 2.5vw, 2rem); /* Минимум 1rem, максимум 2rem, предпочтение — 2.5% ширины окна */
text-align: center;
}
</style>


🗣️ В этом примере текстовый блок изменяет размер шрифта в зависимости от ширины окна, оставаясь в пределах от 1rem до 2rem. Функция clamp() упрощает создание адаптивного дизайна без сложных медиа-запросов.


🖥 Подробнее тут
Please open Telegram to view this post
VIEW IN TELEGRAM