1 /* keyboard - jQuery UI Widget */
10 -ms-touch-action: manipulation
;
11 touch-action: manipulation
;
13 .ui-keyboard-has-focus {
26 -moz-user-focus: ignore
;
28 .ui-keyboard-button span {
32 display: inline-block
;
34 .ui-keyboard-button-endrow {
40 /* see http://nicolasgallagher.com/another-css-image-replacement-technique/ */
41 .ui-keyboard-space span, .ui-keyboard-empty span {
46 .ui-keyboard-preview-wrapper {
51 /* width is calculated in IE, since 99% = 99% full browser width =( */
52 .ui-keyboard-preview {
65 .ui-keyboard-input-current {
66 -moz-box-shadow: 0 0 5px #4d90fe;
67 -webkit-box-shadow: 0 0 5px #4d90fe;
68 box-shadow: 0 0 5px #4d90fe;
70 .ui-keyboard-placeholder {
73 /* disabled or readonly inputs, or use
74 input[disabled='disabled'] { color: #f00; } */
75 .ui-keyboard-nokeyboard {
80 display: inline-block
;
86 .ui-keyboard-NBSP span
, .ui-keyboard-ZWSP span
, .ui-keyboard-ZWNJ span
,
87 .ui-keyboard-ZWJ span, .ui-keyboard-LRM span, .ui-keyboard-RLM span {
93 /* combo key styling - toggles diacritics on/off */
94 .ui-keyboard-button.ui-keyboard-combo.ui-state-default {
95 border-color: #ffaf0f;
98 /* (in)valid inputs */
99 button
.ui-keyboard-accept
.ui-keyboard-valid-input
{
104 button
.ui-keyboard-accept
.ui-keyboard-valid-input:not
([disabled
]):hover
{
107 button
.ui-keyboard-accept
.ui-keyboard-invalid-input
{
112 filter: alpha
(opacity
=50);
114 button
.ui-keyboard-accept
.ui-keyboard-invalid-input:not
([disabled
]):hover
{
118 /*** Caret extension definition ***/
119 /* margin-top => is added to the caret height (top & bottom) */
126 /*** jQuery Mobile definitions ***/
127 /* jQuery Mobile styles - need wider buttons because of font size and
128 text-overflow:ellipsis */
129 div
.ui-body
.ui-keyboard button
.ui-keyboard-button
.ui-btn
{
131 border-color: transparent
;
133 .ui-body .ui-keyboard-button {
136 display: inline-block
;
138 .ui-body .ui-keyboard-widekey {
141 .ui-body .ui-keyboard-space {
144 .ui-body .ui-keyboard-space span {
145 visibility: hidden
; /* hides the ellipsis */
147 .ui-body .ui-keyboard-keyset {
150 .ui-body input.ui-input-text, .ui-body textarea.ui-input-text {
154 /* over-ride padding set by mobile ui theme - needed because the mobile script
155 wraps button text with several more spans */
156 .ui-body .ui-btn-inner {
163 font-size: 13px; /* mobile default size is 13px */
166 /* override Bootstrap excessive button padding */
167 button
.ui-keyboard-button
.btn
{
171 /* enable/disable icons */
172 button
.ui-keyboard-toggle span
{
175 display: inline-block
;
176 background-repeat: no-repeat
;
177 background-position: center center
;
178 background-size: contain
;
180 /* unlocked icon (keyboard enabled) */
181 button
.ui-keyboard-toggle span
{
182 /* light theme unlocked icon - fill: #111 */
183 background-image: url
(data:image
/svg
+xml
;base64
,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgZmlsbD0iIzExMSI
+PHBhdGggZD0iTTguNyw0LjRINy41SDUuMHYtMS45YzAtMS40LTEuMS0yLjUtMi41LTIuNWMtMS40LDAtMi41LDEuMS0yLjUsMi41djEuOWgxLjIgdi0xLjljMC0wLjcsMC42LTEuMiwxLjItMS4yczEuMiwwLjYsMS4yLDEuMnYxLjljLTAuNywwLTEuMiwwLjYtMS4yLDEuMlY4LjggYzAsMC43LDAuNiwxLjIsMS4yLDEuMmg1LjBDOS40LDEwLDEwLDkuNCwxMCw4LjhWNS42QzEwLDUuMCw5LjQsNC40LDguOCw0LjR6IE02LjYsNy40djEuMCBjMCwwLjItMC4xLDAuMy0wLjMsMC4zUzYuMCw4LjYsNi4wLDguNFY3LjRjLTAuMi0wLjEtMC4zLTAuMy0wLjMtMC41YzAtMC4zLDAuMy0wLjYsMC42LTAuNiBTNi45LDYuNiw2LjksNi45QzYuOSw3LjEsNi44LDcuMyw2LjYsNy40eiIvPjwvc3ZnPg
==);
185 .ui-keyboard-dark-theme button.ui-keyboard-toggle span {
186 /* dark theme unlocked icon - fill: #eee */
187 background-image: url
(data:image
/svg
+xml
;base64
,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgZmlsbD0iI2VlZSI
+PHBhdGggZD0iTTguNyw0LjRINy41SDUuMHYtMS45YzAtMS40LTEuMS0yLjUtMi41LTIuNWMtMS40LDAtMi41LDEuMS0yLjUsMi41djEuOWgxLjIgdi0xLjljMC0wLjcsMC42LTEuMiwxLjItMS4yczEuMiwwLjYsMS4yLDEuMnYxLjljLTAuNywwLTEuMiwwLjYtMS4yLDEuMlY4LjggYzAsMC43LDAuNiwxLjIsMS4yLDEuMmg1LjBDOS40LDEwLDEwLDkuNCwxMCw4LjhWNS42QzEwLDUuMCw5LjQsNC40LDguOCw0LjR6IE02LjYsNy40djEuMCBjMCwwLjItMC4xLDAuMy0wLjMsMC4zUzYuMCw4LjYsNi4wLDguNFY3LjRjLTAuMi0wLjEtMC4zLTAuMy0wLjMtMC41YzAtMC4zLDAuMy0wLjYsMC42LTAuNiBTNi45LDYuNiw2LjksNi45QzYuOSw3LjEsNi44LDcuMyw2LjYsNy40eiIvPjwvc3ZnPg
==);
190 /* locked icon (keyboard disabled) */
191 button
.ui-keyboard-toggle
.ui-keyboard-disabled span
{
192 /* light theme locked icon - fill: #111 */
193 background-image: url
(data:image
/svg
+xml
;base64
,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgZmlsbD0iIzExMSI
+PHBhdGggZD0iTTcuNCA0LjRWMi41YzAtMS40LTEuMS0yLjUtMi41LTIuNWMtMS40IDAtMi41IDEuMS0yLjUgMi41djEuOSBjLTAuNyAwLTEuMiAwLjUtMS4yIDEuMnYzLjFDMS4zIDkuNCAxLjggMTAgMi41IDEwaDQuOWMwLjcgMCAxLjItMC42IDEuMi0xLjJWNS42IEM4LjcgNC45IDguMSA0LjQgNy40IDQuNHogTTUuMyA3LjR2MS4wYzAgMC4yLTAuMSAwLjMtMC4zIDAuM2MtMC4yIDAtMC4zLTAuMS0wLjMtMC4zVjcuNCBjLTAuMi0wLjEtMC4zLTAuMy0wLjMtMC41YzAtMC4zIDAuMy0wLjYgMC42LTAuNmMwLjMgMCAwLjYgMC4zIDAuNiAwLjYgQzUuNiA3LjEgNS41IDcuMyA1LjMgNy40eiBNNi4yIDQuNEgzLjdWMi41YzAtMC43IDAuNS0xLjIgMS4yLTEuMmMwLjcgMCAxLjIgMC42IDEuMiAxLjIgVjQuNHoiLz48L3N2Zz4
=);
195 .ui-keyboard-dark-theme button.ui-keyboard-toggle.ui-keyboard-disabled span {
196 /* dark theme locked icon - fill: #eee */
197 background-image: url
(data:image
/svg
+xml
;base64
,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgZmlsbD0iI2VlZSI
+PHBhdGggZD0iTTcuNCA0LjRWMi41YzAtMS40LTEuMS0yLjUtMi41LTIuNWMtMS40IDAtMi41IDEuMS0yLjUgMi41djEuOSBjLTAuNyAwLTEuMiAwLjUtMS4yIDEuMnYzLjFDMS4zIDkuNCAxLjggMTAgMi41IDEwaDQuOWMwLjcgMCAxLjItMC42IDEuMi0xLjJWNS42IEM4LjcgNC45IDguMSA0LjQgNy40IDQuNHogTTUuMyA3LjR2MS4wYzAgMC4yLTAuMSAwLjMtMC4zIDAuM2MtMC4yIDAtMC4zLTAuMS0wLjMtMC4zVjcuNCBjLTAuMi0wLjEtMC4zLTAuMy0wLjMtMC41YzAtMC4zIDAuMy0wLjYgMC42LTAuNmMwLjMgMCAwLjYgMC4zIDAuNiAwLjYgQzUuNiA3LjEgNS41IDcuMyA1LjMgNy40eiBNNi4yIDQuNEgzLjdWMi41YzAtMC43IDAuNS0xLjIgMS4yLTEuMmMwLjcgMCAxLjIgMC42IDEuMiAxLjIgVjQuNHoiLz48L3N2Zz4
=);
200 .ui-keyboard
.ui-keyboard-disabled
button:not
(.ui-keyboard-toggle
),
201 .ui-keyboard.ui-keyboard-disabled input {
205 /*** Alt-Keys Popup extension ***/
206 /* clickable overlay on top of keyboard to hide the popup */
207 .ui-keyboard-overlay {
213 background: rgba
(0, 0, 0, 0.5);
215 /* the actual popup styling, class names from the css.container option are also
218 display: inline-block
;
219 /* default buttons are 2em wide + .1em margin on either side (set in
220 .ui-keyboard-button definition); so use multiples of 2.2em for a max-width
221 if you don't want any extra white space on the sides, e.g.
222 5 buttons * 2.2em = 11em,
223 6 buttons * 2.2em = 13.2em, etc
225 max-width: 22em; /* 10 buttons */
228 /*** Extender keyboard extension ***/
229 div
.ui-keyboard-extender
{
232 button
.ui-keyboard-extender span
{
235 display: inline-block
;
237 background-repeat: no-repeat
;
238 background-position: center center
;
239 background-size: contain
;
240 /* light theme extender icon - fill: #111 */
241 background-image: url
(data:image
/svg
+xml
;base64
,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgc3R5bGU9ImZpbGw6IzExMSI
+PGc
+PHBhdGggc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzExMSIgZD0iTSAwLjUsNC41IDE1LjUsNC41IDE1LjUsMTUuNSAwLjUsMTUuNSBaIj48L3BhdGg
+PHJlY3Qgd2lkdGg9IjIiIGhlaWdodD0iMiIgeD0iMiIgeT0iNiI
+PC9yZWN0PjxyZWN0IHdpZHRoPSIyIiBoZWlnaHQ9IjIiIHg9IjUiIHk9IjYiPjwvcmVjdD48cmVjdCB3aWR0aD0iMiIgaGVpZ2h0PSIyIiB4PSI4IiB5PSI2Ij48L3JlY3Q
+PHBhdGggZD0ibSAxMSw2IDMsMCAwLDUgLTIsMCAwLC0zIC0xLDAgeiI
+PC9wYXRoPjxyZWN0IHdpZHRoPSIyIiBoZWlnaHQ9IjIiIHg9IjEyIiB5PSIxMiI
+PC9yZWN0PjxyZWN0IHdpZHRoPSI2IiBoZWlnaHQ9IjIiIHg9IjUiIHk9IjEyIj48L3JlY3Q
+PHJlY3Qgd2lkdGg9IjIiIGhlaWdodD0iMiIgeD0iOSIgeT0iOSI
+PC9yZWN0PjxyZWN0IHdpZHRoPSIyIiBoZWlnaHQ9IjIiIHg9IjYiIHk9IjkiPjwvcmVjdD48cmVjdCB3aWR0aD0iMiIgaGVpZ2h0PSIyIiB4PSIyIiB5PSIxMiI
+PC9yZWN0PjxyZWN0IHdpZHRoPSIzIiBoZWlnaHQ9IjIiIHg9IjIiIHk9IjkiPjwvcmVjdD48L2c
+PC9zdmc
+);
243 .ui-keyboard-dark-theme button.ui-keyboard-extender span {
244 /* dark theme extender icon - fill: #eee */
245 background-image: url
(data:image
/svg
+xml
;base64
,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgc3R5bGU9ImZpbGw6I2VlZSI
+PGc
+PHBhdGggc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6I2VlZSIgZD0iTSAwLjUsNC41IDE1LjUsNC41IDE1LjUsMTUuNSAwLjUsMTUuNSBaIj48L3BhdGg
+PHJlY3Qgd2lkdGg9IjIiIGhlaWdodD0iMiIgeD0iMiIgeT0iNiI
+PC9yZWN0PjxyZWN0IHdpZHRoPSIyIiBoZWlnaHQ9IjIiIHg9IjUiIHk9IjYiPjwvcmVjdD48cmVjdCB3aWR0aD0iMiIgaGVpZ2h0PSIyIiB4PSI4IiB5PSI2Ij48L3JlY3Q
+PHBhdGggZD0ibSAxMSw2IDMsMCAwLDUgLTIsMCAwLC0zIC0xLDAgeiI
+PC9wYXRoPjxyZWN0IHdpZHRoPSIyIiBoZWlnaHQ9IjIiIHg9IjEyIiB5PSIxMiI
+PC9yZWN0PjxyZWN0IHdpZHRoPSI2IiBoZWlnaHQ9IjIiIHg9IjUiIHk9IjEyIj48L3JlY3Q
+PHJlY3Qgd2lkdGg9IjIiIGhlaWdodD0iMiIgeD0iOSIgeT0iOSI
+PC9yZWN0PjxyZWN0IHdpZHRoPSIyIiBoZWlnaHQ9IjIiIHg9IjYiIHk9IjkiPjwvcmVjdD48cmVjdCB3aWR0aD0iMiIgaGVpZ2h0PSIyIiB4PSIyIiB5PSIxMiI
+PC9yZWN0PjxyZWN0IHdpZHRoPSIzIiBoZWlnaHQ9IjIiIHg9IjIiIHk9IjkiPjwvcmVjdD48L2c
+PC9zdmc
+);
248 /* Media Queries (optimized for jQuery UI themes;
249 may be slightly off in jQuery Mobile themes) */
250 /* 240 x 320 (small phone) */
251 @media all and
(max-width: 319px) {
255 .ui-keyboard .ui-keyboard-input {
258 /* I don't own an iPhone so I have no idea how small this really is... is it
259 even clickable with your finger? */
264 .ui-body .ui-keyboard-button {
268 .ui-body .ui-keyboard-widekey {
271 .ui-body .ui-keyboard-space {
274 .ui-body .ui-btn-inner {
280 /* 320 x 480 (iPhone) */
281 @media all and
(min-width: 320px) and
(max-width: 479px) {
285 .ui-keyboard .ui-keyboard-input {
288 /* I don't own an iPhone so I have no idea how small this really is... is it
289 even clickable with your finger? */
294 .ui-body .ui-keyboard-button {
298 .ui-body .ui-keyboard-widekey {
301 .ui-body .ui-keyboard-space {
304 .ui-body .ui-btn-inner {
310 /* 480 x 640 (small tablet) */
311 @media all and
(min-width: 480px) and
(max-width: 767px) {
315 .ui-keyboard .ui-keyboard-input {
322 .ui-body .ui-keyboard-button {
325 .ui-body .ui-btn-inner {