Наглядный пример того, как с помощью JS API можно создавать нестандартные интерактивные карты. Яндекс Еда опубликовала исследование самых характерных блюд в городах в России и для визуализации использовала решение от API Яндекс Карт. Оно удобно тем, что позволяет легко и быстро настраивать цвета и детальность карты, убирать или добавлять нужную информацию.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Завершите функцию/метод так, чтобы он возвращал 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
• HTML и CSS ошибки, влияющие на доступность. Мой опыт и моего незрячего знакомого Ильи. Часть 11
• Вы всё ещё устанавливаете display:none по таймауту? Тогда мы идём к вам
• Парольная защита статичной HTML-страницы на JS
• 9 open source библиотек для вашего следующего проекта
• Модули CSS раскладки — что такое и как готовить
Please open Telegram to view this post
VIEW IN TELEGRAM
Изучение новых относительных единиц измерения 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
Frontend-разработчик
Frontend Developer/Программист JS
Please open Telegram to view this post
VIEW IN TELEGRAM
Сцена с стильно анимированными карточками. Сделана на 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
Frontend разработчик
• JavaScript, TypeScript, React, HTML5, CSS3• от 60 000 до 160 000 ₽ на руки | Без опытаFrontend-разработчик
• TypeScript, Vue.js, Webpack, GraphQL, REST API• до 200 000 ₽ на руки | 3–6 летFrontend JS/React/TypeScript
• JavaScript, React, TypeScript, REST API, Git, Agile, DevOps, Kanban, Scrum• Уровень дохода не указан | 3–6 летPlease open Telegram to view this post
VIEW IN TELEGRAM
Анимированное выпадающее меню с переливающимся эффектом. Сделано на SCSS и TypeScript.
Открыть код...
Please open Telegram to view this post
VIEW IN TELEGRAM
Senior Frontend Engineer
• TypeScript, Next.js, React.js, Redux, Jest, React Testing Library, D3.js, Chart.js• до 5 000 $ на руки | Более 6 летFrontend React разработчик
• React, Next.js, StoryBook, TypeScript, Jest, REST, WebSocket• от 150 000 до 250 000 ₽ на руки | 3–6 летSenior Frontend Developer VUE.js
• Vue.js, TypeScript, Nuxt.js, Pinia, Telegram API, Google Analytics• от 3 000 до 4 000 $ на руки | Более 6 летPlease open Telegram to view this post
VIEW IN TELEGRAM
• Базовое программирование, или Почему джуны не могут пройти к нам собеседование
• Я стал аналитиком, потому что не смог быть программистом
• Какие именно админы нужны на российском рынке и как получать больше разработчика
• Рецензия на книгу «MySQL. Сборник рецептов. 4-е издание»
• Чек-лист тестировщика в финансовой компании
Please open Telegram to view this post
VIEW IN TELEGRAM
В нашем руководстве по обновлению React 19 мы поделились пошаговыми инструкциями по обновлению вашего приложения до React 19. В этом посте мы расскажем о новых возможностях React 19 и о том, как их можно использовать.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
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'; noscript-src 'self' https://apis.example.com;">
<noscript>Пример CSP</noscript>
</head>
<body>
<noscript src="https://apis.example.com/library.js"></noscript>
<noscript>
// Этот скрипт выполнится, так как он разрешен
console.log("Скрипт из разрешенного источника работает.");
</noscript>
<noscript>
// Этот скрипт нарушит политику CSP, так как он inline
alert("Inline скрипт заблокирован!");
</noscript>
</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
💾 6 главных технологий для хранения данных в браузереВедущий инженер RxDB провел комплексный анализ и сравнение шести основных технологий хранения данных в браузере – от классических Cookies до современных WASM SQLite, оценивая их функциональность, производительность и потенциал для оптимизации.
Читать...
Часто ждёшь часами, пока коллега ответит на простой вопрос? Это не только теряет время, но и ритм работы.
Please open Telegram to view this post
VIEW IN TELEGRAM
Laravel/VUE разработчик (Middle+)
Node.js Developer
Full Stack Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
HTML-элемент search — это контейнер, представляющий части веб-страницы с функциональностью поиска.
Читать…
Please open Telegram to view this post
VIEW IN TELEGRAM
Создайте поле ввода и кнопку, которые позволяют добавлять задачи в список. Каждая задача в списке должна иметь кнопку для её удаления.
Ожидаемое поведение:
• Введите текст задачи в поле ввода и нажмите кнопку "Добавить".• Задача появляется в списке ниже с кнопкой "Удалить" рядом с ней.• Нажатие на кнопку "Удалить" удаляет соответствующую задачу из списка.Решение задачи
<div>
<input type="text" id="taskInput" placeholder="Введите задачу">
<button id="addTaskButton">Добавить</button>
</div>
<ul id="taskList"></ul>
const taskInput = document.getElementById('taskInput');
const addTaskButton = document.getElementById('addTaskButton');
const taskList = document.getElementById('taskList');
addTaskButton.addEventListener('click', () => {
const taskText = taskInput.value.trim();
if (taskText === '') return; // Не добавляем пустую задачу
const li = document.createElement('li');
li.textContent = taskText;
const deleteButton = document.createElement('button');
deleteButton.textContent = 'Удалить';
deleteButton.style.marginLeft = '10px';
deleteButton.addEventListener('click', () => li.remove());
li.appendChild(deleteButton);
taskList.appendChild(li);
taskInput.value = ''; // Очищаем поле ввода
});
Please open Telegram to view this post
VIEW IN TELEGRAM
Запутался в CSS-фреймворках? Мы собрали ТОП-10 самых крутых инструментов, которые реально экономят время на фронтенде. От тяжеловеса Bootstrap до минималистичного Milligram – разобрали плюсы каждого и объяснили, когда что использовать.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM