portfolio content, styling
Build / Deploy (push) Failing after 2m24s Details

This commit is contained in:
Rik Berkelder 2025-02-13 20:56:23 +01:00
parent afcdd8ed12
commit 2d182e6391
70 changed files with 367 additions and 120 deletions

View File

@ -0,0 +1,6 @@
---
layout: base.njk
---
<div class="container">
{{content | safe}}
</div>

View File

@ -58,11 +58,11 @@
{{navItem("Instagram", "https://instagram.com/RikBerkelder", false)}} {{navItem("Instagram", "https://instagram.com/RikBerkelder", false)}}
</div> </div>
</div> </div>
</div> </div>
{{content | safe}}
</div> </div>
{{content | safe}}
<script src="//instant.page/5.2.0" type="module" <script src="//instant.page/5.2.0" type="module"
integrity="sha384-jnZyxPjiipYXnSU0ygqeac2q7CVYMbh84q0uHVRRxEtvFPiQYbXWUorga2aqZJ0z"></script> integrity="sha384-jnZyxPjiipYXnSU0ygqeac2q7CVYMbh84q0uHVRRxEtvFPiQYbXWUorga2aqZJ0z"></script>
<script data-goatcounter="https://goatcounter.riksolo.com/count" async <script data-goatcounter="https://goatcounter.riksolo.com/count" async

View File

@ -0,0 +1,20 @@
---
layout: base.njk
---
<div class="portfolio-detail">
<div class="portfolio-detail-header container">
<h1>{{title}}</h1>
<span>{{description}}</span>
<a href="/portfolio">&lt;- Back to overview</a>
<span>
{{content | safe}}
</span>
</div>
<div class="portfolio-detail-images">
{% for image in data.images %}
<img src="{{image}}" alt="" loading="lazy" />
{% endfor %}
</div>
</div>

View File

@ -1,4 +1,4 @@
{ {
"tags": "page", "tags": "page",
"layout": "base.njk" "layout": "base-container.njk"
} }

View File

@ -3,7 +3,7 @@ title: 'Portfolio'
permalink: "/portfolio/" permalink: "/portfolio/"
--- ---
<h1>Portfolio</h1> <h1>Portfolio</h1>
{% for portfolioItem in collections.portfolio %} {% for portfolioItem in collections.portfolioSorted %}
<div class="portfolio-list-item"> <div class="portfolio-list-item">
<div class="portfolio-list-item-header"> <div class="portfolio-list-item-header">
<h2>{{portfolioItem.data.title}}</h2> <h2>{{portfolioItem.data.title}}</h2>
@ -11,9 +11,9 @@ permalink: "/portfolio/"
<a href="{{portfolioItem.data.page.url | safe}}">See More -></a> <a href="{{portfolioItem.data.page.url | safe}}">See More -></a>
</div> </div>
<div class="flex"> <div class="flex">
{% for image in portfolioItem.data.images | slice(3) %} {% for image in portfolioItem.data.images.slice(0,3) %}
<img src="{{image}}" alt="" /> <img src={{image}} alt="" width="400" />
{% endfor %} {% endfor %}
</div> </div>
</div> </div>

BIN
content/portfolio/femina/01.jpg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
content/portfolio/femina/02.jpg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
content/portfolio/femina/03.JPG (Stored with Git LFS) Normal file

Binary file not shown.

BIN
content/portfolio/femina/04.jpg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
content/portfolio/femina/05.jpg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
content/portfolio/femina/06.jpg (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,5 @@
---
order: 4
title: ISZA - Femina
description: Adapting abstract ideas from the artist into an impactful one-off festival show, with limited preparation time and a short timeframe on location.
---

BIN
content/portfolio/luxorlive/1.JPG (Stored with Git LFS) Normal file

Binary file not shown.

BIN
content/portfolio/luxorlive/2.JPG (Stored with Git LFS) Normal file

Binary file not shown.

BIN
content/portfolio/luxorlive/4.JPG (Stored with Git LFS) Normal file

Binary file not shown.

BIN
content/portfolio/luxorlive/5.JPG (Stored with Git LFS) Normal file

Binary file not shown.

BIN
content/portfolio/luxorlive/6.JPG (Stored with Git LFS) Normal file

Binary file not shown.

BIN
content/portfolio/luxorlive/9.jpg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
content/portfolio/luxorlive/91.jpg (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -1,4 +1,5 @@
--- ---
order: 2
title: Luxor Live title: Luxor Live
description: Delivering dynamic, on-the-spot lighting for visiting acts without their own lighting designer, and ensuring a smooth experience with the house rig for visiting technicians. description: Delivering dynamic, on-the-spot lighting for visiting acts without their own lighting designer, and ensuring a smooth experience with the house rig for visiting technicians.
--- ---

View File

@ -3,12 +3,16 @@ import * as fs from 'node:fs';
const conf = { const conf = {
tags: "portfolio", tags: "portfolio",
layout: "base.njk", layout: "portfolio.njk",
eleventyComputed: { eleventyComputed: {
images(data) { images(data) {
const dir = path.dirname(data.page.inputPath); const dir = path.dirname(data.page.inputPath);
const images = fs.readdirSync(dir).filter(file => ['.png', '.jpg', '.jpeg', '.JPG'].includes(path.extname(file).toLowerCase())).map(image => `${data.page.url}${image}`); const images = fs.readdirSync(dir)
.filter(file => ['.png', '.jpg', '.jpeg', '.JPG'].includes(path.extname(file)))
.sort()
.map(image => `${data.page.url}${image}`);
console.log(images);
return images; return images;
}, },

BIN
content/portfolio/prijsvdvrijheid/01.JPG (Stored with Git LFS) Normal file

Binary file not shown.

BIN
content/portfolio/prijsvdvrijheid/02.JPG (Stored with Git LFS) Normal file

Binary file not shown.

BIN
content/portfolio/prijsvdvrijheid/03.JPG (Stored with Git LFS) Normal file

Binary file not shown.

BIN
content/portfolio/prijsvdvrijheid/04.JPG (Stored with Git LFS) Normal file

Binary file not shown.

BIN
content/portfolio/prijsvdvrijheid/05.JPG (Stored with Git LFS) Normal file

Binary file not shown.

BIN
content/portfolio/prijsvdvrijheid/06.JPG (Stored with Git LFS) Normal file

Binary file not shown.

BIN
content/portfolio/prijsvdvrijheid/07.JPG (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,5 @@
---
order: 5
title: "Prijs v.d. Vrijheid"
description: Emotive lighting design with tight limitations for a musical performed on location in a church.
---

BIN
content/portfolio/sowulo/1.JPG (Stored with Git LFS) Normal file

Binary file not shown.

BIN
content/portfolio/sowulo/1.jpg (Stored with Git LFS)

Binary file not shown.

BIN
content/portfolio/sowulo/2.JPG (Stored with Git LFS)

Binary file not shown.

BIN
content/portfolio/sowulo/2.jpg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
content/portfolio/sowulo/3.jpg (Stored with Git LFS)

Binary file not shown.

BIN
content/portfolio/sowulo/4.jpg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
content/portfolio/sowulo/5.jpg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
content/portfolio/sowulo/6.jpg (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -1,4 +1,5 @@
--- ---
order: 1
title: Sowulo title: Sowulo
description: Designing a theatrical, atmospheric and detailed show while efficiently adapting to both venues of varying sizes and large festivals with very short on-site preparation times description: Designing a theatrical, atmospheric and detailed show while and bringing it to a variety venues and festivals of varying sizes with very short on-site preparation times.
--- ---

BIN
content/portfolio/tinderella/20240126_202807.JPG (Stored with Git LFS) Normal file

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

BIN
content/portfolio/tinderella/20240126_212503.JPG (Stored with Git LFS) Normal file

Binary file not shown.

BIN
content/portfolio/tinderella/20240126_214152.JPG (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,5 @@
---
order: 6
title: Tinderella
description: Minimal but gripping lighting for a deeply personal solo theatre show. Delimiting scenes and building atmosphere without distracting from the content
---

BIN
content/portfolio/tivolivredenburg/001.JPG (Stored with Git LFS) Normal file

Binary file not shown.

BIN
content/portfolio/tivolivredenburg/002.JPG (Stored with Git LFS) Normal file

Binary file not shown.

BIN
content/portfolio/tivolivredenburg/003.JPG (Stored with Git LFS) Normal file

Binary file not shown.

BIN
content/portfolio/tivolivredenburg/004.JPG (Stored with Git LFS) Normal file

Binary file not shown.

BIN
content/portfolio/tivolivredenburg/005.JPG (Stored with Git LFS) Normal file

Binary file not shown.

BIN
content/portfolio/tivolivredenburg/006.JPG (Stored with Git LFS) Normal file

Binary file not shown.

BIN
content/portfolio/tivolivredenburg/007.JPG (Stored with Git LFS) Normal file

Binary file not shown.

BIN
content/portfolio/tivolivredenburg/008.JPG (Stored with Git LFS) Normal file

Binary file not shown.

BIN
content/portfolio/tivolivredenburg/009.JPG (Stored with Git LFS) Normal file

Binary file not shown.

BIN
content/portfolio/tivolivredenburg/010.JPG (Stored with Git LFS) Normal file

Binary file not shown.

BIN
content/portfolio/tivolivredenburg/011.JPG (Stored with Git LFS) Normal file

Binary file not shown.

BIN
content/portfolio/tivolivredenburg/012.JPG (Stored with Git LFS) Normal file

Binary file not shown.

BIN
content/portfolio/tivolivredenburg/013.JPG (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,5 @@
---
order: 3
title: TivoliVredenburg
description: Creative and fitting lighting for a wide variety of productions. From sales to classical to jazz to metal, across 5 stages in the venue.
---

BIN
content/portfolio/willemeen/01.JPG (Stored with Git LFS) Normal file

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

BIN
content/portfolio/willemeen/02.JPG (Stored with Git LFS) Normal file

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

BIN
content/portfolio/willemeen/03.JPG (Stored with Git LFS) Normal file

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 MiB

BIN
content/portfolio/willemeen/05.JPG (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,5 @@
---
order: 7
title: Willemeen
description: Small venue, big looks.
---

View File

@ -22,116 +22,167 @@ body {
background-color: $grey-vdark; background-color: $grey-vdark;
font-family: $default-font-family; font-family: $default-font-family;
line-height: 1.3rem; line-height: 1.3rem;
margin: 0;
margin-top: 0.2rem;
.container { .container {
max-width: 900px; max-width: 900px;
margin-left: auto; margin-left: auto;
margin-right: auto; margin-right: auto;
display: block; display: block;
}
.blog { .blog {
max-width: 700px; max-width: 700px;
margin-left: auto; margin-left: auto;
margin-right: auto; margin-right: auto;
&-header { &-header {
&>* { &>* {
display: block; display: block;
}
a,
a:visited {
color: $primary;
}
small {
margin-top: 0.1em;
margin-bottom: 0.4em;
}
} }
&-content { a,
border-top: 1px solid $grey-medium; a:visited {
margin-top: 1em; color: $primary;
} }
} small {
margin-top: 0.1em;
.portfolio-list-item { margin-bottom: 0.4em;
padding: 0.5rem;
background-color: $grey-dark;
margin-top: 1rem;
.flex {
flex-wrap: nowrap;
align-items: center;
picture {
display: block;
height: 15rem;
img {
height: 100%;
max-height: 100%;
min-width: 100%;
object-fit: cover;
}
}
}
&-header {
margin-bottom: 0.3rem;
& * {
display: inline;
margin: 0;
padding: 0;
margin-right: 0.2rem;
}
a {
margin-left: auto;
float: right;
}
} }
} }
ol:not(ol *, ul *), &-content {
ul:not(ol *, ul *) { border-top: 1px solid $grey-medium;
margin-left: 0rem; margin-top: 1em;
margin-top: 0rem;
margin-bottom: 1rem;
padding-left: 1.5rem;
margin-right: 2rem;
list-style-position: outside;
}
ol ol,
ol ul,
ul ol,
ul ul {
padding-left: 1rem;
}
ol p,
ul p {
margin: 0.3rem 0rem;
display: inline;
}
ol {
list-style-type: decimal;
}
ul {
list-style-type: "- ";
} }
} }
.portfolio-list-item {
padding: 0.5rem;
background-color: $grey-dark;
margin-top: 1rem;
.flex {
flex-wrap: nowrap;
align-items: center;
width: 100%;
@media (max-width: 500px) {
flex-wrap: wrap !important;
}
picture {
display: block;
height: 15rem;
flex-grow: 1;
img {
height: 100%;
max-height: 100%;
min-width: 100%;
object-fit: cover;
}
}
}
&-header {
display: block;
width: 100%;
margin-bottom: 0.3rem;
& * {
display: inline;
margin: 0;
padding: 0;
margin-right: 0.2rem;
}
a {
margin-left: auto;
float: right;
}
}
}
.portfolio-detail {
width: 100vw;
&-header {
text-align: justify;
&>* {
display: block;
}
}
&-images {
display: flex;
flex-wrap: wrap;
margin-top: 1rem;
picture {
display: block;
height: 22vw;
flex-grow: 1;
max-width: 33.33%;
@media screen and (max-width: 1250px) {
height: 30vw;
max-width: 50%;
}
@media screen and (max-width: 750px) {
max-width: 100%;
height: 100%;
}
img {
max-height: 100%;
height: 100% !important;
min-width: 100%;
object-fit: cover;
}
}
}
}
ol:not(ol *, ul *),
ul:not(ol *, ul *) {
margin-left: 0rem;
margin-top: 0rem;
margin-bottom: 1rem;
padding-left: 1.5rem;
margin-right: 2rem;
list-style-position: outside;
}
ol ol,
ol ul,
ul ol,
ul ul {
padding-left: 1rem;
}
ol p,
ul p {
margin: 0.3rem 0rem;
display: inline;
}
ol {
list-style-type: decimal;
}
ul {
list-style-type: "- ";
}
figure { figure {
background-color: $grey-dark; background-color: $grey-dark;
display: inline-block; display: inline-block;
@ -234,18 +285,18 @@ body {
padding: 0.1rem 0.4rem; padding: 0.1rem 0.4rem;
display: inline-block; display: inline-block;
} }
}
.d-inline-block { .d-inline-block {
display: inline-block; display: inline-block;
} }
img { img {
max-width: 100%; max-width: 100%;
&[width][height] { &[width][height] {
height: auto; height: auto;
}
} }
} }

View File

@ -29,11 +29,13 @@ export default async function (eleventyConfig) {
}); });
//Images //Images
eleventyConfig.addPlugin(eleventyImageTransformPlugin); eleventyConfig.addPlugin(eleventyImageTransformPlugin, {
eleventyConfig.addShortcode("figure", (url, alt, caption) => { widths: ["700"]
});
eleventyConfig.addShortcode("figure", (url, alt, caption, width) => {
return ` return `
<figure> <figure>
<img src="${url}" alt="${alt}" /> <img src="${url}" alt="${alt}" width="${width || "700"}" />
<figcaption>${caption}</figcaption> <figcaption>${caption}</figcaption>
</figure> </figure>
`; `;
@ -52,6 +54,14 @@ export default async function (eleventyConfig) {
//File passthrough //File passthrough
eleventyConfig.addPassthroughCopy("content/robots.txt"); eleventyConfig.addPassthroughCopy("content/robots.txt");
// Portfolio sort
eleventyConfig.addCollection("portfolioSorted", (collectionsAPi) => {
const portfolio = collectionsAPi.getFilteredByTag("portfolio");
const sorted = portfolio.sort((a, b) => a.data.order - b.data.order);
return sorted;
});
} }
export const config = { export const config = {