restructured to public folder

This commit is contained in:
Luca 2024-11-04 17:50:27 +01:00
parent 43addb92a2
commit 83737bd3a6
101 changed files with 2945 additions and 8373 deletions

View file

@ -0,0 +1,7 @@
export default {
layout: 'layouts/post.njk',
title: 'Unnamed',
tags: ['post'],
author: 'Luca Junge',
date: 'Created',
};

23
content/blog/blog.njk Normal file
View file

@ -0,0 +1,23 @@
---
layout: layouts/overview.njk
title: All blogposts
eleventyExcludeFromCollections: true
---
{%- for post in collections.post -%}
<article>
<header>
<h1>
<a href="{{post.url}}">{{post.data.title}}</a>
</h1>
<!--time>{{post.date | formatDate }}</time-->
</header>
<p>{{post.data.excerpt}}</p>
<a class="button" href="{{post.url}}">
Weiterlesen
</a>
</article>
{%- endfor -%}

6
content/blog/test.md Normal file
View file

@ -0,0 +1,6 @@
---
title: Hello World This is a title
excerpt: This is the excerpt
---
Creating a successful blog post involves a few key elements: engaging content, valuable insights, and a clear structure. Begin with a captivating introduction that highlights what readers will gain. In the body, break down the topic into digestible sections using headings for clarity. Keep paragraphs short, use bullet points, and include examples to keep readers interested. To wrap it up, a summary or actionable takeaway helps solidify the message. Dont forget to add visuals, as they increase engagement and make the post more shareable.

13
content/contact.njk Normal file
View file

@ -0,0 +1,13 @@
---
title: "Kontakt"
layout: layouts/base.njk
permalink: /contact/index.html
---
<section>
<div class="section-content">
<p>Feel free to contact me via <a href="mailto:mail@luca-junge.de">mail@luca-junge.de</a>
</p>
</div>
</section>

4
content/css/fonts.css Normal file
View file

@ -0,0 +1,4 @@
@font-face {
font-family: 'Montserrat';
src: url('/fonts/montserrat/Montserrat-VariableFont_wght.ttf');
}

9
content/css/footer.css Normal file
View file

@ -0,0 +1,9 @@
footer {
background-color: #111111;
color: #ffffff;
padding: 0.75rem 1rem 0.75rem 1rem;
font-weight: bold;
display: flex;
justify-content: center;
align-items: center;
}

120
content/css/header.css Normal file
View file

@ -0,0 +1,120 @@
#navigation {
position: relative;
z-index: 2;
background-color: rgba(0, 0, 0, 0.4);
padding: 12px;
-webkit-backdrop-filter: blur(4px);
backdrop-filter: blur(4px);
margin-bottom: -70px;
outline: 1px solid rgba(0, 0, 0, 0.6);
}
#navigation a {
text-decoration: none;
color: #ffffff;
}
#navigation ul {
display: flex;
gap: 18px;
flex-direction: row;
justify-content: center;
align-items: baseline;
list-style-type: none;
margin: 0px;
padding: 0px;
font-weight: bold;
}
#navigation a {
padding: 8px;
display: inline-block;
transition: background-color 0.25s ease-in-out;
border-radius: 4px;
}
#navigation a:hover,
#navigation a:focus-visible {
outline: 1px solid rgba(255, 255, 255, 0.05);
background-color: rgba(255, 255, 255, 0.2);
}
#navigation img {
height: 1em;
object-fit: contain;
}
#navigation .icon-button a {
padding: 8px;
}
#navigation .icon-button {
display: flex;
justify-content: center;
align-items: center;
}
#navigation .icon-button img {
vertical-align: middle;
}
#navigation #menu-button {
display: none;
}
#navigation #install-button {
display: none;
background: linear-gradient(to right, #ad5389, #3c1053);
border-radius: 4px;
cursor: pointer;
}
/* Breakpoints */
@media (max-width: 512px) {
#navigation nav ul {
justify-content: space-between;
}
#navigation nav ul li {
display: none;
}
#navigation li#menu-button,
#navigation li#home-nav,
#navigation li#contact-nav {
display: inline-block;
}
/* Hide all buttons except home and menu */
/*#navigation nav ul li *:not(a.menu-button),
#navigation :not(a.home-button) {
display: none;
}*/
/* This should always be the same header image as the hero element */
#navigation.open {
padding: 0px;
/*background-color: rgba(59, 66, 82, 1);*/
background: linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.6)),
url("/assets/images/hero_image2_mobile.jpg");
background-position: top left;
background-size: cover;
object-fit: cover;
}
#navigation.open nav ul {
padding: 12px;
-webkit-backdrop-filter: blur(4px);
backdrop-filter: blur(4px);
}
#navigation.open ul {
justify-content: space-between;
flex-direction: column;
}
#navigation.open nav ul li {
display: inline-block;
}
}

