mirror of
				https://github.com/gyurix1968/guacamole-client.git
				synced 2025-10-31 00:53:21 +00:00 
			
		
		
		
	GUAC-932: Restyle login page and general UI.
This commit is contained in:
		| @@ -20,32 +20,6 @@ | ||||
|  * THE SOFTWARE. | ||||
|  */ | ||||
|  | ||||
| div.connection-list-ui h1 { | ||||
|      | ||||
|     margin: 0; | ||||
|     padding: 0.5em; | ||||
|  | ||||
|     font-size: 2em; | ||||
|     vertical-align: middle; | ||||
|     text-align: center; | ||||
|  | ||||
| } | ||||
|  | ||||
| div.connection-list-ui h2 { | ||||
|  | ||||
|     padding: 0.5em; | ||||
|     margin: 0; | ||||
|     font-size: 1.5em; | ||||
|  | ||||
|     font-weight: lighter; | ||||
|     text-shadow: 1px 1px white; | ||||
|  | ||||
|     border-top: 1px solid #AAA; | ||||
|     border-bottom: 1px solid #AAA; | ||||
|     background: #DDD; | ||||
|      | ||||
| } | ||||
|  | ||||
| div.logout-panel { | ||||
|     padding: 0.45em; | ||||
|     text-align: right; | ||||
|   | ||||
| @@ -28,26 +28,19 @@ input[type="submit"], button, a.button { | ||||
|     background-color: #3C3C3C; | ||||
|  | ||||
|     border: 1px solid rgba(0, 0, 0, 0.4); | ||||
|     -moz-border-radius: 0.25em; | ||||
|     -webkit-border-radius: 0.25em; | ||||
|     -khtml-border-radius: 0.25em; | ||||
|     border-radius: 0.25em; | ||||
|  | ||||
|     color: white; | ||||
|     text-shadow: -1px -1px rgba(0, 0, 0, 0.3); | ||||
|     font-size: 1em; | ||||
|     font-weight: bold; | ||||
|  | ||||
|     box-shadow: inset -1px -1px 0.1em rgba(0, 0, 0, 0.25), | ||||
|                 inset 1px 1px 0.1em rgba(255, 255, 255, 0.25), | ||||
|                 -1px -1px 0.1em rgba(0, 0, 0, 0.25), | ||||
|                 1px 1px 0.1em rgba(255, 255, 255, 0.25); | ||||
|      | ||||
|     padding: 0.35em; | ||||
|     padding-right: 1em; | ||||
|     padding-left: 1em; | ||||
|     padding: 0.35em 1em; | ||||
|     min-width: 5em; | ||||
|     margin: 0.25em; | ||||
|  | ||||
|     border-bottom: rgba(0, 0, 0, 0.25); | ||||
|     box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25); | ||||
|  | ||||
| } | ||||
|  | ||||
| input[type="submit"]:hover, button:hover, a.button:hover { | ||||
|   | ||||
							
								
								
									
										43
									
								
								guacamole/src/main/webapp/app/index/styles/font-carlito.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								guacamole/src/main/webapp/app/index/styles/font-carlito.css
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,43 @@ | ||||
| /* | ||||
|  * Copyright (C) 2014 Glyptodon LLC | ||||
|  * | ||||
|  * Permission is hereby granted, free of charge, to any person obtaining a copy | ||||
|  * of this software and associated documentation files (the "Software"), to deal | ||||
|  * in the Software without restriction, including without limitation the rights | ||||
|  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||||
|  * copies of the Software, and to permit persons to whom the Software is | ||||
|  * furnished to do so, subject to the following conditions: | ||||
|  * | ||||
|  * The above copyright notice and this permission notice shall be included in | ||||
|  * all copies or substantial portions of the Software. | ||||
|  * | ||||
|  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
|  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
|  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||||
|  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||||
|  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||||
|  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||||
|  * THE SOFTWARE. | ||||
|  */ | ||||
|  | ||||
| /* | ||||
|  * The Carlito font is licensed under the SIL Open Font License, and thus is | ||||
|  * freely redistributable so long as it is distributed with software. | ||||
|  * | ||||
|  * The SIL OFL license can be found at http://scripts.sil.org/OFL or in the | ||||
|  * "LICENSE" file within the same directory as the Carlito-*.woff font files. | ||||
|  */ | ||||
|  | ||||
| @font-face { | ||||
|     font-family: 'Carlito'; | ||||
|     font-weight: normal; | ||||
|     font-style: normal; | ||||
|     src: url('fonts/carlito/Carlito-Regular.woff') format('woff'); | ||||
| } | ||||
|  | ||||
| @font-face { | ||||
|     font-family: 'Carlito'; | ||||
|     font-weight: bold; | ||||
|     font-style: normal; | ||||
|     src: url('fonts/carlito/Carlito-Bold.woff') format('woff'); | ||||
| } | ||||
| @@ -33,7 +33,7 @@ div.location, input[type=text], input[type=number], input[type=password], textar | ||||
|     width: 100%; | ||||
|     max-width: 16em; | ||||
|     padding: 0.25em; | ||||
|     font-size: 10pt; | ||||
|     font-size: 0.8em; | ||||
|     background: white; | ||||
|     cursor: text; | ||||
| } | ||||
| @@ -45,82 +45,3 @@ textarea { | ||||
|     white-space: nowrap; | ||||
|     overflow: auto; | ||||
| } | ||||
|  | ||||
| input[type="submit"], button, a.button { | ||||
|      | ||||
|     -webkit-appearance: none; | ||||
|     text-decoration: none; | ||||
|  | ||||
|     background-color: #3C3C3C; | ||||
|  | ||||
|     border: 1px solid rgba(0, 0, 0, 0.4); | ||||
|     -moz-border-radius: 0.25em; | ||||
|     -webkit-border-radius: 0.25em; | ||||
|     -khtml-border-radius: 0.25em; | ||||
|     border-radius: 0.25em; | ||||
|  | ||||
|     color: white; | ||||
|     text-shadow: -1px -1px rgba(0, 0, 0, 0.3); | ||||
|     font-size: 1em; | ||||
|  | ||||
|     box-shadow: inset -1px -1px 0.1em rgba(0, 0, 0, 0.25), | ||||
|                 inset 1px 1px 0.1em rgba(255, 255, 255, 0.25), | ||||
|                 -1px -1px 0.1em rgba(0, 0, 0, 0.25), | ||||
|                 1px 1px 0.1em rgba(255, 255, 255, 0.25); | ||||
|      | ||||
|     padding: 0.35em; | ||||
|     padding-right: 1em; | ||||
|     padding-left: 1em; | ||||
|     min-width: 5em; | ||||
|     margin: 0.25em; | ||||
|  | ||||
| } | ||||
|  | ||||
| input[type="submit"]:hover, button:hover, a.button:hover { | ||||
|     background-color: #5A5A5A; | ||||
| } | ||||
|  | ||||
| input[type="submit"]:active, button:active, a.button:active { | ||||
|  | ||||
|     background-color: #2C2C2C; | ||||
|      | ||||
|     box-shadow:  | ||||
|                 inset 1px 1px 0.25em rgba(0, 0, 0, 0.25), | ||||
|                 -1px -1px 0.25em rgba(0, 0, 0, 0.25), | ||||
|                 1px 1px 0.25em rgba(255, 255, 255, 0.25); | ||||
| } | ||||
|  | ||||
| button.danger, a.button.danger { | ||||
|     background: #A43; | ||||
| } | ||||
|  | ||||
| button.danger:hover, a.button.danger:hover { | ||||
|     background: #C54; | ||||
| } | ||||
|  | ||||
| button.danger:active, a.button.danger:active { | ||||
|     background: #932; | ||||
| } | ||||
|  | ||||
| a.button { | ||||
|     display: inline-block; | ||||
| } | ||||
|  | ||||
| .button.logout, .button.manage, .button.back { | ||||
|     background-repeat: no-repeat; | ||||
|     background-size: 1em; | ||||
|     background-position: 0.5em 0.45em; | ||||
|     padding-left: 1.8em; | ||||
| } | ||||
|  | ||||
| .button.logout { | ||||
|     background-image: url('images/action-icons/guac-logout.png'); | ||||
| } | ||||
|  | ||||
| .button.manage { | ||||
|     background-image: url('images/action-icons/guac-config.png'); | ||||
| } | ||||
|  | ||||
| .button.back { | ||||
|     background-image: url('images/action-icons/guac-back.png'); | ||||
| } | ||||
|   | ||||
| @@ -49,32 +49,29 @@ | ||||
| } | ||||
|  | ||||
| .status { | ||||
|     max-width: 75%; | ||||
|     width: 4in; | ||||
|  | ||||
|     width: 75%; | ||||
|     max-width: 5in; | ||||
|     margin-left: auto; | ||||
|     margin-right: auto; | ||||
|     overflow: auto; | ||||
|  | ||||
|     border: 1px solid rgba(0, 0, 0, 0.5); | ||||
|     background: #E7E7E7; | ||||
|  | ||||
|     -moz-border-radius: 0.2em; | ||||
|     -webkit-border-radius: 0.2em; | ||||
|     -khtml-border-radius: 0.2em; | ||||
|     border-radius: 0.2em; | ||||
|  | ||||
|     box-shadow: 0.1em 0.1em 0.2em rgba(0, 0, 0, 0.6); | ||||
|     background: white; | ||||
|     border: 1px solid rgba(0, 0, 0, 0.25); | ||||
|     box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.25); | ||||
|   | ||||
|     text-align: left; | ||||
|     font-size: 0.8em; | ||||
|      | ||||
| } | ||||
|  | ||||
| .status .title { | ||||
|     font-size: 1.1em; | ||||
|     font-size: 1.25em; | ||||
|     font-weight: bold; | ||||
|     border-bottom: 1px solid black; | ||||
|     margin-bottom: 0.5em; | ||||
|     background: rgba(0, 0, 0, 0.04); | ||||
|     border-bottom: 1px solid rgba(0, 0, 0, 0.125); | ||||
|     box-shadow: 0 1px 2px rgba(0, 0, 0, 0.125); | ||||
|     margin: 0; | ||||
|     padding: 0.5em 1em; | ||||
| } | ||||
|  | ||||
| .status.error { | ||||
| @@ -83,7 +80,7 @@ | ||||
| } | ||||
|  | ||||
| .status > * { | ||||
|     margin: 0.75em; | ||||
|     margin: 1.25em; | ||||
| } | ||||
|  | ||||
| /* Fade entire status area in/out based on shown status */ | ||||
|   | ||||
| @@ -28,12 +28,16 @@ | ||||
| } | ||||
|  | ||||
| body { | ||||
|     background: #EEE; | ||||
|     font-family: FreeSans, Helvetica, Arial, sans-serif; | ||||
|     background: white; | ||||
|     font-family: Carlito, FreeSans, Helvetica, Arial, sans-serif; | ||||
|     padding: 0; | ||||
|     margin: 0; | ||||
| } | ||||
|  | ||||
| input[type="submit"], button { | ||||
|     font-family: Carlito, FreeSans, Helvetica, Arial, sans-serif; | ||||
| } | ||||
|  | ||||
| img { | ||||
|     border: none; | ||||
|     vertical-align: middle; | ||||
| @@ -52,17 +56,23 @@ h1 { | ||||
|  | ||||
| h2 { | ||||
|  | ||||
|     border-top: 1px solid #AAA; | ||||
|     border-bottom: 1px solid #AAA; | ||||
|     background: rgba(0, 0, 0, 0.07); | ||||
|     font-size: 1.25em; | ||||
|     font-weight: bold; | ||||
|     padding: 0.75em 0.5em; | ||||
|  | ||||
|     padding: 0.5em; | ||||
|     margin: 0; | ||||
|     font-size: 1.5em; | ||||
|     text-transform: uppercase; | ||||
|     border-bottom: 1px solid rgba(0, 0, 0, 0.125); | ||||
|     box-shadow: 0 1px 2px rgba(0, 0, 0, 0.125); | ||||
|     background: rgba(0, 0, 0, 0.04); | ||||
|  | ||||
|     font-weight: lighter; | ||||
|     text-shadow: 1px 1px white; | ||||
|     margin-bottom: 1em; | ||||
|     margin-top: 0; | ||||
|     border-top: none; | ||||
| } | ||||
|  | ||||
| h2 ~ h2 { | ||||
|     margin-top: 1em; | ||||
|     border-top: 1px solid rgba(0, 0, 0, 0.125); | ||||
| } | ||||
|  | ||||
| div.section { | ||||
|   | ||||
| @@ -20,7 +20,7 @@ | ||||
|  * THE SOFTWARE. | ||||
|  */ | ||||
|  | ||||
| .error .login-form { | ||||
| .error .login-dialog { | ||||
|     animation-name: shake-head; | ||||
|     animation-duration: 0.25s; | ||||
|     animation-timing-function: linear; | ||||
| @@ -38,8 +38,16 @@ div.login-dialog-middle { | ||||
|  | ||||
| div.login-dialog { | ||||
|  | ||||
|     animation: fadein 0.125s linear; | ||||
|     -moz-animation: fadein 0.125s linear; | ||||
|     -webkit-animation: fadein 0.125s linear; | ||||
|  | ||||
|     max-width: 75%; | ||||
|     text-align: left; | ||||
|     padding: 1em; | ||||
|     border: 1px solid rgba(0, 0, 0, 0.25); | ||||
|     box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.25); | ||||
|     font-size: 1.25em; | ||||
|  | ||||
|     display: inline-block; | ||||
| } | ||||
| @@ -51,40 +59,29 @@ div.login-dialog h1 { | ||||
| } | ||||
|  | ||||
| div.login-dialog .buttons { | ||||
|     padding-top: 0.5em; | ||||
|     text-align: right; | ||||
|     margin: 0; | ||||
|     margin-top: 1em; | ||||
| } | ||||
|  | ||||
| div.login-dialog .login-fields { | ||||
|      | ||||
|     vertical-align: middle; | ||||
|  | ||||
|     padding: 1em; | ||||
|     border-top: 1px solid #999; | ||||
|     border-bottom: 1px solid #999; | ||||
|  | ||||
| } | ||||
|  | ||||
| div.login-dialog th { | ||||
|     text-shadow: 1px 1px white; | ||||
| } | ||||
|  | ||||
| div.login-dialog .login-fields img.logo { | ||||
|     position: fixed; | ||||
|     margin: 10px; | ||||
|     left: 0; | ||||
|     bottom: 0; | ||||
|     opacity: 0.1; | ||||
|     z-index: -1; | ||||
| } | ||||
|  | ||||
| div.version { | ||||
| .login-dialog .version { | ||||
|     font-size: 1.25em; | ||||
|     font-weight: bold; | ||||
|     padding: 0.5em 0; | ||||
|     text-transform: uppercase; | ||||
|     text-align: center; | ||||
|     font-style: italic; | ||||
|     font-size: 0.75em; | ||||
|     color: black; | ||||
|     opacity: 0.5; | ||||
|  | ||||
|     padding: 0.5em; | ||||
| } | ||||
|  | ||||
| .login-dialog .logo { | ||||
|     display: block; | ||||
|     max-width: 3em; | ||||
|     margin: 0.5em auto; | ||||
| } | ||||
|   | ||||
| @@ -20,23 +20,19 @@ | ||||
|  * THE SOFTWARE. | ||||
|  */ | ||||
|  | ||||
| input[type="submit"].login, | ||||
| button.login { | ||||
|  | ||||
|     background-image: url('images/guacamole-logo-64.png'); | ||||
|     background-repeat: no-repeat; | ||||
|     background-size: 1.5em; | ||||
|     background-position: 0.5em 0.25em; | ||||
|  | ||||
|     padding-left: 2.5em; | ||||
|  | ||||
| } | ||||
|  | ||||
| div.login-dialog .login-fields input { | ||||
|     border: 1px solid #777; | ||||
| .login-fields input { | ||||
|     display: block; | ||||
|     border: 1px solid rgba(0, 0, 0, 0.25); | ||||
|     -moz-border-radius: 0.2em; | ||||
|     -webkit-border-radius: 0.2em; | ||||
|     -khtml-border-radius: 0.2em; | ||||
|     border-radius: 0.2em; | ||||
|     width: 100%; | ||||
|     margin: 0; | ||||
|     margin-bottom: 0.5em; | ||||
| } | ||||
|  | ||||
| input[type="submit"].login { | ||||
|     width: 100%; | ||||
|     margin: 0; | ||||
| } | ||||
| @@ -21,34 +21,24 @@ THE SOFTWARE. | ||||
| --> | ||||
|  | ||||
| <div class="login-ui" ng-class="{error: loginError}" > | ||||
|  | ||||
|     <!-- Login error message --> | ||||
|     <p class="login-error">{{'login.loginError' | translate}}</p> | ||||
|  | ||||
|     <div class="login-dialog-middle"> | ||||
|  | ||||
|         <div class="login-dialog"> | ||||
|  | ||||
|             <!-- Login error message --> | ||||
|             <p class="login-error">{{'login.loginError' | translate}}</p> | ||||
|  | ||||
|             <form class="login-form" ng-submit="login()"> | ||||
|  | ||||
|                 <!-- Guacamole version --> | ||||
|                 <div class="version"> | ||||
|                     {{'application.title' | translate}} | ||||
|                 </div> | ||||
|                 <img class="logo" src="images/guac-tricolor.png" alt=""/> | ||||
|                 <div class="version">{{'application.title' | translate}}</div> | ||||
|  | ||||
|                 <!-- Login fields (username + password) --> | ||||
|                 <div class="login-fields"> | ||||
|                     <table> | ||||
|                         <tr> | ||||
|                             <th>{{'login.username' | translate}}</th> | ||||
|                             <td><input ng-model="username" type="text" name="username" autofocus="autofocus" class="username"/></td> | ||||
|                         </tr> | ||||
|                         <tr> | ||||
|                             <th>{{'login.password' | translate}}</th> | ||||
|                             <td><input ng-model="password" type="password" name="password" class="password"/></td> | ||||
|                         </tr> | ||||
|                     </table> | ||||
|  | ||||
|                     <img class="logo" src="images/guac-mono-192.png" alt=""/> | ||||
|                     <input ng-model="username" placeholder="{{'login.username' | translate}}" type="text" name="username" autofocus="autofocus" class="username"/> | ||||
|                     <input ng-model="password" placeholder="{{'login.password' | translate}}" type="password" name="password" class="password"/> | ||||
|                 </div> | ||||
|  | ||||
|                 <!-- Submit button --> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user