Skip to content

maxdenaro/gulp-maxgraph

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

74 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Gulp — сборка MaxGraph

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Gulp 5. Π’Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Π»ΠΎΡΡŒ Π½Π° node.js 20.12.2

Начало Ρ€Π°Π±ΠΎΡ‚Ρ‹

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π°Π½Π½ΠΎΠΉ сборкой Π² Π½ΠΎΠ²ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅, склонируйтС всС содСрТимоС рСпозитория
git clone <this repo> Π—Π°Ρ‚Π΅ΠΌ, Π½Π°Ρ…ΠΎΠ΄ΡΡΡŒ Π² ΠΊΠΎΡ€Π½Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, запуститС ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ npm i, которая установит всС находящиСся Π² package.json зависимости. ПослС этого Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΡŽΠ±ΡƒΡŽ ΠΈΠ· ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ сборки (ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ - Π½ΠΈΠΆΠ΅, Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ npm-скрипты).

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΠ°ΠΏΠΎΠΊ ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²

β”œβ”€β”€ gulp/                         # ВсС настройки Gulp-сборки, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΏΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ Ρ„Π°ΠΉΠ»Π°ΠΌ
β”œβ”€β”€ src/                          # Π˜ΡΡ…ΠΎΠ΄Π½ΠΈΠΊΠΈ
β”‚   β”œβ”€β”€ js                        # Π‘ΠΊΡ€ΠΈΠΏΡ‚Ρ‹
β”‚   β”‚   └── main.js               # Π“Π»Π°Π²Π½Ρ‹ΠΉ скрипт
β”‚   β”‚   β”œβ”€β”€ _vars.js              # Ρ„Π°ΠΉΠ» с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
β”‚   β”‚   β”œβ”€β”€ _functions.js         # Ρ„Π°ΠΉΠ» с Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΌΠΈ функциями Π½Π° js
β”‚   β”‚   β”œβ”€β”€ _components.js        # Ρ„Π°ΠΉΠ» с ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²
β”‚   β”‚   β”œβ”€β”€ components            # js-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹
β”‚   β”œβ”€β”€ scss                      # Π‘Ρ‚ΠΈΠ»ΠΈ сайта (прСпроцСссор sass Π² scss-синтаксисС)
β”‚   β”‚   └── main.scss             # Π“Π»Π°Π²Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» стилСй
β”‚   β”‚   └── vendor.scss           # Π€Π°ΠΉΠ» для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ стилСй Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈΠ· ΠΏΠ°ΠΏΠΊΠΈ vendor
β”‚   β”‚   └── _fonts.scss           # Π€Π°ΠΉΠ» для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ² (ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ миксин)
β”‚   β”‚   └── _mixins.scss          # Π€Π°ΠΉΠ» для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ миксинов ΠΈΠ· ΠΏΠ°ΠΏΠΊΠΈ mixins
β”‚   β”‚   └── _vars.scss            # Π€Π°ΠΉΠ» для написания css- ΠΈΠ»ΠΈ scss-ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…
β”‚   β”‚   └── _settings.scss        # Π€Π°ΠΉΠ» для написания Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… стилСй
β”‚   β”‚   β”œβ”€β”€ components            # scss-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹
β”‚   β”‚   β”œβ”€β”€ mixins                # ΠΏΠ°ΠΏΠΊΠ° для сохранСния Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… scss-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²
β”‚   β”‚   β”œβ”€β”€ vendor                # ΠΏΠ°ΠΏΠΊΠ° для хранСния Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… css-стилСй Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ
β”‚   β”œβ”€β”€ partials                  # ΠΏΠ°ΠΏΠΊΠ° для хранСния html-частСй страницы
β”‚   β”œβ”€β”€ img                       # ΠΏΠ°ΠΏΠΊΠ° для хранСния ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ
β”‚   β”‚   β”œβ”€β”€ svg                   # ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ ΠΏΠ°ΠΏΠΊΠ° для прСобразования svg Π² спрайт
β”‚   β”œβ”€β”€ resources                 # ΠΏΠ°ΠΏΠΊΠ° для хранСния ΠΈΠ½Ρ‹Ρ… ассСтов - php, Π²ΠΈΠ΄Π΅ΠΎ-Ρ„Π°ΠΉΠ»Ρ‹, favicon ΠΈ Ρ‚.Π΄.
β”‚   β”‚   β”œβ”€β”€ fonts                 # ΠΏΠ°ΠΏΠΊΠ° для хранСния ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ² Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ woff2
β”‚   └── index.html                # Π“Π»Π°Π²Π½Ρ‹ΠΉ html-Ρ„Π°ΠΉΠ»
└── gulpfile.js                   # Π Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Π°ΠΉΠ» с настройками Gulp
└── package.json                  # Ρ„Π°ΠΉΠ» с настройками сборки ΠΈ установлСнными ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ
└── .editorconfig                 # Ρ„Π°ΠΉΠ» с настройками форматирования ΠΊΠΎΠ΄Π°
└── .ecrc                         # Ρ„Π°ΠΉΠ» с настройками ΠΏΠ°ΠΊΠ΅Ρ‚Π° editorconfig-checker (ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Π΅ ΠΏΠ°ΠΏΠΊΠΈ)
└── .stylelintrc.json             # Ρ„Π°ΠΉΠ» с настройками stylelint
└── .stylelintignore              # Ρ„Π°ΠΉΠ» с ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΠΌΠΈ для stylelint
└── .htmlhintrc                   # Ρ„Π°ΠΉΠ» с настройками htmlhint
└── README.md                     # докумСнтация сборки

