Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

UIkit 3 Π½Π° русском. Π£Ρ€ΠΎΠΊΠΈ, ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹, Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ°.

Как ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ стили UIkit ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ собствСнныС Ρ‚Π΅ΠΌΡ‹ с Less.

UIkit основан Π½Π° Less. ПослС установки UIkit Π² вашСм распоряТСнии Π±ΡƒΠ΄ΡƒΡ‚ всС исходники. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ собствСнныС Ρ‚Π΅ΠΌΡ‹, Π° Π·Π°Ρ‚Π΅ΠΌ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΈΡ… Π² сборки ДокумСнтация ΠΏΠΎ Less Π½Π° английском ΠΈΠ»ΠΈ Π½Π° русском.


Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ UIkit ΠΈ Less, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ исходники Less Π² CSS. Π•ΡΡ‚ΡŒ Π΄Π²Π° ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°: Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ собствСнный процСсс сборки ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ сцСнарии сборки, Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Π΅ Π² UIkit.

ИспользованиС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ сборки

Для Π½Π°Ρ‡Π°Π»Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ основныС стили Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° (uikit.less) ΠΈ Ρ‚Π΅ΠΌΡƒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ (uikit.theme.less) Π² свой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. Π—Π°Ρ‚Π΅ΠΌ скомпилируйтС Ρ„Π°ΠΉΠ»Ρ‹ Π»ΡŽΠ±Ρ‹ΠΌ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ для вас способом. Если Π²Ρ‹ Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с Less, ΠΏΡ€ΠΎΡ‡Ρ‚ΠΈΡ‚Π΅ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ Less Π½Π° английском ΠΈΠ»ΠΈ Π½Π° русском.

// Π˜ΠΌΠΏΠΎΡ€Ρ‚ UIkit стандартной Ρ‚Π΅ΠΌΡ‹ (ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ»Π° uikit. less Ρ‚ΠΎΠ»ΡŒΠΊΠΎ со стилями ядра)
@import "node_modules/uikit/src/less/uikit.theme.less";

// РазмСститС здСсь ваш ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΊΠΎΠ΄, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, примСси ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅.
// Π Π°Π·Π΄Π΅Π» с ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎ создании Ρ‚Π΅ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π½ΠΈΠΆΠ΅ Π½Π° этой страницС.

ИспользованиС Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… сцСнариСв сборки

Для пСрСопрСдСлСния стилСй UIkit ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ сборку для создания кастомизированной вСрсии CSS. Π—Π°Ρ‚Π΅ΠΌ всС измСнСния Π²Ρ‹ смоТСтС Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² свой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈ большС ΠΊ этому Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ.

Для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ своСй Ρ‚Π΅ΠΌΡ‹ Π½Π° Less Π² сборку, создайтС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ /custom ΠΈ размСститС Π² Π½Π΅ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹.

Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ДирСктория /custom Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π² .gitignore, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΠΎΠΏΠ°ΡΡ‚ΡŒ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ UIkit. Но Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ свои Π½Π°Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ· ΠΏΠ°ΠΏΠΊΠΈ /custom Π² собствСнный Git Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. Π’ этом случаС ваши Ρ‚Π΅ΠΌΡ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²Π΅Ρ€ΡΠΈΠΎΠ½Π½ΠΎΡΡ‚ΡŒ ΠΈ Π½Π΅ ΠΌΠ΅ΡˆΠ°Ρ‚ΡŒ основным Ρ„Π°ΠΉΠ»Π°ΠΌ UIkit.

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ Π²ΠΈΠ΄Π° /custom/my-theme. less (Π½Π°Π·ΠΎΠ²ΠΈΡ‚Π΅ ΠΊΠ°ΠΊ хочСтся) ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ядра (uikit.less) с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ встроСнной Ρ‚Π΅ΠΌΡ‹ (uikit.theme.less) ΠΈΠ»ΠΈ Π±Π΅Π· Π½Π΅Π΅.

// Π˜ΠΌΠΏΠΎΡ€Ρ‚ UIkit стандартной Ρ‚Π΅ΠΌΡ‹ UIkit (ΠΈΠ»ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„Π°ΠΉΠ» ядра uikit.less с Π±Π°Π·ΠΎΠ²Ρ‹ΠΌΠΈ стилями)
@import "../src/less/uikit.theme.less";

// РазмСститС здСсь ваш ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΊΠΎΠ΄, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, примСси ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅.
// Π Π°Π·Π΄Π΅Π» с ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎ создании Ρ‚Π΅ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π½ΠΈΠΆΠ΅ Π½Π° этой страницС.

Для компиляции ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° UIkit ΠΈ созданной Π²Π°ΠΌΠΈ Ρ‚Π΅ΠΌΡ‹ Π² CSS, запуститС встроСнный таск compile .

# ЗапуститС ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· для установки зависимостСй
yarn install

# ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ всСх исходников, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΡƒΡŽ Ρ‚Π΅ΠΌΡƒ
yarn compile

# ΠŸΡ€ΠΈΠ²Ρ‹Ρ‡Π½Ρ‹ΠΉ таск Watch слСдит Π·Π° измСнСниями Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ Π½Π° Π»Π΅Ρ‚Ρƒ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Ρ„Π°ΠΉΠ»Π°
yarn watch

Π‘Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² ΠΏΠ°ΠΏΠΊΠ΅ /dist/css

.

Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠšΠ°ΡΡ‚ΠΎΠΌΠ½Π°Ρ Ρ‚Π΅ΠΌΠ° Ρ‚Π°ΠΊΠΆΠ΅ доступна Π² тСстовых Ρ„Π°ΠΉΠ»Π°Ρ…, просто Π²Π²Π΅Π΄ΠΈΡ‚Π΅ Π² вашСм Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ адрСс / test ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ свою Ρ‚Π΅ΠΌΡƒ Π² Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΌΡΡ мСню.


ΠœΡ‹ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ создали, настроили ΠΈ ΡƒΠΌΠ΅Π΅ΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΊΠΎΠ΄ Less. ΠŸΡ€ΠΈΡΡ‚ΡƒΠΏΠ°Π΅ΠΌ ΠΊ созданию Ρ‚Π΅ΠΌ. Если Π²Π°ΠΌ Ρ€Π°Π½Π΅Π΅ Π½Π΅ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Less, докумСнтация Π² ΠΏΠΎΠΌΠΎΡ‰ΡŒ. Но ΠΏΡ€Π΅ΠΆΠ΄Π΅ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с нашими рСкомСндациями.

ИспользованиС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Less

ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΠΉΡ‚Π΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ΡΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΈ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΈΡ… Π² своСй Ρ‚Π΅ΠΌΠ΅. НапримСр, глобальная пСрСмСнная Ρ†Π²Π΅Ρ‚Π° ссылок находится Π² Ρ„Π°ΠΉΠ»Π΅

/src/less/components/variables.less:

// Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ
@global-link-color: #4091D2;

Нашли Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ пСрСзаписываСм Π΅Π³ΠΎ Π² своСй Ρ‚Π΅ΠΌΠ΅ ΠΏΠΎ адрСсу /custom/my-theme.less:

// НовоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
@global-link-color: #DA7D02;

Π’ процСссС компиляции Π±ΡƒΠ΄Π΅Ρ‚ создан Ρ„Π°ΠΉΠ», ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΉ вашС Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. ИзмСняя Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, слСдуСт ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π³Π΄Π΅-Ρ‚ΠΎ Π΅Ρ‰Π΅. НапримСр, ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ² Ρ†Π²Π΅Ρ‚ ссылок глобально, ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ Π½ΠΎΠ²Ρ‹Π΅ значСния Π²ΠΎ всСх ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… ссылки.

ИспользованиС Ρ…ΡƒΠΊΠΎΠ²

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΎΠ²Π΅Ρ€Ρ…Π΅Π΄Π°, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ примСси(миксины) ΠΈΠ· Less, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΠΊ ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ сСлСкторам ΠΈΠ· исходников UIkit ΠΈ примСняСм Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свойства. Π‘Π΅Π»Π΅ΠΊΡ‚ΠΎΡ€Ρ‹ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π²ΠΎ всСх Ρ„Π°ΠΉΠ»Π°Ρ…. К Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅, Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ измСнСния ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ‰Π΅.

НайдитС ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с Less Ρ„Π°ΠΉΠ»ΠΎΠΌ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ /src/less/components/card.less ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ стили ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Card:

// CSS ΠΏΡ€Π°Π²ΠΈΠ»Π°
.uk-card {
    position: relative;
    box-sizing: border-box;

    // Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅ΠΌ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… свойств
    .hook-card;
}

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² свою Ρ‚Π΅ΠΌΡƒ ΠΏΠΎ адрСсу /custom/my-theme.less ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π½ΠΎΠ²Ρ‹Π΅ стили:

