~singpolyma/post-part

af32f38d7792bc90545db512ed91dd3a50ca05c4 — Stephen Paul Weber 8 days ago 033b92e
New links and put the previous home under kitchener/
6 files changed, 475 insertions(+), 1 deletions(-)

M Makefile
M index.scss
M index.slim
A kitchener/Kitchener.purs
A kitchener/index.scss
A kitchener/index.slim
M Makefile => Makefile +10 -0
@@ 2,6 2,7 @@

all: \
	index.html index.css index.js \
	kitchener/index.html kitchener/index.css kitchener/index.js \
	QVtq/index.html \
	window/NsD0/index.html \
	window/Vfqb/index.html \


@@ 27,6 28,15 @@ index.js: Interactive.purs packages.dhall spago.dhall
credits/index.html: credits/index.slim assets/paras.txt
	/usr/share/doc/ruby-slim/examples/slimrb -p credits/index.slim > $@

kitchener/index.html: kitchener/index.slim assets/paras.txt assets/audio/transcripts.txt
	/usr/share/doc/ruby-slim/examples/slimrb -p kitchener/index.slim > $@

kitchener/index.css: kitchener/index.scss _font-face.scss
	sassc -Mt expanded kitchener/index.scss $@

kitchener/index.js: kitchener/Kitchener.purs packages.dhall spago.dhall
	spago bundle-app -u-c --main Kitchener --to kitchener/index.js

window/NsD0/index.html: window.slim Makefile window.js assets/windowOneTranscript.md assets/windowOneCredits.md
	mkdir -p window/NsD0
	/usr/share/doc/ruby-slim/examples/slimrb -l '{ "num": "One", "location": "Ambrosia Corner Bakery", "sponsors": ["ambrosia", "cotd", "breastfeeding-buddies"] }' -p window.slim > $@

M index.scss => index.scss +19 -1
@@ 103,7 103,10 @@ body > hgroup {
	}
}

h1, h2 { font-weight: normal; }
h1, h2 {
	font-weight: normal;
	font-family: druk, sans-serif;
}

body > p {
	max-width: $column-width;


@@ 199,6 202,21 @@ body > p {
	}
}

#exhibitions {
	margin: 15em 0;

	ul {
		&, li {
			padding: 0;
			list-style-type: none;
		}

		a {
			font-size: 1.5em;
		}
	}
}