12
content/css/hero.css Normal file
View file

@ -0,0 +1,12 @@
.hero {
display: flex;
justify-content: center;
margin: 0px;
padding-top: calc(128px + 70px);
padding-bottom: 128px;
background: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)),
url('/images/hero_image2_mobile.jpg');
background-size: cover;
object-fit: cover;
background-position: top left;
}

349
content/css/normalize.css vendored Normal file
View file

@ -0,0 +1,349 @@
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
/* Document
========================================================================== */
/**
* 1. Correct the line height in all browsers.
* 2. Prevent adjustments of font size after orientation changes in iOS.
*/
html {
line-height: 1.15; /* 1 */
-webkit-text-size-adjust: 100%; /* 2 */
}
/* Sections
========================================================================== */
/**
* Remove the margin in all browsers.
*/
body {
margin: 0;
}
/**
* Render the `main` element consistently in IE.
*/
main {
display: block;
}
/**
* Correct the font size and margin on `h1` elements within `section` and
* `article` contexts in Chrome, Firefox, and Safari.
*/
h1 {
font-size: 2em;
margin: 0.67em 0;
}
/* Grouping content
========================================================================== */
/**
* 1. Add the correct box sizing in Firefox.
* 2. Show the overflow in Edge and IE.
*/
hr {
box-sizing: content-box; /* 1 */
height: 0; /* 1 */
overflow: visible; /* 2 */
}
/**
* 1. Correct the inheritance and scaling of font size in all browsers.
* 2. Correct the odd `em` font sizing in all browsers.
*/
pre {
font-family: monospace, monospace; /* 1 */
font-size: 1em; /* 2 */
}
/* Text-level semantics
========================================================================== */
/**
* Remove the gray background on active links in IE 10.
*/
a {
background-color: transparent;
}
/**
* 1. Remove the bottom border in Chrome 57-
* 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
*/
abbr[title] {
border-bottom: none; /* 1 */
text-decoration: underline; /* 2 */
text-decoration: underline dotted; /* 2 */
}
/**
* Add the correct font weight in Chrome, Edge, and Safari.
*/
b,
strong {
font-weight: bolder;
}
/**
* 1. Correct the inheritance and scaling of font size in all browsers.
* 2. Correct the odd `em` font sizing in all browsers.
*/
code,
kbd,
samp {
font-family: monospace, monospace; /* 1 */
font-size: 1em; /* 2 */
}
/**
* Add the correct font size in all browsers.
*/
small {
font-size: 80%;
}
/**
* Prevent `sub` and `sup` elements from affecting the line height in
* all browsers.
*/
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sub {
bottom: -0.25em;
}
sup {
top: -0.5em;
}
/* Embedded content
========================================================================== */
/**
* Remove the border on images inside links in IE 10.
*/
img {
border-style: none;
}
/* Forms
========================================================================== */
/**
* 1. Change the font styles in all browsers.
* 2. Remove the margin in Firefox and Safari.
*/
button,
input,
optgroup,
select,
textarea {
font-family: inherit; /* 1 */
font-size: 100%; /* 1 */
line-height: 1.15; /* 1 */
margin: 0; /* 2 */
}
/**
* Show the overflow in IE.
* 1. Show the overflow in Edge.
*/
button,
input { /* 1 */
overflow: visible;
}
/**
* Remove the inheritance of text transform in Edge, Firefox, and IE.
* 1. Remove the inheritance of text transform in Firefox.
*/
button,
select { /* 1 */
text-transform: none;
}
/**
* Correct the inability to style clickable types in iOS and Safari.
*/
button,
[type="button"],
[type="reset"],
[type="submit"] {
-webkit-appearance: button;
}
/**
* Remove the inner border and padding in Firefox.
*/
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
border-style: none;
padding: 0;
}
/**
* Restore the focus styles unset by the previous rule.
*/
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
outline: 1px dotted ButtonText;
}
/**
* Correct the padding in Firefox.
*/
fieldset {
padding: 0.35em 0.75em 0.625em;
}
/**
* 1. Correct the text wrapping in Edge and IE.
* 2. Correct the color inheritance from `fieldset` elements in IE.
* 3. Remove the padding so developers are not caught out when they zero out
* `fieldset` elements in all browsers.
*/
legend {
box-sizing: border-box; /* 1 */
color: inherit; /* 2 */
display: table; /* 1 */
max-width: 100%; /* 1 */
padding: 0; /* 3 */
white-space: normal; /* 1 */
}
/**
* Add the correct vertical alignment in Chrome, Firefox, and Opera.
*/
progress {
vertical-align: baseline;
}
/**
* Remove the default vertical scrollbar in IE 10+.
*/
textarea {
overflow: auto;
}
/**
* 1. Add the correct box sizing in IE 10.
* 2. Remove the padding in IE 10.
*/
[type="checkbox"],
[type="radio"] {
box-sizing: border-box; /* 1 */
padding: 0; /* 2 */
}
/**
* Correct the cursor style of increment and decrement buttons in Chrome.
*/
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
height: auto;
}
/**
* 1. Correct the odd appearance in Chrome and Safari.
* 2. Correct the outline style in Safari.
*/
[type="search"] {
-webkit-appearance: textfield; /* 1 */
outline-offset: -2px; /* 2 */
}
/**
* Remove the inner padding in Chrome and Safari on macOS.
*/
[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
/**
* 1. Correct the inability to style clickable types in iOS and Safari.
* 2. Change font properties to `inherit` in Safari.
*/
::-webkit-file-upload-button {
-webkit-appearance: button; /* 1 */
font: inherit; /* 2 */
}
/* Interactive
========================================================================== */
/*
* Add the correct display in Edge, IE 10+, and Firefox.
*/
details {
display: block;
}
/*
* Add the correct display in all browsers.
*/
summary {
display: list-item;
}
/* Misc
========================================================================== */
/**
* Add the correct display in IE 10+.
*/
template {
display: none;
}
/**
* Add the correct display in IE 10.
*/
[hidden] {
display: none;
}

29
content/css/post.css Normal file
View file

@ -0,0 +1,29 @@
.post {
width: 100%;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
margin-top: 70px;
}
.post > * {
max-width: var(--breakpoint-small);
}
.post > aside {
display: flex;
flex-direction: column;
margin-left: 20px;
margin-top: 20px;
margin-right: 20px;
}
.post > aside > a.button {
align-self: flex-start;
}
.post-main {
margin-left: 20px;
margin-right: 20px;
}

79
content/css/sections.css Normal file
View file

@ -0,0 +1,79 @@
/* Styles for the sections, mainly used on the start page, the portfolio and workflow page */
section {
display: flex;
justify-content: center;
color: #ffffff;
background-color: rgb(82, 76, 121);
padding-top: 128px;
padding-bottom: 128px;
}
section:nth-child(odd) {
background-color: #342e37;
}
section:nth-child(even) {
background-color: #342e37;
}
.section-content {
max-width: 1024px;
gap: 20px;
display: flex;
justify-content: space-between;
align-items: center;
margin-top: 0px;
margin-bottom: 0px;
margin-left: 64px;
margin-right: 64px;
}
.section-content div {
max-width: 50%;
display: flex;
row-gap: 14px;
flex-direction: column;
justify-content: flex-start;
align-items: flex-start;
}
section h1,
section p {
text-shadow: 0px 0px 3px rgba(0, 0, 0, 0.8);
}
section p {
padding: 0px;
margin: 0px;
line-height: 1.8em;
font-weight: 600;
}
section h1 {
margin-top: 0px;
margin-bottom: 0px;
}
.section-background {
background-size: cover;
object-fit: cover;
background-position: center;
backdrop-filter: blur(3px);
}
@media screen and (max-width: 512px) {
/* Make the left-to-right sections top-to-bottom */
.section-content {
align-items: flex-start;
}
.section-content div {
max-width: 100%;
}
.section-content {
flex-direction: column;
}
}

51
content/css/style.css Normal file
View file

@ -0,0 +1,51 @@
@import url('./utilities.css');
@import url('./fonts.css');
@import url('./normalize.css');
@import url('./variables.css');
@import url('./header.css');
@import url('./footer.css');
@import url('./sections.css');
@import url('./hero.css');
@import url('./post.css');
html,
body {
color: #ffffff;
font-family: 'Montserrat', sans-serif;
background-color: #342e37;
}
/* Button */
button,
.button {
display: inline-block;
box-sizing: border-box;
border: none;
color: inherit;
text-decoration: none;
padding: 12px 16px;
transition: background-color 0.25s ease-in-out, border 0.25s ease-in-out;
border-radius: 8px;
font-weight: bold;
cursor: pointer;
-webkit-backdrop-filter: blur(4px);
backdrop-filter: blur(4px);
background-color: rgba(0, 0, 0, 0.7);
border: 3px solid rgba(0, 0, 0, 0.7);
}
button:hover,
.button:hover,
button:focus-visible,
.button:focus-visible {
background-color: rgba(60, 60, 60, 0.7);
border: 3px solid rgba(60, 60, 60, 0.7);
}
.inline-button {
color: rgb(51, 100, 224);
}
a {
color: inherit;
}

23
content/css/utilities.css Normal file
View file

@ -0,0 +1,23 @@
:root {
--distance-small: 4px;
--distance-medium: 8px;
--distance-large: 12px;
--distance-huge: 16px;
}
.content-padding {
padding: var(--distance-large);
}
.container {
max-width: var(--breakpoint);
margin-left: 32px;
margin-right: 32px;
}
.flex {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}

14
content/css/variables.css Normal file
View file

@ -0,0 +1,14 @@
:root {
--white: #ffffff;
--black: #000000;
--background-color: #393e46;
--dark-background-color: #2d3138;
--text-color: #eeeeee;
--accent: #00adb5;
--border-radius: 8px;
--breakpoint-small: 512px;
--breakpoint: 1024px;
}

64
content/index.njk Normal file
View file

@ -0,0 +1,64 @@
---
layout: layouts/base.njk
title: luca-junge.de
permalink: /index.html
---
<section class="hero">
<div class="section-content">
<div>
<h1>Welcome to my website!</h1>
</div>
<div>
<p>
I'm Luca Junge, a web developer specializing on interactive progressive web apps and 3D content.</p>
</div>
</div>
</section>
<section class="section-background" style="background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('/images/museum2_mobile.jpg');">
<div class="section-content">
<div>
<h1>Interactive Applications & Games</h1>
</div>
<div>
<p>Most of my work is created using standard web technologies in combination with open source libraries like three.js.</p>
<p>For more demanding projects I am using the Godot Engine.</p>
</div>
</div>
</section>
<section class="section-background" style="display: none; background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('/images/portfolio_mobile.jpg');">
<div class="section-content">
<div>
<h1>Open Source Workflow</h1>
</div>
<div>
<p>My projects rely on various open source projects like Meshlab, Blender, Meshroom, Godot Engine and more.</p>
</div>
</div>
</section>
<section class="section-background" style="background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('/images/portfolio_mobile.jpg');">
<div class="section-content">
<div>
<h1>My Portfolio</h1>
</div>
<div>
<p>I want to publish and show some of my demo projects here. Feel free to check them out and look at the source code.</p>
<a class="button" href="/portfolio/">Take a look at my projects</a>
</div>
</div>
</section>
<section class="section-background" style="background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('/images/blog_mobile.jpg');">
<div class="section-content">
<div>
<h1>My Blog</h1>
</div>
<div>
<p>Whenever I see a new technique or discover something useful, I'm writing a blog post about it!</p>
<a class="button" href="/blog/">Visit</a>
</div>
</div>
</section>

12
content/portfolio.njk Normal file
View file

@ -0,0 +1,12 @@
---
layout: layouts/base.njk
title: "My Portfolio"
permalink: /portfolio/index.html
---
<section class="section-background" style="background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('/images/under-construction_mobile.jpg');">
<div class="section-content">
<p>My Portfolio is currently under construction</p>
</div>
</section>

21
content/pwa.webmanifest Normal file
View file

@ -0,0 +1,21 @@
{
"name": "Luca Junge PWA",
"short_name": "Luca Junge PWA",
"description": "The website of Luca Junge as a Progressive Web App",
"icons": [
{
"src": "/assets/images/logo.png",
"sizes": "32x32",
"type": "image/png"
},
{
"src": "/assets/images/logo.png",
"sizes": "512x512",
"type": "image/png"
}
],
"start_url": "/",
"display": "standalone",
"theme_color": "#4C0026",
"background_color": "#4C0026"
}