// добавляСм Π½ΠΎΠ²Ρ‹ΠΉ ΡΡ‚ΠΈΠ»ΡŒ
.hook-card() { color: #000; }

Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ Ρ…ΡƒΠΊΠΈ

Если Π½Π΅ нашлось Π½ΡƒΠΆΠ½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ»ΠΈ Ρ…ΡƒΠΊΠ°, Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ свой собствСнный сСлСктор. Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ .hook-card-misc hook ΠΈ создайтС свой собствСнный сСлСктор. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ваши Π½ΠΎΠ²Ρ‹Π΅ сСлСкторы Π² Π½ΡƒΠΆΠ½Ρ‹Ρ… мСстах скомпилированного Ρ„Π°ΠΉΠ»Π° CSS. ΠŸΡ€ΠΎΡΡ‚ΠΎ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π½ΠΎΠ²Ρ‹Π΅ строки Π² Ρ„Π°ΠΉΠ» своСй Ρ‚Π΅ΠΌΡ‹ Π² /custom/my-theme.less:

// Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΈΠΌΠ΅ΡΡŒ
.hook-card-misc() {

    // Π½ΠΎΠ²ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ
    .uk-card a { color: #f00; }
}

Π’Ρ‹ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Inverse

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Inverse добавляСт стили для инвСрсии стилСй. Если Π²Ρ‹ Π½Π΅ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½Π²Π΅Ρ€ΡΠΈΡŽ стилСй Π² своСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅, просто ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π΅Π΅ Π² Less. Для ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Less color-mode (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, @card-primary-color-mode), ΠΈ Π·Π°Π΄Π°ΠΉΡ‚Π΅ Π΅ΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ none.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ инвСрсии:

@inverse-global-color-mode: none;

Π•Ρ‰Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ инвСрсии для ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²:

// Card
@card-primary-color-mode: none;
@card-secondary-color-mode: none;

// Navbar
@navbar-color-mode: none;

// Off-canvas
@offcanvas-bar-color-mode: none;

// Overlay
@overlay-primary-color-mode: none;

// Section
@section-primary-color-mode: none;
@section-secondary-color-mode: none;

// Tile
@tile-primary-color-mode: none;
@tile-secondary-color-mode: none;

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… ΠΌΡ‹ добавляли всС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ стили Π² Ρ„Π°ΠΉΠ» /custom/my-theme. less. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΈΠΌΠ΅Π΅Ρ‚ мСсто Π±Ρ‹Ρ‚ΡŒ лишь Π² случаС Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Если стилСй ΠΌΠ½ΠΎΠ³ΠΎ, Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот Ρ„Π°ΠΉΠ» Π² качСствС Ρ‚ΠΎΡ‡ΠΊΠΈ Π²Ρ…ΠΎΠ΄Π° (entry) для компилятора Less. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΏΠ°ΠΏΠΊΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΈ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ стили Ρ‚Π°ΠΌ. Если Ρƒ вас Π½Π΅Ρ‚ ΠΎΠΏΡ‹Ρ‚Π° проСктирования Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π² качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° структуру ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° UIkit здСсь

/src/less/uikit.theme.less.

Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ создаСтС Ρ‚Π΅ΠΌΡƒ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ /custom, Π½ΠΎ это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ Ρ‚Π°ΠΊ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ собствСнныС ΠΏΡƒΡ‚ΠΈ ΠΈ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ кастомный процСсс сборки ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

custom/

    <!-- вставляСм Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ Ρ„Π°ΠΉΠ» для компилятора Less -->
    my-theme.less

    <!-- дирСктория для хранСния Ρ„Π°ΠΉΠ»ΠΎΠ² Less -->
    my-theme/

        <!-- Π€Π°ΠΉΠ» ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° всСх ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ -->
        _import.less

        <!-- ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» кастомизированного ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° -->
        accordion.
less alert.less ...

Π’ΠΎΡ‡ΠΊΠΈ Π²Ρ…ΠΎΠ΄Π° для компилятора Less, /custom/my-theme.less:

// Π―Π΄Ρ€ΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°
@import "../../src/less/uikit.less";

// Π’Π΅ΠΌΠ°
@import "my-theme/_import.less";

Π’ ΠΏΠ°ΠΏΠΊΠ΅ вашСй Ρ‚Π΅ΠΌΡ‹ Π»Π΅ΠΆΠΈΡ‚ ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ элСмСнты Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… ΠΏΠ°ΠΏΠΎΠΊ custom/my-theme/_import.less:

@import "accordion.less";
@import "alert.less";
// ...

Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этой настройки Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅. Π­Ρ‚ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ CSS Ρ„Π°ΠΉΠ». Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ Π² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ порядка ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°, ΠΊΠ°ΠΊ ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π² src/less/components/_import.less.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды

  • ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды
  • ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды
  • Π§Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅?
  • Π’Π°ΠΆΠ½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹
  • Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…
  • ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ /etc/env.d
  • Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ env-update
  • Π›ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…
  • ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅
  • БСансовыС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды¢

Π§Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅?ΒΆ

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ срСды β€” это ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡƒΡŽ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ»ΠΈ нСсколькими прилоТСниями. МногиС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ (особСнно Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΈ Π² Linux) находят этот ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ нСсколько странным ΠΈΠ»ΠΈ нСуправляСмым. Но это Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»Π΅Π½ΠΈΠ΅ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½ΠΎ: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‡Π΅Π½ΡŒ Π»Π΅Π³ΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ настройку Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

Π’Π°ΠΆΠ½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ΒΆ

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ описываСтся ряд ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² систСмС Linux. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π΄Π°Π»Π΅Π΅.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°ΡΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅
PATHΠ’ этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ содСрТится список ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… двоСточиями, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… систСма ΠΈΡ‰Π΅Ρ‚ исполняСмыС Ρ„Π°ΠΉΠ»Ρ‹. Если Π²Ρ‹ Π²Π²ΠΎΠ΄ΠΈΡ‚Π΅ имя исполняСмого Ρ„Π°ΠΉΠ»Π° Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ls, rc-update ΠΈΠ»ΠΈ emerge), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ находится Π½ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· пСрСчислСнных здСсь ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², этот Ρ„Π°ΠΉΠ» Π½Π΅ запустится (Ссли, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π²Ρ‹ Π½Π΅ ΡƒΠΊΠ°Π·Π°Π»ΠΈ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ /bin/ls).
ROOTPATHΠ£ этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚Π°ΠΊΠΎΠ΅ ΠΆΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΈ Ρƒ PATH, Π½ΠΎ Π² Π½Π΅ΠΉ ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ Π²Π²ΠΎΠ΄Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ с ΠΏΡ€Π°Π²Π°ΠΌΠΈ root.
LDPATHΠ’ этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ содСрТится список ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… двоСточиями, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… динамичСский ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Ρ‰ΠΈΠΊ ΠΈΡ‰Π΅Ρ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.
MANPATHΠ’ этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ содСрТится список ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… двоСточиями, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄Π° man ΠΈΡ‰Π΅Ρ‚ страницы справки.
INFODIRΠ’ этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ содСрТится список ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… двоСточиями, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄Π° info ΠΈΡ‰Π΅Ρ‚ info-страницы.
PAGERΠ’ этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ содСрТится ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅ΠΉ постранично ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ содСрТимоС Ρ„Π°ΠΉΠ»ΠΎΠ², Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ less ΠΈΠ»ΠΈ more.
EDITORΠ’ этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ содСрТится ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ для измСнСния Ρ„Π°ΠΉΠ»ΠΎΠ², Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ vi ΠΈΠ»ΠΈ nano.
KDEDIRSΠ’ этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ содСрТится список ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… двоСточиями, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… находятся рСсурсы KDE.
CLASSPATHΠ’ этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ содСрТится список ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… двоСточиями, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… находятся классы Java.
CONFIG_PROTECTΠ’ этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ содСрТится список ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², Π·Π°Ρ‰ΠΈΡ‰Π°Π΅ΠΌΡ‹Ρ… Portage ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ.
CONFIG_PROTECT_MASKΠ’ этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ содСрТится список ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Ρ… ΠΈΠ· Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Portage ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ.

НиТС прСдставлСн ΠΏΡ€ΠΈΠΌΠ΅Ρ€ опрСдСлСния всСх этих ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…:

PATH="/bin:/usr/bin:/usr/local/bin:/opt/bin:/usr/games/bin" 
ROOTPATH="/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin" 
LDPATH="/lib:/usr/lib:/usr/local/lib:/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3" 
MANPATH="/usr/share/man:/usr/local/share/man" 
INFODIR="/usr/share/info:/usr/local/share/info" 
PAGER="/usr/bin/less" 
EDITOR="/usr/bin/vim" 
KDEDIRS="/usr" 
CLASSPATH="/opt/blackdown-jre-1.4.1/lib/rt.jar:." 
CONFIG_PROTECT="/usr/X11R6/lib/X11/xkb /opt/tomcat/conf \
                /usr/kde/3.1/share/config /usr/share/texmf/tex/generic/config/ \
                /usr/share/texmf/tex/platex/config/ /usr/share/config" 
CONFIG_PROTECT_MASK="/etc/gconf" 

Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…ΒΆ

ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ /etc/env.

dΒΆ

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ эти ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎ, Π² Calculate сущСствуСт ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ /etc/env.d. Π’ Π½Ρ‘ΠΌ находится ряд Ρ„Π°ΠΉΠ»ΠΎΠ², Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 00basic, 05gcc ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌ, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ Π² Π½Π°Π·Π²Π°Π½ΠΈΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ².

НапримСр, ΠΏΡ€ΠΈ установкС gcc ebuild создаСт Ρ„Π°ΠΉΠ» /etc/env.d/05gcc, содСрТащий ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ опрСдСлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…:

PATH="/usr/i686-pc-linux-gnu/gcc-bin/3.2" 
ROOTPATH="/usr/i686-pc-linux-gnu/gcc-bin/3.2" 
MANPATH="/usr/share/gcc-data/i686-pc-linux-gnu/3.2/man" 
INFOPATH="/usr/share/gcc-data/i686-pc-linux-gnu/3.2/info" 
CC="gcc" 
CXX="g++" 
LDPATH="/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3" 

Π’ Π΄Ρ€ΡƒΠ³ΠΈΡ… дистрибутивах Π²Π°ΠΌ прСдлагаСтся ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ опрСдСлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… срСды Π² /etc/profile ΠΈΠ»ΠΈ Π³Π΄Π΅-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π΅Ρ‰Π΅. Calculate, с Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ Π²Π°ΠΌ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ срСды, избавляя ΠΎΡ‚ нСобходимости ΡƒΠ΄Π΅Π»ΡΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ многочислСнным Ρ„Π°ΠΉΠ»Π°ΠΌ, содСрТащим опрСдСлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

НапримСр, ΠΊΠΎΠ³Π΄Π° обновляСтся gcc, Ρ‚Π°ΠΊΠΆΠ΅ Π±Π΅Π· малСйшСго участия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ обновляСтся ΠΈ /etc/env.d/05gcc.

ΠžΡ‚ этого Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Π²Π°Π΅Ρ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Portage, Π½ΠΎ ΠΈ Π²Ρ‹, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ. Иногда ΠΎΡ‚ вас ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ глобальная установка ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π’ΠΎΠ·ΡŒΠΌΠ΅ΠΌ, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ http_proxy. ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΎΠ·ΠΈΡ‚ΡŒΡΡ с /etc/profile, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ просто ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» (/etc/env.d/99local) ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ опрСдСлСния Ρ‚ΡƒΠ΄Π°:

http_proxy="proxy.server.com:8080"

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ„Π°ΠΉΠ» для всСх своих ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ быстро ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ всС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π²Π°ΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ вмСстС.

Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ env-updateΒΆ

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ PATH опрСдСляСтся Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„Π°ΠΉΠ»Π°Ρ… Π² /etc/env.d. НСт, Π½Π΅Ρ‚ это Π½Π΅ ошибка: ΠΏΡ€ΠΈ запускС env-update Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ опрСдСлСния ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… срСды, позволяя ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌ (ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ) Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ собствСнныС значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Π½Π΅ влияя Π½Π° ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅.

Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ env-update ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ², находящихся Π² /etc/env. d, Π² Π°Π»Ρ„Π°Π²ΠΈΡ‚Π½ΠΎΠΌ порядкС. ИмСна Ρ„Π°ΠΉΠ»ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с Π΄Π²ΡƒΡ… дСсятичных Ρ†ΠΈΡ„Ρ€. ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ обновлСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ env-update:

          00basic        99kde-env       99local
      +-------------+----------------+-------------+
PATH="/bin:/usr/bin:/usr/kde/3.2/bin:/usr/local/bin" 

ОбъСдинСниС выполняСтся Π½Π΅ всСгда, Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…: KDEDIRS, PATH, CLASSPATH, LDPATH, MANPATH, INFODIR, INFOPATH, ROOTPATH, CONFIG_PROTECT, CONFIG_PROTECT_MASK, PRELINK_PATH ΠΈ PRELINK_PATH_MASK. Для всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Π² послСднСм ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ² (ΠΏΠΎ Π°Π»Ρ„Π°Π²ΠΈΡ‚Ρƒ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ /etc/env.d).

ΠŸΡ€ΠΈ запускС сцСнария env-update ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ всС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды, ΠΈ ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² /etc/profile.env (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Ρ„Π°ΠΉΠ»ΠΎΠΌ /etc/profile). ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π½Π° основС значСния LDPATH создаСтся /etc/ld.so.conf. ПослС этого запускаСтся ldconfig, Ρ‡Ρ‚ΠΎΠ±Ρ‹ вновь ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Π° /etc/ld.so.cache, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ динамичСским ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Ρ‰ΠΈΠΊΠΎΠΌ.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ env-update вступили Π² силу Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, для обновлСния срСды Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

env-update && source /etc/profile

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° обновляСт ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅, Π² Π½ΠΎΠ²Ρ‹Ρ… консолях ΠΈ ΠΈΡ… ΠΏΠΎΡ‚ΠΎΠΌΠΊΠ°Ρ…. Π’ΠΎ Π΅ΡΡ‚ΡŒ, Ссли Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π² X11, потрСбуСтся ΠΈΠ»ΠΈ Π½Π°Π±ΠΈΡ€Π°Ρ‚ΡŒ source /etc/profile Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌΠΎΠΌ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅, ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ X, Ρ‡Ρ‚ΠΎΠ±Ρ‹ всС Π½ΠΎΠ²Ρ‹Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Ρ‹ ΠΎΠ±Ρ€Π°Ρ‰Π°Π»ΠΈΡΡŒ ΠΊ Π½ΠΎΠ²Ρ‹ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ. Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ диспСтчСр Π²Ρ…ΠΎΠ΄Π° Π² систСму, ΡΡ‚Π°Π½ΡŒΡ‚Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ с ΠΏΡ€Π°Π²Π°ΠΌΠΈ root ΠΈ Π½Π°Π±Π΅Ρ€ΠΈΡ‚Π΅ /etc/init.d/xdm restart. Если Π½Π΅Ρ‚, Π²Π°ΠΌ придСтся Π²Ρ‹ΠΉΡ‚ΠΈ ΠΈ снова Π²ΠΎΠΉΡ‚ΠΈ Π² систСму, Ρ‡Ρ‚ΠΎΠ±Ρ‹ X ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π»Π° ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… Π½ΠΎΠ²Ρ‹Π΅ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

Π›ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…ΒΆ

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ΒΆ

Π”Π°Π»Π΅ΠΊΠΎ Π½Π΅ всСгда Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ глобально. НапримСр, Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ /home/my_user/bin ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ (Π³Π΄Π΅ Π²Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ) ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ PATH, Π½ΠΎ ΠΏΡ€ΠΈ этом Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ это Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ появилось ΠΈ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ PATH Ρƒ всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ срСды локально, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ~/.bashrc ΠΈΠ»ΠΈ ~/.bash_profile. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ PATH Π² ~/.bashrc для Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Π½ΡƒΠΆΠ΄:

#(Π΄Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅ Π±Π΅Π· ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ указания ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³)
PATH="${PATH}:/home/my_user/bin:"

ОбновлСниС вашСй ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ PATH ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π²Ρ‹ΠΉΠ΄Π΅Ρ‚Π΅ ΠΈ снова Π²ΠΎΠΉΠ΄Π΅Ρ‚Π΅ Π² систСму.

БСансовыС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ΒΆ

Иногда Π½ΡƒΠΆΠ½Ρ‹ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ ТСсткиС ограничСния. Π’Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ запуска исполняСмых Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ· ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ созданного Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π±Π΅Π· указания ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΏΡƒΡ‚ΠΈ ΠΊ Π½ΠΈΠΌ, ΠΈ Π±Π΅Π· измСнСния Ρ„Π°ΠΉΠ»Π° ~/.bashrc Ρ€Π°Π΄ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΌΠΈΠ½ΡƒΡ‚.

Π’ этом случаС ΠΌΠΎΠΆΠ½ΠΎ просто ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ PATH для Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ сСанса ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ export. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ присвоСно Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π²Ρ‹ Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚Π΅ сСанс. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ опрСдСлСния сСансовой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ срСды:

export PATH="${PATH}:/home/my_user/tmp/usr/bin"

Π Π°Π±ΠΎΡ‚Π° с CSS | Vue CLI

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Vue CLI ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ для PostCSS, CSS-ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅-процСссоров, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Sass, Less ΠΈ Stylus.

Π£ΠΊΠ°Π·Π°Π½ΠΈΠ΅ ссылок Π½Π° рСсурсы

Π’Π΅ΡΡŒ скомпилированный CSS обрабатываСтся css-loader, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ°Ρ€ΡΠΈΡ‚ΡŒ url() ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ ΠΈΡ… ΠΊΠ°ΠΊ зависимостями модуля. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° рСсурсы, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡƒΡ‚ΠΈ Π½Π° основС локальной Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ структуры. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° Ρ„Π°ΠΉΠ» Π²Π½ΡƒΡ‚Ρ€ΠΈ npm-зависимости ΠΈΠ»ΠΈ Ρ‡Π΅Ρ€Π΅Π· псСвдоним webpack, ΠΏΡƒΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с прСфикса ~ для избСТания двусмыслСнности. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° статичСских рСсурсов.

ΠŸΡ€Π΅-процСссоры

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΡ€Π΅-процСссоры (Sass/Less/Stylus) ΠΏΡ€ΠΈ создании ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Если Π²Ρ‹ этого Π½Π΅ сдСлали, Ρ‚ΠΎ внутрСнняя конфигурация webpack всё Ρ€Π°Π²Π½ΠΎ настроСна для ΠΈΡ… использования. Π’Π°ΠΌ лишь трСбуСтся Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π΄ΠΎΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠΈ для webpack:

# Sass
npm install -D sass-loader sass
# Less
npm install -D less-loader less
# Stylus
npm install -D stylus-loader stylus

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈ использовании webpack 4

ΠŸΡ€ΠΈ использовании webpack вСрсии 4, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π²ΠΎ Vue CLI 4, слСдуСт ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ Π² совмСстимости ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠΎΠ². 10 sass

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… синтаксис Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² *.vue с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ:

<style lang="scss">
$color: red;
</style>

Π‘ΠΎΠ²Π΅Ρ‚ ΠΏΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Sass

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΏΡ€ΠΈ использовании Dart Sass синхронная компиляция Π²Π΄Π²ΠΎΠ΅ быстрСС асинхронной ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΈΠ·-Π·Π° Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Ρ… расходов Π½Π° асинхронныС коллбэки. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ fibers для Π²Ρ‹Π·ΠΎΠ²Π° асинхронных ΠΈΠΌΠΏΠΎΡ€Ρ‚Ρ‘Ρ€ΠΎΠ² ΠΏΠΎ ΠΏΡƒΡ‚ΠΈ синхронного ΠΊΠΎΠ΄Π°. Для этого просто установитС fibers Π² качСствС зависимости ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°:

npm install -D fibers

Π’Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅ΠΉΡ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ это Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, Ρ‚ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ совмСстимости, Π² зависимости ΠΎΡ‚ ОБ ΠΈ окруТСния сборки. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ npm uninstall -D fibers для устранСния ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

АвтоматичСскиС ΠΈΠΌΠΏΠΎΡ€Ρ‚Ρ‹

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ автоматичСски ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ (для Ρ†Π²Π΅Ρ‚ΠΎΠ², ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, примСсСй. ..), ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ style-resources-loader. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ для stylus, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ./src/styles/imports.styl Π² ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ΄Π½ΠΎΡ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΈ Π² ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ„Π°ΠΉΠ» stylus:

// vue.config.js
const path = require('path')
module.exports = {
  chainWebpack: config => {
    const types = ['vue-modules', 'vue', 'normal-modules', 'normal']
    types.forEach(type => addStyleResource(config.module.rule('stylus').oneOf(type)))
  },
}
function addStyleResource (rule) {
  rule.use('style-resource')
    .loader('style-resources-loader')
    .options({
      patterns: [
        path.resolve(__dirname, './src/styles/imports.styl'),
      ],
    })
}

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ vue-cli-plugin-style-resources-loader.

PostCSS

Vue CLI ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ PostCSS Π²Π½ΡƒΡ‚Ρ€ΠΈ сСбя.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ PostCSS Ρ‡Π΅Ρ€Π΅Π· .postcssrc ΠΈΠ»ΠΈ Π»ΡŽΠ±ΡƒΡŽ Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ, которая поддСрТиваСтся postcss-load-config, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ postcss-loader Ρ‡Π΅Ρ€Π΅Π· ΠΎΠΏΡ†ΠΈΡŽ css. loaderOptions.postcss Π² Ρ„Π°ΠΉΠ»Π΅ vue.config.js.

Плагин autoprefixer Π²ΠΊΠ»ΡŽΡ‡Ρ‘Π½ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ†Π΅Π»Π΅Π²Ρ‹Π΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠΎΠ»Π΅ browserslist Π² Ρ„Π°ΠΉΠ»Π΅ package.json.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ ΠΎ прСфиксных CSS ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ…

Π’ сборкС для production Vue CLI ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ваш CSS ΠΈ удаляСт Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Π΅ прСфиксныС ΠΏΡ€Π°Π²ΠΈΠ»Π° CSS, ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°ΡΡΡŒ Π½Π° Ρ†Π΅Π»Π΅Π²Ρ‹Ρ… Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ…. Π‘ autoprefixer Π²ΠΊΠ»ΡŽΡ‡Ρ‘Π½Π½Ρ‹ΠΌ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ всСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ CSS-ΠΏΡ€Π°Π²ΠΈΠ»Π° Π±Π΅Π· прСфиксов.

CSS-ΠΌΠΎΠ΄ΡƒΠ»ΠΈ

CSS-ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π² Ρ„Π°ΠΉΠ»Π°Ρ… *.vue доступны ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ <style module>.

Для ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° CSS ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΡ€Π΅-процСссоров Π² качСствС CSS-ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π² JavaScript, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ имя Ρ„Π°ΠΉΠ»Π° Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Π»ΠΎΡΡŒ Π½Π° .module.(css|less|sass|scss|styl):

import styles from './foo.module.css'
// Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ для всСх ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… ΠΏΡ€Π΅-процСссоров
import sassStyles from './foo.module.scss'

Если Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ . module Π² ΠΈΠΌΠ΅Π½Π°Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ², установитС css.requireModuleExtension Π² false Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„Π°ΠΉΠ»Π° vue.config.js:

// vue.config.js
module.exports = {
  css: {
    requireModuleExtension: false
  }
}

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΈΠΌΠ΅Π½Π° классов для CSS-ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΡ†ΠΈΠΈ css.loaderOptions.css Π² vue.config.js. ВсС настройки css-loader ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ localIdentName ΠΈ camelCase:

// vue.config.js
module.exports = {
  css: {
    loaderOptions: {
      css: {
        // ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ отличаСтся ΠΌΠ΅ΠΆΠ΄Ρƒ Vue CLI v4 ΠΈ v3
        // Для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Vue CLI v3, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ css-loader v1
        // https://github.com/webpack-contrib/css-loader/tree/v1.0.1
        modules: {
          localIdentName: '[name]-[hash]'
        },
        localsConvention: 'camelCaseOnly'
      }
    }
  }
}

ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° настроСк Π² Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠΈ ΠΏΡ€Π΅-процСссоров

Иногда ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ настройки Π² Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ ΠΏΡ€Π΅-процСссора для webpack. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΡ†ΠΈΠΈ css.loaderOptions Π² vue.config.js. НапримСр, для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π²ΠΎ всС стили Sass/Less:

// vue.config.js
module.exports = {
  css: {
    loaderOptions: {
      // ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° настроСк Π² sass-loader
      // @/ это псСвдоним ΠΊ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ src/ поэтому прСдполагаСтся,
      // Ρ‡Ρ‚ΠΎ Ρƒ вас Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Π΅ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ» `src/variables.scss`
      // ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: эта опция называСтся "prependData" Π² sass-loader v8
      sass: {
        additionalData: `@import "~@/variables.sass"`
      },
      // ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ опция `sass` Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΊ ΠΎΠ±ΠΎΠΈΠΌ синтаксисам
      // ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ синтаксис `scss` ΠΏΠΎ сути Ρ‚Π°ΠΊΠΆΠ΅ обрабатываСтся sass-loader
      // Π½ΠΎ ΠΏΡ€ΠΈ настройкС ΠΎΠΏΡ†ΠΈΠΈ `prependData` синтаксис `scss` Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Ρ‚ΠΎΡ‡ΠΊΡƒ с запятой
      // Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ для `sass` Ρ‚ΠΎΡ‡ΠΊΠΈ с запятой Π½Π΅ трСбуСтся
      // Π² этом случаС синтаксис `scss` ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΡ†ΠΈΠΈ `scss`
      scss: {
        additionalData: `@import "~@/variables. scss";`
      },
      // ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° настроСк Less.js Π² less-loader
      less:{
        // http://lesscss.org/usage/#less-options-strict-units `Global Variables`
        // `primary` β€” имя поля Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…
        globalVars: {
          primary: '#fff'
        }
      }
    }
  }
}

Π—Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΡ†ΠΈΠΈ loaderOptions:

  • css-loader
  • postcss-loader
  • sass-loader
  • less-loader
  • stylus-loader

Π‘ΠΎΠ²Π΅Ρ‚

Π­Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅, Ρ‡Π΅ΠΌ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ°ΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ chainWebpack, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ настройки Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… мСстах, Π³Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ.

Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ SASS/LESS ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌΠΈ свойствами CSS | Π°Π²Ρ‚ΠΎΡ€: Sandra

Π― Π½Π°Ρ‡Π°Π» Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ Π΅Ρ‰Π΅ Π² Ρ‚ΠΎ врСмя, ΠΊΠΎΠ³Π΄Π° люди Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ с CSS ΠΊΠ°ΠΊ способом настройки Π΄ΠΈΠ·Π°ΠΉΠ½Π° своих ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Ρ… записСй Π½Π° Hi5 ΠΈ MySpace (Π½Π΅ ΠΌΠΎΠ³Ρƒ ΠΏΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ всС Π΅Ρ‰Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚).

Как Π±Ρ‹ я Π½ΠΈ считал CSS языком программирования, Π² Π½Π°Ρ‡Π°Π»Π΅ Π΅ΠΌΡƒ Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π»ΠΎ Π±Π°Π·ΠΎΠ²Ρ‹Ρ… возмоТностСй использования ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ/примСсСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ, Π²Π½Π΅Π΄Ρ€ΠΈΠ² прСпроцСссоры LESS ΠΈ SASS/SCSS, ΠΈ Π²Π΄Ρ€ΡƒΠ³ наша Ρ€Π°Π±ΠΎΡ‚Π° стала Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ β€” вмСсто использования поиска/Π·Π°ΠΌΠ΅Π½Ρ‹ для измСнСния ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π° ΠΈΠ»ΠΈ значСния ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° Π²ΠΎ всСм Ρ„Π°ΠΉΠ»Π΅ CSS (ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„Π°ΠΉΠ»Π°Ρ…) ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π²Π½Π΅Π·Π°ΠΏΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС Π² ΠΎΠ΄Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅, ΠΈ это сработало ΠΊΠ°ΠΊ ΡˆΠ°Ρ€ΠΌ . Π­ΠΉ!

Π˜Ρ‚Π°ΠΊ, Π² Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ этими ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ ΠΈ Π½ΠΎΠ²ΠΎΠΉ спСцификациСй CSS β€” ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌΠΈ свойствами (Ρ‚Π°ΠΊΠΆΠ΅ извСстными ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ CSS) ΠΈ Π² Ρ‡Π΅ΠΌ прСимущСство ΠΈΡ… использования?

ΠšΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ ΠΎΡ‚Π²Π΅Ρ‚ β€” , ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ динамичСскиС! Π”Π°Π»Π΅Π΅ слСдуСт Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚. Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹ Π½Π°Π·Π½Π°Ρ‡Π°Π΅Ρ‚Π΅ эту ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ свойству CSS (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ†Π²Π΅Ρ‚Ρƒ, отступу, полю ΠΈ Ρ‚. Π΄.):

ОбъявлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ LESS ΠΈ SCSS

Π’ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… свойствах CSS Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π΄Π²ΠΎΠΉΠ½ΠΎΠ΅ Ρ‚ΠΈΡ€Π΅ --variable-name , Π½ΠΎ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ дСйствия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Ρ‚ΠΎΠΌΡƒ, ΠΊΠ°ΠΊ это дСлаСтся Π² JavaScript β€” ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Ссли ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ сСлСктор :root . Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ присваиваСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ свойству CSS, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ var(--variable-name) β€” Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ β€” ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΅Π΅ всС врСмя Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Ρ…Π»ΠΎΠΏΠΎΡ‚Π½ΠΎ, Π½ΠΎ ΠΊ этому ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ°Π΅ΡˆΡŒ.

ОбъявлСниС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ свойства CSS

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²ΠΎ использования var() Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Π΅ значСния, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ свойства CSS Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ использовании Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ значСния Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ: (--variable-name, fallbackValue) .

ИспользованиС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ свойства CSS с Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ

AaΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Π»ΠΎΠΆΠΈΡ‚ΡŒ ΠΈΡ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, var(--variable-name, var(--another-variable-name, fallbackValue) , Ссли Π²Ρ‹ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ πŸ™‚

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ всСвозмоТныС значСния, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ числа, числа с Π΅Π΄ΠΈΠ½ΠΈΡ†Π΅ΠΉ измСрСния (px, s, rem, vh), дСсятичныС числа, ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹Π΅ числа, rgb(), тСкстовыС строки, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ calc() ΠΈ Π΄Π°ΠΆΠ΅ простой ΠΊΠΎΠ΄ javascript. ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΊΠΎΠ΄Π΅ javascript. ЕдинствСнноС, Π½Π° Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, это Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ измСрСния Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ смоТСтС Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΅Π΅ ΠΏΠΎΠ·ΠΆΠ΅ (Π½ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ Π΅Π΅ Π½Π° *1px ;))

Π― Π²ΠΎΠ·ΡŒΠΌΡƒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ SCSS ΠΈ ΠΏΠΎΠΊΠ°ΠΆΡƒ, ΠΊΠ°ΠΊ ΠΎΠ½Π° компилируСтся, слСва Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΊΠΎΠ΄ SCSS, Π° справа Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ скомпилированный CSS, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ фактичСски отправляСтся Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ β€” отобраТаСтся ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚ это Π² инструмСнтах Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°.

Как компилируСтся SCSS

Если ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² каскадС, ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Π΄Π²Π° значСния Π² скомпилированном Ρ„Π°ΠΉΠ»Π΅ CSS, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π°.

Как SCSS компилируСтся с пСрСопрСдСлСниями

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ нСдостатки ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… SCSS:

  • ΠΎΠ½ΠΈ статичны β€” Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΡ… динамичСски.
  • ΠΎΠ½ΠΈ Π½Π΅ Π·Π½Π°ΡŽΡ‚ ΠΎ структурС DOM.
  • ΠΈΡ… нСльзя ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΠ· JavaScript.

И ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ свойства CSS ΠΏΠΎΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ эти нСдостатки πŸ™‚ Они Π½Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ, ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ прСпроцСссора, поэтому Π΄Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€:

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ свойства CSS, ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π² инструмСнты Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°

ОсновноС ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ статичСской ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π° самом Π΄Π΅Π»Π΅ Π½Π΅ пСрСопрСдСляСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ *ΠΈ* свойства снова ΠΈ снова (ΠΊΠ°ΠΊ пСрСмСнная, Ρ‚Π°ΠΊ ΠΈ Π΅Π΅ использованиС), Π½ΠΎ ΠΌΡ‹ пСрСопрСдСляСм Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ свойства, Π² этом случаС Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ самом объСм : ΠΊΠΎΡ€Π΅Π½ΡŒ .

Если ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ области, Π±ΠΎΠ»Π΅Π΅ конкрСтная ΠΏΡ€ΠΈΠΌΠ΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ каскадныС пСрСопрСдСлСния (ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ области видимости ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… javascript).

ΠŸΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ свойства CSS Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ области

Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ значСния, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ этого Π½Π΅ Ρ…ΠΎΡ‚ΠΈΠΌ, для Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ области (Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ контСкстС) ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ явно ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ:

ΠŸΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ свойства CSS ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ CSS Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ области

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ всСгда ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Ρ†Π²Π΅Ρ‚ ΠΎΡ‚ своСго родитСля, ΠΏΠΎΠΊΠ° ΠΌΡ‹ явно Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ/Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ Ρ†Π²Π΅Ρ‚ для Π½Π΅Π³ΠΎ β€” ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ каскада. Если ΠΌΡ‹ просто ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ свойства Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°, ΠΌΡ‹ Π½Π΅ смоТСм фактичСски ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ†Π²Π΅Ρ‚Π° для Π΅Π³ΠΎ родитСля β€” ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для Π΅Π³ΠΎ области.

Π’ этом ΠΆΠ΅ случаС, Ссли ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ наслСдованиС значСния Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π°, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… свойств CSS Ρ€Π°Π²Π½Ρ‹ΠΌ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ , Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒΡΡ ΠΏΠΎ наслСдству. И ΠΌΡ‹ Π½Π° самом Π΄Π΅Π»Π΅ Ρ…ΠΎΡ‚ΠΈΠΌ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ области, ΠΌΡ‹ пСрСопрСдСляСм Π΅Π³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ , наслСдуСм Π² Ρ‚ΠΎΠΉ области, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ.

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ наслСдования настраиваСмых свойств CSS

Одна ΠΈΠ· ΠΌΠΎΠΈΡ… Π»ΡŽΠ±ΠΈΠΌΡ‹Ρ… особСнностСй настраиваСмых свойств CSS Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ экономят *Ρ‚ΠΎΠ½Π½Ρƒ* строк ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΈ пСрСопрСдСлСниях Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… контСкстах, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ использовании запросов @media для Ρ‚Π°Ρ€Π³Π΅Ρ‚ΠΈΠ½Π³Π° Π½Π° Ρ€Π°Π·Π½Ρ‹Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ экрана. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ΅ свойство CSS, ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Π½ΠΎΠ΅ ΠΊ :root ΠΎΠ±Π»Π°ΡΡ‚ΡŒ, которая пСрСопрСдСляСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для экранов мСньшСго Ρ€Π°Π·ΠΌΠ΅Ρ€Π°:

ΠŸΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… контСкстах ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠ° (Ρ€Π°Π·Π½Ρ‹Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ экрана)

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΎΠ±Π΅ строки Π½Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π² инструмСнтах Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, ΠΈ ΠΌΡ‹ Π½Π΅ фактичСски пСрСопрСдСляСт ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для этого ΠΏΡ€Π°Π²ΠΈΠ»Π° для Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° экрана.

Π‘Π°ΠΌΡ‹ΠΉ Π²Π°ΠΆΠ½Ρ‹ΠΉ ΡƒΡ€ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ слСдуСт Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ:

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ CSS, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅Π΅ настраиваСмыС свойства, просто ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ настраиваСмого свойства Π½Π° 9. 0010

Π― Π½Π΅ Π±ΡƒΠ΄Ρƒ Π²Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Π² подробности, Π½ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· самых интСрСсных особСнностСй ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… CSS β€” это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π² ΠΊΠΎΠ΄Π΅ JavaScript ΠΈ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠΈ Π½Π° мСстС β€” Π² DOM.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°, Π·Π°Π΄Π°Ρ‚ΡŒ динамичСскиС стили, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ввСсти Π΄Ρ€ΡƒΠ³ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ-Ρ‚ΠΎ Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ.

ИспользованиС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… свойств CSS с ΠΊΠΎΠ΄ΠΎΠΌ JavaScript

Одно ΠΈΠ· Π»ΡƒΡ‡ΡˆΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ я Π²ΠΈΠ΄Π΅Π», β€” это прСзСнтация Confrere ΠΎΠ± ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π΅ с Ρ†Π²Π΅Ρ‚ΠΎΠ²ΠΎΠΉ схСмой, Π³Π΄Π΅ ΠΎΠ½ΠΈ использовали ΠΈΡ… вмСстС с ΠΊΠΎΠ΄ΠΎΠΌ js для динамичСского создания Ρ†Π²Π΅Ρ‚ΠΎΠ²Ρ‹Ρ… ΠΏΠ°Π»ΠΈΡ‚Ρ€ Π½Π° основС ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π° ΠΏΠΎ порядку. для достиТСния Ρ†Π²Π΅Ρ‚ΠΎΠ²ΠΎΠΉ доступности.

ПослСдниС нСсколько Π»Π΅Ρ‚ Π±Ρ‹Π»ΠΈ самыми Π·Π°Ρ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌΠΈ Π² ΠΌΠΈΡ€Π΅ CSS, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ стили для Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π° появились благодаря Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… свойств CSS, Flexbox ΠΈ Grid!

ВсС соврСмСнныС Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Edge, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠΏΠ°Π·Π΄Ρ‹Π²Π°Π΅Ρ‚) ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ свойства CSS с апрСля 2017 Π³ΠΎΠ΄Π°. Для сравнСния β€” Ссли Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ CSS Grid, Π²Ρ‹ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π±Π΅Π· Π²ΠΈΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ свойства CSS, ΠΈ я ΠΏΠΎΠΊΠ°ΠΆΡƒ ΠΎΡ‡Π΅Π½ΡŒ Π°ΠΊΠΊΡƒΡ€Π°Ρ‚Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΡ… ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ постС.

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°ΠΌΠΈ Firefox, Chrome, Edge ΠΈ Safari β€” всС ΠΎΠ½ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ с апрСля 2017 Π³.

