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

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

🟢 SASS, сокращение от Syntactically Awesome Stylesheets, является инструментом, способствующим упрощению процесса создания CSS-кода. Он представляет собой язык программирования, который преобразуется в обычный CSS с помощью специального компилятора. Браузеры не могут интерпретировать SASS напрямую, поэтому для отображения стилей необходима конвертация в стандартный CSS. Задача компилятора заключается в том, чтобы преобразить SASS в понятный для браузеров формат CSS. Использование SASS помогает упростить создание и обслуживание больших объемов CSS-кода.

🟢 SCSS, также известный как Sassy CSS, является одним из двух основных синтаксисов языка SASS. В отличие от SASS, который использует специфический синтаксис без фигурных скобок и с отступами для вложенности элементов, SCSS больше приближен к обычному CSS, что делает его более удобным для большинства разработчиков. В то же время SCSS сохраняет все преимущества SASS, такие как использование переменных, миксинов, вложенностей и наследования селекторов.

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

scss
// Объявление переменных
$primary-color: #3498db;
$button-border-radius: 5px;

// Создание стилей кнопки
.button {
background-color: $primary-color;
color: white;
padding: 10px 20px;
border-radius: $button-border-radius;
font-size: 16px;

&:hover {
background-color: darken($primary-color, 10%);
}
&.large {
font-size: 20px;
padding: 12px 24px;
}
&.outline {
background-color: white;
border: 2px solid $primary-color;
color: $primary-color;

&:hover {
background-color: $primary-color;
color: white;
}
}
}
➡️ Этот код SCSS объявляет переменные для основного цвета кнопки и радиуса закругления углов, а затем создает стили для кнопки с возможностью применения различных модификаторов, таких как размеры и варианты оформления. Компиляция этого кода SCSS даст на выходе стандартный CSS, который браузеры могут интерпретировать и применять к кнопке на веб-странице.

CodeBase | Frontend
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
➡️ Git — это набор командной строки, который отслеживает и регистрирует изменения в файлах (как правило, это касается исходного кода программ, но вы можете применять его к любым файлам по вашему усмотрению). С его помощью можно сравнивать, анализировать, редактировать, сливать изменения и вернуться назад к предыдущим версиям. Этот процесс известен как управление версиями.

➡️ Зачем использовать Git:

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

🔗 Шпаргалка по работе с Git

CodeBase | Frontend
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🔥 JavaScript (JS) 🔥

🟢 Считается одним из наиболее распространенных сценарных языков программирования. Его применение в основном связано как с фронтенд-разработкой, так и с бэкенд-разработкой. На фронтенде он используется для создания динамических элементов на веб-страницах.

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

CodeBase | Frontend
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
⭐️ ТОП-3 РЕДАКТОРОВ КОДА ⭐️

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

1️⃣ Visual Studio Code – это простой, но мощный редактор кода, который изначально предназначен для работы с JavaScript, TypeScript и Node.JS. С его помощью и с дополнительными расширениями можно также работать с C++, C#, Python и PHP.

➡️Одно из отличительных свойств Visual Studio Code – это умная функция автодополнения благодаря технологии IntelliSense. Она позволяет автоматически дополнять названия переменных, функций и модулей, а также предоставляет ссылки на соответствующие разделы документации. В редакторе можно выполнять отладку кода непосредственно, запускать приложения для отладки и присоединяться к уже запущенным приложениям.

2️⃣ Sublime Text - это текстовый редактор с лёгким весом, который поддерживает работу на различных платформах.

➡️В программе встроена поддержка TypeScript, JSX и TSX. Пользовательский интерфейс редактора современный, и есть возможность использовать видеокарту для рендеринга, что способствует улучшению производительности.

3️⃣ Notepad++ — свободный текстовый редактор с открытым исходным кодом для Windows с подсветкой синтаксиса, разметки, а также языков описания аппаратуры VHDL и Verilog.

➡️Базируется на компоненте Scintilla, написан на C++ с использованием STL, а также Windows API, и распространяется под лицензией GNU General Public License. Базовая функциональность программы может быть расширена как за счёт плагинов, так и сторонних модулей, таких как компиляторы и препроцессоры. Поддерживает открытие более 100 форматов.

CodeBase | Frontend
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Плагин CSSREM 🔥

Быстро и легко может перевести px в rem и обратно.

🔗 Ссылка на на плагин

CodeBase | Frontend
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Spin preloader

Анимация загрузки страницы, реализованная с помощью HTML, SCSS и JavaScript.

🔗 Посмотреть код

CodeBase | Frontend
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
💬 Parallax Drag-slider

Стильный слайдер с эффектом параллакса, реализованный с помощью HTML, SCSS и JavaScript.

🔗 Посмотреть код

CodeBase | Frontend
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥1
⚡️ МАКЕТ ДЛЯ ВЕРСТКИ: DIVESEA ⚡️

➡️ Сложность: ⭐️ ⭐️ ⭐️ ⭐️ ⭐️

