---
tags: mk
---
# mk-scroll-lab
- scroll
- this is basically front-end lab.
- mdf report elements
- [mk-css-notes](/k0t8cMcXR2uWAyB5VBpK7g)
- plan for dLab at end of month or in november (Carly and Andreja)
- [mk-scroll-lab-notes-20221014](/EFt-XU23SVG7bfPKywYyNA)
- [mk-microproject-document-google-sheets-as-backend](/RHsCJJpOS2W9Kxhpfy9EWA)
- [animations in figma](https://spin.atomicobject.com/2022/07/20/scroll-effect-figma/)
### tutorial sequence
- [mk-scroll-lab-tutorial-0-setup](/MUW6VjHRQAaO_fEV8mLqnQ)
- [mk-scroll-lab-tutorial-1-react-basics](/p4_MkX7jRzWxLecygcrugw)
- [mk-scroll-lab-tutorial-2-styling-basics](/pLF16pvMSjyk2zaeKf-2IA)
- [mk-scroll-lab-tutorial-3-scrollama-basics](/pGtK27VJRIi8tLdgM6-kXw)
- [mk-scroll-lab-tutorial-4-js-and-api-basics](/QjG6ZNeyTk-XjNN52TYNFA)
-
### notes on intersection observer
- https://dev.to/producthackers/intersection-observer-using-react-49ko
## remaking Anna's hello
### todo
- use animation (instead of transitions) for the span that gets highlighted on scroll up
## mk initial anna-hello build
mainly porting over Anna's styles and structure.
<iframe src="https://mk-scroll-lab.vercel.app/people/anna/hello-all-the-poems" width="100%" height="800px" frameborder="0"></iframe>
## tests
testing width
<div style="background-color: red; opacity:.1; height: 10px; width: 540px"></div>
<div style="background-color: red; opacity:.2; height: 10px; width: 560px"></div>
<div style="background-color: red; opacity:.3; height: 10px; width: 580px"></div>
<div style="background-color: red; opacity:.4; height: 10px; width: 600px"></div>
<div style="background-color: red; opacity:.5; height: 10px; width: 620px"></div>
<div style="background-color: red; opacity:.6; height: 10px; width: 640px"></div>
<div style="background-color: red; opacity:.7; height: 10px; width: 660px"></div>
<div style="background-color: red; opacity:.8; height: 10px; width: 680px"></div>
<div style="background-color: red; opacity:.9; height: 10px; width: 700px"></div>
<div style="background-color: red; opacity:1; height: 10px; width: 720px"></div>
## reference
#### some notes on the string replacement issues
packages:
- https://github.com/iansinnott/react-string-replace
- https://www.npmjs.com/package/react-process-string
- https://www.npmjs.com/package/regexify-string
### scroll
- first, in the scroll-lab zone. Let's pick a couple of targets.
- player card scrolling (and scrolling within a card)
- something pulling from airtable involve blog-posts
- simple story ideas
- shot by shot analysis
- mdf updates
-
- [mk-studies-scroll-effects-with-video](/rgcZtPo4Q3m06O6N1GxoDA)
- scroll-lab must-nows
1. ~~work through the 3 steps of the top hit for [framer and next page transitions](https://letsbuildui.dev/articles/animated-page-transitions-in-nextjs)~~
2. ~~then through [this alternative](https://wallis.dev/blog/nextjs-page-transitions-with-framer-motion)~~
3. ~~handle error~~
```
Error: Hydration failed because the initial UI does not match what was rendered on the server.
```
- see [this fix](https://nextjs.org/docs/messages/react-hydration-error). essentially we need to
4. animate youtube player on
- onReady
- onPlay
-
5. use instance methods on player with ref
6. draw graph, accept input
7. work through [framer docs](https://www.framer.com/docs/examples/)
8. try a css-only option like this [animate css tutorial](https://www.youtube.com/watch?v=8aCVQHxdHLA)
9. try some scroll triggered stuff
10. something with gsap
11. airtable db config and utilities
12. [react-player](https://www.npmjs.com/package/react-player)
13. synthesize for students
14. connect to [mongo](https://www.mongodb.com/developer/languages/javascript/nextjs-with-mongodb/)
15. do at least one [prisma + next tutorial](https://vercel.com/guides/nextjs-prisma-postgres)
16. explore [react-player](https://www.npmjs.com/package/react-player) in great detail
17.
- scroll-lab maybe-laters
- work on tutorial building blocks
- just constructing some box elements in react
- css for styling those
- then just getting some really basic steps in with react-scrollama
- but try react-scroll
tutorials and docs
- react-scroll scroll to top (in small unobjectionable top corner thing)
- [page animations with next and framer](https://letsbuildui.dev/articles/animated-page-transitions-in-nextjs)
- alternative [next and framer](https://wallis.dev/blog/nextjs-page-transitions-with-framer-motion)
- https://dev.to/ivandotv/full-page-transitions-with-next-js-1co5
- https://seb-graf.com/blog/nextjs-page-transition
- [morphing svg paths](https://css-tricks.com/morphing-svg-with-react-spring/)
- long [page transitions tutorial](https://www.youtube.com/watch?v=vF28aL7RLaU) with react-transition-group
- [morphing svg with react-spring](https://css-tricks.com/morphing-svg-with-react-spring/)
- the gatsby [anilink code](https://github.com/TylerBarnes/gatsby-plugin-transition-link/tree/master/src/AniLink) is a usefulu reference for rebuilding things like the wipe and paint-drip effects
- [tween pages](https://github.com/johnpolacek/TweenPages) for next
- https://tweenpages.vercel.app/docs
- [getting started with gsap and react](https://greensock.com/react)
- [gsap advanced](https://greensock.com/react-advanced)
- [slide presentation in react with spectacle](https://formidable.com/open-source/spectacle/docs/)
-
## next
- articulate how all of this is connected to animation lab
- the table as scrollytelling capture zone
- from react to video?!
- the phone and the restricted field of view
- peripheral vision, context, head-turning
- horizontal comparisons
- imprisoned in a column
- `const alert = "this site cannot be viewed on phones"`
- how do we populate a site on the fly with images from the studio?
- host on s3? firestore and firebase? locally?
- but at a simpler level, how does the app know the urls?
- let's say
- student writes on cards
- student video captured
- transcript captured
- stills captured
- audio captured
- pre-existing course materials
- what then?
- all saved to synology
- available there for local host
- programmatically change files for running in dev mode
- dynamically generate routes based on file system
- notify us of those routes in slack
- things recognized on camera trigger some of this?
- in lens studio?
- cv python stuff?
- lots of image recognition
- poem highlighting
-
### more next links
- https://nextjs.org/blog/markdown
- https://github.com/vercel/next.js/tree/canary/examples/with-mdx
- https://github.com/vercel/next.js/tree/canary/examples/with-mdx-remote
- https://blog.openreplay.com/creating-a-markdown-blog-powered-by-next-js-in-under-an-hour
- https://nextjs.org/docs/advanced-features/using-mdx
- https://www.primefaces.org/primereact/setup/
- https://mantine.dev/pages/basics/