Если Π²Π°ΠΌ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π½ΡƒΠΆΠ½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° старых Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ², Π²ΠΎΡ‚ запросы Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ! Подобно Ρ‚ΠΎΠΌΡƒ, ΠΊΠ°ΠΊ запросы @media Π½Π°Ρ†Π΅Π»Π΅Π½Ρ‹ Π½Π° Ρ€Π°Π·Π½Ρ‹Π΅ экраны, запрос Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ, поддСрТиваСтся Π»ΠΈ ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ свойство CSS.

На самом Π΄Π΅Π»Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ CSS старой ΡˆΠΊΠΎΠ»Ρ‹ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² Π±Π»ΠΎΠΊΠ΅ запроса Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для соврСмСнных Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ², ΠΈ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ Π² Π±ΠΎΠ»Π΅Π΅ старых Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ….

ИспользованиС @supports для Ρ‚Π°Ρ€Π³Π΅Ρ‚ΠΈΠ½Π³Π° Π½Π° Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ CSS (Π² Π΄Π°Π½Π½ΠΎΠΌ случаС настраиваСмыС свойства CSS)

Π’Ρ‹Π²ΠΎΠ΄: Π²Ρ‹ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ *ΠΊΡ€ΡƒΡ‚ΠΎΠΉ* CSS Π΄Π°ΠΆΠ΅ сСгодня! Π”Π°ΠΆΠ΅ Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ старыС Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Π΅ вСрсии Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° β€” Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎ стоит ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π»ΠΈ Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ старыС Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ β€” Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ΄ΠΈΠ²Π»Π΅Π½Ρ‹! πŸ™‚

