diff --git a/_data/metadata.js b/_data/metadata.js index 8ccc1e9..727df62 100644 --- a/_data/metadata.js +++ b/_data/metadata.js @@ -1,6 +1,6 @@ export default { - title: "", - description: "", - url: "", + title: "FediZineFest", + description: "A zine sharing project for the fediverse", + url: "fedizinefest.fyi", author: "Lee Cattarin", }; diff --git a/_includes/footer.njk b/_includes/footer.njk index 5e0ea02..c7cecfd 100644 --- a/_includes/footer.njk +++ b/_includes/footer.njk @@ -1,2 +1,8 @@ diff --git a/_includes/head.njk b/_includes/head.njk index 7ae7887..6e84576 100644 --- a/_includes/head.njk +++ b/_includes/head.njk @@ -5,19 +5,20 @@ {% set pageTitle = metadata.title %} {% endif %} {{ pageTitle }} + + - + {# - @@ -27,6 +28,7 @@ + {# diff --git a/_includes/header.njk b/_includes/header.njk index 7837725..c5a7348 100644 --- a/_includes/header.njk +++ b/_includes/header.njk @@ -1,4 +1,15 @@
- +
diff --git a/_includes/zines.njk b/_includes/zines.njk new file mode 100644 index 0000000..67b16e6 --- /dev/null +++ b/_includes/zines.njk @@ -0,0 +1,11 @@ + diff --git a/css/main.css b/css/main.css index b41005f..0563e20 100644 --- a/css/main.css +++ b/css/main.css @@ -1,60 +1,201 @@ :root { color-scheme: light dark; + + --color-bg-light: #f0f0f0; + --color-text-light: #640054; + --color-header-light: #185370; + --color-warn-light: #fbcc0a; + + --color-bg-dark: #1f1f1f; + --color-text-dark: #91c73b; + --color-header-dark: #ff9b37; + --color-warn-dark: #540033; + + --color-text-main: #640054; + --color-text-header: #185370; } /* numbered components are from https://www.joshwcomeau.com/css/custom-css-reset/ */ -/* 1. Use a more-intuitive box-sizing model */ *, *::before, *::after { - box-sizing: border-box; + box-sizing: border-box; /* 1. Use a more-intuitive box-sizing model */ } -/* 2. Remove default margin */ *:not(dialog) { - margin: 0; + margin: 0; /* 2. Remove default margin */ +} + +*:focus-visible { + outline: .2rem solid light-dark(var(--color-header-light), var(--color-header-dark)); + outline-offset: .15rem; + background-color: light-dark(var(--color-header-light), var(--color-header-dark)); +} + +html { + height: 100%; } -/* 3. Enable keyword animations */ @media (prefers-reduced-motion: no-preference) { html { - interpolate-size: allow-keywords; + interpolate-size: allow-keywords; /* 3. Enable keyword animations */ } } -body { - /* 4. Increase line-height */ - line-height: 1.5; - /* 5. Improve text rendering */ - -webkit-font-smoothing: antialiased; -} - -/* 6. Improve media defaults */ -img, picture, video, canvas, svg { - display: block; - max-width: 100%; - height: auto; -} - -/* 7. Inherit fonts for form controls */ -input, button, textarea, select { - font: inherit; -} - -/* 8. Avoid text overflows */ -p, h1, h2, h3, h4, h5, h6 { - overflow-wrap: break-word; -} - -/* 9. Improve line wrapping */ -p { - text-wrap: pretty; -} -h1, h2, h3, h4, h5, h6 { - text-wrap: balance; -} - -/* - 10. Create a root stacking context -*/ #root, #__next { - isolation: isolate; + isolation: isolate; /* 10. Create a root stacking context */ +} + +body { + line-height: 1.5; /* 4. Increase line-height */ + -webkit-font-smoothing: antialiased; /* 5. Improve text rendering */ + font-family: sans-serif; + background-color: light-dark(var(--color-bg-light), var(--color-bg-dark)); + color: light-dark(var(--color-text-light), var(--color-text-dark)); + display: grid; + grid-template-rows: auto 1fr auto; + min-height: 100%; +} + +main { + width: 60%; + margin: 0 auto 2rem; +} + +@media (max-width: 1100px) { + main { + width: 80%; + } +} + +@media (max-width: 650px) { + main { + width: 92%; + } +} + +img, picture, video, canvas, svg { + display: block; /* 6. Improve media defaults */ + max-width: 100%; /* 6. Improve media defaults */ + height: auto; /* 6. Improve media defaults */ + margin: 0 auto; +} + +input, button, textarea, select { + font: inherit; /* 7. Inherit fonts for form controls */ +} + +p, h1, h2, h3, h4, h5, h6 { + overflow-wrap: break-word; /* 8. Avoid text overflows */ +} + +h1, h2, h3, h4, h5, h6 { + text-wrap: balance; /* 9. Improve line wrapping */ + color: light-dark(var(--color-header-light), var(--color-header-dark)); + font-weight: bold; + line-height: 105%; +} + +h1 { + margin: 5rem 0 2rem; + font-size: 3rem; + text-align: center; +} + +@media (max-width: 650px) { + h1 { margin: 2rem 0; } +} + +h2 { + font-size: 2rem; + padding-top: 3rem; + border-top: solid; + margin: 1.4rem 0; +} + +h3 { + font-size: 1.4rem; + margin-top: 1rem; +} + +p { + text-wrap: pretty; /* 9. Improve line wrapping */ +} + +p, ul { + margin: 1.5rem 0; +} + +ul ul { + margin: .5rem 0; +} + +@media (max-width: 650px) { + ul { + padding-left: 1.5rem; + } +} + +a:link, +a:visited { + background-color: light-dark(var(--color-text-light), var(--color-text-dark)); + color: light-dark(var(--color-bg-light), var(--color-bg-dark)); + font-weight: bold; + padding: 0 .2rem; + text-decoration: none; + border-radius: .2rem; +} + +/* makes the years page prettier */ +h3 a:link, +h3 a:visited { + background-color: light-dark(var(--color-header-light), var(--color-header-dark)); +} + +h3 *:focus-visible { + outline: .2rem solid light-dark(var(--color-text-light), var(--color-text-dark)); + background-color: light-dark(var(--color-text-light), var(--color-text-dark)); +} + +/* Header nav */ +nav { + border-bottom: .25rem solid light-dark(var(--color-header-light), var(--color-header-dark)); + font-size: 1.1rem; +} + +#skip { + position: absolute; + left: -999px; + top: -999px; +} + +#skip:focus-visible { + left: 1rem; + top: .5rem; +} + +nav ul { + display: flex; + flex-flow: row wrap; + align-items: stretch; + justify-content: center; + list-style: none; + padding: 0; + margin: 0; +} + +nav li { + margin: .5rem .5rem; +} + +footer { + display: flex; + justify-content: space-between; + margin: 1rem auto 0; + padding: 1rem .5rem; + width: 100%; + flex-wrap: wrap; + border-top: .25rem solid light-dark(var(--color-header-light), var(--color-header-dark)); +} + +footer p { + margin: 0.5rem 0; } diff --git a/css/zines.css b/css/zines.css new file mode 100644 index 0000000..623356c --- /dev/null +++ b/css/zines.css @@ -0,0 +1,38 @@ +#zine-container { + padding: 0; +} + +#zine-container li { + list-style: none; + border-bottom: solid; + border-left: solid; + border-radius: 4px; + padding: 0 .4rem .4rem; + margin-bottom: 1rem; +} + +#zine-container h2, +#zine-container p { + border: none; + display: inline; +} + +#zine-container h2 a { + background-color: light-dark(var(--color-header-light), var(--color-header-dark)); + line-height: 135%; +} + +#zine-container h3 { + background-color: light-dark(var(--color-warn-light), var(--color-warn-dark)); + color: light-dark(var(--color-text-light), var(--color-text-dark)); + border-radius: 3px; + padding: 0 .2rem; + text-align: right; + line-height: 150%; + margin: .25rem 0 .75rem 0; +} + +#zine-container blockquote { + margin: 0; + color: light-dark(var(--color-header-light), var(--color-header-dark)); +} diff --git a/eleventy.config.js b/eleventy.config.js index f734708..269dcdc 100644 --- a/eleventy.config.js +++ b/eleventy.config.js @@ -1,5 +1,6 @@ import { attrs } from "@mdit/plugin-attrs"; import { eleventyImageTransformPlugin } from "@11ty/eleventy-img"; +import eleventyNavigationPlugin from "@11ty/eleventy-navigation"; import pluginFilters from "./_config/filters.js"; @@ -40,6 +41,9 @@ export default async function (eleventyConfig) { }, }); + /* Navigation */ + eleventyConfig.addPlugin(eleventyNavigationPlugin); + /* All filters from _config/filters.js */ eleventyConfig.addPlugin(pluginFilters); diff --git a/package-lock.json b/package-lock.json index 43a8ce7..a07b42b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,5 +1,5 @@ { - "name": "11ty", + "name": "zinefest-11ty", "version": "1.0.0", "lockfileVersion": 3, "requires": true, @@ -10,6 +10,7 @@ "devDependencies": { "@11ty/eleventy": "^3.1.5", "@11ty/eleventy-img": "^6.0.4", + "@11ty/eleventy-navigation": "^1.0.5", "@mdit/plugin-attrs": "^0.25.1", "luxon": "^3.7.2" } @@ -165,6 +166,20 @@ "url": "https://opencollective.com/11ty" } }, + "node_modules/@11ty/eleventy-navigation": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@11ty/eleventy-navigation/-/eleventy-navigation-1.0.5.tgz", + "integrity": "sha512-zb6xe29cM9viSdYtZywKIkJw2HIROyBINdBcFWC9uD0c/jYOTAex5nwy3HNEuh5t6/Ld/S9V4gEizfmeYuYpCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "dependency-graph": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/11ty" + } + }, "node_modules/@11ty/eleventy-plugin-bundle": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/@11ty/eleventy-plugin-bundle/-/eleventy-plugin-bundle-3.0.7.tgz", diff --git a/package.json b/package.json index 36ffc7c..83c4a8e 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ "devDependencies": { "@11ty/eleventy": "^3.1.5", "@11ty/eleventy-img": "^6.0.4", + "@11ty/eleventy-navigation": "^1.0.5", "@mdit/plugin-attrs": "^0.25.1", "luxon": "^3.7.2" } diff --git a/src/digital-success.md b/src/digital-success.md new file mode 100644 index 0000000..9e836fc --- /dev/null +++ b/src/digital-success.md @@ -0,0 +1,7 @@ +--- +title: Digital Bundle Purchase Successful +--- + +Your digital bundle purchase was successful. + +(This page exists because Ko-fi requires a URL (or file) to be associated with a digital purchase.) diff --git a/src/index.md b/src/index.md new file mode 100644 index 0000000..1792cd3 --- /dev/null +++ b/src/index.md @@ -0,0 +1,60 @@ +--- +eleventyNavigation: + key: home + order: 1 +title: FediZineFest +--- + +FediZineFest ran in [2025](/years/2025) and [2024](/years/2024). We're now looking at FediZineFest 2026-2027. + +## What + +A zine sharing and distribution project for the fediverse. + +## Who + +### Artists (cap of 20) + +Provide physical and/or digital zines; receive payment and physical and/or digital zines. + +In 2025, we tested an artist waitlist. Additional artists could be added to the pool as funds allow and to cover for drop-outs. We'll do this again for the 26/27 run. + +### Backers (cap of 20 for physical zines; no cap for digital) + +Provide payment; receive physical and/or digital zines. + +## When + +2026/2027 dates yet to be determined. Deadline structure as follows: + +### Deadline 0 + +Artist sign-up closes. + +### Deadline 1 (deadline 0 + 2 weeks) + +Backer sign-up closes. Artists are informed of the number of physical zines needed. + +### Deadline 2 (deadline 1 + 10 weeks) + +Art submission deadline. Digital zines are submitted to digital drive; physical zines are in the mail. + +### Deadline 3 (deadline 2 + 4 weeks) + +Physical zines arrive at distributor (Lee). + +### Deadline 4 (deadline 3 + 4 weeks) + +Physical zines packaged and ready for shipment. Digital zines are organized and ready to share. + +### Deadline 5 (deadline 4 + 4 weeks) + +Physical zines arrive at recipients. Digital zines shared. + +## Where + +Anywhere that can ship to/from the US. + +## Why + +To bring folks together and share art. diff --git a/src/signup.md b/src/signup.md new file mode 100644 index 0000000..e226afe --- /dev/null +++ b/src/signup.md @@ -0,0 +1,20 @@ +--- +eleventyNavigation: + key: get involved + order: 2 +title: Get Involved +--- + +## Interest signups for 2026-2027 + +Sign up to [indicate interest in FediZineFest 2026/2027 as an artist, backer, or team member.](https://airtable.com/app76cWa9xMbzWFn3/pagM1TbZdmVLNQSf6/form) + +## Leftovers + +### 2025 + +Peruse [2025's leftover bundles.](https://ko-fi.com/inherentlee/shop/fedizinefest2025) + +### 2024 + +Peruse [2024's leftover bundles.](https://ko-fi.com/inherentlee/shop/fedizinefest2024) diff --git a/src/years/2024/guidelines.md b/src/years/2024/guidelines.md new file mode 100644 index 0000000..055ed57 --- /dev/null +++ b/src/years/2024/guidelines.md @@ -0,0 +1,89 @@ +--- +title: FediZineFest 2024 Guidelines +--- + +## Participants + +- **artist:** someone who contributes one or more zines to the Fest +- **backer:** someone who contributes money to the Fest + +All participants (both artists and backers) will receive: + +- a package in the mail containing one copy of each physical zine submitted +- a link to a Dropbox or Google Drive (or similar) folder containing all digital zines submitted + +### Participant caps + +Total participants will be capped at 50. Artists will be capped at 30. Physical zine submissions will be capped at 20. This is for the sake of my and the artists’ sanity(s). + +## For artists + +### Zine submissions + +**Zines do not have to be newly created for this event.** You may absolutely share zines you have previously created. However, please do not share zines that are already freely available in the same format - we want the backers to get a good deal. + +While you may submit more than one zine, I ask that you limit **physical** zine submissions to **one zine**. This is to ensure that shipping doesn’t become too unreasonable (for you OR me). + +For the submission of a **physical** zine, you agree that: + +- Your zine will be no larger than: + - For folks in the US: 8.5"x5.5" (a standard sheet of 8.5"x11" paper, folded once) + - For folks internationally: 21.0cm x 14.9cm (a standard sheet of A4 paper, folded once) +- The number of recipients will be confirmed by **Jan 26th, 2024** +- You will get these copies into the mail by **Mar 29th, 2024** + +For the submission of a **digital** zine, you agree that: + +- You will provide a print-friendly file (this may be either your only file, or one of two - a digital-only and a print-friendly variant) - print-friendly here means printable on the average home printer, so please no requirements for legal paper or other unusual sizes! +- You will provide your zine file(s) by **Mar 29th, 2024** via Google Drive or Dropbox or similar + +### Payment + +Please keep in mind that this is mostly an opportunity to share and receive zines. While you will receive payment, it won’t be in significant amounts. + +All transactions will use PayPal unless otherwise organized - reach out to me if PayPal is inaccessible to you. **If you cannot use PayPal, you must speak to me about it before signing up so as to ensure there is a way to pay you.** + +## For backers + +### Payment + +As a backer, you agree that you will pay: + +- A base payment of $50 - this will be split among all artists +- A shipping fee based on your location + - US: $15 + - International: $30 + +## Timeline and deadlines + +### Deadline 0: 12 Jan 2024 + +- For artist list formation + +### Deadline 1: 26 Jan 2024 + +- (Deadline 0 + 2 weeks) +- For backer list formation +- For communication to be sent out to all artists detailing the number of recipients + +### Deadline 2: 29 Mar 2024 + +- (Deadline 1 + 8 weeks) +- For art submissions + +### Deadline 3: 19 Apr 2024 + +- (Deadline 2 + 3 weeks) +- For physical zines to arrive at distributor + +### Deadline 4: 10 May 2024 + +- (Deadline 3 + 3 weeks) +- For physical zines to be packaged for shipment +- For digital zines to be organized and uploaded to shared drive + +### Deadline 5: 31 May 2024 + +- (Deadline 4 + 3 weeks) +- For physical zines to arrive at recipients +- For email to be sent out to all recipients regarding where digital zines are located diff --git a/src/years/2024/index.md b/src/years/2024/index.md new file mode 100644 index 0000000..8fb7c68 --- /dev/null +++ b/src/years/2024/index.md @@ -0,0 +1,29 @@ +--- +title: FediZineFest 2024 +--- + +## Overview + +Read the [FediZineFest 2024 guidelines.](/years/2024/guidelines) + +See the [FediZineFest 2024 zines.](/years/2024/zines) + +## Statistics + +FediZineFest 2024 completed with **25 artists** and **20 backers**. Artists contributed **16 physical** and **18 digital** zines. Artist payouts were roughly **USD35**. 5 artists were unable to complete work or dropped out. + +## Things we learned + +- Build in opt-outs for physical zines for artists and backers +- Build in opt-outs for payment for artists +- Read the fine print of services such as Jotform +- Include workarounds for Paypal +- Get general publicity information from artists - not just fedi handles +- Delegate! Delegate! Delegate! +- Block out more time between deadlines + +## Team + +- **Primary point of contact:** Lee +- **Help with zine creation:** Sanae +- **Help with digital formatting:** Aaron Rafik El Sabrout diff --git a/src/years/2024/zines.njk b/src/years/2024/zines.njk new file mode 100644 index 0000000..cbdc215 --- /dev/null +++ b/src/years/2024/zines.njk @@ -0,0 +1,6 @@ +--- +title: FediZineFest 2024 Zines +--- + +{% set zines = collections["2024"] %} +{% include "zines.njk" %} diff --git a/src/years/2025/guidelines.md b/src/years/2025/guidelines.md new file mode 100644 index 0000000..94ffe7f --- /dev/null +++ b/src/years/2025/guidelines.md @@ -0,0 +1,3 @@ +--- +title: FediZineFest 2025 Guidelines +--- diff --git a/src/years/2025/index.md b/src/years/2025/index.md new file mode 100644 index 0000000..f265f1e --- /dev/null +++ b/src/years/2025/index.md @@ -0,0 +1,36 @@ +--- +title: FediZineFest 2025 +--- + +## Overview + +Read the [FediZineFest 2025 guidelines.](/years/2025/guidelines) + +See the [FediZineFest 2025 zines.](/years/2025/zines) + +## Statistics + +**19 artists** contributed **13 physical** and **16 digital** zines. **23 backers** contributed over **USD1500**. + +This year, our payouts vary slightly according to two factors: + +- whether the artist contributed physical zines +- whether the artist received physical zines + +This was to help offset cost of printing. Final payouts will be calculated on June 6 (deadline 4), but at current, artists will receive anywhere from **USD95 to USD135** (if this math sounds wrong: there are artists who opted out of being paid). + +5 artists were unable to complete work or dropped out. + +## Things we learned + +- **Using Airtable.** Make sure all coordinators are using the same information platform. In 2025, I allowed coordinators to opt out of learning a new platform. Next year, I'll put extra effort into making the platform accessible. +- **Shared email.** A shared email account for coordinators would make responding to artist questions easier and more seamless for artists. +- **Fedi handles.** This year, I aimed to get artist's websites for general publicity, rather than fedi handles. Collect both - fedi handles are useful for publicity as well as communication. +- **Digital cleanliness.** It would be nice to have uploaded digital zines follow a clear format like Author_Title or similar. +- **Deadlines.** The 4 week delays between some of the later steps? Those have already been necessary. One set of zines didn't arrive until 21 May despite being posted on time. + +## Team + +- **Physical Zine Coordinator:** Lee Cattarin — [leecat.art](https://leecat.art) +- **Digital Zine Coordinator:** Oona Leganovic — [@playinprogress on fedi](https://assemblag.es/@playinprogress) +- **Timeline Coordinator:** Jack — [@sodamnqueer on fedi](https://catcatnya.com/@sodamnqueer) diff --git a/src/years/2025/zines.njk b/src/years/2025/zines.njk new file mode 100644 index 0000000..23f0667 --- /dev/null +++ b/src/years/2025/zines.njk @@ -0,0 +1,6 @@ +--- +title: FediZineFest 2025 Zines +--- + +{% set zines = collections["2025"] %} +{% include "zines.njk" %} diff --git a/src/years/2026-2027/index.md b/src/years/2026-2027/index.md new file mode 100644 index 0000000..acf495b --- /dev/null +++ b/src/years/2026-2027/index.md @@ -0,0 +1,5 @@ +--- +title: FediZineFest 2026-2027 +--- + +The interest form for 2026-2027 is open on the [signup page.](/signup) diff --git a/src/years/index.md b/src/years/index.md new file mode 100644 index 0000000..bec457a --- /dev/null +++ b/src/years/index.md @@ -0,0 +1,20 @@ +--- +title: Catalog of Years +eleventyNavigation: + key: all years + order: 4 +--- + +## [FediZineFest 2026-2027](/years/2026-2027) + +## [FediZineFest 2025](/years/2025) + +### [2025 guidelines](/years/2025/guidelines) + +### [2025 zines](/years/2025/zines) + +## [FediZineFest 2024](/years/2024) + +### [2024 guidelines](/years/2024/guidelines) + +### [2024 zines](/years/2024/zines) diff --git a/src/zines.md b/src/zines.md new file mode 100644 index 0000000..095b953 --- /dev/null +++ b/src/zines.md @@ -0,0 +1,9 @@ +--- +title: All FediZineFest Zines +eleventyNavigation: + key: zines! + order: 3 +--- + +{% set zines = collections.zines %} +{% include "zines.njk" %} diff --git a/src/zines/2025-lee.md b/src/zines/2025-lee.md new file mode 100644 index 0000000..f42171b --- /dev/null +++ b/src/zines/2025-lee.md @@ -0,0 +1,10 @@ +--- +artist: lee +site: "https://leecat.art" +format: physical +title: KESTREL +tags: + - 2025 +--- + +2 color hand-printed zine with pictures of my dog diff --git a/src/zines/zines.11tydata.js b/src/zines/zines.11tydata.js new file mode 100644 index 0000000..951d4f3 --- /dev/null +++ b/src/zines/zines.11tydata.js @@ -0,0 +1,6 @@ +export default { + permalink: false, + tags: [ + "zines" + ], +};