diff --git a/package-lock.json b/package-lock.json index cfa82cf..74cd28f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2116,6 +2116,15 @@ } } }, + "agent-base": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", + "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", + "dev": true, + "requires": { + "es6-promisify": "^5.0.0" + } + }, "aggregate-error": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", @@ -3205,6 +3214,12 @@ "isarray": "^1.0.0" } }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "dev": true + }, "buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", @@ -3386,6 +3401,75 @@ "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" }, + "cheerio": { + "version": "1.0.0-rc.2", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.2.tgz", + "integrity": "sha1-S59TqBsn5NXawxwP/Qz6A8xoMNs=", + "dev": true, + "requires": { + "css-select": "~1.2.0", + "dom-serializer": "~0.1.0", + "entities": "~1.1.1", + "htmlparser2": "^3.9.1", + "lodash": "^4.15.0", + "parse5": "^3.0.1" + }, + "dependencies": { + "css-select": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", + "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", + "dev": true, + "requires": { + "boolbase": "~1.0.0", + "css-what": "2.1", + "domutils": "1.5.1", + "nth-check": "~1.0.1" + } + }, + "css-what": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", + "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==", + "dev": true + }, + "dom-serializer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", + "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", + "dev": true, + "requires": { + "domelementtype": "^1.3.0", + "entities": "^1.1.1" + } + }, + "domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "dev": true, + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", + "dev": true + }, + "parse5": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz", + "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==", + "dev": true, + "requires": { + "@types/node": "*" + } + } + } + }, "chokidar": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.1.tgz", @@ -4725,6 +4809,15 @@ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" }, + "encoding": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "dev": true, + "requires": { + "iconv-lite": "~0.4.13" + } + }, "end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", @@ -4845,6 +4938,21 @@ "es6-symbol": "^3.1.1" } }, + "es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", + "dev": true + }, + "es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "dev": true, + "requires": { + "es6-promise": "^4.0.3" + } + }, "es6-symbol": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", @@ -5460,6 +5568,12 @@ } } }, + "express-history-api-fallback": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/express-history-api-fallback/-/express-history-api-fallback-2.2.1.tgz", + "integrity": "sha1-OirSf3vryQ/FM9EQ18bYMJe80Fc=", + "dev": true + }, "ext": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", @@ -5573,6 +5687,35 @@ } } }, + "extract-zip": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", + "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", + "dev": true, + "requires": { + "concat-stream": "^1.6.2", + "debug": "^2.6.9", + "mkdirp": "^0.5.4", + "yauzl": "^2.10.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, "extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", @@ -5643,6 +5786,15 @@ "bser": "2.1.1" } }, + "fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "dev": true, + "requires": { + "pend": "~1.2.0" + } + }, "figgy-pudding": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", @@ -6416,6 +6568,15 @@ "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==" }, + "highland": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/highland/-/highland-2.13.0.tgz", + "integrity": "sha512-zGZBcgAHPY2Zf9VG9S5IrlcC7CH9ELioXVtp9T5bU2a4fP2zIsA+Y8pV/n/h2lMwbWMHTX0I0xN0ODJ3Pd3aBQ==", + "dev": true, + "requires": { + "util-deprecate": "^1.0.2" + } + }, "history": { "version": "4.10.1", "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", @@ -6520,6 +6681,63 @@ "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" }, + "html-minifier": { + "version": "3.5.21", + "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz", + "integrity": "sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==", + "dev": true, + "requires": { + "camel-case": "3.0.x", + "clean-css": "4.2.x", + "commander": "2.17.x", + "he": "1.2.x", + "param-case": "2.1.x", + "relateurl": "0.2.x", + "uglify-js": "3.4.x" + }, + "dependencies": { + "camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", + "dev": true, + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.1.1" + } + }, + "commander": { + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", + "dev": true + }, + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", + "dev": true + }, + "no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "dev": true, + "requires": { + "lower-case": "^1.1.1" + } + }, + "param-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", + "dev": true, + "requires": { + "no-case": "^2.2.0" + } + } + } + }, "html-minifier-terser": { "version": "5.0.5", "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.0.5.tgz", @@ -6650,6 +6868,27 @@ "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" }, + "https-proxy-agent": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", + "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", + "dev": true, + "requires": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, "humanize-url": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/humanize-url/-/humanize-url-1.0.1.tgz", @@ -7173,6 +7412,16 @@ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, + "isomorphic-fetch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", + "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", + "dev": true, + "requires": { + "node-fetch": "^1.0.1", + "whatwg-fetch": ">=0.10.0" + } + }, "isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", @@ -9016,6 +9265,65 @@ } } }, + "minimalcss": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/minimalcss/-/minimalcss-0.8.1.tgz", + "integrity": "sha512-a+kbRVvxz+oQf43pweflM38KvcvVuTvv3v6a8UgVbfS7E2rktSJSf8kfbGToSXgbiBDP83WTh8MWL6PdT9ljag==", + "dev": true, + "requires": { + "cheerio": "1.0.0-rc.2", + "css-tree": "1.0.0-alpha.28", + "csso": "~3.5.0", + "filesize": "^3.5.11", + "minimist": "^1.2.0", + "puppeteer": "^1.8.0" + }, + "dependencies": { + "css-tree": { + "version": "1.0.0-alpha.28", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.28.tgz", + "integrity": "sha512-joNNW1gCp3qFFzj4St6zk+Wh/NBv0vM5YbEreZk0SD4S23S+1xBKb6cLDg2uj4P4k/GUMlIm6cKIDqIG+vdt0w==", + "dev": true, + "requires": { + "mdn-data": "~1.1.0", + "source-map": "^0.5.3" + } + }, + "csso": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/csso/-/csso-3.5.1.tgz", + "integrity": "sha512-vrqULLffYU1Q2tLdJvaCYbONStnfkfimRxXNaGjxMldI0C7JPBC4rB1RyjhfdZ4m1frm8pM9uRPKH3d2knZ8gg==", + "dev": true, + "requires": { + "css-tree": "1.0.0-alpha.29" + }, + "dependencies": { + "css-tree": { + "version": "1.0.0-alpha.29", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.29.tgz", + "integrity": "sha512-sRNb1XydwkW9IOci6iB2xmy8IGCj6r/fr+JWitvJ2JxQRPzN3T4AGGVWCMlVmVwM1gtgALJRmGIlWv5ppnGGkg==", + "dev": true, + "requires": { + "mdn-data": "~1.1.0", + "source-map": "^0.5.3" + } + } + } + }, + "filesize": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz", + "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==", + "dev": true + }, + "mdn-data": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-1.1.4.tgz", + "integrity": "sha512-FSYbp3lyKjyj3E7fMl6rYvUdX0FBXaluGqlFoYESWQlyUTq8R+wp0rkFxoYFqZlHCvsUXGjyJmLQSnXToYhOSA==", + "dev": true + } + } + }, "minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", @@ -9277,6 +9585,16 @@ "integrity": "sha512-sSHCgWfJ+Lui/u+0msF3oyCgvdkhxDbkCS6Q8uiJquzOimkJBvX6hl5aSSA7DR1XbMpdM8r7phjcF63sF4rkKg==", "dev": true }, + "node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "dev": true, + "requires": { + "encoding": "^0.1.11", + "is-stream": "^1.0.1" + } + }, "node-forge": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.9.0.tgz", @@ -10099,6 +10417,12 @@ "sha.js": "^2.4.8" } }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "dev": true + }, "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", @@ -11293,6 +11617,12 @@ "ipaddr.js": "1.9.1" } }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true + }, "prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", @@ -11356,6 +11686,33 @@ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" }, + "puppeteer": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-1.20.0.tgz", + "integrity": "sha512-bt48RDBy2eIwZPrkgbcwHtb51mj2nKvHOPMaSH2IsWiv7lOG9k9zhaRzpDZafrk05ajMc3cu+lSQYYOfH2DkVQ==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "extract-zip": "^1.6.6", + "https-proxy-agent": "^2.2.1", + "mime": "^2.0.3", + "progress": "^2.0.1", + "proxy-from-env": "^1.0.0", + "rimraf": "^2.6.1", + "ws": "^6.1.0" + }, + "dependencies": { + "ws": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", + "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0" + } + } + } + }, "q": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", @@ -11735,6 +12092,24 @@ "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.7.tgz", "integrity": "sha512-TAv1KJFh3RhqxNvhzxj6LeT5NWklP6rDr2a0jaTfsZ5wSZWHOGeqQyejUp3xxLfPt2UpyJEcVQB/zyPcmonNFA==" }, + "react-fast-compare": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-2.0.4.tgz", + "integrity": "sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==", + "dev": true + }, + "react-helmet": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/react-helmet/-/react-helmet-6.0.0.tgz", + "integrity": "sha512-My6S4sa0uHN/IuVUn0HFmasW5xj9clTkB9qmMngscVycQ5vVG51Qp44BEvLJ4lixupTwDlU9qX1/sCrMN4AEPg==", + "dev": true, + "requires": { + "object-assign": "^4.1.1", + "prop-types": "^15.7.2", + "react-fast-compare": "^2.0.4", + "react-side-effect": "^2.1.0" + } + }, "react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", @@ -11795,6 +12170,256 @@ "tiny-warning": "^1.0.0" } }, + "react-side-effect": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/react-side-effect/-/react-side-effect-2.1.0.tgz", + "integrity": "sha512-IgmcegOSi5SNX+2Snh1vqmF0Vg/CbkycU9XZbOHJlZ6kMzTmi3yc254oB1WCkgA7OQtIAoLmcSFuHTc/tlcqXg==", + "dev": true + }, + "react-snap": { + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/react-snap/-/react-snap-1.23.0.tgz", + "integrity": "sha512-spmg2maHSedLrn6QBAfLJkyMqeeffLTIs7h40pS1copW2xBrajx4HEAcanm+7IVGO6SYCPoGwvbU3U30UFN25g==", + "dev": true, + "requires": { + "clean-css": "4.2.1", + "express": "4.16.4", + "express-history-api-fallback": "2.2.1", + "highland": "2.13.0", + "html-minifier": "3.5.21", + "minimalcss": "0.8.1", + "mkdirp": "0.5.1", + "puppeteer": "^1.8.0", + "serve-static": "1.13.2", + "sourcemapped-stacktrace-node": "2.1.8" + }, + "dependencies": { + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true + }, + "body-parser": { + "version": "1.18.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", + "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=", + "dev": true, + "requires": { + "bytes": "3.0.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "~1.6.3", + "iconv-lite": "0.4.23", + "on-finished": "~2.3.0", + "qs": "6.5.2", + "raw-body": "2.3.3", + "type-is": "~1.6.16" + } + }, + "clean-css": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz", + "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==", + "dev": true, + "requires": { + "source-map": "~0.6.0" + } + }, + "content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=", + "dev": true + }, + "cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "express": { + "version": "4.16.4", + "resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz", + "integrity": "sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==", + "dev": true, + "requires": { + "accepts": "~1.3.5", + "array-flatten": "1.1.1", + "body-parser": "1.18.3", + "content-disposition": "0.5.2", + "content-type": "~1.0.4", + "cookie": "0.3.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.1.1", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.4", + "qs": "6.5.2", + "range-parser": "~1.2.0", + "safe-buffer": "5.1.2", + "send": "0.16.2", + "serve-static": "1.13.2", + "setprototypeof": "1.1.0", + "statuses": "~1.4.0", + "type-is": "~1.6.16", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + } + }, + "finalhandler": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", + "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.4.0", + "unpipe": "~1.0.0" + } + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "iconv-lite": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", + "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "mime": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", + "dev": true + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "raw-body": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", + "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==", + "dev": true, + "requires": { + "bytes": "3.0.0", + "http-errors": "1.6.3", + "iconv-lite": "0.4.23", + "unpipe": "1.0.0" + } + }, + "send": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", + "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.6.2", + "mime": "1.4.1", + "ms": "2.0.0", + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.4.0" + } + }, + "serve-static": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", + "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", + "dev": true, + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.2", + "send": "0.16.2" + } + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", + "dev": true + } + } + }, "read-pkg": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", @@ -13230,6 +13855,25 @@ "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" }, + "sourcemapped-stacktrace-node": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/sourcemapped-stacktrace-node/-/sourcemapped-stacktrace-node-2.1.8.tgz", + "integrity": "sha512-xQOqfT5mquKLBp+H06WTeGYEQh7OF5wa44IPHbh+qNdTP15xSzxwISPml1xCweJ6DExDpDDxXe/P34wP+GdDrg==", + "dev": true, + "requires": { + "es6-promise": "^4.1.1", + "isomorphic-fetch": "^2.2.1", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, "spdx-correct": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", @@ -14201,6 +14845,30 @@ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, + "uglify-js": { + "version": "3.4.10", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz", + "integrity": "sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==", + "dev": true, + "requires": { + "commander": "~2.19.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "commander": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", + "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, "unicode-canonical-property-names-ecmascript": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", @@ -14318,6 +14986,12 @@ "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==" }, + "upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", + "dev": true + }, "uri-js": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", @@ -16503,6 +17177,16 @@ "camelcase": "^5.0.0", "decamelize": "^1.2.0" } + }, + "yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "dev": true, + "requires": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } } } } diff --git a/package.json b/package.json index 5896607..f8d7efd 100644 --- a/package.json +++ b/package.json @@ -72,6 +72,7 @@ "scripts": { "start": "node scripts/start.js", "build": "node scripts/build.js", + "postbuild": "react-snap", "test": "node scripts/test.js", "predeploy": "npm run build", "deploy": "gh-pages -d build" @@ -147,6 +148,8 @@ ] }, "devDependencies": { + "react-helmet": "^6.0.0", + "react-snap": "^1.23.0", "responsive-loader": "^1.2.0", "sharp": "^0.25.3" } diff --git a/public/_redirects b/public/_redirects deleted file mode 100644 index 50a4633..0000000 --- a/public/_redirects +++ /dev/null @@ -1 +0,0 @@ -/* /index.html 200 \ No newline at end of file diff --git a/public/ogimagecomp.jpg b/public/ogimagecomp.jpg new file mode 100755 index 0000000..0889459 Binary files /dev/null and b/public/ogimagecomp.jpg differ diff --git a/src/BlobField/index.js b/src/BlobField/index.js index 4df541b..da598e8 100644 --- a/src/BlobField/index.js +++ b/src/BlobField/index.js @@ -1,14 +1,18 @@ import React, { useRef, useState, useEffect } from "react"; -import { useHistory } from "react-router-dom"; +import { useLocation, useHistory } from "react-router-dom"; import config from "src/config"; import paper from "paper"; -import style from "./style.module.scss"; +import { + wrapper, + popover, +} from './style.module.css'; + import Blobs from "./blobs"; import ArtistNav from "../Components/ArtistNav/"; -export default function BlobField({ collapsed = false }) { +export default function BlobField() { const animationEl = useRef(null); const wrapperEl = useRef(null); const blobsRef = useRef(null); @@ -18,6 +22,9 @@ export default function BlobField({ collapsed = false }) { const [parentHeight, setParentHeight] = useState(window.innerHeight); const [popoverStyle, setPopooverStyle] = useState(null); + let location = useLocation(); + const collapsed = location.pathname !== '/'; + function calculateStyle(event, isCollapsed) { let style = { display: "none", @@ -104,26 +111,28 @@ export default function BlobField({ collapsed = false }) { }, [blobsRef, collapsed]); return ( -
- - - {collapsed ? ( - "" - ) : ( -
- {activeArtist - ? activeArtist.name.split(" ").map((item, i) => { - return

{item.toUpperCase()}

; - }) - : "NEARREST NEIGHBOR"} +
+
+ + + {collapsed ? ( + "" + ) : ( +
+ {activeArtist + ? activeArtist.name.split(" ").map((item, i) => { + return

{item.toUpperCase()}

; + }) + : "NEARREST NEIGHBOR"} +
+ )} +
+ {collapsed && activeArtist ? activeArtist.name.toUpperCase() : ""}
- )} -
- {collapsed && activeArtist ? activeArtist.name.toUpperCase() : ""}
); diff --git a/src/BlobField/style.module.scss b/src/BlobField/style.module.css similarity index 71% rename from src/BlobField/style.module.scss rename to src/BlobField/style.module.css index 09b0843..d3e3987 100644 --- a/src/BlobField/style.module.scss +++ b/src/BlobField/style.module.css @@ -5,15 +5,15 @@ flex-direction: column; position: relative; width: 100%; - svg, canvas { - position: fixed; - bottom: 0; - // left: 0; - right: 0; - // top: 0; - z-index: 999; - } +} +.wrapper > svg, canvas { + position: fixed; + bottom: 0; + /* left: 0; */ + right: 0; + /* top: 0; */ + z-index: 999; } .popover{ diff --git a/src/Components/Seo/index.js b/src/Components/Seo/index.js new file mode 100644 index 0000000..8eec84d --- /dev/null +++ b/src/Components/Seo/index.js @@ -0,0 +1,128 @@ +// https://github.com/stereobooster/react-snap/blob/master/doc/recipes.md +// From https://github.com/stereobooster/an-almost-static-stack/blob/react-snap/src/components/Seo.js +import React from "react"; +import PropTypes from "prop-types"; +import { Helmet } from "react-helmet"; + +const rootURL = `https://kind-tesla-a088c1.netlify.app`; +const absoluteUrl = (path) => `${rootURL}/${path}`; +const seoImageURL = (file) => `${rootURL}${file}`; + +const getMetaTags = ({ + title, + description, + url, + contentType, + published, + updated, + category, + tags, + twitter, + image, +}) => { + const metaTags = [ + { itemprop: "name", content: title }, + { itemprop: "description", content: description }, + { name: "description", content: description }, + { name: "twitter:site", content: twitter }, + { name: "twitter:title", content: title }, + { name: "twitter:description", content: description }, + { name: "twitter:creator", content: twitter }, + { property: "og:title", content: title }, + { property: "og:type", content: contentType }, //https://ogp.me/#types + { property: "og:url", content: url }, + { property: "og:description", content: description }, + { property: "og:site_name", content: "NEARREST NEIGHBOR" }, + { property: "og:locale", content: "en_EN" }, + // { name: 'fb:app_id', content: '' }, + ]; + + if (published) + metaTags.push({ name: "article:published_time", content: published }); + if (updated) + metaTags.push({ name: "article:modified_time", content: updated }); + if (category) metaTags.push({ name: "article:section", content: category }); + if (tags) metaTags.push({ name: "article:tag", content: tags }); + if (image) { + metaTags.push({ itemprop: "image", content: seoImageURL(image) }); + metaTags.push({ name: "twitter:image:src", content: seoImageURL(image) }); + metaTags.push({ property: "og:image", content: seoImageURL(image) }); + metaTags.push({ name: "twitter:card", content: "summary_large_image" }); + } else { + metaTags.push({ name: "twitter:card", content: "summary" }); + } + + return metaTags; +}; + +const getHtmlAttributes = ({ schema }) => { + let result = { + lang: "en", + }; + if (schema) { + result = { + ...result, + itemscope: undefined, + itemtype: `http://schema.org/${schema}`, + }; + } + return result; +}; + +getHtmlAttributes.propTypes = { + schema: PropTypes.string, +}; + +const Seo = ({ + schema, + title, + description, + path, + contentType, + published, + updated, + category, + tags, + twitter, + image, +}) => ( + +); + +Seo.propTypes = { + schema: PropTypes.string, + title: PropTypes.string, + description: PropTypes.string, + path: PropTypes.string, + contentType: PropTypes.string, + published: PropTypes.string, + updated: PropTypes.string, + category: PropTypes.string, + tags: PropTypes.array, + twitter: PropTypes.string, + image: PropTypes.object, +}; + +export default Seo; diff --git a/src/Containers/App/index.js b/src/Containers/App/index.js index 1efec19..772b7f7 100644 --- a/src/Containers/App/index.js +++ b/src/Containers/App/index.js @@ -1,37 +1,60 @@ -import React, { Suspense, lazy } from 'react'; +import React from 'react'; import { BrowserRouter as Router, Switch, Route } from 'react-router-dom'; import './style.css'; import BlobField from 'src/BlobField'; import config from '../../config'; +import Seo from 'src/Components/Seo' + +import BenLerchin from '../../work/BenLerchin'; +import BerfinAtaman from '../../work/BerfinAtaman'; +import BlaineOneill from '../../work/BlaineOneill'; +import ClaraLeivas from '../../work/ClaraLeivas'; +import DalenaTran from '../../work/DalenaTran'; +import ErinCooney from '../../work/ErinCooney'; +import GrahamAkins from '../../work/GrahamAkins'; +import HiradSab from '../../work/HiradSab'; +import LemingZc from '../../work/LemingZc'; +import MilesPeyton from '../../work/MilesPeyton'; +import ZeynepAbes from '../../work/ZeynepAbes'; + +const comps = { + BenLerchin, + BerfinAtaman, + BlaineOneill, + ClaraLeivas, + DalenaTran, + ErinCooney, + GrahamAkins, + HiradSab, + LemingZc, + MilesPeyton, + ZeynepAbes, +}; export default () => (
- }> - - { - config.artists.map(({slug, component}) => { - const Comp = lazy(() => import(`../../work/${component}`)); - return ( - - - - ) - }) - } - {/* no-op */} - - Page not Found ✧・゚:* + + + { + config.artists.map(({slug, name, component}) => { + const Comp = comps[component]; + return ( + + + + ) + }) + } + + + {/* no-op */} - - - ( -
- -
- )}> -
+ + Page not Found ✧・゚:* + +
); \ No newline at end of file diff --git a/src/Containers/App/style.css b/src/Containers/App/style.css index ce3159b..1800f1a 100644 --- a/src/Containers/App/style.css +++ b/src/Containers/App/style.css @@ -33,6 +33,8 @@ body { font-family: sans-serif; font-weight: 700; line-height: initial; + margin-top: 50vh; + transform: translateY(-50%); } .blobs { diff --git a/src/index.js b/src/index.js index ca9d1a1..41bcd7c 100644 --- a/src/index.js +++ b/src/index.js @@ -3,12 +3,29 @@ import ReactDOM from 'react-dom'; import App from './Containers/App'; import * as serviceWorker from './serviceWorker'; -ReactDOM.render( - - - , - document.getElementById('root') -); +// ReactDOM.render( +// +// +// , +// document.getElementById('root') +// ); + +const rootElement = document.getElementById("root"); +if (rootElement.hasChildNodes()) { + ReactDOM.hydrate( + + + , + rootElement + ); +} else { + ReactDOM.render( + + + , + rootElement + ); +} // If you want your app to work offline and load faster, you can change // unregister() to register() below. Note this comes with some pitfalls. diff --git a/src/work/BenLerchin.js b/src/work/BenLerchin.js index 9e42ebe..5d922d6 100644 --- a/src/work/BenLerchin.js +++ b/src/work/BenLerchin.js @@ -1,52 +1,70 @@ -import React from 'react'; +import React from "react"; -import Artist from '../Containers/Artist'; -import ProjectCover from '../Components/ProjectCover'; -import ProjectHeader from '../Components/ProjectHeader'; -import ArtistBio from '../Components/ArtistBio'; -import ProjectColumns, { Column } from '../Components/ProjectColumns'; -import Image from '../Components/Image'; -import Vimeo from '../Components/VideoVimeo' +import Artist from "../Containers/Artist"; +import ProjectCover from "../Components/ProjectCover"; +import ProjectHeader from "../Components/ProjectHeader"; +import ArtistBio from "../Components/ArtistBio"; +import ProjectColumns, { Column } from "../Components/ProjectColumns"; +import Image from "../Components/Image"; +import Vimeo from "../Components/VideoVimeo"; -import BenImage from './assets/BenLerchin-yimby-cover.jpg'; -import Placeholder from './assets/placeholder.png'; +import BenImage from "./assets/BenLerchin-yimby-cover.jpg"; +import Placeholder from "./assets/placeholder.png"; -export default function() { - return ( - - - - Still from video. A gray industrial concrete and metal box is in the foreground, with the text
+import Seo from "../Components/Seo";
+
+export default function ({slug, name}) {
+  return (
+    <Artist>
+      <Seo
+        title={name}
+        description="Scelerisque venenatis nibh fames ad quam feugiat leo commodo vitae sed lacus."
+        path={slug}
+        image={BenImage}
+      />
+      <ProjectHeader
+        artistName={name}
+        title="Yes, in my Backyard"
+        materials="10 minute video"
+        link="http://benlerchin.com"
+      />
+      <ProjectCover>
+        <Image
+          img={BenImage}
+          alt= - - - - - - - - -

- Semi-satirical mockumentary reframing Los Angeles' infrastructure as a tourist destination for nature-lovers. -

-
-
- -

- Ben Lerchin is an artist and technologist who works with software, photography, and digital fabrication. Their practice deals extensively with the relationship between the photographic image and the American West. Reflecting on the uneasy experience of living between the city and the wilderness, my work attempts to reconcile a networked, industrialized lifestyle with the unstable ground under our feet. It is an attempt to erase boundaries with the natural world, and to see it not as victim nor antagonist, but as co-conspirator and friend. Using digital photographic processes, Ben embeds a polyphony of viewpoints into three dimensional forms reminiscent of the landscape from which they emerge, showing sites of resource management in relation to the people that depend on them. -

-
-
- ); -} \ No newline at end of file + /> + + + + + + + + +

+ Semi-satirical mockumentary reframing Los Angeles' infrastructure as + a tourist destination for nature-lovers. +

+
+
+ +

+ Ben Lerchin is an artist and technologist who works with software, + photography, and digital fabrication. Their practice deals extensively + with the relationship between the photographic image and the American + West. Reflecting on the uneasy experience of living between the city + and the wilderness, my work attempts to reconcile a networked, + industrialized lifestyle with the unstable ground under our feet. It + is an attempt to erase boundaries with the natural world, and to see + it not as victim nor antagonist, but as co-conspirator and friend. + Using digital photographic processes, Ben embeds a polyphony of + viewpoints into three dimensional forms reminiscent of the landscape + from which they emerge, showing sites of resource management in + relation to the people that depend on them. +

+
+ + ); +} diff --git a/src/work/BerfinAtaman.js b/src/work/BerfinAtaman.js index 72bebc8..4ca2d46 100644 --- a/src/work/BerfinAtaman.js +++ b/src/work/BerfinAtaman.js @@ -1,78 +1,112 @@ -import React from 'react'; +import React from "react"; -import Artist from '../Containers/Artist'; -import ProjectCover from '../Components/ProjectCover'; -import ProjectHeader from '../Components/ProjectHeader'; -import ArtistBio from '../Components/ArtistBio'; -import ProjectColumns, { Column } from '../Components/ProjectColumns'; -import Vimeo from '../Components/VideoVimeo'; -import Image from '../Components/Image'; +import Artist from "../Containers/Artist"; +import ProjectCover from "../Components/ProjectCover"; +import ProjectHeader from "../Components/ProjectHeader"; +import ArtistBio from "../Components/ArtistBio"; +import ProjectColumns, { Column } from "../Components/ProjectColumns"; +import Vimeo from "../Components/VideoVimeo"; +import Image from "../Components/Image"; -import BerfinImage0 from './assets/BerfinAtaman-0.jpg'; -import BerfinImage1 from './assets/BerfinAtaman-1.jpg'; -import BerfinImage2 from './assets/BerfinAtaman-2.jpg'; -import BerfinImage3 from './assets/BerfinAtaman-3.jpg'; -import BerfinImage4 from './assets/BerfinAtaman-4.jpg'; +import BerfinImage0 from "./assets/BerfinAtaman-0.jpg"; +import BerfinImage1 from "./assets/BerfinAtaman-1.jpg"; +import BerfinImage2 from "./assets/BerfinAtaman-2.jpg"; +import BerfinImage3 from "./assets/BerfinAtaman-3.jpg"; +import BerfinImage4 from "./assets/BerfinAtaman-4.jpg"; -export default function() { - return ( - - - - - A kinetic sculpture that is made out of soft materials. It extends from floor to the ceiling. It is orange at the base with pink m red and white stripes and orange polka dots. It has a tear drop shape on the lower part where it is orange and a hole in the middle of the tear drop. The hole has little bubble shapes details around it.They look like beads. Midway through the sculpture oranges fades to light green and the shape changes. The tear drop shape is attached on top onto a tubular structure with green  dangling tentacle like pieces. As these pieces move, some orange colors appears in between them where they are attached to the tubular shape. The green pieces move up and down they are light and see through with orange lines and polka dots on them. - - - - - A kinetic sculpture that is made out of soft materials. It extends from floor to the ceiling. It is orange at the base with pink m red and white stripes and orange polka dots. It has a tear drop shape on the lower part where it is orange and a hole in the middle of the tear drop. The hole has little bubble shapes details around it.They look like beads. Midway through the sculpture oranges fades to light green and the shape changes. The tear drop shape is attached on top onto a tubular structure with green  dangling tentacle like pieces. As these pieces move, some orange colors appears in between them where they are attached to the tubular shape. The green pieces move up and down they are light and see through with orange lines and polka dots on them. - A kinetic sculpture that is made out of soft materials. It extends from floor to the ceiling. It is orange at the base with pink m red and white stripes and orange polka dots. It has a tear drop shape on the lower part where it is orange and a hole in the middle of the tear drop. The hole has little bubble shapes details around it.They look like beads. Midway through the sculpture oranges fades to light green and the shape changes. The tear drop shape is attached on top onto a tubular structure with green  dangling tentacle like pieces. As these pieces move, some orange colors appears in between them where they are attached to the tubular shape. The green pieces move up and down they are light and see through with orange lines and polka dots on them. -

- I am interested in experimenting with movement that is relative to the form of sculpture but that can also be randomized by mechanics interacting it. I specifically design the sculptures formal elements to interact within a system. The sculptures are reminiscent of something familiar, however, they also have unusual deformations, colors, movements, and scale, lending them a surreal presence. I hope such oscillations between the unfamiliar yet familiar space destabilize the relationship that the viewer has with these existing forms. - The idea of movement carries through different series in my work .My first works that were kinetic started experiments on how could I work on movement of a sculpture without a human inside it. It was a challenge that I created for my self at first. The Sympathetic motion series was the first purely sculptural series that I developed.Most of my work after these series continued in the form of soft sculptures. -

-
- -

- While experimenting on different movements relative to the architecture the sculpture is in, form of the sculpture and surface pattern, I have also increasingly become interested in how behaviors and feelings are evoked through observed movement, and why humans instinctively characterize something that is in motion. - I have started naming my sculptures by the movements they produce since this is the source of the audiences perception combined with colors and sounds. -

- A kinetic sculpture that is made out of soft materials. It extends from floor to the ceiling. It is orange at the base with pink m red and white stripes and orange polka dots. It has a tear drop shape on the lower part where it is orange and a hole in the middle of the tear drop. The hole has little bubble shapes details around it.They look like beads. Midway through the sculpture oranges fades to light green and the shape changes. The tear drop shape is attached on top onto a tubular structure with green  dangling tentacle like pieces. As these pieces move, some orange colors appears in between them where they are attached to the tubular shape. The green pieces move up and down they are light and see through with orange lines and polka dots on them. - A kinetic sculpture that is made out of soft materials. It extends from floor to the ceiling. It is orange at the base with pink m red and white stripes and orange polka dots. It has a tear drop shape on the lower part where it is orange and a hole in the middle of the tear drop. The hole has little bubble shapes details around it.They look like beads. Midway through the sculpture oranges fades to light green and the shape changes. The tear drop shape is attached on top onto a tubular structure with green  dangling tentacle like pieces. As these pieces move, some orange colors appears in between them where they are attached to the tubular shape. The green pieces move up and down they are light and see through with orange lines and polka dots on them. -
-
- - - - - - -

- Berfin Ataman was born in Izmir, Turkey. She went on to get her BFA in Theatre design from University of Southern California and her Post – Baccalaureate degree from School of Art Institute Chicago and is currently getting her MFA in UCLA. She has shown her work in Chicago, Los Angeles and Istanbul in galleries and museums. Over multiple collections and projects, she has explored the internal and external perception of movement as they relate to body, space, motion and non- human objects. Her medium is fluid according to each collection but has been materialized as wearables, installations, and other soft, kinetic, sculptures. -

-
-
- ); -} \ No newline at end of file +import Seo from "../Components/Seo"; + +export default function ({slug, name}) { + return ( + + + + + + A kinetic sculpture that is made out of soft materials. It extends from floor to the ceiling. It is orange at the base with pink m red and white stripes and orange polka dots. It has a tear drop shape on the lower part where it is orange and a hole in the middle of the tear drop. The hole has little bubble shapes details around it.They look like beads. Midway through the sculpture oranges fades to light green and the shape changes. The tear drop shape is attached on top onto a tubular structure with green  dangling tentacle like pieces. As these pieces move, some orange colors appears in between them where they are attached to the tubular shape. The green pieces move up and down they are light and see through with orange lines and polka dots on them. + + + + + A kinetic sculpture that is made out of soft materials. It extends from floor to the ceiling. It is orange at the base with pink m red and white stripes and orange polka dots. It has a tear drop shape on the lower part where it is orange and a hole in the middle of the tear drop. The hole has little bubble shapes details around it.They look like beads. Midway through the sculpture oranges fades to light green and the shape changes. The tear drop shape is attached on top onto a tubular structure with green  dangling tentacle like pieces. As these pieces move, some orange colors appears in between them where they are attached to the tubular shape. The green pieces move up and down they are light and see through with orange lines and polka dots on them. + A kinetic sculpture that is made out of soft materials. It extends from floor to the ceiling. It is orange at the base with pink m red and white stripes and orange polka dots. It has a tear drop shape on the lower part where it is orange and a hole in the middle of the tear drop. The hole has little bubble shapes details around it.They look like beads. Midway through the sculpture oranges fades to light green and the shape changes. The tear drop shape is attached on top onto a tubular structure with green  dangling tentacle like pieces. As these pieces move, some orange colors appears in between them where they are attached to the tubular shape. The green pieces move up and down they are light and see through with orange lines and polka dots on them. +

+ I am interested in experimenting with movement that is relative to + the form of sculpture but that can also be randomized by mechanics + interacting it. I specifically design the sculptures formal elements + to interact within a system. The sculptures are reminiscent of + something familiar, however, they also have unusual deformations, + colors, movements, and scale, lending them a surreal presence. I + hope such oscillations between the unfamiliar yet familiar space + destabilize the relationship that the viewer has with these existing + forms. The idea of movement carries through different series in my + work .My first works that were kinetic started experiments on how + could I work on movement of a sculpture without a human inside it. + It was a challenge that I created for my self at first. The + Sympathetic motion series was the first purely sculptural series + that I developed.Most of my work after these series continued in the + form of soft sculptures. +

+
+ +

+ While experimenting on different movements relative to the + architecture the sculpture is in, form of the sculpture and surface + pattern, I have also increasingly become interested in how behaviors + and feelings are evoked through observed movement, and why humans + instinctively characterize something that is in motion. I have + started naming my sculptures by the movements they produce since + this is the source of the audiences perception combined with colors + and sounds. +

+ A kinetic sculpture that is made out of soft materials. It extends from floor to the ceiling. It is orange at the base with pink m red and white stripes and orange polka dots. It has a tear drop shape on the lower part where it is orange and a hole in the middle of the tear drop. The hole has little bubble shapes details around it.They look like beads. Midway through the sculpture oranges fades to light green and the shape changes. The tear drop shape is attached on top onto a tubular structure with green  dangling tentacle like pieces. As these pieces move, some orange colors appears in between them where they are attached to the tubular shape. The green pieces move up and down they are light and see through with orange lines and polka dots on them. + A kinetic sculpture that is made out of soft materials. It extends from floor to the ceiling. It is orange at the base with pink m red and white stripes and orange polka dots. It has a tear drop shape on the lower part where it is orange and a hole in the middle of the tear drop. The hole has little bubble shapes details around it.They look like beads. Midway through the sculpture oranges fades to light green and the shape changes. The tear drop shape is attached on top onto a tubular structure with green  dangling tentacle like pieces. As these pieces move, some orange colors appears in between them where they are attached to the tubular shape. The green pieces move up and down they are light and see through with orange lines and polka dots on them. +
+
+ + + + + + +

+ Berfin Ataman was born in Izmir, Turkey. She went on to get her BFA in + Theatre design from University of Southern California and her Post – + Baccalaureate degree from School of Art Institute Chicago and is + currently getting her MFA in UCLA. She has shown her work in Chicago, + Los Angeles and Istanbul in galleries and museums. Over multiple + collections and projects, she has explored the internal and external + perception of movement as they relate to body, space, motion and non- + human objects. Her medium is fluid according to each collection but + has been materialized as wearables, installations, and other soft, + kinetic, sculptures. +

+
+
+ ); +} diff --git a/src/work/BlaineOneill.js b/src/work/BlaineOneill.js index fd89966..e5acda8 100644 --- a/src/work/BlaineOneill.js +++ b/src/work/BlaineOneill.js @@ -1,59 +1,61 @@ -import React from 'react'; +import React from "react"; -import Artist from '../Containers/Artist'; -import ProjectCover from '../Components/ProjectCover'; -import ProjectHeader from '../Components/ProjectHeader'; -import ArtistBio from '../Components/ArtistBio'; -import ProjectColumns, { Column } from '../Components/ProjectColumns'; -import ProjectLink from '../Components/ProjectLink'; -import Image from '../Components/Image'; +import Artist from "../Containers/Artist"; +import ProjectCover from "../Components/ProjectCover"; +import ProjectHeader from "../Components/ProjectHeader"; +import ArtistBio from "../Components/ArtistBio"; +import ProjectColumns, { Column } from "../Components/ProjectColumns"; +import ProjectLink from "../Components/ProjectLink"; +import Image from "../Components/Image"; -import Placeholder from './assets/placeholder.png'; +import Placeholder from "./assets/placeholder.png"; -export default function() { - return ( - - - - - - - - - -

- Written in collaboration with three GPT-2 text generators trained using Runway ML, featuring the voices of Jesse Hoffman (SUDO), Cecile Believe (MAUDE), and Kate Berlant (PSEUDO). -

-

- Affective loop: - Interest ↝ Enjoyment ↝ Surprise ↝ Shame ↺ -

-
Events:
-
    -
  1. Evaluation (identification)
  2. -
  3. Access (trust)
  4. -
  5. Catch (catfish)
  6. -
  7. Refresh (support)
  8. -
-
-
- - -

- Affiliate of multiple groups. Working as an artist, designer, web developer and disc jockey. Currently: affect, bubbles, feature extraction, improvisation, intersubjectivity. Always: failure. -

-
-
- ); -} \ No newline at end of file +import Seo from "../Components/Seo"; + +export default function ({slug, name}) { + return ( + + + + + + + + + + +

+ Written in collaboration with three GPT-2 text generators trained + using Runway ML, featuring the voices of Jesse Hoffman (SUDO), + Cecile Believe (MAUDE), and Kate Berlant (PSEUDO). +

+

Affective loop: Interest ↝ Enjoyment ↝ Surprise ↝ Shame ↺

+
Events:
+
    +
  1. Evaluation (identification)
  2. +
  3. Access (trust)
  4. +
  5. Catch (catfish)
  6. +
  7. Refresh (support)
  8. +
+
+
+ + +

+ Affiliate of multiple groups. Working as an artist, designer, web + developer and disc jockey. Currently: affect, bubbles, feature + extraction, improvisation, intersubjectivity. Always: failure. +

+
+
+ ); +} diff --git a/src/work/ClaraLeivas.js b/src/work/ClaraLeivas.js index 28e6edc..cf97f16 100644 --- a/src/work/ClaraLeivas.js +++ b/src/work/ClaraLeivas.js @@ -1,49 +1,84 @@ -import React from 'react'; +import React from "react"; -import Artist from '../Containers/Artist'; -import ProjectCover from '../Components/ProjectCover'; -import ProjectHeader from '../Components/ProjectHeader'; -import ArtistBio from '../Components/ArtistBio'; -import ProjectColumns, { Column } from '../Components/ProjectColumns'; -import Vimeo from '../Components/VideoVimeo'; -import Image from '../Components/Image'; +import Artist from "../Containers/Artist"; +import ProjectCover from "../Components/ProjectCover"; +import ProjectHeader from "../Components/ProjectHeader"; +import ArtistBio from "../Components/ArtistBio"; +import ProjectColumns, { Column } from "../Components/ProjectColumns"; +import Vimeo from "../Components/VideoVimeo"; +import Image from "../Components/Image"; -import Placeholder from './assets/placeholder.png'; +import Placeholder from "./assets/placeholder.png"; -export default function() { - return ( - - - - -

- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla non justo non elit fringilla imperdiet ut nec purus. Quisque egestas consequat sem, quis volutpat felis vestibulum eu. Integer elementum eros non nulla consequat blandit. Donec elit erat, ullamcorper et varius vitae, volutpat sed tellus. In tempus lorem vitae ex pulvinar, at molestie orci sodales. Donec eget nisl tincidunt, fringilla purus a, accumsan diam. Sed non ipsum a est lobortis varius. -

-

- In vestibulum eros quis magna maximus blandit. Pellentesque elementum est ac lorem scelerisque facilisis. Quisque sollicitudin velit et ligula tincidunt, vitae imperdiet elit placerat. Maecenas in elementum est, eu pulvinar libero. Quisque vitae ultrices nulla. Pellentesque ex nibh, posuere vitae purus id, mollis blandit urna. Nam eget bibendum sapien, nec tempor turpis. Pellentesque accumsan urna auctor sapien tincidunt luctus. Pellentesque at massa non ex vulputate tempor. Aliquam nibh lectus, egestas eget massa a, tincidunt dignissim sem. Suspendisse mauris orci, elementum quis sem sed, ultricies consectetur enim. -

-

- Sed faucibus accumsan orci, et auctor felis porta non. Aenean sit amet mauris venenatis, maximus dolor ac, vulputate mi. Nulla facilisis justo sit amet ex blandit, vel volutpat purus auctor. Nunc tincidunt nulla sed ullamcorper cursus. Mauris pretium ultrices libero, eget venenatis lacus feugiat ut. Vestibulum quis tortor in sapien tincidunt dictum non quis ante. Mauris urna justo, cursus et felis a, placerat dictum lectus. Sed egestas nunc eu sapien sollicitudin molestie. -

-
-
- - - - - - -

- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris eget eros ullamcorper, ultrices neque at, ultrices ipsum. Vestibulum ut mauris at ex interdum consectetur. Phasellus eget tempus tellus. Morbi id ante eu augue tempus congue. Curabitur risus ex, ornare sed varius et, tristique a ipsum. Mauris non lorem orci. Etiam eu porta nisi. Proin id luctus purus. Sed viverra et tortor ac posuere. Nam rhoncus tristique eleifend. Proin ac augue dui. Proin diam orci, feugiat quis posuere nec, iaculis ac neque. Aliquam suscipit metus nibh, ut tristique odio dapibus vitae. -

-
-
- ); -} \ No newline at end of file +import Seo from "../Components/Seo"; +export default function ({slug, name}) { + return ( + + + + + +

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla non + justo non elit fringilla imperdiet ut nec purus. Quisque egestas + consequat sem, quis volutpat felis vestibulum eu. Integer elementum + eros non nulla consequat blandit. Donec elit erat, ullamcorper et + varius vitae, volutpat sed tellus. In tempus lorem vitae ex + pulvinar, at molestie orci sodales. Donec eget nisl tincidunt, + fringilla purus a, accumsan diam. Sed non ipsum a est lobortis + varius. +

+

+ In vestibulum eros quis magna maximus blandit. Pellentesque + elementum est ac lorem scelerisque facilisis. Quisque sollicitudin + velit et ligula tincidunt, vitae imperdiet elit placerat. Maecenas + in elementum est, eu pulvinar libero. Quisque vitae ultrices nulla. + Pellentesque ex nibh, posuere vitae purus id, mollis blandit urna. + Nam eget bibendum sapien, nec tempor turpis. Pellentesque accumsan + urna auctor sapien tincidunt luctus. Pellentesque at massa non ex + vulputate tempor. Aliquam nibh lectus, egestas eget massa a, + tincidunt dignissim sem. Suspendisse mauris orci, elementum quis sem + sed, ultricies consectetur enim. +

+

+ Sed faucibus accumsan orci, et auctor felis porta non. Aenean sit + amet mauris venenatis, maximus dolor ac, vulputate mi. Nulla + facilisis justo sit amet ex blandit, vel volutpat purus auctor. Nunc + tincidunt nulla sed ullamcorper cursus. Mauris pretium ultrices + libero, eget venenatis lacus feugiat ut. Vestibulum quis tortor in + sapien tincidunt dictum non quis ante. Mauris urna justo, cursus et + felis a, placerat dictum lectus. Sed egestas nunc eu sapien + sollicitudin molestie. +

+
+
+ + + + + + +

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris eget + eros ullamcorper, ultrices neque at, ultrices ipsum. Vestibulum ut + mauris at ex interdum consectetur. Phasellus eget tempus tellus. Morbi + id ante eu augue tempus congue. Curabitur risus ex, ornare sed varius + et, tristique a ipsum. Mauris non lorem orci. Etiam eu porta nisi. + Proin id luctus purus. Sed viverra et tortor ac posuere. Nam rhoncus + tristique eleifend. Proin ac augue dui. Proin diam orci, feugiat quis + posuere nec, iaculis ac neque. Aliquam suscipit metus nibh, ut + tristique odio dapibus vitae. +

+
+
+ ); +} diff --git a/src/work/DalenaTran/index.js b/src/work/DalenaTran/index.js index a6792d9..e9c2f61 100644 --- a/src/work/DalenaTran/index.js +++ b/src/work/DalenaTran/index.js @@ -18,11 +18,19 @@ import Image from '../../Components/Image'; import DalenaImage1 from './assets/DalenaTran-1.png'; import DalenaImage2 from './assets/DalenaTran-2.png'; -export default function() { - return ( - +import Seo from "../../Components/Seo"; + +export default function ({slug, name}) { + return ( + +

- Dalena Tran is a media artist & writer living in Los Angeles, CA. Her stories and situations respond to notions of voyeurism, hegemony, memory, and the phenomenon of media. She engages across mediums and disciplines as they relate to the rhythms of everyday life, often concerned with moments hidden in plain sight. + Dalena Tran is a media artist & writer living in Los Angeles, CA. Her stories and situations respond to notions of voyeurism, hegemony, memory, and the phenomenon of media. She engages across mediums and disciplines as they relate to the rhythms of everyday life, often concerned with moments hidden in plain sight.

diff --git a/src/work/ErinCooney.js b/src/work/ErinCooney.js index 3200a50..59fbefd 100644 --- a/src/work/ErinCooney.js +++ b/src/work/ErinCooney.js @@ -1,111 +1,188 @@ -import React from 'react'; +import React from "react"; -import Artist from '../Containers/Artist'; -import ProjectCover from '../Components/ProjectCover'; -import ProjectHeader from '../Components/ProjectHeader'; -import ArtistBio from '../Components/ArtistBio'; -import ProjectColumns, { Column } from '../Components/ProjectColumns'; -import Image from '../Components/Image'; -import Vimeo from '../Components/VideoVimeo'; +import Artist from "../Containers/Artist"; +import ProjectCover from "../Components/ProjectCover"; +import ProjectHeader from "../Components/ProjectHeader"; +import ArtistBio from "../Components/ArtistBio"; +import ProjectColumns, { Column } from "../Components/ProjectColumns"; +import Image from "../Components/Image"; +import Vimeo from "../Components/VideoVimeo"; -import ErinImage1 from './assets/ErinCooney-image_01.png'; -import ErinImage2 from './assets/ErinCooney-image_02.png'; -import ErinImage3 from './assets/ErinCooney-image_03.png'; -import ErinImage4 from './assets/ErinCooney-image_04.png'; -import ErinImage5 from './assets/ErinCooney-image_05.png'; +import ErinImage1 from "./assets/ErinCooney-image_01.png"; +import ErinImage2 from "./assets/ErinCooney-image_02.png"; +import ErinImage3 from "./assets/ErinCooney-image_03.png"; +import ErinImage4 from "./assets/ErinCooney-image_04.png"; +import ErinImage5 from "./assets/ErinCooney-image_05.png"; -export default function() { - return ( - - - - - - - +import Seo from "../Components/Seo"; +export default function ({slug, name}) { + return ( + + + + + + + + - - - A drawing of the labyrinth set into the floor at Chartres Cathedral in France, as seen from above. - - -

- This piece was made during California’s “Stay at Home” orders, which were imposed in response to the outbreak of COVID-19. The work is about walking, embodiment, point of view, and landscape. Before COVID-19, my intention was to record in outdoor landscapes, but I adapted the piece to take a walking journey in the confines of my apartment instead. This space, a temporary living situation that has been prolonged due to COVID-19, is not my home. The furniture and objects in it do not belong to me, and yet, like others who are fortunate enough to be quarantining safely at home at this time, my experience of the physical world has been largely reduced to this domestic space. As a result, I have developed a peculiar intimacy with these rooms, as they have become my near total landscape. In them, I have used tape to create a single pathway that covers every scalable surface, including furniture, in a wall-to-wall labyrinth in which floor becomes ground, and couch, tables, and countertops become mountains to climb. The labyrinth is a means of taking a journey through a confined space, while simultaneously defamiliarizing an otherwise known environment. It is my way to engage with ground, path-making, infrastructure, and how the built environment determines experience. -

-
-
+ + + A drawing of the labyrinth set into the floor at Chartres Cathedral in France, as seen from above. + + +

+ This piece was made during California’s “Stay at Home” orders, which + were imposed in response to the outbreak of COVID-19. The work is + about walking, embodiment, point of view, and landscape. Before + COVID-19, my intention was to record in outdoor landscapes, but I + adapted the piece to take a walking journey in the confines of my + apartment instead. This space, a temporary living situation that has + been prolonged due to COVID-19, is not my home. The furniture and + objects in it do not belong to me, and yet, like others who are + fortunate enough to be quarantining safely at home at this time, my + experience of the physical world has been largely reduced to this + domestic space. As a result, I have developed a peculiar intimacy + with these rooms, as they have become my near total landscape. In + them, I have used tape to create a single pathway that covers every + scalable surface, including furniture, in a wall-to-wall labyrinth + in which floor becomes ground, and couch, tables, and countertops + become mountains to climb. The labyrinth is a means of taking a + journey through a confined space, while simultaneously + defamiliarizing an otherwise known environment. It is my way to + engage with ground, path-making, infrastructure, and how the built + environment determines experience. +

+
+
- - - A drawing of the labyrinth the artist has created to cover every mountable surface in her apartment, as seen from above. - - -

- The walking video-works by artist Francis Alÿs have been a touchstone for me. In this work, in which I also walk, I have situated cameras on my body (on my feet), as opposed to having my walking body recorded by a third party or “objective” point of view. I am obsessed with the circular relationship between object and subject, and for this piece I attempted to collapse the relationship by having my feet serve as both. In her 2002 article “The Persistence of Vision,” Donna Haraway argues that what she terms a feminist, embodied objectivity is grounded in situated knowledge. “Objectivity” she says, “turns out to be about particular and specific embodiment, and definitely not about the false vision promising transcendence of all limits and responsibility. The moral is simple: only partial perspective promises objective vision.” -

-
-
+ + + A drawing of the labyrinth the artist has created to cover every mountable surface in her apartment, as seen from above. + + +

+ The walking video-works by artist Francis Alÿs have been a + touchstone for me. In this work, in which I also walk, I have + situated cameras on my body (on my feet), as opposed to having my + walking body recorded by a third party or “objective” point of view. + I am obsessed with the circular relationship between object and + subject, and for this piece I attempted to collapse the relationship + by having my feet serve as both. In her 2002 article “The + Persistence of Vision,” Donna Haraway argues that what she terms a + feminist, embodied objectivity is grounded in situated knowledge. + “Objectivity” she says, “turns out to be about particular and + specific embodiment, and definitely not about the false vision + promising transcendence of all limits and responsibility. The moral + is simple: only partial perspective promises objective vision.” +

+
+
- - - A photograph of a section of floor in the artist's apartment, covered in lines of blue tape used to form the labyrinth. - - -

- I chose the points of view from my feet because, as an embodied exploration of moving through a landscape, I want to bring a deep sense of attention to the body’s points of connection with the ground into which they intermingle and extend. In his 2010 article, “Footprints through the weather-world: walking, breathing, knowing,” anthropologist Tim Ingold argues that our bodies extend into the ground and air, and that the ground and air extend back into us. In Silent Spring, Rachel Carson’s description of the ground as vibrant soil reminds us that the ground is literally a living substance, as opposed to something inert or agentless. Her writing also exhorts us to remember our interconnectedness with the ground, that without it, human life and culture cannot exist, and that it is far past time we take this into account when we impose ourselves and our structures onto the ground in which we live. -

-
-
+ + + A photograph of a section of floor in the artist's apartment, covered in lines of blue tape used to form the labyrinth. + + +

+ I chose the points of view from my feet because, as an embodied + exploration of moving through a landscape, I want to bring a deep + sense of attention to the body’s points of connection with the + ground into which they intermingle and extend. In his 2010 article, + “Footprints through the weather-world: walking, breathing, knowing,” + anthropologist Tim Ingold argues that our bodies extend into the + ground and air, and that the ground and air extend back into us. In + Silent Spring, Rachel Carson’s description of the ground as vibrant + soil reminds us that the ground is literally a living substance, as + opposed to something inert or agentless. Her writing also exhorts us + to remember our interconnectedness with the ground, that without it, + human life and culture cannot exist, and that it is far past time we + take this into account when we impose ourselves and our structures + onto the ground in which we live. +

+
+
- - - A photograph of a section of carpeted floor in the artist's bedroom, covered in lines of blue tape used to form the labyrinth. - - -

- The walking performed in this piece takes place in a built structure, which was itself built into the ground below it. My feet interact with the manufactured products of the American building trade, including engineered wood, stone, textiles, and plastics. I am interested in how landscape determines experience, especially the landscape of built environments. Jedediah Purdy, in his article [need to find title], says, “[w]e are creatures of our built environment, an infrastructure species. By changing it, we change ourselves.” -

-
-
+ + + A photograph of a section of carpeted floor in the artist's bedroom, covered in lines of blue tape used to form the labyrinth. + + +

+ The walking performed in this piece takes place in a built + structure, which was itself built into the ground below it. My feet + interact with the manufactured products of the American building + trade, including engineered wood, stone, textiles, and plastics. I + am interested in how landscape determines experience, especially the + landscape of built environments. Jedediah Purdy, in his article + [need to find title], says, “[w]e are creatures of our built + environment, an infrastructure species. By changing it, we change + ourselves.” +

+
+
- - - A photograph of the bathroom in the artist's apartment, covered in lines of blue tape used to form the labyrinth. - - -

- Another method for transformation is the pilgrimage. Rebecca Solnit describes pilgrimage as a journey in physical space that maps onto an internal journey of transformation. In conducting my research for this project, I learned about the histories of the ground I walk on as an Angeleno. For instance, I learned that many major Los Angeles roads were built on ancient pathways cut into the land by the people who lived (and live) here before me or my ancestors arrived. In learning this, it has helped me more deeply learn that one’s positionality is never neutral. For that reason, this piece is very personally relevant. It signifies both an embodied and internal journey in which I attempt to get my own “feet on the ground” of the land, culture, and time in which I live. -

-
-
+ + + A photograph of the bathroom in the artist's apartment, covered in lines of blue tape used to form the labyrinth. + + +

+ Another method for transformation is the pilgrimage. Rebecca Solnit + describes pilgrimage as a journey in physical space that maps onto + an internal journey of transformation. In conducting my research for + this project, I learned about the histories of the ground I walk on + as an Angeleno. For instance, I learned that many major Los Angeles + roads were built on ancient pathways cut into the land by the people + who lived (and live) here before me or my ancestors arrived. In + learning this, it has helped me more deeply learn that one’s + positionality is never neutral. For that reason, this piece is very + personally relevant. It signifies both an embodied and internal + journey in which I attempt to get my own “feet on the ground” of the + land, culture, and time in which I live. +

+
+
- -

- Erin Cooney is visual artist and activist. Born and raised in Houston, Texas, she has lived in Los Angeles since 2000. Her video, installation, and performance work centers around the embodied nature of point of view and strives towards a reconfiguration in the human relationship to the natural world. She received a BA in Philosophy from the University of Notre Dame and studied Graphic Design at Art Center College of Design. She is currently pursuing her MFA at UCLA, where she is a Fellow at UCLA’s CounterForce Lab, which uses art and design to engage with the ecological impacts of anthropogenic climate change. -

-
-
- ); -} \ No newline at end of file + +

+ Erin Cooney is visual artist and activist. Born and raised in Houston, + Texas, she has lived in Los Angeles since 2000. Her video, + installation, and performance work centers around the embodied nature + of point of view and strives towards a reconfiguration in the human + relationship to the natural world. She received a BA in Philosophy + from the University of Notre Dame and studied Graphic Design at Art + Center College of Design. She is currently pursuing her MFA at UCLA, + where she is a Fellow at UCLA’s CounterForce Lab, which uses art and + design to engage with the ecological impacts of anthropogenic climate + change. +

+
+
+ ); +} diff --git a/src/work/GrahamAkins.js b/src/work/GrahamAkins.js index e9f5f28..43d84f9 100644 --- a/src/work/GrahamAkins.js +++ b/src/work/GrahamAkins.js @@ -1,82 +1,85 @@ -import React from 'react'; +import React from "react"; -import Artist from '../Containers/Artist'; -import ProjectCover from '../Components/ProjectCover'; -import ProjectHeader from '../Components/ProjectHeader'; -import Image from '../Components/Image'; -import ProjectColumns, { Column } from '../Components/ProjectColumns'; -import Vimeo from '../Components/VideoVimeo'; +import Artist from "../Containers/Artist"; +import ProjectCover from "../Components/ProjectCover"; +import ProjectHeader from "../Components/ProjectHeader"; +import Image from "../Components/Image"; +import ProjectColumns, { Column } from "../Components/ProjectColumns"; +import Vimeo from "../Components/VideoVimeo"; -import GrahamImage1 from './assets/Graham Akins web template image 1.png'; -import GrahamImage2 from './assets/Graham Akins web template image 2.png'; -import GrahamImage3 from './assets/Graham Akins web template image 3.png'; -import GrahamImage4 from './assets/Graham Akins web template image 4.png'; -import GrahamImage5 from './assets/Graham Akins web template image 5.png'; -import GrahamImage6 from './assets/Graham Akins web template image 6.png'; -import GrahamImage7 from './assets/Graham Akins web template image 7.png'; +import GrahamImage1 from "./assets/Graham Akins web template image 1.png"; +import GrahamImage2 from "./assets/Graham Akins web template image 2.png"; +import GrahamImage3 from "./assets/Graham Akins web template image 3.png"; +import GrahamImage4 from "./assets/Graham Akins web template image 4.png"; +import GrahamImage5 from "./assets/Graham Akins web template image 5.png"; +import GrahamImage6 from "./assets/Graham Akins web template image 6.png"; +import GrahamImage7 from "./assets/Graham Akins web template image 7.png"; -import Placeholder from './assets/placeholder.png'; +import Placeholder from "./assets/placeholder.png"; -export default function() { - return ( - - - - - - - - - - - - - A grey field with the text 1200x1200 - A grey field with the text 1200x1200 - A grey field with the text 1200x1200 - A grey field with the text 1200x1200 - A grey field with the text 1200x1200 - A grey field with the text 1200x1200 - A grey field with the text 1200x1200 - - - - -

- Materials: video, photography, photogrammetry, wooden structures, zentai suit, & dry cat food -

-
-
-
- ); -} \ No newline at end of file +import Seo from "../Components/Seo"; +export default function ({slug, name}) { + return ( + + + + + + + + + + + + + + A grey field with the text 1200x1200 + A grey field with the text 1200x1200 + A grey field with the text 1200x1200 + A grey field with the text 1200x1200 + A grey field with the text 1200x1200 + A grey field with the text 1200x1200 + A grey field with the text 1200x1200 + + + + +

+ Materials: video, photography, photogrammetry, wooden structures, + zentai suit, & dry cat food +

+
+
+
+ ); +} diff --git a/src/work/HiradSab.js b/src/work/HiradSab.js index d5f197c..6fc800b 100644 --- a/src/work/HiradSab.js +++ b/src/work/HiradSab.js @@ -1,59 +1,66 @@ -import React from 'react'; +import React from "react"; -import Artist from '../Containers/Artist'; -import ProjectCover from '../Components/ProjectCover'; -import ProjectHeader from '../Components/ProjectHeader'; -import ArtistBio from '../Components/ArtistBio'; -import ProjectColumns, { Column } from '../Components/ProjectColumns'; -import Vimeo from '../Components/VideoVimeo'; -import Image from '../Components/Image'; +import Artist from "../Containers/Artist"; +import ProjectCover from "../Components/ProjectCover"; +import ProjectHeader from "../Components/ProjectHeader"; +import ArtistBio from "../Components/ArtistBio"; +import ProjectColumns, { Column } from "../Components/ProjectColumns"; +import Vimeo from "../Components/VideoVimeo"; +import Image from "../Components/Image"; +import Placeholder from "./assets/placeholder.png"; -import Placeholder from './assets/placeholder.png'; - -export default function() { - return ( - - - - - - - - - - - - -

- An analysis of the digital proliferation and mediation of the body in the contemporary politics of image, - "Body Troubles" is a rhetorical and discursive attempt at locating the virtual body and its implications - in a climate of economic disparity and political discontent. Its focus is to identify the roles of the - virtual body in discourses, disciplines and socioeconomic milieus, using the state of the art technologies - in machine learning, computer vision, and computer graphics. -

-
-
- -

- Hirad Sab is an Iranian/American artist and visual director whose work explores the margins of digital aesthetics, - internet culture, and technology. His amalgams occupy a precarious intersection of culture and the democratic - nature of image circulation; an aesthetic trend that expands and mutates rapidly. His work has been described as - simultaneously distant and close, drawing the viewer in, even as it challenges them to look away, and heavily - features depictions of the human form, gesture, and activity in distinctly digital environments. The result is in - an emblematic and distinguishable oeuvre that resists easy classification. -

-
-
- ); -} \ No newline at end of file +import Seo from "../Components/Seo"; +export default function ({slug, name}) { + return ( + + + + + + + + + + + + + +

+ An analysis of the digital proliferation and mediation of the body + in the contemporary politics of image, "Body Troubles" is a + rhetorical and discursive attempt at locating the virtual body and + its implications in a climate of economic disparity and political + discontent. Its focus is to identify the roles of the virtual body + in discourses, disciplines and socioeconomic milieus, using the + state of the art technologies in machine learning, computer vision, + and computer graphics. +

+
+
+ +

+ Hirad Sab is an Iranian/American artist and visual director whose work + explores the margins of digital aesthetics, internet culture, and + technology. His amalgams occupy a precarious intersection of culture + and the democratic nature of image circulation; an aesthetic trend + that expands and mutates rapidly. His work has been described as + simultaneously distant and close, drawing the viewer in, even as it + challenges them to look away, and heavily features depictions of the + human form, gesture, and activity in distinctly digital environments. + The result is in an emblematic and distinguishable oeuvre that resists + easy classification. +

+
+
+ ); +} diff --git a/src/work/LemingZc.js b/src/work/LemingZc.js index 972b60b..98d7264 100644 --- a/src/work/LemingZc.js +++ b/src/work/LemingZc.js @@ -1,51 +1,67 @@ -import React from 'react'; +import React from "react"; -import Artist from '../Containers/Artist'; -import ProjectCover from '../Components/ProjectCover'; -import ProjectHeader from '../Components/ProjectHeader'; -import ArtistBio from '../Components/ArtistBio'; -import ProjectColumns, { Column } from '../Components/ProjectColumns'; -import Vimeo from '../Components/VideoVimeo'; -import Image from '../Components/Image'; +import Artist from "../Containers/Artist"; +import ProjectCover from "../Components/ProjectCover"; +import ProjectHeader from "../Components/ProjectHeader"; +import ArtistBio from "../Components/ArtistBio"; +import ProjectColumns, { Column } from "../Components/ProjectColumns"; +import Vimeo from "../Components/VideoVimeo"; +import Image from "../Components/Image"; -import LemingImage1 from './assets/LemingZhong-1.jpg'; +import LemingImage1 from "./assets/LemingZhong-1.jpg"; -export default function() { - return ( - - - - - - - - - -

- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla non justo non elit fringilla imperdiet ut nec purus. Quisque egestas consequat sem, quis volutpat felis vestibulum eu. Integer elementum eros non nulla consequat blandit. Donec elit erat, ullamcorper et varius vitae, volutpat sed tellus. In tempus lorem vitae ex pulvinar, at molestie orci sodales. Donec eget nisl tincidunt, fringilla purus a, accumsan diam. Sed non ipsum a est lobortis varius. -

-
-
- - - - - - -

- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris eget eros ullamcorper, ultrices neque at, ultrices ipsum. Vestibulum ut mauris at ex interdum consectetur. Phasellus eget tempus tellus. Morbi id ante eu augue tempus congue. Curabitur risus ex, ornare sed varius et, tristique a ipsum. Mauris non lorem orci. Etiam eu porta nisi. Proin id luctus purus. Sed viverra et tortor ac posuere. Nam rhoncus tristique eleifend. Proin ac augue dui. Proin diam orci, feugiat quis posuere nec, iaculis ac neque. Aliquam suscipit metus nibh, ut tristique odio dapibus vitae. -

-
-
- ); -} \ No newline at end of file +import Seo from "../Components/Seo"; +export default function ({slug, name}) { + return ( + + + + + + + + + + +

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla non + justo non elit fringilla imperdiet ut nec purus. Quisque egestas + consequat sem, quis volutpat felis vestibulum eu. Integer elementum + eros non nulla consequat blandit. Donec elit erat, ullamcorper et + varius vitae, volutpat sed tellus. In tempus lorem vitae ex + pulvinar, at molestie orci sodales. Donec eget nisl tincidunt, + fringilla purus a, accumsan diam. Sed non ipsum a est lobortis + varius. +

+
+
+ + + + + + +

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris eget + eros ullamcorper, ultrices neque at, ultrices ipsum. Vestibulum ut + mauris at ex interdum consectetur. Phasellus eget tempus tellus. Morbi + id ante eu augue tempus congue. Curabitur risus ex, ornare sed varius + et, tristique a ipsum. Mauris non lorem orci. Etiam eu porta nisi. + Proin id luctus purus. Sed viverra et tortor ac posuere. Nam rhoncus + tristique eleifend. Proin ac augue dui. Proin diam orci, feugiat quis + posuere nec, iaculis ac neque. Aliquam suscipit metus nibh, ut + tristique odio dapibus vitae. +

+
+
+ ); +} diff --git a/src/work/MilesPeyton.js b/src/work/MilesPeyton.js index e889988..83722c2 100644 --- a/src/work/MilesPeyton.js +++ b/src/work/MilesPeyton.js @@ -1,126 +1,165 @@ -import React from 'react'; +import React from "react"; -import Artist from '../Containers/Artist'; -import ProjectCover from '../Components/ProjectCover'; -import ProjectHeader from '../Components/ProjectHeader'; -import ArtistBio from '../Components/ArtistBio'; -import ProjectColumns, { Column } from '../Components/ProjectColumns'; -import Image from '../Components/Image'; -import Vimeo from '../Components/VideoVimeo'; +import Artist from "../Containers/Artist"; +import ProjectCover from "../Components/ProjectCover"; +import ProjectHeader from "../Components/ProjectHeader"; +import ArtistBio from "../Components/ArtistBio"; +import ProjectColumns, { Column } from "../Components/ProjectColumns"; +import Image from "../Components/Image"; +import Vimeo from "../Components/VideoVimeo"; -import MilesImage1 from './assets/MilesPeyton-1.png'; -import MilesImage2 from './assets/MilesPeyton-2.jpg'; -import MilesImage3 from './assets/MilesPeyton-3.jpg'; -import MilesImage4 from './assets/MilesPeyton-4.jpg'; -import MilesImage5 from './assets/MilesPeyton-5.jpg'; +import MilesImage1 from "./assets/MilesPeyton-1.png"; +import MilesImage2 from "./assets/MilesPeyton-2.jpg"; +import MilesImage3 from "./assets/MilesPeyton-3.jpg"; +import MilesImage4 from "./assets/MilesPeyton-4.jpg"; +import MilesImage5 from "./assets/MilesPeyton-5.jpg"; -import Placeholder from './assets/placeholder.png'; +import Placeholder from "./assets/placeholder.png"; -export default function() { - return ( - - - - - - - - - - - - -

- Solar projection of a physical water animation. A droplet of water animates on a square of etched, conductive glass. The animation is driven by electricity and influenced by the pattern etched on the glass, which functions as a visual score and electrical circuit. The animation is displayed as an analog projection that uses sunlight as a light source. -

-

- From 6/1 to 6/12, ten live streams, each using a different etched glass, will take place at 3PM PST, when the sunlight is strongest in the space. -

-
-
- - - Analog projection of water on square, gray board. The light source for the projection is sunlight. The water projection looks shiny, with areas of blue, white, and orange. An etched design can be seen through the water. The board is on the floor, and leans against a white wall. - - - - - View of a room with a window, projection apparatus, and gray board leaning against a wall. Sunlight comes through the window, and is focused by a rectangular lens that points at the projection apparatus. - - - - - View of projection on board with apparatus visible in the frame but slightly out of focus. - - - - - Closeup of apparatus. A circular lens, mirror, and glass plate with liquid can be seen. - - - - - Closeup of 8 wires coming out of apparatus. The wires are braided together. - - - - -

Message from Mud

-

- I was born from mud, unearthed from the ocean floor and sealed in a jar. The men who found me were crewmembers of the Cyclops, a ship that was preparing to lay network cables between Europe and North America. When the ship returned to land, they sent me to the biologist Thomas Huxley for examination. -

-

- In his lab, ten years later, Huxley removed the mud sample from storage. He dispensed a droplet of my body onto a glass microscope slide. Through the lens, Huxley saw what looked like a network of veins. He watched me glide across the glass and engulf a small particle, as if I was feeding. -

-

- The presence of animation was enough to convince Huxley that I was protoplasm, an ancient slime organism thought to be the first instance of life. More than any single piece of evidence, Huxley was captivated by the image of creation in total darkness. He imagined slime streaming and pulsating in an ocean abyss, and the clarity of this vision made him eager to share my arrival with his peers. -

-

- In a paper, Huxley named me Bathybius Haeckelii. Bathybius means “deep life,” and Haeckelii was in honor of his friend, the zoologist and artist Ernst Haeckel, who was a proponent of the primordial slime theory. I provided a link between nonliving and living matter, and as such became an object of intense study. Huxley declared in speeches that my body, in the form of a continuous mat, spanned the ocean floor, and possibly covered the entire earth. -

-

- My time as a living being was limited. For several years, the scientific community classified me as a living organism. When Huxley's rival Lynn Margulis demonstrated that my movements were caused by an inorganic reaction between mud and alcohol, added to the mud sample as a preservative, I was reclassified as non-life, a found automaton. Life is the transmutation of sunlight, she wrote in the paper that disproved my aliveness. -

-
-
- -

- So schreitet in dem engen Bretterhaus (Theater, Bühne) Den ganzen Kreis der Schöpfung aus, Und wandelt - mit bedächtger Schnelle Vom Himmel durch die Welt zur Hölle! Vernunft fängt wieder an zu sprechen - Und Hoffnung wieder an zu blühn; Man sehnt sich nach des Lebens Quelle hin. Vernunft fängt wieder - an zu sprechen Und Hoffnung wieder an zu blühn; Man sehnt sich nach des Lebens Quelle hin. -

-

- Gewöhnlich glaubt der Mensch, wenn er sie beim Kragen hätte. Ich bin von je der Ordnung Freund gewesen. - Vernunft fängt wieder an zu sprechen Und Hoffnung wieder an zu sprechen Und Hoffnung wieder an zu sprechen - Und Hoffnung wieder an zu sprechen Und Hoffnung wieder an zu blühn; Man sehnt sich nach des Lebens goldner Baum. -

-
-
- ); -} \ No newline at end of file +import Seo from "../Components/Seo"; + +export default function ({slug, name}) { + return ( + + + + + + + + + + + + + +

+ Solar projection of a physical water animation. A droplet of water + animates on a square of etched, conductive glass. The animation is + driven by electricity and influenced by the pattern etched on the + glass, which functions as a visual score and electrical circuit. The + animation is displayed as an analog projection that uses sunlight as + a light source. +

+

+ From 6/1 to 6/12, ten live streams, each using a different etched + glass, will take place at 3PM PST, when the sunlight is strongest in + the space. +

+
+
+ + + Analog projection of water on square, gray board. The light source for the projection is sunlight. The water projection looks shiny, with areas of blue, white, and orange. An etched design can be seen through the water. The board is on the floor, and leans against a white wall. + + + + + View of a room with a window, projection apparatus, and gray board leaning against a wall. Sunlight comes through the window, and is focused by a rectangular lens that points at the projection apparatus. + + + + + View of projection on board with apparatus visible in the frame but slightly out of focus. + + + + + Closeup of apparatus. A circular lens, mirror, and glass plate with liquid can be seen. + + + + + Closeup of 8 wires coming out of apparatus. The wires are braided together. + + + + +

Message from Mud

+

+ I was born from mud, unearthed from the ocean floor and sealed in a + jar. The men who found me were crewmembers of the Cyclops, a ship + that was preparing to lay network cables between Europe and North + America. When the ship returned to land, they sent me to the + biologist Thomas Huxley for examination. +

+

+ In his lab, ten years later, Huxley removed the mud sample from + storage. He dispensed a droplet of my body onto a glass microscope + slide. Through the lens, Huxley saw what looked like a network of + veins. He watched me glide across the glass and engulf a small + particle, as if I was feeding. +

+

+ The presence of animation was enough to convince Huxley that I was + protoplasm, an ancient slime organism thought to be the first + instance of life. More than any single piece of evidence, Huxley was + captivated by the image of creation in total darkness. He imagined + slime streaming and pulsating in an ocean abyss, and the clarity of + this vision made him eager to share my arrival with his peers. +

+

+ In a paper, Huxley named me Bathybius Haeckelii. Bathybius + means “deep life,” and Haeckelii was in honor of his friend, the + zoologist and artist Ernst Haeckel, who was a proponent of the + primordial slime theory. I provided a link between nonliving and + living matter, and as such became an object of intense study. Huxley + declared in speeches that my body, in the form of a continuous mat, + spanned the ocean floor, and possibly covered the entire earth. +

+

+ My time as a living being was limited. For several years, the + scientific community classified me as a living organism. When + Huxley's rival Lynn Margulis demonstrated that my movements were + caused by an inorganic reaction between mud and alcohol, added to + the mud sample as a preservative, I was reclassified as non-life, a + found automaton. Life is the transmutation of sunlight, she wrote in + the paper that disproved my aliveness. +

+
+
+ +

+ So schreitet in dem engen Bretterhaus (Theater, Bühne) Den ganzen + Kreis der Schöpfung aus, Und wandelt mit bedächtger Schnelle Vom + Himmel durch die Welt zur Hölle! Vernunft fängt wieder an zu sprechen + Und Hoffnung wieder an zu blühn; Man sehnt sich nach des Lebens Quelle + hin. Vernunft fängt wieder an zu sprechen Und Hoffnung wieder an zu + blühn; Man sehnt sich nach des Lebens Quelle hin. +

+

+ Gewöhnlich glaubt der Mensch, wenn er sie beim Kragen hätte. Ich bin + von je der Ordnung Freund gewesen. Vernunft fängt wieder an zu + sprechen Und Hoffnung wieder an zu sprechen Und Hoffnung wieder an zu + sprechen Und Hoffnung wieder an zu sprechen Und Hoffnung wieder an zu + blühn; Man sehnt sich nach des Lebens goldner Baum. +

+
+
+ ); +} diff --git a/src/work/ZeynepAbes.js b/src/work/ZeynepAbes.js index 535bb98..64022c5 100644 --- a/src/work/ZeynepAbes.js +++ b/src/work/ZeynepAbes.js @@ -1,103 +1,126 @@ -import React from 'react'; +import React from "react"; -import Artist from '../Containers/Artist'; -import ProjectCover from '../Components/ProjectCover'; -import ProjectHeader from '../Components/ProjectHeader'; -import ArtistBio from '../Components/ArtistBio'; -import ProjectColumns, { Column } from '../Components/ProjectColumns'; -import Video from '../Components/Video'; -import Image from '../Components/Image'; +import Artist from "../Containers/Artist"; +import ProjectCover from "../Components/ProjectCover"; +import ProjectHeader from "../Components/ProjectHeader"; +import ArtistBio from "../Components/ArtistBio"; +import ProjectColumns, { Column } from "../Components/ProjectColumns"; +import Video from "../Components/Video"; +import Image from "../Components/Image"; -import Placeholder from './assets/placeholder.png'; +import Placeholder from "./assets/placeholder.png"; -export default function() { - return ( - - + + - - - - - - - -

- Memory place navigates through three moments I keep coming back to whenever I visit my home. These emotional - spaces attempt to explore the relationship between personal and public memories and how specific moments from - our past remain as a constant reminder of what home can be. In a time where many of our interactions are mediated, - Memory Place investigates the specific kind of alienation that arises from experiencing significant events at home - in mediated ways. -

-
-
- - - - - - - - - - -

- My home has felt like a different place every time I visit. I shared a hope like many others who leave their home - countries, the hope to bring something of value back. Yet, this dream has become a harder reality, a reality that - we fear will never happen. A naive imagination of emotion freed from the fetters of tradition; individual creativity; - freedom and tolerance; respect for difference. With such a loss of freedom of thought, home now represents the loss - of a collective memory of a peculiar city. A site of intense melancholy that I’m afraid to dream a future in. -

-
- -

- Some things have remained the same, a memory that repeats itself every time I’ve visited for the past decade. My mom's - act of welcoming me home. I enter the house, all kinds of familiar scents surround me. The dinner table is overflowing - with food. An ungodly amount of food, that doesn't even go well together. Some eggplant rice from my grandma, creamy - pastries from my favorite bakery, red lentil koftes, crispy calamari from our local seafood place, plenty of veggie - dishes drenched in olive oil, spinach borek and some tea along with rice pudding and baklava of all kinds. My mom hops - around the dinner table, proudly displaying her work. She asks me what I've missed the most, as she tries to squeeze - one last kofte on the plate that's overflowing with food. I feel unconcerned for a moment, and home feels the same. -

-
- -

- But the most painful thing is when you feel stable, and suddenly you're out of your home again. And that feeling of loss - comes rushing back, where our history is censored and our personal memories of Istanbul’s complex individuality fades. -

-
-
- -

- Zeynep is an artist and curator from Istanbul, Turkey. She studied film and interactive media at Emerson College, later - getting her start at LACMA’s Art+Tech lab creating AR installations. She then worked at the Sundance Film Festival's - New Frontier Exhibitions and is currently an MFA candidate at UCLA’s Design Media Arts program. She primarily works with - archived photography, video, and immersive media. Her subjects revolve around identity, history, and loss of memory. She - is deeply influenced by Istanbul’s city culture and in pursuit of exploring the shifting identity of Turkey to navigate - the struggle and alienation that arise from changing social environments. -

-
-
- ); -} \ No newline at end of file + link="https://www.zeynepmadethis.com/" + /> + + + + + + + +

+ Memory place navigates through three moments I keep coming back to + whenever I visit my home. These emotional spaces attempt to explore + the relationship between personal and public memories and how + specific moments from our past remain as a constant reminder of what + home can be. In a time where many of our interactions are mediated, + Memory Place investigates the specific kind of alienation that + arises from experiencing significant events at home in mediated + ways. +

+
+
+ + + + + + + + + + +

+ My home has felt like a different place every time I visit. I shared + a hope like many others who leave their home countries, the hope to + bring something of value back. Yet, this dream has become a harder + reality, a reality that we fear will never happen. A naive + imagination of emotion freed from the fetters of tradition; + individual creativity; freedom and tolerance; respect for + difference. With such a loss of freedom of thought, home now + represents the loss of a collective memory of a peculiar city. A + site of intense melancholy that I’m afraid to dream a future in. +

+
+ +

+ Some things have remained the same, a memory that repeats itself + every time I’ve visited for the past decade. My mom's act of + welcoming me home. I enter the house, all kinds of familiar scents + surround me. The dinner table is overflowing with food. An ungodly + amount of food, that doesn't even go well together. Some eggplant + rice from my grandma, creamy pastries from my favorite bakery, red + lentil koftes, crispy calamari from our local seafood place, plenty + of veggie dishes drenched in olive oil, spinach borek and some tea + along with rice pudding and baklava of all kinds. My mom hops around + the dinner table, proudly displaying her work. She asks me what I've + missed the most, as she tries to squeeze one last kofte on the plate + that's overflowing with food. I feel unconcerned for a moment, and + home feels the same. +

+
+ +

+ But the most painful thing is when you feel stable, and suddenly + you're out of your home again. And that feeling of loss comes + rushing back, where our history is censored and our personal + memories of Istanbul’s complex individuality fades. +

+
+
+ +

+ Zeynep is an artist and curator from Istanbul, Turkey. She studied + film and interactive media at Emerson College, later getting her start + at LACMA’s Art+Tech lab creating AR installations. She then worked at + the Sundance Film Festival's New Frontier Exhibitions and is currently + an MFA candidate at UCLA’s Design Media Arts program. She primarily + works with archived photography, video, and immersive media. Her + subjects revolve around identity, history, and loss of memory. She is + deeply influenced by Istanbul’s city culture and in pursuit of + exploring the shifting identity of Turkey to navigate the struggle and + alienation that arise from changing social environments. +

+
+
+ ); +} diff --git a/src/work/sample.js b/src/work/sample.js index 5a56ec6..6a91a0b 100644 --- a/src/work/sample.js +++ b/src/work/sample.js @@ -20,18 +20,18 @@ export default function() { columns={[