Spaces:
Running
Running
Upload 57 files
Browse filesThis view is limited to 50 files because it contains too many changes.
See raw diff
- .gitattributes +6 -0
- public/FileOutlined.svg +3 -0
- public/GithubOutlined.svg +3 -0
- public/LaptopOutlined.svg +3 -0
- public/MISIS-logo.svg +1 -0
- public/SearchOutlined.svg +3 -0
- public/airi_logo_black.svg +18 -0
- public/airi_logo_white.svg +18 -0
- public/copy.svg +3 -0
- public/flower1.jpg +3 -0
- public/flower2.jpg +3 -0
- public/flower3.jpg +3 -0
- public/flower4.jpg +3 -0
- public/flower5.jpg +3 -0
- public/hse-logo.svg +95 -0
- public/huggingFace.svg +1 -0
- public/link.svg +3 -0
- public/linkedIn_logo.svg +3 -0
- public/mei-logo.svg +13 -0
- public/mirea-logo.svg +1 -0
- public/mtuci-logo.svg +15 -0
- public/ok.svg +3 -0
- public/paper-svgrepo-com.svg +5 -0
- public/telegram.svg +1 -0
- public/vk.svg +1 -0
- public/x4.jpg +0 -0
- public/x5.png +3 -0
- public/x6.png +0 -0
- public/x_logo.svg +1 -0
- scripts/barChart.js +30 -0
- scripts/beforeAfter.js +14 -0
- scripts/codeCopy.js +30 -0
- scripts/dropdown.js +22 -0
- scripts/lightbox.js +30 -0
- scripts/lineChart.js +30 -0
- scripts/pieChart.js +29 -0
- scripts/sidebar.js +72 -0
- scripts/swiper.js +35 -0
- scripts/swiperCharts.js +142 -0
- styles/beforeAfter.css +60 -0
- styles/bibTex.css +65 -0
- styles/charts.css +30 -0
- styles/codeSection.css +31 -0
- styles/columnsSection.css +28 -0
- styles/dropdown.css +81 -0
- styles/footer.css +113 -0
- styles/header.css +104 -0
- styles/lightbox.css +77 -0
- styles/main.css +84 -0
- styles/numberSection.css +27 -0
.gitattributes
CHANGED
|
@@ -39,3 +39,9 @@ docs/public/flower3.jpg filter=lfs diff=lfs merge=lfs -text
|
|
| 39 |
docs/public/flower4.jpg filter=lfs diff=lfs merge=lfs -text
|
| 40 |
docs/public/flower5.jpg filter=lfs diff=lfs merge=lfs -text
|
| 41 |
docs/public/x5.png filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 39 |
docs/public/flower4.jpg filter=lfs diff=lfs merge=lfs -text
|
| 40 |
docs/public/flower5.jpg filter=lfs diff=lfs merge=lfs -text
|
| 41 |
docs/public/x5.png filter=lfs diff=lfs merge=lfs -text
|
| 42 |
+
public/flower1.jpg filter=lfs diff=lfs merge=lfs -text
|
| 43 |
+
public/flower2.jpg filter=lfs diff=lfs merge=lfs -text
|
| 44 |
+
public/flower3.jpg filter=lfs diff=lfs merge=lfs -text
|
| 45 |
+
public/flower4.jpg filter=lfs diff=lfs merge=lfs -text
|
| 46 |
+
public/flower5.jpg filter=lfs diff=lfs merge=lfs -text
|
| 47 |
+
public/x5.png filter=lfs diff=lfs merge=lfs -text
|
public/FileOutlined.svg
ADDED
|
|
public/GithubOutlined.svg
ADDED
|
|
public/LaptopOutlined.svg
ADDED
|
|
public/MISIS-logo.svg
ADDED
|
|
public/SearchOutlined.svg
ADDED
|
|
public/airi_logo_black.svg
ADDED
|
|
public/airi_logo_white.svg
ADDED
|
|
public/copy.svg
ADDED
|
|
public/flower1.jpg
ADDED
|
Git LFS Details
|
public/flower2.jpg
ADDED
|
Git LFS Details
|
public/flower3.jpg
ADDED
|
Git LFS Details
|
public/flower4.jpg
ADDED
|
Git LFS Details
|
public/flower5.jpg
ADDED
|
Git LFS Details
|
public/hse-logo.svg
ADDED
|
|
public/huggingFace.svg
ADDED
|
|
public/link.svg
ADDED
|
|
public/linkedIn_logo.svg
ADDED
|
|
public/mei-logo.svg
ADDED
|
|
public/mirea-logo.svg
ADDED
|
|
public/mtuci-logo.svg
ADDED
|
|
public/ok.svg
ADDED
|
|
public/paper-svgrepo-com.svg
ADDED
|
|
public/telegram.svg
ADDED
|
|
public/vk.svg
ADDED
|
|
public/x4.jpg
ADDED
|
public/x5.png
ADDED
|
Git LFS Details
|
public/x6.png
ADDED
|
public/x_logo.svg
ADDED
|
|
scripts/barChart.js
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
new Chart(document.getElementById('BarChart'), {
|
| 2 |
+
type: 'bar',
|
| 3 |
+
data: {
|
| 4 |
+
labels: ['q', 'w', 'e', 'r', 't', 'y'],
|
| 5 |
+
datasets: [
|
| 6 |
+
{
|
| 7 |
+
label: 'Dataset 1',
|
| 8 |
+
data: [520, 760, 240, 433, 156, 380],
|
| 9 |
+
backgroundColor: '#64bbf3',
|
| 10 |
+
},
|
| 11 |
+
{
|
| 12 |
+
label: 'Dataset 2',
|
| 13 |
+
data: [450, 810, 370, 400, 215, 300],
|
| 14 |
+
backgroundColor: '#ee6c71',
|
| 15 |
+
},
|
| 16 |
+
],
|
| 17 |
+
},
|
| 18 |
+
options: {
|
| 19 |
+
responsive: true,
|
| 20 |
+
plugins: {
|
| 21 |
+
legend: {
|
| 22 |
+
position: 'top',
|
| 23 |
+
},
|
| 24 |
+
title: {
|
| 25 |
+
display: true,
|
| 26 |
+
text: 'Chart.js Bar Chart',
|
| 27 |
+
},
|
| 28 |
+
},
|
| 29 |
+
},
|
| 30 |
+
})
|
scripts/beforeAfter.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
const container = document.querySelector('.compare-images')
|
| 2 |
+
const handle = document.querySelector('.slider-handle')
|
| 3 |
+
const beforeImg = document.querySelector('.before-img')
|
| 4 |
+
|
| 5 |
+
container.addEventListener('mousemove', (e) => {
|
| 6 |
+
const rect = container.getBoundingClientRect()
|
| 7 |
+
const offsetX = e.clientX - rect.left
|
| 8 |
+
|
| 9 |
+
const clampedX = Math.max(0, Math.min(offsetX, rect.width))
|
| 10 |
+
|
| 11 |
+
handle.style.left = `${clampedX}px`
|
| 12 |
+
|
| 13 |
+
beforeImg.style.clipPath = `inset(0 0 0 ${clampedX}px)`
|
| 14 |
+
})
|
scripts/codeCopy.js
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
document.querySelectorAll('.bibTeX-section').forEach((section) => {
|
| 2 |
+
const button = section.querySelector('.copy-button')
|
| 3 |
+
if (!button) return
|
| 4 |
+
|
| 5 |
+
const codeElement = section.querySelector('.bibTeX')
|
| 6 |
+
const activeСontent = button.querySelector('.active-content')
|
| 7 |
+
const inactiveСontent = button.querySelector('.inactive-content')
|
| 8 |
+
|
| 9 |
+
const code = codeElement ? codeElement.innerText : ''
|
| 10 |
+
|
| 11 |
+
button.addEventListener('click', () => {
|
| 12 |
+
navigator.clipboard.writeText(code).catch((err) => {
|
| 13 |
+
console.error('Ошибка копирования:', err)
|
| 14 |
+
})
|
| 15 |
+
|
| 16 |
+
button.classList.add('copy-button--inactive')
|
| 17 |
+
button.classList.remove('copy-button--active')
|
| 18 |
+
|
| 19 |
+
if (activeСontent) activeСontent.style.display = 'none'
|
| 20 |
+
if (inactiveСontent) inactiveСontent.style.display = 'block'
|
| 21 |
+
|
| 22 |
+
setTimeout(() => {
|
| 23 |
+
button.classList.remove('copy-button--inactive')
|
| 24 |
+
button.classList.add('copy-button--active')
|
| 25 |
+
|
| 26 |
+
if (activeСontent) activeСontent.style.display = 'block'
|
| 27 |
+
if (inactiveСontent) inactiveСontent.style.display = 'none'
|
| 28 |
+
}, 3000)
|
| 29 |
+
})
|
| 30 |
+
})
|
scripts/dropdown.js
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
document.addEventListener('DOMContentLoaded', function () {
|
| 2 |
+
const dropdowns = document.querySelectorAll('[data-dropdown]')
|
| 3 |
+
const selectedValue = document.getElementById('selectedValue')
|
| 4 |
+
|
| 5 |
+
dropdowns.forEach((dropdown) => {
|
| 6 |
+
const button = dropdown.querySelector('.dropdown__button')
|
| 7 |
+
|
| 8 |
+
const items = dropdown.querySelectorAll('.dropdown__item')
|
| 9 |
+
|
| 10 |
+
button.addEventListener('click', function (e) {
|
| 11 |
+
dropdown.classList.toggle('open')
|
| 12 |
+
})
|
| 13 |
+
|
| 14 |
+
items.forEach((item) => {
|
| 15 |
+
item.addEventListener('click', function () {
|
| 16 |
+
const value = this.textContent
|
| 17 |
+
selectedValue.textContent = value
|
| 18 |
+
dropdown.classList.remove('open')
|
| 19 |
+
})
|
| 20 |
+
})
|
| 21 |
+
})
|
| 22 |
+
})
|
scripts/lightbox.js
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
function setupLightbox(thumbnailId, lightboxId, lightboxImgId, closeBtnId) {
|
| 2 |
+
const thumbnail = document.getElementById(thumbnailId)
|
| 3 |
+
const lightbox = document.getElementById(lightboxId)
|
| 4 |
+
const lightboxImg = document.getElementById(lightboxImgId)
|
| 5 |
+
const closeBtn = document.getElementById(closeBtnId)
|
| 6 |
+
|
| 7 |
+
if (thumbnail && lightbox && lightboxImg && closeBtn) {
|
| 8 |
+
thumbnail.addEventListener('click', () => {
|
| 9 |
+
lightbox.style.display = 'block'
|
| 10 |
+
lightboxImg.src = thumbnail.src
|
| 11 |
+
})
|
| 12 |
+
|
| 13 |
+
closeBtn.addEventListener('click', () => {
|
| 14 |
+
lightbox.style.display = 'none'
|
| 15 |
+
})
|
| 16 |
+
|
| 17 |
+
lightbox.addEventListener('click', (e) => {
|
| 18 |
+
if (e.target === lightbox) {
|
| 19 |
+
lightbox.style.display = 'none'
|
| 20 |
+
}
|
| 21 |
+
})
|
| 22 |
+
} else {
|
| 23 |
+
console.warn(`Элементы лайтбокса "${lightboxId}" не найдены.`)
|
| 24 |
+
}
|
| 25 |
+
}
|
| 26 |
+
|
| 27 |
+
setupLightbox('openLightbox1', 'lightbox1', 'lightbox-img1', 'closeLightbox1')
|
| 28 |
+
setupLightbox('openLightbox2', 'lightbox2', 'lightbox-img2', 'closeLightbox2')
|
| 29 |
+
setupLightbox('openLightbox3', 'lightbox3', 'lightbox-img3', 'closeLightbox3')
|
| 30 |
+
setupLightbox('openLightbox4', 'lightbox4', 'lightbox-img4', 'closeLightbox4')
|
scripts/lineChart.js
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
new Chart(document.getElementById('LineChart'), {
|
| 2 |
+
type: 'line',
|
| 3 |
+
data: {
|
| 4 |
+
labels: ['qq', 'w', 'e', 'r', 't', 'y'],
|
| 5 |
+
datasets: [
|
| 6 |
+
{
|
| 7 |
+
label: 'Dataset 1',
|
| 8 |
+
data: [520, 760, 240, 433, 156, 380],
|
| 9 |
+
backgroundColor: '#64bbf3',
|
| 10 |
+
},
|
| 11 |
+
{
|
| 12 |
+
label: 'Dataset 2',
|
| 13 |
+
data: [450, 810, 370, 400, 215, 300],
|
| 14 |
+
backgroundColor: '#ee6c71',
|
| 15 |
+
},
|
| 16 |
+
],
|
| 17 |
+
},
|
| 18 |
+
options: {
|
| 19 |
+
responsive: true,
|
| 20 |
+
plugins: {
|
| 21 |
+
legend: {
|
| 22 |
+
position: 'top',
|
| 23 |
+
},
|
| 24 |
+
title: {
|
| 25 |
+
display: true,
|
| 26 |
+
text: 'Chart.js Line Chart',
|
| 27 |
+
},
|
| 28 |
+
},
|
| 29 |
+
},
|
| 30 |
+
})
|
scripts/pieChart.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
new Chart(document.getElementById('PieChart'), {
|
| 2 |
+
type: 'pie',
|
| 3 |
+
data: {
|
| 4 |
+
labels: ['1', '2', '3'],
|
| 5 |
+
datasets: [
|
| 6 |
+
{
|
| 7 |
+
label: 'Dataset 1',
|
| 8 |
+
data: [50, 15, 35],
|
| 9 |
+
backgroundColor: ['#64bbf3', '#ee6c71', '#fecc4e'],
|
| 10 |
+
},
|
| 11 |
+
],
|
| 12 |
+
},
|
| 13 |
+
options: {
|
| 14 |
+
responsive: true,
|
| 15 |
+
plugins: {
|
| 16 |
+
legend: {
|
| 17 |
+
position: 'top',
|
| 18 |
+
labels: {
|
| 19 |
+
boxWidth: 15,
|
| 20 |
+
padding: 15,
|
| 21 |
+
},
|
| 22 |
+
},
|
| 23 |
+
title: {
|
| 24 |
+
display: true,
|
| 25 |
+
text: 'Chart.js Pie Chart',
|
| 26 |
+
},
|
| 27 |
+
},
|
| 28 |
+
},
|
| 29 |
+
})
|
scripts/sidebar.js
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
document.addEventListener('DOMContentLoaded', function () {
|
| 2 |
+
const sections = document.querySelectorAll('section[id]')
|
| 3 |
+
const navItems = document.querySelectorAll('.sidebar .nav-item')
|
| 4 |
+
const sidebar = document.querySelector('.sidebar')
|
| 5 |
+
const footer = document.getElementById('footer')
|
| 6 |
+
|
| 7 |
+
document.querySelectorAll('.sidebar a[href^="#"]').forEach((link) => {
|
| 8 |
+
const target = link.getAttribute('href')
|
| 9 |
+
const parentItem = link.closest('.nav-item')
|
| 10 |
+
if (parentItem && target) {
|
| 11 |
+
parentItem.setAttribute('data-target', target)
|
| 12 |
+
}
|
| 13 |
+
})
|
| 14 |
+
|
| 15 |
+
function updateActiveLink() {
|
| 16 |
+
let currentSectionId = null
|
| 17 |
+
|
| 18 |
+
sections.forEach((section) => {
|
| 19 |
+
const rect = section.getBoundingClientRect()
|
| 20 |
+
if (rect.top <= 100 && rect.bottom >= 50) {
|
| 21 |
+
currentSectionId = section.id
|
| 22 |
+
}
|
| 23 |
+
})
|
| 24 |
+
|
| 25 |
+
navItems.forEach((item) => item.classList.remove('active'))
|
| 26 |
+
|
| 27 |
+
if (!currentSectionId) return
|
| 28 |
+
|
| 29 |
+
const activeItem = document.querySelector(
|
| 30 |
+
`.sidebar .nav-item[data-target="#${currentSectionId}"]`
|
| 31 |
+
)
|
| 32 |
+
if (activeItem) {
|
| 33 |
+
activeItem.classList.add('active')
|
| 34 |
+
}
|
| 35 |
+
}
|
| 36 |
+
|
| 37 |
+
function adjustSidebarPosition() {
|
| 38 |
+
if (!sidebar || !footer) return
|
| 39 |
+
|
| 40 |
+
const footerRect = footer.getBoundingClientRect()
|
| 41 |
+
const sidebarHeight = sidebar.offsetHeight
|
| 42 |
+
const scrollTop = window.scrollY || document.documentElement.scrollTop
|
| 43 |
+
|
| 44 |
+
const footerTop = scrollTop + footerRect.top
|
| 45 |
+
|
| 46 |
+
const bodyContainer = document.querySelector('.body-container')
|
| 47 |
+
const bodyBottom = bodyContainer
|
| 48 |
+
? bodyContainer.offsetTop + bodyContainer.offsetHeight
|
| 49 |
+
: footerTop
|
| 50 |
+
|
| 51 |
+
const initialSidebarTop = window.innerHeight * 0.2
|
| 52 |
+
const sidebarBottomOnPage = scrollTop + initialSidebarTop + sidebarHeight
|
| 53 |
+
|
| 54 |
+
if (sidebarBottomOnPage >= footerTop - 20) {
|
| 55 |
+
sidebar.style.position = 'absolute'
|
| 56 |
+
sidebar.style.top = `${bodyBottom - sidebarHeight - 20}px`
|
| 57 |
+
} else {
|
| 58 |
+
sidebar.style.position = 'fixed'
|
| 59 |
+
sidebar.style.top = `${20}%`
|
| 60 |
+
}
|
| 61 |
+
}
|
| 62 |
+
|
| 63 |
+
window.addEventListener('scroll', () => {
|
| 64 |
+
updateActiveLink()
|
| 65 |
+
adjustSidebarPosition()
|
| 66 |
+
})
|
| 67 |
+
|
| 68 |
+
window.addEventListener('resize', adjustSidebarPosition)
|
| 69 |
+
|
| 70 |
+
updateActiveLink()
|
| 71 |
+
adjustSidebarPosition()
|
| 72 |
+
})
|
scripts/swiper.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
var swiper = new Swiper('.mySwiper', {
|
| 2 |
+
loop: true,
|
| 3 |
+
navigation: {
|
| 4 |
+
nextEl: '.swiper-button-next',
|
| 5 |
+
prevEl: '.swiper-button-prev',
|
| 6 |
+
},
|
| 7 |
+
})
|
| 8 |
+
|
| 9 |
+
const swiperLightbox = document.getElementById('swiper-lightbox')
|
| 10 |
+
const swiperLightboxImg = document.getElementById('swiper-lightbox-img')
|
| 11 |
+
const swiperCloseBtn = document.getElementById('swiper-lightbox__close')
|
| 12 |
+
|
| 13 |
+
if (swiperLightbox && swiperLightboxImg && swiperCloseBtn) {
|
| 14 |
+
document.querySelectorAll('.swiper-slide img').forEach((slideImage) => {
|
| 15 |
+
slideImage.addEventListener('click', () => {
|
| 16 |
+
const imgSrc = slideImage.src
|
| 17 |
+
if (imgSrc) {
|
| 18 |
+
swiperLightbox.style.display = 'flex'
|
| 19 |
+
swiperLightboxImg.src = imgSrc
|
| 20 |
+
}
|
| 21 |
+
})
|
| 22 |
+
})
|
| 23 |
+
|
| 24 |
+
swiperCloseBtn.addEventListener('click', () => {
|
| 25 |
+
swiperLightbox.style.display = 'none'
|
| 26 |
+
})
|
| 27 |
+
|
| 28 |
+
swiperLightbox.addEventListener('click', (e) => {
|
| 29 |
+
if (swiperLightbox.style.display === 'flex') {
|
| 30 |
+
swiperLightbox.style.display = 'none'
|
| 31 |
+
}
|
| 32 |
+
})
|
| 33 |
+
} else {
|
| 34 |
+
console.warn('Элементы лайтбокса в слайдере не найдены.')
|
| 35 |
+
}
|
scripts/swiperCharts.js
ADDED
|
@@ -0,0 +1,142 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
const charts = {}
|
| 2 |
+
|
| 3 |
+
function initBarChart() {
|
| 4 |
+
if (charts.barChart) return
|
| 5 |
+
charts.barChart = new Chart(document.getElementById('BarChart-slider'), {
|
| 6 |
+
type: 'bar',
|
| 7 |
+
data: {
|
| 8 |
+
labels: ['q', 'w', 'e', 'r', 't', 'y'],
|
| 9 |
+
datasets: [
|
| 10 |
+
{
|
| 11 |
+
label: 'Dataset 1',
|
| 12 |
+
data: [520, 760, 240, 433, 156, 380],
|
| 13 |
+
backgroundColor: '#64bbf3',
|
| 14 |
+
},
|
| 15 |
+
{
|
| 16 |
+
label: 'Dataset 2',
|
| 17 |
+
data: [450, 810, 370, 400, 215, 300],
|
| 18 |
+
backgroundColor: '#ee6c71',
|
| 19 |
+
},
|
| 20 |
+
],
|
| 21 |
+
},
|
| 22 |
+
options: {
|
| 23 |
+
responsive: true,
|
| 24 |
+
plugins: {
|
| 25 |
+
legend: {
|
| 26 |
+
position: 'top',
|
| 27 |
+
},
|
| 28 |
+
title: {
|
| 29 |
+
display: true,
|
| 30 |
+
text: 'Chart.js Bar Chart',
|
| 31 |
+
},
|
| 32 |
+
},
|
| 33 |
+
},
|
| 34 |
+
})
|
| 35 |
+
}
|
| 36 |
+
|
| 37 |
+
function initLineChart() {
|
| 38 |
+
if (charts.lineChart) return
|
| 39 |
+
charts.lineChart = new Chart(document.getElementById('LineChart-slider'), {
|
| 40 |
+
type: 'line',
|
| 41 |
+
data: {
|
| 42 |
+
labels: ['qq', 'w', 'e', 'r', 't', 'y'],
|
| 43 |
+
datasets: [
|
| 44 |
+
{
|
| 45 |
+
label: 'Dataset 1',
|
| 46 |
+
data: [520, 760, 240, 433, 156, 380],
|
| 47 |
+
backgroundColor: '#64bbf3',
|
| 48 |
+
},
|
| 49 |
+
{
|
| 50 |
+
label: 'Dataset 2',
|
| 51 |
+
data: [450, 810, 370, 400, 215, 300],
|
| 52 |
+
backgroundColor: '#ee6c71',
|
| 53 |
+
},
|
| 54 |
+
],
|
| 55 |
+
},
|
| 56 |
+
options: {
|
| 57 |
+
responsive: true,
|
| 58 |
+
plugins: {
|
| 59 |
+
title: {
|
| 60 |
+
display: true,
|
| 61 |
+
text: 'Chart.js Line Chart',
|
| 62 |
+
},
|
| 63 |
+
},
|
| 64 |
+
},
|
| 65 |
+
})
|
| 66 |
+
}
|
| 67 |
+
|
| 68 |
+
function initPieChart() {
|
| 69 |
+
if (charts.pieChart) return
|
| 70 |
+
charts.pieChart = new Chart(document.getElementById('PieChart-slider'), {
|
| 71 |
+
type: 'pie',
|
| 72 |
+
data: {
|
| 73 |
+
labels: ['1', '2', '3'],
|
| 74 |
+
datasets: [
|
| 75 |
+
{
|
| 76 |
+
label: 'Dataset 1',
|
| 77 |
+
data: [50, 15, 35],
|
| 78 |
+
backgroundColor: ['#64bbf3', '#ee6c71', '#fecc4e'],
|
| 79 |
+
},
|
| 80 |
+
],
|
| 81 |
+
},
|
| 82 |
+
options: {
|
| 83 |
+
responsive: true,
|
| 84 |
+
plugins: {
|
| 85 |
+
legend: {
|
| 86 |
+
labels: {
|
| 87 |
+
boxWidth: 15,
|
| 88 |
+
padding: 15,
|
| 89 |
+
},
|
| 90 |
+
},
|
| 91 |
+
title: {
|
| 92 |
+
display: true,
|
| 93 |
+
text: 'Chart.js Pie Chart',
|
| 94 |
+
},
|
| 95 |
+
},
|
| 96 |
+
},
|
| 97 |
+
})
|
| 98 |
+
}
|
| 99 |
+
|
| 100 |
+
initBarChart()
|
| 101 |
+
|
| 102 |
+
var swiperOnButton = new Swiper('.my-swiper-on-button', {
|
| 103 |
+
loop: false,
|
| 104 |
+
})
|
| 105 |
+
|
| 106 |
+
function onSlideChange() {
|
| 107 |
+
const activeIndex = swiperOnButton.realIndex
|
| 108 |
+
|
| 109 |
+
;['barChart', 'lineChart', 'pieChart'].forEach((key) => {
|
| 110 |
+
if (charts[key]) {
|
| 111 |
+
charts[key].destroy()
|
| 112 |
+
charts[key] = null
|
| 113 |
+
}
|
| 114 |
+
})
|
| 115 |
+
|
| 116 |
+
if (activeIndex === 0) initBarChart()
|
| 117 |
+
if (activeIndex === 1) initLineChart()
|
| 118 |
+
if (activeIndex === 2) initPieChart()
|
| 119 |
+
}
|
| 120 |
+
|
| 121 |
+
swiperOnButton.on('slideChange', onSlideChange)
|
| 122 |
+
|
| 123 |
+
document.querySelectorAll('[data-slide-to]').forEach((button) => {
|
| 124 |
+
button.addEventListener('click', () => {
|
| 125 |
+
console.log(
|
| 126 |
+
'click',
|
| 127 |
+
charts,
|
| 128 |
+
button.getAttribute('data-slide-to'),
|
| 129 |
+
parseInt(button.getAttribute('data-slide-to'))
|
| 130 |
+
)
|
| 131 |
+
document.querySelectorAll('.swiper-button').forEach((btn) => {
|
| 132 |
+
btn.classList.remove('active')
|
| 133 |
+
})
|
| 134 |
+
button.classList.add('active')
|
| 135 |
+
const index = parseInt(button.getAttribute('data-slide-to'))
|
| 136 |
+
swiperOnButton.slideTo(index)
|
| 137 |
+
|
| 138 |
+
setTimeout(() => {
|
| 139 |
+
onSlideChange()
|
| 140 |
+
}, 10)
|
| 141 |
+
})
|
| 142 |
+
})
|
styles/beforeAfter.css
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.compare-container {
|
| 2 |
+
max-width: 800px;
|
| 3 |
+
margin: 40px auto;
|
| 4 |
+
position: relative;
|
| 5 |
+
cursor: crosshair;
|
| 6 |
+
}
|
| 7 |
+
|
| 8 |
+
.compare-images {
|
| 9 |
+
position: relative;
|
| 10 |
+
width: 100%;
|
| 11 |
+
height: auto;
|
| 12 |
+
overflow: hidden;
|
| 13 |
+
|
| 14 |
+
border-radius: 10px;
|
| 15 |
+
aspect-ratio: 16 / 9;
|
| 16 |
+
}
|
| 17 |
+
|
| 18 |
+
.compare-img {
|
| 19 |
+
position: absolute;
|
| 20 |
+
top: 0;
|
| 21 |
+
left: 0;
|
| 22 |
+
width: 100%;
|
| 23 |
+
height: 100%;
|
| 24 |
+
object-fit: cover;
|
| 25 |
+
transition: clip-path 0.1s ease-out;
|
| 26 |
+
}
|
| 27 |
+
|
| 28 |
+
.before-img {
|
| 29 |
+
clip-path: inset(0 0 0 50%);
|
| 30 |
+
z-index: 1;
|
| 31 |
+
}
|
| 32 |
+
|
| 33 |
+
.after-img {
|
| 34 |
+
z-index: 0;
|
| 35 |
+
}
|
| 36 |
+
|
| 37 |
+
.slider-handle {
|
| 38 |
+
position: absolute;
|
| 39 |
+
top: 0;
|
| 40 |
+
left: 50%;
|
| 41 |
+
width: 2px;
|
| 42 |
+
height: 100%;
|
| 43 |
+
background-color: #2ebead;
|
| 44 |
+
pointer-events: none;
|
| 45 |
+
z-index: 2;
|
| 46 |
+
opacity: 0.7;
|
| 47 |
+
transition: left 0.1s ease-out;
|
| 48 |
+
}
|
| 49 |
+
|
| 50 |
+
.slider-handle::after {
|
| 51 |
+
content: '';
|
| 52 |
+
position: absolute;
|
| 53 |
+
top: 50%;
|
| 54 |
+
left: -11px;
|
| 55 |
+
transform: translateY(-50%);
|
| 56 |
+
width: 25px;
|
| 57 |
+
height: 25px;
|
| 58 |
+
background-color: #2ebead;
|
| 59 |
+
border-radius: 50%;
|
| 60 |
+
}
|
styles/bibTex.css
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.bibTeX-section__container {
|
| 2 |
+
display: flex;
|
| 3 |
+
flex-direction: column;
|
| 4 |
+
justify-content: center;
|
| 5 |
+
text-align: center;
|
| 6 |
+
justify-items: center;
|
| 7 |
+
overflow: hidden;
|
| 8 |
+
transition: all 0.3s ease;
|
| 9 |
+
}
|
| 10 |
+
|
| 11 |
+
.bibTeX__container {
|
| 12 |
+
border-radius: 15px;
|
| 13 |
+
padding: 20px;
|
| 14 |
+
background-color: #f4f4f4;
|
| 15 |
+
}
|
| 16 |
+
|
| 17 |
+
.bibTeX {
|
| 18 |
+
margin: 0;
|
| 19 |
+
padding: 0;
|
| 20 |
+
white-space: pre-wrap;
|
| 21 |
+
word-break: break-word;
|
| 22 |
+
background: transparent;
|
| 23 |
+
border: none;
|
| 24 |
+
font-size: 16px;
|
| 25 |
+
color: #333;
|
| 26 |
+
}
|
| 27 |
+
|
| 28 |
+
.copy-button {
|
| 29 |
+
padding: 10px;
|
| 30 |
+
text-align: center;
|
| 31 |
+
width: 180px;
|
| 32 |
+
margin-left: auto;
|
| 33 |
+
margin-right: auto;
|
| 34 |
+
color: white;
|
| 35 |
+
font-size: 18px;
|
| 36 |
+
|
| 37 |
+
border: none;
|
| 38 |
+
border-radius: 5px;
|
| 39 |
+
cursor: pointer;
|
| 40 |
+
transition: background-color 0.2s ease;
|
| 41 |
+
}
|
| 42 |
+
.copy-button > p,
|
| 43 |
+
.copy-button > img {
|
| 44 |
+
text-align: center;
|
| 45 |
+
margin-top: auto;
|
| 46 |
+
margin-bottom: auto;
|
| 47 |
+
margin-left: auto;
|
| 48 |
+
margin-right: auto;
|
| 49 |
+
}
|
| 50 |
+
|
| 51 |
+
.copy-button--active {
|
| 52 |
+
background-color: #64bbf3;
|
| 53 |
+
}
|
| 54 |
+
.copy-button--inactive {
|
| 55 |
+
background-color: #53d98a;
|
| 56 |
+
}
|
| 57 |
+
|
| 58 |
+
.copy-button--active:hover {
|
| 59 |
+
background-color: #56a1d3;
|
| 60 |
+
}
|
| 61 |
+
|
| 62 |
+
.copy-button .inactive-content {
|
| 63 |
+
display: none;
|
| 64 |
+
pointer-events: none;
|
| 65 |
+
}
|
styles/charts.css
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.diagrams-section__container {
|
| 2 |
+
display: flex;
|
| 3 |
+
justify-content: center;
|
| 4 |
+
flex-direction: column;
|
| 5 |
+
text-align: center;
|
| 6 |
+
}
|
| 7 |
+
|
| 8 |
+
.myChart {
|
| 9 |
+
margin-bottom: 20px;
|
| 10 |
+
padding: 10px;
|
| 11 |
+
border-radius: 15px;
|
| 12 |
+
border: 1px solid rgb(245, 245, 245);
|
| 13 |
+
transition: all 0.3s ease;
|
| 14 |
+
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.06);
|
| 15 |
+
}
|
| 16 |
+
|
| 17 |
+
.myChart:hover {
|
| 18 |
+
box-shadow: 0 8px 15px rgba(0, 0, 0, 0.1);
|
| 19 |
+
}
|
| 20 |
+
|
| 21 |
+
.caption {
|
| 22 |
+
margin: 0 auto 40px auto;
|
| 23 |
+
font-size: 12px;
|
| 24 |
+
}
|
| 25 |
+
|
| 26 |
+
@media (max-width: 670px) {
|
| 27 |
+
.diagrams-section__container {
|
| 28 |
+
width: 90vw;
|
| 29 |
+
}
|
| 30 |
+
}
|
styles/codeSection.css
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.code-section__container {
|
| 2 |
+
position: relative;
|
| 3 |
+
|
| 4 |
+
border-radius: 5px;
|
| 5 |
+
padding: 50px;
|
| 6 |
+
overflow: hidden;
|
| 7 |
+
transition: all 0.3s ease;
|
| 8 |
+
box-shadow: 0 8px 15px rgba(0, 0, 0, 0.06);
|
| 9 |
+
}
|
| 10 |
+
|
| 11 |
+
.code__container {
|
| 12 |
+
padding: 20px;
|
| 13 |
+
background-color: #f4f4f4;
|
| 14 |
+
}
|
| 15 |
+
|
| 16 |
+
.code {
|
| 17 |
+
margin: 0;
|
| 18 |
+
padding: 0;
|
| 19 |
+
white-space: pre-wrap;
|
| 20 |
+
word-break: break-word;
|
| 21 |
+
background: transparent;
|
| 22 |
+
border: none;
|
| 23 |
+
font-size: 16px;
|
| 24 |
+
color: #333;
|
| 25 |
+
}
|
| 26 |
+
|
| 27 |
+
@media (max-width: 600px) {
|
| 28 |
+
.code-section__container {
|
| 29 |
+
padding: 20px;
|
| 30 |
+
}
|
| 31 |
+
}
|
styles/columnsSection.css
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.columns-section__container {
|
| 2 |
+
border: 1px solid rgb(245, 245, 245);
|
| 3 |
+
border-radius: 15px;
|
| 4 |
+
padding: 50px;
|
| 5 |
+
display: flex;
|
| 6 |
+
justify-content: center;
|
| 7 |
+
flex-direction: column;
|
| 8 |
+
text-align: center;
|
| 9 |
+
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.06);
|
| 10 |
+
}
|
| 11 |
+
|
| 12 |
+
.column {
|
| 13 |
+
padding: 0 10px;
|
| 14 |
+
height: 100%;
|
| 15 |
+
border: none;
|
| 16 |
+
}
|
| 17 |
+
|
| 18 |
+
.row {
|
| 19 |
+
margin-bottom: 30px;
|
| 20 |
+
display: flex;
|
| 21 |
+
justify-content: center;
|
| 22 |
+
}
|
| 23 |
+
|
| 24 |
+
@media (max-width: 600px) {
|
| 25 |
+
.columns-section__container {
|
| 26 |
+
padding: 20px;
|
| 27 |
+
}
|
| 28 |
+
}
|
styles/dropdown.css
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.dropdown-section__container {
|
| 2 |
+
border: 1px solid rgb(245, 245, 245);
|
| 3 |
+
border-radius: 15px;
|
| 4 |
+
padding: 50px;
|
| 5 |
+
display: flex;
|
| 6 |
+
justify-content: center;
|
| 7 |
+
flex-direction: column;
|
| 8 |
+
text-align: center;
|
| 9 |
+
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.06);
|
| 10 |
+
}
|
| 11 |
+
.dropdown__row {
|
| 12 |
+
display: flex;
|
| 13 |
+
flex-direction: column;
|
| 14 |
+
flex-wrap: wrap;
|
| 15 |
+
gap: 10px;
|
| 16 |
+
}
|
| 17 |
+
|
| 18 |
+
.dropdown {
|
| 19 |
+
width: 100%;
|
| 20 |
+
position: relative;
|
| 21 |
+
flex: 1 1 30%;
|
| 22 |
+
min-width: 200px;
|
| 23 |
+
transition: flex 5.3s ease;
|
| 24 |
+
}
|
| 25 |
+
|
| 26 |
+
.dropdown__button {
|
| 27 |
+
width: 100%;
|
| 28 |
+
padding: 10px 15px;
|
| 29 |
+
background-color: #0b6efd;
|
| 30 |
+
color: white;
|
| 31 |
+
border: none;
|
| 32 |
+
border-radius: 5px;
|
| 33 |
+
cursor: pointer;
|
| 34 |
+
font-size: 16px;
|
| 35 |
+
text-align: left;
|
| 36 |
+
transition: background-color 0.2s ease;
|
| 37 |
+
}
|
| 38 |
+
.dropdown__button:hover {
|
| 39 |
+
background-color: #0353c4;
|
| 40 |
+
}
|
| 41 |
+
|
| 42 |
+
.dropdown__content {
|
| 43 |
+
display: none;
|
| 44 |
+
top: 100%;
|
| 45 |
+
left: 0;
|
| 46 |
+
right: 0;
|
| 47 |
+
background-color: white;
|
| 48 |
+
z-index: 1000;
|
| 49 |
+
border-radius: 4px;
|
| 50 |
+
overflow: hidden;
|
| 51 |
+
margin-top: 4px;
|
| 52 |
+
animation: fadeIn 0.5s ease forwards;
|
| 53 |
+
}
|
| 54 |
+
|
| 55 |
+
.dropdown.open .dropdown__content {
|
| 56 |
+
display: block;
|
| 57 |
+
}
|
| 58 |
+
|
| 59 |
+
.dropdown__item {
|
| 60 |
+
white-space: normal;
|
| 61 |
+
word-wrap: break-word;
|
| 62 |
+
text-align: left;
|
| 63 |
+
padding: 10px 16px;
|
| 64 |
+
}
|
| 65 |
+
|
| 66 |
+
@keyframes fadeIn {
|
| 67 |
+
from {
|
| 68 |
+
opacity: 0;
|
| 69 |
+
transform: translateY(-5px);
|
| 70 |
+
}
|
| 71 |
+
to {
|
| 72 |
+
opacity: 1;
|
| 73 |
+
transform: translateY(0);
|
| 74 |
+
}
|
| 75 |
+
}
|
| 76 |
+
|
| 77 |
+
@media (max-width: 600px) {
|
| 78 |
+
.dropdown-section__container {
|
| 79 |
+
padding: 20px;
|
| 80 |
+
}
|
| 81 |
+
}
|
styles/footer.css
ADDED
|
@@ -0,0 +1,113 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
footer {
|
| 2 |
+
width: 100%;
|
| 3 |
+
background-color: #171c27;
|
| 4 |
+
color: white;
|
| 5 |
+
padding: 20px 20px 10px 20px;
|
| 6 |
+
}
|
| 7 |
+
|
| 8 |
+
.footer-section {
|
| 9 |
+
max-width: 1400px;
|
| 10 |
+
margin: 45px auto 0 auto;
|
| 11 |
+
}
|
| 12 |
+
|
| 13 |
+
.footer__information {
|
| 14 |
+
max-width: 1000px;
|
| 15 |
+
margin-left: auto;
|
| 16 |
+
margin-right: auto;
|
| 17 |
+
display: flex;
|
| 18 |
+
justify-self: center;
|
| 19 |
+
justify-content: space-between;
|
| 20 |
+
flex-direction: row;
|
| 21 |
+
}
|
| 22 |
+
|
| 23 |
+
.airi-logo-section {
|
| 24 |
+
max-width: 180px;
|
| 25 |
+
display: flex;
|
| 26 |
+
flex-direction: column;
|
| 27 |
+
justify-content: start;
|
| 28 |
+
|
| 29 |
+
color: #8c9090;
|
| 30 |
+
}
|
| 31 |
+
.airi-logo-section > img {
|
| 32 |
+
width: 160px;
|
| 33 |
+
}
|
| 34 |
+
.airi-logo-section > p {
|
| 35 |
+
margin-top: 14px;
|
| 36 |
+
font-size: 12px;
|
| 37 |
+
}
|
| 38 |
+
|
| 39 |
+
.footer__mails {
|
| 40 |
+
display: flex;
|
| 41 |
+
flex-direction: column;
|
| 42 |
+
}
|
| 43 |
+
|
| 44 |
+
.copyrighted {
|
| 45 |
+
width: 100%;
|
| 46 |
+
text-align: center;
|
| 47 |
+
margin: 3vh auto 1vh auto;
|
| 48 |
+
color: #8c9090;
|
| 49 |
+
}
|
| 50 |
+
|
| 51 |
+
.gray {
|
| 52 |
+
color: #8c9090;
|
| 53 |
+
}
|
| 54 |
+
|
| 55 |
+
.mail {
|
| 56 |
+
font-size: 16px;
|
| 57 |
+
color: #fff;
|
| 58 |
+
transition: color 0.5s ease;
|
| 59 |
+
}
|
| 60 |
+
|
| 61 |
+
.mail:hover {
|
| 62 |
+
color: #2ebead;
|
| 63 |
+
}
|
| 64 |
+
|
| 65 |
+
.mail__description {
|
| 66 |
+
margin-bottom: 5px;
|
| 67 |
+
font-size: 14px;
|
| 68 |
+
color: #8c9090;
|
| 69 |
+
}
|
| 70 |
+
|
| 71 |
+
.media-logo {
|
| 72 |
+
margin: 5px 5px 5px 0;
|
| 73 |
+
fill: white;
|
| 74 |
+
transition: all 0.3s ease;
|
| 75 |
+
}
|
| 76 |
+
|
| 77 |
+
.media-logo:hover {
|
| 78 |
+
fill: #2fbead;
|
| 79 |
+
}
|
| 80 |
+
|
| 81 |
+
@media (max-width: 900px) {
|
| 82 |
+
.footer__information {
|
| 83 |
+
flex-direction: column;
|
| 84 |
+
justify-content: center;
|
| 85 |
+
}
|
| 86 |
+
.airi-logo {
|
| 87 |
+
margin-bottom: 50px;
|
| 88 |
+
}
|
| 89 |
+
.footer__information {
|
| 90 |
+
width: 100%;
|
| 91 |
+
padding: 0 5vw;
|
| 92 |
+
}
|
| 93 |
+
|
| 94 |
+
.footer__mails {
|
| 95 |
+
flex-direction: column;
|
| 96 |
+
width: 100%;
|
| 97 |
+
margin: 0;
|
| 98 |
+
}
|
| 99 |
+
|
| 100 |
+
.copyrighted {
|
| 101 |
+
width: 100%;
|
| 102 |
+
margin: 5vh 0 1vh 0;
|
| 103 |
+
}
|
| 104 |
+
|
| 105 |
+
.footer__social-media {
|
| 106 |
+
width: 100%;
|
| 107 |
+
padding: 0 5vw;
|
| 108 |
+
margin-bottom: 50px;
|
| 109 |
+
}
|
| 110 |
+
.mail__contanct {
|
| 111 |
+
margin: 20px 0 0 0;
|
| 112 |
+
}
|
| 113 |
+
}
|
styles/header.css
ADDED
|
@@ -0,0 +1,104 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
header {
|
| 2 |
+
padding: 5vh 10vw 0 10vw;
|
| 3 |
+
width: 100%;
|
| 4 |
+
display: flex;
|
| 5 |
+
justify-content: center;
|
| 6 |
+
|
| 7 |
+
background: linear-gradient(
|
| 8 |
+
180deg,
|
| 9 |
+
rgb(254, 243, 227) 0%,
|
| 10 |
+
rgba(255, 255, 255, 1) 100%
|
| 11 |
+
);
|
| 12 |
+
}
|
| 13 |
+
.header__container {
|
| 14 |
+
max-width: 800px;
|
| 15 |
+
font-family: 'Inter', sans-serif;
|
| 16 |
+
display: flex;
|
| 17 |
+
flex-direction: column;
|
| 18 |
+
align-items: center;
|
| 19 |
+
text-align: center;
|
| 20 |
+
}
|
| 21 |
+
|
| 22 |
+
.header__container > h1 {
|
| 23 |
+
text-align: center;
|
| 24 |
+
}
|
| 25 |
+
|
| 26 |
+
.header__link-container {
|
| 27 |
+
margin-bottom: 20px;
|
| 28 |
+
display: flex;
|
| 29 |
+
flex-wrap: wrap;
|
| 30 |
+
justify-content: center;
|
| 31 |
+
gap: 8px 15px;
|
| 32 |
+
line-height: 1.6;
|
| 33 |
+
margin-top: 50px;
|
| 34 |
+
width: 80%;
|
| 35 |
+
}
|
| 36 |
+
|
| 37 |
+
a {
|
| 38 |
+
font-size: 14px;
|
| 39 |
+
color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 1));
|
| 40 |
+
text-decoration: none;
|
| 41 |
+
}
|
| 42 |
+
|
| 43 |
+
.linkContainer__authors {
|
| 44 |
+
margin-bottom: 2vh;
|
| 45 |
+
}
|
| 46 |
+
.header__button-container {
|
| 47 |
+
margin-top: 20px;
|
| 48 |
+
display: flex;
|
| 49 |
+
flex-direction: row;
|
| 50 |
+
}
|
| 51 |
+
.header__button {
|
| 52 |
+
display: flex;
|
| 53 |
+
align-items: center;
|
| 54 |
+
padding: 25px 20px 25px 20px;
|
| 55 |
+
font-size: 16px;
|
| 56 |
+
width: 10em;
|
| 57 |
+
height: 40px;
|
| 58 |
+
margin: 2.5px;
|
| 59 |
+
border-radius: 30px;
|
| 60 |
+
background-color: #2ebead;
|
| 61 |
+
border: none;
|
| 62 |
+
color: #fff;
|
| 63 |
+
cursor: pointer;
|
| 64 |
+
transition: all 0.3s ease;
|
| 65 |
+
box-shadow: 0 4px 6px rgba(0, 0, 0, 0);
|
| 66 |
+
}
|
| 67 |
+
|
| 68 |
+
.header__button:hover {
|
| 69 |
+
transform: scale(1.05);
|
| 70 |
+
background-color: #29ac9d;
|
| 71 |
+
}
|
| 72 |
+
|
| 73 |
+
.header__button-logo {
|
| 74 |
+
position: absolute;
|
| 75 |
+
margin: 0;
|
| 76 |
+
}
|
| 77 |
+
.header__button-text {
|
| 78 |
+
font-size: 14px;
|
| 79 |
+
margin: 0 auto 0 auto;
|
| 80 |
+
text-align: center;
|
| 81 |
+
}
|
| 82 |
+
.header__participants-container {
|
| 83 |
+
margin-bottom: 40px;
|
| 84 |
+
}
|
| 85 |
+
.header__participants-logo {
|
| 86 |
+
width: 170px;
|
| 87 |
+
height: 120px;
|
| 88 |
+
}
|
| 89 |
+
|
| 90 |
+
@media (max-width: 600px) {
|
| 91 |
+
.header__participants-logo {
|
| 92 |
+
width: 150px;
|
| 93 |
+
}
|
| 94 |
+
.header__button-container {
|
| 95 |
+
flex-direction: column;
|
| 96 |
+
}
|
| 97 |
+
.header__link-container {
|
| 98 |
+
width: 90%;
|
| 99 |
+
}
|
| 100 |
+
.header__button {
|
| 101 |
+
width: 18em;
|
| 102 |
+
margin-bottom: 10px;
|
| 103 |
+
}
|
| 104 |
+
}
|
styles/lightbox.css
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.lighbox-container {
|
| 2 |
+
display: flex;
|
| 3 |
+
width: 100%;
|
| 4 |
+
|
| 5 |
+
flex-direction: column;
|
| 6 |
+
}
|
| 7 |
+
|
| 8 |
+
.lighbox-row {
|
| 9 |
+
display: flex;
|
| 10 |
+
justify-content: space-between;
|
| 11 |
+
}
|
| 12 |
+
|
| 13 |
+
.thumbnail {
|
| 14 |
+
cursor: pointer;
|
| 15 |
+
width: 250px;
|
| 16 |
+
height: auto;
|
| 17 |
+
border-radius: 8px;
|
| 18 |
+
transition: transform 0.2s ease;
|
| 19 |
+
}
|
| 20 |
+
|
| 21 |
+
.thumbnail:hover {
|
| 22 |
+
transform: scale(1.05);
|
| 23 |
+
}
|
| 24 |
+
|
| 25 |
+
.lightbox {
|
| 26 |
+
display: none;
|
| 27 |
+
position: fixed;
|
| 28 |
+
z-index: 9999;
|
| 29 |
+
left: 0;
|
| 30 |
+
top: 0;
|
| 31 |
+
width: 100%;
|
| 32 |
+
height: 100%;
|
| 33 |
+
overflow: auto;
|
| 34 |
+
background-color: rgba(0, 0, 0, 0.8);
|
| 35 |
+
backdrop-filter: blur(4px);
|
| 36 |
+
}
|
| 37 |
+
|
| 38 |
+
.lightbox-content {
|
| 39 |
+
margin: 5% auto;
|
| 40 |
+
display: block;
|
| 41 |
+
max-width: 90%;
|
| 42 |
+
max-height: 80vh;
|
| 43 |
+
animation: zoom 0.3s;
|
| 44 |
+
}
|
| 45 |
+
|
| 46 |
+
.close-btn {
|
| 47 |
+
position: absolute;
|
| 48 |
+
top: 20px;
|
| 49 |
+
right: 35px;
|
| 50 |
+
color: white;
|
| 51 |
+
font-size: 40px;
|
| 52 |
+
font-weight: bold;
|
| 53 |
+
cursor: pointer;
|
| 54 |
+
z-index: 10000;
|
| 55 |
+
}
|
| 56 |
+
|
| 57 |
+
.close-btn:hover,
|
| 58 |
+
.close-btn:focus {
|
| 59 |
+
color: #bbb;
|
| 60 |
+
text-decoration: none;
|
| 61 |
+
cursor: pointer;
|
| 62 |
+
}
|
| 63 |
+
|
| 64 |
+
@keyframes zoom {
|
| 65 |
+
from {
|
| 66 |
+
transform: scale(0);
|
| 67 |
+
}
|
| 68 |
+
to {
|
| 69 |
+
transform: scale(1);
|
| 70 |
+
}
|
| 71 |
+
}
|
| 72 |
+
|
| 73 |
+
@media (max-width: 600px) {
|
| 74 |
+
.lighbox-container {
|
| 75 |
+
padding: 20px;
|
| 76 |
+
}
|
| 77 |
+
}
|
styles/main.css
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
body {
|
| 2 |
+
min-height: 100vh;
|
| 3 |
+
background-color: #fff;
|
| 4 |
+
display: flex;
|
| 5 |
+
flex-direction: column;
|
| 6 |
+
justify-content: center;
|
| 7 |
+
align-items: center;
|
| 8 |
+
}
|
| 9 |
+
|
| 10 |
+
main {
|
| 11 |
+
flex: 1;
|
| 12 |
+
}
|
| 13 |
+
|
| 14 |
+
section {
|
| 15 |
+
max-width: 800px;
|
| 16 |
+
margin-bottom: 100px;
|
| 17 |
+
}
|
| 18 |
+
|
| 19 |
+
.body-container {
|
| 20 |
+
font-family: 'Montserrat', sans-serif;
|
| 21 |
+
}
|
| 22 |
+
|
| 23 |
+
p,
|
| 24 |
+
h1,
|
| 25 |
+
h2,
|
| 26 |
+
h3,
|
| 27 |
+
ul,
|
| 28 |
+
li {
|
| 29 |
+
max-width: 660px;
|
| 30 |
+
text-align: left;
|
| 31 |
+
}
|
| 32 |
+
|
| 33 |
+
h1 {
|
| 34 |
+
width: 100%;
|
| 35 |
+
margin: 0;
|
| 36 |
+
font-weight: 700;
|
| 37 |
+
font-size: 38px;
|
| 38 |
+
}
|
| 39 |
+
|
| 40 |
+
p {
|
| 41 |
+
margin-bottom: 30px;
|
| 42 |
+
font-weight: 400;
|
| 43 |
+
text-align: left;
|
| 44 |
+
font-size: 16px;
|
| 45 |
+
line-height: 1.6;
|
| 46 |
+
}
|
| 47 |
+
|
| 48 |
+
h2 {
|
| 49 |
+
width: 100%;
|
| 50 |
+
margin: 0;
|
| 51 |
+
margin-bottom: 40px;
|
| 52 |
+
font-weight: 600;
|
| 53 |
+
font-size: 32px;
|
| 54 |
+
}
|
| 55 |
+
|
| 56 |
+
h3 {
|
| 57 |
+
font-size: 26px;
|
| 58 |
+
font-weight: 500;
|
| 59 |
+
}
|
| 60 |
+
li {
|
| 61 |
+
margin-bottom: 15px;
|
| 62 |
+
line-height: 1.6;
|
| 63 |
+
}
|
| 64 |
+
@media (max-width: 800px) {
|
| 65 |
+
.body-container {
|
| 66 |
+
width: 90vw;
|
| 67 |
+
}
|
| 68 |
+
}
|
| 69 |
+
@media (max-width: 600px) {
|
| 70 |
+
section {
|
| 71 |
+
margin-bottom: 45px;
|
| 72 |
+
}
|
| 73 |
+
h1 {
|
| 74 |
+
font-size: 30px;
|
| 75 |
+
}
|
| 76 |
+
h2 {
|
| 77 |
+
font-size: 24px;
|
| 78 |
+
margin-bottom: 25px;
|
| 79 |
+
}
|
| 80 |
+
p {
|
| 81 |
+
font-size: 16px;
|
| 82 |
+
margin-bottom: 20px;
|
| 83 |
+
}
|
| 84 |
+
}
|
styles/numberSection.css
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.numbers-section__container {
|
| 2 |
+
display: flex;
|
| 3 |
+
flex-direction: column;
|
| 4 |
+
justify-content: center;
|
| 5 |
+
text-align: center;
|
| 6 |
+
justify-items: center;
|
| 7 |
+
}
|
| 8 |
+
|
| 9 |
+
.numbers__container {
|
| 10 |
+
display: flex;
|
| 11 |
+
flex-direction: row;
|
| 12 |
+
justify-content: space-between;
|
| 13 |
+
}
|
| 14 |
+
|
| 15 |
+
.number__card {
|
| 16 |
+
margin-right: 10px;
|
| 17 |
+
}
|
| 18 |
+
|
| 19 |
+
.number__card > h1 {
|
| 20 |
+
width: fit-content;
|
| 21 |
+
margin-left: auto;
|
| 22 |
+
margin-right: auto;
|
| 23 |
+
}
|
| 24 |
+
.number__card > p {
|
| 25 |
+
text-align: center;
|
| 26 |
+
margin-bottom: 0;
|
| 27 |
+
}
|