ОглавлСниС

  1. npm-скрипты
  2. Π Π°Π±ΠΎΡ‚Π° с html
  3. Π Π°Π±ΠΎΡ‚Π° с CSS
  4. Π Π°Π±ΠΎΡ‚Π° с JavaScript
  5. Π Π°Π±ΠΎΡ‚Π° со ΡˆΡ€ΠΈΡ„Ρ‚Π°ΠΌΠΈ
  6. Π Π°Π±ΠΎΡ‚Π° с изобраТСниями
  7. Π Π°Π±ΠΎΡ‚Π° с ΠΈΠ½Ρ‹ΠΌΠΈ рСсурсами
  8. Π’ΠΈΠΏΠΎΠ³Ρ€Π°Ρ„
  9. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹Π΅ ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹ VS Code
  10. Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ сниппСты
  11. Π“ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ
  12. ИзмСнСния Π² вСрсии 3.0.0 (ΠΎΡ‚ 21.04.2024)
  13. Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

npm-скрипты

Π’Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Gulp-Π·Π°Π΄Π°Ρ‡ΠΈ Π½ΡƒΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π΅Ρ€Π΅Π· npm-ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Ρ‚.ΠΊ. ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ Gulp-ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½Π΅ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎ.

  • npm run stylelintΒ β€”Β ΠΊΠΎΠΌΠ°Π½Π΄Π°, Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ всСх scss-Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π° соотвСтствиС stylelint.
  • npm run style-fixΒ β€”Β ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ фикс scss-Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π° соотвСтствиС stylelint. Π›ΠΈΡ‡Π½ΠΎ я сам всС ΠΈΡΠΏΡ€Π°Π²Π»ΡΡŽ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, боясь, Ρ‡Ρ‚ΠΎ автофикс Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ сломаСт.
  • npm run codeΒ β€”Β ΠΊΠΎΠΌΠ°Π½Π΄Π°, Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ всСх Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π° соотвСтствиС editorconfig.
  • npm run dev — базовая ΠΊΠΎΠΌΠ°Π½Π΄Π°, которая запускаСт Gulp Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.
  • npm run buildΒ β€”Β ΠΊΠΎΠΌΠ°Π½Π΄Π°, Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½-Π²Π΅Ρ€ΡΠΈΡŽ сборки. Π’ эту ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° stylelint ΠΈ editorconfig, ΠΈ Ссли Ρ„Π°ΠΉΠ»Ρ‹ Π½Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΠ²ΡƒΡŽΡ‚ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ - ваш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π΅ собСрСтся.
  • npm run cacheΒ β€”Β ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ стоит Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ послС npm run build__, Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π½Π° хостинг Π±Π΅Π· ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ.
  • npm run backendΒ β€”Β ΠΊΠΎΠΌΠ°Π½Π΄Π° для бэкСнд-сборки ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Она лишСна Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Ρ… Π²Π΅Ρ‰Π΅ΠΉ ΠΈΠ· dev-сборки, Π½ΠΎ Π½Π΅ сТата, для удобства бэкСндСра.
  • npm run zipΒ β€”Β ΠΊΠΎΠΌΠ°Π½Π΄Π° собираСт ваш Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄ Π² zip-Π°Ρ€Ρ…ΠΈΠ².

Π Π°Π±ΠΎΡ‚Π° с html

Благодаря ΠΏΠ»Π°Π³ΠΈΠ½Ρƒ gulp-file-include Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°Π·Π΄Π΅Π»ΡΡ‚ΡŒ html-Ρ„Π°ΠΉΠ» Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π² ΠΏΠ°ΠΏΠΊΠ΅ partials. Π£Π΄ΠΎΠ±Π½ΠΎ Π΄Π΅Π»ΠΈΡ‚ΡŒ html-страницу Π½Π° сСкции.

Для вставки html-частСй Π² Π³Π»Π°Π²Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ @include('partials/filename.html')

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ многостраничный сайт - ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ index.html, ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΊΠ°ΠΊ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ, ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅.

ΠŸΡ€ΠΈ использовании ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ npm run build, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΌΠΈΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ html-ΠΊΠΎΠ΄ Π² ΠΎΠ΄Π½Ρƒ строку для всСх html-Ρ„Π°ΠΉΠ»ΠΎΠ².

Π Π°Π±ΠΎΡ‚Π° с CSS

Π’ сборкС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ прСпроцСссор sass Π² синтаксисС scss.