➡️ Страницы: многостраничный

➡️ Адаптив: есть

➡️ Навыки: flex или grid, слайдеры, табы

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

#макет #html #css

CodeBase | Frontend
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥32
🗣JAVASCRIPT-КОНЦЕПЦИИ: ЗНАЧЕНИЯ И ССЫЛКИ

Если не понять, как происходит работа с переменными в JavaScript, то будут возникать ошибки в коде, которые трудно избежать.

➡️ При присвоении примитивных типов данных (boolean, number, string) создается полная копия значения. Переменная содержит конкретное значение, которое не связано с исходным.

➡️ В случае с объектами, включая массивы и функции, они всегда передаются по ссылке. После присвоения переменной такого значения, она будет содержать ссылку на область памяти, где находится исходный объект. Таким образом, копия объекта не создается.

let variable1 = 'My string';
let variable2 = variable1;


➡️ В переменной variable2 теперь лежит примитивное строковое значение 'My string', полностью скопированное с variable1. Эти переменные равны, но независимы друг от друга. Изменение variable2 никак не повлияет на variable1.

variable2 = 'My new string';
console.log(variable1); // My string
console.log(variable2); // My new string


➡️ А что там с объектами?

let variable1 = { name: 'Jim' }
let variable2 = variable1;


➡️ Сейчас в variable2 лежит объект, очень похожий на variable1. На самом деле это один и тот же объект, что очень просто проверить.

variable2.name = 'John';
console.log(variable1); // { name: 'John' }
console.log(variable2); // { name: 'John' }


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

#JavaScript #JS

CodeBase | Frontend
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
This media is not supported in your browser
VIEW IN TELEGRAM
🗣Boxy Preloaders — градиентные прелоадеры.

Реализована с помощью CSS и JavaScript

🔗 Посмотреть код

#анимация #css #javascript

CodeBase | Frontend
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
⚡️ Замыкание - это одно из ключевых понятий в JavaScript, которое позволяет скрыть переменные и функции от внешнего доступа.

➡️ Функция createGreeter возвращает анонимную функцию, которая сохраняет доступ к переменной greeting. Однако никто, кроме этой функции, не может больше обратиться к этой переменной.

function createGreeter(greeting) {
return function(name) {
console.log(greeting + ', ' + name);
}
}

const sayHello = createGreeter('Hello');
sayHello('Joe'); // Hello, Joe


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

function apiConnect(apiKey) {

function get(route) {
return fetch(${route}?key=${apiKey});
}

function post(route, params) {
return fetch(route, {
method: 'POST',
body: JSON.stringify(params),
headers: {
'Authorization': Bearer ${apiKey}
}
})
}

return { get, post }

}

const api = apiConnect('my-secret-key');
// больше нет необходимости передавать API-ключ,
// он сохранен в замыкании функции api
api.get('
http://www.example.com/get-endpoint');
api.post('http://www.example.com/post-endpoint', { name: 'Joe' });


Если вам интересно изучить данный вопрос более подробно, добавьте огня и мы подготовим для вас еще больше годной инфы!🔥🔥🔥

CodeBase | Frontend
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19
🗣 Spread - это оператор в JavaScript, который позволяет развернуть выражения там, где требуется использовать несколько аргументов.

В случае с функцией Math.max(), она не может принять массив arr напрямую, потому что нет функции, которая принимает массив в качестве аргумента. Math.max() ожидает отдельные числа в качестве аргументов. Оператор spread (три точки - ...) позволяет извлечь отдельные элементы из массива и передать их как аргументы.

const arr = [4, 6, -1, 3, 10, 4];
const max = Math.max(...arr);

console.log(max);
// 10


CodeBase | Frontend
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
⚡️ Деструктуризация в JavaScript - это эффективный метод извлечения данных, сохраненных в объектах.

const obj = {
name: 'Joe',
food: 'cake'
}
const { name, food } = obj;
console.log(name, food); // 'Joe' 'cake'


🔵 Язык JavaScript позволяет даже сохранять свойства в переменных с другими именами.

const obj = {
name: 'Joe',
food: 'cake'
}
const { name: myName, food: myFood } = obj;
console.log(myName, myFood); // 'Joe' 'cake'


🔵 Используя деструктуризацию, можно передавать параметры в функцию без опасений относительно изменений этих параметров. Данный подход распространен в React и может быть вам уже знаком.

const person = {
name: 'Eddie',
age: 24
}
function introduce({ name, age }) {
console.log(I'm ${name} and I'm ${age} years old!);
}
console.log(introduce(person)); // "I'm Eddie and I'm 24 years old!"


CodeBase | Frontend
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
🗣Rest-параметры позволяют принимать произвольное количество аргументов, объединяя их в массив.

function myFunc(...args) {
console.log(args[0] + args[1]);
}
myFunc(1, 2, 3, 4);
// 3


CodeBase | Frontend
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Иногда возникает путаница при использовании методов map(), filter() и reduce(), которые предназначены для трансформации массива или вычисления агрегатного значения.

➡️ map() преобразует каждый элемент массива с помощью заданной функции и возвращает новый массив:

const arr = [1, 2, 3, 4, 5, 6];
const mapped = arr.map(el => el + 20);
console.log(mapped); // [21, 22, 23, 24, 25, 26]

➡️ filter() возвращает новый массив, содержащий элементы, для которых переданная функция возвращает true:

const arr = [1, 2, 3, 4, 5, 6];
const filtered = arr.filter(el => el === 2 || el === 4);
console.log(filtered); // [2, 4]

➡️ reduce() позволяет работать с элементами массива и сохранять промежуточные результаты:

const arr = [1, 2, 3, 4, 5, 6];
const reduced = arr.reduce((total, current) => total + current);
console.log(reduced); // 21

Если вам нравится такая подача, добавьте реакций и мы будем выпускать такое чаще!)🔥🔥🔥

