About
A garden is a place between wilderness and order. A place where both flowers and weeds grow and where new connections take root.
Since the early days of the internet, the garden has been a popular metaphor for concepts of the digital
world: Between dense jungle and rigid structure lies the “Hypertext Garden” [Mark Bernstein, 1998], which
invites exploration but also helps navigating through its different paths. The shortest path does not always
have to be the best.
“Digital gardening” can also be a way of building personal knowledge and new connections in a digital space
–
between chaos and cultivation. “[Digital] Gardens present information in a richly linked landscape that
grows
slowly over time”, as Maggie Appleton describes it in [A Brief History & Ethos of the Digital Garden, 2020].
In this workshop we will explore the metaphor of the digital garden by coding our own plants with HTML and CSS. The workshop will consist of an introduction to the basics of HTML / CSS, different inputs, coding sessions and consultations. Individually or in groups you will grow code and plants, which we will publish at the end in a common digital garden. No coding knowledge is required. Students without coding experience are especially encouraged to participate. There will be different entry points for different experience levels.
A workshop at HBK Braunschweig by Katharina Nejdl and Luise Hoffmann. This workshop is sponsored by the HBK Braunschweig Gleichstellungsbüro.Assignment
Workshop: 09.–12.10. | 10–18:00
Deadline / Upload: 12.10. 12:00
Presentation & Brunch: 12.10. 13:00–16:00
Code a plant* in HTML & CSS.
Where to start
Depending on your experience and preference, there are different points to start from:
-
HTML Boilerplate
if you want to start an entry from scratch, start with an empty HTML / CSS file
[Github: HTML Boilerplate]
[Codesandbox: HTML Boilerplate] -
Starter Kits
if you want to start from modifying existing code, choose one of the coding starter kits
[Github: All Starter Kits]
[Codesandbox: 01. Hypertext Garden / HTML]
[Codesandbox: 02. CSS Thistle / CSS I]
[Codesandbox: 03. Growing Animations / CSS II]
[Codesandbox: 04. Growing Media Queries / CSS II]
[Codesandbox: 05. Growing SVGs / CSS II]
Research
- Digital Garden
- A Brief History & Ethos of the Digital Garden – Maggie Appleton
- Hypertext Gardens – Mark Bernstein
- On the Necessity of Gardening
- On the Necessity of Gardening – An ABC of Art, Botany and Cultivation
- Botanical Revolution – Centraal Museum
- Botany and Art
- Flowers Forever / [Audioguide]
- The Botanical Mind: Art, Mysticism and The Cosmic Tree
- Botany and Colonialism
- From the shadow of Maria Sibylla Merian
- The Coloniality of Planting
Contact
-
Sign-Up for Coding Support / Consultations
consultations in case you need support with a coding problem or want to talk about your concept a bit longer
GoogleDoc -
Dropbox
this is where we share files / you can find the starter kits here
Dropbox -
Contact
Katharina Nejdl
katharina.nejdl@googlemail.com
[Typeface: Dark Academia by Céline Hurka]
Monday
10:00–11:00 | Intro
- Course-Info
- Topic-Info
- Getting to know each other (on paper / in the room)
Theory
- Between complete wilderness and rigid structure lies the hypertext garden, which invites exploration but also helps navigation with various paths.
- „The shortest path is not always the best.“ Hypertext Gardens – Mark Bernstein
- „[Digital] Gardens present information in a richly linked landscape that grows slowly over time.“ (via Appleton)
- „Every walk through the garden creates new paths, new meanings, and when we add things to the garden we add them in a way that allows many future, unpredicted relationships.“ The Garden and the Stream – Mike Caulfield
- „Gardens are never finished, they're constantly growing, evolving, and changing. […] [They] are imperfect by design [and show] the perfect balance of chaos and cultivation. […] Gardening is about claiming a small patch of the web for yourself […].“ A Brief History & Ethos of the Digital Garden – Maggie Appleton
11:00–11:30 | Setup
- Visual Studio Code Editor [Download]
- open folder in VS Code
-
create index.html
→ write / select HTML5 structure - open HTML page in browser
- edit, save & reload
11:30–12:30 | Input: Hypertext Garden [HTML]
Exercise: Hypertext Garden
- Describe your own imaginative garden. Where is the entrance? Which paths can you take? Create at least one hyperlink that links to a new page.
See [W3school: HTML element references] for different HTML tags and their documentation.
Common Mistakes
- unclosed elements
- badly nested elements
- unclosed attributes
- you can check your HTML-code for errors here
- did you save? is your live-server working?
- try inspecting, googling or ask a friend
Cheat Sheet: HTML
[Web Essentials: HTML / CSS Einführung]
[References: HTML elements]
[CodeAcademy: Learn HTML tutorial]
- file setup
- structure: html, body, main, nav, ...
- head (meta, title, css), js
- HTML boilerplate
- syntax
<tag> content </tag>
- hypertext
<a href="http://link.com" target="_blank"> This is the hyperspace. </a>
- tags
13:30–14:30 | Input: CSS Thistle [CSS I]
Exercise: Research CSS Properties
- Go to [CSS-TRICKS: CSS Properties].
- Pick one or more CSS properties, look at the documentation and try them out.
- Explain your favorite property to your neighbour.
Tip: Borders / Background-color
- Can you tell what size your elements take up? Guess.
- Give all items borders.
* {
borders: 1px solid black;
} - Give your elements different background-colors to differentiate them.
div {
background-color: red;
} - How good was your guess?
Common Mistakes
- forgot colon : after css property, semicolon ; at end of line or closing curly bracket }
- spelling mistake in property / attribute
(e.g. colour instead of color ) - wrong selector (e.g. .container instead of #container)
- you can check your CSS-code for errors here
- did you save? is your live-server working?
- try inspecting, googling or ask a friend
Cheat Sheet: CSS I
[References: CSS properties]
[CodeAcademy: Learn CSS tutorial]
- HTML Recap
- syntax
div {
color: red;
} - where?
- inline
- inside style tag
- external css file
- .classes & #ids
<div id="subtitle" class="text"> Some content inside. </div>
- properties
14:30–15:30 | Collective Coding
- Individual Project
- Coding Support / Consultations [Sign Up]
16:00–17:30 | Collective Coding
- Individual Project
- Coding Support / Consultations [Sign Up]
17:30–18:00 | Get Together
[Glossary Term: Weed]
[p. 175, On the Necessity of Gardening] [Rumiko Hagiwara, Weed, 2016, site-specific installation, title plate, weeds]
- Mood
- Favorite HTML / CSS elements
Tuesday
10:00–10:30 | Intro
Showcases
-
- Rafaël Rozendaal: Almost Calm
[More Websites by Rafaël Rozendaal]
- Modell und Ruine
- Modell und Ruine [Hoverstates]
- Modell und Ruine [Web Archive]
[Glossary Term: Grafting]
[p. 54, On the Necessity of Gardening] [Tetsumi Kudo, Grafted Garden, 1971, installation]
[David Pfifferling, Form follows flowers, illustrations]
10:30–10:45 | Setup II
- Inspection
- VS Extensions [Live-Server]
10:45–12:30 | Collective Coding
- Individual Project
- Coding Support / Consultations [Sign Up]
13:30–14:30 | Input: Growing Code [CSS II]
Starterkit
Exercise: Growing code
- Let something grow or move in your garden through animation or hover states.
[Reference: CSS animations]
[Reference: Hover]
Cheat Sheet: CSS II
[Game: Flexbox froggy]
[CodeAcademy: Learn indermediate CSS]
- HTML / CSS Recap
- media queries
when the browser is smaller than 800px (mobile / tablet):@media screen and (max-width: 800px) {
.element {
font-size: 18px;
}
}@media screen and (min-width: 600px) and (max-width: 1200px){
.element {
font-size: 25px;
}
}@media (hover: none){
.element:hover {
color: inherit;
}
} - advanced positioning
- flex-box
[Video: CSS Flexbox in 100 Seconds]
[Reference: A Complete Guide to Flexbox] - css-grid
[Video: Build a Classic Layout FAST in CSS Grid]
[Reference: A Complete Guide to Grid]
- flex-box
- css-variables
:root {
--gapS: 5px;
--gapM: 10px;
--gapL: 20px;
--highlightColor: #0000FF;
}
.element{
color: var(--highlightColor);
margin: var(--gapS);
} - display
.element {
display: block;
}
.hidden {
display: none;
} - transformation
.element {
transform: translate(50%, 50%);
}.element {
transform: translate(50%, 50%) rotateX(-12deg);
} - transition & animation
.element {
width: 200px;
transition: width 0.3s ease;
}
.element:hover {
width: 500px;
}.element {
width: 200px;
color: red;
transition: width 0.3s, color 0.5s;
}
.element:hover {
width: 500px;
color: blue;
}
14:30–15:00 | Green Sketching
-
Draw a quick sketch on paper for each of the prompts. [1 min for each
round]
EN
- Sketch a plant.
- Sketch a plant using only rectangles.
- Sketch a plant made only of circles.
- What does the flower of your plant look like?
- Visualise the growth of your plant.
- How does the plant look withered?
- Sketch a detail of a plant, e.g. a cross-section or a plant under a microscope. microscope.
- What patterns does your plant have?
- What sounds does your plant make?
- In which garden does your plant live?
DE
- Skizziere eine Pflanze.
- Skizziere ein Pflanze nur aus Rechtecken.
- Skizziere eine Pflanze nur aus Kreisen.
- Wie sieht die Blüte deiner Pflanze aus?
- Visualisiere das Wachstum deiner Pflanze.
- Wie sieht die Pflanze verwelkt aus?
- Skizziere ein Detail einer Pflanze, z.B. ein Querschnitt oder eine Pflanze unter dem Mikroskop.
- Welche Muster hat deine Pflanze?
- Welche Geräusche macht deine Pflanze?
- In welchem Garten lebt deine Pflanze?
15:00–16:00 | Collective Coding
- Individual Project
- Coding Support / Consultations [Sign Up]
16:00–16:30 | Get Together
- Mood
- Show & Tell
17:00–18:00 | Public Lecture
- Hörsaal 21/007
- [Talk]
Wednesday
10:00–10:30 | Intro
[Glossary Term: On Botany and Colonialism]
[p. 99, On the Necessity of Gardening] [From the shadow of Maria Sibylla Merian]
10:30–12:30 | Collective Coding
- Individual Project
- Coding Support / Consultations [Sign Up]
13:30–15:30 | Collective Coding
- Individual Project
- Coding Support / Consultations [Sign Up]
16:00–17:30 | Collective Coding
- Individual Project
- Coding Support / Consultations [Sign Up]
17:30–18:00 | Get Together
- Mood
- Show & Tell
- Plan Presentation / Brunch
Thursday
10:00–12:00 | Finish & Upload
- “Finish” Code
- Upload [Dropbox]
12:30–13:00 | Brunch Preparations
- Brunch Preparations
13:00–15:00 | Presentation & Brunch
- Presentation
- Brunch
15:00–15:30 | Feedback
- Mood
-
Feedback
[GoogleForm]