• Stars
    star
    352
  • Rank 120,622 (Top 3 %)
  • Language
    PHP
  • Created over 4 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

My gulp settings

Gulp - сборка MaxGraph

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Gulp 4

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

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

gulp build - ΠΊΠΎΠΌΠ°Π½Π΄Π° для ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½-сборки ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. ВсС ассСты сТаты ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ для Π²Ρ‹ΠΊΠ»Π°Π΄ΠΊΠΈ Π½Π° хостинг.

gulp cache - ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ стоит Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ послС gulp build, Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π½Π° хостинг Π±Π΅Π· ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ.

gulp backend - ΠΊΠΎΠΌΠ°Π½Π΄Π° для бэкСнд-сборки ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Она лишСна Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Ρ… Π²Π΅Ρ‰Π΅ΠΉ ΠΈΠ· dev-сборки, Π½ΠΎ Π½Π΅ сТата, для удобства бэкСндСра.

gulp zip - ΠΊΠΎΠΌΠ°Π½Π΄Π° собираСт ваш Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄ Π² zip-Π°Ρ€Ρ…ΠΈΠ².

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

β”œβ”€β”€ src/                          # Π˜ΡΡ…ΠΎΠ΄Π½ΠΈΠΊΠΈ
β”‚   β”œβ”€β”€ js                        # Π‘ΠΊΡ€ΠΈΠΏΡ‚Ρ‹
β”‚   β”‚   └── main.js               # Π“Π»Π°Π²Π½Ρ‹ΠΉ скрипт
β”‚   β”‚   β”œβ”€β”€ _vars.js              # Ρ„Π°ΠΉΠ» с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
β”‚   β”‚   β”œβ”€β”€ _vendor.js            # Ρ„Π°ΠΉΠ» с ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ
β”‚   β”‚   β”œβ”€β”€ _functions.js         # Ρ„Π°ΠΉΠ» с Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΌΠΈ функциями Π½Π° js
β”‚   β”‚   β”œβ”€β”€ _components.js        # Ρ„Π°ΠΉΠ» с ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²
β”‚   β”‚   β”œβ”€β”€ components            # js-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹
β”‚   β”‚   β”œβ”€β”€ vendor                # ΠΏΠ°ΠΏΠΊΠ° для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… вСрсий Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ
β”‚   β”œβ”€β”€ 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                  # Ρ„Π°ΠΉΠ» с настройками stylelint
└── README.md                     # докумСнтация сборки

ОглавлСниС

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

npm-скрипты

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ gulp-скрипты Ρ‡Π΅Ρ€Π΅Π· npm. Π’Π°ΠΊΠΆΠ΅ Π² сборкС Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΊΠΎΠ΄ Π½Π° соотвСтствиС ΠΊΠΎΠ½Ρ„ΠΈΠ³Ρƒ (editorconfig) ΠΈ Π²Π°Π»ΠΈΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ html.

npm run html - запускаСт Π²Π°Π»ΠΈΠ΄Π°Ρ‚ΠΎΡ€ html, Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ html-Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΏΠ°ΠΏΠΊΠ΅ app.

npm run code - запускаСт editorconfig-checker для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ соотвСтствия ΠΊΠΎΠ½Ρ„ΠΈΠ³-Ρ„Π°ΠΉΠ»Ρƒ.

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

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

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

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

ΠŸΡ€ΠΈ использовании ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ gulp 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 - для стилСй всСх Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ…ΡΡ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅.

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

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

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

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

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

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

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ сторонниС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Ρ‡Π΅Ρ€Π΅Π· npm, для этого сущСствуСт Ρ„Π°ΠΉΠ» _vendor.js. Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ‚ΡƒΠ΄Π° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ.

Если ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π½Π΅Ρ‚ Π² npm ΠΈΠ»ΠΈ просто Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ - ΠΊΠ»Π°Π΄ΠΈΡ‚Π΅ Π΅Π³ΠΎ Π² ΠΏΠ°ΠΏΠΊΡƒ vendor ΠΈ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅, Π½ΠΎ ΡƒΠΆΠ΅ с ΠΏΡƒΡ‚Π΅ΠΌ Π΄ΠΎ Ρ„Π°ΠΉΠ»Π°.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Π‘Π°ΠΌΡ‹ΠΉ Π²Π°ΠΆΠ½Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… – projects snippets, этот ΠΏΠ»Π°Π³ΠΈΠ½ "Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚" локально написанныС сниппСты для сборки.

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

Для удобства ΠΈ быстроты Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±Ρ‹Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ сниппСты (находятся Π² ΠΏΠ°ΠΏΠΊΠ΅ .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, Ρ‡Ρ‚ΠΎΠ±Ρ‹ этот Π±Π»ΠΎΠΊ Π½Π΅ ΠΏΡ€Ρ‹Π³Π°Π» ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ скролла.

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

Π’Π°Π±Ρ‹

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

  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.

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

import { validateForms } from './functions/validate-forms';
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, 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. Π—Π°Π΄Π°Ρ‚ΡŒ этот класс Π½ΡƒΠΆΠ½Ρ‹ΠΌ элСмСнтам, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈΠ· Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ для кастомизации Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΉ.

ΠŸΠ»Π°Π²Π½Ρ‹ΠΉ скролл ΠΊ якорям

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠ»Π°Π²Π½Ρ‹ΠΉ скролл ΠΊ якорям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π΄Π°ΠΆΠ΅ Π² Safari, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ»Π°Π³ΠΈΠ½Π°. Как это ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ:

  1. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ smooth-scroll.js (ΠΊΠΎΠ΄ Π² Ρ„Π°ΠΉΠ»Π΅ functions.js) ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ, ΠΏΠ΅Ρ€Π΅Π΄Π°Π² сСлСктор всСх якорных ссылок.
  2. Π Π°Π·Π΄Π°Ρ‚ΡŒ всСм якорным ссылкам Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ data-scroll.

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

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

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

Миксин для Flex-layout (тСстовая вСрсия)

Π’ послСднСй вСрсии сборки я Π΄ΠΎΠ±Π°Π²ΠΈΠ» миксин 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);

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

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

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

More Repositories