CodeBase | Frontend
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍4
🗣 Модальное окно — это эмуляция диалогового окна браузера, появляющегося поверх страницы в ответ на действия пользователя и блокирующего доступ к основному содержимому страницы.

Используется для : отображения второстепенного содержимого на странице

Подходит для:
настроек, создания новых документов, заполнения компактных форм или шагов пошагового мастера.

Например, модальное окно может использоваться для ввода адреса - при клике на ссылку модальное окно открывается.

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

➡️ Код прикреплю в комментарии

CodeBase | Frontend
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
This media is not supported in your browser
VIEW IN TELEGRAM
🟢Анимация эффектов кнопок при наведении с использованием CSS

➡️ Посмотреть код

CodeBase | Frontend
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥1
👩‍💻 ТОП-3 JavaScript ТРЮКА С МАССИВАМИ 👩‍💻

➡️ Фильтрация уникальных значений

🟢 С появлением нового типа объектов Set в стандарте ES6 и его комбинацией со спред-оператором (...), можно быстро создать новый массив из старого, содержащий только уникальные значения.

const array = [1, 1, 2, 3, 5, 5, 1]
const uniqueArray = [...new Set(array)];

console.log(uniqueArray); // [1, 2, 3, 5]


➡️ Кэширование длины в цикле

🟢 При изучении JavaScript, мы всегда встречаем стандартный цикл for в учебных материалах:

for (let i = 0; i < array.length; i++){
console.log(i);
}


🟢 Этот шаблон следует использовать, верно? Однако, он не является оптимальным. На каждой итерации будет пересчитываться длина массива array. И хотя иногда это может быть полезно, чаще всего более эффективным будет кэшировать ее после первого расчета. Для этого мы создаем переменную length вместе с определением счетчика цикла в первой части условия:

for (let i = 0, length = array.length; i < length; i++){
console.log(i);
}

🟢 Такой код остается лаконичным, но при работе с большими массивами будет немного более эффективным.

➡️ Укорачивание

🟢 Один из широко известных JavaScript-трюков - сокращение массива, который всегда полезно вспомнить.

🟢 Для удаления нескольких значений с конца массива не обязательно использовать методы slice(), splice() или pop(). Просто присвойте новое значение свойству length массива:

let array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
array.length = 4;

console.log(array); // [0, 1, 2, 3]


🟢 Этот подход работает только с массивами, так как с Set, например, данный трюк не сработает.

Если понравился пост, добавь 🔥 🔥 🔥
И, мы обязательно разберем данный вопрос подробнее!

CodeBase | Frontend
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍1
🖥 Генераторы в JavaScript

С момента появления в JavaScript функций-генераторов прошло немало времени, но многие разработчики все еще относятся к этой звездочке (астериск) с некоторой опаской.

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

Существует возможность, что генератор будет иметь конечное число промежуточных точек, и когда они закончатся, выполнение функции остановится, а вызов next вернет undefined.

function* greeter() {
yield 'Hi';
yield 'How are you?';
yield 'Bye';
}

const greet = greeter();

console.log(greet.next().value);
// 'Hi'

console.log(greet.next().value);
// 'How are you?'

console.log(greet.next().value);
// 'Bye'

console.log(greet.next().value);
// undefined


🗣Но никто не мешает зациклить функцию для бесконечной генерации значений:

function* idCreator() {
let i = 0;
while (true)
yield i++;
}

const ids = idCreator();

console.log(ids.next().value);
// 0

console.log(ids.next().value);
// 1

console.log(ids.next().value);
// 2
// etc...

👀 Обратите внимание, что при первом вызове функции происходит лишь создание объекта-генератора с методом next(), но сама функция не возвращает никакого значения.


CodeBase | Frontend
Please open Telegram to view this post
VIEW IN TELEGRAM
👍91
This media is not supported in your browser
VIEW IN TELEGRAM
💩Coderbyte - это платформа, где доступно более 200 задач, которые вы можете решать прямо в онлайн-режиме на одном из 10 языков программирования.

CodeBase | Frontend
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3