Giter VIP home page Giter VIP logo

crt's People

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

crt's Issues

`deadSea` non-zero scroll starts

Quite often with carousels on TVs, the component will not start scrolling until some later child child element.

For example, a horizontal Carousel, where the focus is on the first child item, user moves right another two items and then scrolling only starts after that. As an API, it might look like

<div deadsea-orientation="horizontal" deadsea-scroll-start="2">

update `rollup`

Package   Current  Wanted  Latest  Location               Depended by
rollup      3.2.3  3.27.1  3.27.1  node_modules/rollup    crt

`classnames` equivalent

dealing with loads of classnames is a chore. Libraries such as classnames help, but are a bit much.

https://github.com/JedWatson/classnames

Instead, we could use something like this https://github.com/alexnault/classix/tree/main, which is much lighter, and faster and for now, ES5 safe.

As the classix lib itself is liberally licensed, and is just an efficient for loop, I'd rather just copy and attribute the code and provenance in the repo, rather than pulling it in as an npm module.

Create initial code drop

This repo starts from already existing code, so the first commit will likely be the dump of all that.

update `prettier`

Package   Current  Wanted  Latest  Location               Depended by
prettier    3.0.0   3.0.0   3.0.1  node_modules/prettier  crt

Investigate server side rendering

A common pain point with performance on TVs and STBs is creating and managing DOM with lots of JavaScript. Some of this DOM construction is unavoidable and makeElement() helps with that, but some could be avoided and skipped if the server just gave us the HTML already.

If this sounds familiar, then I guess it's how websites used to work, before single page apps became a thing and servers were reduced to being dumb data stores. The key difference is, we want to avoid reloading everything else, like a regular web app with different routes, and instead add and remove large-ish fragments of HTML and carry on scripting against those.

Yes, still sounds familiar.

back journey handling

Investigate strategies for handling back button behaviours.

It could be that a custom history stack is required, where two types of objects are pushed:

  • routes: /path/to/route: { type: 'route', value: 'path/to/route' }
  • focusables: #idstring: { type: 'element', value: '#idstring' }

and then a backKeyPress handler takes what's at the top of the stack.

The stack could be just that, Stack type class, with usual methods for management on it. Each change on the stack calls a change handler, and then it's up the view to handle what it should do (move focus around, navigate away, exit the app etc)

Also, the concept of certain destinations acting as slate cleaners. Such as, your main/top navigation. Any focus into that would signal to the back journey lib that the current stack can be cleared

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.