feat: Add initial front design
All checks were successful
Build Docker / BuildImage (push) Successful in 42s
6
templates/assets/bootstrap/css/bootstrap.min.css
vendored
Normal file
6
templates/assets/bootstrap/js/bootstrap.min.js
vendored
Normal file
BIN
templates/assets/fonts/ionicons.eot
Normal file
11
templates/assets/fonts/ionicons.min.css
vendored
Normal file
2230
templates/assets/fonts/ionicons.svg
Normal file
|
After Width: | Height: | Size: 326 KiB |
BIN
templates/assets/fonts/ionicons.ttf
Normal file
BIN
templates/assets/fonts/ionicons.woff
Normal file
BIN
templates/assets/img/brands/apple.png
Normal file
|
After Width: | Height: | Size: 9.1 KiB |
BIN
templates/assets/img/brands/facebook.png
Normal file
|
After Width: | Height: | Size: 7.8 KiB |
BIN
templates/assets/img/brands/google.png
Normal file
|
After Width: | Height: | Size: 8.3 KiB |
BIN
templates/assets/img/brands/microsoft.png
Normal file
|
After Width: | Height: | Size: 7.8 KiB |
BIN
templates/assets/img/brands/twitter.png
Normal file
|
After Width: | Height: | Size: 6.9 KiB |
|
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 62 KiB |
BIN
templates/assets/img/products/1.jpg
Normal file
|
After Width: | Height: | Size: 43 KiB |
BIN
templates/assets/img/products/2.jpg
Normal file
|
After Width: | Height: | Size: 52 KiB |
BIN
templates/assets/img/products/3.jpg
Normal file
|
After Width: | Height: | Size: 57 KiB |
BIN
templates/assets/img/team/avatar1.jpg
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
templates/assets/img/team/avatar2.jpg
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
templates/assets/img/team/avatar3.jpg
Normal file
|
After Width: | Height: | Size: 40 KiB |
BIN
templates/assets/img/team/avatar4.jpg
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
templates/assets/img/team/avatar5.jpg
Normal file
|
After Width: | Height: | Size: 57 KiB |
BIN
templates/assets/img/team/avatar6.jpg
Normal file
|
After Width: | Height: | Size: 52 KiB |
61
templates/assets/js/bold-and-dark.js
Normal file
@@ -0,0 +1,61 @@
|
||||
(function() {
|
||||
"use strict"; // Start of use strict
|
||||
|
||||
function initParallax() {
|
||||
|
||||
if (!('requestAnimationFrame' in window)) return;
|
||||
if (/Mobile|Android/.test(navigator.userAgent)) return;
|
||||
|
||||
var parallaxItems = document.querySelectorAll('[data-bss-parallax]');
|
||||
|
||||
if (!parallaxItems.length) return;
|
||||
|
||||
var defaultSpeed = 0.5;
|
||||
var visible = [];
|
||||
var scheduled;
|
||||
|
||||
window.addEventListener('scroll', scroll);
|
||||
window.addEventListener('resize', scroll);
|
||||
|
||||
scroll();
|
||||
|
||||
function scroll() {
|
||||
|
||||
visible.length = 0;
|
||||
|
||||
for (var i = 0; i < parallaxItems.length; i++) {
|
||||
var rect = parallaxItems[i].getBoundingClientRect();
|
||||
var speed = parseFloat(parallaxItems[i].getAttribute('data-bss-parallax-speed'), 10) || defaultSpeed;
|
||||
|
||||
if (rect.bottom > 0 && rect.top < window.innerHeight) {
|
||||
visible.push({
|
||||
speed: speed,
|
||||
node: parallaxItems[i]
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
cancelAnimationFrame(scheduled);
|
||||
|
||||
if (visible.length) {
|
||||
scheduled = requestAnimationFrame(update);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function update() {
|
||||
|
||||
for (var i = 0; i < visible.length; i++) {
|
||||
var node = visible[i].node;
|
||||
var speed = visible[i].speed;
|
||||
|
||||
node.style.transform = 'translate3d(0, ' + (-window.scrollY * speed) + 'px, 0)';
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
initParallax();
|
||||
})(); // End of use strict
|
||||
|
||||
18
templates/assets/js/copy.js
Normal file
@@ -0,0 +1,18 @@
|
||||
function copyToClipboard(element, text, description) {
|
||||
navigator.clipboard.writeText(text).then(function() {
|
||||
showToast("Copied " + description);
|
||||
}).catch(function(error) {
|
||||
console.error("Copy failed!", error);
|
||||
});
|
||||
}
|
||||
|
||||
// Function to show the toast notification
|
||||
function showToast(message) {
|
||||
let toast = document.getElementById("toast");
|
||||
toast.innerText = message;
|
||||
toast.classList.add("show");
|
||||
|
||||
setTimeout(() => {
|
||||
toast.classList.remove("show");
|
||||
}, 2000);
|
||||
}
|
||||