МнС Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ это Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ с ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ послСдуСт ΠΊΠ°ΠΊ пост, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, вСроятно, Π±ΡƒΠ΄Π΅Ρ‚ интСрСснСС Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ.

ВсС Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² этой ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, которая Π±Ρ‹Π»Π° ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π° Π½Π° встрСчС ΠΏΠΎ интСрфСйсу Π² БкопьС https://slides.com/alexhris/css-custom-properties

Или Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΈΠ³Ρ€Π°Ρ‚ΡŒ со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ дСмонстрациСй (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΊΠΎΠ΄ js):

ΠžΡ‚ΠΏΡ€Π°Π²Π»ΡΠΉΡ‚Π΅ΡΡŒ Π½Π° CSS Tricks для ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ³ΠΎ ΠΎΠ±Π·ΠΎΡ€Π° ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ссылок: https://css-tricks.com/difference-between-types-of-css-variables/

Бпасибо за вниманиС!

ПониманиС области дСйствия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ внСдрСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² Less CSS

ΠŸΡ€Π΅ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ Less CSS позволяСт Π²Π°ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΎ всСй вашСй структурС CSS; ΠΎΠ΄Π½Π°ΠΊΠΎ, ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ я большС копался Π² Less CSS, я ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ», Ρ‡Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π°, ΠΊΠ°ΡΠ°ΡŽΡ‰ΠΈΠ΅ΡΡ назначСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ видимости ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ±ΠΈΠ²Π°ΡŽΡ‚ с Ρ‚ΠΎΠ»ΠΊΡƒ. Иногда ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹; ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚. Иногда ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡƒΠ·Ρ‹Ρ€ΠΈΡ‚ΡŒΡΡ; ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, я ΠΏΠΎΠ΄ΡƒΠΌΠ°Π», Ρ‡Ρ‚ΠΎ это Π±ΡƒΠ΄Π΅Ρ‚ Ρ†Π΅Π½Π½Ρ‹ΠΌ исслСдованиСм.