Π‘Ρ‚ΠΈΠ»ΠΈ, написанныС Π² components, слСдуСт ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² main.scss. Π’ΠΠ–ΠΠž: ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ стили, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ написаны Π² main.scss для .page__body.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ сторонниС css-Ρ„Π°ΠΉΠ»Ρ‹ (Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ) - ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅ ΠΈΡ… Π² ΠΏΠ°ΠΏΠΊΡƒ vendor ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π² Ρ„Π°ΠΉΠ»Π΅ _vendor.scss

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ свой миксин - Π΄Π΅Π»Π°ΠΉΡ‚Π΅ это Π² ΠΏΠ°ΠΏΠΊΠ΅ mixins, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΠΉΡ‚Π΅ Π² Ρ„Π°ΠΉΠ» _mixins.scss.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ scss-ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ - ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ _vars.scss Ρ‚Π°ΠΊΠΆΠ΅ Π² main.scss ΠΈΠ»ΠΈ Π² любоС Π΄Ρ€ΡƒΠ³ΠΎΠ΅ мСсто, Π³Π΄Π΅ ΠΎΠ½ Π½ΡƒΠΆΠ΅Π½, Π½ΠΎ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ :root.

Для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ css-Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρƒ @import

Π’ ΠΈΡ‚ΠΎΠ³ΠΎΠ²ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ app/css ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Π΄Π²Π° Ρ„Π°ΠΉΠ»Π°:
main.css - для стилСй страницы,
vendor.css - для стилСй всСх Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ…ΡΡ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅.

ΠŸΡ€ΠΈ использовании ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ npm run build, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΌΠΈΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ css-ΠΊΠΎΠ΄ Π² ΠΎΠ΄Π½Ρƒ строку для всСх css-Ρ„Π°ΠΉΠ»ΠΎΠ².

Π Π°Π±ΠΎΡ‚Π° с JavaScript

Для сборки JS-ΠΊΠΎΠ΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ webpack.

JS-ΠΊΠΎΠ΄ Π»ΡƒΡ‡ΡˆΠ΅ Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ - нСбольшиС js-Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ содСрТат свою, ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π° Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ. Π’Π°ΠΊΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΠΎΠΌΠ΅Ρ‰Π°ΠΉΡ‚Π΅ Π² ΠΏΠ°ΠΏΠΊΡƒ components, Π° ΠΏΠΎΡ‚ΠΎΠΌ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π² Ρ„Π°ΠΉΠ» _components.js

Π’ Ρ„Π°ΠΉΠ»Π΅ vars.js Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π²Ρ€ΠΎΠ΄Π΅ нахоТдСния элСмСнтов ΠΈ Ρ‚.Π΄.

Π’ Ρ„Π°ΠΉΠ»Π΅ main.js Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ, ΠΎΠ½ сдСлан просто ΠΊΠ°ΠΊ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ.

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² сборку ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ npm. Для этого установитС Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΅Π³ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, создайтС Π² ΠΏΠ°ΠΏΠΊΠ΅ components Ρ„Π°ΠΉΠ»ΠΈΠΊ, ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ‚ΡƒΠ΄Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΠΉΡ‚Π΅ с Π½Π΅ΠΉ. НС Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ этот Ρ„Π°ΠΉΠ» Π² Ρ„Π°ΠΉΠ» _components.js.

ΠŸΡ€ΠΈ использовании ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ npm run build, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΌΠΈΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ js-ΠΊΠΎΠ΄ Π² ΠΎΠ΄Π½Ρƒ строку для всСх js-Ρ„Π°ΠΉΠ»ΠΎΠ².

Π Π°Π±ΠΎΡ‚Π° со ΡˆΡ€ΠΈΡ„Ρ‚Π°ΠΌΠΈ

Π’ сборкС Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° woff2, Ρ‚.ΠΊ. Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ² Π½Π΅ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ (это Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π² миксинС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π°Π½Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚).

Π—Π°Π³Ρ€ΡƒΠΆΠ°ΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ»Ρ‹ woff2 Π² ΠΏΠ°ΠΏΠΊΡƒ resources/fonts, Π° Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π·Ρ‹Π²Π°ΠΉΡ‚Π΅ миксин @font-face Π² Ρ„Π°ΠΉΠ»Π΅ _fonts.scss.

Π’Π°ΠΊΠΆΠ΅ Π½Π΅ Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ эти ΠΆΠ΅ ΡˆΡ€ΠΈΡ„Ρ‚Ρ‹ Π² <link preload> Π² html.

Π Π°Π±ΠΎΡ‚Π° с изобраТСниями

Π›ΡŽΠ±Ρ‹Π΅ изобраТСния, ΠΊΡ€ΠΎΠΌΠ΅ favicon ΠΊΠ»Π°Π΄ΠΈΡ‚Π΅ Π² ΠΏΠ°ΠΏΠΊΡƒ img.

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ svg-спрайт, ΠΊΠ»Π°Π΄ΠΈΡ‚Π΅ Π½ΡƒΠΆΠ½Ρ‹Π΅ для спрайта svg-Ρ„Π°ΠΉΠ»Ρ‹ Π² ΠΏΠ°ΠΏΠΊΡƒ img/svg. ΠŸΡ€ΠΈ этом, Ρ‚Π°ΠΊΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΊΠ°ΠΊ fill, stroke, style Π±ΡƒΠ΄ΡƒΡ‚ автоматичСски ΡƒΠ΄Π°Π»ΡΡ‚ΡŒΡΡ. Π˜Π½Ρ‹Π΅ svg-Ρ„Π°ΠΉΠ»Ρ‹ просто оставляйтС Π² ΠΏΠ°ΠΏΠΊΠ΅ img.

