Giter Club home page Giter Club logo

ranstax's Introduction

ranstax's People

Contributors

erikhuizinga avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

beth tmpillbox

ranstax's Issues

Increase visibility of the latest history entry

The latest history entry blends in with the rest of the UI. It could stand our a bit more:

  • when drawn
  • at all times

When drawn, a smooth scroll and/or an animated background colour could draw more attention to the new history entry.

The latest entry could at all times have a different style (e.g. font and background colour), so that it stands out from the rest of the history.

See also: https://boardgamegeek.com/thread/2973974/article/41904537#41904537

Add reset button

Besides the clear button, there could be a reset button.
Clearing resets the app to an empty state.
Resetting should reset to the initial state.

To users it should be clear what these buttons do, and what their difference is.

Make Ranstax available offline

Making it 'installable' (PWA) could prevent unnecessary app loading, and increase its accessibility/visibility as a side effect.

Use URL-encoded storage

Currently the browser's local storage is used as storage. This is not portable and not flexible. Investigate and implement using the URL as a data source, instead, or additionally.

  • I don't want to implement storage on some server, so I want to keep it on the client side.
  • As a user I expect Ranstax to be in the state that I left when I open Ranstax again, so that I can continue where I left off.
    • This implies that the user navigating to the root app URL without any URL-encoded data should lead the app to loading the expected state from somewhere. E.g. local storage could be used for that.
    • Loading this local state updates the URL-encoded state.
  • Since URLs can be used outside of Ranstax (e.g. as bookmarks, or be shared online (they should be)), they should be versioned and Ranstax should be able to migrate them forward.
    • Note that the URL encoding model / version is separate from the data that it encodes, as that might be versioned too.

This should also play nice with the browser's history: https://developer.mozilla.org/en-US/docs/Web/API/History_API. The expected and intended behaviour when the user navigates back/forward should be clear and accessible.

Some thoughts, not the definitive proposal, and not sure if possible with the history API:

  • When the user interacts with Ranstax in a way that mutates the URL-encoded state, the URL is updated, but the browser history is not.
  • When a user navigates back, they go back to the previous page before loading Ranstax. They don't load the previous Ranstax state.
  • Forward: they go to the latest state in Ranstax, either loaded from the URL or from local storage.

Improve history visibility

Some possible improvements

  • Font size could be larger by default, and even larger on smaller viewports.
  • On draw, entries could appear slowly (e.g. 200 ms), or be scrolled to slowly, so that the user's eye has time to detect the appearing history entry/entries. This would also help with #3.
  • Every other history entry could get a slightly darker background colour.

Debounce drawing

Debounce drawing, so that accidental double clicks/taps are filtered.

A debounce of 200 milliseconds should do the trick. The UI shouldn't reflect the 'disabled' state, because it's would lead to excessive 'flashing' or animations. Maybe the history items appearing can be animated with the same debounce time? This would also help with visibility of history items appearing (#4).

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.