Когда Π²Ρ‹ опрСдСляСтС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π² Less CSS, Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ сильно зависит ΠΎΡ‚ контСкста, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½Π° Π±Ρ‹Π»Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π°.

Если Π²Ρ‹ опрСдСляСтС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±Π»ΠΎΠΊΠ° Π½Π°Π±ΠΎΡ€Π° ΠΏΡ€Π°Π²ΠΈΠ» CSS ΠΈΠ»ΠΈ Π·Π°Ρ‰ΠΈΡ‚Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° CSS, эта пСрСмСнная являСтся локальной для этого Π±Π»ΠΎΠΊΠ°. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ скрыт ΠΎΡ‚ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°; Π½ΠΎ Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΏΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌΡƒ Π±Π»ΠΎΠΊΡƒ ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌ Π±Π»ΠΎΠΊΠ°ΠΌ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π½Π΅Π³ΠΎ (компилятор Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΊΠ°Ρ‚ΡŒ Π²ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… областях Π² поисках опрСдСлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ).

Если Π²Ρ‹ опрСдСляСтС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π²Π½ΡƒΡ‚Ρ€ΠΈ миксина Less CSS, Ρ‚ΠΎ эта пСрСмСнная внСдряСтся Π² Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ контСкст послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ миксин Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. Π­Ρ‚ΠΎ Π²Π΅Ρ€Π½ΠΎ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для контСкста нСпосрСдствСнного Π²Ρ‹Π·ΠΎΠ²Π°, Π½ΠΎ ΠΈ для всСго стСка контСкстов. Π­Ρ‚ΠΎ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π² стСкС Π½Π΅ появится Π½Π°Π±ΠΎΡ€ ΠΏΡ€Π°Π²ΠΈΠ» CSS ΠΈΠ»ΠΈ Π·Π°Ρ‰ΠΈΡ‚Π° CSS, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ остановят Β«Π±ΡƒΠ»ΡŒΠΊΠ°Π½ΡŒΠ΅Β». Или, ΠΏΠΎΠΊΠ° Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ контСкст Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ с Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ миксинами.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ это Π² дСйствии, я создал Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ прСдставлСн ряд Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… миксинов. Когда компилятор ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ ΠΏΡƒΡ‚ΡŒ выполнСния, ΠΎΠ½ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΠΎ ΠΏΡƒΡ‚ΠΈ, показывая, Π³Π΄Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹:

 // Когда пСрСмСнная ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° Π² миксинС, ΠΎΠ½Π° становится доступной Π² контСкстС Π²Ρ‹Π·ΠΎΠ²Π°.