ΠŸΡ€ΠΈ использовании ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ npm run build, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΌΠΈΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ изобраТСния Π² ΠΈΡ‚ΠΎΠ³ΠΎΠ²ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ img.

Π’ сборкС доступна ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° webp Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ‡Π΅Ρ€Π΅Π· Ρ‚Π΅Π³ picture. Для background ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ jpg ΠΈΠ»ΠΈ png, Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ image-set Ρ‚Π°ΠΌ, Π³Π΄Π΅ это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.

Π Π°Π±ΠΎΡ‚Π° с ΠΈΠ½Ρ‹ΠΌΠΈ рСсурсами

Π›ΡŽΠ±Ρ‹Π΅ рСсурсы (ассСты) ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΏΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΎΡ‚Π²Π΅Π΄Π΅Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ ΠΏΠ°ΠΏΠΊΠ°, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π² ΠΏΠ°ΠΏΠΊΠ΅ resources. Π­Ρ‚ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²ΠΈΠ΄Π΅ΠΎ-Ρ„Π°ΠΉΠ»Ρ‹, php-Ρ„Π°ΠΉΠ»Ρ‹ (ΠΊΠ°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ„Π°ΠΉΠ» ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Ρ„ΠΎΡ€ΠΌΡ‹), favicon ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΠ΅.

Π’ΠΈΠΏΠΎΠ³Ρ€Π°Ρ„

Для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ отобраТСния тСкста Π½Π° страницС Π±Ρ‹Π» ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΏΠ»Π°Π³ΠΈΠ½ Ρ‚ΠΈΠΏΠΎΠ³Ρ€Π°Ρ„, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ автоматичСски Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ Π½Π΅Ρ€Π°Π·Ρ€Ρ‹Π²Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ ΠΈ ΠΈΠ½Ρ‹Π΅ символы, Ρ‡Ρ‚ΠΎΠ±Ρ‹ тСкст Π²Π΅Π·Π΄Π΅ отобраТался ΠΏΠΎ всСм ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ русского языка.

Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹Π΅ ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹ для VS Code

Π― Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ VS Code, ΠΈ Π² сборкС Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ взаимодСйствиС ΠΈΠΌΠ΅Π½Π½ΠΎ с этим Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ. Π’Π°ΠΊ, ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ ΠΏΠ°ΠΏΠΊΠΈ со сборкой Π² VS Code, Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ Π²Π°ΠΌ Ρ€Π°Π½Π΅Π΅ Π½Π΅ установлСнныС ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ΄ΠΎΠΉΠ΄ΡƒΡ‚ для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ сборки.

Π‘Π°ΠΌΡ‹ΠΉ Π²Π°ΠΆΠ½Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… – projects snippets, этот ΠΏΠ»Π°Π³ΠΈΠ½ "Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚" локально написанныС сниппСты для сборки. Π”Π°Π½Π½Ρ‹ΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ Π½Π΅ всСгда Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ, Π² этом случаС просто пСрСзапуститС VS Code.

Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ сниппСты

Для удобства ΠΈ быстроты Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±Ρ‹Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ сниппСты (находятся Π² ΠΏΠ°ΠΏΠΊΠ΅ .vscode/snippets), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ благодаря ΠΏΠ»Π°Π³ΠΈΠ½Ρƒ, описанному Π²Ρ‹ΡˆΠ΅. ВсС сниппСты Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с прСфикса g-. Π’ сниппСтах ΠΏΠΎΠΊΠ° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ html (быстроС созданиС Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ, соцсСтСй, ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ Ρ‚Π΅Π³Π° picture с webp ΠΈ avif ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅).

НСкоторыС сниппСты тСсно связаны с scss-миксинами, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠ½ΠΎΠΏΠΊΠ°-Π±ΡƒΡ€Π³Π΅Ρ€. Π‘Π½ΠΈΠΏΠΏΠ΅Ρ‚ g-burger создаст Π²Π°ΠΌ html-Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ Π±ΡƒΡ€Π³Π΅Ρ€Π°, Π° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ миксина @include burger Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ для Π½Π΅Π³ΠΎ стили, Ρ‡Ρ‚ΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎ.

Π“ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ

Π’ сборкС ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅, часто-ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΏΠΎΠ΄ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ. НиТС Π±ΡƒΠ΄Π΅Ρ‚ пСрСчислСн ΡƒΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π».

Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅! Π’ Ρ„Π°ΠΉΠ»Π΅ functions.js описаны лишь ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ всСх Π½ΡƒΠΆΠ½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. РСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ всС это Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ…. НапримСр, Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ модальноС ΠΎΠΊΠ½ΠΎ, создаСтС Ρ„Π°ΠΉΠ» modal.js Π² ΠΏΠ°ΠΏΠΊΠ΅ components, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚Π΅ Π΅Π³ΠΎ Π² Ρ„Π°ΠΉΠ» components.js ΠΈ ΡƒΠΆΠ΅ Π² Ρ„Π°ΠΉΠ»Π΅ modal.js ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΊΠΎΠ΄ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ.

