keymanapp / keyman

Keyman cross platform input methods system running on Android, iOS, Linux, macOS, Windows and mobile and desktop web
https://keyman.com/
Other
386 stars 107 forks source link

feat(web): Touch Keyboard black characters on white background colour option #3226

Open bjeenkhoorn opened 4 years ago

bjeenkhoorn commented 4 years ago

The touch keyboard is presented as white on black, whereas "normal" android keyboards are black on white like most keyboards are. I would like to be able to choose black characters on a white keyboard background so the keyboard looks like an other samsung or G-board, with light-grey rounded borders on the keys

mcdurdin commented 4 years ago

This was on an earlier version of our Roadmap but has slipped due to competing priorities. I would like to get a feel for how important the user community believes this is.

What I'd really like to see is the ability to have custom themes for the keyboard and allow the user to choose their preference. We have the technical ability to do this but do not have any user interface to allow users to choose themes or create or add their own. There was a theme builder in development many years ago at http://keymanweb.com/keyboard-styling-tool.php (source) but it does not currently work because it has been stagnant so long.

bjeenkhoorn commented 4 years ago

OK, thanks for the info. Of course in a sense it is cosmetic, but in terms of advocacy again, if it can be made to look like "a normal keyboard" that is an advantage. Have you thought of organising a Hackaton for keyman? Suddenly, you will have 50 developers at your disposal .... (for a weekend) . Just an out of the box thought. Bart

Op wo 10 jun. 2020 om 23:49 schreef Marc Durdin notifications@github.com:

This was on an earlier version of our Roadmap https://blog.keyman.com/2020/03/keyman-roadmap-march-2020/ but has slipped due to competing priorities. I would like to get a feel for how important the user community believes this is.

What I'd really like to see is the ability to have custom themes for the keyboard and allow the user to choose their preference. We have the technical ability to do this but do not have any user interface to allow users to choose themes or create or add their own. There was a theme builder in development many years ago at http://keymanweb.com/keyboard-styling-tool.php (source https://github.com/keymanapp/keymanweb.com/blob/master/keyboard-styling-tool.php) but it does not currently work because it has been stagnant so long.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/keymanapp/keyman/issues/3226#issuecomment-642285814, or unsubscribe https://github.com/notifications/unsubscribe-auth/ALIBP4BTZHFYBIIJTBW5CILRV75WTANCNFSM4N2H4OZQ .

mcdurdin commented 4 years ago

Of course in a sense it is cosmetic, but in terms of advocacy again, if it can be made to look like "a normal keyboard" that is an advantage.

I completely agree. I wish we had the time to do the styling work.

Have you thought of organising a Hackaton for keyman?

I don't know how we'd get 50 people with the requisite skills together to do something like this! I reckon it would take a couple of months to organise -- and would really be unworkable online, which rules out any chance of doing it before travel is possible again. The Keyman team is scattered across 4 different countries so that's also challenging.

I've been to a few hackathons. In my experience, I've found they rarely deliver much except proof of concept code, which then needs significant investment from the core team to finish -- usually, this means rewriting the code. In a sense, writing the code is the "easy" bit; it's the design and understanding the issue that's hard and takes lots of time. So for a hackathon to be successful, we'd need to do a lot of groundwork and design, at which point writing the code is probably cheaper for the team anyway.

MattGyverLee commented 3 years ago

Hi @bjeenkhoorn and @mcdurdin,

I'm not part of the Keyman team, but I've recently done a deep dive into Keyman's CSS while working out some style inconsistencies.

Almost everything (with the exception of some longpress popups), including curves, borders, and colors, can be restyled in Keyman Mobile if you have the patience to test the CSS (some features like complex gradients are only supported on newer Android, so I needed to fall back to solid colors).

Dark and Light Modes

Dark mode and Light mode are currently supported in recent versions of KM iOS. KM Android only uses the mid-dark gray theme (unless you know how to unlock the old light tablet theme that's probably going away with my PR :) ), but I understand the same light/dark swap could work in recent Android versions with a little bit of CSS work (with the main challenge being deciding whether old phones without OS-level dark-mode options get light or dark), and the OS would take care of configuration.

Current Options

Generating a "theme" is relatively easy if you know CSS. I have adapted my themes gently for Android (shown below), iOS Light, and iOS dark. The main difference in my CSS is that the Green diacritic keys always fade to the default key color, whether dark, light, or mid-grey. image

https://github.com/keymanapp/keyboards/blob/master/release/sil/sil_cameroon_qwerty/source/sil_cameroon_qwerty.css

The challenge is when you move beyond easily testable triggers like dark, light, and platform into user preferences. Defining multiple themes beyond Dark and Light might require CSS variables (which I don't have much experience in).

Currently, you could create 2 or more separate versions of your keyboard with different CSS stylesheets. This would be great if you bundled them together in an app and made them easy to distinguish/choose, but obviously not ideal for distribution via Keyman, since theme should be a separate feature from layout.

Grand Ideas:

Maybe If we had a preferred color variable added to the keyboard class at runtime, we could hook into that and write some custom CSS rules for each situation, but again, it might be better to do these themes at the app level.

If theming was implemented in Developer, I could imagine configuration allowing you to choose the key, text, special, touched, background, and "on" colors. I think Gboard allows you to choose a base color, and the accent colors follow that.

The UI to configure and choose themes would need to be added to several platforms, creating a lot of work for the devs.

mcdurdin commented 3 years ago

I'm hoping to get styling and custom theming into the 15.0 roadmap, if we can find the resource to do it. There's pressure from both ends: keyboard devs want to style their keyboards, and keyboard users want to be able to select their own keyboard styles as well. This requires a solid theming system of some sort!