Added logo and using Bootstrap Sass to customize theme colors.

This commit is contained in:
Bob Vandevliet 2024-06-21 12:47:47 +02:00
parent e2595ebfd8
commit f640f6aa59
9 changed files with 1661 additions and 121 deletions

1
.gitignore vendored
View file

@ -15,6 +15,7 @@ coverage
_docpress
.DS_Store
css
lib
dist
tsconfig.tsbuildinfo

View file

@ -1,17 +1,27 @@
{
"name": "vandevliet.website",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"description": "Vandevliet Aerial Shots Website",
"author": "Bob Vandevliet",
"license": "MIT",
"packageManager": "pnpm@9.2.0+sha1.886364ebd6dae009284bebc56ed4296bb6dd557a",
"scripts": {
"build": "npm-run-all css-compile css-prefix",
"css-compile": "sass --style compressed --source-map --embed-sources --no-error-css --load-path=node_modules scss/:public/assets/css/",
"css-prefix": "postcss --replace public/assets/css/styles.css --use autoprefixer --map",
"server": "docker compose up -d",
"start": "npm-run-all build server"
},
"dependencies": {
"bootstrap": "^5"
},
"devDependencies": {
"@eslint/js": "^8",
"eslint": "^8"
"autoprefixer": "^10",
"eslint": "^8",
"npm-run-all": "^4",
"postcss": "^8",
"postcss-cli": "^11",
"sass": "^1"
}
}
}

1473
pnpm-lock.yaml generated

File diff suppressed because it is too large Load diff

View file

