Giter Club home page Giter Club logo

nothing-but-photos's Introduction

Nothing But Photos

A minimal photo gallery with an infinite x/y draggable photo grid.

https://nothingbut.photos

Built with

  • Astro
  • React
  • @react-spring/web
  • @use-gesture/react

Astro

Astro looks for .astro or .md files in the src/pages/ directory. Each page is exposed as a route based on its file name.

There's nothing special about src/components/, but that's where we like to put any Astro/React/Vue/Svelte/Preact components.

Any static assets, like images, can be placed in the src/assets directory.

๐Ÿงž Commands

All commands are run from the root of the project, from a terminal:

Command Action
npm install Installs dependencies
npm run dev Starts local dev server at localhost:3000
npm run build Build your production site to ./dist/
npm run preview Preview your build locally, before deploying
npm run astro ... Run CLI commands like astro add, astro check
npm run astro -- --help Get help using the Astro CLI

๐Ÿ‘€ Want to learn more?

Feel free to check our documentation or jump into our Discord server.

nothing-but-photos's People

Contributors

renrizzolo avatar

Watchers

 avatar

nothing-but-photos's Issues

return to grid broken case

The grid doesn't properly animate to the image position when you:

  • go directly to a /photo/:slug url
  • press prev or next
  • press return

Wheel is broken

  • wheel offset logic is generally broken (the drag offset is added to the wheel y but drag is from spring value and wheel offset is continuous)
  • Wheel doesn't take into account the added decay after a drag
  • should add ctrlKey modifier for swapping axis

Maintain drag velocity when reaching the edge

Find a way to continue the velocity decay, when hitting the edge of a frame.
To prevent the grid animating backwards when hitting the edge of the frame, we check for the decay amount exceeding the frame width / height, and return the original position if it does. but it also means the decay animation stops abruptly if it were to exceed the edge of the frame.

I guess we need to do 2 animations in sequence; to the edge of the frame, then the remainder after resetting back to the beginning of the frame.

if (!down) {
// this will do.
const immX =
dx < 0 ? xWithVelocity % width > 0 : xWithVelocity < -width;
const immY =
dy < 0 ? yWithVelocity % height > 0 : yWithVelocity < -height;
await next({
x: immX ? xPos : xWithVelocity % width,
y: immY ? yPos : yWithVelocity % height,
immediate: immX,
});

Fix exif data

Fix missing data, add correct camera for scanned photos

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.