Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
1163 lines
33 KiB
CSS
1163 lines
33 KiB
CSS
html {
|
|
/**
|
|
* font-size is to be overwritten by JavaScript here.
|
|
* We are abusing CSS unit "rem" as a grid to describe the size of our elements.
|
|
* JavaScript will set 1 rem to 1/32 of the screen width when the screen is vertical,
|
|
* and 1/64 of the screen width when the screen is landscape.
|
|
*/
|
|
font-size: 10px;
|
|
pointer-events: none;
|
|
}
|
|
|
|
body {
|
|
margin: 0;
|
|
overflow: hidden;
|
|
}
|
|
|
|
button::-moz-focus-inner {
|
|
padding: 0;
|
|
border: 0;
|
|
}
|
|
|
|
/* Keyboard */
|
|
#keyboard {
|
|
position: absolute;
|
|
bottom: 0;
|
|
z-index: 15;
|
|
width: 100%;
|
|
background-color: red; /* User should not see this */
|
|
pointer-events: auto;
|
|
visibility: visible;
|
|
}
|
|
|
|
/* Show/hide the layout page view */
|
|
.keyboard-type-container:not([data-active]) {
|
|
display: none;
|
|
}
|
|
|
|
/* Row styles */
|
|
.keyboard-row {
|
|
text-align: center;
|
|
font-size: 0;
|
|
display: flex;
|
|
}
|
|
.row0 {
|
|
background-color: #606b6e;
|
|
}
|
|
.row1 {
|
|
background-color: #5b6668;
|
|
}
|
|
|
|
.row2 {
|
|
background-color: #566063;
|
|
}
|
|
|
|
.row3 {
|
|
background-color: #525c5e;
|
|
}
|
|
|
|
.row0 > .keyboard-key > .visual-wrapper > .key-element {
|
|
border-right-color: #525b5e;
|
|
}
|
|
|
|
.row1 > .keyboard-key > .visual-wrapper > .key-element {
|
|
border-right-color: #4c5657;
|
|
}
|
|
|
|
.row2 > .keyboard-key > .visual-wrapper > .key-element {
|
|
border-right-color: #475052;
|
|
}
|
|
|
|
.row3 > .keyboard-key > .visual-wrapper > .key-element {
|
|
border-right-color: #434b4d;
|
|
}
|
|
|
|
.rows-5 > .row0 {
|
|
background-color: #636e71;
|
|
}
|
|
|
|
.rows-5 > .row1 {
|
|
background-color: #5e696c;
|
|
}
|
|
|
|
.rows-5 > .row2 {
|
|
background-color: #5b6668;
|
|
}
|
|
|
|
.rows-5 > .row3 {
|
|
background-color: #566063;
|
|
}
|
|
|
|
.rows-5 > .row4 {
|
|
background-color: #525b5e;
|
|
}
|
|
|
|
.rows-5 > .row4 > .keyboard-key > .visual-wrapper > .key-element {
|
|
border-right-color: #434b4d;
|
|
}
|
|
|
|
#keyboard.full-candidate-panel .keyboard-key {
|
|
visibility: hidden;
|
|
}
|
|
|
|
/* Buttons: logic keys */
|
|
.keyboard-key {
|
|
display: inline-block;
|
|
padding: 0;
|
|
font-size: 0;
|
|
font-family: sans-serif;
|
|
border: none;
|
|
border-radius: 0; /* To override the system-default border radius for button element */
|
|
background: none;
|
|
|
|
/* In case the keys are nested, for example in the alt char menu,
|
|
they need to be tappable. */
|
|
pointer-events: auto;
|
|
flex: auto;
|
|
}
|
|
|
|
.keyboard-key { /* remove this line from build/csslint/xfail.list after csslint understand CSS variables */
|
|
--key-height: 4.5rem;
|
|
}
|
|
|
|
.rows-5 .keyboard-key { /* remove this line from build/csslint/xfail.list after csslint understand CSS variables */
|
|
--key-height: 3.4rem;
|
|
}
|
|
|
|
.landscape .keyboard-key { /* remove this line from build/csslint/xfail.list after csslint understand CSS variables */
|
|
--key-height: 3.8rem;
|
|
}
|
|
|
|
.landscape .rows-5 .keyboard-key { /* remove this line from build/csslint/xfail.list after csslint understand CSS variables */
|
|
--key-height: 2.85rem;
|
|
}
|
|
|
|
/* Visible keys */
|
|
.keyboard-key > .visual-wrapper {
|
|
display: inline-block;
|
|
position: relative;
|
|
width: 100%;
|
|
height: var(--key-height);
|
|
margin: 0.4rem 0;
|
|
|
|
/* Events must originate from .keyboard-key, not its children elements */
|
|
pointer-events: none;
|
|
}
|
|
|
|
/* Standard key styles. */
|
|
.keyboard-key > .visual-wrapper > .key-element {
|
|
position: absolute;
|
|
top: 0;
|
|
bottom: 0;
|
|
left: 0;
|
|
right: 0;
|
|
color: #fff;
|
|
font-size: 2.4rem;
|
|
line-height: var(--key-height);
|
|
font-weight: normal;
|
|
text-align: center;
|
|
border-right: 0.1rem solid #525b5e;
|
|
border-left: 0.1rem solid transparent;
|
|
}
|
|
|
|
.keyboard-type-container:not(.lowercase) .key-element.lowercase {
|
|
visibility: hidden;
|
|
}
|
|
|
|
.keyboard-type-container:not(.uppercase-only).lowercase .key-element:not(.lowercase) {
|
|
visibility: hidden;
|
|
}
|
|
|
|
.popup {
|
|
position: absolute;
|
|
top: -5.8rem;
|
|
left: calc(50% - 2.8rem);
|
|
width: 5.6rem;
|
|
height: 5.6rem;
|
|
color: #fff;
|
|
font-size: 2.8rem;
|
|
line-height: 5.6rem;
|
|
border-radius: 50%;
|
|
background-color: #00aacc;
|
|
visibility: hidden;
|
|
|
|
/* To override the text-align in .keyboard-key:first-child or :last-child */
|
|
text-align: center;
|
|
}
|
|
|
|
.keyboard-key.highlighted {
|
|
background-color: #4a5255;
|
|
}
|
|
|
|
.keyboard-key:last-child > .visual-wrapper > .key-element {
|
|
border-right: transparent;
|
|
}
|
|
|
|
.keyboard-key.highlighted > .visual-wrapper > .key-element {
|
|
color: #00caf2;
|
|
}
|
|
|
|
/* Show the bubble text when the button is highlighted. */
|
|
.keyboard-key.highlighted > .visual-wrapper > .popup {
|
|
z-index: 1;
|
|
}
|
|
|
|
/* Special rules for lowercase and uppercase popups */
|
|
.keyboard-key.highlighted.uppercase-popup .popup.uppercase {
|
|
visibility: visible;
|
|
}
|
|
|
|
.keyboard-key.highlighted.lowercase-popup .popup.lowercase {
|
|
visibility: visible;
|
|
}
|
|
|
|
/* Special rules for popups near the screen edge */
|
|
.keyboard-row button:last-child.highlighted > .visual-wrapper > .popup {
|
|
left: -2.4rem;
|
|
}
|
|
|
|
.keyboard-row button:first-child.highlighted > .visual-wrapper > .popup {
|
|
left: 0;
|
|
}
|
|
|
|
/* Special keys */
|
|
.keyboard-key.special-key > .visual-wrapper > .key-element {
|
|
top: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
left: 0;
|
|
color: #abb0b1;
|
|
font-weight: 500;
|
|
font-size: 1.5rem;
|
|
font-family: 'Keyboard Symbols', sans-serif;
|
|
}
|
|
|
|
/* Highlight for special keys */
|
|
.keyboard-key.special-key.highlighted > .visual-wrapper > .key-element {
|
|
color: #00b8d6;
|
|
}
|
|
|
|
.keyboard-key.special-key.highlighted > .visual-wrapper:before,
|
|
.keyboard-key.special-key.highlighted > .visual-wrapper:after,
|
|
.keyboard-key.special-key.highlighted > .visual-wrapper > .popup,
|
|
.keyboard-key.highlighted[data-keycode="32"] > .visual-wrapper > .popup,
|
|
#keyboard-accent-char-menu .keyboard-key > .visual-wrapper:before {
|
|
opacity: 0;
|
|
}
|
|
|
|
|
|
/* Switching keys */
|
|
.keyboard-key.special-key.switch-key > .visual-wrapper > .key-element {
|
|
font-size: 1.8rem;
|
|
}
|
|
|
|
/* Page Switching key - [ABC], [Alt], and [12&] */
|
|
.keyboard-key.special-key.page-switch-key > .visual-wrapper > .key-element {
|
|
font-size: 1.7rem;
|
|
}
|
|
|
|
/* For disabled keys */
|
|
.keyboard-key.special-key[disabled="true"] {
|
|
/* Without this rule, the focus would lose when the user clicks this key.
|
|
This seems to be because a disabled key would not get touch/click event. */
|
|
pointer-events: none;
|
|
}
|
|
|
|
.keyboard-key.special-key[disabled="true"] > .visual-wrapper > .key-element {
|
|
color: #677172;
|
|
}
|
|
|
|
/* Special keys - text */
|
|
.keyboard-key.special-key.text > .visual-wrapper > .key-element {
|
|
font-family: Sans-serif;
|
|
}
|
|
|
|
/* Key states */
|
|
|
|
/* Active key, used for shift key - uppercase */
|
|
.keyboard-key.kbr-key-active {
|
|
background-color: #00caf2;
|
|
}
|
|
|
|
.keyboard-key.kbr-key-active > .visual-wrapper > .key-element {
|
|
color: #fff;
|
|
border-right-color: transparent;
|
|
}
|
|
|
|
/* Caps lock case */
|
|
.keyboard-key.special-key.kbr-key-hold:not(.highlighted) > .visual-wrapper > .key-element {
|
|
color: #00caf2;
|
|
}
|
|
|
|
/* The underline for caps lock */
|
|
.keyboard-key.kbr-key-hold:not(.highlighted) > .visual-wrapper {
|
|
box-shadow: 0 0.4rem 0 #00caf2;
|
|
}
|
|
|
|
.keyboard-key.pinyin-ch-ellipsis > .visual-wrapper > .key-element {
|
|
font-size: 1.6rem;
|
|
}
|
|
|
|
div.zh-encode-switcher-half {
|
|
margin-top: -0.8rem;
|
|
}
|
|
|
|
div.zh-encode-switcher {
|
|
width: 100%;
|
|
height: calc(50%);
|
|
padding: 0;
|
|
float: left;
|
|
font-size: 1.8rem;
|
|
}
|
|
|
|
div.zh-encode-switcher-selected {
|
|
color: #00AACC;
|
|
}
|
|
|
|
/* Alternatives menu -- this menu appears when you tap and hold a key that has
|
|
alternative special (accented) characters. The menu "grows" out of the key
|
|
and displays the list of alternatives. */
|
|
#keyboard-accent-char-menu {
|
|
position: absolute;
|
|
top: -6rem;
|
|
font-size: 0;
|
|
border-radius: 3rem;
|
|
background-color: #00aacc;
|
|
overflow: hidden;
|
|
text-align: left;
|
|
/* Special hack to make the keys in the menu flow upwards. */
|
|
transform: rotateX(180deg);
|
|
margin-left: -1.0rem; /* because the last child is wider than others */
|
|
}
|
|
|
|
#keyboard-accent-char-menu.kbr-menu-left {
|
|
left: auto;
|
|
|
|
/* because the last child is wider than others, shift 1 pixel to align with
|
|
* the key row. */
|
|
margin-right: -0.9rem;
|
|
}
|
|
|
|
#keyboard-accent-char-menu.left-edge {
|
|
margin-left: 0.4rem;
|
|
}
|
|
|
|
#keyboard-accent-char-menu.right-edge {
|
|
margin-right: 0.4rem;
|
|
}
|
|
|
|
/* Non keyboard key styles in menu */
|
|
#keyboard-accent-char-menu .keyboard-key {
|
|
transform: rotateX(180deg);
|
|
float: left;
|
|
}
|
|
|
|
#keyboard-accent-char-menu.kbr-menu-left .keyboard-key {
|
|
float: right;
|
|
}
|
|
|
|
/* if it is the first or last key in the accent menu make it wider */
|
|
#keyboard-accent-char-menu .keyboard-key:first-child,
|
|
#keyboard-accent-char-menu .keyboard-key:last-child {
|
|
min-width: 4.2rem;
|
|
}
|
|
|
|
/*
|
|
* If it is the first and the last key in the accent menu, it means that
|
|
* there is only one and we need to make it wider still so we get a round
|
|
* menu
|
|
*/
|
|
#keyboard-accent-char-menu .keyboard-key:first-child:last-child {
|
|
min-width: 6rem;
|
|
}
|
|
|
|
#keyboard-accent-char-menu .keyboard-key > .visual-wrapper {
|
|
height: 6rem;
|
|
margin: 0;
|
|
}
|
|
|
|
#keyboard-accent-char-menu .keyboard-key > .visual-wrapper .key-element {
|
|
background: none;
|
|
border-radius: 0;
|
|
border-right: 1px solid #008eab;
|
|
}
|
|
|
|
#keyboard-accent-char-menu .keyboard-key.highlighted > .visual-wrapper:after,
|
|
#keyboard-accent-char-menu .keyboard-key.highlighted > .visual-wrapper > .popup {
|
|
display: none;
|
|
}
|
|
|
|
/* Styles for keys in accent menu (not highlighted). */
|
|
#keyboard-accent-char-menu .keyboard-key > .visual-wrapper > .key-element {
|
|
line-height: 6rem;
|
|
font-weight: 500;
|
|
color: #fff;
|
|
|
|
/* XXX: to override the .lowercase show/hide control for each key, see Bug 1091018. */
|
|
visibility: visible;
|
|
}
|
|
|
|
#keyboard-accent-char-menu .keyboard-key:first-child > .visual-wrapper > .key-element {
|
|
padding-left: 0.5rem;
|
|
}
|
|
|
|
#keyboard-accent-char-menu .keyboard-key:last-child > .visual-wrapper > .key-element {
|
|
padding-right: 0.5rem;
|
|
}
|
|
|
|
#keyboard-accent-char-menu.kbr-menu-left .keyboard-key > .visual-wrapper > .key-element {
|
|
border-left: 1px solid #008eab;
|
|
border-right: 0;
|
|
}
|
|
|
|
#keyboard-accent-char-menu.kbr-menu-left .keyboard-key:first-child > .visual-wrapper > .key-element {
|
|
padding-right: 0.5rem;
|
|
padding-left: 0;
|
|
}
|
|
|
|
#keyboard-accent-char-menu.kbr-menu-left .keyboard-key:last-child > .visual-wrapper > .key-element {
|
|
padding-left: 0.5rem;
|
|
padding-right: 0;
|
|
}
|
|
|
|
/* Highlighted special accent characters. These keys appear in the popover
|
|
bubble above the key when you tap and hold. */
|
|
#keyboard-accent-char-menu .keyboard-key.highlighted > .visual-wrapper > .key-element {
|
|
background-color: #008eab;
|
|
}
|
|
|
|
/* Multi-row menu styles */
|
|
#keyboard-accent-char-menu.multi-row {
|
|
border-radius: 0.2rem;
|
|
margin-left: 0;
|
|
background-color: #00a1c2;
|
|
}
|
|
|
|
#keyboard-accent-char-menu.multi-row::before {
|
|
content: '';
|
|
background-color: #19a8c2;
|
|
width: 100%;
|
|
height: 50%;
|
|
bottom: 0;
|
|
left: 0;
|
|
position: absolute;
|
|
}
|
|
|
|
#keyboard-accent-char-menu.multi-row.kbr-menu-left {
|
|
/* To make the divider align the key row */
|
|
margin-right: 1px;
|
|
}
|
|
|
|
/* revert the expanded width because it won't have rounded corner */
|
|
#keyboard-accent-char-menu.multi-row .keyboard-key:first-child,
|
|
#keyboard-accent-char-menu.multi-row .keyboard-key:last-child {
|
|
min-width: 2.6rem;
|
|
}
|
|
|
|
#keyboard-accent-char-menu.multi-row .keyboard-key:first-child > .visual-wrapper > .key-element,
|
|
#keyboard-accent-char-menu.multi-row .keyboard-key:last-child > .visual-wrapper > .key-element {
|
|
padding-left: 0;
|
|
padding-right: 0;
|
|
}
|
|
|
|
/*
|
|
* Reset the margin used to align with the underneath key row, this is because
|
|
* generally, the key in alternatives char menu would have the same width as a
|
|
* normal key.
|
|
*/
|
|
.landscape #keyboard-accent-char-menu {
|
|
margin-left: 0;
|
|
}
|
|
|
|
.landscape #keyboard-accent-char-menu.kbr-menu-left {
|
|
/* Shift 1 pixel to align with the key row. */
|
|
margin-right: 0.1rem;
|
|
}
|
|
|
|
#keyboard.full-candidate-panel {
|
|
/* Occupy the space for the absolute-positioned full panel
|
|
= height of the panel + top border + bottom border */
|
|
padding-top: 3.2rem;
|
|
}
|
|
|
|
.keyboard-candidate-panel {
|
|
background: #252220;
|
|
padding: 0;
|
|
border-top: 0.2rem solid #606b6e;
|
|
border-bottom: 0.2rem solid #606b6e;
|
|
height: 2.8rem;
|
|
width: 100%;
|
|
overflow: hidden;
|
|
white-space: normal;
|
|
}
|
|
|
|
#keyboard.full-candidate-panel .keyboard-candidate-panel {
|
|
position: absolute;
|
|
top: 0;
|
|
height: -moz-calc(100% - 0.2rem);
|
|
border-bottom: none;
|
|
z-index: 1;
|
|
}
|
|
|
|
.keyboard-candidate-panel-toggle-button {
|
|
z-index: 1;
|
|
position: absolute;
|
|
top: 0.2rem; /* width of the candidate panel border */
|
|
right: 0;
|
|
font-size: 0;
|
|
height: 2.6rem; /* height of the candidate panel */
|
|
background: #252220 image-set(url("images/icon_extend.png") 1x, url("images/icon_extend@1.5x.png") 1.5x, url("images/icon_extend@2x.png") 2x, url("images/icon_extend@2.25x.png") 2.25x) center center no-repeat;
|
|
background-size: 2.4rem;
|
|
min-width: 4rem;
|
|
}
|
|
|
|
.keyboard-candidate-panel-toggle-button.hide {
|
|
visibility: hidden;
|
|
}
|
|
|
|
#keyboard.full-candidate-panel .keyboard-candidate-panel-toggle-button {
|
|
background-image: image-set(url("images/icon_close.png") 1x, url("images/icon_close@1.5x.png") 1.5x, url("images/icon_close@2x.png") 2x, url("images/icon_close@2.25x.png") 2.25x);
|
|
top: 0;
|
|
}
|
|
|
|
#keyboard.full-candidate-panel .suggestions-container {
|
|
overflow-y: auto;
|
|
height: 100%;
|
|
}
|
|
|
|
.keyboard-candidate-panel .candidate-row {
|
|
border-top: 0.1rem solid #000000;
|
|
display: flex;
|
|
}
|
|
|
|
.keyboard-candidate-panel .candidate-row:first-child {
|
|
border-top: none;
|
|
}
|
|
|
|
#keyboard.candidate-panel .keyboard-candidate-panel .candidate-row {
|
|
display: none;
|
|
}
|
|
|
|
#keyboard.candidate-panel .keyboard-candidate-panel .candidate-row-first {
|
|
display: flex;
|
|
}
|
|
|
|
.keyboard-candidate-panel-toggle-button.highlighted,
|
|
.keyboard-candidate-panel .candidate-row span.highlighted {
|
|
background-color: #008eab;
|
|
color: #333333;
|
|
}
|
|
|
|
.keyboard-candidate-panel .candidate-row span {
|
|
display: inline-block;
|
|
font-size: 2rem;
|
|
color: #a6a6a6;
|
|
text-align: center;
|
|
line-height: 2.8rem;
|
|
background: transparent image-set(url("images/divider.png") 1x, url("images/divider@1.5x.png") 1.5x, url("images/divider@2x.png") 2x, url("images/divider@2.25x.png") 2.25x) right center no-repeat;
|
|
background-size: auto 4rem;
|
|
border: none;
|
|
flex: auto;
|
|
}
|
|
|
|
/* Dummy element for flex box to look like a grid */
|
|
.keyboard-candidate-panel .candidate-row span:empty {
|
|
border: none;
|
|
background: none;
|
|
}
|
|
|
|
.keyboard-candidate-panel.vietnamese .candidate-row span {
|
|
font-size: 1.7rem;
|
|
}
|
|
|
|
/* for latin suggestions we don't need such a tall box */
|
|
/* and in latin we hide the toggle button, so we can be full-width */
|
|
.candidate-panel .keyboard-candidate-panel.latin {
|
|
display: block;
|
|
white-space: nowrap;
|
|
height: 3rem;
|
|
width: 100%;
|
|
background: #333;
|
|
border-top: none;
|
|
border-bottom: 0.1rem solid #a0a6a8;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.full-candidate-panel .keyboard-candidate-panel[data-truncated] .suggestions-container::after {
|
|
content: '…';
|
|
background: none ! important;
|
|
border-color: transparent ! important;
|
|
|
|
display: block;
|
|
text-align: center;
|
|
margin: 0;
|
|
height: 2.8rem;
|
|
font-size: 2rem;
|
|
color: #a6a6a6;
|
|
line-height: 2.8rem;
|
|
}
|
|
|
|
.keyboard-candidate-panel.latin span {
|
|
display: inline-block;
|
|
font-size: 2.0rem;
|
|
font-weight: normal;
|
|
line-height: 3rem;
|
|
height: 3rem;
|
|
border: 0;
|
|
margin: 0;
|
|
padding: 0;
|
|
background: none;
|
|
color: #fff;
|
|
text-align: center;
|
|
overflow: hidden;
|
|
white-space: nowrap;
|
|
width: 100%;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.keyboard-candidate-panel.latin div.autocorrect span {
|
|
color: #0ac;
|
|
}
|
|
|
|
/*
|
|
* Don't display the toggle button for latin suggestions.
|
|
* For now, at least, we only ever get 3 at a time
|
|
*/
|
|
#keyboard.candidate-panel .keyboard-candidate-panel-toggle-button.latin {
|
|
display: none;
|
|
}
|
|
|
|
.keyboard-candidate-panel span[data-active],
|
|
.keyboard-candidate-panel-toggle-button[data-active] {
|
|
background: -moz-linear-gradient(bottom, rgb(191,191,183) 10%, rgb(161,158,153) 90%);
|
|
}
|
|
|
|
/* A note to show on the key to indicate the alternative char */
|
|
.alt-note {
|
|
position: absolute;
|
|
top: 0.5rem;
|
|
color: #a6a6a6;
|
|
font: 1.6rem/1.6rem "Keyboard Symbols", sans-serif;
|
|
}
|
|
|
|
.keyboard-key.highlighted .alt-note {
|
|
visibility: hidden;
|
|
}
|
|
|
|
.keyboard-key.big-key > .visual-wrapper .key-element {
|
|
font-size: 3.2rem;
|
|
font-weight: normal;
|
|
color: #fff;
|
|
}
|
|
|
|
.keyboard-key.big-key .visual-wrapper .alt-note {
|
|
width: 100%;
|
|
text-align: center;
|
|
text-indent: 4rem;
|
|
font-size: 1.6rem;
|
|
top: 0.2rem;
|
|
padding-left: 1rem;
|
|
color: #a6a6a6;
|
|
}
|
|
|
|
.keyboard-key.big-key.highlighted .alt-note {
|
|
visibility: visible;
|
|
}
|
|
|
|
/* Increase tap area for first / last keys in a row that
|
|
doesn't fill full width */
|
|
.keyboard-key:first-child {
|
|
text-align: right;
|
|
}
|
|
.keyboard-key:last-child {
|
|
text-align: left;
|
|
}
|
|
|
|
.landscape .keyboard-key.special-key > .visual-wrapper > .key-element {
|
|
font: 500 2.1rem/var(--key-height) 'Keyboard Symbols', sans-serif;
|
|
}
|
|
|
|
.landscape .keyboard-key.highlighted > .visual-wrapper > .popup {
|
|
top: -7rem;
|
|
left: calc(50% - 3.5rem);
|
|
width: 7rem;
|
|
height: 7rem;
|
|
line-height: 7rem;
|
|
font-size: 3.5rem;
|
|
}
|
|
|
|
/*
|
|
* Styles for the dismiss suggestions button in the candidate panel
|
|
*/
|
|
.keyboard-candidate-panel.latin > .dismiss-suggestions-button {
|
|
height: 100%;
|
|
/*
|
|
* the icon is 2.4rem wide but the visual space only takes up 1.4rem
|
|
* we want 10 blank pixels to the left and 15 to the right. But the first
|
|
* suggestion has a 0.3rem margin, so we only need to add 1.2rem to the
|
|
* icon size.
|
|
*/
|
|
width: 3.6rem;
|
|
background: image-set(url("images/icon_dismiss.png") 1x, url("images/icon_dismiss@1.5x.png") 1.5x, url("images/icon_dismiss@2x.png") 2x, url("images/icon_dismiss@2.25x.png") 2.25x) 0.5rem center /2.4rem no-repeat;
|
|
margin: 0;
|
|
padding: 0;
|
|
float: left;
|
|
visibility: visible;
|
|
}
|
|
|
|
.keyboard-candidate-panel.latin > .dismiss-suggestions-button.hide {
|
|
visibility: hidden;
|
|
}
|
|
|
|
.keyboard-candidate-panel.latin > .suggestions-container {
|
|
display: flex;
|
|
width: calc(100% - 3.6rem);
|
|
float: left;
|
|
}
|
|
|
|
.keyboard-candidate-panel.latin > .suggestions-container > div {
|
|
text-align: center;
|
|
display: inline-block;
|
|
height: 100%;
|
|
margin: 0 0.3rem;
|
|
padding: 0;
|
|
border: 0;
|
|
overflow: hidden;
|
|
-moz-box-sizing: border-box;
|
|
flex: 1;
|
|
}
|
|
|
|
.handwriting-pad {
|
|
background-color: #ebeced;
|
|
margin: -1px;
|
|
float: left;
|
|
}
|
|
|
|
/* Indicator for keyboard hiding action */
|
|
.keyboard-key[data-keycode="32"] {
|
|
background: image-set(url("images/icon_hide_keyboard.png") 1x, url("images/icon_hide_keyboard@1.5x.png") 1.5x, url("images/icon_hide_keyboard@2x.png") 2x, url("images/icon_hide_keyboard@2.25x.png") 2.25x) right 0.4rem top 0.4rem / 1.6rem no-repeat;
|
|
}
|
|
|
|
.keyboard-key.highlighted[data-keycode="32"] {
|
|
background-color: #4a5255;
|
|
}
|
|
|
|
/* Indicator for alternate indicator */
|
|
.alternate-indicator {
|
|
background: image-set(url("images/icon_alternate_keyboard.png") 1x, url("images/icon_alternate_keyboard@1.5x.png") 1.5x, url("images/icon_alternate_keyboard@2x.png") 2x, url("images/icon_alternate_keyboard@2.25x.png") 2.25x) left 50% bottom 0.4rem / 1.4rem no-repeat;
|
|
}
|
|
|
|
.search-icon {
|
|
background: image-set(url("images/icon_search.png") 1x, url("images/icon_search@1.5x.png") 1.5x, url("images/icon_search@2x.png") 2x, url("images/icon_search@2.25x.png") 2.25x) left calc(50% - 0.1rem) bottom 1.2rem / 3rem no-repeat;
|
|
}
|
|
|
|
/* hide actual text for search-icon */
|
|
.keyboard-key.search-icon > .visual-wrapper > .key-element,
|
|
.keyboard-key.search-icon.highlighted > .visual-wrapper > .key-element {
|
|
color: transparent;
|
|
}
|
|
|
|
/* With symbols on the bottom */
|
|
.keyboard-key.bottom-symbol > .visual-wrapper:after {
|
|
content: '';
|
|
display: block;
|
|
bottom: 0;
|
|
position: absolute;
|
|
width: 100%;
|
|
text-align: center;
|
|
font-size: 1.2rem;
|
|
color: #a6a6a6;
|
|
margin-bottom: -0.3rem;
|
|
}
|
|
|
|
.keyboard-key.bottom-symbol.highlighted > .visual-wrapper:after {
|
|
opacity: 1;
|
|
}
|
|
|
|
.keyboard-key.bottom-symbol[data-keycode="50"] > .visual-wrapper:after {
|
|
content: 'ABC';
|
|
}
|
|
|
|
.keyboard-key.bottom-symbol[data-keycode="51"] > .visual-wrapper:after {
|
|
content: 'DEF';
|
|
}
|
|
|
|
.keyboard-key.bottom-symbol[data-keycode="52"] > .visual-wrapper:after {
|
|
content: 'GHI';
|
|
}
|
|
|
|
.keyboard-key.bottom-symbol[data-keycode="53"] > .visual-wrapper:after {
|
|
content: 'JKL';
|
|
}
|
|
|
|
.keyboard-key.bottom-symbol[data-keycode="54"] > .visual-wrapper:after {
|
|
content: 'MNO';
|
|
}
|
|
|
|
.keyboard-key.bottom-symbol[data-keycode="55"] > .visual-wrapper:after {
|
|
content: 'PQRS';
|
|
}
|
|
|
|
.keyboard-key.bottom-symbol[data-keycode="56"] > .visual-wrapper:after {
|
|
content: 'TUV';
|
|
}
|
|
|
|
.keyboard-key.bottom-symbol[data-keycode="57"] > .visual-wrapper:after {
|
|
content: 'WXYZ';
|
|
}
|
|
|
|
/* All keys except 0 should be move up to 2px. */
|
|
.keyboard-key.bottom-symbol:not([data-keycode="48"]) > .visual-wrapper > .key-element {
|
|
top: -0.2rem;
|
|
}
|
|
|
|
/* We need to put '*' in the middle, so its top is set top 8px. */
|
|
.keyboard-key.bottom-symbol > .visual-wrapper > .key-element[data-label="*"] {
|
|
top: 0.8rem;
|
|
}
|
|
|
|
/* Based on UI spec, [Backspace] is put in middle and 16px size. */
|
|
.keyboard-key.bottom-symbol[data-keycode="8"] > .visual-wrapper > .key-element {
|
|
top: 0;
|
|
font-size: 1.6rem;
|
|
}
|
|
|
|
/* Based on UI spec, alt-note '+' is set bigger. */
|
|
.keyboard-key.bottom-symbol[data-keycode="48"] > .visual-wrapper > .alt-note {
|
|
font-size: 1.8rem;
|
|
}
|
|
|
|
.emoji {
|
|
font-family: sans-serif;
|
|
border: none;
|
|
background: none;
|
|
font-size: 3rem;
|
|
min-height: 5rem;
|
|
min-width: 16.66vw;
|
|
padding: 0;
|
|
flex: 1;
|
|
}
|
|
|
|
.emoji.highlighted {
|
|
background-color: #4a5255;
|
|
}
|
|
|
|
.swipe-panel {
|
|
position: relative;
|
|
height: 16.2rem;
|
|
background-color: #606b6e;
|
|
}
|
|
|
|
.swipe-section {
|
|
position: absolute;
|
|
width: 100%;
|
|
transform: translateX(99.99%);
|
|
will-change: transform;
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.swipe-section:first-child {
|
|
transform: translateX(0);
|
|
}
|
|
|
|
.emoji-ime-switch {
|
|
background: image-set(url("images/emoji/keyboard_ic_ime_emoji_off.png") 1x, url("images/emoji/keyboard_ic_ime_emoji_off@1.5x.png") 1.5x, url("images/emoji/keyboard_ic_ime_emoji_off@2x.png") 2x, url("images/emoji/keyboard_ic_ime_emoji_off@2.25x.png") 2.25x) center center / 3rem no-repeat,
|
|
image-set(url("images/icon_alternate_keyboard.png") 1x, url("images/icon_alternate_keyboard@1.5x.png") 1.5x, url("images/icon_alternate_keyboard@2x.png") 2x, url("images/icon_alternate_keyboard@2.25x.png") 2.25x) left 50% bottom 0.4rem / 1.4rem no-repeat;
|
|
}
|
|
|
|
.emoji-ime-switch.highlighted {
|
|
background-image: image-set(url("images/emoji/keyboard_ic_ime_emoji_pressed.png") 1x, url("images/emoji/keyboard_ic_ime_emoji_pressed@1.5x.png") 1.5x, url("images/emoji/keyboard_ic_ime_emoji_pressed@2x.png") 2x, url("images/emoji/keyboard_ic_ime_emoji_pressed@2.25x.png") 2.25x);
|
|
}
|
|
|
|
/* styles for the switching keys of different emoji categories */
|
|
.swipe-switching-buttons {
|
|
background-color: #525a5d;
|
|
}
|
|
|
|
.swipe-switching-buttons > .active {
|
|
background-color: #606b6e;
|
|
border-bottom: 0.2rem solid #00aacb;
|
|
}
|
|
|
|
.swipe-switching-buttons > .keyboard-key > .visual-wrapper > .key-element {
|
|
border-right: 0.1rem solid transparent;
|
|
}
|
|
|
|
.emoji-recent {
|
|
background: #576367 image-set(url("images/emoji/keyboard_ic_recent_off.png") 1x, url("images/emoji/keyboard_ic_recent_off@1.5x.png") 1.5x, url("images/emoji/keyboard_ic_recent_off@2x.png") 2x, url("images/emoji/keyboard_ic_recent_off@2.25x.png") 2.25x) center center / 3rem no-repeat;
|
|
}
|
|
|
|
.keyboard-key.emoji-recent > .visual-wrapper > .key-element {
|
|
border-right: 0.1rem solid transparent;
|
|
border-left: 0.1rem solid #525a5d;
|
|
}
|
|
|
|
.emoji-recent.highlighted {
|
|
background-image: image-set(url("images/emoji/keyboard_ic_recent_pressed.png") 1x, url("images/emoji/keyboard_ic_recent_pressed@1.5x.png") 1.5x, url("images/emoji/keyboard_ic_recent_pressed@2x.png") 2x, url("images/emoji/keyboard_ic_recent_pressed@2.25x.png") 2.25x);
|
|
}
|
|
|
|
.emoji-people {
|
|
background: #576367 image-set(url("images/emoji/keyboard_ic_ppl_off.png") 1x, url("images/emoji/keyboard_ic_ppl_off@1.5x.png") 1.5x, url("images/emoji/keyboard_ic_ppl_off@2x.png") 2x, url("images/emoji/keyboard_ic_ppl_off@2.25x.png") 2.25x) center center / 3rem no-repeat;
|
|
}
|
|
|
|
.emoji-people.active {
|
|
background-image: image-set(url("images/emoji/keyboard_ic_ppl_on.png") 1x, url("images/emoji/keyboard_ic_ppl_on@1.5x.png") 1.5x, url("images/emoji/keyboard_ic_ppl_on@2x.png") 2x, url("images/emoji/keyboard_ic_ppl_on@2.25x.png") 2.25x);
|
|
}
|
|
|
|
.emoji-people.highlighted {
|
|
background-image: image-set(url("images/emoji/keyboard_ic_ppl_pressed.png") 1x, url("images/emoji/keyboard_ic_ppl_pressed@1.5x.png") 1.5x, url("images/emoji/keyboard_ic_ppl_pressed@2x.png") 2x, url("images/emoji/keyboard_ic_ppl_pressed@2.25x.png") 2.25x);
|
|
}
|
|
|
|
.emoji-nature {
|
|
background: #576367 image-set(url("images/emoji/keyboard_ic_nature_off.png") 1x, url("images/emoji/keyboard_ic_nature_off@1.5x.png") 1.5x, url("images/emoji/keyboard_ic_nature_off@2x.png") 2x, url("images/emoji/keyboard_ic_nature_off@2.25x.png") 2.25x) center center / 3rem no-repeat;
|
|
}
|
|
|
|
.emoji-nature.active {
|
|
background-image: image-set(url("images/emoji/keyboard_ic_nature_on.png") 1x, url("images/emoji/keyboard_ic_nature_on@1.5x.png") 1.5x, url("images/emoji/keyboard_ic_nature_on@2x.png") 2x, url("images/emoji/keyboard_ic_nature_on@2.25x.png") 2.25x);
|
|
}
|
|
|
|
.emoji-nature.highlighted {
|
|
background-image: image-set(url("images/emoji/keyboard_ic_nature_pressed.png") 1x, url("images/emoji/keyboard_ic_nature_pressed@1.5x.png") 1.5x, url("images/emoji/keyboard_ic_nature_pressed@2x.png") 2x, url("images/emoji/keyboard_ic_nature_pressed@2.25x.png") 2.25x);
|
|
}
|
|
|
|
.emoji-object {
|
|
background: #576367 image-set(url("images/emoji/keyboard_ic_object_off.png") 1x, url("images/emoji/keyboard_ic_object_off@1.5x.png") 1.5x, url("images/emoji/keyboard_ic_object_off@2x.png") 2x, url("images/emoji/keyboard_ic_object_off@2.25x.png") 2.25x) center center / 3rem no-repeat;
|
|
}
|
|
|
|
.emoji-object.active {
|
|
background-image: image-set(url("images/emoji/keyboard_ic_object_on.png") 1x, url("images/emoji/keyboard_ic_object_on@1.5x.png") 1.5x, url("images/emoji/keyboard_ic_object_on@2x.png") 2x, url("images/emoji/keyboard_ic_object_on@2.25x.png") 2.25x);
|
|
}
|
|
|
|
.emoji-object.highlighted {
|
|
background-image: image-set(url("images/emoji/keyboard_ic_object_pressed.png") 1x, url("images/emoji/keyboard_ic_object_pressed@1.5x.png") 1.5x, url("images/emoji/keyboard_ic_object_pressed@2x.png") 2x, url("images/emoji/keyboard_ic_object_pressed@2.25x.png") 2.25x);
|
|
}
|
|
|
|
.emoji-place {
|
|
background: #576367 image-set(url("images/emoji/keyboard_ic_place_off.png") 1x, url("images/emoji/keyboard_ic_place_off@1.5x.png") 1.5x, url("images/emoji/keyboard_ic_place_off@2x.png") 2x, url("images/emoji/keyboard_ic_place_off@2.25x.png") 2.25x) center center / 3rem no-repeat;
|
|
}
|
|
|
|
.emoji-place.active {
|
|
background-image: image-set(url("images/emoji/keyboard_ic_place_on.png") 1x, url("images/emoji/keyboard_ic_place_on@1.5x.png") 1.5x, url("images/emoji/keyboard_ic_place_on@2x.png") 2x, url("images/emoji/keyboard_ic_place_on@2.25x.png") 2.25x);
|
|
}
|
|
|
|
.emoji-place.highlighted {
|
|
background-image: image-set(url("images/emoji/keyboard_ic_place_pressed.png") 1x, url("images/emoji/keyboard_ic_place_pressed@1.5x.png") 1.5x, url("images/emoji/keyboard_ic_place_pressed@2x.png") 2x, url("images/emoji/keyboard_ic_place_pressed@2.25x.png") 2.25x);
|
|
}
|
|
|
|
.emoji-symbol {
|
|
background: #576367 image-set(url("images/emoji/keyboard_ic_symbol_off.png") 1x, url("images/emoji/keyboard_ic_symbol_off@1.5x.png") 1.5x, url("images/emoji/keyboard_ic_symbol_off@2x.png") 2x, url("images/emoji/keyboard_ic_symbol_off@2.25x.png") 2.25x) center center / 3rem no-repeat;
|
|
}
|
|
|
|
.emoji-symbol.active {
|
|
background-image: image-set(url("images/emoji/keyboard_ic_symbol_on.png") 1x, url("images/emoji/keyboard_ic_symbol_on@1.5x.png") 1.5x, url("images/emoji/keyboard_ic_symbol_on@2x.png") 2x, url("images/emoji/keyboard_ic_symbol_on@2.25x.png") 2.25x);
|
|
}
|
|
|
|
.emoji-symbol.highlighted {
|
|
background-image: image-set(url("images/emoji/keyboard_ic_symbol_pressed.png") 1x, url("images/emoji/keyboard_ic_symbol_pressed@1.5x.png") 1.5x, url("images/emoji/keyboard_ic_symbol_pressed@2x.png") 2x, url("images/emoji/keyboard_ic_symbol_pressed@2.25x.png") 2.25x);
|
|
}
|
|
|
|
.keyboard-key.emoji-symbol > .visual-wrapper > .key-element {
|
|
border-right: 0.1rem solid #525a5d ;
|
|
border-left: 0.1rem solid transparent;
|
|
}
|
|
|
|
/* Section indicator for emoji sections */
|
|
.section-indicator-container {
|
|
bottom: 0;
|
|
position: absolute;
|
|
width: 100%;
|
|
height: 1.7rem;
|
|
text-align: center;
|
|
}
|
|
|
|
.section-indicator {
|
|
display: inline-block;
|
|
background-color: #545d60;
|
|
width: 0.3rem;
|
|
height: 0.3rem;
|
|
border-radius: 50%;
|
|
margin: 0.7rem 0.3rem 0.7rem 0;
|
|
}
|
|
|
|
.section-indicator.active {
|
|
background-color: #3e4446;
|
|
}
|
|
|
|
/*
|
|
* Specific layout rules; When a layoutX.js has specificCssRule set to true
|
|
* you can use layout id (Example: ar for Arabic) as a class name.
|
|
* This is useful is cases where characters are outlining their containers.
|
|
*/
|
|
|
|
/* Arabic */
|
|
.ar .keyboard-key:not(.special-key) > .visual-wrapper > .key-element {
|
|
font-size: 1.8rem;
|
|
}
|
|
|
|
.ar .keyboard-key > .visual-wrapper > .key-element[data-label="ض"],
|
|
.ar .keyboard-key > .visual-wrapper > .key-element[data-label="ش"] {
|
|
margin-left:-.5rem;
|
|
}
|
|
|
|
.ar .keyboard-key > .visual-wrapper > .key-element[data-label="س"] {
|
|
margin-left:-.2rem;
|
|
}
|
|
|
|
.ar .keyboard-key > .visual-wrapper > .key-element[data-label="ص"] {
|
|
margin-left:-.1rem;
|
|
}
|
|
|
|
/* Bangla Probhat */
|
|
.bn-Probhat .keyboard-key:not(.special-key) > .visual-wrapper > .key-element[data-label="ো"] {
|
|
font-size: 1.6rem;
|
|
}
|
|
|
|
.bn-Probhat .keyboard-key:not(.special-key) > .visual-wrapper > .key-element[data-label="া"] {
|
|
font-size: 1.7rem;
|
|
}
|
|
|
|
/* Dzongkha */
|
|
.dz-BT .keyboard-key:not(.special-key) > .visual-wrapper > .key-element {
|
|
font-size: 2rem;
|
|
}
|
|
.dz-BT .keyboard-key > .visual-wrapper > .key-element[data-label="༃"],
|
|
.dz-BT .keyboard-key > .visual-wrapper > .key-element[data-label="༼"],
|
|
.dz-BT .keyboard-key > .visual-wrapper > .key-element[data-label="༽"] {
|
|
font-size: 1.6rem;
|
|
}
|
|
|
|
/* Hindi */
|
|
.hi .keyboard-key > .visual-wrapper > .key-element[data-label="औ"],
|
|
.hi .keyboard-key > .visual-wrapper > .key-element[data-label="आ"],
|
|
.hi .keyboard-key > .visual-wrapper > .key-element[data-label="ओ"],
|
|
.hi .keyboard-key > .visual-wrapper > .key-element[data-label="ऑ"] {
|
|
font-size: 2rem;
|
|
}
|
|
|
|
/* Myanmar */
|
|
.my .keyboard-key:not(.special-key) > .visual-wrapper > .key-element {
|
|
font-size: 2.2rem;
|
|
}
|
|
.landscape .my .keyboard-key:not(.special-key) > .visual-wrapper > .key-element {
|
|
font-size: 2rem;
|
|
}
|
|
|
|
/* Persian */
|
|
.fa .keyboard-key:not(.special-key) > .visual-wrapper > .key-element {
|
|
font-size: 1.9rem;
|
|
}
|
|
|
|
.fa .keyboard-type-container > .visual-wrapper > .key-element[data-label="﷼"] {
|
|
font-size: 1.9rem;
|
|
}
|
|
|
|
.fa .keyboard-key > .visual-wrapper > .key-element[data-label="ض"],
|
|
.fa .keyboard-key > .visual-wrapper > .key-element[data-label="ش"] {
|
|
margin-left:-.5rem;
|
|
}
|
|
|
|
.fa .keyboard-key > .visual-wrapper > .key-element[data-label="س"] {
|
|
margin-left:-.2rem;
|
|
}
|
|
|
|
.fa .keyboard-key > .visual-wrapper > .key-element[data-label="ص"] {
|
|
margin-left:-.1rem;
|
|
}
|
|
|
|
.fa .keyboard-key > .visual-wrapper > .key-element[data-label="◂┇▸"] {
|
|
font-size: 1.2rem;
|
|
}
|
|
|
|
/* Tamil */
|
|
.ta .keyboard-key:not(.special-key) > .visual-wrapper > .key-element {
|
|
font-size: 2.2rem;
|
|
}
|
|
|
|
.ta .keyboard-key > .visual-wrapper > .popup {
|
|
width: auto;
|
|
min-width: 4.4rem;
|
|
padding-left: 0.6rem;
|
|
padding-right: 0.6rem;
|
|
border-radius: 2.8rem;
|
|
}
|
|
|
|
.ta .keyboard-row button:last-child.highlighted > .visual-wrapper > .popup {
|
|
left: auto;
|
|
right: 0;
|
|
}
|
|
|
|
.ta .special-key > .visual-wrapper > .key-element[data-label="அஆஇ"] {
|
|
font-size: 1.1rem;
|
|
}
|
|
|
|
.landscape .ta .special-key > .visual-wrapper > .key-element[data-label="அஆஇ"] {
|
|
font-size: 1.7rem;
|
|
}
|
|
|
|
.landscape .ta .keyboard-key.highlighted > .visual-wrapper > .popup {
|
|
top: -7rem;
|
|
left: calc(50% - 3.5rem);
|
|
width: auto;
|
|
min-width: 5.6rem;
|
|
height: 7rem;
|
|
line-height: 7rem;
|
|
font-size: 3.5rem;
|
|
border-radius: 3.5rem;
|
|
padding-left: 0.7rem;
|
|
padding-right: 0.7rem;
|
|
}
|
|
|
|
.landscape .ta .keyboard-row button:last-child.highlighted > .visual-wrapper > .popup {
|
|
left: auto;
|
|
right: 0;
|
|
}
|
|
|
|
.landscape .ta .keyboard-key > .visual-wrapper > .key-element[data-label="ஔ"],
|
|
.landscape .ta .keyboard-key > .visual-wrapper > .key-element[data-label="ொ"] {
|
|
font-size: 2.5rem;
|
|
}
|
|
.landscape .ta .keyboard-key > .visual-wrapper > .key-element[data-label="ௌ"] {
|
|
font-size: 2rem;
|
|
}
|
|
|
|
.ta .keyboard-key > .visual-wrapper > .key-element[data-label="ஹ"],
|
|
.ta .keyboard-key > .visual-wrapper > .key-element[data-label="ஊ"],
|
|
.ta .keyboard-key > .visual-wrapper > .key-element[data-label="ா"],
|
|
.ta .keyboard-key > .visual-wrapper > .key-element[data-label="ூ"],
|
|
.ta .keyboard-key > .visual-wrapper > .key-element[data-label="ே"],
|
|
.ta .keyboard-key > .visual-wrapper > .key-element[data-label="ெ"] {
|
|
font-size: 1.7rem;
|
|
}
|
|
|
|
.ta .keyboard-key > .visual-wrapper > .key-element[data-label="ௗ"],
|
|
.ta .keyboard-key > .visual-wrapper > .key-element[data-label="ை"],
|
|
.ta .keyboard-key > .visual-wrapper > .key-element[data-label="ண"] {
|
|
font-size: 1.4rem;
|
|
}
|
|
|
|
.ta .keyboard-key > .visual-wrapper > .key-element[data-label="ஔ"],
|
|
.ta .keyboard-key > .visual-wrapper > .key-element[data-label="ொ"],
|
|
.ta .keyboard-key > .visual-wrapper > .key-element[data-label="ோ"] {
|
|
font-size: 1.2rem;
|
|
}
|
|
|
|
.ta .keyboard-key > .visual-wrapper > .key-element[data-label="ௌ"] {
|
|
font-size: 1.1rem;
|
|
}
|
|
|
|
/* Telugu */
|
|
.te .keyboard-key:not(.special-key) > .visual-wrapper > .key-element {
|
|
font-size: 2rem;
|
|
}
|
|
.portrait .te .keyboard-key > .visual-wrapper > .key-element[data-label="ీఊ"] {
|
|
font-size: 1.4rem;
|
|
}
|
|
.portrait .te .keyboard-key > .visual-wrapper > .key-element[data-label="ఋ"] {
|
|
font-size: 1.6rem;
|
|
}
|
|
|
|
/* Chinese Zhuyin */
|
|
.zh-Hant-Zhuyin .keyboard-key:not(.special-key) > .visual-wrapper > .key-element {
|
|
font-size: 2rem;
|
|
}
|