CodeBase | Frontend
1.93K subscribers
470 photos
211 videos
3 files
792 links
Все самое интересное и полезное у нас 😎

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

Включи монетизацию своего TG-канала или сайта через РСЯ и получай пассивный доход. Подключиться по https://ya.cc/B2UP8W
Download Telegram
👩‍💻 Тернарный оператор

Тернарный оператор работает с тремя операндами: одним условием и двумя выражениями. Возвращает первое выражение, если условие истинно и второе, если условие ложно.

Используется как компактная замена условного оператора if...else.

const num = 5
console.log(num === 5 ? 'Пять' : 'Не пять')
// Пять


➡️ Обьяснение:

(A) ? (B) : (C)


Где A — условие, B — первое выражение, C — второе выражение.

Если первый операнд A вычисляется в истинное выражение true, то оператор вернёт выражение B. Если в false — вернёт выражение C.

💡 Внутри одного тернарного оператора можно написать другой:

const num = 10
const result = num > 10 ? 'Число больше 10' :
num === 10 ? 'Число равно 10' : 'Число меньше 10'
console.log(result)
// 'Число равно 10'


В этом случае запись идентична использованию конструкций if...else if ... else. Сначала проверяется первое условие, если оно ложно, то проверяется второе и так далее.

🗣️ Отступы в примере проставлены для лучшей читаемости конструкции, они не влияют на выполнение кода.


CodeBase | Frontend | #js
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍2🔥1
⚙️ Что такое свойство opacity в CSS и зачем оно используется?

opacity — это CSS-свойство, которое задаёт степень прозрачности элемента. Значение opacity может быть от 0 (полностью прозрачный) до 1 (полностью непрозрачный). Это полезно для создания визуальных эффектов, таких как затемнение или появление элементов.

➡️ Пример:
<div class="opaque-box">Прозрачный текст</div>

<style>
.opaque-box {
background-color: lightblue;
opacity: 0.5; /* Устанавливаем 50% прозрачности */
padding: 20px;
text-align: center;
}
</style>


🗣 В этом примере свойство opacity делает элемент .opaque-box полупрозрачным, что особенно полезно для наложений и визуального выделения интерфейсов.

CodeBase | Frontend | #CSS
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤2🔥1
Главное, чтобы ещё стул был на колёсиках

CodeBase | Frontend | #meme
😁6❤2🔥1
👩‍💻 Метод Array.from() в JavaScript и как он используется

Метод Array.from() создаёт настоящий массив из массивоподобных или итерируемых объектов
(например, NodeList, arguments, Set, Map).

➡️ Пример:

const buttons = document.querySelectorAll("button");

const btnArray = Array.from(buttons);
btnArray.forEach(btn => btn.classList.add("active"));


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

• querySelectorAll возвращает NodeList, а не массив
• Array.from() превращает его в массив
• после этого доступны map, filter, forEach и другие методы

Array.from() — это мост между «псевдомассивами» и полноценными массивами, без костылей и циклов


CodeBase | Frontend | #JS
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤1🔥1
🔥 Трюк с :has() в CSS — как маленький хак улучшает UX

Селектор :has() поддерживается во всех современных браузерах. Его часто называют «селектором родителя», но он куда мощнее.

Вот пример, как улучшить UX форм без JS 👇

form:has(input:invalid) button[type="submit"] {
opacity: 0.5;
pointer-events: none;
}

📌 Что делает:
Если в форме есть невалидный input, сабмит-кнопка становится неактивной.

💡 Применения :has():
- Показывать/прятать элементы в зависимости от вложенности;
- Делать UI реактивным без JS;
- Улучшать доступность форм и состояний.

✅ Минимализм, UX и современный CSS — в одном трюке. Попробуй!


CodeBase | Frontend | #CSS
❤2
🎯 CSS tip: как избавиться от :last-child и упростить отступы

Когда нужно задать отступ между элементами, но не последнему, часто пишут:

.item:not(:last-child) {
margin-bottom: 16px;
}