// Бюда входят опрСдСлСния Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… миксинов, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ‹Π·ΠΎΠ²Ρ‹ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… миксинов.
.test-mixin-scope () {
#Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ.внСшний() ;
test-mixin-scope-test: @inner ;
}
// Π—Π΄Π΅ΡΡŒ Ρƒ нас Π΅ΡΡ‚ΡŒ нСсколько примСсСй с локальной ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ видимости. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ миксин доступСн Ρ‚ΠΎΠ»ΡŒΠΊΠΎ
// ΠΎΠ±Π»Π°ΡΡ‚ΡŒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½Π° Π±Ρ‹Π»Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π°. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ миксин вызываСтся послС Π΅Π³ΠΎ опрСдСлСния.
# Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ {
// Π­Ρ‚Π° пСрСмСнная Π²ΠΈΠ΄Π½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ пространству ΠΈΠΌΠ΅Π½ #nested. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, это Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚
// ΠΌΠ΅ΡˆΠ°Ρ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌ миксинам ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Ρ‚ΡŒ свои ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅
// Π² контСкст Π²Ρ‹Π·ΠΎΠ²Π°.
@inner: "ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²ΠΎ ΠΈΠΌΠ΅Π½ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ" ;
.внСшний () {
.сСрСдина() {
// Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ опрСдСляСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π½Π° основС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ @inner, которая
// ограничиваСтся пространством ΠΈΠΌΠ΅Π½.  ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ это Π½Π΅ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΡ‚
// ΠΏΡ€ΠΈΠΌΠ΅ΡˆΠΈΠ²Π°Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ @inner, которая опрСдСляСтся локально ΠΈ внСдряСтся Π²
// Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ контСксты Π²Ρ‹Π·ΠΎΠ²Π°.
.inner( @input: @inner ) {
// Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ доступно для всСх Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… контСкстов.
@inner: "ΠŸΡ€ΠΎΡˆΠ΅Π» Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ миксин" ;
// ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ пространства ΠΈΠΌΠ΅Π½ #nested Π²ΠΎ Π²Ρ…ΠΎΠ΄Π½ΠΎΠ΅.
ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° пространства ΠΈΠΌΠ΅Π½: @input ;
}
.Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ() ;
срСдний тСст: @inner ;
}
.сСрСдина() ;
внСшний тСст: @inner ;
}
}
// Когда ΠΌΡ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ миксин .test-mixin-scope(), ΠΌΡ‹ запускаСм Π²Ρ‹Π·ΠΎΠ²
// Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² миксина; Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅ это Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ миксин .inner(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ
// создаст ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, которая станСт доступной Π² стСкС Π²ΠΏΠ»ΠΎΡ‚ΡŒ Π΄ΠΎ body{}.
Ρ‚Π΅Π»ΠΎ {
// ΠœΡ‹ ΡΠΎΠ±ΠΈΡ€Π°Π»ΠΈΡΡŒ Π΄Π°Ρ‚ΡŒ контСксту Ρ‚Π΅Π»Π° ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ @inner. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅
// Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ ΠΊΠ°ΠΊ "константы", это ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ ΠΏΡ€ΠΈΠΌΠ΅ΡΡŒ .inner() ΠΎΡ‚
// ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ значСния @inner Π² Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΡ… областях.
@inner: "Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ" ;
// ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π½Π΅ совсСм константы.  Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ
// Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ контСкста ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° ΠΈ/ΠΈΠ»ΠΈ миксина.
@inner: "РаскачайтС Ρ‚Π΅Π»ΠΎ" ;
// Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ миксина, Π·Π°Ρ‰ΠΈΡ‚Π° CSS (ΠΈ любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π½Π°Π±ΠΎΡ€ ΠΏΡ€Π°Π²ΠΈΠ») создаСт свой собствСнный
// сфСра. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, установлСнноС здСсь Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ @inner Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.
// ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ @inner.
ΠΈ ΠΊΠΎΠ³Π΄Π° (ΠΏΡ€Π°Π²Π΄Π°) {
@inner: "Π’ Π·Π°Ρ‰ΠΈΡ‚Π΅ CSS" ;
}
.test-mixin-scope();
// ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ, ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ @inner Π²ΠΈΠ΄ΠΈΠΌΠΎ.
тСст Ρ‚Π΅Π»Π°: @inner ;
}
 