@ -1,101 +0,0 @@
nav {
background-color: rgba(22, 23, 25, 0.4) !important;
transition: background-color 0.5s;
}
body.is-scrolled nav {
background-color: rgba(22, 23, 25, 1.0) !important;
}
.navbar-collapse:not(.collapsing):not(.show) {
max-width: fit-content;
}
.navbar-nav .btn {
padding: var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);
padding-right: var(--bs-navbar-nav-link-padding-x);
padding-left: var(--bs-navbar-nav-link-padding-x);
}
.hero {
height: 100vh;
}
.row {
--bs-gutter-y: var(--bs-gutter-x);
}
.text-shadow {
text-shadow:
-1px -1px 1px rgba(0, 0, 0, 0.4),
-1px 0px 1px rgba(0, 0, 0, 0.4),
-1px 1px 1px rgba(0, 0, 0, 0.4),
0px -1px 1px rgba(0, 0, 0, 0.4),
0px 0px 1px rgba(0, 0, 0, 0.4),
0px 1px 1px rgba(0, 0, 0, 0.4),
1px -1px 1px rgba(0, 0, 0, 0.4),
1px 0px 1px rgba(0, 0, 0, 0.4),
1px 1px 1px rgba(0, 0, 0, 0.4);
}
:target::before {
content: "";
display: block;
height: 4rem;
margin-top: -4rem;
visibility: hidden;
}
.anchor-link {
text-decoration: none;
opacity: 0;
transition: opacity 0.2s;
}
h1:hover .anchor-link,
h2:hover .anchor-link,
h3:hover .anchor-link,
h4:hover .anchor-link,
h5:hover .anchor-link,
h6:hover .anchor-link {
opacity: 1;
}
.cover,
.parallax,
.card-img {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: cover;
}
.parallax {
height: 100vh;
}
.card-img-overlay {
position: unset;
z-index: 1;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.7);
transition: background-color 0.2s;
}
.card:hover .card-img-overlay {
background-color: rgba(0, 0, 0, 0.4);
}
.arrow-effect {
--s: 100px;
--c1: var(--bs-body-bg);
--c2: var(--bs-secondary-bg-subtle);
background:
conic-gradient(#0000 75%, var(--c1) 0) 0 calc(var(--s)/4),
conic-gradient(from 45deg, var(--c1) 25%, var(--c2) 0);
background-size: var(--s) var(--s);
}

View file

@ -5,7 +5,7 @@
<div class="col-6 col-lg-3">
<div class="card h-100">
<div class="card-body">
<h2 class="card-title" id="section-contact">Contact</h4>
<h5 class="card-title" id="section-contact">Contact</h5>
<h4>Bob Vandevliet</h4>
<p>Gecertificeerd FPV-dronepiloot voor open categorie A1, A2 en A3.</p>
<h5>Email</h5>

View file

@ -4,7 +4,6 @@
<title><!--# echo var="title" default="Title" --></title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5/dist/css/bootstrap.min.css" crossorigin="anonymous">
<link rel="stylesheet" href="assets/css/styles.css">
<script src="https://kit.fontawesome.com/7e7cf109ad.js" crossorigin="anonymous"></script>

View file

@ -1,6 +1,8 @@
<nav class="navbar navbar-expand-lg fixed-top">
<div class="container-xxl justify-content-center">
<a class="navbar-brand" href="#"><!--# echo var="site" default="Website Title" --></a>
<a class="navbar-brand" href="#">
<img src="static/logo-aerialshots-v1-w.png" alt="Logo" height="48">
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

170
scss/styles.scss Normal file
View file

@ -0,0 +1,170 @@
// Toggle global options
// $enable-gradients: true;
// $enable-shadows: true;
// Include functions first (so you can manipulate colors, SVGs, calc, etc)
@import "../node_modules/bootstrap/scss/functions";
// scss-docs-start color-variables
$red: #cc2929; // Default: #dc3545
// scss-docs-start theme-color-variables
$primary: $red; // Default: $blue
// Include remainder of required Bootstrap stylesheets
@import "../node_modules/bootstrap/scss/variables";
@import "../node_modules/bootstrap/scss/variables-dark";
// Include any default map overrides here
// Include remainder of required parts
@import "../node_modules/bootstrap/scss/maps";
@import "../node_modules/bootstrap/scss/mixins";
@import "../node_modules/bootstrap/scss/root";
// Include any other parts as needed
@import "../node_modules/bootstrap/scss/reboot";
@import "../node_modules/bootstrap/scss/type";
@import "../node_modules/bootstrap/scss/containers";
@import "../node_modules/bootstrap/scss/grid";
@import "../node_modules/bootstrap/scss/images";
@import "../node_modules/bootstrap/scss/nav";
@import "../node_modules/bootstrap/scss/navbar"; // Requires nav
@import "../node_modules/bootstrap/scss/buttons";
@import "../node_modules/bootstrap/scss/button-group";
@import "../node_modules/bootstrap/scss/card";
@import "../node_modules/bootstrap/scss/tables";
@import "../node_modules/bootstrap/scss/forms";
@import "../node_modules/bootstrap/scss/transitions";
// @import "../node_modules/bootstrap/scss/accordion";
// @import "../node_modules/bootstrap/scss/alert";
// @import "../node_modules/bootstrap/scss/badge";
// @import "../node_modules/bootstrap/scss/breadcrumb";
// @import "../node_modules/bootstrap/scss/carousel";
// @import "../node_modules/bootstrap/scss/close";
// @import "../node_modules/bootstrap/scss/dropdown";
// @import "../node_modules/bootstrap/scss/list-group";
// @import "../node_modules/bootstrap/scss/modal"; // Requires transitions
// @import "../node_modules/bootstrap/scss/offcanvas"; // Requires transitions
// @import "../node_modules/bootstrap/scss/pagination";
// @import "../node_modules/bootstrap/scss/placeholders";
// @import "../node_modules/bootstrap/scss/popover";
// @import "../node_modules/bootstrap/scss/progress";
// @import "../node_modules/bootstrap/scss/spinners";
// @import "../node_modules/bootstrap/scss/toasts";
// @import "../node_modules/bootstrap/scss/tooltip";
// Helpers
@import "../node_modules/bootstrap/scss/helpers";
// Utilities
@import "../node_modules/bootstrap/scss/utilities";
@import "../node_modules/bootstrap/scss/utilities/api";
//
// Custom styles
//
.navbar {
background-image: none !important;
background-color: rgba(22, 23, 25, 0.4) !important;
transition: background-color 0.5s;
}
body.is-scrolled .navbar {
background-color: rgba(22, 23, 25, 1.0) !important;
}
.navbar-collapse:not(.collapsing):not(.show) {
max-width: fit-content;
}
.navbar-nav .btn {
margin-left: var(--bs-navbar-nav-link-padding-x);
padding: var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);
padding-right: var(--bs-navbar-nav-link-padding-x);
padding-left: var(--bs-navbar-nav-link-padding-x);
}
.hero {
height: 100vh;
}
.row {
--bs-gutter-y: var(--bs-gutter-x);
}
.text-shadow {
text-shadow:
-1px -1px 1px rgba(0, 0, 0, 0.4),
-1px 0px 1px rgba(0, 0, 0, 0.4),
-1px 1px 1px rgba(0, 0, 0, 0.4),
0px -1px 1px rgba(0, 0, 0, 0.4),
0px 0px 1px rgba(0, 0, 0, 0.4),
0px 1px 1px rgba(0, 0, 0, 0.4),
1px -1px 1px rgba(0, 0, 0, 0.4),
1px 0px 1px rgba(0, 0, 0, 0.4),
1px 1px 1px rgba(0, 0, 0, 0.4);
}
:target::before {
content: "";
display: block;
height: 5rem;
margin-top: -5rem;
visibility: hidden;
}
.anchor-link {
text-decoration: none;
opacity: 0;
transition: opacity 0.2s;
}
h1:hover .anchor-link,
h2:hover .anchor-link,
h3:hover .anchor-link,
h4:hover .anchor-link,
h5:hover .anchor-link,
h6:hover .anchor-link {
opacity: 1;
}
.cover,
.parallax,
.card-img {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: cover;
}
.parallax {
height: 100vh;
}
.card-img-overlay {
position: unset;
z-index: 1;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.7);
transition: background-color 0.2s;
}
.card:hover .card-img-overlay {
background-color: rgba(0, 0, 0, 0.4);
}
.arrow-effect {
--s: 100px;
--c1: var(--bs-body-bg);
--c2: var(--bs-secondary-bg-subtle);
background:
conic-gradient(#0000 75%, var(--c1) 0) 0 calc(var(--s)/4),
conic-gradient(from 45deg, var(--c1) 25%, var(--c2) 0);
background-size: var(--s) var(--s);
}