diff --git a/.bundle/config b/.bundle/config new file mode 100644 index 0000000..2369228 --- /dev/null +++ b/.bundle/config @@ -0,0 +1,2 @@ +--- +BUNDLE_PATH: "vendor/bundle" diff --git a/Gemfile b/Gemfile index 1a301d9..72deef4 100644 --- a/Gemfile +++ b/Gemfile @@ -1,3 +1,6 @@ source "https://rubygems.org" gem "jekyll-theme-console", path: "./_vendor/jekyll-theme-console" -gem 'jekyll-feed' \ No newline at end of file +gem 'jekyll-feed' + +gem "jekyll" +gem "webrick" \ No newline at end of file diff --git a/Gemfile.lock b/Gemfile.lock index ecba5d4..6410352 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -38,6 +38,8 @@ GEM safe_yaml (~> 1.0) terminal-table (>= 1.8, < 4.0) webrick (~> 1.7) + jekyll-feed (0.17.0) + jekyll (>= 3.7, < 5.0) jekyll-sass-converter (3.0.0) sass-embedded (~> 1.54) jekyll-seo-tag (2.8.0) @@ -56,24 +58,30 @@ GEM pathutil (0.16.2) forwardable-extended (~> 2.6) public_suffix (5.0.3) + rake (13.3.0) rb-fsevent (0.11.2) rb-inotify (0.10.1) ffi (~> 1.0) rexml (3.2.5) rouge (4.1.2) safe_yaml (1.0.5) - sass-embedded (1.64.1-x86_64-linux-musl) + sass-embedded (1.64.1) google-protobuf (~> 3.23) + rake (>= 13.0.0) terminal-table (3.0.2) unicode-display_width (>= 1.1.1, < 3) unicode-display_width (2.4.2) webrick (1.8.1) PLATFORMS + x86_64-linux x86_64-linux-musl DEPENDENCIES + jekyll + jekyll-feed jekyll-theme-console! + webrick BUNDLED WITH 2.4.10 diff --git a/_includes/footer.html b/_includes/footer.html index 692fcc2..b6f1394 100644 --- a/_includes/footer.html +++ b/_includes/footer.html @@ -1,49 +1,30 @@ - \ No newline at end of file + diff --git a/_includes/head.html b/_includes/head.html index c3a9346..12647d4 100644 --- a/_includes/head.html +++ b/_includes/head.html @@ -1,61 +1,109 @@ - - + + - - - + + + + + + + + + + + + {{ page.title }} - + - {% if page.noindex %} - - {% endif %} - - {% if page.title %} - - + + {% endif %} {% if page.title %} + + {% else %} - - {% endif %} - - {% if page.summary %} - + + {% endif %} {% if page.summary %} + {% else %} - - {% endif %} - - {% if page.url %} - - {% endif %} - - {% if page.date %} - - - {% endif %} - - {% if page.thumbnail %} - + + {% endif %} {% if page.url %} + + {% endif %} {% if page.date %} + + + {% endif %} {% if page.thumbnail %} + {% else %} - - {% endif %} - - {% if page.categories %} - {% for category in page.categories limit:1 %} - - {% endfor %} - {% endif %} - - {% if page.tags %} - {% for tag in page.tags %} - - {% endfor %} - {% endif %} + + {% endif %} {% if page.categories %} {% for category in page.categories + limit:1 %} + + {% endfor %} {% endif %} {% if page.tags %} {% for tag in page.tags %} + + {% endfor %} {% endif %} @@ -63,34 +111,24 @@ {% if page.title %} - + {% else %} - - {% endif %} - - {% if page.url %} - - {% endif %} - - {% if page.summary %} - + + {% endif %} {% if page.url %} + + {% endif %} {% if page.summary %} + {% else %} - - {% endif %} + + {% endif %} {% if page.header-img %} + + {% endif %} {% if page.robots %} + + {% endif %} - {% if page.header-img %} - - {% endif %} - - {% if page.robots %} - - {% endif %} - - - + diff --git a/_includes/header.html b/_includes/header.html index ddde93f..1d5c24e 100644 --- a/_includes/header.html +++ b/_includes/header.html @@ -1,9 +1,48 @@ {%- assign page_paths = site.header_pages | default: default_paths -%} -
+ +
+ +
+ + diff --git a/_layouts/Docs b/_layouts/Docs new file mode 100644 index 0000000..e69de29 diff --git a/_layouts/Pricing.html b/_layouts/Pricing.html new file mode 100644 index 0000000..e69de29 diff --git a/_layouts/landing.html b/_layouts/landing.html index 851dd75..802aec5 100644 --- a/_layouts/landing.html +++ b/_layouts/landing.html @@ -1,71 +1,21 @@ - -{%- include head.html -%} - - - - - - - -
- - - - -
-

