From f952bcd2987a66e80ca882871cb67e5cf7f8aa9a Mon Sep 17 00:00:00 2001 From: amuthmann <amuthmann@pro-vision.de> Date: Tue, 5 Nov 2019 23:17:36 +0100 Subject: [PATCH] Fixes #523: Add some style --- pwnagotchi/ui/web/static/css/style.css | 81 +++++++++++++++++--------- pwnagotchi/ui/web/templates/index.html | 25 ++++---- 2 files changed, 66 insertions(+), 40 deletions(-) diff --git a/pwnagotchi/ui/web/static/css/style.css b/pwnagotchi/ui/web/static/css/style.css index 060a984..b4ce854 100644 --- a/pwnagotchi/ui/web/static/css/style.css +++ b/pwnagotchi/ui/web/static/css/style.css @@ -1,42 +1,67 @@ -.block { - -webkit-appearance: button; - -moz-appearance: button; - appearance: button; - - display: block; - cursor: pointer; - text-align: center; +form { + margin-block-end: 0; } -img#ui { - width:100%; -} -.full { +.content { position: absolute; - top:0; - left:0; - width:100%; + top: 0; + left: 0; + width: 100vw; + height: 100vh; + display: flex; + flex-direction: column; } +/** + * make sure image is displayed without any blur + */ .pixelated { - image-rendering:optimizeSpeed; /* Legal fallback */ - image-rendering:-moz-crisp-edges; /* Firefox */ - image-rendering:-o-crisp-edges; /* Opera */ - image-rendering:-webkit-optimize-contrast; /* Safari */ - image-rendering:optimize-contrast; /* CSS3 Proposed */ - image-rendering:crisp-edges; /* CSS4 Proposed */ - image-rendering:pixelated; /* CSS4 Proposed */ - -ms-interpolation-mode:nearest-neighbor; /* IE8+ */ + image-rendering: optimizeSpeed; /* Legal fallback */ + image-rendering: -moz-crisp-edges; /* Firefox */ + image-rendering: -o-crisp-edges; /* Opera */ + image-rendering: -webkit-optimize-contrast; /* Safari */ + image-rendering: optimize-contrast; /* CSS3 Proposed */ + image-rendering: crisp-edges; /* CSS4 Proposed */ + image-rendering: pixelated; /* CSS4 Proposed */ + -ms-interpolation-mode: nearest-neighbor; /* IE8+ */ } -form.action { - display:inline; +.image-wrapper { + flex: 1; + position: relative; +} + +.ui-image { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + max-width: 100vw; + height: 100%; + object-fit: contain; + object-position: 0 0; +} + +.buttons-wrapper { + flex-shrink: 0; + display: flex; + flex-wrap: wrap; + padding: 0 16px; +} + +.button { + border: 1px solid black; + border-radius: 4px; + font-size: 2em; + background: #f8b506; + margin: 16px; } div.status { position: absolute; - top:0; - left:0; - width:100%; + top: 0; + left: 0; + width: 100%; } \ No newline at end of file diff --git a/pwnagotchi/ui/web/templates/index.html b/pwnagotchi/ui/web/templates/index.html index 50ec1e2..c8e7032 100644 --- a/pwnagotchi/ui/web/templates/index.html +++ b/pwnagotchi/ui/web/templates/index.html @@ -1,26 +1,27 @@ <html> <head> - <title>{{ title }}</title> - <link rel="stylesheet" type="text/css" href="/css/style.css"/> + <title>{{ title }}</title> + <link rel="stylesheet" type="text/css" href="/css/style.css"/> </head> <body> -<div class="full pixelated"> - <img src="/ui" id="ui"/> - <br/> - <hr/> - +<div class="content"> + <div class="image-wrapper"> + <img class="ui-image pixelated" src="/ui" id="ui"/> + </div> + <div class="buttons-wrapper"> <form class="action" method="POST" action="/shutdown" onsubmit="return confirm('This will halt the unit, continue?');"> - <input style="display:inline;" type="submit" class="block" value="Shutdown"/> - <input type="hidden" name="csrf_token" value="{{ csrf_token() }}"/> + <input type="submit" class="button" value="Shutdown"/> + <input type="hidden" name="csrf_token" value="{{ csrf_token() }}"/> </form> <form class="action" method="POST" action="/restart" onsubmit="return confirm('This will restart the service in {{ other_mode }} mode, continue?');"> - <input style="display:inline;" type="submit" class="block" value="Restart in {{ other_mode }} mode"/> - <input type="hidden" name="mode" value="{{ other_mode }}"/> - <input type="hidden" name="csrf_token" value="{{ csrf_token() }}"/> + <input type="submit" class="button" value="Restart in {{ other_mode }} mode"/> + <input type="hidden" name="mode" value="{{ other_mode }}"/> + <input type="hidden" name="csrf_token" value="{{ csrf_token() }}"/> </form> + </div> </div> <script type="text/javascript" src="/js/refresh.js"></script>