Когда ΠΌΡ‹ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌ этот Less CSS, ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²Ρ‹Π²ΠΎΠ΄ CSS:

 корпус {
namespace-test: "ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²ΠΎ ΠΈΠΌΠ΅Π½ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ";
срСдний тСст: Β«ΠŸΡ€ΠΎΡˆΠ΅Π» Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ миксин»;
внСшний тСст: "ΠŸΡ€ΠΎΡˆΠ΅Π» Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ миксин";
test-mixin-scope-test: "ΠŸΡ€ΠΎΡˆΠ΅Π» Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ миксин";
Π±ΠΎΠ΄ΠΈ-тСст: «Раскачай Ρ‚Π΅Π»ΠΎΒ»;
}
 

Π’ этом Π²Ρ‹Π²ΠΎΠ΄Π΅ Π΅ΡΡ‚ΡŒ нСсколько интСрСсных ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ². Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π½Π΅ мСшал Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ пространство ΠΈΠΌΠ΅Π½ #nested ΠΈΠΌΠ΅Π»ΠΎ локальноС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ @inner. Π­Ρ‚ΠΎ связано с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π½Π° Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… влияСт Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ контСкст, Π° Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ контСкст. И, Π²ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ @inner, установлСнноС миксином .inner(), стало доступным для Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ контСкста. Но Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ @inner Π½Π΅ Π±Ρ‹Π»ΠΎ Π²Π²Π΅Π΄Π΅Π½ΠΎ Π² основной Π±Π»ΠΎΠΊ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² Π½Π΅ΠΌ ΡƒΠΆΠ΅ Π±Ρ‹Π»Π° пСрСмСнная с ΠΈΠΌΠ΅Π½Π΅ΠΌ @inner.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² Less CSS β€” это ΠΌΠΎΡ‰Π½Ρ‹Π΅ конструкции; Π½ΠΎ ΠΎΠ½ΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ±ΠΈΠ²Π°ΡŽΡ‚ с Ρ‚ΠΎΠ»ΠΊΡƒ. По ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ для мСня. Π”Π°ΠΆΠ΅ Ρ‡Ρ‚ΠΎΠ±Ρ‹ эта дСмонстрация Ρ€Π°Π±ΠΎΡ‚Π°Π»Π° Β«ΠΊΠ°ΠΊ ΠΈ оТидалось», ΠΌΠ½Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ Π΅Π΅ Π²ΠΎΠ΅Π΄ΠΈΠ½ΠΎ. НадСюсь, это ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΡΡΠ½ΠΈΡ‚ΡŒ Π»ΡŽΠ±ΡƒΡŽ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρƒ для Π΄Ρ€ΡƒΠ³ΠΈΡ….

Π₯ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΈΠ· этого поста? ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π»ΠΈΡ†Π΅Π½Π·ΠΈΡŽ.

Π’Π²ΠΈΡ‚Π½ΡƒΡ‚ΡŒ это ΠžΡ‚Π»ΠΈΡ‡Π½Π°Ρ ΡΡ‚Π°Ρ‚ΡŒΡ @BenNadel β€” ПониманиС области видимости ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ внСдрСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² Less CSS https://www.bennadel.com/go/2642 Π€Π»Π°Π³ прямого союзника

Variables — ДокумСнтация YOOtheme Pro Joomla

ΠŸΠΎΠ³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ΡΡŒ Π³Π»ΡƒΠ±ΠΆΠ΅ Π² настройщик стилСй ΠΈ ΡƒΠ·Π½Π°ΠΉΡ‚Π΅ большС ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Ρ… возмоТностях стилСй.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ YOOtheme Pro построСн с интСрфСйсной инфраструктурой UIkit, Style Customizer фактичСски являСтся настройщиком стиля для UIkit. Он ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠ· прСпроцСссора CSS Less для стилизации своих ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° исходныС ΠΊΠΎΠ΄Ρ‹ UIkit Less ΠΏΠ΅Ρ€Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² CSS с использованиСм Π½ΠΎΠ²Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Less. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ настройщик стилСй ΠΌΠΎΡ‰Π½Ρ‹ΠΌ инструмСнтом, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ вСсь ΡΡ‚ΠΈΠ»ΡŒ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² нСсколько Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Less.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ возмоТности, прСдоставляСмыС UIkit ΠΈ Less. БущСствуСт Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΡ‡Π΅Ρ€ΠΏΡ‹Π²Π°ΡŽΡ‰Π°Ρ докумСнтация ΠΏΠΎ UIkit, которая Ρ‚Π°ΠΊΠΆΠ΅ являСтся ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΌ рСсурсом для изучСния.