Но есть современный способ без селекторов и костылей 👇

✅ Используй gap с flex или grid:

.container {
display: flex;
flex-direction: column;
gap: 16px;
}

📌 Преимущества:
– Нет нужды в :last-child
– Чище HTML и CSS
– Работает одинаково в любом направлении (row, column)
– Поддерживается во всех современных браузерах


Итог: если ты всё ещё пишешь :not(:last-child) — пришло время обновить подход.

CodeBase | Frontend | #CSS
❤2👍2🔥1
Совет по HTML 💡

Семантический способ выделить часть текста ✅

CodeBase | Frontend | #HTML
👍1
🔥 Быстрое сравнение объектов в JS без глубоких сравнений

Иногда не нужен deep equal, а просто надо понять: два объекта точно одинаковы по содержимому?

Вот простой, но мощный трюк на базе JSON.stringify():

const isEqual = (a: object, b: object) =>
JSON.stringify(a) === JSON.stringify(b);

📌 Подходит для:

* Простых объектов без методов и undefined;
* Сравнения кеша/props в memo;
* Быстрой проверки изменений формы.

⚠️ Не подходит:

* Для вложенных объектов с разным порядком ключей ({a:1,b:2} !== {b:2,a:1});
* Когда есть Date, Map, Set, функции, undefined, symbol.

🧠 Альтернатива:
Если важен порядок и типы — используй lodash.isEqual.

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

if (!isEqual(prevForm, currentForm)) {
saveChanges();
}

⚡ Просто. Эффективно. Для 80% кейсов — 🔥

CodeBase | Frontend | #JS
🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Всплывающие скроллеры изображений с анимацией, управляемой прокруткой CSS 🤙

.pop {
view-timeline-name: --pop;
}
img {
animation: slide both;
animation-timeline: --pop;
animation-range: entry 100% cover 50%;
}
.skateboarder {
--x: 0;
--y: -45%;
}
@ keyframes slide {
to { translate: var(--x) var(--y); }
}

https://codepen.io/jh3y/pen/abPgrGR

CodeBase | Frontend | #CSS
👍2
💡 Scroll-snap-type

Позволяет создавать плавные, контролируемые прокрутки с «привязкой» к определённым позициям.

.container {
scroll-snap-type: x mandatory;
}
.item {
scroll-snap-align: start;
}

🔘 Используется для каруселей, слайдеров и списков.

Зачем это нужно:

➡️ Сделать UX удобным и предсказуемым.

➡️ Избавиться от костылей на JS.

CodeBase | Frontend | #JS
👍1
Прокачать навыки вёрстки и фронтенда можно в телеграм!

В этом канале опытный верстальщик делится структурированными уроками и различными материалами по HTML, CSS, JS, а также советами по заработку на фрилансе.

Канал будет полезен:
1. начинающим и опытным верстальщикам
2. программистам
3. веб-дизайнерам

Научиться и зарабатывать на верстке:
@free_html_lessons
🔥1
CSS совет 💡

Возможно, ты не знал об этом новом и самом простом способе вертикально центрировать контент в блочном макете.

CodeBase | Frontend | #CSS
👍6
🔥 Трюк с :has() в CSS: "Родительская магия"

Селектор :has() наконец стабильно работает во всех современных браузерах. Это открывает мощные возможности — реакция родителя на состояние потомка без JS!

Пример: подсветить div, если внутри есть заполненный input:

div:has(input:valid) {
border: 2px solid green;
}
Или показать ошибку, если инпут невалиден:

form:has(input:invalid) .error-message {
display: block;
}

📌 Зачем это нужно:
- 💡 Упрощает логику UI без JS
- 🚫 Убирает необходимость в лишних классах и хендлерах
- 💪 Делает компоненты декларативнее и чище

Проверить поддержку: https://caniuse.com/css-has

CodeBase | Frontend | #CSS
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Бэкенд-разработчик пытается написать CSS.

CodeBase | Frontend | #meme
😁4