diff --git a/pp.config.cjs b/pp.config.cjs index 80dae3a21..e8b1b797c 100644 --- a/pp.config.cjs +++ b/pp.config.cjs @@ -9,7 +9,7 @@ const desktopSections = [ {section: 'gallery', misMatchThreshold: 0.4}, {section: 'form', misMatchThreshold: 0.6}, {section: 'footer', misMatchThreshold: 1.2} -] +]; const tabletSections = [ {section: 'header', misMatchThreshold: 1.3}, @@ -22,7 +22,7 @@ const tabletSections = [ {section: 'gallery', misMatchThreshold: 0.7}, {section: 'form', misMatchThreshold: 1.2}, {section: 'footer', misMatchThreshold: 1.1}, -] +]; const mobileSections = [ {section: 'header', misMatchThreshold: 2.2}, @@ -35,12 +35,12 @@ const mobileSections = [ {section: 'gallery', misMatchThreshold: 0.7}, {section: 'form', misMatchThreshold: 1.1}, {section: 'footer', misMatchThreshold: 1.1}, -] +]; const VIEWPORTS = { - 'desktop': {"label": "desktop", "width": 1440, "height": 800}, - 'tablet': {"label": "tablet", "width": 768, "height": 1024}, - 'mobile': {"label": "mobile", "width": 320, "height": 480} + 'desktop': {'label': 'desktop', 'width': 1440, 'height': 800}, + 'tablet': {'label': 'tablet', 'width': 768, 'height': 1024}, + 'mobile': {'label': 'mobile', 'width': 320, 'height': 480} }; const URL = 'http://localhost:3000/index.html'; @@ -48,65 +48,65 @@ const REFERENCE_URL = './figma/index.html'; function generateScenario(section, misMatchThreshold, viewport) { return { - "label": `${section}`, - "url": URL, - "referenceUrl": REFERENCE_URL, + 'label': `${section}`, + 'url': URL, + 'referenceUrl': REFERENCE_URL, selectors: [`[data-test="${section}"]`], misMatchThreshold: misMatchThreshold || 5, requireSameDimensions: true, delay: 500, - ...viewport ? {"viewports": [VIEWPORTS[viewport]]} : {} + ...viewport ? {'viewports': [VIEWPORTS[viewport]]} : {} }; } module.exports = { - "id": "tours test-pp", - "onReadyScript": "onReady.cjs", - "onBeforeScript": "onBefore.cjs", - "viewports": [ + 'id': 'tours test-pp', + 'onReadyScript': 'onReady.cjs', + 'onBeforeScript': 'onBefore.cjs', + 'viewports': [ { - "label": "mobile", - "width": 320, - "height": 480, + 'label': 'mobile', + 'width': 320, + 'height': 480, }, { - "label": "tablet", - "width": 768, - "height": 1024, + 'label': 'tablet', + 'width': 768, + 'height': 1024, }, { - "label": "desktop", - "width": 1440, - "height": 800, + 'label': 'desktop', + 'width': 1440, + 'height': 800, } ], - "resembleOutputOptions": { - "ignoreAntialiasing": true, - "errorType": "movementDifferenceIntensity", - "transparency": 0.3, + 'resembleOutputOptions': { + 'ignoreAntialiasing': true, + 'errorType': 'movementDifferenceIntensity', + 'transparency': 0.3, scaleToSameSize: false }, - "scenarios": [ + 'scenarios': [ ...desktopSections.map(({section, misMatchThreshold}) => generateScenario(section, misMatchThreshold, 'desktop')), ...tabletSections.map(({section, misMatchThreshold}) => generateScenario(section, misMatchThreshold, 'tablet')), ...mobileSections.map(({section, misMatchThreshold}) => generateScenario(section, misMatchThreshold, 'mobile')), ], fileNameTemplate: '{scenarioLabel}_{viewportLabel}', - "paths": { - "bitmaps_reference": "bitmaps_reference/test-pp", - "bitmaps_test": "backstop_data/bitmaps_test", - "engine_scripts": "engine_scripts", - "html_report": "backstop_data/html_report", - "json_report": "backstop_data/json_report", + 'paths': { + 'bitmaps_reference': 'bitmaps_reference/test-pp', + 'bitmaps_test': 'backstop_data/bitmaps_test', + 'engine_scripts': 'engine_scripts', + 'html_report': 'backstop_data/html_report', + 'json_report': 'backstop_data/json_report', }, - "report": ["browser", "json"], - "engine": "puppeteer", - "engineOptions": { - "args": ["--no-sandbox"], - "gotoParameters": {"waitUntil": ["load", "networkidle0"], timeout: 30000}, + 'report': ['browser', 'json'], + 'engine': 'puppeteer', + 'engineOptions': { + 'args': ['--no-sandbox'], + 'gotoParameters': {'waitUntil': ['load', 'networkidle0'], timeout: 90000}, }, - "asyncCaptureLimit": 10, - "asyncCompareLimit": 50, - "debug": false, - "debugWindow": false -} + 'asyncCaptureLimit': 10, + 'asyncCompareLimit': 50, + 'debug': false, + 'debugWindow': false +}; diff --git a/source/fonts/montserrat-bold.woff b/source/fonts/montserrat-bold.woff new file mode 100644 index 000000000..104972116 Binary files /dev/null and b/source/fonts/montserrat-bold.woff differ diff --git a/source/fonts/montserrat-bold.woff2 b/source/fonts/montserrat-bold.woff2 new file mode 100644 index 000000000..af8f601b3 Binary files /dev/null and b/source/fonts/montserrat-bold.woff2 differ diff --git a/source/fonts/montserrat-extraBold.woff b/source/fonts/montserrat-extraBold.woff new file mode 100644 index 000000000..58e082fb7 Binary files /dev/null and b/source/fonts/montserrat-extraBold.woff differ diff --git a/source/fonts/montserrat-extraBold.woff2 b/source/fonts/montserrat-extraBold.woff2 new file mode 100644 index 000000000..246cf5b0a Binary files /dev/null and b/source/fonts/montserrat-extraBold.woff2 differ diff --git a/source/fonts/montserrat-light.woff b/source/fonts/montserrat-light.woff new file mode 100644 index 000000000..2e8054b34 Binary files /dev/null and b/source/fonts/montserrat-light.woff differ diff --git a/source/fonts/montserrat-light.woff2 b/source/fonts/montserrat-light.woff2 new file mode 100644 index 000000000..97b0f2c77 Binary files /dev/null and b/source/fonts/montserrat-light.woff2 differ diff --git a/source/fonts/montserrat-medium.woff b/source/fonts/montserrat-medium.woff new file mode 100644 index 000000000..140405244 Binary files /dev/null and b/source/fonts/montserrat-medium.woff differ diff --git a/source/fonts/montserrat-medium.woff2 b/source/fonts/montserrat-medium.woff2 new file mode 100644 index 000000000..fc09b9654 Binary files /dev/null and b/source/fonts/montserrat-medium.woff2 differ diff --git a/source/fonts/montserrat-regular.woff b/source/fonts/montserrat-regular.woff new file mode 100644 index 000000000..5d1ae0cd0 Binary files /dev/null and b/source/fonts/montserrat-regular.woff differ diff --git a/source/fonts/montserrat-regular.woff2 b/source/fonts/montserrat-regular.woff2 new file mode 100644 index 000000000..8e4646683 Binary files /dev/null and b/source/fonts/montserrat-regular.woff2 differ diff --git a/source/fonts/montserrat-semiBold.woff b/source/fonts/montserrat-semiBold.woff new file mode 100644 index 000000000..729bdda7f Binary files /dev/null and b/source/fonts/montserrat-semiBold.woff differ diff --git a/source/fonts/montserrat-semiBold.woff2 b/source/fonts/montserrat-semiBold.woff2 new file mode 100644 index 000000000..9048f09e2 Binary files /dev/null and b/source/fonts/montserrat-semiBold.woff2 differ diff --git a/source/img/about/about-photo.png b/source/img/about/about-photo.png new file mode 100644 index 000000000..5e58260c0 Binary files /dev/null and b/source/img/about/about-photo.png differ diff --git a/source/img/about/about-photo.webp b/source/img/about/about-photo.webp new file mode 100644 index 000000000..3912c1f51 Binary files /dev/null and b/source/img/about/about-photo.webp differ diff --git a/source/img/about/about-photo@2x.png b/source/img/about/about-photo@2x.png new file mode 100644 index 000000000..f255e5a1c Binary files /dev/null and b/source/img/about/about-photo@2x.png differ diff --git a/source/img/about/about-photo@2x.webp b/source/img/about/about-photo@2x.webp new file mode 100644 index 000000000..c3e462654 Binary files /dev/null and b/source/img/about/about-photo@2x.webp differ diff --git a/source/img/cloud-background/advantages-bg-clouds-desktop.png b/source/img/cloud-background/advantages-bg-clouds-desktop.png new file mode 100644 index 000000000..d40ab1ccf Binary files /dev/null and b/source/img/cloud-background/advantages-bg-clouds-desktop.png differ diff --git a/source/img/cloud-background/advantages-bg-clouds-desktop.webp b/source/img/cloud-background/advantages-bg-clouds-desktop.webp new file mode 100644 index 000000000..29fa1f4e1 Binary files /dev/null and b/source/img/cloud-background/advantages-bg-clouds-desktop.webp differ diff --git a/source/img/cloud-background/advantages-bg-clouds-desktop@2x.png b/source/img/cloud-background/advantages-bg-clouds-desktop@2x.png new file mode 100644 index 000000000..26190ef04 Binary files /dev/null and b/source/img/cloud-background/advantages-bg-clouds-desktop@2x.png differ diff --git a/source/img/cloud-background/advantages-bg-clouds-desktop@2x.webp b/source/img/cloud-background/advantages-bg-clouds-desktop@2x.webp new file mode 100644 index 000000000..6780db01a Binary files /dev/null and b/source/img/cloud-background/advantages-bg-clouds-desktop@2x.webp differ diff --git a/source/img/cloud-background/advantages-bg-clouds-tablet.png b/source/img/cloud-background/advantages-bg-clouds-tablet.png new file mode 100644 index 000000000..0c0b0bc92 Binary files /dev/null and b/source/img/cloud-background/advantages-bg-clouds-tablet.png differ diff --git a/source/img/cloud-background/advantages-bg-clouds-tablet.webp b/source/img/cloud-background/advantages-bg-clouds-tablet.webp new file mode 100644 index 000000000..9b12e0dd2 Binary files /dev/null and b/source/img/cloud-background/advantages-bg-clouds-tablet.webp differ diff --git a/source/img/cloud-background/advantages-bg-clouds-tablet@2x.png b/source/img/cloud-background/advantages-bg-clouds-tablet@2x.png new file mode 100644 index 000000000..c95642f45 Binary files /dev/null and b/source/img/cloud-background/advantages-bg-clouds-tablet@2x.png differ diff --git a/source/img/cloud-background/advantages-bg-clouds-tablet@2x.webp b/source/img/cloud-background/advantages-bg-clouds-tablet@2x.webp new file mode 100644 index 000000000..c2ec115f9 Binary files /dev/null and b/source/img/cloud-background/advantages-bg-clouds-tablet@2x.webp differ diff --git a/source/img/cloud-background/mountains-and-clouds.png b/source/img/cloud-background/mountains-and-clouds.png new file mode 100644 index 000000000..c4298c90d Binary files /dev/null and b/source/img/cloud-background/mountains-and-clouds.png differ diff --git a/source/img/cloud-background/mountains-and-clouds.webp b/source/img/cloud-background/mountains-and-clouds.webp new file mode 100644 index 000000000..9ba95539c Binary files /dev/null and b/source/img/cloud-background/mountains-and-clouds.webp differ diff --git a/source/img/cloud-background/mountains-and-clouds@2x.png b/source/img/cloud-background/mountains-and-clouds@2x.png new file mode 100644 index 000000000..eb8da259c Binary files /dev/null and b/source/img/cloud-background/mountains-and-clouds@2x.png differ diff --git a/source/img/cloud-background/mountains-and-clouds@2x.webp b/source/img/cloud-background/mountains-and-clouds@2x.webp new file mode 100644 index 000000000..b7d0f2ab2 Binary files /dev/null and b/source/img/cloud-background/mountains-and-clouds@2x.webp differ diff --git a/source/img/cloud-background/trainers-bg-one-cloud.png b/source/img/cloud-background/trainers-bg-one-cloud.png new file mode 100644 index 000000000..6d4e5872b Binary files /dev/null and b/source/img/cloud-background/trainers-bg-one-cloud.png differ diff --git a/source/img/cloud-background/trainers-bg-one-cloud.webp b/source/img/cloud-background/trainers-bg-one-cloud.webp new file mode 100644 index 000000000..e5900f67d Binary files /dev/null and b/source/img/cloud-background/trainers-bg-one-cloud.webp differ diff --git a/source/img/cloud-background/trainers-bg-one-cloud@2x.png b/source/img/cloud-background/trainers-bg-one-cloud@2x.png new file mode 100644 index 000000000..773f333c2 Binary files /dev/null and b/source/img/cloud-background/trainers-bg-one-cloud@2x.png differ diff --git a/source/img/cloud-background/trainers-bg-one-cloud@2x.webp b/source/img/cloud-background/trainers-bg-one-cloud@2x.webp new file mode 100644 index 000000000..60d35b90a Binary files /dev/null and b/source/img/cloud-background/trainers-bg-one-cloud@2x.webp differ diff --git a/source/img/contacts/map-desktop.png b/source/img/contacts/map-desktop.png new file mode 100644 index 000000000..d67656d11 Binary files /dev/null and b/source/img/contacts/map-desktop.png differ diff --git a/source/img/contacts/map-desktop.webp b/source/img/contacts/map-desktop.webp new file mode 100644 index 000000000..a4ecd0dfd Binary files /dev/null and b/source/img/contacts/map-desktop.webp differ diff --git a/source/img/contacts/map-desktop@2x.png b/source/img/contacts/map-desktop@2x.png new file mode 100644 index 000000000..8258ab27a Binary files /dev/null and b/source/img/contacts/map-desktop@2x.png differ diff --git a/source/img/contacts/map-desktop@2x.webp b/source/img/contacts/map-desktop@2x.webp new file mode 100644 index 000000000..011c4f356 Binary files /dev/null and b/source/img/contacts/map-desktop@2x.webp differ diff --git a/source/img/contacts/map-mobile.png b/source/img/contacts/map-mobile.png new file mode 100644 index 000000000..4e341a529 Binary files /dev/null and b/source/img/contacts/map-mobile.png differ diff --git a/source/img/contacts/map-mobile.webp b/source/img/contacts/map-mobile.webp new file mode 100644 index 000000000..99a421f8b Binary files /dev/null and b/source/img/contacts/map-mobile.webp differ diff --git a/source/img/contacts/map-mobile@2x.png b/source/img/contacts/map-mobile@2x.png new file mode 100644 index 000000000..7220a1d0b Binary files /dev/null and b/source/img/contacts/map-mobile@2x.png differ diff --git a/source/img/contacts/map-mobile@2x.webp b/source/img/contacts/map-mobile@2x.webp new file mode 100644 index 000000000..2b2615258 Binary files /dev/null and b/source/img/contacts/map-mobile@2x.webp differ diff --git a/source/img/contacts/map-tablet.png b/source/img/contacts/map-tablet.png new file mode 100644 index 000000000..88fe8ab01 Binary files /dev/null and b/source/img/contacts/map-tablet.png differ diff --git a/source/img/contacts/map-tablet.webp b/source/img/contacts/map-tablet.webp new file mode 100644 index 000000000..e9acb403d Binary files /dev/null and b/source/img/contacts/map-tablet.webp differ diff --git a/source/img/contacts/map-tablet@2x.png b/source/img/contacts/map-tablet@2x.png new file mode 100644 index 000000000..d71895be8 Binary files /dev/null and b/source/img/contacts/map-tablet@2x.png differ diff --git a/source/img/contacts/map-tablet@2x.webp b/source/img/contacts/map-tablet@2x.webp new file mode 100644 index 000000000..7f6c2a623 Binary files /dev/null and b/source/img/contacts/map-tablet@2x.webp differ diff --git a/source/img/form/forest-background.jpg b/source/img/form/forest-background.jpg new file mode 100644 index 000000000..78d370469 Binary files /dev/null and b/source/img/form/forest-background.jpg differ diff --git a/source/img/form/forest-background.webp b/source/img/form/forest-background.webp new file mode 100644 index 000000000..b7f473391 Binary files /dev/null and b/source/img/form/forest-background.webp differ diff --git a/source/img/form/forest-background@2x.jpg b/source/img/form/forest-background@2x.jpg new file mode 100644 index 000000000..b5e0fff16 Binary files /dev/null and b/source/img/form/forest-background@2x.jpg differ diff --git a/source/img/form/forest-background@2x.webp b/source/img/form/forest-background@2x.webp new file mode 100644 index 000000000..02cb9b040 Binary files /dev/null and b/source/img/form/forest-background@2x.webp differ diff --git a/source/img/gallery/cableway.jpg b/source/img/gallery/cableway.jpg new file mode 100644 index 000000000..b38160930 Binary files /dev/null and b/source/img/gallery/cableway.jpg differ diff --git a/source/img/gallery/cableway.webp b/source/img/gallery/cableway.webp new file mode 100644 index 000000000..40dc0c21d Binary files /dev/null and b/source/img/gallery/cableway.webp differ diff --git a/source/img/gallery/cableway@2x.jpg b/source/img/gallery/cableway@2x.jpg new file mode 100644 index 000000000..161b3a0a2 Binary files /dev/null and b/source/img/gallery/cableway@2x.jpg differ diff --git a/source/img/gallery/cableway@2x.webp b/source/img/gallery/cableway@2x.webp new file mode 100644 index 000000000..37a21716a Binary files /dev/null and b/source/img/gallery/cableway@2x.webp differ diff --git a/source/img/gallery/campfire.jpg b/source/img/gallery/campfire.jpg new file mode 100644 index 000000000..ad19507a1 Binary files /dev/null and b/source/img/gallery/campfire.jpg differ diff --git a/source/img/gallery/campfire.webp b/source/img/gallery/campfire.webp new file mode 100644 index 000000000..32820fb21 Binary files /dev/null and b/source/img/gallery/campfire.webp differ diff --git a/source/img/gallery/campfire@2x.jpg b/source/img/gallery/campfire@2x.jpg new file mode 100644 index 000000000..3f46b3012 Binary files /dev/null and b/source/img/gallery/campfire@2x.jpg differ diff --git a/source/img/gallery/campfire@2x.webp b/source/img/gallery/campfire@2x.webp new file mode 100644 index 000000000..47b077359 Binary files /dev/null and b/source/img/gallery/campfire@2x.webp differ diff --git a/source/img/gallery/compass.jpg b/source/img/gallery/compass.jpg new file mode 100644 index 000000000..8ac6bbea1 Binary files /dev/null and b/source/img/gallery/compass.jpg differ diff --git a/source/img/gallery/compass.webp b/source/img/gallery/compass.webp new file mode 100644 index 000000000..deb23b9ca Binary files /dev/null and b/source/img/gallery/compass.webp differ diff --git a/source/img/gallery/compass@2x.jpg b/source/img/gallery/compass@2x.jpg new file mode 100644 index 000000000..051b495a4 Binary files /dev/null and b/source/img/gallery/compass@2x.jpg differ diff --git a/source/img/gallery/compass@2x.webp b/source/img/gallery/compass@2x.webp new file mode 100644 index 000000000..ea81edd17 Binary files /dev/null and b/source/img/gallery/compass@2x.webp differ diff --git a/source/img/gallery/icy-road.jpg b/source/img/gallery/icy-road.jpg new file mode 100644 index 000000000..037aa132c Binary files /dev/null and b/source/img/gallery/icy-road.jpg differ diff --git a/source/img/gallery/icy-road.webp b/source/img/gallery/icy-road.webp new file mode 100644 index 000000000..d4ab8b1c5 Binary files /dev/null and b/source/img/gallery/icy-road.webp differ diff --git a/source/img/gallery/icy-road@2x.jpg b/source/img/gallery/icy-road@2x.jpg new file mode 100644 index 000000000..76d9bd323 Binary files /dev/null and b/source/img/gallery/icy-road@2x.jpg differ diff --git a/source/img/gallery/icy-road@2x.webp b/source/img/gallery/icy-road@2x.webp new file mode 100644 index 000000000..f2b17a15e Binary files /dev/null and b/source/img/gallery/icy-road@2x.webp differ diff --git a/source/img/gallery/one-man.jpg b/source/img/gallery/one-man.jpg new file mode 100644 index 000000000..471fec4ab Binary files /dev/null and b/source/img/gallery/one-man.jpg differ diff --git a/source/img/gallery/one-man.webp b/source/img/gallery/one-man.webp new file mode 100644 index 000000000..123ca28b7 Binary files /dev/null and b/source/img/gallery/one-man.webp differ diff --git a/source/img/gallery/one-man@2x.jpg b/source/img/gallery/one-man@2x.jpg new file mode 100644 index 000000000..638c15e13 Binary files /dev/null and b/source/img/gallery/one-man@2x.jpg differ diff --git a/source/img/gallery/one-man@2x.webp b/source/img/gallery/one-man@2x.webp new file mode 100644 index 000000000..295624666 Binary files /dev/null and b/source/img/gallery/one-man@2x.webp differ diff --git a/source/img/gallery/tent.jpg b/source/img/gallery/tent.jpg new file mode 100644 index 000000000..d700e9fc3 Binary files /dev/null and b/source/img/gallery/tent.jpg differ diff --git a/source/img/gallery/tent.webp b/source/img/gallery/tent.webp new file mode 100644 index 000000000..b85a9b270 Binary files /dev/null and b/source/img/gallery/tent.webp differ diff --git a/source/img/gallery/tent@2x.jpg b/source/img/gallery/tent@2x.jpg new file mode 100644 index 000000000..b2b2c1235 Binary files /dev/null and b/source/img/gallery/tent@2x.jpg differ diff --git a/source/img/gallery/tent@2x.webp b/source/img/gallery/tent@2x.webp new file mode 100644 index 000000000..2ba425bfe Binary files /dev/null and b/source/img/gallery/tent@2x.webp differ diff --git a/source/img/gallery/two-men.jpg b/source/img/gallery/two-men.jpg new file mode 100644 index 000000000..6dd1f88b7 Binary files /dev/null and b/source/img/gallery/two-men.jpg differ diff --git a/source/img/gallery/two-men.webp b/source/img/gallery/two-men.webp new file mode 100644 index 000000000..08239744d Binary files /dev/null and b/source/img/gallery/two-men.webp differ diff --git a/source/img/gallery/two-men@2x.jpg b/source/img/gallery/two-men@2x.jpg new file mode 100644 index 000000000..faf299411 Binary files /dev/null and b/source/img/gallery/two-men@2x.jpg differ diff --git a/source/img/gallery/two-men@2x.webp b/source/img/gallery/two-men@2x.webp new file mode 100644 index 000000000..e5e20fbf6 Binary files /dev/null and b/source/img/gallery/two-men@2x.webp differ diff --git a/source/img/hero/altai-desktop.jpg b/source/img/hero/altai-desktop.jpg new file mode 100644 index 000000000..e7b79bcf6 Binary files /dev/null and b/source/img/hero/altai-desktop.jpg differ diff --git a/source/img/hero/altai-desktop.webp b/source/img/hero/altai-desktop.webp new file mode 100644 index 000000000..dbbc6163a Binary files /dev/null and b/source/img/hero/altai-desktop.webp differ diff --git a/source/img/hero/altai-desktop@2x.jpg b/source/img/hero/altai-desktop@2x.jpg new file mode 100644 index 000000000..bfa51672a Binary files /dev/null and b/source/img/hero/altai-desktop@2x.jpg differ diff --git a/source/img/hero/altai-desktop@2x.webp b/source/img/hero/altai-desktop@2x.webp new file mode 100644 index 000000000..51657471c Binary files /dev/null and b/source/img/hero/altai-desktop@2x.webp differ diff --git a/source/img/hero/altai.jpg b/source/img/hero/altai.jpg new file mode 100644 index 000000000..7ffbb6448 Binary files /dev/null and b/source/img/hero/altai.jpg differ diff --git a/source/img/hero/altai.webp b/source/img/hero/altai.webp new file mode 100644 index 000000000..60a2b99f1 Binary files /dev/null and b/source/img/hero/altai.webp differ diff --git a/source/img/hero/altai@2x.jpg b/source/img/hero/altai@2x.jpg new file mode 100644 index 000000000..fc8e1c32c Binary files /dev/null and b/source/img/hero/altai@2x.jpg differ diff --git a/source/img/hero/altai@2x.webp b/source/img/hero/altai@2x.webp new file mode 100644 index 000000000..20be30ffa Binary files /dev/null and b/source/img/hero/altai@2x.webp differ diff --git a/source/img/hero/caucasus-desktop.jpg b/source/img/hero/caucasus-desktop.jpg new file mode 100644 index 000000000..ec240b651 Binary files /dev/null and b/source/img/hero/caucasus-desktop.jpg differ diff --git a/source/img/hero/caucasus-desktop.webp b/source/img/hero/caucasus-desktop.webp new file mode 100644 index 000000000..cecf03951 Binary files /dev/null and b/source/img/hero/caucasus-desktop.webp differ diff --git a/source/img/hero/caucasus-desktop@2x.jpg b/source/img/hero/caucasus-desktop@2x.jpg new file mode 100644 index 000000000..150dcf037 Binary files /dev/null and b/source/img/hero/caucasus-desktop@2x.jpg differ diff --git a/source/img/hero/caucasus-desktop@2x.webp b/source/img/hero/caucasus-desktop@2x.webp new file mode 100644 index 000000000..d6b97db0b Binary files /dev/null and b/source/img/hero/caucasus-desktop@2x.webp differ diff --git a/source/img/hero/caucasus.jpg b/source/img/hero/caucasus.jpg new file mode 100644 index 000000000..5d5ec05ac Binary files /dev/null and b/source/img/hero/caucasus.jpg differ diff --git a/source/img/hero/caucasus.webp b/source/img/hero/caucasus.webp new file mode 100644 index 000000000..3f67d6f09 Binary files /dev/null and b/source/img/hero/caucasus.webp differ diff --git a/source/img/hero/caucasus@2x.jpg b/source/img/hero/caucasus@2x.jpg new file mode 100644 index 000000000..a998be747 Binary files /dev/null and b/source/img/hero/caucasus@2x.jpg differ diff --git a/source/img/hero/caucasus@2x.webp b/source/img/hero/caucasus@2x.webp new file mode 100644 index 000000000..7451653d2 Binary files /dev/null and b/source/img/hero/caucasus@2x.webp differ diff --git a/source/img/hero/kamchatka-desktop.jpg b/source/img/hero/kamchatka-desktop.jpg new file mode 100644 index 000000000..6f98718b7 Binary files /dev/null and b/source/img/hero/kamchatka-desktop.jpg differ diff --git a/source/img/hero/kamchatka-desktop.webp b/source/img/hero/kamchatka-desktop.webp new file mode 100644 index 000000000..fd695ec82 Binary files /dev/null and b/source/img/hero/kamchatka-desktop.webp differ diff --git a/source/img/hero/kamchatka-desktop@2x.jpg b/source/img/hero/kamchatka-desktop@2x.jpg new file mode 100644 index 000000000..91bd144be Binary files /dev/null and b/source/img/hero/kamchatka-desktop@2x.jpg differ diff --git a/source/img/hero/kamchatka-desktop@2x.webp b/source/img/hero/kamchatka-desktop@2x.webp new file mode 100644 index 000000000..3dd769d94 Binary files /dev/null and b/source/img/hero/kamchatka-desktop@2x.webp differ diff --git a/source/img/hero/kamchatka.jpg b/source/img/hero/kamchatka.jpg new file mode 100644 index 000000000..ede10a546 Binary files /dev/null and b/source/img/hero/kamchatka.jpg differ diff --git a/source/img/hero/kamchatka.webp b/source/img/hero/kamchatka.webp new file mode 100644 index 000000000..a5583d831 Binary files /dev/null and b/source/img/hero/kamchatka.webp differ diff --git a/source/img/hero/kamchatka@2x.jpg b/source/img/hero/kamchatka@2x.jpg new file mode 100644 index 000000000..928158e92 Binary files /dev/null and b/source/img/hero/kamchatka@2x.jpg differ diff --git a/source/img/hero/kamchatka@2x.webp b/source/img/hero/kamchatka@2x.webp new file mode 100644 index 000000000..e455e4592 Binary files /dev/null and b/source/img/hero/kamchatka@2x.webp differ diff --git a/source/img/hero/photo-card-1.png b/source/img/hero/photo-card-1.png new file mode 100644 index 000000000..53b341c59 Binary files /dev/null and b/source/img/hero/photo-card-1.png differ diff --git a/source/img/hero/photo-card-1.webp b/source/img/hero/photo-card-1.webp new file mode 100644 index 000000000..f1ccecb87 Binary files /dev/null and b/source/img/hero/photo-card-1.webp differ diff --git a/source/img/hero/photo-card-1@2x.png b/source/img/hero/photo-card-1@2x.png new file mode 100644 index 000000000..9de2727df Binary files /dev/null and b/source/img/hero/photo-card-1@2x.png differ diff --git a/source/img/hero/photo-card-1@2x.webp b/source/img/hero/photo-card-1@2x.webp new file mode 100644 index 000000000..0f6b39723 Binary files /dev/null and b/source/img/hero/photo-card-1@2x.webp differ diff --git a/source/img/hero/photo-card-2.png b/source/img/hero/photo-card-2.png new file mode 100644 index 000000000..b533e4a08 Binary files /dev/null and b/source/img/hero/photo-card-2.png differ diff --git a/source/img/hero/photo-card-2.webp b/source/img/hero/photo-card-2.webp new file mode 100644 index 000000000..01bd75aa8 Binary files /dev/null and b/source/img/hero/photo-card-2.webp differ diff --git a/source/img/hero/photo-card-2@2x.png b/source/img/hero/photo-card-2@2x.png new file mode 100644 index 000000000..4897afabb Binary files /dev/null and b/source/img/hero/photo-card-2@2x.png differ diff --git a/source/img/hero/photo-card-2@2x.webp b/source/img/hero/photo-card-2@2x.webp new file mode 100644 index 000000000..f7730799d Binary files /dev/null and b/source/img/hero/photo-card-2@2x.webp differ diff --git a/source/img/reviewers/alexander-frolov.jpg b/source/img/reviewers/alexander-frolov.jpg new file mode 100644 index 000000000..cec574b86 Binary files /dev/null and b/source/img/reviewers/alexander-frolov.jpg differ diff --git a/source/img/reviewers/alexander-frolov.webp b/source/img/reviewers/alexander-frolov.webp new file mode 100644 index 000000000..74f932aaa Binary files /dev/null and b/source/img/reviewers/alexander-frolov.webp differ diff --git a/source/img/reviewers/alexander-frolov@2x.jpg b/source/img/reviewers/alexander-frolov@2x.jpg new file mode 100644 index 000000000..fb388c08c Binary files /dev/null and b/source/img/reviewers/alexander-frolov@2x.jpg differ diff --git a/source/img/reviewers/alexander-frolov@2x.webp b/source/img/reviewers/alexander-frolov@2x.webp new file mode 100644 index 000000000..30ef1afb5 Binary files /dev/null and b/source/img/reviewers/alexander-frolov@2x.webp differ diff --git a/source/img/reviewers/elena-pirogova.jpg b/source/img/reviewers/elena-pirogova.jpg new file mode 100644 index 000000000..5a2ff7ea8 Binary files /dev/null and b/source/img/reviewers/elena-pirogova.jpg differ diff --git a/source/img/reviewers/elena-pirogova.webp b/source/img/reviewers/elena-pirogova.webp new file mode 100644 index 000000000..f2929d1d1 Binary files /dev/null and b/source/img/reviewers/elena-pirogova.webp differ diff --git a/source/img/reviewers/elena-pirogova@2x.jpg b/source/img/reviewers/elena-pirogova@2x.jpg new file mode 100644 index 000000000..dea46d079 Binary files /dev/null and b/source/img/reviewers/elena-pirogova@2x.jpg differ diff --git a/source/img/reviewers/elena-pirogova@2x.webp b/source/img/reviewers/elena-pirogova@2x.webp new file mode 100644 index 000000000..062aaa879 Binary files /dev/null and b/source/img/reviewers/elena-pirogova@2x.webp differ diff --git a/source/img/reviewers/evgenia-bazhenova.jpg b/source/img/reviewers/evgenia-bazhenova.jpg new file mode 100644 index 000000000..f93769c68 Binary files /dev/null and b/source/img/reviewers/evgenia-bazhenova.jpg differ diff --git a/source/img/reviewers/evgenia-bazhenova.webp b/source/img/reviewers/evgenia-bazhenova.webp new file mode 100644 index 000000000..3d05aacb2 Binary files /dev/null and b/source/img/reviewers/evgenia-bazhenova.webp differ diff --git a/source/img/reviewers/evgenia-bazhenova@2x.jpg b/source/img/reviewers/evgenia-bazhenova@2x.jpg new file mode 100644 index 000000000..839b335a1 Binary files /dev/null and b/source/img/reviewers/evgenia-bazhenova@2x.jpg differ diff --git a/source/img/reviewers/evgenia-bazhenova@2x.webp b/source/img/reviewers/evgenia-bazhenova@2x.webp new file mode 100644 index 000000000..d3289f92b Binary files /dev/null and b/source/img/reviewers/evgenia-bazhenova@2x.webp differ diff --git a/source/img/reviewers/ivan-solovyov.jpg b/source/img/reviewers/ivan-solovyov.jpg new file mode 100644 index 000000000..50d204c95 Binary files /dev/null and b/source/img/reviewers/ivan-solovyov.jpg differ diff --git a/source/img/reviewers/ivan-solovyov.webp b/source/img/reviewers/ivan-solovyov.webp new file mode 100644 index 000000000..27c4803ed Binary files /dev/null and b/source/img/reviewers/ivan-solovyov.webp differ diff --git a/source/img/reviewers/ivan-solovyov@2x.jpg b/source/img/reviewers/ivan-solovyov@2x.jpg new file mode 100644 index 000000000..c57f573ef Binary files /dev/null and b/source/img/reviewers/ivan-solovyov@2x.jpg differ diff --git a/source/img/reviewers/ivan-solovyov@2x.webp b/source/img/reviewers/ivan-solovyov@2x.webp new file mode 100644 index 000000000..309588b13 Binary files /dev/null and b/source/img/reviewers/ivan-solovyov@2x.webp differ diff --git a/source/img/sprite/big-arrow-left.svg b/source/img/sprite/big-arrow-left.svg new file mode 100644 index 000000000..22f6a054f --- /dev/null +++ b/source/img/sprite/big-arrow-left.svg @@ -0,0 +1,3 @@ + + + diff --git a/source/img/sprite/big-arrow-right.svg b/source/img/sprite/big-arrow-right.svg new file mode 100644 index 000000000..f6944fcf1 --- /dev/null +++ b/source/img/sprite/big-arrow-right.svg @@ -0,0 +1,3 @@ + + + diff --git a/source/img/sprite/boots.svg b/source/img/sprite/boots.svg new file mode 100644 index 000000000..5507b93f7 --- /dev/null +++ b/source/img/sprite/boots.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/source/img/sprite/cross.svg b/source/img/sprite/cross.svg new file mode 100644 index 000000000..5737f0efb --- /dev/null +++ b/source/img/sprite/cross.svg @@ -0,0 +1,3 @@ + + + diff --git a/source/img/sprite/crown.svg b/source/img/sprite/crown.svg new file mode 100644 index 000000000..6e5c02805 --- /dev/null +++ b/source/img/sprite/crown.svg @@ -0,0 +1,3 @@ + + + diff --git a/source/img/sprite/leaf.svg b/source/img/sprite/leaf.svg new file mode 100644 index 000000000..34ab15524 --- /dev/null +++ b/source/img/sprite/leaf.svg @@ -0,0 +1,3 @@ + + + diff --git a/source/img/sprite/level.svg b/source/img/sprite/level.svg new file mode 100644 index 000000000..59ec265fa --- /dev/null +++ b/source/img/sprite/level.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/source/img/sprite/logo.svg b/source/img/sprite/logo.svg deleted file mode 100644 index aee2e13c0..000000000 --- a/source/img/sprite/logo.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/source/img/sprite/logotype.svg b/source/img/sprite/logotype.svg new file mode 100644 index 000000000..ed2dc6dba --- /dev/null +++ b/source/img/sprite/logotype.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/source/img/sprite/mail.svg b/source/img/sprite/mail.svg new file mode 100644 index 000000000..34206aa36 --- /dev/null +++ b/source/img/sprite/mail.svg @@ -0,0 +1,3 @@ + + + diff --git a/source/img/sprite/map.svg b/source/img/sprite/map.svg new file mode 100644 index 000000000..b2512e155 --- /dev/null +++ b/source/img/sprite/map.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/source/img/sprite/menu.svg b/source/img/sprite/menu.svg new file mode 100644 index 000000000..fec6a9cac --- /dev/null +++ b/source/img/sprite/menu.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/source/img/sprite/moon.svg b/source/img/sprite/moon.svg new file mode 100644 index 000000000..05c903912 --- /dev/null +++ b/source/img/sprite/moon.svg @@ -0,0 +1,3 @@ + + + diff --git a/source/img/sprite/mountain.svg b/source/img/sprite/mountain.svg new file mode 100644 index 000000000..fafcb9689 --- /dev/null +++ b/source/img/sprite/mountain.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/source/img/sprite/odnoklassniki.svg b/source/img/sprite/odnoklassniki.svg new file mode 100644 index 000000000..f2f7061b6 --- /dev/null +++ b/source/img/sprite/odnoklassniki.svg @@ -0,0 +1,3 @@ + + + diff --git a/source/img/sprite/path.svg b/source/img/sprite/path.svg new file mode 100644 index 000000000..3aa14496e --- /dev/null +++ b/source/img/sprite/path.svg @@ -0,0 +1,3 @@ + + + diff --git a/source/img/sprite/phone.svg b/source/img/sprite/phone.svg new file mode 100644 index 000000000..924a8781a --- /dev/null +++ b/source/img/sprite/phone.svg @@ -0,0 +1,3 @@ + + + diff --git a/source/img/sprite/pine-tree.svg b/source/img/sprite/pine-tree.svg new file mode 100644 index 000000000..b497565f6 --- /dev/null +++ b/source/img/sprite/pine-tree.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/source/img/sprite/reddit.svg b/source/img/sprite/reddit.svg new file mode 100644 index 000000000..eaf81040b --- /dev/null +++ b/source/img/sprite/reddit.svg @@ -0,0 +1,3 @@ + + + diff --git a/source/img/sprite/shield.svg b/source/img/sprite/shield.svg new file mode 100644 index 000000000..2701868dc --- /dev/null +++ b/source/img/sprite/shield.svg @@ -0,0 +1,3 @@ + + + diff --git a/source/img/sprite/small-arrow-right.svg b/source/img/sprite/small-arrow-right.svg new file mode 100644 index 000000000..8e1f241d7 --- /dev/null +++ b/source/img/sprite/small-arrow-right.svg @@ -0,0 +1,4 @@ + + + + diff --git a/source/img/sprite/star-fill-none.svg b/source/img/sprite/star-fill-none.svg new file mode 100644 index 000000000..29f380597 --- /dev/null +++ b/source/img/sprite/star-fill-none.svg @@ -0,0 +1,3 @@ + + + diff --git a/source/img/sprite/star-fill-white.svg b/source/img/sprite/star-fill-white.svg new file mode 100644 index 000000000..9710fb5eb --- /dev/null +++ b/source/img/sprite/star-fill-white.svg @@ -0,0 +1,3 @@ + + + diff --git a/source/img/sprite/sun.svg b/source/img/sprite/sun.svg new file mode 100644 index 000000000..bfde8a66b --- /dev/null +++ b/source/img/sprite/sun.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/source/img/sprite/transparent-pin.svg b/source/img/sprite/transparent-pin.svg new file mode 100644 index 000000000..711f759b4 --- /dev/null +++ b/source/img/sprite/transparent-pin.svg @@ -0,0 +1,4 @@ + + + + diff --git a/source/img/sprite/user.svg b/source/img/sprite/user.svg deleted file mode 100644 index 6873ae6e1..000000000 --- a/source/img/sprite/user.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - diff --git a/source/img/sprite/vk.svg b/source/img/sprite/vk.svg new file mode 100644 index 000000000..a4754796b --- /dev/null +++ b/source/img/sprite/vk.svg @@ -0,0 +1,3 @@ + + + diff --git a/source/img/sprite/white-pin.svg b/source/img/sprite/white-pin.svg new file mode 100644 index 000000000..97ff19536 --- /dev/null +++ b/source/img/sprite/white-pin.svg @@ -0,0 +1,3 @@ + + + diff --git a/source/img/tours/belukha-mountain-tour.jpg b/source/img/tours/belukha-mountain-tour.jpg new file mode 100644 index 000000000..88e8358d5 Binary files /dev/null and b/source/img/tours/belukha-mountain-tour.jpg differ diff --git a/source/img/tours/belukha-mountain-tour.webp b/source/img/tours/belukha-mountain-tour.webp new file mode 100644 index 000000000..f2538c928 Binary files /dev/null and b/source/img/tours/belukha-mountain-tour.webp differ diff --git a/source/img/tours/belukha-mountain-tour@2x.jpg b/source/img/tours/belukha-mountain-tour@2x.jpg new file mode 100644 index 000000000..427f2b9c9 Binary files /dev/null and b/source/img/tours/belukha-mountain-tour@2x.jpg differ diff --git a/source/img/tours/belukha-mountain-tour@2x.webp b/source/img/tours/belukha-mountain-tour@2x.webp new file mode 100644 index 000000000..fada39bb5 Binary files /dev/null and b/source/img/tours/belukha-mountain-tour@2x.webp differ diff --git a/source/img/tours/black-sea-tour.jpg b/source/img/tours/black-sea-tour.jpg new file mode 100644 index 000000000..8e2b03c11 Binary files /dev/null and b/source/img/tours/black-sea-tour.jpg differ diff --git a/source/img/tours/black-sea-tour.webp b/source/img/tours/black-sea-tour.webp new file mode 100644 index 000000000..83938f642 Binary files /dev/null and b/source/img/tours/black-sea-tour.webp differ diff --git a/source/img/tours/black-sea-tour@2x.jpg b/source/img/tours/black-sea-tour@2x.jpg new file mode 100644 index 000000000..7b14e390c Binary files /dev/null and b/source/img/tours/black-sea-tour@2x.jpg differ diff --git a/source/img/tours/black-sea-tour@2x.webp b/source/img/tours/black-sea-tour@2x.webp new file mode 100644 index 000000000..e9a35bf0d Binary files /dev/null and b/source/img/tours/black-sea-tour@2x.webp differ diff --git a/source/img/tours/elbrus-tour.jpg b/source/img/tours/elbrus-tour.jpg new file mode 100644 index 000000000..e9cec5602 Binary files /dev/null and b/source/img/tours/elbrus-tour.jpg differ diff --git a/source/img/tours/elbrus-tour.webp b/source/img/tours/elbrus-tour.webp new file mode 100644 index 000000000..ada036630 Binary files /dev/null and b/source/img/tours/elbrus-tour.webp differ diff --git a/source/img/tours/elbrus-tour@2x.jpg b/source/img/tours/elbrus-tour@2x.jpg new file mode 100644 index 000000000..9a2c42c35 Binary files /dev/null and b/source/img/tours/elbrus-tour@2x.jpg differ diff --git a/source/img/tours/elbrus-tour@2x.webp b/source/img/tours/elbrus-tour@2x.webp new file mode 100644 index 000000000..2f40bec8c Binary files /dev/null and b/source/img/tours/elbrus-tour@2x.webp differ diff --git a/source/img/tours/manaraga-tour.jpg b/source/img/tours/manaraga-tour.jpg new file mode 100644 index 000000000..24de4265c Binary files /dev/null and b/source/img/tours/manaraga-tour.jpg differ diff --git a/source/img/tours/manaraga-tour.webp b/source/img/tours/manaraga-tour.webp new file mode 100644 index 000000000..639c69a08 Binary files /dev/null and b/source/img/tours/manaraga-tour.webp differ diff --git a/source/img/tours/manaraga-tour@2x.jpg b/source/img/tours/manaraga-tour@2x.jpg new file mode 100644 index 000000000..7b2398c7f Binary files /dev/null and b/source/img/tours/manaraga-tour@2x.jpg differ diff --git a/source/img/tours/manaraga-tour@2x.webp b/source/img/tours/manaraga-tour@2x.webp new file mode 100644 index 000000000..9a3a54f55 Binary files /dev/null and b/source/img/tours/manaraga-tour@2x.webp differ diff --git a/source/img/trainers/alexander-prokofiev.jpg b/source/img/trainers/alexander-prokofiev.jpg new file mode 100644 index 000000000..10c289b25 Binary files /dev/null and b/source/img/trainers/alexander-prokofiev.jpg differ diff --git a/source/img/trainers/alexander-prokofiev.webp b/source/img/trainers/alexander-prokofiev.webp new file mode 100644 index 000000000..1d4388262 Binary files /dev/null and b/source/img/trainers/alexander-prokofiev.webp differ diff --git a/source/img/trainers/alexander-prokofiev@2x.jpg b/source/img/trainers/alexander-prokofiev@2x.jpg new file mode 100644 index 000000000..63236925d Binary files /dev/null and b/source/img/trainers/alexander-prokofiev@2x.jpg differ diff --git a/source/img/trainers/alexander-prokofiev@2x.webp b/source/img/trainers/alexander-prokofiev@2x.webp new file mode 100644 index 000000000..b1d2a8de6 Binary files /dev/null and b/source/img/trainers/alexander-prokofiev@2x.webp differ diff --git a/source/img/trainers/daniel-vasnetsov.jpg b/source/img/trainers/daniel-vasnetsov.jpg new file mode 100644 index 000000000..216ffb9cd Binary files /dev/null and b/source/img/trainers/daniel-vasnetsov.jpg differ diff --git a/source/img/trainers/daniel-vasnetsov.webp b/source/img/trainers/daniel-vasnetsov.webp new file mode 100644 index 000000000..a8a77ea24 Binary files /dev/null and b/source/img/trainers/daniel-vasnetsov.webp differ diff --git a/source/img/trainers/daniel-vasnetsov@2x.jpg b/source/img/trainers/daniel-vasnetsov@2x.jpg new file mode 100644 index 000000000..a56a17dcd Binary files /dev/null and b/source/img/trainers/daniel-vasnetsov@2x.jpg differ diff --git a/source/img/trainers/daniel-vasnetsov@2x.webp b/source/img/trainers/daniel-vasnetsov@2x.webp new file mode 100644 index 000000000..0c50a829f Binary files /dev/null and b/source/img/trainers/daniel-vasnetsov@2x.webp differ diff --git a/source/img/trainers/fyodor-kaigorodov.jpg b/source/img/trainers/fyodor-kaigorodov.jpg new file mode 100644 index 000000000..bc368cf6d Binary files /dev/null and b/source/img/trainers/fyodor-kaigorodov.jpg differ diff --git a/source/img/trainers/fyodor-kaigorodov.webp b/source/img/trainers/fyodor-kaigorodov.webp new file mode 100644 index 000000000..20310c28f Binary files /dev/null and b/source/img/trainers/fyodor-kaigorodov.webp differ diff --git a/source/img/trainers/fyodor-kaigorodov@2x.jpg b/source/img/trainers/fyodor-kaigorodov@2x.jpg new file mode 100644 index 000000000..97ae64cfc Binary files /dev/null and b/source/img/trainers/fyodor-kaigorodov@2x.jpg differ diff --git a/source/img/trainers/fyodor-kaigorodov@2x.webp b/source/img/trainers/fyodor-kaigorodov@2x.webp new file mode 100644 index 000000000..87fc7cd67 Binary files /dev/null and b/source/img/trainers/fyodor-kaigorodov@2x.webp differ diff --git a/source/img/trainers/nadezhda-kolesnichenko.jpg b/source/img/trainers/nadezhda-kolesnichenko.jpg new file mode 100644 index 000000000..13d84d3f8 Binary files /dev/null and b/source/img/trainers/nadezhda-kolesnichenko.jpg differ diff --git a/source/img/trainers/nadezhda-kolesnichenko.webp b/source/img/trainers/nadezhda-kolesnichenko.webp new file mode 100644 index 000000000..b4bffd035 Binary files /dev/null and b/source/img/trainers/nadezhda-kolesnichenko.webp differ diff --git a/source/img/trainers/nadezhda-kolesnichenko@2x.jpg b/source/img/trainers/nadezhda-kolesnichenko@2x.jpg new file mode 100644 index 000000000..ca76d1929 Binary files /dev/null and b/source/img/trainers/nadezhda-kolesnichenko@2x.jpg differ diff --git a/source/img/trainers/nadezhda-kolesnichenko@2x.webp b/source/img/trainers/nadezhda-kolesnichenko@2x.webp new file mode 100644 index 000000000..a01a849cd Binary files /dev/null and b/source/img/trainers/nadezhda-kolesnichenko@2x.webp differ diff --git a/source/img/trainers/svetlana-afinogenova.jpg b/source/img/trainers/svetlana-afinogenova.jpg new file mode 100644 index 000000000..8d745c79d Binary files /dev/null and b/source/img/trainers/svetlana-afinogenova.jpg differ diff --git a/source/img/trainers/svetlana-afinogenova.webp b/source/img/trainers/svetlana-afinogenova.webp new file mode 100644 index 000000000..f047c7da2 Binary files /dev/null and b/source/img/trainers/svetlana-afinogenova.webp differ diff --git a/source/img/trainers/svetlana-afinogenova@2x.jpg b/source/img/trainers/svetlana-afinogenova@2x.jpg new file mode 100644 index 000000000..152c7f2af Binary files /dev/null and b/source/img/trainers/svetlana-afinogenova@2x.jpg differ diff --git a/source/img/trainers/svetlana-afinogenova@2x.webp b/source/img/trainers/svetlana-afinogenova@2x.webp new file mode 100644 index 000000000..4d573b200 Binary files /dev/null and b/source/img/trainers/svetlana-afinogenova@2x.webp differ diff --git a/source/index.html b/source/index.html index 0ce0e1c9c..a03ccfc89 100644 --- a/source/index.html +++ b/source/index.html @@ -1,31 +1,429 @@ - - - - Lifetour - - - - - - Это спрайт - - - - -
header
-
hero
-
tours
-
training
+ + + + Lifetour + + + + + +
+
+ + + + 8 800 000-00-00 +
+
+
+

Lifetour - организация походов в горы

+
+
+
+
+ + + + + + + + Горы на Кавказе + +
+
+

Захватывающие вершины Кавказа

+

В сопровождении опытных гидов вы пройдёте через потрясающие ландшафты и совершите восход на вершину горы Чегет.

+
+ Смотреть тур +
+

6 дней/5 ночей

+

Высокая сложность

+
+
+
+
+ + + + + + + + Горы на Камчатке + +
+
+

Невероятная природа Камчатки

+

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

+
+ Смотреть тур +
+

9 дней/10 ночей

+

Средняя сложность

+
+
+
+
+ + + + + + + + Горы на Алтае + +
+
+

Магические пейзажи Алтайского Края

+

Алтайский трекинг-тур — это захватывающее приключение с посещением магических и захватывающих дух ландшафтов Алтайских гор.

+
+ Смотреть тур +
+

8 дней/7 ночей

+

Лёгкая сложность

+
+
+
+
+
+
+
+
+
+
+

Ближайшие туры

+
+ + +
+
+
+
    +
  • + + + + Эльбрус + +
    +
    + Кавказ +

    4 дня

    +

    3 ночи

    +
    +

    Путешествие + вокруг Эльбруса

    +
      +
    • +

      Сложность:

      + + + + + +
    • +
    • +

      Даты набора:

      +

      12.06–19.06

      +
    • +
    • +

      Группа:

      +

      до 15 чел.

      +
    • +
    +
    +
  • + +
  • + + + + Гора Белуха + +
    +
    + Алтай +

    14 дней

    +

    13 ночей

    +
    +

    Путь к подножию + Белухи

    +
      +
    • +

      Сложность:

      + + + + + +
    • +
    • +

      Даты набора:

      +

      14.06-23.06

      +
    • +
    • +

      Группа:

      +

      до 25 чел.

      +
    • +
    +
    +
  • + +
  • + + + + Фишт + +
    +
    + Адыгея +

    7 дней

    +

    6 ночей

    +
    +

    Через Фишт + к Чёрному морю и обратно

    +
      +
    • +

      Сложность:

      + + + + + +
    • +
    • +

      Даты набора:

      +

      15.07-19.07

      +
    • +
    • +

      Группа:

      +

      до 22 чел.

      +
    • +
    +
    +
  • + +
  • + + + + Манарага + +
    +
    + Урал +

    9 дней

    +

    10 ночей

    +
    +

    Восхождение Манарага

    +
      +
    • +

      Сложность:

      + + + + + +
    • +
    • +

      Даты набора:

      +

      12.07-19.07

      +
    • +
    • +

      Группа:

      +

      до 7 чел.

      +
    • +
    +
    +
  • +
+
+ + Показать все туры + + + + +
+
+
+

Обучение

+

Обучение проводится квалифицированными специалистами, за плечами которых десятки пройденных маршрутов Кавказа, Крыма, Гималаев, Эльбруса, Алтая, Карелии, Адыгеи и других.

+
+

Наши инструкторы

+
+ + +
+
+
+
    +
  • + + + + Эльбрус + +
    +

    Александр Прокофьев

    + + + + + +
    +

    Строгий и внимательный инструктор, весёлый и общительный человек. Любит природу.

    +
  • +
  • + + + + Эльбрус + +
    +

    Светлана Афиногенова

    + + + + + +
    +

    Видеть мир вокруг, познавать его опасности, находить друг друга, становиться ближе, чувствовать — в этом назначение жизни.

    +
  • +
  • + + + + Эльбрус + +
    +

    Надежда Колесниченко

    + + + + + +
    +

    Участники говорят, что Надежда ответственная, приятная в общении, и в поездках с ней чувствуешь себя спокойно и уверенно.

    +
  • +
  • + + + + Эльбрус + +
    +

    Федор Кайгородов

    + + + + + +
    +

    Опыт походов: Ходит в походы с 2001 года. В России побывал в горных районах Хибины, Архыз, много путешествует по Европе.

    +
  • +
  • + + + + Эльбрус + +
    +

    Даниэль Васнецов

    + + + + + +
    +

    Покорял самые сложные вершины. Выбирался из под лавин, дружит с медведями и не только.

    +
  • +
+
+
+

Процесс обучения

+
    +
  • +

    Изучение спортивного туристского движения

    +
  • +
  • +

    Подготовка и техническое снаряжение в походах

    +
  • +
  • +

    Лекции по окружающей среде, экологии и гигиене

    +
  • +
  • +

    Разъяснение сложности горных препятствий

    +
  • +
+
+
+
about
reviews
adv
gallery
form
-
footer
- - +
+ + + + + + diff --git a/source/js/main.js b/source/js/main.js index 70fde252c..7b16a392c 100644 --- a/source/js/main.js +++ b/source/js/main.js @@ -1,4 +1,9 @@ -// https://swiperjs.com/get-started#installation -// import Swiper from "swiper"; -// import {Navigation, Pagination} from "swiper/modules"; -// import 'swiper/css'; +import { initHeroSwiper } from './modules/hero-slider'; +import { initToursSwiper } from './modules/tours-slider'; +import { initTrainersSwiper } from './modules/trainers-slider'; +import { getRating } from './modules/stars'; + +initHeroSwiper(); +initToursSwiper(); +initTrainersSwiper(); +getRating(); diff --git a/source/js/modules/hero-slider.js b/source/js/modules/hero-slider.js new file mode 100644 index 000000000..eff979f29 --- /dev/null +++ b/source/js/modules/hero-slider.js @@ -0,0 +1,43 @@ +import Swiper from 'swiper'; +import { Pagination } from 'swiper/modules'; + +const initHeroSwiper = () => { + const swiper = new Swiper('.hero-slider', { + modules: [ Pagination ], + direction: 'horizontal', + loop: true, + slidesPerView: 1, + spaceBetween: 0, + pagination: { + el: '.swiper-pagination', + clickable: false, + }, + breakpoints: { + 320: { + grabCursor: true, + allowTouchMove: true, + pagination: { + clickable: false, + }, + }, + 768: { + grabCursor: true, + allowTouchMove: true, + pagination: { + clickable: false, + }, + }, + 1440: { + grabCursor: false, + allowTouchMove: false, + pagination: { + clickable: true, + }, + }, + } + }); + return swiper; +}; + +export { initHeroSwiper }; + diff --git a/source/js/modules/stars.js b/source/js/modules/stars.js new file mode 100644 index 000000000..761a04f7c --- /dev/null +++ b/source/js/modules/stars.js @@ -0,0 +1,37 @@ +const createStars = (filled) => { + const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'); + svg.setAttribute('width', '15'); + svg.setAttribute('height', '13'); + + const use = document.createElementNS('http://www.w3.org/2000/svg', 'use'); + use.setAttribute('href', '/__spritemap#sprite-star-fill-none'); + + + if (filled) { + use.setAttribute('href', '/__spritemap#sprite-star-fill-white'); + } + + svg.appendChild(use); + return svg; +}; + +const getRating = () => { + document.addEventListener('DOMContentLoaded', () => { + const starsContainer = document.querySelectorAll('.card__info-list-item'); + starsContainer.forEach((item) => { + const ratingSpan = item.querySelector('[data-rating]'); + + if(ratingSpan) { + const ratingValue = ratingSpan.dataset.rating; + ratingSpan.innerHTML = ''; + + for (let i = 0; i < 5; i++) { + const star = createStars(i < ratingValue); + ratingSpan.appendChild(star); + } + } + }); + }); +}; + +export { getRating }; diff --git a/source/js/modules/tours-slider.js b/source/js/modules/tours-slider.js new file mode 100644 index 000000000..adb9d6c87 --- /dev/null +++ b/source/js/modules/tours-slider.js @@ -0,0 +1,34 @@ +import Swiper from 'swiper'; +import { Navigation } from 'swiper/modules'; + +const initToursSwiper = () => { + const swiper = new Swiper('.tours__slider', { + modules: [ Navigation ], + navigation: { + nextEl: '.tours__slider-control-button.swiper-button-next', + prevEl: '.tours__slider-control-button.swiper-button-prev', + }, + direction: 'horizontal', + loop: false, + grabCursor: true, + allowTouchMove: true, + breakpoints: { + 320: { + slidesPerView: 1, + spaceBetween: 30, + }, + 768: { + slidesPerView: 2, + spaceBetween: 18, + }, + 1440: { + slidesPerView: 3, + spaceBetween: 30, + }, + } + }); + + return swiper; +}; + +export { initToursSwiper }; diff --git a/source/js/modules/trainers-slider.js b/source/js/modules/trainers-slider.js new file mode 100644 index 000000000..5c5f9e21f --- /dev/null +++ b/source/js/modules/trainers-slider.js @@ -0,0 +1,37 @@ +import Swiper from 'swiper'; +import { Navigation } from 'swiper/modules'; + +const initTrainersSwiper = () => { + const swiper = new Swiper('.training__slider', { + modules: [ Navigation ], + navigation: { + nextEl: '.training__slider-control-button.swiper-button-next', + prevEl: '.training__slider-control-button.swiper-button-prev', + }, + direction: 'horizontal', + loop: false, + grabCursor: true, + allowTouchMove: true, + breakpoints: { + 320: { + slidesPerView: 1, + spaceBetween: 30, + initialSlide: 2, + }, + 768: { + slidesPerView: 3, + spaceBetween: 20, + initialSlide: 0, + }, + 1440: { + slidesPerView: 4, + spaceBetween: 20, + initialSlide: 0, + }, + } + }); + + return swiper; +}; + +export { initTrainersSwiper }; diff --git a/source/sass/blocks/card.scss b/source/sass/blocks/card.scss new file mode 100644 index 000000000..2df5f97e6 --- /dev/null +++ b/source/sass/blocks/card.scss @@ -0,0 +1,196 @@ +.card { + position: relative; + margin: 0 auto; + width: 290px; + box-sizing: border-box; + + color: var(--secondary-color, $secondary-color); + text-align: center; + + img { + position: absolute; + display: block; + + width: 100%; + height: 100%; + min-height: 416px; + object-fit: cover; + } +} + +.card::before { + position: absolute; + display: block; + content: ""; + top: 0; + left: 0; + width: 100%; + height: 100%; + + background: linear-gradient(to right, #0f1429 0%, rgba(15, 20, 41, 0.3) 0%, rgba(15, 20, 41, 0.2) 100%); + mix-blend-mode: multiply; + pointer-events: none; + z-index: 1; +} + +.card__inner-container { + position: relative; + padding: 30px 20px; + min-height: 356px; + display: flex; + flex-flow: column wrap; + justify-content: flex-end; + gap: 15px; + z-index: 2; +} + +.card__info-box { + display: flex; + flex-wrap: wrap; + justify-content: space-between; +} + +.card__pin, +.card__duration-text { + @include font (12px, 12px, 500); + + position: relative; + margin: 0; + + &::before { + position: absolute; + content: ""; + display: block; + top: 50%; + left: 0; + transform: translateY(-50%); + } +} + +.card__pin { + padding: 8px 12px 8px 34px; + background-color: var(--accent-color, $accent-color); + + &::before { + width: 16px; + height: 16px; + left: 12px; + background-image: url("/__spritemap#sprite-white-pin-view"); + background-repeat: no-repeat; + background-position: center; + background-size: 9px 12px; + } +} + +.card__duration-text { + padding: 8px 0 8px 32px; + box-sizing: border-box; + text-align: right; + + &::before { + width: 20px; + height: 20px; + background-position: center; + background-repeat: no-repeat; + } +} + +.card__duration-text--days { + min-width: 67px; + + &::before { + background-image: url("/__spritemap#sprite-sun-view"); + background-size: 20px 20px; + } +} + +.card__duration-text--nights { + min-width: 74px; + + &::before { + background-image: url("/__spritemap#sprite-moon-view"); + background-size: 16px 16px; + } +} + +.card__title { + @include font (24px, 28px, 700); + + position: relative; + margin: 0; + padding-right: 35px; + text-align: left; + + &::after { + position: absolute; + display: block; + content: ""; + width: 80px; + height: 1px; + top: 125%; + left: 0; + background-color: var(--secondary-color, $secondary-color); + } +} + +.card__info-list { + @include list-style; + + margin-top: 15px; + display: flex; + flex-wrap: wrap; + gap: 7px; +} + +.card__info-list-item { + display: flex; + flex-flow: column wrap; + min-height: 32px; + text-align: left; + + p { + @include font (13px, 13px, 700); + + margin: 0; + } + + p:first-of-type { + @include font (12px, 12px, 300); + + margin: 0; + margin-bottom: 7px; + } + + span { + display: inline-block; + width: 84px; + height: 16px; + } + + span > svg { + display: inline-block; + margin-right: 0.7px; + width: 16px; + height: 16px; + } +} + +.card__info-list-item--special:first-child p { + margin-bottom: 4px; +} + +@media (min-width: $tablet-width) and (width <= 1439px) { + .card { + width: 330px; + } + + .card__info-list { + gap: 28px; + } +} + +@media (min-width: $desktop-width) { + .card__info-list { + gap: 52px; + } +} diff --git a/source/sass/blocks/features-container.scss b/source/sass/blocks/features-container.scss new file mode 100644 index 000000000..b22388da3 --- /dev/null +++ b/source/sass/blocks/features-container.scss @@ -0,0 +1,188 @@ +.features-container { + width: 100%; +} + +.features-container__title { + @include font (16px, 16px, 700); + + margin-top: 0; + margin-bottom: 25px; +} + +.features-container__list { + @include list-style; +} + +.features-container__item { + position: relative; + + &::after { + position: absolute; + display: block; + content: ""; + top: 0; + left: 0; + width: 25px; + height: 25px; + background-repeat: no-repeat; + background-position: center; + } +} + +.features-container__item--map::after { + background-image: url("/__spritemap#sprite-map-view"); +} + +.features-container__item--boots::after { + background-image: url("/__spritemap#sprite-boots-view"); +} + +.features-container__item--forest::after { + background-image: url("/__spritemap#sprite-pine-tree-view"); +} + +.features-container__item--mountains::after { + background-image: url("/__spritemap#sprite-mountain-view"); +} + +.features-container__item .features-container__item-description { + @include font (12px, 18px, 400); + + margin: 0; +} + +@media (min-width: $mobile-width) and (width <= 767px) { + .features-container__list { + position: relative; + display: flex; + flex-flow: column wrap; + gap: 25px; + min-height: 219px; + + &::before { + position: absolute; + content: ""; + width: 2px; + height: 183px; + top: 11px; + bottom: 0; + left: 6px; + background-color: var(--accent-color, $accent-color); + z-index: 0; + } + } + + .features-container__item { + padding: 0 26px 0 63px; + + &::before { + position: absolute; + display: block; + content: ""; + left: 0; + top: 50%; + transform: translateY(-50%); + width: 14px; + height: 14px; + border-radius: 50%; + background-color: var(--accent-color, $accent-color); + z-index: 1; + } + + &::after { + top: 50%; + left: 29px; + transform: translateY(-50%); + } + } +} + +@media (min-width: $tablet-width) and (width <= 1439px) { + .features-container__title { + margin-bottom: 104px; + + font-size: 18px; + line-height: 18px; + } + + .features-container__list { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 104px 174px; + min-height: 192px; + } + + .features-container__item { + padding: 0 15px 0 35px; + } + + .features-container__item--boots { + grid-area: 2/1/3/2; + } + + .features-container__item--mountains { + grid-area: 1/2/2/3; + } + + .features-container__item .features-container__item-description { + font-size: 14px; + line-height: 22px; + } +} + +@media (min-width: $desktop-width) { + .features-container__title { + margin-bottom: 23px; + + font-size: 21px; + line-height: 21px; + } + + .features-container__list { + position: relative; + display: flex; + flex-wrap: wrap; + width: 100%; + + &::before { + position: absolute; + content: ""; + width: 1180px; + height: 2px; + bottom: 14px; + left: 20px; + background-color: var(--accent-color, $accent-color); + z-index: 0; + } + } + + .features-container__item { + padding: 0 10px 0 45px; + width: 198px; + min-height: 102px; + + &::before { + position: absolute; + display: block; + content: ""; + left: 20px; + bottom: 0; + transform: translateY(-50%); + width: 14px; + height: 14px; + border-radius: 50%; + background-color: var(--accent-color, $accent-color); + z-index: 1; + } + + &::after { + top: 0; + left: 10px; + } + } + + .features-container__item .features-container__item-description { + font-size: 16px; + line-height: 24px; + } +} diff --git a/source/sass/blocks/header.scss b/source/sass/blocks/header.scss new file mode 100644 index 000000000..1bc5c5ea4 --- /dev/null +++ b/source/sass/blocks/header.scss @@ -0,0 +1,162 @@ +.header { + width: 100%; + background-color: var(--accent-color, $accent-color); +} + +.header__container { + position: relative; + margin: 0 auto; + display: flex; + flex-wrap: wrap; + justify-content: space-between; + align-items: center; +} + +.header__logo { + display: block; + height: 42px; +} + +.header__burger { + position: absolute; + display: flex; + align-items: center; + justify-content: center; + padding: 0; + width: 26px; + height: 26px; + background-color: transparent; + border: none; +} + +.header__burger svg { + display: block; + width: 100%; + height: 100%; + fill: $secondary-color; +} + +.header__menu { + @include list-style; + + display: flex; + flex-flow: column-wrap; +} + +.header__menu-link, +.header__phone { + @include font(14px, 14px, 700); + + color: var(--secondary-color, $secondary-color); + text-decoration: none; +} + +.header__phone { + font-weight: 600; +} + +@media (min-width: $mobile-width) and (width <= 767px) { + .header__container { + position: relative; + display: grid; + grid-template-columns: 148px 142px; + grid-template-rows: 42px 14px; + row-gap: 14px; + width: 290px; + padding: 15px; + } + + .header__nav { + display: none; + } + + .header__logo { + grid-area: 1/2/2/3; + } + + .header__phone { + grid-area: 2/2/2/3; + text-align: right; + } + + .header__burger { + position: absolute; + grid-area: 1/1/2/2; + top: 0; + left: 0; + } +} + +@media (min-width: $tablet-width) and (width <= 1439px) { + .header__container { + position: relative; + width: 678px; + padding: 20px 45px; + justify-content: flex-end; + } + + .header__nav { + display: none; + } + + .header__burger { + top: 50%; + left: 45px; + transform: translateY(-50%); + } + + .header__logo { + padding: 0 42px; + } + + .header__menu-link { + font-size: 16px; + line-height: 16px; + } + + .header__phone { + width: 226px; + + font-size: 16px; + line-height: 16px; + text-align: right; + } +} + +@media (min-width: $desktop-width) { + .header__container { + width: 1200px; + padding: 32px 120px; + } + + .header__logo { + padding: 10px 31px 10px 32px; + box-sizing: border-box; + height: 62px; + } + + .header__nav { + display: block; + } + + .header__burger { + display: none; + } + + .header__menu { + width: 838px; + padding: 0 133px; + box-sizing: border-box; + flex-flow: row wrap; + justify-content: space-between; + } + + .header__menu-link { + font-weight: 400; + } + + .header__phone { + font-size: 18px; + line-height: 18px; + } +} diff --git a/source/sass/blocks/hero-slider.scss b/source/sass/blocks/hero-slider.scss new file mode 100644 index 000000000..83ab9421a --- /dev/null +++ b/source/sass/blocks/hero-slider.scss @@ -0,0 +1,242 @@ +.hero-slider { + position: relative; + width: 100%; + margin: 0 auto; + overflow: hidden; +} + +.hero-slider__slide { + position: relative; + margin: 0 auto; + box-sizing: border-box; + + color: var(--secondary-color, $secondary-color); + text-align: center; + + img { + position: absolute; + display: block; + width: 100%; + height: 100%; + min-height: 568px; + object-fit: cover; + } +} + +.hero-slider__slide::before { + position: absolute; + display: block; + content: ""; + top: 0; + left: 0; + width: 100%; + height: 100%; + + background: linear-gradient(to right, #0f1429 0%, rgba(15, 20, 41, 0.4) 0%, rgba(15, 20, 41, 0.1) 100%); + mix-blend-mode: multiply; + pointer-events: none; + z-index: 1; +} + +.hero-slider__slide-inner { + position: relative; + display: flex; + flex-flow: column wrap; + justify-content: center; + align-items: center; + width: 290px; + min-height: 472px; + margin: 0 auto; + padding: 40px 15px 56px; + z-index: 2; + + div:first-of-type > h2 { + @include font(26px, 26px, 800); + + margin-top: 0; + margin-bottom: 15px; + } + + div:first-of-type > p { + @include font(15px, 20px, 400); + + margin-top: 0; + margin-bottom: 60px; + } +} + +.hero-slider__button { + @include font (16px, 16px, 500); + + padding: 20px; + width: 140px; + + background-color: var(--accent-color, $accent-color); + color: var(--secondary-color, $secondary-color); + text-decoration: none; +} + +.hero-slider__info-container { + display: none; +} + +.hero-slider__controls.swiper-pagination { + display: flex; + margin: 0; + width: 88px; + gap: 20px; + bottom: 40px; + left: 50%; + transform: translateX(-50%); +} + +.hero-slider__controls.swiper-pagination .swiper-pagination-bullet { + margin: 0; + padding: 0; + width: 16px; + height: 16px; + outline: 1px solid var(--secondary-color, $secondary-color); + background-color: transparent; + opacity: 1; +} + +.hero-slider__controls.swiper-pagination .swiper-pagination-bullet-active { + background-color: var(--secondary-color, $secondary-color); +} + + +@media (min-width: $tablet-width) and (width <= 1439px) { + .hero-slider__slide img { + min-height: 1034px; + } + + .hero-slider__slide::before { + min-height: 1034px; + } + + .hero-slider__slide-inner { + padding: 342px 45px 402px; + width: 678px; + min-height: 290px; + + div:first-of-type > h2 { + font-size: 56px; + line-height: 56px; + } + + div:first-of-type > p { + margin: 0 auto; + margin-bottom: 35px; + width: 500px; + + font-size: 17px; + line-height: 24px; + font-weight: 300; + } + } + + .hero-slider__controls.swiper-pagination { + display: flex; + align-items: center; + width: 100px; + height: 100px; + bottom: 0; + } + + .hero-slider__controls.swiper-pagination .swiper-pagination-bullet { + width: 20px; + height: 20px; + } +} + +@media (min-width: $desktop-width) { + .hero-slider__slide img { + min-height: 800px; + } + + .hero-slider__slide::before { + min-height: 800px; + } + + .hero-slider__slide-inner { + width: 1440px; + min-height: 800px; + padding: 200px 385px 80px 120px; + box-sizing: border-box; + + text-align: left; + + div:first-of-type > h2 { + margin-bottom: 25px; + + font-size: 77px; + line-height: 77px; + } + + div:first-of-type > p { + margin-bottom: 35px; + width: 465px; + + font-size: 17px; + line-height: 24px; + } + } + + .hero-slider__button { + margin-right: auto; + margin-bottom: 134px; + text-align: center; + } + + .hero-slider__info-container { + margin-right: auto; + display: flex; + flex-wrap: wrap; + gap: 10px; + width: 700px; + } + + .hero-slider__info-text { + @include font (12px, 16px, 400); + + position: relative; + display: inline-block; + margin: 0; + padding: 14px 20px 14px 40px; + outline: 1px solid var(--secondary-color, $secondary-color); + + &::before { + position: absolute; + display: inline-block; + content: ""; + width: 12px; + height: 12px; + top: 50%; + left: 20px; + transform: translateY(-50%); + } + } + + .hero-slider__info--duration::before { + background-image: url("/__spritemap#sprite-moon-view"); + background-size: 11px 11px; + background-repeat: no-repeat; + } + + .hero-slider__info--complexity::before { + background-image: url("/__spritemap#sprite-level-view"); + background-size: 10px 11px; + background-repeat: no-repeat; + } + + .hero-slider__controls.swiper-pagination { + width: 100px; + left: 88%; + bottom: 82px; + } + + .hero-slider__controls.swiper-pagination .swiper-pagination-bullet { + width: 20px; + height: 20px; + } +} diff --git a/source/sass/blocks/main.scss b/source/sass/blocks/main.scss new file mode 100644 index 000000000..a08143463 --- /dev/null +++ b/source/sass/blocks/main.scss @@ -0,0 +1,65 @@ +.main__background { + position: relative; +} + +.main__section { + position: relative; + width: 100%; + overflow: hidden; + background-color: var(--secondary-color, $secondary-color); + z-index: 1; +} + +@media (min-width: $mobile-width) and (width <= 767px) { + .main__section.tours::before { + position: absolute; + content: ""; + width: 995px; + height: 595px; + top: 10px; + left: 55%; + background-image: + image-set( + url("../../img/cloud-background/mountains-and-clouds.webp") type("image/webp") 1x, + url("../../img/cloud-background/mountains-and-clouds@2x.webp") type("image/webp") 2x, + url("../../img/cloud-background/mountains-and-clouds.png") type("image/png") 1x, + url("../../img/cloud-background/mountains-and-clouds@2x.png") type("image/png") 2x + ); + background-size: cover; + z-index: -1; + } +} + +@media (min-width: $tablet-width) { + .main__section { + position: relative; + background-color: transparent; + z-index: 0; + } + + .main__background::before { + position: absolute; + content: ""; + width: 2060px; + height: 1630px; + top: 925px; + left: 300px; + background-image: + image-set( + url("../../img/cloud-background/mountains-and-clouds.webp") type("image/webp") 1x, + url("../../img/cloud-background/mountains-and-clouds@2x.webp") type("image/webp") 2x, + url("../../img/cloud-background/mountains-and-clouds.png") type("image/png") 1x, + url("../../img/cloud-background/mountains-and-clouds@2x.png") type("image/png") 2x + ); + background-size: cover; + z-index: -1; + } +} + +@media (min-width: $desktop-width) { + .main__background::before { + top: 686px; + left: 864px; + } +} + diff --git a/source/sass/blocks/tours.scss b/source/sass/blocks/tours.scss new file mode 100644 index 000000000..c7ea11043 --- /dev/null +++ b/source/sass/blocks/tours.scss @@ -0,0 +1,121 @@ +.tours__container { + position: relative; + margin: 0 auto; + width: 320px; + padding: 20px 15px; + box-sizing: border-box; + overflow: hidden; +} + +.tours__inner { + position: relative; + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 25px; +} + +.tours__slider-controls { + display: flex; + align-items: center; + gap: 4px; + width: 78px; + min-height: 35px; +} + +.tours__title { + @include font (22px, 22px, 800); + + padding: 17px 0; + margin: 0; +} + +.tours__slide-list.swiper-wrapper { + @include list-style; + + margin-bottom: 25px; +} + +.tours__button { + @include font (14px, 14px, 700); + + position: relative; + display: block; + margin: 0 auto; + padding: 10px; + padding-right: 28px; + min-width: 212px; + letter-spacing: 0.04em; + box-sizing: border-box; + + text-transform: uppercase; + text-decoration: none; + text-align: center; + color: var(--primary-color, $primary-color); +} + +.tours__button svg { + position: absolute; + top: 50%; + left: 78%; + transform: translateY(-50%); + display: block; + stroke: #2d383f; + fill: none; +} + +@media (min-width: $mobile-width) and (width <= 767px) { + .tours__slider-controls { + display: none; + } +} + +@media (min-width: $tablet-width) and (width <= 1439px) { + .tours__container { + width: 678px; + padding: 40px 0; + } + + .tours__title { + padding: 20px 0 5px; + + font-size: 25px; + line-height: 25px; + } + + .tours__button { + font-size: 16px; + line-height: 16px; + } + + .tours__button svg { + left: 63%; + } +} + +@media (min-width: $desktop-width) { + .tours__container { + width: 1200px; + padding: 100px 0; + } + + .tours__slide-list.swiper-wrapper { + margin-bottom: 53px; + } + + .tours__title { + margin-bottom: 53; + + font-size: 55px; + line-height: 55px; + } + + .tours__button { + font-size: 16px; + line-height: 16px; + } + + .tours__button svg { + left: 57%; + } +} diff --git a/source/sass/blocks/training.scss b/source/sass/blocks/training.scss new file mode 100644 index 000000000..b02b7f4a6 --- /dev/null +++ b/source/sass/blocks/training.scss @@ -0,0 +1,193 @@ +.training { + margin: 0 auto; + padding: 20px 15px; + width: 290px; + + p { + @include font (14px, 20px, 400); + + margin-top: 0; + margin-bottom: 25px; + } +} + +.training__title { + @include font (22px, 22px, 800); + + position: relative; + margin: 0; + margin-bottom: 18px; + padding: 16px 0 17px; +} + +.training__inner { + position: relative; + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 25px; +} + +.training__slider-controls { + display: flex; + align-items: center; + gap: 4px; + width: 78px; + min-height: 35px; +} + +.training__inner-title { + @include font (22px, 22px, 800); + + margin: 0; +} + +.training__slider { + margin: 0 auto; + margin-bottom: 25px; + width: 100%; + overflow: hidden; +} + +.training__slider-list { + @include list-style; +} + +.training__slider-item.swiper-slide { + display: flex; + flex-flow: column wrap; + gap: 15px; + width: 290px; + min-height: 356px; + padding: 15px; + box-sizing: border-box; + border: 1px solid rgba(2, 102, 193, 0.2); + background-color: var(--secondary-color, $secondary-color); + + div { + display: grid; + grid-template-columns: 1fr 24px; + width: 100%; + } + + a, + picture { + display: block; + } + + a { + display: flex; + align-items: center; + justify-content: center; + width: 24px; + height: 24px; + outline: 1px solid var(--primary-color, $primary-color); + } + + h4 { + @include font (14px, 16px, 700); + + margin: 0; + padding-right: 15px; + } + + p { + @include font (12px, 16px, 400); + + margin: 0; + } +} + +@media (min-width: $mobile-width) and (width <= 767px) { + .training__slider-controls { + display: none; + } +} + +@media (min-width: $tablet-width) and (width <= 1439px) { + .training { + padding: 40px 45px; + width: 678px; + + p { + font-size: 16px; + line-height: 24px; + } + } + + .training__title { + margin-bottom: 26px; + padding: 20px 0 10px; + + font-size: 25px; + line-height: 25px; + } + + .training__inner { + margin-bottom: 30px; + } + + .training__inner-title { + font-size: 25px; + line-height: 25px; + } + + .training__slider-item.swiper-slide { + padding-bottom: 13px; + min-height: 388px; + + picture { + width: 182px; + height: 200px; + overflow: hidden; + } + + picture img { + object-fit: contain; + object-position: -31px center; + } + } +} + +@media (min-width: $desktop-width) { + .training { + padding: 40px 120px; + width: 1200px; + + p { + font-size: 16px; + line-height: 24px; + } + } + + .training__title { + margin-bottom: 37px; + padding: 19px 0 1px; + + font-size: 35px; + line-height: 35px; + } + + .training__inner { + margin-bottom: 20px; + } + + .training__inner-title { + font-size: 35px; + line-height: 35px; + } + + .training__slider-item.swiper-slide { + padding-bottom: 13px; + + picture { + width: 255px; + height: 200px; + overflow: hidden; + } + + h4 { + padding-right: 55px; + } + } +} diff --git a/source/sass/common/buttons.scss b/source/sass/common/buttons.scss new file mode 100644 index 000000000..61d62dca6 --- /dev/null +++ b/source/sass/common/buttons.scss @@ -0,0 +1,26 @@ +.slider-control-button.swiper-button-prev, +.slider-control-button.swiper-button-next { + position: static; + display: flex; + align-items: center; + margin: 0; + width: 37px; + height: 35px; + border: none; + background-color: var(--accent-color, $accent-color); + + &::after { + display: none; + } +} + +.slider-control-button.swiper-button-disabled { + background-color: var(--disabled-element-color, $disabled-element-color); + opacity: 1; +} + +.slider-control-button svg { + width: 13px; + height: 9px; + fill: var(--secondary-color, $secondary-color); +} diff --git a/source/sass/common/fonts.scss b/source/sass/common/fonts.scss new file mode 100644 index 000000000..70c951e33 --- /dev/null +++ b/source/sass/common/fonts.scss @@ -0,0 +1,8 @@ +$base-font: "Montserrat","Arial", sans-serif; + +@include font-face("Montserrat", 300, normal, url("../../fonts/montserrat-light.woff2") format("woff2"), url("../../fonts/montserrat-light.woff") format("woff")); +@include font-face("Montserrat", 400, normal, url("../../fonts/montserrat-regular.woff2") format("woff2"), url("../../fonts/montserrat-regular.woff") format("woff")); +@include font-face("Montserrat", 500, normal, url("../../fonts/montserrat-medium.woff2") format("woff2"), url("../../fonts/montserrat-regular.woff") format("woff")); +@include font-face("Montserrat", 600, normal, url("../../fonts/montserrat-semiBold.woff2") format("woff2"), url("../../fonts/montserrat-semiBold.woff") format("woff")); +@include font-face("Montserrat", 700, normal, url("../../fonts/montserrat-bold.woff2") format("woff2"), url("../../fonts/montserrat-bold.woff") format("woff")); +@include font-face("Montserrat", 800, normal, url("../../fonts/montserrat-extraBold.woff2") format("woff2"), url("../../fonts/montserrat-extraBold.woff") format("woff")); diff --git a/source/sass/common/global.scss b/source/sass/common/global.scss new file mode 100644 index 000000000..9293dfd19 --- /dev/null +++ b/source/sass/common/global.scss @@ -0,0 +1,57 @@ +:root { + --primary-color: #2d383f; + --secondary-color: #ffffff; + --accent-color: #0266c1; + --disabled-element-color: #999999; +} + +html { + height: 100%; + scroll-behavior: smooth; +} + +body { + display: flex; + flex-direction: column; + margin: 0 auto; + min-width: 320px; + min-height: 100vh; + + font-family: $base-font; + cursor: default; + + @media (min-width: $tablet-width) { + min-width: 768px; + } + + @media (min-width: $desktop-width) { + min-width: 1440px; + } +} + +[data-shadow]::before { + @include font(26px, 26px, 800); + + position: absolute; + display: block; + content: attr(data-shadow); + width: 100%; + height: 26px; + top: 0; + left: 0; + color: rgba(45, 56, 63, 0.3); + + opacity: 0.1; + z-index: -1; + pointer-events: none; + + @media (min-width: $tablet-width) { + font-size: 40px; + line-height: 40px; + } + + @media (min-width: $desktop-width) { + font-size: 55px; + line-height: 55px; + } +} diff --git a/source/sass/common/mixins.scss b/source/sass/common/mixins.scss new file mode 100644 index 000000000..7ab0604f1 --- /dev/null +++ b/source/sass/common/mixins.scss @@ -0,0 +1,21 @@ +@mixin font-face($font-family, $font-weight, $font-style, $font-woff2-src, $font-woff-src) { + @font-face { + font-family: $font-family; + font-weight: $font-weight; + font-style: $font-style; + font-display: swap; + src: $font-woff2-src, $font-woff-src; + } +} + +@mixin font($font-size, $line-height, $font-weight) { + font-size: $font-size; + line-height: $line-height; + font-weight: $font-weight; +} + +@mixin list-style { + margin: 0; + padding: 0; + list-style: none; +} diff --git a/source/sass/common/variables.scss b/source/sass/common/variables.scss new file mode 100644 index 000000000..428e83c41 --- /dev/null +++ b/source/sass/common/variables.scss @@ -0,0 +1,10 @@ +/* COLORS */ +$primary-color: #2d383f; +$secondary-color: #ffffff; +$accent-color: #0266c1; +$disabled-element-color: #999999; + +/* VIEWPORTS */ +$mobile-width: 320px; +$tablet-width: 768px; +$desktop-width: 1440px; diff --git a/source/sass/common/visually-hidden.scss b/source/sass/common/visually-hidden.scss new file mode 100644 index 000000000..70a0f84e7 --- /dev/null +++ b/source/sass/common/visually-hidden.scss @@ -0,0 +1,12 @@ +.visually-hidden { + position: absolute; + width: 1px; + height: 1px; + margin: -1px; + border: 0; + padding: 0; + white-space: nowrap; + clip-path: inset(100%); + clip: rect(0 0 0 0); + overflow: hidden; +} diff --git a/source/sass/style.scss b/source/sass/style.scss index 96467369f..5cf2aab13 100644 --- a/source/sass/style.scss +++ b/source/sass/style.scss @@ -1,4 +1,23 @@ -// Vendor -// --------------------------------- +/* SWIPER */ +@import "../../node_modules/swiper/swiper-bundle.min.css"; +/* Vendor */ @import "vendor/normalize"; + +/* GLOBAL */ +@import "./common/variables"; +@import "./common/mixins"; +@import "./common/fonts"; +@import "./common/global"; +@import "./common/visually-hidden"; +@import "./common/buttons"; + +/* BLOCKS */ +@import "./blocks/header"; +@import "./blocks/main"; +@import "./blocks/hero-slider"; +@import "./blocks/tours"; +@import "./blocks/card"; +@import "./blocks/training"; +@import "./blocks/features-container"; +