Join the waitlist

-

- The first open source platform for encrypted data recovery and escrow. Built by the security engineers behind Distrust, formerly at BitGo, Unit410, and Turnkey. -

-
- -
- -
- GET - EARLY - ACCESS
- BE THE - FIRST
- TO - TRY IT -
- -
- -
- - - - - - + {%- include head.html -%} + + {%- include header.html -%} +
+
+

Secure what matters most.

+

+ Recover any encrypted data without relying on blind trust. Open + source, verifiable, and trustless by design. +

+ +
+
+ {%- include footer.html -%} + - diff --git a/_sass/base.scss b/_sass/base.scss index de402e4..04a9b14 100644 --- a/_sass/base.scss +++ b/_sass/base.scss @@ -1,29 +1,106 @@ @charset "utf-8"; -@font-face { - font-family: 'Inter'; - src: url('fonts/Inter-VariableFont_opsz,wght.ttf') format('truetype'); +:root { + --dark: #0f0f0f; + --grey: #6f6f6f; + --gre-light: #f5f5f5; + --blue-base: #ecf6fd; + --blue-light: #e8f2ff; + --blue-mid: #c7e8ff; + --blue-dirty: #2e6aea; + --turq: #a3f1fc; + --violet: #da93ff; + --pink: #f048b5; + --purple: #7c4dff; } -$base-font-family: 'Inter', monospace !default; +@font-face { + font-family: "Plus Jakarta Sans"; + src: url("/assets/fonts/PlusJakartaSans-ExtraLight.otf") format("opentype"); + font-weight: 200; + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: "Plus Jakarta Sans"; + src: url("/assets/fonts/PlusJakartaSans-Light.otf") format("opentype"); + font-weight: 300; + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: "Plus Jakarta Sans"; + src: url("/assets/fonts/PlusJakartaSans-Regular.otf") format("opentype"); + font-weight: 400; + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: "Plus Jakarta Sans"; + src: url("/assets/fonts/PlusJakartaSans-Medium.otf") format("opentype"); + font-weight: 500; + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: "Plus Jakarta Sans"; + src: url("/assets/fonts/PlusJakartaSans-SemiBold.otf") format("opentype"); + font-weight: 600; + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: "Plus Jakarta Sans"; + src: url("/assets/fonts/PlusJakartaSans-Bold.otf") format("opentype"); + font-weight: 700; + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: "Plus Jakarta Sans"; + src: url("/assets/fonts/PlusJakartaSans-ExtraBold.otf") format("opentype"); + font-weight: 800; + font-style: normal; + font-display: swap; +} + +$base-font-family: "Plus Jakarta Sans", sans-serif !default; $base-font-size: 1.3rem !default; $mobile-font-size: 1.125rem !default; $base-line-height: 1.5 !default; -$container-width: 90% !default; -$container-max-width: 1280px !default; +$container-width: 95% !default; +$container-max-width: 1440px !default; -html, body { - height: 100vh; - width: 100vw; +html, +body { + height: 100vh; /* Sets the height of both and to 100% of the viewport height */ + width: 100%; + margin: 0; + padding: 0; overflow-x: hidden; - overflow-y: auto; } html { scroll-behavior: smooth; } +*, +*::before, +*::after { + box-sizing: border-box; +} +* { + padding: 0; + line-height: 1.4; +} +/* remove for now body::before { content: ""; position: fixed; @@ -33,14 +110,13 @@ body::before { height: 100vh; background: url('/assets/base/waitlist-static.jpeg') no-repeat center center; background-size: cover; - transform: scaleX(-1); - z-index: -1; - opacity: 0.9; /* Optional: slightly fade background */ - } + opacity: 0.7; /* Optional: slightly fade background + } +*/ -body { +/* body { position: relative; - background-color: var(--ghost-white); + background-color: var(--blue-base); margin: 0 auto; padding: 0 auto; font-family: $base-font-family; @@ -53,6 +129,14 @@ body { align-items: center; justify-content: center; } +*/ + +.container { + width: $container-width; + max-width: $container-max-width; + margin-right: auto; + margin-left: auto; +} .center { text-align: center; @@ -60,288 +144,293 @@ body { margin-right: auto; } -.video-background-container { - position: absolute; - width: 100%; - height: 100%; - overflow: hidden; - left: 0; - z-index: -1; - transform: scaleX(-1); +h1, +h2, +h3, +h4 { + font-family: "Plus Jakarta Sans", sans-serif; + font-weight: 600; /* SemiBold */ } -.video-background { - position: absolute; - top: 50%; - left: 50%; - min-width: 100%; - min-height: 100%; - width: auto; - height: auto; - transform: translate(-50%, -50%); - object-fit: cover; - opacity: 0.9; -} - -.logo img { - margin-top: 1.5rem; - margin-bottom: 4rem; -} - - h1 { - font-size: clamp(3rem, 10vw, 4.8rem); + font-size: clamp(3.5rem, 10vw, 5rem); line-height: clamp(5rem, 10vw, 5.8rem); - margin-bottom: 0rem; - margin-top: 0rem; - color: #242526; +} + +p { + font-family: "Plus Jakarta Sans", sans-serif; + font-weight: 400; /* Regular */ + font-size: 1.4rem; +} + +a { + font-family: "Plus Jakarta Sans", sans-serif; +} + +a { + font-family: "Plus Jakarta Sans", sans-serif; + color: var(--dark); + transition: background-color 0.3s ease-in-out, color 0.3s ease-in-out; + text-decoration: none; +} + +a:hover { + text-decoration: none; + color: var(--pink); + transition: background-color 0.3s ease-in-out, color 0.3s ease-in-out; +} + +small { + font-family: "Plus Jakarta Sans", sans-serif; + font-weight: 300; /* Light */ +} + +em { + font-family: "Plus Jakarta Sans", sans-serif; + font-weight: 400; /* or use 500–800 if needed */ +} + +/* BUTTONS */ + +.btn { + padding: 0.5rem 2rem; + border-radius: 10px; + text-decoration: none; + font-weight: 600; + font-size: 1.15rem; +} + +.btn-primary { + background: var(--dark); + color: white; + padding-bottom: 0.75rem; + opacity: 0.95; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05); +} + +.btn-secondary { + background: transparent; + color: var(--dark); + font-size: 1.2rem; } .fade-in { opacity: 0; animation: fadeIn ease 1.1s forwards; - } - -@keyframes fadeIn { - from { - opacity: 0; - transform: translateY(7px); - } - to { - opacity: 1; - transform: translateY(0); - } - } - -.delay-1 { - animation-delay: 0.1s; } -.delay-2 { - animation-delay: 0.2s; +img { + display: block !important; + max-width: 100%; } -.delay-3 { - animation-delay: 0.3s; +/* HEADER NAVBAR */ + +.header-navbar { + position: fixed; + top: 0; + left: 0; + width: 100%; + z-index: 9999; } -.delay-4 { - animation-delay: 0.3s; +.nav-container { + display: flex; + justify-content: space-between; + align-items: center; + padding: 1.5rem 2rem; + margin-top: 0 auto; } -.subtext, .subtext-thanks { +.nav-menu { + display: flex; + gap: 2rem; + font-weight: 400; + font-size: 1.15rem; + padding-left: 2rem; +} + +.nav-menu, +.nav-dropdown-toggle { + font-family: "Plus Jakarta Sans", sans-serif; + font-weight: 400; + font-size: 1.15rem; +} + +.nav-dropdown { + position: relative; +} + +.nav-dropdown-toggle { + background: none; + border: none; + display: flex; + align-items: center; + gap: 0.3rem; + color: var(--dark); + cursor: pointer; + padding: 0; +} + +.nav-caret-icon { + width: 18px; + height: auto; + transition: transform 0.2s ease; +} + +.nav-dropdown.open .nav-caret-icon { + transform: rotate(180deg); +} + +.nav-dropdown-menu { + position: absolute; + top: 100%; + left: 0; + background: white; + border-radius: 6px; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05); + padding: 0.5rem 0; + display: none; + z-index: 9999; +} + +.nav-dropdown-menu li { + list-style: none; +} + +.nav-dropdown-menu li a { + display: block; + padding: 0.5rem 1.2rem; + color: var(--dark); + text-decoration: none; + white-space: nowrap; +} + +.nav-dropdown-menu li a:hover { + color: var(--pink); +} + +.nav-logo img { + height: auto; + width: 100%; + max-width: 50px; + display: block; + opacity: 0.85; +} + +.nav-logo img:hover, +.btn-primary:hover { + opacity: 1; +} + +.nav-logo { + max-width: 50px; +} + +/* LANDING */ + +.hero-landing { + height: 150vh; + background-image: linear-gradient( + rgba(255, 255, 255, 0.3), + rgba(255, 255, 255, 0.3) + ), + url(/assets/imgs/hero-glass-flow.jpeg); + background-size: 125%; + background-position-y: 0vh; /* Pushes image up relative to viewport height */ + background-repeat: no-repeat; + display: flex; + position: relative; + background-color: var(--blue-base); /* Fallback color */ + backface-visibility: hidden; + transform: translateZ(0); /* Forces GPU rendering to reduce flickering */ +} + +.hero-landing-title { + max-width: 600px; + line-height: 1; + margin-bottom: 1.5rem; + margin-top: 16rem; +} + +.hero-landing-subtext { + max-width: 700px; + margin-bottom: 3rem; + font-size: 1.6rem; +} + +// ======== FOOTER ======== // + +.site-footer { + background-color: var(--dark); + color: white; + padding: 4rem 0; + font-family: "Plus Jakarta Sans", sans-serif; +} + +.footer-top { + display: flex; + justify-content: space-between; + align-items: flex-start; + flex-wrap: wrap; + gap: 2rem; +} + +.footer-logo { + align-items: flex-start; + display: flex; + flex-direction: row; + gap: 0.75rem; +} + +.footer-logo img { + max-width: 170px; +} + +.footer-links { + display: flex; + gap: 5rem; + flex-wrap: wrap; +} + +.footer-column { + display: flex; + flex-direction: column; + gap: 0.75rem; +} + +.footer-column h4 { + font-weight: 600; + font-size: 1rem; + margin-bottom: 0.5rem; +} + +.footer-column a { + color: #ccc; + text-decoration: none; + font-weight: 400; + font-size: 1rem; + transition: color 0.2s ease-in-out; +} + +.footer-column a:hover { + color: var(--pink); /* or whatever accent color you'd like */ +} + +// ======== FOOTER ======== // + +/* adds slight blurry white background under text for extra contrast +.subtext { font-size: clamp(1.1rem, 2vw, 1.25rem); background: rgba(232, 246, 253, 0.6); border-radius: 1rem; box-shadow: 0 0 30px 20px rgba(232, 246, 253, 0.7); -} - -.subtext { max-width: 550px; margin-bottom: 20rem; } +*/ -.subtext-thanks { - max-width: 410px; - margin-bottom: 22rem; -} - -.info-block, .info-block-thanks { - font-size: 1rem; - text-transform: uppercase; - max-width: 300px; - margin-right: 25rem; -} - -.info-block { - margin-bottom: 1.5rem; -} - -.info-block-thanks { - margin-bottom: 7rem; -} - -.spaced-text { - display: inline-block; - margin-right: 1.25rem; -} - -.waitlist-form { - width: min(90%, 500px); -} - -.email-form { - display: flex; - justify-content: center; - width: 100%; -} - -.input-wrapper { - display: flex; - align-items: center; - border: 2px solid var(--raisin-black); - border-radius: 999px; - padding: 0.25rem; - max-width: 400px; - width: 100%; - background: white; - justify-content: space-between; - margin-bottom: 2rem; -} - -.email-input { - flex: 1; - font-size: 1.25rem; - padding: 0.75rem 1rem; - background: transparent; - border: none; - padding: 0.25rem; - max-width: 400px; - width: 100%; - background: white; - margin-left: 0.5rem; -} - -.email-input:focus { - outline: none !important; - border: none !important; -} - -.submit-btn { - background-color: var(--raisin-black); - color: var(--ghost-white); - border: none; - border-radius: 50%; - width: 44px; - height: 44px; - cursor: pointer; - display: flex; - align-items: center; - justify-content: center; -} - -.submit-btn .arrow { - font-size: 1.5rem; - transition: transform 0.25s ease; -} - -.submit-btn .arrow:hover { - transform: translateX(2.5px); -} - -.footer { - margin-bottom: 1rem; - font-size: clamp(0.9rem, 10vw, 1rem); - color: #242526; - display: flex; - word-spacing: 50%; - justify-content: center; -} - -.footer-mobile { - display: none; -} - -.distrust-link-subtext, .distrust-link-footer { - text-decoration: underline; -} - -.distrust-link-subtext:hover { - color: var(--pink); //#0FB74A//; -} - -.distrust-link-footer:hover { - color: var(--pink); -} - -a { - text-decoration: none; - color: inherit; -} - -@media (max-width: 1600px) { - - .subtext { - margin-bottom: 15rem; - } - - .subtext-thanks { - margin-bottom: 17rem; - } -} - -@media (max-width: 1080px) { - - .subtext { - margin-bottom: 13rem; - } - - .subtext-thanks { - margin-bottom: 15rem; - } -} - - -@media (max-width: 770px) { - - .body { - background-color: #e2effc; - } - - .logo img { - margin-top: 1.5rem; - margin-bottom: 3.5rem; - height: 1.7rem; - } - - .video-background { - top: 425px; - } - - .subtext { - max-width: 350px; - margin-bottom: 17rem; - margin-top: 0rem; - } - - .subtext-thanks { - max-width: 320px; - margin-bottom: 25rem; - margin-top: 0rem; - } - - //.info-block { - //margin-bottom: 1.5rem; - //margin-right: 5rem; - //font-size: 0.9rem; - //max-width: 270px; - //}// - - .info-block, .info-block-thanks { - display: none; - } - - .input-wrapper { - margin-top: 0.5rem; - margin-bottom: 2rem; - - } - - .footer { - display: none; - } - - .footer-mobile { - display: block; - word-spacing: 30%; - text-align: center; - color: #636363; - max-width: 340px; - font-size: 0.9rem; - margin-bottom: 5rem; - } -} - +/* --- */ /* body > div.container { flex: 1; @@ -2137,9 +2226,6 @@ pre { } /* Literal.String.Doc */ -.highlight .s2 { - color: var(--code-color-15); -} /* Literal.String.Double * .highlight .se { diff --git a/assets/base/dropdown.svg b/assets/base/dropdown.svg new file mode 100644 index 0000000..0881502 --- /dev/null +++ b/assets/base/dropdown.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/base/waitlist.jpeg b/assets/base/waitlist.jpeg deleted file mode 100644 index 4bd5b28..0000000 Binary files a/assets/base/waitlist.jpeg and /dev/null differ diff --git a/assets/fonts/Inter-VariableFont_opsz,wght.ttf b/assets/fonts/Inter-VariableFont_opsz,wght.ttf deleted file mode 100644 index e31b51e..0000000 Binary files a/assets/fonts/Inter-VariableFont_opsz,wght.ttf and /dev/null differ diff --git a/assets/fonts/PlusJakartaSans-Bold.otf b/assets/fonts/PlusJakartaSans-Bold.otf new file mode 100644 index 0000000..3673fdb Binary files /dev/null and b/assets/fonts/PlusJakartaSans-Bold.otf differ diff --git a/assets/fonts/PlusJakartaSans-ExtraBold.otf b/assets/fonts/PlusJakartaSans-ExtraBold.otf new file mode 100644 index 0000000..584e14f Binary files /dev/null and b/assets/fonts/PlusJakartaSans-ExtraBold.otf differ diff --git a/assets/fonts/PlusJakartaSans-ExtraLight.otf b/assets/fonts/PlusJakartaSans-ExtraLight.otf new file mode 100644 index 0000000..3c58686 Binary files /dev/null and b/assets/fonts/PlusJakartaSans-ExtraLight.otf differ diff --git a/assets/fonts/PlusJakartaSans-Light.otf b/assets/fonts/PlusJakartaSans-Light.otf new file mode 100644 index 0000000..42e879d Binary files /dev/null and b/assets/fonts/PlusJakartaSans-Light.otf differ diff --git a/assets/fonts/PlusJakartaSans-Medium.otf b/assets/fonts/PlusJakartaSans-Medium.otf new file mode 100644 index 0000000..b900964 Binary files /dev/null and b/assets/fonts/PlusJakartaSans-Medium.otf differ diff --git a/assets/fonts/PlusJakartaSans-Regular.otf b/assets/fonts/PlusJakartaSans-Regular.otf new file mode 100644 index 0000000..0070e4a Binary files /dev/null and b/assets/fonts/PlusJakartaSans-Regular.otf differ diff --git a/assets/fonts/PlusJakartaSans-SemiBold.otf b/assets/fonts/PlusJakartaSans-SemiBold.otf new file mode 100644 index 0000000..a8c7e50 Binary files /dev/null and b/assets/fonts/PlusJakartaSans-SemiBold.otf differ diff --git a/assets/fonts/Rubik-VariableFont_wght.ttf b/assets/fonts/Rubik-VariableFont_wght.ttf deleted file mode 100644 index fa161b9..0000000 Binary files a/assets/fonts/Rubik-VariableFont_wght.ttf and /dev/null differ diff --git a/assets/images/whale_shark.jpg b/assets/images/whale_shark.jpg deleted file mode 100644 index 71ea16e..0000000 Binary files a/assets/images/whale_shark.jpg and /dev/null differ diff --git a/assets/base/waitlist-static.jpeg b/assets/imgs/hero-glass-flow.jpeg similarity index 100% rename from assets/base/waitlist-static.jpeg rename to assets/imgs/hero-glass-flow.jpeg diff --git a/assets/js/main.js b/assets/js/main.js index 686ea44..65e7e22 100644 --- a/assets/js/main.js +++ b/assets/js/main.js @@ -1,4 +1,27 @@ -document.addEventListener('DOMContentLoaded', function () { +// === Navbar dropdown toggle === + +document.addEventListener("DOMContentLoaded", function () { + const dropdown = document.querySelector(".nav-dropdown"); + if (!dropdown) return; + + const toggle = dropdown.querySelector(".nav-dropdown-toggle"); + const menu = dropdown.querySelector(".nav-dropdown-menu"); + + toggle.addEventListener("click", function (e) { + e.stopPropagation(); + dropdown.classList.toggle("open"); + menu.style.display = dropdown.classList.contains("open") ? "block" : "none"; + }); + + document.addEventListener("click", function () { + dropdown.classList.remove("open"); + menu.style.display = "none"; + }); +}); + +// === Navbar dropdown toggle === + +document.addEventListener("DOMContentLoaded", function () { const collapsibleButton = document.querySelector(".hamburger-menu"); const menuContent = document.querySelector(".menu-content"); collapsibleButton.addEventListener("click", function () { @@ -10,7 +33,7 @@ document.addEventListener('DOMContentLoaded', function () { } }); - initializeCompaniesCarousel(); + initializeCompaniesCarousel(); // TODO: useful for news article carousel // fetch('../assets/js/carousel-items.json') // .then(response => response.json()) @@ -19,20 +42,19 @@ document.addEventListener('DOMContentLoaded', function () { // initializeCarousel(); // }) // .catch(error => console.error('Error loading JSON:', error)); - } -); +}); function createCarouselItems(items) { - const carousel = document.querySelector('#carousel'); - items.forEach(item => { - const itemDiv = document.createElement('div'); - itemDiv.className = 'carousel-item' + const carousel = document.querySelector("#carousel"); + items.forEach((item) => { + const itemDiv = document.createElement("div"); + itemDiv.className = "carousel-item"; - const link = document.createElement('a'); - link.className = 'carousel-link'; + const link = document.createElement("a"); + link.className = "carousel-link"; link.href = item.link; - link.target = '_blank'; - link.rel = 'noopener noreferrer'; + link.target = "_blank"; + link.rel = "noopener noreferrer"; const linkText = document.createTextNode(item.description); link.appendChild(linkText); @@ -42,7 +64,7 @@ function createCarouselItems(items) { } function initializeCarousel() { - const carousel = document.querySelector('#carousel'); + const carousel = document.querySelector("#carousel"); const items = Array.from(carousel.children); const totalItems = items.length; const middleIndex = Math.floor(totalItems / 2); @@ -58,8 +80,8 @@ function initializeCarousel() { let positionIndex = (currentIndex + index + totalItems) % totalItems; let offset = positionIndex - middleIndex; item.style.transform = `translateY(${offset * 100}%)`; - item.classList.toggle('active', positionIndex === middleIndex); - item.style.visibility = 'visible'; + item.classList.toggle("active", positionIndex === middleIndex); + item.style.visibility = "visible"; }); } @@ -68,7 +90,7 @@ function initializeCarousel() { } function initializeCompaniesCarousel() { - const slider = document.getElementById('logoSlider'); + const slider = document.getElementById("logoSlider"); slider.innerHTML += slider.innerHTML; @@ -88,15 +110,15 @@ function initializeCompaniesCarousel() { requestAnimationFrame(animate); } -document.addEventListener('DOMContentLoaded', function () { - const footer = document.querySelector('footer'); +document.addEventListener("DOMContentLoaded", function () { + const footer = document.querySelector("footer"); const path = window.location.pathname; if (!footer) return; const borderStyles = { - '/software.html': '2px solid var(--light-teal)', - '/blog.html': '2px solid var(--pink)', + "/software.html": "2px solid var(--light-teal)", + "/blog.html": "2px solid var(--pink)", }; if (borderStyles[path]) { @@ -105,12 +127,12 @@ document.addEventListener('DOMContentLoaded', function () { // Set hover color const hoverColors = { - '/software.html': 'var(--light-teal)', - '/blog.html': 'var(--pink)', + "/software.html": "var(--light-teal)", + "/blog.html": "var(--pink)", }; if (hoverColors[path]) { - const style = document.createElement('style'); + const style = document.createElement("style"); style.innerHTML = ` .footer-links a:hover { color: ${hoverColors[path]}; @@ -118,4 +140,4 @@ document.addEventListener('DOMContentLoaded', function () { `; document.head.appendChild(style); } -}); \ No newline at end of file +}); diff --git a/index.md b/index.md index 9a0e8d2..a41bf25 100644 --- a/index.md +++ b/index.md @@ -1,6 +1,6 @@ --- -title: Join Caution Waitlist -tagline: Caution | Waitlist +title: Caution +tagline: Open source disaster recovery for encrypted data layout: landing permalink: /index.html thumbnail: /assets/base/caution-logo/caution-logo-png/caution-icon-white-box.png