Π‘ΡƒΡ€Π³Π΅Ρ€ мСню

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‡Π΅Π½ΡŒ быстро Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ Π±ΡƒΡ€Π³Π΅Ρ€ ΠΊ сСбС Π½Π° страницу, для этого Π½ΡƒΠΆΠ½ΠΎ:

  1. Π’ html Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ сниппСт g-burger
  2. На вашС ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ мСню Π² html Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ data-menu
  3. Π’ scss Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ миксин burger
.burger { @include burger }
  1. Π—Π°ΠΉΡ‚ΠΈ Π² Ρ„Π°ΠΉΠ» js/_functions.js ΠΈ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ строку с ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ js-Ρ„Π°ΠΉΠ»Π° Π±ΡƒΡ€Π³Π΅Ρ€Π°, послС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² вашСм Ρ„Π°ΠΉΠ»Π΅ для Π±ΡƒΡ€Π³Π΅Ρ€Π°.
  2. ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ стили ΠΏΠΎΠΊΠ°Π·Π° мСню ΠΏΠΎΠ΄ сСбя с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ класса menu--active

МодальноС окно

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‡Π΅Π½ΡŒ быстро Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ модальноС ΠΎΠΊΠ½ΠΎ ΠΊ сСбС Π½Π° страницу, для этого Π½ΡƒΠΆΠ½ΠΎ:

  1. Π’ html Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ сниппСт g-graph-btn. Он создаст ΠΊΠ½ΠΎΠΏΠΊΡƒ для модального ΠΎΠΊΠ½Π°, ваша Π·Π°Π΄Π°Ρ‡Π° лишь Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ data-graph-path
  2. Π”Π°Π»Π΅Π΅ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ сниппСт g-graph-modal. Он создаст Π±Π°Π·ΠΎΠ²ΡƒΡŽ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ ΠΎΠΊΠ½Π°. Π’Π°ΡˆΠ° Π·Π°Π΄Π°Ρ‡Π° - ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΠΊΠ½ΠΎ ΠΏΠΎ ΠΌΠ°ΠΊΠ΅Ρ‚Ρƒ, Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ ΠΈ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡ΠΈΡ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ data-graph-target с Ρ‚Π΅ΠΌ ΠΆΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΈ Ρƒ data-graph-path
  3. Π—Π°ΠΉΡ‚ΠΈ Π² Ρ„Π°ΠΉΠ» vendor.scss ΠΈ Ρ€Π°ΡΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ строку с ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ„Π°ΠΉΠ»Π° graph-modal.min.css
  4. Π—Π°ΠΉΡ‚ΠΈ Π² Ρ„Π°ΠΉΠ» js/_functions.js ΠΈ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ строку с ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΎΠΌ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ GraphModal, послС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² вашСм Ρ„Π°ΠΉΠ»Π΅ для модального ΠΎΠΊΠ½Π°.

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ скроллом

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ\Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ скролл Π½Π° страницС (Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π΄Π°ΠΆΠ΅ Π½Π° iPhone). Для этого Π½ΡƒΠΆΠ½ΠΎ:

  1. Π—Π°ΠΉΡ‚ΠΈ Π² Ρ„Π°ΠΉΠ» js/_functions.js ΠΈ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ строку с ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΎΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ disableScroll, enableScroll. ПослС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² вашСм Ρ„Π°ΠΉΠ»Π΅ для ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ/Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ скролла. Π’Π°ΠΆΠ½ΠΎ!. Если Π½Π° страницС ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π±Π»ΠΎΠΊΠΈ с фиксированным ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, шапка), Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π΅ΠΉ класс fixed-block, Ρ‡Ρ‚ΠΎΠ±Ρ‹ этот Π±Π»ΠΎΠΊ Π½Π΅ ΠΏΡ€Ρ‹Π³Π°Π» ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ скролла.

Π’Π°Π±Ρ‹

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‡Π΅Π½ΡŒ быстро Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ Ρ‚Π°Π±Ρ‹ ΠΊ сСбС Π½Π° страницу, для этого Π½ΡƒΠΆΠ½ΠΎ:

  1. Π’ html Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ сниппСт g-tabs. Он создаст Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ для Ρ‚Π°Π±ΠΎΠ², ваша Π·Π°Π΄Π°Ρ‡Π° лишь Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ data-tabs
  2. Для класса .tabs Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ миксин tabs Π² scss (ΠΈΠ»ΠΈ ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ скрипта Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈΠ· npm Π² Ρ„Π°ΠΉΠ»Π΅ vendor.scss)
  3. Π—Π°ΠΉΡ‚ΠΈ Π² Ρ„Π°ΠΉΠ» js/_functions.js ΠΈ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ строку с ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΎΠΌ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ GraphTabs, послС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² вашСм Ρ„Π°ΠΉΠ»Π΅ для Ρ‚Π°Π±ΠΎΠ².

Валидация ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° ΠΏΠΎΡ‡Ρ‚Ρƒ

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ быстро Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΡŽ ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° ΠΏΠΎΡ‡Ρ‚Ρƒ. Как это ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ:

  1. Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ, ΡƒΠΊΠ°Π·Π°Π² Ρƒ Π½Π΅Π΅ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ класс. Π’Π°ΠΊΠΆΠ΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ классы для ΠΏΠΎΠ»Π΅ΠΉ Π²Π²ΠΎΠ΄Π°.
  2. Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ массив, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Ρ‹ ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΏΠ»Π°Π³ΠΈΠ½Π° just-validate, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:
const rules1 = [
  {
    ruleSelector: '.input-name',
    rules: [
      {
        rule: 'minLength',
        value: 3
      },
      {
        rule: 'required',
        value: true,
        errorMessage: 'Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ имя!'
      }
    ]
  },
  {
    ruleSelector: '.input-tel',
    tel: true,
    telError: 'Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΉ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½',
    rules: [
      {
        rule: 'required',
        value: true,
        errorMessage: 'Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½!'
      }
    ]
  },
];

Π’ΠΠ–ΠΠž. Если Π² вашСй Ρ„ΠΎΡ€ΠΌΠ΅ Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ»Π΅ с Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠΌ, ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠΏΠΈΡˆΠΈΡ‚Π΅ Π² массивС с ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ Π½ΠΎΠ²Ρ‹Π΅ поля: tel: true, telError: 'Ошибка ΠΏΡ€ΠΈ Π²Π²ΠΎΠ΄Π΅ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°'. 3. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ validateForms, ΠΎΠ½Π° находится Π² functions.js, ΠΏΠ΅Ρ€Π΅Π΄Π°Π² Ρ‚ΡƒΠ΄Π° Ρ‚Ρ€ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°: 3.1. Π‘Ρ‚Ρ€ΠΎΠΊΡƒ с классом Ρ„ΠΎΡ€ΠΌΡ‹ 3.2. Массив ΠΏΡ€Π°Π²ΠΈΠ» 3.3. Если Π½ΡƒΠΆΠ½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ свою Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая выполнится послС ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ, Ρ‚ΠΎΠ³Π΄Π° Π΅Π΅ Ρ‚ΠΎΠΆΠ΅ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ validateForms. 4. Π’Π°ΠΊΠΆΠ΅ эта функция ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с мноТСствСнными чСкбоксами/Ρ€Π°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ. Π’Ρ€Π΅Ρ‚ΡŒΠΈΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ массив с настройками:

const checks = [
  {
    selector: ".checkbox-group",
    errorMessage: "Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ чСкбоксы",
  }
];

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°:

import { validateForms } from './functions/validate-forms';
const checks = [
  {
    selector: ".checkbox-group",
    errorMessage: "Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ чСкбоксы",
  }
];
const rules1 = [
  {
    ruleSelector: '.input-name',
    rules: [
      {
        rule: 'minLength',
        value: 3
      },
      {
        rule: 'required',
        value: true,
        errorMessage: 'Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ имя!'
      }
    ]
  },
  {
    ruleSelector: '.input-tel',
    tel: true,
    telError: 'Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΉ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½',
    rules: [
      {
        rule: 'required',
        value: true,
        errorMessage: 'Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½!'
      }
    ]
  },
];

const afterForm = () => {
  console.log('ΠŸΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π° ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ°, Ρ‚ΡƒΡ‚ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ дСйствия');
};

validateForms('.form-1', rules1, checks, afterForm);

Throttle-функция

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ³Π»Π°Π΄ΠΈΡ‚ΡŒ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ‡Π°ΡΡ‚ΠΎΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ событиями, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ throttle. Для этого Π½ΡƒΠΆΠ½ΠΎ:

  1. Π’ Π½ΡƒΠΆΠ½ΠΎΠΌ мСстС ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ throttle()
  2. ΠΠ°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½ΡƒΠΆΠ½ΡƒΡŽ Π²Π°ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, func()
  3. Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π²Ρ‹Π·ΠΎΠ² вашСй Ρ„ΡƒΠΊΠ½Ρ†ΠΈΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ throttle, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: let f = throttle(func)
  4. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΊΠ°ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π² Π²Ρ‹Π·ΠΎΠ²Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: window.addEventListener('resize', f)

Ѐикс фулскрин Π±Π»ΠΎΠΊΠΎΠ²

НСрСдко Π±Π»ΠΎΠΊΠΈ с высотой 100vh Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π² ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ…. Π Π΅ΡˆΠΈΡ‚ΡŒ это ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ fix-fullheight:

  1. РаскоммСнтируйтС строку с ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΎΠΌ Ρ„Π°ΠΉΠ»Π° fix-fullheight.js
  2. ΠΠ°Π·Π½Π°Ρ‡ΡŒΡ‚Π΅ Π½Π° Π½ΡƒΠΆΠ½Ρ‹ΠΉ Π²Π°ΠΌ Π±Π»ΠΎΠΊ высоту Π½Π΅ 100vh, Π° var(--vh)

Для этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ€Π°Π½Π΅Π΅ упомянутый throttle. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ±Ρ€Π°Ρ‚ΡŒ Π΅Π³ΠΎ, Π»ΠΈΠ±ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ врСмя Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„Π°ΠΉΠ»Π° fix-fullheight.js.

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ высоты шапки

Иногда трСбуСтся ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΡƒΡŽ высоту шапки, Ссли ΠΎΠ½Π° сдСлана Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹ΠΌ ΠΈΠ»ΠΈ фиксированным ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, ΠΈ для этого Π΅ΡΡ‚ΡŒ функция getHeaderHeght. Как Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ:

  1. РаскоммСнтируйтС строку с ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΎΠΌ Ρ„Π°ΠΉΠ»Π° header-height.js
  2. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ css-ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ --header-height Π² Π½ΡƒΠΆΠ½ΠΎΠΌ Π²Π°ΠΌ мСстС