UIkit ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ 70 ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΈ ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠΈ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… построСн YOOtheme Pro. Π’ΠΎΡ‚ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ€ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ.

Π’ΠΈΠΏ ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ОписаниС
ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ .uk-ΠΊΠ°Ρ€Ρ‚Π° Π‘Π°ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ абстрагируСт ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ части Π²Π΅Π±-сайта Π² ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ HTML/CSS.
ΠŸΠΎΠ΄ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ .uk-card-title ΠŸΠΎΠ΄ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ β€” это ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, которая ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π² Ρ†Π΅Π»ΠΎΠΌ.
ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ .uk-card-primary ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ измСняСт ΡΡ‚ΠΈΠ»ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΈ Π΅Π³ΠΎ ΠΏΠΎΠ΄ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для измСнСния Ρ†Π²Π΅Ρ‚Π° ΠΈΠ»ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°.

МногиС настройки Π² YOOtheme Pro происходят ΠΎΡ‚ Π½Π°Π·Π²Π°Π½ΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² UIkit ΠΈ ΠΈΡ… ΠΏΠΎΠ΄ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ². НапримСр, Π² конструкторС страниц YOOtheme Pro Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ, Π±ΡƒΠ΄Π΅Ρ‚ Π»ΠΈ элСмСнт ΠΏΠ°Π½Π΅Π»ΠΈ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠ° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ основная ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠ°. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ UIkit Card. Когда Π²Ρ‹ провСряСтС Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ страницы с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ инструмСнтов Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°, Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Ρ‚Π°ΠΊΠΈΠ΅ классы, ΠΊΠ°ΠΊ .uk-card ΠΈ .uk-card-primary .


HTML-классы ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² UIkit ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ соглашСнию ΠΎΠ± ΠΈΠΌΠ΅Π½Π°Ρ…:

 . {пространство ΠΈΠΌΠ΅Π½}-{ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚}-{ΠΏΠΎΠ΄ΠΎΠ±ΡŠΠ΅ΠΊΡ‚}-{ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€}@{Ρ‚ΠΎΡ‡ΠΊΠ° останова}
// ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹
.uk-card-title // .{namespace}-{component}-{sub-object}
.uk-card-primary // .{namespace}-{component}-{modifier}
.uk-margin-xlarge // .{namespace}-{component}-{modifier}
.uk-align-left@m // .{namespace}-{component}-{modifier}@{breakpoint} 

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. ВсС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, пСрСчислСнныС Π² мСню Components , ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ UIkit. ВсС ΠΈΡ… HTML-классы ΠΈΠΌΠ΅ΡŽΡ‚ прСфикс пространства ΠΈΠΌΠ΅Π½ uk-. ΠšΠ»Π°ΡΡΡ‹ начиная с tm- ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ классами ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅ ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ настроСны Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ General β†’ Theme .

ИмСнованиС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

ИмСна ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² UIkit ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° соглашСниС ΠΎΠ± ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΈ классов HTML:

 @{ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚}-{ΠΏΠΎΠ΄ΠΎΠ±ΡŠΠ΅ΠΊΡ‚}-{ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€}-{состояниС}-{свойство}-{Ρ‚ΠΎΡ‡ΠΊΠ° останова}
// ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹
@card-default-color // @{ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚}-{ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€}-{свойство}
@card-title-font-size // @{ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚}-{ΠΏΠΎΠ΄ΠΎΠ±ΡŠΠ΅ΠΊΡ‚}-{свойство}
@button-primary-hover-color // @{ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚}-{ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€}-{состояниС}-{свойство}
@align-margin-horizontal-l // @{ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚}-{свойство}-{Ρ‚ΠΎΡ‡ΠΊΠ° останова} 

Π­Ρ‚ΠΎ соглашСниС ΠΎΠ± ΠΈΠΌΠ΅Π½Π°Ρ… ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ для Настройщика стилСй, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ всС ΠΏΠΎΠ΄ΠΏΠ°Π½Π΅Π»ΠΈ автоматичСски Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΏΡƒΡ‚Π΅ΠΌ Π°Π½Π°Π»ΠΈΠ·Π° всСх ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Less. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ создаСт подпанСль. Π‘Π½Π°Ρ‡Π°Π»Π° Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΠ°Π½Π΅Π»ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ свойства самого ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°; свойства ΠΏΠΎΠ΄ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΈ ΠΌΠ°Ρ€ΠΊΠΈΡ€ΡƒΡŽΡ‚ΡΡ; свойства ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠΎΡ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΏΠΎ ΠΈΡ… состояниям (Π½Π΅Ρ‚ состояния, Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠ΅, Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ, фокус, ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ), Π·Π°Ρ‚Π΅ΠΌ ΠΏΠΎ Π°Π»Ρ„Π°Π²ΠΈΡ‚Ρƒ ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, ΠΏΠΎ Ρ‚ΠΎΡ‡ΠΊΠ΅ останова. Π’ΠΎΡ‚ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€: ΠΊΠ°Ρ€Ρ‚Π°

:
    Π΄Π΅Ρ„ΠΎΠ»Ρ‚:
        Π€ΠΎΠ½
        Π¦Π²Π΅Ρ‚
ΠΊΠ½ΠΎΠΏΠΊΠ°:
    Высота Π»ΠΈΠ½ΠΈΠΈ
    Π Π°Π·ΠΌΠ΅Ρ€ ΡˆΡ€ΠΈΡ„Ρ‚Π°
    ΠΠ°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ:
        Π€ΠΎΠ½
        Π¦Π²Π΅Ρ‚
        Π¦Π²Π΅Ρ‚ ΠΏΡ€ΠΈ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠΈ
        Π€ΠΎΠ½ ΠΏΡ€ΠΈ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠΈ
Π²Ρ‹Ρ€ΠΎΠ²Π½ΡΡ‚ΡŒ:
    ПолС ΠΏΠΎ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ
    @L ПолС ΠΏΠΎ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ 

Π’Π°ΠΆΠ½ΠΎ. ΠŸΡ€ΠΈ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠΈ курсора Π½Π° любоС свойство Π² настройщикС стилСй отобраТаСтся Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π°Ρ подсказка с ΠΏΠΎΠ»Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Less. Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‚ Less ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ свой собствСнный ΡΡ‚ΠΈΠ»ΡŒ.


Π’ UIkit ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° часто ΡΠΎΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ с Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ ΠΈΠ»ΠΈ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ Π² зависимости ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ свойства ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. НапримСр, Ρ†Π²Π΅Ρ‚ Ρ„ΠΎΠ½Π° основной ΠΊΠ½ΠΎΠΏΠΊΠΈ сопоставляСтся с Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌ основным Ρ†Π²Π΅Ρ‚ΠΎΠΌ Ρ„ΠΎΠ½Π°. Π’ Less это выглядит Ρ‚Π°ΠΊ:

 @button-primary-background: @global-primary-background; 

Π’ настройщикС стилСй это АвтоматичСски рассчитанныС значСния прСдставлСны малСньким A , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ появляСтся ΠΏΡ€ΠΈ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠΈ курсора Π½Π° свойство. Π­Ρ‚ΠΎ просто ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅ Π·Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅, Π½ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ сопоставлСниС, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ свойства.


Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ…. Доступны Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ для Ρ‚ΠΈΠΏΠΎΠ³Ρ€Π°Ρ„ΠΈΠΊΠΈ, Ρ†Π²Π΅Ρ‚Π° тСкста ΠΈ Ρ„ΠΎΠ½Π°, Π³Ρ€Π°Π½ΠΈΡ†, Ρ‚Π΅Π½Π΅ΠΉ, ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΎΠ² ΠΈ Ρ‚ΠΎΡ‡Π΅ΠΊ останова. Π‘Π½Π°Ρ‡Π°Π»Π° настройтС эти Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΈ Π²Π°ΠΌ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π΅ понадобится ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ.

НапримСр, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡˆΠΈΡ€ΠΈΠ½Ρ‹ глобальной Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ ΡˆΠΈΡ€ΠΈΠ½Ρƒ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ Π²ΠΎ всСх ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ…, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… ΡˆΠΈΡ€ΠΈΠ½Ρƒ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹.


НСкоторыС свойства ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ значСния Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΡ‡ΠΊΠΈ останова для Ρ€Π°Π·Π½Ρ‹Ρ… Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² устройств.

Π’ΠΎΡ‡ΠΊΠ° останова ΠšΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ ОписаниС
МалСнький @s ВлияСт Π½Π° ΡˆΠΈΡ€ΠΈΠ½Ρƒ устройства 640px ΠΈ большС.

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *