v0.01 — stardate

Design for survival

Elon Musk, CEO van Tesla presenteerde vorige week een (soort van) kogelwerende, grijze kolos die doet denken aan vervoersmiddelen uit dystopische sci-fi films als Back to the Future en Blade Runner 2049: de Cybertruck.

Bij de website Vice zagen ze een auto ontworpen voor een selecte groep vermogenden, die ervan uitgaan dat er een kans is dat hun geciviliceerde wereld op een dag veranderd in oorlogsgebied (linkje).

“bashing the truck and chucking items at it on stage felt like Musk trying to prove that it can withstand the proletariat's molotovs when the revolution comes.”

Nu is van Elon Musk is bekend dat een sombere blik op de toekomst de drijfveer is achter veel van zijn projecten: Space X om naar Mars te kunnen vertrekken als het hier echt fout gaat, duurzame Tesla’s om wat tijd te rekken en mocht Mars niet lukken een Powerwall en Solarglass roofs om ‘off te grid’ lekker nog even te kunnen ‘surviven’. Dus dat de Cybertruck er uit ziet als een Hummer voor Star Trek fans verbaast niet heel erg. Elon Musk is trouwens niet de enige: volgens Vox.com is het bouwen van ondergrondse bunkers het nieuwe ding onder Silicon Valley miljardairs - linkje).

Maar wat mij vooral opviel, is het grote contrast met de zelfrijdende auto van Google. Het ontwerp van de Google Car was vriendelijk, aaibaar en vooral onschadelijk. Logisch als je het publiek wilt laten wennen aan onbekende en voor veel mensen wat enge techniek.

De ontwerpers van de Cybertruck pakken het wat minder subtiel aan: hun ontwerp is een radicale breuk met de gewoonte technologie te verpakken in een onschuldig uitziend jasje. Kennelijk leven we in andere tijden.

Het zal me benieuwen of hiermee een design trend gezet is, en de komende jaren meer bedrijven producten met zo'n *dystopisch design* op de markt gaan brengen. Tesla claimt dat er inmiddels 250.000 pre-orders zijn gevraagd, dus er lijkt wel een markt voor te zijn.

Captains log

Date
Done
Learned
Hr
03-10-2021
Scribble animations & home onload
Debugged scribble animations.
Isolating timelines makes debugging way faster.
2
Added home onload animation.
Trigger after assets load, not just DOMContentLoaded.
1
26-07-2021
Reader page
Connected Airtable API to new 'reader' page.
Airtable paginates results — need to handle the offset or you'll miss records.
3
Designed and styled the page.
Design with a fixed dataset first, hook up the API after.
2
24-07-2021
Maker page resize
Added onResize event to maker page so titles stay centered.
GSAP breaks CSS positioning.
1
05-07-2021
Date script
Wrote script to automatically display stardate and copyright date.
JS months are zero-indexed. Classic.
2
24-06-2021
Photo selection & title animations
Photo selection and editing.
Less photos, more impact.
2
Title animations.
Conflict between CSS positioning and GSAP is still tricky.
1
23-06-2021
Draggable photos
Made photos draggable.
Went easier than expected.
1
19-06-2021
ScrollTrigger & responsive styling
Implemented ScrollTrigger on maker page.
scrub ties animation progress to scroll position — good for parallax stuff.
3
Responsive fluid styling.
Fluid sizing + CSS custom properties = much less breakpoint juggling.
2
13-06-2021
Stylesheet structure
Refactored stylesheet structure using @import (postcss-import plugin).
Split files are so much easier to navigate than one giant CSS file.
1
Base styling for maker page.
Layout first, cosmetics later. Saves a lot of rework.
2
12-06-2021
CSS & layout refactor
Structured style.css by separating layout, typography and cosmetics.
Separation of concerns in CSS makes debugging way faster.
2
Updated layout content wrapper for more flexibility and added utility classes.
Keep utility classes single-purpose or they get unpredictable fast.
1
10-06-2021
PostCSS & Git
Configured PostCSS to compile all CSS files. Updated config in package.json and eleventy.js.
A glob (*.css) in the build command saves having to list every file manually.
2
Added mixin support to PostCSS via postcss-mixins.
Works like Sass mixins. No need to switch preprocessors.
1
Figured out how to stage files individually and make separate commits in Git.
Cleaner commits, less chaos in the history.
1
30-05-2021
GSAP tooling
Added GSAP code hinting and linting to VS Code.
Autocomplete for GSAP methods saves a surprising amount of time.
1
29-05-2021
Animation & positioning
Researched animation layout, positioning and performance. Did Codepen experiments.
Differences between animating left/top/right/bottom vs translateX/translateY, and how this translates to GSAP values.
3
22-05-2021
Changelog layout and animation
Animated changelog width and position based on vw.
Use the same positioning system in GSAP as in your stylesheet, otherwise unexpected effects. Don't set left: 100vw in CSS and then use x: 300 in GSAP.
1
Fixed scrolling changelog layover (codepen) using GSAP DrawSVG plugin.
Using only opacity for a layover is a bad idea — the element stays clickable when invisible. Always place an actual DOM element on top.
2
Designed homepage scribbles.
Colors are hard.
1
27-03-2021
SVG animations homepage
Attempted to implement SVG animations in Eleventy.
Failed. Eleventy appears to modify SVG markup during build. To be continued.
2
Animated 'scribbles' SVGs (codepen) using GSAP DrawSVG plugin.
DrawSVG cannot animate external SVGs. Inline SVGs cannot be used as CSS backgrounds or pseudo-elements.
2
Designed homepage scribbles.
Colors are hard.
1
22-03-2021
CSS Grid
Styled changelog table using CSS Grid.
CSS Grid positioning.
2
Designed changelog table.
What looks simple in design is sometimes hard in practice.
1
11-03-2021
Templating
Implemented Nunjucks templates and partials for footer, header, content and changelog.
Terminal error messages save a lot of time — if you actually read them. Both .md and .html files work as a base. What frontmatter is.
3
Researched templating languages.
How Nunjucks and Liquid work and how to set up a basic structure.
1
25-02-2021
Motion!
Animated menu, changelog and links.
GSAP x:0 is not absolute 0 — it's 0 from the element's starting position in the DOM. If CSS sets left: 100px, GSAP x:0 animates to 100px.
4
22-02-2021
Link animations & stagger
Animated Captain's log link.
How to remove an event listener using removeEventListener.
2
Added stagger animation to changelog.
GSAP stagger animates a list in sequence with barely any code.
1
18-02-2021
Setting up typographic foundation
Implemented fonts and styling for responsive typography.
Nothing new.
2
Set up a fluid typography system. Worked on homepage text and styling.
How to use clamp() to scale type fluidly between a min and max.
4
17-02-2021
Setting up personal site framework
Set up Eleventy as static site generator.
How to configure Eleventy using the terminal.
4
Gitlab setup.
What an SSH key is and why you need one. How to commit directly from VS Code.
2