ΠΠ΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² Ρ„Π°ΠΉΠ»Π΅ functions, Π΄Π΅Π»Π°ΠΉΡ‚Π΅ ΠΊΠ°ΠΊ ΡƒΠ΄ΠΎΠ±Π½ΠΎ Π²Π°ΠΌ.

ΠšΠ°ΡΡ‚ΠΎΠΌΠ½Ρ‹ΠΉ скролл

Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ кастомного скролла Π² сборку установлСн ΠΏΠ»Π°Π³ΠΈΠ½ simplebar.js. Как Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ:

  1. РаскоммСнтируйтС строку с ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΎΠΌ ΠΏΠ»Π°Π³ΠΈΠ½Π° simplebar
  2. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π½ΡƒΠΆΠ½ΠΎΠΌΡƒ Π±Π»ΠΎΠΊΡƒ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ высоту ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ data-simplebar

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ опрСдСлСния Π²ΡŒΡŽΠΏΠΎΡ€Ρ‚Π°

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ скрипты Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡˆΠΈΡ€ΠΈΠ½Π΅ (ΠΏΠΎΠΊΠ° Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° рСсайза Π½Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π°) с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ isMobile(), isTablet(), isDesktop(). Для этого Π½ΡƒΠΆΠ½ΠΎ лишь ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π½ΡƒΠΆΠ½ΡƒΡŽ ΠΈΠ· Π½ΠΈΡ… ΠΈΠ· Ρ„Π°ΠΉΠ»Π°, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ условия if.

Π’ΡƒΠ»Ρ‚ΠΈΠΏΡ‹

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ быстро ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ, доступный Ρ‚ΡƒΠ»Ρ‚ΠΈΠΏ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΊ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ сам Ρ€Π°ΡΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ отступы с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ js. Как это ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ:

  1. Π’ html Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ сниппСт g-tooltip. Он создаст ΠΊΠ½ΠΎΠΏΠΊΡƒ для модального ΠΎΠΊΠ½Π°, ваша Π·Π°Π΄Π°Ρ‡Π° лишь Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ aria-describedby ΠΈ id.
  2. Π”Π°Π»Π΅Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‚ΡƒΠ»Ρ‚ΠΈΠΏΡ‹ (ΠΊΠΎΠ΄ Π² Ρ„Π°ΠΉΠ»Π΅ functions.js), ΠΈ вмСсто el ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ id ΠΈΠ»ΠΈ class ΠΊΠ½ΠΎΠΏΠΊΠΈ Ρ‚ΡƒΠ»Ρ‚ΠΈΠΏΠ°, Π° вмСсто tooltip ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ id ΠΈΠ»ΠΈ class самого Ρ‚ΡƒΠ»Ρ‚ΠΈΠΏΠ°.
  3. ПослС этого ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΡ‚ΠΈΠ»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΡƒΠ»Ρ‚ΠΈΠΏ ΠΊΠ°ΠΊ Π²Π°ΠΌ ΡƒΠ³ΠΎΠ΄Π½ΠΎ.

Π‘Π»Π°ΠΉΠ΄Π΅Ρ€

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ быстро ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ swiper-слайдСр. Как это ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ:

  1. Π’ html Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ сниппСт g-swiper. Он создаст Π±Π°Π·ΠΎΠ²ΡƒΡŽ структуру свайпСр-слайдСра, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ свой класс для свайпСр-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°.
  2. Π Π°ΡΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ строку с ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ стилСй Π² Ρ„Π°ΠΉΠ»Π΅ vendor.scss
  3. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ сам свайпСр (ΠΊΠΎΠ΄ Π² Ρ„Π°ΠΉΠ»Π΅ functions.js) ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ, слСдуя Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

Анимации ΠΏΠΎ скроллу

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ быстро Π½Π°Π±Ρ€ΠΎΡΠ°Ρ‚ΡŒ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΉ ΠΏΠΎ скроллу с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ»Π°Π³ΠΈΠ½Π°. Как это ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ:

  1. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ AOS.js (ΠΊΠΎΠ΄ Π² Ρ„Π°ΠΉΠ»Π΅ functions.js) ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ.
  2. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² ΠΈΠ· Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΏΠ»Π°Π³ΠΈΠ½Π° Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚Π΅ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹Π΅ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ, ΠΈΠ»ΠΈ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ свою.

ΠŸΠ°Ρ€Π°Π»Π»Π°ΠΊΡ ΠΏΠΎ скроллу

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ быстро Π½Π°Π±Ρ€ΠΎΡΠ°Ρ‚ΡŒ параллакс элСмСнтов ΠΏΠΎ скроллу с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ»Π°Π³ΠΈΠ½Π°. Как это ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ:

  1. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ rellax.js (ΠΊΠΎΠ΄ Π² Ρ„Π°ΠΉΠ»Π΅ functions.js) ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ, ΠΏΠ΅Ρ€Π΅Π΄Π°Π² класс элСмСнта (элСмСнтов).
  2. Π—Π°Π΄Π°Ρ‚ΡŒ этот класс Π½ΡƒΠΆΠ½Ρ‹ΠΌ элСмСнтам, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈΠ· Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ для кастомизации Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΉ.

