Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Добавляет статью про Псевдоприватные кастомные свойства #5577

Open
wants to merge 6 commits into
base: main
Choose a base branch
from

Conversation

Alex-Andr-19
Copy link

@Alex-Andr-19 Alex-Andr-19 commented Dec 6, 2024

Описание

Создание статьи в раздел Рецепты про перенос миксинов SASS'а на переменные CSS в атомарных классах.

https://content-5577.dev.doka.guide/recipes/pseudo-private-custom-property/

Чек-лист

  • Текст оформлен согласно руководству по стилю
  • Ссылки на внутренние материалы начинаются со слеша и заканчиваются слэшем либо якорем на заголовок (/css/color/, /tools/json/, /tools/gulp/#kak-ponyat)
  • Ссылки на картинки, видео и демки относительные (images/example.png, demos/example/, ../demos/example/)

@github-actions github-actions bot added the рецепт Контент для Рецептов label Dec 6, 2024
recipes/virtual-variables/index.md Outdated Show resolved Hide resolved
Comment on lines 86 to 90
Пытаясь найти способ реализовать миксины на CSS'е, я набрёл на видео (ссылку потерял), в котором была концепция "виртуальных" CSS переменных. Пример:

```css
span.plain-text {
--_text-color: var(--text-color, #ddd);
Copy link
Contributor

@baileys-li baileys-li Dec 6, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Это так называемые sudo кастомные свойства / псевдо приватные кастомные свойства
Скорее всего речь про видео Кевина Повелла

Так же оригинальный рецепт Леи Веру

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Да, именно из этого видео взял идею. Обязательно вставлю как источник

Comment on lines 115 to 126
Я понял какой потенциал стоит за таким подходом я решил применить это к стилизации размера текста:

```css
[class*="static-font"] {
--_font-size: var(--font-size, 1em);
--_line-height: var(--line-height, calc(var(--_font-size) + 4px));

font-size: var(--_font-size);
line-height: var(--_line-height);
}

.static-font__M {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Вне контекста этот код выглядит перегруженным и нарушением принципа KISS.

Не понятно, что мешает сделать так

<span class="static-font another-class">Lorem ipsum</span>
.static-font {
    font-size: 1em;
    line-height: calc(1em + 4px);
}

.another-class {
    font-size: 20px;
    line-height: 26px;
}

То есть старый добрый каскад даёт тот же эффект при меньшем коде.

Обычно приватные кастомные свойства нужны для компонентных фреймворков, где ты не можешь быть на 100% уверен в каком порядке сборщик соберёт стили. И в итоге тебе, чтобы гарантировано перебить внутренние стили компонента нужно либо перебивать вес селектора, либо делать кастомные свойства с дефолтом (в том числе и псевдо приватные), либо разбить по css слоям, если браузерная поддержка позволяет.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Таким образом, как описал я, в проект может зайти новый разработчик, увидеть все стандартные размеры текста, которые описаны в дизайн системе и легко их применить, воткнув всего один класс.
Так же, если понадобиться создать что-то отличающееся от стандартных шрифтов ему достаточно создать класс который будет иметь в своем названии static-font, реализовать два свойства и все будет работать

recipes/virtual-variables/index.md Outdated Show resolved Hide resolved
@solarrust solarrust changed the title feat: Create article about virtual variables Добавляет статью про Виртуальные переменные Dec 6, 2024
@Alex-Andr-19 Alex-Andr-19 changed the title Добавляет статью про Виртуальные переменные Добавляет статью про Псевдоприватные кастомные свойства Dec 6, 2024
@ra1nbow1
Copy link
Member

ra1nbow1 commented Dec 6, 2024

@solarrust @HellSquirrel @TatianaFokina девочки, привет! Может покажусь каким-то негативно настроенным, но вам не кажется, что повествование от первого лица выглядит не совсем уместно? 😁

Co-authored-by: Matvey Romanov <38384967+ra1nbow1@users.noreply.github.com>
@Alex-Andr-19
Copy link
Author

@solarrust @HellSquirrel @TatianaFokina девочки, привет! Может покажусь каким-то негативно настроенным, но вам не кажется, что повествование от первого лица выглядит не совсем уместно? 😁

Жду обратной связи. Если надо – поправлю. Сам думаю, что не уместно было делать акцент на первом лице.

Copy link
Member

@Inventoris Inventoris left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Alex-Andr-19 Привет!

Во-первых, большое спасибо тебе за статью 🌟

Во-вторых, вот что думаю: я пробежался по изменениям, и там довооольно много чего стоит пересмотреть. Я предлагаю тебе для начала взглянуть на документацию, особенно заострить внимание на структуре статьи и стайлгайде. Затем прочесть 5-10 любых статей на Доке, лучше из раздела рецепты (ты ведь туда хочешь сделать вклад?), и обратить внимание на общий вайб, на подход к изложению итд. А потом оценить материал самостоятельно ещё раз, хорошо?

@Alex-Andr-19
Copy link
Author

@Inventoris Хорошо, спасибо за совет

@Alex-Andr-19
Copy link
Author

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

@github-actions github-actions bot added the статья Расширенный материал label Dec 25, 2024
Copy link

Превью контента из 6e6fd67 опубликовано.

@TatianaFokina
Copy link
Member

TatianaFokina commented Dec 25, 2024

Всем привет, сейчас решил изменить подход к объяснению технологии, но долго не мог найти достойный пример.

Кажется, это этакий синтаксический сахар, который не добавляет новой функциональности, а улучшает старую. Так что можно показать, как псевдоприватные свойства работают в каком-нибудь популярном кастомном компонентике, о котором ещё нет рецепта. @solarrust, @skorobaeus, есть какие-то идеи, что за копонент можно сделать для рецепта?

Другой и более простой вариант — перенести материал в раздел CSS, тут @solarrust лучше подскажет, как его лучше обозвать там и в какой подразделе лучше хранить.

@Alex-Andr-19
Copy link
Author

@TatianaFokina Согласен на счёт возможности переноса в тему CSS. Думаю в том виде, к которому пришла статья, она действительно будет более уместна.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
рецепт Контент для Рецептов статья Расширенный материал
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants