blinker / firefox.plugin / data / style / text / keyboard.css @ 76dd22bd
History | View | Annotate | Download (21.345 KB)
1 | 76dd22bd | KevinTaron | /* keyboard - jQuery UI Widget */
|
---|---|---|---|
2 | .ui-keyboard {
|
||
3 | text-align: center; |
||
4 | padding: .3em; |
||
5 | position: absolute; |
||
6 | left: 0; |
||
7 | top: 0% !important; |
||
8 | padding-top: 300px !important; |
||
9 | z-index: 2000000132; |
||
10 | /* see issue #484 */
|
||
11 | -ms-touch-action: manipulation; |
||
12 | touch-action: manipulation; |
||
13 | } |
||
14 | |||
15 | .ui-keyboard .gsfi { |
||
16 | border: 1px solid black !important; |
||
17 | position: relative !important; |
||
18 | background: none !important; |
||
19 | width: 99% !important; |
||
20 | |||
21 | } |
||
22 | |||
23 | .ui-keyboard-has-focus {
|
||
24 | z-index: 2000000132; |
||
25 | } |
||
26 | .ui-keyboard div { |
||
27 | font-size: 1.1em; |
||
28 | } |
||
29 | .ui-keyboard-button {
|
||
30 | height: 2em; |
||
31 | min-width: 2em; |
||
32 | margin: .1em; |
||
33 | cursor: pointer; |
||
34 | overflow: hidden; |
||
35 | line-height: 2em; |
||
36 | -moz-user-focus: ignore; |
||
37 | } |
||
38 | .ui-keyboard-button span { |
||
39 | padding: 0; |
||
40 | margin: 0; |
||
41 | white-space: nowrap; |
||
42 | display: inline-block; |
||
43 | } |
||
44 | .ui-keyboard-button-endrow {
|
||
45 | clear: left; |
||
46 | } |
||
47 | .ui-keyboard-space {
|
||
48 | width: 15em; |
||
49 | } |
||
50 | /* see http://nicolasgallagher.com/another-css-image-replacement-technique/ */
|
||
51 | .ui-keyboard-space span, .ui-keyboard-empty span { |
||
52 | font: 0/0 a; |
||
53 | text-shadow: none; |
||
54 | color: transparent; |
||
55 | } |
||
56 | .ui-keyboard-preview-wrapper {
|
||
57 | text-align: center; |
||
58 | position: relative; |
||
59 | overflow: hidden; |
||
60 | max-width: 1000px; |
||
61 | margin: 30px auto; |
||
62 | } |
||
63 | |||
64 | .ui-keyboard-preview-wrapper textarea { |
||
65 | max-height: 120px; |
||
66 | } |
||
67 | /* width is calculated in IE, since 99% = 99% full browser width =( */
|
||
68 | .ui-keyboard-preview {
|
||
69 | text-align: left; |
||
70 | margin: 0 0 3px 0; |
||
71 | display: inline; |
||
72 | width: 99%; |
||
73 | } |
||
74 | .ui-keyboard-keyset {
|
||
75 | text-align: center; |
||
76 | white-space: nowrap; |
||
77 | } |
||
78 | .ui-keyboard-input {
|
||
79 | text-align: left; |
||
80 | } |
||
81 | .ui-keyboard-input-current {
|
||
82 | -moz-box-shadow: 0 0 5px #4d90fe; |
||
83 | -webkit-box-shadow: 0 0 5px #4d90fe; |
||
84 | box-shadow: 0 0 5px #4d90fe; |
||
85 | } |
||
86 | .ui-keyboard-placeholder {
|
||
87 | color: #888; |
||
88 | } |
||
89 | /* disabled or readonly inputs, or use
|
||
90 | input[disabled='disabled'] { color: #f00; } */
|
||
91 | .ui-keyboard-nokeyboard {
|
||
92 | color: #888; |
||
93 | border-color: #888; |
||
94 | } |
||
95 | .ui-keyboard-spacer {
|
||
96 | display: inline-block; |
||
97 | width: 1px; |
||
98 | height: 0; |
||
99 | cursor: default; |
||
100 | } |
||
101 | |||
102 | .ui-keyboard-NBSP span, .ui-keyboard-ZWSP span, .ui-keyboard-ZWNJ span, |
||
103 | .ui-keyboard-ZWJ span, .ui-keyboard-LRM span, .ui-keyboard-RLM span { |
||
104 | font-size: 0.5em; |
||
105 | line-height: 1.5em; |
||
106 | white-space: normal; |
||
107 | } |
||
108 | |||
109 | /* combo key styling - toggles diacritics on/off */
|
||
110 | .ui-keyboard-button.ui-keyboard-combo.ui-state-default { |
||
111 | border-color: #ffaf0f; |
||
112 | } |
||
113 | |||
114 | /* (in)valid inputs */
|
||
115 | button.ui-keyboard-accept.ui-keyboard-valid-input { |
||
116 | border-color: #0c0; |
||
117 | background: #080; |
||
118 | color: #fff; |
||
119 | } |
||
120 | button.ui-keyboard-accept.ui-keyboard-valid-input:not([disabled]):hover { |
||
121 | background: #0a0; |
||
122 | } |
||
123 | button.ui-keyboard-accept.ui-keyboard-invalid-input { |
||
124 | border-color: #c00; |
||
125 | background: #800; |
||
126 | color: #fff; |
||
127 | opacity: 0.5; |
||
128 | filter: alpha(opacity=50); |
||
129 | } |
||
130 | button.ui-keyboard-accept.ui-keyboard-invalid-input:not([disabled]):hover { |
||
131 | background: #a00; |
||
132 | } |
||
133 | |||
134 | /*** Caret extension definition ***/
|
||
135 | /* margin-top => is added to the caret height (top & bottom) */
|
||
136 | .ui-keyboard-caret {
|
||
137 | background: #c00; |
||
138 | width: 1px; |
||
139 | margin-top: 3px; |
||
140 | } |
||
141 | |||
142 | /*** jQuery Mobile definitions ***/
|
||
143 | /* jQuery Mobile styles - need wider buttons because of font size and
|
||
144 | text-overflow:ellipsis */
|
||
145 | div.ui-body.ui-keyboard button.ui-keyboard-button.ui-btn { |
||
146 | padding: 0.5em 1em; |
||
147 | border-color: transparent; |
||
148 | } |
||
149 | .ui-body .ui-keyboard-button { |
||
150 | width: 3em; |
||
151 | height: 3em; |
||
152 | display: inline-block; |
||
153 | } |
||
154 | .ui-body .ui-keyboard-widekey { |
||
155 | width: 5.5em; |
||
156 | } |
||
157 | .ui-body .ui-keyboard-space { |
||
158 | width: 15em; |
||
159 | } |
||
160 | .ui-body .ui-keyboard-space span { |
||
161 | visibility: hidden; /* hides the ellipsis */ |
||
162 | } |
||
163 | .ui-body .ui-keyboard-keyset { |
||
164 | line-height: 0.5em; |
||
165 | } |
||
166 | .ui-body input.ui-input-text, .ui-body textarea.ui-input-text { |
||
167 | width: 95%; |
||
168 | } |
||
169 | |||
170 | /* over-ride padding set by mobile ui theme - needed because the mobile script
|
||
171 | wraps button text with several more spans */
|
||
172 | .ui-body .ui-btn-inner { |
||
173 | height: 2em; |
||
174 | padding: 0.2em 0; |
||
175 | margin: 0; |
||
176 | } |
||
177 | .ui-body .ui-btn { |
||
178 | margin: 0; |
||
179 | font-size: 13px; /* mobile default size is 13px */ |
||
180 | } |
||
181 | |||
182 | /* override Bootstrap excessive button padding */
|
||
183 | button.ui-keyboard-button.btn { |
||
184 | padding: 1px 6px; |
||
185 | } |
||
186 | |||
187 | /* enable/disable icons */
|
||
188 | button.ui-keyboard-toggle span { |
||
189 | width: .8em; |
||
190 | height: .8em; |
||
191 | display: inline-block; |
||
192 | background-repeat: no-repeat; |
||
193 | background-position: center center; |
||
194 | background-size: contain; |
||
195 | } |
||
196 | /* unlocked icon (keyboard enabled) */
|
||
197 | button.ui-keyboard-toggle span { |
||
198 | /* light theme unlocked icon - fill: #111 */
|
||
199 | background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgZmlsbD0iIzExMSI+PHBhdGggZD0iTTguNyw0LjRINy41SDUuMHYtMS45YzAtMS40LTEuMS0yLjUtMi41LTIuNWMtMS40LDAtMi41LDEuMS0yLjUsMi41djEuOWgxLjIgdi0xLjljMC0wLjcsMC42LTEuMiwxLjItMS4yczEuMiwwLjYsMS4yLDEuMnYxLjljLTAuNywwLTEuMiwwLjYtMS4yLDEuMlY4LjggYzAsMC43LDAuNiwxLjIsMS4yLDEuMmg1LjBDOS40LDEwLDEwLDkuNCwxMCw4LjhWNS42QzEwLDUuMCw5LjQsNC40LDguOCw0LjR6IE02LjYsNy40djEuMCBjMCwwLjItMC4xLDAuMy0wLjMsMC4zUzYuMCw4LjYsNi4wLDguNFY3LjRjLTAuMi0wLjEtMC4zLTAuMy0wLjMtMC41YzAtMC4zLDAuMy0wLjYsMC42LTAuNiBTNi45LDYuNiw2LjksNi45QzYuOSw3LjEsNi44LDcuMyw2LjYsNy40eiIvPjwvc3ZnPg==); |
||
200 | } |
||
201 | .ui-keyboard-dark-theme button.ui-keyboard-toggle span { |
||
202 | /* dark theme unlocked icon - fill: #eee */
|
||
203 | background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgZmlsbD0iI2VlZSI+PHBhdGggZD0iTTguNyw0LjRINy41SDUuMHYtMS45YzAtMS40LTEuMS0yLjUtMi41LTIuNWMtMS40LDAtMi41LDEuMS0yLjUsMi41djEuOWgxLjIgdi0xLjljMC0wLjcsMC42LTEuMiwxLjItMS4yczEuMiwwLjYsMS4yLDEuMnYxLjljLTAuNywwLTEuMiwwLjYtMS4yLDEuMlY4LjggYzAsMC43LDAuNiwxLjIsMS4yLDEuMmg1LjBDOS40LDEwLDEwLDkuNCwxMCw4LjhWNS42QzEwLDUuMCw5LjQsNC40LDguOCw0LjR6IE02LjYsNy40djEuMCBjMCwwLjItMC4xLDAuMy0wLjMsMC4zUzYuMCw4LjYsNi4wLDguNFY3LjRjLTAuMi0wLjEtMC4zLTAuMy0wLjMtMC41YzAtMC4zLDAuMy0wLjYsMC42LTAuNiBTNi45LDYuNiw2LjksNi45QzYuOSw3LjEsNi44LDcuMyw2LjYsNy40eiIvPjwvc3ZnPg==); |
||
204 | } |
||
205 | |||
206 | /* locked icon (keyboard disabled) */
|
||
207 | button.ui-keyboard-toggle.ui-keyboard-disabled span { |
||
208 | /* light theme locked icon - fill: #111 */
|
||
209 | background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgZmlsbD0iIzExMSI+PHBhdGggZD0iTTcuNCA0LjRWMi41YzAtMS40LTEuMS0yLjUtMi41LTIuNWMtMS40IDAtMi41IDEuMS0yLjUgMi41djEuOSBjLTAuNyAwLTEuMiAwLjUtMS4yIDEuMnYzLjFDMS4zIDkuNCAxLjggMTAgMi41IDEwaDQuOWMwLjcgMCAxLjItMC42IDEuMi0xLjJWNS42IEM4LjcgNC45IDguMSA0LjQgNy40IDQuNHogTTUuMyA3LjR2MS4wYzAgMC4yLTAuMSAwLjMtMC4zIDAuM2MtMC4yIDAtMC4zLTAuMS0wLjMtMC4zVjcuNCBjLTAuMi0wLjEtMC4zLTAuMy0wLjMtMC41YzAtMC4zIDAuMy0wLjYgMC42LTAuNmMwLjMgMCAwLjYgMC4zIDAuNiAwLjYgQzUuNiA3LjEgNS41IDcuMyA1LjMgNy40eiBNNi4yIDQuNEgzLjdWMi41YzAtMC43IDAuNS0xLjIgMS4yLTEuMmMwLjcgMCAxLjIgMC42IDEuMiAxLjIgVjQuNHoiLz48L3N2Zz4=); |
||
210 | } |
||
211 | .ui-keyboard-dark-theme button.ui-keyboard-toggle.ui-keyboard-disabled span { |
||
212 | /* dark theme locked icon - fill: #eee */
|
||
213 | background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgZmlsbD0iI2VlZSI+PHBhdGggZD0iTTcuNCA0LjRWMi41YzAtMS40LTEuMS0yLjUtMi41LTIuNWMtMS40IDAtMi41IDEuMS0yLjUgMi41djEuOSBjLTAuNyAwLTEuMiAwLjUtMS4yIDEuMnYzLjFDMS4zIDkuNCAxLjggMTAgMi41IDEwaDQuOWMwLjcgMCAxLjItMC42IDEuMi0xLjJWNS42IEM4LjcgNC45IDguMSA0LjQgNy40IDQuNHogTTUuMyA3LjR2MS4wYzAgMC4yLTAuMSAwLjMtMC4zIDAuM2MtMC4yIDAtMC4zLTAuMS0wLjMtMC4zVjcuNCBjLTAuMi0wLjEtMC4zLTAuMy0wLjMtMC41YzAtMC4zIDAuMy0wLjYgMC42LTAuNmMwLjMgMCAwLjYgMC4zIDAuNiAwLjYgQzUuNiA3LjEgNS41IDcuMyA1LjMgNy40eiBNNi4yIDQuNEgzLjdWMi41YzAtMC43IDAuNS0xLjIgMS4yLTEuMmMwLjcgMCAxLjIgMC42IDEuMiAxLjIgVjQuNHoiLz48L3N2Zz4=); |
||
214 | } |
||
215 | |||
216 | .ui-keyboard.ui-keyboard-disabled button:not(.ui-keyboard-toggle), |
||
217 | .ui-keyboard.ui-keyboard-disabled input { |
||
218 | opacity: 0.5; |
||
219 | } |
||
220 | |||
221 | /*** Alt-Keys Popup extension ***/
|
||
222 | /* clickable overlay on top of keyboard to hide the popup */
|
||
223 | .ui-keyboard-overlay {
|
||
224 | position: absolute; |
||
225 | top: 0; |
||
226 | left: 0; |
||
227 | bottom: 0; |
||
228 | right: 0; |
||
229 | background: rgba(0, 0, 0, 0.5); |
||
230 | } |
||
231 | /* the actual popup styling, class names from the css.container option are also
|
||
232 | added */
|
||
233 | .ui-keyboard-popup {
|
||
234 | display: inline-block; |
||
235 | /* default buttons are 2em wide + .1em margin on either side (set in
|
||
236 | .ui-keyboard-button definition); so use multiples of 2.2em for a max-width
|
||
237 | if you don't want any extra white space on the sides, e.g.
|
||
238 | 5 buttons * 2.2em = 11em,
|
||
239 | 6 buttons * 2.2em = 13.2em, etc
|
||
240 | */
|
||
241 | max-width: 22em; /* 10 buttons */ |
||
242 | } |
||
243 | |||
244 | /*** Extender keyboard extension ***/
|
||
245 | div.ui-keyboard-extender { |
||
246 | margin-left: 5px; |
||
247 | } |
||
248 | button.ui-keyboard-extender span { |
||
249 | width: .9em; |
||
250 | height: .9em; |
||
251 | display: inline-block; |
||
252 | margin-bottom: 3px; |
||
253 | background-repeat: no-repeat; |
||
254 | background-position: center center; |
||
255 | background-size: contain; |
||
256 | /* light theme extender icon - fill: #111 */
|
||
257 | background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgc3R5bGU9ImZpbGw6IzExMSI+PGc+PHBhdGggc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzExMSIgZD0iTSAwLjUsNC41IDE1LjUsNC41IDE1LjUsMTUuNSAwLjUsMTUuNSBaIj48L3BhdGg+PHJlY3Qgd2lkdGg9IjIiIGhlaWdodD0iMiIgeD0iMiIgeT0iNiI+PC9yZWN0PjxyZWN0IHdpZHRoPSIyIiBoZWlnaHQ9IjIiIHg9IjUiIHk9IjYiPjwvcmVjdD48cmVjdCB3aWR0aD0iMiIgaGVpZ2h0PSIyIiB4PSI4IiB5PSI2Ij48L3JlY3Q+PHBhdGggZD0ibSAxMSw2IDMsMCAwLDUgLTIsMCAwLC0zIC0xLDAgeiI+PC9wYXRoPjxyZWN0IHdpZHRoPSIyIiBoZWlnaHQ9IjIiIHg9IjEyIiB5PSIxMiI+PC9yZWN0PjxyZWN0IHdpZHRoPSI2IiBoZWlnaHQ9IjIiIHg9IjUiIHk9IjEyIj48L3JlY3Q+PHJlY3Qgd2lkdGg9IjIiIGhlaWdodD0iMiIgeD0iOSIgeT0iOSI+PC9yZWN0PjxyZWN0IHdpZHRoPSIyIiBoZWlnaHQ9IjIiIHg9IjYiIHk9IjkiPjwvcmVjdD48cmVjdCB3aWR0aD0iMiIgaGVpZ2h0PSIyIiB4PSIyIiB5PSIxMiI+PC9yZWN0PjxyZWN0IHdpZHRoPSIzIiBoZWlnaHQ9IjIiIHg9IjIiIHk9IjkiPjwvcmVjdD48L2c+PC9zdmc+); |
||
258 | } |
||
259 | .ui-keyboard-dark-theme button.ui-keyboard-extender span { |
||
260 | /* dark theme extender icon - fill: #eee */
|
||
261 | background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgc3R5bGU9ImZpbGw6I2VlZSI+PGc+PHBhdGggc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6I2VlZSIgZD0iTSAwLjUsNC41IDE1LjUsNC41IDE1LjUsMTUuNSAwLjUsMTUuNSBaIj48L3BhdGg+PHJlY3Qgd2lkdGg9IjIiIGhlaWdodD0iMiIgeD0iMiIgeT0iNiI+PC9yZWN0PjxyZWN0IHdpZHRoPSIyIiBoZWlnaHQ9IjIiIHg9IjUiIHk9IjYiPjwvcmVjdD48cmVjdCB3aWR0aD0iMiIgaGVpZ2h0PSIyIiB4PSI4IiB5PSI2Ij48L3JlY3Q+PHBhdGggZD0ibSAxMSw2IDMsMCAwLDUgLTIsMCAwLC0zIC0xLDAgeiI+PC9wYXRoPjxyZWN0IHdpZHRoPSIyIiBoZWlnaHQ9IjIiIHg9IjEyIiB5PSIxMiI+PC9yZWN0PjxyZWN0IHdpZHRoPSI2IiBoZWlnaHQ9IjIiIHg9IjUiIHk9IjEyIj48L3JlY3Q+PHJlY3Qgd2lkdGg9IjIiIGhlaWdodD0iMiIgeD0iOSIgeT0iOSI+PC9yZWN0PjxyZWN0IHdpZHRoPSIyIiBoZWlnaHQ9IjIiIHg9IjYiIHk9IjkiPjwvcmVjdD48cmVjdCB3aWR0aD0iMiIgaGVpZ2h0PSIyIiB4PSIyIiB5PSIxMiI+PC9yZWN0PjxyZWN0IHdpZHRoPSIzIiBoZWlnaHQ9IjIiIHg9IjIiIHk9IjkiPjwvcmVjdD48L2c+PC9zdmc+); |
||
262 | } |
||
263 | |||
264 | /* Media Queries (optimized for jQuery UI themes;
|
||
265 | may be slightly off in jQuery Mobile themes) */
|
||
266 | /* 240 x 320 (small phone) */
|
||
267 | @media all and (max-width: 319px) { |
||
268 | .ui-keyboard div { |
||
269 | font-size: 9px; |
||
270 | } |
||
271 | .ui-keyboard .ui-keyboard-input { |
||
272 | font-size: 12px; |
||
273 | } |
||
274 | /* I don't own an iPhone so I have no idea how small this really is... is it
|
||
275 | even clickable with your finger? */
|
||
276 | .ui-body .ui-btn { |
||
277 | margin: 0; |
||
278 | font-size: 9px; |
||
279 | } |
||
280 | .ui-body .ui-keyboard-button { |
||
281 | width: 1.8em; |
||
282 | height: 2.5em; |
||
283 | } |
||
284 | .ui-body .ui-keyboard-widekey { |
||
285 | width: 4em; |
||
286 | } |
||
287 | .ui-body .ui-keyboard-space { |
||
288 | width: 8em; |
||
289 | } |
||
290 | .ui-body .ui-btn-inner { |
||
291 | height: 2.5em; |
||
292 | padding: 0.3em 0; |
||
293 | } |
||
294 | } |
||
295 | |||
296 | /* 320 x 480 (iPhone) */
|
||
297 | @media all and (min-width: 320px) and (max-width: 479px) { |
||
298 | .ui-keyboard div { |
||
299 | font-size: 9px; |
||
300 | } |
||
301 | .ui-keyboard .ui-keyboard-input { |
||
302 | font-size: 14px; |
||
303 | } |
||
304 | /* I don't own an iPhone so I have no idea how small this really is... is it
|
||
305 | even clickable with your finger? */
|
||
306 | .ui-body .ui-btn { |
||
307 | margin: 0; |
||
308 | font-size: 11px; |
||
309 | } |
||
310 | .ui-body .ui-keyboard-button { |
||
311 | width: 1.8em; |
||
312 | height: 3em; |
||
313 | } |
||
314 | .ui-body .ui-keyboard-widekey { |
||
315 | width: 4.5em; |
||
316 | } |
||
317 | .ui-body .ui-keyboard-space { |
||
318 | width: 10em; |
||
319 | } |
||
320 | .ui-body .ui-btn-inner { |
||
321 | height: 3em; |
||
322 | padding: 0.7em 0; |
||
323 | } |
||
324 | } |
||
325 | |||
326 | /* 480 x 640 (small tablet) */
|
||
327 | @media all and (min-width: 480px) and (max-width: 767px) { |
||
328 | .ui-keyboard div { |
||
329 | font-size: 13px; |
||
330 | } |
||
331 | .ui-keyboard .ui-keyboard-input { |
||
332 | font-size: 14px; |
||
333 | } |
||
334 | .ui-body .ui-btn { |
||
335 | margin: 0; |
||
336 | font-size: 10px; |
||
337 | } |
||
338 | .ui-body .ui-keyboard-button { |
||
339 | height: 2.5em; |
||
340 | } |
||
341 | .ui-body .ui-btn-inner { |
||
342 | height: 2.5em; |
||
343 | padding: 0.5em 0; |
||
344 | } |
||
345 | } |
||
346 | |||
347 | |||
348 | |||
349 | |||
350 | /* *** keyboard light theme ***
|
||
351 | for when jQuery UI themes are not being used
|
||
352 | See https://jsfiddle.net/Mottie/jsh0377k/
|
||
353 | */
|
||
354 | .ui-keyboard {
|
||
355 | /* adjust overall keyboard size using "font-size" */
|
||
356 | font-size: 14px; |
||
357 | text-align: center; |
||
358 | background: #fefefe; |
||
359 | border: 1px solid #aaa; |
||
360 | padding: 4px; |
||
361 | |||
362 | /* include the following setting to place the
|
||
363 | keyboard at the bottom of the browser window */
|
||
364 | width: 100%; |
||
365 | height: auto; |
||
366 | left: 0px; |
||
367 | top: auto; |
||
368 | bottom: 0px; |
||
369 | position: fixed; |
||
370 | white-space: nowrap; |
||
371 | overflow-x: auto; |
||
372 | /* see issue #484 */
|
||
373 | -ms-touch-action: manipulation; |
||
374 | touch-action: manipulation; |
||
375 | } |
||
376 | .ui-keyboard-has-focus {
|
||
377 | z-index: 2000000132; |
||
378 | } |
||
379 | .ui-keyboard-button {
|
||
380 | border: 1px solid #aaa; |
||
381 | width: auto; |
||
382 | padding: 0 2.2em; |
||
383 | margin: 1px; |
||
384 | min-width: 3em; |
||
385 | height: 4.4em; |
||
386 | line-height: 3em; |
||
387 | vertical-align: top; |
||
388 | font-family: Helvetica, Arial, sans-serif; |
||
389 | color: #333; |
||
390 | text-align: center; |
||
391 | border-radius: 5px; |
||
392 | -webkit-box-shadow: 1px 1px 3px 0 rgba(0, 0, 0, 0.5); |
||
393 | box-shadow: 1px 1px 3px 0 rgba(0, 0, 0, 0.5); |
||
394 | background: white; |
||
395 | background-image: -webkit-linear-gradient(-90deg, white 0%, #e3e3e3 100%); |
||
396 | background-image: linear-gradient(-90deg, white 0%, #e3e3e3 100%); |
||
397 | cursor: pointer; |
||
398 | overflow: hidden; |
||
399 | -moz-user-focus: ignore; |
||
400 | margin: 2px; |
||
401 | transition:all .07s; |
||
402 | font-size: 18px; |
||
403 | } |
||
404 | |||
405 | .ui-keyboard-button.openedElement { |
||
406 | transform:scale(1.2); |
||
407 | border-color:#4bc970; |
||
408 | box-shadow: 0 0 10px #4bc970; |
||
409 | transition:all .07s; |
||
410 | } |
||
411 | |||
412 | .ui-keyboard-button.openedElementPrev, .ui-keyboard-button.openedElementNext { |
||
413 | transform:scale(1.1); |
||
414 | border-color:#ffa200; |
||
415 | box-shadow: 0 0 10px #ffa200; |
||
416 | } |
||
417 | |||
418 | .ui-keyboard-button.openedElementNext { |
||
419 | border-color: #0216f8; |
||
420 | box-shadow: 0 0 10px #0216f8; |
||
421 | } |
||
422 | |||
423 | |||
424 | .ui-keyboard-button:not([disabled]):hover { |
||
425 | background: #eee; |
||
426 | background-image: -webkit-linear-gradient(-90deg, #f2f2f2 0%, #d3d3d3 100%); |
||
427 | background-image: linear-gradient(-90deg, #f2f2f2 0%, #d3d3d3 100%); |
||
428 | } |
||
429 | .ui-keyboard-button:not([disabled]):active { |
||
430 | background: #ddd; |
||
431 | background-image: -webkit-linear-gradient(-90deg, #e5e5e5 0%, #d3d3d3 100%); |
||
432 | background-image: linear-gradient(-90deg, #e5e5e5 0%, #d3d3d3 100%); |
||
433 | } |
||
434 | .ui-keyboard-button span { |
||
435 | display: block; |
||
436 | width: 100%; |
||
437 | font-size: 1.2em; |
||
438 | text-align: center; |
||
439 | } |
||
440 | /* make action keys extra-wide */
|
||
441 | .ui-keyboard-actionkey:not(.ui-keyboard-dec):not(.ui-keyboard-combo) { |
||
442 | min-width: 6em; |
||
443 | } |
||
444 | .ui-keyboard-space {
|
||
445 | width: 15em; |
||
446 | } |
||
447 | .ui-keyboard-actionkey:not(.ui-keyboard-dec):not(.ui-keyboard-combo) span { |
||
448 | font-size: 0.8em; |
||
449 | position: relative; |
||
450 | top: -1em; |
||
451 | left: -1.6em; |
||
452 | } |
||
453 | .ui-keyboard-placeholder {
|
||
454 | color: #888; |
||
455 | } |
||
456 | /* disabled or readonly inputs, or use input[disabled='disabled'] { color: #f00; } */
|
||
457 | .ui-keyboard-nokeyboard {
|
||
458 | color: #888; |
||
459 | border-color: #888; |
||
460 | } |
||
461 | .ui-keyboard-spacer {
|
||
462 | display: inline-block; |
||
463 | width: 1px; |
||
464 | height: 0; |
||
465 | cursor: default; |
||
466 | } |
||
467 | .ui-keyboard-NBSP span, .ui-keyboard-ZWSP span, .ui-keyboard-ZWNJ span, .ui-keyboard-ZWJ span, |
||
468 | .ui-keyboard-LRM span, .ui-keyboard-RLM span { |
||
469 | font-size: 0.5em; |
||
470 | line-height: 1.5em; |
||
471 | white-space: normal; |
||
472 | } |
||
473 | |||
474 | /* combo key styling - toggles diacritics on/off */
|
||
475 | .ui-keyboard-button.ui-keyboard-combo.ui-state-default { |
||
476 | -webkit-box-shadow: 1px 1px 3px 0 rgba(213, 133, 18, 0.5); |
||
477 | box-shadow: 1px 1px 3px 0 rgba(213, 133, 18, 0.5); |
||
478 | border-color: #d58512; |
||
479 | } |
||
480 | .ui-keyboard-button.ui-keyboard-combo.ui-state-active { |
||
481 | -webkit-box-shadow: 1px 1px 3px 0 rgba(38, 154, 188, 0.5); |
||
482 | box-shadow: 1px 1px 3px 0 rgba(38, 154, 188, 0.5); |
||
483 | border-color: #269abc; |
||
484 | } |
||
485 | /* (in)valid inputs */
|
||
486 | button.ui-keyboard-accept.ui-keyboard-valid-input { |
||
487 | -webkit-box-shadow: 1px 1px 3px 0 rgba(57, 132, 57, 0.5); |
||
488 | box-shadow: 1px 1px 3px 0 rgba(57, 132, 57, 0.5); |
||
489 | border-color: #398439; |
||
490 | } |
||
491 | button.ui-keyboard-accept.ui-keyboard-valid-input:not([disabled]):hover { |
||
492 | border-color: #4cae4c; |
||
493 | } |
||
494 | button.ui-keyboard-accept.ui-keyboard-invalid-input { |
||
495 | -webkit-box-shadow: 1px 1px 3px 0 rgba(172, 41, 37, 0.5); |
||
496 | box-shadow: 1px 1px 3px 0 rgba(172, 41, 37, 0.5); |
||
497 | border-color: #ac2925; |
||
498 | } |
||
499 | button.ui-keyboard-accept.ui-keyboard-invalid-input:not([disabled]):hover { |
||
500 | border-color: #d43f3a; |
||
501 | } |
||
502 | /* unlocked icon (keyboard enabled) */
|
||
503 | button.ui-keyboard-toggle span { |
||
504 | width: .9em; |
||
505 | height: .9em; |
||
506 | display: inline-block; |
||
507 | background-repeat: no-repeat; |
||
508 | background-position: center center; |
||
509 | background-size: contain; |
||
510 | /* light theme unlocked icon - fill: #111 */
|
||
511 | background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgZmlsbD0iIzExMSI+PHBhdGggZD0iTTguNyw0LjRINy41SDUuMHYtMS45YzAtMS40LTEuMS0yLjUtMi41LTIuNWMtMS40LDAtMi41LDEuMS0yLjUsMi41djEuOWgxLjIgdi0xLjljMC0wLjcsMC42LTEuMiwxLjItMS4yczEuMiwwLjYsMS4yLDEuMnYxLjljLTAuNywwLTEuMiwwLjYtMS4yLDEuMlY4LjggYzAsMC43LDAuNiwxLjIsMS4yLDEuMmg1LjBDOS40LDEwLDEwLDkuNCwxMCw4LjhWNS42QzEwLDUuMCw5LjQsNC40LDguOCw0LjR6IE02LjYsNy40djEuMCBjMCwwLjItMC4xLDAuMy0wLjMsMC4zUzYuMCw4LjYsNi4wLDguNFY3LjRjLTAuMi0wLjEtMC4zLTAuMy0wLjMtMC41YzAtMC4zLDAuMy0wLjYsMC42LTAuNiBTNi45LDYuNiw2LjksNi45QzYuOSw3LjEsNi44LDcuMyw2LjYsNy40eiIvPjwvc3ZnPg=='); |
||
512 | } |
||
513 | /* locked icon (keyboard disabled) */
|
||
514 | button.ui-keyboard-toggle.ui-keyboard-disabled span { |
||
515 | /* light theme locked icon - fill: #111 */
|
||
516 | background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgZmlsbD0iIzExMSI+PHBhdGggZD0iTTcuNCA0LjRWMi41YzAtMS40LTEuMS0yLjUtMi41LTIuNWMtMS40IDAtMi41IDEuMS0yLjUgMi41djEuOSBjLTAuNyAwLTEuMiAwLjUtMS4yIDEuMnYzLjFDMS4zIDkuNCAxLjggMTAgMi41IDEwaDQuOWMwLjcgMCAxLjItMC42IDEuMi0xLjJWNS42IEM4LjcgNC45IDguMSA0LjQgNy40IDQuNHogTTUuMyA3LjR2MS4wYzAgMC4yLTAuMSAwLjMtMC4zIDAuM2MtMC4yIDAtMC4zLTAuMS0wLjMtMC4zVjcuNCBjLTAuMi0wLjEtMC4zLTAuMy0wLjMtMC41YzAtMC4zIDAuMy0wLjYgMC42LTAuNmMwLjMgMCAwLjYgMC4zIDAuNiAwLjYgQzUuNiA3LjEgNS41IDcuMyA1LjMgNy40eiBNNi4yIDQuNEgzLjdWMi41YzAtMC43IDAuNS0xLjIgMS4yLTEuMmMwLjcgMCAxLjIgMC42IDEuMiAxLjIgVjQuNHoiLz48L3N2Zz4='); |
||
517 | } |
||
518 | .ui-keyboard.ui-keyboard-disabled button:not(.ui-keyboard-toggle), .ui-keyboard.ui-keyboard-disabled input { |
||
519 | opacity: 0.5; |
||
520 | } |
||
521 | |||
522 | /*** Alt-Keys Popup extension ***/
|
||
523 | /* clickable overlay on top of keyboard to hide the popup */
|
||
524 | .ui-keyboard-overlay {
|
||
525 | position: absolute; |
||
526 | top: 0; |
||
527 | left: 0; |
||
528 | bottom: 0; |
||
529 | right: 0; |
||
530 | background: rgba(238, 238, 238, 0.5); |
||
531 | } |
||
532 | /* the actual popup styling, class names from the css.container option are also added */
|
||
533 | .ui-keyboard-popup {
|
||
534 | display: inline-block; |
||
535 | /* default buttons are 2em wide + .1em margin on either side (set in .ui-keyboard-button definition);
|
||
536 | so use multiples of 2.2em for a max-width if you don't want any extra white space on the sides,
|
||
537 | e.g. 5 buttons * 2.2em = 11em, 6 buttons * 2.2em = 13.2em, etc */
|
||
538 | max-width: 22em; |
||
539 | /* 10 buttons */
|
||
540 | } |
||
541 | |||
542 | /*** Caret extension definition ***/
|
||
543 | /* margin-top => is added to the caret height (top & bottom) */
|
||
544 | .ui-keyboard-caret {
|
||
545 | background: #c00; |
||
546 | width: 1px; |
||
547 | margin-top: 3px; |
||
548 | } |
||
549 | |||
550 | /*** Extender keyboard extension ***/
|
||
551 | div.ui-keyboard-extender { |
||
552 | margin-left: 5px; |
||
553 | margin-right: 10px; |
||
554 | } |
||
555 | button.ui-keyboard-extender span { |
||
556 | width: .9em; |
||
557 | height: .9em; |
||
558 | display: inline-block; |
||
559 | margin-bottom: 3px; |
||
560 | background-repeat: no-repeat; |
||
561 | background-position: center center; |
||
562 | background-size: contain; |
||
563 | /* light theme extender icon - fill: #111 */
|
||
564 | background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgc3R5bGU9ImZpbGw6IzExMSI+PGc+PHBhdGggc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzExMSIgZD0iTSAwLjUsNC41IDE1LjUsNC41IDE1LjUsMTUuNSAwLjUsMTUuNSBaIj48L3BhdGg+PHJlY3Qgd2lkdGg9IjIiIGhlaWdodD0iMiIgeD0iMiIgeT0iNiI+PC9yZWN0PjxyZWN0IHdpZHRoPSIyIiBoZWlnaHQ9IjIiIHg9IjUiIHk9IjYiPjwvcmVjdD48cmVjdCB3aWR0aD0iMiIgaGVpZ2h0PSIyIiB4PSI4IiB5PSI2Ij48L3JlY3Q+PHBhdGggZD0ibSAxMSw2IDMsMCAwLDUgLTIsMCAwLC0zIC0xLDAgeiI+PC9wYXRoPjxyZWN0IHdpZHRoPSIyIiBoZWlnaHQ9IjIiIHg9IjEyIiB5PSIxMiI+PC9yZWN0PjxyZWN0IHdpZHRoPSI2IiBoZWlnaHQ9IjIiIHg9IjUiIHk9IjEyIj48L3JlY3Q+PHJlY3Qgd2lkdGg9IjIiIGhlaWdodD0iMiIgeD0iOSIgeT0iOSI+PC9yZWN0PjxyZWN0IHdpZHRoPSIyIiBoZWlnaHQ9IjIiIHg9IjYiIHk9IjkiPjwvcmVjdD48cmVjdCB3aWR0aD0iMiIgaGVpZ2h0PSIyIiB4PSIyIiB5PSIxMiI+PC9yZWN0PjxyZWN0IHdpZHRoPSIzIiBoZWlnaHQ9IjIiIHg9IjIiIHk9IjkiPjwvcmVjdD48L2c+PC9zdmc+'); |
||
565 | } |