npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@cloud-ru/ft-config-stylelint

v1.1.0

Published

stylelint config

Downloads

5

Readme

@cloud-ru/ft-config-stylelint

Installation

npm i @cloud-ru/ft-config-stylelint

Вместе с пакетом приезжают все необходимые зависимости для работы stylelint в вашем приложении.

Usage

// projectRoot/stylelint.config.js
module.exports = {
  extends: '@cloud-ru/ft-config-stylelint',
  //some additional rules if needed
}

Важно

При парсинге стилей linaria могут возникать ошибки вида CssSyntaxError.

Stylelint будет говорить, что есть ошибка и при этом будет ошибочно показывать другой номер строки.

В большинстве случаев номер строки с ошибкой следует понимать как номер строки внутри css кода, а не номер строки всего файла. Но к сожалению так работает не всегда.

Искать эти ошибки в блоках styled.div, css и им подобных.

Примеры таких ошибок:

  • не проставлена закрывающая скобка }
  • не проставлена точка с запятой
  • комментарии вида //, а нужны /* */

z-index

Предполагается, что вам не придётся столкнуться со свойством z-index при следующих условиях:

  1. У вас грамотная вёрстка с корректным порядком элементов
  2. Вы используете компоненты из UI Kit.

Однако, если же вам всё же пришлось использовать свойство z-index для настройки корректного порядка элементов по оси z, то:

  1. Обратите внимание на вёрстку и перепроверьте, что иная реализация невозможна.
  2. У вас сложный компонент, требующий особого решения. Некоторые случаи (например проблемы с порядком выпадающих элементов) можно реализовать через React.Portal (подробнее чуть ниже).
  3. Скорее всего только в крайнем случае z-index будет единственным (=> валидным) решением (что достаточно редко).

Способы определения порядка DOM элементов по оси z

Определить порядок элемента по оси z можно двумя способами:

  1. С помощью z-index.
    Мы не рекомендуем использовать z-index в стилях элементов, поскольку считаем, что этот подход в большинстве случаев является вредным костылём и приводит к ещё большему количеству костылей (в виде использования z-index) впоследствии. Особо рискованно использовать это свойство при микросервисной архитектуре – фикс/фича в одном микрофронте может негативно повлиять на корректную работу другого, и навести в этом всём порядок может быть непростой задачей (потребуется одновременная выкатка многих микросервисов с исправлениями).
  2. С помощью нативного приоритета элементов в DOM дереве.

Допустим у нас есть элемент-родитель А и у него два ребёнка – B и C. Если ребёнок C находится в DOM дереве ниже соседа (С), то он будет отображаться поверх него.

<A>
  <B/>
  <C/>
</A>  

И наоборот, если ребёнок B находится в DOM дереве ниже B, то элемент B будет приоритетнее/ближе к пользователю по оси z.

<A>
  <C/>
  <B/>
</A>  

Всё крайне просто – очерёдность элементов влияет на их порядок отображения.

React.Portal

Для реализации подобного подхода в React в большинстве случаев достаточно просто соблюдать корректный порядок элементов при вёрстке.
В более сложных (но достаточно редких) ситуациях на помощь могут прийти порталы React.Portal. В наших UI Kit'ах все всплывающие элементы (модкалки, тултипы, дроверы, выпадающие списки и пр.) рендерятся в порталах, которые append’ятся в единый элемент – <body>. Благодаря этому приоритет всплывающих элементов по оси z определяется очередностью попадания этих порталов в DOM дерево.

Советуем посмотреть видео "Как мы решили проблемы с z-index" от АйТи Синяк, иллюстрирующее данный подход.

Summary

  1. Располагайте компоненты в верстке в правильном порядке
  2. По возможности всегда используйте компоненты из UI Kit'а - они рисуются в порталах.
  3. Используйте порталы напрямую, если у вас сложный кастомный компонент.
  4. Используйте z-index только в самом крайнем случае, когда рекомендации выше не помогли и добиться желаемого результата не удалось.