Go to file
Johannes Marbach 14ed5fd1e8 Manually adapt UI when keyboard shows or hides on mobile Safari
Mobile Safari seems to be the only browser that does *not* resize the
viewport when the keyboard shows and hides. Instead the window is moved
to make room for the keyboard which moves content at the top off screen.

This uses the VisualViewport API to manually resize the `SessionView`
in response to keyboard display events. Additionally, if a DOM element
exists that has the `bottom-aligned-scroll` CSS class, its scroll
position is retained. Currently this only applies to the `Timeline`.

Note that the VisualViewport API was only introduced with iOS 13.
According to [statista.com], versions below 13 made up for 19% of
all iOS users in summer 2020, with the share continuing to fall off.
As a result, this seems like an acceptable workaround.

Fixes: #181

[statista.com]: https://www.statista.com/statistics/565270/apple-devices-ios-version-share-worldwide/

Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2021-03-26 08:29:33 +01:00
assets add public key for matrix.org sygnal instance 2021-03-23 18:20:23 +01:00
doc support override main css file 2021-03-25 18:54:10 +01:00
prototypes more prototypes 2021-03-08 14:17:31 +01:00
scripts Manually adapt UI when keyboard shows or hides on mobile Safari 2021-03-26 08:29:33 +01:00
src Manually adapt UI when keyboard shows or hides on mobile Safari 2021-03-26 08:29:33 +01:00
.editorconfig wip 2019-02-17 23:58:01 +01:00
.eslintrc.js allow empty blocks 2021-02-11 21:08:43 +01:00
.gitignore ignore build packages 2020-10-08 14:19:02 +02:00
codestyle.md notes on codestyle 2020-11-20 16:39:16 +01:00
Dockerfile Add Dockerfile 2020-10-21 13:01:16 +02:00
index.html add notes how to enable push for local dev 2021-03-23 18:20:23 +01:00
LICENSE add full license text 2020-08-05 18:40:45 +02:00
package.json release v0.1.40 2021-03-25 11:25:45 +01:00
README.md Fix typo 2021-02-08 14:21:13 +01:00
sw.js symlink service worker for local dev, so its scope captures whole app 2021-03-23 18:20:23 +01:00
TODO.md WIP 2020-08-05 18:17:35 +01:00
yarn.lock update caniuse to have up to date browser definitions for build script 2021-02-17 11:41:06 +01:00

Hydrogen

A minimal Matrix chat client, focused on performance, offline functionality, and broad browser support. This is work in progress and not yet ready for primetime. Bug reports are welcome, but please don't file any feature requests or other missing things to be on par with Element Web.

Goals

Hydrogen's goals are:

  • Work well on desktop as well as mobile browsers
  • UI components can be easily used in isolation
  • It is a standalone webapp, but can also be easily embedded into an existing website/webapp to add chat capabilities.
  • Loading (unused) parts of the application after initial page load should be supported

If you find this interesting, come and discuss on #hydrogen:matrix.org.

How to use

Hydrogen is deployed to hydrogen.element.io. You can run it locally yarn install (only the first time) and yarn start in the terminal, and point your browser to http://localhost:3000. If you prefer, you can also use docker.

FAQ

Some frequently asked questions are answered here.