Π‘Π²Π°ΠΉΠΏΡ‹ Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройствах

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ взаимодСйствия со страницСй Ρ‡Π΅Ρ€Π΅Π· свайпы Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройствах с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ»Π°Π³ΠΈΠ½Π°. Как это ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ:

  1. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ swiped-events.js (ΠΊΠΎΠ΄ Π² Ρ„Π°ΠΉΠ»Π΅ functions.js).
  2. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ события ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΠ»Π°Π³ΠΈΠ½Π°.

Миксин для flex-расстановки элСмСнтов.

Π’ послСднСй вСрсии сборки я Π΄ΠΎΠ±Π°Π²ΠΈΠ» миксин flex-layout (ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² ΠΏΠ°ΠΏΠΊΠ΅ mixins), Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° типичная сСтка для ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡Π΅ΠΊ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ Π²Π°ΠΌ настройки, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ сСтку быстро ΠΈ Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. НапримСр:

<div class="cards">
  <div class="cards__item">ВСкст</div>
  <div class="cards__item">ВСкст</div>
  <div class="cards__item">ВСкст</div>
  <div class="cards__item">ВСкст</div>
  <div class="cards__item">ВСкст</div>
  <div class="cards__item">ВСкст</div>
</div>

$options: (
  parentClass: "cards",
  itemsClass: "cards__item",
  desktopGap: 30px,
  desktopElems: 3,
  tablet: "1024px",
  tabletElems: 2,
  tabletGap:  30px,
  mobile: "600px",
  mobileElems: 1,
  mobileGap: 20px
);

@include flex-layout($options);

Π’ опциях ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ класс-Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ (ΠΈΠ»ΠΈ ΠΆΠ΅ флСкс-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, класс для ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠ², ΠΊΠ°ΠΊΠΎΠΉ Ρƒ Π½ΠΈΡ… Π±ΡƒΠ΄Π΅Ρ‚ отступ, Π½Π° ΠΊΠ°ΠΊΠΈΡ… Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΡ… Π±ΡƒΠ΄Π΅Ρ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΊΠΎΠ»-Π²ΠΎ элСмСнтов).

ИзмСнСния Π² вСрсии 3.0.0 (ΠΎΡ‚ 21.04.2024)

  1. ВСрсия Gulp ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π° Π½Π° ΠΏΡΡ‚ΡƒΡŽ.
  2. ΠžΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹ всС Π½ΡƒΠΆΠ½Ρ‹Π΅ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹.
  3. Π’Π΅ΠΏΠ΅Ρ€ΡŒ сборка Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π° Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хранятся Π² ΠΏΠ°ΠΏΠΊΠ΅ gulp.
  4. Π£Π΄Π°Π»Π΅Π½Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ smooth-scroll ΠΈΠ»ΠΈ js-focus-visible, Ρ‚.ΠΊ. ΡƒΠΆΠ΅ Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹ Π² 2024 Π³ΠΎΠ΄Ρƒ.
  5. ОбновлСн ΠΊΠΎΠ½Ρ„ΠΈΠ³-Ρ„Π°ΠΉΠ» stylelint, Ρ‚.ΠΊ. старый Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π» с Π½ΠΎΠ²ΠΎΠΉ вСрсиСй.
  6. НСмного ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ стили сборки: 6.1. min-width ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ 360, Ρ‚.ΠΊ. Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ² мСньшС ΠΏΠΎΡ‡Ρ‚ΠΈ Π½Π΅Ρ‚. 6.2. box-sizing: border-box Π·Π°Π΄Π°Π½ глобально (Π±Π΅Π· inherit), Ρ‚.ΠΊ. Π·Π° всС врСмя использования сборки понял, Ρ‡Ρ‚ΠΎ это лишСно смысла. 6.3. ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρƒ .page Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ свойство scroll-behavior.
  7. НСмного ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹ скрипты ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ: 7.1. ИзмСнился ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ swiper. 7.2. ИзмСнился ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Inputmask. 7.3. ИзмСнилась функция Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ.
  8. ВсС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ сборки Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π΅Ρ€Π΅Π· npm-ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.
  9. ΠŸΡ€ΠΎΡ‡ΠΈΠ΅ ΠΌΠ΅Π»ΠΎΡ‡ΠΈ.

ВСстировал сборку Π½Π° своих Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…, всС Π·Π°ΠΏΡƒΡΠΊΠ°Π»ΠΎΡΡŒ Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Бпасибо всСм, ΠΊΡ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ сборку! Если Π²Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΡƒΡŽ-Π»ΠΈΠ±ΠΎ ΠΎΡˆΠΈΠ±ΠΊΡƒ, ΠΏΡ€ΠΈΡˆΠ»ΠΈΡ‚Π΅ поТалуйста issue с ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΌ описаниСм ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, я всС ΡΠΌΠΎΡ‚Ρ€ΡŽ ΠΈ ΠΏΠΎΡΡ‚Π°Ρ€Π°ΡŽΡΡŒ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ. Бпасибо!

About

My gulp settings

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published