body > small {
	display: block;
	margin-top: 20vh;

M index.slim => index.slim +9 -0
@@ 45,6 45,15 @@ html
		p= paras[4]

		p= paras[5]

		section#exhibitions
			h1 Exhibitions

			ul
				li: a href="kitchener" CAFKA Biennale : Kitchener, ON 2021
				li: a href="https://workmanarts.com/rendezvous-with-madness/" Rendezvous with Madness Festival : Toronto, ON 2020
				li: a href="https://vimeo.com/359685290" Come Up to My Room : Toronto, ON 2018

		small Click to activate the wallpaper

		#wallpaper

A kitchener/Kitchener.purs => kitchener/Kitchener.purs +66 -0
@@ 0,0 1,66 @@
-- Full source may be found at: https://git.singpolyma.net/post-part
-- Copyright 2020 Stephen Paul Weber <singpolyma.net>
--
-- Permission to use, copy, modify, and/or distribute this software for any
-- purpose with or without fee is hereby granted, provided that the above
-- copyright notice and this permission notice appear in all copies.
--
-- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
-- SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
-- RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
-- CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
-- CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

module Kitchener where

import Prelude
import Effect
import Effect.Class
import Data.Maybe
import Data.Either
import Data.Array
import Debug.Trace
import Data.Traversable
import Math as Math
import Data.Tuple (Tuple(..))
import Data.Int as Int
import Effect.Timer as Timer
import Effect.Ref as Ref
import Effect.Aff (Aff, Canceler(..), makeAff, launchAff_)
import Web.DOM.ParentNode (querySelector, querySelectorAll, QuerySelector(..), ParentNode)
import Web.DOM.Document as DOMDocument
import Web.HTML.HTMLDocument as HTMLDocument
import Web.HTML.HTMLElement as HTMLElement
import Web.HTML.HTMLMediaElement as HTMLMediaElement
import Web.HTML (window, HTMLElement, HTMLMediaElement)
import Web.HTML.Event.EventTypes (load)
import Web.UIEvent.MouseEvent as MouseEvent
import Web.UIEvent.MouseEvent.EventTypes (mousemove, mouseout, click)
import Web.HTML.Window as Window
import Web.DOM.Element as Element
import Web.DOM.NodeList as NodeList
import Web.DOM.DOMTokenList as DOMTokenList
import Web.Event.EventTarget (addEventListener, eventListener)
import Partial.Unsafe (unsafePartial)
import Web.CSSOM.ElementCSSInlineStyle as Style
import Web.CSSOM.CSSStyleDeclaration as Style

data TickTock = Tick | Tock

tick Tick = Tock
tick Tock = Tick

main = unsafePartial $ do
  win <- window
  doc <- HTMLDocument.toParentNode <$> Window.document win
  tickTockRef <- Ref.new Tick
  Timer.setInterval 7500 $ do
    Just slideshow <- (HTMLElement.fromElement =<< _) <$>
      querySelector (QuerySelector "#slideshow img") doc
    slideshowStyle <- Style.style (Style.fromHTMLElement slideshow)
    tickTock <- Ref.modify tick tickTockRef
    case tickTock of
      Tick -> Style.setProperty slideshowStyle "opacity" "0"
      Tock -> Style.setProperty slideshowStyle "opacity" "1"

A kitchener/index.scss => kitchener/index.scss +278 -0
@@ 0,0 1,278 @@
/*
* Full source may be found at: https://git.singpolyma.net/post-part
* Copyright 2020 Stephen Paul Weber <singpolyma.net>
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
* SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
* CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/

@import "../font-face";

@include font-face(cardo, "../assets/fonts/cardo-v12-latin-regular");
@include font-face(druk, "../assets/fonts/Druk Wide Web Medium Regular", null, null, woff2 woff ttf otf);

$bg: black;
$fg: #fff9e4;
$fg-alt: #887a00;
$column-width: 50vw;

html, body {
	margin: 0;
	font-family: cardo, sans-serif;
	background: $bg;
	color: $fg;
	text-align: center;
	line-height: 1.7;

  * {
		box-sizing: border-box;
	}
}

body > hgroup {
	position: relative;
	margin-bottom: 3em;

	h1 {
		display: block;
		width: 100%;
		height: 50vh;
		margin-top: 2em;
		background: url(../assets/img/POST-PART-TITLE.png) no-repeat center;
		background-size: contain;
		color: rgba(0, 0, 0, 0);
	}
}

a, a:visited, a:link {
	color: #0bf;
	&:hover {
		color: #fb0;
	}

	&[href^="https://gofund.me"],
	&[href^="https://www.eventbrite.ca"],
	&[href="../assets/map.pdf"] {
		font-family: druk, sans-serif;
		display: inline-block;
		text-decoration: none;
		background: $fg-alt;
		color: $fg;
		font-size: 2em;
		padding: 0.5em;
		margin: 1em;
	}

	&[href^="https://www.eventbrite.ca"] {
		color: $fg-alt;
		background: $fg;
	}

	&[href="../assets/map.pdf"] {
		color: $bg;
		background: transparent;
		border: 0.2em solid $fg-alt;
		font-size: 1em;

		&:hover {
			background: $fg-alt;
			border-color: $bg;
		}
	}
}

h1, h2 {
	font-weight: normal;
	font-family: druk, sans-serif;
}

p {
	max-width: $column-width;
	margin: 5em auto;
	font-size: 1.5em;
}

img {
	max-width: 90%;
}

#slideshow {
	position: relative;
	overflow: hidden;
	margin-bottom: 5em;

	img:first-of-type {
		position: absolute;
		opacity: 1;
		transition: opacity 5s;
	}

	small {
		display: block;
	}
}

body > section {
	background: $fg;
	color: $fg-alt;
	padding-top: 5em;
	padding-bottom: 5em;

	small {
		display: block;
		margin: auto;
		max-width: $column-width;
	}
}

#location {
	ol { counter-reset: ol; }

	li {
		list-style-type: none;
		margin: 2em 0;
		font-size: 1.5em;

		&:before {
			display: inline-block;
			counter-increment: ol;
			content: counter(ol);
			background: $bg;
			color: $fg;
			border-radius: 100%;
			width: 1.6em;
			height: 1.6em;
			margin-right: 0.3em;
		}

		img {
			max-width: $column-width/2;
			max-height: 7em;
			display: block;
			margin: 1em auto;
		}
	}

	> p > a > img {
		display: block;
		margin: 0.5em auto;
	}

	&:before {
		content: "";
		display: block;
		margin: auto;
		background: url("../assets/img/womb-pattern.svg") no-repeat center center;
		background-size: contain;
		height: $column-width/2;
		max-width: $column-width;
	}

	&:after {
		content: "";
		display: block;
		margin: auto;
		background: url("../assets/img/WOMAN-MIRRORED.png") no-repeat center center;
		background-size: contain;
		height: $column-width/2;
		max-width: $column-width;
	}
}

a[href="interactive"], a[href="../../interactive"], a[href="../credits"], a[href="../"] {
	display: block;
	font-size: 1.5em;
	margin-bottom: 5em;
}

#sponsors, #window-sponsors, .sponsor {
	li { font-size: 1.5em; }

	> p:first-of-type {
		margin-top: 0;
		margin-bottom: 2em;
	}

	img {
		display: inline-block;
		margin: 2em;
		max-width: $column-width/4.5;
		vertical-align: middle;

		&[src$="breastfeeding-buddies.png"],
		&[src$="ambrosia.png"] {
			max-width: $column-width/1.5;
		}
	}
}

.sponsor img {
	margin-top: -3em;
	margin-bottom: 5em;
}

body > small {
	display: block;
	margin-bottom: 2em;
}

#window-sponsors {
	color: $bg;
}

section#locations {
	background: $bg;
	color: $fg;

	section { font-size: 1.5em; }
}

#locations {
	a[href="../../"] {
		&, &:visited {
			display: block;
			margin: auto;
			background: $fg;
			color: $fg-alt;
			height: 5em;
			width: 5em;
			line-height: 5em;
			text-align: center;
			border-radius: 100%;
			text-decoration: none;
			margin-bottom: 3em;
		}

		&:hover {
			background: darken($fg, 10%);
		}
	}

	a img {
		background: white;
		border-radius: 100%;
	}

	&:after {
		content: "";
		display: block;
		margin: 3em auto;
		background: url("../assets/img/WOMAN-MIRRORED.png") no-repeat center center;
		background-size: contain;
		height: $column-width/2;
		max-width: $column-width;
	}
}

.instagram {
	font-family: druk, sans-serif;
}

A kitchener/index.slim => kitchener/index.slim +93 -0
@@ 0,0 1,93 @@
/ Full source may be found at: https://git.singpolyma.net/post-part
  Copyright 2020 Stephen Paul Weber <singpolyma.net>

  Permission to use, copy, modify, and/or distribute this software for any
  purpose with or without fee is hereby granted, provided that the above
  copyright notice and this permission notice appear in all copies.

  THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
  WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
  MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
  SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
  RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
  CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
  CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

- paras = File.read("#{__dir__}/../assets/paras.txt").lines
doctype html
html
	head
		meta charset="utf-8"
		title Post-Part
		link type="text/css" rel="stylesheet" href="index.css"
		script type="text/javascript" src="index.js"
		base target="_blank"
	body
		hgroup
			h1 Post-Part

		p= paras[8]
		p= paras[9]
		p= paras[13]

		#slideshow
			img src="../assets/img/wallpaper-normal.png" alt="Wallpaper in natural light"
			img src="../assets/img/wallpaper-blue.jpg" alt="Wallpaper in blue light"
			small
				' Photograph by
				a href="http://www.melaniegordon.com" Melanie Gordon

		p== paras[14]
		a.sponsor href="https://cotdwaterlooregion.org/": img alt="Climb Out of the Darkness" src="../assets/img/cotd.jpg"
		a.sponsor href="https://www.cafka.org/cafka21/everything-not-saved-will-be-lost": img alt="CAFKA" src="../assets/img/cafka.jpg"

		section#location
			h1 Exhibition Location &amp; Partners

			a href="../assets/map.pdf" Printable Exhibition Map

			markdown:
				1. [![Abrosia Corner Bakery](../assets/img/ambrosia.png)](https://ambrosiacornerbakery.com/)
				1. [![Encompass Health](../assets/img/encompass.png)](https://www.encompasshealth.ca/)
				1. ![Benton Street Parking Garage, at the corer of Charles Street](../assets/img/CityofKitchener.png)
				1. [![Schneider Haus National Historic Site](../assets/img/schneiderhaus.png)](https://www.schneiderhaus.ca)

			small * we acknowledge that the Post-Part exhibition will be situated on land that is the traditional home of the Neutral, Haudenosaunee (Ho-deh-no-show-nee) and Anishinaabe (Ah-nish-nah-bay) Peoples. We extend our respect to all First Nations, Métis and Inuit peoples for their past and present contributions to this land.

			p.instagram
				== paras[15]
				a href="https://www.instagram.com/post_part/"
					img src="../assets/img/INSTAGRAM.png" alt="Instagram"

		section#sponsors
			h1 Thank you to the following sponsors for their support of the Kitchener exhibition of Post-Part

			a href="https://awesomewithoutborders.org/": img alt="Awesome Without Borders" src="../assets/img/AWB.png"
			a href="https://www.shorecentre.ca/": img alt="SHORE Centre" src="../assets/img/shore.png"
			a href="https://doula.sette.ca": img alt="Lisette Weber, Postpartum Doula" src="../assets/img/lisette.png"
			img alt="City of Kitchener" src="../assets/img/CityofKitchener.png"
			a href="https://www.canadianperinatalmentalhealthtrainings.com/"
				img alt="Canadian Perinatal Mental Health Trainings" src="../assets/img/cpmt.png"
			a href="https://www.breastfeedingbuddies.com/"
				img alt="Breastfeeding Buddies" src="../assets/img/breastfeeding-buddies.png"
			a href="https://mboa.dev"
				img alt="MBOA" src="../assets/img/mboa.svg"

			section
				h1 Further Thanks

				ul
					li Laverne and Ella Brubacher
					li: a href="https://www.estherslevinsky.com/" Esther Slevinsky
					li Elanor Waslander &amp; Carole Culhane
					li: a href="https://www.reeveandcompany.com" Reeve and Company Printing
					li Franco Pang

		section
			a href="../credits" Credits

		footer
			markdown:
				This website was designed by [Nat Janin](https://natjanin.com/) and
				[Catherine Mellinger](http://www.cargocollective.com/catherinemellinger),
				developed by [Stephen Paul Weber](https://git.singpolyma.net/post-part).